JSFiddle - React, Tailwind, and code Playground

by dru_zod

JavaScript

// queryStringBuilder
var write = function (text) {
        document.getElementsByTagName('body')[0].innerHTML += '<pre>' + JSON.stringify(text) + '</pre>';
    },
    queryString = {
        "metricType": "1,2016",
        "area": "E09000022:AdministrativeWard",
        "period": "latest",
        "value.valueType": "raw",
        "value2.valueType": "band",
        "value2.number": "3",
        "value2.within": "E09000022",
        "value3.valueType": "equalRanges",
        "value3.number": "",
        "query2.metricType": "2017",
        "query2.area": "E05000417",
        "query2.value.valueType": "standardDeviations",
        "query2.value.within": "E09000022",
        "columnGrouping": [
            "metricType",
            "period"
        ],
        "rowGrouping": "area"
    },
    actualResult,
    
    queryStringReader = (function (topNames, csvNames) {

            var propNameRegex = /^(\S+?)([0-9]*)$/,
                contains = function (arr, value) {
                    var i;
                    for (i = 0; i < arr.length; i++) {
                        if (arr[i] === value)
                            return true;
                    }
                    return false;
                },
                isTopName = function (name) {
                    return contains(topNames, name);
                },
                prepareValue = function (name, value) {
                    if (typeof value !== 'string' || !contains(csvNames, name))
                        return value;
                    return value.split(',');
                },
                expandObject = function (result, qs) {
                    var name, split;

                    for (name in qs) {
                        split = name.split('.');
                        if (split.length === 0)
                            continue;
                        if (topNames && topNames.length) {
                            if (!isTopName(split[0].match(propNameRegex)[1])) {
         ...