- <!DOCTYPE html>
- <html>
-
- <head>
- <meta charset="utf-8">
- <title>ZingGrid Demo</title>
- <script nonce="undefined" src="https://cdn.zinggrid.com/zinggrid.min.js"></script>
- <style>
- html,
- body {
- height: 100%;
- width: 100%;
- margin: 0;
- padding: 0;
- }
-
- h4 {
- color: #fff;
- font-weight: 500;
- font-size: 1.15rem;
- margin: 0.75rem 0;
- text-align: center;
- }
-
- zing-grid {
- border: 1px #e3e3e3 solid;
- margin: 0 0 2rem;
- }
-
- button {
- background-color: #1EA3ED;
- border: none;
- border-radius: 8px;
- color: #fff;
- cursor: pointer;
- font-size: 0.85rem;
- font-weight: bold;
- height: 2.5rem;
- line-height: 1rem;
- padding: 0.5rem 0.75rem;
- text-transform: uppercase;
- }
-
- button:hover {
- background-color: #00c6ff;
- }
-
- .container--controls {
- background: #fff;
- border: 1px solid #ededed;
- border-radius: 5px;
- }
-
- .container--controls>div {
- margin: 0 1rem 1rem 1rem;
- }
-
- .container--controls h3 {
- border-bottom: 0.00624rem #e3e3e3 solid;
- padding-bottom: 1rem;
- text-align: center;
- }
-
- .container--flex {
- display: flex;
- flex-direction: column;
- }
-
- .container--shadow {
- box-shadow: 0px 8px 27px 0px rgba(0, 0, 0, 0.13);
- }
-
- .container--size {
- height: 100%;
- width: 10rem;
- }
-
- .container--log,
- #eventlog {
- flex-basis: 100%;
- }
-
- .control__item {
- display: flex;
- flex-direction: column;
- margin: 0 0 1rem;
- font-size: 1rem;
- font-weight: bold;
- }
-
-
- .control__item:last-child {
- border-top: 0.00624rem #e3e3e3 solid;
- margin-top: auto;
- padding-top: 1rem;
- }
-
- .demo-container {
- box-sizing: border-box;
- display: grid;
- grid-template-columns: 0fr 4fr;
- grid-gap: 2rem;
- padding: 2.5rem 3.5rem;
- }
-
- .eventlog {
- background-color: #232c2f;
- border: 1px solid #ededed;
- border-radius: 6px;
- min-height: 175px;
- height: 100%;
- overflow: hidden;
- }
-
- .eventlog__bar {
- background-color: #e6e6e6;
- border-top-right-radius: 5px;
- border-top-left-radius: 5px;
- color: #3c4244;
- font-size: 0.85rem;
- font-weight: bold;
- height: 1.5rem;
- line-height: 1.5rem;
- padding: 0.25rem 0.5rem;
- text-align: center;
- vertical-align: middle;
- }
-
- .eventlog__log {
- color: #1FFE00;
- font-size: 1.15rem;
- height: 100%;
- padding: 1rem;
- white-space: pre-wrap;
- word-wrap: break-word;
- }
-
- .eventlog__minimize {
- border-radius: 1rem;
- cursor: pointer;
- float: left;
- fill: #00394B;
- font-size: 0.5rem;
- height: 1.2rem;
- line-height: 1.2rem;
- margin-top: 0.2rem;
- width: 1.2rem;
- }
-
- .eventlog__minimize:hover {
- fill: #778C91;
- }
-
- .eventlog__title {
- padding-right: 1.7rem;
- }
-
- .control__item input[type="text"] {
- border: 2px solid rgb(226, 226, 226);
- border-radius: 5px;
- box-shadow: rgba(0, 0, 0, 0.06) 0px 2px 4px 0px;
- color: rgb(0, 55, 73);
- height: 2.25rem;
- font-size: 0.85rem;
- font-weight: 600;
- padding: 0 0.75rem;
- }
-
- #reset-grid {
- background-color: #DA205B;
- }
-
- #reset-grid:hover {
- background-color: #E980A4;
- }
-
- @media screen and (max-width:1080px) {
- #eventlog {
- height: 170px;
- }
-
- .container--controls {
- grid-column: 1 / span 4;
- grid-row: 1;
- min-width: 100%;
- }
-
- .container--size {
- width: inherit;
- }
-
- .container {
- display: grid;
- grid-column: 1 / span 4;
- }
-
- input {
- max-width: 100%;
- }
- }
-
- zing-grid[loading] {
- height: 360px;
- }
- </style>
- </head>
-
- <body>
-
- <div class="demo-container">
-
- <div class="container container--controls container--shadow">
- <!-- caption controls -->
- <div class="container--size container--flex">
- <h3>Caption API Methods</h3>
- <div class="control__item">
- <button id="get-caption">Get Caption</button>
- </div>
- <div class="control__item">
- <label for="set-caption">Set Caption</label>
- <input type="text" name="set-caption" id="set-caption">
- </div>
-
- <div class="control__item">
- <button id="reset-grid">Reset Grid/Log</button>
- </div>
- </div>
- </div>
-
-
- <div class="container container--flex">
- <h4>Live demo</h4>
- <!-- grid container -->
- <div class="container container--demo">
- <zing-grid class="container--shadow" id="myGrid" theme="default" caption="Meet The Doe Family" layout="row" data='[
- {
- "firstName": "John",
- "lastName": "Doe",
- "age": 45
- },
- {
- "firstName": "Jane",
- "lastName": "Doe",
- "age": 44
- },
- {
- "firstName": "John Jr.",
- "lastName": "Doe",
- "age": 15
- },
- {
- "firstName": "Jane Jr.",
- "lastName": "Doe",
- "age": 13
- }
- ]'></zing-grid>
- </div>
-
- <!-- log container -->
- <div class="container container--log container--flex">
- <div class="eventlog container--shadow">
- <div class="eventlog__bar">
- <svg class="eventlog__minimize" width="54px" height="54px" viewBox="0 0 54 54" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
- <defs></defs>
- <g id="Desktop-(1400px)" stroke="none" stroke-width="1" fill-rule="evenodd">
- <g id="Artboard" transform="translate(-2383.000000, -1404.000000)">
- <g id="Group-3" transform="translate(2383.000000, 1404.000000)">
- <circle id="Oval" cx="27" cy="27" r="27"></circle>
- <g id="collapse-two-arrows-diagonal-symbol" transform="translate(13.000000, 13.000000)" fill="#FFFFFF" fill-rule="nonzero" stroke="#FFFFFF">
- <path d="M11.777317,16.2995357 L3.73773039,16.2995357 C3.24245588,16.2995357 2.8413366,16.6994009 2.8413366,17.1934915 C2.8413366,17.6866808 3.24245588,18.0873525 3.73773039,18.0873525 L9.67756536,18.0873525 L0,27.7361167 L1.26761275,29 L10.9351797,19.3601555 L10.9071275,25.2348716 C10.9071275,25.7280608 11.3082467,26.1287326 11.8035212,26.1287326 C12.2987958,26.1287326 12.699915,25.7289623 12.699915,25.2348716 L12.699915,17.1924952 C12.699915,16.9277529 12.5903595,16.7137767 12.4165016,16.5668874 C12.2526422,16.403772 12.0271814,16.2995357 11.777317,16.2995357 Z M25.2632173,10.9126 L19.3233824,10.9126 L29,1.26378845 L27.7323399,0 L18.0656732,9.63974962 L18.0937729,3.76503347 C18.0937729,3.27184426 17.6926536,2.87112506 17.1973791,2.87112506 C16.7021046,2.87112506 16.3009853,3.27094281 16.3009853,3.76503347 L16.3009853,11.8074099 C16.3009853,12.0721522 16.4105408,12.286081 16.583451,12.4320688 C16.7464101,12.597082 16.971018,12.7013183 17.2218301,12.7013183 L25.2613693,12.7013183 C25.7566438,12.7013183 26.1578105,12.3015006 26.1578105,11.8074099 C26.1586634,11.3133192 25.7575441,10.9126 25.2632173,10.9126 Z" id="Shape"></path>
- </g>
- </g>
- </g>
- </g>
- </svg>
- <span class="eventlog__title">Console</span>
- </div>
- <pre class="eventlog__log"></pre>
- </div>
- </div>
- </div>
-
- </div> <!-- end demo container -->
-
- <script>
- ZingGrid.setLicense(['26ccbfec16b8be9ee98c7d57bee6e498']); // GLOBAL REFERENCES
- const zingGridRef = document.querySelector('#myGrid');
- const eventLogRef = document.querySelector('.eventlog__log');
- const resetGridRef = document.querySelector('#reset-grid');
-
- // caption section
- const getCaptionRef = document.querySelector('#get-caption');
- const setCaptionRef = document.querySelector('#set-caption');
-
- /*
- * @descrption clear current event log header and text
- */
- const _clearEventLog = () => {
- if (eventLogRef) eventLogRef.innerHTML = '';
- }
-
- /**
- * @description used as replace param in JSON.stringify
- */
- function censor(key, value) {
- if (typeof(value) == "object") {
- return undefined;
- }
- return value;
- }
-
- /*
- * @description format data to be displayed in the event box
- * @param {*} logData - data to log on the screen
- * @param {String} [header] - text to define what is being shown
- */
- const _logCustomEvent = (logData, code) => {
- if (eventLogRef) {
- _clearEventLog();
- if (code) {
- eventLogRef.innerHTML += `${code}`;
- }
- if (logData) {
- var stringify = JSON.stringify(logData, censor, 2);
- if (stringify) {
- eventLogRef.innerHTML += stringify;
- } else {
- eventLogRef.innerHTML += '{{' + logData + '}}';
- }
- }
- }
- }
-
- /*
- * @description resets grid to default and clears log
- */
- const _resetGrid = () => {
- var inputs = document.querySelectorAll('.control__item input[type="text"]');
- for (var i = 0; i < inputs.length; i++) {
- inputs[i].value = '';
- }
-
- if (zingGridRef) {
- zingGridRef.setCaption('Meet The Doe Family');
- _clearEventLog();
- }
- }
-
- /*
- * @description get the current pageSize
- */
- const _getCaption = () => {
- if (zingGridRef) _logCustomEvent(zingGridRef.getCaption(), '>>> myGrid.getCaption();\n\n');
- }
-
- /*
- * @description set the grid caption value
- * @params {Event} e - native browser 'change' event
- */
- const _setCaption = (e) => {
- const mCaptionValue = e.target.value;
- if (zingGridRef) zingGridRef.setCaption(mCaptionValue);
- _logCustomEvent(null, '>>> myGrid.setCaption("' + mCaptionValue + '");')
- }
-
- // assign event listeners for inputs
- // -----------------------------------
- if (resetGridRef) resetGridRef.addEventListener('click', _resetGrid);
-
- // caption events
- if (setCaptionRef) setCaptionRef.addEventListener('keyup', _setCaption);
- if (getCaptionRef) getCaptionRef.addEventListener('click', _getCaption);
-
- _clearEventLog();
-
- // minimize event for console
- const _minimizeLog = () => {
- var consoleLog = document.querySelector('.eventlog');
- var consoleStyle = window.getComputedStyle(consoleLog, null);
- if (consoleStyle['minHeight'] === '0px') {
- consoleLog.style.height = '100%';
- consoleLog.style.minHeight = '175px';
- } else {
- consoleLog.style.height = '2rem';
- consoleLog.style.minHeight = '0px';
- }
- }
- const consoleMinimize = document.querySelector('.eventlog__minimize');
- if (consoleMinimize) consoleMinimize.addEventListener('click', _minimizeLog);
- </script>
- </body>
-
- </html>
- <!DOCTYPE html>
- <html>
-
- <head>
- <meta charset="utf-8">
- <title>ZingGrid Demo</title>
- <script src="https://cdn.zinggrid.com/zinggrid.min.js"></script>
- </head>
-
- <body>
-
- <div class="demo-container">
-
- <div class="container container--controls container--shadow">
- <!-- caption controls -->
- <div class="container--size container--flex">
- <h3>Caption API Methods</h3>
- <div class="control__item">
- <button id="get-caption">Get Caption</button>
- </div>
- <div class="control__item">
- <label for="set-caption">Set Caption</label>
- <input type="text" name="set-caption" id="set-caption">
- </div>
-
- <div class="control__item">
- <button id="reset-grid">Reset Grid/Log</button>
- </div>
- </div>
- </div>
-
-
- <div class="container container--flex">
- <h4>Live demo</h4>
- <!-- grid container -->
- <div class="container container--demo">
- <zing-grid class="container--shadow" id="myGrid" theme="default" caption="Meet The Doe Family" layout="row" data='[
- {
- "firstName": "John",
- "lastName": "Doe",
- "age": 45
- },
- {
- "firstName": "Jane",
- "lastName": "Doe",
- "age": 44
- },
- {
- "firstName": "John Jr.",
- "lastName": "Doe",
- "age": 15
- },
- {
- "firstName": "Jane Jr.",
- "lastName": "Doe",
- "age": 13
- }
- ]'></zing-grid>
- </div>
-
- <!-- log container -->
- <div class="container container--log container--flex">
- <div class="eventlog container--shadow">
- <div class="eventlog__bar">
- <svg class="eventlog__minimize" width="54px" height="54px" viewBox="0 0 54 54" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
- <defs></defs>
- <g id="Desktop-(1400px)" stroke="none" stroke-width="1" fill-rule="evenodd">
- <g id="Artboard" transform="translate(-2383.000000, -1404.000000)">
- <g id="Group-3" transform="translate(2383.000000, 1404.000000)">
- <circle id="Oval" cx="27" cy="27" r="27"></circle>
- <g id="collapse-two-arrows-diagonal-symbol" transform="translate(13.000000, 13.000000)" fill="#FFFFFF" fill-rule="nonzero" stroke="#FFFFFF">
- <path d="M11.777317,16.2995357 L3.73773039,16.2995357 C3.24245588,16.2995357 2.8413366,16.6994009 2.8413366,17.1934915 C2.8413366,17.6866808 3.24245588,18.0873525 3.73773039,18.0873525 L9.67756536,18.0873525 L0,27.7361167 L1.26761275,29 L10.9351797,19.3601555 L10.9071275,25.2348716 C10.9071275,25.7280608 11.3082467,26.1287326 11.8035212,26.1287326 C12.2987958,26.1287326 12.699915,25.7289623 12.699915,25.2348716 L12.699915,17.1924952 C12.699915,16.9277529 12.5903595,16.7137767 12.4165016,16.5668874 C12.2526422,16.403772 12.0271814,16.2995357 11.777317,16.2995357 Z M25.2632173,10.9126 L19.3233824,10.9126 L29,1.26378845 L27.7323399,0 L18.0656732,9.63974962 L18.0937729,3.76503347 C18.0937729,3.27184426 17.6926536,2.87112506 17.1973791,2.87112506 C16.7021046,2.87112506 16.3009853,3.27094281 16.3009853,3.76503347 L16.3009853,11.8074099 C16.3009853,12.0721522 16.4105408,12.286081 16.583451,12.4320688 C16.7464101,12.597082 16.971018,12.7013183 17.2218301,12.7013183 L25.2613693,12.7013183 C25.7566438,12.7013183 26.1578105,12.3015006 26.1578105,11.8074099 C26.1586634,11.3133192 25.7575441,10.9126 25.2632173,10.9126 Z" id="Shape"></path>
- </g>
- </g>
- </g>
- </g>
- </svg>
- <span class="eventlog__title">Console</span>
- </div>
- <pre class="eventlog__log"></pre>
- </div>
- </div>
- </div>
-
- </div> <!-- end demo container -->
-
- </body>
-
- </html>
- html,
- body {
- height: 100%;
- width: 100%;
- margin: 0;
- padding: 0;
- }
-
- h4 {
- color: #fff;
- font-weight: 500;
- font-size: 1.15rem;
- margin: 0.75rem 0;
- text-align: center;
- }
-
- zing-grid {
- border: 1px #e3e3e3 solid;
- margin: 0 0 2rem;
- }
-
- button {
- background-color: #1EA3ED;
- border: none;
- border-radius: 8px;
- color: #fff;
- cursor: pointer;
- font-size: 0.85rem;
- font-weight: bold;
- height: 2.5rem;
- line-height: 1rem;
- padding: 0.5rem 0.75rem;
- text-transform: uppercase;
- }
-
- button:hover {
- background-color: #00c6ff;
- }
-
- .container--controls {
- background: #fff;
- border: 1px solid #ededed;
- border-radius: 5px;
- }
-
- .container--controls>div {
- margin: 0 1rem 1rem 1rem;
- }
-
- .container--controls h3 {
- border-bottom: 0.00624rem #e3e3e3 solid;
- padding-bottom: 1rem;
- text-align: center;
- }
-
- .container--flex {
- display: flex;
- flex-direction: column;
- }
-
- .container--shadow {
- box-shadow: 0px 8px 27px 0px rgba(0, 0, 0, 0.13);
- }
-
- .container--size {
- height: 100%;
- width: 10rem;
- }
-
- .container--log,
- #eventlog {
- flex-basis: 100%;
- }
-
- .control__item {
- display: flex;
- flex-direction: column;
- margin: 0 0 1rem;
- font-size: 1rem;
- font-weight: bold;
- }
-
-
- .control__item:last-child {
- border-top: 0.00624rem #e3e3e3 solid;
- margin-top: auto;
- padding-top: 1rem;
- }
-
- .demo-container {
- box-sizing: border-box;
- display: grid;
- grid-template-columns: 0fr 4fr;
- grid-gap: 2rem;
- padding: 2.5rem 3.5rem;
- }
-
- .eventlog {
- background-color: #232c2f;
- border: 1px solid #ededed;
- border-radius: 6px;
- min-height: 175px;
- height: 100%;
- overflow: hidden;
- }
-
- .eventlog__bar {
- background-color: #e6e6e6;
- border-top-right-radius: 5px;
- border-top-left-radius: 5px;
- color: #3c4244;
- font-size: 0.85rem;
- font-weight: bold;
- height: 1.5rem;
- line-height: 1.5rem;
- padding: 0.25rem 0.5rem;
- text-align: center;
- vertical-align: middle;
- }
-
- .eventlog__log {
- color: #1FFE00;
- font-size: 1.15rem;
- height: 100%;
- padding: 1rem;
- white-space: pre-wrap;
- word-wrap: break-word;
- }
-
- .eventlog__minimize {
- border-radius: 1rem;
- cursor: pointer;
- float: left;
- fill: #00394B;
- font-size: 0.5rem;
- height: 1.2rem;
- line-height: 1.2rem;
- margin-top: 0.2rem;
- width: 1.2rem;
- }
-
- .eventlog__minimize:hover {
- fill: #778C91;
- }
-
- .eventlog__title {
- padding-right: 1.7rem;
- }
-
- .control__item input[type="text"] {
- border: 2px solid rgb(226, 226, 226);
- border-radius: 5px;
- box-shadow: rgba(0, 0, 0, 0.06) 0px 2px 4px 0px;
- color: rgb(0, 55, 73);
- height: 2.25rem;
- font-size: 0.85rem;
- font-weight: 600;
- padding: 0 0.75rem;
- }
-
- #reset-grid {
- background-color: #DA205B;
- }
-
- #reset-grid:hover {
- background-color: #E980A4;
- }
-
- @media screen and (max-width:1080px) {
- #eventlog {
- height: 170px;
- }
-
- .container--controls {
- grid-column: 1 / span 4;
- grid-row: 1;
- min-width: 100%;
- }
-
- .container--size {
- width: inherit;
- }
-
- .container {
- display: grid;
- grid-column: 1 / span 4;
- }
-
- input {
- max-width: 100%;
- }
- }
- // GLOBAL REFERENCES
- const zingGridRef = document.querySelector('#myGrid');
- const eventLogRef = document.querySelector('.eventlog__log');
- const resetGridRef = document.querySelector('#reset-grid');
-
- // caption section
- const getCaptionRef = document.querySelector('#get-caption');
- const setCaptionRef = document.querySelector('#set-caption');
-
- /*
- * @descrption clear current event log header and text
- */
- const _clearEventLog = () => {
- if (eventLogRef) eventLogRef.innerHTML = '';
- }
-
- /**
- * @description used as replace param in JSON.stringify
- */
- function censor(key, value) {
- if (typeof(value) == "object") {
- return undefined;
- }
- return value;
- }
-
- /*
- * @description format data to be displayed in the event box
- * @param {*} logData - data to log on the screen
- * @param {String} [header] - text to define what is being shown
- */
- const _logCustomEvent = (logData, code) => {
- if (eventLogRef) {
- _clearEventLog();
- if (code) {
- eventLogRef.innerHTML += `${code}`;
- }
- if (logData) {
- var stringify = JSON.stringify(logData, censor, 2);
- if (stringify) {
- eventLogRef.innerHTML += stringify;
- } else {
- eventLogRef.innerHTML += '{{' + logData + '}}';
- }
- }
- }
- }
-
- /*
- * @description resets grid to default and clears log
- */
- const _resetGrid = () => {
- var inputs = document.querySelectorAll('.control__item input[type="text"]');
- for (var i = 0; i < inputs.length; i++) {
- inputs[i].value = '';
- }
-
- if (zingGridRef) {
- zingGridRef.setCaption('Meet The Doe Family');
- _clearEventLog();
- }
- }
-
- /*
- * @description get the current pageSize
- */
- const _getCaption = () => {
- if (zingGridRef) _logCustomEvent(zingGridRef.getCaption(), '>>> myGrid.getCaption();\n\n');
- }
-
- /*
- * @description set the grid caption value
- * @params {Event} e - native browser 'change' event
- */
- const _setCaption = (e) => {
- const mCaptionValue = e.target.value;
- if (zingGridRef) zingGridRef.setCaption(mCaptionValue);
- _logCustomEvent(null, '>>> myGrid.setCaption("' + mCaptionValue + '");')
- }
-
- // assign event listeners for inputs
- // -----------------------------------
- if (resetGridRef) resetGridRef.addEventListener('click', _resetGrid);
-
- // caption events
- if (setCaptionRef) setCaptionRef.addEventListener('keyup', _setCaption);
- if (getCaptionRef) getCaptionRef.addEventListener('click', _getCaption);
-
- _clearEventLog();
-
- // minimize event for console
- const _minimizeLog = () => {
- var consoleLog = document.querySelector('.eventlog');
- var consoleStyle = window.getComputedStyle(consoleLog, null);
- if (consoleStyle['minHeight'] === '0px') {
- consoleLog.style.height = '100%';
- consoleLog.style.minHeight = '175px';
- } else {
- consoleLog.style.height = '2rem';
- consoleLog.style.minHeight = '0px';
- }
- }
- const consoleMinimize = document.querySelector('.eventlog__minimize');
- if (consoleMinimize) consoleMinimize.addEventListener('click', _minimizeLog);