import { BaseItem } from './base-item';
export class EditItem extends BaseItem {
    constructor(id, title, initialText, isPassword = false) {
        super(id, title);
        this.initialText = initialText;
        this.isPassword = isPassword;
        this.contents = initialText;
    }
    getDOMNode() {
        const node = document.createElement('div');
        const label = document.createElement('label');
        label.setAttribute('for', `edit_${this.id}`);
        label.textContent = this.title;
        const editField = document.createElement('input');
        editField.id = `edit_${this.id}`;
        editField.value = this.contents;
        editField.addEventListener('keydown', this.onChange.bind(this));
        editField.addEventListener('focus', this.onFocus.bind(this));
        if (this.isPassword) {
            editField.type = 'password';
        }
        node.appendChild(label);
        node.appendChild(editField);
        node.addEventListener('focus', this.onFocus.bind(this));
        this.editField = editField;
        this.label = label;
        this.container = node;
        return node;
    }
    getContents() {
        return this.editField.value;
    }
    onChange(event) {
        this.emit('update', {
            type: 'edit',
            value: this.editField.value
        });
    }
    focus() {
        this.editField && this.editField.focus();
    }
}
