vuetify eingebunden + erster Versuch Combobox

This commit is contained in:
2019-04-17 15:58:15 +02:00
parent 24642ca1a8
commit 56f4a3f940
1846 changed files with 219701 additions and 53848 deletions
+96
View File
@@ -0,0 +1,96 @@
'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; }; // Mixins
// Utilities
var _groupable = require('../../mixins/groupable');
var _routable = require('../../mixins/routable');
var _routable2 = _interopRequireDefault(_routable);
var _themeable = require('../../mixins/themeable');
var _themeable2 = _interopRequireDefault(_themeable);
var _helpers = require('../../util/helpers');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/* @vue/component */
exports.default = {
name: 'v-tab',
mixins: [_routable2.default,
// Must be after routable
// to overwrite activeClass
(0, _groupable.factory)('tabGroup'), _themeable2.default],
props: {
ripple: {
type: [Boolean, Object],
default: true
}
},
computed: {
classes: function classes() {
return _extends({
'v-tabs__item': true,
'v-tabs__item--disabled': this.disabled
}, this.groupClasses);
},
value: function value() {
var to = this.to || this.href || '';
if (this.$router && this.to === Object(this.to)) {
var resolve = this.$router.resolve(this.to, this.$route, this.append);
to = resolve.href;
}
return to.replace('#', '');
}
},
watch: {
$route: 'onRouteChange'
},
mounted: function mounted() {
this.onRouteChange();
},
methods: {
click: function click(e) {
// If user provides an
// actual link, do not
// prevent default
if (this.href && this.href.indexOf('#') > -1) e.preventDefault();
this.$emit('click', e);
this.to || this.toggle();
},
onRouteChange: function onRouteChange() {
var _this = this;
if (!this.to || !this.$refs.link) return;
var path = '_vnode.data.class.' + this.activeClass;
this.$nextTick(function () {
if ((0, _helpers.getObjectValueByPath)(_this.$refs.link, path)) {
_this.toggle();
}
});
}
},
render: function render(h) {
var link = this.generateRouteLink(this.classes);
var data = link.data;
// If disabled, use div as anchor tags do not support
// being disabled
var tag = this.disabled ? 'div' : link.tag;
data.ref = 'link';
return h('div', {
staticClass: 'v-tabs__div'
}, [h(tag, data, this.$slots.default)]);
}
};
//# sourceMappingURL=VTab.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"sources":["../../../src/components/VTabs/VTab.js"],"names":[],"mappings":";;;;;;;;AAKA;;;AAJA;;AACA;;;;AACA;;;;AAGA;;;;AAEA;kBACe;AACb,UAAM,OADO;AAGb,YAAQ,CACN,kBADM;AAEN;AACA;AACA,4BAAiB,UAAjB,CAJM,EAKN,mBALM,CAHK;AAWb,WAAO;AACL,gBAAQ;AACN,kBAAM,CAAC,OAAD,EAAU,MAAV,CADA;AAEN,qBAAS;AAFH;AADH,KAXM;AAkBb,cAAU;AACR,eADQ,qBACD;AACL;AACE,gCAAgB,IADlB;AAEE,0CAA0B,KAAK;AAFjC,eAGK,KAAK,YAHV;AAKD,SAPO;AAQR,aARQ,mBAQH;AACH,gBAAI,KAAK,KAAK,EAAL,IAAW,KAAK,IAAhB,IAAwB,EAAjC;AAEA,gBAAI,KAAK,OAAL,IACF,KAAK,EAAL,KAAY,OAAO,KAAK,EAAZ,CADd,EAEE;AACA,oBAAM,UAAU,KAAK,OAAL,CAAa,OAAb,CACd,KAAK,EADS,EAEd,KAAK,MAFS,EAGd,KAAK,MAHS,CAAhB;AAMA,qBAAK,QAAQ,IAAb;AACD;AAED,mBAAO,GAAG,OAAH,CAAW,GAAX,EAAgB,EAAhB,CAAP;AACD;AAxBO,KAlBG;AA6Cb,WAAO;AACL,gBAAQ;AADH,KA7CM;AAiDb,WAjDa,qBAiDN;AACL,aAAK,aAAL;AACD,KAnDY;;AAqDb,aAAS;AACP,aADO,iBACA,CADA,EACC;AACN;AACA;AACA;AACA,gBAAI,KAAK,IAAL,IACF,KAAK,IAAL,CAAU,OAAV,CAAkB,GAAlB,IAAyB,CAAC,CAD5B,EAEE,EAAE,cAAF;AAEF,iBAAK,KAAL,CAAW,OAAX,EAAoB,CAApB;AAEA,iBAAK,EAAL,IAAW,KAAK,MAAL,EAAX;AACD,SAZM;AAaP,qBAbO,2BAaM;AAAA;;AACX,gBAAI,CAAC,KAAK,EAAN,IAAY,CAAC,KAAK,KAAL,CAAW,IAA5B,EAAkC;AAElC,gBAAM,8BAA4B,KAAK,WAAvC;AAEA,iBAAK,SAAL,CAAe,YAAK;AAClB,oBAAI,mCAAqB,MAAK,KAAL,CAAW,IAAhC,EAAsC,IAAtC,CAAJ,EAAiD;AAC/C,0BAAK,MAAL;AACD;AACF,aAJD;AAKD;AAvBM,KArDI;AA+Eb,UA/Ea,kBA+EL,CA/EK,EA+EJ;AACP,YAAM,OAAO,KAAK,iBAAL,CAAuB,KAAK,OAA5B,CAAb;AADO,YAEC,IAFD,GAEU,IAFV,CAEC,IAFD;AAIP;AACA;;AACA,YAAM,MAAM,KAAK,QAAL,GAAgB,KAAhB,GAAwB,KAAK,GAAzC;AAEA,aAAK,GAAL,GAAW,MAAX;AAEA,eAAO,EAAE,KAAF,EAAS;AACd,yBAAa;AADC,SAAT,EAEJ,CAAC,EAAE,GAAF,EAAO,IAAP,EAAa,KAAK,MAAL,CAAY,OAAzB,CAAD,CAFI,CAAP;AAGD;AA5FY,C","sourcesContent":["// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Routable from '../../mixins/routable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\n/* @vue/component */\nexport default {\n name: 'v-tab',\n\n mixins: [\n Routable,\n // Must be after routable\n // to overwrite activeClass\n GroupableFactory('tabGroup'),\n Themeable\n ],\n\n props: {\n ripple: {\n type: [Boolean, Object],\n default: true\n }\n },\n\n computed: {\n classes () {\n return {\n 'v-tabs__item': true,\n 'v-tabs__item--disabled': this.disabled,\n ...this.groupClasses\n }\n },\n value () {\n let to = this.to || this.href || ''\n\n if (this.$router &&\n this.to === Object(this.to)\n ) {\n const resolve = this.$router.resolve(\n this.to,\n this.$route,\n this.append\n )\n\n to = resolve.href\n }\n\n return to.replace('#', '')\n }\n },\n\n watch: {\n $route: 'onRouteChange'\n },\n\n mounted () {\n this.onRouteChange()\n },\n\n methods: {\n click (e) {\n // If user provides an\n // actual link, do not\n // prevent default\n if (this.href &&\n this.href.indexOf('#') > -1\n ) e.preventDefault()\n\n this.$emit('click', e)\n\n this.to || this.toggle()\n },\n onRouteChange () {\n if (!this.to || !this.$refs.link) return\n\n const path = `_vnode.data.class.${this.activeClass}`\n\n this.$nextTick(() => {\n if (getObjectValueByPath(this.$refs.link, path)) {\n this.toggle()\n }\n })\n }\n },\n\n render (h) {\n const link = this.generateRouteLink(this.classes)\n const { data } = link\n\n // If disabled, use div as anchor tags do not support\n // being disabled\n const tag = this.disabled ? 'div' : link.tag\n\n data.ref = 'link'\n\n return h('div', {\n staticClass: 'v-tabs__div'\n }, [h(tag, data, this.$slots.default)])\n }\n}\n"],"sourceRoot":""}
+35
View File
@@ -0,0 +1,35 @@
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _VWindowItem = require('../VWindow/VWindowItem');
var _VWindowItem2 = _interopRequireDefault(_VWindowItem);
var _console = require('../../util/console');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/* @vue/component */
// Extensions
exports.default = _VWindowItem2.default.extend({
name: 'v-tab-item',
props: {
id: String
},
render: function render(h) {
var render = _VWindowItem2.default.options.render.call(this, h);
// For backwards compatibility with v1.2
/* istanbul ignore next */
if (this.id) {
(0, _console.deprecate)('id', 'value', this);
render.data.domProps = render.data.domProps || {};
render.data.domProps.id = this.id;
}
return render;
}
});
// Mixins
//# sourceMappingURL=VTabItem.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"sources":["../../../src/components/VTabs/VTabItem.js"],"names":[],"mappings":";;;;;;AACA;;;;AAGA;;;;AAEA;;kBACe,sBAAY,MAAZ,CAAmB;AAChC,UAAM,YAD0B;AAGhC,WAAO;AACL,YAAI;AADC,KAHyB;AAOhC,UAPgC,kBAOxB,CAPwB,EAOvB;AACP,YAAM,SAAS,sBAAY,OAAZ,CAAoB,MAApB,CAA2B,IAA3B,CAAgC,IAAhC,EAAsC,CAAtC,CAAf;AAEA;AACA;AACA,YAAI,KAAK,EAAT,EAAa;AACX,oCAAU,IAAV,EAAgB,OAAhB,EAAyB,IAAzB;AAEA,mBAAO,IAAP,CAAY,QAAZ,GAAuB,OAAO,IAAP,CAAY,QAAZ,IAAwB,EAA/C;AACA,mBAAO,IAAP,CAAY,QAAZ,CAAqB,EAArB,GAA0B,KAAK,EAA/B;AACD;AAED,eAAO,MAAP;AACD;AApB+B,CAAnB,C;AAJf","sourcesContent":["// Extensions\nimport VWindowItem from '../VWindow/VWindowItem'\n\n// Mixins\nimport { deprecate } from '../../util/console'\n\n/* @vue/component */\nexport default VWindowItem.extend({\n name: 'v-tab-item',\n\n props: {\n id: String\n },\n\n render (h) {\n const render = VWindowItem.options.render.call(this, h)\n\n // For backwards compatibility with v1.2\n /* istanbul ignore next */\n if (this.id) {\n deprecate('id', 'value', this)\n\n render.data.domProps = render.data.domProps || {}\n render.data.domProps.id = this.id\n }\n\n return render\n }\n})\n"],"sourceRoot":""}
+264
View File
@@ -0,0 +1,264 @@
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
require('../../../src/stylus/components/_tabs.styl');
var _VItemGroup = require('../VItemGroup/VItemGroup');
var _tabsComputed = require('./mixins/tabs-computed');
var _tabsComputed2 = _interopRequireDefault(_tabsComputed);
var _tabsGenerators = require('./mixins/tabs-generators');
var _tabsGenerators2 = _interopRequireDefault(_tabsGenerators);
var _tabsProps = require('./mixins/tabs-props');
var _tabsProps2 = _interopRequireDefault(_tabsProps);
var _tabsTouch = require('./mixins/tabs-touch');
var _tabsTouch2 = _interopRequireDefault(_tabsTouch);
var _tabsWatchers = require('./mixins/tabs-watchers');
var _tabsWatchers2 = _interopRequireDefault(_tabsWatchers);
var _colorable = require('../../mixins/colorable');
var _colorable2 = _interopRequireDefault(_colorable);
var _ssrBootable = require('../../mixins/ssr-bootable');
var _ssrBootable2 = _interopRequireDefault(_ssrBootable);
var _themeable = require('../../mixins/themeable');
var _themeable2 = _interopRequireDefault(_themeable);
var _resize = require('../../directives/resize');
var _resize2 = _interopRequireDefault(_resize);
var _touch = require('../../directives/touch');
var _touch2 = _interopRequireDefault(_touch);
var _console = require('../../util/console');
var _ThemeProvider = require('../../util/ThemeProvider');
var _ThemeProvider2 = _interopRequireDefault(_ThemeProvider);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/* @vue/component */
// Directives
// Component level mixins
// Styles
exports.default = _VItemGroup.BaseItemGroup.extend({
name: 'v-tabs',
directives: {
Resize: _resize2.default,
Touch: _touch2.default
},
mixins: [_colorable2.default, _ssrBootable2.default, _tabsComputed2.default, _tabsProps2.default, _tabsGenerators2.default, _tabsTouch2.default, _tabsWatchers2.default, _themeable2.default],
provide: function provide() {
return {
tabGroup: this,
tabProxy: this.tabProxy,
registerItems: this.registerItems,
unregisterItems: this.unregisterItems
};
},
data: function data() {
return {
bar: [],
content: [],
isOverflowing: false,
nextIconVisible: false,
prevIconVisible: false,
resizeTimeout: null,
scrollOffset: 0,
sliderWidth: null,
sliderLeft: null,
startX: 0,
tabItems: null,
transitionTime: 300,
widths: {
bar: 0,
container: 0,
wrapper: 0
}
};
},
watch: {
items: 'onResize',
tabs: 'onResize'
},
mounted: function mounted() {
this.init();
},
methods: {
checkIcons: function checkIcons() {
this.prevIconVisible = this.checkPrevIcon();
this.nextIconVisible = this.checkNextIcon();
},
checkPrevIcon: function checkPrevIcon() {
return this.scrollOffset > 0;
},
checkNextIcon: function checkNextIcon() {
// Check one scroll ahead to know the width of right-most item
return this.widths.container > this.scrollOffset + this.widths.wrapper;
},
callSlider: function callSlider() {
var _this = this;
if (this.hideSlider || !this.activeTab) return false;
// Give screen time to paint
var activeTab = this.activeTab;
this.$nextTick(function () {
/* istanbul ignore if */
if (!activeTab || !activeTab.$el) return;
_this.sliderWidth = activeTab.$el.scrollWidth;
_this.sliderLeft = activeTab.$el.offsetLeft;
});
},
// Do not process
// until DOM is
// painted
init: function init() {
/* istanbul ignore next */
if (this.$listeners['input']) {
(0, _console.deprecate)('@input', '@change', this);
}
},
/**
* When v-navigation-drawer changes the
* width of the container, call resize
* after the transition is complete
*/
onResize: function onResize() {
if (this._isDestroyed) return;
this.setWidths();
var delay = this.isBooted ? this.transitionTime : 0;
clearTimeout(this.resizeTimeout);
this.resizeTimeout = setTimeout(this.updateTabsView, delay);
},
overflowCheck: function overflowCheck(e, fn) {
this.isOverflowing && fn(e);
},
scrollTo: function scrollTo(direction) {
this.scrollOffset = this.newOffset(direction);
},
setOverflow: function setOverflow() {
this.isOverflowing = this.widths.bar < this.widths.container;
},
setWidths: function setWidths() {
var bar = this.$refs.bar ? this.$refs.bar.clientWidth : 0;
var container = this.$refs.container ? this.$refs.container.clientWidth : 0;
var wrapper = this.$refs.wrapper ? this.$refs.wrapper.clientWidth : 0;
this.widths = { bar: bar, container: container, wrapper: wrapper };
this.setOverflow();
},
parseNodes: function parseNodes() {
var item = [];
var items = [];
var slider = [];
var tab = [];
var length = (this.$slots.default || []).length;
for (var i = 0; i < length; i++) {
var vnode = this.$slots.default[i];
if (vnode.componentOptions) {
switch (vnode.componentOptions.Ctor.options.name) {
case 'v-tabs-slider':
slider.push(vnode);
break;
case 'v-tabs-items':
items.push(vnode);
break;
case 'v-tab-item':
item.push(vnode);
break;
// case 'v-tab' - intentionally omitted
default:
tab.push(vnode);
}
} else {
tab.push(vnode);
}
}
return { tab: tab, slider: slider, items: items, item: item };
},
registerItems: function registerItems(fn) {
this.tabItems = fn;
fn(this.internalValue);
},
unregisterItems: function unregisterItems() {
this.tabItems = null;
},
updateTabsView: function updateTabsView() {
this.callSlider();
this.scrollIntoView();
this.checkIcons();
},
scrollIntoView: function scrollIntoView() {
/* istanbul ignore next */
if (!this.activeTab) return;
if (!this.isOverflowing) return this.scrollOffset = 0;
var totalWidth = this.widths.wrapper + this.scrollOffset;
var _activeTab$$el = this.activeTab.$el,
clientWidth = _activeTab$$el.clientWidth,
offsetLeft = _activeTab$$el.offsetLeft;
var itemOffset = clientWidth + offsetLeft;
var additionalOffset = clientWidth * 0.3;
if (this.activeTab === this.items[this.items.length - 1]) {
additionalOffset = 0; // don't add an offset if selecting the last tab
}
/* istanbul ignore else */
if (offsetLeft < this.scrollOffset) {
this.scrollOffset = Math.max(offsetLeft - additionalOffset, 0);
} else if (totalWidth < itemOffset) {
this.scrollOffset -= totalWidth - itemOffset - additionalOffset;
}
},
tabProxy: function tabProxy(val) {
this.internalValue = val;
}
},
render: function render(h) {
var _parseNodes = this.parseNodes(),
tab = _parseNodes.tab,
slider = _parseNodes.slider,
items = _parseNodes.items,
item = _parseNodes.item;
return h('div', {
staticClass: 'v-tabs',
directives: [{
name: 'resize',
modifiers: { quiet: true },
value: this.onResize
}]
}, [this.genBar([this.hideSlider ? null : this.genSlider(slider), tab]), h(_ThemeProvider2.default, {
props: { dark: this.theme.isDark, light: !this.theme.isDark }
}, [this.genItems(items, item)])]);
}
});
// Utils
// Mixins
// Extensions
//# sourceMappingURL=VTabs.js.map
File diff suppressed because one or more lines are too long
+68
View File
@@ -0,0 +1,68 @@
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _VWindow = require('../VWindow/VWindow');
var _VWindow2 = _interopRequireDefault(_VWindow);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/* @vue/component */
exports.default = _VWindow2.default.extend({
name: 'v-tabs-items',
inject: {
registerItems: {
default: null
},
tabProxy: {
default: null
},
unregisterItems: {
default: null
}
},
props: {
cycle: Boolean
},
watch: {
internalValue: function internalValue(val) {
/* istanbul ignore else */
if (this.tabProxy) this.tabProxy(val);
}
},
created: function created() {
this.registerItems && this.registerItems(this.changeModel);
},
beforeDestroy: function beforeDestroy() {
this.unregisterItems && this.unregisterItems();
},
methods: {
changeModel: function changeModel(val) {
this.internalValue = val;
},
// For backwards compatability with v1.2
getValue: function getValue(item, i) {
/* istanbul ignore if */
if (item.id) return item.id;
return _VWindow2.default.options.methods.getValue.call(this, item, i);
},
next: function next() {
if (!this.cycle && this.internalIndex === this.items.length - 1) {
return;
}
_VWindow2.default.options.methods.next.call(this);
},
prev: function prev() {
if (!this.cycle && this.internalIndex === 0) {
return;
}
_VWindow2.default.options.methods.prev.call(this);
}
}
}); // Extensions
//# sourceMappingURL=VTabsItems.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"sources":["../../../src/components/VTabs/VTabsItems.js"],"names":[],"mappings":";;;;;;AACA;;;;;;AAEA;kBACe,kBAAQ,MAAR,CAAe;AAC5B,UAAM,cADsB;AAG5B,YAAQ;AACN,uBAAe;AACb,qBAAS;AADI,SADT;AAIN,kBAAU;AACR,qBAAS;AADD,SAJJ;AAON,yBAAiB;AACf,qBAAS;AADM;AAPX,KAHoB;AAe5B,WAAO;AACL,eAAO;AADF,KAfqB;AAmB5B,WAAO;AACL,qBADK,yBACU,GADV,EACa;AAChB;AACA,gBAAI,KAAK,QAAT,EAAmB,KAAK,QAAL,CAAc,GAAd;AACpB;AAJI,KAnBqB;AA0B5B,WA1B4B,qBA0BrB;AACL,aAAK,aAAL,IAAsB,KAAK,aAAL,CAAmB,KAAK,WAAxB,CAAtB;AACD,KA5B2B;AA8B5B,iBA9B4B,2BA8Bf;AACX,aAAK,eAAL,IAAwB,KAAK,eAAL,EAAxB;AACD,KAhC2B;;AAkC5B,aAAS;AACP,mBADO,uBACM,GADN,EACS;AACd,iBAAK,aAAL,GAAqB,GAArB;AACD,SAHM;;AAIP;AACA,gBALO,oBAKG,IALH,EAKS,CALT,EAKU;AACf;AACA,gBAAI,KAAK,EAAT,EAAa,OAAO,KAAK,EAAZ;AAEb,mBAAO,kBAAQ,OAAR,CAAgB,OAAhB,CAAwB,QAAxB,CAAiC,IAAjC,CAAsC,IAAtC,EAA4C,IAA5C,EAAkD,CAAlD,CAAP;AACD,SAVM;AAWP,YAXO,kBAWH;AACF,gBAAI,CAAC,KAAK,KAAN,IAAe,KAAK,aAAL,KAAuB,KAAK,KAAL,CAAW,MAAX,GAAoB,CAA9D,EAAiE;AAC/D;AACD;AAED,8BAAQ,OAAR,CAAgB,OAAhB,CAAwB,IAAxB,CAA6B,IAA7B,CAAkC,IAAlC;AACD,SAjBM;AAkBP,YAlBO,kBAkBH;AACF,gBAAI,CAAC,KAAK,KAAN,IAAe,KAAK,aAAL,KAAuB,CAA1C,EAA6C;AAC3C;AACD;AAED,8BAAQ,OAAR,CAAgB,OAAhB,CAAwB,IAAxB,CAA6B,IAA7B,CAAkC,IAAlC;AACD;AAxBM;AAlCmB,CAAf,C","sourcesContent":["// Extensions\nimport VWindow from '../VWindow/VWindow'\n\n/* @vue/component */\nexport default VWindow.extend({\n name: 'v-tabs-items',\n\n inject: {\n registerItems: {\n default: null\n },\n tabProxy: {\n default: null\n },\n unregisterItems: {\n default: null\n }\n },\n\n props: {\n cycle: Boolean\n },\n\n watch: {\n internalValue (val) {\n /* istanbul ignore else */\n if (this.tabProxy) this.tabProxy(val)\n }\n },\n\n created () {\n this.registerItems && this.registerItems(this.changeModel)\n },\n\n beforeDestroy () {\n this.unregisterItems && this.unregisterItems()\n },\n\n methods: {\n changeModel (val) {\n this.internalValue = val\n },\n // For backwards compatability with v1.2\n getValue (item, i) {\n /* istanbul ignore if */\n if (item.id) return item.id\n\n return VWindow.options.methods.getValue.call(this, item, i)\n },\n next () {\n if (!this.cycle && this.internalIndex === this.items.length - 1) {\n return\n }\n\n VWindow.options.methods.next.call(this)\n },\n prev () {\n if (!this.cycle && this.internalIndex === 0) {\n return\n }\n\n VWindow.options.methods.prev.call(this)\n }\n }\n})\n"],"sourceRoot":""}
+23
View File
@@ -0,0 +1,23 @@
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _colorable = require('../../mixins/colorable');
var _colorable2 = _interopRequireDefault(_colorable);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/* @vue/component */
exports.default = {
name: 'v-tabs-slider',
mixins: [_colorable2.default],
render: function render(h) {
return h('div', this.setBackgroundColor(this.color || 'accent', {
staticClass: 'v-tabs__slider'
}));
}
};
//# sourceMappingURL=VTabsSlider.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"sources":["../../../src/components/VTabs/VTabsSlider.js"],"names":[],"mappings":";;;;;;;;;;;;AAEA;kBACe;AACb,UAAM,eADO;AAGb,YAAQ,CAAC,mBAAD,CAHK;AAKb,UALa,kBAKL,CALK,EAKJ;AACP,eAAO,EAAE,KAAF,EAAS,KAAK,kBAAL,CAAwB,KAAK,KAAL,IAAc,QAAtC,EAAgD;AAC9D,yBAAa;AADiD,SAAhD,CAAT,CAAP;AAGD;AATY,C","sourcesContent":["import Colorable from '../../mixins/colorable'\n\n/* @vue/component */\nexport default {\n name: 'v-tabs-slider',\n\n mixins: [Colorable],\n\n render (h) {\n return h('div', this.setBackgroundColor(this.color || 'accent', {\n staticClass: 'v-tabs__slider'\n }))\n }\n}\n"],"sourceRoot":""}
+44
View File
@@ -0,0 +1,44 @@
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.VTabsSlider = exports.VTabsItems = exports.VTabItem = exports.VTab = exports.VTabs = undefined;
var _VTabs = require('./VTabs');
var _VTabs2 = _interopRequireDefault(_VTabs);
var _VTab = require('./VTab');
var _VTab2 = _interopRequireDefault(_VTab);
var _VTabsItems = require('./VTabsItems');
var _VTabsItems2 = _interopRequireDefault(_VTabsItems);
var _VTabItem = require('./VTabItem');
var _VTabItem2 = _interopRequireDefault(_VTabItem);
var _VTabsSlider = require('./VTabsSlider');
var _VTabsSlider2 = _interopRequireDefault(_VTabsSlider);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.VTabs = _VTabs2.default;
exports.VTab = _VTab2.default;
exports.VTabItem = _VTabItem2.default;
exports.VTabsItems = _VTabsItems2.default;
exports.VTabsSlider = _VTabsSlider2.default;
exports.default = {
$_vuetify_subcomponents: {
VTabs: _VTabs2.default,
VTab: _VTab2.default,
VTabsItems: _VTabsItems2.default,
VTabItem: _VTabItem2.default,
VTabsSlider: _VTabsSlider2.default
}
};
//# sourceMappingURL=index.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"sources":["../../../src/components/VTabs/index.js"],"names":[],"mappings":";;;;;;;;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;;;QAES,K,GAAA,e;QAAO,I,GAAA,c;QAAM,Q,GAAA,kB;QAAU,U,GAAA,oB;QAAY,W,GAAA,qB;kBAE7B;AACb,6BAAyB;AACvB,8BADuB;AAEvB,4BAFuB;AAGvB,wCAHuB;AAIvB,oCAJuB;AAKvB;AALuB;AADZ,C","sourcesContent":["import VTabs from './VTabs'\nimport VTab from './VTab'\nimport VTabsItems from './VTabsItems'\nimport VTabItem from './VTabItem'\nimport VTabsSlider from './VTabsSlider'\n\nexport { VTabs, VTab, VTabItem, VTabsItems, VTabsSlider }\n\nexport default {\n $_vuetify_subcomponents: {\n VTabs,\n VTab,\n VTabsItems,\n VTabItem,\n VTabsSlider\n }\n}\n"],"sourceRoot":""}
+38
View File
@@ -0,0 +1,38 @@
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
/**
* Tabs computed
*
* @mixin
*/
/* @vue/component */
exports.default = {
computed: {
activeTab: function activeTab() {
if (!this.selectedItems.length) return undefined;
return this.selectedItems[0];
},
containerStyles: function containerStyles() {
return this.height ? {
height: parseInt(this.height, 10) + 'px'
} : null;
},
hasArrows: function hasArrows() {
return (this.showArrows || !this.isMobile) && this.isOverflowing;
},
isMobile: function isMobile() {
return this.$vuetify.breakpoint.width < this.mobileBreakPoint;
},
sliderStyles: function sliderStyles() {
return {
left: this.sliderLeft + 'px',
transition: this.sliderLeft != null ? null : 'none',
width: this.sliderWidth + 'px'
};
}
}
};
//# sourceMappingURL=tabs-computed.js.map
@@ -0,0 +1 @@
{"version":3,"sources":["../../../../src/components/VTabs/mixins/tabs-computed.js"],"names":[],"mappings":";;;;;;;;;;AAKA;kBACe;AACb,cAAU;AACR,iBADQ,uBACC;AACP,gBAAI,CAAC,KAAK,aAAL,CAAmB,MAAxB,EAAgC,OAAO,SAAP;AAEhC,mBAAO,KAAK,aAAL,CAAmB,CAAnB,CAAP;AACD,SALO;AAMR,uBANQ,6BAMO;AACb,mBAAO,KAAK,MAAL,GAAc;AACnB,wBAAW,SAAS,KAAK,MAAd,EAAsB,EAAtB,CAAX;AADmB,aAAd,GAEH,IAFJ;AAGD,SAVO;AAWR,iBAXQ,uBAWC;AACP,mBAAO,CAAC,KAAK,UAAL,IAAmB,CAAC,KAAK,QAA1B,KAAuC,KAAK,aAAnD;AACD,SAbO;AAcR,gBAdQ,sBAcA;AACN,mBAAO,KAAK,QAAL,CAAc,UAAd,CAAyB,KAAzB,GAAiC,KAAK,gBAA7C;AACD,SAhBO;AAiBR,oBAjBQ,0BAiBI;AACV,mBAAO;AACL,sBAAS,KAAK,UAAd,OADK;AAEL,4BAAY,KAAK,UAAL,IAAmB,IAAnB,GAA0B,IAA1B,GAAiC,MAFxC;AAGL,uBAAU,KAAK,WAAf;AAHK,aAAP;AAKD;AAvBO;AADG,C","sourcesContent":["/**\n * Tabs computed\n *\n * @mixin\n */\n/* @vue/component */\nexport default {\n computed: {\n activeTab () {\n if (!this.selectedItems.length) return undefined\n\n return this.selectedItems[0]\n },\n containerStyles () {\n return this.height ? {\n height: `${parseInt(this.height, 10)}px`\n } : null\n },\n hasArrows () {\n return (this.showArrows || !this.isMobile) && this.isOverflowing\n },\n isMobile () {\n return this.$vuetify.breakpoint.width < this.mobileBreakPoint\n },\n sliderStyles () {\n return {\n left: `${this.sliderLeft}px`,\n transition: this.sliderLeft != null ? null : 'none',\n width: `${this.sliderWidth}px`\n }\n }\n }\n}\n"],"sourceRoot":""}
+116
View File
@@ -0,0 +1,116 @@
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _VTabsItems = require('../VTabsItems');
var _VTabsItems2 = _interopRequireDefault(_VTabsItems);
var _VTabsSlider = require('../VTabsSlider');
var _VTabsSlider2 = _interopRequireDefault(_VTabsSlider);
var _VIcon = require('../../VIcon');
var _VIcon2 = _interopRequireDefault(_VIcon);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* Tabs generators
*
* @mixin
*/
/* @vue/component */
exports.default = {
methods: {
genBar: function genBar(items) {
return this.$createElement('div', this.setBackgroundColor(this.color, {
staticClass: 'v-tabs__bar',
'class': this.themeClasses,
ref: 'bar'
}), [this.genTransition('prev'), this.genWrapper(this.genContainer(items)), this.genTransition('next')]);
},
genContainer: function genContainer(items) {
return this.$createElement('div', {
staticClass: 'v-tabs__container',
class: {
'v-tabs__container--align-with-title': this.alignWithTitle,
'v-tabs__container--centered': this.centered,
'v-tabs__container--fixed-tabs': this.fixedTabs,
'v-tabs__container--grow': this.grow,
'v-tabs__container--icons-and-text': this.iconsAndText,
'v-tabs__container--overflow': this.isOverflowing,
'v-tabs__container--right': this.right
},
style: this.containerStyles,
ref: 'container'
}, items);
},
genIcon: function genIcon(direction) {
var _this = this;
if (!this.hasArrows || !this[direction + 'IconVisible']) return null;
return this.$createElement(_VIcon2.default, {
staticClass: 'v-tabs__icon v-tabs__icon--' + direction,
props: {
disabled: !this[direction + 'IconVisible']
},
on: {
click: function click() {
return _this.scrollTo(direction);
}
}
}, this[direction + 'Icon']);
},
genItems: function genItems(items, item) {
if (items.length > 0) return items;
if (!item.length) return null;
return this.$createElement(_VTabsItems2.default, item);
},
genTransition: function genTransition(direction) {
return this.$createElement('transition', {
props: { name: 'fade-transition' }
}, [this.genIcon(direction)]);
},
genWrapper: function genWrapper(items) {
var _this2 = this;
return this.$createElement('div', {
staticClass: 'v-tabs__wrapper',
class: {
'v-tabs__wrapper--show-arrows': this.hasArrows
},
ref: 'wrapper',
directives: [{
name: 'touch',
value: {
start: function start(e) {
return _this2.overflowCheck(e, _this2.onTouchStart);
},
move: function move(e) {
return _this2.overflowCheck(e, _this2.onTouchMove);
},
end: function end(e) {
return _this2.overflowCheck(e, _this2.onTouchEnd);
}
}
}]
}, [items]);
},
genSlider: function genSlider(items) {
if (!items.length) {
items = [this.$createElement(_VTabsSlider2.default, {
props: { color: this.sliderColor }
})];
}
return this.$createElement('div', {
staticClass: 'v-tabs__slider-wrapper',
style: this.sliderStyles
}, items);
}
}
};
//# sourceMappingURL=tabs-generators.js.map
File diff suppressed because one or more lines are too long
+59
View File
@@ -0,0 +1,59 @@
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
/**
* Tabs props
*
* @mixin
*/
/* @vue/component */
exports.default = {
props: {
activeClass: {
type: String,
default: 'v-tabs__item--active'
},
alignWithTitle: Boolean,
centered: Boolean,
fixedTabs: Boolean,
grow: Boolean,
height: {
type: [Number, String],
default: undefined,
validator: function validator(v) {
return !isNaN(parseInt(v));
}
},
hideSlider: Boolean,
iconsAndText: Boolean,
mandatory: {
type: Boolean,
default: true
},
mobileBreakPoint: {
type: [Number, String],
default: 1264,
validator: function validator(v) {
return !isNaN(parseInt(v));
}
},
nextIcon: {
type: String,
default: '$vuetify.icons.next'
},
prevIcon: {
type: String,
default: '$vuetify.icons.prev'
},
right: Boolean,
showArrows: Boolean,
sliderColor: {
type: String,
default: 'accent'
},
value: [Number, String]
}
};
//# sourceMappingURL=tabs-props.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"sources":["../../../../src/components/VTabs/mixins/tabs-props.js"],"names":[],"mappings":";;;;;;;;;;AAKA;kBACe;AACb,WAAO;AACL,qBAAa;AACX,kBAAM,MADK;AAEX,qBAAS;AAFE,SADR;AAKL,wBAAgB,OALX;AAML,kBAAU,OANL;AAOL,mBAAW,OAPN;AAQL,cAAM,OARD;AASL,gBAAQ;AACN,kBAAM,CAAC,MAAD,EAAS,MAAT,CADA;AAEN,qBAAS,SAFH;AAGN,uBAAW;AAAA,uBAAK,CAAC,MAAM,SAAS,CAAT,CAAN,CAAN;AAAA;AAHL,SATH;AAcL,oBAAY,OAdP;AAeL,sBAAc,OAfT;AAgBL,mBAAW;AACT,kBAAM,OADG;AAET,qBAAS;AAFA,SAhBN;AAoBL,0BAAkB;AAChB,kBAAM,CAAC,MAAD,EAAS,MAAT,CADU;AAEhB,qBAAS,IAFO;AAGhB,uBAAW;AAAA,uBAAK,CAAC,MAAM,SAAS,CAAT,CAAN,CAAN;AAAA;AAHK,SApBb;AAyBL,kBAAU;AACR,kBAAM,MADE;AAER,qBAAS;AAFD,SAzBL;AA6BL,kBAAU;AACR,kBAAM,MADE;AAER,qBAAS;AAFD,SA7BL;AAiCL,eAAO,OAjCF;AAkCL,oBAAY,OAlCP;AAmCL,qBAAa;AACX,kBAAM,MADK;AAEX,qBAAS;AAFE,SAnCR;AAuCL,eAAO,CAAC,MAAD,EAAS,MAAT;AAvCF;AADM,C","sourcesContent":["/**\n * Tabs props\n *\n * @mixin\n */\n/* @vue/component */\nexport default {\n props: {\n activeClass: {\n type: String,\n default: 'v-tabs__item--active'\n },\n alignWithTitle: Boolean,\n centered: Boolean,\n fixedTabs: Boolean,\n grow: Boolean,\n height: {\n type: [Number, String],\n default: undefined,\n validator: v => !isNaN(parseInt(v))\n },\n hideSlider: Boolean,\n iconsAndText: Boolean,\n mandatory: {\n type: Boolean,\n default: true\n },\n mobileBreakPoint: {\n type: [Number, String],\n default: 1264,\n validator: v => !isNaN(parseInt(v))\n },\n nextIcon: {\n type: String,\n default: '$vuetify.icons.next'\n },\n prevIcon: {\n type: String,\n default: '$vuetify.icons.prev'\n },\n right: Boolean,\n showArrows: Boolean,\n sliderColor: {\n type: String,\n default: 'accent'\n },\n value: [Number, String]\n }\n}\n"],"sourceRoot":""}
+45
View File
@@ -0,0 +1,45 @@
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
/**
* Tabs touch
*
* @mixin
*/
/* @vue/component */
exports.default = {
methods: {
newOffset: function newOffset(direction) {
var clientWidth = this.$refs.wrapper.clientWidth;
if (direction === 'prev') {
return Math.max(this.scrollOffset - clientWidth, 0);
} else {
return Math.min(this.scrollOffset + clientWidth, this.$refs.container.clientWidth - clientWidth);
}
},
onTouchStart: function onTouchStart(e) {
this.startX = this.scrollOffset + e.touchstartX;
this.$refs.container.style.transition = 'none';
this.$refs.container.style.willChange = 'transform';
},
onTouchMove: function onTouchMove(e) {
this.scrollOffset = this.startX - e.touchmoveX;
},
onTouchEnd: function onTouchEnd() {
var container = this.$refs.container;
var wrapper = this.$refs.wrapper;
var maxScrollOffset = container.clientWidth - wrapper.clientWidth;
container.style.transition = null;
container.style.willChange = null;
/* istanbul ignore else */
if (this.scrollOffset < 0 || !this.isOverflowing) {
this.scrollOffset = 0;
} else if (this.scrollOffset >= maxScrollOffset) {
this.scrollOffset = maxScrollOffset;
}
}
}
};
//# sourceMappingURL=tabs-touch.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"sources":["../../../../src/components/VTabs/mixins/tabs-touch.js"],"names":[],"mappings":";;;;;;;;;;AAKA;kBACe;AACb,aAAS;AACP,iBADO,qBACI,SADJ,EACa;AAClB,gBAAM,cAAc,KAAK,KAAL,CAAW,OAAX,CAAmB,WAAvC;AAEA,gBAAI,cAAc,MAAlB,EAA0B;AACxB,uBAAO,KAAK,GAAL,CAAS,KAAK,YAAL,GAAoB,WAA7B,EAA0C,CAA1C,CAAP;AACD,aAFD,MAEO;AACL,uBAAO,KAAK,GAAL,CAAS,KAAK,YAAL,GAAoB,WAA7B,EAA0C,KAAK,KAAL,CAAW,SAAX,CAAqB,WAArB,GAAmC,WAA7E,CAAP;AACD;AACF,SATM;AAUP,oBAVO,wBAUO,CAVP,EAUQ;AACb,iBAAK,MAAL,GAAc,KAAK,YAAL,GAAoB,EAAE,WAApC;AACA,iBAAK,KAAL,CAAW,SAAX,CAAqB,KAArB,CAA2B,UAA3B,GAAwC,MAAxC;AACA,iBAAK,KAAL,CAAW,SAAX,CAAqB,KAArB,CAA2B,UAA3B,GAAwC,WAAxC;AACD,SAdM;AAeP,mBAfO,uBAeM,CAfN,EAeO;AACZ,iBAAK,YAAL,GAAoB,KAAK,MAAL,GAAc,EAAE,UAApC;AACD,SAjBM;AAkBP,kBAlBO,wBAkBG;AACR,gBAAM,YAAY,KAAK,KAAL,CAAW,SAA7B;AACA,gBAAM,UAAU,KAAK,KAAL,CAAW,OAA3B;AACA,gBAAM,kBAAkB,UAAU,WAAV,GAAwB,QAAQ,WAAxD;AACA,sBAAU,KAAV,CAAgB,UAAhB,GAA6B,IAA7B;AACA,sBAAU,KAAV,CAAgB,UAAhB,GAA6B,IAA7B;AAEA;AACA,gBAAI,KAAK,YAAL,GAAoB,CAApB,IAAyB,CAAC,KAAK,aAAnC,EAAkD;AAChD,qBAAK,YAAL,GAAoB,CAApB;AACD,aAFD,MAEO,IAAI,KAAK,YAAL,IAAqB,eAAzB,EAA0C;AAC/C,qBAAK,YAAL,GAAoB,eAApB;AACD;AACF;AA/BM;AADI,C","sourcesContent":["/**\n * Tabs touch\n *\n * @mixin\n */\n/* @vue/component */\nexport default {\n methods: {\n newOffset (direction) {\n const clientWidth = this.$refs.wrapper.clientWidth\n\n if (direction === 'prev') {\n return Math.max(this.scrollOffset - clientWidth, 0)\n } else {\n return Math.min(this.scrollOffset + clientWidth, this.$refs.container.clientWidth - clientWidth)\n }\n },\n onTouchStart (e) {\n this.startX = this.scrollOffset + e.touchstartX\n this.$refs.container.style.transition = 'none'\n this.$refs.container.style.willChange = 'transform'\n },\n onTouchMove (e) {\n this.scrollOffset = this.startX - e.touchmoveX\n },\n onTouchEnd () {\n const container = this.$refs.container\n const wrapper = this.$refs.wrapper\n const maxScrollOffset = container.clientWidth - wrapper.clientWidth\n container.style.transition = null\n container.style.willChange = null\n\n /* istanbul ignore else */\n if (this.scrollOffset < 0 || !this.isOverflowing) {\n this.scrollOffset = 0\n } else if (this.scrollOffset >= maxScrollOffset) {\n this.scrollOffset = maxScrollOffset\n }\n }\n }\n}\n"],"sourceRoot":""}
+52
View File
@@ -0,0 +1,52 @@
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
/**
* Tabs watchers
*
* @mixin
*/
/* @vue/component */
exports.default = {
watch: {
activeTab: function activeTab(val, oldVal) {
this.setOverflow();
if (!val) return;
this.tabItems && this.tabItems(this.getValue(val, this.items.indexOf(val)));
// Do nothing for first tab
// is handled from isBooted
// watcher
if (oldVal == null) return;
this.updateTabsView();
},
alignWithTitle: 'callSlider',
centered: 'callSlider',
fixedTabs: 'callSlider',
hasArrows: function hasArrows(val) {
if (!val) this.scrollOffset = 0;
},
/* @deprecate */
internalValue: function internalValue(val) {
/* istanbul ignore else */
if (!this.$listeners['input']) return;
this.$emit('input', val);
},
lazyValue: 'updateTabs',
right: 'callSlider',
'$vuetify.application.left': 'onResize',
'$vuetify.application.right': 'onResize',
scrollOffset: function scrollOffset(val) {
this.$refs.container.style.transform = 'translateX(' + -val + 'px)';
if (this.hasArrows) {
this.prevIconVisible = this.checkPrevIcon();
this.nextIconVisible = this.checkNextIcon();
}
}
}
};
//# sourceMappingURL=tabs-watchers.js.map
@@ -0,0 +1 @@
{"version":3,"sources":["../../../../src/components/VTabs/mixins/tabs-watchers.js"],"names":[],"mappings":";;;;;;;;;;AAKA;kBACe;AACb,WAAO;AACL,iBADK,qBACM,GADN,EACW,MADX,EACiB;AACpB,iBAAK,WAAL;AAEA,gBAAI,CAAC,GAAL,EAAU;AAEV,iBAAK,QAAL,IAAiB,KAAK,QAAL,CACf,KAAK,QAAL,CAAc,GAAd,EAAmB,KAAK,KAAL,CAAW,OAAX,CAAmB,GAAnB,CAAnB,CADe,CAAjB;AAIA;AACA;AACA;AACA,gBAAI,UAAU,IAAd,EAAoB;AAEpB,iBAAK,cAAL;AACD,SAhBI;;AAiBL,wBAAgB,YAjBX;AAkBL,kBAAU,YAlBL;AAmBL,mBAAW,YAnBN;AAoBL,iBApBK,qBAoBM,GApBN,EAoBS;AACZ,gBAAI,CAAC,GAAL,EAAU,KAAK,YAAL,GAAoB,CAApB;AACX,SAtBI;;AAuBL;AACA,qBAxBK,yBAwBU,GAxBV,EAwBa;AAChB;AACA,gBAAI,CAAC,KAAK,UAAL,CAAgB,OAAhB,CAAL,EAA+B;AAE/B,iBAAK,KAAL,CAAW,OAAX,EAAoB,GAApB;AACD,SA7BI;;AA8BL,mBAAW,YA9BN;AA+BL,eAAO,YA/BF;AAgCL,qCAA6B,UAhCxB;AAiCL,sCAA8B,UAjCzB;AAkCL,oBAlCK,wBAkCS,GAlCT,EAkCY;AACf,iBAAK,KAAL,CAAW,SAAX,CAAqB,KAArB,CAA2B,SAA3B,mBAAqD,CAAC,GAAtD;AACA,gBAAI,KAAK,SAAT,EAAoB;AAClB,qBAAK,eAAL,GAAuB,KAAK,aAAL,EAAvB;AACA,qBAAK,eAAL,GAAuB,KAAK,aAAL,EAAvB;AACD;AACF;AAxCI;AADM,C","sourcesContent":["/**\n * Tabs watchers\n *\n * @mixin\n */\n/* @vue/component */\nexport default {\n watch: {\n activeTab (val, oldVal) {\n this.setOverflow()\n\n if (!val) return\n\n this.tabItems && this.tabItems(\n this.getValue(val, this.items.indexOf(val))\n )\n\n // Do nothing for first tab\n // is handled from isBooted\n // watcher\n if (oldVal == null) return\n\n this.updateTabsView()\n },\n alignWithTitle: 'callSlider',\n centered: 'callSlider',\n fixedTabs: 'callSlider',\n hasArrows (val) {\n if (!val) this.scrollOffset = 0\n },\n /* @deprecate */\n internalValue (val) {\n /* istanbul ignore else */\n if (!this.$listeners['input']) return\n\n this.$emit('input', val)\n },\n lazyValue: 'updateTabs',\n right: 'callSlider',\n '$vuetify.application.left': 'onResize',\n '$vuetify.application.right': 'onResize',\n scrollOffset (val) {\n this.$refs.container.style.transform = `translateX(${-val}px)`\n if (this.hasArrows) {\n this.prevIconVisible = this.checkPrevIcon()\n this.nextIconVisible = this.checkNextIcon()\n }\n }\n }\n}\n"],"sourceRoot":""}