vuetify
Version:
Vue.js 2 Semantic Component Framework
80 lines (65 loc) • 2.06 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
require('../../../src/stylus/components/_expansion-panel.styl');
var _themeable = require('../../mixins/themeable');
var _themeable2 = _interopRequireDefault(_themeable);
var _registrable = require('../../mixins/registrable');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = {
name: 'v-expansion-panel',
mixins: [_themeable2.default, (0, _registrable.provide)('expansionPanel')],
provide: function provide() {
return {
panelClick: this.panelClick,
focusable: this.focusable
};
},
data: function data() {
return {
items: []
};
},
props: {
expand: Boolean,
focusable: Boolean,
inset: Boolean,
popout: Boolean
},
methods: {
panelClick: function panelClick(uid) {
if (!this.expand) {
for (var i = 0; i < this.items.length; i++) {
this.items[i].toggle(uid);
}
return;
}
for (var _i = 0; _i < this.items.length; _i++) {
if (this.items[_i].uid === uid) {
this.items[_i].toggle(uid);
return;
}
}
},
register: function register(uid, toggle) {
this.items.push({ uid: uid, toggle: toggle });
},
unregister: function unregister(uid) {
this.items = this.items.filter(function (i) {
return i.uid !== uid;
});
}
},
render: function render(h) {
return h('ul', {
staticClass: 'expansion-panel',
'class': _extends({
'expansion-panel--focusable': this.focusable,
'expansion-panel--popout': this.popout,
'expansion-panel--inset': this.inset
}, this.themeClasses)
}, this.$slots.default);
}
};