Home Reference Source

js/template/Form/EncodingInputTemplate.js

import Encoding from '~/models/Encoding';
import SearchInputTemplate from '~/template/Form/SearchInputTemplate';
import EncodingTemplate, { EncodingFixedTemplate } from '~/template/EncodingTemplate';

/**
 * Encoding picker template.
 * @extends {SearchInputTemplate}
 */
export default class EncodingInputTemplate extends SearchInputTemplate {
    /**
     * Pass the query from {@link Encoding.query} which is async.
     * @param {Query<Encoding>} query
     */
    constructor(query) {
        super({
            query: query,
            placeholder: 'Encoding'
        });
    }

    // MARK: - SearchInputTemplate
    /** @override */
    resultTemplateFor(result) {
        return new EncodingTemplate(result);
    }

    /** @override */
    fixedTemplateFor(result) {
        return new EncodingFixedTemplate(result);
    }

    /** @override */
    observeCancelFor(template) {
        return template.observeCancel();
    }

    /** @override */
    compare(a, b) {
        return a.name === b.name;
    }
}