mirror(form_id, input_name) {
        this._checkInit(form_id);
        const input = this._collection[form_id].getInput(input_name);
        if (!(input instanceof HTMLInputElement)) {
            // make sure it is normal input and not RadioNodeList or other interfaces which don't have addEventListener
            throw new Error('Cannot mirror radio buttons or checkboxes.')
        }
        if (this._mirrorCollection[form_id] === undefined) {
            this._mirrorCollection[form_id] = {};
        }
        this._mirrorCollection[form_id][input_name] = true;

        //const input = document.forms[form_id].elements[input_name];
        this.setMirrors(form_id, input_name);
        input.addEventListener('change', () => {
            this.setMirrors(form_id, input_name);
        });
    }
Mirrors real DOM input's value with any DOM element (two-way data binding)
All DOM elements with attribute data-mirror="form_id.input_name" are always updated when input value changed
@param {string} form_id
@param {string} input_name