UNPKG

nexshop-web-contents

Version:

Nexshop Web Contents Project

363 lines (362 loc) 11.5 kB
<!doctype html> <html lang="en"> <head> <title>Code coverage report for nexshop-web-contents/src/component/preview/scene/scene-preview-detail-view.js</title> <meta charset="utf-8" /> <link rel="stylesheet" href="../../../../../prettify.css" /> <link rel="stylesheet" href="../../../../../base.css" /> <meta name="viewport" content="width=device-width, initial-scale=1"> <style type='text/css'> .coverage-summary .sorter { background-image: url(../../../../../sort-arrow-sprite.png); } </style> </head> <body> <div class='wrapper'> <div class='pad1'> <h1> <a href="../../../../../index.html">All files</a> / <a href="index.html">nexshop-web-contents/src/component/preview/scene</a> scene-preview-detail-view.js </h1> <div class='clearfix'> <div class='fl pad1y space-right2'> <span class="strong">100% </span> <span class="quiet">Statements</span> <span class='fraction'>32/32</span> </div> <div class='fl pad1y space-right2'> <span class="strong">100% </span> <span class="quiet">Branches</span> <span class='fraction'>6/6</span> </div> <div class='fl pad1y space-right2'> <span class="strong">100% </span> <span class="quiet">Functions</span> <span class='fraction'>7/7</span> </div> <div class='fl pad1y space-right2'> <span class="strong">100% </span> <span class="quiet">Lines</span> <span class='fraction'>32/32</span> </div> </div> </div> <div class='status-line high'></div> <pre><table class="coverage"> <tr><td class="line-count quiet">1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100</td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span> <span class="cline-any cline-yes">1x</span> <span class="cline-any cline-yes">1x</span> <span class="cline-any cline-yes">1x</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">18x</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">18x</span> <span class="cline-any cline-yes">18x</span> <span class="cline-any cline-yes">18x</span> <span class="cline-any cline-yes">18x</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">18x</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">28x</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">22x</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">22x</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">34x</span> <span class="cline-any cline-yes">34x</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">34x</span> <span class="cline-any cline-yes">48x</span> <span class="cline-any cline-yes">16x</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">32x</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">48x</span> <span class="cline-any cline-yes">48x</span> <span class="cline-any cline-yes">48x</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">48x</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">34x</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">32x</span> <span class="cline-any cline-yes">32x</span> <span class="cline-any cline-yes">32x</span> <span class="cline-any cline-yes">32x</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">18x</span> <span class="cline-any cline-yes">18x</span> <span class="cline-any cline-yes">18x</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-yes">1x</span> <span class="cline-any cline-neutral">&nbsp;</span> <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, {Component} from 'react'; import PanelGroup from "react-panelgroup"; import PropTypes from 'prop-types'; import _ from 'lodash'; &nbsp; class ScenePreviewDetailView extends Component { constructor(props) { super(props); &nbsp; this.createGroup = this.createGroup.bind(this); this.createPanel = this.createPanel.bind(this); this.getPreviewBaseSide = this.getPreviewBaseSide.bind(this); this.getPreviewRatio = this.getPreviewRatio.bind(this); &nbsp; this.ratio = this.getPreviewRatio(props.sceneLayoutSize, props.previewWindowSize); } &nbsp; getPreviewBaseSide(sceneRatio, windowRatio) { return sceneRatio &lt; windowRatio ? 'height' : 'width'; } &nbsp; getPreviewRatio(sceneSize, windowSize) { const baseSide = this.getPreviewBaseSide(sceneSize.width / sceneSize.height, windowSize.width / windowSize.height); &nbsp; return windowSize[baseSide] / sceneSize[baseSide]; } &nbsp; createGroup(group) { let alignItems = []; let widths = []; &nbsp; group.panels.map((item) =&gt; { if (item.type === 'group') { alignItems.push(this.createGroup(item)); } else { alignItems.push(this.createPanel(item)); } &nbsp; let clonedDomAttribute = _.cloneDeep(item.domAttribute); clonedDomAttribute.resize = 'fixed'; clonedDomAttribute.size = item.domAttribute.size * this.ratio; &nbsp; widths.push(clonedDomAttribute); }); &nbsp; return ( &lt;PanelGroup key={group.id} direction={group.direction} panelWidths={widths} spacing={0}&gt; {alignItems} &lt;/PanelGroup&gt; ); } &nbsp; createPanel(panel) { const contentItem = panel.contentItems[0]; const videoWidth = panel.domAttribute.pixelWidth * this.ratio; const videoHeight = panel.domAttribute.pixelHeight * this.ratio; return ( &lt;div key={panel.id} className="layout-panel__body"&gt; { contentItem.type === 'video' ? &lt;div className={`layout-panel__body__status--${contentItem.type}`}&gt; { &lt;video style={{ width: videoWidth, height: videoHeight, objectFit: contentItem.fitMode, overflow: 'hidden' }} preload="metadata" autoPlay controls loop src={contentItem.contentUrl} type="video/mp4" /&gt; } &lt;/div&gt; : &lt;div id={panel.id} className={`layout-panel__body__status--${contentItem.type}`} style={{backgroundImage: `url(${contentItem.contentUrl})`, backgroundSize: contentItem.fitMode}} /&gt; } &lt;/div&gt; ); } &nbsp; render() { const {scene, previewWindowSize, sceneLayoutSize} = this.props; let panelGroup = this.createGroup(scene); return ( &lt;div className="scene-preview" style={{width: previewWindowSize.width, height: previewWindowSize.height}}&gt; &lt;div style={{width: this.ratio * sceneLayoutSize.width, height: this.ratio * sceneLayoutSize.height}}&gt; {panelGroup} &lt;/div&gt; &lt;/div&gt; ) } } &nbsp; export default ScenePreviewDetailView; &nbsp; ScenePreviewDetailView.propTypes = { scene: PropTypes.object.isRequired, };</pre></td></tr> </table></pre> <div class='push'></div><!-- for sticky footer --> </div><!-- /wrapper --> <div class='footer quiet pad2 space-top1 center small'> Code coverage generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Mon Dec 18 2017 16:41:44 GMT+0900 (KST) </div> </div> <script src="../../../../../prettify.js"></script> <script> window.onload = function () { if (typeof prettyPrint === 'function') { prettyPrint(); } }; </script> <script src="../../../../../sorter.js"></script> </body> </html>