You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							124 lines
						
					
					
						
							4.8 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							124 lines
						
					
					
						
							4.8 KiB
						
					
					
				| "use strict"; | |
| Object.defineProperty(exports, "__esModule", { value: true }); | |
| exports.transition = void 0; | |
| // @ts-nocheck | |
| var utils_1 = require("../common/utils"); | |
| var validator_1 = require("../common/validator"); | |
| var getClassNames = function (name) { return ({ | |
|     enter: "van-".concat(name, "-enter van-").concat(name, "-enter-active enter-class enter-active-class"), | |
|     'enter-to': "van-".concat(name, "-enter-to van-").concat(name, "-enter-active enter-to-class enter-active-class"), | |
|     leave: "van-".concat(name, "-leave van-").concat(name, "-leave-active leave-class leave-active-class"), | |
|     'leave-to': "van-".concat(name, "-leave-to van-").concat(name, "-leave-active leave-to-class leave-active-class"), | |
| }); }; | |
| function transition(showDefaultValue) { | |
|     return Behavior({ | |
|         properties: { | |
|             customStyle: String, | |
|             // @ts-ignore | |
|             show: { | |
|                 type: Boolean, | |
|                 value: showDefaultValue, | |
|                 observer: 'observeShow', | |
|             }, | |
|             // @ts-ignore | |
|             duration: { | |
|                 type: null, | |
|                 value: 300, | |
|                 observer: 'observeDuration', | |
|             }, | |
|             name: { | |
|                 type: String, | |
|                 value: 'fade', | |
|             }, | |
|         }, | |
|         data: { | |
|             type: '', | |
|             inited: false, | |
|             display: false, | |
|         }, | |
|         ready: function () { | |
|             if (this.data.show === true) { | |
|                 this.observeShow(true, false); | |
|             } | |
|         }, | |
|         methods: { | |
|             observeShow: function (value, old) { | |
|                 if (value === old) { | |
|                     return; | |
|                 } | |
|                 value ? this.enter() : this.leave(); | |
|             }, | |
|             enter: function () { | |
|                 var _this = this; | |
|                 var _a = this.data, duration = _a.duration, name = _a.name; | |
|                 var classNames = getClassNames(name); | |
|                 var currentDuration = (0, validator_1.isObj)(duration) ? duration.enter : duration; | |
|                 if (this.status === 'enter') { | |
|                     return; | |
|                 } | |
|                 this.status = 'enter'; | |
|                 this.$emit('before-enter'); | |
|                 (0, utils_1.requestAnimationFrame)(function () { | |
|                     if (_this.status !== 'enter') { | |
|                         return; | |
|                     } | |
|                     _this.$emit('enter'); | |
|                     _this.setData({ | |
|                         inited: true, | |
|                         display: true, | |
|                         classes: classNames.enter, | |
|                         currentDuration: currentDuration, | |
|                     }); | |
|                     (0, utils_1.requestAnimationFrame)(function () { | |
|                         if (_this.status !== 'enter') { | |
|                             return; | |
|                         } | |
|                         _this.transitionEnded = false; | |
|                         _this.setData({ classes: classNames['enter-to'] }); | |
|                     }); | |
|                 }); | |
|             }, | |
|             leave: function () { | |
|                 var _this = this; | |
|                 if (!this.data.display) { | |
|                     return; | |
|                 } | |
|                 var _a = this.data, duration = _a.duration, name = _a.name; | |
|                 var classNames = getClassNames(name); | |
|                 var currentDuration = (0, validator_1.isObj)(duration) ? duration.leave : duration; | |
|                 this.status = 'leave'; | |
|                 this.$emit('before-leave'); | |
|                 (0, utils_1.requestAnimationFrame)(function () { | |
|                     if (_this.status !== 'leave') { | |
|                         return; | |
|                     } | |
|                     _this.$emit('leave'); | |
|                     _this.setData({ | |
|                         classes: classNames.leave, | |
|                         currentDuration: currentDuration, | |
|                     }); | |
|                     (0, utils_1.requestAnimationFrame)(function () { | |
|                         if (_this.status !== 'leave') { | |
|                             return; | |
|                         } | |
|                         _this.transitionEnded = false; | |
|                         setTimeout(function () { return _this.onTransitionEnd(); }, currentDuration); | |
|                         _this.setData({ classes: classNames['leave-to'] }); | |
|                     }); | |
|                 }); | |
|             }, | |
|             onTransitionEnd: function () { | |
|                 if (this.transitionEnded) { | |
|                     return; | |
|                 } | |
|                 this.transitionEnded = true; | |
|                 this.$emit("after-".concat(this.status)); | |
|                 var _a = this.data, show = _a.show, display = _a.display; | |
|                 if (!show && display) { | |
|                     this.setData({ display: false }); | |
|                 } | |
|             }, | |
|         }, | |
|     }); | |
| } | |
| exports.transition = transition;
 | |
| 
 |