UNPKG

vant

Version:

A Vue.js 2.0 Mobile UI at YouZan

68 lines (52 loc) 2.1 kB
'use strict'; exports.__esModule = true; var _findParent = require('../mixins/find-parent'); var _findParent2 = _interopRequireDefault(_findParent); var _utils = require('../utils'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = (0, _utils.create)({ render: function render() { var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('div', { staticClass: "van-collapse-item", class: { 'van-hairline--top': _vm.index, 'van-collapse-item--expanded': _vm.expanded } }, [_c('cell', { staticClass: "van-collapse-item__title", attrs: { "is-link": "" }, on: { "click": _vm.onClick } }, [_vm._t("title", [_vm._v(_vm._s(_vm.title))])], 2), _c('div', { directives: [{ name: "show", rawName: "v-show", value: _vm.expanded, expression: "expanded" }], staticClass: "van-collapse-item__content" }, [_vm._t("default")], 2)], 1); }, name: 'collapse-item', mixins: [_findParent2.default], props: { name: [String, Number], title: String }, computed: { items: function items() { return this.parentGroup.items; }, index: function index() { return this.items.indexOf(this); }, currentName: function currentName() { return (0, _utils.isDef)(this.name) ? this.name : this.index; }, expanded: function expanded() { var _this = this; var activeNames = this.parentGroup.activeNames; return this.parentGroup.accordion ? activeNames === this.currentName : activeNames.some(function (name) { return name === _this.currentName; }); } }, created: function created() { this.findParentByName('van-collapse'); this.items.push(this); }, destroyed: function destroyed() { this.items.splice(this.index, 1); }, methods: { onClick: function onClick() { var parentGroup = this.parentGroup; var name = parentGroup.accordion && this.currentName === parentGroup.activeNames ? '' : this.currentName; this.parentGroup.switch(name, !this.expanded); } } });