"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var utils_1 = require('./../common/utils.js'); var getClassNames = function getClassNames(name) { return { enter: "van-" + name + "-enter van-" + name + "-enter-active enter-class enter-active-class", 'enter-to': "van-" + name + "-enter-to van-" + name + "-enter-active enter-to-class enter-active-class", leave: "van-" + name + "-leave van-" + name + "-leave-active leave-class leave-active-class", 'leave-to': "van-" + name + "-leave-to van-" + name + "-leave-active leave-to-class leave-active-class" }; }; var nextTick = function nextTick() { return new Promise(function (resolve) { return setTimeout(resolve, 1000 / 30); }); }; exports.transition = function (showDefaultValue) { return Behavior({ properties: { customStyle: String, show: { type: Boolean, value: showDefaultValue, observer: 'observeShow' }, duration: { type: [Number, Object], value: 300, observer: 'observeDuration' }, name: { type: String, value: 'fade' } }, data: { type: '', inited: false, display: false }, attached: function attached() { if (this.data.show) { this.enter(); } }, methods: { observeShow: function observeShow(value) { if (value) { this.enter(); } else { this.leave(); } }, enter: function enter() { var _this = this; var _a = this.data, duration = _a.duration, name = _a.name; var classNames = getClassNames(name); var currentDuration = utils_1.isObj(duration) ? duration.leave : duration; this.status = 'enter'; Promise.resolve().then(nextTick).then(function () { _this.checkStatus('enter'); _this.set({ inited: true, display: true, classes: classNames.enter, currentDuration: currentDuration }); }).then(nextTick).then(function () { _this.checkStatus('enter'); _this.set({ classes: classNames['enter-to'] }); }).catch(function () {}); }, leave: function leave() { var _this = this; var _a = this.data, duration = _a.duration, name = _a.name; var classNames = getClassNames(name); var currentDuration = utils_1.isObj(duration) ? duration.leave : duration; this.status = 'leave'; Promise.resolve().then(nextTick).then(function () { _this.checkStatus('leave'); _this.set({ classes: classNames.leave, currentDuration: currentDuration }); }).then(function () { return setTimeout(function () { return _this.onTransitionEnd(); }, currentDuration); }).then(nextTick).then(function () { _this.checkStatus('leave'); _this.set({ classes: classNames['leave-to'] }); }).catch(function () {}); }, checkStatus: function checkStatus(status) { if (status !== this.status) { throw new Error("incongruent status: " + status); } }, onTransitionEnd: function onTransitionEnd() { if (!this.data.show) { this.set({ display: false }); this.$emit('transitionEnd'); } } } }); }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRyYW5zaXRpb24uanMiXSwibmFtZXMiOlsiT2JqZWN0IiwidmFsdWUiLCJ1dGlsc18xIiwicmVxdWlyZSIsImdldENsYXNzTmFtZXMiLCJlbnRlciIsImxlYXZlIiwibmV4dFRpY2siLCJzZXRUaW1lb3V0IiwiZXhwb3J0cyIsInByb3BlcnRpZXMiLCJjdXN0b21TdHlsZSIsInNob3ciLCJ0eXBlIiwib2JzZXJ2ZXIiLCJkdXJhdGlvbiIsIm5hbWUiLCJkYXRhIiwiaW5pdGVkIiwiZGlzcGxheSIsImF0dGFjaGVkIiwibWV0aG9kcyIsIm9ic2VydmVTaG93IiwiX3RoaXMiLCJfYSIsImNsYXNzTmFtZXMiLCJjdXJyZW50RHVyYXRpb24iLCJQcm9taXNlIiwiY2xhc3NlcyIsImNoZWNrU3RhdHVzIiwic3RhdHVzIiwib25UcmFuc2l0aW9uRW5kIl0sIm1hcHBpbmdzIjoiOztBQUNBQSxPQUFBQSxjQUFBQSxDQUFBQSxPQUFBQSxFQUFBQSxZQUFBQSxFQUE2QyxFQUFFQyxPQUEvQ0QsSUFBNkMsRUFBN0NBO0FBQ0EsSUFBSUUsVUFBVUMsUUFBZCxzQkFBY0EsQ0FBZDtBQUNBLElBQUlDLGdCQUFnQixTQUFoQkEsYUFBZ0IsQ0FBQSxJQUFBLEVBQWdCO0FBQUUsV0FBUTtBQUMxQ0MsZUFBTyxTQUFBLElBQUEsR0FBQSxhQUFBLEdBQUEsSUFBQSxHQURtQyw4Q0FBQTtBQUUxQyxvQkFBWSxTQUFBLElBQUEsR0FBQSxnQkFBQSxHQUFBLElBQUEsR0FGOEIsaURBQUE7QUFHMUNDLGVBQU8sU0FBQSxJQUFBLEdBQUEsYUFBQSxHQUFBLElBQUEsR0FIbUMsOENBQUE7QUFJMUMsb0JBQVksU0FBQSxJQUFBLEdBQUEsZ0JBQUEsR0FBQSxJQUFBLEdBQTBDO0FBSlosS0FBUjtBQUF0QyxDQUFBO0FBTUEsSUFBSUMsV0FBVyxTQUFYQSxRQUFXLEdBQVk7QUFBRSxXQUFPLElBQUEsT0FBQSxDQUFZLFVBQUEsT0FBQSxFQUFtQjtBQUFFLGVBQU9DLFdBQUFBLE9BQUFBLEVB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QUpKSSxpQkFBQUEsRUFBQUEsSUFBQUEsQ0FTVSxZQUFZO0FBQUUsMkJBQU8sV0FBVyxZQUFZO0FBQUUsK0JBQU9KLE1BQVAsZUFBT0EsRUFBUDtBQUF6QixxQkFBQSxFQUFQLGVBQU8sQ0FBUDtBQVR4QkksaUJBQUFBLEVBQUFBLElBQUFBLENBQUFBLFFBQUFBLEVBQUFBLElBQUFBLENBV1UsWUFBWTtBQUNsQkosMEJBQUFBLFdBQUFBLENBQUFBLE9BQUFBO0FBQ0FBLDBCQUFBQSxHQUFBQSxDQUFVO0FBQ05LLGlDQUFTSCxXQUFBQSxVQUFBQTtBQURILHFCQUFWRjtBQWJKSSxpQkFBQUEsRUFBQUEsS0FBQUEsQ0FpQlcsWUFBWSxDQWpCdkJBLENBQUFBO0FBekNDLGFBQUE7QUE0RExFLHlCQUFhLFNBQUEsV0FBQSxDQUFBLE1BQUEsRUFBa0I7QUFDM0Isb0JBQUlDLFdBQVcsS0FBZixNQUFBLEVBQTRCO0FBQ3hCLDBCQUFNLElBQUEsS0FBQSxDQUFVLHlCQUFoQixNQUFNLENBQU47QUFDSDtBQS9EQSxhQUFBO0FBaUVMQyw2QkFBaUIsU0FBQSxlQUFBLEdBQVk7QUFDekIsb0JBQUksQ0FBQyxLQUFBLElBQUEsQ0FBTCxJQUFBLEVBQXFCO0FBQ2pCLHlCQUFBLEdBQUEsQ0FBUyxFQUFFWixTQUFYLEtBQVMsRUFBVDtBQUNBLHlCQUFBLEtBQUEsQ0FBQSxlQUFBO0FBQ0g7QUFDSjtBQXRFSTtBQTVCRyxLQUFULENBQVA7QUFESlYsQ0FBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciB1dGlsc18xID0gcmVxdWlyZShcIi4uL2NvbW1vbi91dGlsc1wiKTtcbnZhciBnZXRDbGFzc05hbWVzID0gZnVuY3Rpb24gKG5hbWUpIHsgcmV0dXJuICh7XG4gICAgZW50ZXI6IFwidmFuLVwiICsgbmFtZSArIFwiLWVudGVyIHZhbi1cIiArIG5hbWUgKyBcIi1lbnRlci1hY3RpdmUgZW50ZXItY2xhc3MgZW50ZXItYWN0aXZlLWNsYXNzXCIsXG4gICAgJ2VudGVyLXRvJzogXCJ2YW4tXCIgKyBuYW1lICsgXCItZW50ZXItdG8gdmFuLVwiICsgbmFtZSArIFwiLWVudGVyLWFjdGl2ZSBlbnRlci10by1jbGFzcyBlbnRlci1hY3RpdmUtY2xhc3NcIixcbiAgICBsZWF2ZTogXCJ2YW4tXCIgKyBuYW1lICsgXCItbGVhdmUgdmFuLVwiICsgbmFtZSArIFwiLWxlYXZlLWFjdGl2ZSBsZWF2ZS1jbGFzcyBsZWF2ZS1hY3RpdmUtY2xhc3NcIixcbiAgICAnbGVhdmUtdG8nOiBcInZhbi1cIiArIG5hbWUgKyBcIi1sZWF2ZS10byB2YW4tXCIgKyBuYW1lICsgXCItbGVhdmUtYWN0aXZlIGxlYXZlLXRvLWNsYXNzIGxlYXZlLWFjdGl2ZS1jbGFzc1wiXG59KTsgfTtcbnZhciBuZXh0VGljayA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJldHVybiBzZXRUaW1lb3V0KHJlc29sdmUsIDEwMDAgLyAzMCk7IH0pOyB9O1xuZXhwb3J0cy50cmFuc2l0aW9uID0gZnVuY3Rpb24gKHNob3dEZWZhdWx0VmFsdWUpIHtcbiAgICByZXR1cm4gQmVoYXZpb3Ioe1xuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICBjdXN0b21TdHlsZTogU3RyaW5nLFxuICAgICAgICAgICAgc2hvdzoge1xuICAgICAgICAgICAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICAgICAgICAgICAgdmFsdWU6IHNob3dEZWZhdWx0VmFsdWUsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXI6ICdvYnNlcnZlU2hvdydcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkdXJhdGlvbjoge1xuICAgICAgICAgICAgICAgIHR5cGU6IFtOdW1iZXIsIE9iamVjdF0sXG4gICAgICAgICAgICAgICAgdmFsdWU6IDMwMCxcbiAgICAgICAgICAgICAgICBvYnNlcnZlcjogJ29ic2VydmVEdXJhdGlvbidcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuYW1lOiB7XG4gICAgICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgICAgIHZhbHVlOiAnZmFkZSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdHlwZTogJycsXG4gICAgICAgICAgICBpbml0ZWQ6IGZhbHNlLFxuICAgICAgICAgICAgZGlzcGxheTogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgYXR0YWNoZWQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRhdGEuc2hvdykge1xuICAgICAgICAgICAgICAgIHRoaXMuZW50ZXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWV0aG9kczoge1xuICAgICAgICAgICAgb2JzZXJ2ZVNob3c6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVudGVyKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxlYXZlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVudGVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgICAgICAgICB2YXIgX2EgPSB0aGlzLmRhdGEsIGR1cmF0aW9uID0gX2EuZHVyYXRpb24sIG5hbWUgPSBfYS5uYW1lO1xuICAgICAgICAgICAgICAgIHZhciBjbGFzc05hbWVzID0gZ2V0Q2xhc3NOYW1lcyhuYW1lKTtcbiAgICAgICAgICAgICAgICB2YXIgY3VycmVudER1cmF0aW9uID0gdXRpbHNfMS5pc09iaihkdXJhdGlvbikgPyBkdXJhdGlvbi5sZWF2ZSA6IGR1cmF0aW9uO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdHVzID0gJ2VudGVyJztcbiAgICAgICAgICAgICAgICBQcm9taXNlLnJlc29sdmUoKVxuICAgICAgICAgICAgICAgICAgICAudGhlbihuZXh0VGljaylcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBfdGhpcy5jaGVja1N0YXR1cygnZW50ZXInKTtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMuc2V0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluaXRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzOiBjbGFzc05hbWVzLmVudGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudER1cmF0aW9uOiBjdXJyZW50RHVyYXRpb25cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4obmV4dFRpY2spXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMuY2hlY2tTdGF0dXMoJ2VudGVyJyk7XG4gICAgICAgICAgICAgICAgICAgIF90aGlzLnNldCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzOiBjbGFzc05hbWVzWydlbnRlci10byddXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoKSB7IH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxlYXZlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgICAgICAgICB2YXIgX2EgPSB0aGlzLmRhdGEsIGR1cmF0aW9uID0gX2EuZHVyYXRpb24sIG5hbWUgPSBfYS5uYW1lO1xuICAgICAgICAgICAgICAgIHZhciBjbGFzc05hbWVzID0gZ2V0Q2xhc3NOYW1lcyhuYW1lKTtcbiAgICAgICAgICAgICAgICB2YXIgY3VycmVudER1cmF0aW9uID0gdXRpbHNfMS5pc09iaihkdXJhdGlvbikgPyBkdXJhdGlvbi5sZWF2ZSA6IGR1cmF0aW9uO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhdHVzID0gJ2xlYXZlJztcbiAgICAgICAgICAgICAgICBQcm9taXNlLnJlc29sdmUoKVxuICAgICAgICAgICAgICAgICAgICAudGhlbihuZXh0VGljaylcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBfdGhpcy5jaGVja1N0YXR1cygnbGVhdmUnKTtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMuc2V0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXM6IGNsYXNzTmFtZXMubGVhdmUsXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50RHVyYXRpb246IGN1cnJlbnREdXJhdGlvblxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlvbiAoKSB7IHJldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgcmV0dXJuIF90aGlzLm9uVHJhbnNpdGlvbkVuZCgpOyB9LCBjdXJyZW50RHVyYXRpb24pOyB9KVxuICAgICAgICAgICAgICAgICAgICAudGhlbihuZXh0VGljaylcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBfdGhpcy5jaGVja1N0YXR1cygnbGVhdmUnKTtcbiAgICAgICAgICAgICAgICAgICAgX3RoaXMuc2V0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzZXM6IGNsYXNzTmFtZXNbJ2xlYXZlLXRvJ11cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uICgpIHsgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2hlY2tTdGF0dXM6IGZ1bmN0aW9uIChzdGF0dXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoc3RhdHVzICE9PSB0aGlzLnN0YXR1cykge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJpbmNvbmdydWVudCBzdGF0dXM6IFwiICsgc3RhdHVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb25UcmFuc2l0aW9uRW5kOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmRhdGEuc2hvdykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldCh7IGRpc3BsYXk6IGZhbHNlIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLiRlbWl0KCd0cmFuc2l0aW9uRW5kJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG59O1xuIl0sImZpbGUiOiJ0cmFuc2l0aW9uLmpzIn0=