JSFiddle - React, Tailwind, and code Playground

by Prathameshsb

JavaScript

// From d3-threeD.js
			/* This Source Code Form is subject to the terms of the Mozilla Public
			 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
			 * You can obtain one at http://mozilla.org/MPL/2.0/. */
			function d3threeD(exports) {
				const DEGS_TO_RADS = Math.PI / 180, UNIT_SIZE = 100;
				const DIGIT_0 = 48, DIGIT_9 = 57, COMMA = 44, SPACE = 32, PERIOD = 46, MINUS = 45;
				exports.transformSVGPath =
				function transformSVGPath(pathStr) {
					var path = new THREE.ShapePath();
					var idx = 1, len = pathStr.length, activeCmd,
						x = 0, y = 0, nx = 0, ny = 0, firstX = null, firstY = null,
						x1 = 0, x2 = 0, y1 = 0, y2 = 0,
						rx = 0, ry = 0, xar = 0, laf = 0, sf = 0, cx, cy;
					function eatNum() {
						var sidx, c, isFloat = false, s;
						// eat delims
						while (idx < len) {
							c = pathStr.charCodeAt(idx);
							if (c !== COMMA && c !== SPACE)
								break;
							idx++;
						}
						if (c === MINUS)
							sidx = idx++;
						else
							sidx = idx;
						// eat number
						while (idx < len) {
							c = pathStr.charCodeAt(idx);
							if (DIGIT_0 <= c && c <= DIGIT_9) {
								idx++;
								continue;
							}
							else if (c === PERIOD) {
								idx++;
								isFloat = true;
								continue;
							}
							s = pathStr.substring(sidx, idx);
							return isFloat ? parseFloat(s) : parseInt(s);
						}
						s = pathStr.substring(sidx);
						return isFloat ? parseFloat(s) : parseInt(s);
					}
					function nextIsNum() {
						var c;
						// do permanently eat any delims...
						while (idx < len) {
							c = pathStr.charCodeAt(idx);
							if (c !== COMMA && c !== SPACE)
								break;
							idx++;
						}
						c = pathStr.charCodeAt(idx);
						return (c === MINUS || (DIGIT_0 <= c && c <= DIGIT_9));
					}
					var canRepeat;
					activeCmd = pathStr[0];
					while (idx <= len) {
						canRepeat = true;
						switch (activeCmd) {
							// moveto commands, become lineto's if...