document.addEventListener("DOMContentLoaded", function() {
    setTimeout(function() {

        function getReadOnlyData() {
        return [{
            car: "Nissan",
            year: 2012,
            chassis: "black",
            bumper: "black"
        }, {
            car: "Nissan",
            year: 2013,
            chassis: "blue",
            bumper: "blue"
        }, {
            car: "Chrysler",
            year: 2014,
            chassis: "yellow",
            bumper: "black"
        }, {
            car: "Volvo",
            year: 2015,
            chassis: "white",
            bumper: "gray"
        }]
    }

    function getDisableData() {
        return [{
            car: "Nissan",
            year: 2012,
            chassis: "black",
            bumper: "black"
        }, {
            car: "Nissan",
            year: 2013,
            chassis: "blue",
            bumper: "blue"
        }, {
            car: "Chrysler",
            year: 2014,
            chassis: "yellow",
            bumper: "black"
        }, {
            car: "Volvo",
            year: 2015,
            chassis: "white",
            bumper: "gray"
        }]
    }
    var settings1, ipValidatorRegexp, emailValidator, people = [{
            id: 1,
            name: {
                first: "Joe",
                last: "Fabiano"
            },
            ip: "0.0.0.1",
            email: "Joe.Fabiano@ex.com"
        }, {
            id: 2,
            name: {
                first: "Fred",
                last: "Wecler"
            },
            ip: "0.0.0.1",
            email: "Fred.Wecler@ex.com"
        }, {
            id: 3,
            name: {
                first: "Steve",
                last: "Wilson"
            },
            ip: "0.0.0.1",
            email: "Steve.Wilson@ex.com"
        }, {
            id: 4,
            name: {
                first: "Maria",
                last: "Fernandez"
            },
            ip: "0.0.0.1",
            email: "M.Fernandez@ex.com"
        }, {
            id: 5,
            name: {
                first: "Pierre",
                last: "Barbault"
            },
            ip: "0.0.0.1",
            email: "Pierre.Barbault@ex.com"
        }, {
            id: 6,
            name: {
                first: "Nancy",
                last: "Moore"
            },
            ip: "0.0.0.1",
            email: "Nancy.Moore@ex.com"
        }, {
            id: 7,
            name: {
                first: "Barbara",
                last: "MacDonald"
            },
            ip: "0.0.0.1",
            email: "B.MacDonald@ex.com"
        }, {
            id: 8,
            name: {
                first: "Wilma",
                last: "Williams"
            },
            ip: "0.0.0.1",
            email: "Wilma.Williams@ex.com"
        }, {
            id: 9,
            name: {
                first: "Sasha",
                last: "Silver"
            },
            ip: "0.0.0.1",
            email: "Sasha.Silver@ex.com"
        }, {
            id: 10,
            name: {
                first: "Don",
                last: "Pérignon"
            },
            ip: "0.0.0.1",
            email: "Don.Pérignon@ex.com"
        }, {
            id: 11,
            name: {
                first: "Aaron",
                last: "Kinley"
            },
            ip: "0.0.0.1",
            email: "Aaron.Kinley@ex.com"
        }];
        example1 = document.getElementById("validation"),
        example1console = document.getElementById("example1console");
    ipValidatorRegexp = /^(?:\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b|null)$/, emailValidator = function(value, callback) {
        setTimeout(function() {
            callback(/.+@.+/.test(value) ? !0 : !1)
        }, 1e3)
    }, settings1 = {
        data: people,
        beforeChange: function(changes, source) {
            for (var i = changes.length - 1; i >= 0; i--)
                if ("foo" === changes[i][3]) changes.splice(i, 1);
                else {
                    if ("nuke" === changes[i][3]) return !1;
                    "name.first" !== changes[i][1] && "name.last" !== changes[i][1] || !changes[i][3].charAt(0) || (changes[i][3] = changes[i][3].charAt(0).toUpperCase() + changes[i][3].slice(1))
                }
        },
        afterChange: function(changes, source) {
            "loadData" !== source && (example1console.innerText = JSON.stringify(changes))
        },
        colHeaders: ["ID", "First name", "Last name", "IP", "E-mail"],
        columns: [{
            data: "id",
            type: "numeric"
        }, {
            data: "name.first"
        }, {
            data: "name.last"
        }, {
            data: "ip",
            validator: ipValidatorRegexp,
            allowInvalid: !0
        }, {
            data: "email",
            validator: emailValidator,
            allowInvalid: !1
        }]
    };
    var hot1, hot = new Handsontable(example1, settings1),
        data = [
            ["", "Kia", "Nissan", "Toyota", "Honda"],
            ["2012", 10, 11, 12, 13],
            ["2013", 20, 11, 14, 13],
            ["2014", 30, 15, 12, 13],
            ["2015", "", "", "", ""],
            ["2016", "", "", "", ""]
        ],
        container = document.getElementById("drag");
    hot1 = new Handsontable(container, {
        rowHeaders: !0,
        colHeaders: !0,
        fillHandle: !0
    }), hot1.loadData(data);
    var hot, container = document.getElementById("merged");
    hot = new Handsontable(container, {
        data: Handsontable.helper.createSpreadsheetData(25, 18),
        colWidths: [47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47],
        rowHeaders: !0,
        colHeaders: !0,
        contextMenu: !0,
        mergeCells: [{
            row: 1,
            col: 1,
            rowspan: 3,
            colspan: 3
        }, {
            row: 3,
            col: 4,
            rowspan: 2,
            colspan: 2
        }, {
            row: 5,
            col: 6,
            rowspan: 3,
            colspan: 3
        }]
    });
    var hot1, container = document.getElementById("alignment");
    hot1 = new Handsontable(container, {
        data: Handsontable.helper.createSpreadsheetData(25, 18),
        colWidths: [47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47],
        rowHeaders: !0,
        colHeaders: !0,
        contextMenu: !0,
        mergeCells: [{
            row: 1,
            col: 1,
            rowspan: 3,
            colspan: 3
        }, {
            row: 3,
            col: 4,
            rowspan: 2,
            colspan: 2
        }],
        className: "htCenter",
        cell: [{
            row: 0,
            col: 0,
            className: "htRight"
        }, {
            row: 1,
            col: 1,
            className: "htLeft htMiddle"
        }, {
            row: 3,
            col: 4,
            className: "htLeft htBottom"
        }],
        afterSetCellMeta: function(row, col, key, val) {}
    });
    var hot1, container1 = document.getElementById("readOnly");
    hot1 = new Handsontable(container1, {
        data: getReadOnlyData(),
        colHeaders: ["Car", "Year", "Chassis color", "Bumper color"],
        columns: [{
            data: "car",
            readOnly: !0
        }, {
            data: "year"
        }, {
            data: "chassis"
        }, {
            data: "bumper"
        }]
    });
    var hot1, container1 = document.getElementById("nonEditable");
    hot1 = new Handsontable(container1, {
        data: getDisableData(),
        colHeaders: ["Car", "Year", "Chassis color", "Bumper color"],
        columns: [{
            data: "car",
            editor: !1
        }, {
            data: "year",
            editor: "numeric"
        }, {
            data: "chassis",
            editor: "text"
        }, {
            data: "bumper",
            editor: "text"
        }]
    })
    }, 800);
});