vuetify
Version:
Vue.js 2 Semantic Component Framework
1,752 lines (1,388 loc) • 551 kB
JavaScript
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define([], factory);
else if(typeof exports === 'object')
exports["Vuetify"] = factory();
else
root["Vuetify"] = factory();
})(typeof self !== 'undefined' ? self : this, function() {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, {
/******/ configurable: false,
/******/ enumerable: true,
/******/ get: getter
/******/ });
/******/ }
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "/dist/";
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 69);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
exports.default = {
name: 'colorable',
props: {
color: String
},
data: function data() {
return {
defaultColor: null
};
},
computed: {
computedColor: function computedColor() {
return this.color || this.defaultColor;
}
},
methods: {
addBackgroundColorClassChecks: function addBackgroundColorClassChecks() {
var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var color = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.computedColor;
var classes = Object.assign({}, obj);
if (color) {
classes[color] = true;
}
return classes;
},
addTextColorClassChecks: function addTextColorClassChecks() {
var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var color = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.computedColor;
var classes = Object.assign({}, obj);
if (color) {
var _color$trim$split = color.trim().split(' '),
_color$trim$split2 = _slicedToArray(_color$trim$split, 2),
colorName = _color$trim$split2[0],
colorModifier = _color$trim$split2[1];
classes[colorName + '--text'] = true;
colorModifier && (classes['text--' + colorModifier] = true);
}
return classes;
}
}
};
/***/ }),
/* 1 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = {
name: 'themeable',
props: {
dark: Boolean,
light: Boolean
},
computed: {
themeClasses: function themeClasses() {
return {
'theme--light': this.light,
'theme--dark': this.dark
};
}
}
};
/***/ }),
/* 2 */
/***/ (function(module, exports, __webpack_require__) {
"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; };
exports.createSimpleFunctional = createSimpleFunctional;
exports.createSimpleTransition = createSimpleTransition;
exports.createJavaScriptTransition = createJavaScriptTransition;
exports.directiveConfig = directiveConfig;
exports.addOnceEventListener = addOnceEventListener;
exports.getObjectValueByPath = getObjectValueByPath;
exports.createRange = createRange;
exports.getZIndex = getZIndex;
exports.escapeHTML = escapeHTML;
exports.filterObjectOnKeys = filterObjectOnKeys;
exports.filterChildren = filterChildren;
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
function createSimpleFunctional(c) {
var el = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'div';
var name = arguments[2];
name = name || c.replace(/__/g, '-');
return {
name: 'v-' + name,
functional: true,
render: function render(h, _ref) {
var data = _ref.data,
children = _ref.children;
data.staticClass = (c + ' ' + (data.staticClass || '')).trim();
return h(el, data, children);
}
};
}
function createSimpleTransition(name) {
var origin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top center 0';
var mode = arguments[2];
return {
name: name,
functional: true,
props: {
origin: {
type: String,
default: origin
}
},
render: function render(h, context) {
context.data = context.data || {};
context.data.props = { name: name };
context.data.on = context.data.on || {};
if (!Object.isExtensible(context.data.on)) {
context.data.on = _extends({}, context.data.on);
}
if (mode) context.data.props.mode = mode;
context.data.on.beforeEnter = function (el) {
el.style.transformOrigin = context.props.origin;
el.style.webkitTransformOrigin = context.props.origin;
};
return h('transition', context.data, context.children);
}
};
}
function createJavaScriptTransition(name, functions) {
var css = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
var mode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'in-out';
return {
name: name,
functional: true,
props: {
css: {
type: Boolean,
default: css
},
mode: {
type: String,
default: mode
}
},
render: function render(h, context) {
var data = {
props: _extends({}, context.props, {
name: name
}),
on: functions
};
return h('transition', data, context.children);
}
};
}
function directiveConfig(binding) {
var defaults = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
return Object.assign({}, defaults, binding.modifiers, { value: binding.arg }, binding.value || {});
}
function addOnceEventListener(el, event, cb) {
var once = function once() {
cb();
el.removeEventListener(event, once, false);
};
el.addEventListener(event, once, false);
}
function getObjectValueByPath(obj, path) {
// credit: http://stackoverflow.com/questions/6491463/accessing-nested-javascript-objects-with-string-key#comment55278413_6491621
if (!path || path.constructor !== String) return;
path = path.replace(/\[(\w+)\]/g, '.$1'); // convert indexes to properties
path = path.replace(/^\./, ''); // strip a leading dot
var a = path.split('.');
for (var i = 0, n = a.length; i < n; ++i) {
var k = a[i];
if (obj instanceof Object && k in obj) {
obj = obj[k];
} else {
return;
}
}
return obj;
}
function createRange(length) {
return [].concat(_toConsumableArray(Array.from({ length: length }, function (v, k) {
return k;
})));
}
function getZIndex(el) {
if (!el || el.nodeType !== Node.ELEMENT_NODE) return 0;
var zi = document.defaultView.getComputedStyle(el).getPropertyValue('z-index');
if (isNaN(zi)) return getZIndex(el.parentNode);
return zi;
}
var tagsToReplace = {
'&': '&',
'<': '<',
'>': '>'
};
function escapeHTML(str) {
return str.replace(/[&<>]/g, function (tag) {
return tagsToReplace[tag] || tag;
});
}
function filterObjectOnKeys(obj, keys) {
var filtered = {};
for (var i = 0; i < keys.length; i++) {
var key = keys[i];
if (typeof obj[key] !== 'undefined') {
filtered[key] = obj[key];
}
}
return filtered;
}
function filterChildren() {
var array = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var tag = arguments[1];
return array.filter(function (child) {
return child.componentOptions && child.componentOptions.Ctor.options.name === tag;
});
}
/***/ }),
/* 3 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _VIcon = __webpack_require__(91);
var _VIcon2 = _interopRequireDefault(_VIcon);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/* istanbul ignore next */
_VIcon2.default.install = function install(Vue) {
Vue.component(_VIcon2.default.name, _VIcon2.default);
};
exports.default = _VIcon2.default;
/***/ }),
/* 4 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.inject = inject;
exports.provide = provide;
var _console = __webpack_require__(6);
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; }
function generateWarning(child, parent) {
return function () {
return (0, _console.consoleWarn)('The ' + child + ' component must be used inside a ' + parent);
};
}
function inject(namespace, child, parent) {
var defaultImpl = child && parent ? {
register: generateWarning(child, parent),
unregister: generateWarning(child, parent)
} : null;
return {
name: 'registrable-inject',
inject: _defineProperty({}, namespace, {
default: defaultImpl
})
};
}
function provide(namespace) {
return {
name: 'registrable-provide',
methods: {
register: null,
unregister: null
},
provide: function provide() {
return _defineProperty({}, namespace, {
register: this.register,
unregister: this.unregister
});
}
};
}
/***/ }),
/* 5 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.factory = factory;
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; }
function factory() {
var _watch;
var prop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'value';
var event = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'input';
return {
name: 'toggleable',
model: { prop: prop, event: event },
props: _defineProperty({}, prop, { required: false }),
data: function data() {
return {
isActive: !!this[prop]
};
},
watch: (_watch = {}, _defineProperty(_watch, prop, function (val) {
this.isActive = !!val;
}), _defineProperty(_watch, 'isActive', function isActive(val) {
!!val !== this[prop] && this.$emit(event, val);
}), _watch)
};
}
var Toggleable = factory();
exports.default = Toggleable;
/***/ }),
/* 6 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.consoleWarn = consoleWarn;
exports.consoleError = consoleError;
function createMessage(message, componentInstance) {
var componentInfo = componentInstance ? ' in "' + componentInstance.$options.name + '"' : '';
return '[Vuetify] ' + message + componentInfo;
}
function consoleWarn(message) {
var componentInstance = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
console.warn(createMessage(message, componentInstance));
}
function consoleError(message) {
var componentInstance = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
console.error(createMessage(message, componentInstance));
}
/***/ }),
/* 7 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.VRowExpandTransition = exports.VExpandTransition = exports.VSlideYReverseTransition = exports.VSlideYTransition = exports.VSlideXReverseTransition = exports.VSlideXTransition = exports.VScaleTransition = exports.VFadeTransition = exports.VDialogBottomTransition = exports.VDialogTransition = exports.VFabTransition = exports.VMenuTransition = exports.VTabReverseTransition = exports.VTabTransition = exports.VCarouselReverseTransition = exports.VCarouselTransition = exports.VBottomSheetTranstion = undefined;
var _helpers = __webpack_require__(2);
var _expandTransition = __webpack_require__(39);
var _expandTransition2 = _interopRequireDefault(_expandTransition);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// Component specific transitions
var VBottomSheetTranstion = exports.VBottomSheetTranstion = (0, _helpers.createSimpleTransition)('bottom-sheet-transition');
var VCarouselTransition = exports.VCarouselTransition = (0, _helpers.createSimpleTransition)('carousel-transition');
var VCarouselReverseTransition = exports.VCarouselReverseTransition = (0, _helpers.createSimpleTransition)('carousel-reverse-transition');
var VTabTransition = exports.VTabTransition = (0, _helpers.createSimpleTransition)('tab-transition');
var VTabReverseTransition = exports.VTabReverseTransition = (0, _helpers.createSimpleTransition)('tab-reverse-transition');
var VMenuTransition = exports.VMenuTransition = (0, _helpers.createSimpleTransition)('menu-transition');
var VFabTransition = exports.VFabTransition = (0, _helpers.createSimpleTransition)('fab-transition', 'center center', 'out-in');
// Generic transitions
var VDialogTransition = exports.VDialogTransition = (0, _helpers.createSimpleTransition)('dialog-transition');
var VDialogBottomTransition = exports.VDialogBottomTransition = (0, _helpers.createSimpleTransition)('dialog-bottom-transition');
var VFadeTransition = exports.VFadeTransition = (0, _helpers.createSimpleTransition)('fade-transition');
var VScaleTransition = exports.VScaleTransition = (0, _helpers.createSimpleTransition)('scale-transition');
var VSlideXTransition = exports.VSlideXTransition = (0, _helpers.createSimpleTransition)('slide-x-transition');
var VSlideXReverseTransition = exports.VSlideXReverseTransition = (0, _helpers.createSimpleTransition)('slide-x-reverse-transition');
var VSlideYTransition = exports.VSlideYTransition = (0, _helpers.createSimpleTransition)('slide-y-transition');
var VSlideYReverseTransition = exports.VSlideYReverseTransition = (0, _helpers.createSimpleTransition)('slide-y-reverse-transition');
// JavaScript transitions
var VExpandTransition = exports.VExpandTransition = (0, _helpers.createJavaScriptTransition)('expand-transition', (0, _expandTransition2.default)());
var VRowExpandTransition = exports.VRowExpandTransition = (0, _helpers.createJavaScriptTransition)('row-expand-transition', (0, _expandTransition2.default)('datatable__expand-col--expanded'));
exports.default = install;
/* istanbul ignore next */
function install(Vue) {
Vue.component('v-bottom-sheet-transition', VBottomSheetTranstion);
Vue.component('v-carousel-transition', VCarouselTransition);
Vue.component('v-carousel-reverse-transition', VCarouselReverseTransition);
Vue.component('v-dialog-transition', VDialogTransition);
Vue.component('v-dialog-bottom-transition', VDialogBottomTransition);
Vue.component('v-fab-transition', VFabTransition);
Vue.component('v-fade-transition', VFadeTransition);
Vue.component('v-menu-transition', VMenuTransition);
Vue.component('v-scale-transition', VScaleTransition);
Vue.component('v-slide-x-transition', VSlideXTransition);
Vue.component('v-slide-x-reverse-transition', VSlideXReverseTransition);
Vue.component('v-slide-y-transition', VSlideYTransition);
Vue.component('v-slide-y-reverse-transition', VSlideYReverseTransition);
Vue.component('v-tab-reverse-transition', VTabReverseTransition);
Vue.component('v-tab-transition', VTabTransition);
Vue.component('v-expand-transition', VExpandTransition);
Vue.component('v-row-expand-transition', VRowExpandTransition);
}
/***/ }),
/* 8 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function closeConditional() {
return false;
}
function directive(e, el, binding) {
// Args may not always be supplied
binding.args = binding.args || {};
// If no closeConditional was supplied assign a default
var isActive = binding.args.closeConditional || closeConditional;
// The include element callbacks below can be expensive
// so we should avoid calling them when we're not active.
// Explicitly check for false to allow fallback compatibility
// with non-toggleable components
if (!e || isActive(e) === false) return;
// If click was triggered programmaticaly (domEl.click()) then
// it shouldn't be treated as click-outside
// Chrome/Firefox support isTrusted property
// IE/Edge support pointerType property (empty if not triggered
// by pointing device)
if ('isTrusted' in e && !e.isTrusted || 'pointerType' in e && !e.pointerType) return;
// Check if additional elements were passed to be included in check
// (click must be outside all included elements, if any)
var elements = (binding.args.include || function () {
return [];
})();
// Add the root element for the component this directive was defined on
elements.push(el);
// Check if it's a click outside our elements, and then if our callback returns true.
// Non-toggleable components should take action in their callback and return falsy.
// Toggleable can return true if it wants to deactivate.
// Note that, because we're in the capture phase, this callback will occure before
// the bubbling click event on any outside elements.
!clickedInEls(e, elements) && setTimeout(function () {
isActive(e) && binding.value();
}, 0);
}
function clickedInEls(e, elements) {
// Get position of click
var x = e.clientX,
y = e.clientY;
// Loop over all included elements to see if click was in any of them
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = elements[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var el = _step.value;
if (clickedInEl(el, x, y)) return true;
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
return false;
}
function clickedInEl(el, x, y) {
// Get bounding rect for element
// (we're in capturing event and we want to check for multiple elements,
// so can't use target.)
var b = el.getBoundingClientRect();
// Check if the click was in the element's bounding rect
return x >= b.left && x <= b.right && y >= b.top && y <= b.bottom;
}
exports.default = {
name: 'click-outside',
// [data-app] may not be found
// if using bind, inserted makes
// sure that the root element is
// available, iOS does not support
// clicks on body
inserted: function inserted(el, binding) {
var onClick = function onClick(e) {
return directive(e, el, binding);
};
// iOS does not recognize click events on document
// or body, this is the entire purpose of the v-app
// component and [data-app], stop removing this
var app = document.querySelector('[data-app]') || document.body; // This is only for unit tests
app.addEventListener('click', onClick, true);
el._clickOutside = onClick;
},
unbind: function unbind(el) {
var app = document.querySelector('[data-app]') || document.body; // This is only for unit tests
app && app.removeEventListener('click', el._clickOutside, true);
delete el._clickOutside;
}
};
/***/ }),
/* 9 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
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; }
var _touchstart = function _touchstart(event, wrapper) {
var touch = event.changedTouches[0];
wrapper.touchstartX = touch.clientX;
wrapper.touchstartY = touch.clientY;
wrapper.start && wrapper.start(Object.assign(event, wrapper));
};
var _touchend = function _touchend(event, wrapper) {
var touch = event.changedTouches[0];
wrapper.touchendX = touch.clientX;
wrapper.touchendY = touch.clientY;
wrapper.end && wrapper.end(Object.assign(event, wrapper));
handleGesture(wrapper);
};
var _touchmove = function _touchmove(event, wrapper) {
var touch = event.changedTouches[0];
wrapper.touchmoveX = touch.clientX;
wrapper.touchmoveY = touch.clientY;
wrapper.move && wrapper.move(Object.assign(event, wrapper));
};
var handleGesture = function handleGesture(wrapper) {
var touchstartX = wrapper.touchstartX,
touchendX = wrapper.touchendX,
touchstartY = wrapper.touchstartY,
touchendY = wrapper.touchendY;
var dirRatio = 0.5;
var minDistance = 16;
wrapper.offsetX = touchendX - touchstartX;
wrapper.offsetY = touchendY - touchstartY;
if (Math.abs(wrapper.offsetY) < dirRatio * Math.abs(wrapper.offsetX)) {
wrapper.left && touchendX < touchstartX - minDistance && wrapper.left(wrapper);
wrapper.right && touchendX > touchstartX + minDistance && wrapper.right(wrapper);
}
if (Math.abs(wrapper.offsetX) < dirRatio * Math.abs(wrapper.offsetY)) {
wrapper.up && touchendY < touchstartY - minDistance && wrapper.up(wrapper);
wrapper.down && touchendY > touchstartY + minDistance && wrapper.down(wrapper);
}
};
function inserted(el, _ref, _ref2) {
var value = _ref.value;
var context = _ref2.context;
var wrapper = {
touchstartX: 0,
touchstartY: 0,
touchendX: 0,
touchendY: 0,
touchmoveX: 0,
touchmoveY: 0,
offsetX: 0,
offsetY: 0,
left: value.left,
right: value.right,
up: value.up,
down: value.down,
start: value.start,
move: value.move,
end: value.end
};
var target = value.parent ? el.parentNode : el;
var options = value.options || { passive: true
// Needed to pass unit tests
};if (!target) return;
var handlers = {
touchstart: function touchstart(e) {
return _touchstart(e, wrapper);
},
touchend: function touchend(e) {
return _touchend(e, wrapper);
},
touchmove: function touchmove(e) {
return _touchmove(e, wrapper);
}
};
target._touchHandlers = Object.assign(Object(target._touchHandlers), _defineProperty({}, context._uid, handlers));
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = Object.keys(handlers)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var eventName = _step.value;
target.addEventListener(eventName, handlers[eventName], options);
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
}
function unbind(el, _ref3, _ref4) {
var value = _ref3.value;
var context = _ref4.context;
var target = value.parent ? el.parentNode : el;
if (!target) return;
var handlers = target._touchHandlers[context._uid];
var _iteratorNormalCompletion2 = true;
var _didIteratorError2 = false;
var _iteratorError2 = undefined;
try {
for (var _iterator2 = Object.keys(handlers)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
var eventName = _step2.value;
target.removeEventListener(eventName, handlers[eventName]);
}
} catch (err) {
_didIteratorError2 = true;
_iteratorError2 = err;
} finally {
try {
if (!_iteratorNormalCompletion2 && _iterator2.return) {
_iterator2.return();
}
} finally {
if (_didIteratorError2) {
throw _iteratorError2;
}
}
}
delete target._touchHandlers[context._uid];
}
exports.default = {
name: 'touch',
inserted: inserted,
unbind: unbind
};
/***/ }),
/* 10 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _VBtn = __webpack_require__(110);
var _VBtn2 = _interopRequireDefault(_VBtn);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/* istanbul ignore next */
_VBtn2.default.install = function install(Vue) {
Vue.component(_VBtn2.default.name, _VBtn2.default);
};
exports.default = _VBtn2.default;
/***/ }),
/* 11 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function inserted(el, binding) {
var callback = binding.value;
var options = binding.options || { passive: true };
window.addEventListener('resize', callback, options);
el._onResize = {
callback: callback,
options: options
};
if (!binding.modifiers || !binding.modifiers.quiet) {
callback();
}
}
function unbind(el, binding) {
var _el$_onResize = el._onResize,
callback = _el$_onResize.callback,
options = _el$_onResize.options;
window.removeEventListener('resize', callback, options);
delete el._onResize;
}
exports.default = {
name: 'resize',
inserted: inserted,
unbind: unbind
};
/***/ }),
/* 12 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.factory = factory;
var _helpers = __webpack_require__(2);
function factory() {
var selected = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var props = {
absolute: Boolean,
bottom: Boolean,
fixed: Boolean,
left: Boolean,
right: Boolean,
top: Boolean
};
return {
name: 'positionable',
props: selected.length ? (0, _helpers.filterObjectOnKeys)(props, selected) : props
};
}
exports.default = factory();
/***/ }),
/* 13 */
/***/ (function(module, exports, __webpack_require__) {
"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; };
var _ripple = __webpack_require__(17);
var _ripple2 = _interopRequireDefault(_ripple);
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 = {
name: 'routable',
directives: {
Ripple: _ripple2.default
},
props: {
activeClass: String,
append: Boolean,
disabled: Boolean,
exact: {
type: Boolean,
default: undefined
},
exactActiveClass: String,
href: [String, Object],
to: [String, Object],
nuxt: Boolean,
replace: Boolean,
ripple: [Boolean, Object],
tag: String,
target: String
},
methods: {
click: function click() {},
generateRouteLink: function generateRouteLink() {
var exact = this.exact;
var tag = void 0;
var data = _defineProperty({
attrs: { disabled: this.disabled },
class: this.classes,
props: {},
directives: [{
name: 'ripple',
value: this.ripple && !this.disabled ? this.ripple : false
}]
}, this.to ? 'nativeOn' : 'on', _extends({}, this.$listeners, {
click: this.click
}));
if (typeof this.exact === 'undefined') {
exact = this.to === '/' || this.to === Object(this.to) && this.to.path === '/';
}
if (this.to) {
// Add a special activeClass hook
// for component level styles
var activeClass = this.activeClass;
var exactActiveClass = this.exactActiveClass || activeClass;
if (this.proxyClass) {
activeClass += ' ' + this.proxyClass;
exactActiveClass += ' ' + this.proxyClass;
}
tag = this.nuxt ? 'nuxt-link' : 'router-link';
Object.assign(data.props, {
to: this.to,
exact: exact,
activeClass: activeClass,
exactActiveClass: exactActiveClass,
append: this.append,
replace: this.replace
});
} else {
tag = this.href && 'a' || this.tag || 'a';
if (tag === 'a') {
if (this.href) data.attrs.href = this.href;
if (this.target) data.attrs.target = this.target;
}
}
return { tag: tag, data: data };
}
}
};
/***/ }),
/* 14 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.pad = exports.monthChange = exports.createNativeLocaleFormatter = undefined;
var _createNativeLocaleFormatter = __webpack_require__(171);
var _createNativeLocaleFormatter2 = _interopRequireDefault(_createNativeLocaleFormatter);
var _monthChange = __webpack_require__(172);
var _monthChange2 = _interopRequireDefault(_monthChange);
var _pad = __webpack_require__(23);
var _pad2 = _interopRequireDefault(_pad);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.createNativeLocaleFormatter = _createNativeLocaleFormatter2.default;
exports.monthChange = _monthChange2.default;
exports.pad = _pad2.default;
/***/ }),
/* 15 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = applicationable;
var _positionable = __webpack_require__(12);
function applicationable(value) {
var events = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
return {
name: 'applicationable',
mixins: [(0, _positionable.factory)(['absolute', 'fixed'])],
props: {
app: Boolean
},
computed: {
applicationProperty: function applicationProperty() {
return value;
}
},
watch: {
// If previous value was app
// reset the provided prop
app: function app(x, prev) {
prev ? this.removeApplication() : this.callUpdate();
}
},
created: function created() {
for (var i = 0, length = events.length; i < length; i++) {
this.$watch(events[i], this.callUpdate);
}
},
mounted: function mounted() {
this.callUpdate();
},
destroyed: function destroyed() {
this.app && this.removeApplication();
},
methods: {
callUpdate: function callUpdate() {
if (!this.app) return;
this.$vuetify.application[this.applicationProperty] = this.updateApplication();
},
removeApplication: function removeApplication() {
this.$vuetify.application[this.applicationProperty] = 0;
},
updateApplication: function updateApplication() {}
}
};
}
/***/ }),
/* 16 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
/**
* Bootable
* @mixin
*
* Used to add lazy content functionality to components
* Looks for change in "isActive" to automatically boot
* Otherwise can be set manually
*/
exports.default = {
name: 'bootable',
data: function data() {
return {
isBooted: false
};
},
props: {
lazy: Boolean
},
watch: {
isActive: function isActive() {
this.isBooted = true;
}
},
methods: {
showLazyContent: function showLazyContent(content) {
return this.isBooted || !this.lazy ? content : null;
}
}
};
/***/ }),
/* 17 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function style(el, value) {
el.style['transform'] = value;
el.style['webkitTransform'] = value;
}
var RippleDataAttribute = 'data-ripple';
var ripple = {
/**
* @param {Event} e
* @param {Element} el
* @param {{ class?: string, center?: boolean }} [value={}]
*/
show: function show(e, el, _ref) {
var _ref$value = _ref.value,
value = _ref$value === undefined ? {} : _ref$value;
if (el.getAttribute(RippleDataAttribute) !== 'true') {
return;
}
var container = document.createElement('span');
var animation = document.createElement('span');
container.appendChild(animation);
container.className = 'ripple__container';
if (value.class) {
container.className += ' ' + value.class;
}
var size = el.clientWidth > el.clientHeight ? el.clientWidth : el.clientHeight;
animation.className = 'ripple__animation';
animation.style.width = size * (value.center ? 1 : 2) + 'px';
animation.style.height = animation.style.width;
el.appendChild(container);
var computed = window.getComputedStyle(el);
if (computed.position !== 'absolute' && computed.position !== 'fixed') el.style.position = 'relative';
var offset = el.getBoundingClientRect();
var x = value.center ? '50%' : e.clientX - offset.left + 'px';
var y = value.center ? '50%' : e.clientY - offset.top + 'px';
animation.classList.add('ripple__animation--enter');
animation.classList.add('ripple__animation--visible');
style(animation, 'translate(-50%, -50%) translate(' + x + ', ' + y + ') scale3d(0.01,0.01,0.01)');
animation.dataset.activated = Date.now();
setTimeout(function () {
animation.classList.remove('ripple__animation--enter');
style(animation, 'translate(-50%, -50%) translate(' + x + ', ' + y + ') scale3d(0.99,0.99,0.99)');
}, 0);
},
hide: function hide(el) {
if (el.getAttribute(RippleDataAttribute) !== 'true') {
return;
}
var ripples = el.getElementsByClassName('ripple__animation');
if (ripples.length === 0) return;
var animation = ripples[ripples.length - 1];
var diff = Date.now() - Number(animation.dataset.activated);
var delay = 400 - diff;
delay = delay < 0 ? 0 : delay;
setTimeout(function () {
animation.classList.remove('ripple__animation--visible');
setTimeout(function () {
// Need to figure out a new way to do this
try {
if (ripples.length < 1) el.style.position = null;
animation.parentNode && el.removeChild(animation.parentNode);
} catch (e) {}
}, 300);
}, delay);
}
};
function isRippleEnabled(binding) {
return typeof binding.value === 'undefined' || !!binding.value;
}
function directive(el, binding) {
el.setAttribute(RippleDataAttribute, isRippleEnabled(binding));
if ('ontouchstart' in window) {
el.addEventListener('touchend', function () {
return ripple.hide(el);
}, false);
el.addEventListener('touchcancel', function () {
return ripple.hide(el);
}, false);
}
el.addEventListener('mousedown', function (e) {
return ripple.show(e, el, binding);
}, false);
el.addEventListener('mouseup', function () {
return ripple.hide(el);
}, false);
el.addEventListener('mouseleave', function () {
return ripple.hide(el);
}, false);
// Anchor tags can be dragged, causes other hides to fail - #1537
el.addEventListener('dragstart', function () {
return ripple.hide(el);
}, false);
}
function unbind(el, binding) {
el.removeEventListener('touchstart', function (e) {
return ripple.show(e, el, binding);
}, false);
el.removeEventListener('mousedown', function (e) {
return ripple.show(e, el, binding);
}, false);
el.removeEventListener('touchend', function () {
return ripple.hide(el);
}, false);
el.removeEventListener('touchcancel', function () {
return ripple.hide(el);
}, false);
el.removeEventListener('mouseup', function () {
return ripple.hide(el);
}, false);
el.removeEventListener('mouseleave', function () {
return ripple.hide(el);
}, false);
el.removeEventListener('dragstart', function () {
return ripple.hide(el);
}, false);
}
function update(el, binding) {
if (binding.value === binding.oldValue) {
return;
}
el.setAttribute(RippleDataAttribute, isRippleEnabled(binding));
}
exports.default = {
name: 'ripple',
bind: directive,
unbind: unbind,
update: update
};
/***/ }),
/* 18 */
/***/ (function(module, exports) {
// removed by extract-text-webpack-plugin
/***/ }),
/* 19 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _loadable = __webpack_require__(41);
var _loadable2 = _interopRequireDefault(_loadable);
var _themeable = __webpack_require__(1);
var _themeable2 = _interopRequireDefault(_themeable);
var _validatable = __webpack_require__(126);
var _validatable2 = _interopRequireDefault(_validatable);
var _VIcon = __webpack_require__(3);
var _VIcon2 = _interopRequireDefault(_VIcon);
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 = {
name: 'input',
components: {
VIcon: _VIcon2.default
},
mixins: [_loadable2.default, _themeable2.default, _validatable2.default],
data: function data() {
return {
isFocused: false,
tabFocused: false,
internalTabIndex: null,
lazyValue: this.value
};
},
props: {
appendIcon: String,
appendIconCb: Function,
disabled: Boolean,
hint: String,
hideDetails: Boolean,
label: String,
persistentHint: Boolean,
placeholder: String,
prependIcon: String,
prependIconCb: Function,
readonly: Boolean,
required: Boolean,
tabindex: {
default: 0
},
toggleKeys: {
type: Array,
default: function _default() {
return [13, 32];
}
},
value: {
required: false
}
},
computed: {
inputGroupClasses: function inputGroupClasses() {
return Object.assign({
'input-group': true,
'input-group--async-loading': this.loading !== false,
'input-group--focused': this.isFocused,
'input-group--dirty': this.isDirty,
'input-group--tab-focused': this.tabFocused,
'input-group--disabled': this.disabled,
'input-group--error': this.hasError,
'input-group--append-icon': this.appendIcon,
'input-group--prepend-icon': this.prependIcon,
'input-group--required': this.required,
'input-group--hide-details': this.hideDetails,
'input-group--placeholder': !!this.placeholder,
'theme--dark': this.dark,
'theme--light': this.light
}, this.classes);
},
isDirty: function isDirty() {
return !!this.inputValue;
}
},
methods: {
groupFocus: function groupFocus(e) {},
groupBlur: function groupBlur(e) {
this.tabFocused = false;
},
genLabel: function genLabel() {
return this.$createElement('label', {
attrs: {
for: this.$attrs.id
}
}, this.$slots.label || this.label);
},
genMessages: function genMessages() {
var messages = null;
if (this.hint && (this.isFocused || this.persistentHint) && !this.validations.length) {
messages = [this.genHint()];
} else if (this.validations.length) {
messages = [this.genError(this.validations[0])];
}
return this.$createElement('transition', {
props: {
name: 'slide-y-transition'
}
}, messages);
},
genHint: function genHint() {
return this.$createElement('div', {
'class': 'input-group__messages input-group__hint',
domProps: { innerHTML: this.hint }
});
},
genError: function genError(error) {
return this.$createElement('div', {
'class': 'input-group__messages input-group__error'
}, error);
},
genIcon: function genIcon(type) {
var _class;
var defaultCallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
var shouldClear = type === 'append' && this.clearable && this.isDirty;
var icon = shouldClear ? 'clear' : this[type + 'Icon'];
var callback = shouldClear ? this.clearableCallback : this[type + 'IconCb'] || defaultCallback;
return this.$createElement('v-icon', {
'class': (_class = {}, _defineProperty(_class, 'input-group__' + type + '-icon', true), _defineProperty(_class, 'input-group__icon-cb', !!callback), _defineProperty(_class, 'input-group__icon-clearable', shouldClear), _class),
props: {
disabled: this.disabled
},
on: {
click: function click(e) {
if (!callback) return;
e.stopPropagation();
callback();
}
}
}, icon);
},
genInputGroup: function genInputGroup(input) {
var _this = this;
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var defaultAppendCallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
var children = [];
var wrapperChildren = [];
var detailsChildren = [];
data = Object.assign({}, {
'class': this.inputGroupClasses,
attrs: {
tabindex: this.disabled ? -1 : this.internalTabIndex || this.tabindex
},
on: {
focus: this.groupFocus,
blur: this.groupBlur,
click: function click() {
return _this.tabFocused = false;
},
keyup: function keyup(e) {
if ([9, 16].includes(e.keyCode)) {
_this.tabFocused = true;
}
},
keydown: function keydown(e) {
if (!_this.toggle) return;
if (_this.toggleKeys.includes(e.keyCode)) {
e.preventDefault();
_this.toggle();
}
}
}
}, data);
if (this.$slots.label || this.label) {
children.push(this.genLabel());
}
wrapperChildren.push(input);
if (this.prependIcon) {
wrapperChildren.unshift(this.genIcon('prepend'));
}
if (this.appendIcon || this.clearable) {
wrapperChildren.push(this.genIcon('append', defaultAppendCallback));
}
var progress = this.genProgress();
progress && detailsChildren.push(progress);
children.push(this.$createElement('div', {
'class': 'input-group__input'
}, wrapperChildren));
!this.hideDetails && detailsChildren.push(this.genMessages());
if (this.counter) {
detailsChildren.push(this.genCounter());
}
children.push(this.$createElement('div', {
'class': 'input-group__details'
}, detailsChildren));
return this.$createElement('div', data, children);
}
}
};
/***/ }),
/* 20 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
function searchChildren(children) {
var results = [];
for (var index = 0; index < children.length; index++) {
var child = children[index];
if (child.isActive && child.isDependent) {
results.push(child);
} else {
results.push.apply(results, _toConsumableArray(searchChildren(child.$children)));
}
}
return results;
}
exports.default = {
name: 'dependent',
data: function data() {
return {
closeDependents: true,
isDependent: true
};
},
methods: {
getOpenDependents: function getOpenDependents() {
if (this.closeDependents) return searchChildren(this.$children);
return [];
},
getOpenDependentElements: function getOpenDependentElements() {
var result = [];
var openDependents = this.getOpenDependents();
for (var index = 0; index < openDependents.length; index++) {
result.push.apply(result, _toConsumableArray(openDependents[index].getClickableDependentElements()));
}
return result;
},
getClickableDependentElements: function getClickableDependentElements() {
var result = [this.$el];
if (this.$refs.content) result.push(this.$refs.content);
result.push.apply(result, _toConsumableArray(this.getOpenDependentElements()));
return result;
}
},
watch: {
isActive: function isActive(val) {
if (val) return;
var openDependents = this.getOpenDependents();
for (var index = 0; index < openDependents.length; index++) {
openDependents[index].isActive = false;
}
}
}
};
/***/ }),
/* 21 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.VCardText = exports.VCardActions = exports.VCardTitle = exports.VCardMedia = exports.VCard = undefined;
var _helpers = __webpack_require__(2);
var _VCard = __webpack_require__(115);
var _VCard2 = _interopRequireDefault(_VCard);
var _VCardMedia = __webpack_require__(117);
var _VCardMedia2 = _interopRequireDefault(_VCardMedia);
var _VCardTitle = __webpack_require__(118);
var _VCardTitle2 = _interopRequireDefault(_VCardTitle);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var VCardActions = (0, _helpers.createSimpleFunctional)('card__actions');
var VCardText = (0, _helpers.createSimpleFunctional)('card__text');
exports.VCard = _VCard2.default;
exports.VCardMedia = _VCardMedia2.default;
exports.VCardTitle = _VCardTitle2.default;
exports.VCardActions = VCardActions;
exports.VCardText = VCardText;
/* istanbul ignore next */
_VCard2.default.install = function install(Vue) {
Vue.component(_VCard2.default.name, _VCard2.default);
Vue.component(_VCardMedia2.default.name, _VCardMedia2.default);
Vue.component(_VCardTitle2.default.name, _VCardTitle2.default);
Vue.component(VCardActions.name, VCardActions);
Vue.component(VCardText.name, VCardText);
};
exports.default = _VCard2.default;
/***/ }),