Home Reference Source

js/template/SwappingTemplate.js

import Template from '~/template/Template';
import SwappingViewController from '~/controllers/SwappingViewController';

/**
 * Handles swapping
 */
export default class SwappingTemplate extends Template {
    constructor(root = Template.empty.unique()) {
        super(root);

        /** @type {SwappingViewController} */
        this.controller = new SwappingViewController(root);
    }

    /**
     * Displays alternate
     * @param {Node|Template} alternate
     */
    displayAlternate(alternate) {
        if (alternate instanceof Node) {
            this.controller.displayAlternate(new Template(alternate));
        } else {
            this.controller.displayAlternate(alternate);
        }
    }

    /**
     * Restores original
     */
    restoreOriginal() {
        this.controller.restoreOriginal();
    }
}