Source: ui/passage.js

"use strict";

/**
 * @module montage/ui/passage
 */
var Montage = require("core/core").Montage;

/**
 * @class Passage
 * @augments Montage
 */
exports.Passage = Montage.specialize(/** @lends Passage.prototype */{
    /**
     * Use this to diffirentiate one type of passage from another. For example, when there are
     * multiple ways to passage from the same source to the same destination,
     * such as 2 buttons that lead to 2 different setting screens, you can switch on this identifier.
     *
     * @name Component#identifier
     * @property {?String}
     */

    /**
     * The component visible before the passage.
     *
     * @property {?Component}
     */
    source: {value: null},

    /**
     * The component visible after the passage.
     *
     * @property {?Component}
     */
    destination: {value: null},

    /**
     * @inheritdoc Component#buildInCssClass
     */
    buildInCssClass: {value: undefined},

    /**
     * @inheritdoc Component#buildInTransitionCssClass
     */
    buildInTransitionCssClass: {value: undefined},

    /**
     * @inheritdoc Component#buildOutCssClass
     */
    buildOutCssClass: {value: undefined},

    /**
     * @property {*}
     */
    sourceData: {value: null},

    /**
     * @property {*}
     */
    destinationData: {value: null}
});