mirror of
https://git.meshkee.com/cssd/cssd-back.git
synced 2026-10-11 22:31:07 +03:30
170 lines
5.6 KiB
JavaScript
Vendored
170 lines
5.6 KiB
JavaScript
Vendored
'use strict';
|
|
|
|
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; }; // Components
|
|
|
|
// Mixins
|
|
|
|
// Transitions
|
|
|
|
// Utils
|
|
|
|
|
|
var _VIcon = require('../VIcon');
|
|
|
|
var _VIcon2 = _interopRequireDefault(_VIcon);
|
|
|
|
var _bootable = require('../../mixins/bootable');
|
|
|
|
var _bootable2 = _interopRequireDefault(_bootable);
|
|
|
|
var _toggleable = require('../../mixins/toggleable');
|
|
|
|
var _toggleable2 = _interopRequireDefault(_toggleable);
|
|
|
|
var _registrable = require('../../mixins/registrable');
|
|
|
|
var _transitions = require('../transitions');
|
|
|
|
var _mixins = require('../../util/mixins');
|
|
|
|
var _mixins2 = _interopRequireDefault(_mixins);
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
|
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
|
|
exports.default = (0, _mixins2.default)(_bootable2.default, (0, _registrable.inject)('list', 'v-list-group', 'v-list'), _toggleable2.default
|
|
/* @vue/component */
|
|
).extend({
|
|
name: 'v-list-group',
|
|
inject: ['listClick'],
|
|
props: {
|
|
activeClass: {
|
|
type: String,
|
|
default: 'primary--text'
|
|
},
|
|
appendIcon: {
|
|
type: String,
|
|
default: '$vuetify.icons.expand'
|
|
},
|
|
disabled: Boolean,
|
|
group: String,
|
|
noAction: Boolean,
|
|
prependIcon: String,
|
|
subGroup: Boolean
|
|
},
|
|
data: function data() {
|
|
return {
|
|
groups: []
|
|
};
|
|
},
|
|
computed: {
|
|
groupClasses: function groupClasses() {
|
|
return {
|
|
'v-list__group--active': this.isActive,
|
|
'v-list__group--disabled': this.disabled
|
|
};
|
|
},
|
|
headerClasses: function headerClasses() {
|
|
return {
|
|
'v-list__group__header--active': this.isActive,
|
|
'v-list__group__header--sub-group': this.subGroup
|
|
};
|
|
},
|
|
itemsClasses: function itemsClasses() {
|
|
return {
|
|
'v-list__group__items--no-action': this.noAction
|
|
};
|
|
}
|
|
},
|
|
watch: {
|
|
isActive: function isActive(val) {
|
|
if (!this.subGroup && val) {
|
|
this.listClick(this._uid);
|
|
}
|
|
},
|
|
$route: function $route(to) {
|
|
var isActive = this.matchRoute(to.path);
|
|
if (this.group) {
|
|
if (isActive && this.isActive !== isActive) {
|
|
this.listClick(this._uid);
|
|
}
|
|
this.isActive = isActive;
|
|
}
|
|
}
|
|
},
|
|
mounted: function mounted() {
|
|
this.list.register(this);
|
|
if (this.group && this.$route && this.value == null) {
|
|
this.isActive = this.matchRoute(this.$route.path);
|
|
}
|
|
},
|
|
beforeDestroy: function beforeDestroy() {
|
|
this.list.unregister(this._uid);
|
|
},
|
|
|
|
methods: {
|
|
click: function click(e) {
|
|
if (this.disabled) return;
|
|
this.$emit('click', e);
|
|
this.isActive = !this.isActive;
|
|
},
|
|
genIcon: function genIcon(icon) {
|
|
return this.$createElement(_VIcon2.default, icon);
|
|
},
|
|
genAppendIcon: function genAppendIcon() {
|
|
var icon = !this.subGroup ? this.appendIcon : false;
|
|
if (!icon && !this.$slots.appendIcon) return null;
|
|
return this.$createElement('div', {
|
|
staticClass: 'v-list__group__header__append-icon'
|
|
}, [this.$slots.appendIcon || this.genIcon(icon)]);
|
|
},
|
|
genGroup: function genGroup() {
|
|
return this.$createElement('div', {
|
|
staticClass: 'v-list__group__header',
|
|
class: this.headerClasses,
|
|
on: _extends({}, this.$listeners, {
|
|
click: this.click
|
|
}),
|
|
ref: 'item'
|
|
}, [this.genPrependIcon(), this.$slots.activator, this.genAppendIcon()]);
|
|
},
|
|
genItems: function genItems() {
|
|
return this.$createElement('div', {
|
|
staticClass: 'v-list__group__items',
|
|
class: this.itemsClasses,
|
|
directives: [{
|
|
name: 'show',
|
|
value: this.isActive
|
|
}],
|
|
ref: 'group'
|
|
}, this.showLazyContent(this.$slots.default));
|
|
},
|
|
genPrependIcon: function genPrependIcon() {
|
|
var icon = this.prependIcon ? this.prependIcon : this.subGroup ? '$vuetify.icons.subgroup' : false;
|
|
if (!icon && !this.$slots.prependIcon) return null;
|
|
return this.$createElement('div', {
|
|
staticClass: 'v-list__group__header__prepend-icon',
|
|
'class': _defineProperty({}, this.activeClass, this.isActive)
|
|
}, [this.$slots.prependIcon || this.genIcon(icon)]);
|
|
},
|
|
toggle: function toggle(uid) {
|
|
this.isActive = this._uid === uid;
|
|
},
|
|
matchRoute: function matchRoute(to) {
|
|
if (!this.group) return false;
|
|
return to.match(this.group) !== null;
|
|
}
|
|
},
|
|
render: function render(h) {
|
|
return h('div', {
|
|
staticClass: 'v-list__group',
|
|
class: this.groupClasses
|
|
}, [this.genGroup(), h(_transitions.VExpandTransition, [this.genItems()])]);
|
|
}
|
|
});
|
|
//# sourceMappingURL=VListGroup.js.map
|