· 8 years ago · Jan 11, 2018, 10:56 AM
1(function webpackUniversalModuleDefinition(root, factory) {
2 if(typeof exports === 'object' && typeof module === 'object')
3 module.exports = factory();
4 else if(typeof define === 'function' && define.amd)
5 define([], factory);
6 else if(typeof exports === 'object')
7 exports["Vuetify"] = factory();
8 else
9 root["Vuetify"] = factory();
10})(typeof self !== 'undefined' ? self : this, function() {
11return /******/ (function(modules) { // webpackBootstrap
12/******/ // The module cache
13/******/ var installedModules = {};
14/******/
15/******/ // The require function
16/******/ function __webpack_require__(moduleId) {
17/******/
18/******/ // Check if module is in cache
19/******/ if(installedModules[moduleId]) {
20/******/ return installedModules[moduleId].exports;
21/******/ }
22/******/ // Create a new module (and put it into the cache)
23/******/ var module = installedModules[moduleId] = {
24/******/ i: moduleId,
25/******/ l: false,
26/******/ exports: {}
27/******/ };
28/******/
29/******/ // Execute the module function
30/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
31/******/
32/******/ // Flag the module as loaded
33/******/ module.l = true;
34/******/
35/******/ // Return the exports of the module
36/******/ return module.exports;
37/******/ }
38/******/
39/******/
40/******/ // expose the modules object (__webpack_modules__)
41/******/ __webpack_require__.m = modules;
42/******/
43/******/ // expose the module cache
44/******/ __webpack_require__.c = installedModules;
45/******/
46/******/ // define getter function for harmony exports
47/******/ __webpack_require__.d = function(exports, name, getter) {
48/******/ if(!__webpack_require__.o(exports, name)) {
49/******/ Object.defineProperty(exports, name, {
50/******/ configurable: false,
51/******/ enumerable: true,
52/******/ get: getter
53/******/ });
54/******/ }
55/******/ };
56/******/
57/******/ // getDefaultExport function for compatibility with non-harmony modules
58/******/ __webpack_require__.n = function(module) {
59/******/ var getter = module && module.__esModule ?
60/******/ function getDefault() { return module['default']; } :
61/******/ function getModuleExports() { return module; };
62/******/ __webpack_require__.d(getter, 'a', getter);
63/******/ return getter;
64/******/ };
65/******/
66/******/ // Object.prototype.hasOwnProperty.call
67/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
68/******/
69/******/ // __webpack_public_path__
70/******/ __webpack_require__.p = "/dist/";
71/******/
72/******/ // Load entry module and return exports
73/******/ return __webpack_require__(__webpack_require__.s = 68);
74/******/ })
75/************************************************************************/
76/******/ ([
77/* 0 */
78/***/ (function(module, __webpack_exports__, __webpack_require__) {
79
80"use strict";
81var _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"); } }; }();
82
83/* harmony default export */ __webpack_exports__["a"] = ({
84 name: 'colorable',
85
86 props: {
87 color: String
88 },
89
90 data: function data() {
91 return {
92 defaultColor: null
93 };
94 },
95
96
97 computed: {
98 computedColor: function computedColor() {
99 return this.color || this.defaultColor;
100 }
101 },
102
103 methods: {
104 addBackgroundColorClassChecks: function addBackgroundColorClassChecks() {
105 var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
106 var color = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.computedColor;
107
108 var classes = Object.assign({}, obj);
109
110 if (color) {
111 classes[color] = true;
112 }
113
114 return classes;
115 },
116 addTextColorClassChecks: function addTextColorClassChecks() {
117 var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
118 var color = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.computedColor;
119
120 var classes = Object.assign({}, obj);
121
122 if (color) {
123 var _color$trim$split = color.trim().split(' '),
124 _color$trim$split2 = _slicedToArray(_color$trim$split, 2),
125 colorName = _color$trim$split2[0],
126 colorModifier = _color$trim$split2[1];
127
128 classes[colorName + '--text'] = true;
129 colorModifier && (classes['text--' + colorModifier] = true);
130 }
131
132 return classes;
133 }
134 }
135});
136
137/***/ }),
138/* 1 */
139/***/ (function(module, __webpack_exports__, __webpack_require__) {
140
141"use strict";
142/* harmony default export */ __webpack_exports__["a"] = ({
143 name: 'themeable',
144
145 props: {
146 dark: Boolean,
147 light: Boolean
148 },
149
150 computed: {
151 themeClasses: function themeClasses() {
152 return {
153 'theme--light': this.light,
154 'theme--dark': this.dark
155 };
156 }
157 }
158});
159
160/***/ }),
161/* 2 */
162/***/ (function(module, __webpack_exports__, __webpack_require__) {
163
164"use strict";
165/* harmony export (immutable) */ __webpack_exports__["d"] = createSimpleFunctional;
166/* harmony export (immutable) */ __webpack_exports__["e"] = createSimpleTransition;
167/* harmony export (immutable) */ __webpack_exports__["b"] = createJavaScriptTransition;
168/* unused harmony export directiveConfig */
169/* harmony export (immutable) */ __webpack_exports__["a"] = addOnceEventListener;
170/* harmony export (immutable) */ __webpack_exports__["h"] = getObjectValueByPath;
171/* harmony export (immutable) */ __webpack_exports__["c"] = createRange;
172/* harmony export (immutable) */ __webpack_exports__["i"] = getZIndex;
173/* harmony export (immutable) */ __webpack_exports__["f"] = escapeHTML;
174/* harmony export (immutable) */ __webpack_exports__["g"] = filterObjectOnKeys;
175/* unused harmony export filterChildren */
176var _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; };
177
178function _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); } }
179
180function createSimpleFunctional(c) {
181 var el = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'div';
182 var name = arguments[2];
183
184 name = name || c.replace(/__/g, '-');
185
186 return {
187 name: 'v-' + name,
188 functional: true,
189
190 render: function render(h, _ref) {
191 var data = _ref.data,
192 children = _ref.children;
193
194 data.staticClass = (c + ' ' + (data.staticClass || '')).trim();
195
196 return h(el, data, children);
197 }
198 };
199}
200
201function createSimpleTransition(name) {
202 var origin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top center 0';
203 var mode = arguments[2];
204
205 return {
206 name: name,
207
208 functional: true,
209
210 props: {
211 origin: {
212 type: String,
213 default: origin
214 }
215 },
216
217 render: function render(h, context) {
218 context.data = context.data || {};
219 context.data.props = { name: name };
220 context.data.on = context.data.on || {};
221 if (!Object.isExtensible(context.data.on)) {
222 context.data.on = _extends({}, context.data.on);
223 }
224
225 if (mode) context.data.props.mode = mode;
226
227 context.data.on.beforeEnter = function (el) {
228 el.style.transformOrigin = context.props.origin;
229 el.style.webkitTransformOrigin = context.props.origin;
230 };
231
232 return h('transition', context.data, context.children);
233 }
234 };
235}
236
237function createJavaScriptTransition(name, functions) {
238 var css = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
239 var mode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'in-out';
240
241 return {
242 name: name,
243
244 functional: true,
245
246 props: {
247 css: {
248 type: Boolean,
249 default: css
250 },
251 mode: {
252 type: String,
253 default: mode
254 }
255 },
256
257 render: function render(h, context) {
258 var data = {
259 props: _extends({}, context.props, {
260 name: name
261 }),
262 on: functions
263 };
264
265 return h('transition', data, context.children);
266 }
267 };
268}
269
270function directiveConfig(binding) {
271 var defaults = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
272
273 return Object.assign({}, defaults, binding.modifiers, { value: binding.arg }, binding.value || {});
274}
275
276function addOnceEventListener(el, event, cb) {
277 var once = function once() {
278 cb();
279 el.removeEventListener(event, once, false);
280 };
281
282 el.addEventListener(event, once, false);
283}
284
285function getObjectValueByPath(obj, path) {
286 // credit: http://stackoverflow.com/questions/6491463/accessing-nested-javascript-objects-with-string-key#comment55278413_6491621
287 if (!path || path.constructor !== String) return;
288 path = path.replace(/\[(\w+)\]/g, '.$1'); // convert indexes to properties
289 path = path.replace(/^\./, ''); // strip a leading dot
290 var a = path.split('.');
291 for (var i = 0, n = a.length; i < n; ++i) {
292 var k = a[i];
293 if (obj instanceof Object && k in obj) {
294 obj = obj[k];
295 } else {
296 return;
297 }
298 }
299 return obj;
300}
301
302function createRange(length) {
303 return [].concat(_toConsumableArray(Array.from({ length: length }, function (v, k) {
304 return k;
305 })));
306}
307
308function getZIndex(el) {
309 if (!el || el.nodeType !== Node.ELEMENT_NODE) return 0;
310 var zi = document.defaultView.getComputedStyle(el).getPropertyValue('z-index');
311 if (isNaN(zi)) return getZIndex(el.parentNode);
312
313 return zi;
314}
315
316var tagsToReplace = {
317 '&': '&',
318 '<': '<',
319 '>': '>'
320};
321
322function escapeHTML(str) {
323 return str.replace(/[&<>]/g, function (tag) {
324 return tagsToReplace[tag] || tag;
325 });
326}
327
328function filterObjectOnKeys(obj, keys) {
329 var filtered = {};
330
331 for (var i = 0; i < keys.length; i++) {
332 var key = keys[i];
333 if (typeof obj[key] !== 'undefined') {
334 filtered[key] = obj[key];
335 }
336 }
337
338 return filtered;
339}
340
341function filterChildren() {
342 var array = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
343 var tag = arguments[1];
344
345 return array.filter(function (child) {
346 return child.componentOptions && child.componentOptions.Ctor.options.name === tag;
347 });
348}
349
350/***/ }),
351/* 3 */
352/***/ (function(module, __webpack_exports__, __webpack_require__) {
353
354"use strict";
355/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VIcon__ = __webpack_require__(89);
356
357
358/* istanbul ignore next */
359__WEBPACK_IMPORTED_MODULE_0__VIcon__["a" /* default */].install = function install(Vue) {
360 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VIcon__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VIcon__["a" /* default */]);
361};
362
363/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VIcon__["a" /* default */]);
364
365/***/ }),
366/* 4 */
367/***/ (function(module, __webpack_exports__, __webpack_require__) {
368
369"use strict";
370/* harmony export (immutable) */ __webpack_exports__["b"] = factory;
371function _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; }
372
373function factory() {
374 var _watch;
375
376 var prop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'value';
377 var event = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'input';
378
379 return {
380 name: 'toggleable',
381
382 model: { prop: prop, event: event },
383
384 props: _defineProperty({}, prop, { required: false }),
385
386 data: function data() {
387 return {
388 isActive: !!this[prop]
389 };
390 },
391
392
393 watch: (_watch = {}, _defineProperty(_watch, prop, function (val) {
394 this.isActive = !!val;
395 }), _defineProperty(_watch, 'isActive', function isActive(val) {
396 !!val !== this[prop] && this.$emit(event, val);
397 }), _watch)
398 };
399}
400
401var Toggleable = factory();
402
403/* harmony default export */ __webpack_exports__["a"] = (Toggleable);
404
405/***/ }),
406/* 5 */
407/***/ (function(module, __webpack_exports__, __webpack_require__) {
408
409"use strict";
410/* harmony export (immutable) */ __webpack_exports__["a"] = inject;
411/* harmony export (immutable) */ __webpack_exports__["b"] = provide;
412/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util_console__ = __webpack_require__(7);
413function _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; }
414
415
416
417function generateWarning(child, parent) {
418 return function () {
419 return Object(__WEBPACK_IMPORTED_MODULE_0__util_console__["b" /* consoleWarn */])('The ' + child + ' component must be used inside a ' + parent);
420 };
421}
422
423function inject(namespace, child, parent) {
424 var defaultImpl = child && parent ? {
425 register: generateWarning(child, parent),
426 unregister: generateWarning(child, parent)
427 } : null;
428
429 return {
430 name: 'registerable-inject',
431
432 inject: _defineProperty({}, namespace, {
433 default: defaultImpl
434 })
435 };
436}
437
438function provide(namespace) {
439 return {
440 name: 'registerable-provide',
441
442 methods: {
443 register: null,
444 unregister: null
445 },
446 provide: function provide() {
447 return _defineProperty({}, namespace, {
448 register: this.register,
449 unregister: this.unregister
450 });
451 }
452 };
453}
454
455/***/ }),
456/* 6 */
457/***/ (function(module, __webpack_exports__, __webpack_require__) {
458
459"use strict";
460/* unused harmony export VBottomSheetTranstion */
461/* unused harmony export VCarouselTransition */
462/* unused harmony export VCarouselReverseTransition */
463/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return VTabTransition; });
464/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return VTabReverseTransition; });
465/* unused harmony export VMenuTransition */
466/* unused harmony export VFabTransition */
467/* unused harmony export VDialogTransition */
468/* unused harmony export VDialogBottomTransition */
469/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return VFadeTransition; });
470/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return VScaleTransition; });
471/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return VSlideXTransition; });
472/* unused harmony export VSlideXReverseTransition */
473/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return VSlideYTransition; });
474/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return VSlideYReverseTransition; });
475/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return VExpandTransition; });
476/* unused harmony export VRowExpandTransition */
477/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util_helpers__ = __webpack_require__(2);
478/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__expand_transition__ = __webpack_require__(39);
479
480
481
482
483// Component specific transitions
484var VBottomSheetTranstion = Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["e" /* createSimpleTransition */])('bottom-sheet-transition');
485var VCarouselTransition = Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["e" /* createSimpleTransition */])('carousel-transition');
486var VCarouselReverseTransition = Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["e" /* createSimpleTransition */])('carousel-reverse-transition');
487var VTabTransition = Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["e" /* createSimpleTransition */])('tab-transition');
488var VTabReverseTransition = Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["e" /* createSimpleTransition */])('tab-reverse-transition');
489var VMenuTransition = Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["e" /* createSimpleTransition */])('menu-transition');
490var VFabTransition = Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["e" /* createSimpleTransition */])('fab-transition', 'center center', 'out-in');
491
492// Generic transitions
493var VDialogTransition = Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["e" /* createSimpleTransition */])('dialog-transition');
494var VDialogBottomTransition = Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["e" /* createSimpleTransition */])('dialog-bottom-transition');
495var VFadeTransition = Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["e" /* createSimpleTransition */])('fade-transition');
496var VScaleTransition = Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["e" /* createSimpleTransition */])('scale-transition');
497var VSlideXTransition = Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["e" /* createSimpleTransition */])('slide-x-transition');
498var VSlideXReverseTransition = Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["e" /* createSimpleTransition */])('slide-x-reverse-transition');
499var VSlideYTransition = Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["e" /* createSimpleTransition */])('slide-y-transition');
500var VSlideYReverseTransition = Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["e" /* createSimpleTransition */])('slide-y-reverse-transition');
501
502// JavaScript transitions
503var VExpandTransition = Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["b" /* createJavaScriptTransition */])('expand-transition', Object(__WEBPACK_IMPORTED_MODULE_1__expand_transition__["a" /* default */])());
504var VRowExpandTransition = Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["b" /* createJavaScriptTransition */])('row-expand-transition', Object(__WEBPACK_IMPORTED_MODULE_1__expand_transition__["a" /* default */])('datatable__expand-col--expanded'));
505
506/* harmony default export */ __webpack_exports__["i"] = (install);
507/* istanbul ignore next */
508function install(Vue) {
509 Vue.component('v-bottom-sheet-transition', VBottomSheetTranstion);
510 Vue.component('v-carousel-transition', VCarouselTransition);
511 Vue.component('v-carousel-reverse-transition', VCarouselReverseTransition);
512 Vue.component('v-dialog-transition', VDialogTransition);
513 Vue.component('v-dialog-bottom-transition', VDialogBottomTransition);
514 Vue.component('v-fab-transition', VFabTransition);
515 Vue.component('v-fade-transition', VFadeTransition);
516 Vue.component('v-menu-transition', VMenuTransition);
517 Vue.component('v-scale-transition', VScaleTransition);
518 Vue.component('v-slide-x-transition', VSlideXTransition);
519 Vue.component('v-slide-x-reverse-transition', VSlideXReverseTransition);
520 Vue.component('v-slide-y-transition', VSlideYTransition);
521 Vue.component('v-slide-y-reverse-transition', VSlideYReverseTransition);
522 Vue.component('v-tab-reverse-transition', VTabReverseTransition);
523 Vue.component('v-tab-transition', VTabTransition);
524 Vue.component('v-expand-transition', VExpandTransition);
525 Vue.component('v-row-expand-transition', VRowExpandTransition);
526}
527
528/***/ }),
529/* 7 */
530/***/ (function(module, __webpack_exports__, __webpack_require__) {
531
532"use strict";
533/* harmony export (immutable) */ __webpack_exports__["b"] = consoleWarn;
534/* harmony export (immutable) */ __webpack_exports__["a"] = consoleError;
535function createMessage(message, componentInstance) {
536 var componentInfo = componentInstance ? ' in "' + componentInstance.$options.name + '"' : '';
537 return '[Vuetify] ' + message + componentInfo;
538}
539
540function consoleWarn(message) {
541 var componentInstance = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
542
543 console.warn(createMessage(message, componentInstance));
544}
545
546function consoleError(message) {
547 var componentInstance = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
548
549 console.error(createMessage(message, componentInstance));
550}
551
552/***/ }),
553/* 8 */
554/***/ (function(module, __webpack_exports__, __webpack_require__) {
555
556"use strict";
557function directive(e, el, binding, v) {
558 // The include element callbacks below can be expensive
559 // so we should avoid calling them when we're not active.
560 // Explicitly check for false to allow fallback compatibility
561 // with non-toggleable components
562 if (!e || v.context.isActive === false) return;
563
564 // If click was triggered programmaticaly (domEl.click()) then
565 // it shouldn't be treated as click-outside
566 // Chrome/Firefox support isTrusted property
567 // IE/Edge support pointerType property (empty if not triggered
568 // by pointing device)
569 if ('isTrusted' in e && !e.isTrusted || 'pointerType' in e && !e.pointerType) return;
570
571 // Get value passed to directive
572 var val = binding.value || function () {
573 return true;
574 };
575 // Check if callback was passed in object or as the value
576 var cb = val.callback || val;
577 // Check if additional elements were passed to be included in check
578 // (click must be outside all included elements, if any)
579 var elements = (val.include || function () {
580 return [];
581 })();
582 // Add the root element for the component this directive was defined on
583 elements.push(el);
584
585 // Check if it's a click outside our elements, and then if our callback returns true.
586 // Non-toggleable components should take action in their callback and return falsy.
587 // Toggleable can return true if it wants to deactivate.
588 // Note that, because we're in the capture phase, this callback will occure before
589 // the bubbling click event on any outside elements.
590 if (!clickedInEls(e, elements) && cb(e)) {
591 // Delay setting toggleable inactive to avoid conflicting
592 // with an outside click on any activator toggling our state.
593 setTimeout(function () {
594 return v.context.isActive = false;
595 }, 0);
596 }
597}
598
599function clickedInEls(e, elements) {
600 // Get position of click
601 var x = e.clientX,
602 y = e.clientY;
603 // Loop over all included elements to see if click was in any of them
604
605 var _iteratorNormalCompletion = true;
606 var _didIteratorError = false;
607 var _iteratorError = undefined;
608
609 try {
610 for (var _iterator = elements[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
611 var el = _step.value;
612
613 if (clickedInEl(el, x, y)) return true;
614 }
615 } catch (err) {
616 _didIteratorError = true;
617 _iteratorError = err;
618 } finally {
619 try {
620 if (!_iteratorNormalCompletion && _iterator.return) {
621 _iterator.return();
622 }
623 } finally {
624 if (_didIteratorError) {
625 throw _iteratorError;
626 }
627 }
628 }
629
630 return false;
631}
632
633function clickedInEl(el, x, y) {
634 // Get bounding rect for element
635 // (we're in capturing event and we want to check for multiple elements,
636 // so can't use target.)
637 var b = el.getBoundingClientRect();
638 // Check if the click was in the element's bounding rect
639
640 return x >= b.left && x <= b.right && y >= b.top && y <= b.bottom;
641}
642
643/* harmony default export */ __webpack_exports__["a"] = ({
644 name: 'click-outside',
645
646 // [data-app] may not be found
647 // if using bind, inserted makes
648 // sure that the root element is
649 // available, iOS does not support
650 // clicks on body
651 inserted: function inserted(el, binding, v) {
652 var onClick = function onClick(e) {
653 return directive(e, el, binding, v);
654 };
655 // iOS does not recognize click events on document
656 // or body, this is the entire purpose of the v-app
657 // component and [data-app], stop removing this
658 var app = document.querySelector('[data-app]') || document.body; // This is only for unit tests
659 app.addEventListener('click', onClick, true);
660 el._clickOutside = onClick;
661 },
662 unbind: function unbind(el) {
663 var app = document.querySelector('[data-app]') || document.body; // This is only for unit tests
664 app && app.removeEventListener('click', el._clickOutside, true);
665 delete el._clickOutside;
666 }
667});
668
669/***/ }),
670/* 9 */
671/***/ (function(module, __webpack_exports__, __webpack_require__) {
672
673"use strict";
674function _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; }
675
676var _touchstart = function _touchstart(event, wrapper) {
677 var touch = event.changedTouches[0];
678 wrapper.touchstartX = touch.clientX;
679 wrapper.touchstartY = touch.clientY;
680
681 wrapper.start && wrapper.start(Object.assign(event, wrapper));
682};
683
684var _touchend = function _touchend(event, wrapper) {
685 var touch = event.changedTouches[0];
686 wrapper.touchendX = touch.clientX;
687 wrapper.touchendY = touch.clientY;
688
689 wrapper.end && wrapper.end(Object.assign(event, wrapper));
690
691 handleGesture(wrapper);
692};
693
694var _touchmove = function _touchmove(event, wrapper) {
695 var touch = event.changedTouches[0];
696 wrapper.touchmoveX = touch.clientX;
697 wrapper.touchmoveY = touch.clientY;
698
699 wrapper.move && wrapper.move(Object.assign(event, wrapper));
700};
701
702var handleGesture = function handleGesture(wrapper) {
703 var touchstartX = wrapper.touchstartX,
704 touchendX = wrapper.touchendX,
705 touchstartY = wrapper.touchstartY,
706 touchendY = wrapper.touchendY;
707
708 var dirRatio = 0.5;
709 var minDistance = 16;
710 wrapper.offsetX = touchendX - touchstartX;
711 wrapper.offsetY = touchendY - touchstartY;
712
713 if (Math.abs(wrapper.offsetY) < dirRatio * Math.abs(wrapper.offsetX)) {
714 wrapper.left && touchendX < touchstartX - minDistance && wrapper.left(wrapper);
715 wrapper.right && touchendX > touchstartX + minDistance && wrapper.right(wrapper);
716 }
717
718 if (Math.abs(wrapper.offsetX) < dirRatio * Math.abs(wrapper.offsetY)) {
719 wrapper.up && touchendY < touchstartY - minDistance && wrapper.up(wrapper);
720 wrapper.down && touchendY > touchstartY + minDistance && wrapper.down(wrapper);
721 }
722};
723
724function inserted(el, _ref, _ref2) {
725 var value = _ref.value;
726 var context = _ref2.context;
727
728 var wrapper = {
729 touchstartX: 0,
730 touchstartY: 0,
731 touchendX: 0,
732 touchendY: 0,
733 touchmoveX: 0,
734 touchmoveY: 0,
735 offsetX: 0,
736 offsetY: 0,
737 left: value.left,
738 right: value.right,
739 up: value.up,
740 down: value.down,
741 start: value.start,
742 move: value.move,
743 end: value.end
744 };
745
746 var target = value.parent ? el.parentNode : el;
747 var options = value.options || { passive: true
748
749 // Needed to pass unit tests
750 };if (!target) return;
751
752 var handlers = {
753 touchstart: function touchstart(e) {
754 return _touchstart(e, wrapper);
755 },
756 touchend: function touchend(e) {
757 return _touchend(e, wrapper);
758 },
759 touchmove: function touchmove(e) {
760 return _touchmove(e, wrapper);
761 }
762 };
763 target._touchHandlers = Object.assign(Object(target._touchHandlers), _defineProperty({}, context._uid, handlers));
764 var _iteratorNormalCompletion = true;
765 var _didIteratorError = false;
766 var _iteratorError = undefined;
767
768 try {
769 for (var _iterator = Object.keys(handlers)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
770 var eventName = _step.value;
771
772 target.addEventListener(eventName, handlers[eventName], options);
773 }
774 } catch (err) {
775 _didIteratorError = true;
776 _iteratorError = err;
777 } finally {
778 try {
779 if (!_iteratorNormalCompletion && _iterator.return) {
780 _iterator.return();
781 }
782 } finally {
783 if (_didIteratorError) {
784 throw _iteratorError;
785 }
786 }
787 }
788}
789
790function unbind(el, _ref3, _ref4) {
791 var value = _ref3.value;
792 var context = _ref4.context;
793
794 var target = value.parent ? el.parentNode : el;
795
796 if (!target) return;
797
798 var handlers = target._touchHandlers[context._uid];
799 var _iteratorNormalCompletion2 = true;
800 var _didIteratorError2 = false;
801 var _iteratorError2 = undefined;
802
803 try {
804 for (var _iterator2 = Object.keys(handlers)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
805 var eventName = _step2.value;
806
807 target.removeEventListener(eventName, handlers[eventName]);
808 }
809 } catch (err) {
810 _didIteratorError2 = true;
811 _iteratorError2 = err;
812 } finally {
813 try {
814 if (!_iteratorNormalCompletion2 && _iterator2.return) {
815 _iterator2.return();
816 }
817 } finally {
818 if (_didIteratorError2) {
819 throw _iteratorError2;
820 }
821 }
822 }
823
824 delete target._touchHandlers[context._uid];
825}
826
827/* harmony default export */ __webpack_exports__["a"] = ({
828 name: 'touch',
829 inserted: inserted,
830 unbind: unbind
831});
832
833/***/ }),
834/* 10 */
835/***/ (function(module, __webpack_exports__, __webpack_require__) {
836
837"use strict";
838/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VBtn__ = __webpack_require__(108);
839
840
841/* istanbul ignore next */
842__WEBPACK_IMPORTED_MODULE_0__VBtn__["a" /* default */].install = function install(Vue) {
843 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VBtn__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VBtn__["a" /* default */]);
844};
845
846/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VBtn__["a" /* default */]);
847
848/***/ }),
849/* 11 */
850/***/ (function(module, __webpack_exports__, __webpack_require__) {
851
852"use strict";
853function inserted(el, binding) {
854 var callback = binding.value;
855 var debounce = binding.arg || 200;
856 var options = binding.options || { passive: true };
857
858 var debounceTimeout = null;
859 var onResize = function onResize() {
860 clearTimeout(debounceTimeout);
861 debounceTimeout = setTimeout(callback, debounce, options);
862 };
863
864 window.addEventListener('resize', onResize, options);
865 el._onResize = {
866 callback: callback,
867 options: options
868 };
869
870 if (!binding.modifiers || !binding.modifiers.quiet) {
871 onResize();
872 }
873}
874
875function unbind(el, binding) {
876 var _el$_onResize = el._onResize,
877 callback = _el$_onResize.callback,
878 options = _el$_onResize.options;
879
880
881 window.removeEventListener('resize', callback, options);
882 delete el._onResize;
883}
884
885/* harmony default export */ __webpack_exports__["a"] = ({
886 name: 'resize',
887 inserted: inserted,
888 unbind: unbind
889});
890
891/***/ }),
892/* 12 */
893/***/ (function(module, __webpack_exports__, __webpack_require__) {
894
895"use strict";
896/* harmony export (immutable) */ __webpack_exports__["b"] = factory;
897/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util_helpers__ = __webpack_require__(2);
898
899
900function factory() {
901 var selected = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
902
903 var props = {
904 absolute: Boolean,
905 bottom: Boolean,
906 fixed: Boolean,
907 left: Boolean,
908 right: Boolean,
909 top: Boolean
910 };
911
912 return {
913 name: 'positionable',
914 props: selected.length && Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["g" /* filterObjectOnKeys */])(props, selected) || props
915 };
916}
917
918/* harmony default export */ __webpack_exports__["a"] = (factory());
919
920/***/ }),
921/* 13 */
922/***/ (function(module, __webpack_exports__, __webpack_require__) {
923
924"use strict";
925/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__directives_ripple__ = __webpack_require__(17);
926var _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; };
927
928
929
930/* harmony default export */ __webpack_exports__["a"] = ({
931 name: 'routable',
932
933 directives: {
934 Ripple: __WEBPACK_IMPORTED_MODULE_0__directives_ripple__["a" /* default */]
935 },
936
937 props: {
938 activeClass: String,
939 append: Boolean,
940 disabled: Boolean,
941 exact: {
942 type: Boolean,
943 default: undefined
944 },
945 exactActiveClass: String,
946 href: [String, Object],
947 to: [String, Object],
948 nuxt: Boolean,
949 replace: Boolean,
950 ripple: [Boolean, Object],
951 tag: String,
952 target: String
953 },
954
955 methods: {
956 click: function click() {},
957 generateRouteLink: function generateRouteLink() {
958 var exact = this.exact;
959 var tag = void 0;
960
961 var data = {
962 attrs: { disabled: this.disabled },
963 class: this.classes,
964 props: {},
965 directives: [{
966 name: 'ripple',
967 value: this.ripple && !this.disabled ? this.ripple : false
968 }],
969 on: _extends({}, this.$listeners || {}, {
970 click: this.click
971 })
972 };
973
974 if (typeof this.exact === 'undefined') {
975 exact = this.to === '/' || this.to === Object(this.to) && this.to.path === '/';
976 }
977
978 if (this.to) {
979 // Add a special activeClass hook
980 // for component level styles
981 var activeClass = this.activeClass;
982 var exactActiveClass = this.exactActiveClass || activeClass;
983
984 if (this.proxyClass) {
985 activeClass += ' ' + this.proxyClass;
986 exactActiveClass += ' ' + this.proxyClass;
987 }
988
989 tag = this.nuxt ? 'nuxt-link' : 'router-link';
990 Object.assign(data.props, {
991 to: this.to,
992 exact: exact,
993 activeClass: activeClass,
994 exactActiveClass: exactActiveClass,
995 append: this.append,
996 replace: this.replace
997 });
998 } else {
999 tag = this.href && 'a' || this.tag || 'a';
1000
1001 if (tag === 'a') {
1002 if (this.href) data.attrs.href = this.href;
1003 if (this.target) data.attrs.target = this.target;
1004 }
1005 }
1006
1007 return { tag: tag, data: data };
1008 }
1009 }
1010});
1011
1012/***/ }),
1013/* 14 */
1014/***/ (function(module, __webpack_exports__, __webpack_require__) {
1015
1016"use strict";
1017/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__createNativeLocaleFormatter__ = __webpack_require__(169);
1018/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__monthChange__ = __webpack_require__(170);
1019/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__pad__ = __webpack_require__(24);
1020/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_0__createNativeLocaleFormatter__["a"]; });
1021/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_1__monthChange__["a"]; });
1022/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return __WEBPACK_IMPORTED_MODULE_2__pad__["a"]; });
1023
1024
1025
1026
1027
1028
1029/***/ }),
1030/* 15 */
1031/***/ (function(module, __webpack_exports__, __webpack_require__) {
1032
1033"use strict";
1034/* harmony export (immutable) */ __webpack_exports__["a"] = applicationable;
1035/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__positionable__ = __webpack_require__(12);
1036
1037
1038function applicationable(value) {
1039 var events = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
1040
1041 return {
1042 name: 'applicationable',
1043
1044 mixins: [Object(__WEBPACK_IMPORTED_MODULE_0__positionable__["b" /* factory */])(['absolute', 'fixed'])],
1045
1046 props: {
1047 app: Boolean
1048 },
1049
1050 computed: {
1051 applicationProperty: function applicationProperty() {
1052 return value;
1053 }
1054 },
1055
1056 watch: {
1057 // If previous value was app
1058 // reset the provided prop
1059 app: function app(x, prev) {
1060 prev ? this.removeApplication() : this.callUpdate();
1061 }
1062 },
1063
1064 created: function created() {
1065 for (var i = 0, length = events.length; i < length; i++) {
1066 this.$watch(events[i], this.callUpdate);
1067 }
1068 },
1069 mounted: function mounted() {
1070 this.callUpdate();
1071 },
1072 destroyed: function destroyed() {
1073 this.app && this.removeApplication();
1074 },
1075
1076
1077 methods: {
1078 callUpdate: function callUpdate() {
1079 if (!this.app) return;
1080
1081 this.$vuetify.application[this.applicationProperty] = this.updateApplication();
1082 },
1083 removeApplication: function removeApplication() {
1084 this.$vuetify.application[this.applicationProperty] = 0;
1085 },
1086
1087 updateApplication: function updateApplication() {}
1088 }
1089 };
1090}
1091
1092/***/ }),
1093/* 16 */
1094/***/ (function(module, __webpack_exports__, __webpack_require__) {
1095
1096"use strict";
1097/**
1098 * Bootable
1099 * @mixin
1100 *
1101 * Used to add lazy content functionality to components
1102 * Looks for change in "isActive" to automatically boot
1103 * Otherwise can be set manually
1104 */
1105/* harmony default export */ __webpack_exports__["a"] = ({
1106 name: 'bootable',
1107
1108 data: function data() {
1109 return {
1110 isBooted: false
1111 };
1112 },
1113
1114 props: {
1115 lazy: Boolean
1116 },
1117
1118 watch: {
1119 isActive: function isActive() {
1120 this.isBooted = true;
1121 }
1122 },
1123
1124 methods: {
1125 showLazyContent: function showLazyContent(content) {
1126 return this.isBooted || !this.lazy ? content : null;
1127 }
1128 }
1129});
1130
1131/***/ }),
1132/* 17 */
1133/***/ (function(module, __webpack_exports__, __webpack_require__) {
1134
1135"use strict";
1136function style(el, value) {
1137 el.style['transform'] = value;
1138 el.style['webkitTransform'] = value;
1139}
1140
1141var RippleDataAttribute = 'data-ripple';
1142
1143var ripple = {
1144 /**
1145 * @param {Event} e
1146 * @param {Element} el
1147 * @param {{ class?: string, center?: boolean }} [value={}]
1148 */
1149 show: function show(e, el, _ref) {
1150 var _ref$value = _ref.value,
1151 value = _ref$value === undefined ? {} : _ref$value;
1152
1153 if (el.getAttribute(RippleDataAttribute) !== 'true') {
1154 return;
1155 }
1156
1157 var container = document.createElement('span');
1158 var animation = document.createElement('span');
1159
1160 container.appendChild(animation);
1161 container.className = 'ripple__container';
1162
1163 if (value.class) {
1164 container.className += ' ' + value.class;
1165 }
1166
1167 var size = el.clientWidth > el.clientHeight ? el.clientWidth : el.clientHeight;
1168 animation.className = 'ripple__animation';
1169 animation.style.width = size * (value.center ? 1 : 2) + 'px';
1170 animation.style.height = animation.style.width;
1171
1172 el.appendChild(container);
1173 var computed = window.getComputedStyle(el);
1174 if (computed.position !== 'absolute' && computed.position !== 'fixed') el.style.position = 'relative';
1175
1176 var offset = el.getBoundingClientRect();
1177 var x = value.center ? '50%' : e.clientX - offset.left + 'px';
1178 var y = value.center ? '50%' : e.clientY - offset.top + 'px';
1179
1180 animation.classList.add('ripple__animation--enter');
1181 animation.classList.add('ripple__animation--visible');
1182 style(animation, 'translate(-50%, -50%) translate(' + x + ', ' + y + ') scale3d(0.01,0.01,0.01)');
1183 animation.dataset.activated = Date.now();
1184
1185 setTimeout(function () {
1186 animation.classList.remove('ripple__animation--enter');
1187 style(animation, 'translate(-50%, -50%) translate(' + x + ', ' + y + ') scale3d(0.99,0.99,0.99)');
1188 }, 0);
1189 },
1190
1191 hide: function hide(el) {
1192 if (el.getAttribute(RippleDataAttribute) !== 'true') {
1193 return;
1194 }
1195
1196 var ripples = el.getElementsByClassName('ripple__animation');
1197
1198 if (ripples.length === 0) return;
1199 var animation = ripples[ripples.length - 1];
1200 var diff = Date.now() - Number(animation.dataset.activated);
1201 var delay = 400 - diff;
1202
1203 delay = delay < 0 ? 0 : delay;
1204
1205 setTimeout(function () {
1206 animation.classList.remove('ripple__animation--visible');
1207
1208 setTimeout(function () {
1209 // Need to figure out a new way to do this
1210 try {
1211 if (ripples.length < 1) el.style.position = null;
1212 animation.parentNode && el.removeChild(animation.parentNode);
1213 } catch (e) {}
1214 }, 300);
1215 }, delay);
1216 }
1217};
1218
1219function isRippleEnabled(binding) {
1220 return typeof binding.value === 'undefined' || !!binding.value;
1221}
1222
1223function directive(el, binding) {
1224 el.setAttribute(RippleDataAttribute, isRippleEnabled(binding));
1225
1226 if ('ontouchstart' in window) {
1227 el.addEventListener('touchend', function () {
1228 return ripple.hide(el);
1229 }, false);
1230 el.addEventListener('touchcancel', function () {
1231 return ripple.hide(el);
1232 }, false);
1233 }
1234
1235 el.addEventListener('mousedown', function (e) {
1236 return ripple.show(e, el, binding);
1237 }, false);
1238 el.addEventListener('mouseup', function () {
1239 return ripple.hide(el);
1240 }, false);
1241 el.addEventListener('mouseleave', function () {
1242 return ripple.hide(el);
1243 }, false);
1244 // Anchor tags can be dragged, causes other hides to fail - #1537
1245 el.addEventListener('dragstart', function () {
1246 return ripple.hide(el);
1247 }, false);
1248}
1249
1250function unbind(el, binding) {
1251 el.removeEventListener('touchstart', function (e) {
1252 return ripple.show(e, el, binding);
1253 }, false);
1254 el.removeEventListener('mousedown', function (e) {
1255 return ripple.show(e, el, binding);
1256 }, false);
1257 el.removeEventListener('touchend', function () {
1258 return ripple.hide(el);
1259 }, false);
1260 el.removeEventListener('touchcancel', function () {
1261 return ripple.hide(el);
1262 }, false);
1263 el.removeEventListener('mouseup', function () {
1264 return ripple.hide(el);
1265 }, false);
1266 el.removeEventListener('mouseleave', function () {
1267 return ripple.hide(el);
1268 }, false);
1269 el.removeEventListener('dragstart', function () {
1270 return ripple.hide(el);
1271 }, false);
1272}
1273
1274function update(el, binding) {
1275 if (binding.value === binding.oldValue) {
1276 return;
1277 }
1278
1279 el.setAttribute(RippleDataAttribute, isRippleEnabled(binding));
1280}
1281
1282/* harmony default export */ __webpack_exports__["a"] = ({
1283 name: 'ripple',
1284 bind: directive,
1285 unbind: unbind,
1286 update: update
1287});
1288
1289/***/ }),
1290/* 18 */
1291/***/ (function(module, exports) {
1292
1293// removed by extract-text-webpack-plugin
1294
1295/***/ }),
1296/* 19 */
1297/***/ (function(module, __webpack_exports__, __webpack_require__) {
1298
1299"use strict";
1300/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__loadable__ = __webpack_require__(41);
1301/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__themeable__ = __webpack_require__(1);
1302/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__validatable__ = __webpack_require__(124);
1303/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__components_VIcon__ = __webpack_require__(3);
1304function _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; }
1305
1306
1307
1308
1309
1310
1311/* harmony default export */ __webpack_exports__["a"] = ({
1312 name: 'input',
1313
1314 components: {
1315 VIcon: __WEBPACK_IMPORTED_MODULE_3__components_VIcon__["a" /* default */]
1316 },
1317
1318 mixins: [__WEBPACK_IMPORTED_MODULE_0__loadable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_1__themeable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__validatable__["a" /* default */]],
1319
1320 data: function data() {
1321 return {
1322 isFocused: false,
1323 tabFocused: false,
1324 internalTabIndex: null,
1325 lazyValue: this.value
1326 };
1327 },
1328
1329
1330 props: {
1331 appendIcon: String,
1332 appendIconCb: Function,
1333 disabled: Boolean,
1334 hint: String,
1335 hideDetails: Boolean,
1336 label: String,
1337 persistentHint: Boolean,
1338 placeholder: String,
1339 prependIcon: String,
1340 prependIconCb: Function,
1341 readonly: Boolean,
1342 required: Boolean,
1343 tabindex: {
1344 default: 0
1345 },
1346 toggleKeys: {
1347 type: Array,
1348 default: function _default() {
1349 return [13, 32];
1350 }
1351 },
1352 value: {
1353 required: false
1354 }
1355 },
1356
1357 computed: {
1358 inputGroupClasses: function inputGroupClasses() {
1359 return Object.assign({
1360 'input-group': true,
1361 'input-group--async-loading': this.loading !== false,
1362 'input-group--focused': this.isFocused,
1363 'input-group--dirty': this.isDirty,
1364 'input-group--tab-focused': this.tabFocused,
1365 'input-group--disabled': this.disabled,
1366 'input-group--error': this.hasError,
1367 'input-group--append-icon': this.appendIcon,
1368 'input-group--prepend-icon': this.prependIcon,
1369 'input-group--required': this.required,
1370 'input-group--hide-details': this.hideDetails,
1371 'input-group--placeholder': !!this.placeholder,
1372 'theme--dark': this.dark,
1373 'theme--light': this.light
1374 }, this.classes);
1375 },
1376 isDirty: function isDirty() {
1377 return !!this.inputValue;
1378 }
1379 },
1380
1381 methods: {
1382 groupFocus: function groupFocus(e) {},
1383 groupBlur: function groupBlur(e) {
1384 this.tabFocused = false;
1385 },
1386 genLabel: function genLabel() {
1387 return this.$createElement('label', {
1388 attrs: {
1389 for: this.$attrs.id
1390 }
1391 }, this.$slots.label || this.label);
1392 },
1393 genMessages: function genMessages() {
1394 var messages = null;
1395
1396 if ((this.hint && this.isFocused || this.hint && this.persistentHint) && this.validations.length === 0) {
1397 messages = [this.genHint()];
1398 } else if (this.validations.length) {
1399 messages = [this.genError(this.validations[0])];
1400 }
1401
1402 return this.$createElement('transition', {
1403 props: {
1404 name: 'slide-y-transition'
1405 }
1406 }, messages);
1407 },
1408 genHint: function genHint() {
1409 return this.$createElement('div', {
1410 'class': 'input-group__messages input-group__hint',
1411 domProps: { innerHTML: this.hint }
1412 });
1413 },
1414 genError: function genError(error) {
1415 return this.$createElement('div', {
1416 'class': 'input-group__messages input-group__error'
1417 }, error);
1418 },
1419 genIcon: function genIcon(type) {
1420 var _class;
1421
1422 var defaultCallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
1423
1424 var shouldClear = type === 'append' && this.clearable && this.isDirty;
1425 var icon = shouldClear ? 'clear' : this[type + 'Icon'];
1426 var callback = shouldClear ? this.clearableCallback : this[type + 'IconCb'] || defaultCallback;
1427
1428 return this.$createElement('v-icon', {
1429 'class': (_class = {}, _defineProperty(_class, 'input-group__' + type + '-icon', true), _defineProperty(_class, 'input-group__icon-cb', !!callback), _defineProperty(_class, 'input-group__icon-clearable', shouldClear), _class),
1430 props: {
1431 disabled: this.disabled
1432 },
1433 on: {
1434 click: function click(e) {
1435 if (!callback) return;
1436
1437 e.stopPropagation();
1438 callback();
1439 }
1440 }
1441 }, icon);
1442 },
1443 genInputGroup: function genInputGroup(input) {
1444 var _this = this;
1445
1446 var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1447 var defaultAppendCallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
1448
1449 var children = [];
1450 var wrapperChildren = [];
1451 var detailsChildren = [];
1452
1453 data = Object.assign({}, {
1454 'class': this.inputGroupClasses,
1455 attrs: {
1456 tabindex: this.disabled ? -1 : this.internalTabIndex || this.tabindex
1457 },
1458 on: {
1459 focus: this.groupFocus,
1460 blur: this.groupBlur,
1461 click: function click() {
1462 return _this.tabFocused = false;
1463 },
1464 keyup: function keyup(e) {
1465 if ([9, 16].includes(e.keyCode)) {
1466 _this.tabFocused = true;
1467 }
1468 },
1469 keydown: function keydown(e) {
1470 if (!_this.toggle) return;
1471
1472 if (_this.toggleKeys.includes(e.keyCode)) {
1473 e.preventDefault();
1474 _this.toggle();
1475 }
1476 }
1477 }
1478 }, data);
1479
1480 if (this.$slots.label || this.label) {
1481 children.push(this.genLabel());
1482 }
1483
1484 wrapperChildren.push(input);
1485
1486 if (this.prependIcon) {
1487 wrapperChildren.unshift(this.genIcon('prepend'));
1488 }
1489
1490 if (this.appendIcon || this.clearable) {
1491 wrapperChildren.push(this.genIcon('append', defaultAppendCallback));
1492 }
1493
1494 var progress = this.genProgress();
1495 progress && detailsChildren.push(progress);
1496
1497 children.push(this.$createElement('div', {
1498 'class': 'input-group__input'
1499 }, wrapperChildren));
1500
1501 !this.hideDetails && detailsChildren.push(this.genMessages());
1502
1503 if (this.counter) {
1504 detailsChildren.push(this.genCounter());
1505 }
1506
1507 children.push(this.$createElement('div', {
1508 'class': 'input-group__details'
1509 }, detailsChildren));
1510
1511 return this.$createElement('div', data, children);
1512 }
1513 }
1514});
1515
1516/***/ }),
1517/* 20 */
1518/***/ (function(module, __webpack_exports__, __webpack_require__) {
1519
1520"use strict";
1521/**
1522 * @param {String} value
1523 * @param {Function|Object|Array} allowed
1524 * @param {Boolean} defaultAllowed
1525 * @returns {Boolean}
1526 */
1527/* harmony default export */ __webpack_exports__["a"] = (function (value, allowed) {
1528 var defaultAllowed = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
1529
1530 if (Array.isArray(allowed)) {
1531 return allowed.indexOf(value) > -1;
1532 }
1533
1534 if (allowed instanceof Function) {
1535 return allowed(value);
1536 }
1537
1538 if (allowed instanceof Object) {
1539 var min = allowed.min;
1540 var max = allowed.max;
1541 return (!min || min <= value) && (!max || max >= value);
1542 }
1543
1544 return defaultAllowed;
1545});
1546
1547/***/ }),
1548/* 21 */
1549/***/ (function(module, __webpack_exports__, __webpack_require__) {
1550
1551"use strict";
1552function _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); } }
1553
1554function searchChildren(children) {
1555 var results = [];
1556 for (var index = 0; index < children.length; index++) {
1557 var child = children[index];
1558 if (child.isActive && child.isDependent) {
1559 results.push(child);
1560 } else {
1561 results.push.apply(results, _toConsumableArray(searchChildren(child.$children)));
1562 }
1563 }
1564
1565 return results;
1566}
1567
1568/* harmony default export */ __webpack_exports__["a"] = ({
1569 name: 'dependent',
1570
1571 data: function data() {
1572 return {
1573 closeDependents: true,
1574 isDependent: true
1575 };
1576 },
1577
1578
1579 methods: {
1580 getOpenDependents: function getOpenDependents() {
1581 if (this.closeDependents) return searchChildren(this.$children);
1582
1583 return [];
1584 },
1585 getOpenDependentElements: function getOpenDependentElements() {
1586 var result = [];
1587 var openDependents = this.getOpenDependents();
1588
1589 for (var index = 0; index < openDependents.length; index++) {
1590 result.push.apply(result, _toConsumableArray(openDependents[index].getClickableDependentElements()));
1591 }
1592
1593 return result;
1594 },
1595 getClickableDependentElements: function getClickableDependentElements() {
1596 var result = [this.$el];
1597 if (this.$refs.content) result.push(this.$refs.content);
1598 result.push.apply(result, _toConsumableArray(this.getOpenDependentElements()));
1599
1600 return result;
1601 }
1602 },
1603
1604 watch: {
1605 isActive: function isActive(val) {
1606 if (val) return;
1607
1608 var openDependents = this.getOpenDependents();
1609 for (var index = 0; index < openDependents.length; index++) {
1610 openDependents[index].isActive = false;
1611 }
1612 }
1613 }
1614});
1615
1616/***/ }),
1617/* 22 */
1618/***/ (function(module, __webpack_exports__, __webpack_require__) {
1619
1620"use strict";
1621/* unused harmony export VCardActions */
1622/* unused harmony export VCardText */
1623/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util_helpers__ = __webpack_require__(2);
1624/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__VCard__ = __webpack_require__(113);
1625/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__VCardMedia__ = __webpack_require__(115);
1626/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__VCardTitle__ = __webpack_require__(116);
1627/* unused harmony reexport VCard */
1628/* unused harmony reexport VCardMedia */
1629/* unused harmony reexport VCardTitle */
1630
1631
1632
1633
1634
1635var VCardActions = Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["d" /* createSimpleFunctional */])('card__actions');
1636var VCardText = Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["d" /* createSimpleFunctional */])('card__text');
1637
1638
1639
1640/* istanbul ignore next */
1641__WEBPACK_IMPORTED_MODULE_1__VCard__["a" /* default */].install = function install(Vue) {
1642 Vue.component(__WEBPACK_IMPORTED_MODULE_1__VCard__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_1__VCard__["a" /* default */]);
1643 Vue.component(__WEBPACK_IMPORTED_MODULE_2__VCardMedia__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_2__VCardMedia__["a" /* default */]);
1644 Vue.component(__WEBPACK_IMPORTED_MODULE_3__VCardTitle__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_3__VCardTitle__["a" /* default */]);
1645 Vue.component(VCardActions.name, VCardActions);
1646 Vue.component(VCardText.name, VCardText);
1647};
1648
1649/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_1__VCard__["a" /* default */]);
1650
1651/***/ }),
1652/* 23 */
1653/***/ (function(module, __webpack_exports__, __webpack_require__) {
1654
1655"use strict";
1656/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__directives_ripple__ = __webpack_require__(17);
1657
1658
1659/** @mixin */
1660/* harmony default export */ __webpack_exports__["a"] = ({
1661 name: 'rippleable',
1662
1663 directives: { Ripple: __WEBPACK_IMPORTED_MODULE_0__directives_ripple__["a" /* default */] },
1664
1665 props: {
1666 ripple: {
1667 type: [Boolean, Object],
1668 default: true
1669 }
1670 },
1671
1672 methods: {
1673 genRipple: function genRipple() {
1674 var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { directives: [] };
1675
1676 data.class = this.rippleClasses || 'input-group--selection-controls__ripple';
1677 data.directives.push({
1678 name: 'ripple',
1679 value: this.ripple && !this.disabled && { center: true }
1680 });
1681 data.on = Object.assign({
1682 click: this.toggle
1683 }, this.$listeners);
1684
1685 return this.$createElement('div', data);
1686 }
1687 }
1688});
1689
1690/***/ }),
1691/* 24 */
1692/***/ (function(module, __webpack_exports__, __webpack_require__) {
1693
1694"use strict";
1695var padStart = function padStart(string, targetLength, padString) {
1696 targetLength = targetLength >>> 0;
1697 string = String(string);
1698 padString = String(padString);
1699 if (string.length > targetLength) {
1700 return String(string);
1701 }
1702
1703 targetLength = targetLength - string.length;
1704 if (targetLength > padString.length) {
1705 padString += padString.repeat(targetLength / padString.length);
1706 }
1707 return padString.slice(0, targetLength) + String(string);
1708};
1709
1710/* harmony default export */ __webpack_exports__["a"] = (function (n) {
1711 var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;
1712 return padStart(n, length, '0');
1713});
1714
1715/***/ }),
1716/* 25 */
1717/***/ (function(module, __webpack_exports__, __webpack_require__) {
1718
1719"use strict";
1720/**
1721 * SSRBootable
1722 *
1723 * @mixin
1724 *
1725 * Used in layout components (drawer, toolbar, content)
1726 * to avoid an entry animation when using SSR
1727 */
1728/* harmony default export */ __webpack_exports__["a"] = ({
1729 name: 'ssr-bootable',
1730
1731 data: function data() {
1732 return {
1733 isBooted: false
1734 };
1735 },
1736
1737 mounted: function mounted() {
1738 var _this = this;
1739
1740 // Use setAttribute instead of dataset
1741 // because dataset does not work well
1742 // with unit tests
1743 window.requestAnimationFrame(function () {
1744 _this.$el.setAttribute('data-booted', true);
1745 _this.isBooted = true;
1746 });
1747 }
1748});
1749
1750/***/ }),
1751/* 26 */
1752/***/ (function(module, __webpack_exports__, __webpack_require__) {
1753
1754"use strict";
1755/* harmony default export */ __webpack_exports__["a"] = ({
1756 name: 'transitionable',
1757
1758 props: {
1759 mode: String,
1760 origin: String,
1761 transition: String
1762 }
1763});
1764
1765/***/ }),
1766/* 27 */
1767/***/ (function(module, __webpack_exports__, __webpack_require__) {
1768
1769"use strict";
1770/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__bootable__ = __webpack_require__(16);
1771/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util_console__ = __webpack_require__(7);
1772var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
1773
1774
1775
1776
1777function validateAttachTarget(val) {
1778 var type = typeof val === 'undefined' ? 'undefined' : _typeof(val);
1779
1780 if (type === 'boolean' || type === 'string') return true;
1781
1782 return val.nodeType === Node.ELEMENT_NODE;
1783}
1784
1785/* harmony default export */ __webpack_exports__["a"] = ({
1786 name: 'detachable',
1787
1788 mixins: [__WEBPACK_IMPORTED_MODULE_0__bootable__["a" /* default */]],
1789
1790 props: {
1791 attach: {
1792 type: [Boolean, String, Object],
1793 default: false,
1794 validator: validateAttachTarget
1795 },
1796 contentClass: {
1797 default: ''
1798 }
1799 },
1800
1801 mounted: function mounted() {
1802 this.initDetach();
1803 },
1804 deactivated: function deactivated() {
1805 this.isActive = false;
1806 },
1807 beforeDestroy: function beforeDestroy() {
1808 if (!this.$refs.content) return;
1809
1810 // IE11 Fix
1811 try {
1812 this.$refs.content.parentNode.removeChild(this.$refs.content);
1813 } catch (e) {}
1814 },
1815
1816
1817 methods: {
1818 initDetach: function initDetach() {
1819 if (this._isDestroyed || !this.$refs.content ||
1820 // Leave menu in place if attached
1821 // and dev has not changed target
1822 this.attach === '' || // If used as a boolean prop (<v-menu attach>)
1823 this.attach === true || // If bound to a boolean (<v-menu :attach="true">)
1824 this.attach === 'attach' // If bound as boolean prop in pug (v-menu(attach))
1825 ) return;
1826
1827 var target = void 0;
1828 if (this.attach === false) {
1829 // Default, detach to app
1830 target = document.querySelector('[data-app]');
1831 } else if (typeof this.attach === 'string') {
1832 // CSS selector
1833 target = document.querySelector(this.attach);
1834 } else {
1835 // DOM Element
1836 target = this.attach;
1837 }
1838
1839 if (!target) {
1840 Object(__WEBPACK_IMPORTED_MODULE_1__util_console__["b" /* consoleWarn */])('Unable to locate target ' + (this.attach || '[data-app]'), this);
1841 return;
1842 }
1843
1844 target.insertBefore(this.$refs.content, target.firstChild);
1845 }
1846 }
1847});
1848
1849/***/ }),
1850/* 28 */
1851/***/ (function(module, exports) {
1852
1853// removed by extract-text-webpack-plugin
1854
1855/***/ }),
1856/* 29 */
1857/***/ (function(module, exports) {
1858
1859// removed by extract-text-webpack-plugin
1860
1861/***/ }),
1862/* 30 */
1863/***/ (function(module, __webpack_exports__, __webpack_require__) {
1864
1865"use strict";
1866/* harmony export (immutable) */ __webpack_exports__["a"] = Grid;
1867function Grid(name) {
1868 return {
1869 name: 'v-' + name,
1870
1871 functional: true,
1872
1873 props: {
1874 id: String,
1875 tag: {
1876 type: String,
1877 default: 'div'
1878 }
1879 },
1880
1881 render: function render(h, _ref) {
1882 var props = _ref.props,
1883 data = _ref.data,
1884 children = _ref.children;
1885
1886 data.staticClass = (name + ' ' + (data.staticClass || '')).trim();
1887
1888 if (data.attrs) {
1889 var classes = Object.keys(data.attrs).filter(function (key) {
1890 var value = data.attrs[key];
1891 return value || typeof value === 'string';
1892 });
1893
1894 if (classes.length) data.staticClass += ' ' + classes.join(' ');
1895 delete data.attrs;
1896 }
1897
1898 if (props.id) {
1899 data.domProps = data.domProps || {};
1900 data.domProps.id = props.id;
1901 }
1902
1903 return h(props.tag, data, children);
1904 }
1905 };
1906}
1907
1908/***/ }),
1909/* 31 */
1910/***/ (function(module, __webpack_exports__, __webpack_require__) {
1911
1912"use strict";
1913/* harmony export (immutable) */ __webpack_exports__["a"] = colorToInt;
1914/* harmony export (immutable) */ __webpack_exports__["b"] = intToHex;
1915/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__console__ = __webpack_require__(7);
1916
1917
1918/**
1919 * @param {string|number} color
1920 * @returns {number}
1921 */
1922function colorToInt(color) {
1923 var rgb = void 0;
1924
1925 if (typeof color === 'number') {
1926 rgb = color;
1927 } else if (typeof color === 'string') {
1928 // TODO: more string formats
1929 var c = color.substring(1);
1930 rgb = parseInt(c, 16);
1931 } else {
1932 throw new TypeError('Colors can only be numbers or strings, recieved ' + color.constructor.name + ' instead');
1933 }
1934
1935 if (rgb < 0) {
1936 Object(__WEBPACK_IMPORTED_MODULE_0__console__["b" /* consoleWarn */])('Colors cannot be negative: \'' + color + '\'');
1937 rgb = 0;
1938 } else if (rgb > 0xffffff) {
1939 Object(__WEBPACK_IMPORTED_MODULE_0__console__["b" /* consoleWarn */])('\'' + color + '\' is not a valid rgb color');
1940 rgb = 0xffffff;
1941 }
1942
1943 return rgb;
1944}
1945
1946/**
1947 * @param {number} color
1948 * @returns {string}
1949 */
1950function intToHex(color) {
1951 return '#' + color.toString(16).padStart(6, '0');
1952}
1953
1954/***/ }),
1955/* 32 */
1956/***/ (function(module, __webpack_exports__, __webpack_require__) {
1957
1958"use strict";
1959/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VAvatar__ = __webpack_require__(91);
1960
1961
1962/* istanbul ignore next */
1963__WEBPACK_IMPORTED_MODULE_0__VAvatar__["a" /* default */].install = function install(Vue) {
1964 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VAvatar__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VAvatar__["a" /* default */]);
1965};
1966
1967/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VAvatar__["a" /* default */]);
1968
1969/***/ }),
1970/* 33 */
1971/***/ (function(module, __webpack_exports__, __webpack_require__) {
1972
1973"use strict";
1974/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__registrable__ = __webpack_require__(5);
1975
1976
1977/* harmony default export */ __webpack_exports__["a"] = ({
1978 name: 'button-group',
1979
1980 mixins: [Object(__WEBPACK_IMPORTED_MODULE_0__registrable__["b" /* provide */])('buttonGroup')],
1981
1982 data: function data() {
1983 return {
1984 buttons: [],
1985 listeners: []
1986 };
1987 },
1988
1989
1990 methods: {
1991 getValue: function getValue(i) {
1992 if (this.buttons[i].value != null) {
1993 return this.buttons[i].value;
1994 }
1995
1996 // Fix for testing, this should always be false in the browser
1997 if (this.buttons[i].$el.value != null && this.buttons[i].$el.value !== '') {
1998 return this.buttons[i].$el.value;
1999 }
2000
2001 return i;
2002 },
2003 update: function update() {
2004 var selected = [];
2005
2006 for (var i = 0; i < this.buttons.length; i++) {
2007 var elm = this.buttons[i].$el;
2008
2009 elm.removeAttribute('data-only-child');
2010
2011 if (this.isSelected(i)) {
2012 elm.classList.contains('btn--router') || elm.classList.add('btn--active');
2013 selected.push(i);
2014 } else {
2015 elm.classList.contains('btn--router') || elm.classList.remove('btn--active');
2016 }
2017 }
2018
2019 if (selected.length === 1) {
2020 this.buttons[selected[0]].$el.setAttribute('data-only-child', true);
2021 }
2022 },
2023 register: function register(button) {
2024 var index = this.buttons.length;
2025 this.buttons.push(button);
2026 this.listeners.push(this.updateValue.bind(this, index));
2027 button.$on('click', this.listeners[index]);
2028 },
2029 unregister: function unregister(button) {
2030 var _this = this;
2031
2032 var index = this.buttons.indexOf(button);
2033 if (index === -1) {
2034 return;
2035 }
2036
2037 var wasSelected = this.isSelected(index);
2038
2039 button.$off('click', this.listeners[index]);
2040 this.buttons.splice(index, 1);
2041 this.listeners.splice(index, 1);
2042
2043 // Preserve the mandatory invariant
2044 if (wasSelected && this.mandatory && this.buttons.every(function (_, i) {
2045 return !_this.isSelected(i);
2046 }) && this.listeners.length > 0) {
2047 this.listeners[0]();
2048 }
2049 }
2050 },
2051
2052 mounted: function mounted() {
2053 this.update();
2054 }
2055});
2056
2057/***/ }),
2058/* 34 */
2059/***/ (function(module, __webpack_exports__, __webpack_require__) {
2060
2061"use strict";
2062/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_dependent__ = __webpack_require__(21);
2063/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_detachable__ = __webpack_require__(27);
2064/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_overlayable__ = __webpack_require__(35);
2065/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_stackable__ = __webpack_require__(36);
2066/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__mixins_toggleable__ = __webpack_require__(4);
2067/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__directives_click_outside__ = __webpack_require__(8);
2068/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__util_helpers__ = __webpack_require__(2);
2069function _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; }
2070
2071__webpack_require__(102);
2072
2073// Mixins
2074
2075
2076
2077
2078
2079
2080// Directives
2081
2082
2083// Helpers
2084
2085
2086/* harmony default export */ __webpack_exports__["a"] = ({
2087 name: 'v-dialog',
2088
2089 mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_dependent__["a" /* default */], __WEBPACK_IMPORTED_MODULE_1__mixins_detachable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__mixins_overlayable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_3__mixins_stackable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_4__mixins_toggleable__["a" /* default */]],
2090
2091 directives: {
2092 ClickOutside: __WEBPACK_IMPORTED_MODULE_5__directives_click_outside__["a" /* default */]
2093 },
2094
2095 data: function data() {
2096 return {
2097 isDependent: false,
2098 stackClass: 'dialog__content__active',
2099 stackMinZIndex: 200
2100 };
2101 },
2102
2103
2104 props: {
2105 disabled: Boolean,
2106 persistent: Boolean,
2107 fullscreen: Boolean,
2108 fullWidth: Boolean,
2109 maxWidth: {
2110 type: [String, Number],
2111 default: 'none'
2112 },
2113 origin: {
2114 type: String,
2115 default: 'center center'
2116 },
2117 width: {
2118 type: [String, Number],
2119 default: 'auto'
2120 },
2121 scrollable: Boolean,
2122 transition: {
2123 type: [String, Boolean],
2124 default: 'dialog-transition'
2125 }
2126 },
2127
2128 computed: {
2129 classes: function classes() {
2130 var _ref;
2131
2132 return _ref = {}, _defineProperty(_ref, ('dialog ' + this.contentClass).trim(), true), _defineProperty(_ref, 'dialog--active', this.isActive), _defineProperty(_ref, 'dialog--persistent', this.persistent), _defineProperty(_ref, 'dialog--fullscreen', this.fullscreen), _defineProperty(_ref, 'dialog--scrollable', this.scrollable), _ref;
2133 },
2134 contentClasses: function contentClasses() {
2135 return {
2136 'dialog__content': true,
2137 'dialog__content__active': this.isActive
2138 };
2139 }
2140 },
2141
2142 watch: {
2143 isActive: function isActive(val) {
2144 if (val) {
2145 this.show();
2146 } else {
2147 this.removeOverlay();
2148 this.unbind();
2149 }
2150 }
2151 },
2152
2153 mounted: function mounted() {
2154 this.isBooted = this.isActive;
2155 this.isActive && this.show();
2156 },
2157 beforeDestroy: function beforeDestroy() {
2158 if (typeof window !== 'undefined') this.unbind();
2159 },
2160
2161
2162 methods: {
2163 closeConditional: function closeConditional(e) {
2164 // close dialog if !persistent, clicked outside and we're the topmost dialog.
2165 // Since this should only be called in a capture event (bottom up), we shouldn't need to stop propagation
2166 return !this.persistent && Object(__WEBPACK_IMPORTED_MODULE_6__util_helpers__["i" /* getZIndex */])(this.$refs.content) >= this.getMaxZIndex() && !this.$refs.content.contains(e.target);
2167 },
2168 show: function show() {
2169 !this.fullscreen && !this.hideOverlay && this.genOverlay();
2170 this.fullscreen && this.hideScroll();
2171 this.$refs.content.focus();
2172 this.$listeners.keydown && this.bind();
2173 },
2174 bind: function bind() {
2175 window.addEventListener('keydown', this.onKeydown);
2176 },
2177 unbind: function unbind() {
2178 window.removeEventListener('keydown', this.onKeydown);
2179 },
2180 onKeydown: function onKeydown(e) {
2181 this.$emit('keydown', e);
2182 }
2183 },
2184
2185 render: function render(h) {
2186 var _this = this;
2187
2188 var children = [];
2189 var data = {
2190 'class': this.classes,
2191 ref: 'dialog',
2192 directives: [{
2193 name: 'click-outside',
2194 value: {
2195 callback: this.closeConditional,
2196 include: this.getOpenDependentElements
2197 }
2198 }, { name: 'show', value: this.isActive }],
2199 on: { click: function click(e) {
2200 return e.stopPropagation();
2201 } }
2202 };
2203
2204 if (!this.fullscreen) {
2205 data.style = {
2206 maxWidth: this.maxWidth === 'none' ? undefined : isNaN(this.maxWidth) ? this.maxWidth : this.maxWidth + 'px',
2207 width: this.width === 'auto' ? undefined : isNaN(this.width) ? this.width : this.width + 'px'
2208 };
2209 }
2210
2211 if (this.$slots.activator) {
2212 children.push(h('div', {
2213 'class': 'dialog__activator',
2214 on: {
2215 click: function click(e) {
2216 if (!_this.disabled) _this.isActive = !_this.isActive;
2217 }
2218 }
2219 }, [this.$slots.activator]));
2220 }
2221
2222 var dialog = h('transition', {
2223 props: {
2224 name: this.transition || '', // If false, show nothing
2225 origin: this.origin
2226 }
2227 }, [h('div', data, this.showLazyContent(this.$slots.default))]);
2228
2229 children.push(h('div', {
2230 'class': this.contentClasses,
2231 domProps: { tabIndex: -1 },
2232 style: { zIndex: this.activeZIndex },
2233 ref: 'content'
2234 }, [dialog]));
2235
2236 return h('div', {
2237 'class': 'dialog__container',
2238 style: {
2239 display: !this.$slots.activator && 'none' || this.fullWidth ? 'block' : 'inline-block'
2240 }
2241 }, children);
2242 }
2243});
2244
2245/***/ }),
2246/* 35 */
2247/***/ (function(module, __webpack_exports__, __webpack_require__) {
2248
2249"use strict";
2250__webpack_require__(103);
2251
2252/* harmony default export */ __webpack_exports__["a"] = ({
2253 name: 'overlayable',
2254
2255 data: function data() {
2256 return {
2257 overlay: null,
2258 overlayOffset: 0,
2259 overlayTimeout: null,
2260 overlayTransitionDuration: 500 + 150 // transition + delay
2261 };
2262 },
2263
2264
2265 props: {
2266 hideOverlay: Boolean
2267 },
2268
2269 beforeDestroy: function beforeDestroy() {
2270 this.removeOverlay();
2271 },
2272
2273
2274 methods: {
2275 genOverlay: function genOverlay() {
2276 var _this = this;
2277
2278 // If fn is called and timeout is active
2279 // or overlay already exists
2280 // cancel removal of overlay and re-add active
2281 if (!this.isActive || this.hideOverlay || this.isActive && this.overlayTimeout || this.overlay) {
2282 clearTimeout(this.overlayTimeout);
2283
2284 return this.overlay && this.overlay.classList.add('overlay--active');
2285 }
2286
2287 this.overlay = document.createElement('div');
2288 this.overlay.className = 'overlay';
2289
2290 if (this.absolute) this.overlay.className += ' overlay--absolute';
2291
2292 this.hideScroll();
2293
2294 var parent = this.absolute ? this.$el.parentNode : document.querySelector('[data-app]');
2295
2296 parent && parent.insertBefore(this.overlay, parent.firstChild);
2297
2298 this.overlay.clientHeight; // Force repaint
2299 requestAnimationFrame(function () {
2300 _this.overlay.className += ' overlay--active';
2301
2302 if (_this.activeZIndex !== undefined) {
2303 _this.overlay.style.zIndex = _this.activeZIndex - 1;
2304 }
2305 });
2306
2307 return true;
2308 },
2309 removeOverlay: function removeOverlay() {
2310 var _this2 = this;
2311
2312 if (!this.overlay) {
2313 return this.showScroll();
2314 }
2315
2316 this.overlay.classList.remove('overlay--active');
2317
2318 this.overlayTimeout = setTimeout(function () {
2319 // IE11 Fix
2320 try {
2321 _this2.overlay.parentNode.removeChild(_this2.overlay);
2322 _this2.overlay = null;
2323 _this2.showScroll();
2324 } catch (e) {}
2325
2326 clearTimeout(_this2.overlayTimeout);
2327 _this2.overlayTimeout = null;
2328 }, this.overlayTransitionDuration);
2329 },
2330
2331 /**
2332 * @param {Event} e
2333 * @returns void
2334 */
2335 scrollListener: function scrollListener(e) {
2336 if (e.type === 'keydown') {
2337 if (['INPUT', 'TEXTAREA', 'SELECT'].includes(e.target.tagName)) return;
2338
2339 var up = [38, 33];
2340 var down = [40, 34];
2341
2342 if (up.includes(e.keyCode)) {
2343 e.deltaY = -1;
2344 } else if (down.includes(e.keyCode)) {
2345 e.deltaY = 1;
2346 } else {
2347 return;
2348 }
2349 }
2350
2351 if (e.target === this.overlay || e.type !== 'keydown' && e.target === document.body || this.checkPath(e)) e.preventDefault();
2352 },
2353 hasScrollbar: function hasScrollbar(el) {
2354 if (!el || el.nodeType !== Node.ELEMENT_NODE) return false;
2355
2356 var style = window.getComputedStyle(el);
2357 return ['auto', 'scroll'].includes(style['overflow-y']) && el.scrollHeight > el.clientHeight;
2358 },
2359 shouldScroll: function shouldScroll(el, delta) {
2360 if (el.scrollTop === 0 && delta < 0) return true;
2361 return el.scrollTop + el.clientHeight === el.scrollHeight && delta > 0;
2362 },
2363 isInside: function isInside(el, parent) {
2364 if (el === parent) {
2365 return true;
2366 } else if (el === null || el === document.body) {
2367 return false;
2368 } else {
2369 return this.isInside(el.parentNode, parent);
2370 }
2371 },
2372
2373 /**
2374 * @param {Event} e
2375 * @returns boolean
2376 */
2377 checkPath: function checkPath(e) {
2378 var path = e.path || this.composedPath(e);
2379 var delta = e.deltaY || -e.wheelDelta;
2380
2381 if (e.type === 'keydown' && path[0] === document.body) {
2382 var dialog = this.$refs.dialog;
2383 var selected = window.getSelection().anchorNode;
2384 if (this.hasScrollbar(dialog) && this.isInside(selected, dialog)) {
2385 return this.shouldScroll(dialog, delta);
2386 }
2387 return true;
2388 }
2389
2390 for (var index = 0; index < path.length; index++) {
2391 var el = path[index];
2392
2393 if (el === document) return true;
2394 if (el === document.documentElement) return true;
2395 if (el === this.$refs.content) return true;
2396
2397 if (this.hasScrollbar(el)) return this.shouldScroll(el, delta);
2398 }
2399
2400 return true;
2401 },
2402
2403 /**
2404 * Polyfill for Event.prototype.composedPath
2405 * @param {Event} e
2406 * @returns Element[]
2407 */
2408 composedPath: function composedPath(e) {
2409 if (e.composedPath) return e.composedPath();
2410
2411 var path = [];
2412 var el = e.target;
2413
2414 while (el) {
2415 path.push(el);
2416
2417 if (el.tagName === 'HTML') {
2418 path.push(document);
2419 path.push(window);
2420
2421 return path;
2422 }
2423
2424 el = el.parentElement;
2425 }
2426 },
2427 hideScroll: function hideScroll() {
2428 if (this.$vuetify.breakpoint.smAndDown) {
2429 document.documentElement.classList.add('overflow-y-hidden');
2430 } else {
2431 window.addEventListener('wheel', this.scrollListener);
2432 window.addEventListener('keydown', this.scrollListener);
2433 }
2434 },
2435 showScroll: function showScroll() {
2436 document.documentElement.classList.remove('overflow-y-hidden');
2437 window.removeEventListener('wheel', this.scrollListener);
2438 window.removeEventListener('keydown', this.scrollListener);
2439 }
2440 }
2441});
2442
2443/***/ }),
2444/* 36 */
2445/***/ (function(module, __webpack_exports__, __webpack_require__) {
2446
2447"use strict";
2448/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util_helpers__ = __webpack_require__(2);
2449function _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); } }
2450
2451
2452
2453/* harmony default export */ __webpack_exports__["a"] = ({
2454 name: 'stackable',
2455
2456 data: function data() {
2457 return {
2458 stackBase: null,
2459 stackClass: 'unpecified',
2460 stackElement: null,
2461 stackExclude: null,
2462 stackMinZIndex: 0
2463 };
2464 },
2465
2466 computed: {
2467 /**
2468 * Currently active z-index
2469 *
2470 * @return {number}
2471 */
2472 activeZIndex: function activeZIndex() {
2473 var content = this.stackElement || this.$refs.content;
2474 // Return current zindex if not active
2475
2476 var index = !this.isActive ? Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["i" /* getZIndex */])(content) : this.getMaxZIndex(this.stackExclude || [content]) + 2;
2477
2478 if (index == null) return index;
2479
2480 // Return max current z-index (excluding self) + 2
2481 // (2 to leave room for an overlay below, if needed)
2482 return parseInt(index);
2483 }
2484 },
2485 methods: {
2486 getMaxZIndex: function getMaxZIndex() {
2487 var exclude = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
2488
2489 var base = this.stackBase || this.$el;
2490 // Start with lowest allowed z-index or z-index of
2491 // base component's element, whichever is greater
2492 var zis = [this.stackMinZIndex, Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["i" /* getZIndex */])(base)];
2493 // Convert the NodeList to an array to
2494 // prevent an Edge bug with Symbol.iterator
2495 // https://github.com/vuetifyjs/vuetify/issues/2146
2496 var activeElements = [].concat(_toConsumableArray(document.getElementsByClassName(this.stackClass)));
2497
2498 // Get z-index for all active dialogs
2499 for (var index = 0; index < activeElements.length; index++) {
2500 if (!exclude.includes(activeElements[index])) {
2501 zis.push(Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["i" /* getZIndex */])(activeElements[index]));
2502 }
2503 }
2504
2505 return Math.max.apply(Math, zis);
2506 }
2507 }
2508});
2509
2510/***/ }),
2511/* 37 */
2512/***/ (function(module, __webpack_exports__, __webpack_require__) {
2513
2514"use strict";
2515/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VJumbotron__ = __webpack_require__(121);
2516
2517
2518/* istanbul ignore next */
2519__WEBPACK_IMPORTED_MODULE_0__VJumbotron__["a" /* default */].install = function install(Vue) {
2520 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VJumbotron__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VJumbotron__["a" /* default */]);
2521};
2522
2523/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VJumbotron__["a" /* default */]);
2524
2525/***/ }),
2526/* 38 */
2527/***/ (function(module, __webpack_exports__, __webpack_require__) {
2528
2529"use strict";
2530/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VCheckbox__ = __webpack_require__(123);
2531
2532
2533/* istanbul ignore next */
2534__WEBPACK_IMPORTED_MODULE_0__VCheckbox__["a" /* default */].install = function install(Vue) {
2535 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VCheckbox__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VCheckbox__["a" /* default */]);
2536};
2537
2538/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VCheckbox__["a" /* default */]);
2539
2540/***/ }),
2541/* 39 */
2542/***/ (function(module, __webpack_exports__, __webpack_require__) {
2543
2544"use strict";
2545/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util_helpers__ = __webpack_require__(2);
2546
2547
2548/* harmony default export */ __webpack_exports__["a"] = (function () {
2549 var expandedParentClass = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
2550
2551 return {
2552 enter: function enter(el, done) {
2553 el._parent = el.parentNode;
2554
2555 Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["a" /* addOnceEventListener */])(el, 'transitionend', done);
2556
2557 // Get height that is to be scrolled
2558 el.style.overflow = 'hidden';
2559 el.style.height = 0;
2560 el.style.display = 'block';
2561 expandedParentClass && el._parent.classList.add(expandedParentClass);
2562
2563 setTimeout(function () {
2564 return el.style.height = el.scrollHeight + 'px';
2565 }, 100);
2566 },
2567 afterEnter: function afterEnter(el) {
2568 el.style.overflow = null;
2569 el.style.height = null;
2570 },
2571 leave: function leave(el, done) {
2572 // Remove initial transition
2573 Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["a" /* addOnceEventListener */])(el, 'transitionend', done);
2574
2575 // Set height before we transition to 0
2576 el.style.overflow = 'hidden';
2577 el.style.height = el.offsetHeight + 'px';
2578
2579 setTimeout(function () {
2580 return el.style.height = 0;
2581 }, 100);
2582 },
2583 afterLeave: function afterLeave(el) {
2584 expandedParentClass && el._parent.classList.remove(expandedParentClass);
2585 }
2586 };
2587});
2588
2589/***/ }),
2590/* 40 */
2591/***/ (function(module, __webpack_exports__, __webpack_require__) {
2592
2593"use strict";
2594/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__colorable__ = __webpack_require__(0);
2595/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__input__ = __webpack_require__(19);
2596
2597
2598
2599/* harmony default export */ __webpack_exports__["a"] = ({
2600 name: 'selectable',
2601
2602 mixins: [__WEBPACK_IMPORTED_MODULE_1__input__["a" /* default */], __WEBPACK_IMPORTED_MODULE_0__colorable__["a" /* default */]],
2603
2604 model: {
2605 prop: 'inputValue',
2606 event: 'change'
2607 },
2608
2609 data: function data() {
2610 return {
2611 defaultColor: 'accent'
2612 };
2613 },
2614
2615 props: {
2616 id: String,
2617 inputValue: null,
2618 falseValue: null,
2619 trueValue: null
2620 },
2621
2622 computed: {
2623 isActive: function isActive() {
2624 if (Array.isArray(this.inputValue)) {
2625 return this.inputValue.indexOf(this.value) !== -1;
2626 }
2627
2628 if (!this.trueValue || !this.falseValue) {
2629 return this.value ? this.value === this.inputValue : Boolean(this.inputValue);
2630 }
2631
2632 return this.inputValue === this.trueValue;
2633 },
2634 isDirty: function isDirty() {
2635 return this.isActive;
2636 }
2637 },
2638
2639 watch: {
2640 indeterminate: function indeterminate(val) {
2641 this.inputIndeterminate = val;
2642 }
2643 },
2644
2645 methods: {
2646 genLabel: function genLabel() {
2647 return this.$createElement('label', {
2648 on: { click: this.toggle },
2649 attrs: {
2650 for: this.id
2651 }
2652 }, this.$slots.label || this.label);
2653 },
2654 toggle: function toggle() {
2655 if (this.disabled) {
2656 return;
2657 }
2658
2659 var input = this.inputValue;
2660 if (Array.isArray(input)) {
2661 input = input.slice();
2662 var i = input.indexOf(this.value);
2663
2664 if (i === -1) {
2665 input.push(this.value);
2666 } else {
2667 input.splice(i, 1);
2668 }
2669 } else if (this.trueValue || this.falseValue) {
2670 input = input === this.trueValue ? this.falseValue : this.trueValue;
2671 } else if (this.value) {
2672 input = this.value === this.inputValue ? null : this.value;
2673 } else {
2674 input = !input;
2675 }
2676
2677 this.validate(true, input);
2678
2679 this.$emit('change', input);
2680 }
2681 }
2682});
2683
2684/***/ }),
2685/* 41 */
2686/***/ (function(module, __webpack_exports__, __webpack_require__) {
2687
2688"use strict";
2689/**
2690 * Loadable
2691 *
2692 * @mixin
2693 *
2694 * Used to add linear progress bar to components
2695 * Can use a default bar with a specific color
2696 * or designate a custom progress linear bar
2697 */
2698/* harmony default export */ __webpack_exports__["a"] = ({
2699 name: 'loadable',
2700
2701 props: {
2702 loading: {
2703 type: [Boolean, String],
2704 default: false
2705 }
2706 },
2707
2708 methods: {
2709 genProgress: function genProgress() {
2710 if (this.loading === false) return null;
2711
2712 return this.$slots.progress || this.$createElement('v-progress-linear', {
2713 props: {
2714 color: this.loading === true || this.loading === '' ? this.color || 'primary' : this.loading,
2715 height: 2,
2716 indeterminate: true
2717 }
2718 });
2719 }
2720 }
2721});
2722
2723/***/ }),
2724/* 42 */
2725/***/ (function(module, __webpack_exports__, __webpack_require__) {
2726
2727"use strict";
2728/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VChip__ = __webpack_require__(125);
2729
2730
2731/* istanbul ignore next */
2732__WEBPACK_IMPORTED_MODULE_0__VChip__["a" /* default */].install = function install(Vue) {
2733 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VChip__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VChip__["a" /* default */]);
2734};
2735
2736/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VChip__["a" /* default */]);
2737
2738/***/ }),
2739/* 43 */
2740/***/ (function(module, __webpack_exports__, __webpack_require__) {
2741
2742"use strict";
2743/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__components_VBtn__ = __webpack_require__(10);
2744/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__components_VIcon__ = __webpack_require__(3);
2745/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__components_VSelect__ = __webpack_require__(44);
2746/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__filterable__ = __webpack_require__(50);
2747/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__themeable__ = __webpack_require__(1);
2748/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__loadable__ = __webpack_require__(41);
2749/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__util_helpers__ = __webpack_require__(2);
2750/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__util_console__ = __webpack_require__(7);
2751var _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"); } }; }();
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764/**
2765 * DataIterable
2766 *
2767 * @mixin
2768 *
2769 * Base behavior for data table and data iterator
2770 * providing selection, pagination, sorting and filtering.
2771 *
2772 */
2773/* harmony default export */ __webpack_exports__["a"] = ({
2774 name: 'data-iterable',
2775
2776 components: {
2777 VBtn: __WEBPACK_IMPORTED_MODULE_0__components_VBtn__["a" /* default */],
2778 VIcon: __WEBPACK_IMPORTED_MODULE_1__components_VIcon__["a" /* default */],
2779 VSelect: __WEBPACK_IMPORTED_MODULE_2__components_VSelect__["a" /* default */]
2780 },
2781
2782 data: function data() {
2783 return {
2784 searchLength: 0,
2785 defaultPagination: {
2786 descending: false,
2787 page: 1,
2788 rowsPerPage: 5,
2789 sortBy: null,
2790 totalItems: 0
2791 },
2792 expanded: {},
2793 actionsClasses: 'data-iterator__actions',
2794 actionsRangeControlsClasses: 'data-iterator__actions__range-controls',
2795 actionsSelectClasses: 'data-iterator__actions__select',
2796 actionsPaginationClasses: 'data-iterator__actions__pagination'
2797 };
2798 },
2799
2800
2801 mixins: [__WEBPACK_IMPORTED_MODULE_3__filterable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_5__loadable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_4__themeable__["a" /* default */]],
2802
2803 props: {
2804 expand: Boolean,
2805 hideActions: Boolean,
2806 disableInitialSort: Boolean,
2807 mustSort: Boolean,
2808 noResultsText: {
2809 type: String,
2810 default: 'No matching records found'
2811 },
2812 rowsPerPageItems: {
2813 type: Array,
2814 default: function _default() {
2815 return [5, 10, 25, { text: 'All', value: -1 }];
2816 }
2817 },
2818 rowsPerPageText: {
2819 type: String,
2820 default: 'Items per page:'
2821 },
2822 selectAll: [Boolean, String],
2823 search: {
2824 required: false
2825 },
2826 filter: {
2827 type: Function,
2828 default: function _default(val, search) {
2829 return val != null && typeof val !== 'boolean' && val.toString().toLowerCase().indexOf(search) !== -1;
2830 }
2831 },
2832 customFilter: {
2833 type: Function,
2834 default: function _default(items, search, filter) {
2835 search = search.toString().toLowerCase();
2836 if (search.trim() === '') return items;
2837
2838 return items.filter(function (i) {
2839 return Object.keys(i).some(function (j) {
2840 return filter(i[j], search);
2841 });
2842 });
2843 }
2844 },
2845 customSort: {
2846 type: Function,
2847 default: function _default(items, index, isDescending) {
2848 if (index === null) return items;
2849
2850 return items.sort(function (a, b) {
2851 var sortA = Object(__WEBPACK_IMPORTED_MODULE_6__util_helpers__["h" /* getObjectValueByPath */])(a, index);
2852 var sortB = Object(__WEBPACK_IMPORTED_MODULE_6__util_helpers__["h" /* getObjectValueByPath */])(b, index);
2853
2854 if (isDescending) {
2855 var _ref = [sortB, sortA];
2856 sortA = _ref[0];
2857 sortB = _ref[1];
2858 }
2859
2860 // Check if both are numbers
2861 if (!isNaN(sortA) && !isNaN(sortB)) {
2862 return sortA - sortB;
2863 }
2864
2865 // Check if both cannot be evaluated
2866 if (sortA === null && sortB === null) {
2867 return 0;
2868 }
2869
2870 var _map = [sortA, sortB].map(function (s) {
2871 return (s || '').toString().toLocaleLowerCase();
2872 });
2873
2874 var _map2 = _slicedToArray(_map, 2);
2875
2876 sortA = _map2[0];
2877 sortB = _map2[1];
2878
2879
2880 if (sortA > sortB) return 1;
2881 if (sortA < sortB) return -1;
2882
2883 return 0;
2884 });
2885 }
2886 },
2887 value: {
2888 type: Array,
2889 default: function _default() {
2890 return [];
2891 }
2892 },
2893 items: {
2894 type: Array,
2895 required: true,
2896 default: function _default() {
2897 return [];
2898 }
2899 },
2900 totalItems: {
2901 type: Number,
2902 default: null
2903 },
2904 itemKey: {
2905 type: String,
2906 default: 'id'
2907 },
2908 pagination: {
2909 type: Object,
2910 default: function _default() {}
2911 }
2912 },
2913
2914 computed: {
2915 computedPagination: function computedPagination() {
2916 return this.hasPagination ? this.pagination : this.defaultPagination;
2917 },
2918 hasPagination: function hasPagination() {
2919 var pagination = this.pagination || {};
2920
2921 return Object.keys(pagination).length > 0;
2922 },
2923 hasSelectAll: function hasSelectAll() {
2924 return this.selectAll !== undefined && this.selectAll !== false;
2925 },
2926 itemsLength: function itemsLength() {
2927 if (this.search) return this.searchLength;
2928 return this.totalItems || this.items.length;
2929 },
2930 indeterminate: function indeterminate() {
2931 return this.hasSelectAll && this.someItems && !this.everyItem;
2932 },
2933 everyItem: function everyItem() {
2934 var _this = this;
2935
2936 return this.filteredItems.length && this.filteredItems.every(function (i) {
2937 return _this.isSelected(i);
2938 });
2939 },
2940 someItems: function someItems() {
2941 var _this2 = this;
2942
2943 return this.filteredItems.some(function (i) {
2944 return _this2.isSelected(i);
2945 });
2946 },
2947 getPage: function getPage() {
2948 var rowsPerPage = this.computedPagination.rowsPerPage;
2949
2950
2951 return rowsPerPage === Object(rowsPerPage) ? rowsPerPage.value : rowsPerPage;
2952 },
2953 pageStart: function pageStart() {
2954 return this.getPage === -1 ? 0 : (this.computedPagination.page - 1) * this.getPage;
2955 },
2956 pageStop: function pageStop() {
2957 return this.getPage === -1 ? this.itemsLength : this.computedPagination.page * this.getPage;
2958 },
2959 filteredItems: function filteredItems() {
2960 return this.filteredItemsImpl();
2961 },
2962 selected: function selected() {
2963 var selected = {};
2964 for (var index = 0; index < this.value.length; index++) {
2965 selected[this.value[index][this.itemKey]] = true;
2966 }
2967 return selected;
2968 }
2969 },
2970
2971 watch: {
2972 search: function search() {
2973 this.updatePagination({ page: 1, totalItems: this.itemsLength });
2974 }
2975 },
2976
2977 methods: {
2978 initPagination: function initPagination() {
2979 if (!this.rowsPerPageItems.length) {
2980 Object(__WEBPACK_IMPORTED_MODULE_7__util_console__["b" /* consoleWarn */])('The prop \'rows-per-page-items\' can not be empty', this);
2981 } else {
2982 this.defaultPagination.rowsPerPage = this.rowsPerPageItems[0];
2983 }
2984
2985 this.defaultPagination.totalItems = this.itemsLength;
2986
2987 this.updatePagination(Object.assign({}, this.defaultPagination, this.pagination));
2988 },
2989 updatePagination: function updatePagination(val) {
2990 var pagination = this.hasPagination ? this.pagination : this.defaultPagination;
2991 var updatedPagination = Object.assign({}, pagination, val);
2992 this.$emit('update:pagination', updatedPagination);
2993
2994 if (!this.hasPagination) {
2995 this.defaultPagination = updatedPagination;
2996 }
2997 },
2998 isSelected: function isSelected(item) {
2999 return this.selected[item[this.itemKey]];
3000 },
3001 isExpanded: function isExpanded(item) {
3002 return this.expanded[item[this.itemKey]];
3003 },
3004 filteredItemsImpl: function filteredItemsImpl() {
3005 if (this.totalItems) return this.items;
3006
3007 var items = this.items.slice();
3008 var hasSearch = typeof this.search !== 'undefined' && this.search !== null;
3009
3010 if (hasSearch) {
3011 for (var _len = arguments.length, additionalFilterArgs = Array(_len), _key = 0; _key < _len; _key++) {
3012 additionalFilterArgs[_key] = arguments[_key];
3013 }
3014
3015 items = this.customFilter.apply(this, [items, this.search, this.filter].concat(additionalFilterArgs));
3016 this.searchLength = items.length;
3017 }
3018
3019 items = this.customSort(items, this.computedPagination.sortBy, this.computedPagination.descending);
3020
3021 return this.hideActions && !this.hasPagination ? items : items.slice(this.pageStart, this.pageStop);
3022 },
3023 sort: function sort(index) {
3024 var _computedPagination = this.computedPagination,
3025 sortBy = _computedPagination.sortBy,
3026 descending = _computedPagination.descending;
3027
3028 if (sortBy === null) {
3029 this.updatePagination({ sortBy: index, descending: false });
3030 } else if (sortBy === index && !descending) {
3031 this.updatePagination({ descending: true });
3032 } else if (sortBy !== index) {
3033 this.updatePagination({ sortBy: index, descending: false });
3034 } else if (!this.mustSort) {
3035 this.updatePagination({ sortBy: null, descending: null });
3036 } else {
3037 this.updatePagination({ sortBy: index, descending: false });
3038 }
3039 },
3040 toggle: function toggle(value) {
3041 var _this3 = this;
3042
3043 var selected = Object.assign({}, this.selected);
3044 for (var index = 0; index < this.filteredItems.length; index++) {
3045 selected[this.filteredItems[index][this.itemKey]] = value;
3046 }
3047
3048 this.$emit('input', this.items.filter(function (i) {
3049 return selected[i[_this3.itemKey]];
3050 }));
3051 },
3052 createProps: function createProps(item, index) {
3053 var _this4 = this;
3054
3055 var props = { item: item, index: index };
3056 var keyProp = this.itemKey;
3057 var itemKey = item[keyProp];
3058
3059 Object.defineProperty(props, 'selected', {
3060 get: function get() {
3061 return _this4.selected[item[_this4.itemKey]];
3062 },
3063 set: function set(value) {
3064 if (itemKey == null) {
3065 Object(__WEBPACK_IMPORTED_MODULE_7__util_console__["b" /* consoleWarn */])('"' + keyProp + '" attribute must be defined for item', _this4);
3066 }
3067
3068 var selected = _this4.value.slice();
3069 if (value) selected.push(item);else selected = selected.filter(function (i) {
3070 return i[keyProp] !== itemKey;
3071 });
3072 _this4.$emit('input', selected);
3073 }
3074 });
3075
3076 Object.defineProperty(props, 'expanded', {
3077 get: function get() {
3078 return _this4.expanded[item[_this4.itemKey]];
3079 },
3080 set: function set(value) {
3081 if (itemKey == null) {
3082 Object(__WEBPACK_IMPORTED_MODULE_7__util_console__["b" /* consoleWarn */])('"' + keyProp + '" attribute must be defined for item', _this4);
3083 }
3084
3085 if (!_this4.expand) {
3086 for (var key in _this4.expanded) {
3087 _this4.expanded.hasOwnProperty(key) && _this4.$set(_this4.expanded, key, false);
3088 }
3089 }
3090 _this4.$set(_this4.expanded, itemKey, value);
3091 }
3092 });
3093
3094 return props;
3095 },
3096 genItems: function genItems() {
3097 if (!this.itemsLength && !this.items.length) {
3098 var noData = this.$slots['no-data'] || this.noDataText;
3099 return [this.genEmptyItems(noData)];
3100 }
3101
3102 if (!this.filteredItems.length) {
3103 var noResults = this.$slots['no-results'] || this.noResultsText;
3104 return [this.genEmptyItems(noResults)];
3105 }
3106
3107 return this.genFilteredItems();
3108 },
3109 genPrevIcon: function genPrevIcon() {
3110 var _this5 = this;
3111
3112 return this.$createElement('v-btn', {
3113 props: {
3114 disabled: this.computedPagination.page === 1,
3115 icon: true,
3116 flat: true,
3117 dark: this.dark,
3118 light: this.light
3119 },
3120 on: {
3121 click: function click() {
3122 var page = _this5.computedPagination.page;
3123 _this5.updatePagination({ page: page - 1 });
3124 }
3125 },
3126 attrs: {
3127 'aria-label': 'Previous page' // TODO: Localization
3128 }
3129 }, [this.$createElement('v-icon', 'chevron_left')]);
3130 },
3131 genNextIcon: function genNextIcon() {
3132 var _this6 = this;
3133
3134 var pagination = this.computedPagination;
3135 var disabled = pagination.rowsPerPage < 0 || pagination.page * pagination.rowsPerPage >= this.itemsLength || this.pageStop < 0;
3136
3137 return this.$createElement('v-btn', {
3138 props: {
3139 disabled: disabled,
3140 icon: true,
3141 flat: true,
3142 dark: this.dark,
3143 light: this.light
3144 },
3145 on: {
3146 click: function click() {
3147 var page = _this6.computedPagination.page;
3148 _this6.updatePagination({ page: page + 1 });
3149 }
3150 },
3151 attrs: {
3152 'aria-label': 'Next page' // TODO: Localization
3153 }
3154 }, [this.$createElement('v-icon', 'chevron_right')]);
3155 },
3156 genSelect: function genSelect() {
3157 var _this7 = this;
3158
3159 return this.$createElement('div', {
3160 'class': this.actionsSelectClasses
3161 }, [this.rowsPerPageText, this.$createElement('v-select', {
3162 attrs: {
3163 'aria-label': this.rowsPerPageText
3164 },
3165 props: {
3166 items: this.rowsPerPageItems,
3167 value: this.computedPagination.rowsPerPage,
3168 hideDetails: true,
3169 auto: true,
3170 minWidth: '75px'
3171 },
3172 on: {
3173 input: function input(val) {
3174 _this7.updatePagination({
3175 page: 1,
3176 rowsPerPage: val
3177 });
3178 }
3179 }
3180 })]);
3181 },
3182 genPagination: function genPagination() {
3183 var pagination = '?';
3184
3185 if (this.itemsLength) {
3186 var stop = this.itemsLength < this.pageStop || this.pageStop < 0 ? this.itemsLength : this.pageStop;
3187
3188 pagination = this.$scopedSlots.pageText ? this.$scopedSlots.pageText({
3189 pageStart: this.pageStart + 1,
3190 pageStop: stop,
3191 itemsLength: this.itemsLength
3192 }) : this.pageStart + 1 + '-' + stop + ' of ' + this.itemsLength;
3193 }
3194
3195 return this.$createElement('div', {
3196 'class': this.actionsPaginationClasses
3197 }, [pagination]);
3198 },
3199 genActions: function genActions() {
3200 var rangeControls = this.$createElement('div', {
3201 'class': this.actionsRangeControlsClasses
3202 }, [this.genPagination(), this.genPrevIcon(), this.genNextIcon()]);
3203
3204 return [this.$createElement('div', {
3205 'class': this.actionsClasses
3206 }, [this.rowsPerPageItems.length > 1 ? this.genSelect() : null, rangeControls])];
3207 }
3208 }
3209});
3210
3211/***/ }),
3212/* 44 */
3213/***/ (function(module, __webpack_exports__, __webpack_require__) {
3214
3215"use strict";
3216/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VSelect__ = __webpack_require__(130);
3217
3218
3219/* istanbul ignore next */
3220__WEBPACK_IMPORTED_MODULE_0__VSelect__["a" /* default */].install = function install(Vue) {
3221 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VSelect__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VSelect__["a" /* default */]);
3222};
3223
3224/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VSelect__["a" /* default */]);
3225
3226/***/ }),
3227/* 45 */
3228/***/ (function(module, exports) {
3229
3230// removed by extract-text-webpack-plugin
3231
3232/***/ }),
3233/* 46 */
3234/***/ (function(module, __webpack_exports__, __webpack_require__) {
3235
3236"use strict";
3237/* unused harmony export VListTileActionText */
3238/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return VListTileContent; });
3239/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return VListTileTitle; });
3240/* unused harmony export VListTileSubTitle */
3241/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util_helpers__ = __webpack_require__(2);
3242/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__VList__ = __webpack_require__(132);
3243/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__VListGroup__ = __webpack_require__(134);
3244/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__VListTile__ = __webpack_require__(135);
3245/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__VListTileAction__ = __webpack_require__(136);
3246/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__VListTileAvatar__ = __webpack_require__(137);
3247/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_1__VList__["a"]; });
3248/* unused harmony reexport VListGroup */
3249/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_3__VListTile__["a"]; });
3250/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return __WEBPACK_IMPORTED_MODULE_4__VListTileAction__["a"]; });
3251/* unused harmony reexport VListTileAvatar */
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261var VListTileActionText = Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["d" /* createSimpleFunctional */])('list__tile__action-text', 'span');
3262var VListTileContent = Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["d" /* createSimpleFunctional */])('list__tile__content', 'div');
3263var VListTileTitle = Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["d" /* createSimpleFunctional */])('list__tile__title', 'div');
3264var VListTileSubTitle = Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["d" /* createSimpleFunctional */])('list__tile__sub-title', 'div');
3265
3266/* istanbul ignore next */
3267__WEBPACK_IMPORTED_MODULE_1__VList__["a" /* default */].install = function install(Vue) {
3268 Vue.component(__WEBPACK_IMPORTED_MODULE_1__VList__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_1__VList__["a" /* default */]);
3269 Vue.component(__WEBPACK_IMPORTED_MODULE_2__VListGroup__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_2__VListGroup__["a" /* default */]);
3270 Vue.component(__WEBPACK_IMPORTED_MODULE_3__VListTile__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_3__VListTile__["a" /* default */]);
3271 Vue.component(__WEBPACK_IMPORTED_MODULE_4__VListTileAction__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_4__VListTileAction__["a" /* default */]);
3272 Vue.component(VListTileActionText.name, VListTileActionText);
3273 Vue.component(__WEBPACK_IMPORTED_MODULE_5__VListTileAvatar__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_5__VListTileAvatar__["a" /* default */]);
3274 Vue.component(VListTileContent.name, VListTileContent);
3275 Vue.component(VListTileSubTitle.name, VListTileSubTitle);
3276 Vue.component(VListTileTitle.name, VListTileTitle);
3277};
3278
3279/* harmony default export */ __webpack_exports__["f"] = (__WEBPACK_IMPORTED_MODULE_1__VList__["a" /* default */]);
3280
3281/***/ }),
3282/* 47 */
3283/***/ (function(module, __webpack_exports__, __webpack_require__) {
3284
3285"use strict";
3286/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VMenu__ = __webpack_require__(138);
3287
3288
3289/* istanbul ignore next */
3290__WEBPACK_IMPORTED_MODULE_0__VMenu__["a" /* default */].install = function install(Vue) {
3291 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VMenu__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VMenu__["a" /* default */]);
3292};
3293
3294/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VMenu__["a" /* default */]);
3295
3296/***/ }),
3297/* 48 */
3298/***/ (function(module, __webpack_exports__, __webpack_require__) {
3299
3300"use strict";
3301/**
3302 * Delayable
3303 *
3304 * @mixin
3305 *
3306 * Changes the open or close
3307 * delay time for elements
3308 */
3309/* harmony default export */ __webpack_exports__["a"] = ({
3310 name: 'delayable',
3311
3312 data: function data() {
3313 return {
3314 openTimeout: null,
3315 closeTimeout: null
3316 };
3317 },
3318
3319 props: {
3320 openDelay: {
3321 type: [Number, String],
3322 default: 0
3323 },
3324 closeDelay: {
3325 type: [Number, String],
3326 default: 200
3327 }
3328 },
3329
3330 methods: {
3331 /**
3332 * Clear any pending delay
3333 * timers from executing
3334 *
3335 * @return {void}
3336 */
3337 clearDelay: function clearDelay() {
3338 clearTimeout(this.openTimeout);
3339 clearTimeout(this.closeTimeout);
3340 },
3341
3342 /**
3343 * Runs callback after
3344 * a specified delay
3345 *
3346 * @param {String} type
3347 * @param {Function} cb
3348 *
3349 * @return {void}
3350 */
3351 runDelay: function runDelay(type, cb) {
3352 this.clearDelay();
3353
3354 var delay = parseInt(this[type + 'Delay'], 10);
3355
3356 this[type + 'Timeout'] = setTimeout(cb, delay);
3357 }
3358 }
3359});
3360
3361/***/ }),
3362/* 49 */
3363/***/ (function(module, __webpack_exports__, __webpack_require__) {
3364
3365"use strict";
3366/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__positionable__ = __webpack_require__(12);
3367/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__stackable__ = __webpack_require__(36);
3368/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__themeable__ = __webpack_require__(1);
3369var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
3370
3371
3372
3373
3374
3375
3376var dimensions = {
3377 activator: {
3378 top: 0, left: 0,
3379 bottom: 0, right: 0,
3380 width: 0, height: 0,
3381 offsetTop: 0, scrollHeight: 0
3382 },
3383 content: {
3384 top: 0, left: 0,
3385 bottom: 0, right: 0,
3386 width: 0, height: 0,
3387 offsetTop: 0, scrollHeight: 0
3388 },
3389 hasWindow: false
3390
3391 /**
3392 * Menuable
3393 *
3394 * @mixin
3395 *
3396 * Used for fixed or absolutely positioning
3397 * elements within the DOM
3398 * Can calculate X and Y axis overflows
3399 * As well as be manually positioned
3400 */
3401};/* harmony default export */ __webpack_exports__["a"] = ({
3402 name: 'menuable',
3403
3404 mixins: [__WEBPACK_IMPORTED_MODULE_0__positionable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_1__stackable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__themeable__["a" /* default */]],
3405
3406 data: function data() {
3407 return {
3408 absoluteX: 0,
3409 absoluteY: 0,
3410 dimensions: Object.assign({}, dimensions),
3411 isContentActive: false,
3412 pageYOffset: 0,
3413 stackClass: 'menuable__content__active',
3414 stackMinZIndex: 6
3415 };
3416 },
3417
3418 props: {
3419 activator: {
3420 default: null,
3421 validator: function validator(val) {
3422 return ['string', 'object'].includes(typeof val === 'undefined' ? 'undefined' : _typeof(val));
3423 }
3424 },
3425 allowOverflow: Boolean,
3426 maxWidth: {
3427 type: [Number, String],
3428 default: 'auto'
3429 },
3430 minWidth: [Number, String],
3431 nudgeBottom: {
3432 type: Number,
3433 default: 0
3434 },
3435 nudgeLeft: {
3436 type: [Number, String],
3437 default: 0
3438 },
3439 nudgeRight: {
3440 type: [Number, String],
3441 default: 0
3442 },
3443 nudgeTop: {
3444 type: [Number, String],
3445 default: 0
3446 },
3447 nudgeWidth: {
3448 type: [Number, String],
3449 default: 0
3450 },
3451 offsetOverflow: Boolean,
3452 positionX: {
3453 type: Number,
3454 default: null
3455 },
3456 positionY: {
3457 type: Number,
3458 default: null
3459 },
3460 zIndex: {
3461 type: [Number, String],
3462 default: null
3463 }
3464 },
3465
3466 computed: {
3467 computedLeft: function computedLeft() {
3468 var a = this.dimensions.activator;
3469 var c = this.dimensions.content;
3470 var minWidth = a.width < c.width ? c.width : a.width;
3471 var left = 0;
3472
3473 left += this.left ? a.left - (minWidth - a.width) : a.left;
3474
3475 if (this.offsetX) left += this.left ? -a.width : a.width;
3476 if (this.nudgeLeft) left -= parseInt(this.nudgeLeft);
3477 if (this.nudgeRight) left += parseInt(this.nudgeRight);
3478
3479 return left;
3480 },
3481 computedTop: function computedTop() {
3482 var a = this.dimensions.activator;
3483 var c = this.dimensions.content;
3484 var top = this.top ? a.bottom - c.height : a.top;
3485
3486 if (!this.isAttached) top += this.pageYOffset;
3487 if (this.offsetY) top += this.top ? -a.height : a.height;
3488 if (this.nudgeTop) top -= this.nudgeTop;
3489 if (this.nudgeBottom) top += this.nudgeBottom;
3490
3491 return top;
3492 },
3493 hasActivator: function hasActivator() {
3494 return !!this.$slots.activator || this.activator;
3495 },
3496 isAttached: function isAttached() {
3497 return this.attach !== false;
3498 }
3499 },
3500
3501 watch: {
3502 disabled: function disabled(val) {
3503 val && this.callDeactivate();
3504 },
3505 isActive: function isActive(val) {
3506 if (this.disabled) return;
3507
3508 val && this.callActivate() || this.callDeactivate();
3509 }
3510 },
3511
3512 beforeMount: function beforeMount() {
3513 this.checkForWindow();
3514 },
3515
3516
3517 methods: {
3518 absolutePosition: function absolutePosition() {
3519 return {
3520 offsetTop: 0,
3521 scrollHeight: 0,
3522 top: this.positionY || this.absoluteY,
3523 bottom: this.positionY || this.absoluteY,
3524 left: this.positionX || this.absoluteX,
3525 right: this.positionX || this.absoluteX,
3526 height: 0,
3527 width: 0
3528 };
3529 },
3530 activate: function activate() {},
3531 calcLeft: function calcLeft() {
3532 return (this.isAttached ? this.computedLeft : this.calcXOverflow(this.computedLeft)) + 'px';
3533 },
3534 calcTop: function calcTop() {
3535 return (this.isAttached ? this.computedTop : this.calcYOverflow(this.computedTop)) + 'px';
3536 },
3537 calcXOverflow: function calcXOverflow(left) {
3538 var parsedMaxWidth = isNaN(parseInt(this.maxWidth)) ? 0 : parseInt(this.maxWidth);
3539 var innerWidth = this.getInnerWidth();
3540 var maxWidth = Math.max(this.dimensions.content.width, parsedMaxWidth);
3541 var totalWidth = left + maxWidth;
3542 var availableWidth = totalWidth - innerWidth;
3543
3544 if ((!this.left || this.right) && availableWidth > 0) {
3545 left = innerWidth - maxWidth - (innerWidth > 600 ? 30 : 12) // Account for scrollbar
3546 ;
3547 }
3548
3549 if (left < 0) left = 12;
3550
3551 return left;
3552 },
3553 calcYOverflow: function calcYOverflow(top) {
3554 var documentHeight = this.getInnerHeight();
3555 var toTop = this.pageYOffset + documentHeight;
3556 var activator = this.dimensions.activator;
3557 var contentHeight = this.dimensions.content.height;
3558 var totalHeight = top + contentHeight;
3559 var isOverflowing = toTop < totalHeight;
3560
3561 // If overflowing bottom and offset
3562 // TODO: set 'bottom' position instead of 'top'
3563 if (isOverflowing && this.offsetOverflow) {
3564 top = this.pageYOffset + (activator.top - contentHeight);
3565 // If overflowing bottom
3566 } else if (isOverflowing && !this.allowOverflow) {
3567 top = toTop - contentHeight - 12;
3568 // If overflowing top
3569 } else if (top < this.pageYOffset && !this.allowOverflow) {
3570 top = this.pageYOffset + 12;
3571 }
3572
3573 return top < 12 ? 12 : top;
3574 },
3575 callActivate: function callActivate() {
3576 if (!this.hasWindow) return;
3577
3578 this.activate();
3579 },
3580 callDeactivate: function callDeactivate() {
3581 this.isContentActive = false;
3582
3583 this.deactivate();
3584 },
3585 checkForWindow: function checkForWindow() {
3586 if (!this.hasWindow) {
3587 this.hasWindow = typeof window !== 'undefined';
3588 }
3589
3590 if (this.hasWindow) {
3591 this.pageYOffset = this.getOffsetTop();
3592 }
3593 },
3594 deactivate: function deactivate() {},
3595 getActivator: function getActivator() {
3596 if (this.activator) {
3597 return typeof this.activator === 'string' ? document.querySelector(this.activator) : this.activator;
3598 }
3599
3600 return this.$refs.activator.children.length > 0 ? this.$refs.activator.children[0] : this.$refs.activator;
3601 },
3602 getInnerHeight: function getInnerHeight() {
3603 if (!this.hasWindow) return 0;
3604
3605 return window.innerHeight || document.documentElement.clientHeight;
3606 },
3607 getInnerWidth: function getInnerWidth() {
3608 if (!this.hasWindow) return 0;
3609
3610 return window.innerWidth;
3611 },
3612 getOffsetTop: function getOffsetTop() {
3613 if (!this.hasWindow) return 0;
3614
3615 return window.pageYOffset || document.documentElement.scrollTop;
3616 },
3617 getRoundedBoundedClientRect: function getRoundedBoundedClientRect(el) {
3618 var rect = el.getBoundingClientRect();
3619 return {
3620 top: Math.round(rect.top),
3621 left: Math.round(rect.left),
3622 bottom: Math.round(rect.bottom),
3623 right: Math.round(rect.right),
3624 width: Math.round(rect.width),
3625 height: Math.round(rect.height)
3626 };
3627 },
3628 measure: function measure(el, selector) {
3629 el = selector ? el.querySelector(selector) : el;
3630
3631 if (!el || !this.hasWindow) return null;
3632
3633 var rect = this.getRoundedBoundedClientRect(el);
3634
3635 // Account for activator margin
3636 if (this.isAttached) {
3637 var style = window.getComputedStyle(el);
3638
3639 rect.left = parseInt(style.marginLeft);
3640 rect.top = parseInt(style.marginTop);
3641 }
3642
3643 return rect;
3644 },
3645 sneakPeek: function sneakPeek(cb) {
3646 var _this = this;
3647
3648 requestAnimationFrame(function () {
3649 var el = _this.$refs.content;
3650
3651 if (!el || _this.isShown(el)) return cb();
3652
3653 el.style.display = 'inline-block';
3654 cb();
3655 el.style.display = 'none';
3656 });
3657 },
3658 startTransition: function startTransition() {
3659 var _this2 = this;
3660
3661 requestAnimationFrame(function () {
3662 return _this2.isContentActive = true;
3663 });
3664 },
3665 isShown: function isShown(el) {
3666 return el.style.display !== 'none';
3667 },
3668 updateDimensions: function updateDimensions() {
3669 var _this3 = this;
3670
3671 this.checkForWindow();
3672
3673 var dimensions = {};
3674
3675 // Activator should already be shown
3676 dimensions.activator = !this.hasActivator || this.absolute ? this.absolutePosition() : this.measure(this.getActivator());
3677
3678 // Display and hide to get dimensions
3679 this.sneakPeek(function () {
3680 dimensions.content = _this3.measure(_this3.$refs.content);
3681
3682 _this3.dimensions = dimensions;
3683 });
3684 }
3685 }
3686});
3687
3688/***/ }),
3689/* 50 */
3690/***/ (function(module, __webpack_exports__, __webpack_require__) {
3691
3692"use strict";
3693/* harmony default export */ __webpack_exports__["a"] = ({
3694 name: 'filterable',
3695
3696 props: {
3697 noDataText: {
3698 type: String,
3699 default: 'No data available'
3700 }
3701 }
3702});
3703
3704/***/ }),
3705/* 51 */
3706/***/ (function(module, __webpack_exports__, __webpack_require__) {
3707
3708"use strict";
3709/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util_mask__ = __webpack_require__(144);
3710/**
3711 * Maskable
3712 *
3713 * @mixin
3714 *
3715 * Creates an input mask that is
3716 * generated from a masked str
3717 *
3718 * Example: mask="#### #### #### ####"
3719 */
3720
3721
3722
3723/* harmony default export */ __webpack_exports__["a"] = ({
3724 name: 'maskable',
3725
3726 data: function data() {
3727 return {
3728 selection: 0,
3729 lazySelection: 0,
3730 preDefined: {
3731 'credit-card': '#### - #### - #### - ####',
3732 'date': '##/##/####',
3733 'date-with-time': '##/##/#### ##:##',
3734 'phone': '(###) ### - ####',
3735 'social': '###-##-####',
3736 'time': '##:##',
3737 'time-with-seconds': '##:##:##'
3738 }
3739 };
3740 },
3741
3742 props: {
3743 dontFillMaskBlanks: Boolean,
3744 mask: {
3745 type: [Object, String],
3746 default: null
3747 },
3748 returnMaskedValue: Boolean
3749 },
3750
3751 computed: {
3752 masked: function masked() {
3753 var preDefined = this.preDefined[this.mask];
3754 var mask = preDefined || this.mask || '';
3755
3756 return mask.split('');
3757 }
3758 },
3759
3760 watch: {
3761 /**
3762 * Make sure the cursor is in the correct
3763 * location when the mask changes
3764 */
3765 mask: function mask() {
3766 var _this = this;
3767
3768 if (!this.$refs.input) return;
3769
3770 var oldValue = this.$refs.input.value;
3771 var newValue = this.maskText(Object(__WEBPACK_IMPORTED_MODULE_0__util_mask__["c" /* unmaskText */])(this.lazyValue));
3772 var position = 0;
3773 var selection = this.selection;
3774
3775 for (var index = 0; index < selection; index++) {
3776 Object(__WEBPACK_IMPORTED_MODULE_0__util_mask__["a" /* isMaskDelimiter */])(oldValue[index]) || position++;
3777 }
3778
3779 selection = 0;
3780 if (newValue) {
3781 for (var _index = 0; _index < newValue.length; _index++) {
3782 Object(__WEBPACK_IMPORTED_MODULE_0__util_mask__["a" /* isMaskDelimiter */])(newValue[_index]) || position--;
3783 selection++;
3784 if (position <= 0) break;
3785 }
3786 }
3787
3788 this.$nextTick(function () {
3789 _this.$refs.input.value = newValue;
3790 _this.setCaretPosition(selection);
3791 });
3792 }
3793 },
3794
3795 beforeMount: function beforeMount() {
3796 if (!this.mask || this.value == null || !this.returnMaskedValue) return;
3797
3798 var value = this.maskText(this.value);
3799
3800 // See if masked value does not
3801 // match the user given value
3802 if (value === this.value) return;
3803
3804 this.$emit('input', value);
3805 },
3806
3807
3808 methods: {
3809 setCaretPosition: function setCaretPosition(selection) {
3810 var _this2 = this;
3811
3812 this.selection = selection;
3813 window.setTimeout(function () {
3814 _this2.$refs.input && _this2.$refs.input.setSelectionRange(_this2.selection, _this2.selection);
3815 }, 0);
3816 },
3817 updateRange: function updateRange() {
3818 if (!this.$refs.input) return;
3819
3820 var newValue = this.maskText(this.lazyValue);
3821 var selection = 0;
3822
3823 this.$refs.input.value = newValue;
3824 if (newValue) {
3825 for (var index = 0; index < newValue.length; index++) {
3826 if (this.lazySelection <= 0) break;
3827 Object(__WEBPACK_IMPORTED_MODULE_0__util_mask__["a" /* isMaskDelimiter */])(newValue[index]) || this.lazySelection--;
3828 selection++;
3829 }
3830 }
3831
3832 this.setCaretPosition(selection);
3833 // this.$emit() must occur only when all internal values are correct
3834 this.$emit('input', this.returnMaskedValue ? this.$refs.input.value : this.lazyValue);
3835 },
3836 maskText: function maskText(text) {
3837 return this.mask ? Object(__WEBPACK_IMPORTED_MODULE_0__util_mask__["b" /* maskText */])(text, this.masked, this.dontFillMaskBlanks) : text;
3838 },
3839 unmaskText: function unmaskText(text) {
3840 return this.mask && !this.returnMaskedValue ? Object(__WEBPACK_IMPORTED_MODULE_0__util_mask__["c" /* unmaskText */])(text) : text;
3841 },
3842
3843 // When the input changes and is
3844 // re-created, ensure that the
3845 // caret location is correct
3846 setSelectionRange: function setSelectionRange() {
3847 this.$nextTick(this.updateRange);
3848 },
3849 resetSelections: function resetSelections(input) {
3850 if (!input.selectionEnd) return;
3851 this.selection = input.selectionEnd;
3852 this.lazySelection = 0;
3853
3854 for (var index = 0; index < this.selection; index++) {
3855 Object(__WEBPACK_IMPORTED_MODULE_0__util_mask__["a" /* isMaskDelimiter */])(input.value[index]) || this.lazySelection++;
3856 }
3857 }
3858 }
3859});
3860
3861/***/ }),
3862/* 52 */
3863/***/ (function(module, __webpack_exports__, __webpack_require__) {
3864
3865"use strict";
3866/* harmony default export */ __webpack_exports__["a"] = ({
3867 name: 'soloable',
3868
3869 props: {
3870 flat: Boolean,
3871 soloInverted: Boolean,
3872 solo: Boolean
3873 },
3874
3875 computed: {
3876 isSolo: function isSolo() {
3877 return this.solo || this.soloInverted;
3878 }
3879 },
3880
3881 methods: {
3882 genSoloClasses: function genSoloClasses() {
3883 return {
3884 'input-group--solo': this.isSolo,
3885 'input-group--solo-inverted': this.soloInverted,
3886 'elevation-0': this.flat
3887 };
3888 }
3889 }
3890});
3891
3892/***/ }),
3893/* 53 */
3894/***/ (function(module, __webpack_exports__, __webpack_require__) {
3895
3896"use strict";
3897/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VProgressLinear__ = __webpack_require__(157);
3898
3899
3900/* istanbul ignore next */
3901__WEBPACK_IMPORTED_MODULE_0__VProgressLinear__["a" /* default */].install = function install(Vue) {
3902 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VProgressLinear__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VProgressLinear__["a" /* default */]);
3903};
3904
3905/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VProgressLinear__["a" /* default */]);
3906
3907/***/ }),
3908/* 54 */
3909/***/ (function(module, __webpack_exports__, __webpack_require__) {
3910
3911"use strict";
3912/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VIcon__ = __webpack_require__(3);
3913/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_picker_button__ = __webpack_require__(55);
3914__webpack_require__(167);
3915
3916// Components
3917
3918
3919// Mixins
3920
3921
3922/* harmony default export */ __webpack_exports__["a"] = ({
3923 name: 'v-date-picker-title',
3924
3925 components: {
3926 VIcon: __WEBPACK_IMPORTED_MODULE_0__VIcon__["a" /* default */]
3927 },
3928
3929 mixins: [__WEBPACK_IMPORTED_MODULE_1__mixins_picker_button__["a" /* default */]],
3930
3931 data: function data() {
3932 return {
3933 isReversing: false
3934 };
3935 },
3936
3937 props: {
3938 date: {
3939 type: String,
3940 default: ''
3941 },
3942 selectingYear: Boolean,
3943 year: {
3944 type: [Number, String],
3945 default: ''
3946 },
3947 yearIcon: {
3948 type: String
3949 }
3950 },
3951
3952 computed: {
3953 computedTransition: function computedTransition() {
3954 return this.isReversing ? 'picker-reverse-transition' : 'picker-transition';
3955 }
3956 },
3957
3958 watch: {
3959 date: 'setReversing',
3960 year: 'setReversing'
3961 },
3962
3963 methods: {
3964 genYearIcon: function genYearIcon() {
3965 return this.$createElement('v-icon', {
3966 props: {
3967 dark: true
3968 }
3969 }, this.yearIcon);
3970 },
3971 getYearBtn: function getYearBtn() {
3972 return this.genPickerButton('selectingYear', true, [this.year, this.yearIcon ? this.genYearIcon() : null], 'date-picker-title__year');
3973 },
3974 genTitleText: function genTitleText() {
3975 return this.$createElement('transition', {
3976 props: {
3977 name: this.computedTransition
3978 }
3979 }, [this.$createElement('div', {
3980 domProps: { innerHTML: this.date },
3981 key: this.date
3982 })]);
3983 },
3984 genTitleDate: function genTitleDate(title) {
3985 return this.genPickerButton('selectingYear', false, this.genTitleText(title), 'date-picker-title__date');
3986 },
3987 setReversing: function setReversing(val, prev) {
3988 this.isReversing = val < prev;
3989 }
3990 },
3991
3992 render: function render(h) {
3993 return h('div', {
3994 staticClass: 'date-picker-title'
3995 }, [this.getYearBtn(), this.genTitleDate()]);
3996 }
3997});
3998
3999/***/ }),
4000/* 55 */
4001/***/ (function(module, __webpack_exports__, __webpack_require__) {
4002
4003"use strict";
4004/* harmony default export */ __webpack_exports__["a"] = ({
4005 methods: {
4006 genPickerButton: function genPickerButton(prop, value, content) {
4007 var _this = this;
4008
4009 var staticClass = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
4010
4011 var active = this[prop] === value;
4012 var click = function click(event) {
4013 event.stopPropagation();
4014 _this.$emit('update:' + prop, value);
4015 };
4016
4017 return this.$createElement('div', {
4018 staticClass: ('picker__title__btn ' + staticClass).trim(),
4019 'class': { active: active },
4020 on: active ? undefined : { click: click }
4021 }, Array.isArray(content) ? content : [content]);
4022 }
4023 }
4024});
4025
4026/***/ }),
4027/* 56 */
4028/***/ (function(module, __webpack_exports__, __webpack_require__) {
4029
4030"use strict";
4031/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VBtn__ = __webpack_require__(10);
4032/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__VIcon__ = __webpack_require__(3);
4033/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_colorable__ = __webpack_require__(0);
4034/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__util__ = __webpack_require__(14);
4035var _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"); } }; }();
4036
4037__webpack_require__(168);
4038
4039// Components
4040
4041
4042
4043// Mixins
4044
4045
4046// Utils
4047
4048
4049/* harmony default export */ __webpack_exports__["a"] = ({
4050 name: 'v-date-picker-header',
4051
4052 components: {
4053 VBtn: __WEBPACK_IMPORTED_MODULE_0__VBtn__["a" /* default */],
4054 VIcon: __WEBPACK_IMPORTED_MODULE_1__VIcon__["a" /* default */]
4055 },
4056
4057 mixins: [__WEBPACK_IMPORTED_MODULE_2__mixins_colorable__["a" /* default */]],
4058
4059 data: function data() {
4060 return {
4061 isReversing: false,
4062 defaultColor: 'accent'
4063 };
4064 },
4065
4066
4067 props: {
4068 appendIcon: {
4069 type: String,
4070 default: 'chevron_right'
4071 },
4072 disabled: Boolean,
4073 format: {
4074 type: Function,
4075 default: null
4076 },
4077 locale: {
4078 type: String,
4079 default: 'en-us'
4080 },
4081 prependIcon: {
4082 type: String,
4083 default: 'chevron_left'
4084 },
4085 value: {
4086 type: [Number, String],
4087 required: true
4088 }
4089 },
4090
4091 computed: {
4092 formatter: function formatter() {
4093 if (this.format) {
4094 return this.format;
4095 } else if (String(this.value).split('-')[1]) {
4096 return Object(__WEBPACK_IMPORTED_MODULE_3__util__["a" /* createNativeLocaleFormatter */])(this.locale, { month: 'long', year: 'numeric', timeZone: 'UTC' }, { length: 7 });
4097 } else {
4098 return Object(__WEBPACK_IMPORTED_MODULE_3__util__["a" /* createNativeLocaleFormatter */])(this.locale, { year: 'numeric', timeZone: 'UTC' }, { length: 4 });
4099 }
4100 }
4101 },
4102
4103 watch: {
4104 value: function value(newVal, oldVal) {
4105 this.isReversing = newVal < oldVal;
4106 }
4107 },
4108
4109 methods: {
4110 genBtn: function genBtn(change) {
4111 var _this = this;
4112
4113 return this.$createElement('v-btn', {
4114 props: {
4115 dark: this.dark,
4116 disabled: this.disabled,
4117 icon: true
4118 },
4119 nativeOn: {
4120 click: function click(e) {
4121 e.stopPropagation();
4122 _this.$emit('input', _this.calculateChange(change));
4123 }
4124 }
4125 }, [this.$createElement('v-icon', change < 0 ? this.prependIcon : this.appendIcon)]);
4126 },
4127 calculateChange: function calculateChange(sign) {
4128 var _String$split$map = String(this.value).split('-').map(function (v) {
4129 return 1 * v;
4130 }),
4131 _String$split$map2 = _slicedToArray(_String$split$map, 2),
4132 year = _String$split$map2[0],
4133 month = _String$split$map2[1];
4134
4135 if (month == null) {
4136 return '' + (year + sign);
4137 } else {
4138 return Object(__WEBPACK_IMPORTED_MODULE_3__util__["b" /* monthChange */])(String(this.value), sign);
4139 }
4140 },
4141 genHeader: function genHeader() {
4142 var _this2 = this;
4143
4144 var header = this.$createElement('strong', {
4145 'class': this.disabled ? undefined : this.addTextColorClassChecks(),
4146 key: String(this.value),
4147 on: {
4148 click: function click() {
4149 return _this2.$emit('toggle');
4150 }
4151 }
4152 }, [this.$slots.default || this.formatter(String(this.value))]);
4153
4154 var transition = this.$createElement('transition', {
4155 props: {
4156 name: this.isReversing ? 'tab-reverse-transition' : 'tab-transition'
4157 }
4158 }, [header]);
4159
4160 return this.$createElement('div', {
4161 staticClass: 'date-picker-header__value',
4162 class: {
4163 'date-picker-header__value--disabled': this.disabled
4164 }
4165 }, [transition]);
4166 }
4167 },
4168
4169 render: function render(h) {
4170 return this.$createElement('div', {
4171 staticClass: 'date-picker-header'
4172 }, [this.genBtn(-1), this.genHeader(), this.genBtn(+1)]);
4173 }
4174});
4175
4176/***/ }),
4177/* 57 */
4178/***/ (function(module, __webpack_exports__, __webpack_require__) {
4179
4180"use strict";
4181/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_colorable__ = __webpack_require__(0);
4182/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_date_picker_table__ = __webpack_require__(58);
4183/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__util__ = __webpack_require__(14);
4184/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__util_helpers__ = __webpack_require__(2);
4185/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__util_isValueAllowed__ = __webpack_require__(20);
4186// Mixins
4187
4188
4189
4190// Utils
4191
4192
4193
4194
4195/* harmony default export */ __webpack_exports__["a"] = ({
4196 name: 'v-date-picker-date-table',
4197
4198 mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_colorable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_1__mixins_date_picker_table__["a" /* default */]],
4199
4200 props: {
4201 events: {
4202 type: [Array, Object, Function],
4203 default: function _default() {
4204 return null;
4205 }
4206 },
4207 eventColor: {
4208 type: [String, Function, Object],
4209 default: 'warning'
4210 },
4211 firstDayOfWeek: {
4212 type: [String, Number],
4213 default: 0
4214 },
4215 weekdayFormat: {
4216 type: Function,
4217 default: null
4218 }
4219 },
4220
4221 computed: {
4222 formatter: function formatter() {
4223 return this.format || Object(__WEBPACK_IMPORTED_MODULE_2__util__["a" /* createNativeLocaleFormatter */])(this.locale, { day: 'numeric', timeZone: 'UTC' }, { start: 8, length: 2 });
4224 },
4225 weekdayFormatter: function weekdayFormatter() {
4226 return this.weekdayFormat || Object(__WEBPACK_IMPORTED_MODULE_2__util__["a" /* createNativeLocaleFormatter */])(this.locale, { weekday: 'narrow', timeZone: 'UTC' });
4227 },
4228 weekDays: function weekDays() {
4229 var _this = this;
4230
4231 var first = parseInt(this.firstDayOfWeek, 10);
4232
4233 return this.weekdayFormatter ? Object(__WEBPACK_IMPORTED_MODULE_3__util_helpers__["c" /* createRange */])(7).map(function (i) {
4234 return _this.weekdayFormatter('2017-01-' + (first + i + 15));
4235 }) // 2017-01-15 is Sunday
4236 : Object(__WEBPACK_IMPORTED_MODULE_3__util_helpers__["c" /* createRange */])(7).map(function (i) {
4237 return ['S', 'M', 'T', 'W', 'T', 'F', 'S'][(i + first) % 7];
4238 });
4239 }
4240 },
4241
4242 methods: {
4243 calculateTableDate: function calculateTableDate(delta) {
4244 return Object(__WEBPACK_IMPORTED_MODULE_2__util__["b" /* monthChange */])(this.tableDate, Math.sign(delta || 1));
4245 },
4246 genTHead: function genTHead() {
4247 var _this2 = this;
4248
4249 var days = this.weekDays.map(function (day) {
4250 return _this2.$createElement('th', day);
4251 });
4252 return this.$createElement('thead', this.genTR(days));
4253 },
4254 genEvent: function genEvent(date) {
4255 var eventColor = void 0;
4256 if (typeof this.eventColor === 'string') {
4257 eventColor = this.eventColor;
4258 } else if (typeof this.eventColor === 'function') {
4259 eventColor = this.eventColor(date);
4260 } else {
4261 eventColor = this.eventColor[date];
4262 }
4263 return this.$createElement('div', {
4264 staticClass: 'date-picker-table__event',
4265 class: this.addBackgroundColorClassChecks({}, eventColor || this.color)
4266 });
4267 },
4268
4269 // Returns number of the days from the firstDayOfWeek to the first day of the current month
4270 weekDaysBeforeFirstDayOfTheMonth: function weekDaysBeforeFirstDayOfTheMonth() {
4271 var firstDayOfTheMonth = new Date(this.displayedYear + '-' + Object(__WEBPACK_IMPORTED_MODULE_2__util__["c" /* pad */])(this.displayedMonth + 1) + '-01T00:00:00+00:00');
4272 var weekDay = firstDayOfTheMonth.getUTCDay();
4273 return (weekDay - parseInt(this.firstDayOfWeek) + 7) % 7;
4274 },
4275 genTBody: function genTBody() {
4276 var children = [];
4277 var daysInMonth = new Date(this.displayedYear, this.displayedMonth + 1, 0).getDate();
4278 var rows = [];
4279 var day = this.weekDaysBeforeFirstDayOfTheMonth();
4280
4281 while (day--) {
4282 rows.push(this.$createElement('td'));
4283 }for (day = 1; day <= daysInMonth; day++) {
4284 var date = this.displayedYear + '-' + Object(__WEBPACK_IMPORTED_MODULE_2__util__["c" /* pad */])(this.displayedMonth + 1) + '-' + Object(__WEBPACK_IMPORTED_MODULE_2__util__["c" /* pad */])(day);
4285 var isEvent = Object(__WEBPACK_IMPORTED_MODULE_4__util_isValueAllowed__["a" /* default */])(date, this.events, false);
4286
4287 rows.push(this.$createElement('td', [this.genButton(date, true), isEvent ? this.genEvent(date) : null]));
4288
4289 if (rows.length % 7 === 0) {
4290 children.push(this.genTR(rows));
4291 rows = [];
4292 }
4293 }
4294
4295 if (rows.length) {
4296 children.push(this.genTR(rows));
4297 }
4298
4299 return this.$createElement('tbody', children);
4300 },
4301 genTR: function genTR(children) {
4302 return [this.$createElement('tr', children)];
4303 }
4304 },
4305
4306 render: function render(h) {
4307 return this.genTable('date-picker-table date-picker-table--date', [this.genTHead(), this.genTBody()]);
4308 }
4309});
4310
4311/***/ }),
4312/* 58 */
4313/***/ (function(module, __webpack_exports__, __webpack_require__) {
4314
4315"use strict";
4316/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__directives_touch__ = __webpack_require__(9);
4317/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util_isValueAllowed__ = __webpack_require__(20);
4318__webpack_require__(171);
4319
4320// Directives
4321
4322
4323// Util
4324
4325
4326/* harmony default export */ __webpack_exports__["a"] = ({
4327 directives: { Touch: __WEBPACK_IMPORTED_MODULE_0__directives_touch__["a" /* default */] },
4328
4329 data: function data() {
4330 return {
4331 defaultColor: 'accent',
4332 isReversing: false
4333 };
4334 },
4335
4336
4337 props: {
4338 allowedDates: {
4339 type: [Array, Object, Function],
4340 default: function _default() {
4341 return null;
4342 }
4343 },
4344 current: String,
4345 disabled: Boolean,
4346 format: {
4347 type: Function,
4348 default: null
4349 },
4350 locale: {
4351 type: String,
4352 default: 'en-us'
4353 },
4354 scrollable: Boolean,
4355 tableDate: {
4356 type: String,
4357 required: true
4358 },
4359 value: {
4360 type: String,
4361 required: false
4362 }
4363 },
4364
4365 computed: {
4366 computedTransition: function computedTransition() {
4367 return this.isReversing ? 'tab-reverse-transition' : 'tab-transition';
4368 },
4369 displayedMonth: function displayedMonth() {
4370 return this.tableDate.split('-')[1] - 1;
4371 },
4372 displayedYear: function displayedYear() {
4373 return this.tableDate.split('-')[0] * 1;
4374 }
4375 },
4376
4377 watch: {
4378 tableDate: function tableDate(newVal, oldVal) {
4379 this.isReversing = newVal < oldVal;
4380 }
4381 },
4382
4383 methods: {
4384 genButtonClasses: function genButtonClasses(value, isDisabled, isFloating) {
4385 var isSelected = value === this.value;
4386 var isCurrent = value === this.current;
4387
4388 var classes = {
4389 'btn--active': isSelected,
4390 'btn--flat': !isSelected || isFloating && isSelected && !isDisabled && !this.disabled,
4391 'btn--floating': isFloating,
4392 'btn--depressed': !isFloating && isSelected,
4393 'btn--disabled': isDisabled || this.disabled && isSelected,
4394 'btn--outline': isCurrent && !isSelected
4395 };
4396
4397 if (isSelected) return this.addBackgroundColorClassChecks(classes);
4398 if (isCurrent) return this.addTextColorClassChecks(classes);
4399 return classes;
4400 },
4401 genButton: function genButton(value, isFloating) {
4402 var _this = this;
4403
4404 var isDisabled = !Object(__WEBPACK_IMPORTED_MODULE_1__util_isValueAllowed__["a" /* default */])(value, this.allowedDates);
4405
4406 return this.$createElement('button', {
4407 staticClass: 'btn',
4408 'class': this.genButtonClasses(value, isDisabled, isFloating),
4409 attrs: {
4410 type: 'button'
4411 },
4412 domProps: {
4413 disabled: isDisabled,
4414 innerHTML: '<div class="btn__content">' + this.formatter(value) + '</div>'
4415 },
4416 on: isDisabled ? {} : {
4417 click: function click() {
4418 return _this.$emit('input', value);
4419 }
4420 }
4421 });
4422 },
4423 wheel: function wheel(e) {
4424 e.preventDefault();
4425 this.$emit('tableDate', this.calculateTableDate(e.deltaY));
4426 },
4427 touch: function touch(value) {
4428 this.$emit('tableDate', this.calculateTableDate(value));
4429 },
4430 genTable: function genTable(staticClass, children) {
4431 var _this2 = this;
4432
4433 var transition = this.$createElement('transition', {
4434 props: { name: this.computedTransition }
4435 }, [this.$createElement('table', { key: this.tableDate }, children)]);
4436
4437 var touchDirective = {
4438 name: 'touch',
4439 value: {
4440 left: function left(e) {
4441 return e.offsetX < -15 && _this2.touch(1);
4442 },
4443 right: function right(e) {
4444 return e.offsetX > 15 && _this2.touch(-1);
4445 }
4446 }
4447 };
4448
4449 return this.$createElement('div', {
4450 staticClass: staticClass,
4451 on: this.scrollable ? { wheel: this.wheel } : undefined,
4452 directives: [touchDirective]
4453 }, [transition]);
4454 }
4455 }
4456});
4457
4458/***/ }),
4459/* 59 */
4460/***/ (function(module, __webpack_exports__, __webpack_require__) {
4461
4462"use strict";
4463/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_colorable__ = __webpack_require__(0);
4464/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_date_picker_table__ = __webpack_require__(58);
4465/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__util__ = __webpack_require__(14);
4466// Mixins
4467
4468
4469
4470// Utils
4471
4472
4473/* harmony default export */ __webpack_exports__["a"] = ({
4474 name: 'v-date-picker-month-table',
4475
4476 mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_colorable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_1__mixins_date_picker_table__["a" /* default */]],
4477
4478 computed: {
4479 formatter: function formatter() {
4480 return this.format || Object(__WEBPACK_IMPORTED_MODULE_2__util__["a" /* createNativeLocaleFormatter */])(this.locale, { month: 'short', timeZone: 'UTC' }, { start: 5, length: 2 });
4481 }
4482 },
4483
4484 methods: {
4485 calculateTableDate: function calculateTableDate(delta) {
4486 return '' + (parseInt(this.tableDate, 10) + Math.sign(delta || 1));
4487 },
4488 genTBody: function genTBody() {
4489 var _this = this;
4490
4491 var children = [];
4492 var cols = Array(3).fill(null);
4493 var rows = 12 / cols.length;
4494
4495 var _loop = function _loop(row) {
4496 var tds = cols.map(function (_, col) {
4497 var month = row * cols.length + col;
4498 return _this.$createElement('td', {
4499 key: month
4500 }, [_this.genButton(_this.displayedYear + '-' + Object(__WEBPACK_IMPORTED_MODULE_2__util__["c" /* pad */])(month + 1), false)]);
4501 });
4502
4503 children.push(_this.$createElement('tr', {
4504 key: row
4505 }, tds));
4506 };
4507
4508 for (var row = 0; row < rows; row++) {
4509 _loop(row);
4510 }
4511
4512 return this.$createElement('tbody', children);
4513 }
4514 },
4515
4516 render: function render(h) {
4517 return this.genTable('date-picker-table date-picker-table--month', [this.genTBody()]);
4518 }
4519});
4520
4521/***/ }),
4522/* 60 */
4523/***/ (function(module, __webpack_exports__, __webpack_require__) {
4524
4525"use strict";
4526/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_colorable__ = __webpack_require__(0);
4527/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(14);
4528__webpack_require__(172);
4529
4530// Mixins
4531
4532
4533// Utils
4534
4535
4536/* harmony default export */ __webpack_exports__["a"] = ({
4537 name: 'v-date-picker-years',
4538
4539 mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_colorable__["a" /* default */]],
4540
4541 data: function data() {
4542 return {
4543 defaultColor: 'primary'
4544 };
4545 },
4546
4547
4548 props: {
4549 format: {
4550 type: Function,
4551 default: null
4552 },
4553 locale: {
4554 type: String,
4555 default: 'en-us'
4556 },
4557 min: [Number, String],
4558 max: [Number, String],
4559 value: [Number, String]
4560 },
4561
4562 computed: {
4563 formatter: function formatter() {
4564 return this.format || Object(__WEBPACK_IMPORTED_MODULE_1__util__["a" /* createNativeLocaleFormatter */])(this.locale, { year: 'numeric', timeZone: 'UTC' }, { length: 4 });
4565 }
4566 },
4567
4568 mounted: function mounted() {
4569 this.$el.scrollTop = this.$el.scrollHeight / 2 - 125;
4570 },
4571
4572
4573 methods: {
4574 genYearItem: function genYearItem(year) {
4575 var _this = this;
4576
4577 var formatted = this.formatter('' + year);
4578
4579 return this.$createElement('li', {
4580 key: year,
4581 'class': parseInt(this.value, 10) === year ? this.addTextColorClassChecks({ active: true }) : {},
4582 on: {
4583 click: function click() {
4584 return _this.$emit('input', year);
4585 }
4586 }
4587 }, formatted);
4588 },
4589 genYearItems: function genYearItems() {
4590 var children = [];
4591 var selectedYear = this.value ? parseInt(this.value, 10) : new Date().getFullYear();
4592 var maxYear = this.max ? parseInt(this.max, 10) : selectedYear + 100;
4593 var minYear = Math.min(maxYear, this.min ? parseInt(this.min, 10) : selectedYear - 100);
4594
4595 for (var year = maxYear; year >= minYear; year--) {
4596 children.push(this.genYearItem(year));
4597 }
4598
4599 return children;
4600 }
4601 },
4602
4603 render: function render(h) {
4604 return this.$createElement('ul', {
4605 staticClass: 'date-picker-years',
4606 ref: 'years'
4607 }, this.genYearItems());
4608 }
4609});
4610
4611/***/ }),
4612/* 61 */
4613/***/ (function(module, __webpack_exports__, __webpack_require__) {
4614
4615"use strict";
4616/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__components_VPicker__ = __webpack_require__(62);
4617/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__colorable__ = __webpack_require__(0);
4618/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__themeable__ = __webpack_require__(1);
4619// Components
4620
4621
4622// Mixins
4623
4624
4625
4626/* harmony default export */ __webpack_exports__["a"] = ({
4627 name: 'picker',
4628
4629 components: {
4630 VPicker: __WEBPACK_IMPORTED_MODULE_0__components_VPicker__["a" /* default */]
4631 },
4632
4633 mixins: [__WEBPACK_IMPORTED_MODULE_1__colorable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__themeable__["a" /* default */]],
4634
4635 props: {
4636 headerColor: String,
4637 landscape: Boolean,
4638 noTitle: Boolean
4639 },
4640
4641 methods: {
4642 genPickerTitle: function genPickerTitle() {},
4643 genPickerBody: function genPickerBody() {},
4644 genPickerActionsSlot: function genPickerActionsSlot() {
4645 return this.$scopedSlots.default ? this.$scopedSlots.default({
4646 save: this.save,
4647 cancel: this.cancel
4648 }) : this.$slots.default;
4649 },
4650 genPicker: function genPicker(staticClass) {
4651 return this.$createElement('v-picker', {
4652 staticClass: staticClass,
4653 props: {
4654 landscape: this.landscape,
4655 dark: this.dark,
4656 light: this.light,
4657 color: this.headerColor || this.color
4658 }
4659 }, [this.noTitle ? null : this.genPickerTitle(), this.genPickerBody(), this.$createElement('template', { slot: 'actions' }, [this.genPickerActionsSlot()])]);
4660 }
4661 }
4662});
4663
4664/***/ }),
4665/* 62 */
4666/***/ (function(module, __webpack_exports__, __webpack_require__) {
4667
4668"use strict";
4669/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VPicker__ = __webpack_require__(173);
4670
4671
4672/* istanbul ignore next */
4673__WEBPACK_IMPORTED_MODULE_0__VPicker__["a" /* default */].install = function install(Vue) {
4674 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VPicker__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VPicker__["a" /* default */]);
4675};
4676
4677/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VPicker__["a" /* default */]);
4678
4679/***/ }),
4680/* 63 */
4681/***/ (function(module, __webpack_exports__, __webpack_require__) {
4682
4683"use strict";
4684/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_registrable__ = __webpack_require__(5);
4685/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__directives_touch__ = __webpack_require__(9);
4686// Mixins
4687
4688
4689// Directives
4690
4691
4692/* harmony default export */ __webpack_exports__["a"] = ({
4693 name: 'v-tabs-items',
4694
4695 mixins: [Object(__WEBPACK_IMPORTED_MODULE_0__mixins_registrable__["b" /* provide */])('tabs')],
4696
4697 directives: { Touch: __WEBPACK_IMPORTED_MODULE_1__directives_touch__["a" /* default */] },
4698
4699 inject: {
4700 registerItems: {
4701 default: null
4702 },
4703 tabProxy: {
4704 default: null
4705 },
4706 unregisterItems: {
4707 default: null
4708 }
4709 },
4710
4711 data: function data() {
4712 return {
4713 items: [],
4714 lazyValue: this.value,
4715 reverse: false
4716 };
4717 },
4718
4719
4720 props: {
4721 cycle: Boolean,
4722 touchless: Boolean,
4723 value: [Number, String]
4724 },
4725
4726 computed: {
4727 activeIndex: function activeIndex() {
4728 var _this = this;
4729
4730 return this.items.findIndex(function (item, index) {
4731 return (item.id || index.toString()) === _this.lazyValue;
4732 });
4733 },
4734 activeItem: function activeItem() {
4735 if (!this.items.length) return undefined;
4736
4737 return this.items[this.activeIndex];
4738 },
4739
4740 inputValue: {
4741 get: function get() {
4742 return this.lazyValue;
4743 },
4744 set: function set(val) {
4745 val = val.toString();
4746
4747 this.lazyValue = val;
4748
4749 if (this.tabProxy) this.tabProxy(val);else this.$emit('input', val);
4750 }
4751 }
4752 },
4753
4754 watch: {
4755 activeIndex: function activeIndex(current, previous) {
4756 this.reverse = current < previous;
4757 this.updateItems();
4758 },
4759 value: function value(val) {
4760 this.lazyValue = val;
4761 }
4762 },
4763
4764 mounted: function mounted() {
4765 this.registerItems && this.registerItems(this.changeModel);
4766 },
4767 beforeDestroy: function beforeDestroy() {
4768 this.unregisterItems && this.unregisterItems();
4769 },
4770
4771
4772 methods: {
4773 changeModel: function changeModel(val) {
4774 this.inputValue = val;
4775 },
4776 next: function next(cycle) {
4777 var nextIndex = this.activeIndex + 1;
4778
4779 if (!this.items[nextIndex]) {
4780 if (!cycle) return;
4781 nextIndex = 0;
4782 }
4783
4784 this.inputValue = this.items[nextIndex].id || nextIndex;
4785 },
4786 prev: function prev(cycle) {
4787 var prevIndex = this.activeIndex - 1;
4788
4789 if (!this.items[prevIndex]) {
4790 if (!cycle) return;
4791 prevIndex = this.items.length - 1;
4792 }
4793
4794 this.inputValue = this.items[prevIndex].id || prevIndex;
4795 },
4796 onSwipe: function onSwipe(action) {
4797 this[action](this.cycle);
4798 },
4799 register: function register(item) {
4800 this.items.push(item);
4801 },
4802 unregister: function unregister(item) {
4803 this.items = this.items.filter(function (i) {
4804 return i !== item;
4805 });
4806 },
4807 updateItems: function updateItems() {
4808 for (var index = this.items.length; --index >= 0;) {
4809 this.items[index].toggle(this.lazyValue, this.reverse, this.isBooted, index);
4810 }
4811 this.isBooted = true;
4812 }
4813 },
4814
4815 render: function render(h) {
4816 var _this2 = this;
4817
4818 var data = {
4819 staticClass: 'tabs__items',
4820 directives: []
4821 };
4822
4823 !this.touchless && data.directives.push({
4824 name: 'touch',
4825 value: {
4826 left: function left() {
4827 return _this2.onSwipe('next');
4828 },
4829 right: function right() {
4830 return _this2.onSwipe('prev');
4831 }
4832 }
4833 });
4834
4835 return h('div', data, this.$slots.default);
4836 }
4837});
4838
4839/***/ }),
4840/* 64 */
4841/***/ (function(module, __webpack_exports__, __webpack_require__) {
4842
4843"use strict";
4844/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_colorable__ = __webpack_require__(0);
4845
4846
4847/* harmony default export */ __webpack_exports__["a"] = ({
4848 name: 'v-tabs-slider',
4849
4850 mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_colorable__["a" /* default */]],
4851
4852 data: function data() {
4853 return {
4854 defaultColor: 'accent'
4855 };
4856 },
4857
4858 render: function render(h) {
4859 return h('div', {
4860 staticClass: 'tabs__slider',
4861 class: this.addBackgroundColorClassChecks()
4862 });
4863 }
4864});
4865
4866/***/ }),
4867/* 65 */
4868/***/ (function(module, __webpack_exports__, __webpack_require__) {
4869
4870"use strict";
4871/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_picker_button__ = __webpack_require__(55);
4872/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__VDatePicker_util__ = __webpack_require__(14);
4873__webpack_require__(249);
4874
4875// Mixins
4876
4877
4878// Utils
4879
4880
4881/* harmony default export */ __webpack_exports__["a"] = ({
4882 name: 'v-time-picker-title',
4883
4884 mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_picker_button__["a" /* default */]],
4885
4886 props: {
4887 ampm: Boolean,
4888 selectingHour: Boolean,
4889 value: String
4890 },
4891
4892 computed: {
4893 hour: function hour() {
4894 return parseInt(this.value.split(':')[0], 10);
4895 },
4896 minute: function minute() {
4897 return parseInt(this.value.split(':')[1], 10);
4898 },
4899 period: function period() {
4900 return this.hour < 12 ? 'am' : 'pm';
4901 }
4902 },
4903
4904 methods: {
4905 genTime: function genTime() {
4906 var hour = this.hour;
4907 if (this.ampm) {
4908 hour = hour ? (hour - 1) % 12 + 1 : 12;
4909 }
4910
4911 return this.$createElement('div', {
4912 'class': 'time-picker-title__time'
4913 }, [this.genPickerButton('selectingHour', true, this.ampm ? hour : Object(__WEBPACK_IMPORTED_MODULE_1__VDatePicker_util__["c" /* pad */])(hour)), this.$createElement('span', ':'), this.genPickerButton('selectingHour', false, Object(__WEBPACK_IMPORTED_MODULE_1__VDatePicker_util__["c" /* pad */])(this.minute))]);
4914 },
4915 genAmPm: function genAmPm() {
4916 return this.$createElement('div', {
4917 staticClass: 'time-picker-title__ampm'
4918 }, [this.genPickerButton('period', 'am', 'am'), this.genPickerButton('period', 'pm', 'pm')]);
4919 }
4920 },
4921
4922 render: function render(h) {
4923 return h('div', {
4924 staticClass: 'time-picker-title'
4925 }, [this.genTime(), this.ampm ? this.genAmPm() : null]);
4926 }
4927});
4928
4929/***/ }),
4930/* 66 */
4931/***/ (function(module, __webpack_exports__, __webpack_require__) {
4932
4933"use strict";
4934/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_colorable__ = __webpack_require__(0);
4935/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_themeable__ = __webpack_require__(1);
4936/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__util_isValueAllowed__ = __webpack_require__(20);
4937__webpack_require__(250);
4938
4939// Mixins
4940
4941
4942
4943// Utils
4944
4945
4946var outerRadius = 0.8;
4947var innerRadius = 0.5;
4948
4949/* harmony default export */ __webpack_exports__["a"] = ({
4950 name: 'v-time-picker-clock',
4951
4952 mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_colorable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_1__mixins_themeable__["a" /* default */]],
4953
4954 data: function data() {
4955 return {
4956 defaultColor: 'accent',
4957 inputValue: this.value,
4958 isDragging: false
4959 };
4960 },
4961
4962
4963 props: {
4964 allowedValues: {
4965 type: [Array, Object, Function],
4966 default: function _default() {
4967 return null;
4968 }
4969 },
4970 double: Boolean,
4971 format: {
4972 type: Function,
4973 default: function _default(val) {
4974 return val;
4975 }
4976 },
4977 max: {
4978 type: Number,
4979 require: true
4980 },
4981 min: {
4982 type: Number,
4983 require: true
4984 },
4985 scrollable: Boolean,
4986 rotate: {
4987 type: Number,
4988 default: 0
4989 },
4990 size: {
4991 type: [Number, String],
4992 default: 270
4993 },
4994 step: {
4995 type: Number,
4996 default: 1
4997 },
4998 value: {
4999 type: Number,
5000 required: true
5001 }
5002 },
5003
5004 computed: {
5005 count: function count() {
5006 return this.max - this.min + 1;
5007 },
5008 roundCount: function roundCount() {
5009 return this.double ? this.count / 2 : this.count;
5010 },
5011 degreesPerUnit: function degreesPerUnit() {
5012 return 360 / this.roundCount;
5013 },
5014 degrees: function degrees() {
5015 return this.degreesPerUnit * Math.PI / 180;
5016 },
5017 radius: function radius() {
5018 return this.size / 2;
5019 }
5020 },
5021
5022 watch: {
5023 value: function value(_value) {
5024 this.inputValue = _value;
5025 }
5026 },
5027
5028 methods: {
5029 wheel: function wheel(e) {
5030 e.preventDefault();
5031 var value = this.value + Math.sign(e.wheelDelta || 1);
5032 this.update((value - this.min + this.count) % this.count + this.min);
5033 },
5034 handScale: function handScale(value) {
5035 return this.double && value - this.min >= this.roundCount ? innerRadius / outerRadius : 1;
5036 },
5037 isAllowed: function isAllowed(value) {
5038 return Object(__WEBPACK_IMPORTED_MODULE_2__util_isValueAllowed__["a" /* default */])(value, this.allowedValues);
5039 },
5040 genValues: function genValues() {
5041 var children = [];
5042
5043 for (var value = this.min; value <= this.max; value = value + this.step) {
5044 var classes = {
5045 active: value === this.value,
5046 disabled: !this.isAllowed(value)
5047 };
5048
5049 children.push(this.$createElement('span', {
5050 'class': this.addBackgroundColorClassChecks(classes, value === this.value ? this.computedColor : null),
5051 style: this.getTransform(value),
5052 domProps: { innerHTML: '<span>' + this.format(value) + '</span>' }
5053 }));
5054 }
5055
5056 return children;
5057 },
5058 genHand: function genHand() {
5059 var scale = 'scaleY(' + this.handScale(this.value) + ')';
5060 var angle = this.rotate + this.degreesPerUnit * (this.value - this.min);
5061
5062 return this.$createElement('div', {
5063 staticClass: 'time-picker-clock__hand',
5064 'class': this.addBackgroundColorClassChecks(),
5065 style: {
5066 transform: 'rotate(' + angle + 'deg) ' + scale
5067 }
5068 });
5069 },
5070 getTransform: function getTransform(i) {
5071 var _getPosition = this.getPosition(i),
5072 x = _getPosition.x,
5073 y = _getPosition.y;
5074
5075 return { transform: 'translate(' + x + 'px, ' + y + 'px)' };
5076 },
5077 getPosition: function getPosition(value) {
5078 var radius = 0.83 * this.radius * this.handScale(value);
5079 var rotateRadians = this.rotate * Math.PI / 180;
5080 return {
5081 x: Math.round(Math.sin((value - this.min) * this.degrees + rotateRadians) * radius),
5082 y: Math.round(-Math.cos((value - this.min) * this.degrees + rotateRadians) * radius)
5083 };
5084 },
5085 onMouseDown: function onMouseDown(e) {
5086 e.preventDefault();
5087
5088 this.isDragging = true;
5089 this.onDragMove(e);
5090 },
5091 onMouseUp: function onMouseUp() {
5092 this.isDragging = false;
5093 this.isAllowed(this.inputValue) && this.$emit('change', this.inputValue);
5094 },
5095 onDragMove: function onDragMove(e) {
5096 e.preventDefault();
5097 if (!this.isDragging && e.type !== 'click') return;
5098
5099 var _$refs$clock$getBound = this.$refs.clock.getBoundingClientRect(),
5100 width = _$refs$clock$getBound.width,
5101 top = _$refs$clock$getBound.top,
5102 left = _$refs$clock$getBound.left;
5103
5104 var _ref = 'touches' in e ? e.touches[0] : e,
5105 clientX = _ref.clientX,
5106 clientY = _ref.clientY;
5107
5108 var center = { x: width / 2, y: -width / 2 };
5109 var coords = { x: clientX - left, y: top - clientY };
5110 var handAngle = Math.round(this.angle(center, coords) - this.rotate + 360) % 360;
5111 var insideClick = this.double && this.euclidean(center, coords) / this.radius < (outerRadius + innerRadius) / 2;
5112 var value = Math.round(handAngle / this.degreesPerUnit) + this.min + (insideClick ? this.roundCount : 0);
5113
5114 // Necessary to fix edge case when selecting left part of max value
5115 if (handAngle >= 360 - this.degreesPerUnit / 2) {
5116 this.update(insideClick ? this.max : this.min);
5117 } else {
5118 this.update(value);
5119 }
5120 },
5121 update: function update(value) {
5122 if (this.inputValue !== value && this.isAllowed(value)) {
5123 this.inputValue = value;
5124 this.$emit('input', value);
5125 }
5126 },
5127 euclidean: function euclidean(p0, p1) {
5128 var dx = p1.x - p0.x;
5129 var dy = p1.y - p0.y;
5130
5131 return Math.sqrt(dx * dx + dy * dy);
5132 },
5133 angle: function angle(center, p1) {
5134 var value = 2 * Math.atan2(p1.y - center.y - this.euclidean(center, p1), p1.x - center.x);
5135 return Math.abs(value * 180 / Math.PI);
5136 }
5137 },
5138
5139 render: function render(h) {
5140 var _this = this;
5141
5142 var data = {
5143 staticClass: 'time-picker-clock',
5144 style: {
5145 width: this.size + 'px',
5146 height: this.size + 'px'
5147 },
5148 on: {
5149 mousedown: this.onMouseDown,
5150 mouseup: this.onMouseUp,
5151 mouseleave: function mouseleave() {
5152 return _this.isDragging && _this.onMouseUp();
5153 },
5154 touchstart: this.onMouseDown,
5155 touchend: this.onMouseUp,
5156 mousemove: this.onDragMove,
5157 touchmove: this.onDragMove
5158 },
5159 ref: 'clock'
5160 };
5161
5162 this.scrollable && (data.on.wheel = this.wheel);
5163
5164 return this.$createElement('div', data, [this.genHand(), this.genValues()]);
5165 }
5166});
5167
5168/***/ }),
5169/* 67 */
5170/***/ (function(module, __webpack_exports__, __webpack_require__) {
5171
5172"use strict";
5173function inserted(el, binding) {
5174 var callback = binding.value;
5175 var options = binding.options || { passive: true };
5176 var target = binding.arg || window;
5177 if (target === 'undefined') return;
5178
5179 if (target !== window) {
5180 target = document.querySelector(target);
5181 }
5182
5183 target.addEventListener('scroll', callback, options);
5184
5185 el._onScroll = {
5186 callback: callback,
5187 options: options,
5188 target: target
5189 };
5190}
5191
5192function unbind(el, binding) {
5193 var _el$_onScroll = el._onScroll,
5194 callback = _el$_onScroll.callback,
5195 options = _el$_onScroll.options,
5196 target = _el$_onScroll.target;
5197
5198
5199 target.removeEventListener('scroll', callback, options);
5200 delete el._onScroll;
5201}
5202
5203/* harmony default export */ __webpack_exports__["a"] = ({
5204 name: 'scroll',
5205 inserted: inserted,
5206 unbind: unbind
5207});
5208
5209/***/ }),
5210/* 68 */
5211/***/ (function(module, __webpack_exports__, __webpack_require__) {
5212
5213"use strict";
5214Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
5215/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_semver__ = __webpack_require__(70);
5216/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_semver___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_semver__);
5217/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__package_json__ = __webpack_require__(72);
5218/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__package_json___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__package_json__);
5219/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__components__ = __webpack_require__(73);
5220/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__directives__ = __webpack_require__(258);
5221/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__util_console__ = __webpack_require__(7);
5222var _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; };
5223
5224__webpack_require__(69);
5225
5226
5227
5228
5229
5230
5231function Vuetify(Vue, args) {
5232 var Vuetify = __WEBPACK_IMPORTED_MODULE_2__components__["Vuetify"];
5233
5234 Vue.use(Vuetify, _extends({
5235 components: __WEBPACK_IMPORTED_MODULE_2__components__,
5236 directives: __WEBPACK_IMPORTED_MODULE_3__directives__
5237 }, args));
5238}
5239
5240Vuetify.version = __WEBPACK_IMPORTED_MODULE_1__package_json__["version"];
5241
5242function checkVueVersion() {
5243 var vueDep = __WEBPACK_IMPORTED_MODULE_1__package_json__["peerDependencies"].vue;
5244 if (!__WEBPACK_IMPORTED_MODULE_0_semver___default.a.satisfies(window.Vue.version, vueDep)) {
5245 Object(__WEBPACK_IMPORTED_MODULE_4__util_console__["b" /* consoleWarn */])('Vuetify requires Vue version ' + vueDep);
5246 }
5247}
5248
5249if (typeof window !== 'undefined' && window.Vue) {
5250 window.Vue.version && checkVueVersion();
5251 window.Vue.use(Vuetify);
5252}
5253
5254/* harmony default export */ __webpack_exports__["default"] = (Vuetify);
5255
5256/***/ }),
5257/* 69 */
5258/***/ (function(module, exports) {
5259
5260// removed by extract-text-webpack-plugin
5261
5262/***/ }),
5263/* 70 */
5264/***/ (function(module, exports, __webpack_require__) {
5265
5266/* WEBPACK VAR INJECTION */(function(process) {exports = module.exports = SemVer;
5267
5268// The debug function is excluded entirely from the minified version.
5269/* nomin */ var debug;
5270/* nomin */ if (typeof process === 'object' &&
5271 /* nomin */ process.env &&
5272 /* nomin */ process.env.NODE_DEBUG &&
5273 /* nomin */ /\bsemver\b/i.test(process.env.NODE_DEBUG))
5274 /* nomin */ debug = function() {
5275 /* nomin */ var args = Array.prototype.slice.call(arguments, 0);
5276 /* nomin */ args.unshift('SEMVER');
5277 /* nomin */ console.log.apply(console, args);
5278 /* nomin */ };
5279/* nomin */ else
5280 /* nomin */ debug = function() {};
5281
5282// Note: this is the semver.org version of the spec that it implements
5283// Not necessarily the package version of this code.
5284exports.SEMVER_SPEC_VERSION = '2.0.0';
5285
5286var MAX_LENGTH = 256;
5287var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;
5288
5289// The actual regexps go on exports.re
5290var re = exports.re = [];
5291var src = exports.src = [];
5292var R = 0;
5293
5294// The following Regular Expressions can be used for tokenizing,
5295// validating, and parsing SemVer version strings.
5296
5297// ## Numeric Identifier
5298// A single `0`, or a non-zero digit followed by zero or more digits.
5299
5300var NUMERICIDENTIFIER = R++;
5301src[NUMERICIDENTIFIER] = '0|[1-9]\\d*';
5302var NUMERICIDENTIFIERLOOSE = R++;
5303src[NUMERICIDENTIFIERLOOSE] = '[0-9]+';
5304
5305
5306// ## Non-numeric Identifier
5307// Zero or more digits, followed by a letter or hyphen, and then zero or
5308// more letters, digits, or hyphens.
5309
5310var NONNUMERICIDENTIFIER = R++;
5311src[NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-][a-zA-Z0-9-]*';
5312
5313
5314// ## Main Version
5315// Three dot-separated numeric identifiers.
5316
5317var MAINVERSION = R++;
5318src[MAINVERSION] = '(' + src[NUMERICIDENTIFIER] + ')\\.' +
5319 '(' + src[NUMERICIDENTIFIER] + ')\\.' +
5320 '(' + src[NUMERICIDENTIFIER] + ')';
5321
5322var MAINVERSIONLOOSE = R++;
5323src[MAINVERSIONLOOSE] = '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' +
5324 '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' +
5325 '(' + src[NUMERICIDENTIFIERLOOSE] + ')';
5326
5327// ## Pre-release Version Identifier
5328// A numeric identifier, or a non-numeric identifier.
5329
5330var PRERELEASEIDENTIFIER = R++;
5331src[PRERELEASEIDENTIFIER] = '(?:' + src[NUMERICIDENTIFIER] +
5332 '|' + src[NONNUMERICIDENTIFIER] + ')';
5333
5334var PRERELEASEIDENTIFIERLOOSE = R++;
5335src[PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[NUMERICIDENTIFIERLOOSE] +
5336 '|' + src[NONNUMERICIDENTIFIER] + ')';
5337
5338
5339// ## Pre-release Version
5340// Hyphen, followed by one or more dot-separated pre-release version
5341// identifiers.
5342
5343var PRERELEASE = R++;
5344src[PRERELEASE] = '(?:-(' + src[PRERELEASEIDENTIFIER] +
5345 '(?:\\.' + src[PRERELEASEIDENTIFIER] + ')*))';
5346
5347var PRERELEASELOOSE = R++;
5348src[PRERELEASELOOSE] = '(?:-?(' + src[PRERELEASEIDENTIFIERLOOSE] +
5349 '(?:\\.' + src[PRERELEASEIDENTIFIERLOOSE] + ')*))';
5350
5351// ## Build Metadata Identifier
5352// Any combination of digits, letters, or hyphens.
5353
5354var BUILDIDENTIFIER = R++;
5355src[BUILDIDENTIFIER] = '[0-9A-Za-z-]+';
5356
5357// ## Build Metadata
5358// Plus sign, followed by one or more period-separated build metadata
5359// identifiers.
5360
5361var BUILD = R++;
5362src[BUILD] = '(?:\\+(' + src[BUILDIDENTIFIER] +
5363 '(?:\\.' + src[BUILDIDENTIFIER] + ')*))';
5364
5365
5366// ## Full Version String
5367// A main version, followed optionally by a pre-release version and
5368// build metadata.
5369
5370// Note that the only major, minor, patch, and pre-release sections of
5371// the version string are capturing groups. The build metadata is not a
5372// capturing group, because it should not ever be used in version
5373// comparison.
5374
5375var FULL = R++;
5376var FULLPLAIN = 'v?' + src[MAINVERSION] +
5377 src[PRERELEASE] + '?' +
5378 src[BUILD] + '?';
5379
5380src[FULL] = '^' + FULLPLAIN + '$';
5381
5382// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.
5383// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty
5384// common in the npm registry.
5385var LOOSEPLAIN = '[v=\\s]*' + src[MAINVERSIONLOOSE] +
5386 src[PRERELEASELOOSE] + '?' +
5387 src[BUILD] + '?';
5388
5389var LOOSE = R++;
5390src[LOOSE] = '^' + LOOSEPLAIN + '$';
5391
5392var GTLT = R++;
5393src[GTLT] = '((?:<|>)?=?)';
5394
5395// Something like "2.*" or "1.2.x".
5396// Note that "x.x" is a valid xRange identifer, meaning "any version"
5397// Only the first item is strictly required.
5398var XRANGEIDENTIFIERLOOSE = R++;
5399src[XRANGEIDENTIFIERLOOSE] = src[NUMERICIDENTIFIERLOOSE] + '|x|X|\\*';
5400var XRANGEIDENTIFIER = R++;
5401src[XRANGEIDENTIFIER] = src[NUMERICIDENTIFIER] + '|x|X|\\*';
5402
5403var XRANGEPLAIN = R++;
5404src[XRANGEPLAIN] = '[v=\\s]*(' + src[XRANGEIDENTIFIER] + ')' +
5405 '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' +
5406 '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' +
5407 '(?:' + src[PRERELEASE] + ')?' +
5408 src[BUILD] + '?' +
5409 ')?)?';
5410
5411var XRANGEPLAINLOOSE = R++;
5412src[XRANGEPLAINLOOSE] = '[v=\\s]*(' + src[XRANGEIDENTIFIERLOOSE] + ')' +
5413 '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' +
5414 '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' +
5415 '(?:' + src[PRERELEASELOOSE] + ')?' +
5416 src[BUILD] + '?' +
5417 ')?)?';
5418
5419var XRANGE = R++;
5420src[XRANGE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAIN] + '$';
5421var XRANGELOOSE = R++;
5422src[XRANGELOOSE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAINLOOSE] + '$';
5423
5424// Tilde ranges.
5425// Meaning is "reasonably at or greater than"
5426var LONETILDE = R++;
5427src[LONETILDE] = '(?:~>?)';
5428
5429var TILDETRIM = R++;
5430src[TILDETRIM] = '(\\s*)' + src[LONETILDE] + '\\s+';
5431re[TILDETRIM] = new RegExp(src[TILDETRIM], 'g');
5432var tildeTrimReplace = '$1~';
5433
5434var TILDE = R++;
5435src[TILDE] = '^' + src[LONETILDE] + src[XRANGEPLAIN] + '$';
5436var TILDELOOSE = R++;
5437src[TILDELOOSE] = '^' + src[LONETILDE] + src[XRANGEPLAINLOOSE] + '$';
5438
5439// Caret ranges.
5440// Meaning is "at least and backwards compatible with"
5441var LONECARET = R++;
5442src[LONECARET] = '(?:\\^)';
5443
5444var CARETTRIM = R++;
5445src[CARETTRIM] = '(\\s*)' + src[LONECARET] + '\\s+';
5446re[CARETTRIM] = new RegExp(src[CARETTRIM], 'g');
5447var caretTrimReplace = '$1^';
5448
5449var CARET = R++;
5450src[CARET] = '^' + src[LONECARET] + src[XRANGEPLAIN] + '$';
5451var CARETLOOSE = R++;
5452src[CARETLOOSE] = '^' + src[LONECARET] + src[XRANGEPLAINLOOSE] + '$';
5453
5454// A simple gt/lt/eq thing, or just "" to indicate "any version"
5455var COMPARATORLOOSE = R++;
5456src[COMPARATORLOOSE] = '^' + src[GTLT] + '\\s*(' + LOOSEPLAIN + ')$|^$';
5457var COMPARATOR = R++;
5458src[COMPARATOR] = '^' + src[GTLT] + '\\s*(' + FULLPLAIN + ')$|^$';
5459
5460
5461// An expression to strip any whitespace between the gtlt and the thing
5462// it modifies, so that `> 1.2.3` ==> `>1.2.3`
5463var COMPARATORTRIM = R++;
5464src[COMPARATORTRIM] = '(\\s*)' + src[GTLT] +
5465 '\\s*(' + LOOSEPLAIN + '|' + src[XRANGEPLAIN] + ')';
5466
5467// this one has to use the /g flag
5468re[COMPARATORTRIM] = new RegExp(src[COMPARATORTRIM], 'g');
5469var comparatorTrimReplace = '$1$2$3';
5470
5471
5472// Something like `1.2.3 - 1.2.4`
5473// Note that these all use the loose form, because they'll be
5474// checked against either the strict or loose comparator form
5475// later.
5476var HYPHENRANGE = R++;
5477src[HYPHENRANGE] = '^\\s*(' + src[XRANGEPLAIN] + ')' +
5478 '\\s+-\\s+' +
5479 '(' + src[XRANGEPLAIN] + ')' +
5480 '\\s*$';
5481
5482var HYPHENRANGELOOSE = R++;
5483src[HYPHENRANGELOOSE] = '^\\s*(' + src[XRANGEPLAINLOOSE] + ')' +
5484 '\\s+-\\s+' +
5485 '(' + src[XRANGEPLAINLOOSE] + ')' +
5486 '\\s*$';
5487
5488// Star ranges basically just allow anything at all.
5489var STAR = R++;
5490src[STAR] = '(<|>)?=?\\s*\\*';
5491
5492// Compile to actual regexp objects.
5493// All are flag-free, unless they were created above with a flag.
5494for (var i = 0; i < R; i++) {
5495 debug(i, src[i]);
5496 if (!re[i])
5497 re[i] = new RegExp(src[i]);
5498}
5499
5500exports.parse = parse;
5501function parse(version, loose) {
5502 if (version instanceof SemVer)
5503 return version;
5504
5505 if (typeof version !== 'string')
5506 return null;
5507
5508 if (version.length > MAX_LENGTH)
5509 return null;
5510
5511 var r = loose ? re[LOOSE] : re[FULL];
5512 if (!r.test(version))
5513 return null;
5514
5515 try {
5516 return new SemVer(version, loose);
5517 } catch (er) {
5518 return null;
5519 }
5520}
5521
5522exports.valid = valid;
5523function valid(version, loose) {
5524 var v = parse(version, loose);
5525 return v ? v.version : null;
5526}
5527
5528
5529exports.clean = clean;
5530function clean(version, loose) {
5531 var s = parse(version.trim().replace(/^[=v]+/, ''), loose);
5532 return s ? s.version : null;
5533}
5534
5535exports.SemVer = SemVer;
5536
5537function SemVer(version, loose) {
5538 if (version instanceof SemVer) {
5539 if (version.loose === loose)
5540 return version;
5541 else
5542 version = version.version;
5543 } else if (typeof version !== 'string') {
5544 throw new TypeError('Invalid Version: ' + version);
5545 }
5546
5547 if (version.length > MAX_LENGTH)
5548 throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')
5549
5550 if (!(this instanceof SemVer))
5551 return new SemVer(version, loose);
5552
5553 debug('SemVer', version, loose);
5554 this.loose = loose;
5555 var m = version.trim().match(loose ? re[LOOSE] : re[FULL]);
5556
5557 if (!m)
5558 throw new TypeError('Invalid Version: ' + version);
5559
5560 this.raw = version;
5561
5562 // these are actually numbers
5563 this.major = +m[1];
5564 this.minor = +m[2];
5565 this.patch = +m[3];
5566
5567 if (this.major > MAX_SAFE_INTEGER || this.major < 0)
5568 throw new TypeError('Invalid major version')
5569
5570 if (this.minor > MAX_SAFE_INTEGER || this.minor < 0)
5571 throw new TypeError('Invalid minor version')
5572
5573 if (this.patch > MAX_SAFE_INTEGER || this.patch < 0)
5574 throw new TypeError('Invalid patch version')
5575
5576 // numberify any prerelease numeric ids
5577 if (!m[4])
5578 this.prerelease = [];
5579 else
5580 this.prerelease = m[4].split('.').map(function(id) {
5581 if (/^[0-9]+$/.test(id)) {
5582 var num = +id;
5583 if (num >= 0 && num < MAX_SAFE_INTEGER)
5584 return num;
5585 }
5586 return id;
5587 });
5588
5589 this.build = m[5] ? m[5].split('.') : [];
5590 this.format();
5591}
5592
5593SemVer.prototype.format = function() {
5594 this.version = this.major + '.' + this.minor + '.' + this.patch;
5595 if (this.prerelease.length)
5596 this.version += '-' + this.prerelease.join('.');
5597 return this.version;
5598};
5599
5600SemVer.prototype.toString = function() {
5601 return this.version;
5602};
5603
5604SemVer.prototype.compare = function(other) {
5605 debug('SemVer.compare', this.version, this.loose, other);
5606 if (!(other instanceof SemVer))
5607 other = new SemVer(other, this.loose);
5608
5609 return this.compareMain(other) || this.comparePre(other);
5610};
5611
5612SemVer.prototype.compareMain = function(other) {
5613 if (!(other instanceof SemVer))
5614 other = new SemVer(other, this.loose);
5615
5616 return compareIdentifiers(this.major, other.major) ||
5617 compareIdentifiers(this.minor, other.minor) ||
5618 compareIdentifiers(this.patch, other.patch);
5619};
5620
5621SemVer.prototype.comparePre = function(other) {
5622 if (!(other instanceof SemVer))
5623 other = new SemVer(other, this.loose);
5624
5625 // NOT having a prerelease is > having one
5626 if (this.prerelease.length && !other.prerelease.length)
5627 return -1;
5628 else if (!this.prerelease.length && other.prerelease.length)
5629 return 1;
5630 else if (!this.prerelease.length && !other.prerelease.length)
5631 return 0;
5632
5633 var i = 0;
5634 do {
5635 var a = this.prerelease[i];
5636 var b = other.prerelease[i];
5637 debug('prerelease compare', i, a, b);
5638 if (a === undefined && b === undefined)
5639 return 0;
5640 else if (b === undefined)
5641 return 1;
5642 else if (a === undefined)
5643 return -1;
5644 else if (a === b)
5645 continue;
5646 else
5647 return compareIdentifiers(a, b);
5648 } while (++i);
5649};
5650
5651// preminor will bump the version up to the next minor release, and immediately
5652// down to pre-release. premajor and prepatch work the same way.
5653SemVer.prototype.inc = function(release, identifier) {
5654 switch (release) {
5655 case 'premajor':
5656 this.prerelease.length = 0;
5657 this.patch = 0;
5658 this.minor = 0;
5659 this.major++;
5660 this.inc('pre', identifier);
5661 break;
5662 case 'preminor':
5663 this.prerelease.length = 0;
5664 this.patch = 0;
5665 this.minor++;
5666 this.inc('pre', identifier);
5667 break;
5668 case 'prepatch':
5669 // If this is already a prerelease, it will bump to the next version
5670 // drop any prereleases that might already exist, since they are not
5671 // relevant at this point.
5672 this.prerelease.length = 0;
5673 this.inc('patch', identifier);
5674 this.inc('pre', identifier);
5675 break;
5676 // If the input is a non-prerelease version, this acts the same as
5677 // prepatch.
5678 case 'prerelease':
5679 if (this.prerelease.length === 0)
5680 this.inc('patch', identifier);
5681 this.inc('pre', identifier);
5682 break;
5683
5684 case 'major':
5685 // If this is a pre-major version, bump up to the same major version.
5686 // Otherwise increment major.
5687 // 1.0.0-5 bumps to 1.0.0
5688 // 1.1.0 bumps to 2.0.0
5689 if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0)
5690 this.major++;
5691 this.minor = 0;
5692 this.patch = 0;
5693 this.prerelease = [];
5694 break;
5695 case 'minor':
5696 // If this is a pre-minor version, bump up to the same minor version.
5697 // Otherwise increment minor.
5698 // 1.2.0-5 bumps to 1.2.0
5699 // 1.2.1 bumps to 1.3.0
5700 if (this.patch !== 0 || this.prerelease.length === 0)
5701 this.minor++;
5702 this.patch = 0;
5703 this.prerelease = [];
5704 break;
5705 case 'patch':
5706 // If this is not a pre-release version, it will increment the patch.
5707 // If it is a pre-release it will bump up to the same patch version.
5708 // 1.2.0-5 patches to 1.2.0
5709 // 1.2.0 patches to 1.2.1
5710 if (this.prerelease.length === 0)
5711 this.patch++;
5712 this.prerelease = [];
5713 break;
5714 // This probably shouldn't be used publicly.
5715 // 1.0.0 "pre" would become 1.0.0-0 which is the wrong direction.
5716 case 'pre':
5717 if (this.prerelease.length === 0)
5718 this.prerelease = [0];
5719 else {
5720 var i = this.prerelease.length;
5721 while (--i >= 0) {
5722 if (typeof this.prerelease[i] === 'number') {
5723 this.prerelease[i]++;
5724 i = -2;
5725 }
5726 }
5727 if (i === -1) // didn't increment anything
5728 this.prerelease.push(0);
5729 }
5730 if (identifier) {
5731 // 1.2.0-beta.1 bumps to 1.2.0-beta.2,
5732 // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0
5733 if (this.prerelease[0] === identifier) {
5734 if (isNaN(this.prerelease[1]))
5735 this.prerelease = [identifier, 0];
5736 } else
5737 this.prerelease = [identifier, 0];
5738 }
5739 break;
5740
5741 default:
5742 throw new Error('invalid increment argument: ' + release);
5743 }
5744 this.format();
5745 this.raw = this.version;
5746 return this;
5747};
5748
5749exports.inc = inc;
5750function inc(version, release, loose, identifier) {
5751 if (typeof(loose) === 'string') {
5752 identifier = loose;
5753 loose = undefined;
5754 }
5755
5756 try {
5757 return new SemVer(version, loose).inc(release, identifier).version;
5758 } catch (er) {
5759 return null;
5760 }
5761}
5762
5763exports.diff = diff;
5764function diff(version1, version2) {
5765 if (eq(version1, version2)) {
5766 return null;
5767 } else {
5768 var v1 = parse(version1);
5769 var v2 = parse(version2);
5770 if (v1.prerelease.length || v2.prerelease.length) {
5771 for (var key in v1) {
5772 if (key === 'major' || key === 'minor' || key === 'patch') {
5773 if (v1[key] !== v2[key]) {
5774 return 'pre'+key;
5775 }
5776 }
5777 }
5778 return 'prerelease';
5779 }
5780 for (var key in v1) {
5781 if (key === 'major' || key === 'minor' || key === 'patch') {
5782 if (v1[key] !== v2[key]) {
5783 return key;
5784 }
5785 }
5786 }
5787 }
5788}
5789
5790exports.compareIdentifiers = compareIdentifiers;
5791
5792var numeric = /^[0-9]+$/;
5793function compareIdentifiers(a, b) {
5794 var anum = numeric.test(a);
5795 var bnum = numeric.test(b);
5796
5797 if (anum && bnum) {
5798 a = +a;
5799 b = +b;
5800 }
5801
5802 return (anum && !bnum) ? -1 :
5803 (bnum && !anum) ? 1 :
5804 a < b ? -1 :
5805 a > b ? 1 :
5806 0;
5807}
5808
5809exports.rcompareIdentifiers = rcompareIdentifiers;
5810function rcompareIdentifiers(a, b) {
5811 return compareIdentifiers(b, a);
5812}
5813
5814exports.major = major;
5815function major(a, loose) {
5816 return new SemVer(a, loose).major;
5817}
5818
5819exports.minor = minor;
5820function minor(a, loose) {
5821 return new SemVer(a, loose).minor;
5822}
5823
5824exports.patch = patch;
5825function patch(a, loose) {
5826 return new SemVer(a, loose).patch;
5827}
5828
5829exports.compare = compare;
5830function compare(a, b, loose) {
5831 return new SemVer(a, loose).compare(new SemVer(b, loose));
5832}
5833
5834exports.compareLoose = compareLoose;
5835function compareLoose(a, b) {
5836 return compare(a, b, true);
5837}
5838
5839exports.rcompare = rcompare;
5840function rcompare(a, b, loose) {
5841 return compare(b, a, loose);
5842}
5843
5844exports.sort = sort;
5845function sort(list, loose) {
5846 return list.sort(function(a, b) {
5847 return exports.compare(a, b, loose);
5848 });
5849}
5850
5851exports.rsort = rsort;
5852function rsort(list, loose) {
5853 return list.sort(function(a, b) {
5854 return exports.rcompare(a, b, loose);
5855 });
5856}
5857
5858exports.gt = gt;
5859function gt(a, b, loose) {
5860 return compare(a, b, loose) > 0;
5861}
5862
5863exports.lt = lt;
5864function lt(a, b, loose) {
5865 return compare(a, b, loose) < 0;
5866}
5867
5868exports.eq = eq;
5869function eq(a, b, loose) {
5870 return compare(a, b, loose) === 0;
5871}
5872
5873exports.neq = neq;
5874function neq(a, b, loose) {
5875 return compare(a, b, loose) !== 0;
5876}
5877
5878exports.gte = gte;
5879function gte(a, b, loose) {
5880 return compare(a, b, loose) >= 0;
5881}
5882
5883exports.lte = lte;
5884function lte(a, b, loose) {
5885 return compare(a, b, loose) <= 0;
5886}
5887
5888exports.cmp = cmp;
5889function cmp(a, op, b, loose) {
5890 var ret;
5891 switch (op) {
5892 case '===':
5893 if (typeof a === 'object') a = a.version;
5894 if (typeof b === 'object') b = b.version;
5895 ret = a === b;
5896 break;
5897 case '!==':
5898 if (typeof a === 'object') a = a.version;
5899 if (typeof b === 'object') b = b.version;
5900 ret = a !== b;
5901 break;
5902 case '': case '=': case '==': ret = eq(a, b, loose); break;
5903 case '!=': ret = neq(a, b, loose); break;
5904 case '>': ret = gt(a, b, loose); break;
5905 case '>=': ret = gte(a, b, loose); break;
5906 case '<': ret = lt(a, b, loose); break;
5907 case '<=': ret = lte(a, b, loose); break;
5908 default: throw new TypeError('Invalid operator: ' + op);
5909 }
5910 return ret;
5911}
5912
5913exports.Comparator = Comparator;
5914function Comparator(comp, loose) {
5915 if (comp instanceof Comparator) {
5916 if (comp.loose === loose)
5917 return comp;
5918 else
5919 comp = comp.value;
5920 }
5921
5922 if (!(this instanceof Comparator))
5923 return new Comparator(comp, loose);
5924
5925 debug('comparator', comp, loose);
5926 this.loose = loose;
5927 this.parse(comp);
5928
5929 if (this.semver === ANY)
5930 this.value = '';
5931 else
5932 this.value = this.operator + this.semver.version;
5933
5934 debug('comp', this);
5935}
5936
5937var ANY = {};
5938Comparator.prototype.parse = function(comp) {
5939 var r = this.loose ? re[COMPARATORLOOSE] : re[COMPARATOR];
5940 var m = comp.match(r);
5941
5942 if (!m)
5943 throw new TypeError('Invalid comparator: ' + comp);
5944
5945 this.operator = m[1];
5946 if (this.operator === '=')
5947 this.operator = '';
5948
5949 // if it literally is just '>' or '' then allow anything.
5950 if (!m[2])
5951 this.semver = ANY;
5952 else
5953 this.semver = new SemVer(m[2], this.loose);
5954};
5955
5956Comparator.prototype.toString = function() {
5957 return this.value;
5958};
5959
5960Comparator.prototype.test = function(version) {
5961 debug('Comparator.test', version, this.loose);
5962
5963 if (this.semver === ANY)
5964 return true;
5965
5966 if (typeof version === 'string')
5967 version = new SemVer(version, this.loose);
5968
5969 return cmp(version, this.operator, this.semver, this.loose);
5970};
5971
5972Comparator.prototype.intersects = function(comp, loose) {
5973 if (!(comp instanceof Comparator)) {
5974 throw new TypeError('a Comparator is required');
5975 }
5976
5977 var rangeTmp;
5978
5979 if (this.operator === '') {
5980 rangeTmp = new Range(comp.value, loose);
5981 return satisfies(this.value, rangeTmp, loose);
5982 } else if (comp.operator === '') {
5983 rangeTmp = new Range(this.value, loose);
5984 return satisfies(comp.semver, rangeTmp, loose);
5985 }
5986
5987 var sameDirectionIncreasing =
5988 (this.operator === '>=' || this.operator === '>') &&
5989 (comp.operator === '>=' || comp.operator === '>');
5990 var sameDirectionDecreasing =
5991 (this.operator === '<=' || this.operator === '<') &&
5992 (comp.operator === '<=' || comp.operator === '<');
5993 var sameSemVer = this.semver.version === comp.semver.version;
5994 var differentDirectionsInclusive =
5995 (this.operator === '>=' || this.operator === '<=') &&
5996 (comp.operator === '>=' || comp.operator === '<=');
5997 var oppositeDirectionsLessThan =
5998 cmp(this.semver, '<', comp.semver, loose) &&
5999 ((this.operator === '>=' || this.operator === '>') &&
6000 (comp.operator === '<=' || comp.operator === '<'));
6001 var oppositeDirectionsGreaterThan =
6002 cmp(this.semver, '>', comp.semver, loose) &&
6003 ((this.operator === '<=' || this.operator === '<') &&
6004 (comp.operator === '>=' || comp.operator === '>'));
6005
6006 return sameDirectionIncreasing || sameDirectionDecreasing ||
6007 (sameSemVer && differentDirectionsInclusive) ||
6008 oppositeDirectionsLessThan || oppositeDirectionsGreaterThan;
6009};
6010
6011
6012exports.Range = Range;
6013function Range(range, loose) {
6014 if (range instanceof Range) {
6015 if (range.loose === loose) {
6016 return range;
6017 } else {
6018 return new Range(range.raw, loose);
6019 }
6020 }
6021
6022 if (range instanceof Comparator) {
6023 return new Range(range.value, loose);
6024 }
6025
6026 if (!(this instanceof Range))
6027 return new Range(range, loose);
6028
6029 this.loose = loose;
6030
6031 // First, split based on boolean or ||
6032 this.raw = range;
6033 this.set = range.split(/\s*\|\|\s*/).map(function(range) {
6034 return this.parseRange(range.trim());
6035 }, this).filter(function(c) {
6036 // throw out any that are not relevant for whatever reason
6037 return c.length;
6038 });
6039
6040 if (!this.set.length) {
6041 throw new TypeError('Invalid SemVer Range: ' + range);
6042 }
6043
6044 this.format();
6045}
6046
6047Range.prototype.format = function() {
6048 this.range = this.set.map(function(comps) {
6049 return comps.join(' ').trim();
6050 }).join('||').trim();
6051 return this.range;
6052};
6053
6054Range.prototype.toString = function() {
6055 return this.range;
6056};
6057
6058Range.prototype.parseRange = function(range) {
6059 var loose = this.loose;
6060 range = range.trim();
6061 debug('range', range, loose);
6062 // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`
6063 var hr = loose ? re[HYPHENRANGELOOSE] : re[HYPHENRANGE];
6064 range = range.replace(hr, hyphenReplace);
6065 debug('hyphen replace', range);
6066 // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`
6067 range = range.replace(re[COMPARATORTRIM], comparatorTrimReplace);
6068 debug('comparator trim', range, re[COMPARATORTRIM]);
6069
6070 // `~ 1.2.3` => `~1.2.3`
6071 range = range.replace(re[TILDETRIM], tildeTrimReplace);
6072
6073 // `^ 1.2.3` => `^1.2.3`
6074 range = range.replace(re[CARETTRIM], caretTrimReplace);
6075
6076 // normalize spaces
6077 range = range.split(/\s+/).join(' ');
6078
6079 // At this point, the range is completely trimmed and
6080 // ready to be split into comparators.
6081
6082 var compRe = loose ? re[COMPARATORLOOSE] : re[COMPARATOR];
6083 var set = range.split(' ').map(function(comp) {
6084 return parseComparator(comp, loose);
6085 }).join(' ').split(/\s+/);
6086 if (this.loose) {
6087 // in loose mode, throw out any that are not valid comparators
6088 set = set.filter(function(comp) {
6089 return !!comp.match(compRe);
6090 });
6091 }
6092 set = set.map(function(comp) {
6093 return new Comparator(comp, loose);
6094 });
6095
6096 return set;
6097};
6098
6099Range.prototype.intersects = function(range, loose) {
6100 if (!(range instanceof Range)) {
6101 throw new TypeError('a Range is required');
6102 }
6103
6104 return this.set.some(function(thisComparators) {
6105 return thisComparators.every(function(thisComparator) {
6106 return range.set.some(function(rangeComparators) {
6107 return rangeComparators.every(function(rangeComparator) {
6108 return thisComparator.intersects(rangeComparator, loose);
6109 });
6110 });
6111 });
6112 });
6113};
6114
6115// Mostly just for testing and legacy API reasons
6116exports.toComparators = toComparators;
6117function toComparators(range, loose) {
6118 return new Range(range, loose).set.map(function(comp) {
6119 return comp.map(function(c) {
6120 return c.value;
6121 }).join(' ').trim().split(' ');
6122 });
6123}
6124
6125// comprised of xranges, tildes, stars, and gtlt's at this point.
6126// already replaced the hyphen ranges
6127// turn into a set of JUST comparators.
6128function parseComparator(comp, loose) {
6129 debug('comp', comp);
6130 comp = replaceCarets(comp, loose);
6131 debug('caret', comp);
6132 comp = replaceTildes(comp, loose);
6133 debug('tildes', comp);
6134 comp = replaceXRanges(comp, loose);
6135 debug('xrange', comp);
6136 comp = replaceStars(comp, loose);
6137 debug('stars', comp);
6138 return comp;
6139}
6140
6141function isX(id) {
6142 return !id || id.toLowerCase() === 'x' || id === '*';
6143}
6144
6145// ~, ~> --> * (any, kinda silly)
6146// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0
6147// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0
6148// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0
6149// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0
6150// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0
6151function replaceTildes(comp, loose) {
6152 return comp.trim().split(/\s+/).map(function(comp) {
6153 return replaceTilde(comp, loose);
6154 }).join(' ');
6155}
6156
6157function replaceTilde(comp, loose) {
6158 var r = loose ? re[TILDELOOSE] : re[TILDE];
6159 return comp.replace(r, function(_, M, m, p, pr) {
6160 debug('tilde', comp, _, M, m, p, pr);
6161 var ret;
6162
6163 if (isX(M))
6164 ret = '';
6165 else if (isX(m))
6166 ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0';
6167 else if (isX(p))
6168 // ~1.2 == >=1.2.0 <1.3.0
6169 ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0';
6170 else if (pr) {
6171 debug('replaceTilde pr', pr);
6172 if (pr.charAt(0) !== '-')
6173 pr = '-' + pr;
6174 ret = '>=' + M + '.' + m + '.' + p + pr +
6175 ' <' + M + '.' + (+m + 1) + '.0';
6176 } else
6177 // ~1.2.3 == >=1.2.3 <1.3.0
6178 ret = '>=' + M + '.' + m + '.' + p +
6179 ' <' + M + '.' + (+m + 1) + '.0';
6180
6181 debug('tilde return', ret);
6182 return ret;
6183 });
6184}
6185
6186// ^ --> * (any, kinda silly)
6187// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0
6188// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0
6189// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0
6190// ^1.2.3 --> >=1.2.3 <2.0.0
6191// ^1.2.0 --> >=1.2.0 <2.0.0
6192function replaceCarets(comp, loose) {
6193 return comp.trim().split(/\s+/).map(function(comp) {
6194 return replaceCaret(comp, loose);
6195 }).join(' ');
6196}
6197
6198function replaceCaret(comp, loose) {
6199 debug('caret', comp, loose);
6200 var r = loose ? re[CARETLOOSE] : re[CARET];
6201 return comp.replace(r, function(_, M, m, p, pr) {
6202 debug('caret', comp, _, M, m, p, pr);
6203 var ret;
6204
6205 if (isX(M))
6206 ret = '';
6207 else if (isX(m))
6208 ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0';
6209 else if (isX(p)) {
6210 if (M === '0')
6211 ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0';
6212 else
6213 ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0';
6214 } else if (pr) {
6215 debug('replaceCaret pr', pr);
6216 if (pr.charAt(0) !== '-')
6217 pr = '-' + pr;
6218 if (M === '0') {
6219 if (m === '0')
6220 ret = '>=' + M + '.' + m + '.' + p + pr +
6221 ' <' + M + '.' + m + '.' + (+p + 1);
6222 else
6223 ret = '>=' + M + '.' + m + '.' + p + pr +
6224 ' <' + M + '.' + (+m + 1) + '.0';
6225 } else
6226 ret = '>=' + M + '.' + m + '.' + p + pr +
6227 ' <' + (+M + 1) + '.0.0';
6228 } else {
6229 debug('no pr');
6230 if (M === '0') {
6231 if (m === '0')
6232 ret = '>=' + M + '.' + m + '.' + p +
6233 ' <' + M + '.' + m + '.' + (+p + 1);
6234 else
6235 ret = '>=' + M + '.' + m + '.' + p +
6236 ' <' + M + '.' + (+m + 1) + '.0';
6237 } else
6238 ret = '>=' + M + '.' + m + '.' + p +
6239 ' <' + (+M + 1) + '.0.0';
6240 }
6241
6242 debug('caret return', ret);
6243 return ret;
6244 });
6245}
6246
6247function replaceXRanges(comp, loose) {
6248 debug('replaceXRanges', comp, loose);
6249 return comp.split(/\s+/).map(function(comp) {
6250 return replaceXRange(comp, loose);
6251 }).join(' ');
6252}
6253
6254function replaceXRange(comp, loose) {
6255 comp = comp.trim();
6256 var r = loose ? re[XRANGELOOSE] : re[XRANGE];
6257 return comp.replace(r, function(ret, gtlt, M, m, p, pr) {
6258 debug('xRange', comp, ret, gtlt, M, m, p, pr);
6259 var xM = isX(M);
6260 var xm = xM || isX(m);
6261 var xp = xm || isX(p);
6262 var anyX = xp;
6263
6264 if (gtlt === '=' && anyX)
6265 gtlt = '';
6266
6267 if (xM) {
6268 if (gtlt === '>' || gtlt === '<') {
6269 // nothing is allowed
6270 ret = '<0.0.0';
6271 } else {
6272 // nothing is forbidden
6273 ret = '*';
6274 }
6275 } else if (gtlt && anyX) {
6276 // replace X with 0
6277 if (xm)
6278 m = 0;
6279 if (xp)
6280 p = 0;
6281
6282 if (gtlt === '>') {
6283 // >1 => >=2.0.0
6284 // >1.2 => >=1.3.0
6285 // >1.2.3 => >= 1.2.4
6286 gtlt = '>=';
6287 if (xm) {
6288 M = +M + 1;
6289 m = 0;
6290 p = 0;
6291 } else if (xp) {
6292 m = +m + 1;
6293 p = 0;
6294 }
6295 } else if (gtlt === '<=') {
6296 // <=0.7.x is actually <0.8.0, since any 0.7.x should
6297 // pass. Similarly, <=7.x is actually <8.0.0, etc.
6298 gtlt = '<';
6299 if (xm)
6300 M = +M + 1;
6301 else
6302 m = +m + 1;
6303 }
6304
6305 ret = gtlt + M + '.' + m + '.' + p;
6306 } else if (xm) {
6307 ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0';
6308 } else if (xp) {
6309 ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0';
6310 }
6311
6312 debug('xRange return', ret);
6313
6314 return ret;
6315 });
6316}
6317
6318// Because * is AND-ed with everything else in the comparator,
6319// and '' means "any version", just remove the *s entirely.
6320function replaceStars(comp, loose) {
6321 debug('replaceStars', comp, loose);
6322 // Looseness is ignored here. star is always as loose as it gets!
6323 return comp.trim().replace(re[STAR], '');
6324}
6325
6326// This function is passed to string.replace(re[HYPHENRANGE])
6327// M, m, patch, prerelease, build
6328// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5
6329// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do
6330// 1.2 - 3.4 => >=1.2.0 <3.5.0
6331function hyphenReplace($0,
6332 from, fM, fm, fp, fpr, fb,
6333 to, tM, tm, tp, tpr, tb) {
6334
6335 if (isX(fM))
6336 from = '';
6337 else if (isX(fm))
6338 from = '>=' + fM + '.0.0';
6339 else if (isX(fp))
6340 from = '>=' + fM + '.' + fm + '.0';
6341 else
6342 from = '>=' + from;
6343
6344 if (isX(tM))
6345 to = '';
6346 else if (isX(tm))
6347 to = '<' + (+tM + 1) + '.0.0';
6348 else if (isX(tp))
6349 to = '<' + tM + '.' + (+tm + 1) + '.0';
6350 else if (tpr)
6351 to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr;
6352 else
6353 to = '<=' + to;
6354
6355 return (from + ' ' + to).trim();
6356}
6357
6358
6359// if ANY of the sets match ALL of its comparators, then pass
6360Range.prototype.test = function(version) {
6361 if (!version)
6362 return false;
6363
6364 if (typeof version === 'string')
6365 version = new SemVer(version, this.loose);
6366
6367 for (var i = 0; i < this.set.length; i++) {
6368 if (testSet(this.set[i], version))
6369 return true;
6370 }
6371 return false;
6372};
6373
6374function testSet(set, version) {
6375 for (var i = 0; i < set.length; i++) {
6376 if (!set[i].test(version))
6377 return false;
6378 }
6379
6380 if (version.prerelease.length) {
6381 // Find the set of versions that are allowed to have prereleases
6382 // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0
6383 // That should allow `1.2.3-pr.2` to pass.
6384 // However, `1.2.4-alpha.notready` should NOT be allowed,
6385 // even though it's within the range set by the comparators.
6386 for (var i = 0; i < set.length; i++) {
6387 debug(set[i].semver);
6388 if (set[i].semver === ANY)
6389 continue;
6390
6391 if (set[i].semver.prerelease.length > 0) {
6392 var allowed = set[i].semver;
6393 if (allowed.major === version.major &&
6394 allowed.minor === version.minor &&
6395 allowed.patch === version.patch)
6396 return true;
6397 }
6398 }
6399
6400 // Version has a -pre, but it's not one of the ones we like.
6401 return false;
6402 }
6403
6404 return true;
6405}
6406
6407exports.satisfies = satisfies;
6408function satisfies(version, range, loose) {
6409 try {
6410 range = new Range(range, loose);
6411 } catch (er) {
6412 return false;
6413 }
6414 return range.test(version);
6415}
6416
6417exports.maxSatisfying = maxSatisfying;
6418function maxSatisfying(versions, range, loose) {
6419 var max = null;
6420 var maxSV = null;
6421 try {
6422 var rangeObj = new Range(range, loose);
6423 } catch (er) {
6424 return null;
6425 }
6426 versions.forEach(function (v) {
6427 if (rangeObj.test(v)) { // satisfies(v, range, loose)
6428 if (!max || maxSV.compare(v) === -1) { // compare(max, v, true)
6429 max = v;
6430 maxSV = new SemVer(max, loose);
6431 }
6432 }
6433 })
6434 return max;
6435}
6436
6437exports.minSatisfying = minSatisfying;
6438function minSatisfying(versions, range, loose) {
6439 var min = null;
6440 var minSV = null;
6441 try {
6442 var rangeObj = new Range(range, loose);
6443 } catch (er) {
6444 return null;
6445 }
6446 versions.forEach(function (v) {
6447 if (rangeObj.test(v)) { // satisfies(v, range, loose)
6448 if (!min || minSV.compare(v) === 1) { // compare(min, v, true)
6449 min = v;
6450 minSV = new SemVer(min, loose);
6451 }
6452 }
6453 })
6454 return min;
6455}
6456
6457exports.validRange = validRange;
6458function validRange(range, loose) {
6459 try {
6460 // Return '*' instead of '' so that truthiness works.
6461 // This will throw if it's invalid anyway
6462 return new Range(range, loose).range || '*';
6463 } catch (er) {
6464 return null;
6465 }
6466}
6467
6468// Determine if version is less than all the versions possible in the range
6469exports.ltr = ltr;
6470function ltr(version, range, loose) {
6471 return outside(version, range, '<', loose);
6472}
6473
6474// Determine if version is greater than all the versions possible in the range.
6475exports.gtr = gtr;
6476function gtr(version, range, loose) {
6477 return outside(version, range, '>', loose);
6478}
6479
6480exports.outside = outside;
6481function outside(version, range, hilo, loose) {
6482 version = new SemVer(version, loose);
6483 range = new Range(range, loose);
6484
6485 var gtfn, ltefn, ltfn, comp, ecomp;
6486 switch (hilo) {
6487 case '>':
6488 gtfn = gt;
6489 ltefn = lte;
6490 ltfn = lt;
6491 comp = '>';
6492 ecomp = '>=';
6493 break;
6494 case '<':
6495 gtfn = lt;
6496 ltefn = gte;
6497 ltfn = gt;
6498 comp = '<';
6499 ecomp = '<=';
6500 break;
6501 default:
6502 throw new TypeError('Must provide a hilo val of "<" or ">"');
6503 }
6504
6505 // If it satisifes the range it is not outside
6506 if (satisfies(version, range, loose)) {
6507 return false;
6508 }
6509
6510 // From now on, variable terms are as if we're in "gtr" mode.
6511 // but note that everything is flipped for the "ltr" function.
6512
6513 for (var i = 0; i < range.set.length; ++i) {
6514 var comparators = range.set[i];
6515
6516 var high = null;
6517 var low = null;
6518
6519 comparators.forEach(function(comparator) {
6520 if (comparator.semver === ANY) {
6521 comparator = new Comparator('>=0.0.0')
6522 }
6523 high = high || comparator;
6524 low = low || comparator;
6525 if (gtfn(comparator.semver, high.semver, loose)) {
6526 high = comparator;
6527 } else if (ltfn(comparator.semver, low.semver, loose)) {
6528 low = comparator;
6529 }
6530 });
6531
6532 // If the edge version comparator has a operator then our version
6533 // isn't outside it
6534 if (high.operator === comp || high.operator === ecomp) {
6535 return false;
6536 }
6537
6538 // If the lowest version comparator has an operator and our version
6539 // is less than it then it isn't higher than the range
6540 if ((!low.operator || low.operator === comp) &&
6541 ltefn(version, low.semver)) {
6542 return false;
6543 } else if (low.operator === ecomp && ltfn(version, low.semver)) {
6544 return false;
6545 }
6546 }
6547 return true;
6548}
6549
6550exports.prerelease = prerelease;
6551function prerelease(version, loose) {
6552 var parsed = parse(version, loose);
6553 return (parsed && parsed.prerelease.length) ? parsed.prerelease : null;
6554}
6555
6556exports.intersects = intersects;
6557function intersects(r1, r2, loose) {
6558 r1 = new Range(r1, loose)
6559 r2 = new Range(r2, loose)
6560 return r1.intersects(r2)
6561}
6562
6563/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(71)))
6564
6565/***/ }),
6566/* 71 */
6567/***/ (function(module, exports) {
6568
6569// shim for using process in browser
6570var process = module.exports = {};
6571
6572// cached from whatever global is present so that test runners that stub it
6573// don't break things. But we need to wrap it in a try catch in case it is
6574// wrapped in strict mode code which doesn't define any globals. It's inside a
6575// function because try/catches deoptimize in certain engines.
6576
6577var cachedSetTimeout;
6578var cachedClearTimeout;
6579
6580function defaultSetTimout() {
6581 throw new Error('setTimeout has not been defined');
6582}
6583function defaultClearTimeout () {
6584 throw new Error('clearTimeout has not been defined');
6585}
6586(function () {
6587 try {
6588 if (typeof setTimeout === 'function') {
6589 cachedSetTimeout = setTimeout;
6590 } else {
6591 cachedSetTimeout = defaultSetTimout;
6592 }
6593 } catch (e) {
6594 cachedSetTimeout = defaultSetTimout;
6595 }
6596 try {
6597 if (typeof clearTimeout === 'function') {
6598 cachedClearTimeout = clearTimeout;
6599 } else {
6600 cachedClearTimeout = defaultClearTimeout;
6601 }
6602 } catch (e) {
6603 cachedClearTimeout = defaultClearTimeout;
6604 }
6605} ())
6606function runTimeout(fun) {
6607 if (cachedSetTimeout === setTimeout) {
6608 //normal enviroments in sane situations
6609 return setTimeout(fun, 0);
6610 }
6611 // if setTimeout wasn't available but was latter defined
6612 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
6613 cachedSetTimeout = setTimeout;
6614 return setTimeout(fun, 0);
6615 }
6616 try {
6617 // when when somebody has screwed with setTimeout but no I.E. maddness
6618 return cachedSetTimeout(fun, 0);
6619 } catch(e){
6620 try {
6621 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
6622 return cachedSetTimeout.call(null, fun, 0);
6623 } catch(e){
6624 // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
6625 return cachedSetTimeout.call(this, fun, 0);
6626 }
6627 }
6628
6629
6630}
6631function runClearTimeout(marker) {
6632 if (cachedClearTimeout === clearTimeout) {
6633 //normal enviroments in sane situations
6634 return clearTimeout(marker);
6635 }
6636 // if clearTimeout wasn't available but was latter defined
6637 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
6638 cachedClearTimeout = clearTimeout;
6639 return clearTimeout(marker);
6640 }
6641 try {
6642 // when when somebody has screwed with setTimeout but no I.E. maddness
6643 return cachedClearTimeout(marker);
6644 } catch (e){
6645 try {
6646 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
6647 return cachedClearTimeout.call(null, marker);
6648 } catch (e){
6649 // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
6650 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
6651 return cachedClearTimeout.call(this, marker);
6652 }
6653 }
6654
6655
6656
6657}
6658var queue = [];
6659var draining = false;
6660var currentQueue;
6661var queueIndex = -1;
6662
6663function cleanUpNextTick() {
6664 if (!draining || !currentQueue) {
6665 return;
6666 }
6667 draining = false;
6668 if (currentQueue.length) {
6669 queue = currentQueue.concat(queue);
6670 } else {
6671 queueIndex = -1;
6672 }
6673 if (queue.length) {
6674 drainQueue();
6675 }
6676}
6677
6678function drainQueue() {
6679 if (draining) {
6680 return;
6681 }
6682 var timeout = runTimeout(cleanUpNextTick);
6683 draining = true;
6684
6685 var len = queue.length;
6686 while(len) {
6687 currentQueue = queue;
6688 queue = [];
6689 while (++queueIndex < len) {
6690 if (currentQueue) {
6691 currentQueue[queueIndex].run();
6692 }
6693 }
6694 queueIndex = -1;
6695 len = queue.length;
6696 }
6697 currentQueue = null;
6698 draining = false;
6699 runClearTimeout(timeout);
6700}
6701
6702process.nextTick = function (fun) {
6703 var args = new Array(arguments.length - 1);
6704 if (arguments.length > 1) {
6705 for (var i = 1; i < arguments.length; i++) {
6706 args[i - 1] = arguments[i];
6707 }
6708 }
6709 queue.push(new Item(fun, args));
6710 if (queue.length === 1 && !draining) {
6711 runTimeout(drainQueue);
6712 }
6713};
6714
6715// v8 likes predictible objects
6716function Item(fun, array) {
6717 this.fun = fun;
6718 this.array = array;
6719}
6720Item.prototype.run = function () {
6721 this.fun.apply(null, this.array);
6722};
6723process.title = 'browser';
6724process.browser = true;
6725process.env = {};
6726process.argv = [];
6727process.version = ''; // empty string to avoid regexp issues
6728process.versions = {};
6729
6730function noop() {}
6731
6732process.on = noop;
6733process.addListener = noop;
6734process.once = noop;
6735process.off = noop;
6736process.removeListener = noop;
6737process.removeAllListeners = noop;
6738process.emit = noop;
6739process.prependListener = noop;
6740process.prependOnceListener = noop;
6741
6742process.listeners = function (name) { return [] }
6743
6744process.binding = function (name) {
6745 throw new Error('process.binding is not supported');
6746};
6747
6748process.cwd = function () { return '/' };
6749process.chdir = function (dir) {
6750 throw new Error('process.chdir is not supported');
6751};
6752process.umask = function() { return 0; };
6753
6754
6755/***/ }),
6756/* 72 */
6757/***/ (function(module, exports) {
6758
6759module.exports = {
6760 "name": "vuetify",
6761 "version": "1.0.0-beta.3",
6762 "author": {
6763 "name": "John Leider",
6764 "email": "john@vuetifyjs.com"
6765 },
6766 "license": "MIT",
6767 "homepage": "http://vuetifyjs.com",
6768 "repository": "vuetifyjs/vuetify",
6769 "main": "dist/vuetify.js",
6770 "unpkg": "dist/vuetify.js",
6771 "types": "index.d.ts",
6772 "scripts": {
6773 "watch": "cross-env TARGET=development webpack --config build/config.js --progress --hide-modules --watch",
6774 "dev": "cross-env NODE_ENV=development webpack-dev-server --config build/webpack.dev.config.js --open --hot",
6775 "build": "npm run build:dist && npm run build:es5",
6776 "build:dev": "cross-env NODE_ENV=production node build/webpack.dev.config.js",
6777 "build:dist": "rimraf dist && cross-env NODE_ENV=production webpack --config build/config.js --progress --hide-modules",
6778 "build:es5": "rimraf es5 && cross-env NODE_ENV=es5 babel src --out-dir es5",
6779 "debug-build": "node --inspect --debug-brk build/config.js",
6780 "debug:test": "./node_modules/.bin/cross-env NODE_ENV=test node --inspect --inspect-brk ./node_modules/jest/bin/jest.js --no-cache --runInBand --verbose",
6781 "test": "cross-env NODE_ENV=test jest -i",
6782 "test:coverage": "cross-env NODE_ENV=test jest -i --coverage",
6783 "lint": "eslint --ext .js,.vue src",
6784 "preparecommitmsg": "node dev/prepare-commit-message.js",
6785 "precommit": "yarn run lint && yarn test",
6786 "prepush": "yarn run lint && yarn test",
6787 "prepare": "git update-index --skip-worktree .env"
6788 },
6789 "description": "Vue.js 2 Semantic Component Framework",
6790 "devDependencies": {
6791 "autoprefixer": "^7.2.3",
6792 "avoriaz": "^6.3.0",
6793 "babel-cli": "^6.26.0",
6794 "babel-core": "^6.26.0",
6795 "babel-eslint": "^8.0.3",
6796 "babel-jest": "^21.2.0",
6797 "babel-loader": "^7.1.2",
6798 "babel-plugin-add-filehash": "^6.9.5",
6799 "babel-plugin-detective": "^2.0.0",
6800 "babel-plugin-module-resolver": "^3.0.0",
6801 "babel-plugin-transform-async-to-generator": "^6.24.1",
6802 "babel-plugin-transform-runtime": "^6.23.0",
6803 "babel-polyfill": "^6.26.0",
6804 "babel-preset-env": "^1.6.1",
6805 "babel-preset-es2015": "^6.24.1",
6806 "babel-preset-stage-2": "^6.24.1",
6807 "cross-env": "^5.1.1",
6808 "cross-spawn": "^5.1.0",
6809 "css-loader": "^0.28.7",
6810 "css-mqpacker": "^6.0.1",
6811 "cssnano": "^3.10.0",
6812 "dotenv": "^4.0.0",
6813 "eslint": "^4.13.1",
6814 "eslint-config-standard": "^11.0.0-beta.0",
6815 "eslint-config-vue": "^2.0.2",
6816 "eslint-friendly-formatter": "^3.0.0",
6817 "eslint-loader": "^1.9.0",
6818 "eslint-plugin-html": "^4.0.1",
6819 "eslint-plugin-import": "^2.8.0",
6820 "eslint-plugin-node": "^5.2.1",
6821 "eslint-plugin-promise": "^3.6.0",
6822 "eslint-plugin-pug": "^1.1.1",
6823 "eslint-plugin-standard": "^3.0.1",
6824 "eslint-plugin-vue": "^2.1.0",
6825 "eventsource-polyfill": "^0.9.6",
6826 "extract-text-webpack-plugin": "^3.0.2",
6827 "friendly-errors-webpack-plugin": "^1.6.1",
6828 "function-bind": "^1.1.1",
6829 "husky": "^0.14.3",
6830 "inquirer": "^4.0.1",
6831 "jest": "^21.2.1",
6832 "jest-cli": "^21.2.1",
6833 "jest-css-modules": "^1.1.0",
6834 "jest-serializer-html": "^5.0.0",
6835 "jest-vue-preprocessor": "^1.3.1",
6836 "optimize-css-assets-webpack-plugin": "^3.2.0",
6837 "optimize-js-plugin": "^0.0.4",
6838 "postcss-loader": "^2.0.9",
6839 "progress-bar-webpack-plugin": "^1.10.0",
6840 "pug": "^2.0.0-rc.4",
6841 "pug-loader": "^2.3.0",
6842 "ress": "^1.2.2",
6843 "rimraf": "^2.6.2",
6844 "semver": "^5.4.1",
6845 "serialize-javascript": "^1.4.0",
6846 "shelljs": "^0.7.8",
6847 "style-loader": "^0.19.1",
6848 "stylus": "^0.54.5",
6849 "stylus-loader": "^3.0.1",
6850 "uglifyjs-webpack-plugin": "^1.1.4",
6851 "vue": "^2.5.11",
6852 "vue-loader": "^13.6.0",
6853 "vue-router": "^3.0.1",
6854 "vue-server-renderer": "^2.5.11",
6855 "vue-template-compiler": "^2.5.11",
6856 "webpack": "^3.10.0",
6857 "webpack-bundle-analyzer": "^2.9.1",
6858 "webpack-bundle-size-analyzer": "^2.7.0",
6859 "webpack-dev-server": "^2.9.7",
6860 "webpack-merge": "^4.1.1",
6861 "write-file-webpack-plugin": "^4.2.0"
6862 },
6863 "dependencies": {},
6864 "peerDependencies": {
6865 "vue": "^2.5.0"
6866 },
6867 "engines": {
6868 "node": ">= 4.0.0",
6869 "npm": ">= 3.0.0"
6870 },
6871 "jest": {
6872 "verbose": false,
6873 "roots": [
6874 "<rootDir>/src"
6875 ],
6876 "moduleFileExtensions": [
6877 "js",
6878 "vue"
6879 ],
6880 "moduleDirectories": [
6881 "node_modules"
6882 ],
6883 "moduleNameMapper": {
6884 "src/(.*)": "<rootDir>/src/$1",
6885 "^@(.*)$": "<rootDir>/src/$1"
6886 },
6887 "transform": {
6888 ".*\\.(vue)$": "<rootDir>/node_modules/jest-vue-preprocessor",
6889 "\\.(styl)$": "<rootDir>/node_modules/jest-css-modules",
6890 ".*\\.(vue|js)$": "<rootDir>/node_modules/babel-jest"
6891 },
6892 "transformIgnorePatterns": [
6893 "node_modules/(?!vue-router)"
6894 ],
6895 "snapshotSerializers": [
6896 "jest-serializer-html"
6897 ]
6898 }
6899};
6900
6901/***/ }),
6902/* 73 */
6903/***/ (function(module, __webpack_exports__, __webpack_require__) {
6904
6905"use strict";
6906Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
6907/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Vuetify__ = __webpack_require__(74);
6908/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Vuetify", function() { return __WEBPACK_IMPORTED_MODULE_0__Vuetify__["a"]; });
6909/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__VApp__ = __webpack_require__(78);
6910/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VApp", function() { return __WEBPACK_IMPORTED_MODULE_1__VApp__["a"]; });
6911/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__VAlert__ = __webpack_require__(86);
6912/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VAlert", function() { return __WEBPACK_IMPORTED_MODULE_2__VAlert__["a"]; });
6913/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__VAvatar__ = __webpack_require__(32);
6914/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VAvatar", function() { return __WEBPACK_IMPORTED_MODULE_3__VAvatar__["a"]; });
6915/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__VBadge__ = __webpack_require__(93);
6916/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VBadge", function() { return __WEBPACK_IMPORTED_MODULE_4__VBadge__["a"]; });
6917/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__VBottomNav__ = __webpack_require__(96);
6918/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VBottomNav", function() { return __WEBPACK_IMPORTED_MODULE_5__VBottomNav__["a"]; });
6919/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__VBottomSheet__ = __webpack_require__(99);
6920/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VBottomSheet", function() { return __WEBPACK_IMPORTED_MODULE_6__VBottomSheet__["a"]; });
6921/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__VBreadcrumbs__ = __webpack_require__(104);
6922/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VBreadcrumbs", function() { return __WEBPACK_IMPORTED_MODULE_7__VBreadcrumbs__["a"]; });
6923/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__VBtn__ = __webpack_require__(10);
6924/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VBtn", function() { return __WEBPACK_IMPORTED_MODULE_8__VBtn__["a"]; });
6925/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__VBtnToggle__ = __webpack_require__(110);
6926/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VBtnToggle", function() { return __WEBPACK_IMPORTED_MODULE_9__VBtnToggle__["a"]; });
6927/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__VCard__ = __webpack_require__(22);
6928/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VCard", function() { return __WEBPACK_IMPORTED_MODULE_10__VCard__["a"]; });
6929/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__VCarousel__ = __webpack_require__(117);
6930/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VCarousel", function() { return __WEBPACK_IMPORTED_MODULE_11__VCarousel__["a"]; });
6931/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__VCheckbox__ = __webpack_require__(38);
6932/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VCheckbox", function() { return __WEBPACK_IMPORTED_MODULE_12__VCheckbox__["a"]; });
6933/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__VChip__ = __webpack_require__(42);
6934/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VChip", function() { return __WEBPACK_IMPORTED_MODULE_13__VChip__["a"]; });
6935/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__VDataIterator__ = __webpack_require__(127);
6936/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VDataIterator", function() { return __WEBPACK_IMPORTED_MODULE_14__VDataIterator__["a"]; });
6937/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__VDataTable__ = __webpack_require__(153);
6938/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VDataTable", function() { return __WEBPACK_IMPORTED_MODULE_15__VDataTable__["a"]; });
6939/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__VDatePicker__ = __webpack_require__(165);
6940/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VDatePicker", function() { return __WEBPACK_IMPORTED_MODULE_16__VDatePicker__["a"]; });
6941/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__VDialog__ = __webpack_require__(175);
6942/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VDialog", function() { return __WEBPACK_IMPORTED_MODULE_17__VDialog__["a"]; });
6943/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__VDivider__ = __webpack_require__(176);
6944/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VDivider", function() { return __WEBPACK_IMPORTED_MODULE_18__VDivider__["a"]; });
6945/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__VExpansionPanel__ = __webpack_require__(179);
6946/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VExpansionPanel", function() { return __WEBPACK_IMPORTED_MODULE_19__VExpansionPanel__["a"]; });
6947/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__VFooter__ = __webpack_require__(183);
6948/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VFooter", function() { return __WEBPACK_IMPORTED_MODULE_20__VFooter__["a"]; });
6949/* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__VForm__ = __webpack_require__(186);
6950/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VForm", function() { return __WEBPACK_IMPORTED_MODULE_21__VForm__["a"]; });
6951/* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__VGrid__ = __webpack_require__(188);
6952/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VGrid", function() { return __WEBPACK_IMPORTED_MODULE_22__VGrid__["a"]; });
6953/* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__VIcon__ = __webpack_require__(3);
6954/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VIcon", function() { return __WEBPACK_IMPORTED_MODULE_23__VIcon__["a"]; });
6955/* harmony import */ var __WEBPACK_IMPORTED_MODULE_24__VJumbotron__ = __webpack_require__(37);
6956/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VJumbotron", function() { return __WEBPACK_IMPORTED_MODULE_24__VJumbotron__["a"]; });
6957/* harmony import */ var __WEBPACK_IMPORTED_MODULE_25__VList__ = __webpack_require__(46);
6958/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VList", function() { return __WEBPACK_IMPORTED_MODULE_25__VList__["f"]; });
6959/* harmony import */ var __WEBPACK_IMPORTED_MODULE_26__VMenu__ = __webpack_require__(47);
6960/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VMenu", function() { return __WEBPACK_IMPORTED_MODULE_26__VMenu__["a"]; });
6961/* harmony import */ var __WEBPACK_IMPORTED_MODULE_27__VNavigationDrawer__ = __webpack_require__(194);
6962/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VNavigationDrawer", function() { return __WEBPACK_IMPORTED_MODULE_27__VNavigationDrawer__["a"]; });
6963/* harmony import */ var __WEBPACK_IMPORTED_MODULE_28__VPagination__ = __webpack_require__(197);
6964/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VPagination", function() { return __WEBPACK_IMPORTED_MODULE_28__VPagination__["a"]; });
6965/* harmony import */ var __WEBPACK_IMPORTED_MODULE_29__VParallax__ = __webpack_require__(200);
6966/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VParallax", function() { return __WEBPACK_IMPORTED_MODULE_29__VParallax__["a"]; });
6967/* harmony import */ var __WEBPACK_IMPORTED_MODULE_30__VPicker__ = __webpack_require__(62);
6968/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VPicker", function() { return __WEBPACK_IMPORTED_MODULE_30__VPicker__["a"]; });
6969/* harmony import */ var __WEBPACK_IMPORTED_MODULE_31__VProgressCircular__ = __webpack_require__(204);
6970/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VProgressCircular", function() { return __WEBPACK_IMPORTED_MODULE_31__VProgressCircular__["a"]; });
6971/* harmony import */ var __WEBPACK_IMPORTED_MODULE_32__VProgressLinear__ = __webpack_require__(53);
6972/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VProgressLinear", function() { return __WEBPACK_IMPORTED_MODULE_32__VProgressLinear__["a"]; });
6973/* harmony import */ var __WEBPACK_IMPORTED_MODULE_33__VRadioGroup__ = __webpack_require__(207);
6974/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VRadioGroup", function() { return __WEBPACK_IMPORTED_MODULE_33__VRadioGroup__["a"]; });
6975/* harmony import */ var __WEBPACK_IMPORTED_MODULE_34__VSelect__ = __webpack_require__(44);
6976/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VSelect", function() { return __WEBPACK_IMPORTED_MODULE_34__VSelect__["a"]; });
6977/* harmony import */ var __WEBPACK_IMPORTED_MODULE_35__VSlider__ = __webpack_require__(212);
6978/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VSlider", function() { return __WEBPACK_IMPORTED_MODULE_35__VSlider__["a"]; });
6979/* harmony import */ var __WEBPACK_IMPORTED_MODULE_36__VSnackbar__ = __webpack_require__(215);
6980/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VSnackbar", function() { return __WEBPACK_IMPORTED_MODULE_36__VSnackbar__["a"]; });
6981/* harmony import */ var __WEBPACK_IMPORTED_MODULE_37__VSpeedDial__ = __webpack_require__(218);
6982/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VSpeedDial", function() { return __WEBPACK_IMPORTED_MODULE_37__VSpeedDial__["a"]; });
6983/* harmony import */ var __WEBPACK_IMPORTED_MODULE_38__VStepper__ = __webpack_require__(221);
6984/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VStepper", function() { return __WEBPACK_IMPORTED_MODULE_38__VStepper__["a"]; });
6985/* harmony import */ var __WEBPACK_IMPORTED_MODULE_39__VSubheader__ = __webpack_require__(226);
6986/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VSubheader", function() { return __WEBPACK_IMPORTED_MODULE_39__VSubheader__["a"]; });
6987/* harmony import */ var __WEBPACK_IMPORTED_MODULE_40__VSwitch__ = __webpack_require__(229);
6988/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VSwitch", function() { return __WEBPACK_IMPORTED_MODULE_40__VSwitch__["a"]; });
6989/* harmony import */ var __WEBPACK_IMPORTED_MODULE_41__VSystemBar__ = __webpack_require__(232);
6990/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VSystemBar", function() { return __WEBPACK_IMPORTED_MODULE_41__VSystemBar__["a"]; });
6991/* harmony import */ var __WEBPACK_IMPORTED_MODULE_42__VTabs__ = __webpack_require__(235);
6992/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VTabs", function() { return __WEBPACK_IMPORTED_MODULE_42__VTabs__["a"]; });
6993/* harmony import */ var __WEBPACK_IMPORTED_MODULE_43__VTextField__ = __webpack_require__(245);
6994/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VTextField", function() { return __WEBPACK_IMPORTED_MODULE_43__VTextField__["a"]; });
6995/* harmony import */ var __WEBPACK_IMPORTED_MODULE_44__VTimePicker__ = __webpack_require__(247);
6996/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VTimePicker", function() { return __WEBPACK_IMPORTED_MODULE_44__VTimePicker__["a"]; });
6997/* harmony import */ var __WEBPACK_IMPORTED_MODULE_45__VToolbar__ = __webpack_require__(251);
6998/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VToolbar", function() { return __WEBPACK_IMPORTED_MODULE_45__VToolbar__["a"]; });
6999/* harmony import */ var __WEBPACK_IMPORTED_MODULE_46__VTooltip__ = __webpack_require__(255);
7000/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "VTooltip", function() { return __WEBPACK_IMPORTED_MODULE_46__VTooltip__["a"]; });
7001/* harmony import */ var __WEBPACK_IMPORTED_MODULE_47__transitions__ = __webpack_require__(6);
7002/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Transitions", function() { return __WEBPACK_IMPORTED_MODULE_47__transitions__["i"]; });
7003
7004
7005
7006
7007
7008
7009
7010
7011
7012
7013
7014
7015
7016
7017
7018
7019
7020
7021
7022
7023
7024
7025
7026
7027
7028
7029
7030
7031
7032
7033
7034
7035
7036
7037
7038
7039
7040
7041
7042
7043
7044
7045
7046
7047
7048
7049
7050
7051
7052/***/ }),
7053/* 74 */
7054/***/ (function(module, __webpack_exports__, __webpack_require__) {
7055
7056"use strict";
7057/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_application__ = __webpack_require__(75);
7058/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_theme__ = __webpack_require__(76);
7059/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_options__ = __webpack_require__(77);
7060
7061
7062
7063
7064var Vuetify = {
7065 install: function install(Vue) {
7066 var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
7067
7068 if (this.installed) return;
7069
7070 this.installed = true;
7071
7072 var $vuetify = {};
7073 Vue.util.defineReactive($vuetify, 'inspire', {
7074 breakpoint: {},
7075 application: __WEBPACK_IMPORTED_MODULE_0__mixins_application__["a" /* default */],
7076 dark: false,
7077 theme: Object(__WEBPACK_IMPORTED_MODULE_1__mixins_theme__["a" /* default */])(opts.theme),
7078 options: Object(__WEBPACK_IMPORTED_MODULE_2__mixins_options__["a" /* default */])(opts.options)
7079 });
7080
7081 Vue.prototype.$vuetify = $vuetify.inspire;
7082
7083 if (opts.transitions) {
7084 Object.values(opts.transitions).forEach(function (transition) {
7085 if (transition.name !== undefined && transition.name.startsWith('v-')) {
7086 Vue.component(transition.name, transition);
7087 }
7088 });
7089 }
7090
7091 if (opts.directives) {
7092 Object.values(opts.directives).forEach(function (directive) {
7093 Vue.directive(directive.name, directive);
7094 });
7095 }
7096
7097 if (opts.components) {
7098 Object.values(opts.components).forEach(function (component) {
7099 Vue.use(component);
7100 });
7101 }
7102 }
7103};
7104
7105/* harmony default export */ __webpack_exports__["a"] = (Vuetify);
7106
7107/***/ }),
7108/* 75 */
7109/***/ (function(module, __webpack_exports__, __webpack_require__) {
7110
7111"use strict";
7112/* harmony default export */ __webpack_exports__["a"] = ({
7113 bar: 0,
7114 bottom: 0,
7115 footer: 0,
7116 left: 0,
7117 right: 0,
7118 top: 0
7119});
7120
7121/***/ }),
7122/* 76 */
7123/***/ (function(module, __webpack_exports__, __webpack_require__) {
7124
7125"use strict";
7126/* harmony export (immutable) */ __webpack_exports__["a"] = theme;
7127/* eslint-disable no-multi-spaces */
7128var THEME_DEFAULTS = {
7129 primary: '#1976D2', // blue.darken2
7130 secondary: '#424242', // grey.darken3
7131 accent: '#82B1FF', // blue.accent1
7132 error: '#FF5252', // red.accent2
7133 info: '#2196F3', // blue.base
7134 success: '#4CAF50', // green.base
7135 warning: '#FFC107' // amber.base
7136};
7137
7138function theme() {
7139 var theme = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7140
7141 return Object.assign({}, THEME_DEFAULTS, theme);
7142}
7143
7144/***/ }),
7145/* 77 */
7146/***/ (function(module, __webpack_exports__, __webpack_require__) {
7147
7148"use strict";
7149/* harmony export (immutable) */ __webpack_exports__["a"] = options;
7150var OPTIONS_DEFAULTS = {
7151 themeVariations: ['primary', 'secondary', 'accent'],
7152 minifyTheme: null,
7153 themeCache: null
7154};
7155
7156function options() {
7157 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7158
7159 return Object.assign({}, OPTIONS_DEFAULTS, options);
7160}
7161
7162/***/ }),
7163/* 78 */
7164/***/ (function(module, __webpack_exports__, __webpack_require__) {
7165
7166"use strict";
7167/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VApp__ = __webpack_require__(79);
7168
7169
7170/* istanbul ignore next */
7171__WEBPACK_IMPORTED_MODULE_0__VApp__["a" /* default */].install = function install(Vue) {
7172 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VApp__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VApp__["a" /* default */]);
7173};
7174
7175/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VApp__["a" /* default */]);
7176
7177/***/ }),
7178/* 79 */
7179/***/ (function(module, __webpack_exports__, __webpack_require__) {
7180
7181"use strict";
7182/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_app_theme__ = __webpack_require__(81);
7183/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_app_breakpoint__ = __webpack_require__(85);
7184/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__directives_resize__ = __webpack_require__(11);
7185function _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; }
7186
7187__webpack_require__(80);
7188
7189// Component level mixins
7190
7191
7192
7193// Directives
7194
7195
7196/* harmony default export */ __webpack_exports__["a"] = ({
7197 name: 'v-app',
7198
7199 mixins: [__WEBPACK_IMPORTED_MODULE_1__mixins_app_breakpoint__["a" /* default */], __WEBPACK_IMPORTED_MODULE_0__mixins_app_theme__["a" /* default */]],
7200
7201 directives: {
7202 Resize: __WEBPACK_IMPORTED_MODULE_2__directives_resize__["a" /* default */]
7203 },
7204
7205 props: {
7206 id: {
7207 type: String,
7208 default: 'app'
7209 },
7210 dark: Boolean
7211 },
7212
7213 computed: {
7214 classes: function classes() {
7215 return _defineProperty({}, 'theme--' + (this.dark ? 'dark' : 'light'), true);
7216 }
7217 },
7218
7219 mounted: function mounted() {
7220 this.$vuetify.dark = this.dark;
7221 },
7222
7223
7224 watch: {
7225 dark: function dark() {
7226 this.$vuetify.dark = this.dark;
7227 }
7228 },
7229
7230 render: function render(h) {
7231 var data = {
7232 staticClass: 'application',
7233 'class': this.classes,
7234 attrs: { 'data-app': true },
7235 domProps: { id: this.id },
7236 directives: [{
7237 name: 'resize',
7238 value: this.onResize
7239 }]
7240 };
7241
7242 var wrapper = h('div', { staticClass: 'application--wrap' }, this.$slots.default);
7243
7244 return h('div', data, [wrapper]);
7245 }
7246});
7247
7248/***/ }),
7249/* 80 */
7250/***/ (function(module, exports) {
7251
7252// removed by extract-text-webpack-plugin
7253
7254/***/ }),
7255/* 81 */
7256/***/ (function(module, __webpack_exports__, __webpack_require__) {
7257
7258"use strict";
7259/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util_colorUtils__ = __webpack_require__(31);
7260/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util_theme__ = __webpack_require__(82);
7261
7262
7263
7264/* harmony default export */ __webpack_exports__["a"] = ({
7265 data: function data() {
7266 return {
7267 style: null
7268 };
7269 },
7270
7271 computed: {
7272 parsedTheme: function parsedTheme() {
7273 return __WEBPACK_IMPORTED_MODULE_1__util_theme__["c" /* parse */](this.$vuetify.theme);
7274 }
7275 },
7276
7277 watch: {
7278 parsedTheme: function parsedTheme() {
7279 this.applyTheme();
7280 }
7281 },
7282
7283 created: function created() {
7284 if (typeof document === 'undefined' && this.$ssrContext) {
7285 if (!this.$ssrContext._styles) this.$ssrContext._styles = {};
7286 this.$ssrContext._styles['vuetify-theme-stylesheet'] = {
7287 ids: ['vuetify-theme-stylesheet'],
7288 css: this.genColors(this.parsedTheme),
7289 media: ''
7290 };
7291 return;
7292 }
7293 this.genStyle();
7294 this.applyTheme();
7295 },
7296
7297
7298 methods: {
7299 applyTheme: function applyTheme() {
7300 this.style.innerHTML = this.genColors(this.parsedTheme);
7301 },
7302 genColors: function genColors(theme) {
7303 var css = void 0;
7304
7305 if (this.$vuetify.options.themeCache != null) {
7306 css = this.$vuetify.options.themeCache.get(theme);
7307 if (css != null) return css;
7308 }
7309
7310 var colors = Object.keys(theme);
7311 css = 'a { color: ' + Object(__WEBPACK_IMPORTED_MODULE_0__util_colorUtils__["b" /* intToHex */])(theme.primary) + '; }';
7312
7313 for (var i = 0; i < colors.length; ++i) {
7314 var name = colors[i];
7315 var value = theme[name];
7316 if (this.$vuetify.options.themeVariations.includes(name)) {
7317 css += __WEBPACK_IMPORTED_MODULE_1__util_theme__["b" /* genVariations */](name, value).join('');
7318 } else {
7319 css += __WEBPACK_IMPORTED_MODULE_1__util_theme__["a" /* genBaseColor */](name, value);
7320 }
7321 }
7322
7323 if (this.$vuetify.options.minifyTheme != null) {
7324 css = this.$vuetify.options.minifyTheme(css);
7325 }
7326
7327 if (this.$vuetify.options.themeCache != null) {
7328 this.$vuetify.options.themeCache.set(theme, css);
7329 }
7330
7331 return css;
7332 },
7333 genStyle: function genStyle() {
7334 var style = document.querySelector('[data-vue-ssr-id=vuetify-theme-stylesheet]') || document.getElementById('vuetify-theme-stylesheet');
7335
7336 if (!style) {
7337 style = document.createElement('style');
7338 style.type = 'text/css';
7339 style.id = 'vuetify-theme-stylesheet';
7340 document.head.appendChild(style);
7341 }
7342
7343 this.style = style;
7344 }
7345 }
7346});
7347
7348/***/ }),
7349/* 82 */
7350/***/ (function(module, __webpack_exports__, __webpack_require__) {
7351
7352"use strict";
7353/* harmony export (immutable) */ __webpack_exports__["c"] = parse;
7354/* harmony export (immutable) */ __webpack_exports__["b"] = genVariations;
7355/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return genBaseColor; });
7356/* unused harmony export genVariantColor */
7357/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__colorUtils__ = __webpack_require__(31);
7358/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__color_transformSRGB__ = __webpack_require__(83);
7359/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__color_transformCIELAB__ = __webpack_require__(84);
7360
7361
7362
7363
7364/**
7365 * @param {object} theme
7366 * @returns {object}
7367 */
7368function parse(theme) {
7369 var colors = Object.keys(theme);
7370 var parsedTheme = {};
7371
7372 for (var i = 0; i < colors.length; ++i) {
7373 var name = colors[i];
7374 var value = theme[name];
7375
7376 parsedTheme[name] = Object(__WEBPACK_IMPORTED_MODULE_0__colorUtils__["a" /* colorToInt */])(value);
7377 }
7378
7379 return parsedTheme;
7380}
7381
7382function genVariations(name, value) {
7383 var values = Array(10);
7384 values[0] = genBaseColor(name, value);
7385
7386 for (var i = 1, n = 5; i <= 5; ++i, --n) {
7387 values[i] = genVariantColor(name, lighten(value, n), 'lighten', n);
7388 }
7389
7390 for (var _i = 1; _i <= 4; ++_i) {
7391 values[_i + 5] = genVariantColor(name, darken(value, _i), 'darken', _i);
7392 }
7393
7394 return values;
7395}
7396
7397function lighten(value, amount) {
7398 var lab = __WEBPACK_IMPORTED_MODULE_2__color_transformCIELAB__["a" /* fromXYZ */](__WEBPACK_IMPORTED_MODULE_1__color_transformSRGB__["b" /* toXYZ */](value));
7399 lab[0] = lab[0] + amount * 10;
7400 return __WEBPACK_IMPORTED_MODULE_1__color_transformSRGB__["a" /* fromXYZ */](__WEBPACK_IMPORTED_MODULE_2__color_transformCIELAB__["b" /* toXYZ */](lab));
7401}
7402
7403function darken(value, amount) {
7404 var lab = __WEBPACK_IMPORTED_MODULE_2__color_transformCIELAB__["a" /* fromXYZ */](__WEBPACK_IMPORTED_MODULE_1__color_transformSRGB__["b" /* toXYZ */](value));
7405 lab[0] = lab[0] - amount * 10;
7406 return __WEBPACK_IMPORTED_MODULE_1__color_transformSRGB__["a" /* fromXYZ */](__WEBPACK_IMPORTED_MODULE_2__color_transformCIELAB__["b" /* toXYZ */](lab));
7407}
7408
7409/**
7410 * Generate the CSS for a base color (.primary)
7411 *
7412 * @param {string} name - The color name
7413 * @param {string|number} value - The color value
7414 * @returns {string}
7415 */
7416var genBaseColor = function genBaseColor(name, value) {
7417 value = Object(__WEBPACK_IMPORTED_MODULE_0__colorUtils__["b" /* intToHex */])(value);
7418 return '\n.' + name + ' {\n background-color: ' + value + ' !important;\n border-color: ' + value + ' !important;\n}\n.' + name + '--text {\n color: ' + value + ' !important;\n}\n.' + name + '--text input,\n.' + name + '--text textarea {\n caret-color: ' + value + ' !important;\n}\n.' + name + '--after::after {\n background: ' + value + ' !important;\n}';
7419};
7420
7421/**
7422 * Generate the CSS for a variant color (.primary.darken-2)
7423 *
7424 * @param {string} name - The color name
7425 * @param {string|number} value - The color value
7426 * @param {string} type - The variant type (darken/lighten)
7427 * @param {number} n - The darken/lighten step number
7428 * @returns {string}
7429 */
7430var genVariantColor = function genVariantColor(name, value, type, n) {
7431 value = Object(__WEBPACK_IMPORTED_MODULE_0__colorUtils__["b" /* intToHex */])(value);
7432 return '\n.' + name + '.' + type + '-' + n + ' {\n background-color: ' + value + ' !important;\n border-color: ' + value + ' !important;\n}\n.' + name + '--text.text--' + type + '-' + n + ' {\n color: ' + value + ' !important;\n}\n.' + name + '--text.text--' + type + '-' + n + ' input,\n.' + name + '--text.text--' + type + '-' + n + ' textarea {\n caret-color: ' + value + ' !important;\n}\n.' + name + '.' + type + '-' + n + '--after::after {\n background: ' + value + ' !important;\n}';
7433};
7434
7435/***/ }),
7436/* 83 */
7437/***/ (function(module, __webpack_exports__, __webpack_require__) {
7438
7439"use strict";
7440/* harmony export (immutable) */ __webpack_exports__["a"] = fromXYZ;
7441/* harmony export (immutable) */ __webpack_exports__["b"] = toXYZ;
7442// For converting XYZ to sRGB
7443var srgbForwardMatrix = [[3.2406, -1.5372, -0.4986], [-0.9689, 1.8758, 0.0415], [0.0557, -0.2040, 1.0570]];
7444
7445// Forward gamma adjust
7446var srgbForwardTransform = function srgbForwardTransform(C) {
7447 return C <= 0.0031308 ? C * 12.92 : 1.055 * Math.pow(C, 1 / 2.4) - 0.055;
7448};
7449
7450// For converting sRGB to XYZ
7451var srgbReverseMatrix = [[0.4124, 0.3576, 0.1805], [0.2126, 0.7152, 0.0722], [0.0193, 0.1192, 0.9505]];
7452
7453// Reverse gamma adjust
7454var srgbReverseTransform = function srgbReverseTransform(C) {
7455 return C <= 0.04045 ? C / 12.92 : Math.pow((C + 0.055) / 1.055, 2.4);
7456};
7457
7458function clamp(value) {
7459 return Math.max(0, Math.min(1, value));
7460}
7461
7462function fromXYZ(xyz) {
7463 var rgb = Array(3);
7464 var transform = srgbForwardTransform;
7465 var matrix = srgbForwardMatrix;
7466
7467 // Matrix transform, then gamma adjustment
7468 for (var i = 0; i < 3; ++i) {
7469 rgb[i] = Math.round(clamp(transform(matrix[i][0] * xyz[0] + matrix[i][1] * xyz[1] + matrix[i][2] * xyz[2])) * 255);
7470 }
7471
7472 // Rescale back to [0, 255]
7473 return (rgb[0] << 16) + (rgb[1] << 8) + (rgb[2] << 0);
7474}
7475
7476function toXYZ(rgb) {
7477 var xyz = Array(3);
7478 var transform = srgbReverseTransform;
7479 var matrix = srgbReverseMatrix;
7480
7481 // Rescale from [0, 255] to [0, 1] then adjust sRGB gamma to linear RGB
7482 var r = transform((rgb >> 16 & 0xff) / 255);
7483 var g = transform((rgb >> 8 & 0xff) / 255);
7484 var b = transform((rgb >> 0 & 0xff) / 255);
7485
7486 // Matrix color space transform
7487 for (var i = 0; i < 3; ++i) {
7488 xyz[i] = matrix[i][0] * r + matrix[i][1] * g + matrix[i][2] * b;
7489 }
7490
7491 return xyz;
7492}
7493
7494/***/ }),
7495/* 84 */
7496/***/ (function(module, __webpack_exports__, __webpack_require__) {
7497
7498"use strict";
7499/* harmony export (immutable) */ __webpack_exports__["a"] = fromXYZ;
7500/* harmony export (immutable) */ __webpack_exports__["b"] = toXYZ;
7501var delta = 0.20689655172413793; // 6÷29
7502
7503var cielabForwardTransform = function cielabForwardTransform(t) {
7504 return t > Math.pow(delta, 3) ? Math.cbrt(t) : t / (3 * Math.pow(delta, 2)) + 4 / 29;
7505};
7506
7507var cielabReverseTransform = function cielabReverseTransform(t) {
7508 return t > delta ? Math.pow(t, 3) : 3 * Math.pow(delta, 2) * (t - 4 / 29);
7509};
7510
7511function fromXYZ(xyz) {
7512 var transform = cielabForwardTransform;
7513 var transformedY = transform(xyz[1]);
7514
7515 return [116 * transformedY - 16, 500 * (transform(xyz[0] / 0.95047) - transformedY), 200 * (transformedY - transform(xyz[2] / 1.08883))];
7516}
7517
7518function toXYZ(lab) {
7519 var transform = cielabReverseTransform;
7520 var Ln = (lab[0] + 16) / 116;
7521 return [transform(Ln + lab[1] / 500) * 0.95047, transform(Ln), transform(Ln - lab[2] / 200) * 1.08883];
7522}
7523
7524/***/ }),
7525/* 85 */
7526/***/ (function(module, __webpack_exports__, __webpack_require__) {
7527
7528"use strict";
7529/**
7530 * A modified version of https://gist.github.com/cb109/b074a65f7595cffc21cea59ce8d15f9b
7531 */
7532
7533/**
7534 * A Vue mixin to get the current width/height and the associated breakpoint.
7535 *
7536 * Useful to e.g. adapt the user interface from inside a Vue component
7537 * as opposed to using CSS classes. The breakpoint pixel values and
7538 * range names are taken from Vuetify (https://github.com/vuetifyjs).
7539 *
7540 * Use within a component:
7541 *
7542 * import breakpoint from './breakpoint.js'
7543 *
7544 * export default {
7545 * name: 'my-component',
7546 * mixins: [breakpoint],
7547 * ...
7548 *
7549 * Then inside a template:
7550 *
7551 * <div v-if="$breakpoint.smAndDown">...</div>
7552 */
7553var breakpoint = {
7554 data: function data() {
7555 return {
7556 clientWidth: clientDimensions.getWidth(),
7557 clientHeight: clientDimensions.getHeight()
7558 };
7559 },
7560
7561
7562 computed: {
7563 breakpoint: function breakpoint() {
7564 var xs = this.clientWidth < 600;
7565 var sm = this.clientWidth < 960 && !xs;
7566 var md = this.clientWidth < 1280 - 16 && !(sm || xs);
7567 var lg = this.clientWidth < 1920 - 16 && !(md || sm || xs);
7568 var xl = this.clientWidth >= 1920 - 16 && !(lg || md || sm || xs);
7569
7570 var xsOnly = xs;
7571 var smOnly = sm;
7572 var smAndDown = (xs || sm) && !(md || lg || xl);
7573 var smAndUp = !xs && (sm || md || lg || xl);
7574 var mdOnly = md;
7575 var mdAndDown = (xs || sm || md) && !(lg || xl);
7576 var mdAndUp = !(xs || sm) && (md || lg || xl);
7577 var lgOnly = lg;
7578 var lgAndDown = (xs || sm || md || lg) && !xl;
7579 var lgAndUp = !(xs || sm || md) && (lg || xl);
7580 var xlOnly = xl;
7581
7582 var name = void 0;
7583 switch (true) {
7584 case xs:
7585 name = 'xs';
7586 break;
7587 case sm:
7588 name = 'sm';
7589 break;
7590 case md:
7591 name = 'md';
7592 break;
7593 case lg:
7594 name = 'lg';
7595 break;
7596 default:
7597 name = 'xl';
7598 break;
7599 }
7600
7601 var result = {
7602 // Definite breakpoint.
7603 xs: xs,
7604 sm: sm,
7605 md: md,
7606 lg: lg,
7607 xl: xl,
7608
7609 // Useful e.g. to construct CSS class names dynamically.
7610 name: name,
7611
7612 // Breakpoint ranges.
7613 xsOnly: xsOnly,
7614 smOnly: smOnly,
7615 smAndDown: smAndDown,
7616 smAndUp: smAndUp,
7617 mdOnly: mdOnly,
7618 mdAndDown: mdAndDown,
7619 mdAndUp: mdAndUp,
7620 lgOnly: lgOnly,
7621 lgAndDown: lgAndDown,
7622 lgAndUp: lgAndUp,
7623 xlOnly: xlOnly,
7624
7625 // For custom breakpoint logic.
7626 width: this.clientWidth,
7627 height: this.clientHeight
7628 };
7629
7630 return result;
7631 }
7632 },
7633
7634 watch: {
7635 breakpoint: function breakpoint(val) {
7636 this.$vuetify.breakpoint = val;
7637 }
7638 },
7639
7640 created: function created() {
7641 this.$vuetify.breakpoint = this.breakpoint;
7642 },
7643
7644
7645 methods: {
7646 onResize: function onResize() {
7647 this.clientWidth = clientDimensions.getWidth();
7648 this.clientHeight = clientDimensions.getHeight();
7649 }
7650 }
7651
7652 // Cross-browser support as described in:
7653 // https://stackoverflow.com/questions/1248081
7654};var clientDimensions = {
7655 getWidth: function getWidth() {
7656 if (typeof document === 'undefined') return 0; // SSR
7657 return Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
7658 },
7659 getHeight: function getHeight() {
7660 if (typeof document === 'undefined') return 0; // SSR
7661 return Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
7662 }
7663};
7664
7665/* harmony default export */ __webpack_exports__["a"] = (breakpoint);
7666
7667/***/ }),
7668/* 86 */
7669/***/ (function(module, __webpack_exports__, __webpack_require__) {
7670
7671"use strict";
7672/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VAlert__ = __webpack_require__(87);
7673
7674
7675/* istanbul ignore next */
7676__WEBPACK_IMPORTED_MODULE_0__VAlert__["a" /* default */].install = function install(Vue) {
7677 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VAlert__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VAlert__["a" /* default */]);
7678};
7679
7680/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VAlert__["a" /* default */]);
7681
7682/***/ }),
7683/* 87 */
7684/***/ (function(module, __webpack_exports__, __webpack_require__) {
7685
7686"use strict";
7687/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VIcon__ = __webpack_require__(3);
7688/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_colorable__ = __webpack_require__(0);
7689/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_toggleable__ = __webpack_require__(4);
7690/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_transitionable__ = __webpack_require__(26);
7691__webpack_require__(88);
7692
7693
7694
7695
7696
7697
7698
7699/* harmony default export */ __webpack_exports__["a"] = ({
7700 name: 'v-alert',
7701
7702 components: {
7703 VIcon: __WEBPACK_IMPORTED_MODULE_0__VIcon__["a" /* default */]
7704 },
7705
7706 mixins: [__WEBPACK_IMPORTED_MODULE_1__mixins_colorable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__mixins_toggleable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_3__mixins_transitionable__["a" /* default */]],
7707
7708 props: {
7709 dismissible: Boolean,
7710 icon: String,
7711 outline: Boolean,
7712 type: {
7713 type: String,
7714 validator: function validator(val) {
7715 return ['info', 'error', 'success', 'warning'].includes(val);
7716 }
7717 }
7718 },
7719
7720 data: function data() {
7721 return {
7722 defaultColor: 'error'
7723 };
7724 },
7725
7726 computed: {
7727 classes: function classes() {
7728 var color = this.type && !this.color ? this.type : this.computedColor;
7729 var classes = {
7730 'alert--dismissible': this.dismissible,
7731 'alert--outline': this.outline
7732 };
7733
7734 return this.outline ? this.addTextColorClassChecks(classes, color) : this.addBackgroundColorClassChecks(classes, color);
7735 },
7736 computedIcon: function computedIcon() {
7737 if (this.icon || !this.type) return this.icon;
7738
7739 switch (this.type) {
7740 case 'info':
7741 return 'info';
7742 case 'error':
7743 return 'warning';
7744 case 'success':
7745 return 'check_circle';
7746 case 'warning':
7747 return 'priority_high';
7748 }
7749 }
7750 },
7751
7752 render: function render(h) {
7753 var _this = this;
7754
7755 var children = [h('div', this.$slots.default)];
7756
7757 if (this.computedIcon) {
7758 children.unshift(h('v-icon', {
7759 'class': 'alert__icon'
7760 }, this.computedIcon));
7761 }
7762
7763 if (this.dismissible) {
7764 var close = h('a', {
7765 'class': 'alert__dismissible',
7766 on: { click: function click() {
7767 return _this.$emit('input', false);
7768 } }
7769 }, [h(__WEBPACK_IMPORTED_MODULE_0__VIcon__["a" /* default */], {
7770 props: {
7771 right: true
7772 }
7773 }, 'cancel')]);
7774
7775 children.push(close);
7776 }
7777
7778 var alert = h('div', {
7779 staticClass: 'alert',
7780 'class': this.classes,
7781 directives: [{
7782 name: 'show',
7783 value: this.isActive
7784 }],
7785 on: this.$listeners
7786 }, children);
7787
7788 if (!this.transition) return alert;
7789
7790 return h('transition', {
7791 props: {
7792 name: this.transition,
7793 origin: this.origin,
7794 mode: this.mode
7795 }
7796 }, [alert]);
7797 }
7798});
7799
7800/***/ }),
7801/* 88 */
7802/***/ (function(module, exports) {
7803
7804// removed by extract-text-webpack-plugin
7805
7806/***/ }),
7807/* 89 */
7808/***/ (function(module, __webpack_exports__, __webpack_require__) {
7809
7810"use strict";
7811/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_themeable__ = __webpack_require__(1);
7812/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_colorable__ = __webpack_require__(0);
7813var _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; };
7814
7815__webpack_require__(90);
7816
7817
7818
7819
7820var SIZE_MAP = {
7821 small: '16px',
7822 default: '24px',
7823 medium: '28px',
7824 large: '36px',
7825 xLarge: '40px'
7826};
7827
7828function isFontAwesome5(iconType) {
7829 return ['fas', 'far', 'fal', 'fab'].some(function (val) {
7830 return iconType.includes(val);
7831 });
7832}
7833
7834/* harmony default export */ __webpack_exports__["a"] = ({
7835 name: 'v-icon',
7836
7837 functional: true,
7838
7839 mixins: [__WEBPACK_IMPORTED_MODULE_1__mixins_colorable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_0__mixins_themeable__["a" /* default */]],
7840
7841 props: {
7842 disabled: Boolean,
7843 large: Boolean,
7844 left: Boolean,
7845 medium: Boolean,
7846 right: Boolean,
7847 size: {
7848 type: [Number, String]
7849 },
7850 small: Boolean,
7851 xLarge: Boolean
7852 },
7853
7854 render: function render(h, _ref) {
7855 var props = _ref.props,
7856 data = _ref.data,
7857 _ref$children = _ref.children,
7858 children = _ref$children === undefined ? [] : _ref$children;
7859 var small = props.small,
7860 medium = props.medium,
7861 large = props.large,
7862 xLarge = props.xLarge;
7863
7864 var sizes = { small: small, medium: medium, large: large, xLarge: xLarge };
7865 var explicitSize = Object.keys(sizes).find(function (key) {
7866 return sizes[key] && key;
7867 });
7868 var fontSize = explicitSize && SIZE_MAP[explicitSize] || props.size;
7869
7870 if (fontSize) data.style = _extends({ fontSize: fontSize }, data.style);
7871
7872 var iconName = '';
7873 if (children.length) iconName = children.pop().text;
7874 // Support usage of v-text and v-html
7875 else if (data.domProps) {
7876 iconName = data.domProps.textContent || data.domProps.innerHTML || iconName;
7877
7878 // Remove nodes so it doesn't
7879 // overwrite our changes
7880 delete data.domProps.textContent;
7881 delete data.domProps.innerHTML;
7882 }
7883
7884 var iconType = 'material-icons';
7885 // Material Icon delimiter is _
7886 // https://material.io/icons/
7887 var delimiterIndex = iconName.indexOf('-');
7888 var isCustomIcon = delimiterIndex > -1;
7889
7890 if (isCustomIcon) {
7891 iconType = iconName.slice(0, delimiterIndex);
7892
7893 if (isFontAwesome5(iconType)) iconType = '';
7894 // Assume if not a custom icon
7895 // is Material Icon font
7896 } else children.push(iconName);
7897
7898 data.attrs = data.attrs || {};
7899 if (!('aria-hidden' in data.attrs)) {
7900 data.attrs['aria-hidden'] = true;
7901 }
7902
7903 var classes = Object.assign({
7904 'icon--disabled': props.disabled,
7905 'icon--left': props.left,
7906 'icon--right': props.right,
7907 'theme--dark': props.dark,
7908 'theme--light': props.light
7909 }, props.color ? __WEBPACK_IMPORTED_MODULE_1__mixins_colorable__["a" /* default */].methods.addTextColorClassChecks.call(props, {}, props.color) : {});
7910
7911 // Order classes
7912 // * Component class
7913 // * Vuetify classes
7914 // * Icon Classes
7915 data.staticClass = ['icon', data.staticClass, Object.keys(classes).filter(function (k) {
7916 return classes[k];
7917 }).join(' '), iconType, isCustomIcon ? iconName : null].reduce(function (prev, curr) {
7918 return curr ? prev + ' ' + curr : prev;
7919 }).trim();
7920
7921 return h('i', data, children);
7922 }
7923});
7924
7925/***/ }),
7926/* 90 */
7927/***/ (function(module, exports) {
7928
7929// removed by extract-text-webpack-plugin
7930
7931/***/ }),
7932/* 91 */
7933/***/ (function(module, __webpack_exports__, __webpack_require__) {
7934
7935"use strict";
7936/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_colorable__ = __webpack_require__(0);
7937__webpack_require__(92);
7938
7939// Mixins
7940
7941
7942/* harmony default export */ __webpack_exports__["a"] = ({
7943 name: 'v-avatar',
7944
7945 functional: true,
7946
7947 mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_colorable__["a" /* default */]],
7948
7949 props: {
7950 size: {
7951 type: [Number, String],
7952 default: 48
7953 },
7954 tile: Boolean
7955 },
7956
7957 render: function render(h, _ref) {
7958 var data = _ref.data,
7959 props = _ref.props,
7960 children = _ref.children;
7961
7962 data.staticClass = ('avatar ' + (data.staticClass || '')).trim();
7963 data.style = data.style || {};
7964
7965 if (props.tile) data.staticClass += ' avatar--tile';
7966
7967 var size = parseInt(props.size) + 'px';
7968 data.style.height = size;
7969 data.style.width = size;
7970 data.class = [data.class, __WEBPACK_IMPORTED_MODULE_0__mixins_colorable__["a" /* default */].methods.addBackgroundColorClassChecks.call(props, {}, props.color)];
7971
7972 return h('div', data, children);
7973 }
7974});
7975
7976/***/ }),
7977/* 92 */
7978/***/ (function(module, exports) {
7979
7980// removed by extract-text-webpack-plugin
7981
7982/***/ }),
7983/* 93 */
7984/***/ (function(module, __webpack_exports__, __webpack_require__) {
7985
7986"use strict";
7987/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VBadge__ = __webpack_require__(94);
7988
7989
7990/* istanbul ignore next */
7991__WEBPACK_IMPORTED_MODULE_0__VBadge__["a" /* default */].install = function install(Vue) {
7992 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VBadge__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VBadge__["a" /* default */]);
7993};
7994
7995/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VBadge__["a" /* default */]);
7996
7997/***/ }),
7998/* 94 */
7999/***/ (function(module, __webpack_exports__, __webpack_require__) {
8000
8001"use strict";
8002/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_colorable__ = __webpack_require__(0);
8003/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_toggleable__ = __webpack_require__(4);
8004/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_positionable__ = __webpack_require__(12);
8005/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_transitionable__ = __webpack_require__(26);
8006__webpack_require__(95);
8007
8008// Mixins
8009
8010
8011
8012
8013
8014/* harmony default export */ __webpack_exports__["a"] = ({
8015 name: 'v-badge',
8016
8017 mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_colorable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_1__mixins_toggleable__["a" /* default */], Object(__WEBPACK_IMPORTED_MODULE_2__mixins_positionable__["b" /* factory */])(['left', 'bottom']), __WEBPACK_IMPORTED_MODULE_3__mixins_transitionable__["a" /* default */]],
8018
8019 props: {
8020 color: {
8021 type: String,
8022 default: 'primary'
8023 },
8024 overlap: Boolean,
8025 transition: {
8026 type: String,
8027 default: 'fab-transition'
8028 },
8029 value: {
8030 default: true
8031 }
8032 },
8033
8034 computed: {
8035 classes: function classes() {
8036 return {
8037 'badge--bottom': this.bottom,
8038 'badge--left': this.left,
8039 'badge--overlap': this.overlap
8040 };
8041 }
8042 },
8043
8044 render: function render(h) {
8045 var badge = this.$slots.badge ? [h('span', {
8046 staticClass: 'badge__badge',
8047 'class': this.addBackgroundColorClassChecks(),
8048 attrs: this.attrs,
8049 directives: [{
8050 name: 'show',
8051 value: this.isActive
8052 }]
8053 }, this.$slots.badge)] : null;
8054
8055 return h('span', {
8056 staticClass: 'badge',
8057 'class': this.classes
8058 }, [this.$slots.default, h('transition', {
8059 props: {
8060 name: this.transition,
8061 origin: this.origin,
8062 mode: this.mode
8063 }
8064 }, badge)]);
8065 }
8066});
8067
8068/***/ }),
8069/* 95 */
8070/***/ (function(module, exports) {
8071
8072// removed by extract-text-webpack-plugin
8073
8074/***/ }),
8075/* 96 */
8076/***/ (function(module, __webpack_exports__, __webpack_require__) {
8077
8078"use strict";
8079/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VBottomNav__ = __webpack_require__(97);
8080
8081
8082/* istanbul ignore next */
8083__WEBPACK_IMPORTED_MODULE_0__VBottomNav__["a" /* default */].install = function install(Vue) {
8084 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VBottomNav__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VBottomNav__["a" /* default */]);
8085};
8086
8087/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VBottomNav__["a" /* default */]);
8088
8089/***/ }),
8090/* 97 */
8091/***/ (function(module, __webpack_exports__, __webpack_require__) {
8092
8093"use strict";
8094/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_applicationable__ = __webpack_require__(15);
8095/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_button_group__ = __webpack_require__(33);
8096/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_colorable__ = __webpack_require__(0);
8097// Styles
8098__webpack_require__(98);
8099
8100// Mixins
8101
8102
8103
8104
8105/* harmony default export */ __webpack_exports__["a"] = ({
8106 name: 'v-bottom-nav',
8107
8108 mixins: [Object(__WEBPACK_IMPORTED_MODULE_0__mixins_applicationable__["a" /* default */])('bottom', ['height', 'value']), __WEBPACK_IMPORTED_MODULE_1__mixins_button_group__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__mixins_colorable__["a" /* default */]],
8109
8110 props: {
8111 active: [Number, String],
8112 height: {
8113 default: 56,
8114 type: [Number, String],
8115 validator: function validator(v) {
8116 return !isNaN(parseInt(v));
8117 }
8118 },
8119 shift: Boolean,
8120 value: { required: false }
8121 },
8122
8123 watch: {
8124 active: function active() {
8125 this.update();
8126 }
8127 },
8128
8129 computed: {
8130 classes: function classes() {
8131 return {
8132 'bottom-nav--absolute': this.absolute,
8133 'bottom-nav--fixed': !this.absolute && (this.app || this.fixed),
8134 'bottom-nav--shift': this.shift,
8135 'bottom-nav--active': this.value
8136 };
8137 },
8138 computedHeight: function computedHeight() {
8139 return parseInt(this.height);
8140 }
8141 },
8142
8143 methods: {
8144 isSelected: function isSelected(i) {
8145 var item = this.getValue(i);
8146 return this.active === item;
8147 },
8148
8149 /**
8150 * Update the application layout
8151 *
8152 * @return {number}
8153 */
8154 updateApplication: function updateApplication() {
8155 return !this.value ? 0 : this.computedHeight;
8156 },
8157 updateValue: function updateValue(i) {
8158 var item = this.getValue(i);
8159
8160 this.$emit('update:active', item);
8161 }
8162 },
8163
8164 render: function render(h) {
8165 return h('div', {
8166 staticClass: 'bottom-nav',
8167 class: this.addBackgroundColorClassChecks(this.classes),
8168 style: {
8169 height: parseInt(this.computedHeight) + 'px'
8170 },
8171 ref: 'content'
8172 }, this.$slots.default);
8173 }
8174});
8175
8176/***/ }),
8177/* 98 */
8178/***/ (function(module, exports) {
8179
8180// removed by extract-text-webpack-plugin
8181
8182/***/ }),
8183/* 99 */
8184/***/ (function(module, __webpack_exports__, __webpack_require__) {
8185
8186"use strict";
8187/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VBottomSheet__ = __webpack_require__(100);
8188
8189
8190/* istanbul ignore next */
8191__WEBPACK_IMPORTED_MODULE_0__VBottomSheet__["a" /* default */].install = function install(Vue) {
8192 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VBottomSheet__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VBottomSheet__["a" /* default */]);
8193};
8194
8195/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VBottomSheet__["a" /* default */]);
8196
8197/***/ }),
8198/* 100 */
8199/***/ (function(module, __webpack_exports__, __webpack_require__) {
8200
8201"use strict";
8202/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VDialog_VDialog__ = __webpack_require__(34);
8203var _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; };
8204
8205__webpack_require__(101);
8206
8207
8208
8209/* harmony default export */ __webpack_exports__["a"] = ({
8210 name: 'v-bottom-sheet',
8211
8212 props: {
8213 disabled: Boolean,
8214 fullWidth: Boolean,
8215 inset: Boolean,
8216 lazy: Boolean,
8217 maxWidth: {
8218 type: [String, Number],
8219 default: 'auto'
8220 },
8221 persistent: Boolean,
8222 value: null
8223 },
8224
8225 render: function render(h) {
8226 var activator = h('template', {
8227 slot: 'activator'
8228 }, this.$slots.activator);
8229
8230 var contentClass = ['bottom-sheet', this.inset ? 'bottom-sheet--inset' : ''].join(' ');
8231
8232 return h(__WEBPACK_IMPORTED_MODULE_0__VDialog_VDialog__["a" /* default */], {
8233 attrs: _extends({}, this.$props),
8234 on: _extends({}, this.$listeners),
8235 props: {
8236 contentClass: contentClass,
8237 transition: 'bottom-sheet-transition',
8238 value: this.value
8239 }
8240 }, [activator, this.$slots.default]);
8241 }
8242});
8243
8244/***/ }),
8245/* 101 */
8246/***/ (function(module, exports) {
8247
8248// removed by extract-text-webpack-plugin
8249
8250/***/ }),
8251/* 102 */
8252/***/ (function(module, exports) {
8253
8254// removed by extract-text-webpack-plugin
8255
8256/***/ }),
8257/* 103 */
8258/***/ (function(module, exports) {
8259
8260// removed by extract-text-webpack-plugin
8261
8262/***/ }),
8263/* 104 */
8264/***/ (function(module, __webpack_exports__, __webpack_require__) {
8265
8266"use strict";
8267/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VBreadcrumbs__ = __webpack_require__(105);
8268/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__VBreadcrumbsItem__ = __webpack_require__(107);
8269/* unused harmony reexport VBreadcrumbs */
8270/* unused harmony reexport VBreadcrumbsItem */
8271
8272
8273
8274
8275
8276/* istanbul ignore next */
8277__WEBPACK_IMPORTED_MODULE_0__VBreadcrumbs__["a" /* default */].install = function install(Vue) {
8278 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VBreadcrumbs__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VBreadcrumbs__["a" /* default */]);
8279 Vue.component(__WEBPACK_IMPORTED_MODULE_1__VBreadcrumbsItem__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_1__VBreadcrumbsItem__["a" /* default */]);
8280};
8281
8282/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VBreadcrumbs__["a" /* default */]);
8283
8284/***/ }),
8285/* 105 */
8286/***/ (function(module, __webpack_exports__, __webpack_require__) {
8287
8288"use strict";
8289__webpack_require__(106);
8290
8291/* harmony default export */ __webpack_exports__["a"] = ({
8292 name: 'v-breadcrumbs',
8293
8294 props: {
8295 divider: {
8296 type: String,
8297 default: '/'
8298 },
8299 large: Boolean,
8300 justifyCenter: Boolean,
8301 justifyEnd: Boolean
8302 },
8303
8304 computed: {
8305 classes: function classes() {
8306 return {
8307 'breadcrumbs--large': this.large
8308 };
8309 },
8310 computedDivider: function computedDivider() {
8311 return this.$slots.divider ? this.$slots.divider : this.divider;
8312 },
8313 styles: function styles() {
8314 var justify = this.justifyCenter ? 'center' : this.justifyEnd ? 'flex-end' : 'flex-start';
8315
8316 return {
8317 'justify-content': justify
8318 };
8319 }
8320 },
8321
8322 methods: {
8323 /**
8324 * Add dividers between
8325 * v-breadcrumbs-item
8326 *
8327 * @return {array}
8328 */
8329 genChildren: function genChildren() {
8330 if (!this.$slots.default) return null;
8331
8332 var children = [];
8333 var dividerData = { staticClass: 'breadcrumbs__divider' };
8334 var length = this.$slots.default.length;
8335
8336 for (var i = 0; i < length; i++) {
8337 var elm = this.$slots.default[i];
8338 children.push(elm);
8339
8340 if (!elm.componentOptions || elm.componentOptions.tag !== 'v-breadcrumbs-item' || i === length - 1) continue;
8341
8342 children.push(this.$createElement('li', dividerData, this.computedDivider));
8343 }
8344
8345 return children;
8346 }
8347 },
8348
8349 render: function render(h) {
8350 return h('ul', {
8351 staticClass: 'breadcrumbs',
8352 'class': this.classes,
8353 style: this.styles
8354 }, this.genChildren());
8355 }
8356});
8357
8358/***/ }),
8359/* 106 */
8360/***/ (function(module, exports) {
8361
8362// removed by extract-text-webpack-plugin
8363
8364/***/ }),
8365/* 107 */
8366/***/ (function(module, __webpack_exports__, __webpack_require__) {
8367
8368"use strict";
8369/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_routable__ = __webpack_require__(13);
8370function _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; }
8371
8372
8373
8374/* harmony default export */ __webpack_exports__["a"] = ({
8375 name: 'v-breadcrumbs-item',
8376
8377 mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_routable__["a" /* default */]],
8378
8379 props: {
8380 // In a breadcrumb, the currently
8381 // active item should be dimmed
8382 activeClass: {
8383 type: String,
8384 default: 'breadcrumbs__item--disabled'
8385 }
8386 },
8387
8388 computed: {
8389 classes: function classes() {
8390 return _defineProperty({
8391 'breadcrumbs__item': true
8392 }, this.activeClass, this.disabled);
8393 }
8394 },
8395
8396 render: function render(h) {
8397 var _generateRouteLink = this.generateRouteLink(),
8398 tag = _generateRouteLink.tag,
8399 data = _generateRouteLink.data;
8400
8401 return h('li', [h(tag, data, this.$slots.default)]);
8402 }
8403});
8404
8405/***/ }),
8406/* 108 */
8407/***/ (function(module, __webpack_exports__, __webpack_require__) {
8408
8409"use strict";
8410/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_colorable__ = __webpack_require__(0);
8411/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_positionable__ = __webpack_require__(12);
8412/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_routable__ = __webpack_require__(13);
8413/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_themeable__ = __webpack_require__(1);
8414/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__mixins_toggleable__ = __webpack_require__(4);
8415/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__mixins_registrable__ = __webpack_require__(5);
8416var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
8417
8418var _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; };
8419
8420__webpack_require__(109);
8421
8422
8423
8424
8425
8426
8427
8428
8429/* harmony default export */ __webpack_exports__["a"] = ({
8430 name: 'v-btn',
8431
8432 mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_colorable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__mixins_routable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_1__mixins_positionable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_3__mixins_themeable__["a" /* default */], Object(__WEBPACK_IMPORTED_MODULE_4__mixins_toggleable__["b" /* factory */])('inputValue'), Object(__WEBPACK_IMPORTED_MODULE_5__mixins_registrable__["a" /* inject */])('buttonGroup')],
8433
8434 props: {
8435 activeClass: {
8436 type: String,
8437 default: 'btn--active'
8438 },
8439 block: Boolean,
8440 depressed: Boolean,
8441 fab: Boolean,
8442 flat: Boolean,
8443 icon: Boolean,
8444 large: Boolean,
8445 loading: Boolean,
8446 outline: Boolean,
8447 ripple: {
8448 type: [Boolean, Object],
8449 default: true
8450 },
8451 round: Boolean,
8452 small: Boolean,
8453 tag: {
8454 type: String,
8455 default: 'button'
8456 },
8457 type: {
8458 type: String,
8459 default: 'button'
8460 },
8461 value: null
8462 },
8463
8464 computed: {
8465 classes: function classes() {
8466 var classes = _extends({
8467 'btn': true,
8468 'btn--active': this.isActive,
8469 'btn--absolute': this.absolute,
8470 'btn--block': this.block,
8471 'btn--bottom': this.bottom,
8472 'btn--disabled': this.disabled,
8473 'btn--flat': this.flat,
8474 'btn--floating': this.fab,
8475 'btn--fixed': this.fixed,
8476 'btn--hover': this.hover,
8477 'btn--icon': this.icon,
8478 'btn--large': this.large,
8479 'btn--left': this.left,
8480 'btn--loader': this.loading,
8481 'btn--outline': this.outline,
8482 'btn--depressed': this.depressed && !this.flat || this.outline,
8483 'btn--right': this.right,
8484 'btn--round': this.round,
8485 'btn--router': this.to,
8486 'btn--small': this.small,
8487 'btn--top': this.top
8488 }, this.themeClasses);
8489
8490 return !this.outline && !this.flat ? this.addBackgroundColorClassChecks(classes) : this.addTextColorClassChecks(classes);
8491 }
8492 },
8493
8494 methods: {
8495 // Prevent focus to match md spec
8496 click: function click(e) {
8497 !this.fab && e.detail && this.$el.blur();
8498
8499 this.$emit('click', e);
8500 },
8501 genContent: function genContent() {
8502 return this.$createElement('div', { 'class': 'btn__content' }, [this.$slots.default]);
8503 },
8504 genLoader: function genLoader() {
8505 var children = [];
8506
8507 if (!this.$slots.loader) {
8508 children.push(this.$createElement('v-progress-circular', {
8509 props: {
8510 indeterminate: true,
8511 size: 26
8512 }
8513 }));
8514 } else {
8515 children.push(this.$slots.loader);
8516 }
8517
8518 return this.$createElement('span', { 'class': 'btn__loading' }, children);
8519 }
8520 },
8521
8522 mounted: function mounted() {
8523 if (this.buttonGroup) {
8524 this.buttonGroup.register(this);
8525 }
8526 },
8527 beforeDestroy: function beforeDestroy() {
8528 if (this.buttonGroup) {
8529 this.buttonGroup.unregister(this);
8530 }
8531 },
8532 render: function render(h) {
8533 var _generateRouteLink = this.generateRouteLink(),
8534 tag = _generateRouteLink.tag,
8535 data = _generateRouteLink.data;
8536
8537 var children = [this.genContent()];
8538
8539 tag === 'button' && (data.attrs.type = this.type);
8540 this.loading && children.push(this.genLoader());
8541
8542 data.attrs.value = ['string', 'number'].includes(_typeof(this.value)) ? this.value : JSON.stringify(this.value);
8543
8544 return h(tag, data, children);
8545 }
8546});
8547
8548/***/ }),
8549/* 109 */
8550/***/ (function(module, exports) {
8551
8552// removed by extract-text-webpack-plugin
8553
8554/***/ }),
8555/* 110 */
8556/***/ (function(module, __webpack_exports__, __webpack_require__) {
8557
8558"use strict";
8559/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VBtnToggle__ = __webpack_require__(111);
8560
8561
8562/* istanbul ignore next */
8563__WEBPACK_IMPORTED_MODULE_0__VBtnToggle__["a" /* default */].install = function install(Vue) {
8564 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VBtnToggle__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VBtnToggle__["a" /* default */]);
8565};
8566
8567/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VBtnToggle__["a" /* default */]);
8568
8569/***/ }),
8570/* 111 */
8571/***/ (function(module, __webpack_exports__, __webpack_require__) {
8572
8573"use strict";
8574/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_button_group__ = __webpack_require__(33);
8575/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_themeable__ = __webpack_require__(1);
8576__webpack_require__(112);
8577
8578
8579
8580
8581/* harmony default export */ __webpack_exports__["a"] = ({
8582 name: 'v-btn-toggle',
8583
8584 model: {
8585 prop: 'inputValue',
8586 event: 'change'
8587 },
8588
8589 mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_button_group__["a" /* default */], __WEBPACK_IMPORTED_MODULE_1__mixins_themeable__["a" /* default */]],
8590
8591 props: {
8592 inputValue: {
8593 required: false
8594 },
8595 mandatory: Boolean,
8596 multiple: Boolean
8597 },
8598
8599 computed: {
8600 classes: function classes() {
8601 return {
8602 'btn-toggle': true,
8603 'btn-toggle--selected': this.hasValue,
8604 'theme--light': this.light,
8605 'theme--dark': this.dark
8606 };
8607 },
8608 hasValue: function hasValue() {
8609 return this.multiple && this.inputValue.length || !this.multiple && this.inputValue !== null && typeof this.inputValue !== 'undefined';
8610 }
8611 },
8612
8613 watch: {
8614 inputValue: {
8615 handler: function handler() {
8616 this.update();
8617 },
8618
8619 deep: true
8620 }
8621 },
8622
8623 methods: {
8624 isSelected: function isSelected(i) {
8625 var item = this.getValue(i);
8626 if (!this.multiple) {
8627 return this.inputValue === item;
8628 }
8629
8630 return this.inputValue.includes(item);
8631 },
8632 updateValue: function updateValue(i) {
8633 var item = this.getValue(i);
8634 if (!this.multiple) {
8635 if (this.mandatory && this.inputValue === item) return;
8636 return this.$emit('change', this.inputValue === item ? null : item);
8637 }
8638
8639 var items = this.inputValue.slice();
8640
8641 var index = items.indexOf(item);
8642 if (index > -1) {
8643 if (this.mandatory && items.length === 1) return;
8644 items.length >= 1 && items.splice(index, 1);
8645 } else {
8646 items.push(item);
8647 }
8648
8649 this.$emit('change', items);
8650 }
8651 },
8652
8653 render: function render(h) {
8654 return h('div', { class: this.classes }, this.$slots.default);
8655 }
8656});
8657
8658/***/ }),
8659/* 112 */
8660/***/ (function(module, exports) {
8661
8662// removed by extract-text-webpack-plugin
8663
8664/***/ }),
8665/* 113 */
8666/***/ (function(module, __webpack_exports__, __webpack_require__) {
8667
8668"use strict";
8669/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_colorable__ = __webpack_require__(0);
8670/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_routable__ = __webpack_require__(13);
8671/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_themeable__ = __webpack_require__(1);
8672__webpack_require__(114);
8673
8674
8675
8676
8677
8678/* harmony default export */ __webpack_exports__["a"] = ({
8679 name: 'v-card',
8680
8681 mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_colorable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_1__mixins_routable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__mixins_themeable__["a" /* default */]],
8682
8683 props: {
8684 flat: Boolean,
8685 height: {
8686 type: String,
8687 default: 'auto'
8688 },
8689 hover: Boolean,
8690 img: String,
8691 raised: Boolean,
8692 tag: {
8693 type: String,
8694 default: 'div'
8695 },
8696 tile: Boolean,
8697 width: [String, Number]
8698 },
8699
8700 computed: {
8701 classes: function classes() {
8702 return this.addBackgroundColorClassChecks({
8703 'card': true,
8704 'card--flat': this.flat,
8705 'card--horizontal': this.horizontal,
8706 'card--hover': this.hover,
8707 'card--raised': this.raised,
8708 'card--tile': this.tile,
8709 'theme--light': this.light,
8710 'theme--dark': this.dark
8711 });
8712 },
8713 styles: function styles() {
8714 var style = {
8715 height: isNaN(this.height) ? this.height : this.height + 'px'
8716 };
8717
8718 if (this.img) {
8719 style.background = 'url("' + this.img + '") center center / cover no-repeat';
8720 }
8721
8722 if (this.width) {
8723 style.width = isNaN(this.width) ? this.width : this.width + 'px';
8724 }
8725
8726 return style;
8727 }
8728 },
8729
8730 render: function render(h) {
8731 var _generateRouteLink = this.generateRouteLink(),
8732 tag = _generateRouteLink.tag,
8733 data = _generateRouteLink.data;
8734
8735 data.style = this.styles;
8736
8737 return h(tag, data, this.$slots.default);
8738 }
8739});
8740
8741/***/ }),
8742/* 114 */
8743/***/ (function(module, exports) {
8744
8745// removed by extract-text-webpack-plugin
8746
8747/***/ }),
8748/* 115 */
8749/***/ (function(module, __webpack_exports__, __webpack_require__) {
8750
8751"use strict";
8752/* harmony default export */ __webpack_exports__["a"] = ({
8753 name: 'v-card-media',
8754
8755 props: {
8756 contain: Boolean,
8757 height: {
8758 type: [Number, String],
8759 default: 'auto'
8760 },
8761 src: {
8762 type: String
8763 }
8764 },
8765
8766 render: function render(h) {
8767 var data = {
8768 'class': 'card__media',
8769 style: {
8770 height: !isNaN(this.height) ? this.height + 'px' : this.height
8771 },
8772 on: this.$listeners
8773 };
8774
8775 var children = [];
8776
8777 if (this.src) {
8778 children.push(h('div', {
8779 'class': 'card__media__background',
8780 style: {
8781 background: 'url(' + this.src + ') center center / ' + (this.contain ? 'contain' : 'cover') + ' no-repeat'
8782 }
8783 }));
8784 }
8785
8786 children.push(h('div', {
8787 'class': 'card__media__content'
8788 }, this.$slots.default));
8789
8790 return h('div', data, children);
8791 }
8792});
8793
8794/***/ }),
8795/* 116 */
8796/***/ (function(module, __webpack_exports__, __webpack_require__) {
8797
8798"use strict";
8799/* harmony default export */ __webpack_exports__["a"] = ({
8800 name: 'v-card-title',
8801
8802 functional: true,
8803
8804 props: {
8805 primaryTitle: Boolean
8806 },
8807
8808 render: function render(h, _ref) {
8809 var data = _ref.data,
8810 props = _ref.props,
8811 children = _ref.children;
8812
8813 data.staticClass = ('card__title ' + (data.staticClass || '')).trim();
8814
8815 if (props.primaryTitle) data.staticClass += ' card__title--primary';
8816
8817 return h('div', data, children);
8818 }
8819});
8820
8821/***/ }),
8822/* 117 */
8823/***/ (function(module, __webpack_exports__, __webpack_require__) {
8824
8825"use strict";
8826/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VCarousel__ = __webpack_require__(118);
8827/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__VCarouselItem__ = __webpack_require__(120);
8828/* unused harmony reexport VCarousel */
8829/* unused harmony reexport VCarouselItem */
8830
8831
8832
8833
8834
8835/* istanbul ignore next */
8836__WEBPACK_IMPORTED_MODULE_0__VCarousel__["a" /* default */].install = function install(Vue) {
8837 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VCarousel__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VCarousel__["a" /* default */]);
8838 Vue.component(__WEBPACK_IMPORTED_MODULE_1__VCarouselItem__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_1__VCarouselItem__["a" /* default */]);
8839};
8840
8841/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VCarousel__["a" /* default */]);
8842
8843/***/ }),
8844/* 118 */
8845/***/ (function(module, __webpack_exports__, __webpack_require__) {
8846
8847"use strict";
8848/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VBtn__ = __webpack_require__(10);
8849/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__VIcon__ = __webpack_require__(3);
8850/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_bootable__ = __webpack_require__(16);
8851/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_themeable__ = __webpack_require__(1);
8852/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__mixins_registrable__ = __webpack_require__(5);
8853/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__directives_touch__ = __webpack_require__(9);
8854__webpack_require__(119);
8855
8856
8857
8858
8859
8860
8861
8862
8863
8864
8865/* harmony default export */ __webpack_exports__["a"] = ({
8866 name: 'v-carousel',
8867
8868 mixins: [__WEBPACK_IMPORTED_MODULE_2__mixins_bootable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_3__mixins_themeable__["a" /* default */], Object(__WEBPACK_IMPORTED_MODULE_4__mixins_registrable__["b" /* provide */])('carousel')],
8869
8870 directives: { Touch: __WEBPACK_IMPORTED_MODULE_5__directives_touch__["a" /* default */] },
8871
8872 data: function data() {
8873 return {
8874 inputValue: null,
8875 items: [],
8876 slideTimeout: null,
8877 reverse: false
8878 };
8879 },
8880
8881
8882 props: {
8883 cycle: {
8884 type: Boolean,
8885 default: true
8886 },
8887 delimiterIcon: {
8888 type: String,
8889 default: 'fiber_manual_record'
8890 },
8891 hideControls: Boolean,
8892 hideDelimiters: Boolean,
8893 interval: {
8894 type: [Number, String],
8895 default: 6000,
8896 validator: function validator(value) {
8897 return value > 0;
8898 }
8899 },
8900 prependIcon: {
8901 type: [Boolean, String],
8902 default: 'chevron_left'
8903 },
8904 appendIcon: {
8905 type: [Boolean, String],
8906 default: 'chevron_right'
8907 },
8908 value: Number
8909 },
8910
8911 watch: {
8912 items: function items() {
8913 if (this.inputValue >= this.items.length) {
8914 this.inputValue = this.items.length - 1;
8915 }
8916 },
8917 inputValue: function inputValue() {
8918 // Evaluates items when inputValue changes to
8919 // account for dynamic changing of children
8920
8921 var uid = (this.items[this.inputValue] || {}).uid;
8922 for (var index = this.items.length; --index >= 0;) {
8923 this.items[index].open(uid, this.reverse);
8924 }
8925
8926 this.$emit('input', this.inputValue);
8927 this.restartTimeout();
8928 },
8929 value: function value(val) {
8930 this.inputValue = val;
8931 },
8932 interval: function interval() {
8933 this.restartTimeout();
8934 },
8935 cycle: function cycle(val) {
8936 if (val) {
8937 this.restartTimeout();
8938 } else {
8939 clearTimeout(this.slideTimeout);
8940 this.slideTimeout = null;
8941 }
8942 }
8943 },
8944
8945 mounted: function mounted() {
8946 this.init();
8947 },
8948
8949
8950 methods: {
8951 genDelimiters: function genDelimiters() {
8952 return this.$createElement('div', {
8953 staticClass: 'carousel__controls'
8954 }, this.genItems());
8955 },
8956 genIcon: function genIcon(direction, icon, fn) {
8957 if (!icon) return null;
8958
8959 return this.$createElement('div', {
8960 staticClass: 'carousel__' + direction
8961 }, [this.$createElement(__WEBPACK_IMPORTED_MODULE_0__VBtn__["a" /* default */], {
8962 props: {
8963 icon: true,
8964 dark: this.dark || !this.light,
8965 light: this.light
8966 },
8967 on: { click: fn }
8968 }, [this.$createElement(__WEBPACK_IMPORTED_MODULE_1__VIcon__["a" /* default */], {
8969 props: { 'size': '46px' }
8970 }, icon)])]);
8971 },
8972 genItems: function genItems() {
8973 var _this = this;
8974
8975 return this.items.map(function (item, index) {
8976 return _this.$createElement(__WEBPACK_IMPORTED_MODULE_0__VBtn__["a" /* default */], {
8977 class: {
8978 'carousel__controls__item': true,
8979 'carousel__controls__item--active': index === _this.inputValue
8980 },
8981 props: {
8982 icon: true,
8983 small: true,
8984 dark: _this.dark || !_this.light,
8985 light: _this.light
8986 },
8987 key: index,
8988 on: { click: _this.select.bind(_this, index) }
8989 }, [_this.$createElement(__WEBPACK_IMPORTED_MODULE_1__VIcon__["a" /* default */], {
8990 props: { size: '18px' }
8991 }, _this.delimiterIcon)]);
8992 });
8993 },
8994 restartTimeout: function restartTimeout() {
8995 this.slideTimeout && clearTimeout(this.slideTimeout);
8996 this.slideTimeout = null;
8997
8998 var raf = requestAnimationFrame || setTimeout;
8999 raf(this.startTimeout);
9000 },
9001 init: function init() {
9002 this.inputValue = this.value || 0;
9003 },
9004 next: function next() {
9005 this.reverse = false;
9006 this.inputValue = (this.inputValue + 1) % this.items.length;
9007 },
9008 prev: function prev() {
9009 this.reverse = true;
9010 this.inputValue = (this.inputValue + this.items.length - 1) % this.items.length;
9011 },
9012 select: function select(index) {
9013 this.reverse = index < this.inputValue;
9014 this.inputValue = index;
9015 },
9016 startTimeout: function startTimeout() {
9017 var _this2 = this;
9018
9019 if (!this.cycle) return;
9020
9021 this.slideTimeout = setTimeout(function () {
9022 return _this2.next();
9023 }, this.interval > 0 ? this.interval : 6000);
9024 },
9025 register: function register(uid, open) {
9026 this.items.push({ uid: uid, open: open });
9027 },
9028 unregister: function unregister(uid) {
9029 this.items = this.items.filter(function (i) {
9030 return i.uid !== uid;
9031 });
9032 }
9033 },
9034
9035 render: function render(h) {
9036 return h('div', {
9037 staticClass: 'carousel',
9038 directives: [{
9039 name: 'touch',
9040 value: {
9041 left: this.next,
9042 right: this.prev
9043 }
9044 }]
9045 }, [this.hideControls ? null : this.genIcon('left', this.prependIcon, this.prev), this.hideControls ? null : this.genIcon('right', this.appendIcon, this.next), this.hideDelimiters ? null : this.genDelimiters(), this.$slots.default]);
9046 }
9047});
9048
9049/***/ }),
9050/* 119 */
9051/***/ (function(module, exports) {
9052
9053// removed by extract-text-webpack-plugin
9054
9055/***/ }),
9056/* 120 */
9057/***/ (function(module, __webpack_exports__, __webpack_require__) {
9058
9059"use strict";
9060/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VJumbotron__ = __webpack_require__(37);
9061/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_registrable__ = __webpack_require__(5);
9062var _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; };
9063
9064// Components
9065
9066
9067// Mixins
9068
9069
9070/* harmony default export */ __webpack_exports__["a"] = ({
9071 name: 'v-carousel-item',
9072
9073 mixins: [Object(__WEBPACK_IMPORTED_MODULE_1__mixins_registrable__["a" /* inject */])('carousel', 'v-carousel-item', 'v-carousel')],
9074
9075 inheritAttrs: false,
9076
9077 data: function data() {
9078 return {
9079 active: false,
9080 reverse: false
9081 };
9082 },
9083
9084
9085 props: {
9086 transition: {
9087 type: String,
9088 default: 'tab-transition'
9089 },
9090 reverseTransition: {
9091 type: String,
9092 default: 'tab-reverse-transition'
9093 }
9094 },
9095
9096 computed: {
9097 computedTransition: function computedTransition() {
9098 return this.reverse ? this.reverseTransition : this.transition;
9099 }
9100 },
9101
9102 methods: {
9103 open: function open(id, reverse) {
9104 this.active = this._uid === id;
9105 this.reverse = reverse;
9106 }
9107 },
9108
9109 mounted: function mounted() {
9110 this.carousel.register(this._uid, this.open);
9111 },
9112 beforeDestroy: function beforeDestroy() {
9113 this.carousel.unregister(this._uid, this.open);
9114 },
9115 render: function render(h) {
9116 var item = h(__WEBPACK_IMPORTED_MODULE_0__VJumbotron__["a" /* default */], {
9117 props: _extends({}, this.$attrs, {
9118 height: '100%'
9119 }),
9120 on: this.$listeners,
9121 directives: [{
9122 name: 'show',
9123 value: this.active
9124 }]
9125 }, this.$slots.default);
9126
9127 return h('transition', { props: { name: this.computedTransition } }, [item]);
9128 }
9129});
9130
9131/***/ }),
9132/* 121 */
9133/***/ (function(module, __webpack_exports__, __webpack_require__) {
9134
9135"use strict";
9136/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_colorable__ = __webpack_require__(0);
9137/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_routable__ = __webpack_require__(13);
9138/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_themeable__ = __webpack_require__(1);
9139__webpack_require__(122);
9140
9141// Mixins
9142
9143
9144
9145
9146/* harmony default export */ __webpack_exports__["a"] = ({
9147 name: 'v-jumbotron',
9148
9149 mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_colorable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_1__mixins_routable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__mixins_themeable__["a" /* default */]],
9150
9151 props: {
9152 gradient: String,
9153 height: {
9154 type: [Number, String],
9155 default: '400px'
9156 },
9157 src: String,
9158 tag: {
9159 type: String,
9160 default: 'div'
9161 }
9162 },
9163
9164 computed: {
9165 backgroundStyles: function backgroundStyles() {
9166 var styles = {};
9167
9168 if (this.gradient) {
9169 styles.background = 'linear-gradient(' + this.gradient + ')';
9170 }
9171
9172 return styles;
9173 },
9174 classes: function classes() {
9175 return {
9176 'theme--dark': this.dark,
9177 'theme--light': this.light
9178 };
9179 },
9180 styles: function styles() {
9181 return {
9182 height: this.height
9183 };
9184 }
9185 },
9186
9187 methods: {
9188 genBackground: function genBackground() {
9189 return this.$createElement('div', {
9190 staticClass: 'jumbotron__background',
9191 'class': this.addBackgroundColorClassChecks(),
9192 style: this.backgroundStyles
9193 });
9194 },
9195 genContent: function genContent() {
9196 return this.$createElement('div', {
9197 staticClass: 'jumbotron__content'
9198 }, this.$slots.default);
9199 },
9200 genImage: function genImage() {
9201 if (!this.src) return null;
9202 if (this.$slots.img) return this.$slots.img({ src: this.src });
9203
9204 return this.$createElement('img', {
9205 staticClass: 'jumbotron__image',
9206 attrs: { src: this.src }
9207 });
9208 },
9209 genWrapper: function genWrapper() {
9210 return this.$createElement('div', {
9211 staticClass: 'jumbotron__wrapper'
9212 }, [this.genImage(), this.genBackground(), this.genContent()]);
9213 }
9214 },
9215
9216 render: function render(h) {
9217 var _generateRouteLink = this.generateRouteLink(),
9218 tag = _generateRouteLink.tag,
9219 data = _generateRouteLink.data;
9220
9221 data.staticClass = 'jumbotron';
9222 data.style = this.styles;
9223
9224 return h(tag, data, [this.genWrapper()]);
9225 }
9226});
9227
9228/***/ }),
9229/* 122 */
9230/***/ (function(module, exports) {
9231
9232// removed by extract-text-webpack-plugin
9233
9234/***/ }),
9235/* 123 */
9236/***/ (function(module, __webpack_exports__, __webpack_require__) {
9237
9238"use strict";
9239/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VIcon__ = __webpack_require__(3);
9240/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__transitions__ = __webpack_require__(6);
9241/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_rippleable__ = __webpack_require__(23);
9242/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_selectable__ = __webpack_require__(40);
9243__webpack_require__(18);
9244__webpack_require__(28);
9245
9246
9247
9248
9249
9250
9251/* harmony default export */ __webpack_exports__["a"] = ({
9252 name: 'v-checkbox',
9253
9254 components: {
9255 VFadeTransition: __WEBPACK_IMPORTED_MODULE_1__transitions__["b" /* VFadeTransition */],
9256 VIcon: __WEBPACK_IMPORTED_MODULE_0__VIcon__["a" /* default */]
9257 },
9258
9259 mixins: [__WEBPACK_IMPORTED_MODULE_2__mixins_rippleable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_3__mixins_selectable__["a" /* default */]],
9260
9261 data: function data() {
9262 return {
9263 inputIndeterminate: this.indeterminate
9264 };
9265 },
9266
9267
9268 props: {
9269 indeterminate: Boolean
9270 },
9271
9272 computed: {
9273 classes: function classes() {
9274 var classes = {
9275 'checkbox': true,
9276 'input-group--selection-controls': true,
9277 'input-group--active': this.isActive
9278 };
9279
9280 if (this.hasError) {
9281 classes['error--text'] = true;
9282 } else {
9283 return this.addTextColorClassChecks(classes);
9284 }
9285
9286 return classes;
9287 },
9288 icon: function icon() {
9289 if (this.inputIndeterminate) {
9290 return 'indeterminate_check_box';
9291 } else if (this.isActive) {
9292 return 'check_box';
9293 } else {
9294 return 'check_box_outline_blank';
9295 }
9296 }
9297 },
9298
9299 methods: {
9300 groupFocus: function groupFocus(e) {
9301 this.isFocused = true;
9302 this.$emit('focus', e);
9303 },
9304 groupBlur: function groupBlur(e) {
9305 this.isFocused = false;
9306 this.tabFocused = false;
9307 this.$emit('blur', this.inputValue);
9308 }
9309 },
9310
9311 render: function render(h) {
9312 var transition = h('v-fade-transition', [h('v-icon', {
9313 staticClass: 'icon--selection-control',
9314 'class': {
9315 'icon--checkbox': this.icon === 'check_box'
9316 },
9317 key: this.icon,
9318 on: Object.assign({
9319 click: this.toggle
9320 }, this.$listeners)
9321 }, this.icon)]);
9322
9323 var data = {
9324 attrs: {
9325 tabindex: this.disabled ? -1 : this.internalTabIndex || this.tabindex,
9326 role: 'checkbox',
9327 'aria-checked': this.inputIndeterminate && 'mixed' || this.isActive && 'true' || 'false',
9328 'aria-label': this.label
9329 }
9330 };
9331
9332 var ripple = this.ripple ? this.genRipple() : null;
9333
9334 return this.genInputGroup([transition, ripple], data);
9335 }
9336});
9337
9338/***/ }),
9339/* 124 */
9340/***/ (function(module, __webpack_exports__, __webpack_require__) {
9341
9342"use strict";
9343/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util_console__ = __webpack_require__(7);
9344var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
9345
9346
9347
9348/* harmony default export */ __webpack_exports__["a"] = ({
9349 name: 'validatable',
9350
9351 data: function data() {
9352 return {
9353 errorBucket: [],
9354 hasFocused: false,
9355 hasInput: false,
9356 shouldValidate: false,
9357 valid: false
9358 };
9359 },
9360
9361
9362 props: {
9363 error: {
9364 type: Boolean
9365 },
9366 errorMessages: {
9367 type: [String, Array],
9368 default: function _default() {
9369 return [];
9370 }
9371 },
9372 rules: {
9373 type: Array,
9374 default: function _default() {
9375 return [];
9376 }
9377 },
9378 validateOnBlur: Boolean
9379 },
9380
9381 computed: {
9382 validations: function validations() {
9383 if (!Array.isArray(this.errorMessages)) {
9384 return [this.errorMessages];
9385 } else if (this.errorMessages.length > 0) {
9386 return this.errorMessages;
9387 } else if (this.shouldValidate) {
9388 return this.errorBucket;
9389 } else {
9390 return [];
9391 }
9392 },
9393 hasError: function hasError() {
9394 return this.validations.length > 0 || this.errorMessages.length > 0 || this.error;
9395 }
9396 },
9397
9398 watch: {
9399 rules: {
9400 handler: function handler(newVal, oldVal) {
9401 // TODO: This handler seems to trigger when input changes, even though
9402 // rules array stays the same? Solved it like this for now
9403 if (newVal.length === oldVal.length) return;
9404
9405 this.validate();
9406 },
9407
9408 deep: true
9409 },
9410 inputValue: function inputValue(val) {
9411 // If it's the first time we're setting input,
9412 // mark it with hasInput
9413 if (!!val && !this.hasInput) this.hasInput = true;
9414
9415 if (this.hasInput && !this.validateOnBlur) this.shouldValidate = true;
9416 },
9417 isFocused: function isFocused(val) {
9418 // If we're not focused, and it's the first time
9419 // we're defocusing, set shouldValidate to true
9420 if (!val && !this.hasFocused) {
9421 this.hasFocused = true;
9422 this.shouldValidate = true;
9423
9424 this.$emit('update:error', this.errorBucket.length > 0);
9425 }
9426 },
9427 hasError: function hasError(val) {
9428 if (this.shouldValidate) {
9429 this.$emit('update:error', val);
9430 }
9431 },
9432 error: function error(val) {
9433 this.shouldValidate = !!val;
9434 }
9435 },
9436
9437 mounted: function mounted() {
9438 this.shouldValidate = !!this.error;
9439 this.validate();
9440 },
9441
9442
9443 methods: {
9444 reset: function reset() {
9445 var _this = this;
9446
9447 // TODO: Do this another way!
9448 // This is so that we can reset all types of inputs
9449 this.$emit('input', this.isMultiple ? [] : null);
9450 this.$emit('change', null);
9451
9452 this.$nextTick(function () {
9453 _this.shouldValidate = false;
9454 _this.hasFocused = false;
9455 _this.validate();
9456 });
9457 },
9458 validate: function validate() {
9459 var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
9460 var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.inputValue;
9461
9462 if (force) this.shouldValidate = true;
9463
9464 this.errorBucket = [];
9465
9466 for (var index = 0; index < this.rules.length; index++) {
9467 var rule = this.rules[index];
9468 var valid = typeof rule === 'function' ? rule(value) : rule;
9469
9470 if (valid === false || typeof valid === 'string') {
9471 this.errorBucket.push(valid);
9472 } else if (valid !== true) {
9473 Object(__WEBPACK_IMPORTED_MODULE_0__util_console__["a" /* consoleError */])('Rules should return a string or boolean, received \'' + (typeof valid === 'undefined' ? 'undefined' : _typeof(valid)) + '\' instead', this);
9474 }
9475 }
9476
9477 this.valid = this.errorBucket.length === 0;
9478
9479 return this.valid;
9480 }
9481 }
9482});
9483
9484/***/ }),
9485/* 125 */
9486/***/ (function(module, __webpack_exports__, __webpack_require__) {
9487
9488"use strict";
9489/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VIcon__ = __webpack_require__(3);
9490/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_colorable__ = __webpack_require__(0);
9491/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_themeable__ = __webpack_require__(1);
9492/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_toggleable__ = __webpack_require__(4);
9493__webpack_require__(126);
9494
9495
9496
9497
9498
9499
9500/* harmony default export */ __webpack_exports__["a"] = ({
9501 name: 'v-chip',
9502
9503 components: {
9504 VIcon: __WEBPACK_IMPORTED_MODULE_0__VIcon__["a" /* default */]
9505 },
9506
9507 mixins: [__WEBPACK_IMPORTED_MODULE_1__mixins_colorable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__mixins_themeable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_3__mixins_toggleable__["a" /* default */]],
9508
9509 props: {
9510 close: Boolean,
9511 disabled: Boolean,
9512 label: Boolean,
9513 outline: Boolean,
9514 // Used for selects/tagging
9515 selected: Boolean,
9516 small: Boolean,
9517 textColor: String,
9518 value: {
9519 type: Boolean,
9520 default: true
9521 }
9522 },
9523
9524 computed: {
9525 classes: function classes() {
9526 var classes = this.addBackgroundColorClassChecks({
9527 'chip--disabled': this.disabled,
9528 'chip--selected': this.selected,
9529 'chip--label': this.label,
9530 'chip--outline': this.outline,
9531 'chip--small': this.small,
9532 'chip--removable': this.close,
9533 'theme--light': this.light,
9534 'theme--dark': this.dark
9535 });
9536
9537 return this.textColor || this.outline ? this.addTextColorClassChecks(classes, this.textColor || this.color) : classes;
9538 }
9539 },
9540
9541 methods: {
9542 genClose: function genClose(h) {
9543 var _this = this;
9544
9545 var data = {
9546 staticClass: 'chip__close',
9547 on: {
9548 click: function click(e) {
9549 e.stopPropagation();
9550
9551 _this.$emit('input', false);
9552 }
9553 }
9554 };
9555
9556 return h('div', data, [h(__WEBPACK_IMPORTED_MODULE_0__VIcon__["a" /* default */], 'cancel')]);
9557 },
9558 genContent: function genContent(h) {
9559 var children = [this.$slots.default];
9560
9561 this.close && children.push(this.genClose(h));
9562
9563 return h('span', {
9564 staticClass: 'chip__content'
9565 }, children);
9566 }
9567 },
9568
9569 render: function render(h) {
9570 var data = {
9571 staticClass: 'chip',
9572 'class': this.classes,
9573 attrs: { tabindex: this.disabled ? -1 : 0 },
9574 directives: [{
9575 name: 'show',
9576 value: this.isActive
9577 }],
9578 on: this.$listeners
9579 };
9580
9581 return h('span', data, [this.genContent(h)]);
9582 }
9583});
9584
9585/***/ }),
9586/* 126 */
9587/***/ (function(module, exports) {
9588
9589// removed by extract-text-webpack-plugin
9590
9591/***/ }),
9592/* 127 */
9593/***/ (function(module, __webpack_exports__, __webpack_require__) {
9594
9595"use strict";
9596/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VDataIterator__ = __webpack_require__(128);
9597
9598
9599__WEBPACK_IMPORTED_MODULE_0__VDataIterator__["a" /* default */].install = function install(Vue) {
9600 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VDataIterator__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VDataIterator__["a" /* default */]);
9601};
9602
9603/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VDataIterator__["a" /* default */]);
9604
9605/***/ }),
9606/* 128 */
9607/***/ (function(module, __webpack_exports__, __webpack_require__) {
9608
9609"use strict";
9610/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_data_iterable__ = __webpack_require__(43);
9611__webpack_require__(129);
9612
9613
9614
9615/* harmony default export */ __webpack_exports__["a"] = ({
9616 name: 'v-data-iterator',
9617
9618 mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_data_iterable__["a" /* default */]],
9619
9620 inheritAttrs: false,
9621
9622 props: {
9623 contentTag: {
9624 type: String,
9625 default: 'div'
9626 },
9627 contentProps: {
9628 type: Object,
9629 required: false
9630 },
9631 contentClass: {
9632 type: String,
9633 required: false
9634 }
9635 },
9636
9637 computed: {
9638 classes: function classes() {
9639 return {
9640 'data-iterator': true,
9641 'data-iterator--select-all': this.selectAll !== false,
9642 'theme--dark': this.dark,
9643 'theme--light': this.light
9644 };
9645 }
9646 },
9647
9648 methods: {
9649 genContent: function genContent() {
9650 var children = this.genItems();
9651
9652 var data = {
9653 'class': this.contentClass,
9654 attrs: this.$attrs,
9655 on: this.$listeners,
9656 props: this.contentProps
9657 };
9658
9659 return this.$createElement(this.contentTag, data, children);
9660 },
9661 genEmptyItems: function genEmptyItems(content) {
9662 return [this.$createElement('div', {
9663 'class': 'text-xs-center',
9664 style: 'width: 100%'
9665 }, content)];
9666 },
9667 genFilteredItems: function genFilteredItems() {
9668 if (!this.$scopedSlots.item) {
9669 return null;
9670 }
9671
9672 var items = [];
9673 for (var index = 0, len = this.filteredItems.length; index < len; ++index) {
9674 var item = this.filteredItems[index];
9675 var props = this.createProps(item, index);
9676 items.push(this.$scopedSlots.item(props));
9677 }
9678
9679 return items;
9680 },
9681 genFooter: function genFooter() {
9682 var children = [];
9683
9684 if (this.$slots.footer) {
9685 children.push(this.$slots.footer);
9686 }
9687
9688 if (!this.hideActions) {
9689 children.push(this.genActions());
9690 }
9691
9692 if (!children.length) return null;
9693 return this.$createElement('div', children);
9694 }
9695 },
9696
9697 created: function created() {
9698 this.initPagination();
9699 },
9700 render: function render(h) {
9701 return h('div', {
9702 'class': this.classes
9703 }, [this.genContent(), this.genFooter()]);
9704 }
9705});
9706
9707/***/ }),
9708/* 129 */
9709/***/ (function(module, exports) {
9710
9711// removed by extract-text-webpack-plugin
9712
9713/***/ }),
9714/* 130 */
9715/***/ (function(module, __webpack_exports__, __webpack_require__) {
9716
9717"use strict";
9718/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VBtn__ = __webpack_require__(10);
9719/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__VCard__ = __webpack_require__(22);
9720/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__VCheckbox__ = __webpack_require__(38);
9721/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__VChip__ = __webpack_require__(42);
9722/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__VList__ = __webpack_require__(46);
9723/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__VMenu__ = __webpack_require__(47);
9724/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__mixins_colorable__ = __webpack_require__(0);
9725/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__mixins_dependent__ = __webpack_require__(21);
9726/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__mixins_filterable__ = __webpack_require__(50);
9727/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__mixins_input__ = __webpack_require__(19);
9728/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__mixins_maskable__ = __webpack_require__(51);
9729/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__mixins_soloable__ = __webpack_require__(52);
9730/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__mixins_select_autocomplete__ = __webpack_require__(145);
9731/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__mixins_select_computed__ = __webpack_require__(146);
9732/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__mixins_select_events__ = __webpack_require__(147);
9733/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__mixins_select_generators__ = __webpack_require__(148);
9734/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__mixins_select_helpers__ = __webpack_require__(149);
9735/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__mixins_select_menu__ = __webpack_require__(150);
9736/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__mixins_select_props__ = __webpack_require__(151);
9737/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__mixins_select_watchers__ = __webpack_require__(152);
9738/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__directives_click_outside__ = __webpack_require__(8);
9739var _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; };
9740
9741// Styles
9742__webpack_require__(45);
9743__webpack_require__(18);
9744__webpack_require__(131);
9745
9746// Components
9747
9748
9749
9750
9751
9752
9753
9754// Mixins
9755
9756
9757
9758
9759
9760
9761
9762// Component level mixins
9763
9764
9765
9766
9767
9768
9769
9770
9771
9772// Directives
9773
9774
9775/* harmony default export */ __webpack_exports__["a"] = ({
9776 name: 'v-select',
9777
9778 inheritAttrs: false,
9779
9780 components: {
9781 VCard: __WEBPACK_IMPORTED_MODULE_1__VCard__["a" /* default */],
9782 VCheckbox: __WEBPACK_IMPORTED_MODULE_2__VCheckbox__["a" /* default */],
9783 VChip: __WEBPACK_IMPORTED_MODULE_3__VChip__["a" /* default */],
9784 VList: __WEBPACK_IMPORTED_MODULE_4__VList__["a" /* VList */],
9785 VListTile: __WEBPACK_IMPORTED_MODULE_4__VList__["b" /* VListTile */],
9786 VListTileAction: __WEBPACK_IMPORTED_MODULE_4__VList__["c" /* VListTileAction */],
9787 VListTileContent: __WEBPACK_IMPORTED_MODULE_4__VList__["d" /* VListTileContent */],
9788 VListTileTitle: __WEBPACK_IMPORTED_MODULE_4__VList__["e" /* VListTileTitle */],
9789 VMenu: __WEBPACK_IMPORTED_MODULE_5__VMenu__["a" /* default */],
9790 VBtn: __WEBPACK_IMPORTED_MODULE_0__VBtn__["a" /* default */]
9791 },
9792
9793 directives: {
9794 ClickOutside: __WEBPACK_IMPORTED_MODULE_20__directives_click_outside__["a" /* default */]
9795 },
9796
9797 mixins: [__WEBPACK_IMPORTED_MODULE_12__mixins_select_autocomplete__["a" /* default */], __WEBPACK_IMPORTED_MODULE_6__mixins_colorable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_7__mixins_dependent__["a" /* default */], __WEBPACK_IMPORTED_MODULE_14__mixins_select_events__["a" /* default */], __WEBPACK_IMPORTED_MODULE_8__mixins_filterable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_15__mixins_select_generators__["a" /* default */], __WEBPACK_IMPORTED_MODULE_16__mixins_select_helpers__["a" /* default */], __WEBPACK_IMPORTED_MODULE_9__mixins_input__["a" /* default */], __WEBPACK_IMPORTED_MODULE_10__mixins_maskable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_17__mixins_select_menu__["a" /* default */], __WEBPACK_IMPORTED_MODULE_18__mixins_select_props__["a" /* default */], __WEBPACK_IMPORTED_MODULE_11__mixins_soloable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_19__mixins_select_watchers__["a" /* default */],
9798 // Input and Computed both
9799 // contain isDirty props
9800 // last gets merged in
9801 __WEBPACK_IMPORTED_MODULE_13__mixins_select_computed__["a" /* default */]],
9802
9803 data: function data() {
9804 return {
9805 cachedItems: this.cacheItems ? this.items : [],
9806 content: {},
9807 defaultColor: 'primary',
9808 inputValue: (this.multiple || this.tags) && !this.value ? [] : this.value,
9809 isBooted: false,
9810 lastItem: 20,
9811 lazySearch: null,
9812 isActive: false,
9813 menuIsActive: false,
9814 searchTimeout: null,
9815 selectedIndex: -1,
9816 selectedItems: [],
9817 shouldBreak: false
9818 };
9819 },
9820 mounted: function mounted() {
9821 // If instance is being destroyed
9822 // do not run mounted functions
9823 if (this._isDestroyed) return;
9824
9825 // Evaluate the selected items immediately
9826 // to avoid a unnecessary label transition
9827 this.genSelectedItems();
9828
9829 this.content = this.$refs.menu.$refs.content;
9830 },
9831 beforeDestroy: function beforeDestroy() {
9832 if (this.isBooted) {
9833 if (this.content) {
9834 this.content.removeEventListener('scroll', this.onScroll, false);
9835 }
9836 }
9837 },
9838
9839
9840 methods: {
9841 needsTile: function needsTile(tile) {
9842 return tile.componentOptions == null || tile.componentOptions.tag !== 'v-list-tile';
9843 },
9844 changeSelectedIndex: function changeSelectedIndex(keyCode) {
9845 // backspace, left, right, delete
9846 if (![8, 37, 39, 46].includes(keyCode)) return;
9847
9848 var indexes = this.selectedItems.length - 1;
9849
9850 if (keyCode === 37) {
9851 // Left arrow
9852 this.selectedIndex = this.selectedIndex === -1 ? indexes : this.selectedIndex - 1;
9853 } else if (keyCode === 39) {
9854 // Right arrow
9855 this.selectedIndex = this.selectedIndex >= indexes ? -1 : this.selectedIndex + 1;
9856 } else if (this.selectedIndex === -1) {
9857 this.selectedIndex = indexes;
9858 return;
9859 }
9860
9861 // backspace/delete
9862 if ([8, 46].includes(keyCode)) {
9863 var newIndex = this.selectedIndex === indexes ? this.selectedIndex - 1 : this.selectedItems[this.selectedIndex + 1] ? this.selectedIndex : -1;
9864
9865 this.combobox ? this.inputValue = null : this.selectItem(this.selectedItems[this.selectedIndex]);
9866 this.selectedIndex = newIndex;
9867 }
9868 },
9869 filterDuplicates: function filterDuplicates(arr) {
9870 var uniqueValues = new Map();
9871 for (var index = 0; index < arr.length; ++index) {
9872 var item = arr[index];
9873 var val = this.getValue(item);
9874
9875 !uniqueValues.has(val) && uniqueValues.set(val, item);
9876 }
9877 return Array.from(uniqueValues.values());
9878 },
9879 genDirectives: function genDirectives() {
9880 var _this = this;
9881
9882 return [{
9883 name: 'click-outside',
9884 value: function value(e) {
9885 return !!_this.content && !_this.content.contains(e.target) && !!_this.$el && !_this.$el.contains(e.target);
9886 }
9887 }];
9888 },
9889 genSelectedItems: function genSelectedItems() {
9890 var _this2 = this;
9891
9892 var val = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.inputValue;
9893
9894 // If we are using tags, don't filter results
9895 if (this.tags) return this.selectedItems = val;
9896
9897 // Combobox is the single version
9898 // of a taggable select element
9899 if (this.combobox) return this.selectedItems = val != null ? [val] : [];
9900
9901 var selectedItems = this.computedItems.filter(function (i) {
9902 if (!_this2.isMultiple) {
9903 return _this2.getValue(i) === _this2.getValue(val);
9904 } else {
9905 // Always return Boolean
9906 return _this2.findExistingIndex(i) > -1;
9907 }
9908 });
9909
9910 if (!selectedItems.length && val != null && this.tags) {
9911 selectedItems = Array.isArray(val) ? val : [val];
9912 }
9913
9914 this.selectedItems = selectedItems;
9915 },
9916 clearableCallback: function clearableCallback() {
9917 var _this3 = this;
9918
9919 var inputValue = this.isMultiple ? [] : null;
9920
9921 this.inputValue = inputValue;
9922 this.$emit('change', inputValue);
9923 this.genSelectedItems();
9924
9925 // When input is cleared
9926 // reset search value and
9927 // re-focus the input
9928 setTimeout(function () {
9929 _this3.searchValue = null;
9930 _this3.focusInput();
9931 }, 0);
9932
9933 if (this.openOnClear) {
9934 setTimeout(this.showMenu, 50);
9935 }
9936 },
9937 onScroll: function onScroll() {
9938 var _this4 = this;
9939
9940 if (!this.isActive) {
9941 requestAnimationFrame(function () {
9942 return _this4.content.scrollTop = 0;
9943 });
9944 } else {
9945 if (this.lastItem >= this.computedItems.length) return;
9946
9947 var showMoreItems = this.content.scrollHeight - (this.content.scrollTop + this.content.clientHeight) < 200;
9948
9949 if (showMoreItems) {
9950 this.lastItem += 20;
9951 }
9952 }
9953 },
9954 findExistingItem: function findExistingItem(val) {
9955 var _this5 = this;
9956
9957 var itemValue = this.getValue(val);
9958 return this.items.find(function (i) {
9959 return _this5.valueComparator(_this5.getValue(i), itemValue);
9960 });
9961 },
9962 findExistingIndex: function findExistingIndex(item) {
9963 var _this6 = this;
9964
9965 var itemValue = this.getValue(item);
9966 return this.inputValue.findIndex(function (i) {
9967 return _this6.valueComparator(_this6.getValue(i), itemValue);
9968 });
9969 },
9970 selectItem: function selectItem(item) {
9971 var _this7 = this;
9972
9973 if (!this.isMultiple) {
9974 this.inputValue = this.returnObject ? item : this.getValue(item);
9975 this.selectedItems = [item];
9976 } else {
9977 var selectedItems = [];
9978 var inputValue = this.inputValue.slice();
9979 var i = this.findExistingIndex(item);
9980
9981 i !== -1 && inputValue.splice(i, 1) || inputValue.push(item);
9982 this.inputValue = inputValue.map(function (i) {
9983 selectedItems.push(i);
9984 return _this7.returnObject ? i : _this7.getValue(i);
9985 });
9986
9987 this.selectedItems = selectedItems;
9988 }
9989
9990 this.searchValue = !this.isMultiple && !this.chips && !this.$scopedSlots.selection ? this.getText(this.selectedItem) : null;
9991
9992 this.$emit('change', this.inputValue);
9993
9994 // List tile will re-render, reset index to
9995 // maintain highlighting
9996 var savedIndex = this.getMenuIndex();
9997 this.resetMenuIndex();
9998
9999 // After selecting an item
10000 // refocus the input and
10001 // reset the caret pos
10002 this.$nextTick(function () {
10003 _this7.focusInput();
10004 _this7.setCaretPosition(_this7.currentRange);
10005
10006 requestAnimationFrame(function () {
10007 if (savedIndex > -1) {
10008 _this7.setMenuIndex(savedIndex);
10009 }
10010 });
10011 });
10012 }
10013 },
10014
10015 render: function render(h) {
10016 var _this8 = this;
10017
10018 var data = {
10019 attrs: _extends({
10020 tabindex: this.isAutocomplete || this.disabled ? -1 : this.tabindex,
10021 'data-uid': this._uid
10022 }, this.isAutocomplete ? null : this.$attrs, {
10023 role: this.isAutocomplete ? null : 'combobox'
10024 })
10025 };
10026
10027 if (!this.isAutocomplete) {
10028 data.on = this.genListeners();
10029 data.directives = this.genDirectives();
10030 } else {
10031 data.on = {
10032 click: function click() {
10033 if (_this8.disabled || _this8.readonly || _this8.isFocused) return;
10034
10035 // If the input is dirty,
10036 // the input is not targetable
10037 // so we must manually focus
10038 if (_this8.isDirty) {
10039 _this8.focus();
10040 _this8.$nextTick(_this8.focusInput);
10041 }
10042 }
10043 };
10044 }
10045
10046 return this.genInputGroup([this.genSelectionsAndSearch(), this.genMenu()], data, this.toggleMenu);
10047 }
10048});
10049
10050/***/ }),
10051/* 131 */
10052/***/ (function(module, exports) {
10053
10054// removed by extract-text-webpack-plugin
10055
10056/***/ }),
10057/* 132 */
10058/***/ (function(module, __webpack_exports__, __webpack_require__) {
10059
10060"use strict";
10061/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_themeable__ = __webpack_require__(1);
10062/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_registrable__ = __webpack_require__(5);
10063// Styles
10064__webpack_require__(133);
10065
10066// Mixins
10067
10068
10069
10070/* harmony default export */ __webpack_exports__["a"] = ({
10071 name: 'v-list',
10072
10073 mixins: [Object(__WEBPACK_IMPORTED_MODULE_1__mixins_registrable__["b" /* provide */])('list'), __WEBPACK_IMPORTED_MODULE_0__mixins_themeable__["a" /* default */]],
10074
10075 provide: function provide() {
10076 return {
10077 'listClick': this.listClick
10078 };
10079 },
10080
10081
10082 data: function data() {
10083 return {
10084 groups: []
10085 };
10086 },
10087
10088 props: {
10089 dense: Boolean,
10090 expand: Boolean,
10091 subheader: Boolean,
10092 threeLine: Boolean,
10093 twoLine: Boolean
10094 },
10095
10096 computed: {
10097 classes: function classes() {
10098 return {
10099 'list--dense': this.dense,
10100 'list--subheader': this.subheader,
10101 'list--two-line': this.twoLine,
10102 'list--three-line': this.threeLine,
10103 'theme--dark': this.dark,
10104 'theme--light': this.light
10105 };
10106 }
10107 },
10108
10109 methods: {
10110 register: function register(uid, cb) {
10111 this.groups.push({ uid: uid, cb: cb });
10112 },
10113 unregister: function unregister(uid) {
10114 var index = this.groups.findIndex(function (g) {
10115 return g.uid === uid;
10116 });
10117
10118 if (index > -1) {
10119 this.groups.splice(index, 1);
10120 }
10121 },
10122 listClick: function listClick(uid, isBooted) {
10123 if (this.expand) return;
10124
10125 for (var i = this.groups.length; i--;) {
10126 this.groups[i].cb(uid);
10127 }
10128 }
10129 },
10130
10131 render: function render(h) {
10132 var data = {
10133 staticClass: 'list',
10134 'class': this.classes
10135 };
10136
10137 return h('ul', data, [this.$slots.default]);
10138 }
10139});
10140
10141/***/ }),
10142/* 133 */
10143/***/ (function(module, exports) {
10144
10145// removed by extract-text-webpack-plugin
10146
10147/***/ }),
10148/* 134 */
10149/***/ (function(module, __webpack_exports__, __webpack_require__) {
10150
10151"use strict";
10152/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__components_VIcon__ = __webpack_require__(3);
10153/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_bootable__ = __webpack_require__(16);
10154/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_toggleable__ = __webpack_require__(4);
10155/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_registrable__ = __webpack_require__(5);
10156/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__transitions__ = __webpack_require__(6);
10157function _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; }
10158
10159// Components
10160
10161
10162// Mixins
10163
10164
10165
10166
10167// Transitions
10168
10169
10170/**
10171 * List group
10172 *
10173 * @component
10174 */
10175/* harmony default export */ __webpack_exports__["a"] = ({
10176 name: 'v-list-group',
10177
10178 mixins: [__WEBPACK_IMPORTED_MODULE_1__mixins_bootable__["a" /* default */], Object(__WEBPACK_IMPORTED_MODULE_3__mixins_registrable__["a" /* inject */])('list', 'v-list-group', 'v-list'), __WEBPACK_IMPORTED_MODULE_2__mixins_toggleable__["a" /* default */]],
10179
10180 inject: ['listClick'],
10181
10182 data: function data() {
10183 return {
10184 groups: []
10185 };
10186 },
10187
10188 props: {
10189 activeClass: {
10190 type: String,
10191 default: 'primary--text'
10192 },
10193 appendIcon: {
10194 type: String,
10195 default: 'keyboard_arrow_down'
10196 },
10197 disabled: Boolean,
10198 group: String,
10199 noAction: Boolean,
10200 prependIcon: String,
10201 subGroup: Boolean
10202 },
10203
10204 computed: {
10205 groupClasses: function groupClasses() {
10206 return {
10207 'list__group--active': this.isActive,
10208 'list__group--disabled': this.disabled
10209 };
10210 },
10211 headerClasses: function headerClasses() {
10212 return {
10213 'list__group__header--active': this.isActive,
10214 'list__group__header--sub-group': this.subGroup
10215 };
10216 },
10217 itemsClasses: function itemsClasses() {
10218 return {
10219 'list__group__items--no-action': this.noAction
10220 };
10221 }
10222 },
10223
10224 watch: {
10225 isActive: function isActive(val) {
10226 if (!this.subGroup && val) {
10227 this.listClick(this._uid);
10228 }
10229 },
10230 $route: function $route(to) {
10231 var isActive = this.matchRoute(to.path);
10232
10233 if (this.group) {
10234 if (isActive && this.isActive !== isActive) {
10235 this.listClick(this._uid);
10236 }
10237
10238 this.isActive = isActive;
10239 }
10240 }
10241 },
10242
10243 mounted: function mounted() {
10244 this.list.register(this._uid, this.toggle);
10245
10246 if (this.group && this.$route && this.value == null) {
10247 this.isActive = this.matchRoute(this.$route.path);
10248 }
10249 },
10250 beforeDestroy: function beforeDestroy() {
10251 this.list.unregister(this._uid);
10252 },
10253
10254
10255 methods: {
10256 click: function click() {
10257 if (this.disabled) return;
10258
10259 this.isActive = !this.isActive;
10260 },
10261 genIcon: function genIcon(icon) {
10262 return this.$createElement(__WEBPACK_IMPORTED_MODULE_0__components_VIcon__["a" /* default */], icon);
10263 },
10264 genAppendIcon: function genAppendIcon() {
10265 var icon = !this.subGroup ? this.appendIcon : '';
10266
10267 return this.$createElement('li', {
10268 staticClass: 'list__group__header__append-icon'
10269 }, [this.$slots.appendIcon || this.genIcon(icon)]);
10270 },
10271 genGroup: function genGroup() {
10272 return this.$createElement('ul', {
10273 staticClass: 'list__group__header',
10274 'class': this.headerClasses,
10275 on: Object.assign({}, {
10276 click: this.click
10277 }, this.$listeners),
10278 ref: 'item'
10279 }, [this.genPrependIcon(), this.$slots.activator, this.genAppendIcon()]);
10280 },
10281 genItems: function genItems() {
10282 return this.$createElement('ul', {
10283 staticClass: 'list__group__items',
10284 'class': this.itemsClasses,
10285 directives: [{
10286 name: 'show',
10287 value: this.isActive
10288 }],
10289 ref: 'group'
10290 }, this.showLazyContent(this.$slots.default));
10291 },
10292 genPrependIcon: function genPrependIcon() {
10293 var icon = this.prependIcon ? this.prependIcon : this.subGroup ? 'arrow_drop_down' : '';
10294
10295 return this.$createElement('li', {
10296 staticClass: 'list__group__header__prepend-icon',
10297 'class': _defineProperty({}, this.activeClass, this.isActive)
10298 }, [this.$slots.prependIcon || this.genIcon(icon)]);
10299 },
10300 toggle: function toggle(uid) {
10301 this.isActive = this._uid === uid;
10302 },
10303 matchRoute: function matchRoute(to) {
10304 if (!this.group) return false;
10305 return to.match(this.group) !== null;
10306 }
10307 },
10308
10309 render: function render(h) {
10310 return h('li', {
10311 staticClass: 'list__group',
10312 'class': this.groupClasses
10313 }, [this.genGroup(), h(__WEBPACK_IMPORTED_MODULE_4__transitions__["a" /* VExpandTransition */], [this.genItems()])]);
10314 }
10315});
10316
10317/***/ }),
10318/* 135 */
10319/***/ (function(module, __webpack_exports__, __webpack_require__) {
10320
10321"use strict";
10322/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_colorable__ = __webpack_require__(0);
10323/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_routable__ = __webpack_require__(13);
10324/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_toggleable__ = __webpack_require__(4);
10325/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__directives_ripple__ = __webpack_require__(17);
10326var _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; };
10327
10328function _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; }
10329
10330// Mixins
10331
10332
10333
10334
10335// Directives
10336
10337
10338/* harmony default export */ __webpack_exports__["a"] = ({
10339 name: 'v-list-tile',
10340
10341 mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_colorable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_1__mixins_routable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__mixins_toggleable__["a" /* default */]],
10342
10343 directives: {
10344 Ripple: __WEBPACK_IMPORTED_MODULE_3__directives_ripple__["a" /* default */]
10345 },
10346
10347 inheritAttrs: false,
10348
10349 data: function data() {
10350 return {
10351 proxyClass: 'list__tile--active'
10352 };
10353 },
10354
10355 props: {
10356 activeClass: {
10357 type: String,
10358 default: 'primary--text'
10359 },
10360 avatar: Boolean,
10361 inactive: Boolean,
10362 tag: String
10363 },
10364
10365 computed: {
10366 listClasses: function listClasses() {
10367 return this.disabled ? 'text--disabled' : this.color ? this.addTextColorClassChecks() : this.defaultColor;
10368 },
10369 classes: function classes() {
10370 return _defineProperty({
10371 'list__tile': true,
10372 'list__tile--link': this.isLink && !this.inactive,
10373 'list__tile--avatar': this.avatar,
10374 'list__tile--disabled': this.disabled,
10375 'list__tile--active': !this.to && this.isActive
10376 }, this.activeClass, this.isActive);
10377 },
10378 isLink: function isLink() {
10379 return this.href || this.to || this.$listeners && (this.$listeners.click || this.$listeners['!click']);
10380 }
10381 },
10382
10383 render: function render(h) {
10384 var isRouteLink = !this.inactive && this.isLink;
10385
10386 var _ref2 = isRouteLink ? this.generateRouteLink() : {
10387 tag: this.tag || 'div',
10388 data: {
10389 class: this.classes
10390 }
10391 },
10392 tag = _ref2.tag,
10393 data = _ref2.data;
10394
10395 data.attrs = Object.assign({}, data.attrs, this.$attrs);
10396
10397 return h('li', {
10398 'class': this.listClasses,
10399 attrs: {
10400 disabled: this.disabled
10401 },
10402 on: _extends({}, this.$listeners)
10403 }, [h(tag, data, this.$slots.default)]);
10404 }
10405});
10406
10407/***/ }),
10408/* 136 */
10409/***/ (function(module, __webpack_exports__, __webpack_require__) {
10410
10411"use strict";
10412/* harmony default export */ __webpack_exports__["a"] = ({
10413 functional: true,
10414
10415 name: 'v-list-tile-action',
10416
10417 render: function render(h, _ref) {
10418 var data = _ref.data,
10419 children = _ref.children;
10420
10421 data.staticClass = data.staticClass ? 'list__tile__action ' + data.staticClass : 'list__tile__action';
10422 if ((children || []).length > 1) data.staticClass += ' list__tile__action--stack';
10423
10424 return h('div', data, children);
10425 }
10426});
10427
10428/***/ }),
10429/* 137 */
10430/***/ (function(module, __webpack_exports__, __webpack_require__) {
10431
10432"use strict";
10433/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VAvatar__ = __webpack_require__(32);
10434// Components
10435
10436
10437/* harmony default export */ __webpack_exports__["a"] = ({
10438 functional: true,
10439
10440 name: 'v-list-tile-avatar',
10441
10442 props: {
10443 color: String,
10444 size: {
10445 type: [Number, String],
10446 default: 40
10447 }
10448 },
10449
10450 render: function render(h, _ref) {
10451 var data = _ref.data,
10452 children = _ref.children,
10453 props = _ref.props;
10454
10455 data.staticClass = ('list__tile__avatar ' + (data.staticClass || '')).trim();
10456
10457 var avatar = h(__WEBPACK_IMPORTED_MODULE_0__VAvatar__["a" /* default */], {
10458 props: {
10459 color: props.color,
10460 size: props.size
10461 }
10462 }, [children]);
10463
10464 return h('div', data, [avatar]);
10465 }
10466});
10467
10468/***/ }),
10469/* 138 */
10470/***/ (function(module, __webpack_exports__, __webpack_require__) {
10471
10472"use strict";
10473/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_delayable__ = __webpack_require__(48);
10474/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_dependent__ = __webpack_require__(21);
10475/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_detachable__ = __webpack_require__(27);
10476/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_menuable_js__ = __webpack_require__(49);
10477/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__mixins_toggleable__ = __webpack_require__(4);
10478/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__mixins_menu_activator__ = __webpack_require__(140);
10479/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__mixins_menu_generators__ = __webpack_require__(141);
10480/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__mixins_menu_keyable__ = __webpack_require__(142);
10481/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__mixins_menu_position__ = __webpack_require__(143);
10482/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__directives_click_outside__ = __webpack_require__(8);
10483/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__directives_resize__ = __webpack_require__(11);
10484__webpack_require__(139);
10485
10486// Mixins
10487
10488
10489
10490
10491
10492
10493// Component level mixins
10494
10495
10496
10497
10498
10499// Directives
10500
10501
10502
10503/* harmony default export */ __webpack_exports__["a"] = ({
10504 name: 'v-menu',
10505
10506 mixins: [__WEBPACK_IMPORTED_MODULE_5__mixins_menu_activator__["a" /* default */], __WEBPACK_IMPORTED_MODULE_1__mixins_dependent__["a" /* default */], __WEBPACK_IMPORTED_MODULE_0__mixins_delayable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__mixins_detachable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_6__mixins_menu_generators__["a" /* default */], __WEBPACK_IMPORTED_MODULE_7__mixins_menu_keyable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_3__mixins_menuable_js__["a" /* default */], __WEBPACK_IMPORTED_MODULE_8__mixins_menu_position__["a" /* default */], __WEBPACK_IMPORTED_MODULE_4__mixins_toggleable__["a" /* default */]],
10507
10508 directives: {
10509 ClickOutside: __WEBPACK_IMPORTED_MODULE_9__directives_click_outside__["a" /* default */],
10510 Resize: __WEBPACK_IMPORTED_MODULE_10__directives_resize__["a" /* default */]
10511 },
10512
10513 data: function data() {
10514 return {
10515 defaultOffset: 8,
10516 maxHeightAutoDefault: '200px',
10517 startIndex: 3,
10518 stopIndex: 0,
10519 hasJustFocused: false,
10520 resizeTimeout: null
10521 };
10522 },
10523
10524
10525 props: {
10526 auto: Boolean,
10527 closeOnClick: {
10528 type: Boolean,
10529 default: true
10530 },
10531 closeOnContentClick: {
10532 type: Boolean,
10533 default: true
10534 },
10535 disabled: Boolean,
10536 fullWidth: Boolean,
10537 maxHeight: { default: 'auto' },
10538 offsetX: Boolean,
10539 offsetY: Boolean,
10540 openOnClick: {
10541 type: Boolean,
10542 default: true
10543 },
10544 openOnHover: Boolean,
10545 origin: {
10546 type: String,
10547 default: 'top left'
10548 },
10549 transition: {
10550 type: [Boolean, String],
10551 default: 'menu-transition'
10552 }
10553 },
10554
10555 computed: {
10556 calculatedLeft: function calculatedLeft() {
10557 if (!this.auto) return this.calcLeft();
10558
10559 return this.calcXOverflow(this.calcLeftAuto()) + 'px';
10560 },
10561 calculatedMaxHeight: function calculatedMaxHeight() {
10562 return this.auto ? '200px' : isNaN(this.maxHeight) ? this.maxHeight : this.maxHeight + 'px';
10563 },
10564 calculatedMaxWidth: function calculatedMaxWidth() {
10565 return isNaN(this.maxWidth) ? this.maxWidth : this.maxWidth + 'px';
10566 },
10567 calculatedMinWidth: function calculatedMinWidth() {
10568 if (this.minWidth) {
10569 return isNaN(this.minWidth) ? this.minWidth : this.minWidth + 'px';
10570 }
10571
10572 var minWidth = this.dimensions.activator.width + this.nudgeWidth + (this.auto ? 16 : 0);
10573
10574 var calculatedMaxWidth = isNaN(parseInt(this.calculatedMaxWidth)) ? minWidth : parseInt(this.calculatedMaxWidth);
10575
10576 return Math.min(calculatedMaxWidth, minWidth) + 'px';
10577 },
10578 calculatedTop: function calculatedTop() {
10579 if (!this.auto || this.isAttached) return this.calcTop();
10580
10581 return this.calcYOverflow(this.calcTopAuto()) + 'px';
10582 },
10583 styles: function styles() {
10584 return {
10585 maxHeight: this.calculatedMaxHeight,
10586 minWidth: this.calculatedMinWidth,
10587 maxWidth: this.calculatedMaxWidth,
10588 top: this.calculatedTop,
10589 left: this.calculatedLeft,
10590 transformOrigin: this.origin,
10591 zIndex: this.zIndex || this.activeZIndex
10592 };
10593 }
10594 },
10595
10596 watch: {
10597 activator: function activator(newActivator, oldActivator) {
10598 this.removeActivatorEvents(oldActivator);
10599 this.addActivatorEvents(newActivator);
10600 },
10601 isContentActive: function isContentActive(val) {
10602 this.hasJustFocused = val;
10603 }
10604 },
10605
10606 methods: {
10607 activate: function activate() {
10608 // This exists primarily for v-select
10609 // helps determine which tiles to activate
10610 this.getTiles();
10611 // Update coordinates and dimensions of menu
10612 // and its activator
10613 this.updateDimensions();
10614 // Start the transition
10615 requestAnimationFrame(this.startTransition);
10616 // Once transitioning, calculate scroll position
10617 setTimeout(this.calculateScroll, 50);
10618 },
10619 onResize: function onResize() {
10620 if (!this.isActive) return;
10621
10622 // Account for screen resize
10623 // and orientation change
10624 this.$refs.content.offsetWidth;
10625 this.updateDimensions();
10626
10627 // When resizing to a smaller width
10628 // content width is evaluated before
10629 // the new activator width has been
10630 // set, causing it to not size properly
10631 // hacky but will revisit in the future
10632 clearTimeout(this.resizeTimeout);
10633 this.resizeTimeout = setTimeout(this.updateDimensions, 100);
10634 }
10635 },
10636
10637 render: function render(h) {
10638 var data = {
10639 staticClass: 'menu',
10640 class: {
10641 'menu--disabled': this.disabled
10642 },
10643 style: {
10644 display: this.fullWidth ? 'block' : 'inline-block'
10645 },
10646 directives: [{
10647 arg: 500,
10648 name: 'resize',
10649 value: this.onResize
10650 }],
10651 on: {
10652 keydown: this.changeListIndex
10653 }
10654 };
10655
10656 return h('div', data, [this.genActivator(), this.genTransition()]);
10657 }
10658});
10659
10660/***/ }),
10661/* 139 */
10662/***/ (function(module, exports) {
10663
10664// removed by extract-text-webpack-plugin
10665
10666/***/ }),
10667/* 140 */
10668/***/ (function(module, __webpack_exports__, __webpack_require__) {
10669
10670"use strict";
10671/**
10672 * Menu activator
10673 *
10674 * @mixin
10675 *
10676 * Handles the click and hover activation
10677 * Supports slotted and detached activators
10678 */
10679/* harmony default export */ __webpack_exports__["a"] = ({
10680 methods: {
10681 activatorClickHandler: function activatorClickHandler(e) {
10682 if (this.disabled) return;
10683 if (this.openOnClick && !this.isActive) {
10684 this.getActivator().focus();
10685 this.isActive = true;
10686 this.absoluteX = e.clientX;
10687 this.absoluteY = e.clientY;
10688 } else if (this.closeOnClick && this.isActive) {
10689 this.getActivator().blur();
10690 this.isActive = false;
10691 }
10692 },
10693 mouseEnterHandler: function mouseEnterHandler(e) {
10694 var _this = this;
10695
10696 this.runDelay('open', function () {
10697 if (_this.hasJustFocused) return;
10698
10699 _this.hasJustFocused = true;
10700 _this.isActive = true;
10701 });
10702 },
10703 mouseLeaveHandler: function mouseLeaveHandler(e) {
10704 var _this2 = this;
10705
10706 // Prevent accidental re-activation
10707 this.runDelay('close', function () {
10708 if (_this2.$refs.content.contains(e.relatedTarget)) return;
10709
10710 requestAnimationFrame(function () {
10711 _this2.isActive = false;
10712 _this2.callDeactivate();
10713 });
10714 });
10715 },
10716 addActivatorEvents: function addActivatorEvents() {
10717 var activator = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
10718
10719 if (!activator) return;
10720 activator.addEventListener('click', this.activatorClickHandler);
10721 },
10722 removeActivatorEvents: function removeActivatorEvents() {
10723 var activator = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
10724
10725 if (!activator) return;
10726 activator.removeEventListener('click', this.activatorClickHandler);
10727 }
10728 }
10729});
10730
10731/***/ }),
10732/* 141 */
10733/***/ (function(module, __webpack_exports__, __webpack_require__) {
10734
10735"use strict";
10736function _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; }
10737
10738function _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); } }
10739
10740/**
10741 * Menu generators
10742 *
10743 * @mixin
10744 *
10745 * Used for creating the DOM elements for VMenu
10746 */
10747/* harmony default export */ __webpack_exports__["a"] = ({
10748 methods: {
10749 genActivator: function genActivator() {
10750 if (!this.$slots.activator) return null;
10751
10752 var options = {
10753 staticClass: 'menu__activator',
10754 'class': {
10755 'menu__activator--active': this.hasJustFocused || this.isActive
10756 },
10757 ref: 'activator',
10758 on: {}
10759 };
10760
10761 if (this.openOnHover) {
10762 options.on['mouseenter'] = this.mouseEnterHandler;
10763 options.on['mouseleave'] = this.mouseLeaveHandler;
10764 } else if (this.openOnClick) {
10765 options.on['click'] = this.activatorClickHandler;
10766 }
10767
10768 return this.$createElement('div', options, this.$slots.activator);
10769 },
10770 genTransition: function genTransition() {
10771 if (!this.transition) return this.genContent();
10772
10773 return this.$createElement('transition', {
10774 props: {
10775 name: this.transition
10776 }
10777 }, [this.genContent()]);
10778 },
10779 genDirectives: function genDirectives() {
10780 var _this = this;
10781
10782 // Do not add click outside for hover menu
10783 var directives = !this.openOnHover ? [{
10784 name: 'click-outside',
10785 value: {
10786 callback: function callback() {
10787 return _this.closeOnClick;
10788 },
10789 include: function include() {
10790 return [_this.$el].concat(_toConsumableArray(_this.getOpenDependentElements()));
10791 }
10792 }
10793 }] : [];
10794
10795 directives.push({
10796 name: 'show',
10797 value: this.isContentActive
10798 });
10799
10800 return directives;
10801 },
10802 genContent: function genContent() {
10803 var _class,
10804 _this2 = this;
10805
10806 var options = {
10807 staticClass: 'menu__content',
10808 'class': (_class = {}, _defineProperty(_class, this.contentClass.trim(), true), _defineProperty(_class, 'menuable__content__active', this.isActive), _defineProperty(_class, 'theme--dark', this.dark), _defineProperty(_class, 'theme--light', this.light), _class),
10809 style: this.styles,
10810 directives: this.genDirectives(),
10811 ref: 'content',
10812 on: {
10813 click: function click(e) {
10814 e.stopPropagation();
10815 if (e.target.getAttribute('disabled')) return;
10816 if (_this2.closeOnContentClick) _this2.isActive = false;
10817 }
10818 }
10819 };
10820
10821 !this.disabled && this.openOnHover && (options.on.mouseenter = this.mouseEnterHandler);
10822 this.openOnHover && (options.on.mouseleave = this.mouseLeaveHandler);
10823
10824 return this.$createElement('div', options, this.showLazyContent(this.$slots.default));
10825 }
10826 }
10827});
10828
10829/***/ }),
10830/* 142 */
10831/***/ (function(module, __webpack_exports__, __webpack_require__) {
10832
10833"use strict";
10834/**
10835 * Menu keyable
10836 *
10837 * @mixin
10838 *
10839 * Primarily used to support VSelect
10840 * Handles opening and closing of VMenu from keystrokes
10841 * Will conditionally highlight VListTiles for VSelect
10842 */
10843/* harmony default export */ __webpack_exports__["a"] = ({
10844 data: function data() {
10845 return {
10846 listIndex: -1,
10847 tiles: []
10848 };
10849 },
10850
10851 watch: {
10852 isActive: function isActive(val) {
10853 if (!val) this.listIndex = -1;
10854 },
10855 listIndex: function listIndex(next, prev) {
10856 // For infinite scroll and autocomplete, re-evaluate children
10857 this.getTiles();
10858
10859 if (next in this.tiles) {
10860 this.tiles[next].classList.add('list__tile--highlighted');
10861 this.$refs.content.scrollTop = next * 48;
10862 }
10863
10864 prev in this.tiles && this.tiles[prev].classList.remove('list__tile--highlighted');
10865 }
10866 },
10867
10868 methods: {
10869 changeListIndex: function changeListIndex(e) {
10870 // Up, Down, Enter, Space
10871 if ([40, 38, 13].includes(e.keyCode) || e.keyCode === 32 && !this.isActive) {
10872 e.preventDefault();
10873 }
10874
10875 // Esc, Tab
10876 if ([27, 9].includes(e.keyCode)) return this.isActive = false;else if (!this.isActive &&
10877 // Enter, Space
10878 [13, 32].includes(e.keyCode) && this.openOnClick) {
10879 return this.isActive = true;
10880 }
10881
10882 // Down
10883 if (e.keyCode === 40 && this.listIndex < this.tiles.length - 1) {
10884 this.listIndex++;
10885 // Up
10886 } else if (e.keyCode === 38 && this.listIndex > 0) {
10887 this.listIndex--;
10888 // Enter
10889 } else if (e.keyCode === 13 && this.listIndex !== -1) {
10890 this.tiles[this.listIndex].click();
10891 }
10892 },
10893 getTiles: function getTiles() {
10894 this.tiles = this.$refs.content.querySelectorAll('.list__tile');
10895 }
10896 }
10897});
10898
10899/***/ }),
10900/* 143 */
10901/***/ (function(module, __webpack_exports__, __webpack_require__) {
10902
10903"use strict";
10904/**
10905 * Menu position
10906 *
10907 * @mixin
10908 *
10909 * Used for calculating an automatic position (used for VSelect)
10910 * Will position the VMenu content properly over the VSelect
10911 */
10912/* harmony default export */ __webpack_exports__["a"] = ({
10913 methods: {
10914 // Revisit this
10915 calculateScroll: function calculateScroll() {
10916 if (this.selectedIndex === null) return;
10917
10918 var scrollTop = 0;
10919
10920 if (this.selectedIndex >= this.stopIndex) {
10921 scrollTop = this.$refs.content.scrollHeight;
10922 } else if (this.selectedIndex > this.startIndex) {
10923 scrollTop = this.selectedIndex * (this.defaultOffset * 6) - this.defaultOffset * 7;
10924 }
10925
10926 this.$refs.content.scrollTop = scrollTop;
10927 },
10928 calcLeftAuto: function calcLeftAuto() {
10929 if (this.isAttached) return 0;
10930
10931 return parseInt(this.dimensions.activator.left - this.defaultOffset * 2);
10932 },
10933 calcTopAuto: function calcTopAuto() {
10934 var selectedIndex = Array.from(this.tiles).findIndex(function (n) {
10935 return n.classList.contains('list__tile--active');
10936 });
10937
10938 if (selectedIndex === -1) {
10939 this.selectedIndex = null;
10940
10941 return this.computedTop;
10942 }
10943
10944 this.selectedIndex = selectedIndex;
10945 var actingIndex = selectedIndex;
10946
10947 var offsetPadding = -(this.defaultOffset * 2);
10948 // #708 Stop index should vary by tile length
10949 this.stopIndex = this.tiles.length > 4 ? this.tiles.length - 4 : this.tiles.length;
10950
10951 if (selectedIndex > this.startIndex && selectedIndex < this.stopIndex) {
10952 actingIndex = 2;
10953 offsetPadding = this.defaultOffset * 3;
10954 } else if (selectedIndex >= this.stopIndex) {
10955 offsetPadding = -this.defaultOffset;
10956 actingIndex = selectedIndex - this.stopIndex;
10957 }
10958
10959 // Is always off by 1 pixel, send help (??_?)?????
10960 offsetPadding--;
10961
10962 return this.computedTop + offsetPadding - actingIndex * (this.defaultOffset * 6);
10963 }
10964 }
10965});
10966
10967/***/ }),
10968/* 144 */
10969/***/ (function(module, __webpack_exports__, __webpack_require__) {
10970
10971"use strict";
10972/* unused harmony export defaultDelimiters */
10973/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return isMaskDelimiter; });
10974/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return maskText; });
10975/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return unmaskText; });
10976/**
10977 * Mask keys
10978 *
10979 * @type {Object}
10980 */
10981var allowedMasks = {
10982 '#': {
10983 test: function test(char) {
10984 return char.match(/[0-9]/);
10985 }
10986 },
10987 'A': {
10988 test: function test(char) {
10989 return char.match(/[A-Z]/i);
10990 },
10991 convert: function convert(char) {
10992 return char.toUpperCase();
10993 }
10994 },
10995 'a': {
10996 test: function test(char) {
10997 return char.match(/[a-z]/i);
10998 },
10999 convert: function convert(char) {
11000 return char.toLowerCase();
11001 }
11002 },
11003 'N': {
11004 test: function test(char) {
11005 return char.match(/[0-9A-Z]/i);
11006 },
11007 convert: function convert(char) {
11008 return char.toUpperCase();
11009 }
11010 },
11011 'n': {
11012 test: function test(char) {
11013 return char.match(/[0-9a-z]/i);
11014 },
11015 convert: function convert(char) {
11016 return char.toLowerCase();
11017 }
11018 },
11019 'X': {
11020 test: isMaskDelimiter
11021 }
11022
11023 /**
11024 * Default delimiter RegExp
11025 *
11026 * @type {RegExp}
11027 */
11028};var defaultDelimiters = /[-!$%^&*()_+|~=`{}\[\]:";'<>?,.\/\\ ]/;
11029
11030/**
11031 * Is Character mask
11032 *
11033 * @param {String} char
11034 *
11035 * @return {Boolean}
11036 */
11037var isMask = function isMask(char) {
11038 return allowedMasks.hasOwnProperty(char);
11039};
11040
11041/**
11042 * Automatically convert char case
11043 *
11044 * @param {String} mask
11045 * @param {String} char
11046 *
11047 * @return {String}
11048 */
11049var convert = function convert(mask, char) {
11050 return allowedMasks[mask].convert ? allowedMasks[mask].convert(char) : char;
11051};
11052
11053/**
11054 *
11055 * @param {String} char
11056 *
11057 * @return {Boolean}
11058 */
11059var isMaskDelimiter = function isMaskDelimiter(char) {
11060 return char && defaultDelimiters.test(char);
11061};
11062
11063/**
11064 * Mask Validation
11065 *
11066 * @param {String} mask
11067 * @param {String} char
11068 *
11069 * @return {Boolean}
11070 */
11071var maskValidates = function maskValidates(mask, char) {
11072 if (char == null || !isMask(mask)) return false;
11073 return allowedMasks[mask].test(char);
11074};
11075
11076/**
11077 * Mask Text
11078 *
11079 * Takes a string or an array of characters
11080 * and returns a masked string
11081 *
11082 * @param {*} text
11083 * @param {Array|String} masked
11084 * @param {Boolean} [dontFillMaskBlanks]
11085 *
11086 * @return {String}
11087 */
11088var maskText = function maskText(text, masked, dontFillMaskBlanks) {
11089 if (text == null) return '';
11090 text = String(text);
11091 if (!masked.length || !text.length) return text;
11092 if (!Array.isArray(masked)) masked = masked.split('');
11093
11094 var textIndex = 0;
11095 var maskIndex = 0;
11096 var newText = '';
11097
11098 while (maskIndex < masked.length) {
11099 var mask = masked[maskIndex];
11100
11101 // Assign the next character
11102 var char = text[textIndex];
11103
11104 // Check if mask is delimiter
11105 // and current char matches
11106 if (!isMask(mask) && char === mask) {
11107 newText += mask;
11108 textIndex++;
11109 // Check if not mask
11110 } else if (!isMask(mask) && !dontFillMaskBlanks) {
11111 newText += mask;
11112 // Check if is mask and validates
11113 } else if (maskValidates(mask, char)) {
11114 newText += convert(mask, char);
11115 textIndex++;
11116 } else {
11117 return newText;
11118 }
11119
11120 maskIndex++;
11121 }
11122
11123 return newText;
11124};
11125
11126/**
11127 * Unmask Text
11128 *
11129 * @param {String} text
11130 *
11131 * @return {String}
11132 */
11133var unmaskText = function unmaskText(text) {
11134 return text ? String(text).replace(new RegExp(defaultDelimiters, 'g'), '') : text;
11135};
11136
11137/***/ }),
11138/* 145 */
11139/***/ (function(module, __webpack_exports__, __webpack_require__) {
11140
11141"use strict";
11142/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util_helpers__ = __webpack_require__(2);
11143
11144
11145/**
11146 * Select autocomplete
11147 *
11148 * @mixin
11149 *
11150 * Handles logic when using the "autocomplete" prop
11151 */
11152/* harmony default export */ __webpack_exports__["a"] = ({
11153 props: {
11154 filter: {
11155 type: Function,
11156 default: function _default(item, queryText, itemText) {
11157 var hasValue = function hasValue(val) {
11158 return val != null ? val : '';
11159 };
11160
11161 var text = hasValue(itemText);
11162 var query = hasValue(queryText);
11163
11164 return text.toString().toLowerCase().indexOf(query.toString().toLowerCase()) > -1;
11165 }
11166 }
11167 },
11168
11169 methods: {
11170 filterSearch: function filterSearch() {
11171 var _this = this;
11172
11173 if (!this.isAutocomplete) return this.computedItems;
11174
11175 return this.computedItems.filter(function (i) {
11176 return _this.filter(i, _this.searchValue, _this.getText(i));
11177 });
11178 },
11179 genFiltered: function genFiltered(text) {
11180 text = (text || '').toString();
11181
11182 if (!this.isAutocomplete || !this.searchValue || this.filteredItems.length < 1) return Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["f" /* escapeHTML */])(text);
11183
11184 var _getMaskedCharacters = this.getMaskedCharacters(text),
11185 start = _getMaskedCharacters.start,
11186 middle = _getMaskedCharacters.middle,
11187 end = _getMaskedCharacters.end;
11188
11189 return '' + Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["f" /* escapeHTML */])(start) + this.genHighlight(middle) + Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["f" /* escapeHTML */])(end);
11190 },
11191 genHighlight: function genHighlight(text) {
11192 if (this.isNotFiltering) return Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["f" /* escapeHTML */])(text);
11193
11194 return '<span class="list__tile__mask">' + Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["f" /* escapeHTML */])(text) + '</span>';
11195 },
11196 getMaskedCharacters: function getMaskedCharacters(text) {
11197 var searchValue = (this.searchValue || '').toString().toLowerCase();
11198 var index = text.toLowerCase().indexOf(searchValue);
11199
11200 if (index < 0) return { start: '', middle: text, end: '' };
11201
11202 var start = text.slice(0, index);
11203 var middle = text.slice(index, index + searchValue.length);
11204 var end = text.slice(index + searchValue.length);
11205 return { start: start, middle: middle, end: end };
11206 },
11207 getCurrentTag: function getCurrentTag() {
11208 return this.isMenuItemSelected() ? this.filteredItems[this.getMenuIndex()] : this.isAnyValueAllowed ? this.searchValue : null;
11209 },
11210 tabOut: function tabOut() {
11211 this.blur();
11212 },
11213 onTabDown: function onTabDown(e) {
11214 // If tabbing through inputs and
11215 // and there is no need for an
11216 // update, blur the v-select
11217 if (!this.isAutocomplete || !this.getCurrentTag() || this.combobox) return this.tabOut();
11218
11219 // When adding tags, if searching and
11220 // there is not a filtered options,
11221 // add the value to the tags list
11222 if (this.tags && this.searchValue && !this.filteredItems.length) {
11223 e.preventDefault();
11224
11225 return this.updateTags(this.searchValue);
11226 }
11227
11228 // An item that is selected by
11229 // menu-index should toggled
11230 if (this.menuIsActive) {
11231 e.preventDefault();
11232 this.selectListTile(this.getMenuIndex());
11233 }
11234 },
11235 onEnterDown: function onEnterDown() {
11236 this.updateTags(this.getCurrentTag());
11237 },
11238 onEscDown: function onEscDown(e) {
11239 e.preventDefault();
11240 this.menuIsActive = false;
11241 },
11242 onKeyDown: function onKeyDown(e) {
11243 var _this2 = this;
11244
11245 // If enter, space, up, or down is pressed, open menu
11246 if (!this.menuIsActive && [13, 32, 38, 40].includes(e.keyCode)) {
11247 e.preventDefault();
11248 return this.showMenu();
11249 }
11250
11251 // If escape deactivate the menu
11252 if (e.keyCode === 27) return this.onEscDown(e);
11253
11254 // If tab - select item or close menu
11255 if (e.keyCode === 9) return this.onTabDown(e);
11256
11257 if (!this.isAutocomplete || ![32].includes(e.keyCode) // space
11258 ) this.$refs.menu.changeListIndex(e);
11259
11260 // Up or down
11261 if ([38, 40].includes(e.keyCode)) this.selectedIndex = -1;
11262
11263 if (this.isAutocomplete && !this.hideSelections && !this.searchValue) this.changeSelectedIndex(e.keyCode);
11264
11265 if (!this.isAnyValueAllowed || !this.searchValue) return;
11266
11267 // Enter
11268 if (e.keyCode === 13) return this.onEnterDown();
11269
11270 // Left arrow
11271 if (e.keyCode === 37 && this.$refs.input.selectionStart === 0 && this.selectedItems.length) {
11272 this.updateTags(this.searchValue);
11273 this.$nextTick(function () {
11274 _this2.selectedIndex = Math.max(_this2.selectedItems.length - 2, 0);
11275 });
11276 }
11277
11278 // Right arrow
11279 if (e.keyCode === 39 && this.$refs.input.selectionEnd === this.searchValue.length) {
11280 this.resetMenuIndex();
11281 }
11282 },
11283 selectListTile: function selectListTile(index) {
11284 if (!this.$refs.menu.tiles[index]) return;
11285
11286 this.$refs.menu.tiles[index].click();
11287 },
11288 updateTags: function updateTags(content) {
11289 var _this3 = this;
11290
11291 // Avoid direct mutation
11292 // for vuex strict mode
11293 var selectedItems = this.selectedItems.slice();
11294
11295 // If a duplicate item
11296 // exists, remove it
11297 if (selectedItems.includes(content)) {
11298 this.$delete(selectedItems, selectedItems.indexOf(content));
11299 }
11300
11301 // When updating tags ensure
11302 // that that the search text
11303 // is populated if needed
11304 var searchValue = null;
11305 if (this.combobox) {
11306 selectedItems = [content];
11307 searchValue = this.chips ? null : content;
11308 } else {
11309 selectedItems.push(content);
11310 }
11311
11312 this.selectedItems = selectedItems;
11313
11314 this.$nextTick(function () {
11315 _this3.searchValue = searchValue;
11316 _this3.$emit('input', _this3.combobox ? content : _this3.selectedItems);
11317
11318 // Combobox should close its menu when tags are updated
11319 _this3.menuIsActive = !_this3.combobox;
11320 });
11321 }
11322 }
11323});
11324
11325/***/ }),
11326/* 146 */
11327/***/ (function(module, __webpack_exports__, __webpack_require__) {
11328
11329"use strict";
11330var _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; };
11331
11332/**
11333 * Select computed properties
11334 *
11335 * @mixin
11336 *
11337 * Computed properties for
11338 * the v-select component
11339 */
11340/* harmony default export */ __webpack_exports__["a"] = ({
11341 computed: {
11342 classes: function classes() {
11343 var classes = _extends({}, this.genSoloClasses(), {
11344 'input-group--text-field input-group--select': true,
11345 'input-group--auto': this.auto,
11346 'input-group--overflow': this.overflow,
11347 'input-group--segmented': this.segmented,
11348 'input-group--editable': this.editable,
11349 'input-group--autocomplete': this.isAutocomplete,
11350 'input-group--single-line': this.singleLine || this.isDropdown,
11351 'input-group--multi-line': this.multiLine,
11352 'input-group--chips': this.chips,
11353 'input-group--multiple': this.multiple,
11354 'input-group--open': this.menuIsVisible
11355 });
11356
11357 if (this.hasError) {
11358 classes['error--text'] = true;
11359 } else {
11360 return this.addTextColorClassChecks(classes);
11361 }
11362
11363 return classes;
11364 },
11365 computedContentClass: function computedContentClass() {
11366 var children = ['menu__content--select', this.auto ? 'menu__content--auto' : '', this.isDropdown ? 'menu__content--dropdown' : '', this.isAutocomplete ? 'menu__content--autocomplete' : '', this.contentClass || ''];
11367
11368 return children.join(' ');
11369 },
11370 computedItems: function computedItems() {
11371 return this.filterDuplicates(this.cachedItems.concat(this.items));
11372 },
11373
11374 /**
11375 * The range of the current input text
11376 *
11377 * @return {Number}
11378 */
11379 currentRange: function currentRange() {
11380 if (this.selectedItem == null) return 0;
11381
11382 return this.getText(this.selectedItem).toString().length;
11383 },
11384 filteredItems: function filteredItems() {
11385 // If we are not actively filtering
11386 // Show all available items
11387 var items = this.isNotFiltering ? this.computedItems : this.filterSearch();
11388
11389 return !this.auto ? items.slice(0, this.lastItem) : items;
11390 },
11391 hideSelections: function hideSelections() {
11392 return this.isAutocomplete && !this.isMultiple && this.isFocused && !this.chips && !this.$scopedSlots.selection;
11393 },
11394 isNotFiltering: function isNotFiltering() {
11395 return this.isAutocomplete && this.isDirty && this.searchValue === this.getText(this.selectedItem);
11396 },
11397 isHidingSelected: function isHidingSelected() {
11398 return this.hideSelected && this.isAutocomplete && this.isMultiple;
11399 },
11400 isAutocomplete: function isAutocomplete() {
11401 return this.autocomplete || this.editable || this.tags || this.combobox;
11402 },
11403 isDirty: function isDirty() {
11404 return this.selectedItems.length > 0 || this.isAutocomplete && this.searchValue;
11405 },
11406 isDropdown: function isDropdown() {
11407 return this.segmented || this.overflow || this.editable || this.isSolo;
11408 },
11409 isMultiple: function isMultiple() {
11410 return this.multiple || this.tags;
11411 },
11412 isAnyValueAllowed: function isAnyValueAllowed() {
11413 return this.tags || this.combobox;
11414 },
11415 menuIsVisible: function menuIsVisible() {
11416 return this.menuIsActive && this.computedItems.length > 0 && (!this.isAnyValueAllowed || this.filteredItems.length > 0);
11417 },
11418 menuItems: function menuItems() {
11419 var _this = this;
11420
11421 return this.isHidingSelected ? this.filteredItems.filter(function (o) {
11422 return (_this.selectedItems || []).indexOf(o) === -1;
11423 }) : this.filteredItems;
11424 },
11425 nudgeTop: function nudgeTop() {
11426 var nudgeTop = -18;
11427
11428 if (this.isSolo) nudgeTop = 0;else if (this.shouldOffset) {
11429 nudgeTop += 44;
11430
11431 nudgeTop += this.hideDetails ? -24 : 0;
11432 nudgeTop += this.isAutocomplete && !this.isDropdown ? -2 : 0;
11433 }
11434
11435 return nudgeTop;
11436 },
11437
11438 searchValue: {
11439 get: function get() {
11440 return this.lazySearch;
11441 },
11442 set: function set(val) {
11443 var _this2 = this;
11444
11445 if (!this.isAutocomplete || this.selectedIndex > -1) return;
11446
11447 this.lazySearch = val;
11448
11449 clearTimeout(this.searchTimeout);
11450
11451 this.searchTimeout = setTimeout(function () {
11452 _this2.$emit('update:searchInput', val);
11453 }, this.debounceSearch);
11454 }
11455 },
11456 selectedItem: function selectedItem() {
11457 var _this3 = this;
11458
11459 if (this.isMultiple) return null;
11460
11461 return this.selectedItems.find(function (i) {
11462 return _this3.getValue(i) === _this3.getValue(_this3.inputValue);
11463 });
11464 },
11465 shouldOffset: function shouldOffset() {
11466 return this.isAutocomplete || this.isDropdown;
11467 }
11468 }
11469});
11470
11471/***/ }),
11472/* 147 */
11473/***/ (function(module, __webpack_exports__, __webpack_require__) {
11474
11475"use strict";
11476var _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; };
11477
11478/**
11479 * Select events
11480 *
11481 * @mixin
11482 *
11483 * Event based methods for
11484 * the v-select component
11485 */
11486/* harmony default export */ __webpack_exports__["a"] = ({
11487 methods: {
11488 blur: function blur() {
11489 this.deactivateInput();
11490 this.menuIsActive = false;
11491 this.$emit('blur');
11492 },
11493 focus: function focus() {
11494 this.showMenu();
11495
11496 this.$emit('focus');
11497 },
11498 focusInput: function focusInput() {
11499 var _this = this;
11500
11501 if (this.$refs.input && this.isAutocomplete) {
11502 this.$refs.input.focus();
11503
11504 this.$nextTick(function () {
11505 _this.$refs.input.select();
11506 _this.shouldBreak && (_this.$refs.input.scrollLeft = _this.$refs.input.scrollWidth);
11507 });
11508 } else {
11509 !this.isFocused && this.$el.focus();
11510 }
11511 },
11512 genListeners: function genListeners() {
11513 var _this2 = this;
11514
11515 var listeners = Object.assign({}, this.$listeners);
11516 delete listeners.input;
11517
11518 return _extends({}, listeners, {
11519 click: function click() {
11520 if (_this2.disabled || _this2.readonly) return;
11521
11522 if (_this2.isFocused && !_this2.menuIsVisible) {
11523 return _this2.showMenuItems();
11524 }
11525
11526 _this2.focus();
11527 },
11528 focus: function focus(e) {
11529 if (_this2.disabled || _this2.readonly || _this2.isFocused) {
11530 return;
11531 }
11532
11533 _this2.activateInput();
11534 _this2.$nextTick(_this2.focusInput);
11535 },
11536 keydown: this.onKeyDown // Located in mixins/select-autocomplete.js
11537 });
11538 }
11539 }
11540});
11541
11542/***/ }),
11543/* 148 */
11544/***/ (function(module, __webpack_exports__, __webpack_require__) {
11545
11546"use strict";
11547/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util_helpers__ = __webpack_require__(2);
11548/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util_console__ = __webpack_require__(7);
11549var _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; };
11550
11551function _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); } }
11552
11553
11554
11555
11556/**
11557 * Select generators
11558 *
11559 * @mixin
11560 *
11561 * Used for creating the DOM elements for VSelect
11562 */
11563/* harmony default export */ __webpack_exports__["a"] = ({
11564 methods: {
11565 genMenu: function genMenu() {
11566 var _this = this;
11567
11568 var data = {
11569 ref: 'menu',
11570 props: {
11571 activator: this.$el,
11572 auto: this.auto,
11573 attach: this.attach && '[data-uid="' + this._uid + '"]',
11574 closeOnClick: false,
11575 closeOnContentClick: !this.isMultiple,
11576 contentClass: this.computedContentClass,
11577 dark: this.dark,
11578 disabled: this.disabled,
11579 light: this.light,
11580 maxHeight: this.maxHeight,
11581 nudgeTop: this.nudgeTop,
11582 offsetY: this.shouldOffset,
11583 offsetOverflow: this.isAutocomplete,
11584 openOnClick: false,
11585 value: this.menuIsVisible,
11586 zIndex: this.menuZIndex
11587 },
11588 on: {
11589 input: function input(val) {
11590 if (!val) {
11591 _this.menuIsActive = false;
11592 }
11593 }
11594 }
11595 };
11596
11597 if (this.isAutocomplete) data.props.transition = '';
11598
11599 this.minWidth && (data.props.minWidth = this.minWidth);
11600
11601 return this.$createElement('v-menu', data, [this.genList()]);
11602 },
11603 getMenuIndex: function getMenuIndex() {
11604 return this.$refs.menu ? this.$refs.menu.listIndex : -1;
11605 },
11606 setMenuIndex: function setMenuIndex(index) {
11607 this.$refs.menu && (this.$refs.menu.listIndex = index);
11608 },
11609 resetMenuIndex: function resetMenuIndex() {
11610 this.setMenuIndex(-1);
11611 },
11612 isMenuItemSelected: function isMenuItemSelected() {
11613 return this.menuIsActive && this.menuItems.length && this.getMenuIndex() > -1;
11614 },
11615 genSelectionsAndSearch: function genSelectionsAndSearch() {
11616 return this.$createElement('div', {
11617 'class': 'input-group__selections',
11618 style: { 'overflow': 'hidden' },
11619 ref: 'activator'
11620 }, [].concat(_toConsumableArray(this.genSelections()), [this.genSearch()]));
11621 },
11622 genSelections: function genSelections() {
11623 if (this.hideSelections) return [];
11624
11625 var length = this.selectedItems.length;
11626 var children = new Array(length);
11627
11628 var genSelection = void 0;
11629 if (this.$scopedSlots.selection) {
11630 genSelection = this.genSlotSelection;
11631 } else if (this.chips) {
11632 genSelection = this.genChipSelection;
11633 } else if (this.segmented) {
11634 genSelection = this.genSegmentedBtn;
11635 } else {
11636 genSelection = this.genCommaSelection;
11637 }
11638
11639 while (length--) {
11640 children[length] = genSelection(this.selectedItems[length], length, length === children.length - 1);
11641 }
11642
11643 return children;
11644 },
11645 genSearch: function genSearch() {
11646 var _this2 = this;
11647
11648 var data = {
11649 staticClass: 'input-group--select__autocomplete',
11650 'class': {
11651 'input-group--select__autocomplete--index': this.selectedIndex > -1
11652 },
11653 style: {
11654 flex: this.shouldBreak ? '1 0 100%' : null
11655 },
11656 attrs: _extends({}, this.$attrs, {
11657 disabled: this.disabled || !this.isAutocomplete,
11658 readonly: this.readonly,
11659 tabindex: this.disabled || !this.isAutocomplete ? -1 : this.tabindex
11660 }),
11661 domProps: {
11662 value: this.maskText(this.lazySearch || '')
11663 },
11664 directives: [{
11665 name: 'show',
11666 value: this.isAutocomplete || this.placeholder && !this.selectedItems.length
11667 }],
11668 ref: 'input',
11669 key: 'input'
11670 };
11671
11672 if (this.isAutocomplete) {
11673 data.attrs.role = 'combobox';
11674 data.domProps.autocomplete = this.browserAutocomplete;
11675
11676 data.on = _extends({}, this.genListeners(), {
11677 input: function input(e) {
11678 _this2.searchValue = _this2.unmaskText(e.target.value);
11679 }
11680 });
11681
11682 data.directives = data.directives.concat(this.genDirectives());
11683 }
11684
11685 if (this.placeholder) data.domProps.placeholder = this.placeholder;
11686
11687 return this.$createElement('input', data);
11688 },
11689 genSegmentedBtn: function genSegmentedBtn(item) {
11690 if (!item.text || !item.callback) {
11691 Object(__WEBPACK_IMPORTED_MODULE_1__util_console__["b" /* consoleWarn */])('When using \'segmented\' prop without a selection slot, items must contain both a text and callback property', this);
11692 return null;
11693 }
11694
11695 return this.$createElement('v-btn', {
11696 props: {
11697 flat: true
11698 },
11699 on: {
11700 click: function click(e) {
11701 e.stopPropagation();
11702 item.callback(e);
11703 }
11704 }
11705 }, [item.text]);
11706 },
11707 genSlotSelection: function genSlotSelection(item, index) {
11708 return this.$scopedSlots.selection({
11709 parent: this,
11710 item: item,
11711 index: index,
11712 selected: index === this.selectedIndex,
11713 disabled: this.disabled || this.readonly
11714 });
11715 },
11716 genChipSelection: function genChipSelection(item, index) {
11717 var _this3 = this;
11718
11719 var isDisabled = this.disabled || this.readonly;
11720 var click = function click(e) {
11721 if (isDisabled) return;
11722
11723 e.stopPropagation();
11724 _this3.focusInput();
11725 _this3.selectedIndex = index;
11726 };
11727
11728 return this.$createElement('v-chip', {
11729 staticClass: 'chip--select-multi',
11730 attrs: { tabindex: '-1' },
11731 props: {
11732 close: this.deletableChips && !isDisabled,
11733 dark: this.dark,
11734 disabled: isDisabled,
11735 selected: index === this.selectedIndex
11736 },
11737 on: {
11738 click: click,
11739 focus: click,
11740 input: function input() {
11741 if (_this3.isMultiple) _this3.selectItem(item);else _this3.inputValue = null;
11742 }
11743 },
11744 key: this.getValue(item)
11745 }, this.getText(item));
11746 },
11747 genCommaSelection: function genCommaSelection(item, index, last) {
11748 return this.$createElement('div', {
11749 staticClass: 'input-group__selections__comma',
11750 'class': {
11751 'input-group__selections__comma--active': index === this.selectedIndex
11752 },
11753 key: JSON.stringify(this.getValue(item)) // Item may be an object
11754 }, '' + this.getText(item) + (last ? '' : ', '));
11755 },
11756 genList: function genList() {
11757 var _this4 = this;
11758
11759 var children = this.menuItems.map(function (o) {
11760 if (o.header) return _this4.genHeader(o);
11761 if (o.divider) return _this4.genDivider(o);else return _this4.genTile(o);
11762 });
11763
11764 if (!children.length) {
11765 var noData = this.$slots['no-data'];
11766 if (noData) {
11767 children.push(noData);
11768 } else {
11769 children.push(this.genTile(this.noDataText, true));
11770 }
11771 }
11772
11773 return this.$createElement('v-card', [this.$createElement('v-list', {
11774 props: {
11775 dense: this.dense
11776 },
11777 ref: 'list'
11778 }, children)]);
11779 },
11780 genHeader: function genHeader(item) {
11781 return this.$createElement('v-subheader', {
11782 props: item
11783 }, item.header);
11784 },
11785 genDivider: function genDivider(item) {
11786 return this.$createElement('v-divider', {
11787 props: item
11788 });
11789 },
11790 genLabel: function genLabel() {
11791 var singleLine = this.singleLine || this.isDropdown;
11792
11793 if (singleLine && this.isDirty || singleLine && this.isFocused && this.searchValue) return null;
11794
11795 var data = {};
11796
11797 if (this.id) data.attrs = { for: this.id };
11798
11799 return this.$createElement('label', data, this.$slots.label || this.label);
11800 },
11801 genTile: function genTile(item, disabled) {
11802 var _this5 = this;
11803
11804 var active = this.selectedItems.indexOf(item) !== -1;
11805
11806 if (typeof disabled === 'undefined') {
11807 disabled = Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["h" /* getObjectValueByPath */])(item, this.itemDisabled);
11808 }
11809
11810 var data = {
11811 on: {
11812 click: function click(e) {
11813 if (disabled) return;
11814
11815 _this5.selectItem(item);
11816 }
11817 },
11818 props: {
11819 avatar: item === Object(item) && this.itemAvatar in item,
11820 ripple: true,
11821 value: active
11822 }
11823 };
11824
11825 if (disabled) {
11826 data.props.disabled = disabled;
11827 }
11828
11829 data.props.activeClass = Object.keys(this.addTextColorClassChecks()).join(' ');
11830
11831 if (this.$scopedSlots.item) {
11832 var tile = this.$scopedSlots.item({ parent: this, item: item, tile: data });
11833 return this.needsTile(tile) ? this.$createElement('v-list-tile', data, [tile]) : tile;
11834 }
11835
11836 return this.$createElement('v-list-tile', data, [this.genAction(item, active), this.genContent(item)]);
11837 },
11838 genAction: function genAction(item, active) {
11839 var _this6 = this;
11840
11841 if (!this.isMultiple || this.isHidingSelected) return null;
11842
11843 var data = {
11844 staticClass: 'list__tile__action--select-multi',
11845 on: {
11846 click: function click(e) {
11847 e.stopPropagation();
11848 _this6.selectItem(item);
11849 }
11850 }
11851 };
11852
11853 return this.$createElement('v-list-tile-action', data, [this.$createElement('v-checkbox', {
11854 props: {
11855 color: this.computedColor,
11856 inputValue: active
11857 }
11858 })]);
11859 },
11860 genContent: function genContent(item) {
11861 var text = this.getText(item);
11862
11863 return this.$createElement('v-list-tile-content', [this.$createElement('v-list-tile-title', {
11864 domProps: {
11865 innerHTML: this.genFiltered(text)
11866 }
11867 })]);
11868 }
11869 }
11870});
11871
11872/***/ }),
11873/* 149 */
11874/***/ (function(module, __webpack_exports__, __webpack_require__) {
11875
11876"use strict";
11877/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util_helpers__ = __webpack_require__(2);
11878// Helpers
11879
11880
11881/**
11882 * Select helpers
11883 *
11884 * @mixin
11885 *
11886 * Helper methods for the
11887 * v-select component
11888 */
11889/* harmony default export */ __webpack_exports__["a"] = ({
11890 methods: {
11891 getText: function getText(item) {
11892 return this.getPropertyFromItem(item, this.itemText);
11893 },
11894 getValue: function getValue(item) {
11895 return this.getPropertyFromItem(item, this.itemValue);
11896 },
11897 getPropertyFromItem: function getPropertyFromItem(item, field) {
11898 if (item !== Object(item)) return item;
11899
11900 var value = Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["h" /* getObjectValueByPath */])(item, field);
11901
11902 return typeof value === 'undefined' ? item : value;
11903 }
11904 }
11905});
11906
11907/***/ }),
11908/* 150 */
11909/***/ (function(module, __webpack_exports__, __webpack_require__) {
11910
11911"use strict";
11912/**
11913 * Select menu methods
11914 *
11915 * @mixin
11916 *
11917 * Menu based methods for
11918 * the v-select component
11919 */
11920/* harmony default export */ __webpack_exports__["a"] = ({
11921 methods: {
11922 activateInput: function activateInput() {
11923 this.isActive = true;
11924 this.isFocused = true;
11925 },
11926 deactivateInput: function deactivateInput() {
11927 this.isFocused = false;
11928 this.isActive = false;
11929 this.selectedIndex = -1;
11930 },
11931 hideMenu: function hideMenu() {
11932 this.menuIsActive = false;
11933 },
11934 showMenu: function showMenu() {
11935 this.activateInput();
11936 this.showMenuItems();
11937 this.isMultiple && this.resetMenuIndex();
11938 },
11939 showMenuItems: function showMenuItems() {
11940 this.menuIsActive = true;
11941 },
11942 toggleMenu: function toggleMenu() {
11943 if (this.disabled || this.readonly || this.menuIsVisible) return this.hideMenu();
11944
11945 this.showMenu();
11946 this.focusInput();
11947 }
11948 }
11949});
11950
11951/***/ }),
11952/* 151 */
11953/***/ (function(module, __webpack_exports__, __webpack_require__) {
11954
11955"use strict";
11956/* harmony default export */ __webpack_exports__["a"] = ({
11957 props: {
11958 appendIcon: {
11959 type: String,
11960 default: 'arrow_drop_down'
11961 },
11962 appendIconCb: Function,
11963 attach: Boolean,
11964 auto: Boolean,
11965 autocomplete: Boolean,
11966 browserAutocomplete: {
11967 type: String,
11968 default: 'on'
11969 },
11970 cacheItems: Boolean,
11971 chips: Boolean,
11972 clearable: Boolean,
11973 combobox: Boolean,
11974 contentClass: String,
11975 debounceSearch: {
11976 type: [Number, String],
11977 default: 200
11978 },
11979 deletableChips: Boolean,
11980 dense: Boolean,
11981 editable: Boolean,
11982 hideSelected: Boolean,
11983 items: {
11984 type: Array,
11985 default: function _default() {
11986 return [];
11987 }
11988 },
11989 itemAvatar: {
11990 type: String,
11991 default: 'avatar'
11992 },
11993 itemDisabled: {
11994 type: String,
11995 default: 'disabled'
11996 },
11997 itemText: {
11998 type: String,
11999 default: 'text'
12000 },
12001 itemValue: {
12002 type: String,
12003 default: 'value'
12004 },
12005 maxHeight: {
12006 type: [Number, String],
12007 default: 300
12008 },
12009 minWidth: {
12010 type: [Boolean, Number, String],
12011 default: false
12012 },
12013 multiple: Boolean,
12014 multiLine: Boolean,
12015 openOnClear: Boolean,
12016 overflow: Boolean,
12017 returnObject: Boolean,
12018 searchInput: {
12019 default: null
12020 },
12021 segmented: Boolean,
12022 singleLine: Boolean,
12023 tags: Boolean,
12024 valueComparator: {
12025 type: Function,
12026 default: function _default(a, b) {
12027 if (a !== Object(a)) return a === b;
12028 var aProps = Object.keys(a);
12029 var bProps = Object.keys(b);
12030 return aProps.length === bProps.length && aProps.every(function (propName) {
12031 return a[propName] === b[propName];
12032 });
12033 }
12034 }
12035 }
12036});
12037
12038/***/ }),
12039/* 152 */
12040/***/ (function(module, __webpack_exports__, __webpack_require__) {
12041
12042"use strict";
12043/**
12044 * Select watchers
12045 *
12046 * @mixin
12047 *
12048 * Watchers for the
12049 * v-select component
12050 */
12051/* harmony default export */ __webpack_exports__["a"] = ({
12052 watch: {
12053 filteredItems: function filteredItems() {
12054 this.$refs.menu && this.$refs.menu.updateDimensions();
12055 },
12056 inputValue: function inputValue(val) {
12057 // Search for an existing item when a
12058 // value was selected from the menu
12059 if (this.combobox && this.isNotFiltering) {
12060 val = this.findExistingItem(val);
12061 }
12062
12063 // Populate selected items
12064 this.genSelectedItems(val);
12065
12066 // Only fire an update
12067 // if values do not
12068 // match
12069 val !== this.value && this.$emit('input', val);
12070
12071 // When inputValue is changed
12072 // and combobox is true set
12073 // menu property to false
12074 if (this.combobox) this.menuIsActive = false;
12075 },
12076 isActive: function isActive(val) {
12077 if (val) {
12078 if (!this.chips && !this.$scopedSlots.selection) {
12079 this.searchValue = this.getText(this.selectedItem);
12080 }
12081 return;
12082 }
12083
12084 this.blur();
12085
12086 if (this.tags && this.searchValue) {
12087 this.updateTags(this.searchValue);
12088 }
12089
12090 if (this.combobox && this.lazySearch && !this.isNotFiltering) {
12091 this.inputValue = this.lazySearch;
12092 }
12093
12094 // Only set search value if
12095 // there is a value to set
12096 this.searchValue && (this.searchValue = null);
12097 },
12098 isBooted: function isBooted() {
12099 var _this = this;
12100
12101 this.$nextTick(function () {
12102 if (_this.content && _this.content.addEventListener) {
12103 _this.content.addEventListener('scroll', _this.onScroll, false);
12104 }
12105 });
12106 },
12107 items: function items(val) {
12108 var _this2 = this;
12109
12110 if (this.cacheItems) {
12111 this.cachedItems = this.filterDuplicates(this.cachedItems.concat(val));
12112 }
12113
12114 this.resetMenuIndex();
12115
12116 // Tags and combobox should not
12117 // pre-select the first entry
12118 if (this.searchValue && !this.isAnyValueAllowed) {
12119 this.$nextTick(function () {
12120 return _this2.setMenuIndex(0);
12121 });
12122 }
12123
12124 this.genSelectedItems();
12125 },
12126 menuIsActive: function menuIsActive(val) {
12127 if (!val) return;
12128
12129 this.isBooted = true;
12130 },
12131 isMultiple: function isMultiple(val) {
12132 this.inputValue = val ? [] : null;
12133 },
12134 searchInput: function searchInput(val) {
12135 this.searchValue = val;
12136 },
12137 searchValue: function searchValue(val, prev) {
12138 var _this3 = this;
12139
12140 // Wrap input to next line if overflowing
12141 if (this.$refs.input.scrollWidth > this.$refs.input.clientWidth) {
12142 this.shouldBreak = true;
12143 this.$nextTick(this.$refs.menu.updateDimensions);
12144 } else if (val === null) {
12145 this.shouldBreak = false;
12146 }
12147
12148 // Activate menu if inactive and searching
12149 if (this.isActive && !this.menuIsActive && val !== this.getValue(this.selectedItem)) {
12150 this.menuIsActive = true;
12151 }
12152
12153 // Only reset list index
12154 // if typing in search
12155 val || prev && this.resetMenuIndex();
12156
12157 this.$nextTick(function () {
12158 if (val && !_this3.isAnyValueAllowed) {
12159 _this3.setMenuIndex(0);
12160 }
12161 });
12162 },
12163 selectedItems: function selectedItems() {
12164 clearTimeout(this.searchTimeout);
12165
12166 if (this.isAutocomplete) {
12167 this.$nextTick(this.$refs.menu.updateDimensions);
12168 }
12169 },
12170 value: function value(val) {
12171 this.inputValue = val;
12172 this.validate();
12173 }
12174 }
12175});
12176
12177/***/ }),
12178/* 153 */
12179/***/ (function(module, __webpack_exports__, __webpack_require__) {
12180
12181"use strict";
12182/* unused harmony export VTableOverflow */
12183/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util_helpers__ = __webpack_require__(2);
12184/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__VDataTable__ = __webpack_require__(154);
12185/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__VEditDialog__ = __webpack_require__(163);
12186/* unused harmony reexport VDataTable */
12187/* unused harmony reexport VEditDialog */
12188
12189
12190
12191
12192
12193var VTableOverflow = Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["d" /* createSimpleFunctional */])('table__overflow');
12194
12195
12196
12197/* istanbul ignore next */
12198__WEBPACK_IMPORTED_MODULE_1__VDataTable__["a" /* default */].install = function install(Vue) {
12199 Vue.component(__WEBPACK_IMPORTED_MODULE_1__VDataTable__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_1__VDataTable__["a" /* default */]);
12200 Vue.component(__WEBPACK_IMPORTED_MODULE_2__VEditDialog__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_2__VEditDialog__["a" /* default */]);
12201 Vue.component(VTableOverflow.name, VTableOverflow);
12202};
12203
12204/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_1__VDataTable__["a" /* default */]);
12205
12206/***/ }),
12207/* 154 */
12208/***/ (function(module, __webpack_exports__, __webpack_require__) {
12209
12210"use strict";
12211/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_data_iterable__ = __webpack_require__(43);
12212/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__VProgressLinear__ = __webpack_require__(53);
12213/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_head__ = __webpack_require__(159);
12214/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_body__ = __webpack_require__(160);
12215/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__mixins_foot__ = __webpack_require__(161);
12216/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__mixins_progress__ = __webpack_require__(162);
12217/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__util_helpers__ = __webpack_require__(2);
12218__webpack_require__(155);
12219__webpack_require__(156);
12220
12221
12222
12223
12224
12225
12226
12227
12228
12229
12230
12231
12232/* harmony default export */ __webpack_exports__["a"] = ({
12233 name: 'v-data-table',
12234
12235 components: {
12236 VProgressLinear: __WEBPACK_IMPORTED_MODULE_1__VProgressLinear__["a" /* default */],
12237 // Importing does not work properly
12238 'v-table-overflow': Object(__WEBPACK_IMPORTED_MODULE_6__util_helpers__["d" /* createSimpleFunctional */])('table__overflow')
12239 },
12240
12241 data: function data() {
12242 return {
12243 actionsClasses: 'datatable__actions',
12244 actionsRangeControlsClasses: 'datatable__actions__range-controls',
12245 actionsSelectClasses: 'datatable__actions__select',
12246 actionsPaginationClasses: 'datatable__actions__pagination'
12247 };
12248 },
12249
12250
12251 mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_data_iterable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__mixins_head__["a" /* default */], __WEBPACK_IMPORTED_MODULE_3__mixins_body__["a" /* default */], __WEBPACK_IMPORTED_MODULE_4__mixins_foot__["a" /* default */], __WEBPACK_IMPORTED_MODULE_5__mixins_progress__["a" /* default */]],
12252
12253 props: {
12254 headers: {
12255 type: Array,
12256 default: function _default() {
12257 return [];
12258 }
12259 },
12260 headerText: {
12261 type: String,
12262 default: 'text'
12263 },
12264 hideHeaders: Boolean,
12265 rowsPerPageText: {
12266 type: String,
12267 default: 'Rows per page:'
12268 },
12269 customFilter: {
12270 type: Function,
12271 default: function _default(items, search, filter, headers) {
12272 search = search.toString().toLowerCase();
12273 if (search.trim() === '') return items;
12274
12275 var props = headers.map(function (h) {
12276 return h.value;
12277 });
12278
12279 return items.filter(function (item) {
12280 return props.some(function (prop) {
12281 return filter(Object(__WEBPACK_IMPORTED_MODULE_6__util_helpers__["h" /* getObjectValueByPath */])(item, prop), search);
12282 });
12283 });
12284 }
12285 }
12286 },
12287
12288 computed: {
12289 classes: function classes() {
12290 return {
12291 'datatable table': true,
12292 'datatable--select-all': this.selectAll !== false,
12293 'theme--dark': this.dark,
12294 'theme--light': this.light
12295 };
12296 },
12297 filteredItems: function filteredItems() {
12298 return this.filteredItemsImpl(this.headers);
12299 }
12300 },
12301
12302 methods: {
12303 needsTR: function needsTR(row) {
12304 return row.length && row.find(function (c) {
12305 return c.tag === 'td' || c.tag === 'th';
12306 });
12307 },
12308 genTR: function genTR(children) {
12309 var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
12310
12311 return this.$createElement('tr', data, children);
12312 }
12313 },
12314
12315 created: function created() {
12316 var firstSortable = this.headers.find(function (h) {
12317 return !('sortable' in h) || h.sortable;
12318 });
12319
12320 this.defaultPagination.sortBy = !this.disableInitialSort && firstSortable ? firstSortable.value : null;
12321
12322 this.initPagination();
12323 },
12324 render: function render(h) {
12325 var tableOverflow = h('v-table-overflow', {}, [h('table', {
12326 'class': this.classes
12327 }, [this.genTHead(), this.genTBody(), this.genTFoot()])]);
12328
12329 return h('div', [tableOverflow, this.genActionsFooter()]);
12330 }
12331});
12332
12333/***/ }),
12334/* 155 */
12335/***/ (function(module, exports) {
12336
12337// removed by extract-text-webpack-plugin
12338
12339/***/ }),
12340/* 156 */
12341/***/ (function(module, exports) {
12342
12343// removed by extract-text-webpack-plugin
12344
12345/***/ }),
12346/* 157 */
12347/***/ (function(module, __webpack_exports__, __webpack_require__) {
12348
12349"use strict";
12350/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_colorable__ = __webpack_require__(0);
12351/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__transitions__ = __webpack_require__(6);
12352function _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; }
12353
12354__webpack_require__(158);
12355
12356
12357
12358
12359
12360/* harmony default export */ __webpack_exports__["a"] = ({
12361 name: 'v-progress-linear',
12362
12363 components: {
12364 VFadeTransition: __WEBPACK_IMPORTED_MODULE_1__transitions__["b" /* VFadeTransition */],
12365 VSlideXTransition: __WEBPACK_IMPORTED_MODULE_1__transitions__["d" /* VSlideXTransition */]
12366 },
12367
12368 mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_colorable__["a" /* default */]],
12369
12370 props: {
12371 active: {
12372 type: Boolean,
12373 default: true
12374 },
12375 backgroundColor: {
12376 type: String,
12377 default: null
12378 },
12379 backgroundOpacity: {
12380 type: [Number, String],
12381 default: null
12382 },
12383 bufferValue: {
12384 type: [Number, String],
12385 default: 100
12386 },
12387 color: {
12388 type: String,
12389 default: 'primary'
12390 },
12391 height: {
12392 type: [Number, String],
12393 default: 7
12394 },
12395 indeterminate: Boolean,
12396 query: Boolean,
12397 value: {
12398 type: [Number, String],
12399 default: 0
12400 }
12401 },
12402
12403 computed: {
12404 styles: function styles() {
12405 var styles = {};
12406
12407 if (!this.active) {
12408 styles.height = 0;
12409 }
12410
12411 if (!this.indeterminate && parseInt(this.bufferValue, 10) !== 100) {
12412 styles.width = this.bufferValue + '%';
12413 }
12414
12415 return styles;
12416 },
12417 effectiveWidth: function effectiveWidth() {
12418 if (!this.bufferValue) {
12419 return 0;
12420 }
12421
12422 return this.value * 100 / this.bufferValue;
12423 },
12424 backgroundStyle: function backgroundStyle() {
12425 var backgroundOpacity = this.backgroundOpacity == null ? this.backgroundColor ? 1 : 0.3 : parseFloat(this.backgroundOpacity);
12426
12427 return {
12428 height: this.active ? this.height + 'px' : 0,
12429 opacity: backgroundOpacity,
12430 width: this.bufferValue + '%'
12431 };
12432 }
12433 },
12434
12435 methods: {
12436 genDeterminate: function genDeterminate(h) {
12437 return h('div', {
12438 ref: 'front',
12439 staticClass: 'progress-linear__bar__determinate',
12440 class: this.addBackgroundColorClassChecks(),
12441 style: {
12442 width: this.effectiveWidth + '%'
12443 }
12444 });
12445 },
12446 genBar: function genBar(h, name) {
12447 return h('div', {
12448 staticClass: 'progress-linear__bar__indeterminate',
12449 class: this.addBackgroundColorClassChecks(_defineProperty({}, name, true))
12450 });
12451 },
12452 genIndeterminate: function genIndeterminate(h) {
12453 return h('div', {
12454 ref: 'front',
12455 staticClass: 'progress-linear__bar__indeterminate',
12456 class: {
12457 'progress-linear__bar__indeterminate--active': this.active
12458 }
12459 }, [this.genBar(h, 'long'), this.genBar(h, 'short')]);
12460 }
12461 },
12462
12463 render: function render(h) {
12464 var fade = h('v-fade-transition', [this.indeterminate && this.genIndeterminate(h)]);
12465 var slide = h('v-slide-x-transition', [!this.indeterminate && this.genDeterminate(h)]);
12466
12467 var bar = h('div', {
12468 staticClass: 'progress-linear__bar',
12469 style: this.styles
12470 }, [fade, slide]);
12471 var background = h('div', {
12472 staticClass: 'progress-linear__background',
12473 class: [this.backgroundColor || this.color],
12474 style: this.backgroundStyle
12475 });
12476
12477 return h('div', {
12478 staticClass: 'progress-linear',
12479 class: {
12480 'progress-linear--query': this.query
12481 },
12482 style: {
12483 height: this.height + 'px'
12484 },
12485 on: this.$listeners
12486 }, [background, bar]);
12487 }
12488});
12489
12490/***/ }),
12491/* 158 */
12492/***/ (function(module, exports) {
12493
12494// removed by extract-text-webpack-plugin
12495
12496/***/ }),
12497/* 159 */
12498/***/ (function(module, __webpack_exports__, __webpack_require__) {
12499
12500"use strict";
12501/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util_console__ = __webpack_require__(7);
12502function _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); } }
12503
12504
12505
12506/* harmony default export */ __webpack_exports__["a"] = ({
12507 methods: {
12508 genTHead: function genTHead() {
12509 var _this = this;
12510
12511 if (this.hideHeaders) return; // Exit Early since no headers are needed.
12512
12513 var children = [];
12514
12515 if (this.$scopedSlots.headers) {
12516 var row = this.$scopedSlots.headers({
12517 headers: this.headers,
12518 indeterminate: this.indeterminate,
12519 all: this.everyItem
12520 });
12521
12522 children = [this.needsTR(row) ? this.genTR(row) : row, this.genTProgress()];
12523 } else {
12524 var _row = this.headers.map(function (o) {
12525 return _this.genHeader(o);
12526 });
12527 var checkbox = this.$createElement('v-checkbox', {
12528 props: {
12529 dark: this.dark,
12530 light: this.light,
12531 color: this.selectAll === true ? '' : this.selectAll,
12532 hideDetails: true,
12533 inputValue: this.everyItem,
12534 indeterminate: this.indeterminate
12535 },
12536 on: { change: this.toggle }
12537 });
12538
12539 this.hasSelectAll && _row.unshift(this.$createElement('th', [checkbox]));
12540
12541 children = [this.genTR(_row), this.genTProgress()];
12542 }
12543
12544 return this.$createElement('thead', [children]);
12545 },
12546 genHeader: function genHeader(header) {
12547 var array = [this.$scopedSlots.headerCell ? this.$scopedSlots.headerCell({ header: header }) : header[this.headerText]];
12548
12549 return this.$createElement.apply(this, ['th'].concat(_toConsumableArray(this.genHeaderData(header, array))));
12550 },
12551 genHeaderData: function genHeaderData(header, children) {
12552 var classes = ['column'];
12553 var data = {
12554 key: header[this.headerText],
12555 attrs: {
12556 role: 'columnheader',
12557 scope: 'col',
12558 width: header.width || null,
12559 'aria-label': header[this.headerText] || '',
12560 'aria-sort': 'none'
12561 }
12562 };
12563
12564 if ('sortable' in header && header.sortable || !('sortable' in header)) {
12565 this.genHeaderSortingData(header, children, data, classes);
12566 } else {
12567 data.attrs['aria-label'] += ': Not sorted.'; // TODO: Localization
12568 }
12569
12570 classes.push('text-xs-' + (header.align || 'right'));
12571 if (Array.isArray(header.class)) {
12572 classes.push.apply(classes, _toConsumableArray(header.class));
12573 } else if (header.class) {
12574 classes.push(header.class);
12575 }
12576 data.class = classes;
12577
12578 return [data, children];
12579 },
12580 genHeaderSortingData: function genHeaderSortingData(header, children, data, classes) {
12581 var _this2 = this;
12582
12583 if (!('value' in header)) {
12584 Object(__WEBPACK_IMPORTED_MODULE_0__util_console__["b" /* consoleWarn */])('Headers must have a value property that corresponds to a value in the v-model array', this);
12585 }
12586
12587 data.attrs.tabIndex = 0;
12588 data.on = {
12589 click: function click() {
12590 _this2.expanded = {};
12591 _this2.sort(header.value);
12592 },
12593 keydown: function keydown(e) {
12594 // check for space
12595 if (e.keyCode === 32) {
12596 e.preventDefault();
12597 _this2.sort(header.value);
12598 }
12599 }
12600 };
12601
12602 classes.push('sortable');
12603 var icon = this.$createElement('v-icon', {
12604 props: {
12605 small: true
12606 }
12607 }, 'arrow_upward');
12608 if (header.align && header.align === 'left') {
12609 children.push(icon);
12610 } else {
12611 children.unshift(icon);
12612 }
12613
12614 var pagination = this.computedPagination;
12615 var beingSorted = pagination.sortBy === header.value;
12616 if (beingSorted) {
12617 classes.push('active');
12618 if (pagination.descending) {
12619 classes.push('desc');
12620 data.attrs['aria-sort'] = 'descending';
12621 data.attrs['aria-label'] += ': Sorted descending. Activate to remove sorting.'; // TODO: Localization
12622 } else {
12623 classes.push('asc');
12624 data.attrs['aria-sort'] = 'ascending';
12625 data.attrs['aria-label'] += ': Sorted ascending. Activate to sort descending.'; // TODO: Localization
12626 }
12627 } else {
12628 data.attrs['aria-label'] += ': Not sorted. Activate to sort ascending.'; // TODO: Localization
12629 }
12630 }
12631 }
12632});
12633
12634/***/ }),
12635/* 160 */
12636/***/ (function(module, __webpack_exports__, __webpack_require__) {
12637
12638"use strict";
12639/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__transitions_expand_transition__ = __webpack_require__(39);
12640
12641
12642/* harmony default export */ __webpack_exports__["a"] = ({
12643 methods: {
12644 genTBody: function genTBody() {
12645 var children = this.genItems();
12646
12647 return this.$createElement('tbody', children);
12648 },
12649 genExpandedRow: function genExpandedRow(props) {
12650 var children = [];
12651
12652 if (this.isExpanded(props.item)) {
12653 var expand = this.$createElement('div', {
12654 class: 'datatable__expand-content',
12655 key: props.item[this.itemKey]
12656 }, this.$scopedSlots.expand(props));
12657
12658 children.push(expand);
12659 }
12660
12661 var transition = this.$createElement('transition-group', {
12662 class: 'datatable__expand-col',
12663 attrs: { colspan: '100%' },
12664 props: {
12665 tag: 'td'
12666 },
12667 on: Object(__WEBPACK_IMPORTED_MODULE_0__transitions_expand_transition__["a" /* default */])('datatable__expand-col--expanded')
12668 }, children);
12669
12670 return this.genTR([transition], { class: 'datatable__expand-row' });
12671 },
12672 genFilteredItems: function genFilteredItems() {
12673 if (!this.$scopedSlots.items) {
12674 return null;
12675 }
12676
12677 var rows = [];
12678 for (var index = 0, len = this.filteredItems.length; index < len; ++index) {
12679 var item = this.filteredItems[index];
12680 var props = this.createProps(item, index);
12681 var row = this.$scopedSlots.items(props);
12682
12683 rows.push(this.needsTR(row) ? this.genTR(row, {
12684 key: index,
12685 attrs: { active: this.isSelected(item) }
12686 }) : row);
12687
12688 if (this.$scopedSlots.expand) {
12689 var expandRow = this.genExpandedRow(props);
12690 rows.push(expandRow);
12691 }
12692 }
12693
12694 return rows;
12695 },
12696 genEmptyItems: function genEmptyItems(content) {
12697 return this.genTR([this.$createElement('td', {
12698 'class': 'text-xs-center',
12699 attrs: { colspan: '100%' }
12700 }, content)]);
12701 }
12702 }
12703});
12704
12705/***/ }),
12706/* 161 */
12707/***/ (function(module, __webpack_exports__, __webpack_require__) {
12708
12709"use strict";
12710/* harmony default export */ __webpack_exports__["a"] = ({
12711 methods: {
12712 genTFoot: function genTFoot() {
12713 if (!this.$slots.footer) {
12714 return null;
12715 }
12716
12717 var footer = this.$slots.footer;
12718 var row = this.needsTR(footer) ? this.genTR(footer) : footer;
12719
12720 return this.$createElement('tfoot', [row]);
12721 },
12722 genActionsFooter: function genActionsFooter() {
12723 if (this.hideActions) {
12724 return null;
12725 }
12726
12727 return this.$createElement('div', {
12728 'class': this.classes
12729 }, this.genActions());
12730 }
12731 }
12732});
12733
12734/***/ }),
12735/* 162 */
12736/***/ (function(module, __webpack_exports__, __webpack_require__) {
12737
12738"use strict";
12739/* harmony default export */ __webpack_exports__["a"] = ({
12740 methods: {
12741 genTProgress: function genTProgress() {
12742 var col = this.$createElement('th', {
12743 staticClass: 'column',
12744 attrs: {
12745 colspan: '100%'
12746 }
12747 }, [this.genProgress()]);
12748
12749 return this.genTR([col], {
12750 staticClass: 'datatable__progress'
12751 });
12752 }
12753 }
12754});
12755
12756/***/ }),
12757/* 163 */
12758/***/ (function(module, __webpack_exports__, __webpack_require__) {
12759
12760"use strict";
12761__webpack_require__(164);
12762
12763/* harmony default export */ __webpack_exports__["a"] = ({
12764 name: 'v-edit-dialog',
12765
12766 data: function data() {
12767 return {
12768 isActive: false,
12769 isSaving: false
12770 };
12771 },
12772
12773
12774 props: {
12775 cancelText: {
12776 default: 'Cancel'
12777 },
12778 large: Boolean,
12779 lazy: Boolean,
12780 saveText: {
12781 default: 'Save'
12782 },
12783 transition: {
12784 type: String,
12785 default: 'slide-x-reverse-transition'
12786 }
12787 },
12788
12789 watch: {
12790 isActive: function isActive(val) {
12791 val && this.$emit('open') && setTimeout(this.focus, 50); // Give DOM time to paint
12792
12793 if (!val) {
12794 !this.isSaving && this.$emit('cancel');
12795 this.isSaving && this.$emit('close');
12796 this.isSaving = false;
12797 }
12798 }
12799 },
12800
12801 methods: {
12802 cancel: function cancel() {
12803 this.isActive = false;
12804 },
12805 focus: function focus() {
12806 var input = this.$refs.content.querySelector('input');
12807 input && input.focus();
12808 },
12809 save: function save() {
12810 this.isSaving = true;
12811 this.isActive = false;
12812 this.$emit('save');
12813 },
12814 genButton: function genButton(fn, text) {
12815 return this.$createElement('v-btn', {
12816 props: {
12817 flat: true,
12818 color: 'primary',
12819 light: true
12820 },
12821 on: { click: fn }
12822 }, text);
12823 },
12824 genActions: function genActions() {
12825 return this.$createElement('div', {
12826 'class': 'small-dialog__actions'
12827 }, [this.genButton(this.cancel, this.cancelText), this.genButton(this.save, this.saveText)]);
12828 },
12829 genContent: function genContent() {
12830 var _this = this;
12831
12832 return this.$createElement('div', {
12833 on: {
12834 keydown: function keydown(e) {
12835 e.keyCode === 27 && _this.cancel();
12836 e.keyCode === 13 && _this.save();
12837 }
12838 },
12839 ref: 'content'
12840 }, [this.$slots.input]);
12841 }
12842 },
12843
12844 render: function render(h) {
12845 var _this2 = this;
12846
12847 return h('v-menu', {
12848 'class': 'small-dialog',
12849 props: {
12850 contentClass: 'small-dialog__content',
12851 transition: this.transition,
12852 origin: 'top right',
12853 right: true,
12854 value: this.isActive,
12855 closeOnContentClick: false,
12856 lazy: this.lazy
12857 },
12858 on: {
12859 input: function input(val) {
12860 return _this2.isActive = val;
12861 }
12862 }
12863 }, [h('a', {
12864 slot: 'activator'
12865 }, this.$slots.default), this.genContent(), this.large ? this.genActions() : null]);
12866 }
12867});
12868
12869/***/ }),
12870/* 164 */
12871/***/ (function(module, exports) {
12872
12873// removed by extract-text-webpack-plugin
12874
12875/***/ }),
12876/* 165 */
12877/***/ (function(module, __webpack_exports__, __webpack_require__) {
12878
12879"use strict";
12880/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VDatePicker__ = __webpack_require__(166);
12881/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__VDatePickerTitle__ = __webpack_require__(54);
12882/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__VDatePickerHeader__ = __webpack_require__(56);
12883/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__VDatePickerDateTable__ = __webpack_require__(57);
12884/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__VDatePickerMonthTable__ = __webpack_require__(59);
12885/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__VDatePickerYears__ = __webpack_require__(60);
12886/* unused harmony reexport VDatePicker */
12887/* unused harmony reexport VDatePickerTitle */
12888/* unused harmony reexport VDatePickerHeader */
12889/* unused harmony reexport VDatePickerDateTable */
12890/* unused harmony reexport VDatePickerMonthTable */
12891/* unused harmony reexport VDatePickerYears */
12892
12893
12894
12895
12896
12897
12898
12899
12900
12901/* istanbul ignore next */
12902__WEBPACK_IMPORTED_MODULE_0__VDatePicker__["a" /* default */].install = function install(Vue) {
12903 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VDatePicker__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VDatePicker__["a" /* default */]);
12904 Vue.component(__WEBPACK_IMPORTED_MODULE_1__VDatePickerTitle__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_1__VDatePickerTitle__["a" /* default */]);
12905 Vue.component(__WEBPACK_IMPORTED_MODULE_2__VDatePickerHeader__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_2__VDatePickerHeader__["a" /* default */]);
12906 Vue.component(__WEBPACK_IMPORTED_MODULE_3__VDatePickerDateTable__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_3__VDatePickerDateTable__["a" /* default */]);
12907 Vue.component(__WEBPACK_IMPORTED_MODULE_4__VDatePickerMonthTable__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_4__VDatePickerMonthTable__["a" /* default */]);
12908 Vue.component(__WEBPACK_IMPORTED_MODULE_5__VDatePickerYears__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_5__VDatePickerYears__["a" /* default */]);
12909};
12910
12911/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VDatePicker__["a" /* default */]);
12912
12913/***/ }),
12914/* 166 */
12915/***/ (function(module, __webpack_exports__, __webpack_require__) {
12916
12917"use strict";
12918/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VBtn__ = __webpack_require__(10);
12919/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__VCard__ = __webpack_require__(22);
12920/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__VIcon__ = __webpack_require__(3);
12921/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__VDatePickerTitle__ = __webpack_require__(54);
12922/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__VDatePickerHeader__ = __webpack_require__(56);
12923/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__VDatePickerDateTable__ = __webpack_require__(57);
12924/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__VDatePickerMonthTable__ = __webpack_require__(59);
12925/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__VDatePickerYears__ = __webpack_require__(60);
12926/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__mixins_picker__ = __webpack_require__(61);
12927/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__util__ = __webpack_require__(14);
12928/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__util_isValueAllowed__ = __webpack_require__(20);
12929var _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"); } }; }();
12930
12931// Components
12932
12933
12934
12935
12936
12937
12938
12939
12940
12941// Mixins
12942
12943
12944// Utils
12945
12946
12947
12948/* harmony default export */ __webpack_exports__["a"] = ({
12949 name: 'v-date-picker',
12950
12951 components: {
12952 VBtn: __WEBPACK_IMPORTED_MODULE_0__VBtn__["a" /* default */],
12953 VCard: __WEBPACK_IMPORTED_MODULE_1__VCard__["a" /* default */],
12954 VIcon: __WEBPACK_IMPORTED_MODULE_2__VIcon__["a" /* default */],
12955 VDatePickerTitle: __WEBPACK_IMPORTED_MODULE_3__VDatePickerTitle__["a" /* default */],
12956 VDatePickerHeader: __WEBPACK_IMPORTED_MODULE_4__VDatePickerHeader__["a" /* default */],
12957 VDatePickerDateTable: __WEBPACK_IMPORTED_MODULE_5__VDatePickerDateTable__["a" /* default */],
12958 VDatePickerMonthTable: __WEBPACK_IMPORTED_MODULE_6__VDatePickerMonthTable__["a" /* default */],
12959 VDatePickerYears: __WEBPACK_IMPORTED_MODULE_7__VDatePickerYears__["a" /* default */]
12960 },
12961
12962 mixins: [__WEBPACK_IMPORTED_MODULE_8__mixins_picker__["a" /* default */]],
12963
12964 data: function data() {
12965 var now = new Date();
12966 return {
12967 activePicker: this.type.toUpperCase(),
12968 defaultColor: 'accent',
12969 isReversing: false,
12970 now: now,
12971 originalDate: this.value,
12972 // tableDate is a string in 'YYYY' / 'YYYY-M' format (leading zero for month is not required)
12973 tableDate: this.type === 'month' ? '' + now.getFullYear() : now.getFullYear() + '-' + (now.getMonth() + 1)
12974 };
12975 },
12976
12977
12978 props: {
12979 allowedDates: {
12980 type: [Array, Object, Function],
12981 default: function _default() {
12982 return null;
12983 }
12984 },
12985 autosave: Boolean,
12986 appendIcon: {
12987 type: String,
12988 default: 'chevron_right'
12989 },
12990 // Function formatting the day in date picker table
12991 dayFormat: {
12992 type: Function,
12993 default: null
12994 },
12995 events: {
12996 type: [Array, Object, Function],
12997 default: function _default() {
12998 return null;
12999 }
13000 },
13001 eventColor: {
13002 type: [String, Function, Object],
13003 default: 'warning'
13004 },
13005 firstDayOfWeek: {
13006 type: [String, Number],
13007 default: 0
13008 },
13009 // Function formatting the tableDate in the day/month table header
13010 headerDateFormat: {
13011 type: Function,
13012 default: null
13013 },
13014 locale: {
13015 type: String,
13016 default: 'en-us'
13017 },
13018 // Function formatting month in the months table
13019 monthFormat: {
13020 type: Function,
13021 default: null
13022 },
13023 prependIcon: {
13024 type: String,
13025 default: 'chevron_left'
13026 },
13027 readonly: Boolean,
13028 scrollable: Boolean,
13029 showCurrent: {
13030 type: [Boolean, String],
13031 default: true
13032 },
13033 // Function formatting currently selected date in the picker title
13034 titleDateFormat: {
13035 type: Function,
13036 default: null
13037 },
13038 type: {
13039 type: String,
13040 default: 'date',
13041 validator: function validator(type) {
13042 return ['date', 'month' /*, 'year'*/].includes(type);
13043 }
13044 },
13045 value: String,
13046 // Function formatting the year in table header and pickup title
13047 yearFormat: {
13048 type: Function,
13049 default: null
13050 },
13051 yearIcon: String
13052 },
13053
13054 computed: {
13055 current: function current() {
13056 if (this.showCurrent === true) {
13057 return this.sanitizeDateString(this.now.getFullYear() + '-' + (this.now.getMonth() + 1) + '-' + this.now.getDate(), this.type);
13058 }
13059
13060 return this.showCurrent || null;
13061 },
13062 firstAllowedDate: function firstAllowedDate() {
13063 var year = this.now.getFullYear();
13064 var month = this.now.getMonth();
13065
13066 if (this.allowedDates) {
13067 for (var date = 1; date <= 31; date++) {
13068 var dateString = year + '-' + (month + 1) + '-' + date;
13069 if (isNaN(new Date(dateString).getDate())) break;
13070
13071 var sanitizedDateString = this.sanitizeDateString(dateString, 'date');
13072 if (Object(__WEBPACK_IMPORTED_MODULE_10__util_isValueAllowed__["a" /* default */])(sanitizedDateString, this.allowedDates)) {
13073 return sanitizedDateString;
13074 }
13075 }
13076 }
13077
13078 return this.sanitizeDateString(year + '-' + (month + 1) + '-' + this.now.getDate(), 'date');
13079 },
13080 firstAllowedMonth: function firstAllowedMonth() {
13081 var year = this.now.getFullYear();
13082
13083 if (this.allowedDates) {
13084 for (var month = 0; month < 12; month++) {
13085 var dateString = year + '-' + Object(__WEBPACK_IMPORTED_MODULE_9__util__["c" /* pad */])(month + 1);
13086 if (Object(__WEBPACK_IMPORTED_MODULE_10__util_isValueAllowed__["a" /* default */])(dateString, this.allowedDates)) {
13087 return dateString;
13088 }
13089 }
13090 }
13091
13092 return year + '-' + Object(__WEBPACK_IMPORTED_MODULE_9__util__["c" /* pad */])(this.now.getMonth() + 1);
13093 },
13094
13095 // inputDate MUST be a string in ISO 8601 format (including leading zero for month/day)
13096 // YYYY-MM for month picker
13097 // YYYY-MM-DD for date picker
13098 inputDate: {
13099 get: function get() {
13100 if (this.value) {
13101 return this.sanitizeDateString(this.value, this.type);
13102 }
13103
13104 return this.type === 'month' ? this.firstAllowedMonth : this.firstAllowedDate;
13105 },
13106 set: function set(value) {
13107 var date = value == null ? this.originalDate : this.sanitizeDateString(value, this.type);
13108 this.$emit('input', date);
13109 }
13110 },
13111 day: function day() {
13112 return this.inputDate.split('-')[2] * 1;
13113 },
13114 month: function month() {
13115 return this.inputDate.split('-')[1] - 1;
13116 },
13117 year: function year() {
13118 return this.inputDate.split('-')[0] * 1;
13119 },
13120 tableMonth: function tableMonth() {
13121 return this.tableDate.split('-')[1] - 1;
13122 },
13123 tableYear: function tableYear() {
13124 return this.tableDate.split('-')[0] * 1;
13125 },
13126 formatters: function formatters() {
13127 return {
13128 year: this.yearFormat || Object(__WEBPACK_IMPORTED_MODULE_9__util__["a" /* createNativeLocaleFormatter */])(this.locale, { year: 'numeric', timeZone: 'UTC' }, { length: 4 }),
13129 titleDate: this.titleDateFormat || this.defaultTitleDateFormatter
13130 };
13131 },
13132 defaultTitleDateFormatter: function defaultTitleDateFormatter() {
13133 var titleFormats = {
13134 year: { year: 'numeric', timeZone: 'UTC' },
13135 month: { month: 'long', timeZone: 'UTC' },
13136 date: { weekday: 'short', month: 'short', day: 'numeric', timeZone: 'UTC' }
13137 };
13138
13139 var titleDateFormatter = Object(__WEBPACK_IMPORTED_MODULE_9__util__["a" /* createNativeLocaleFormatter */])(this.locale, titleFormats[this.type], {
13140 start: 0,
13141 length: { date: 10, month: 7, year: 4 }[this.type]
13142 });
13143
13144 var landscapeFormatter = function landscapeFormatter(date) {
13145 return titleDateFormatter(date).replace(/([^\d\s])([\d])/g, function (match, nonDigit, digit) {
13146 return nonDigit + ' ' + digit;
13147 }).replace(', ', ',<br>');
13148 };
13149
13150 return this.landscape ? landscapeFormatter : titleDateFormatter;
13151 }
13152 },
13153
13154 watch: {
13155 tableDate: function tableDate(val, prev) {
13156 // Make a ISO 8601 strings from val and prev for comparision, otherwise it will incorrectly
13157 // compare for example '2000-9' and '2000-10'
13158 var sanitizeType = this.type === 'month' ? 'year' : 'month';
13159 this.isReversing = this.sanitizeDateString(val, sanitizeType) < this.sanitizeDateString(prev, sanitizeType);
13160 },
13161 value: function value(val) {
13162 val && this.setTableDate();
13163 },
13164 type: function type(_type) {
13165 this.activePicker = _type.toUpperCase();
13166
13167 if (this.value) {
13168 var date = this.sanitizeDateString(this.value, _type);
13169 this.$emit('input', Object(__WEBPACK_IMPORTED_MODULE_10__util_isValueAllowed__["a" /* default */])(date, this.allowedDates) ? date : null);
13170 }
13171 }
13172 },
13173
13174 created: function created() {
13175 this.setTableDate();
13176 },
13177
13178
13179 methods: {
13180 setTableDate: function setTableDate() {
13181 this.tableDate = this.type === 'month' ? '' + this.year : this.year + '-' + Object(__WEBPACK_IMPORTED_MODULE_9__util__["c" /* pad */])(this.month + 1);
13182 },
13183 save: function save() {
13184 if (this.originalDate) {
13185 this.originalDate = this.value;
13186 } else {
13187 this.originalDate = this.inputDate;
13188 }
13189
13190 if (this.$parent && this.$parent.isActive) this.$parent.isActive = false;
13191 },
13192 cancel: function cancel() {
13193 this.inputDate = this.originalDate;
13194 if (this.$parent && this.$parent.isActive) this.$parent.isActive = false;
13195 },
13196 yearClick: function yearClick(value) {
13197 if (this.type === 'month') {
13198 var date = value + '-' + Object(__WEBPACK_IMPORTED_MODULE_9__util__["c" /* pad */])(this.month + 1);
13199 if (Object(__WEBPACK_IMPORTED_MODULE_10__util_isValueAllowed__["a" /* default */])(date, this.allowedDates)) this.inputDate = date;
13200 this.tableDate = '' + value;
13201 } else {
13202 var _date = value + '-' + Object(__WEBPACK_IMPORTED_MODULE_9__util__["c" /* pad */])(this.tableMonth + 1) + '-' + Object(__WEBPACK_IMPORTED_MODULE_9__util__["c" /* pad */])(this.day);
13203 if (Object(__WEBPACK_IMPORTED_MODULE_10__util_isValueAllowed__["a" /* default */])(_date, this.allowedDates)) this.inputDate = _date;
13204 this.tableDate = value + '-' + Object(__WEBPACK_IMPORTED_MODULE_9__util__["c" /* pad */])(this.tableMonth + 1);
13205 }
13206 this.activePicker = 'MONTH';
13207 },
13208 monthClick: function monthClick(value) {
13209 var _this = this;
13210
13211 // Updates inputDate setting 'YYYY-MM' or 'YYYY-MM-DD' format, depending on the picker type
13212 if (this.type === 'date') {
13213 var date = value + '-' + Object(__WEBPACK_IMPORTED_MODULE_9__util__["c" /* pad */])(this.day);
13214 if (Object(__WEBPACK_IMPORTED_MODULE_10__util_isValueAllowed__["a" /* default */])(date, this.allowedDates)) this.inputDate = date;
13215 this.tableDate = value;
13216 this.activePicker = 'DATE';
13217 } else {
13218 this.inputDate = value;
13219 this.$nextTick(function () {
13220 return _this.autosave && _this.save();
13221 });
13222 }
13223 },
13224 dateClick: function dateClick(value) {
13225 var _this2 = this;
13226
13227 this.inputDate = value;
13228 this.$nextTick(function () {
13229 return _this2.autosave && _this2.save();
13230 });
13231 },
13232 genPickerTitle: function genPickerTitle() {
13233 var _this3 = this;
13234
13235 return this.$createElement('v-date-picker-title', {
13236 props: {
13237 date: this.formatters.titleDate(this.inputDate),
13238 selectingYear: this.activePicker === 'YEAR',
13239 year: this.formatters.year('' + this.year),
13240 yearIcon: this.yearIcon
13241 },
13242 slot: 'title',
13243 style: this.readonly ? {
13244 'pointer-events': 'none'
13245 } : undefined,
13246 on: {
13247 'update:selectingYear': function updateSelectingYear(value) {
13248 return _this3.activePicker = value ? 'YEAR' : _this3.type.toUpperCase();
13249 }
13250 }
13251 });
13252 },
13253 genTableHeader: function genTableHeader() {
13254 var _this4 = this;
13255
13256 return this.$createElement('v-date-picker-header', {
13257 props: {
13258 appendIcon: this.appendIcon,
13259 color: this.color,
13260 disabled: this.readonly,
13261 format: this.headerDateFormat,
13262 locale: this.locale,
13263 prependIcon: this.prependIcon,
13264 value: this.activePicker === 'DATE' ? this.tableDate : '' + this.tableYear
13265 },
13266 on: {
13267 toggle: function toggle() {
13268 return _this4.activePicker = _this4.activePicker === 'DATE' ? 'MONTH' : 'YEAR';
13269 },
13270 input: function input(value) {
13271 return _this4.tableDate = value;
13272 }
13273 }
13274 });
13275 },
13276 genDateTable: function genDateTable() {
13277 var _this5 = this;
13278
13279 return this.$createElement('v-date-picker-date-table', {
13280 props: {
13281 allowedDates: this.allowedDates,
13282 color: this.color,
13283 current: this.current,
13284 disabled: this.readonly,
13285 events: this.events,
13286 eventColor: this.eventColor,
13287 firstDayOfWeek: this.firstDayOfWeek,
13288 format: this.dayFormat,
13289 locale: this.locale,
13290 tableDate: this.tableDate,
13291 scrollable: this.scrollable,
13292 value: this.value
13293 },
13294 ref: 'table',
13295 on: {
13296 input: this.dateClick,
13297 tableDate: function tableDate(value) {
13298 return _this5.tableDate = value;
13299 }
13300 }
13301 });
13302 },
13303 genMonthTable: function genMonthTable() {
13304 var _this6 = this;
13305
13306 return this.$createElement('v-date-picker-month-table', {
13307 props: {
13308 allowedDates: this.type === 'month' ? this.allowedDates : null,
13309 color: this.color,
13310 current: this.current,
13311 disabled: this.readonly,
13312 format: this.monthFormat,
13313 locale: this.locale,
13314 scrollable: this.scrollable,
13315 value: !this.value || this.type === 'month' ? this.value : this.value.substr(0, 7),
13316 tableDate: '' + this.tableYear
13317 },
13318 ref: 'table',
13319 on: {
13320 input: this.monthClick,
13321 tableDate: function tableDate(value) {
13322 return _this6.tableDate = value;
13323 }
13324 }
13325 });
13326 },
13327 genYears: function genYears() {
13328 return this.$createElement('v-date-picker-years', {
13329 props: {
13330 color: this.color,
13331 format: this.yearFormat,
13332 locale: this.locale,
13333 value: '' + this.tableYear
13334 },
13335 on: {
13336 input: this.yearClick
13337 }
13338 });
13339 },
13340 genPickerBody: function genPickerBody() {
13341 var children = this.activePicker === 'YEAR' ? [this.genYears()] : [this.genTableHeader(), this.activePicker === 'DATE' ? this.genDateTable() : this.genMonthTable()];
13342
13343 return this.$createElement('div', {
13344 key: this.activePicker,
13345 style: this.readonly ? {
13346 'pointer-events': 'none'
13347 } : undefined
13348 }, children);
13349 },
13350
13351 // Adds leading zero to month/day if necessary, returns 'YYYY' if type = 'year',
13352 // 'YYYY-MM' if 'month' and 'YYYY-MM-DD' if 'date'
13353 sanitizeDateString: function sanitizeDateString(dateString, type) {
13354 var _dateString$split = dateString.split('-'),
13355 _dateString$split2 = _slicedToArray(_dateString$split, 3),
13356 year = _dateString$split2[0],
13357 _dateString$split2$ = _dateString$split2[1],
13358 month = _dateString$split2$ === undefined ? 1 : _dateString$split2$,
13359 _dateString$split2$2 = _dateString$split2[2],
13360 date = _dateString$split2$2 === undefined ? 1 : _dateString$split2$2;
13361
13362 return (year + '-' + Object(__WEBPACK_IMPORTED_MODULE_9__util__["c" /* pad */])(month) + '-' + Object(__WEBPACK_IMPORTED_MODULE_9__util__["c" /* pad */])(date)).substr(0, { date: 10, month: 7, year: 4 }[type]);
13363 }
13364 },
13365
13366 render: function render(h) {
13367 return this.genPicker('picker--date');
13368 }
13369});
13370
13371/***/ }),
13372/* 167 */
13373/***/ (function(module, exports) {
13374
13375// removed by extract-text-webpack-plugin
13376
13377/***/ }),
13378/* 168 */
13379/***/ (function(module, exports) {
13380
13381// removed by extract-text-webpack-plugin
13382
13383/***/ }),
13384/* 169 */
13385/***/ (function(module, __webpack_exports__, __webpack_require__) {
13386
13387"use strict";
13388/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__pad__ = __webpack_require__(24);
13389var _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"); } }; }();
13390
13391
13392
13393/* harmony default export */ __webpack_exports__["a"] = (function (locale, options) {
13394 var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { start: 0, length: 0 },
13395 start = _ref.start,
13396 length = _ref.length;
13397
13398 var makeIsoString = function makeIsoString(dateString) {
13399 var _dateString$trim$spli = dateString.trim().split(' ')[0].split('-'),
13400 _dateString$trim$spli2 = _slicedToArray(_dateString$trim$spli, 3),
13401 year = _dateString$trim$spli2[0],
13402 month = _dateString$trim$spli2[1],
13403 date = _dateString$trim$spli2[2];
13404
13405 return [year, Object(__WEBPACK_IMPORTED_MODULE_0__pad__["a" /* default */])(month || 1), Object(__WEBPACK_IMPORTED_MODULE_0__pad__["a" /* default */])(date || 1)].join('-');
13406 };
13407
13408 try {
13409 var intlFormatter = new Intl.DateTimeFormat(locale || undefined, options);
13410 return function (dateString) {
13411 return intlFormatter.format(new Date(makeIsoString(dateString) + 'T00:00:00+00:00'));
13412 };
13413 } catch (e) {
13414 return start || length ? function (dateString) {
13415 return makeIsoString(dateString).substr(start, length);
13416 } : null;
13417 }
13418});
13419
13420/***/ }),
13421/* 170 */
13422/***/ (function(module, __webpack_exports__, __webpack_require__) {
13423
13424"use strict";
13425/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__pad__ = __webpack_require__(24);
13426var _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"); } }; }();
13427
13428
13429
13430/**
13431 * @param {String} value YYYY-MM format
13432 * @param {Number} sign -1 or +1
13433 */
13434/* harmony default export */ __webpack_exports__["a"] = (function (value, sign) {
13435 var _value$split$map = value.split('-').map(function (v) {
13436 return 1 * v;
13437 }),
13438 _value$split$map2 = _slicedToArray(_value$split$map, 2),
13439 year = _value$split$map2[0],
13440 month = _value$split$map2[1];
13441
13442 if (month + sign === 0) {
13443 return year - 1 + '-12';
13444 } else if (month + sign === 13) {
13445 return year + 1 + '-01';
13446 } else {
13447 return year + '-' + Object(__WEBPACK_IMPORTED_MODULE_0__pad__["a" /* default */])(month + sign);
13448 }
13449});
13450
13451/***/ }),
13452/* 171 */
13453/***/ (function(module, exports) {
13454
13455// removed by extract-text-webpack-plugin
13456
13457/***/ }),
13458/* 172 */
13459/***/ (function(module, exports) {
13460
13461// removed by extract-text-webpack-plugin
13462
13463/***/ }),
13464/* 173 */
13465/***/ (function(module, __webpack_exports__, __webpack_require__) {
13466
13467"use strict";
13468/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VCard__ = __webpack_require__(22);
13469/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_colorable__ = __webpack_require__(0);
13470/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_themeable__ = __webpack_require__(1);
13471var _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; };
13472
13473__webpack_require__(174);
13474
13475// Components
13476
13477
13478// Mixins
13479
13480
13481
13482/* harmony default export */ __webpack_exports__["a"] = ({
13483 name: 'v-picker',
13484
13485 components: {
13486 VCard: __WEBPACK_IMPORTED_MODULE_0__VCard__["a" /* default */]
13487 },
13488
13489 mixins: [__WEBPACK_IMPORTED_MODULE_1__mixins_colorable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__mixins_themeable__["a" /* default */]],
13490
13491 data: function data() {
13492 return {
13493 defaultColor: 'primary'
13494 };
13495 },
13496
13497
13498 props: {
13499 landscape: Boolean,
13500 transition: {
13501 type: String,
13502 default: 'fade-transition'
13503 }
13504 },
13505
13506 computed: {
13507 computedTitleColor: function computedTitleColor() {
13508 var darkTheme = this.dark || !this.light && this.$vuetify.dark;
13509 var defaultTitleColor = darkTheme ? null : this.computedColor;
13510 return this.color || defaultTitleColor;
13511 }
13512 },
13513
13514 methods: {
13515 genTitle: function genTitle() {
13516 return this.$createElement('div', {
13517 staticClass: 'picker__title',
13518 'class': this.addBackgroundColorClassChecks({
13519 'picker__title--landscape': this.landscape
13520 }, this.computedTitleColor)
13521 }, this.$slots.title);
13522 },
13523 genBodyTransition: function genBodyTransition() {
13524 return this.$createElement('transition', {
13525 props: {
13526 name: this.transition
13527 }
13528 }, this.$slots.default);
13529 },
13530 genBody: function genBody() {
13531 return this.$createElement('div', {
13532 staticClass: 'picker__body'
13533 }, [this.genBodyTransition()]);
13534 },
13535 genActions: function genActions() {
13536 return this.$createElement('div', {
13537 staticClass: 'picker__actions card__actions'
13538 }, this.$slots.actions);
13539 }
13540 },
13541
13542 render: function render(h) {
13543 return h('v-card', {
13544 staticClass: 'picker',
13545 'class': _extends({
13546 'picker--landscape': this.landscape
13547 }, this.themeClasses)
13548 }, [this.$slots.title ? this.genTitle() : null, this.genBody(), this.$slots.actions ? this.genActions() : null]);
13549 }
13550});
13551
13552/***/ }),
13553/* 174 */
13554/***/ (function(module, exports) {
13555
13556// removed by extract-text-webpack-plugin
13557
13558/***/ }),
13559/* 175 */
13560/***/ (function(module, __webpack_exports__, __webpack_require__) {
13561
13562"use strict";
13563/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VDialog__ = __webpack_require__(34);
13564
13565
13566/* istanbul ignore next */
13567__WEBPACK_IMPORTED_MODULE_0__VDialog__["a" /* default */].install = function install(Vue) {
13568 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VDialog__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VDialog__["a" /* default */]);
13569};
13570
13571/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VDialog__["a" /* default */]);
13572
13573/***/ }),
13574/* 176 */
13575/***/ (function(module, __webpack_exports__, __webpack_require__) {
13576
13577"use strict";
13578/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VDivider__ = __webpack_require__(177);
13579
13580
13581/* istanbul ignore next */
13582__WEBPACK_IMPORTED_MODULE_0__VDivider__["a" /* default */].install = function install(Vue) {
13583 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VDivider__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VDivider__["a" /* default */]);
13584};
13585
13586/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VDivider__["a" /* default */]);
13587
13588/***/ }),
13589/* 177 */
13590/***/ (function(module, __webpack_exports__, __webpack_require__) {
13591
13592"use strict";
13593/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_themeable__ = __webpack_require__(1);
13594__webpack_require__(178);
13595
13596
13597
13598/* harmony default export */ __webpack_exports__["a"] = ({
13599 name: 'v-divider',
13600
13601 functional: true,
13602
13603 mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_themeable__["a" /* default */]],
13604
13605 props: {
13606 inset: Boolean
13607 },
13608
13609 render: function render(h, _ref) {
13610 var props = _ref.props,
13611 data = _ref.data,
13612 children = _ref.children;
13613
13614 data.staticClass = ('divider ' + (data.staticClass || '')).trim();
13615
13616 if (props.inset) data.staticClass += ' divider--inset';
13617 if (props.light) data.staticClass += ' theme--light';
13618 if (props.dark) data.staticClass += ' theme--dark';
13619
13620 return h('hr', data);
13621 }
13622});
13623
13624/***/ }),
13625/* 178 */
13626/***/ (function(module, exports) {
13627
13628// removed by extract-text-webpack-plugin
13629
13630/***/ }),
13631/* 179 */
13632/***/ (function(module, __webpack_exports__, __webpack_require__) {
13633
13634"use strict";
13635/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VExpansionPanel__ = __webpack_require__(180);
13636/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__VExpansionPanelContent__ = __webpack_require__(182);
13637/* unused harmony reexport VExpansionPanel */
13638/* unused harmony reexport VExpansionPanelContent */
13639
13640
13641
13642
13643
13644/* istanbul ignore next */
13645__WEBPACK_IMPORTED_MODULE_0__VExpansionPanel__["a" /* default */].install = function install(Vue) {
13646 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VExpansionPanel__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VExpansionPanel__["a" /* default */]);
13647 Vue.component(__WEBPACK_IMPORTED_MODULE_1__VExpansionPanelContent__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_1__VExpansionPanelContent__["a" /* default */]);
13648};
13649
13650/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VExpansionPanel__["a" /* default */]);
13651
13652/***/ }),
13653/* 180 */
13654/***/ (function(module, __webpack_exports__, __webpack_require__) {
13655
13656"use strict";
13657/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_themeable__ = __webpack_require__(1);
13658var _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; };
13659
13660__webpack_require__(181);
13661
13662
13663
13664/* harmony default export */ __webpack_exports__["a"] = ({
13665 name: 'v-expansion-panel',
13666
13667 mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_themeable__["a" /* default */]],
13668
13669 provide: function provide() {
13670 return {
13671 panelClick: this.panelClick,
13672 focusable: this.focusable
13673 };
13674 },
13675
13676
13677 props: {
13678 expand: Boolean,
13679 focusable: Boolean,
13680 inset: Boolean,
13681 popout: Boolean
13682 },
13683
13684 methods: {
13685 getChildren: function getChildren() {
13686 return this.$children.filter(function (c) {
13687 return c.$options && c.$options.name === 'v-expansion-panel-content';
13688 });
13689 },
13690 panelClick: function panelClick(uid) {
13691 var children = this.getChildren();
13692
13693 if (!this.expand) {
13694 for (var index = children.length; --index >= 0;) {
13695 children[index].toggle(uid);
13696 }
13697 return;
13698 }
13699
13700 for (var _index = children.length; --_index >= 0;) {
13701 if (children[_index]._uid === uid) {
13702 children[_index].toggle(uid);
13703 return;
13704 }
13705 }
13706 }
13707 },
13708
13709 render: function render(h) {
13710 return h('ul', {
13711 staticClass: 'expansion-panel',
13712 'class': _extends({
13713 'expansion-panel--focusable': this.focusable,
13714 'expansion-panel--popout': this.popout,
13715 'expansion-panel--inset': this.inset
13716 }, this.themeClasses)
13717 }, this.$slots.default);
13718 }
13719});
13720
13721/***/ }),
13722/* 181 */
13723/***/ (function(module, exports) {
13724
13725// removed by extract-text-webpack-plugin
13726
13727/***/ }),
13728/* 182 */
13729/***/ (function(module, __webpack_exports__, __webpack_require__) {
13730
13731"use strict";
13732/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__transitions__ = __webpack_require__(6);
13733/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_bootable__ = __webpack_require__(16);
13734/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_toggleable__ = __webpack_require__(4);
13735/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_rippleable__ = __webpack_require__(23);
13736/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__VIcon__ = __webpack_require__(3);
13737/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__directives_click_outside__ = __webpack_require__(8);
13738
13739
13740
13741
13742
13743
13744
13745
13746
13747
13748/* harmony default export */ __webpack_exports__["a"] = ({
13749 name: 'v-expansion-panel-content',
13750
13751 mixins: [__WEBPACK_IMPORTED_MODULE_1__mixins_bootable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__mixins_toggleable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_3__mixins_rippleable__["a" /* default */]],
13752
13753 components: {
13754 VIcon: __WEBPACK_IMPORTED_MODULE_4__VIcon__["a" /* default */]
13755 },
13756
13757 directives: {
13758 ClickOutside: __WEBPACK_IMPORTED_MODULE_5__directives_click_outside__["a" /* default */]
13759 },
13760
13761 inject: ['focusable', 'panelClick'],
13762
13763 data: function data() {
13764 return {
13765 height: 'auto'
13766 };
13767 },
13768
13769
13770 props: {
13771 hideActions: Boolean,
13772 ripple: {
13773 type: [Boolean, Object],
13774 default: false
13775 }
13776 },
13777
13778 methods: {
13779 genBody: function genBody() {
13780 return this.$createElement('div', {
13781 ref: 'body',
13782 class: 'expansion-panel__body',
13783 directives: [{
13784 name: 'show',
13785 value: this.isActive
13786 }]
13787 }, this.showLazyContent(this.$slots.default));
13788 },
13789 genHeader: function genHeader() {
13790 var _this = this;
13791
13792 return this.$createElement('div', {
13793 staticClass: 'expansion-panel__header',
13794 directives: [{
13795 name: 'ripple',
13796 value: this.ripple
13797 }],
13798 on: {
13799 click: function click() {
13800 return _this.panelClick(_this._uid);
13801 }
13802 }
13803 }, [this.$slots.header, this.genIcon()]);
13804 },
13805 genIcon: function genIcon(h) {
13806 if (this.hideActions) return null;
13807
13808 var icon = this.$slots.actions || this.$createElement('v-icon', 'keyboard_arrow_down');
13809
13810 return this.$createElement('div', {
13811 staticClass: 'header__icon'
13812 }, [icon]);
13813 },
13814 toggle: function toggle(uid) {
13815 var _this2 = this;
13816
13817 var isActive = this._uid === uid && !this.isActive;
13818
13819 if (isActive) this.isBooted = true;
13820
13821 // We treat bootable differently
13822 // Needs time to calc height
13823 this.$nextTick(function () {
13824 return _this2.isActive = isActive;
13825 });
13826 }
13827 },
13828
13829 render: function render(h) {
13830 var _this3 = this;
13831
13832 var children = [];
13833
13834 this.$slots.header && children.push(this.genHeader());
13835 children.push(h(__WEBPACK_IMPORTED_MODULE_0__transitions__["a" /* VExpandTransition */], [this.genBody()]));
13836
13837 return h('li', {
13838 staticClass: 'expansion-panel__container',
13839 'class': {
13840 'expansion-panel__container--active': this.isActive
13841 },
13842 attrs: {
13843 tabindex: 0
13844 },
13845 on: {
13846 keydown: function keydown(e) {
13847 // Ensure element is focusable and the activeElement
13848 if (_this3.focusable && _this3.$el === document.activeElement && e.keyCode === 13) _this3.panelClick(_this3._uid);
13849 }
13850 }
13851 }, children);
13852 }
13853});
13854
13855/***/ }),
13856/* 183 */
13857/***/ (function(module, __webpack_exports__, __webpack_require__) {
13858
13859"use strict";
13860/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VFooter__ = __webpack_require__(184);
13861
13862
13863/* istanbul ignore next */
13864__WEBPACK_IMPORTED_MODULE_0__VFooter__["a" /* default */].install = function install(Vue) {
13865 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VFooter__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VFooter__["a" /* default */]);
13866};
13867
13868/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VFooter__["a" /* default */]);
13869
13870/***/ }),
13871/* 184 */
13872/***/ (function(module, __webpack_exports__, __webpack_require__) {
13873
13874"use strict";
13875/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_applicationable__ = __webpack_require__(15);
13876/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_colorable__ = __webpack_require__(0);
13877/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_themeable__ = __webpack_require__(1);
13878// Styles
13879__webpack_require__(185);
13880
13881// Mixins
13882
13883
13884
13885
13886/* harmony default export */ __webpack_exports__["a"] = ({
13887 name: 'v-footer',
13888
13889 mixins: [Object(__WEBPACK_IMPORTED_MODULE_0__mixins_applicationable__["a" /* default */])('footer', ['height']), __WEBPACK_IMPORTED_MODULE_1__mixins_colorable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__mixins_themeable__["a" /* default */]],
13890
13891 props: {
13892 height: {
13893 default: 32,
13894 type: [Number, String],
13895 validator: function validator(v) {
13896 return !isNaN(parseInt(v));
13897 }
13898 },
13899 inset: Boolean
13900 },
13901
13902 computed: {
13903 computedHeight: function computedHeight() {
13904 return parseInt(this.height);
13905 },
13906 computedMarginBottom: function computedMarginBottom() {
13907 if (!this.app) return;
13908
13909 return this.$vuetify.application.bottom;
13910 },
13911 computedPaddingLeft: function computedPaddingLeft() {
13912 return !this.app || !this.inset ? 0 : this.$vuetify.application.left;
13913 },
13914 computedPaddingRight: function computedPaddingRight() {
13915 return !this.app ? 0 : this.$vuetify.application.right;
13916 },
13917 styles: function styles() {
13918 var styles = {
13919 height: this.computedHeight + 'px'
13920 };
13921
13922 if (this.computedPaddingLeft) {
13923 styles.paddingLeft = this.computedPaddingLeft + 'px';
13924 }
13925
13926 if (this.computedPaddingRight) {
13927 styles.paddingRight = this.computedPaddingRight + 'px';
13928 }
13929
13930 if (this.computedMarginBottom) {
13931 styles.marginBottom = this.computedMarginBottom + 'px';
13932 }
13933
13934 return styles;
13935 }
13936 },
13937
13938 methods: {
13939 /**
13940 * Update the application layout
13941 *
13942 * @return {number}
13943 */
13944 updateApplication: function updateApplication() {
13945 return this.computedHeight;
13946 }
13947 },
13948
13949 render: function render(h) {
13950 var data = {
13951 staticClass: 'footer',
13952 'class': this.addBackgroundColorClassChecks({
13953 'footer--absolute': this.absolute,
13954 'footer--fixed': !this.absolute && (this.app || this.fixed),
13955 'footer--inset': this.inset,
13956 'theme--dark': this.dark,
13957 'theme--light': this.light
13958 }),
13959 style: this.styles,
13960 ref: 'content'
13961 };
13962
13963 return h('footer', data, this.$slots.default);
13964 }
13965});
13966
13967/***/ }),
13968/* 185 */
13969/***/ (function(module, exports) {
13970
13971// removed by extract-text-webpack-plugin
13972
13973/***/ }),
13974/* 186 */
13975/***/ (function(module, __webpack_exports__, __webpack_require__) {
13976
13977"use strict";
13978/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VForm__ = __webpack_require__(187);
13979
13980
13981/* istanbul ignore next */
13982__WEBPACK_IMPORTED_MODULE_0__VForm__["a" /* default */].install = function install(Vue) {
13983 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VForm__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VForm__["a" /* default */]);
13984};
13985
13986/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VForm__["a" /* default */]);
13987
13988/***/ }),
13989/* 187 */
13990/***/ (function(module, __webpack_exports__, __webpack_require__) {
13991
13992"use strict";
13993/* harmony default export */ __webpack_exports__["a"] = ({
13994 name: 'v-form',
13995
13996 inheritAttrs: false,
13997
13998 data: function data() {
13999 return {
14000 inputs: [],
14001 errorBag: {}
14002 };
14003 },
14004
14005
14006 props: {
14007 value: Boolean,
14008 lazyValidation: Boolean
14009 },
14010
14011 watch: {
14012 errorBag: {
14013 handler: function handler() {
14014 var errors = Object.values(this.errorBag).includes(true);
14015
14016 this.$emit('input', !errors);
14017
14018 return !errors;
14019 },
14020
14021 deep: true
14022 }
14023 },
14024
14025 methods: {
14026 getInputs: function getInputs() {
14027 var results = [];
14028
14029 var search = function search(children) {
14030 var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
14031
14032 for (var index = 0; index < children.length; index++) {
14033 var child = children[index];
14034 if (child.errorBucket !== undefined) {
14035 results.push(child);
14036 } else {
14037 search(child.$children, depth + 1);
14038 }
14039 }
14040 if (depth === 0) return results;
14041 };
14042
14043 return search(this.$children);
14044 },
14045 watchInputs: function watchInputs() {
14046 var inputs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getInputs();
14047
14048 for (var index = 0; index < inputs.length; index++) {
14049 var child = inputs[index];
14050 if (this.inputs.includes(child)) {
14051 continue; // We already know about this input
14052 }
14053
14054 this.inputs.push(child);
14055 this.watchChild(child);
14056 }
14057 },
14058 watchChild: function watchChild(child) {
14059 var _this = this;
14060
14061 var watcher = function watcher(child) {
14062 child.$watch('valid', function (val) {
14063 _this.$set(_this.errorBag, child._uid, !val);
14064 }, { immediate: true });
14065 };
14066
14067 if (!this.lazyValidation) return watcher(child);
14068
14069 // Only start watching inputs if we need to
14070 child.$watch('shouldValidate', function (val) {
14071 if (!val) return;
14072
14073 // Only watch if we're not already doing it
14074 if (_this.errorBag.hasOwnProperty(child._uid)) return;
14075
14076 watcher(child);
14077 });
14078 },
14079 validate: function validate() {
14080 var errors = this.inputs.filter(function (input) {
14081 return !input.validate(true);
14082 }).length;
14083 return !errors;
14084 },
14085 reset: function reset() {
14086 for (var i = this.inputs.length; i--;) {
14087 this.inputs[i].reset();
14088 }
14089 if (this.lazyValidation) this.errorBag = {};
14090 }
14091 },
14092
14093 mounted: function mounted() {
14094 this.watchInputs();
14095 },
14096 updated: function updated() {
14097 var inputs = this.getInputs();
14098
14099 if (inputs.length < this.inputs.length) {
14100 // Something was removed, we don't want it in the errorBag any more
14101 var removed = this.inputs.filter(function (i) {
14102 return !inputs.includes(i);
14103 });
14104
14105 for (var index = 0; index < removed.length; index++) {
14106 var input = removed[index];
14107 this.$delete(this.errorBag, input._uid);
14108 this.$delete(this.inputs, this.inputs.indexOf(input));
14109 }
14110 }
14111
14112 this.watchInputs(inputs);
14113 },
14114 render: function render(h) {
14115 var _this2 = this;
14116
14117 return h('form', {
14118 attrs: Object.assign({
14119 novalidate: true
14120 }, this.$attrs),
14121 on: {
14122 submit: function submit(e) {
14123 return _this2.$emit('submit', e);
14124 }
14125 }
14126 }, this.$slots.default);
14127 }
14128});
14129
14130/***/ }),
14131/* 188 */
14132/***/ (function(module, __webpack_exports__, __webpack_require__) {
14133
14134"use strict";
14135/* unused harmony export VSpacer */
14136/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util_helpers__ = __webpack_require__(2);
14137/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__VContent__ = __webpack_require__(189);
14138/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__VContainer__ = __webpack_require__(191);
14139/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__VFlex__ = __webpack_require__(192);
14140/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__VLayout__ = __webpack_require__(193);
14141/* unused harmony reexport VContainer */
14142/* unused harmony reexport VContent */
14143/* unused harmony reexport VFlex */
14144/* unused harmony reexport VLayout */
14145
14146
14147
14148
14149
14150
14151var VSpacer = Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["d" /* createSimpleFunctional */])('spacer');
14152
14153
14154
14155var VGrid = {};
14156
14157/* istanbul ignore next */
14158VGrid.install = function install(Vue) {
14159 Vue.component(__WEBPACK_IMPORTED_MODULE_1__VContent__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_1__VContent__["a" /* default */]);
14160 Vue.component(__WEBPACK_IMPORTED_MODULE_2__VContainer__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_2__VContainer__["a" /* default */]);
14161 Vue.component(__WEBPACK_IMPORTED_MODULE_3__VFlex__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_3__VFlex__["a" /* default */]);
14162 Vue.component(__WEBPACK_IMPORTED_MODULE_4__VLayout__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_4__VLayout__["a" /* default */]);
14163 Vue.component(VSpacer.name, VSpacer);
14164};
14165
14166/* harmony default export */ __webpack_exports__["a"] = (VGrid);
14167
14168/***/ }),
14169/* 189 */
14170/***/ (function(module, __webpack_exports__, __webpack_require__) {
14171
14172"use strict";
14173/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_ssr_bootable__ = __webpack_require__(25);
14174// Styles
14175__webpack_require__(190);
14176
14177// Mixins
14178
14179
14180/* harmony default export */ __webpack_exports__["a"] = ({
14181 name: 'v-content',
14182
14183 mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_ssr_bootable__["a" /* default */]],
14184
14185 props: {
14186 tag: {
14187 type: String,
14188 default: 'main'
14189 }
14190 },
14191
14192 computed: {
14193 styles: function styles() {
14194 var _$vuetify$application = this.$vuetify.application,
14195 bar = _$vuetify$application.bar,
14196 top = _$vuetify$application.top,
14197 right = _$vuetify$application.right,
14198 footer = _$vuetify$application.footer,
14199 bottom = _$vuetify$application.bottom,
14200 left = _$vuetify$application.left;
14201
14202
14203 return {
14204 paddingTop: top + bar + 'px',
14205 paddingRight: right + 'px',
14206 paddingBottom: footer + bottom + 'px',
14207 paddingLeft: left + 'px'
14208 };
14209 }
14210 },
14211
14212 render: function render(h) {
14213 var data = {
14214 staticClass: 'content',
14215 'class': this.classes,
14216 style: this.styles,
14217 ref: 'content'
14218 };
14219
14220 return h(this.tag, data, [h('div', { staticClass: 'content--wrap' }, this.$slots.default)]);
14221 }
14222});
14223
14224/***/ }),
14225/* 190 */
14226/***/ (function(module, exports) {
14227
14228// removed by extract-text-webpack-plugin
14229
14230/***/ }),
14231/* 191 */
14232/***/ (function(module, __webpack_exports__, __webpack_require__) {
14233
14234"use strict";
14235/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__grid__ = __webpack_require__(30);
14236__webpack_require__(29);
14237
14238
14239
14240/* harmony default export */ __webpack_exports__["a"] = (Object(__WEBPACK_IMPORTED_MODULE_0__grid__["a" /* default */])('container'));
14241
14242/***/ }),
14243/* 192 */
14244/***/ (function(module, __webpack_exports__, __webpack_require__) {
14245
14246"use strict";
14247/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__grid__ = __webpack_require__(30);
14248__webpack_require__(29);
14249
14250
14251
14252/* harmony default export */ __webpack_exports__["a"] = (Object(__WEBPACK_IMPORTED_MODULE_0__grid__["a" /* default */])('flex'));
14253
14254/***/ }),
14255/* 193 */
14256/***/ (function(module, __webpack_exports__, __webpack_require__) {
14257
14258"use strict";
14259/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__grid__ = __webpack_require__(30);
14260__webpack_require__(29);
14261
14262
14263
14264/* harmony default export */ __webpack_exports__["a"] = (Object(__WEBPACK_IMPORTED_MODULE_0__grid__["a" /* default */])('layout'));
14265
14266/***/ }),
14267/* 194 */
14268/***/ (function(module, __webpack_exports__, __webpack_require__) {
14269
14270"use strict";
14271/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VNavigationDrawer__ = __webpack_require__(195);
14272
14273
14274/* istanbul ignore next */
14275__WEBPACK_IMPORTED_MODULE_0__VNavigationDrawer__["a" /* default */].install = function install(Vue) {
14276 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VNavigationDrawer__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VNavigationDrawer__["a" /* default */]);
14277};
14278
14279/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VNavigationDrawer__["a" /* default */]);
14280
14281/***/ }),
14282/* 195 */
14283/***/ (function(module, __webpack_exports__, __webpack_require__) {
14284
14285"use strict";
14286/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_applicationable__ = __webpack_require__(15);
14287/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_overlayable__ = __webpack_require__(35);
14288/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_ssr_bootable__ = __webpack_require__(25);
14289/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_themeable__ = __webpack_require__(1);
14290/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__directives_click_outside__ = __webpack_require__(8);
14291/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__directives_resize__ = __webpack_require__(11);
14292/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__directives_touch__ = __webpack_require__(9);
14293__webpack_require__(196);
14294
14295// Mixins
14296
14297
14298
14299
14300
14301// Directives
14302
14303
14304
14305
14306/* harmony default export */ __webpack_exports__["a"] = ({
14307 name: 'v-navigation-drawer',
14308
14309 mixins: [Object(__WEBPACK_IMPORTED_MODULE_0__mixins_applicationable__["a" /* default */])(null, ['miniVariant', 'right', 'width']), __WEBPACK_IMPORTED_MODULE_1__mixins_overlayable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__mixins_ssr_bootable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_3__mixins_themeable__["a" /* default */]],
14310
14311 directives: {
14312 ClickOutside: __WEBPACK_IMPORTED_MODULE_4__directives_click_outside__["a" /* default */],
14313 Resize: __WEBPACK_IMPORTED_MODULE_5__directives_resize__["a" /* default */],
14314 Touch: __WEBPACK_IMPORTED_MODULE_6__directives_touch__["a" /* default */]
14315 },
14316
14317 data: function data() {
14318 return {
14319 isActive: false,
14320 touchArea: {
14321 left: 0,
14322 right: 0
14323 }
14324 };
14325 },
14326
14327 props: {
14328 clipped: Boolean,
14329 disableRouteWatcher: Boolean,
14330 disableResizeWatcher: Boolean,
14331 height: {
14332 type: [Number, String],
14333 default: '100%'
14334 },
14335 floating: Boolean,
14336 miniVariant: Boolean,
14337 miniVariantWidth: {
14338 type: [Number, String],
14339 default: 80
14340 },
14341 mobileBreakPoint: {
14342 type: [Number, String],
14343 default: 1264
14344 },
14345 permanent: Boolean,
14346 right: Boolean,
14347 stateless: Boolean,
14348 temporary: Boolean,
14349 touchless: Boolean,
14350 width: {
14351 type: [Number, String],
14352 default: 300
14353 },
14354 value: { required: false }
14355 },
14356
14357 computed: {
14358 /**
14359 * Used for setting an app
14360 * value from a dynamic
14361 * property. Called from
14362 * applicationable.js
14363 *
14364 * @return {string}
14365 */
14366 applicationProperty: function applicationProperty() {
14367 return this.right ? 'right' : 'left';
14368 },
14369 calculatedHeight: function calculatedHeight() {
14370 return isNaN(this.height) ? this.height : this.height + 'px';
14371 },
14372 calculatedTransform: function calculatedTransform() {
14373 if (this.isActive) return 0;
14374
14375 return this.right ? this.calculatedWidth : -this.calculatedWidth;
14376 },
14377 calculatedWidth: function calculatedWidth() {
14378 return this.miniVariant ? this.miniVariantWidth : this.width;
14379 },
14380 classes: function classes() {
14381 return {
14382 'navigation-drawer': true,
14383 'navigation-drawer--absolute': this.absolute,
14384 'navigation-drawer--clipped': this.clipped,
14385 'navigation-drawer--close': !this.isActive,
14386 'navigation-drawer--fixed': !this.absolute && (this.app || this.fixed),
14387 'navigation-drawer--floating': this.floating,
14388 'navigation-drawer--is-mobile': this.isMobile,
14389 'navigation-drawer--mini-variant': this.miniVariant,
14390 'navigation-drawer--open': this.isActive,
14391 'navigation-drawer--right': this.right,
14392 'navigation-drawer--temporary': this.temporary,
14393 'theme--dark': this.dark,
14394 'theme--light': this.light
14395 };
14396 },
14397 isMobile: function isMobile() {
14398 return !this.permanent && !this.temporary && this.$vuetify.breakpoint.width < parseInt(this.mobileBreakPoint, 10);
14399 },
14400 marginTop: function marginTop() {
14401 if (!this.app) return 0;
14402 var marginTop = this.$vuetify.application.bar;
14403
14404 marginTop += this.clipped ? this.$vuetify.application.top : 0;
14405
14406 return marginTop;
14407 },
14408 maxHeight: function maxHeight() {
14409 if (!this.app) return '100%';
14410
14411 return this.clipped ? this.$vuetify.application.top + this.$vuetify.application.bottom : this.$vuetify.application.bottom;
14412 },
14413 reactsToClick: function reactsToClick() {
14414 return !this.stateless && !this.permanent && (this.isMobile || this.temporary);
14415 },
14416 reactsToMobile: function reactsToMobile() {
14417 return !this.disableResizeWatcher && !this.stateless && !this.permanent && !this.temporary;
14418 },
14419 reactsToRoute: function reactsToRoute() {
14420 return !this.disableRouteWatcher && !this.stateless && (this.temporary || this.isMobile);
14421 },
14422 resizeIsDisabled: function resizeIsDisabled() {
14423 return this.disableResizeWatcher || this.stateless;
14424 },
14425 showOverlay: function showOverlay() {
14426 return this.isActive && (this.temporary || this.isMobile);
14427 },
14428 styles: function styles() {
14429 var styles = {
14430 height: this.calculatedHeight,
14431 marginTop: this.marginTop + 'px',
14432 maxHeight: 'calc(100% - ' + this.maxHeight + 'px)',
14433 transform: 'translateX(' + this.calculatedTransform + 'px)',
14434 width: this.calculatedWidth + 'px'
14435 };
14436
14437 return styles;
14438 }
14439 },
14440
14441 watch: {
14442 $route: function $route() {
14443 if (this.reactsToRoute) {
14444 this.isActive = !this.closeConditional();
14445 }
14446 },
14447 isActive: function isActive(val) {
14448 this.$emit('input', val);
14449
14450 if (this.temporary || this.isMobile) {
14451 this.tryOverlay();
14452 this.$el && (this.$el.scrollTop = 0);
14453 }
14454
14455 this.callUpdate();
14456 },
14457
14458 /**
14459 * When mobile changes, adjust
14460 * the active state only when
14461 * there has been a previous
14462 * value
14463 */
14464 isMobile: function isMobile(val, prev) {
14465 !val && this.isActive && !this.temporary && this.removeOverlay();
14466
14467 if (prev == null || this.resizeIsDisabled || !this.reactsToMobile) return;
14468
14469 this.isActive = !val;
14470 this.callUpdate();
14471 },
14472 permanent: function permanent(val) {
14473 // If enabling prop
14474 // enable the drawer
14475 if (val) {
14476 this.isActive = true;
14477 }
14478 this.callUpdate();
14479 },
14480 temporary: function temporary() {
14481 this.tryOverlay();
14482 this.callUpdate();
14483 },
14484 value: function value(val) {
14485 if (this.permanent) return;
14486
14487 if (val == null) return this.init();
14488
14489 if (val !== this.isActive) this.isActive = val;
14490 }
14491 },
14492
14493 beforeMount: function beforeMount() {
14494 this.init();
14495 },
14496
14497
14498 methods: {
14499 calculateTouchArea: function calculateTouchArea() {
14500 if (!this.$el.parentNode) return;
14501 var parentRect = this.$el.parentNode.getBoundingClientRect();
14502
14503 this.touchArea = {
14504 left: parentRect.left + 50,
14505 right: parentRect.right - 50
14506 };
14507 },
14508 closeConditional: function closeConditional() {
14509 return this.reactsToClick;
14510 },
14511 genDirectives: function genDirectives() {
14512 var directives = [{ name: 'click-outside', value: this.closeConditional }];
14513
14514 !this.touchless && directives.push({
14515 name: 'touch',
14516 value: {
14517 parent: true,
14518 left: this.swipeLeft,
14519 right: this.swipeRight
14520 }
14521 });
14522
14523 return directives;
14524 },
14525
14526 /**
14527 * Sets state before mount to avoid
14528 * entry transitions in SSR
14529 *
14530 * @return {void}
14531 */
14532 init: function init() {
14533 if (this.permanent) {
14534 this.isActive = true;
14535 } else if (this.stateless || this.value != null) {
14536 this.isActive = this.value;
14537 } else if (!this.temporary) {
14538 this.isActive = !this.isMobile;
14539 }
14540 },
14541 swipeRight: function swipeRight(e) {
14542 if (this.isActive && !this.right) return;
14543 this.calculateTouchArea();
14544
14545 if (Math.abs(e.touchendX - e.touchstartX) < 100) return;else if (!this.right && e.touchstartX <= this.touchArea.left) this.isActive = true;else if (this.right && this.isActive) this.isActive = false;
14546 },
14547 swipeLeft: function swipeLeft(e) {
14548 if (this.isActive && this.right) return;
14549 this.calculateTouchArea();
14550
14551 if (Math.abs(e.touchendX - e.touchstartX) < 100) return;else if (this.right && e.touchstartX >= this.touchArea.right) this.isActive = true;else if (!this.right && this.isActive) this.isActive = false;
14552 },
14553 tryOverlay: function tryOverlay() {
14554 if (!this.permanent && this.showOverlay && this.isActive) {
14555 return this.genOverlay();
14556 }
14557
14558 this.removeOverlay();
14559 },
14560
14561 /**
14562 * Update the application layout
14563 *
14564 * @return {number}
14565 */
14566 updateApplication: function updateApplication() {
14567 return !this.isActive || this.temporary || this.isMobile ? 0 : this.calculatedWidth;
14568 }
14569 },
14570
14571 render: function render(h) {
14572 var _this = this;
14573
14574 var data = {
14575 'class': this.classes,
14576 style: this.styles,
14577 directives: this.genDirectives(),
14578 on: {
14579 click: function click() {
14580 if (!_this.miniVariant) return;
14581
14582 _this.$emit('update:miniVariant', false);
14583 }
14584 }
14585 };
14586
14587 return h('aside', data, [this.$slots.default, h('div', { 'class': 'navigation-drawer__border' })]);
14588 }
14589});
14590
14591/***/ }),
14592/* 196 */
14593/***/ (function(module, exports) {
14594
14595// removed by extract-text-webpack-plugin
14596
14597/***/ }),
14598/* 197 */
14599/***/ (function(module, __webpack_exports__, __webpack_require__) {
14600
14601"use strict";
14602/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VPagination__ = __webpack_require__(198);
14603
14604
14605/* istanbul ignore next */
14606__WEBPACK_IMPORTED_MODULE_0__VPagination__["a" /* default */].install = function install(Vue) {
14607 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VPagination__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VPagination__["a" /* default */]);
14608};
14609
14610/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VPagination__["a" /* default */]);
14611
14612/***/ }),
14613/* 198 */
14614/***/ (function(module, __webpack_exports__, __webpack_require__) {
14615
14616"use strict";
14617/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VIcon__ = __webpack_require__(3);
14618/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__directives_resize__ = __webpack_require__(11);
14619/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_colorable__ = __webpack_require__(0);
14620function _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); } }
14621
14622__webpack_require__(199);
14623
14624
14625
14626
14627
14628
14629
14630/* harmony default export */ __webpack_exports__["a"] = ({
14631 name: 'v-pagination',
14632
14633 mixins: [__WEBPACK_IMPORTED_MODULE_2__mixins_colorable__["a" /* default */]],
14634
14635 directives: { Resize: __WEBPACK_IMPORTED_MODULE_1__directives_resize__["a" /* default */] },
14636
14637 data: function data() {
14638 return {
14639 maxButtons: 0,
14640 defaultColor: 'primary'
14641 };
14642 },
14643
14644
14645 props: {
14646 circle: Boolean,
14647 disabled: Boolean,
14648 length: {
14649 type: Number,
14650 default: 0,
14651 validator: function validator(val) {
14652 return val % 1 === 0;
14653 }
14654 },
14655 totalVisible: [Number, String],
14656 nextIcon: {
14657 type: String,
14658 default: 'chevron_right'
14659 },
14660 prevIcon: {
14661 type: String,
14662 default: 'chevron_left'
14663 },
14664 value: {
14665 type: Number,
14666 default: 0
14667 }
14668 },
14669
14670 computed: {
14671 classes: function classes() {
14672 return {
14673 'pagination': true,
14674 'pagination--circle': this.circle,
14675 'pagination--disabled': this.disabled
14676 };
14677 },
14678 items: function items() {
14679 var maxLength = this.totalVisible || this.maxButtons;
14680 if (this.length <= maxLength) {
14681 return this.range(1, this.length);
14682 }
14683
14684 var even = maxLength % 2 === 0 ? 1 : 0;
14685 var left = Math.floor(maxLength / 2);
14686 var right = this.length - left + 1 + even;
14687
14688 if (this.value >= left && this.value <= right) {
14689 var start = this.value - left + 2;
14690 var end = this.value + left - 2 - even;
14691
14692 return [1, '...'].concat(_toConsumableArray(this.range(start, end)), ['...', this.length]);
14693 } else {
14694 return [].concat(_toConsumableArray(this.range(1, left)), ['...'], _toConsumableArray(this.range(this.length - left + 1 + even, this.length)));
14695 }
14696 }
14697 },
14698
14699 watch: {
14700 value: function value() {
14701 this.init();
14702 }
14703 },
14704
14705 mounted: function mounted() {
14706 this.init();
14707 },
14708
14709
14710 methods: {
14711 init: function init() {
14712 var _this = this;
14713
14714 this.selected = null;
14715
14716 // TODO: Change this (f75dee3a, cbdf7caa)
14717 setTimeout(function () {
14718 return _this.selected = _this.value;
14719 }, 100);
14720 },
14721 onResize: function onResize() {
14722 var width = this.$el && this.$el.parentNode ? this.$el.parentNode.clientWidth : window.innerWidth;
14723
14724 this.maxButtons = Math.floor((width - 96) / 42);
14725 },
14726 next: function next(e) {
14727 e.preventDefault();
14728 this.$emit('input', this.value + 1);
14729 this.$emit('next');
14730 },
14731 previous: function previous(e) {
14732 e.preventDefault();
14733 this.$emit('input', this.value - 1);
14734 this.$emit('previous');
14735 },
14736 range: function range(from, to) {
14737 var range = [];
14738
14739 from = from > 0 ? from : 1;
14740
14741 for (var i = from; i <= to; i++) {
14742 range.push(i);
14743 }
14744
14745 return range;
14746 },
14747 genIcon: function genIcon(h, icon, disabled, fn) {
14748 return h('li', [h('button', {
14749 staticClass: 'pagination__navigation',
14750 class: {
14751 'pagination__navigation--disabled': disabled
14752 },
14753 on: disabled ? {} : { click: fn }
14754 }, [h(__WEBPACK_IMPORTED_MODULE_0__VIcon__["a" /* default */], [icon])])]);
14755 },
14756 genItem: function genItem(h, i) {
14757 var _this2 = this;
14758
14759 return h('button', {
14760 staticClass: 'pagination__item',
14761 class: i === this.value ? this.addBackgroundColorClassChecks({
14762 'pagination__item--active': true
14763 }) : {},
14764 on: {
14765 click: function click() {
14766 return _this2.$emit('input', i);
14767 }
14768 }
14769 }, [i]);
14770 },
14771 genItems: function genItems(h) {
14772 var _this3 = this;
14773
14774 return this.items.map(function (i, index) {
14775 return h('li', { key: index }, [isNaN(i) && h('span', { class: 'pagination__more' }, [i]) || _this3.genItem(h, i)]);
14776 });
14777 }
14778 },
14779
14780 render: function render(h) {
14781 var children = [this.genIcon(h, this.prevIcon, this.value <= 1, this.previous), this.genItems(h), this.genIcon(h, this.nextIcon, this.value >= this.length, this.next)];
14782
14783 return h('ul', {
14784 directives: [{ name: 'resize', value: this.onResize }],
14785 class: this.classes
14786 }, children);
14787 }
14788});
14789
14790/***/ }),
14791/* 199 */
14792/***/ (function(module, exports) {
14793
14794// removed by extract-text-webpack-plugin
14795
14796/***/ }),
14797/* 200 */
14798/***/ (function(module, __webpack_exports__, __webpack_require__) {
14799
14800"use strict";
14801/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VParallax__ = __webpack_require__(201);
14802
14803
14804/* istanbul ignore next */
14805__WEBPACK_IMPORTED_MODULE_0__VParallax__["a" /* default */].install = function install(Vue) {
14806 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VParallax__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VParallax__["a" /* default */]);
14807};
14808
14809/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VParallax__["a" /* default */]);
14810
14811/***/ }),
14812/* 201 */
14813/***/ (function(module, __webpack_exports__, __webpack_require__) {
14814
14815"use strict";
14816/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_translatable__ = __webpack_require__(203);
14817__webpack_require__(202);
14818
14819
14820
14821/* harmony default export */ __webpack_exports__["a"] = ({
14822 name: 'v-parallax',
14823
14824 mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_translatable__["a" /* default */]],
14825
14826 data: function data() {
14827 return {
14828 isBooted: false
14829 };
14830 },
14831
14832
14833 props: {
14834 alt: String,
14835 height: {
14836 type: [String, Number],
14837 default: 500
14838 },
14839 src: String
14840 },
14841
14842 computed: {
14843 styles: function styles() {
14844 return {
14845 display: 'block',
14846 opacity: this.isBooted ? 1 : 0,
14847 transform: 'translate(-50%, ' + this.parallax + 'px)'
14848 };
14849 }
14850 },
14851
14852 watch: {
14853 parallax: function parallax() {
14854 this.isBooted = true;
14855 }
14856 },
14857
14858 mounted: function mounted() {
14859 this.init();
14860 },
14861
14862
14863 methods: {
14864 init: function init() {
14865 var _this = this;
14866
14867 if (!this.$refs.img) return;
14868
14869 if (this.$refs.img.complete) {
14870 this.translate();
14871 this.listeners();
14872 } else {
14873 this.$refs.img.addEventListener('load', function () {
14874 _this.translate();
14875 _this.listeners();
14876 }, false);
14877 }
14878 },
14879 objHeight: function objHeight() {
14880 return this.$refs.img.naturalHeight;
14881 },
14882 elOffsetTop: function elOffsetTop() {
14883 return this.$el.offsetTop;
14884 }
14885 },
14886
14887 render: function render(h) {
14888 var imgData = {
14889 staticClass: 'parallax__image',
14890 style: this.styles,
14891 attrs: {
14892 src: this.src
14893 },
14894 ref: 'img'
14895 };
14896
14897 if (this.alt) imgData.attrs.alt = this.alt;
14898
14899 var container = h('div', {
14900 staticClass: 'parallax__image-container'
14901 }, [h('img', imgData)]);
14902
14903 var content = h('div', {
14904 staticClass: 'parallax__content'
14905 }, this.$slots.default);
14906
14907 return h('div', {
14908 staticClass: 'parallax',
14909 style: {
14910 height: this.normalizedHeight + 'px'
14911 },
14912 on: this.$listeners
14913 }, [container, content]);
14914 }
14915});
14916
14917/***/ }),
14918/* 202 */
14919/***/ (function(module, exports) {
14920
14921// removed by extract-text-webpack-plugin
14922
14923/***/ }),
14924/* 203 */
14925/***/ (function(module, __webpack_exports__, __webpack_require__) {
14926
14927"use strict";
14928/* harmony default export */ __webpack_exports__["a"] = ({
14929 name: 'translatable',
14930
14931 data: function data() {
14932 return {
14933 parallax: null,
14934 parallaxDist: null,
14935 percentScrolled: null,
14936 scrollTop: null,
14937 windowHeight: null,
14938 windowBottom: null
14939 };
14940 },
14941
14942
14943 computed: {
14944 normalizedHeight: function normalizedHeight() {
14945 if (this.jumbotron) {
14946 return isNaN(this.height) ? this.height : this.height + 'px';
14947 }
14948
14949 return Number(this.height.toString().replace(/(^[0-9]*$)/, '$1'));
14950 },
14951 imgHeight: function imgHeight() {
14952 return this.objHeight();
14953 }
14954 },
14955
14956 beforeDestroy: function beforeDestroy() {
14957 window.removeEventListener('scroll', this.translate, false);
14958 window.removeEventListener('resize', this.translate, false);
14959 },
14960
14961
14962 methods: {
14963 listeners: function listeners() {
14964 window.addEventListener('scroll', this.translate, false);
14965 window.addEventListener('resize', this.translate, false);
14966 },
14967 translate: function translate() {
14968 this.calcDimensions();
14969
14970 this.percentScrolled = (this.windowBottom - this.elOffsetTop) / (this.normalizedHeight + this.windowHeight);
14971
14972 this.parallax = Math.round(this.parallaxDist * this.percentScrolled);
14973
14974 if (this.translated) {
14975 this.translated();
14976 }
14977 },
14978 calcDimensions: function calcDimensions() {
14979 var offset = this.$el.getBoundingClientRect();
14980
14981 this.scrollTop = window.pageYOffset;
14982 this.parallaxDist = this.imgHeight - this.normalizedHeight;
14983 this.elOffsetTop = offset.top + this.scrollTop;
14984 this.windowHeight = window.innerHeight;
14985 this.windowBottom = this.scrollTop + this.windowHeight;
14986 }
14987 }
14988});
14989
14990/***/ }),
14991/* 204 */
14992/***/ (function(module, __webpack_exports__, __webpack_require__) {
14993
14994"use strict";
14995/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VProgressCircular__ = __webpack_require__(205);
14996
14997
14998/* istanbul ignore next */
14999__WEBPACK_IMPORTED_MODULE_0__VProgressCircular__["a" /* default */].install = function install(Vue) {
15000 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VProgressCircular__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VProgressCircular__["a" /* default */]);
15001};
15002
15003/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VProgressCircular__["a" /* default */]);
15004
15005/***/ }),
15006/* 205 */
15007/***/ (function(module, __webpack_exports__, __webpack_require__) {
15008
15009"use strict";
15010/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_colorable__ = __webpack_require__(0);
15011__webpack_require__(206);
15012
15013
15014
15015/* harmony default export */ __webpack_exports__["a"] = ({
15016 name: 'v-progress-circular',
15017
15018 mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_colorable__["a" /* default */]],
15019
15020 props: {
15021 button: Boolean,
15022
15023 indeterminate: Boolean,
15024
15025 rotate: {
15026 type: Number,
15027 default: 0
15028 },
15029
15030 size: {
15031 type: [Number, String],
15032 default: 32
15033 },
15034
15035 width: {
15036 type: Number,
15037 default: 4
15038 },
15039
15040 value: {
15041 type: Number,
15042 default: 0
15043 }
15044 },
15045
15046 computed: {
15047 calculatedSize: function calculatedSize() {
15048 var size = Number(this.size);
15049
15050 if (this.button) {
15051 size += 8;
15052 }
15053
15054 return size;
15055 },
15056 circumference: function circumference() {
15057 return 2 * Math.PI * this.radius;
15058 },
15059 classes: function classes() {
15060 return this.addTextColorClassChecks({
15061 'progress-circular': true,
15062 'progress-circular--indeterminate': this.indeterminate,
15063 'progress-circular--button': this.button
15064 });
15065 },
15066 cxy: function cxy() {
15067 return this.indeterminate && !this.button ? 50 : this.calculatedSize / 2;
15068 },
15069 normalizedValue: function normalizedValue() {
15070 if (this.value < 0) {
15071 return 0;
15072 }
15073
15074 if (this.value > 100) {
15075 return 100;
15076 }
15077
15078 return this.value;
15079 },
15080 radius: function radius() {
15081 return this.indeterminate && !this.button ? 20 : (this.calculatedSize - this.width) / 2;
15082 },
15083 strokeDashArray: function strokeDashArray() {
15084 return Math.round(this.circumference * 1000) / 1000;
15085 },
15086 strokeDashOffset: function strokeDashOffset() {
15087 return (100 - this.normalizedValue) / 100 * this.circumference + 'px';
15088 },
15089 styles: function styles() {
15090 return {
15091 height: this.calculatedSize + 'px',
15092 width: this.calculatedSize + 'px'
15093 };
15094 },
15095 svgSize: function svgSize() {
15096 return this.indeterminate ? false : this.calculatedSize;
15097 },
15098 svgStyles: function svgStyles() {
15099 return {
15100 transform: 'rotate(' + this.rotate + 'deg)'
15101 };
15102 },
15103 viewBox: function viewBox() {
15104 return this.indeterminate ? '25 25 50 50' : false;
15105 }
15106 },
15107
15108 methods: {
15109 genCircle: function genCircle(h, name, offset) {
15110 return h('circle', {
15111 class: 'progress-circular__' + name,
15112 attrs: {
15113 fill: 'transparent',
15114 cx: this.cxy,
15115 cy: this.cxy,
15116 r: this.radius,
15117 'stroke-width': this.width,
15118 'stroke-dasharray': this.strokeDashArray,
15119 'stroke-dashoffset': offset
15120 }
15121 });
15122 },
15123 genSvg: function genSvg(h) {
15124 var children = [!this.indeterminate && this.genCircle(h, 'underlay', 0), this.genCircle(h, 'overlay', this.strokeDashOffset)];
15125
15126 return h('svg', {
15127 style: this.svgStyles,
15128 attrs: {
15129 xmlns: 'http://www.w3.org/2000/svg',
15130 height: this.svgSize,
15131 width: this.svgSize,
15132 viewBox: this.viewBox
15133 }
15134 }, children);
15135 }
15136 },
15137
15138 render: function render(h) {
15139 var info = h('div', { class: 'progress-circular__info' }, [this.$slots.default]);
15140 var svg = this.genSvg(h);
15141
15142 return h('div', {
15143 class: this.classes,
15144 style: this.styles,
15145 on: this.$listeners
15146 }, [svg, info]);
15147 }
15148});
15149
15150/***/ }),
15151/* 206 */
15152/***/ (function(module, exports) {
15153
15154// removed by extract-text-webpack-plugin
15155
15156/***/ }),
15157/* 207 */
15158/***/ (function(module, __webpack_exports__, __webpack_require__) {
15159
15160"use strict";
15161/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VRadioGroup__ = __webpack_require__(208);
15162/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__VRadio__ = __webpack_require__(210);
15163/* unused harmony reexport VRadioGroup */
15164/* unused harmony reexport VRadio */
15165
15166
15167
15168
15169
15170/* istanbul ignore next */
15171__WEBPACK_IMPORTED_MODULE_0__VRadioGroup__["a" /* default */].install = function install(Vue) {
15172 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VRadioGroup__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VRadioGroup__["a" /* default */]);
15173 Vue.component(__WEBPACK_IMPORTED_MODULE_1__VRadio__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_1__VRadio__["a" /* default */]);
15174};
15175
15176/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VRadioGroup__["a" /* default */]);
15177
15178/***/ }),
15179/* 208 */
15180/***/ (function(module, __webpack_exports__, __webpack_require__) {
15181
15182"use strict";
15183/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_input__ = __webpack_require__(19);
15184/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_registrable__ = __webpack_require__(5);
15185// Styles
15186__webpack_require__(18);
15187__webpack_require__(28);
15188__webpack_require__(209);
15189
15190// Mixins
15191
15192
15193
15194/* harmony default export */ __webpack_exports__["a"] = ({
15195 name: 'v-radio-group',
15196
15197 mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_input__["a" /* default */], Object(__WEBPACK_IMPORTED_MODULE_1__mixins_registrable__["b" /* provide */])('radio')],
15198
15199 model: {
15200 prop: 'inputValue',
15201 event: 'change'
15202 },
15203
15204 provide: function provide() {
15205 var _this = this;
15206
15207 return {
15208 isMandatory: function isMandatory() {
15209 return _this.mandatory;
15210 },
15211 name: function name() {
15212 return _this.name;
15213 }
15214 };
15215 },
15216
15217
15218 data: function data() {
15219 return {
15220 internalTabIndex: -1,
15221 radios: []
15222 };
15223 },
15224
15225 props: {
15226 column: {
15227 type: Boolean,
15228 default: true
15229 },
15230 inputValue: null,
15231 mandatory: {
15232 type: Boolean,
15233 default: true
15234 },
15235 name: String,
15236 row: Boolean
15237 },
15238
15239 watch: {
15240 hasError: function hasError(val) {
15241 for (var index = this.radios.length; --index >= 0;) {
15242 this.radios[index].parentError = val;
15243 }
15244 },
15245 inputValue: function inputValue(val) {
15246 for (var index = this.radios.length; --index >= 0;) {
15247 var radio = this.radios[index];
15248 radio.isActive = val === radio.value;
15249 }
15250 }
15251 },
15252
15253 computed: {
15254 classes: function classes() {
15255 return {
15256 'radio-group': true,
15257 'radio-group--column': this.column && !this.row,
15258 'radio-group--row': this.row,
15259 'error--text': this.hasError
15260 };
15261 }
15262 },
15263
15264 methods: {
15265 toggleRadio: function toggleRadio(value) {
15266 var _this2 = this;
15267
15268 if (this.disabled) {
15269 return;
15270 }
15271
15272 this.shouldValidate = true;
15273 this.$emit('change', value);
15274 this.$nextTick(function () {
15275 return _this2.validate();
15276 });
15277
15278 for (var index = this.radios.length; --index >= 0;) {
15279 var radio = this.radios[index];
15280 if (radio.value !== value) radio.isActive = false;
15281 }
15282 },
15283 radioBlur: function radioBlur(e) {
15284 if (!e.relatedTarget || !e.relatedTarget.classList.contains('radio')) {
15285 this.shouldValidate = true;
15286 this.$emit('blur', this.inputValue);
15287 }
15288 },
15289 register: function register(radio) {
15290 radio.isActive = this.inputValue === radio.value;
15291 radio.$el.tabIndex = radio.$el.tabIndex > 0 ? radio.$el.tabIndex : 0;
15292 radio.$on('change', this.toggleRadio);
15293 radio.$on('blur', this.radioBlur);
15294 radio.$on('focus', this.radioFocus);
15295 this.radios.push(radio);
15296 },
15297 unregister: function unregister(radio) {
15298 radio.$off('change', this.toggleRadio);
15299 radio.$off('blur', this.radioBlur);
15300 radio.$off('focus', this.radioFocus);
15301
15302 var index = this.radios.findIndex(function (r) {
15303 return r === radio;
15304 });
15305
15306 if (index > -1) this.radios.splice(index, 1);
15307 }
15308 },
15309
15310 render: function render(h) {
15311 var data = {
15312 attrs: {
15313 role: 'radiogroup'
15314 }
15315 };
15316 return this.genInputGroup(this.$slots.default, data);
15317 }
15318});
15319
15320/***/ }),
15321/* 209 */
15322/***/ (function(module, exports) {
15323
15324// removed by extract-text-webpack-plugin
15325
15326/***/ }),
15327/* 210 */
15328/***/ (function(module, __webpack_exports__, __webpack_require__) {
15329
15330"use strict";
15331/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__transitions__ = __webpack_require__(6);
15332/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__VIcon__ = __webpack_require__(3);
15333/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_colorable__ = __webpack_require__(0);
15334/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_rippleable__ = __webpack_require__(23);
15335/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__mixins_tab_focusable__ = __webpack_require__(211);
15336/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__mixins_themeable__ = __webpack_require__(1);
15337/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__mixins_registrable__ = __webpack_require__(5);
15338var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
15339
15340// Components
15341
15342
15343
15344// Mixins
15345
15346
15347
15348
15349
15350
15351/* harmony default export */ __webpack_exports__["a"] = ({
15352 name: 'v-radio',
15353
15354 inheritAttrs: false,
15355
15356 inject: ['isMandatory', 'name'],
15357
15358 components: {
15359 VFadeTransition: __WEBPACK_IMPORTED_MODULE_0__transitions__["b" /* VFadeTransition */],
15360 VIcon: __WEBPACK_IMPORTED_MODULE_1__VIcon__["a" /* default */]
15361 },
15362
15363 mixins: [__WEBPACK_IMPORTED_MODULE_2__mixins_colorable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_3__mixins_rippleable__["a" /* default */], Object(__WEBPACK_IMPORTED_MODULE_6__mixins_registrable__["a" /* inject */])('radio', 'v-radio', 'v-radio-group'), __WEBPACK_IMPORTED_MODULE_4__mixins_tab_focusable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_5__mixins_themeable__["a" /* default */]],
15364
15365 data: function data() {
15366 return {
15367 defaultColor: 'accent',
15368 isActive: false,
15369 parentError: false
15370 };
15371 },
15372
15373 props: {
15374 disabled: Boolean,
15375 value: null,
15376 label: String
15377 },
15378
15379 computed: {
15380 classes: function classes() {
15381 var classes = {
15382 'input-group': true,
15383 'input-group--active': this.isActive,
15384 'input-group--disabled': this.disabled,
15385 'input-group--selection-controls': true,
15386 'input-group--tab-focused': this.tabFocused,
15387 'radio': true,
15388 'theme--dark': this.dark,
15389 'theme--light': this.light
15390 };
15391
15392 if (!this.parentError) {
15393 return this.addTextColorClassChecks(classes);
15394 }
15395
15396 return classes;
15397 },
15398 icon: function icon() {
15399 return this.isActive ? 'radio_button_checked' : 'radio_button_unchecked';
15400 }
15401 },
15402
15403 methods: {
15404 genInput: function genInput(radio) {
15405 var value = ['string', 'number'].includes(_typeof(this.value)) ? this.value : JSON.stringify(this.value);
15406 var input = this.$createElement('input', {
15407 ref: 'input',
15408 style: {
15409 display: 'none'
15410 },
15411 attrs: Object.assign({
15412 name: this.name && this.name(),
15413 id: this.id,
15414 type: 'radio',
15415 value: value
15416 }, this.$attrs)
15417 }, [value]);
15418
15419 radio.push(input);
15420
15421 return this.$createElement('div', {
15422 class: 'input-group__input'
15423 }, radio);
15424 },
15425 genWrapper: function genWrapper(radio) {
15426 var _this = this;
15427
15428 var children = [];
15429
15430 children.push(this.genLabel());
15431 children.push(this.genInput(radio));
15432
15433 return this.$createElement('div', {
15434 class: this.classes,
15435 attrs: {
15436 role: 'radio',
15437 'aria-checked': this.isActive && 'true' || 'false',
15438 'aria-label': this.label
15439 },
15440 on: {
15441 keydown: function keydown(e) {
15442 if ([13, 32].includes(e.keyCode)) {
15443 e.preventDefault();
15444 _this.toggle();
15445 }
15446 },
15447 blur: function blur(e) {
15448 _this.$emit('blur', e);
15449 _this.tabFocused = false;
15450 }
15451 }
15452 }, children);
15453 },
15454 genLabel: function genLabel() {
15455 return this.$createElement('label', {
15456 on: {
15457 click: this.toggle
15458 }
15459 }, this.$slots.label || this.label);
15460 },
15461 toggle: function toggle() {
15462 var mandatory = this.isMandatory && this.isMandatory() || false;
15463
15464 if (!this.disabled && (!this.isActive || !mandatory)) {
15465 this.$refs.input.checked = true;
15466 this.isActive = true;
15467 this.$emit('change', this.value);
15468 }
15469 }
15470 },
15471
15472 mounted: function mounted() {
15473 this.radio.register(this);
15474 },
15475 beforeDestroy: function beforeDestroy() {
15476 this.radio.unregister(this);
15477 },
15478 render: function render(h) {
15479 var transition = h('v-fade-transition', {}, [h('v-icon', {
15480 staticClass: 'icon--selection-control',
15481 'class': {
15482 'icon--radio': this.isActive
15483 },
15484 key: this.icon,
15485 on: Object.assign({
15486 click: this.toggle
15487 }, this.$listeners)
15488 }, this.icon)]);
15489
15490 var ripple = this.ripple ? this.genRipple() : null;
15491
15492 return this.genWrapper([transition, ripple]);
15493 }
15494});
15495
15496/***/ }),
15497/* 211 */
15498/***/ (function(module, __webpack_exports__, __webpack_require__) {
15499
15500"use strict";
15501/* harmony default export */ __webpack_exports__["a"] = ({
15502 name: 'tab-focusable',
15503
15504 data: function data() {
15505 return {
15506 tabFocused: false
15507 };
15508 }
15509});
15510
15511/***/ }),
15512/* 212 */
15513/***/ (function(module, __webpack_exports__, __webpack_require__) {
15514
15515"use strict";
15516/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VSlider__ = __webpack_require__(213);
15517
15518
15519/* istanbul ignore next */
15520__WEBPACK_IMPORTED_MODULE_0__VSlider__["a" /* default */].install = function install(Vue) {
15521 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VSlider__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VSlider__["a" /* default */]);
15522};
15523
15524/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VSlider__["a" /* default */]);
15525
15526/***/ }),
15527/* 213 */
15528/***/ (function(module, __webpack_exports__, __webpack_require__) {
15529
15530"use strict";
15531/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util_helpers__ = __webpack_require__(2);
15532/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_colorable__ = __webpack_require__(0);
15533/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_input__ = __webpack_require__(19);
15534/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__directives_click_outside__ = __webpack_require__(8);
15535/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__transitions__ = __webpack_require__(6);
15536/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__util_console__ = __webpack_require__(7);
15537__webpack_require__(214);
15538
15539
15540
15541
15542
15543
15544
15545
15546
15547
15548
15549
15550/* harmony default export */ __webpack_exports__["a"] = ({
15551 name: 'v-slider',
15552
15553 mixins: [__WEBPACK_IMPORTED_MODULE_1__mixins_colorable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__mixins_input__["a" /* default */]],
15554
15555 directives: { ClickOutside: __WEBPACK_IMPORTED_MODULE_3__directives_click_outside__["a" /* default */] },
15556
15557 components: { VScaleTransition: __WEBPACK_IMPORTED_MODULE_4__transitions__["c" /* VScaleTransition */] },
15558
15559 data: function data() {
15560 return {
15561 app: {},
15562 defaultColor: 'primary',
15563 isActive: false,
15564 keyPressed: 0
15565 };
15566 },
15567
15568
15569 props: {
15570 min: {
15571 type: [Number, String],
15572 default: 0
15573 },
15574 max: {
15575 type: [Number, String],
15576 default: 100
15577 },
15578 step: {
15579 type: [Number, String],
15580 default: 1
15581 },
15582 ticks: Boolean,
15583 thumbColor: {
15584 type: String,
15585 default: null
15586 },
15587 thumbLabel: Boolean,
15588 trackColor: {
15589 type: String,
15590 default: null
15591 },
15592 value: [Number, String]
15593 },
15594
15595 computed: {
15596 classes: function classes() {
15597 return {
15598 'input-group--slider': true,
15599 'input-group--active': this.isActive,
15600 'input-group--dirty': this.inputWidth > 0,
15601 'input-group--disabled': this.disabled,
15602 'input-group--ticks': !this.disabled && this.stepNumeric && this.ticks
15603 };
15604 },
15605 computedColor: function computedColor() {
15606 return this.disabled ? null : this.color || this.defaultColor;
15607 },
15608 computedTrackColor: function computedTrackColor() {
15609 return this.disabled ? null : this.trackColor || null;
15610 },
15611 computedThumbColor: function computedThumbColor() {
15612 return this.disabled || !this.inputWidth ? null : this.thumbColor || this.color || this.defaultColor;
15613 },
15614 stepNumeric: function stepNumeric() {
15615 return this.step > 0 ? parseFloat(this.step) : 0;
15616 },
15617
15618 inputValue: {
15619 get: function get() {
15620 return this.value;
15621 },
15622 set: function set(val) {
15623 var min = this.min,
15624 max = this.max;
15625
15626 val = Math.min(Math.max(val, min), max);
15627
15628 // Round value to ensure the
15629 // entire slider range can
15630 // be selected with step
15631 var value = this.roundValue(val);
15632 this.lazyValue = value;
15633
15634 if (value !== this.value) {
15635 this.$emit('input', value);
15636 }
15637 }
15638 },
15639 interval: function interval() {
15640 return 100 / (this.max - this.min) * this.stepNumeric;
15641 },
15642 thumbStyles: function thumbStyles() {
15643 return {
15644 transition: this.keyPressed >= 2 ? 'none' : '',
15645 left: this.inputWidth + '%'
15646 };
15647 },
15648 tickContainerStyles: function tickContainerStyles() {
15649 return {
15650 transform: 'translate(0, -50%)'
15651 };
15652 },
15653 trackPadding: function trackPadding() {
15654 if (this.thumbLabel && this.isActive) return 0;
15655
15656 return 6 + (this.isActive && !this.disabled ? 3 : 0);
15657 },
15658 trackStyles: function trackStyles() {
15659 return {
15660 transition: this.keyPressed >= 2 ? 'none' : '',
15661 left: 'calc(' + this.inputWidth + '% + ' + this.trackPadding + 'px)',
15662 width: 'calc(' + (100 - this.inputWidth) + '% - ' + this.trackPadding + 'px)'
15663 };
15664 },
15665 trackFillStyles: function trackFillStyles() {
15666 return {
15667 transition: this.keyPressed >= 2 ? 'none' : '',
15668 width: 'calc(' + this.inputWidth + '% - ' + this.trackPadding + 'px)'
15669 };
15670 },
15671 numTicks: function numTicks() {
15672 return Math.ceil((this.max - this.min) / this.stepNumeric);
15673 },
15674 inputWidth: function inputWidth() {
15675 return (this.roundValue(this.inputValue) - this.min) / (this.max - this.min) * 100;
15676 }
15677 },
15678
15679 watch: {
15680 isActive: function isActive(val) {
15681 this.isFocused = val;
15682 },
15683 min: function min(val) {
15684 val > this.inputValue && this.$emit('input', parseFloat(val));
15685 },
15686 max: function max(val) {
15687 val < this.inputValue && this.$emit('input', parseFloat(val));
15688 },
15689 value: function value(val) {
15690 this.inputValue = parseFloat(val);
15691 }
15692 },
15693
15694 mounted: function mounted() {
15695 this.inputValue = this.value;
15696
15697 // Without a v-app, iOS does not work with body selectors
15698 this.app = document.querySelector('[data-app]') || Object(__WEBPACK_IMPORTED_MODULE_5__util_console__["b" /* consoleWarn */])('Missing v-app or a non-body wrapping element with the [data-app] attribute', this);
15699 },
15700
15701
15702 methods: {
15703 onMouseDown: function onMouseDown(e) {
15704 this.keyPressed = 2;
15705 var options = { passive: true };
15706 this.isActive = true;
15707
15708 if ('touches' in e) {
15709 this.app.addEventListener('touchmove', this.onMouseMove, options);
15710 Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["a" /* addOnceEventListener */])(this.app, 'touchend', this.onMouseUp);
15711 } else {
15712 this.app.addEventListener('mousemove', this.onMouseMove, options);
15713 Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["a" /* addOnceEventListener */])(this.app, 'mouseup', this.onMouseUp);
15714 }
15715 },
15716 onMouseUp: function onMouseUp() {
15717 this.keyPressed = 0;
15718 var options = { passive: true };
15719 this.isActive = false;
15720 this.app.removeEventListener('touchmove', this.onMouseMove, options);
15721 this.app.removeEventListener('mousemove', this.onMouseMove, options);
15722 },
15723 onMouseMove: function onMouseMove(e) {
15724 var _$refs$track$getBound = this.$refs.track.getBoundingClientRect(),
15725 offsetLeft = _$refs$track$getBound.left,
15726 trackWidth = _$refs$track$getBound.width;
15727
15728 var clientX = 'touches' in e ? e.touches[0].clientX : e.clientX;
15729 var left = Math.min(Math.max((clientX - offsetLeft) / trackWidth, 0), 1);
15730
15731 if (clientX >= offsetLeft - 8 && clientX <= offsetLeft + trackWidth + 8) {
15732 this.inputValue = parseFloat(this.min) + left * (this.max - this.min);
15733 }
15734 },
15735 onKeyDown: function onKeyDown(e) {
15736 if (this.disabled || ![33, 34, 35, 36, 37, 39].includes(e.keyCode)) return;
15737
15738 e.preventDefault();
15739 var step = this.stepNumeric || 1;
15740 var steps = (this.max - this.min) / step;
15741 if (e.keyCode === 37 || e.keyCode === 39) {
15742 // Left/right
15743 this.keyPressed += 1;
15744
15745 var direction = e.keyCode === 37 ? -1 : 1;
15746 var multiplier = e.shiftKey ? 3 : e.ctrlKey ? 2 : 1;
15747
15748 this.inputValue = this.inputValue + direction * step * multiplier;
15749 } else if (e.keyCode === 36) {
15750 // Home
15751 this.inputValue = parseFloat(this.min);
15752 } else if (e.keyCode === 35) {
15753 // End
15754 this.inputValue = parseFloat(this.max);
15755 } else /* if (e.keyCode === 33 || e.keyCode === 34) */{
15756 // Page up/down
15757 var _direction = e.keyCode === 34 ? -1 : 1;
15758 this.inputValue = this.inputValue - _direction * step * (steps > 100 ? steps / 10 : 10);
15759 }
15760 },
15761 onKeyUp: function onKeyUp(e) {
15762 this.keyPressed = 0;
15763 },
15764 sliderMove: function sliderMove(e) {
15765 if (!this.isActive) {
15766 this.onMouseMove(e);
15767 }
15768 },
15769 genThumbLabel: function genThumbLabel(h) {
15770 return h('v-scale-transition', {
15771 props: { origin: 'bottom center' }
15772 }, [h('div', {
15773 staticClass: 'slider__thumb--label__container',
15774 directives: [{
15775 name: 'show',
15776 value: this.isActive
15777 }]
15778 }, [h('div', {
15779 staticClass: 'slider__thumb--label',
15780 'class': this.addBackgroundColorClassChecks({}, this.computedThumbColor)
15781 }, [h('span', {}, this.inputValue)])])]);
15782 },
15783 roundValue: function roundValue(value) {
15784 if (!this.stepNumeric) {
15785 return value;
15786 }
15787
15788 // Format input value using the same number
15789 // of decimals places as in the step prop
15790 var trimmedStep = this.step.toString().trim();
15791 var decimals = trimmedStep.indexOf('.') > -1 ? trimmedStep.length - trimmedStep.indexOf('.') - 1 : 0;
15792 return 1 * (Math.round(value / this.stepNumeric) * this.stepNumeric).toFixed(decimals);
15793 },
15794 genThumbContainer: function genThumbContainer(h) {
15795 var children = [];
15796 children.push(h('div', {
15797 staticClass: 'slider__thumb',
15798 'class': this.addBackgroundColorClassChecks({}, this.computedThumbColor)
15799 }));
15800
15801 this.thumbLabel && children.push(this.genThumbLabel(h));
15802
15803 return h('div', {
15804 staticClass: 'slider__thumb-container',
15805 'class': {
15806 'slider__thumb-container--label': this.thumbLabel
15807 },
15808 style: this.thumbStyles,
15809 on: {
15810 touchstart: this.onMouseDown,
15811 mousedown: this.onMouseDown
15812 },
15813 ref: 'thumb'
15814 }, children);
15815 },
15816 genSteps: function genSteps(h) {
15817 var _this = this;
15818
15819 var ticks = Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["c" /* createRange */])(this.numTicks + 1).map(function (i) {
15820 var span = h('span', {
15821 key: i,
15822 staticClass: 'slider__tick',
15823 style: {
15824 left: i * (100 / _this.numTicks) + '%'
15825 }
15826 });
15827
15828 return span;
15829 });
15830
15831 return h('div', {
15832 staticClass: 'slider__ticks-container',
15833 style: this.tickContainerStyles
15834 }, ticks);
15835 },
15836 genTrackContainer: function genTrackContainer(h) {
15837 var children = [h('div', {
15838 staticClass: 'slider__track',
15839 'class': this.addBackgroundColorClassChecks({}, this.computedTrackColor),
15840 style: this.trackStyles
15841 }), h('div', {
15842 staticClass: 'slider__track-fill',
15843 'class': this.addBackgroundColorClassChecks(),
15844 style: this.trackFillStyles
15845 })];
15846
15847 return h('div', {
15848 staticClass: 'slider__track__container',
15849 ref: 'track'
15850 }, children);
15851 }
15852 },
15853
15854 render: function render(h) {
15855 var children = [];
15856
15857 children.push(this.genTrackContainer(h));
15858 this.step && this.ticks && children.push(this.genSteps(h));
15859 children.push(this.genThumbContainer(h));
15860
15861 var slider = h('div', {
15862 staticClass: 'slider'
15863 }, children);
15864
15865 return this.genInputGroup([slider], {
15866 attrs: {
15867 role: 'slider',
15868 tabindex: this.disabled ? -1 : this.tabindex
15869 },
15870 on: Object.assign({}, {
15871 mouseup: this.sliderMove,
15872 keydown: this.onKeyDown,
15873 keyup: this.onKeyUp
15874 }, this.$listeners),
15875 directives: [{
15876 name: 'click-outside'
15877 }]
15878 });
15879 }
15880});
15881
15882/***/ }),
15883/* 214 */
15884/***/ (function(module, exports) {
15885
15886// removed by extract-text-webpack-plugin
15887
15888/***/ }),
15889/* 215 */
15890/***/ (function(module, __webpack_exports__, __webpack_require__) {
15891
15892"use strict";
15893/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VSnackbar__ = __webpack_require__(216);
15894
15895
15896/* istanbul ignore next */
15897__WEBPACK_IMPORTED_MODULE_0__VSnackbar__["a" /* default */].install = function install(Vue) {
15898 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VSnackbar__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VSnackbar__["a" /* default */]);
15899};
15900
15901/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VSnackbar__["a" /* default */]);
15902
15903/***/ }),
15904/* 216 */
15905/***/ (function(module, __webpack_exports__, __webpack_require__) {
15906
15907"use strict";
15908/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__transitions__ = __webpack_require__(6);
15909/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_colorable__ = __webpack_require__(0);
15910/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_toggleable__ = __webpack_require__(4);
15911/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_positionable__ = __webpack_require__(12);
15912__webpack_require__(217);
15913
15914
15915
15916
15917
15918
15919
15920/* harmony default export */ __webpack_exports__["a"] = ({
15921 name: 'v-snackbar',
15922
15923 components: {
15924 VSlideYTransition: __WEBPACK_IMPORTED_MODULE_0__transitions__["f" /* VSlideYTransition */],
15925 VSlideYReverseTransition: __WEBPACK_IMPORTED_MODULE_0__transitions__["e" /* VSlideYReverseTransition */]
15926 },
15927
15928 mixins: [__WEBPACK_IMPORTED_MODULE_1__mixins_colorable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__mixins_toggleable__["a" /* default */], Object(__WEBPACK_IMPORTED_MODULE_3__mixins_positionable__["b" /* factory */])(['absolute', 'top', 'bottom', 'left', 'right'])],
15929
15930 data: function data() {
15931 return {
15932 activeTimeout: {}
15933 };
15934 },
15935
15936
15937 props: {
15938 multiLine: Boolean,
15939 // TODO: change this to closeDelay to match other API in delayable.js
15940 timeout: {
15941 type: Number,
15942 default: 6000
15943 },
15944 vertical: Boolean
15945 },
15946
15947 computed: {
15948 classes: function classes() {
15949 return this.addBackgroundColorClassChecks({
15950 'snack--active': this.isActive,
15951 'snack--absolute': this.absolute,
15952 'snack--bottom': this.bottom || !this.top,
15953 'snack--left': this.left,
15954 'snack--multi-line': this.multiLine && !this.vertical,
15955 'snack--right': this.right,
15956 'snack--top': this.top,
15957 'snack--vertical': this.vertical
15958 });
15959 },
15960 computedTransition: function computedTransition() {
15961 return this.top ? 'v-slide-y-transition' : 'v-slide-y-reverse-transition';
15962 }
15963 },
15964
15965 watch: {
15966 isActive: function isActive() {
15967 this.setTimeout();
15968 }
15969 },
15970
15971 methods: {
15972 setTimeout: function (_setTimeout) {
15973 function setTimeout() {
15974 return _setTimeout.apply(this, arguments);
15975 }
15976
15977 setTimeout.toString = function () {
15978 return _setTimeout.toString();
15979 };
15980
15981 return setTimeout;
15982 }(function () {
15983 var _this = this;
15984
15985 clearTimeout(this.activeTimeout);
15986
15987 if (this.isActive && this.timeout) {
15988 this.activeTimeout = setTimeout(function () {
15989 _this.isActive = false;
15990 }, this.timeout);
15991 }
15992 })
15993 },
15994
15995 mounted: function mounted() {
15996 this.setTimeout();
15997 },
15998 render: function render(h) {
15999 var children = [];
16000
16001 if (this.isActive) {
16002 children.push(h('div', {
16003 staticClass: 'snack__content'
16004 }, this.$slots.default));
16005 }
16006
16007 return h('div', {
16008 staticClass: 'snack',
16009 'class': this.classes,
16010 on: this.$listeners
16011 }, [h(this.computedTransition, children)]);
16012 }
16013});
16014
16015/***/ }),
16016/* 217 */
16017/***/ (function(module, exports) {
16018
16019// removed by extract-text-webpack-plugin
16020
16021/***/ }),
16022/* 218 */
16023/***/ (function(module, __webpack_exports__, __webpack_require__) {
16024
16025"use strict";
16026/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VSpeedDial__ = __webpack_require__(219);
16027
16028
16029/* istanbul ignore next */
16030__WEBPACK_IMPORTED_MODULE_0__VSpeedDial__["a" /* default */].install = function install(Vue) {
16031 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VSpeedDial__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VSpeedDial__["a" /* default */]);
16032};
16033
16034/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VSpeedDial__["a" /* default */]);
16035
16036/***/ }),
16037/* 219 */
16038/***/ (function(module, __webpack_exports__, __webpack_require__) {
16039
16040"use strict";
16041/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_toggleable__ = __webpack_require__(4);
16042/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_positionable__ = __webpack_require__(12);
16043/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_transitionable__ = __webpack_require__(26);
16044/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__directives_click_outside__ = __webpack_require__(8);
16045function _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; }
16046
16047__webpack_require__(220);
16048
16049
16050
16051
16052
16053
16054
16055/* harmony default export */ __webpack_exports__["a"] = ({
16056 name: 'v-speed-dial',
16057
16058 mixins: [__WEBPACK_IMPORTED_MODULE_1__mixins_positionable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_0__mixins_toggleable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__mixins_transitionable__["a" /* default */]],
16059
16060 directives: { ClickOutside: __WEBPACK_IMPORTED_MODULE_3__directives_click_outside__["a" /* default */] },
16061
16062 props: {
16063 direction: {
16064 type: String,
16065 default: 'top',
16066 validator: function validator(val) {
16067 return ['top', 'right', 'bottom', 'left'].includes(val);
16068 }
16069 },
16070 openOnHover: Boolean,
16071 transition: {
16072 type: String,
16073 default: 'scale-transition'
16074 }
16075 },
16076
16077 computed: {
16078 classes: function classes() {
16079 return _defineProperty({
16080 'speed-dial': true,
16081 'speed-dial--top': this.top,
16082 'speed-dial--right': this.right,
16083 'speed-dial--bottom': this.bottom,
16084 'speed-dial--left': this.left,
16085 'speed-dial--absolute': this.absolute,
16086 'speed-dial--fixed': this.fixed
16087 }, 'speed-dial--direction-' + this.direction, true);
16088 }
16089 },
16090
16091 render: function render(h) {
16092 var _this = this;
16093
16094 var children = [];
16095 var data = {
16096 'class': this.classes,
16097 directives: [{
16098 name: 'click-outside'
16099 }],
16100 on: {
16101 click: function click() {
16102 return _this.isActive = !_this.isActive;
16103 }
16104 }
16105 };
16106
16107 if (this.openOnHover) {
16108 data.on.mouseenter = function () {
16109 return _this.isActive = true;
16110 };
16111 data.on.mouseleave = function () {
16112 return _this.isActive = false;
16113 };
16114 }
16115
16116 if (this.isActive) {
16117 children = (this.$slots.default || []).map(function (b, i) {
16118 b.key = i;
16119
16120 return b;
16121 });
16122 }
16123
16124 var list = h('transition-group', {
16125 'class': 'speed-dial__list',
16126 props: {
16127 name: this.transition,
16128 mode: this.mode,
16129 origin: this.origin,
16130 tag: 'div'
16131 }
16132 }, children);
16133
16134 return h('div', data, [this.$slots.activator, list]);
16135 }
16136});
16137
16138/***/ }),
16139/* 220 */
16140/***/ (function(module, exports) {
16141
16142// removed by extract-text-webpack-plugin
16143
16144/***/ }),
16145/* 221 */
16146/***/ (function(module, __webpack_exports__, __webpack_require__) {
16147
16148"use strict";
16149/* unused harmony export VStepperHeader */
16150/* unused harmony export VStepperItems */
16151/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util_helpers__ = __webpack_require__(2);
16152/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__VStepper__ = __webpack_require__(222);
16153/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__VStepperStep__ = __webpack_require__(224);
16154/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__VStepperContent__ = __webpack_require__(225);
16155/* unused harmony reexport VStepper */
16156/* unused harmony reexport VStepperContent */
16157/* unused harmony reexport VStepperStep */
16158
16159
16160
16161
16162
16163var VStepperHeader = Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["d" /* createSimpleFunctional */])('stepper__header');
16164var VStepperItems = Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["d" /* createSimpleFunctional */])('stepper__items');
16165
16166
16167
16168/* istanbul ignore next */
16169__WEBPACK_IMPORTED_MODULE_1__VStepper__["a" /* default */].install = function install(Vue) {
16170 Vue.component(__WEBPACK_IMPORTED_MODULE_1__VStepper__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_1__VStepper__["a" /* default */]);
16171 Vue.component(__WEBPACK_IMPORTED_MODULE_3__VStepperContent__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_3__VStepperContent__["a" /* default */]);
16172 Vue.component(__WEBPACK_IMPORTED_MODULE_2__VStepperStep__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_2__VStepperStep__["a" /* default */]);
16173 Vue.component(VStepperHeader.name, VStepperHeader);
16174 Vue.component(VStepperItems.name, VStepperItems);
16175};
16176
16177/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_1__VStepper__["a" /* default */]);
16178
16179/***/ }),
16180/* 222 */
16181/***/ (function(module, __webpack_exports__, __webpack_require__) {
16182
16183"use strict";
16184/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_themeable__ = __webpack_require__(1);
16185__webpack_require__(223);
16186
16187
16188
16189/* harmony default export */ __webpack_exports__["a"] = ({
16190 name: 'v-stepper',
16191
16192 mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_themeable__["a" /* default */]],
16193
16194 provide: function provide() {
16195 return {
16196 stepClick: this.stepClick
16197 };
16198 },
16199 data: function data() {
16200 return {
16201 inputValue: null,
16202 isBooted: false,
16203 steps: [],
16204 content: [],
16205 isReverse: false
16206 };
16207 },
16208
16209
16210 props: {
16211 nonLinear: Boolean,
16212 altLabels: Boolean,
16213 vertical: Boolean,
16214 value: [Number, String]
16215 },
16216
16217 computed: {
16218 classes: function classes() {
16219 return {
16220 'stepper': true,
16221 'stepper--is-booted': this.isBooted,
16222 'stepper--vertical': this.vertical,
16223 'stepper--alt-labels': this.altLabels,
16224 'stepper--non-linear': this.nonLinear,
16225 'theme--dark': this.dark,
16226 'theme--light': this.light
16227 };
16228 }
16229 },
16230
16231 watch: {
16232 inputValue: function inputValue(val, prev) {
16233 this.isReverse = Number(val) < Number(prev);
16234 for (var index = this.steps.length; --index >= 0;) {
16235 this.steps[index].toggle(this.inputValue);
16236 }
16237 for (var _index = this.content.length; --_index >= 0;) {
16238 this.content[_index].toggle(this.inputValue, this.isReverse);
16239 }
16240
16241 this.$emit('input', this.inputValue);
16242 prev && (this.isBooted = true);
16243 },
16244 value: function value() {
16245 var _this = this;
16246
16247 this.getSteps();
16248 this.$nextTick(function () {
16249 return _this.inputValue = _this.value;
16250 });
16251 }
16252 },
16253
16254 mounted: function mounted() {
16255 this.getSteps();
16256
16257 this.inputValue = this.value || this.steps[0].step || 1;
16258 },
16259
16260
16261 methods: {
16262 getSteps: function getSteps() {
16263 this.steps = [];
16264 this.content = [];
16265 for (var index = 0; index < this.$children.length; index++) {
16266 var child = this.$children[index];
16267 if (child.$options._componentTag === 'v-stepper-step') {
16268 this.steps.push(child);
16269 } else if (child.$options._componentTag === 'v-stepper-content') {
16270 child.isVertical = this.vertical;
16271 this.content.push(child);
16272 }
16273 }
16274 },
16275 stepClick: function stepClick(step) {
16276 var _this2 = this;
16277
16278 this.getSteps();
16279 this.$nextTick(function () {
16280 return _this2.inputValue = step;
16281 });
16282 }
16283 },
16284
16285 render: function render(h) {
16286 return h('div', {
16287 'class': this.classes
16288 }, this.$slots.default);
16289 }
16290});
16291
16292/***/ }),
16293/* 223 */
16294/***/ (function(module, exports) {
16295
16296// removed by extract-text-webpack-plugin
16297
16298/***/ }),
16299/* 224 */
16300/***/ (function(module, __webpack_exports__, __webpack_require__) {
16301
16302"use strict";
16303/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VIcon__ = __webpack_require__(3);
16304/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__directives_ripple__ = __webpack_require__(17);
16305
16306
16307
16308/* harmony default export */ __webpack_exports__["a"] = ({
16309 name: 'v-stepper-step',
16310
16311 components: { VIcon: __WEBPACK_IMPORTED_MODULE_0__VIcon__["a" /* default */] },
16312
16313 directives: { Ripple: __WEBPACK_IMPORTED_MODULE_1__directives_ripple__["a" /* default */] },
16314
16315 inject: ['stepClick'],
16316
16317 data: function data() {
16318 return {
16319 isActive: false,
16320 isInactive: true
16321 };
16322 },
16323
16324
16325 props: {
16326 complete: Boolean,
16327 completeIcon: {
16328 type: String,
16329 default: 'check'
16330 },
16331 editIcon: {
16332 type: String,
16333 default: 'edit'
16334 },
16335 errorIcon: {
16336 type: String,
16337 default: 'warning'
16338 },
16339 editable: Boolean,
16340 rules: {
16341 type: Array,
16342 default: function _default() {
16343 return [];
16344 }
16345 },
16346 step: [Number, String]
16347 },
16348
16349 computed: {
16350 classes: function classes() {
16351 return {
16352 'stepper__step': true,
16353 'stepper__step--active': this.isActive,
16354 'stepper__step--editable': this.editable,
16355 'stepper__step--inactive': this.isInactive,
16356 'stepper__step--error': this.hasError,
16357 'stepper__step--complete': this.complete,
16358 'error--text': this.hasError
16359 };
16360 },
16361 hasError: function hasError() {
16362 return this.rules.some(function (i) {
16363 return i() !== true;
16364 });
16365 }
16366 },
16367
16368 methods: {
16369 click: function click(e) {
16370 e.stopPropagation();
16371
16372 if (this.editable) {
16373 this.stepClick(this.step);
16374 }
16375 },
16376 toggle: function toggle(step) {
16377 this.isActive = step.toString() === this.step.toString();
16378 this.isInactive = Number(step) < Number(this.step);
16379 }
16380 },
16381
16382 render: function render(h) {
16383 var data = {
16384 'class': this.classes,
16385 directives: [{
16386 name: 'ripple',
16387 value: this.editable
16388 }],
16389 on: { click: this.click }
16390 };
16391 var stepContent = void 0;
16392
16393 if (this.hasError) {
16394 stepContent = [h('v-icon', {}, this.errorIcon)];
16395 } else if (this.complete) {
16396 if (this.editable) {
16397 stepContent = [h('v-icon', {}, this.editIcon)];
16398 } else {
16399 stepContent = [h('v-icon', {}, this.completeIcon)];
16400 }
16401 } else {
16402 stepContent = this.step;
16403 }
16404
16405 var step = h('span', {
16406 staticClass: 'stepper__step__step',
16407 'class': {
16408 'primary': !this.hasError && (this.complete || this.isActive)
16409 }
16410 }, stepContent);
16411
16412 var label = h('div', {
16413 staticClass: 'stepper__label'
16414 }, this.$slots.default);
16415
16416 return h('div', data, [step, label]);
16417 }
16418});
16419
16420/***/ }),
16421/* 225 */
16422/***/ (function(module, __webpack_exports__, __webpack_require__) {
16423
16424"use strict";
16425/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__transitions__ = __webpack_require__(6);
16426
16427
16428/* harmony default export */ __webpack_exports__["a"] = ({
16429 name: 'v-stepper-content',
16430
16431 components: {
16432 VTabTransition: __WEBPACK_IMPORTED_MODULE_0__transitions__["h" /* VTabTransition */],
16433 VTabReverseTransition: __WEBPACK_IMPORTED_MODULE_0__transitions__["g" /* VTabReverseTransition */]
16434 },
16435
16436 data: function data() {
16437 return {
16438 height: 0,
16439 // Must be null to allow
16440 // previous comparison
16441 isActive: null,
16442 isReverse: false,
16443 isVertical: false
16444 };
16445 },
16446
16447
16448 props: {
16449 step: {
16450 type: [Number, String],
16451 required: true
16452 }
16453 },
16454
16455 computed: {
16456 classes: function classes() {
16457 return {
16458 'stepper__content': true
16459 };
16460 },
16461 computedTransition: function computedTransition() {
16462 return this.isReverse ? 'v-tab-reverse-transition' : 'v-tab-transition';
16463 },
16464 styles: function styles() {
16465 if (!this.isVertical) return {};
16466
16467 return {
16468 height: !isNaN(this.height) ? this.height + 'px' : this.height
16469 };
16470 },
16471 wrapperClasses: function wrapperClasses() {
16472 return {
16473 'stepper__wrapper': true
16474 };
16475 }
16476 },
16477
16478 watch: {
16479 isActive: function isActive(current, previous) {
16480 // If active and the previous state
16481 // was null, is just booting up
16482 if (current && previous == null) {
16483 return this.height = 'auto';
16484 }
16485
16486 if (!this.isVertical) return;
16487
16488 if (this.isActive) this.enter();else this.leave();
16489 }
16490 },
16491
16492 mounted: function mounted() {
16493 this.$refs.wrapper.addEventListener('transitionend', this.onTransition, false);
16494 },
16495 beforeDestroy: function beforeDestroy() {
16496 this.$refs.wrapper.removeEventListener('transitionend', this.onTransition, false);
16497 },
16498
16499
16500 methods: {
16501 onTransition: function onTransition(e) {
16502 if (!this.isActive || e.propertyName !== 'height') return;
16503
16504 this.height = 'auto';
16505 },
16506 enter: function enter() {
16507 var _this = this;
16508
16509 var scrollHeight = 0;
16510
16511 // Render bug with height
16512 requestAnimationFrame(function () {
16513 scrollHeight = _this.$refs.wrapper.scrollHeight;
16514 });
16515
16516 this.height = 0;
16517
16518 // Give the collapsing element time to collapse
16519 setTimeout(function () {
16520 return _this.height = scrollHeight || 'auto';
16521 }, 450);
16522 },
16523 leave: function leave() {
16524 var _this2 = this;
16525
16526 this.height = this.$refs.wrapper.clientHeight;
16527 setTimeout(function () {
16528 return _this2.height = 0;
16529 }, 10);
16530 },
16531 toggle: function toggle(step, reverse) {
16532 this.isActive = step.toString() === this.step.toString();
16533 this.isReverse = reverse;
16534 }
16535 },
16536
16537 render: function render(h) {
16538 var contentData = {
16539 'class': this.classes
16540 };
16541 var wrapperData = {
16542 'class': this.wrapperClasses,
16543 style: this.styles,
16544 ref: 'wrapper'
16545 };
16546
16547 if (!this.isVertical) {
16548 contentData.directives = [{
16549 name: 'show',
16550 value: this.isActive
16551 }];
16552 }
16553
16554 var wrapper = h('div', wrapperData, [this.$slots.default]);
16555 var content = h('div', contentData, [wrapper]);
16556
16557 return h(this.computedTransition, {
16558 on: this.$listeners
16559 }, [content]);
16560 }
16561});
16562
16563/***/ }),
16564/* 226 */
16565/***/ (function(module, __webpack_exports__, __webpack_require__) {
16566
16567"use strict";
16568/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VSubheader__ = __webpack_require__(227);
16569
16570
16571/* istanbul ignore next */
16572__WEBPACK_IMPORTED_MODULE_0__VSubheader__["a" /* default */].install = function install(Vue) {
16573 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VSubheader__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VSubheader__["a" /* default */]);
16574};
16575
16576/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VSubheader__["a" /* default */]);
16577
16578/***/ }),
16579/* 227 */
16580/***/ (function(module, __webpack_exports__, __webpack_require__) {
16581
16582"use strict";
16583/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_themeable__ = __webpack_require__(1);
16584__webpack_require__(228);
16585
16586
16587
16588/* harmony default export */ __webpack_exports__["a"] = ({
16589 name: 'v-subheader',
16590
16591 functional: true,
16592
16593 mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_themeable__["a" /* default */]],
16594
16595 props: {
16596 inset: Boolean
16597 },
16598
16599 render: function render(h, _ref) {
16600 var data = _ref.data,
16601 children = _ref.children,
16602 props = _ref.props;
16603
16604 data.staticClass = ('subheader ' + (data.staticClass || '')).trim();
16605
16606 if (props.inset) data.staticClass += ' subheader--inset';
16607 if (props.light) data.staticClass += ' theme--light';
16608 if (props.dark) data.staticClass += ' theme--dark';
16609
16610 return h('li', data, children);
16611 }
16612});
16613
16614/***/ }),
16615/* 228 */
16616/***/ (function(module, exports) {
16617
16618// removed by extract-text-webpack-plugin
16619
16620/***/ }),
16621/* 229 */
16622/***/ (function(module, __webpack_exports__, __webpack_require__) {
16623
16624"use strict";
16625/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VSwitch__ = __webpack_require__(230);
16626
16627
16628/* istanbul ignore next */
16629__WEBPACK_IMPORTED_MODULE_0__VSwitch__["a" /* default */].install = function install(Vue) {
16630 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VSwitch__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VSwitch__["a" /* default */]);
16631};
16632
16633/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VSwitch__["a" /* default */]);
16634
16635/***/ }),
16636/* 230 */
16637/***/ (function(module, __webpack_exports__, __webpack_require__) {
16638
16639"use strict";
16640/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_rippleable__ = __webpack_require__(23);
16641/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_selectable__ = __webpack_require__(40);
16642/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__directives_touch__ = __webpack_require__(9);
16643__webpack_require__(18);
16644__webpack_require__(28);
16645__webpack_require__(231);
16646
16647// Mixins
16648
16649
16650
16651// Directives
16652
16653
16654/* harmony default export */ __webpack_exports__["a"] = ({
16655 name: 'v-switch',
16656
16657 mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_rippleable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_1__mixins_selectable__["a" /* default */]],
16658
16659 directives: { Touch: __WEBPACK_IMPORTED_MODULE_2__directives_touch__["a" /* default */] },
16660
16661 computed: {
16662 classes: function classes() {
16663 var classes = {
16664 'input-group--selection-controls switch': true
16665 };
16666
16667 if (this.hasError) {
16668 classes['error--text'] = true;
16669 } else {
16670 return this.addTextColorClassChecks(classes);
16671 }
16672
16673 return classes;
16674 },
16675 rippleClasses: function rippleClasses() {
16676 return {
16677 'input-group--selection-controls__ripple': true,
16678 'input-group--selection-controls__ripple--active': this.isActive
16679 };
16680 },
16681 containerClasses: function containerClasses() {
16682 return {
16683 'input-group--selection-controls__container': true,
16684 'input-group--selection-controls__container--light': this.light,
16685 'input-group--selection-controls__container--disabled': this.disabled
16686 };
16687 },
16688 toggleClasses: function toggleClasses() {
16689 return {
16690 'input-group--selection-controls__toggle': true,
16691 'input-group--selection-controls__toggle--active': this.isActive
16692 };
16693 }
16694 },
16695
16696 methods: {
16697 onSwipeLeft: function onSwipeLeft() {
16698 if (this.isActive) this.toggle();
16699 },
16700 onSwipeRight: function onSwipeRight() {
16701 if (!this.isActive) this.toggle();
16702 }
16703 },
16704
16705 render: function render(h) {
16706 var container = h('div', {
16707 'class': this.containerClasses
16708 }, [h('div', { 'class': this.toggleClasses }), this.genRipple({
16709 directives: [{
16710 name: 'touch',
16711 value: {
16712 left: this.onSwipeLeft,
16713 right: this.onSwipeRight
16714 }
16715 }]
16716 })]);
16717
16718 return this.genInputGroup([container]);
16719 }
16720});
16721
16722/***/ }),
16723/* 231 */
16724/***/ (function(module, exports) {
16725
16726// removed by extract-text-webpack-plugin
16727
16728/***/ }),
16729/* 232 */
16730/***/ (function(module, __webpack_exports__, __webpack_require__) {
16731
16732"use strict";
16733/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VSystemBar__ = __webpack_require__(233);
16734
16735
16736/* istanbul ignore next */
16737__WEBPACK_IMPORTED_MODULE_0__VSystemBar__["a" /* default */].install = function install(Vue) {
16738 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VSystemBar__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VSystemBar__["a" /* default */]);
16739};
16740
16741/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VSystemBar__["a" /* default */]);
16742
16743/***/ }),
16744/* 233 */
16745/***/ (function(module, __webpack_exports__, __webpack_require__) {
16746
16747"use strict";
16748/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_applicationable__ = __webpack_require__(15);
16749/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_colorable__ = __webpack_require__(0);
16750/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_themeable__ = __webpack_require__(1);
16751__webpack_require__(234);
16752
16753
16754
16755
16756
16757/* harmony default export */ __webpack_exports__["a"] = ({
16758 name: 'v-system-bar',
16759
16760 mixins: [Object(__WEBPACK_IMPORTED_MODULE_0__mixins_applicationable__["a" /* default */])('bar', ['height', 'window']), __WEBPACK_IMPORTED_MODULE_1__mixins_colorable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__mixins_themeable__["a" /* default */]],
16761
16762 props: {
16763 height: {
16764 type: [Number, String],
16765 validator: function validator(v) {
16766 return !isNaN(parseInt(v));
16767 }
16768 },
16769 lightsOut: Boolean,
16770 status: Boolean,
16771 window: Boolean
16772 },
16773
16774 computed: {
16775 classes: function classes() {
16776 return this.addBackgroundColorClassChecks(Object.assign({
16777 'system-bar--lights-out': this.lightsOut,
16778 'system-bar--absolute': this.absolute,
16779 'system-bar--fixed': !this.absolute && (this.app || this.fixed),
16780 'system-bar--status': this.status,
16781 'system-bar--window': this.window
16782 }, this.themeClasses));
16783 },
16784 computedHeight: function computedHeight() {
16785 if (this.height) return parseInt(this.height);
16786
16787 return this.window ? 32 : 24;
16788 }
16789 },
16790
16791 methods: {
16792 /**
16793 * Update the application layout
16794 *
16795 * @return {number}
16796 */
16797 updateApplication: function updateApplication() {
16798 return this.computedHeight;
16799 }
16800 },
16801
16802 render: function render(h) {
16803 var data = {
16804 staticClass: 'system-bar',
16805 'class': this.classes,
16806 style: {
16807 height: this.computedHeight + 'px'
16808 }
16809 };
16810
16811 return h('div', data, this.$slots.default);
16812 }
16813});
16814
16815/***/ }),
16816/* 234 */
16817/***/ (function(module, exports) {
16818
16819// removed by extract-text-webpack-plugin
16820
16821/***/ }),
16822/* 235 */
16823/***/ (function(module, __webpack_exports__, __webpack_require__) {
16824
16825"use strict";
16826/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VTabs__ = __webpack_require__(236);
16827/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__VTab__ = __webpack_require__(243);
16828/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__VTabsItems__ = __webpack_require__(63);
16829/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__VTabItem__ = __webpack_require__(244);
16830/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__VTabsSlider__ = __webpack_require__(64);
16831/* unused harmony reexport VTabs */
16832/* unused harmony reexport VTabItem */
16833/* unused harmony reexport VTab */
16834/* unused harmony reexport VTabsItems */
16835/* unused harmony reexport VTabsSlider */
16836
16837
16838
16839
16840
16841
16842
16843
16844/* istanbul ignore next */
16845__WEBPACK_IMPORTED_MODULE_0__VTabs__["a" /* default */].install = function install(Vue) {
16846 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VTabs__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VTabs__["a" /* default */]);
16847 Vue.component(__WEBPACK_IMPORTED_MODULE_1__VTab__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_1__VTab__["a" /* default */]);
16848 Vue.component(__WEBPACK_IMPORTED_MODULE_2__VTabsItems__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_2__VTabsItems__["a" /* default */]);
16849 Vue.component(__WEBPACK_IMPORTED_MODULE_3__VTabItem__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_3__VTabItem__["a" /* default */]);
16850 Vue.component(__WEBPACK_IMPORTED_MODULE_4__VTabsSlider__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_4__VTabsSlider__["a" /* default */]);
16851};
16852
16853/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VTabs__["a" /* default */]);
16854
16855/***/ }),
16856/* 236 */
16857/***/ (function(module, __webpack_exports__, __webpack_require__) {
16858
16859"use strict";
16860/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VIcon__ = __webpack_require__(3);
16861/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__VTabsItems__ = __webpack_require__(63);
16862/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__VTabsSlider__ = __webpack_require__(64);
16863/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_tabs_computed__ = __webpack_require__(238);
16864/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__mixins_tabs_generators__ = __webpack_require__(239);
16865/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__mixins_tabs_props__ = __webpack_require__(240);
16866/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__mixins_tabs_touch__ = __webpack_require__(241);
16867/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__mixins_tabs_watchers__ = __webpack_require__(242);
16868/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__mixins_colorable__ = __webpack_require__(0);
16869/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__mixins_ssr_bootable__ = __webpack_require__(25);
16870/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__mixins_themeable__ = __webpack_require__(1);
16871/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__mixins_registrable__ = __webpack_require__(5);
16872/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__directives_resize__ = __webpack_require__(11);
16873/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__directives_touch__ = __webpack_require__(9);
16874// Styles
16875__webpack_require__(237);
16876
16877// Component imports
16878
16879
16880
16881
16882// Component level mixins
16883
16884
16885
16886
16887
16888
16889// Mixins
16890
16891
16892
16893
16894
16895// Directives
16896
16897
16898
16899/* harmony default export */ __webpack_exports__["a"] = ({
16900 name: 'v-tabs',
16901
16902 components: {
16903 VIcon: __WEBPACK_IMPORTED_MODULE_0__VIcon__["a" /* default */],
16904 VTabsItems: __WEBPACK_IMPORTED_MODULE_1__VTabsItems__["a" /* default */],
16905 VTabsSlider: __WEBPACK_IMPORTED_MODULE_2__VTabsSlider__["a" /* default */]
16906 },
16907
16908 mixins: [Object(__WEBPACK_IMPORTED_MODULE_11__mixins_registrable__["b" /* provide */])('tabs'), __WEBPACK_IMPORTED_MODULE_8__mixins_colorable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_9__mixins_ssr_bootable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_3__mixins_tabs_computed__["a" /* default */], __WEBPACK_IMPORTED_MODULE_5__mixins_tabs_props__["a" /* default */], __WEBPACK_IMPORTED_MODULE_4__mixins_tabs_generators__["a" /* default */], __WEBPACK_IMPORTED_MODULE_6__mixins_tabs_touch__["a" /* default */], __WEBPACK_IMPORTED_MODULE_7__mixins_tabs_watchers__["a" /* default */], __WEBPACK_IMPORTED_MODULE_10__mixins_themeable__["a" /* default */]],
16909
16910 directives: {
16911 Resize: __WEBPACK_IMPORTED_MODULE_12__directives_resize__["a" /* default */],
16912 Touch: __WEBPACK_IMPORTED_MODULE_13__directives_touch__["a" /* default */]
16913 },
16914
16915 provide: function provide() {
16916 return {
16917 tabClick: this.tabClick,
16918 tabProxy: this.tabProxy,
16919 registerItems: this.registerItems,
16920 unregisterItems: this.unregisterItems
16921 };
16922 },
16923 data: function data() {
16924 return {
16925 prependIconVisible: false,
16926 appendIconVisible: false,
16927 bar: [],
16928 content: [],
16929 isBooted: false,
16930 isOverflowing: false,
16931 lazyValue: this.value,
16932 resizeTimeout: null,
16933 reverse: false,
16934 scrollOffset: 0,
16935 sliderWidth: null,
16936 sliderLeft: null,
16937 startX: 0,
16938 tabsContainer: null,
16939 tabs: [],
16940 tabItems: null,
16941 transitionTime: 300
16942 };
16943 },
16944
16945
16946 methods: {
16947 checkPrependIcon: function checkPrependIcon() {
16948 return this.scrollOffset > 0;
16949 },
16950 checkAppendIcon: function checkAppendIcon() {
16951 // Check one scroll ahead to know the width of right-most item
16952 var container = this.$refs.container;
16953 var wrapper = this.$refs.wrapper;
16954
16955 return container.clientWidth > this.scrollOffset + wrapper.clientWidth;
16956 },
16957 callSlider: function callSlider() {
16958 this.setOverflow();
16959 if (!this.activeTab) return false;
16960
16961 // Give screen time to paint
16962 var action = this.activeTab.action;
16963 var activeTab = action === this.activeTab ? this.activeTab : this.tabs.find(function (tab) {
16964 return tab.action === action;
16965 });
16966
16967 if (!activeTab) return;
16968 this.sliderWidth = activeTab.$el.scrollWidth;
16969 this.sliderLeft = activeTab.$el.offsetLeft;
16970 },
16971
16972 /**
16973 * When v-navigation-drawer changes the
16974 * width of the container, call resize
16975 * after the transition is complete
16976 */
16977 onContainerResize: function onContainerResize() {
16978 clearTimeout(this.resizeTimeout);
16979 this.resizeTimeout = setTimeout(this.callSlider, this.transitionTime);
16980 },
16981 onResize: function onResize() {
16982 if (this._isDestroyed) return;
16983
16984 this.callSlider();
16985 this.scrollIntoView();
16986 },
16987 overflowCheck: function overflowCheck(e, fn) {
16988 this.isOverflowing && fn(e);
16989 },
16990 scrollTo: function scrollTo(direction) {
16991 this.scrollOffset = this.newOffset(direction);
16992 },
16993 setOverflow: function setOverflow() {
16994 this.isOverflowing = this.$refs.bar.clientWidth < this.$refs.container.clientWidth;
16995 },
16996 findActiveLink: function findActiveLink() {
16997 var _this = this;
16998
16999 if (!this.tabs.length || this.lazyValue) return;
17000
17001 var activeIndex = this.tabs.findIndex(function (tabItem, index) {
17002 var id = tabItem.action === tabItem ? index.toString() : tabItem.action;
17003 return id === _this.lazyValue || tabItem.$el.firstChild.className.indexOf(_this.activeClass) > -1;
17004 });
17005
17006 var index = activeIndex > -1 ? activeIndex : 0;
17007 var tab = this.tabs[index];
17008
17009 /* istanbul ignore next */
17010 // There is not a reliable way to test
17011 this.inputValue = tab.action === tab ? index : tab.action;
17012 },
17013 parseNodes: function parseNodes() {
17014 var item = [];
17015 var items = [];
17016 var slider = [];
17017 var tab = [];
17018 var length = (this.$slots.default || []).length;
17019
17020 for (var i = 0; i < length; i++) {
17021 var vnode = this.$slots.default[i];
17022
17023 /* istanbul ignore else */
17024 if (vnode.componentOptions) {
17025 switch (vnode.componentOptions.Ctor.options.name) {
17026 case 'v-tabs-slider':
17027 slider.push(vnode);
17028 break;
17029 case 'v-tabs-items':
17030 items.push(vnode);
17031 break;
17032 case 'v-tab-item':
17033 item.push(vnode);
17034 break;
17035 // case 'v-tab' - intentionally omitted
17036 default:
17037 tab.push(vnode);
17038 }
17039 }
17040 }
17041
17042 return { tab: tab, slider: slider, items: items, item: item };
17043 },
17044 register: function register(options) {
17045 this.tabs.push(options);
17046 },
17047 scrollIntoView: function scrollIntoView() {
17048 if (!this.activeTab) return false;
17049
17050 var _activeTab$$el = this.activeTab.$el,
17051 clientWidth = _activeTab$$el.clientWidth,
17052 offsetLeft = _activeTab$$el.offsetLeft;
17053
17054 var wrapperWidth = this.$refs.wrapper.clientWidth;
17055 var totalWidth = wrapperWidth + this.scrollOffset;
17056 var itemOffset = clientWidth + offsetLeft;
17057 var additionalOffset = clientWidth * 0.3;
17058
17059 /* instanbul ignore else */
17060 if (offsetLeft < this.scrollOffset) {
17061 this.scrollOffset = Math.max(offsetLeft - additionalOffset, 0);
17062 } else if (totalWidth < itemOffset) {
17063 this.scrollOffset -= totalWidth - itemOffset - additionalOffset;
17064 }
17065 },
17066 tabClick: function tabClick(tab) {
17067 this.inputValue = tab.action === tab ? this.tabs.indexOf(tab) : tab.action;
17068 this.scrollIntoView();
17069 },
17070 tabProxy: function tabProxy(val) {
17071 this.inputValue = val;
17072 },
17073 registerItems: function registerItems(fn) {
17074 this.tabItems = fn;
17075 },
17076 unregisterItems: function unregisterItems() {
17077 this.tabItems = null;
17078 },
17079 unregister: function unregister(tab) {
17080 this.tabs = this.tabs.filter(function (o) {
17081 return o !== tab;
17082 });
17083 },
17084 updateTabs: function updateTabs() {
17085 for (var index = this.tabs.length; --index >= 0;) {
17086 this.tabs[index].toggle(this.target);
17087 }
17088
17089 this.setOverflow();
17090 }
17091 },
17092
17093 mounted: function mounted() {
17094 this.callSlider();
17095 this.prependIconVisible = this.checkPrependIcon();
17096 this.appendIconVisible = this.checkAppendIcon();
17097 },
17098 render: function render(h) {
17099 var _parseNodes = this.parseNodes(),
17100 tab = _parseNodes.tab,
17101 slider = _parseNodes.slider,
17102 items = _parseNodes.items,
17103 item = _parseNodes.item;
17104
17105 return h('div', {
17106 staticClass: 'tabs',
17107 directives: [{
17108 name: 'resize',
17109 arg: 400,
17110 modifiers: { quiet: true },
17111 value: this.onResize
17112 }]
17113 }, [this.genBar([this.genSlider(slider), tab]), this.genItems(items, item)]);
17114 }
17115});
17116
17117/***/ }),
17118/* 237 */
17119/***/ (function(module, exports) {
17120
17121// removed by extract-text-webpack-plugin
17122
17123/***/ }),
17124/* 238 */
17125/***/ (function(module, __webpack_exports__, __webpack_require__) {
17126
17127"use strict";
17128/**
17129 * Tabs computed
17130 *
17131 * @mixin
17132 */
17133/* harmony default export */ __webpack_exports__["a"] = ({
17134 computed: {
17135 activeIndex: function activeIndex() {
17136 var _this = this;
17137
17138 return this.tabs.findIndex(function (tab, index) {
17139 var id = tab.action === tab ? index.toString() : tab.action;
17140 return id === _this.lazyValue;
17141 });
17142 },
17143 activeTab: function activeTab() {
17144 if (!this.tabs.length) return undefined;
17145
17146 return this.tabs[this.activeIndex];
17147 },
17148 containerStyles: function containerStyles() {
17149 return this.height ? {
17150 height: parseInt(this.height, 10) + 'px'
17151 } : null;
17152 },
17153 hasArrows: function hasArrows() {
17154 return (this.showArrows || !this.isMobile) && this.isOverflowing;
17155 },
17156
17157 inputValue: {
17158 get: function get() {
17159 return this.lazyValue;
17160 },
17161 set: function set(val) {
17162 // Always use strings
17163 val = val.toString();
17164
17165 this.lazyValue = val;
17166 this.$emit('input', val);
17167 }
17168 },
17169 isMobile: function isMobile() {
17170 return this.$vuetify.breakpoint.width < this.mobileBreakPoint;
17171 },
17172 sliderStyles: function sliderStyles() {
17173 return {
17174 left: this.sliderLeft + 'px',
17175 transition: this.sliderLeft != null ? null : 'none',
17176 width: this.sliderWidth + 'px'
17177 };
17178 },
17179 target: function target() {
17180 return this.activeTab ? this.activeTab.action : null;
17181 }
17182 }
17183});
17184
17185/***/ }),
17186/* 239 */
17187/***/ (function(module, __webpack_exports__, __webpack_require__) {
17188
17189"use strict";
17190/**
17191 * Tabs generators
17192 *
17193 * @mixin
17194 */
17195/* harmony default export */ __webpack_exports__["a"] = ({
17196 methods: {
17197 genBar: function genBar(items) {
17198 return this.$createElement('div', {
17199 staticClass: 'tabs__bar',
17200 'class': this.addBackgroundColorClassChecks({
17201 'theme--dark': this.dark,
17202 'theme--light': this.light
17203 }),
17204 ref: 'bar'
17205 }, [this.genTransition('prepend'), this.genWrapper(this.genContainer(items)), this.genTransition('append')]);
17206 },
17207 genContainer: function genContainer(items) {
17208 return this.$createElement('div', {
17209 staticClass: 'tabs__container',
17210 class: {
17211 'tabs__container--align-with-title': this.alignWithTitle,
17212 'tabs__container--centered': this.centered,
17213 'tabs__container--fixed-tabs': this.fixedTabs,
17214 'tabs__container--grow': this.grow,
17215 'tabs__container--icons-and-text': this.iconsAndText,
17216 'tabs__container--overflow': this.isOverflowing,
17217 'tabs__container--right': this.right
17218 },
17219 style: this.containerStyles,
17220 ref: 'container'
17221 }, items);
17222 },
17223 genIcon: function genIcon(direction) {
17224 var _this = this;
17225
17226 if (!this.hasArrows || !this[direction + 'IconVisible']) return null;
17227
17228 return this.$createElement('v-icon', {
17229 staticClass: 'tabs__icon tabs__icon--' + direction,
17230 props: {
17231 disabled: !this[direction + 'IconVisible']
17232 },
17233 on: {
17234 click: function click() {
17235 return _this.scrollTo(direction);
17236 }
17237 }
17238 }, this[direction + 'Icon']);
17239 },
17240 genItems: function genItems(items, item) {
17241 if (items.length > 0) return items;
17242 if (!item.length) return null;
17243
17244 return this.$createElement('v-tabs-items', item);
17245 },
17246 genTransition: function genTransition(direction) {
17247 return this.$createElement('transition', {
17248 props: { name: 'fade-transition' }
17249 }, [this.genIcon(direction)]);
17250 },
17251 genWrapper: function genWrapper(items) {
17252 var _this2 = this;
17253
17254 return this.$createElement('div', {
17255 staticClass: 'tabs__wrapper',
17256 class: {
17257 'tabs__wrapper--show-arrows': this.hasArrows
17258 },
17259 ref: 'wrapper',
17260 directives: [{
17261 name: 'touch',
17262 value: {
17263 start: function start(e) {
17264 return _this2.overflowCheck(e, _this2.onTouchStart);
17265 },
17266 move: function move(e) {
17267 return _this2.overflowCheck(e, _this2.onTouchMove);
17268 },
17269 end: function end(e) {
17270 return _this2.overflowCheck(e, _this2.onTouchEnd);
17271 }
17272 }
17273 }]
17274 }, [items]);
17275 },
17276 genSlider: function genSlider(items) {
17277 if (!items.length) {
17278 items = [this.$createElement('v-tabs-slider', {
17279 props: { color: this.sliderColor }
17280 })];
17281 }
17282
17283 return this.$createElement('div', {
17284 staticClass: 'tabs__slider-wrapper',
17285 style: this.sliderStyles
17286 }, items);
17287 }
17288 }
17289});
17290
17291/***/ }),
17292/* 240 */
17293/***/ (function(module, __webpack_exports__, __webpack_require__) {
17294
17295"use strict";
17296/**
17297 * Tabs props
17298 *
17299 * @mixin
17300 */
17301/* harmony default export */ __webpack_exports__["a"] = ({
17302 props: {
17303 alignWithTitle: Boolean,
17304 appendIcon: {
17305 type: String,
17306 default: 'chevron_right'
17307 },
17308 centered: Boolean,
17309 fixedTabs: Boolean,
17310 grow: Boolean,
17311 height: {
17312 type: [Number, String],
17313 default: undefined,
17314 validator: function validator(v) {
17315 return !isNaN(parseInt(v));
17316 }
17317 },
17318 hideSlider: Boolean,
17319 iconsAndText: Boolean,
17320 mobileBreakPoint: {
17321 type: [Number, String],
17322 default: 1264,
17323 validator: function validator(v) {
17324 return !isNaN(parseInt(v));
17325 }
17326 },
17327 prependIcon: {
17328 type: String,
17329 default: 'chevron_left'
17330 },
17331 right: Boolean,
17332 showArrows: Boolean,
17333 sliderColor: {
17334 type: String,
17335 default: 'accent'
17336 },
17337 value: [Number, String]
17338 }
17339});
17340
17341/***/ }),
17342/* 241 */
17343/***/ (function(module, __webpack_exports__, __webpack_require__) {
17344
17345"use strict";
17346/**
17347 * Tabs touch
17348 *
17349 * @mixin
17350 */
17351/* harmony default export */ __webpack_exports__["a"] = ({
17352 methods: {
17353 newOffset: function newOffset(direction) {
17354 var clientWidth = this.$refs.wrapper.clientWidth;
17355
17356 if (direction === 'prepend') {
17357 return Math.max(this.scrollOffset - clientWidth, 0);
17358 } else {
17359 return Math.min(this.scrollOffset + clientWidth, this.$refs.container.clientWidth - clientWidth);
17360 }
17361 },
17362 onTouchStart: function onTouchStart(e) {
17363 this.startX = this.scrollOffset + e.touchstartX;
17364 this.$refs.container.style.transition = 'none';
17365 this.$refs.container.style.willChange = 'transform';
17366 },
17367 onTouchMove: function onTouchMove(e) {
17368 this.scrollOffset = this.startX - e.touchmoveX;
17369 },
17370 onTouchEnd: function onTouchEnd() {
17371 var container = this.$refs.container;
17372 var wrapper = this.$refs.wrapper;
17373 var maxScrollOffset = container.clientWidth - wrapper.clientWidth;
17374 container.style.transition = null;
17375 container.style.willChange = null;
17376
17377 /* istanbul ignore else */
17378 if (this.scrollOffset < 0 || !this.isOverflowing) {
17379 this.scrollOffset = 0;
17380 } else if (this.scrollOffset >= maxScrollOffset) {
17381 this.scrollOffset = maxScrollOffset;
17382 }
17383 }
17384 }
17385});
17386
17387/***/ }),
17388/* 242 */
17389/***/ (function(module, __webpack_exports__, __webpack_require__) {
17390
17391"use strict";
17392/**
17393 * Tabs watchers
17394 *
17395 * @mixin
17396 */
17397/* harmony default export */ __webpack_exports__["a"] = ({
17398 watch: {
17399 activeTab: function activeTab(tab) {
17400 this.callSlider();
17401
17402 if (!tab) return;
17403
17404 var action = tab.action;
17405 this.tabItems && this.tabItems(action === tab ? this.tabs.indexOf(tab).toString() : action);
17406 },
17407
17408 alignWithTitle: 'callSlider',
17409 centered: 'callSlider',
17410 fixedTabs: 'callSlider',
17411 isBooted: 'findActiveLink',
17412 lazyValue: 'updateTabs',
17413 right: 'callSlider',
17414 value: function value(val) {
17415 var tab = this.tabs.find(function (tab) {
17416 return tab.action === val;
17417 }) || this.tabs[val];
17418
17419 if (!tab) return;
17420
17421 this.tabClick(tab);
17422 },
17423
17424 '$vuetify.application.left': 'onContainerResize',
17425 '$vuetify.application.right': 'onContainerResize',
17426 scrollOffset: function scrollOffset(val) {
17427 this.$refs.container.style.transform = 'translateX(' + -val + 'px)';
17428 if (this.hasArrows) {
17429 this.prependIconVisible = this.checkPrependIcon();
17430 this.appendIconVisible = this.checkAppendIcon();
17431 }
17432 }
17433 }
17434});
17435
17436/***/ }),
17437/* 243 */
17438/***/ (function(module, __webpack_exports__, __webpack_require__) {
17439
17440"use strict";
17441/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_routable__ = __webpack_require__(13);
17442/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_registrable__ = __webpack_require__(5);
17443function _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; }
17444
17445// Mixins
17446
17447
17448
17449/* harmony default export */ __webpack_exports__["a"] = ({
17450 name: 'v-tab',
17451
17452 mixins: [Object(__WEBPACK_IMPORTED_MODULE_1__mixins_registrable__["a" /* inject */])('tabs', 'v-tab', 'v-tabs'), __WEBPACK_IMPORTED_MODULE_0__mixins_routable__["a" /* default */]],
17453
17454 inject: ['tabClick'],
17455
17456 data: function data() {
17457 return {
17458 isActive: false
17459 };
17460 },
17461
17462
17463 props: {
17464 activeClass: {
17465 type: String,
17466 default: 'tabs__item--active'
17467 },
17468 ripple: {
17469 type: [Boolean, Object],
17470 default: true
17471 }
17472 },
17473
17474 computed: {
17475 classes: function classes() {
17476 return _defineProperty({
17477 'tabs__item': true,
17478 'tabs__item--disabled': this.disabled
17479 }, this.activeClass, !this.to && this.isActive);
17480 },
17481 action: function action() {
17482 var to = this.to || this.href;
17483
17484 if (typeof to === 'string') return to.replace('#', '');
17485 if (to === Object(to) && to.hasOwnProperty('path')) return to.path;
17486
17487 return this;
17488 }
17489 },
17490
17491 watch: {
17492 $route: {
17493 immediate: true,
17494 handler: 'onRouteChange'
17495 }
17496 },
17497
17498 mounted: function mounted() {
17499 this.tabs.register(this);
17500 },
17501 beforeDestroy: function beforeDestroy() {
17502 this.tabs.unregister(this);
17503 },
17504
17505
17506 methods: {
17507 click: function click(e) {
17508 // If user provides an
17509 // actual link, do not
17510 // prevent default
17511 if (this.href && this.href.indexOf('#') > -1) e.preventDefault();
17512
17513 this.$emit('click', e);
17514
17515 this.to || this.tabClick(this);
17516 },
17517 onRouteChange: function onRouteChange() {
17518 var _this = this;
17519
17520 if (!this.to) return;
17521
17522 this.$nextTick(function () {
17523 if (_this.$el.firstChild.className.indexOf(_this.activeClass) > -1) {
17524 _this.tabClick(_this);
17525 }
17526 });
17527 },
17528 toggle: function toggle(action) {
17529 this.isActive = action === this || action === this.action;
17530 }
17531 },
17532
17533 render: function render(h) {
17534 var link = this.generateRouteLink();
17535 var data = link.data;
17536
17537 // If disabled, use div as anchor tags do not support
17538 // being disabled
17539
17540 var tag = this.disabled ? 'div' : link.tag;
17541
17542 return h('div', {
17543 staticClass: 'tabs__div'
17544 }, [h(tag, data, this.$slots.default)]);
17545 }
17546});
17547
17548/***/ }),
17549/* 244 */
17550/***/ (function(module, __webpack_exports__, __webpack_require__) {
17551
17552"use strict";
17553/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_bootable__ = __webpack_require__(16);
17554/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__transitions__ = __webpack_require__(6);
17555/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_registrable__ = __webpack_require__(5);
17556/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__directives_touch__ = __webpack_require__(9);
17557
17558
17559
17560
17561
17562
17563
17564
17565/* harmony default export */ __webpack_exports__["a"] = ({
17566 name: 'v-tab-item',
17567
17568 mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_bootable__["a" /* default */], Object(__WEBPACK_IMPORTED_MODULE_2__mixins_registrable__["a" /* inject */])('tabs', 'v-tab-item', 'v-tabs-items')],
17569
17570 components: {
17571 VTabTransition: __WEBPACK_IMPORTED_MODULE_1__transitions__["h" /* VTabTransition */],
17572 VTabReverseTransition: __WEBPACK_IMPORTED_MODULE_1__transitions__["g" /* VTabReverseTransition */]
17573 },
17574
17575 directives: {
17576 Touch: __WEBPACK_IMPORTED_MODULE_3__directives_touch__["a" /* default */]
17577 },
17578
17579 data: function data() {
17580 return {
17581 isActive: false,
17582 reverse: false
17583 };
17584 },
17585
17586
17587 props: {
17588 id: String,
17589 transition: {
17590 type: [Boolean, String],
17591 default: 'tab-transition'
17592 },
17593 reverseTransition: {
17594 type: [Boolean, String],
17595 default: 'tab-reverse-transition'
17596 }
17597 },
17598
17599 computed: {
17600 computedTransition: function computedTransition() {
17601 return this.reverse ? this.reverseTransition : this.transition;
17602 }
17603 },
17604
17605 methods: {
17606 toggle: function toggle(target, reverse, showTransition, index) {
17607 this.$el.style.transition = !showTransition ? 'none' : null;
17608 this.reverse = reverse;
17609 this.isActive = (this.id || index.toString()) === target;
17610 }
17611 },
17612
17613 mounted: function mounted() {
17614 this.tabs.register(this);
17615 },
17616 beforeDestroy: function beforeDestroy() {
17617 this.tabs.unregister(this);
17618 },
17619 render: function render(h) {
17620 var data = {
17621 staticClass: 'tabs__content',
17622 directives: [{
17623 name: 'show',
17624 value: this.isActive
17625 }],
17626 domProps: { id: this.id },
17627 on: this.$listeners
17628 };
17629
17630 var div = h('div', data, this.showLazyContent(this.$slots.default));
17631
17632 if (!this.computedTransition) return div;
17633
17634 return h('transition', {
17635 props: { name: this.computedTransition }
17636 }, [div]);
17637 }
17638});
17639
17640/***/ }),
17641/* 245 */
17642/***/ (function(module, __webpack_exports__, __webpack_require__) {
17643
17644"use strict";
17645/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VTextField__ = __webpack_require__(246);
17646
17647
17648/* istanbul ignore next */
17649__WEBPACK_IMPORTED_MODULE_0__VTextField__["a" /* default */].install = function install(Vue) {
17650 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VTextField__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VTextField__["a" /* default */]);
17651};
17652
17653/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VTextField__["a" /* default */]);
17654
17655/***/ }),
17656/* 246 */
17657/***/ (function(module, __webpack_exports__, __webpack_require__) {
17658
17659"use strict";
17660/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_colorable__ = __webpack_require__(0);
17661/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_input__ = __webpack_require__(19);
17662/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_maskable__ = __webpack_require__(51);
17663/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_soloable__ = __webpack_require__(52);
17664var _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; };
17665
17666// Styles
17667__webpack_require__(18);
17668__webpack_require__(45);
17669
17670// Mixins
17671
17672
17673
17674
17675
17676/* harmony default export */ __webpack_exports__["a"] = ({
17677 name: 'v-text-field',
17678
17679 mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_colorable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_1__mixins_input__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__mixins_maskable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_3__mixins_soloable__["a" /* default */]],
17680
17681 inheritAttrs: false,
17682
17683 data: function data() {
17684 return {
17685 initialValue: null,
17686 inputHeight: null,
17687 internalChange: false,
17688 badInput: false
17689 };
17690 },
17691
17692
17693 props: {
17694 autofocus: Boolean,
17695 autoGrow: Boolean,
17696 box: Boolean,
17697 clearable: Boolean,
17698 color: {
17699 type: String,
17700 default: 'primary'
17701 },
17702 counter: [Boolean, Number, String],
17703 fullWidth: Boolean,
17704 multiLine: Boolean,
17705 placeholder: String,
17706 prefix: String,
17707 rows: {
17708 default: 5
17709 },
17710 singleLine: Boolean,
17711 suffix: String,
17712 textarea: Boolean,
17713 type: {
17714 type: String,
17715 default: 'text'
17716 }
17717 },
17718
17719 computed: {
17720 classes: function classes() {
17721 var classes = _extends({}, this.genSoloClasses(), {
17722 'input-group--text-field': true,
17723 'input-group--text-field-box': this.box,
17724 'input-group--single-line': this.singleLine || this.isSolo,
17725 'input-group--multi-line': this.multiLine,
17726 'input-group--full-width': this.fullWidth,
17727 'input-group--prefix': this.prefix,
17728 'input-group--suffix': this.suffix,
17729 'input-group--textarea': this.textarea
17730 });
17731
17732 if (this.hasError) {
17733 classes['error--text'] = true;
17734 } else {
17735 return this.addTextColorClassChecks(classes);
17736 }
17737
17738 return classes;
17739 },
17740 count: function count() {
17741 var inputLength = void 0;
17742 if (this.inputValue) inputLength = this.inputValue.toString().length;else inputLength = 0;
17743
17744 return inputLength + ' / ' + this.counterLength;
17745 },
17746 counterLength: function counterLength() {
17747 var parsedLength = parseInt(this.counter, 10);
17748 return isNaN(parsedLength) ? 25 : parsedLength;
17749 },
17750
17751 inputValue: {
17752 get: function get() {
17753 return this.lazyValue;
17754 },
17755 set: function set(val) {
17756 if (this.mask) {
17757 this.lazyValue = this.unmaskText(this.maskText(this.unmaskText(val)));
17758 this.setSelectionRange();
17759 } else {
17760 this.lazyValue = val;
17761 this.$emit('input', this.lazyValue);
17762 }
17763 }
17764 },
17765 isDirty: function isDirty() {
17766 return this.lazyValue != null && this.lazyValue.toString().length > 0 || this.badInput || ['time', 'date', 'datetime-local', 'week', 'month'].includes(this.type);
17767 },
17768 shouldAutoGrow: function shouldAutoGrow() {
17769 return (this.multiLine || this.textarea) && this.autoGrow;
17770 }
17771 },
17772
17773 watch: {
17774 isFocused: function isFocused(val) {
17775 if (val) {
17776 this.initialValue = this.lazyValue;
17777 } else if (this.initialValue !== this.lazyValue) {
17778 this.$emit('change', this.lazyValue);
17779 }
17780 },
17781 value: function value(val) {
17782 var _this = this;
17783
17784 if (this.mask && !this.internalChange) {
17785 var masked = this.maskText(this.unmaskText(val));
17786 this.lazyValue = this.unmaskText(masked);
17787
17788 // Emit when the externally set value was modified internally
17789 String(val) !== this.lazyValue && this.$nextTick(function () {
17790 _this.$refs.input.value = masked;
17791 _this.$emit('input', _this.lazyValue);
17792 });
17793 } else this.lazyValue = val;
17794
17795 if (this.internalChange) this.internalChange = false;
17796
17797 !this.validateOnBlur && this.validate();
17798 this.shouldAutoGrow && this.calculateInputHeight();
17799 }
17800 },
17801
17802 mounted: function mounted() {
17803 this.shouldAutoGrow && this.calculateInputHeight();
17804 this.autofocus && this.focus();
17805 },
17806
17807
17808 methods: {
17809 calculateInputHeight: function calculateInputHeight() {
17810 var _this2 = this;
17811
17812 this.inputHeight = null;
17813
17814 this.$nextTick(function () {
17815 var height = _this2.$refs.input ? _this2.$refs.input.scrollHeight : 0;
17816 var minHeight = _this2.rows * 24;
17817 var inputHeight = height < minHeight ? minHeight : height;
17818 _this2.inputHeight = inputHeight + (_this2.textarea ? 4 : 0);
17819 });
17820 },
17821 onInput: function onInput(e) {
17822 this.mask && this.resetSelections(e.target);
17823 this.inputValue = e.target.value;
17824 this.badInput = e.target.validity && e.target.validity.badInput;
17825 this.shouldAutoGrow && this.calculateInputHeight();
17826 },
17827 blur: function blur(e) {
17828 var _this3 = this;
17829
17830 this.isFocused = false;
17831 // Reset internalChange state
17832 // to allow external change
17833 // to persist
17834 this.internalChange = false;
17835
17836 this.$nextTick(function () {
17837 _this3.validate();
17838 });
17839 this.$emit('blur', e);
17840 },
17841 focus: function focus(e) {
17842 if (!this.$refs.input) return;
17843
17844 this.isFocused = true;
17845 if (document.activeElement !== this.$refs.input) {
17846 this.$refs.input.focus();
17847 }
17848 this.$emit('focus', e);
17849 },
17850 keyDown: function keyDown(e) {
17851 // Prevents closing of a
17852 // dialog when pressing
17853 // enter
17854 if (this.multiLine && this.isFocused && e.keyCode === 13) {
17855 e.stopPropagation();
17856 }
17857
17858 this.internalChange = true;
17859 },
17860 genCounter: function genCounter() {
17861 return this.$createElement('div', {
17862 'class': {
17863 'input-group__counter': true,
17864 'input-group__counter--error': this.hasError
17865 }
17866 }, this.count);
17867 },
17868 genInput: function genInput() {
17869 var tag = this.multiLine || this.textarea ? 'textarea' : 'input';
17870 var listeners = Object.assign({}, this.$listeners);
17871 delete listeners['change']; // Change should not be bound externally
17872
17873 var data = {
17874 style: {},
17875 domProps: {
17876 autofocus: this.autofocus,
17877 disabled: this.disabled,
17878 required: this.required,
17879 value: this.maskText(this.lazyValue)
17880 },
17881 attrs: _extends({}, this.$attrs, {
17882 readonly: this.readonly,
17883 tabindex: this.tabindex,
17884 'aria-label': (!this.$attrs || !this.$attrs.id) && this.label // Label `for` will be set if we have an id
17885 }),
17886 on: Object.assign(listeners, {
17887 blur: this.blur,
17888 input: this.onInput,
17889 focus: this.focus,
17890 keydown: this.keyDown
17891 }),
17892 ref: 'input'
17893 };
17894
17895 if (this.shouldAutoGrow) {
17896 data.style.height = this.inputHeight && this.inputHeight + 'px';
17897 }
17898
17899 if (this.placeholder) data.domProps.placeholder = this.placeholder;
17900
17901 if (!this.textarea && !this.multiLine) {
17902 data.domProps.type = this.type;
17903 } else {
17904 data.domProps.rows = this.rows;
17905 }
17906
17907 if (this.mask) {
17908 data.attrs.maxlength = this.masked.length;
17909 }
17910
17911 var children = [this.$createElement(tag, data)];
17912
17913 this.prefix && children.unshift(this.genFix('prefix'));
17914 this.suffix && children.push(this.genFix('suffix'));
17915
17916 return children;
17917 },
17918 genFix: function genFix(type) {
17919 return this.$createElement('span', {
17920 'class': 'input-group--text-field__' + type
17921 }, this[type]);
17922 },
17923 clearableCallback: function clearableCallback() {
17924 var _this4 = this;
17925
17926 this.inputValue = null;
17927 this.$nextTick(function () {
17928 return _this4.$refs.input.focus();
17929 });
17930 }
17931 },
17932
17933 render: function render() {
17934 return this.genInputGroup(this.genInput(), { attrs: { tabindex: false } });
17935 }
17936});
17937
17938/***/ }),
17939/* 247 */
17940/***/ (function(module, __webpack_exports__, __webpack_require__) {
17941
17942"use strict";
17943/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VTimePicker__ = __webpack_require__(248);
17944/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__VTimePickerClock__ = __webpack_require__(66);
17945/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__VTimePickerTitle__ = __webpack_require__(65);
17946/* unused harmony reexport VTimePicker */
17947/* unused harmony reexport VTimePickerClock */
17948/* unused harmony reexport VTimePickerTitle */
17949
17950
17951
17952
17953
17954
17955/* istanbul ignore next */
17956__WEBPACK_IMPORTED_MODULE_0__VTimePicker__["a" /* default */].install = function install(Vue) {
17957 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VTimePicker__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VTimePicker__["a" /* default */]);
17958 Vue.component(__WEBPACK_IMPORTED_MODULE_1__VTimePickerClock__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_1__VTimePickerClock__["a" /* default */]);
17959 Vue.component(__WEBPACK_IMPORTED_MODULE_2__VTimePickerTitle__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_2__VTimePickerTitle__["a" /* default */]);
17960};
17961
17962/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VTimePicker__["a" /* default */]);
17963
17964/***/ }),
17965/* 248 */
17966/***/ (function(module, __webpack_exports__, __webpack_require__) {
17967
17968"use strict";
17969/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VTimePickerTitle__ = __webpack_require__(65);
17970/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__VTimePickerClock__ = __webpack_require__(66);
17971/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_picker__ = __webpack_require__(61);
17972/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__util_helpers__ = __webpack_require__(2);
17973/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__VDatePicker_util_pad__ = __webpack_require__(24);
17974/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__util_isValueAllowed__ = __webpack_require__(20);
17975var _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"); } }; }();
17976
17977// Components
17978
17979
17980
17981// Mixins
17982
17983
17984// Utils
17985
17986
17987
17988
17989var rangeHours24 = Object(__WEBPACK_IMPORTED_MODULE_3__util_helpers__["c" /* createRange */])(24);
17990var rangeHours12am = Object(__WEBPACK_IMPORTED_MODULE_3__util_helpers__["c" /* createRange */])(12);
17991var rangeHours12pm = rangeHours12am.map(function (v) {
17992 return v + 12;
17993});
17994var rangeMinutes = Object(__WEBPACK_IMPORTED_MODULE_3__util_helpers__["c" /* createRange */])(60);
17995
17996/* harmony default export */ __webpack_exports__["a"] = ({
17997 name: 'v-time-picker',
17998
17999 components: {
18000 VTimePickerTitle: __WEBPACK_IMPORTED_MODULE_0__VTimePickerTitle__["a" /* default */],
18001 VTimePickerClock: __WEBPACK_IMPORTED_MODULE_1__VTimePickerClock__["a" /* default */]
18002 },
18003
18004 mixins: [__WEBPACK_IMPORTED_MODULE_2__mixins_picker__["a" /* default */]],
18005
18006 data: function data() {
18007 var _getInputTime = this.getInputTime(this.value),
18008 inputHour = _getInputTime.inputHour,
18009 inputMinute = _getInputTime.inputMinute;
18010
18011 return {
18012 inputHour: inputHour,
18013 inputMinute: inputMinute,
18014 originalHour: inputHour,
18015 originalMinute: inputMinute,
18016 selectingHour: true
18017 };
18018 },
18019
18020
18021 props: {
18022 allowedHours: {
18023 type: [Array, Object, Function],
18024 default: function _default() {
18025 return null;
18026 }
18027 },
18028 allowedMinutes: {
18029 type: [Array, Object, Function],
18030 default: function _default() {
18031 return null;
18032 }
18033 },
18034 autosave: Boolean,
18035 format: {
18036 type: String,
18037 default: 'ampm',
18038 validator: function validator(val) {
18039 return ['ampm', '24hr'].includes(val);
18040 }
18041 },
18042 scrollable: Boolean,
18043 value: null
18044 },
18045
18046 computed: {
18047 hour: {
18048 get: function get() {
18049 return this.inputHour == null ? this.firstAllowed('hour', new Date().getHours()) : this.inputHour;
18050 },
18051 set: function set(value) {
18052 this.inputHour = value;
18053 }
18054 },
18055 minute: {
18056 get: function get() {
18057 return this.inputMinute == null ? this.firstAllowed('minute', new Date().getMinutes()) : this.inputMinute;
18058 },
18059 set: function set(value) {
18060 this.inputMinute = value;
18061 }
18062 },
18063 period: {
18064 get: function get() {
18065 return this.hour < 12 ? 'am' : 'pm';
18066 },
18067 set: function set(val) {
18068 var newHour = this.hour + (val === 'am' ? -12 : 12);
18069 this.hour = this.firstAllowed('hour', newHour);
18070 }
18071 },
18072 isAmPm: function isAmPm() {
18073 return this.format === 'ampm';
18074 }
18075 },
18076
18077 watch: {
18078 value: function value(_value) {
18079 var _getInputTime2 = this.getInputTime(_value),
18080 inputHour = _getInputTime2.inputHour,
18081 inputMinute = _getInputTime2.inputMinute;
18082
18083 this.inputHour = inputHour;
18084 this.inputMinute = inputMinute;
18085 },
18086 inputHour: function inputHour(val) {
18087 this.$emit('input', Object(__WEBPACK_IMPORTED_MODULE_4__VDatePicker_util_pad__["a" /* default */])(this.hour) + ':' + Object(__WEBPACK_IMPORTED_MODULE_4__VDatePicker_util_pad__["a" /* default */])(this.minute));
18088 },
18089 inputMinute: function inputMinute(val) {
18090 this.$emit('input', Object(__WEBPACK_IMPORTED_MODULE_4__VDatePicker_util_pad__["a" /* default */])(this.hour) + ':' + Object(__WEBPACK_IMPORTED_MODULE_4__VDatePicker_util_pad__["a" /* default */])(this.minute));
18091 }
18092 },
18093
18094 methods: {
18095 getInputTime: function getInputTime(value) {
18096 if (value instanceof Date) {
18097 return {
18098 inputHour: value.getHours(),
18099 inputMinute: value.getMinutes()
18100 };
18101 }
18102
18103 if (value) {
18104 var _ref = value.trim().toLowerCase().match(/^(\d+):(\d+)(:\d+)?([ap]m)?$/, '') || [],
18105 _ref2 = _slicedToArray(_ref, 5),
18106 hour = _ref2[1],
18107 minute = _ref2[2],
18108 period = _ref2[4];
18109
18110 return {
18111 inputMinute: parseInt(minute, 10),
18112 inputHour: period ? this.convert12to24(parseInt(hour, 10), period) : parseInt(hour, 10)
18113 };
18114 }
18115
18116 return {};
18117 },
18118 convert24to12: function convert24to12(hour) {
18119 return hour ? (hour - 1) % 12 + 1 : 12;
18120 },
18121 convert12to24: function convert12to24(hour, period) {
18122 return hour % 12 + (period === 'pm' ? 12 : 0);
18123 },
18124 save: function save() {
18125 this.originalHour = this.inputHour;
18126 this.originalMinute = this.inputMinute;
18127 this.commit();
18128 },
18129 cancel: function cancel() {
18130 this.inputHour = this.originalHour;
18131 this.inputMinute = this.originalMinute;
18132 this.commit();
18133 },
18134 commit: function commit() {
18135 var _this = this;
18136
18137 if (this.$parent && this.$parent.isActive) this.$parent.isActive = false;
18138
18139 // Fix for #1818
18140 // Wait for data to persist
18141 // then set selectingHour
18142 this.$nextTick(function () {
18143 return _this.selectingHour = true;
18144 });
18145 },
18146 onInput: function onInput(value) {
18147 if (!this.selectingHour) {
18148 this.minute = value;
18149 } else {
18150 this.hour = this.isAmPm ? this.convert12to24(value, this.period) : value;
18151 }
18152 },
18153 onChange: function onChange() {
18154 if (!this.selectingHour && this.autosave) {
18155 this.save();
18156 }
18157
18158 if (this.selectingHour) {
18159 this.selectingHour = !this.selectingHour;
18160 }
18161 },
18162 firstAllowed: function firstAllowed(type, value) {
18163 var allowedFn = type === 'hour' ? this.allowedHours : this.allowedMinutes;
18164 if (!allowedFn) return value;
18165
18166 var range = type === 'minute' ? rangeMinutes : this.isAmPm ? value < 12 ? rangeHours12am : rangeHours12pm : rangeHours24;
18167 var first = range.find(function (v) {
18168 return Object(__WEBPACK_IMPORTED_MODULE_5__util_isValueAllowed__["a" /* default */])((v + value) % range.length + range[0], allowedFn);
18169 });
18170 return ((first || 0) + value) % range.length + range[0];
18171 },
18172 genClock: function genClock() {
18173 return this.$createElement('v-time-picker-clock', {
18174 props: {
18175 allowedValues: this.selectingHour ? this.allowedHours : this.allowedMinutes,
18176 color: this.color,
18177 dark: this.dark,
18178 double: this.selectingHour && !this.isAmPm,
18179 format: this.selectingHour ? this.isAmPm ? this.convert24to12 : function (val) {
18180 return val;
18181 } : function (val) {
18182 return Object(__WEBPACK_IMPORTED_MODULE_4__VDatePicker_util_pad__["a" /* default */])(val, 2);
18183 },
18184 max: this.selectingHour ? this.isAmPm && this.period === 'am' ? 11 : 23 : 59,
18185 min: this.selectingHour && this.isAmPm && this.period === 'pm' ? 12 : 0,
18186 scrollable: this.scrollable,
18187 size: this.landscape ? 250 : 270,
18188 step: this.selectingHour ? 1 : 5,
18189 value: this.selectingHour ? this.hour : this.minute
18190 },
18191 on: {
18192 input: this.onInput,
18193 change: this.onChange
18194 },
18195 ref: 'clock'
18196 });
18197 },
18198 genPickerBody: function genPickerBody() {
18199 return this.$createElement('div', {
18200 style: {
18201 width: '100%',
18202 height: '100%'
18203 },
18204 key: this.selectingHour
18205 }, [this.genClock()]);
18206 },
18207 genPickerTitle: function genPickerTitle() {
18208 var _this2 = this;
18209
18210 return this.$createElement('v-time-picker-title', {
18211 props: {
18212 ampm: this.isAmPm,
18213 value: Object(__WEBPACK_IMPORTED_MODULE_4__VDatePicker_util_pad__["a" /* default */])(this.hour) + ':' + Object(__WEBPACK_IMPORTED_MODULE_4__VDatePicker_util_pad__["a" /* default */])(this.minute),
18214 selectingHour: this.selectingHour
18215 },
18216 on: {
18217 'update:selectingHour': function updateSelectingHour(value) {
18218 return _this2.selectingHour = value;
18219 },
18220 'update:period': function updatePeriod(value) {
18221 return _this2.period = value;
18222 }
18223 },
18224 ref: 'title',
18225 slot: 'title'
18226 });
18227 }
18228 },
18229
18230 render: function render(h) {
18231 return this.genPicker('picker--time');
18232 }
18233});
18234
18235/***/ }),
18236/* 249 */
18237/***/ (function(module, exports) {
18238
18239// removed by extract-text-webpack-plugin
18240
18241/***/ }),
18242/* 250 */
18243/***/ (function(module, exports) {
18244
18245// removed by extract-text-webpack-plugin
18246
18247/***/ }),
18248/* 251 */
18249/***/ (function(module, __webpack_exports__, __webpack_require__) {
18250
18251"use strict";
18252/* unused harmony export VToolbarTitle */
18253/* unused harmony export VToolbarItems */
18254/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util_helpers__ = __webpack_require__(2);
18255/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__VToolbar__ = __webpack_require__(252);
18256/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__VToolbarSideIcon__ = __webpack_require__(254);
18257/* unused harmony reexport VToolbar */
18258/* unused harmony reexport VToolbarSideIcon */
18259
18260
18261
18262
18263
18264var VToolbarTitle = Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["d" /* createSimpleFunctional */])('toolbar__title');
18265var VToolbarItems = Object(__WEBPACK_IMPORTED_MODULE_0__util_helpers__["d" /* createSimpleFunctional */])('toolbar__items');
18266
18267
18268
18269/* istanbul ignore next */
18270__WEBPACK_IMPORTED_MODULE_1__VToolbar__["a" /* default */].install = function install(Vue) {
18271 Vue.component(__WEBPACK_IMPORTED_MODULE_1__VToolbar__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_1__VToolbar__["a" /* default */]);
18272 Vue.component(VToolbarItems.name, VToolbarItems);
18273 Vue.component(VToolbarTitle.name, VToolbarTitle);
18274 Vue.component(__WEBPACK_IMPORTED_MODULE_2__VToolbarSideIcon__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_2__VToolbarSideIcon__["a" /* default */]);
18275};
18276
18277/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_1__VToolbar__["a" /* default */]);
18278
18279/***/ }),
18280/* 252 */
18281/***/ (function(module, __webpack_exports__, __webpack_require__) {
18282
18283"use strict";
18284/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_applicationable__ = __webpack_require__(15);
18285/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_colorable__ = __webpack_require__(0);
18286/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_themeable__ = __webpack_require__(1);
18287/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_ssr_bootable__ = __webpack_require__(25);
18288/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__directives_scroll__ = __webpack_require__(67);
18289// Styles
18290__webpack_require__(253);
18291
18292// Mixins
18293
18294
18295
18296
18297
18298// Directives
18299
18300
18301/* harmony default export */ __webpack_exports__["a"] = ({
18302 name: 'v-toolbar',
18303
18304 mixins: [Object(__WEBPACK_IMPORTED_MODULE_0__mixins_applicationable__["a" /* default */])('top', ['clippedLeft', 'clippedRight', 'computedHeight', 'invertedScroll', 'manualScroll']), __WEBPACK_IMPORTED_MODULE_1__mixins_colorable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_3__mixins_ssr_bootable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__mixins_themeable__["a" /* default */]],
18305
18306 directives: { Scroll: __WEBPACK_IMPORTED_MODULE_4__directives_scroll__["a" /* default */] },
18307
18308 data: function data() {
18309 return {
18310 activeTimeout: null,
18311 currentScroll: 0,
18312 heights: {
18313 mobileLandscape: 48,
18314 mobile: 56,
18315 desktop: 64,
18316 dense: 48
18317 },
18318 isActive: true,
18319 isExtended: false,
18320 isScrollingUp: false,
18321 previousScroll: null,
18322 previousScrollDirection: null,
18323 savedScroll: 0,
18324 target: null
18325 };
18326 },
18327
18328 props: {
18329 card: Boolean,
18330 clippedLeft: Boolean,
18331 clippedRight: Boolean,
18332 dense: Boolean,
18333 extended: Boolean,
18334 extensionHeight: {
18335 type: [Number, String],
18336 validator: function validator(v) {
18337 return !isNaN(parseInt(v));
18338 }
18339 },
18340 flat: Boolean,
18341 floating: Boolean,
18342 height: {
18343 type: [Number, String],
18344 validator: function validator(v) {
18345 return !isNaN(parseInt(v));
18346 }
18347 },
18348 invertedScroll: Boolean,
18349 manualScroll: Boolean,
18350 prominent: Boolean,
18351 scrollOffScreen: Boolean,
18352 scrollTarget: String,
18353 scrollThreshold: {
18354 type: Number,
18355 default: 300
18356 },
18357 tabs: Boolean
18358 },
18359
18360 computed: {
18361 computedContentHeight: function computedContentHeight() {
18362 if (this.height) return parseInt(this.height);
18363 if (this.dense) return this.heights.dense;
18364
18365 if (this.prominent || this.$vuetify.breakpoint.mdAndUp) return this.heights.desktop;
18366
18367 if (this.$vuetify.breakpoint.width > this.$vuetify.breakpoint.height) return this.heights.mobileLandscape;
18368
18369 return this.heights.mobile;
18370 },
18371 computedExtensionHeight: function computedExtensionHeight() {
18372 if (this.tabs) return 48;
18373 if (this.extensionHeight) return parseInt(this.extensionHeight);
18374
18375 return this.computedContentHeight;
18376 },
18377 computedHeight: function computedHeight() {
18378 if (!this.isExtended) return this.computedContentHeight;
18379
18380 return this.computedContentHeight + this.computedExtensionHeight;
18381 },
18382 computedMarginTop: function computedMarginTop() {
18383 if (!this.app) return 0;
18384
18385 return this.$vuetify.application.bar;
18386 },
18387 classes: function classes() {
18388 return this.addBackgroundColorClassChecks({
18389 'toolbar': true,
18390 'elevation-0': this.flat || !this.isActive && !this.tabs,
18391 'toolbar--absolute': this.absolute,
18392 'toolbar--card': this.card,
18393 'toolbar--clipped': this.clippedLeft || this.clippedRight,
18394 'toolbar--dense': this.dense,
18395 'toolbar--extended': this.isExtended,
18396 'toolbar--fixed': !this.absolute && (this.app || this.fixed),
18397 'toolbar--floating': this.floating,
18398 'toolbar--prominent': this.prominent,
18399 'theme--dark': this.dark,
18400 'theme--light': this.light
18401 });
18402 },
18403 computedPaddingLeft: function computedPaddingLeft() {
18404 if (!this.app || this.clippedLeft) return 0;
18405
18406 return this.$vuetify.application.left;
18407 },
18408 computedPaddingRight: function computedPaddingRight() {
18409 if (!this.app || this.clippedRight) return 0;
18410
18411 return this.$vuetify.application.right;
18412 },
18413 computedTransform: function computedTransform() {
18414 return !this.isActive ? -this.computedHeight : 0;
18415 },
18416 currentThreshold: function currentThreshold() {
18417 return Math.abs(this.currentScroll - this.savedScroll);
18418 },
18419 styles: function styles() {
18420 return {
18421 marginTop: this.computedMarginTop + 'px',
18422 paddingRight: this.computedPaddingRight + 'px',
18423 paddingLeft: this.computedPaddingLeft + 'px',
18424 transform: 'translateY(' + this.computedTransform + 'px)'
18425 };
18426 }
18427 },
18428
18429 watch: {
18430 currentThreshold: function currentThreshold(val) {
18431 if (this.invertedScroll) {
18432 return this.isActive = this.currentScroll > this.scrollThreshold;
18433 }
18434
18435 if (val < this.scrollThreshold || !this.isBooted) return;
18436
18437 this.isActive = this.isScrollingUp;
18438 this.savedScroll = this.currentScroll;
18439 },
18440 isActive: function isActive() {
18441 this.savedScroll = 0;
18442 },
18443 invertedScroll: function invertedScroll(val) {
18444 this.isActive = !val;
18445 },
18446 manualScroll: function manualScroll(val) {
18447 this.isActive = !val;
18448 },
18449 isScrollingUp: function isScrollingUp(val) {
18450 this.savedScroll = this.savedScroll || this.currentScroll;
18451 }
18452 },
18453
18454 created: function created() {
18455 if (this.invertedScroll || this.manualScroll) this.isActive = false;
18456 },
18457 mounted: function mounted() {
18458 if (this.scrollTarget) {
18459 this.target = document.querySelector(this.scrollTarget);
18460 }
18461 },
18462
18463
18464 methods: {
18465 onScroll: function onScroll() {
18466 if (!this.scrollOffScreen || this.manualScroll || typeof window === 'undefined') return;
18467
18468 var target = this.target || window;
18469
18470 this.currentScroll = this.scrollTarget ? target.scrollTop : target.pageYOffset || document.documentElement.scrollTop;
18471
18472 this.isScrollingUp = this.currentScroll < this.previousScroll;
18473
18474 this.previousScroll = this.currentScroll;
18475 },
18476
18477 /**
18478 * Update the application layout
18479 *
18480 * @return {number}
18481 */
18482 updateApplication: function updateApplication() {
18483 return this.invertedScroll || this.manualScroll ? 0 : this.computedHeight;
18484 }
18485 },
18486
18487 render: function render(h) {
18488 this.isExtended = this.extended || !!this.$slots.extension;
18489
18490 var children = [];
18491 var data = {
18492 'class': this.classes,
18493 style: this.styles,
18494 on: this.$listeners
18495 };
18496
18497 data.directives = [{
18498 arg: this.scrollTarget,
18499 name: 'scroll',
18500 value: this.onScroll
18501 }];
18502
18503 children.push(h('div', {
18504 staticClass: 'toolbar__content',
18505 style: { height: this.computedContentHeight + 'px' },
18506 ref: 'content'
18507 }, this.$slots.default));
18508
18509 if (this.isExtended) {
18510 children.push(h('div', {
18511 staticClass: 'toolbar__extension',
18512 style: { height: this.computedExtensionHeight + 'px' }
18513 }, this.$slots.extension));
18514 }
18515
18516 return h('nav', data, children);
18517 }
18518});
18519
18520/***/ }),
18521/* 253 */
18522/***/ (function(module, exports) {
18523
18524// removed by extract-text-webpack-plugin
18525
18526/***/ }),
18527/* 254 */
18528/***/ (function(module, __webpack_exports__, __webpack_require__) {
18529
18530"use strict";
18531/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__components_VBtn__ = __webpack_require__(10);
18532/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__components_VIcon__ = __webpack_require__(3);
18533
18534
18535
18536/* harmony default export */ __webpack_exports__["a"] = ({
18537 name: 'v-toolbar-side-icon',
18538
18539 functional: true,
18540
18541 render: function render(h, _ref) {
18542 var slots = _ref.slots,
18543 listeners = _ref.listeners,
18544 props = _ref.props,
18545 data = _ref.data;
18546
18547 var classes = data.staticClass ? data.staticClass + ' toolbar__side-icon' : 'toolbar__side-icon';
18548
18549 var d = Object.assign(data, {
18550 staticClass: classes,
18551 props: Object.assign(props, {
18552 icon: true
18553 }),
18554 on: listeners
18555 });
18556
18557 var defaultSlot = slots().default;
18558
18559 return h(__WEBPACK_IMPORTED_MODULE_0__components_VBtn__["a" /* default */], d, defaultSlot || [h(__WEBPACK_IMPORTED_MODULE_1__components_VIcon__["a" /* default */], 'menu')]);
18560 }
18561});
18562
18563/***/ }),
18564/* 255 */
18565/***/ (function(module, __webpack_exports__, __webpack_require__) {
18566
18567"use strict";
18568/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__VTooltip__ = __webpack_require__(256);
18569
18570
18571/* istanbul ignore next */
18572__WEBPACK_IMPORTED_MODULE_0__VTooltip__["a" /* default */].install = function install(Vue) {
18573 Vue.component(__WEBPACK_IMPORTED_MODULE_0__VTooltip__["a" /* default */].name, __WEBPACK_IMPORTED_MODULE_0__VTooltip__["a" /* default */]);
18574};
18575
18576/* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0__VTooltip__["a" /* default */]);
18577
18578/***/ }),
18579/* 256 */
18580/***/ (function(module, __webpack_exports__, __webpack_require__) {
18581
18582"use strict";
18583/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mixins_colorable__ = __webpack_require__(0);
18584/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__mixins_delayable__ = __webpack_require__(48);
18585/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mixins_dependent__ = __webpack_require__(21);
18586/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mixins_detachable__ = __webpack_require__(27);
18587/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__mixins_menuable__ = __webpack_require__(49);
18588/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__mixins_toggleable__ = __webpack_require__(4);
18589function _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; }
18590
18591__webpack_require__(257);
18592
18593// Mixins
18594
18595
18596
18597
18598
18599
18600
18601/* harmony default export */ __webpack_exports__["a"] = ({
18602 name: 'v-tooltip',
18603
18604 mixins: [__WEBPACK_IMPORTED_MODULE_0__mixins_colorable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_1__mixins_delayable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_2__mixins_dependent__["a" /* default */], __WEBPACK_IMPORTED_MODULE_3__mixins_detachable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_4__mixins_menuable__["a" /* default */], __WEBPACK_IMPORTED_MODULE_5__mixins_toggleable__["a" /* default */]],
18605
18606 data: function data() {
18607 return {
18608 calculatedMinWidth: 0,
18609 closeDependents: false
18610 };
18611 },
18612
18613 props: {
18614 debounce: {
18615 type: [Number, String],
18616 default: 0
18617 },
18618 disabled: Boolean,
18619 fixed: {
18620 type: Boolean,
18621 default: true
18622 },
18623 openDelay: {
18624 type: [Number, String],
18625 default: 200
18626 },
18627 tag: {
18628 type: String,
18629 default: 'span'
18630 },
18631 transition: String,
18632 zIndex: {
18633 default: null
18634 }
18635 },
18636
18637 computed: {
18638 calculatedLeft: function calculatedLeft() {
18639 var _dimensions = this.dimensions,
18640 activator = _dimensions.activator,
18641 content = _dimensions.content;
18642
18643 var unknown = !this.bottom && !this.left && !this.top && !this.right;
18644 var left = 0;
18645
18646 if (this.top || this.bottom || unknown) {
18647 left = activator.left + activator.width / 2 - content.width / 2;
18648 } else if (this.left || this.right) {
18649 left = activator.left + (this.right ? activator.width : -content.width) + (this.right ? 10 : -10);
18650 }
18651
18652 return this.calcXOverflow(left) + 'px';
18653 },
18654 calculatedTop: function calculatedTop() {
18655 var _dimensions2 = this.dimensions,
18656 activator = _dimensions2.activator,
18657 content = _dimensions2.content;
18658
18659 var top = 0;
18660
18661 if (this.top || this.bottom) {
18662 top = activator.top - (this.top ? activator.height : -activator.height) - (this.top ? 0 : -10);
18663 } else if (this.left || this.right) {
18664 top = activator.top + activator.height / 2 - content.height / 2;
18665 }
18666
18667 return this.calcYOverflow(top + this.pageYOffset) + 'px';
18668 },
18669 classes: function classes() {
18670 return {
18671 'tooltip--top': this.top,
18672 'tooltip--right': this.right,
18673 'tooltip--bottom': this.bottom,
18674 'tooltip--left': this.left
18675 };
18676 },
18677 computedTransition: function computedTransition() {
18678 if (this.transition) return this.transition;
18679 if (this.top) return 'slide-y-reverse-transition';
18680 if (this.right) return 'slide-x-transition';
18681 if (this.bottom) return 'slide-y-transition';
18682 if (this.left) return 'slide-x-reverse-transition';
18683 },
18684 offsetY: function offsetY() {
18685 return this.top || this.bottom;
18686 },
18687 offsetX: function offsetX() {
18688 return this.left || this.right;
18689 },
18690 styles: function styles() {
18691 return {
18692 left: this.calculatedLeft,
18693 maxWidth: isNaN(this.maxWidth) ? this.maxWidth : this.maxWidth + 'px',
18694 opacity: this.isActive ? 0.9 : 0,
18695 top: this.calculatedTop,
18696 zIndex: this.zIndex || this.activeZIndex
18697 };
18698 }
18699 },
18700
18701 methods: {
18702 activate: function activate() {
18703 // Update coordinates and dimensions of menu
18704 // and its activator
18705 this.updateDimensions();
18706 // Start the transition
18707 requestAnimationFrame(this.startTransition);
18708 }
18709 },
18710
18711 mounted: function mounted() {
18712 this.value && this.callActivate();
18713 },
18714 render: function render(h) {
18715 var _addBackgroundColorCl,
18716 _this = this;
18717
18718 var tooltip = h('div', {
18719 staticClass: 'tooltip__content',
18720 'class': this.addBackgroundColorClassChecks((_addBackgroundColorCl = {}, _defineProperty(_addBackgroundColorCl, this.contentClass, true), _defineProperty(_addBackgroundColorCl, 'menuable__content__active', this.isActive), _addBackgroundColorCl)),
18721 style: this.styles,
18722 attrs: this.attrs,
18723 directives: [{
18724 name: 'show',
18725 value: this.isContentActive
18726 }],
18727 ref: 'content'
18728 }, this.$slots.default);
18729
18730 return h(this.tag, {
18731 staticClass: 'tooltip',
18732 'class': this.classes
18733 }, [h('transition', {
18734 props: {
18735 name: this.computedTransition
18736 }
18737 }, [tooltip]), h('span', {
18738 on: this.disabled ? {} : {
18739 mouseenter: function mouseenter() {
18740 _this.runDelay('open', function () {
18741 return _this.isActive = true;
18742 });
18743 },
18744 mouseleave: function mouseleave() {
18745 _this.runDelay('close', function () {
18746 return _this.isActive = false;
18747 });
18748 }
18749 },
18750 ref: 'activator'
18751 }, this.$slots.activator)]);
18752 }
18753});
18754
18755/***/ }),
18756/* 257 */
18757/***/ (function(module, exports) {
18758
18759// removed by extract-text-webpack-plugin
18760
18761/***/ }),
18762/* 258 */
18763/***/ (function(module, __webpack_exports__, __webpack_require__) {
18764
18765"use strict";
18766Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
18767/* harmony export (immutable) */ __webpack_exports__["default"] = install;
18768/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__click_outside__ = __webpack_require__(8);
18769/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__resize__ = __webpack_require__(11);
18770/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__ripple__ = __webpack_require__(17);
18771/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__scroll__ = __webpack_require__(67);
18772/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__touch__ = __webpack_require__(9);
18773/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "ClickOutside", function() { return __WEBPACK_IMPORTED_MODULE_0__click_outside__["a"]; });
18774/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Ripple", function() { return __WEBPACK_IMPORTED_MODULE_2__ripple__["a"]; });
18775/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Resize", function() { return __WEBPACK_IMPORTED_MODULE_1__resize__["a"]; });
18776/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Scroll", function() { return __WEBPACK_IMPORTED_MODULE_3__scroll__["a"]; });
18777/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "Touch", function() { return __WEBPACK_IMPORTED_MODULE_4__touch__["a"]; });
18778
18779
18780
18781
18782
18783
18784
18785
18786function install(Vue) {
18787 Vue.directive('click-outside', __WEBPACK_IMPORTED_MODULE_0__click_outside__["a" /* default */]);
18788 Vue.directive('ripple', __WEBPACK_IMPORTED_MODULE_2__ripple__["a" /* default */]);
18789 Vue.directive('resize', __WEBPACK_IMPORTED_MODULE_1__resize__["a" /* default */]);
18790 Vue.directive('scroll', __WEBPACK_IMPORTED_MODULE_3__scroll__["a" /* default */]);
18791 Vue.directive('touch', __WEBPACK_IMPORTED_MODULE_4__touch__["a" /* default */]);
18792}
18793
18794/***/ })
18795/******/ ]);
18796});
18797//# sourceMappingURL=vuetify.js.map