UNPKG

sf-i-events

Version:
398 lines • 13.6 kB
const validateName = (name) => { if ((name + "").length > 2) { return true; } return false; }; function createDiagonalPattern1(color) { // create a 10x10 px canvas for the pattern's base shape let shape = document.createElement('canvas'); shape.width = 10; shape.height = 10; // get the context for drawing let c = shape.getContext('2d'); // draw 1st line of the shape c.strokeStyle = color; c.lineWidth = 3; c.beginPath(); c.moveTo(2, 0); c.lineTo(10, 8); c.stroke(); // draw 2nd line of the shape c.beginPath(); c.moveTo(2, 10); c.lineTo(0, 8); c.stroke(); // create the pattern from the shape return c.createPattern(shape, 'repeat'); } // function createDiagonalPattern2(color: string) { // let shape = document.createElement('canvas') // shape.width = 10 // shape.height = 10 // // get the context for drawing // let c = shape.getContext('2d') // // draw 1st line of the shape // c!.beginPath(); // c!.rect(2, 2, 8, 8) // c!.fillStyle = color; // c!.fill(); // // create the pattern from the shape // return c!.createPattern(shape, 'repeat') // } function createDiagonalPattern2(color) { // create a 10x10 px canvas for the pattern's base shape let shape = document.createElement('canvas'); shape.width = 10; shape.height = 10; // get the context for drawing let c = shape.getContext('2d'); // draw 1st line of the shape c.beginPath(); c.rect(1, 1, 9, 9); c.fillStyle = color; c.fill(); c.lineWidth = 1; c.strokeStyle = color; c.stroke(); // create the pattern from the shape // create tick //draw tick c.beginPath(); c.moveTo(2, 2); c.lineTo(8, 8); c.moveTo(2, 8); c.lineTo(8, 2); c.lineWidth = 2; c.strokeStyle = '#fff'; c.stroke(); return c.createPattern(shape, 'repeat'); } function createDiagonalPattern3(color) { // create a 10x10 px canvas for the pattern's base shape let shape = document.createElement('canvas'); shape.width = 10; shape.height = 10; // get the context for drawing let c = shape.getContext('2d'); // draw 1st line of the shape c.beginPath(); c.rect(1, 1, 9, 9); c.fillStyle = color; c.fill(); c.lineWidth = 1; c.strokeStyle = color; c.stroke(); // create the pattern from the shape // create tick //draw tick c.beginPath(); c.moveTo(2, 5); c.lineTo(4, 7); c.lineTo(8, 2); c.lineWidth = 2; c.strokeStyle = '#fff'; c.stroke(); return c.createPattern(shape, 'repeat'); } // function createDiagonalPattern3(color: string) { // // create a 10x10 px canvas for the pattern's base shape // let shape = document.createElement('canvas') // shape.width = 14 // shape.height = 14 // // get the context for drawing // let c = shape.getContext('2d') // // draw 1st line of the shape // c!.beginPath(); // c!.arc(7, 7, 6, 0, 2 * Math.PI, false); // c!.fillStyle = color; // c!.fill(); // c!.lineWidth = 1; // c!.strokeStyle = color; // c!.stroke(); // // create the pattern from the shape // // create tick // //draw tick // c!.beginPath(); // c!.moveTo(4,6); // c!.lineTo(6,9); // c!.lineTo(10,4); // c!.lineWidth = 2; // c!.strokeStyle = '#fff'; // c!.stroke(); // return c!.createPattern(shape, 'repeat') // } // function createDiagonalPattern3(color: string) { // // create a 10x10 px canvas for the pattern's base shape // let shape = document.createElement('canvas') // shape.width = 10 // shape.height = 10 // // get the context for drawing // let c = shape.getContext('2d') // // draw 1st line of the shape // c!.beginPath(); // c!.arc(5, 5, 4, 0, 2 * Math.PI, false); // c!.fillStyle = color; // c!.fill(); // c!.lineWidth = 1; // c!.strokeStyle = color; // c!.stroke(); // // create the pattern from the shape // return c!.createPattern(shape, 'repeat') // } const timeSince = (date) => { var seconds = Math.floor((new Date().getTime() - date) / 1000); if (seconds > 0) { var interval = seconds / 31536000; if (interval > 1) { return Math.floor(interval) + " years ago"; } interval = seconds / 2592000; if (interval > 1) { return Math.floor(interval) + " months ago"; } interval = seconds / 86400; if (interval > 1) { return Math.floor(interval) + " days ago"; } interval = seconds / 3600; if (interval > 1) { return Math.floor(interval) + " hours ago"; } interval = seconds / 60; if (interval > 1) { return Math.floor(interval) + " minutes ago"; } return Math.floor(seconds) + " seconds ago"; } else { var interval = Math.abs(seconds) / 31536000; console.log('timesince', seconds); console.log('interval year', interval); if (interval > 1) { return Math.floor(interval) + " years later"; } interval = Math.abs(seconds) / 2592000; console.log('interval months', interval); if (interval > 1) { return Math.floor(interval) + " months later"; } interval = Math.abs(seconds) / 86400; console.log('interval days', interval); if (interval > 1) { return Math.floor(interval) + " days later"; } interval = Math.abs(seconds) / 3600; console.log('interval hours', interval); if (interval > 1) { return Math.floor(interval) + " hours later"; } interval = Math.abs(seconds) / 60; if (interval > 1) { return Math.floor(interval) + " minutes later"; } return Math.floor(Math.abs(seconds)) + " seconds"; } }; function readCookie(key) { let name = key + "="; let decodedCookie = decodeURIComponent(document.cookie); let ca = decodedCookie.split(';'); for (let i = 0; i < ca.length; i++) { let c = ca[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } return ""; } async function callApi(url, data, authorization) { return new Promise((resolve) => { const jsonData = JSON.stringify(data); var xhr = new XMLHttpRequest(); xhr.addEventListener("readystatechange", () => { if (xhr != null) { if (xhr.readyState === 4) { resolve(xhr); } } }); xhr.open("POST", url); xhr.timeout = 1800000; xhr.setRequestHeader("Content-Type", "application/json"); xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); if (authorization != null) { xhr.setRequestHeader('Authorization', 'Basic ' + authorization); } xhr.send(jsonData); return xhr; }); } async function callApiPresignedDelete(url) { return new Promise((resolve) => { var xhr = new XMLHttpRequest(); xhr.addEventListener("readystatechange", () => { if (xhr != null) { if (xhr.readyState === 4) { resolve(xhr); } } }); xhr.open("DELETE", url); xhr.timeout = 1800000; xhr.setRequestHeader("Content-Type", "application/json"); xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); xhr.send(null); return xhr; }); } async function callApiPresignedGet(url) { return new Promise((resolve) => { var xhr = new XMLHttpRequest(); xhr.addEventListener("readystatechange", () => { if (xhr != null) { if (xhr.readyState === 4) { resolve(xhr); } } }); xhr.open("GET", url); xhr.timeout = 1800000; xhr.setRequestHeader("Content-Type", "application/json"); xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); xhr.send(null); return xhr; }); } async function callApiPresigned(url, data) { return new Promise((resolve) => { const jsonData = JSON.stringify(data); var xhr = new XMLHttpRequest(); xhr.addEventListener("readystatechange", () => { if (xhr != null) { if (xhr.readyState === 4) { resolve(xhr); } } }); xhr.open("PUT", url); xhr.timeout = 1800000; xhr.setRequestHeader("Content-Type", "application/json"); xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); xhr.send(jsonData); return xhr; }); } function getRandomColor() { var letters = '0123456789ABCDEF'; var color = '#'; for (var i = 0; i < 6; i++) { color += letters[Math.floor(Math.random() * 16)]; } return color; } function isInteger(value) { return /^-?\d+$/.test(value); } function clearListeners(old_element) { var _a; var new_element = old_element.cloneNode(true); (_a = old_element.parentNode) === null || _a === void 0 ? void 0 : _a.replaceChild(new_element, old_element); return new_element; } function jsonObjectToHtml(json) { var html = ''; for (var i = 0; i < Object.keys(json).length; i++) { var key = Object.keys(json)[i]; html += '<div>'; html += ('<span style="margin-left: 0px; padding-left: 0px">' + key + ':</span>&nbsp;'); html += ('<span class="td-body" part="td-head"><sf-i-elastic-text text="' + json[key].replace(/"/g, '') + '" lineSize="6" minLength="10"></sf-i-elastic-text></span>'); html += '</div>'; } return html; } function convertToCSV(arr) { const array = [Object.keys(arr[0])].concat(arr); let fieldsArr = Object.keys(arr[0]); return array.map((it, index) => { var _a; let strIt = ""; for (let [i, objkey] of Object.keys(it).entries()) { if (index == 0) { strIt += "\"" + it[objkey].replace(/"/g, "\"\"") + "\""; } else { strIt += "\"" + JSON.stringify((_a = it[fieldsArr[i]]) !== null && _a !== void 0 ? _a : "").replace(/"/g, "\"\"") + "\""; } if (i < (Object.keys(it).length - 1)) { strIt += ","; } } return strIt; }).join('\n'); } function parseCsv(csv) { const re = /(,|\r?\n|\r|^)(?:"([^"]*(?:""[^"]*)*)"|([^,\r\n]*))/gi; const result = [[]]; let matches; while ((matches = re.exec(csv))) { if (matches[1].length && matches[1] !== ',') result.push([]); result[result.length - 1].push(matches[2] !== undefined ? matches[2].replace(/""/g, '"') : matches[3]); } console.log('csv arr result', result, result.length); let csvResult = arrayToObject(result); return csvResult; } function arrayToObject(csvArray) { //Take the first line (headers) from the array and remove it from the array. const headers = csvArray.shift(); // Iterate through the rows and reduce each column to an object return csvArray.filter((row) => { console.log('csv object keys lngth', Object.keys(row).length); return Object.keys(row).length > 1; }).map((row, index) => { return headers.reduce((acc, currentHeader, i) => { console.log('parsing row', row[i], index); return ((currentHeader.indexOf('cols_') >= 0 || currentHeader == '') ? acc : ((row[i] != '' && row[i] != null) ? { ...acc, ...{ [currentHeader]: JSON.parse(row[i] == "TRUE" ? "true" : row[i]) } } : acc)); }, {}); }); } function titleCase(str) { var splitStr = str.toLowerCase().split(' '); for (var i = 0; i < splitStr.length; i++) { // You do not need to check if i is larger than splitStr length, as your for does that for you // Assign it back to the array splitStr[i] = splitStr[i].charAt(0).toUpperCase() + splitStr[i].substring(1); } // Directly return the joined string return splitStr.join(' '); } function alphabeticalSort(arr) { let arrSorted = arr.sort((a, b) => { return a.trim().toLowerCase().localeCompare(b.trim().toLowerCase()); }); return arrSorted; } function percentageString(val, valTotal) { if (valTotal == 0) { return ""; } let num = (100 * val) / valTotal; return " (" + (Math.round((num + Number.EPSILON) * 100) / 100) + "%)"; } function getCurrentFiscal() { let date = new Date(); if (date.getMonth() < 4) { return (date.getFullYear() - 1); } return date.getFullYear(); } const exportFunctions = { callApiPresignedDelete, callApiPresignedGet, callApiPresigned, jsonObjectToHtml, clearListeners, isInteger, callApi, validateName, readCookie, timeSince, createDiagonalPattern1, createDiagonalPattern2, createDiagonalPattern3, getRandomColor, convertToCSV, parseCsv, titleCase, alphabeticalSort, percentageString, getCurrentFiscal }; export default exportFunctions; //# sourceMappingURL=util.js.map