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.
		
		
		
		
		
			
		
			
				
					
					
						
							36 lines
						
					
					
						
							1.2 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							36 lines
						
					
					
						
							1.2 KiB
						
					
					
				
								"use strict";
							 | 
						|
								Object.defineProperty(exports, "__esModule", { value: true });
							 | 
						|
								var component_1 = require("../common/component");
							 | 
						|
								var relation_1 = require("../common/relation");
							 | 
						|
								(0, component_1.VantComponent)({
							 | 
						|
								    relation: (0, relation_1.useChildren)('sidebar-item', function () {
							 | 
						|
								        this.setActive(this.data.activeKey);
							 | 
						|
								    }),
							 | 
						|
								    props: {
							 | 
						|
								        activeKey: {
							 | 
						|
								            type: Number,
							 | 
						|
								            value: 0,
							 | 
						|
								            observer: 'setActive',
							 | 
						|
								        },
							 | 
						|
								    },
							 | 
						|
								    beforeCreate: function () {
							 | 
						|
								        this.currentActive = -1;
							 | 
						|
								    },
							 | 
						|
								    methods: {
							 | 
						|
								        setActive: function (activeKey) {
							 | 
						|
								            var _a = this, children = _a.children, currentActive = _a.currentActive;
							 | 
						|
								            if (!children.length) {
							 | 
						|
								                return Promise.resolve();
							 | 
						|
								            }
							 | 
						|
								            this.currentActive = activeKey;
							 | 
						|
								            var stack = [];
							 | 
						|
								            if (currentActive !== activeKey && children[currentActive]) {
							 | 
						|
								                stack.push(children[currentActive].setActive(false));
							 | 
						|
								            }
							 | 
						|
								            if (children[activeKey]) {
							 | 
						|
								                stack.push(children[activeKey].setActive(true));
							 | 
						|
								            }
							 | 
						|
								            return Promise.all(stack);
							 | 
						|
								        },
							 | 
						|
								    },
							 | 
						|
								});
							 | 
						|
								
							 |