JSFiddle - React, Tailwind, and code Playground
by cliftonm
JavaScript
// "Extension methods"
Array.prototype.any = function (predicate) {
for (var i = 0; i < this.length; i++) {
if (predicate) {
var any = predicate(this[i]);
if (any) {
return true;
}
}
}
return false;
}
/*
enumProto.any = function (predicate) {
var any = false;
this.forEach(function (elem, index) {
if (predicate) {
any = predicate(elem, index);
return !any;
}
any = true;
return false;
});
return any;
};
*/
class Helpers {
// From SO: https://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript
static uuidv4() {
return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g,
c => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16))
}
// https://stackoverflow.com/questions/17824145/parse-svg-transform-attribute-with-javascript
static parseTransform(transform) {
var transforms = {};
for (var i in a = transform.match(/(\w+\((\-?\d+\.?\d*e?\-?\d*,?)+\))+/g)) {
var c = a[i].match(/[\w\.\-]+/g);
transforms[c.shift()] = c;
}
return transforms;
}
static getElement(id) {
var svg = document.getElementById(Constants.SVG_ELEMENT_ID);
var el = svg.getElementById(id);
return el;
}
static getElements(className) {
var svg = document.getElementById(Constants.SVG_ELEMENT_ID);
var els = svg.getElementsByClassName(className);
return els;
}
// Create the specified element with the attributes provided in a key-value dictionary.
static createElement(elementName, attributes) {
var el = document.createElementNS(Constants.SVG_NS, elementName);
// Create a unique ID for the element so we can acquire the correct shape...