<!DOCTYPE html>
<html class="zg-html">
<head>
<meta charset="utf-8">
<title>ZingGrid Demo</title>
<script nonce="undefined" src="https://cdn.zinggrid.com/zinggrid.min.js"></script>
<style>
.zg-body {
background: #fff;
}
zing-grid[loading] {
height: 500px;
}
/** Expandable Row Trigger **/
.zg-body .arrow {
display: inline-block;
transform: rotate(90deg);
transform-origin: 0% 0%;
cursor: pointer;
font-size: 1.5rem;
position: relative;
left: 2.5rem;
top: 0.25rem;
}
.zg-body .active .arrow {
transform: rotate(180deg);
left: 2.5rem;
top: 1.5rem;
}
/** Expandable Row Header **/
.zg-body .header {
display: flex;
align-items: center;
}
.zg-body .team--info {
margin-left: 2.5rem;
}
/** Expandable Row CSS **/
.zg-body .default {
border-bottom: 1px solid #ebebeb;
}
.zg-body zg-row:hover {
cursor: pointer;
background-color: #f5f7fa;
transition: background-color 0.25s ease-in;
}
.zg-body .expandable {
background: #f5f5f5;
padding: 1rem 0;
display: none;
}
.zg-body .active .expandable {
display: block;
}
/** Set padding **/
/** NOTE: Css looks off here, but it is to fix how it looks on site **/
.zg-body .default,
.expandable {
line-height: 1.5rem;
padding: 0.9rem 1rem;
}
.zg-body .default--arrow {
padding: 0.9rem 0;
}
.zg-body zg-cell {
padding: 0;
}
/** hide layout **/
.zg-body zg-layout {
display: none;
}
zing-grid[loading] {
height: 720px;
}
</style>
</head>
<body class="zg-body">
<zing-grid caption="Expandable Rows" pager page-size="10" viewport-stop loading>
<zg-source>
<p>Source: <a href="https://github.com/jokecamp/FootballData" target="_blank">https://github.com/jokecamp/FootballData</a>
</p>
</zg-source>
<zg-data>
<zg-param name="src" value="https://storage.googleapis.com/zinggrid-pwa.appspot.com/2016-fa-cup.json"></zg-param>
<zg-param name="recordPath" value="sheets.Teams"></zg-param>
</zg-data>
<zg-colgroup>
<zg-column type="custom" header="2016 FA Cup Details">
<div class="header">
<div class="default default--arrow">
<span class="arrow">⌃</span>
</div>
<div class="team--info">[[record.Team]] Group ([[record.Group]])</div>
</div>
<div class="expandable">
<p><strong>Rank:</strong> [[record.FIFA ranking]]</p>
<p><strong>Coach:</strong> [[record.Coach]]</p>
<p><strong>Bio:</strong> [[record.Bio]]</p>
<p><strong>Strengths:</strong> [[record.strengths]]</p>
<p><strong>Weaknesses:</strong> [[record.weaknesses]]</p>
</div>
</zg-column>
</zg-colgroup>
</zing-grid>
<script>
ZingGrid.setLicense(['26ccbfec16b8be9ee98c7d57bee6e498']); // window:load event for Javascript to run after HTML
// because this Javascript is injected into the document head
window.addEventListener('load', () => {
// Javascript code to execute after DOM content
const zgRef = document.querySelector('zing-grid');
zgRef.addEventListener('row:click', bindExpandEvent);
function bindExpandEvent(e) {
let oDOMRow = e.detail.ZGTarget;
oDOMRow.classList.toggle('active');
}
});
</script>
</body>
</html>
<!DOCTYPE html>
<html class="zg-html">
<head>
<meta charset="utf-8">
<title>ZingGrid Demo</title>
<script src="https://cdn.zinggrid.com/zinggrid.min.js"></script>
</head>
<body class="zg-body">
<zing-grid caption="Expandable Rows" pager page-size="10" viewport-stop loading>
<zg-source>
<p>Source: <a href="https://github.com/jokecamp/FootballData" target="_blank">https://github.com/jokecamp/FootballData</a>
</p>
</zg-source>
<zg-data>
<zg-param name="src" value="https://storage.googleapis.com/zinggrid-pwa.appspot.com/2016-fa-cup.json"></zg-param>
<zg-param name="recordPath" value="sheets.Teams"></zg-param>
</zg-data>
<zg-colgroup>
<zg-column type="custom" header="2016 FA Cup Details">
<div class="header">
<div class="default default--arrow">
<span class="arrow">⌃</span>
</div>
<div class="team--info">[[record.Team]] Group ([[record.Group]])</div>
</div>
<div class="expandable">
<p><strong>Rank:</strong> [[record.FIFA ranking]]</p>
<p><strong>Coach:</strong> [[record.Coach]]</p>
<p><strong>Bio:</strong> [[record.Bio]]</p>
<p><strong>Strengths:</strong> [[record.strengths]]</p>
<p><strong>Weaknesses:</strong> [[record.weaknesses]]</p>
</div>
</zg-column>
</zg-colgroup>
</zing-grid>
</body>
</html>
.zg-body {
background: #fff;
}
zing-grid[loading] {
height: 500px;
}
/** Expandable Row Trigger **/
.zg-body .arrow {
display: inline-block;
transform: rotate(90deg);
transform-origin: 0% 0%;
cursor: pointer;
font-size: 1.5rem;
position: relative;
left: 2.5rem;
top: 0.25rem;
}
.zg-body .active .arrow {
transform: rotate(180deg);
left: 2.5rem;
top: 1.5rem;
}
/** Expandable Row Header **/
.zg-body .header {
display: flex;
align-items: center;
}
.zg-body .team--info {
margin-left: 2.5rem;
}
/** Expandable Row CSS **/
.zg-body .default {
border-bottom: 1px solid #ebebeb;
}
.zg-body zg-row:hover {
cursor: pointer;
background-color: #f5f7fa;
transition: background-color 0.25s ease-in;
}
.zg-body .expandable {
background: #f5f5f5;
padding: 1rem 0;
display: none;
}
.zg-body .active .expandable {
display: block;
}
/** Set padding **/
/** NOTE: Css looks off here, but it is to fix how it looks on site **/
.zg-body .default,
.expandable {
line-height: 1.5rem;
padding: 0.9rem 1rem;
}
.zg-body .default--arrow {
padding: 0.9rem 0;
}
.zg-body zg-cell {
padding: 0;
}
/** hide layout **/
.zg-body zg-layout {
display: none;
}
// window:load event for Javascript to run after HTML
// because this Javascript is injected into the document head
window.addEventListener('load', () => {
// Javascript code to execute after DOM content
const zgRef = document.querySelector('zing-grid');
zgRef.addEventListener('row:click', bindExpandEvent);
function bindExpandEvent(e) {
let oDOMRow = e.detail.ZGTarget;
oDOMRow.classList.toggle('active');
}
});