    constructor(options) {
        this.__globalCounter = 0;
        this.options = options;
        this.id = options.id;
        this.container = options.container;
        this.classes = options.classes;
        this.table_title = options.title;
        this.header = options.header;
        this.onAddition = options.onAddition;
        this.onRemove = options.onRemove;
        this.header.push("Action");
        this.row_num = this.header.length;
        this.data = options.data === undefined ? [] : options.data;
        this.tr_id_mapping = {};
        this.control_items = options.control_items;
        this.header_action_button = options.header_action_button === undefined ? {} : options.header_action_button;
        if (options.header_action_button !== undefined) {
            this.header_action_button_style = this.header_action_button.style === undefined ? {} : this.header_action_button.style;
            this.additionEnabled = this.header_action_button.additionEnabled === undefined ? true : this.header_action_button.additionEnabled;
            this.additionButtonDisabled = this.header_action_button.disabled === undefined ? false : this.header_action_button.disabled;
        } else {
            this.header_action_button_style = {};
            this.additionEnabled = true;
            this.additionButtonDisabled = false;
        }

        this.row_action_button = options.row_action_button === undefined ? {} : options.row_action_button;
        if (options.row_action_button !== undefined) {
            this.row_action_button_style = this.row_action_button.style === undefined ? {} : this.row_action_button.style;
            this.removalEnabled = this.row_action_button.removalEnabled === undefined ? true : this.row_action_button.removalEnabled;
        } else {
            this.row_action_button_style = {};
            this.removalEnabled = true;
        }

        this.selects = {};

        this.__create_table();
    }
The software does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.