corrade-nucleus-nucleons – Rev 7

Subversion Repositories:
Rev:
/*! was - v1.0.0 - 2017-05-28 
* http://grimore.org
* Copyright (c) 2017 Wizardry and Steamworks <office@grimore.org>; Licensed GPL-3.0 */
/*    Copyright (C) 2017 Wizardry and Steamworks - License: GNU GPLv3    */
/*************************************************************************/
if (!Array.prototype.product) {
    Array.prototype.product = function(b) {
        var a = this;
        return $.map(
            new Array(Math.max(this.length, a.length)),
            function(e, i) {
                var o = {};
                o[a[i]] = b[i];
                return o;
        });
    };
}
$.extend({
    product: function(a, b) {
        return $.map(
            new Array(Math.max(this.length, a.length)),
            function(e, i) {
                var o = {};
                o[a[i]] = b[i];
                return o;
        });
    }
});

/*************************************************************************/
/*    Copyright (C) 2017 Wizardry and Steamworks - License: GNU GPLv3    */
/*************************************************************************/
if (!Array.prototype.stride) {
    Array.prototype.stride = function(s) {
        return this.filter(function(e, i) {
            return i % s === 0;
        });
    };
}
$.extend({
    stride: function(a, s) {
        return a.filter(function(e, i) {
            return i % s === 0;
        });
    }
});

/*************************************************************************/
/*    Copyright (C) 2017 Wizardry and Steamworks - License: GNU GPLv3    */
/*************************************************************************/
if (!Array.prototype.chunk) {
    Array.prototype.chunk = function(n) {
        if (!this.length) {
            return [];
        }
        return [this.slice(0, n)]
            .concat(this.slice(n).chunk(n));
    };
}
$.extend({
    chunk: function(a, n) {
        if (!a.length) {
            return [];
        }
        return [a.slice(0, n)]
            .concat(a.slice(n).chunk(n));
    }
});

///////////////////////////////////////////////////////////////////////////
//    Copyright (C) 2016 Wizardry and Steamworks - License: GNU GPLv3    //
///////////////////////////////////////////////////////////////////////////
function wasCSVToArray(csv) {
    var l = [];
    var s = [];
    var m = "";
 
    do {
        var a = csv.charAt(0);
        csv = csv.slice(1, csv.length);
        if(a === ",") {
            if(s[s.length-1] !== '"') {
                l.push(m);
                m = "";
                continue;
            }
            m += a;
            continue;
        }
        if(a === '"' && csv.charAt(0) === a) {
            m += a;
            csv = csv.slice(1, csv.length);
            continue;
        }
        if(a === '"') {
            if(s[s.length-1] !== a) {
                s.push(a);
                continue;
            }
            s.pop();
            continue;
        }
        m += a;
    } while(csv !== "");
 
    l.push(m);
 
    return l;
}

///////////////////////////////////////////////////////////////////////////
//    Copyright (C) 2016 Wizardry and Steamworks - License: GNU GPLv3    //
///////////////////////////////////////////////////////////////////////////
function wasArrayToCSV(a) {
    var csv = [];
    for(var i=0; i<a.length; ++i) {
        var cell = a[i].toString().replace('"', '""');
        if(/"\s,\r\n/.test(cell)) {
            csv[i] = '"' + cell + '"';
            continue;
        }
        csv[i] = cell;
    }
    return csv.join();
}