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.
62 lines
2.0 KiB
62 lines
2.0 KiB
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
var component_1 = require("../common/component");
|
|
var relation_1 = require("../common/relation");
|
|
var animate_1 = require("./animate");
|
|
(0, component_1.VantComponent)({
|
|
classes: ['title-class', 'content-class'],
|
|
relation: (0, relation_1.useParent)('collapse'),
|
|
props: {
|
|
name: null,
|
|
title: null,
|
|
value: null,
|
|
icon: String,
|
|
label: String,
|
|
disabled: Boolean,
|
|
clickable: Boolean,
|
|
border: {
|
|
type: Boolean,
|
|
value: true,
|
|
},
|
|
isLink: {
|
|
type: Boolean,
|
|
value: true,
|
|
},
|
|
},
|
|
data: {
|
|
expanded: false,
|
|
},
|
|
mounted: function () {
|
|
this.updateExpanded();
|
|
this.mounted = true;
|
|
},
|
|
methods: {
|
|
updateExpanded: function () {
|
|
if (!this.parent) {
|
|
return;
|
|
}
|
|
var _a = this.parent.data, value = _a.value, accordion = _a.accordion;
|
|
var _b = this.parent.children, children = _b === void 0 ? [] : _b;
|
|
var name = this.data.name;
|
|
var index = children.indexOf(this);
|
|
var currentName = name == null ? index : name;
|
|
var expanded = accordion
|
|
? value === currentName
|
|
: (value || []).some(function (name) { return name === currentName; });
|
|
if (expanded !== this.data.expanded) {
|
|
(0, animate_1.setContentAnimate)(this, expanded, this.mounted);
|
|
}
|
|
this.setData({ index: index, expanded: expanded });
|
|
},
|
|
onClick: function () {
|
|
if (this.data.disabled) {
|
|
return;
|
|
}
|
|
var _a = this.data, name = _a.name, expanded = _a.expanded;
|
|
var index = this.parent.children.indexOf(this);
|
|
var currentName = name == null ? index : name;
|
|
this.parent.switch(currentName, !expanded);
|
|
},
|
|
},
|
|
});
|