4094 lines
150 KiB
JavaScript
4094 lines
150 KiB
JavaScript
exports.ids = [2];
|
||
exports.modules = {
|
||
|
||
/***/ 58:
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// style-loader: Adds some css to the DOM by adding a <style> tag
|
||
|
||
// load the styles
|
||
var content = __webpack_require__(60);
|
||
if(content.__esModule) content = content.default;
|
||
if(typeof content === 'string') content = [[module.i, content, '']];
|
||
if(content.locals) module.exports = content.locals;
|
||
// add CSS to SSR context
|
||
var add = __webpack_require__(6).default
|
||
module.exports.__inject__ = function (context) {
|
||
add("48bbbfbd", content, true, context)
|
||
};
|
||
|
||
/***/ }),
|
||
|
||
/***/ 59:
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
__webpack_require__.r(__webpack_exports__);
|
||
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_3_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_3_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_3_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_27c3eb76_prod_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58);
|
||
/* harmony import */ var _node_modules_vue_style_loader_index_js_ref_3_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_3_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_3_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_27c3eb76_prod_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_3_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_3_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_3_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_27c3eb76_prod_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__);
|
||
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_vue_style_loader_index_js_ref_3_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_3_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_3_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_27c3eb76_prod_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_vue_style_loader_index_js_ref_3_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_3_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_3_oneOf_1_2_node_modules_nuxt_components_dist_loader_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_27c3eb76_prod_scoped_true_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ 60:
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// Imports
|
||
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(5);
|
||
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);
|
||
// Module
|
||
___CSS_LOADER_EXPORT___.push([module.i, "button.airplug.theme--dark.v-btn[data-v-27c3eb76]:not(.v-btn--flat):not(.v-btn--text):not(.v-btn--outlined){background-color:#44d62c!important;color:#fff!important}button.airplug.theme--dark.v-btn.v-btn--disabled[data-v-27c3eb76]:not(.v-btn--flat):not(.v-btn--text):not(.v-btn--outlined){opacity:.3}", ""]);
|
||
// Exports
|
||
module.exports = ___CSS_LOADER_EXPORT___;
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ 61:
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// style-loader: Adds some css to the DOM by adding a <style> tag
|
||
|
||
// load the styles
|
||
var content = __webpack_require__(62);
|
||
if(content.__esModule) content = content.default;
|
||
if(typeof content === 'string') content = [[module.i, content, '']];
|
||
if(content.locals) module.exports = content.locals;
|
||
__webpack_require__(6).default("549a5500", content, true)
|
||
|
||
/***/ }),
|
||
|
||
/***/ 62:
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// Imports
|
||
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(5);
|
||
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);
|
||
// Module
|
||
___CSS_LOADER_EXPORT___.push([module.i, ".v-btn:not(.v-btn--outlined).accent,.v-btn:not(.v-btn--outlined).error,.v-btn:not(.v-btn--outlined).info,.v-btn:not(.v-btn--outlined).primary,.v-btn:not(.v-btn--outlined).secondary,.v-btn:not(.v-btn--outlined).success,.v-btn:not(.v-btn--outlined).warning{color:#fff}.theme--light.v-btn{color:rgba(0,0,0,.87)}.theme--light.v-btn.v-btn--disabled,.theme--light.v-btn.v-btn--disabled .v-btn__loading,.theme--light.v-btn.v-btn--disabled .v-icon{color:rgba(0,0,0,.26)!important}.theme--light.v-btn.v-btn--disabled:not(.v-btn--flat):not(.v-btn--text):not(.v-btn--outlined){background-color:rgba(0,0,0,.12)!important}.theme--light.v-btn:not(.v-btn--flat):not(.v-btn--text):not(.v-btn--outlined){background-color:#f5f5f5}.theme--light.v-btn.v-btn--outlined.v-btn--text{border-color:rgba(0,0,0,.12)}.theme--light.v-btn.v-btn--icon{color:rgba(0,0,0,.54)}.theme--light.v-btn:hover:before{opacity:.04}.theme--light.v-btn--active:before,.theme--light.v-btn--active:hover:before,.theme--light.v-btn:focus:before{opacity:.12}.theme--light.v-btn--active:focus:before{opacity:.16}.theme--dark.v-btn{color:#fff}.theme--dark.v-btn.v-btn--disabled,.theme--dark.v-btn.v-btn--disabled .v-btn__loading,.theme--dark.v-btn.v-btn--disabled .v-icon{color:hsla(0,0%,100%,.3)!important}.theme--dark.v-btn.v-btn--disabled:not(.v-btn--flat):not(.v-btn--text):not(.v-btn--outlined){background-color:hsla(0,0%,100%,.12)!important}.theme--dark.v-btn:not(.v-btn--flat):not(.v-btn--text):not(.v-btn--outlined){background-color:#272727}.theme--dark.v-btn.v-btn--outlined.v-btn--text{border-color:hsla(0,0%,100%,.12)}.theme--dark.v-btn.v-btn--icon{color:#fff}.theme--dark.v-btn:hover:before{opacity:.08}.theme--dark.v-btn--active:before,.theme--dark.v-btn--active:hover:before,.theme--dark.v-btn:focus:before{opacity:.24}.theme--dark.v-btn--active:focus:before{opacity:.32}.v-btn{align-items:center;border-radius:4px;display:inline-flex;flex:0 0 auto;font-weight:500;letter-spacing:.0892857143em;justify-content:center;outline:0;position:relative;text-decoration:none;text-indent:.0892857143em;text-transform:uppercase;transition-duration:.28s;transition-property:box-shadow,transform,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.v-btn.v-size--x-small{font-size:.625rem}.v-btn.v-size--small{font-size:.75rem}.v-btn.v-size--default,.v-btn.v-size--large{font-size:.875rem}.v-btn.v-size--x-large{font-size:1rem}.v-btn:before{border-radius:inherit;bottom:0;color:inherit;content:\"\";left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:0;transition:opacity .2s cubic-bezier(.4,0,.6,1);background-color:currentColor}.v-btn:not(.v-btn--disabled){will-change:box-shadow}.v-btn:not(.v-btn--round).v-size--x-small{height:20px;min-width:36px;padding:0 8.8888888889px}.v-btn:not(.v-btn--round).v-size--small{height:28px;min-width:50px;padding:0 12.4444444444px}.v-btn:not(.v-btn--round).v-size--default{height:36px;min-width:64px;padding:0 16px}.v-btn:not(.v-btn--round).v-size--large{height:44px;min-width:78px;padding:0 19.5555555556px}.v-btn:not(.v-btn--round).v-size--x-large{height:52px;min-width:92px;padding:0 23.1111111111px}.v-btn>.v-btn__content .v-icon{color:inherit}.v-btn__content{align-items:center;color:inherit;display:flex;flex:1 0 auto;justify-content:inherit;line-height:normal;position:relative}.v-btn__content .v-icon--left,.v-btn__content .v-icon--right{font-size:18px;height:18px;width:18px}.v-application--is-ltr .v-btn__content .v-icon--left{margin-left:-4px;margin-right:8px}.v-application--is-ltr .v-btn__content .v-icon--right,.v-application--is-rtl .v-btn__content .v-icon--left{margin-left:8px;margin-right:-4px}.v-application--is-rtl .v-btn__content .v-icon--right{margin-left:-4px;margin-right:8px}.v-btn__loader{align-items:center;display:flex;height:100%;justify-content:center;left:0;position:absolute;top:0;width:100%}.v-btn:not(.v-btn--text):not(.v-btn--outlined).v-btn--active:before{opacity:.18}.v-btn:not(.v-btn--text):not(.v-btn--outlined):hover:before{opacity:.08}.v-btn:not(.v-btn--text):not(.v-btn--outlined):focus:before{opacity:.24}.v-btn--absolute,.v-btn--fixed{position:absolute}.v-btn--absolute.v-btn--right,.v-btn--fixed.v-btn--right{right:16px}.v-btn--absolute.v-btn--left,.v-btn--fixed.v-btn--left{left:16px}.v-btn--absolute.v-btn--top,.v-btn--fixed.v-btn--top{top:16px}.v-btn--absolute.v-btn--bottom,.v-btn--fixed.v-btn--bottom{bottom:16px}.v-btn--block{display:flex;flex:1 0 auto;min-width:100%!important;max-width:auto}.v-btn--contained{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.v-btn--contained:after{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.v-btn--contained:active{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.v-btn--depressed{box-shadow:none!important}.v-btn--disabled{box-shadow:none;pointer-events:none}.v-btn--fab,.v-btn--icon{min-height:0;min-width:0;padding:0}.v-btn--fab.v-size--x-small .v-icon,.v-btn--icon.v-size--x-small .v-icon{height:18px;font-size:18px;width:18px}.v-btn--fab.v-size--default .v-icon,.v-btn--fab.v-size--small .v-icon,.v-btn--icon.v-size--default .v-icon,.v-btn--icon.v-size--small .v-icon{height:24px;font-size:24px;width:24px}.v-btn--fab.v-size--large .v-icon,.v-btn--icon.v-size--large .v-icon{height:28px;font-size:28px;width:28px}.v-btn--fab.v-size--x-large .v-icon,.v-btn--icon.v-size--x-large .v-icon{height:32px;font-size:32px;width:32px}.v-btn--icon.v-size--x-small{height:20px;width:20px}.v-btn--icon.v-size--small{height:28px;width:28px}.v-btn--icon.v-size--default{height:36px;width:36px}.v-btn--icon.v-size--large{height:44px;width:44px}.v-btn--icon.v-size--x-large{height:52px;width:52px}.v-btn--fab.v-btn--contained{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.v-btn--fab.v-btn--contained:after{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.v-btn--fab.v-btn--contained:active{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.v-btn--fab.v-btn--absolute,.v-btn--fab.v-btn--fixed{z-index:4}.v-btn--fab.v-size--x-small{height:32px;width:32px}.v-btn--fab.v-size--x-small.v-btn--absolute.v-btn--bottom{bottom:-16px}.v-btn--fab.v-size--x-small.v-btn--absolute.v-btn--top{top:-16px}.v-btn--fab.v-size--small{height:40px;width:40px}.v-btn--fab.v-size--small.v-btn--absolute.v-btn--bottom{bottom:-20px}.v-btn--fab.v-size--small.v-btn--absolute.v-btn--top{top:-20px}.v-btn--fab.v-size--default{height:56px;width:56px}.v-btn--fab.v-size--default.v-btn--absolute.v-btn--bottom{bottom:-28px}.v-btn--fab.v-size--default.v-btn--absolute.v-btn--top{top:-28px}.v-btn--fab.v-size--large{height:64px;width:64px}.v-btn--fab.v-size--large.v-btn--absolute.v-btn--bottom{bottom:-32px}.v-btn--fab.v-size--large.v-btn--absolute.v-btn--top{top:-32px}.v-btn--fab.v-size--x-large{height:72px;width:72px}.v-btn--fab.v-size--x-large.v-btn--absolute.v-btn--bottom{bottom:-36px}.v-btn--fab.v-size--x-large.v-btn--absolute.v-btn--top{top:-36px}.v-btn--fixed{position:fixed}.v-btn--loading{pointer-events:none;transition:none}.v-btn--loading .v-btn__content{opacity:0}.v-btn--outlined{border:thin solid}.v-btn--outlined .v-btn__content .v-icon,.v-btn--round .v-btn__content .v-icon{color:currentColor}.v-btn--flat,.v-btn--outlined,.v-btn--text{background-color:transparent}.v-btn--outlined:before,.v-btn--round:before,.v-btn--rounded:before{border-radius:inherit}.v-btn--round{border-radius:50%}.v-btn--rounded{border-radius:28px}.v-btn--tile{border-radius:0}", ""]);
|
||
// Exports
|
||
module.exports = ___CSS_LOADER_EXPORT___;
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ 63:
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// style-loader: Adds some css to the DOM by adding a <style> tag
|
||
|
||
// load the styles
|
||
var content = __webpack_require__(64);
|
||
if(content.__esModule) content = content.default;
|
||
if(typeof content === 'string') content = [[module.i, content, '']];
|
||
if(content.locals) module.exports = content.locals;
|
||
__webpack_require__(6).default("04604cc2", content, true)
|
||
|
||
/***/ }),
|
||
|
||
/***/ 64:
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// Imports
|
||
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(5);
|
||
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);
|
||
// Module
|
||
___CSS_LOADER_EXPORT___.push([module.i, ".v-ripple__container{border-radius:inherit;width:100%;height:100%;z-index:0;contain:strict}.v-ripple__animation,.v-ripple__container{color:inherit;position:absolute;left:0;top:0;overflow:hidden;pointer-events:none}.v-ripple__animation{border-radius:50%;background:currentColor;opacity:0;will-change:transform,opacity}.v-ripple__animation--enter{transition:none}.v-ripple__animation--in{transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .1s cubic-bezier(.4,0,.2,1)}.v-ripple__animation--out{transition:opacity .3s cubic-bezier(.4,0,.2,1)}", ""]);
|
||
// Exports
|
||
module.exports = ___CSS_LOADER_EXPORT___;
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ 65:
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// style-loader: Adds some css to the DOM by adding a <style> tag
|
||
|
||
// load the styles
|
||
var content = __webpack_require__(66);
|
||
if(content.__esModule) content = content.default;
|
||
if(typeof content === 'string') content = [[module.i, content, '']];
|
||
if(content.locals) module.exports = content.locals;
|
||
__webpack_require__(6).default("e003f1f8", content, true)
|
||
|
||
/***/ }),
|
||
|
||
/***/ 66:
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// Imports
|
||
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(5);
|
||
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);
|
||
// Module
|
||
___CSS_LOADER_EXPORT___.push([module.i, ".v-progress-circular{position:relative;display:inline-flex;vertical-align:middle;justify-content:center;align-items:center}.v-progress-circular svg{width:100%;height:100%;margin:auto;position:absolute;top:0;bottom:0;left:0;right:0;z-index:0}.v-progress-circular--indeterminate svg{-webkit-animation:progress-circular-rotate 1.4s linear infinite;animation:progress-circular-rotate 1.4s linear infinite;transform-origin:center center;transition:all .2s ease-in-out}.v-progress-circular--indeterminate .v-progress-circular__overlay{-webkit-animation:progress-circular-dash 1.4s ease-in-out infinite;animation:progress-circular-dash 1.4s ease-in-out infinite;stroke-linecap:round;stroke-dasharray:80,200;stroke-dashoffset:0px}.v-progress-circular__info{align-items:center;display:flex;justify-content:center}.v-progress-circular__underlay{stroke:rgba(0,0,0,.1);z-index:1}.v-progress-circular__overlay{stroke:currentColor;z-index:2;transition:all .6s ease-in-out}@-webkit-keyframes progress-circular-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0px}50%{stroke-dasharray:100,200;stroke-dashoffset:-15px}to{stroke-dasharray:100,200;stroke-dashoffset:-125px}}@keyframes progress-circular-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0px}50%{stroke-dasharray:100,200;stroke-dashoffset:-15px}to{stroke-dasharray:100,200;stroke-dashoffset:-125px}}@-webkit-keyframes progress-circular-rotate{to{transform:rotate(1turn)}}@keyframes progress-circular-rotate{to{transform:rotate(1turn)}}", ""]);
|
||
// Exports
|
||
module.exports = ___CSS_LOADER_EXPORT___;
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ 67:
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// style-loader: Adds some css to the DOM by adding a <style> tag
|
||
|
||
// load the styles
|
||
var content = __webpack_require__(68);
|
||
if(content.__esModule) content = content.default;
|
||
if(typeof content === 'string') content = [[module.i, content, '']];
|
||
if(content.locals) module.exports = content.locals;
|
||
__webpack_require__(6).default("e23b7040", content, true)
|
||
|
||
/***/ }),
|
||
|
||
/***/ 68:
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// Imports
|
||
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(5);
|
||
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);
|
||
// Module
|
||
___CSS_LOADER_EXPORT___.push([module.i, ".theme--light.v-card{background-color:#fff;color:rgba(0,0,0,.87)}.theme--light.v-card .v-card__subtitle,.theme--light.v-card>.v-card__text{color:rgba(0,0,0,.6)}.theme--dark.v-card{background-color:#1e1e1e;color:#fff}.theme--dark.v-card .v-card__subtitle,.theme--dark.v-card>.v-card__text{color:hsla(0,0%,100%,.7)}.v-sheet.v-card{border-radius:4px}.v-sheet.v-card:not(.v-sheet--outlined){box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.v-sheet.v-card.v-sheet--shaped{border-radius:24px 4px}.v-card{border-width:thin;display:block;max-width:100%;outline:none;text-decoration:none;transition-property:box-shadow,opacity;word-wrap:break-word;position:relative;white-space:normal}.v-card>.v-card__progress+:not(.v-btn):not(.v-chip),.v-card>:first-child:not(.v-btn):not(.v-chip){border-top-left-radius:inherit;border-top-right-radius:inherit}.v-card>:last-child:not(.v-btn):not(.v-chip){border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.v-card__progress{top:0;left:0;right:0;overflow:hidden}.v-card__subtitle+.v-card__text{padding-top:0}.v-card__subtitle,.v-card__text{font-size:.875rem;font-weight:400;line-height:1.375rem;letter-spacing:.0071428571em}.v-card__subtitle,.v-card__text,.v-card__title{padding:16px}.v-card__title{align-items:center;display:flex;flex-wrap:wrap;font-size:1.25rem;font-weight:500;letter-spacing:.0125em;line-height:2rem;word-break:break-all}.v-card__title+.v-card__subtitle,.v-card__title+.v-card__text{padding-top:0}.v-card__title+.v-card__subtitle{margin-top:-16px}.v-card__text{width:100%}.v-card__actions{align-items:center;display:flex;padding:8px}.v-card__actions>.v-btn.v-btn{padding:0 8px}.v-application--is-ltr .v-card__actions>.v-btn.v-btn+.v-btn{margin-left:8px}.v-application--is-ltr .v-card__actions>.v-btn.v-btn .v-icon--left{margin-left:4px}.v-application--is-ltr .v-card__actions>.v-btn.v-btn .v-icon--right{margin-right:4px}.v-application--is-rtl .v-card__actions>.v-btn.v-btn+.v-btn{margin-right:8px}.v-application--is-rtl .v-card__actions>.v-btn.v-btn .v-icon--left{margin-right:4px}.v-application--is-rtl .v-card__actions>.v-btn.v-btn .v-icon--right{margin-left:4px}.v-card--flat{box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)!important}.v-card--hover{cursor:pointer;transition:box-shadow .4s cubic-bezier(.25,.8,.25,1)}.v-card--hover:focus,.v-card--hover:hover{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.v-card--link,.v-card--link .v-chip{cursor:pointer}.v-card--link:focus:before{opacity:.08}.v-card--link:before{background:currentColor;bottom:0;content:\"\";left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:0;transition:opacity .2s}.v-card--disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.v-card--disabled>:not(.v-card__progress){opacity:.6;transition:inherit}.v-card--loading{overflow:hidden}.v-card--raised{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}", ""]);
|
||
// Exports
|
||
module.exports = ___CSS_LOADER_EXPORT___;
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ 69:
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// style-loader: Adds some css to the DOM by adding a <style> tag
|
||
|
||
// load the styles
|
||
var content = __webpack_require__(70);
|
||
if(content.__esModule) content = content.default;
|
||
if(typeof content === 'string') content = [[module.i, content, '']];
|
||
if(content.locals) module.exports = content.locals;
|
||
__webpack_require__(6).default("cf87dc84", content, true)
|
||
|
||
/***/ }),
|
||
|
||
/***/ 70:
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// Imports
|
||
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(5);
|
||
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);
|
||
// Module
|
||
___CSS_LOADER_EXPORT___.push([module.i, ".theme--light.v-progress-linear{color:rgba(0,0,0,.87)}.theme--dark.v-progress-linear{color:#fff}.v-progress-linear{background:transparent;overflow:hidden;position:relative;transition:.2s cubic-bezier(.4,0,.6,1);width:100%}.v-progress-linear__buffer{height:inherit;left:0;position:absolute;top:0;transition:inherit;width:100%;z-index:1}.v-progress-linear--reverse .v-progress-linear__buffer{left:auto;right:0}.v-progress-linear__background{bottom:0;left:0;position:absolute;top:0;transition:inherit}.v-progress-linear--reverse .v-progress-linear__background{left:auto;right:0}.v-progress-linear__content{align-items:center;display:flex;height:100%;left:0;justify-content:center;position:absolute;top:0;width:100%;z-index:2}.v-progress-linear--reverse .v-progress-linear__content{left:auto;right:0}.v-progress-linear__determinate{height:inherit;left:0;position:absolute;transition:inherit}.v-progress-linear--reverse .v-progress-linear__determinate{left:auto;right:0}.v-progress-linear .v-progress-linear__indeterminate .long,.v-progress-linear .v-progress-linear__indeterminate .short{background-color:inherit;bottom:0;height:inherit;left:0;position:absolute;right:auto;top:0;width:auto;will-change:left,right}.v-progress-linear .v-progress-linear__indeterminate--active .long{-webkit-animation-name:indeterminate-ltr;animation-name:indeterminate-ltr;-webkit-animation-duration:2.2s;animation-duration:2.2s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.v-progress-linear .v-progress-linear__indeterminate--active .short{-webkit-animation-name:indeterminate-short-ltr;animation-name:indeterminate-short-ltr;-webkit-animation-duration:2.2s;animation-duration:2.2s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.v-progress-linear--reverse .v-progress-linear__indeterminate .long,.v-progress-linear--reverse .v-progress-linear__indeterminate .short{left:auto;right:0}.v-progress-linear--reverse .v-progress-linear__indeterminate--active .long{-webkit-animation-name:indeterminate-rtl;animation-name:indeterminate-rtl}.v-progress-linear--reverse .v-progress-linear__indeterminate--active .short{-webkit-animation-name:indeterminate-short-rtl;animation-name:indeterminate-short-rtl}.v-progress-linear__stream{-webkit-animation:stream-ltr .25s linear infinite;animation:stream-ltr .25s linear infinite;border-color:currentColor;border-top:4px dotted;bottom:0;left:auto;right:-8px;opacity:.3;pointer-events:none;position:absolute;top:calc(50% - 2px);transition:inherit}.v-progress-linear--reverse .v-progress-linear__stream{-webkit-animation:stream-rtl .25s linear infinite;animation:stream-rtl .25s linear infinite;left:-8px;right:auto}.v-progress-linear__wrapper{overflow:hidden;position:relative;transition:inherit}.v-progress-linear--absolute,.v-progress-linear--fixed{left:0;z-index:1}.v-progress-linear--absolute{position:absolute}.v-progress-linear--fixed{position:fixed}.v-progress-linear--reactive .v-progress-linear__content{pointer-events:none}.v-progress-linear--rounded{border-radius:4px}.v-progress-linear--striped .v-progress-linear__determinate{background-image:linear-gradient(135deg,hsla(0,0%,100%,.25) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.25) 0,hsla(0,0%,100%,.25) 75%,transparent 0,transparent);background-size:40px 40px;background-repeat:repeat}.v-progress-linear--query .v-progress-linear__indeterminate--active .long{-webkit-animation-name:query-ltr;animation-name:query-ltr;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.v-progress-linear--query .v-progress-linear__indeterminate--active .short{-webkit-animation-name:query-short-ltr;animation-name:query-short-ltr;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.v-progress-linear--query.v-progress-linear--reverse .v-progress-linear__indeterminate--active .long{-webkit-animation-name:query-rtl;animation-name:query-rtl}.v-progress-linear--query.v-progress-linear--reverse .v-progress-linear__indeterminate--active .short{-webkit-animation-name:query-short-rtl;animation-name:query-short-rtl}@-webkit-keyframes indeterminate-ltr{0%{left:-90%;right:100%}60%{left:-90%;right:100%}to{left:100%;right:-35%}}@keyframes indeterminate-ltr{0%{left:-90%;right:100%}60%{left:-90%;right:100%}to{left:100%;right:-35%}}@-webkit-keyframes indeterminate-rtl{0%{left:100%;right:-90%}60%{left:100%;right:-90%}to{left:-35%;right:100%}}@keyframes indeterminate-rtl{0%{left:100%;right:-90%}60%{left:100%;right:-90%}to{left:-35%;right:100%}}@-webkit-keyframes indeterminate-short-ltr{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@keyframes indeterminate-short-ltr{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@-webkit-keyframes indeterminate-short-rtl{0%{left:100%;right:-200%}60%{left:-8%;right:107%}to{left:-8%;right:107%}}@keyframes indeterminate-short-rtl{0%{left:100%;right:-200%}60%{left:-8%;right:107%}to{left:-8%;right:107%}}@-webkit-keyframes query-ltr{0%{right:-90%;left:100%}60%{right:-90%;left:100%}to{right:100%;left:-35%}}@keyframes query-ltr{0%{right:-90%;left:100%}60%{right:-90%;left:100%}to{right:100%;left:-35%}}@-webkit-keyframes query-rtl{0%{right:100%;left:-90%}60%{right:100%;left:-90%}to{right:-35%;left:100%}}@keyframes query-rtl{0%{right:100%;left:-90%}60%{right:100%;left:-90%}to{right:-35%;left:100%}}@-webkit-keyframes query-short-ltr{0%{right:-200%;left:100%}60%{right:107%;left:-8%}to{right:107%;left:-8%}}@keyframes query-short-ltr{0%{right:-200%;left:100%}60%{right:107%;left:-8%}to{right:107%;left:-8%}}@-webkit-keyframes query-short-rtl{0%{right:100%;left:-200%}60%{right:-8%;left:107%}to{right:-8%;left:107%}}@keyframes query-short-rtl{0%{right:100%;left:-200%}60%{right:-8%;left:107%}to{right:-8%;left:107%}}@-webkit-keyframes stream-ltr{to{transform:translateX(-8px)}}@keyframes stream-ltr{to{transform:translateX(-8px)}}@-webkit-keyframes stream-rtl{to{transform:translateX(8px)}}@keyframes stream-rtl{to{transform:translateX(8px)}}", ""]);
|
||
// Exports
|
||
module.exports = ___CSS_LOADER_EXPORT___;
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ 71:
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// style-loader: Adds some css to the DOM by adding a <style> tag
|
||
|
||
// load the styles
|
||
var content = __webpack_require__(72);
|
||
if(content.__esModule) content = content.default;
|
||
if(typeof content === 'string') content = [[module.i, content, '']];
|
||
if(content.locals) module.exports = content.locals;
|
||
__webpack_require__(6).default("4f4f805e", content, true)
|
||
|
||
/***/ }),
|
||
|
||
/***/ 72:
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// Imports
|
||
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(5);
|
||
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);
|
||
// Module
|
||
___CSS_LOADER_EXPORT___.push([module.i, ".theme--light.v-text-field>.v-input__control>.v-input__slot:before{border-color:rgba(0,0,0,.42)}.theme--light.v-text-field:not(.v-input--has-state):hover>.v-input__control>.v-input__slot:before{border-color:rgba(0,0,0,.87)}.theme--light.v-text-field.v-input--is-disabled .v-input__slot:before{-o-border-image:repeating-linear-gradient(90deg,rgba(0,0,0,.38) 0,rgba(0,0,0,.38) 2px,transparent 0,transparent 4px) 1 repeat;border-image:repeating-linear-gradient(90deg,rgba(0,0,0,.38) 0,rgba(0,0,0,.38) 2px,transparent 0,transparent 4px) 1 repeat}.theme--light.v-text-field--filled>.v-input__control>.v-input__slot{background:rgba(0,0,0,.06)}.theme--light.v-text-field--filled:not(.v-input--is-focused):not(.v-input--has-state)>.v-input__control>.v-input__slot:hover{background:rgba(0,0,0,.12)}.theme--light.v-text-field--solo>.v-input__control>.v-input__slot{background:#fff}.theme--light.v-text-field--solo-inverted>.v-input__control>.v-input__slot{background:rgba(0,0,0,.06)}.theme--light.v-text-field--solo-inverted.v-input--is-focused>.v-input__control>.v-input__slot{background:#424242}.theme--light.v-text-field--solo-inverted.v-input--is-focused>.v-input__control>.v-input__slot input{color:#fff}.theme--light.v-text-field--solo-inverted.v-input--is-focused>.v-input__control>.v-input__slot input::-moz-placeholder{color:hsla(0,0%,100%,.5)}.theme--light.v-text-field--solo-inverted.v-input--is-focused>.v-input__control>.v-input__slot input::placeholder{color:hsla(0,0%,100%,.5)}.theme--light.v-text-field--solo-inverted.v-input--is-focused>.v-input__control>.v-input__slot .v-label{color:hsla(0,0%,100%,.7)}.theme--light.v-text-field--outlined:not(.v-input--is-focused):not(.v-input--has-state)>.v-input__control>.v-input__slot fieldset{color:rgba(0,0,0,.38)}.theme--light.v-text-field--outlined:not(.v-input--is-focused):not(.v-input--has-state):not(.v-input--is-disabled)>.v-input__control>.v-input__slot:hover fieldset{color:rgba(0,0,0,.86)}.theme--light.v-text-field--outlined:not(.v-input--is-focused).v-input--is-disabled>.v-input__control>.v-input__slot fieldset{color:rgba(0,0,0,.26)}.theme--dark.v-text-field>.v-input__control>.v-input__slot:before{border-color:hsla(0,0%,100%,.7)}.theme--dark.v-text-field:not(.v-input--has-state):hover>.v-input__control>.v-input__slot:before{border-color:#fff}.theme--dark.v-text-field.v-input--is-disabled .v-input__slot:before{-o-border-image:repeating-linear-gradient(90deg,hsla(0,0%,100%,.5) 0,hsla(0,0%,100%,.5) 2px,transparent 0,transparent 4px) 1 repeat;border-image:repeating-linear-gradient(90deg,hsla(0,0%,100%,.5) 0,hsla(0,0%,100%,.5) 2px,transparent 0,transparent 4px) 1 repeat}.theme--dark.v-text-field--filled>.v-input__control>.v-input__slot{background:hsla(0,0%,100%,.08)}.theme--dark.v-text-field--filled:not(.v-input--is-focused):not(.v-input--has-state)>.v-input__control>.v-input__slot:hover{background:hsla(0,0%,100%,.16)}.theme--dark.v-text-field--solo>.v-input__control>.v-input__slot{background:#1e1e1e}.theme--dark.v-text-field--solo-inverted>.v-input__control>.v-input__slot{background:hsla(0,0%,100%,.16)}.theme--dark.v-text-field--solo-inverted.v-input--is-focused>.v-input__control>.v-input__slot{background:#fff}.theme--dark.v-text-field--solo-inverted.v-input--is-focused>.v-input__control>.v-input__slot input{color:rgba(0,0,0,.87)}.theme--dark.v-text-field--solo-inverted.v-input--is-focused>.v-input__control>.v-input__slot input::-moz-placeholder{color:rgba(0,0,0,.38)}.theme--dark.v-text-field--solo-inverted.v-input--is-focused>.v-input__control>.v-input__slot input::placeholder{color:rgba(0,0,0,.38)}.theme--dark.v-text-field--solo-inverted.v-input--is-focused>.v-input__control>.v-input__slot .v-label{color:rgba(0,0,0,.6)}.theme--dark.v-text-field--outlined:not(.v-input--is-focused):not(.v-input--has-state)>.v-input__control>.v-input__slot fieldset{color:hsla(0,0%,100%,.24)}.theme--dark.v-text-field--outlined:not(.v-input--is-focused):not(.v-input--has-state):not(.v-input--is-disabled)>.v-input__control>.v-input__slot:hover fieldset{color:#fff}.theme--dark.v-text-field--outlined:not(.v-input--is-focused).v-input--is-disabled>.v-input__control>.v-input__slot fieldset{color:hsla(0,0%,100%,.16)}.v-text-field{padding-top:12px;margin-top:4px}.v-text-field input{flex:1 1 auto;line-height:20px;padding:8px 0;max-width:100%;min-width:0;width:100%}.v-text-field .v-input__control,.v-text-field .v-input__slot,.v-text-field fieldset{border-radius:inherit}.v-text-field.v-input--has-state .v-input__control>.v-text-field__details>.v-counter,.v-text-field.v-input--is-disabled .v-input__control>.v-text-field__details>.v-counter,.v-text-field.v-input--is-disabled .v-input__control>.v-text-field__details>.v-messages,.v-text-field .v-input__control,.v-text-field fieldset{color:inherit}.v-text-field.v-input--dense{padding-top:0}.v-text-field.v-input--dense:not(.v-text-field--outlined) input{padding:4px 0 2px}.v-text-field.v-input--dense[type=text]::-ms-clear{display:none}.v-text-field.v-input--dense .v-input__append-inner,.v-text-field.v-input--dense .v-input__prepend-inner{margin-top:0}.v-text-field.v-input--dense:not(.v-text-field--enclosed):not(.v-text-field--full-width) .v-input__append-inner .v-input__icon>.v-icon,.v-text-field.v-input--dense:not(.v-text-field--enclosed):not(.v-text-field--full-width) .v-input__prepend-inner .v-input__icon>.v-icon{margin-top:8px}.v-text-field .v-input__append-inner,.v-text-field .v-input__prepend-inner{align-self:flex-start;display:inline-flex;margin-top:4px;line-height:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.v-application--is-ltr .v-text-field .v-input__prepend-inner{margin-right:auto;padding-right:4px}.v-application--is-ltr .v-text-field .v-input__append-inner,.v-application--is-rtl .v-text-field .v-input__prepend-inner{margin-left:auto;padding-left:4px}.v-application--is-rtl .v-text-field .v-input__append-inner{margin-right:auto;padding-right:4px}.v-text-field .v-counter{white-space:nowrap}.v-application--is-ltr .v-text-field .v-counter{margin-left:8px}.v-application--is-rtl .v-text-field .v-counter{margin-right:8px}.v-text-field .v-label{max-width:90%;overflow:hidden;text-overflow:ellipsis;top:6px;white-space:nowrap;pointer-events:none}.v-application--is-ltr .v-text-field .v-label{transform-origin:top left}.v-application--is-rtl .v-text-field .v-label{transform-origin:top right}.v-text-field .v-label--active{max-width:133%;transform:translateY(-18px) scale(.75)}.v-text-field>.v-input__control>.v-input__slot{cursor:text;transition:background .3s cubic-bezier(.25,.8,.5,1)}.v-text-field>.v-input__control>.v-input__slot:after,.v-text-field>.v-input__control>.v-input__slot:before{bottom:-1px;content:\"\";left:0;position:absolute;transition:.3s cubic-bezier(.25,.8,.5,1);width:100%}.v-text-field>.v-input__control>.v-input__slot:before{border-color:inherit;border-style:solid;border-width:thin 0 0}.v-text-field>.v-input__control>.v-input__slot:after{border-color:currentcolor;border-style:solid;border-width:thin 0;transform:scaleX(0)}.v-text-field__details{display:flex;flex:1 0 auto;max-width:100%;min-height:14px;overflow:hidden}.v-text-field__prefix,.v-text-field__suffix{align-self:center;cursor:default;transition:color .3s cubic-bezier(.25,.8,.5,1);white-space:nowrap}.v-application--is-ltr .v-text-field__prefix{text-align:right;padding-right:4px}.v-application--is-rtl .v-text-field__prefix{text-align:left;padding-left:4px}.v-text-field__suffix{white-space:nowrap}.v-application--is-ltr .v-text-field__suffix{padding-left:4px}.v-application--is-rtl .v-text-field__suffix{padding-right:4px}.v-application--is-ltr .v-text-field--reverse .v-text-field__prefix{text-align:left;padding-right:0;padding-left:4px}.v-application--is-rtl .v-text-field--reverse .v-text-field__prefix{text-align:right;padding-right:4px;padding-left:0}.v-application--is-ltr .v-text-field--reverse .v-text-field__suffix{padding-left:0;padding-right:4px}.v-application--is-rtl .v-text-field--reverse .v-text-field__suffix{padding-left:4px;padding-right:0}.v-text-field>.v-input__control>.v-input__slot>.v-text-field__slot{display:flex;flex:1 1 auto;position:relative}.v-text-field:not(.v-text-field--is-booted) .v-label,.v-text-field:not(.v-text-field--is-booted) legend{transition:none}.v-text-field--filled,.v-text-field--full-width,.v-text-field--outlined{position:relative}.v-text-field--filled>.v-input__control>.v-input__slot,.v-text-field--full-width>.v-input__control>.v-input__slot,.v-text-field--outlined>.v-input__control>.v-input__slot{align-items:stretch;min-height:56px}.v-text-field--filled.v-input--dense>.v-input__control>.v-input__slot,.v-text-field--full-width.v-input--dense>.v-input__control>.v-input__slot,.v-text-field--outlined.v-input--dense>.v-input__control>.v-input__slot{min-height:52px}.v-text-field--filled.v-input--dense.v-text-field--outlined.v-text-field--filled>.v-input__control>.v-input__slot,.v-text-field--filled.v-input--dense.v-text-field--outlined>.v-input__control>.v-input__slot,.v-text-field--filled.v-input--dense.v-text-field--single-line>.v-input__control>.v-input__slot,.v-text-field--full-width.v-input--dense.v-text-field--outlined.v-text-field--filled>.v-input__control>.v-input__slot,.v-text-field--full-width.v-input--dense.v-text-field--outlined>.v-input__control>.v-input__slot,.v-text-field--full-width.v-input--dense.v-text-field--single-line>.v-input__control>.v-input__slot,.v-text-field--outlined.v-input--dense.v-text-field--outlined.v-text-field--filled>.v-input__control>.v-input__slot,.v-text-field--outlined.v-input--dense.v-text-field--outlined>.v-input__control>.v-input__slot,.v-text-field--outlined.v-input--dense.v-text-field--single-line>.v-input__control>.v-input__slot{min-height:40px}.v-text-field--outlined{border-radius:4px}.v-text-field--enclosed .v-input__append-inner,.v-text-field--enclosed .v-input__append-outer,.v-text-field--enclosed .v-input__prepend-inner,.v-text-field--enclosed .v-input__prepend-outer,.v-text-field--full-width .v-input__append-inner,.v-text-field--full-width .v-input__append-outer,.v-text-field--full-width .v-input__prepend-inner,.v-text-field--full-width .v-input__prepend-outer{margin-top:17px}.v-text-field--enclosed.v-input--dense:not(.v-text-field--solo) .v-input__append-inner,.v-text-field--enclosed.v-input--dense:not(.v-text-field--solo) .v-input__append-outer,.v-text-field--enclosed.v-input--dense:not(.v-text-field--solo) .v-input__prepend-inner,.v-text-field--enclosed.v-input--dense:not(.v-text-field--solo) .v-input__prepend-outer,.v-text-field--full-width.v-input--dense:not(.v-text-field--solo) .v-input__append-inner,.v-text-field--full-width.v-input--dense:not(.v-text-field--solo) .v-input__append-outer,.v-text-field--full-width.v-input--dense:not(.v-text-field--solo) .v-input__prepend-inner,.v-text-field--full-width.v-input--dense:not(.v-text-field--solo) .v-input__prepend-outer{margin-top:14px}.v-text-field--enclosed.v-input--dense:not(.v-text-field--solo).v-text-field--single-line .v-input__append-inner,.v-text-field--enclosed.v-input--dense:not(.v-text-field--solo).v-text-field--single-line .v-input__append-outer,.v-text-field--enclosed.v-input--dense:not(.v-text-field--solo).v-text-field--single-line .v-input__prepend-inner,.v-text-field--enclosed.v-input--dense:not(.v-text-field--solo).v-text-field--single-line .v-input__prepend-outer,.v-text-field--full-width.v-input--dense:not(.v-text-field--solo).v-text-field--single-line .v-input__append-inner,.v-text-field--full-width.v-input--dense:not(.v-text-field--solo).v-text-field--single-line .v-input__append-outer,.v-text-field--full-width.v-input--dense:not(.v-text-field--solo).v-text-field--single-line .v-input__prepend-inner,.v-text-field--full-width.v-input--dense:not(.v-text-field--solo).v-text-field--single-line .v-input__prepend-outer{margin-top:9px}.v-text-field--enclosed.v-input--dense:not(.v-text-field--solo).v-text-field--outlined .v-input__append-inner,.v-text-field--enclosed.v-input--dense:not(.v-text-field--solo).v-text-field--outlined .v-input__append-outer,.v-text-field--enclosed.v-input--dense:not(.v-text-field--solo).v-text-field--outlined .v-input__prepend-inner,.v-text-field--enclosed.v-input--dense:not(.v-text-field--solo).v-text-field--outlined .v-input__prepend-outer,.v-text-field--full-width.v-input--dense:not(.v-text-field--solo).v-text-field--outlined .v-input__append-inner,.v-text-field--full-width.v-input--dense:not(.v-text-field--solo).v-text-field--outlined .v-input__append-outer,.v-text-field--full-width.v-input--dense:not(.v-text-field--solo).v-text-field--outlined .v-input__prepend-inner,.v-text-field--full-width.v-input--dense:not(.v-text-field--solo).v-text-field--outlined .v-input__prepend-outer{margin-top:8px}.v-text-field--filled .v-label,.v-text-field--full-width .v-label{top:18px}.v-text-field--filled .v-label--active,.v-text-field--full-width .v-label--active{transform:translateY(-6px) scale(.75)}.v-text-field--filled.v-input--dense .v-label,.v-text-field--full-width.v-input--dense .v-label{top:17px}.v-text-field--filled.v-input--dense .v-label--active,.v-text-field--full-width.v-input--dense .v-label--active{transform:translateY(-10px) scale(.75)}.v-text-field--filled.v-input--dense.v-text-field--single-line .v-label,.v-text-field--full-width.v-input--dense.v-text-field--single-line .v-label{top:11px}.v-text-field--filled{border-radius:4px 4px 0 0}.v-text-field--filled:not(.v-text-field--single-line) input{margin-top:22px}.v-text-field--filled.v-input--dense:not(.v-text-field--single-line).v-text-field--outlined input{margin-top:0}.v-text-field--filled .v-text-field__prefix,.v-text-field--filled .v-text-field__suffix{max-height:32px;margin-top:20px}.v-text-field--full-width{border-radius:0}.v-text-field--outlined .v-text-field__slot,.v-text-field--single-line .v-text-field__slot{align-items:center}.v-text-field.v-text-field--enclosed{margin:0;padding:0}.v-text-field.v-text-field--enclosed.v-text-field--single-line .v-text-field__prefix,.v-text-field.v-text-field--enclosed.v-text-field--single-line .v-text-field__suffix{margin-top:0}.v-text-field.v-text-field--enclosed:not(.v-text-field--filled) .v-progress-linear__background{display:none}.v-text-field.v-text-field--enclosed .v-text-field__details,.v-text-field.v-text-field--enclosed:not(.v-text-field--rounded)>.v-input__control>.v-input__slot{padding:0 12px}.v-text-field.v-text-field--enclosed .v-text-field__details{margin-bottom:8px}.v-application--is-ltr .v-text-field--reverse input{text-align:right}.v-application--is-rtl .v-text-field--reverse input{text-align:left}.v-application--is-ltr .v-text-field--reverse .v-label{transform-origin:top right}.v-application--is-rtl .v-text-field--reverse .v-label{transform-origin:top left}.v-text-field--reverse .v-text-field__slot,.v-text-field--reverse>.v-input__control>.v-input__slot{flex-direction:row-reverse}.v-text-field--outlined>.v-input__control>.v-input__slot:after,.v-text-field--outlined>.v-input__control>.v-input__slot:before,.v-text-field--rounded>.v-input__control>.v-input__slot:after,.v-text-field--rounded>.v-input__control>.v-input__slot:before,.v-text-field--solo>.v-input__control>.v-input__slot:after,.v-text-field--solo>.v-input__control>.v-input__slot:before{display:none}.v-text-field--outlined,.v-text-field--solo{border-radius:4px}.v-text-field--outlined{margin-bottom:16px;transition:border .3s cubic-bezier(.25,.8,.5,1)}.v-text-field--outlined .v-label{top:18px}.v-text-field--outlined .v-label--active{transform:translateY(-24px) scale(.75)}.v-text-field--outlined.v-input--dense .v-label{top:10px}.v-text-field--outlined.v-input--dense .v-label--active{transform:translateY(-16px) scale(.75)}.v-text-field--outlined fieldset{border-collapse:collapse;border:1px solid;bottom:0;left:0;pointer-events:none;position:absolute;right:0;top:-5px;transition-duration:.3s;transition-property:color,border-width;transition-timing-function:cubic-bezier(.25,.8,.25,1)}.v-application--is-ltr .v-text-field--outlined fieldset{padding-left:8px}.v-application--is-ltr .v-text-field--outlined.v-text-field--reverse fieldset,.v-application--is-rtl .v-text-field--outlined fieldset{padding-right:8px}.v-application--is-rtl .v-text-field--outlined.v-text-field--reverse fieldset{padding-left:8px}.v-text-field--outlined legend{line-height:11px;padding:0;transition:width .3s cubic-bezier(.25,.8,.5,1)}.v-application--is-ltr .v-text-field--outlined legend{text-align:left}.v-application--is-ltr .v-text-field--outlined.v-text-field--reverse legend,.v-application--is-rtl .v-text-field--outlined legend{text-align:right}.v-application--is-rtl .v-text-field--outlined.v-text-field--reverse legend{text-align:left}.v-application--is-ltr .v-text-field--outlined.v-text-field--rounded legend{margin-left:12px}.v-application--is-rtl .v-text-field--outlined.v-text-field--rounded legend{margin-right:12px}.v-text-field--outlined>.v-input__control>.v-input__slot{background:transparent}.v-text-field--outlined .v-text-field__prefix{max-height:32px}.v-text-field--outlined .v-input__append-outer,.v-text-field--outlined .v-input__prepend-outer{margin-top:18px}.v-text-field--outlined.v-input--has-state fieldset,.v-text-field--outlined.v-input--is-focused fieldset{border:2px solid}.v-text-field--rounded{border-radius:28px}.v-text-field--rounded>.v-input__control>.v-input__slot{padding:0 24px}.v-text-field--shaped{border-radius:16px 16px 0 0}.v-text-field.v-text-field--solo .v-label{top:calc(50% - 9px)}.v-text-field.v-text-field--solo .v-input__control{min-height:48px;padding:0}.v-text-field.v-text-field--solo .v-input__control input{caret-color:auto}.v-text-field.v-text-field--solo.v-input--dense>.v-input__control{min-height:38px}.v-text-field.v-text-field--solo:not(.v-text-field--solo-flat)>.v-input__control>.v-input__slot{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.v-text-field.v-text-field--solo .v-input__append-inner,.v-text-field.v-text-field--solo .v-input__prepend-inner{align-self:center;margin-top:0}.v-text-field.v-text-field--solo .v-input__append-outer,.v-text-field.v-text-field--solo .v-input__prepend-outer{margin-top:12px}.v-text-field.v-text-field--solo.v-input--dense .v-input__append-outer,.v-text-field.v-text-field--solo.v-input--dense .v-input__prepend-outer{margin-top:7px}.v-text-field.v-input--is-focused>.v-input__control>.v-input__slot:after{transform:scaleX(1)}.v-text-field.v-input--has-state>.v-input__control>.v-input__slot:before{border-color:currentColor}", ""]);
|
||
// Exports
|
||
module.exports = ___CSS_LOADER_EXPORT___;
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ 73:
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// style-loader: Adds some css to the DOM by adding a <style> tag
|
||
|
||
// load the styles
|
||
var content = __webpack_require__(74);
|
||
if(content.__esModule) content = content.default;
|
||
if(typeof content === 'string') content = [[module.i, content, '']];
|
||
if(content.locals) module.exports = content.locals;
|
||
__webpack_require__(6).default("22487aae", content, true)
|
||
|
||
/***/ }),
|
||
|
||
/***/ 74:
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// Imports
|
||
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(5);
|
||
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);
|
||
// Module
|
||
___CSS_LOADER_EXPORT___.push([module.i, ".theme--light.v-input,.theme--light.v-input input,.theme--light.v-input textarea{color:rgba(0,0,0,.87)}.theme--light.v-input input::-moz-placeholder,.theme--light.v-input textarea::-moz-placeholder{color:rgba(0,0,0,.38)}.theme--light.v-input input::placeholder,.theme--light.v-input textarea::placeholder{color:rgba(0,0,0,.38)}.theme--light.v-input--is-disabled,.theme--light.v-input--is-disabled input,.theme--light.v-input--is-disabled textarea{color:rgba(0,0,0,.38)}.theme--dark.v-input,.theme--dark.v-input input,.theme--dark.v-input textarea{color:#fff}.theme--dark.v-input input::-moz-placeholder,.theme--dark.v-input textarea::-moz-placeholder{color:hsla(0,0%,100%,.5)}.theme--dark.v-input input::placeholder,.theme--dark.v-input textarea::placeholder{color:hsla(0,0%,100%,.5)}.theme--dark.v-input--is-disabled,.theme--dark.v-input--is-disabled input,.theme--dark.v-input--is-disabled textarea{color:hsla(0,0%,100%,.5)}.v-input{align-items:flex-start;display:flex;flex:1 1 auto;font-size:16px;letter-spacing:normal;max-width:100%;text-align:left}.v-input .v-progress-linear{top:calc(100% - 1px);left:0}.v-input input{max-height:32px}.v-input input:invalid,.v-input textarea:invalid{box-shadow:none}.v-input input:active,.v-input input:focus,.v-input textarea:active,.v-input textarea:focus{outline:none}.v-input .v-label{height:20px;line-height:20px}.v-input__append-outer,.v-input__prepend-outer{display:inline-flex;margin-bottom:4px;margin-top:4px;line-height:1}.v-input__append-outer .v-icon,.v-input__prepend-outer .v-icon{-webkit-user-select:none;-moz-user-select:none;user-select:none}.v-application--is-ltr .v-input__append-outer{margin-left:9px}.v-application--is-ltr .v-input__prepend-outer,.v-application--is-rtl .v-input__append-outer{margin-right:9px}.v-application--is-rtl .v-input__prepend-outer{margin-left:9px}.v-input__control{display:flex;flex-direction:column;height:auto;flex-grow:1;flex-wrap:wrap;min-width:0;width:100%}.v-input__icon{align-items:center;display:inline-flex;height:24px;flex:1 0 auto;justify-content:center;min-width:24px;width:24px}.v-input__icon--clear{border-radius:50%}.v-input__icon--clear .v-icon--disabled{visibility:hidden}.v-input__slot{align-items:center;color:inherit;display:flex;margin-bottom:8px;min-height:inherit;position:relative;transition:.3s cubic-bezier(.25,.8,.5,1);width:100%}.v-input--dense>.v-input__control>.v-input__slot{margin-bottom:4px}.v-input--is-disabled:not(.v-input--is-readonly){pointer-events:none}.v-input--is-loading>.v-input__control>.v-input__slot:after,.v-input--is-loading>.v-input__control>.v-input__slot:before{display:none}.v-input--hide-details>.v-input__control>.v-input__slot{margin-bottom:0}.v-input--has-state.error--text .v-label{-webkit-animation:v-shake .6s cubic-bezier(.25,.8,.5,1);animation:v-shake .6s cubic-bezier(.25,.8,.5,1)}", ""]);
|
||
// Exports
|
||
module.exports = ___CSS_LOADER_EXPORT___;
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ 75:
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// style-loader: Adds some css to the DOM by adding a <style> tag
|
||
|
||
// load the styles
|
||
var content = __webpack_require__(76);
|
||
if(content.__esModule) content = content.default;
|
||
if(typeof content === 'string') content = [[module.i, content, '']];
|
||
if(content.locals) module.exports = content.locals;
|
||
__webpack_require__(6).default("6b715e77", content, true)
|
||
|
||
/***/ }),
|
||
|
||
/***/ 76:
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// Imports
|
||
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(5);
|
||
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);
|
||
// Module
|
||
___CSS_LOADER_EXPORT___.push([module.i, ".theme--light.v-icon{color:rgba(0,0,0,.54)}.theme--light.v-icon:focus:after{opacity:.12}.theme--light.v-icon.v-icon.v-icon--disabled{color:rgba(0,0,0,.38)!important}.theme--dark.v-icon{color:#fff}.theme--dark.v-icon:focus:after{opacity:.24}.theme--dark.v-icon.v-icon.v-icon--disabled{color:hsla(0,0%,100%,.5)!important}.v-icon.v-icon{align-items:center;display:inline-flex;font-feature-settings:\"liga\";font-size:24px;justify-content:center;letter-spacing:normal;line-height:1;position:relative;text-indent:0;transition:.3s cubic-bezier(.25,.8,.5,1),visibility 0s;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;user-select:none}.v-icon.v-icon:after{background-color:currentColor;border-radius:50%;content:\"\";display:inline-block;height:100%;opacity:0;pointer-events:none;position:absolute;transform:scale(1.3);width:100%;transition:opacity .2s cubic-bezier(.4,0,.6,1)}.v-icon.v-icon--dense{font-size:20px}.v-icon--right{margin-left:8px}.v-icon--left{margin-right:8px}.v-icon.v-icon.v-icon--link{cursor:pointer;outline:none}.v-icon--disabled{pointer-events:none}.v-icon--is-component,.v-icon--svg{height:24px;width:24px}.v-icon--svg{fill:currentColor}.v-icon--dense--is-component{height:20px}", ""]);
|
||
// Exports
|
||
module.exports = ___CSS_LOADER_EXPORT___;
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ 77:
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// style-loader: Adds some css to the DOM by adding a <style> tag
|
||
|
||
// load the styles
|
||
var content = __webpack_require__(78);
|
||
if(content.__esModule) content = content.default;
|
||
if(typeof content === 'string') content = [[module.i, content, '']];
|
||
if(content.locals) module.exports = content.locals;
|
||
__webpack_require__(6).default("371f82d0", content, true)
|
||
|
||
/***/ }),
|
||
|
||
/***/ 78:
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// Imports
|
||
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(5);
|
||
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);
|
||
// Module
|
||
___CSS_LOADER_EXPORT___.push([module.i, ".theme--light.v-label{color:rgba(0,0,0,.6)}.theme--light.v-label--is-disabled{color:rgba(0,0,0,.38)}.theme--dark.v-label{color:hsla(0,0%,100%,.7)}.theme--dark.v-label--is-disabled{color:hsla(0,0%,100%,.5)}.v-label{font-size:16px;line-height:1;min-height:8px;transition:.3s cubic-bezier(.25,.8,.5,1)}", ""]);
|
||
// Exports
|
||
module.exports = ___CSS_LOADER_EXPORT___;
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ 79:
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// style-loader: Adds some css to the DOM by adding a <style> tag
|
||
|
||
// load the styles
|
||
var content = __webpack_require__(80);
|
||
if(content.__esModule) content = content.default;
|
||
if(typeof content === 'string') content = [[module.i, content, '']];
|
||
if(content.locals) module.exports = content.locals;
|
||
__webpack_require__(6).default("2bb34da4", content, true)
|
||
|
||
/***/ }),
|
||
|
||
/***/ 80:
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// Imports
|
||
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(5);
|
||
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);
|
||
// Module
|
||
___CSS_LOADER_EXPORT___.push([module.i, ".theme--light.v-messages{color:rgba(0,0,0,.6)}.theme--dark.v-messages{color:hsla(0,0%,100%,.7)}.v-messages{flex:1 1 auto;font-size:12px;min-height:14px;min-width:1px;position:relative}.v-application--is-ltr .v-messages{text-align:left}.v-application--is-rtl .v-messages{text-align:right}.v-messages__message{line-height:12px;word-break:break-word;word-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}", ""]);
|
||
// Exports
|
||
module.exports = ___CSS_LOADER_EXPORT___;
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ 81:
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// style-loader: Adds some css to the DOM by adding a <style> tag
|
||
|
||
// load the styles
|
||
var content = __webpack_require__(82);
|
||
if(content.__esModule) content = content.default;
|
||
if(typeof content === 'string') content = [[module.i, content, '']];
|
||
if(content.locals) module.exports = content.locals;
|
||
__webpack_require__(6).default("3dc908a0", content, true)
|
||
|
||
/***/ }),
|
||
|
||
/***/ 82:
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// Imports
|
||
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(5);
|
||
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);
|
||
// Module
|
||
___CSS_LOADER_EXPORT___.push([module.i, ".theme--light.v-counter{color:rgba(0,0,0,.6)}.theme--dark.v-counter{color:hsla(0,0%,100%,.7)}.v-counter{flex:0 1 auto;font-size:12px;min-height:12px;line-height:12px}", ""]);
|
||
// Exports
|
||
module.exports = ___CSS_LOADER_EXPORT___;
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ 88:
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
// ESM COMPAT FLAG
|
||
__webpack_require__.r(__webpack_exports__);
|
||
|
||
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--2!./node_modules/pug-plain-loader??ref--1-oneOf-0-0!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./pages/index.vue?vue&type=template&id=27c3eb76&scoped=true&lang=pug&
|
||
var lib_vue_loader_options_pagesvue_type_template_id_27c3eb76_scoped_true_lang_pug_render = function render() {
|
||
var _vm = this,
|
||
_c = _vm._self._c,
|
||
_setup = _vm._self._setupProxy;
|
||
|
||
return _c('v-container', {
|
||
attrs: {
|
||
"fluid": ""
|
||
}
|
||
}, [_c('v-card', {
|
||
staticClass: "elevation-0"
|
||
}, [_c('v-card-title', [_vm._v("您好!")]), _c('v-card-text', [_c('p', [_vm._v("請填入您所要綁定的以太錢包地址")]), _c('br'), _vm._v("Enter your Ethereum address below"), _c('v-form', {
|
||
on: {
|
||
"submit": function ($event) {
|
||
$event.preventDefault();
|
||
return _vm.submit.apply(null, arguments);
|
||
}
|
||
},
|
||
model: {
|
||
value: _vm.isValid,
|
||
callback: function ($$v) {
|
||
_vm.isValid = $$v;
|
||
},
|
||
expression: "isValid"
|
||
}
|
||
}, [_c('v-text-field', {
|
||
attrs: {
|
||
"label": "錢包地址",
|
||
"rules": [_vm.requireInput]
|
||
},
|
||
model: {
|
||
value: _vm.form.WalletAddress,
|
||
callback: function ($$v) {
|
||
_vm.$set(_vm.form, "WalletAddress", $$v);
|
||
},
|
||
expression: "form.WalletAddress"
|
||
}
|
||
}), _c('p', {
|
||
staticClass: "grey--text"
|
||
}, [_vm._v("註1: 以太網錢包地址 Ethereum address")]), _c('v-text-field', {
|
||
attrs: {
|
||
"label": "備註"
|
||
},
|
||
model: {
|
||
value: _vm.form.VerifyRemarks,
|
||
callback: function ($$v) {
|
||
_vm.$set(_vm.form, "VerifyRemarks", $$v);
|
||
},
|
||
expression: "form.VerifyRemarks"
|
||
}
|
||
}), _c('v-btn', {
|
||
staticClass: "airplug",
|
||
attrs: {
|
||
"type": "submit",
|
||
"dark": "",
|
||
"block": "",
|
||
"depressed": "",
|
||
"large": "",
|
||
"disabled": !_vm.isValid
|
||
}
|
||
}, [_vm._v(_vm._s(_vm.isValid ? '填好送出完成報到' : '您還沒填好喔'))])], 1)], 1)], 1)], 1);
|
||
};
|
||
|
||
var staticRenderFns = [];
|
||
|
||
// CONCATENATED MODULE: ./pages/index.vue?vue&type=template&id=27c3eb76&scoped=true&lang=pug&
|
||
|
||
// EXTERNAL MODULE: external "nuxt-property-decorator"
|
||
var external_nuxt_property_decorator_ = __webpack_require__(52);
|
||
|
||
// CONCATENATED MODULE: ./plugins/liff.ts
|
||
const loaded = {};
|
||
|
||
function loadScript(url) {
|
||
if (!loaded[url]) {
|
||
loaded[url] = new Promise((resolve, reject) => {
|
||
const script = document.createElement('script');
|
||
|
||
script.onload = () => resolve();
|
||
|
||
script.onerror = reject;
|
||
script.src = url;
|
||
document.head.appendChild(script);
|
||
});
|
||
}
|
||
|
||
return loaded[url];
|
||
}
|
||
|
||
async function initLIFF(liffId) {
|
||
await loadScript('https://static.line-scdn.net/liff/edge/2.1/sdk.js');
|
||
const liff = window.liff;
|
||
await new Promise((resolve, _) => {
|
||
liff.init({
|
||
liffId
|
||
}, resolve);
|
||
});
|
||
return liff;
|
||
}
|
||
// CONCATENATED MODULE: ./node_modules/babel-loader/lib??ref--12-0!./node_modules/ts-loader??ref--12-1!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./pages/index.vue?vue&type=script&lang=ts&
|
||
var __decorate = undefined && undefined.__decorate || function (decorators, target, key, desc) {
|
||
var c = arguments.length,
|
||
r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
|
||
d;
|
||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||
};
|
||
|
||
|
||
|
||
let lib_vue_loader_options_pagesvue_type_script_lang_ts_Home = class Home extends external_nuxt_property_decorator_["Vue"] {
|
||
constructor() {
|
||
super(...arguments);
|
||
this.isValid = true;
|
||
this.form = {
|
||
WalletAddress: "",
|
||
VerifyRemarks: "",
|
||
LINEUserID: "",
|
||
LINEdisplayName: "",
|
||
LINEpictureUrl: "",
|
||
LINEstatusMessage: "",
|
||
VerifyNUM: "",
|
||
VerifySys: "",
|
||
Veify_Checked: ""
|
||
};
|
||
}
|
||
|
||
async mounted() {
|
||
const liffId = "1657251293-7LagMEa1";
|
||
const liff = this.liff = await initLIFF(liffId);
|
||
|
||
if (!liff.isLoggedIn()) {
|
||
liff.login();
|
||
} else {
|
||
const profile = await liff.getProfile();
|
||
this.form.LINEUserID = profile.userId;
|
||
this.form.LINEdisplayName = profile.displayName;
|
||
this.form.LINEpictureUrl = profile.pictureUrl;
|
||
this.form.LINEstatusMessage = profile.statusMessage;
|
||
await this.autofill(profile.userId);
|
||
console.log(this.form);
|
||
console.log("---------------------------------------------");
|
||
console.log(this.form.Veify_Checked);
|
||
console.log("---------------------------------------------");
|
||
|
||
if (this.form.Veify_Checked == "OK") {
|
||
console.log("---------------------------------------------");
|
||
alert('您已經綁定過囉,如重新綁定需24小時解綁時間');
|
||
console.log("---------------------------------------------");
|
||
}
|
||
}
|
||
}
|
||
|
||
async autofill(uid) {
|
||
const response = await this.$axios.get(`//${window.location.host}/autofill`, {
|
||
params: {
|
||
LINEUserID: uid
|
||
}
|
||
});
|
||
const object = response.data[0];
|
||
|
||
if (!object) {
|
||
return;
|
||
}
|
||
|
||
for (const key in this.form) {
|
||
this.form[key] = object[key];
|
||
}
|
||
}
|
||
|
||
async submit() {
|
||
this.form.VerifyNUM = "Contree-" + Math.floor(Math.random() * 999) + "-" + Math.floor(Math.random() * 999);
|
||
|
||
try {
|
||
await this.$axios.$post(`//${window.location.host}/submit`, this.form);
|
||
|
||
if (this.liff.isInClient()) {
|
||
await this.liff.sendMessages([{
|
||
"type": "flex",
|
||
"altText": "this is a carousel template",
|
||
"contents": {
|
||
"type": "carousel",
|
||
"contents": [{
|
||
"type": "bubble",
|
||
"direction": "ltr",
|
||
"hero": {
|
||
"type": "image",
|
||
"url": "https:/web.gsct.tw/Contree/verify/walletadd.png",
|
||
"size": "full",
|
||
"aspectRatio": "1:1",
|
||
"aspectMode": "cover"
|
||
},
|
||
"body": {
|
||
"type": "box",
|
||
"layout": "vertical",
|
||
"contents": [{
|
||
"type": "text",
|
||
"text": "Step.1",
|
||
"weight": "bold",
|
||
"align": "center",
|
||
"contents": []
|
||
}, {
|
||
"type": "text",
|
||
"text": "輸入錢包位置",
|
||
"weight": "bold",
|
||
"align": "center",
|
||
"contents": []
|
||
}]
|
||
}
|
||
}, {
|
||
"type": "bubble",
|
||
"direction": "ltr",
|
||
"hero": {
|
||
"type": "image",
|
||
"url": "https:/web.gsct.tw/Contree/verify/biono.png",
|
||
"size": "full",
|
||
"aspectRatio": "1:1",
|
||
"aspectMode": "cover"
|
||
},
|
||
"body": {
|
||
"type": "box",
|
||
"layout": "vertical",
|
||
"contents": [{
|
||
"type": "text",
|
||
"text": "Step.1",
|
||
"weight": "bold",
|
||
"align": "center",
|
||
"contents": []
|
||
}, {
|
||
"type": "text",
|
||
"text": "獲得Bio驗證碼",
|
||
"weight": "bold",
|
||
"align": "center",
|
||
"contents": []
|
||
}]
|
||
}
|
||
}, {
|
||
"type": "bubble",
|
||
"direction": "ltr",
|
||
"hero": {
|
||
"type": "image",
|
||
"url": "https:/web.gsct.tw/Contree/verify/opensea.png",
|
||
"size": "full",
|
||
"aspectRatio": "1:1",
|
||
"aspectMode": "cover"
|
||
},
|
||
"body": {
|
||
"type": "box",
|
||
"layout": "vertical",
|
||
"contents": [{
|
||
"type": "text",
|
||
"text": "Step.3",
|
||
"weight": "bold",
|
||
"align": "center",
|
||
"contents": []
|
||
}, {
|
||
"type": "text",
|
||
"text": "進入錢包位置",
|
||
"weight": "bold",
|
||
"align": "center",
|
||
"contents": []
|
||
}]
|
||
}
|
||
}, {
|
||
"type": "bubble",
|
||
"direction": "ltr",
|
||
"hero": {
|
||
"type": "image",
|
||
"url": "https:/web.gsct.tw/Contree/verify/contect.png",
|
||
"size": "full",
|
||
"aspectRatio": "1:1",
|
||
"aspectMode": "cover"
|
||
},
|
||
"body": {
|
||
"type": "box",
|
||
"layout": "vertical",
|
||
"contents": [{
|
||
"type": "text",
|
||
"text": "Step.4",
|
||
"weight": "bold",
|
||
"align": "center",
|
||
"contents": []
|
||
}, {
|
||
"type": "text",
|
||
"text": "完成opensea簽署",
|
||
"weight": "bold",
|
||
"align": "center",
|
||
"contents": []
|
||
}]
|
||
}
|
||
}, {
|
||
"type": "bubble",
|
||
"direction": "ltr",
|
||
"hero": {
|
||
"type": "image",
|
||
"url": "https:/web.gsct.tw/Contree/verify/bio.png",
|
||
"size": "full",
|
||
"aspectRatio": "1:1",
|
||
"aspectMode": "cover"
|
||
},
|
||
"body": {
|
||
"type": "box",
|
||
"layout": "vertical",
|
||
"contents": [{
|
||
"type": "text",
|
||
"text": "Step.5",
|
||
"weight": "bold",
|
||
"align": "center",
|
||
"contents": []
|
||
}, {
|
||
"type": "text",
|
||
"text": "在Account的Bio 填入驗證碼 ",
|
||
"weight": "bold",
|
||
"align": "center",
|
||
"contents": []
|
||
}]
|
||
}
|
||
}, {
|
||
"type": "bubble",
|
||
"direction": "ltr",
|
||
"hero": {
|
||
"type": "image",
|
||
"url": "https:/web.gsct.tw/Contree/verify/fin.png",
|
||
"size": "full",
|
||
"aspectRatio": "1:1",
|
||
"aspectMode": "cover"
|
||
},
|
||
"body": {
|
||
"type": "box",
|
||
"layout": "vertical",
|
||
"contents": [{
|
||
"type": "text",
|
||
"text": "Step.6",
|
||
"weight": "bold",
|
||
"align": "center",
|
||
"contents": []
|
||
}, {
|
||
"type": "text",
|
||
"text": "綁定完成",
|
||
"weight": "bold",
|
||
"align": "center",
|
||
"contents": []
|
||
}]
|
||
}
|
||
}]
|
||
}
|
||
}]);
|
||
await this.liff.sendMessages([{
|
||
"type": "text",
|
||
"text": this.form.VerifyNUM
|
||
}]);
|
||
await this.liff.sendMessages([{
|
||
"type": "text",
|
||
"text": "下面就是驗證碼喔"
|
||
}]);
|
||
this.liff.closeWindow();
|
||
} else {
|
||
if (this.liff.isLoggedIn()) {
|
||
alert('您使用的是外部瀏覽器');
|
||
window.location.assign("https://api.contree.io/posts/1");
|
||
}
|
||
}
|
||
} catch (error) {
|
||
alert("送出失敗");
|
||
}
|
||
}
|
||
|
||
requireInput(value) {
|
||
value = value || '';
|
||
return !!value.trim() ? true : "這個欄位也要填喔";
|
||
}
|
||
|
||
isEmail(value) {
|
||
return !!value.match(/.+@.+[.].+/g) ? true : "email 格式不正確";
|
||
}
|
||
|
||
isPhone(value) {
|
||
return value.replace(/[^0-9]/g, "").length >= 9 ? true : "電話號碼不正確, 市話記得加區碼喔";
|
||
}
|
||
|
||
isWeb3Address(value) {
|
||
return value.replace(/[^a-z0-9]/g, "").length >= 9 ? true : "只能打英文數字喔";
|
||
}
|
||
|
||
};
|
||
lib_vue_loader_options_pagesvue_type_script_lang_ts_Home = __decorate([external_nuxt_property_decorator_["Component"]], lib_vue_loader_options_pagesvue_type_script_lang_ts_Home);
|
||
/* harmony default export */ var lib_vue_loader_options_pagesvue_type_script_lang_ts_ = (lib_vue_loader_options_pagesvue_type_script_lang_ts_Home);
|
||
// CONCATENATED MODULE: ./pages/index.vue?vue&type=script&lang=ts&
|
||
/* harmony default export */ var pagesvue_type_script_lang_ts_ = (lib_vue_loader_options_pagesvue_type_script_lang_ts_);
|
||
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
|
||
var componentNormalizer = __webpack_require__(9);
|
||
|
||
// EXTERNAL MODULE: ./node_modules/vuetify-loader/lib/runtime/installComponents.js
|
||
var installComponents = __webpack_require__(13);
|
||
var installComponents_default = /*#__PURE__*/__webpack_require__.n(installComponents);
|
||
|
||
// EXTERNAL MODULE: ./node_modules/vuetify/src/components/VBtn/VBtn.sass
|
||
var VBtn = __webpack_require__(61);
|
||
|
||
// EXTERNAL MODULE: ./node_modules/vuetify/lib/components/VSheet/VSheet.js + 3 modules
|
||
var VSheet = __webpack_require__(14);
|
||
|
||
// CONCATENATED MODULE: ./node_modules/vuetify/lib/components/VSheet/index.js
|
||
|
||
|
||
/* harmony default export */ var components_VSheet = (VSheet["a" /* default */]);
|
||
// EXTERNAL MODULE: ./node_modules/vuetify/src/components/VProgressCircular/VProgressCircular.sass
|
||
var VProgressCircular = __webpack_require__(65);
|
||
|
||
// EXTERNAL MODULE: ./node_modules/vuetify/lib/mixins/colorable/index.js
|
||
var colorable = __webpack_require__(19);
|
||
|
||
// EXTERNAL MODULE: ./node_modules/vuetify/lib/util/helpers.js
|
||
var helpers = __webpack_require__(1);
|
||
|
||
// CONCATENATED MODULE: ./node_modules/vuetify/lib/components/VProgressCircular/VProgressCircular.js
|
||
// Styles
|
||
// Mixins
|
||
|
||
// Utils
|
||
|
||
|
||
/* @vue/component */
|
||
|
||
/* harmony default export */ var VProgressCircular_VProgressCircular = (colorable["a" /* default */].extend({
|
||
name: 'v-progress-circular',
|
||
props: {
|
||
button: Boolean,
|
||
indeterminate: Boolean,
|
||
rotate: {
|
||
type: [Number, String],
|
||
default: 0
|
||
},
|
||
size: {
|
||
type: [Number, String],
|
||
default: 32
|
||
},
|
||
width: {
|
||
type: [Number, String],
|
||
default: 4
|
||
},
|
||
value: {
|
||
type: [Number, String],
|
||
default: 0
|
||
}
|
||
},
|
||
data: () => ({
|
||
radius: 20
|
||
}),
|
||
computed: {
|
||
calculatedSize() {
|
||
return Number(this.size) + (this.button ? 8 : 0);
|
||
},
|
||
|
||
circumference() {
|
||
return 2 * Math.PI * this.radius;
|
||
},
|
||
|
||
classes() {
|
||
return {
|
||
'v-progress-circular--indeterminate': this.indeterminate,
|
||
'v-progress-circular--button': this.button
|
||
};
|
||
},
|
||
|
||
normalizedValue() {
|
||
if (this.value < 0) {
|
||
return 0;
|
||
}
|
||
|
||
if (this.value > 100) {
|
||
return 100;
|
||
}
|
||
|
||
return parseFloat(this.value);
|
||
},
|
||
|
||
strokeDashArray() {
|
||
return Math.round(this.circumference * 1000) / 1000;
|
||
},
|
||
|
||
strokeDashOffset() {
|
||
return (100 - this.normalizedValue) / 100 * this.circumference + 'px';
|
||
},
|
||
|
||
strokeWidth() {
|
||
return Number(this.width) / +this.size * this.viewBoxSize * 2;
|
||
},
|
||
|
||
styles() {
|
||
return {
|
||
height: Object(helpers["d" /* convertToUnit */])(this.calculatedSize),
|
||
width: Object(helpers["d" /* convertToUnit */])(this.calculatedSize)
|
||
};
|
||
},
|
||
|
||
svgStyles() {
|
||
return {
|
||
transform: `rotate(${Number(this.rotate)}deg)`
|
||
};
|
||
},
|
||
|
||
viewBoxSize() {
|
||
return this.radius / (1 - Number(this.width) / +this.size);
|
||
}
|
||
|
||
},
|
||
methods: {
|
||
genCircle(name, offset) {
|
||
return this.$createElement('circle', {
|
||
class: `v-progress-circular__${name}`,
|
||
attrs: {
|
||
fill: 'transparent',
|
||
cx: 2 * this.viewBoxSize,
|
||
cy: 2 * this.viewBoxSize,
|
||
r: this.radius,
|
||
'stroke-width': this.strokeWidth,
|
||
'stroke-dasharray': this.strokeDashArray,
|
||
'stroke-dashoffset': offset
|
||
}
|
||
});
|
||
},
|
||
|
||
genSvg() {
|
||
const children = [this.indeterminate || this.genCircle('underlay', 0), this.genCircle('overlay', this.strokeDashOffset)];
|
||
return this.$createElement('svg', {
|
||
style: this.svgStyles,
|
||
attrs: {
|
||
xmlns: 'http://www.w3.org/2000/svg',
|
||
viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`
|
||
}
|
||
}, children);
|
||
},
|
||
|
||
genInfo() {
|
||
return this.$createElement('div', {
|
||
staticClass: 'v-progress-circular__info'
|
||
}, this.$slots.default);
|
||
}
|
||
|
||
},
|
||
|
||
render(h) {
|
||
return h('div', this.setTextColor(this.color, {
|
||
staticClass: 'v-progress-circular',
|
||
attrs: {
|
||
role: 'progressbar',
|
||
'aria-valuemin': 0,
|
||
'aria-valuemax': 100,
|
||
'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue
|
||
},
|
||
class: this.classes,
|
||
style: this.styles,
|
||
on: this.$listeners
|
||
}), [this.genSvg(), this.genInfo()]);
|
||
}
|
||
|
||
}));
|
||
// CONCATENATED MODULE: ./node_modules/vuetify/lib/components/VProgressCircular/index.js
|
||
|
||
|
||
/* harmony default export */ var components_VProgressCircular = (VProgressCircular_VProgressCircular);
|
||
// EXTERNAL MODULE: external "vue"
|
||
var external_vue_ = __webpack_require__(0);
|
||
var external_vue_default = /*#__PURE__*/__webpack_require__.n(external_vue_);
|
||
|
||
// EXTERNAL MODULE: ./node_modules/vuetify/lib/util/console.js
|
||
var util_console = __webpack_require__(2);
|
||
|
||
// CONCATENATED MODULE: ./node_modules/vuetify/lib/mixins/registrable/index.js
|
||
|
||
|
||
|
||
function generateWarning(child, parent) {
|
||
return () => Object(util_console["c" /* consoleWarn */])(`The ${child} component must be used inside a ${parent}`);
|
||
}
|
||
|
||
function inject(namespace, child, parent) {
|
||
const defaultImpl = child && parent ? {
|
||
register: generateWarning(child, parent),
|
||
unregister: generateWarning(child, parent)
|
||
} : null;
|
||
return external_vue_default.a.extend({
|
||
name: 'registrable-inject',
|
||
inject: {
|
||
[namespace]: {
|
||
default: defaultImpl
|
||
}
|
||
}
|
||
});
|
||
}
|
||
function provide(namespace, self = false) {
|
||
return external_vue_default.a.extend({
|
||
name: 'registrable-provide',
|
||
methods: self ? {} : {
|
||
register: null,
|
||
unregister: null
|
||
},
|
||
|
||
provide() {
|
||
return {
|
||
[namespace]: self ? this : {
|
||
register: this.register,
|
||
unregister: this.unregister
|
||
}
|
||
};
|
||
}
|
||
|
||
});
|
||
}
|
||
// CONCATENATED MODULE: ./node_modules/vuetify/lib/mixins/groupable/index.js
|
||
// Mixins
|
||
|
||
function factory(namespace, child, parent) {
|
||
// TODO: ts 3.4 broke directly returning this
|
||
const R = inject(namespace, child, parent).extend({
|
||
name: 'groupable',
|
||
props: {
|
||
activeClass: {
|
||
type: String,
|
||
|
||
default() {
|
||
if (!this[namespace]) return undefined;
|
||
return this[namespace].activeClass;
|
||
}
|
||
|
||
},
|
||
disabled: Boolean
|
||
},
|
||
|
||
data() {
|
||
return {
|
||
isActive: false
|
||
};
|
||
},
|
||
|
||
computed: {
|
||
groupClasses() {
|
||
if (!this.activeClass) return {};
|
||
return {
|
||
[this.activeClass]: this.isActive
|
||
};
|
||
}
|
||
|
||
},
|
||
|
||
created() {
|
||
this[namespace] && this[namespace].register(this);
|
||
},
|
||
|
||
beforeDestroy() {
|
||
this[namespace] && this[namespace].unregister(this);
|
||
},
|
||
|
||
methods: {
|
||
toggle() {
|
||
this.$emit('change');
|
||
}
|
||
|
||
}
|
||
});
|
||
return R;
|
||
}
|
||
/* eslint-disable-next-line no-redeclare */
|
||
|
||
const Groupable = factory('itemGroup');
|
||
/* harmony default export */ var groupable = (Groupable);
|
||
// CONCATENATED MODULE: ./node_modules/vuetify/lib/mixins/toggleable/index.js
|
||
|
||
function toggleable_factory(prop = 'value', event = 'input') {
|
||
return external_vue_default.a.extend({
|
||
name: 'toggleable',
|
||
model: {
|
||
prop,
|
||
event
|
||
},
|
||
props: {
|
||
[prop]: {
|
||
required: false
|
||
}
|
||
},
|
||
|
||
data() {
|
||
return {
|
||
isActive: !!this[prop]
|
||
};
|
||
},
|
||
|
||
watch: {
|
||
[prop](val) {
|
||
this.isActive = !!val;
|
||
},
|
||
|
||
isActive(val) {
|
||
!!val !== this[prop] && this.$emit(event, val);
|
||
}
|
||
|
||
}
|
||
});
|
||
}
|
||
/* eslint-disable-next-line no-redeclare */
|
||
|
||
const Toggleable = toggleable_factory();
|
||
/* harmony default export */ var toggleable = (Toggleable);
|
||
// EXTERNAL MODULE: ./node_modules/vuetify/lib/mixins/positionable/index.js
|
||
var positionable = __webpack_require__(22);
|
||
|
||
// EXTERNAL MODULE: ./node_modules/vuetify/src/directives/ripple/VRipple.sass
|
||
var VRipple = __webpack_require__(63);
|
||
|
||
// CONCATENATED MODULE: ./node_modules/vuetify/lib/directives/ripple/index.js
|
||
// Styles
|
||
// Utilities
|
||
|
||
|
||
|
||
const DELAY_RIPPLE = 80;
|
||
|
||
function transform(el, value) {
|
||
el.style['transform'] = value;
|
||
el.style['webkitTransform'] = value;
|
||
}
|
||
|
||
function opacity(el, value) {
|
||
el.style['opacity'] = value.toString();
|
||
}
|
||
|
||
function isTouchEvent(e) {
|
||
return e.constructor.name === 'TouchEvent';
|
||
}
|
||
|
||
function isKeyboardEvent(e) {
|
||
return e.constructor.name === 'KeyboardEvent';
|
||
}
|
||
|
||
const calculate = (e, el, value = {}) => {
|
||
let localX = 0;
|
||
let localY = 0;
|
||
|
||
if (!isKeyboardEvent(e)) {
|
||
const offset = el.getBoundingClientRect();
|
||
const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e;
|
||
localX = target.clientX - offset.left;
|
||
localY = target.clientY - offset.top;
|
||
}
|
||
|
||
let radius = 0;
|
||
let scale = 0.3;
|
||
|
||
if (el._ripple && el._ripple.circle) {
|
||
scale = 0.15;
|
||
radius = el.clientWidth / 2;
|
||
radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4;
|
||
} else {
|
||
radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2;
|
||
}
|
||
|
||
const centerX = `${(el.clientWidth - radius * 2) / 2}px`;
|
||
const centerY = `${(el.clientHeight - radius * 2) / 2}px`;
|
||
const x = value.center ? centerX : `${localX - radius}px`;
|
||
const y = value.center ? centerY : `${localY - radius}px`;
|
||
return {
|
||
radius,
|
||
scale,
|
||
x,
|
||
y,
|
||
centerX,
|
||
centerY
|
||
};
|
||
};
|
||
|
||
const ripples = {
|
||
/* eslint-disable max-statements */
|
||
show(e, el, value = {}) {
|
||
if (!el._ripple || !el._ripple.enabled) {
|
||
return;
|
||
}
|
||
|
||
const container = document.createElement('span');
|
||
const animation = document.createElement('span');
|
||
container.appendChild(animation);
|
||
container.className = 'v-ripple__container';
|
||
|
||
if (value.class) {
|
||
container.className += ` ${value.class}`;
|
||
}
|
||
|
||
const {
|
||
radius,
|
||
scale,
|
||
x,
|
||
y,
|
||
centerX,
|
||
centerY
|
||
} = calculate(e, el, value);
|
||
const size = `${radius * 2}px`;
|
||
animation.className = 'v-ripple__animation';
|
||
animation.style.width = size;
|
||
animation.style.height = size;
|
||
el.appendChild(container);
|
||
const computed = window.getComputedStyle(el);
|
||
|
||
if (computed && computed.position === 'static') {
|
||
el.style.position = 'relative';
|
||
el.dataset.previousPosition = 'static';
|
||
}
|
||
|
||
animation.classList.add('v-ripple__animation--enter');
|
||
animation.classList.add('v-ripple__animation--visible');
|
||
transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`);
|
||
opacity(animation, 0);
|
||
animation.dataset.activated = String(performance.now());
|
||
setTimeout(() => {
|
||
animation.classList.remove('v-ripple__animation--enter');
|
||
animation.classList.add('v-ripple__animation--in');
|
||
transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`);
|
||
opacity(animation, 0.25);
|
||
}, 0);
|
||
},
|
||
|
||
hide(el) {
|
||
if (!el || !el._ripple || !el._ripple.enabled) return;
|
||
const ripples = el.getElementsByClassName('v-ripple__animation');
|
||
if (ripples.length === 0) return;
|
||
const animation = ripples[ripples.length - 1];
|
||
if (animation.dataset.isHiding) return;else animation.dataset.isHiding = 'true';
|
||
const diff = performance.now() - Number(animation.dataset.activated);
|
||
const delay = Math.max(250 - diff, 0);
|
||
setTimeout(() => {
|
||
animation.classList.remove('v-ripple__animation--in');
|
||
animation.classList.add('v-ripple__animation--out');
|
||
opacity(animation, 0);
|
||
setTimeout(() => {
|
||
const ripples = el.getElementsByClassName('v-ripple__animation');
|
||
|
||
if (ripples.length === 1 && el.dataset.previousPosition) {
|
||
el.style.position = el.dataset.previousPosition;
|
||
delete el.dataset.previousPosition;
|
||
}
|
||
|
||
animation.parentNode && el.removeChild(animation.parentNode);
|
||
}, 300);
|
||
}, delay);
|
||
}
|
||
|
||
};
|
||
|
||
function isRippleEnabled(value) {
|
||
return typeof value === 'undefined' || !!value;
|
||
}
|
||
|
||
function rippleShow(e) {
|
||
const value = {};
|
||
const element = e.currentTarget;
|
||
if (!element || !element._ripple || element._ripple.touched) return;
|
||
|
||
if (isTouchEvent(e)) {
|
||
element._ripple.touched = true;
|
||
element._ripple.isTouch = true;
|
||
} else {
|
||
// It's possible for touch events to fire
|
||
// as mouse events on Android/iOS, this
|
||
// will skip the event call if it has
|
||
// already been registered as touch
|
||
if (element._ripple.isTouch) return;
|
||
}
|
||
|
||
value.center = element._ripple.centered || isKeyboardEvent(e);
|
||
|
||
if (element._ripple.class) {
|
||
value.class = element._ripple.class;
|
||
}
|
||
|
||
if (isTouchEvent(e)) {
|
||
// already queued that shows or hides the ripple
|
||
if (element._ripple.showTimerCommit) return;
|
||
|
||
element._ripple.showTimerCommit = () => {
|
||
ripples.show(e, element, value);
|
||
};
|
||
|
||
element._ripple.showTimer = window.setTimeout(() => {
|
||
if (element && element._ripple && element._ripple.showTimerCommit) {
|
||
element._ripple.showTimerCommit();
|
||
|
||
element._ripple.showTimerCommit = null;
|
||
}
|
||
}, DELAY_RIPPLE);
|
||
} else {
|
||
ripples.show(e, element, value);
|
||
}
|
||
}
|
||
|
||
function rippleHide(e) {
|
||
const element = e.currentTarget;
|
||
if (!element || !element._ripple) return;
|
||
window.clearTimeout(element._ripple.showTimer); // The touch interaction occurs before the show timer is triggered.
|
||
// We still want to show ripple effect.
|
||
|
||
if (e.type === 'touchend' && element._ripple.showTimerCommit) {
|
||
element._ripple.showTimerCommit();
|
||
|
||
element._ripple.showTimerCommit = null; // re-queue ripple hiding
|
||
|
||
element._ripple.showTimer = setTimeout(() => {
|
||
rippleHide(e);
|
||
});
|
||
return;
|
||
}
|
||
|
||
window.setTimeout(() => {
|
||
if (element._ripple) {
|
||
element._ripple.touched = false;
|
||
}
|
||
});
|
||
ripples.hide(element);
|
||
}
|
||
|
||
function rippleCancelShow(e) {
|
||
const element = e.currentTarget;
|
||
if (!element || !element._ripple) return;
|
||
|
||
if (element._ripple.showTimerCommit) {
|
||
element._ripple.showTimerCommit = null;
|
||
}
|
||
|
||
window.clearTimeout(element._ripple.showTimer);
|
||
}
|
||
|
||
let keyboardRipple = false;
|
||
|
||
function keyboardRippleShow(e) {
|
||
if (!keyboardRipple && (e.keyCode === helpers["l" /* keyCodes */].enter || e.keyCode === helpers["l" /* keyCodes */].space)) {
|
||
keyboardRipple = true;
|
||
rippleShow(e);
|
||
}
|
||
}
|
||
|
||
function keyboardRippleHide(e) {
|
||
keyboardRipple = false;
|
||
rippleHide(e);
|
||
}
|
||
|
||
function updateRipple(el, binding, wasEnabled) {
|
||
const enabled = isRippleEnabled(binding.value);
|
||
|
||
if (!enabled) {
|
||
ripples.hide(el);
|
||
}
|
||
|
||
el._ripple = el._ripple || {};
|
||
el._ripple.enabled = enabled;
|
||
const value = binding.value || {};
|
||
|
||
if (value.center) {
|
||
el._ripple.centered = true;
|
||
}
|
||
|
||
if (value.class) {
|
||
el._ripple.class = binding.value.class;
|
||
}
|
||
|
||
if (value.circle) {
|
||
el._ripple.circle = value.circle;
|
||
}
|
||
|
||
if (enabled && !wasEnabled) {
|
||
el.addEventListener('touchstart', rippleShow, {
|
||
passive: true
|
||
});
|
||
el.addEventListener('touchend', rippleHide, {
|
||
passive: true
|
||
});
|
||
el.addEventListener('touchmove', rippleCancelShow, {
|
||
passive: true
|
||
});
|
||
el.addEventListener('touchcancel', rippleHide);
|
||
el.addEventListener('mousedown', rippleShow);
|
||
el.addEventListener('mouseup', rippleHide);
|
||
el.addEventListener('mouseleave', rippleHide);
|
||
el.addEventListener('keydown', keyboardRippleShow);
|
||
el.addEventListener('keyup', keyboardRippleHide); // Anchor tags can be dragged, causes other hides to fail - #1537
|
||
|
||
el.addEventListener('dragstart', rippleHide, {
|
||
passive: true
|
||
});
|
||
} else if (!enabled && wasEnabled) {
|
||
removeListeners(el);
|
||
}
|
||
}
|
||
|
||
function removeListeners(el) {
|
||
el.removeEventListener('mousedown', rippleShow);
|
||
el.removeEventListener('touchstart', rippleShow);
|
||
el.removeEventListener('touchend', rippleHide);
|
||
el.removeEventListener('touchmove', rippleCancelShow);
|
||
el.removeEventListener('touchcancel', rippleHide);
|
||
el.removeEventListener('mouseup', rippleHide);
|
||
el.removeEventListener('mouseleave', rippleHide);
|
||
el.removeEventListener('keydown', keyboardRippleShow);
|
||
el.removeEventListener('keyup', keyboardRippleHide);
|
||
el.removeEventListener('dragstart', rippleHide);
|
||
}
|
||
|
||
function directive(el, binding, node) {
|
||
updateRipple(el, binding, false);
|
||
|
||
if (false) {}
|
||
}
|
||
|
||
function unbind(el) {
|
||
delete el._ripple;
|
||
removeListeners(el);
|
||
}
|
||
|
||
function update(el, binding) {
|
||
if (binding.value === binding.oldValue) {
|
||
return;
|
||
}
|
||
|
||
const wasEnabled = isRippleEnabled(binding.oldValue);
|
||
updateRipple(el, binding, wasEnabled);
|
||
}
|
||
|
||
const Ripple = {
|
||
bind: directive,
|
||
unbind,
|
||
update
|
||
};
|
||
/* harmony default export */ var ripple = (Ripple);
|
||
// CONCATENATED MODULE: ./node_modules/vuetify/lib/mixins/routable/index.js
|
||
// Directives
|
||
|
||
// Utilities
|
||
|
||
|
||
/* harmony default export */ var routable = (external_vue_default.a.extend({
|
||
name: 'routable',
|
||
directives: {
|
||
Ripple: ripple
|
||
},
|
||
props: {
|
||
activeClass: String,
|
||
append: Boolean,
|
||
disabled: Boolean,
|
||
exact: {
|
||
type: Boolean,
|
||
default: undefined
|
||
},
|
||
exactActiveClass: String,
|
||
link: Boolean,
|
||
href: [String, Object],
|
||
to: [String, Object],
|
||
nuxt: Boolean,
|
||
replace: Boolean,
|
||
ripple: {
|
||
type: [Boolean, Object],
|
||
default: null
|
||
},
|
||
tag: String,
|
||
target: String
|
||
},
|
||
data: () => ({
|
||
isActive: false,
|
||
proxyClass: ''
|
||
}),
|
||
computed: {
|
||
classes() {
|
||
const classes = {};
|
||
if (this.to) return classes;
|
||
if (this.activeClass) classes[this.activeClass] = this.isActive;
|
||
if (this.proxyClass) classes[this.proxyClass] = this.isActive;
|
||
return classes;
|
||
},
|
||
|
||
computedRipple() {
|
||
return this.ripple != null ? this.ripple : !this.disabled && this.isClickable;
|
||
},
|
||
|
||
isClickable() {
|
||
if (this.disabled) return false;
|
||
return Boolean(this.isLink || this.$listeners.click || this.$listeners['!click'] || this.$attrs.tabindex);
|
||
},
|
||
|
||
isLink() {
|
||
return this.to || this.href || this.link;
|
||
},
|
||
|
||
styles: () => ({})
|
||
},
|
||
watch: {
|
||
$route: 'onRouteChange'
|
||
},
|
||
methods: {
|
||
click(e) {
|
||
this.$emit('click', e);
|
||
},
|
||
|
||
generateRouteLink() {
|
||
let exact = this.exact;
|
||
let tag;
|
||
const data = {
|
||
attrs: {
|
||
tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined
|
||
},
|
||
class: this.classes,
|
||
style: this.styles,
|
||
props: {},
|
||
directives: [{
|
||
name: 'ripple',
|
||
value: this.computedRipple
|
||
}],
|
||
[this.to ? 'nativeOn' : 'on']: { ...this.$listeners,
|
||
click: this.click
|
||
},
|
||
ref: 'link'
|
||
};
|
||
|
||
if (typeof this.exact === 'undefined') {
|
||
exact = this.to === '/' || this.to === Object(this.to) && this.to.path === '/';
|
||
}
|
||
|
||
if (this.to) {
|
||
// Add a special activeClass hook
|
||
// for component level styles
|
||
let activeClass = this.activeClass;
|
||
let exactActiveClass = this.exactActiveClass || activeClass;
|
||
|
||
if (this.proxyClass) {
|
||
activeClass = `${activeClass} ${this.proxyClass}`.trim();
|
||
exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim();
|
||
}
|
||
|
||
tag = this.nuxt ? 'nuxt-link' : 'router-link';
|
||
Object.assign(data.props, {
|
||
to: this.to,
|
||
exact,
|
||
activeClass,
|
||
exactActiveClass,
|
||
append: this.append,
|
||
replace: this.replace
|
||
});
|
||
} else {
|
||
tag = this.href && 'a' || this.tag || 'div';
|
||
if (tag === 'a' && this.href) data.attrs.href = this.href;
|
||
}
|
||
|
||
if (this.target) data.attrs.target = this.target;
|
||
return {
|
||
tag,
|
||
data
|
||
};
|
||
},
|
||
|
||
onRouteChange() {
|
||
if (!this.to || !this.$refs.link || !this.$route) return;
|
||
const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim();
|
||
const path = `_vnode.data.class.${activeClass}`;
|
||
this.$nextTick(() => {
|
||
/* istanbul ignore else */
|
||
if (Object(helpers["i" /* getObjectValueByPath */])(this.$refs.link, path)) {
|
||
this.toggle();
|
||
}
|
||
});
|
||
},
|
||
|
||
toggle: () => {}
|
||
}
|
||
}));
|
||
// CONCATENATED MODULE: ./node_modules/vuetify/lib/mixins/sizeable/index.js
|
||
|
||
/* harmony default export */ var sizeable = (external_vue_default.a.extend({
|
||
name: 'sizeable',
|
||
props: {
|
||
large: Boolean,
|
||
small: Boolean,
|
||
xLarge: Boolean,
|
||
xSmall: Boolean
|
||
},
|
||
computed: {
|
||
medium() {
|
||
return Boolean(!this.xSmall && !this.small && !this.large && !this.xLarge);
|
||
},
|
||
|
||
sizeableClasses() {
|
||
return {
|
||
'v-size--x-small': this.xSmall,
|
||
'v-size--small': this.small,
|
||
'v-size--default': this.medium,
|
||
'v-size--large': this.large,
|
||
'v-size--x-large': this.xLarge
|
||
};
|
||
}
|
||
|
||
}
|
||
}));
|
||
// EXTERNAL MODULE: ./node_modules/vuetify/lib/util/mixins.js
|
||
var mixins = __webpack_require__(7);
|
||
|
||
// CONCATENATED MODULE: ./node_modules/vuetify/lib/components/VBtn/VBtn.js
|
||
// Styles
|
||
// Extensions
|
||
|
||
// Components
|
||
|
||
// Mixins
|
||
|
||
|
||
|
||
|
||
|
||
// Utilities
|
||
|
||
|
||
|
||
const baseMixins = Object(mixins["a" /* default */])(components_VSheet, routable, positionable["a" /* default */], sizeable, factory('btnToggle'), toggleable_factory('inputValue')
|
||
/* @vue/component */
|
||
);
|
||
/* harmony default export */ var VBtn_VBtn = (baseMixins.extend().extend({
|
||
name: 'v-btn',
|
||
props: {
|
||
activeClass: {
|
||
type: String,
|
||
|
||
default() {
|
||
if (!this.btnToggle) return '';
|
||
return this.btnToggle.activeClass;
|
||
}
|
||
|
||
},
|
||
block: Boolean,
|
||
depressed: Boolean,
|
||
fab: Boolean,
|
||
icon: Boolean,
|
||
loading: Boolean,
|
||
outlined: Boolean,
|
||
retainFocusOnClick: Boolean,
|
||
rounded: Boolean,
|
||
tag: {
|
||
type: String,
|
||
default: 'button'
|
||
},
|
||
text: Boolean,
|
||
tile: Boolean,
|
||
type: {
|
||
type: String,
|
||
default: 'button'
|
||
},
|
||
value: null
|
||
},
|
||
data: () => ({
|
||
proxyClass: 'v-btn--active'
|
||
}),
|
||
computed: {
|
||
classes() {
|
||
return {
|
||
'v-btn': true,
|
||
...routable.options.computed.classes.call(this),
|
||
'v-btn--absolute': this.absolute,
|
||
'v-btn--block': this.block,
|
||
'v-btn--bottom': this.bottom,
|
||
'v-btn--contained': this.contained,
|
||
'v-btn--depressed': this.depressed || this.outlined,
|
||
'v-btn--disabled': this.disabled,
|
||
'v-btn--fab': this.fab,
|
||
'v-btn--fixed': this.fixed,
|
||
'v-btn--flat': this.isFlat,
|
||
'v-btn--icon': this.icon,
|
||
'v-btn--left': this.left,
|
||
'v-btn--loading': this.loading,
|
||
'v-btn--outlined': this.outlined,
|
||
'v-btn--right': this.right,
|
||
'v-btn--round': this.isRound,
|
||
'v-btn--rounded': this.rounded,
|
||
'v-btn--router': this.to,
|
||
'v-btn--text': this.text,
|
||
'v-btn--tile': this.tile,
|
||
'v-btn--top': this.top,
|
||
...this.themeClasses,
|
||
...this.groupClasses,
|
||
...this.elevationClasses,
|
||
...this.sizeableClasses
|
||
};
|
||
},
|
||
|
||
contained() {
|
||
return Boolean(!this.isFlat && !this.depressed && // Contained class only adds elevation
|
||
// is not needed if user provides value
|
||
!this.elevation);
|
||
},
|
||
|
||
computedRipple() {
|
||
const defaultRipple = this.icon || this.fab ? {
|
||
circle: true
|
||
} : true;
|
||
if (this.disabled) return false;else return this.ripple != null ? this.ripple : defaultRipple;
|
||
},
|
||
|
||
isFlat() {
|
||
return Boolean(this.icon || this.text || this.outlined);
|
||
},
|
||
|
||
isRound() {
|
||
return Boolean(this.icon || this.fab);
|
||
},
|
||
|
||
styles() {
|
||
return { ...this.measurableStyles
|
||
};
|
||
}
|
||
|
||
},
|
||
|
||
created() {
|
||
const breakingProps = [['flat', 'text'], ['outline', 'outlined'], ['round', 'rounded']];
|
||
/* istanbul ignore next */
|
||
|
||
breakingProps.forEach(([original, replacement]) => {
|
||
if (this.$attrs.hasOwnProperty(original)) Object(util_console["a" /* breaking */])(original, replacement, this);
|
||
});
|
||
},
|
||
|
||
methods: {
|
||
click(e) {
|
||
// TODO: Remove this in v3
|
||
!this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur();
|
||
this.$emit('click', e);
|
||
this.btnToggle && this.toggle();
|
||
},
|
||
|
||
genContent() {
|
||
return this.$createElement('span', {
|
||
staticClass: 'v-btn__content'
|
||
}, this.$slots.default);
|
||
},
|
||
|
||
genLoader() {
|
||
return this.$createElement('span', {
|
||
class: 'v-btn__loader'
|
||
}, this.$slots.loader || [this.$createElement(components_VProgressCircular, {
|
||
props: {
|
||
indeterminate: true,
|
||
size: 23,
|
||
width: 2
|
||
}
|
||
})]);
|
||
}
|
||
|
||
},
|
||
|
||
render(h) {
|
||
const children = [this.genContent(), this.loading && this.genLoader()];
|
||
const setColor = !this.isFlat ? this.setBackgroundColor : this.setTextColor;
|
||
const {
|
||
tag,
|
||
data
|
||
} = this.generateRouteLink();
|
||
|
||
if (tag === 'button') {
|
||
data.attrs.type = this.type;
|
||
data.attrs.disabled = this.disabled;
|
||
}
|
||
|
||
data.attrs.value = ['string', 'number'].includes(typeof this.value) ? this.value : JSON.stringify(this.value);
|
||
return h(tag, this.disabled ? data : setColor(this.color, data), children);
|
||
}
|
||
|
||
}));
|
||
// EXTERNAL MODULE: ./node_modules/vuetify/src/components/VCard/VCard.sass
|
||
var VCard = __webpack_require__(67);
|
||
|
||
// EXTERNAL MODULE: ./node_modules/vuetify/src/components/VProgressLinear/VProgressLinear.sass
|
||
var VProgressLinear = __webpack_require__(69);
|
||
|
||
// EXTERNAL MODULE: ./node_modules/vuetify/lib/util/mergeData.js
|
||
var mergeData = __webpack_require__(21);
|
||
|
||
// CONCATENATED MODULE: ./node_modules/vuetify/lib/components/transitions/createTransition.js
|
||
|
||
|
||
function mergeTransitions(dest = [], ...transitions) {
|
||
/* eslint-disable-next-line no-array-constructor */
|
||
return Array().concat(dest, ...transitions);
|
||
}
|
||
|
||
function createSimpleTransition(name, origin = 'top center 0', mode) {
|
||
return {
|
||
name,
|
||
functional: true,
|
||
props: {
|
||
group: {
|
||
type: Boolean,
|
||
default: false
|
||
},
|
||
hideOnLeave: {
|
||
type: Boolean,
|
||
default: false
|
||
},
|
||
leaveAbsolute: {
|
||
type: Boolean,
|
||
default: false
|
||
},
|
||
mode: {
|
||
type: String,
|
||
default: mode
|
||
},
|
||
origin: {
|
||
type: String,
|
||
default: origin
|
||
}
|
||
},
|
||
|
||
render(h, context) {
|
||
const tag = `transition${context.props.group ? '-group' : ''}`;
|
||
const data = {
|
||
props: {
|
||
name,
|
||
mode: context.props.mode
|
||
},
|
||
on: {
|
||
beforeEnter(el) {
|
||
el.style.transformOrigin = context.props.origin;
|
||
el.style.webkitTransformOrigin = context.props.origin;
|
||
}
|
||
|
||
}
|
||
};
|
||
|
||
if (context.props.leaveAbsolute) {
|
||
data.on.leave = mergeTransitions(data.on.leave, el => el.style.position = 'absolute');
|
||
}
|
||
|
||
if (context.props.hideOnLeave) {
|
||
data.on.leave = mergeTransitions(data.on.leave, el => el.style.display = 'none');
|
||
}
|
||
|
||
return h(tag, Object(mergeData["a" /* default */])(context.data, data), context.children);
|
||
}
|
||
|
||
};
|
||
}
|
||
function createJavascriptTransition(name, functions, mode = 'in-out') {
|
||
return {
|
||
name,
|
||
functional: true,
|
||
props: {
|
||
mode: {
|
||
type: String,
|
||
default: mode
|
||
}
|
||
},
|
||
|
||
render(h, context) {
|
||
return h('transition', Object(mergeData["a" /* default */])(context.data, {
|
||
props: {
|
||
name
|
||
},
|
||
on: functions
|
||
}), context.children);
|
||
}
|
||
|
||
};
|
||
}
|
||
// CONCATENATED MODULE: ./node_modules/vuetify/lib/components/transitions/expand-transition.js
|
||
|
||
/* harmony default export */ var expand_transition = (function (expandedParentClass = '', x = false) {
|
||
const sizeProperty = x ? 'width' : 'height';
|
||
const offsetProperty = `offset${Object(helpers["q" /* upperFirst */])(sizeProperty)}`;
|
||
return {
|
||
beforeEnter(el) {
|
||
el._parent = el.parentNode;
|
||
el._initialStyle = {
|
||
transition: el.style.transition,
|
||
visibility: el.style.visibility,
|
||
overflow: el.style.overflow,
|
||
[sizeProperty]: el.style[sizeProperty]
|
||
};
|
||
},
|
||
|
||
enter(el) {
|
||
const initialStyle = el._initialStyle;
|
||
const offset = `${el[offsetProperty]}px`;
|
||
el.style.setProperty('transition', 'none', 'important');
|
||
el.style.visibility = 'hidden';
|
||
el.style.visibility = initialStyle.visibility;
|
||
el.style.overflow = 'hidden';
|
||
el.style[sizeProperty] = '0';
|
||
void el.offsetHeight; // force reflow
|
||
|
||
el.style.transition = initialStyle.transition;
|
||
|
||
if (expandedParentClass && el._parent) {
|
||
el._parent.classList.add(expandedParentClass);
|
||
}
|
||
|
||
requestAnimationFrame(() => {
|
||
el.style[sizeProperty] = offset;
|
||
});
|
||
},
|
||
|
||
afterEnter: resetStyles,
|
||
enterCancelled: resetStyles,
|
||
|
||
leave(el) {
|
||
el._initialStyle = {
|
||
transition: '',
|
||
visibility: '',
|
||
overflow: el.style.overflow,
|
||
[sizeProperty]: el.style[sizeProperty]
|
||
};
|
||
el.style.overflow = 'hidden';
|
||
el.style[sizeProperty] = `${el[offsetProperty]}px`;
|
||
void el.offsetHeight; // force reflow
|
||
|
||
requestAnimationFrame(() => el.style[sizeProperty] = '0');
|
||
},
|
||
|
||
afterLeave,
|
||
leaveCancelled: afterLeave
|
||
};
|
||
|
||
function afterLeave(el) {
|
||
if (expandedParentClass && el._parent) {
|
||
el._parent.classList.remove(expandedParentClass);
|
||
}
|
||
|
||
resetStyles(el);
|
||
}
|
||
|
||
function resetStyles(el) {
|
||
const size = el._initialStyle[sizeProperty];
|
||
el.style.overflow = el._initialStyle.overflow;
|
||
if (size != null) el.style[sizeProperty] = size;
|
||
delete el._initialStyle;
|
||
}
|
||
});
|
||
// CONCATENATED MODULE: ./node_modules/vuetify/lib/components/transitions/index.js
|
||
|
||
// Component specific transitions
|
||
|
||
const VCarouselTransition = createSimpleTransition('carousel-transition');
|
||
const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition');
|
||
const VTabTransition = createSimpleTransition('tab-transition');
|
||
const VTabReverseTransition = createSimpleTransition('tab-reverse-transition');
|
||
const VMenuTransition = createSimpleTransition('menu-transition');
|
||
const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in'); // Generic transitions
|
||
|
||
const VDialogTransition = createSimpleTransition('dialog-transition');
|
||
const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition');
|
||
const VFadeTransition = createSimpleTransition('fade-transition');
|
||
const VScaleTransition = createSimpleTransition('scale-transition');
|
||
const VScrollXTransition = createSimpleTransition('scroll-x-transition');
|
||
const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition');
|
||
const VScrollYTransition = createSimpleTransition('scroll-y-transition');
|
||
const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition');
|
||
const VSlideXTransition = createSimpleTransition('slide-x-transition');
|
||
const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition');
|
||
const VSlideYTransition = createSimpleTransition('slide-y-transition');
|
||
const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition'); // Javascript transitions
|
||
|
||
const VExpandTransition = createJavascriptTransition('expand-transition', expand_transition());
|
||
const VExpandXTransition = createJavascriptTransition('expand-x-transition', expand_transition('', true));
|
||
/* harmony default export */ var transitions = ({
|
||
$_vuetify_subcomponents: {
|
||
VCarouselTransition,
|
||
VCarouselReverseTransition,
|
||
VDialogTransition,
|
||
VDialogBottomTransition,
|
||
VFabTransition,
|
||
VFadeTransition,
|
||
VMenuTransition,
|
||
VScaleTransition,
|
||
VScrollXTransition,
|
||
VScrollXReverseTransition,
|
||
VScrollYTransition,
|
||
VScrollYReverseTransition,
|
||
VSlideXTransition,
|
||
VSlideXReverseTransition,
|
||
VSlideYTransition,
|
||
VSlideYReverseTransition,
|
||
VTabReverseTransition,
|
||
VTabTransition,
|
||
VExpandTransition,
|
||
VExpandXTransition
|
||
}
|
||
});
|
||
// CONCATENATED MODULE: ./node_modules/vuetify/lib/mixins/proxyable/index.js
|
||
|
||
function proxyable_factory(prop = 'value', event = 'change') {
|
||
return external_vue_default.a.extend({
|
||
name: 'proxyable',
|
||
model: {
|
||
prop,
|
||
event
|
||
},
|
||
props: {
|
||
[prop]: {
|
||
required: false
|
||
}
|
||
},
|
||
|
||
data() {
|
||
return {
|
||
internalLazyValue: this[prop]
|
||
};
|
||
},
|
||
|
||
computed: {
|
||
internalValue: {
|
||
get() {
|
||
return this.internalLazyValue;
|
||
},
|
||
|
||
set(val) {
|
||
if (val === this.internalLazyValue) return;
|
||
this.internalLazyValue = val;
|
||
this.$emit(event, val);
|
||
}
|
||
|
||
}
|
||
},
|
||
watch: {
|
||
[prop](val) {
|
||
this.internalLazyValue = val;
|
||
}
|
||
|
||
}
|
||
});
|
||
}
|
||
/* eslint-disable-next-line no-redeclare */
|
||
|
||
const Proxyable = proxyable_factory();
|
||
/* harmony default export */ var proxyable = (Proxyable);
|
||
// EXTERNAL MODULE: ./node_modules/vuetify/lib/mixins/themeable/index.js
|
||
var themeable = __webpack_require__(12);
|
||
|
||
// CONCATENATED MODULE: ./node_modules/vuetify/lib/components/VProgressLinear/VProgressLinear.js
|
||
// Components
|
||
|
||
// Mixins
|
||
|
||
|
||
|
||
|
||
// Utilities
|
||
|
||
|
||
|
||
const VProgressLinear_baseMixins = Object(mixins["a" /* default */])(colorable["a" /* default */], Object(positionable["b" /* factory */])(['absolute', 'fixed', 'top', 'bottom']), proxyable, themeable["a" /* default */]);
|
||
/* @vue/component */
|
||
|
||
/* harmony default export */ var VProgressLinear_VProgressLinear = (VProgressLinear_baseMixins.extend({
|
||
name: 'v-progress-linear',
|
||
props: {
|
||
active: {
|
||
type: Boolean,
|
||
default: true
|
||
},
|
||
backgroundColor: {
|
||
type: String,
|
||
default: null
|
||
},
|
||
backgroundOpacity: {
|
||
type: [Number, String],
|
||
default: null
|
||
},
|
||
bufferValue: {
|
||
type: [Number, String],
|
||
default: 100
|
||
},
|
||
color: {
|
||
type: String,
|
||
default: 'primary'
|
||
},
|
||
height: {
|
||
type: [Number, String],
|
||
default: 4
|
||
},
|
||
indeterminate: Boolean,
|
||
query: Boolean,
|
||
reverse: Boolean,
|
||
rounded: Boolean,
|
||
stream: Boolean,
|
||
striped: Boolean,
|
||
value: {
|
||
type: [Number, String],
|
||
default: 0
|
||
}
|
||
},
|
||
|
||
data() {
|
||
return {
|
||
internalLazyValue: this.value || 0
|
||
};
|
||
},
|
||
|
||
computed: {
|
||
__cachedBackground() {
|
||
return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {
|
||
staticClass: 'v-progress-linear__background',
|
||
style: this.backgroundStyle
|
||
}));
|
||
},
|
||
|
||
__cachedBar() {
|
||
return this.$createElement(this.computedTransition, [this.__cachedBarType]);
|
||
},
|
||
|
||
__cachedBarType() {
|
||
return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate;
|
||
},
|
||
|
||
__cachedBuffer() {
|
||
return this.$createElement('div', {
|
||
staticClass: 'v-progress-linear__buffer',
|
||
style: this.styles
|
||
});
|
||
},
|
||
|
||
__cachedDeterminate() {
|
||
return this.$createElement('div', this.setBackgroundColor(this.color, {
|
||
staticClass: `v-progress-linear__determinate`,
|
||
style: {
|
||
width: Object(helpers["d" /* convertToUnit */])(this.normalizedValue, '%')
|
||
}
|
||
}));
|
||
},
|
||
|
||
__cachedIndeterminate() {
|
||
return this.$createElement('div', {
|
||
staticClass: 'v-progress-linear__indeterminate',
|
||
class: {
|
||
'v-progress-linear__indeterminate--active': this.active
|
||
}
|
||
}, [this.genProgressBar('long'), this.genProgressBar('short')]);
|
||
},
|
||
|
||
__cachedStream() {
|
||
if (!this.stream) return null;
|
||
return this.$createElement('div', this.setTextColor(this.color, {
|
||
staticClass: 'v-progress-linear__stream',
|
||
style: {
|
||
width: Object(helpers["d" /* convertToUnit */])(100 - this.normalizedBuffer, '%')
|
||
}
|
||
}));
|
||
},
|
||
|
||
backgroundStyle() {
|
||
const backgroundOpacity = this.backgroundOpacity == null ? this.backgroundColor ? 1 : 0.3 : parseFloat(this.backgroundOpacity);
|
||
return {
|
||
opacity: backgroundOpacity,
|
||
[this.isReversed ? 'right' : 'left']: Object(helpers["d" /* convertToUnit */])(this.normalizedValue, '%'),
|
||
width: Object(helpers["d" /* convertToUnit */])(this.normalizedBuffer - this.normalizedValue, '%')
|
||
};
|
||
},
|
||
|
||
classes() {
|
||
return {
|
||
'v-progress-linear--absolute': this.absolute,
|
||
'v-progress-linear--fixed': this.fixed,
|
||
'v-progress-linear--query': this.query,
|
||
'v-progress-linear--reactive': this.reactive,
|
||
'v-progress-linear--reverse': this.isReversed,
|
||
'v-progress-linear--rounded': this.rounded,
|
||
'v-progress-linear--striped': this.striped,
|
||
...this.themeClasses
|
||
};
|
||
},
|
||
|
||
computedTransition() {
|
||
return this.indeterminate ? VFadeTransition : VSlideXTransition;
|
||
},
|
||
|
||
isReversed() {
|
||
return this.$vuetify.rtl !== this.reverse;
|
||
},
|
||
|
||
normalizedBuffer() {
|
||
return this.normalize(this.bufferValue);
|
||
},
|
||
|
||
normalizedValue() {
|
||
return this.normalize(this.internalLazyValue);
|
||
},
|
||
|
||
reactive() {
|
||
return Boolean(this.$listeners.change);
|
||
},
|
||
|
||
styles() {
|
||
const styles = {};
|
||
|
||
if (!this.active) {
|
||
styles.height = 0;
|
||
}
|
||
|
||
if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {
|
||
styles.width = Object(helpers["d" /* convertToUnit */])(this.normalizedBuffer, '%');
|
||
}
|
||
|
||
return styles;
|
||
}
|
||
|
||
},
|
||
methods: {
|
||
genContent() {
|
||
const slot = Object(helpers["j" /* getSlot */])(this, 'default', {
|
||
value: this.internalLazyValue
|
||
});
|
||
if (!slot) return null;
|
||
return this.$createElement('div', {
|
||
staticClass: 'v-progress-linear__content'
|
||
}, slot);
|
||
},
|
||
|
||
genListeners() {
|
||
const listeners = this.$listeners;
|
||
|
||
if (this.reactive) {
|
||
listeners.click = this.onClick;
|
||
}
|
||
|
||
return listeners;
|
||
},
|
||
|
||
genProgressBar(name) {
|
||
return this.$createElement('div', this.setBackgroundColor(this.color, {
|
||
staticClass: 'v-progress-linear__indeterminate',
|
||
class: {
|
||
[name]: true
|
||
}
|
||
}));
|
||
},
|
||
|
||
onClick(e) {
|
||
if (!this.reactive) return;
|
||
const {
|
||
width
|
||
} = this.$el.getBoundingClientRect();
|
||
this.internalValue = e.offsetX / width * 100;
|
||
},
|
||
|
||
normalize(value) {
|
||
if (value < 0) return 0;
|
||
if (value > 100) return 100;
|
||
return parseFloat(value);
|
||
}
|
||
|
||
},
|
||
|
||
render(h) {
|
||
const data = {
|
||
staticClass: 'v-progress-linear',
|
||
attrs: {
|
||
role: 'progressbar',
|
||
'aria-valuemin': 0,
|
||
'aria-valuemax': this.normalizedBuffer,
|
||
'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue
|
||
},
|
||
class: this.classes,
|
||
style: {
|
||
bottom: this.bottom ? 0 : undefined,
|
||
height: this.active ? Object(helpers["d" /* convertToUnit */])(this.height) : 0,
|
||
top: this.top ? 0 : undefined
|
||
},
|
||
on: this.genListeners()
|
||
};
|
||
return h('div', data, [this.__cachedStream, this.__cachedBackground, this.__cachedBuffer, this.__cachedBar, this.genContent()]);
|
||
}
|
||
|
||
}));
|
||
// CONCATENATED MODULE: ./node_modules/vuetify/lib/components/VProgressLinear/index.js
|
||
|
||
|
||
/* harmony default export */ var components_VProgressLinear = (VProgressLinear_VProgressLinear);
|
||
// CONCATENATED MODULE: ./node_modules/vuetify/lib/mixins/loadable/index.js
|
||
|
||
|
||
/**
|
||
* Loadable
|
||
*
|
||
* @mixin
|
||
*
|
||
* Used to add linear progress bar to components
|
||
* Can use a default bar with a specific color
|
||
* or designate a custom progress linear bar
|
||
*/
|
||
|
||
/* @vue/component */
|
||
|
||
/* harmony default export */ var loadable = (external_vue_default.a.extend().extend({
|
||
name: 'loadable',
|
||
props: {
|
||
loading: {
|
||
type: [Boolean, String],
|
||
default: false
|
||
},
|
||
loaderHeight: {
|
||
type: [Number, String],
|
||
default: 2
|
||
}
|
||
},
|
||
methods: {
|
||
genProgress() {
|
||
if (this.loading === false) return null;
|
||
return this.$slots.progress || this.$createElement(components_VProgressLinear, {
|
||
props: {
|
||
absolute: true,
|
||
color: this.loading === true || this.loading === '' ? this.color || 'primary' : this.loading,
|
||
height: this.loaderHeight,
|
||
indeterminate: true
|
||
}
|
||
});
|
||
}
|
||
|
||
}
|
||
}));
|
||
// CONCATENATED MODULE: ./node_modules/vuetify/lib/components/VCard/VCard.js
|
||
// Styles
|
||
// Extensions
|
||
|
||
// Mixins
|
||
|
||
|
||
// Helpers
|
||
|
||
|
||
/* @vue/component */
|
||
|
||
/* harmony default export */ var VCard_VCard = (Object(mixins["a" /* default */])(loadable, routable, components_VSheet).extend({
|
||
name: 'v-card',
|
||
props: {
|
||
flat: Boolean,
|
||
hover: Boolean,
|
||
img: String,
|
||
link: Boolean,
|
||
loaderHeight: {
|
||
type: [Number, String],
|
||
default: 4
|
||
},
|
||
raised: Boolean
|
||
},
|
||
computed: {
|
||
classes() {
|
||
return {
|
||
'v-card': true,
|
||
...routable.options.computed.classes.call(this),
|
||
'v-card--flat': this.flat,
|
||
'v-card--hover': this.hover,
|
||
'v-card--link': this.isClickable,
|
||
'v-card--loading': this.loading,
|
||
'v-card--disabled': this.disabled,
|
||
'v-card--raised': this.raised,
|
||
...components_VSheet.options.computed.classes.call(this)
|
||
};
|
||
},
|
||
|
||
styles() {
|
||
const style = { ...components_VSheet.options.computed.styles.call(this)
|
||
};
|
||
|
||
if (this.img) {
|
||
style.background = `url("${this.img}") center center / cover no-repeat`;
|
||
}
|
||
|
||
return style;
|
||
}
|
||
|
||
},
|
||
methods: {
|
||
genProgress() {
|
||
const render = loadable.options.methods.genProgress.call(this);
|
||
if (!render) return null;
|
||
return this.$createElement('div', {
|
||
staticClass: 'v-card__progress',
|
||
key: 'progress'
|
||
}, [render]);
|
||
}
|
||
|
||
},
|
||
|
||
render(h) {
|
||
const {
|
||
tag,
|
||
data
|
||
} = this.generateRouteLink();
|
||
data.style = this.styles;
|
||
|
||
if (this.isClickable) {
|
||
data.attrs = data.attrs || {};
|
||
data.attrs.tabindex = 0;
|
||
}
|
||
|
||
return h(tag, this.setBackgroundColor(this.color, data), [this.genProgress(), this.$slots.default]);
|
||
}
|
||
|
||
}));
|
||
// CONCATENATED MODULE: ./node_modules/vuetify/lib/components/VCard/index.js
|
||
|
||
|
||
const VCardActions = Object(helpers["e" /* createSimpleFunctional */])('v-card__actions');
|
||
const VCardSubtitle = Object(helpers["e" /* createSimpleFunctional */])('v-card__subtitle');
|
||
const VCardText = Object(helpers["e" /* createSimpleFunctional */])('v-card__text');
|
||
const VCardTitle = Object(helpers["e" /* createSimpleFunctional */])('v-card__title');
|
||
|
||
/* harmony default export */ var components_VCard = ({
|
||
$_vuetify_subcomponents: {
|
||
VCard: VCard_VCard,
|
||
VCardActions,
|
||
VCardSubtitle,
|
||
VCardText,
|
||
VCardTitle
|
||
}
|
||
});
|
||
// EXTERNAL MODULE: ./node_modules/vuetify/lib/components/VGrid/VContainer.js + 1 modules
|
||
var VContainer = __webpack_require__(57);
|
||
|
||
// EXTERNAL MODULE: ./node_modules/vuetify/lib/mixins/binds-attrs/index.js
|
||
var binds_attrs = __webpack_require__(20);
|
||
|
||
// CONCATENATED MODULE: ./node_modules/vuetify/lib/components/VForm/VForm.js
|
||
// Mixins
|
||
|
||
|
||
|
||
/* @vue/component */
|
||
|
||
/* harmony default export */ var VForm = (Object(mixins["a" /* default */])(binds_attrs["a" /* default */], provide('form')
|
||
/* @vue/component */
|
||
).extend({
|
||
name: 'v-form',
|
||
|
||
provide() {
|
||
return {
|
||
form: this
|
||
};
|
||
},
|
||
|
||
inheritAttrs: false,
|
||
props: {
|
||
disabled: Boolean,
|
||
lazyValidation: Boolean,
|
||
readonly: Boolean,
|
||
value: Boolean
|
||
},
|
||
data: () => ({
|
||
inputs: [],
|
||
watchers: [],
|
||
errorBag: {}
|
||
}),
|
||
watch: {
|
||
errorBag: {
|
||
handler(val) {
|
||
const errors = Object.values(val).includes(true);
|
||
this.$emit('input', !errors);
|
||
},
|
||
|
||
deep: true,
|
||
immediate: true
|
||
}
|
||
},
|
||
methods: {
|
||
watchInput(input) {
|
||
const watcher = input => {
|
||
return input.$watch('hasError', val => {
|
||
this.$set(this.errorBag, input._uid, val);
|
||
}, {
|
||
immediate: true
|
||
});
|
||
};
|
||
|
||
const watchers = {
|
||
_uid: input._uid,
|
||
valid: () => {},
|
||
shouldValidate: () => {}
|
||
};
|
||
|
||
if (this.lazyValidation) {
|
||
// Only start watching inputs if we need to
|
||
watchers.shouldValidate = input.$watch('shouldValidate', val => {
|
||
if (!val) return; // Only watch if we're not already doing it
|
||
|
||
if (this.errorBag.hasOwnProperty(input._uid)) return;
|
||
watchers.valid = watcher(input);
|
||
});
|
||
} else {
|
||
watchers.valid = watcher(input);
|
||
}
|
||
|
||
return watchers;
|
||
},
|
||
|
||
/** @public */
|
||
validate() {
|
||
return this.inputs.filter(input => !input.validate(true)).length === 0;
|
||
},
|
||
|
||
/** @public */
|
||
reset() {
|
||
this.inputs.forEach(input => input.reset());
|
||
this.resetErrorBag();
|
||
},
|
||
|
||
resetErrorBag() {
|
||
if (this.lazyValidation) {
|
||
// Account for timeout in validatable
|
||
setTimeout(() => {
|
||
this.errorBag = {};
|
||
}, 0);
|
||
}
|
||
},
|
||
|
||
/** @public */
|
||
resetValidation() {
|
||
this.inputs.forEach(input => input.resetValidation());
|
||
this.resetErrorBag();
|
||
},
|
||
|
||
register(input) {
|
||
this.inputs.push(input);
|
||
this.watchers.push(this.watchInput(input));
|
||
},
|
||
|
||
unregister(input) {
|
||
const found = this.inputs.find(i => i._uid === input._uid);
|
||
if (!found) return;
|
||
const unwatch = this.watchers.find(i => i._uid === found._uid);
|
||
|
||
if (unwatch) {
|
||
unwatch.valid();
|
||
unwatch.shouldValidate();
|
||
}
|
||
|
||
this.watchers = this.watchers.filter(i => i._uid !== found._uid);
|
||
this.inputs = this.inputs.filter(i => i._uid !== found._uid);
|
||
this.$delete(this.errorBag, found._uid);
|
||
}
|
||
|
||
},
|
||
|
||
render(h) {
|
||
return h('form', {
|
||
staticClass: 'v-form',
|
||
attrs: {
|
||
novalidate: true,
|
||
...this.attrs$
|
||
},
|
||
on: {
|
||
submit: e => this.$emit('submit', e)
|
||
}
|
||
}, this.$slots.default);
|
||
}
|
||
|
||
}));
|
||
// EXTERNAL MODULE: ./node_modules/vuetify/src/components/VTextField/VTextField.sass
|
||
var VTextField = __webpack_require__(71);
|
||
|
||
// EXTERNAL MODULE: ./node_modules/vuetify/src/components/VInput/VInput.sass
|
||
var VInput = __webpack_require__(73);
|
||
|
||
// EXTERNAL MODULE: ./node_modules/vuetify/src/components/VIcon/VIcon.sass
|
||
var VIcon = __webpack_require__(75);
|
||
|
||
// CONCATENATED MODULE: ./node_modules/vuetify/lib/components/VIcon/VIcon.js
|
||
// Mixins
|
||
|
||
|
||
|
||
|
||
// Util
|
||
|
||
// Types
|
||
|
||
|
||
|
||
var SIZE_MAP;
|
||
|
||
(function (SIZE_MAP) {
|
||
SIZE_MAP["xSmall"] = "12px";
|
||
SIZE_MAP["small"] = "16px";
|
||
SIZE_MAP["default"] = "24px";
|
||
SIZE_MAP["medium"] = "28px";
|
||
SIZE_MAP["large"] = "36px";
|
||
SIZE_MAP["xLarge"] = "40px";
|
||
})(SIZE_MAP || (SIZE_MAP = {}));
|
||
|
||
function isFontAwesome5(iconType) {
|
||
return ['fas', 'far', 'fal', 'fab', 'fad'].some(val => iconType.includes(val));
|
||
}
|
||
|
||
function isSvgPath(icon) {
|
||
return /^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\dz]$/i.test(icon) && icon.length > 4;
|
||
}
|
||
|
||
const VIcon_VIcon = Object(mixins["a" /* default */])(binds_attrs["a" /* default */], colorable["a" /* default */], sizeable, themeable["a" /* default */]
|
||
/* @vue/component */
|
||
).extend({
|
||
name: 'v-icon',
|
||
props: {
|
||
dense: Boolean,
|
||
disabled: Boolean,
|
||
left: Boolean,
|
||
right: Boolean,
|
||
size: [Number, String],
|
||
tag: {
|
||
type: String,
|
||
required: false,
|
||
default: 'i'
|
||
}
|
||
},
|
||
computed: {
|
||
medium() {
|
||
return false;
|
||
},
|
||
|
||
hasClickListener() {
|
||
return Boolean(this.listeners$.click || this.listeners$['!click']);
|
||
}
|
||
|
||
},
|
||
methods: {
|
||
getIcon() {
|
||
let iconName = '';
|
||
if (this.$slots.default) iconName = this.$slots.default[0].text.trim();
|
||
return Object(helpers["p" /* remapInternalIcon */])(this, iconName);
|
||
},
|
||
|
||
getSize() {
|
||
const sizes = {
|
||
xSmall: this.xSmall,
|
||
small: this.small,
|
||
medium: this.medium,
|
||
large: this.large,
|
||
xLarge: this.xLarge
|
||
};
|
||
const explicitSize = Object(helpers["m" /* keys */])(sizes).find(key => sizes[key]);
|
||
return explicitSize && SIZE_MAP[explicitSize] || Object(helpers["d" /* convertToUnit */])(this.size);
|
||
},
|
||
|
||
// Component data for both font and svg icon.
|
||
getDefaultData() {
|
||
const data = {
|
||
staticClass: 'v-icon notranslate',
|
||
class: {
|
||
'v-icon--disabled': this.disabled,
|
||
'v-icon--left': this.left,
|
||
'v-icon--link': this.hasClickListener,
|
||
'v-icon--right': this.right,
|
||
'v-icon--dense': this.dense
|
||
},
|
||
attrs: {
|
||
'aria-hidden': !this.hasClickListener,
|
||
disabled: this.hasClickListener && this.disabled,
|
||
type: this.hasClickListener ? 'button' : undefined,
|
||
...this.attrs$
|
||
},
|
||
on: this.listeners$
|
||
};
|
||
return data;
|
||
},
|
||
|
||
applyColors(data) {
|
||
data.class = { ...data.class,
|
||
...this.themeClasses
|
||
};
|
||
this.setTextColor(this.color, data);
|
||
},
|
||
|
||
renderFontIcon(icon, h) {
|
||
const newChildren = [];
|
||
const data = this.getDefaultData();
|
||
let iconType = 'material-icons'; // Material Icon delimiter is _
|
||
// https://material.io/icons/
|
||
|
||
const delimiterIndex = icon.indexOf('-');
|
||
const isMaterialIcon = delimiterIndex <= -1;
|
||
|
||
if (isMaterialIcon) {
|
||
// Material icon uses ligatures.
|
||
newChildren.push(icon);
|
||
} else {
|
||
iconType = icon.slice(0, delimiterIndex);
|
||
if (isFontAwesome5(iconType)) iconType = '';
|
||
}
|
||
|
||
data.class[iconType] = true;
|
||
data.class[icon] = !isMaterialIcon;
|
||
const fontSize = this.getSize();
|
||
if (fontSize) data.style = {
|
||
fontSize
|
||
};
|
||
this.applyColors(data);
|
||
return h(this.hasClickListener ? 'button' : this.tag, data, newChildren);
|
||
},
|
||
|
||
renderSvgIcon(icon, h) {
|
||
const fontSize = this.getSize();
|
||
const wrapperData = { ...this.getDefaultData(),
|
||
style: fontSize ? {
|
||
fontSize,
|
||
height: fontSize,
|
||
width: fontSize
|
||
} : undefined
|
||
};
|
||
wrapperData.class['v-icon--svg'] = true;
|
||
this.applyColors(wrapperData);
|
||
const svgData = {
|
||
attrs: {
|
||
xmlns: 'http://www.w3.org/2000/svg',
|
||
viewBox: '0 0 24 24',
|
||
height: fontSize || '24',
|
||
width: fontSize || '24',
|
||
role: 'img',
|
||
'aria-hidden': true
|
||
}
|
||
};
|
||
return h(this.hasClickListener ? 'button' : 'span', wrapperData, [h('svg', svgData, [h('path', {
|
||
attrs: {
|
||
d: icon
|
||
}
|
||
})])]);
|
||
},
|
||
|
||
renderSvgIconComponent(icon, h) {
|
||
const data = this.getDefaultData();
|
||
data.class['v-icon--is-component'] = true;
|
||
const size = this.getSize();
|
||
|
||
if (size) {
|
||
data.style = {
|
||
fontSize: size,
|
||
height: size,
|
||
width: size
|
||
};
|
||
}
|
||
|
||
this.applyColors(data);
|
||
const component = icon.component;
|
||
data.props = icon.props;
|
||
data.nativeOn = data.on;
|
||
return h(component, data);
|
||
}
|
||
|
||
},
|
||
|
||
render(h) {
|
||
const icon = this.getIcon();
|
||
|
||
if (typeof icon === 'string') {
|
||
if (isSvgPath(icon)) {
|
||
return this.renderSvgIcon(icon, h);
|
||
}
|
||
|
||
return this.renderFontIcon(icon, h);
|
||
}
|
||
|
||
return this.renderSvgIconComponent(icon, h);
|
||
}
|
||
|
||
});
|
||
/* harmony default export */ var components_VIcon_VIcon = (external_vue_default.a.extend({
|
||
name: 'v-icon',
|
||
$_wrapperFor: VIcon_VIcon,
|
||
functional: true,
|
||
|
||
render(h, {
|
||
data,
|
||
children
|
||
}) {
|
||
let iconName = ''; // Support usage of v-text and v-html
|
||
|
||
if (data.domProps) {
|
||
iconName = data.domProps.textContent || data.domProps.innerHTML || iconName; // Remove nodes so it doesn't
|
||
// overwrite our changes
|
||
|
||
delete data.domProps.textContent;
|
||
delete data.domProps.innerHTML;
|
||
}
|
||
|
||
return h(VIcon_VIcon, data, iconName ? [iconName] : children);
|
||
}
|
||
|
||
}));
|
||
// CONCATENATED MODULE: ./node_modules/vuetify/lib/components/VIcon/index.js
|
||
|
||
|
||
/* harmony default export */ var components_VIcon = (components_VIcon_VIcon);
|
||
// EXTERNAL MODULE: ./node_modules/vuetify/src/components/VLabel/VLabel.sass
|
||
var VLabel = __webpack_require__(77);
|
||
|
||
// CONCATENATED MODULE: ./node_modules/vuetify/lib/components/VLabel/VLabel.js
|
||
// Styles
|
||
// Mixins
|
||
|
||
|
||
|
||
// Helpers
|
||
|
||
|
||
/* @vue/component */
|
||
|
||
/* harmony default export */ var VLabel_VLabel = (Object(mixins["a" /* default */])(themeable["a" /* default */]).extend({
|
||
name: 'v-label',
|
||
functional: true,
|
||
props: {
|
||
absolute: Boolean,
|
||
color: {
|
||
type: String,
|
||
default: 'primary'
|
||
},
|
||
disabled: Boolean,
|
||
focused: Boolean,
|
||
for: String,
|
||
left: {
|
||
type: [Number, String],
|
||
default: 0
|
||
},
|
||
right: {
|
||
type: [Number, String],
|
||
default: 'auto'
|
||
},
|
||
value: Boolean
|
||
},
|
||
|
||
render(h, ctx) {
|
||
const {
|
||
children,
|
||
listeners,
|
||
props
|
||
} = ctx;
|
||
const data = {
|
||
staticClass: 'v-label',
|
||
class: {
|
||
'v-label--active': props.value,
|
||
'v-label--is-disabled': props.disabled,
|
||
...Object(themeable["b" /* functionalThemeClasses */])(ctx)
|
||
},
|
||
attrs: {
|
||
for: props.for,
|
||
'aria-hidden': !props.for
|
||
},
|
||
on: listeners,
|
||
style: {
|
||
left: Object(helpers["d" /* convertToUnit */])(props.left),
|
||
right: Object(helpers["d" /* convertToUnit */])(props.right),
|
||
position: props.absolute ? 'absolute' : 'relative'
|
||
},
|
||
ref: 'label'
|
||
};
|
||
return h('label', colorable["a" /* default */].options.methods.setTextColor(props.focused && props.color, data), children);
|
||
}
|
||
|
||
}));
|
||
// CONCATENATED MODULE: ./node_modules/vuetify/lib/components/VLabel/index.js
|
||
|
||
|
||
/* harmony default export */ var components_VLabel = (VLabel_VLabel);
|
||
// EXTERNAL MODULE: ./node_modules/vuetify/src/components/VMessages/VMessages.sass
|
||
var VMessages = __webpack_require__(79);
|
||
|
||
// CONCATENATED MODULE: ./node_modules/vuetify/lib/components/VMessages/VMessages.js
|
||
// Styles
|
||
// Mixins
|
||
|
||
|
||
|
||
// Utilities
|
||
|
||
|
||
/* @vue/component */
|
||
|
||
/* harmony default export */ var VMessages_VMessages = (Object(mixins["a" /* default */])(colorable["a" /* default */], themeable["a" /* default */]).extend({
|
||
name: 'v-messages',
|
||
props: {
|
||
value: {
|
||
type: Array,
|
||
default: () => []
|
||
}
|
||
},
|
||
methods: {
|
||
genChildren() {
|
||
return this.$createElement('transition-group', {
|
||
staticClass: 'v-messages__wrapper',
|
||
attrs: {
|
||
name: 'message-transition',
|
||
tag: 'div'
|
||
}
|
||
}, this.value.map(this.genMessage));
|
||
},
|
||
|
||
genMessage(message, key) {
|
||
return this.$createElement('div', {
|
||
staticClass: 'v-messages__message',
|
||
key
|
||
}, Object(helpers["j" /* getSlot */])(this, 'default', {
|
||
message,
|
||
key
|
||
}) || [message]);
|
||
}
|
||
|
||
},
|
||
|
||
render(h) {
|
||
return h('div', this.setTextColor(this.color, {
|
||
staticClass: 'v-messages',
|
||
class: this.themeClasses
|
||
}), [this.genChildren()]);
|
||
}
|
||
|
||
}));
|
||
// CONCATENATED MODULE: ./node_modules/vuetify/lib/components/VMessages/index.js
|
||
|
||
|
||
/* harmony default export */ var components_VMessages = (VMessages_VMessages);
|
||
// CONCATENATED MODULE: ./node_modules/vuetify/lib/mixins/validatable/index.js
|
||
// Mixins
|
||
|
||
|
||
// Utilities
|
||
|
||
|
||
|
||
|
||
const validatable_baseMixins = Object(mixins["a" /* default */])(colorable["a" /* default */], inject('form'), themeable["a" /* default */]);
|
||
/* @vue/component */
|
||
|
||
/* harmony default export */ var validatable = (validatable_baseMixins.extend({
|
||
name: 'validatable',
|
||
props: {
|
||
disabled: Boolean,
|
||
error: Boolean,
|
||
errorCount: {
|
||
type: [Number, String],
|
||
default: 1
|
||
},
|
||
errorMessages: {
|
||
type: [String, Array],
|
||
default: () => []
|
||
},
|
||
messages: {
|
||
type: [String, Array],
|
||
default: () => []
|
||
},
|
||
readonly: Boolean,
|
||
rules: {
|
||
type: Array,
|
||
default: () => []
|
||
},
|
||
success: Boolean,
|
||
successMessages: {
|
||
type: [String, Array],
|
||
default: () => []
|
||
},
|
||
validateOnBlur: Boolean,
|
||
value: {
|
||
required: false
|
||
}
|
||
},
|
||
|
||
data() {
|
||
return {
|
||
errorBucket: [],
|
||
hasColor: false,
|
||
hasFocused: false,
|
||
hasInput: false,
|
||
isFocused: false,
|
||
isResetting: false,
|
||
lazyValue: this.value,
|
||
valid: false
|
||
};
|
||
},
|
||
|
||
computed: {
|
||
computedColor() {
|
||
if (this.isDisabled) return undefined;
|
||
if (this.color) return this.color; // It's assumed that if the input is on a
|
||
// dark background, the user will want to
|
||
// have a white color. If the entire app
|
||
// is setup to be dark, then they will
|
||
// like want to use their primary color
|
||
|
||
if (this.isDark && !this.appIsDark) return 'white';else return 'primary';
|
||
},
|
||
|
||
hasError() {
|
||
return this.internalErrorMessages.length > 0 || this.errorBucket.length > 0 || this.error;
|
||
},
|
||
|
||
// TODO: Add logic that allows the user to enable based
|
||
// upon a good validation
|
||
hasSuccess() {
|
||
return this.internalSuccessMessages.length > 0 || this.success;
|
||
},
|
||
|
||
externalError() {
|
||
return this.internalErrorMessages.length > 0 || this.error;
|
||
},
|
||
|
||
hasMessages() {
|
||
return this.validationTarget.length > 0;
|
||
},
|
||
|
||
hasState() {
|
||
if (this.isDisabled) return false;
|
||
return this.hasSuccess || this.shouldValidate && this.hasError;
|
||
},
|
||
|
||
internalErrorMessages() {
|
||
return this.genInternalMessages(this.errorMessages);
|
||
},
|
||
|
||
internalMessages() {
|
||
return this.genInternalMessages(this.messages);
|
||
},
|
||
|
||
internalSuccessMessages() {
|
||
return this.genInternalMessages(this.successMessages);
|
||
},
|
||
|
||
internalValue: {
|
||
get() {
|
||
return this.lazyValue;
|
||
},
|
||
|
||
set(val) {
|
||
this.lazyValue = val;
|
||
this.$emit('input', val);
|
||
}
|
||
|
||
},
|
||
|
||
isDisabled() {
|
||
return this.disabled || !!this.form && this.form.disabled;
|
||
},
|
||
|
||
isInteractive() {
|
||
return !this.isDisabled && !this.isReadonly;
|
||
},
|
||
|
||
isReadonly() {
|
||
return this.readonly || !!this.form && this.form.readonly;
|
||
},
|
||
|
||
shouldValidate() {
|
||
if (this.externalError) return true;
|
||
if (this.isResetting) return false;
|
||
return this.validateOnBlur ? this.hasFocused && !this.isFocused : this.hasInput || this.hasFocused;
|
||
},
|
||
|
||
validations() {
|
||
return this.validationTarget.slice(0, Number(this.errorCount));
|
||
},
|
||
|
||
validationState() {
|
||
if (this.isDisabled) return undefined;
|
||
if (this.hasError && this.shouldValidate) return 'error';
|
||
if (this.hasSuccess) return 'success';
|
||
if (this.hasColor) return this.computedColor;
|
||
return undefined;
|
||
},
|
||
|
||
validationTarget() {
|
||
if (this.internalErrorMessages.length > 0) {
|
||
return this.internalErrorMessages;
|
||
} else if (this.successMessages.length > 0) {
|
||
return this.internalSuccessMessages;
|
||
} else if (this.messages.length > 0) {
|
||
return this.internalMessages;
|
||
} else if (this.shouldValidate) {
|
||
return this.errorBucket;
|
||
} else return [];
|
||
}
|
||
|
||
},
|
||
watch: {
|
||
rules: {
|
||
handler(newVal, oldVal) {
|
||
if (Object(helpers["f" /* deepEqual */])(newVal, oldVal)) return;
|
||
this.validate();
|
||
},
|
||
|
||
deep: true
|
||
},
|
||
|
||
internalValue() {
|
||
// If it's the first time we're setting input,
|
||
// mark it with hasInput
|
||
this.hasInput = true;
|
||
this.validateOnBlur || this.$nextTick(this.validate);
|
||
},
|
||
|
||
isFocused(val) {
|
||
// Should not check validation
|
||
// if disabled
|
||
if (!val && !this.isDisabled) {
|
||
this.hasFocused = true;
|
||
this.validateOnBlur && this.$nextTick(this.validate);
|
||
}
|
||
},
|
||
|
||
isResetting() {
|
||
setTimeout(() => {
|
||
this.hasInput = false;
|
||
this.hasFocused = false;
|
||
this.isResetting = false;
|
||
this.validate();
|
||
}, 0);
|
||
},
|
||
|
||
hasError(val) {
|
||
if (this.shouldValidate) {
|
||
this.$emit('update:error', val);
|
||
}
|
||
},
|
||
|
||
value(val) {
|
||
this.lazyValue = val;
|
||
}
|
||
|
||
},
|
||
|
||
beforeMount() {
|
||
this.validate();
|
||
},
|
||
|
||
created() {
|
||
this.form && this.form.register(this);
|
||
},
|
||
|
||
beforeDestroy() {
|
||
this.form && this.form.unregister(this);
|
||
},
|
||
|
||
methods: {
|
||
genInternalMessages(messages) {
|
||
if (!messages) return [];else if (Array.isArray(messages)) return messages;else return [messages];
|
||
},
|
||
|
||
/** @public */
|
||
reset() {
|
||
this.isResetting = true;
|
||
this.internalValue = Array.isArray(this.internalValue) ? [] : undefined;
|
||
},
|
||
|
||
/** @public */
|
||
resetValidation() {
|
||
this.isResetting = true;
|
||
},
|
||
|
||
/** @public */
|
||
validate(force = false, value) {
|
||
const errorBucket = [];
|
||
value = value || this.internalValue;
|
||
if (force) this.hasInput = this.hasFocused = true;
|
||
|
||
for (let index = 0; index < this.rules.length; index++) {
|
||
const rule = this.rules[index];
|
||
const valid = typeof rule === 'function' ? rule(value) : rule;
|
||
|
||
if (valid === false || typeof valid === 'string') {
|
||
errorBucket.push(valid || '');
|
||
} else if (typeof valid !== 'boolean') {
|
||
Object(util_console["b" /* consoleError */])(`Rules should return a string or boolean, received '${typeof valid}' instead`, this);
|
||
}
|
||
}
|
||
|
||
this.errorBucket = errorBucket;
|
||
this.valid = errorBucket.length === 0;
|
||
return this.valid;
|
||
}
|
||
|
||
}
|
||
}));
|
||
// CONCATENATED MODULE: ./node_modules/vuetify/lib/components/VInput/VInput.js
|
||
// Styles
|
||
// Components
|
||
|
||
|
||
|
||
// Mixins
|
||
|
||
|
||
// Utilities
|
||
|
||
|
||
|
||
|
||
const VInput_baseMixins = Object(mixins["a" /* default */])(binds_attrs["a" /* default */], validatable);
|
||
/* @vue/component */
|
||
|
||
/* harmony default export */ var VInput_VInput = (VInput_baseMixins.extend().extend({
|
||
name: 'v-input',
|
||
inheritAttrs: false,
|
||
props: {
|
||
appendIcon: String,
|
||
backgroundColor: {
|
||
type: String,
|
||
default: ''
|
||
},
|
||
dense: Boolean,
|
||
height: [Number, String],
|
||
hideDetails: [Boolean, String],
|
||
hint: String,
|
||
id: String,
|
||
label: String,
|
||
loading: Boolean,
|
||
persistentHint: Boolean,
|
||
prependIcon: String,
|
||
value: null
|
||
},
|
||
|
||
data() {
|
||
return {
|
||
lazyValue: this.value,
|
||
hasMouseDown: false
|
||
};
|
||
},
|
||
|
||
computed: {
|
||
classes() {
|
||
return {
|
||
'v-input--has-state': this.hasState,
|
||
'v-input--hide-details': !this.showDetails,
|
||
'v-input--is-label-active': this.isLabelActive,
|
||
'v-input--is-dirty': this.isDirty,
|
||
'v-input--is-disabled': this.isDisabled,
|
||
'v-input--is-focused': this.isFocused,
|
||
// <v-switch loading>.loading === '' so we can't just cast to boolean
|
||
'v-input--is-loading': this.loading !== false && this.loading != null,
|
||
'v-input--is-readonly': this.isReadonly,
|
||
'v-input--dense': this.dense,
|
||
...this.themeClasses
|
||
};
|
||
},
|
||
|
||
computedId() {
|
||
return this.id || `input-${this._uid}`;
|
||
},
|
||
|
||
hasDetails() {
|
||
return this.messagesToDisplay.length > 0;
|
||
},
|
||
|
||
hasHint() {
|
||
return !this.hasMessages && !!this.hint && (this.persistentHint || this.isFocused);
|
||
},
|
||
|
||
hasLabel() {
|
||
return !!(this.$slots.label || this.label);
|
||
},
|
||
|
||
// Proxy for `lazyValue`
|
||
// This allows an input
|
||
// to function without
|
||
// a provided model
|
||
internalValue: {
|
||
get() {
|
||
return this.lazyValue;
|
||
},
|
||
|
||
set(val) {
|
||
this.lazyValue = val;
|
||
this.$emit(this.$_modelEvent, val);
|
||
}
|
||
|
||
},
|
||
|
||
isDirty() {
|
||
return !!this.lazyValue;
|
||
},
|
||
|
||
isLabelActive() {
|
||
return this.isDirty;
|
||
},
|
||
|
||
messagesToDisplay() {
|
||
if (this.hasHint) return [this.hint];
|
||
if (!this.hasMessages) return [];
|
||
return this.validations.map(validation => {
|
||
if (typeof validation === 'string') return validation;
|
||
const validationResult = validation(this.internalValue);
|
||
return typeof validationResult === 'string' ? validationResult : '';
|
||
}).filter(message => message !== '');
|
||
},
|
||
|
||
showDetails() {
|
||
return this.hideDetails === false || this.hideDetails === 'auto' && this.hasDetails;
|
||
}
|
||
|
||
},
|
||
watch: {
|
||
value(val) {
|
||
this.lazyValue = val;
|
||
}
|
||
|
||
},
|
||
|
||
beforeCreate() {
|
||
// v-radio-group needs to emit a different event
|
||
// https://github.com/vuetifyjs/vuetify/issues/4752
|
||
this.$_modelEvent = this.$options.model && this.$options.model.event || 'input';
|
||
},
|
||
|
||
methods: {
|
||
genContent() {
|
||
return [this.genPrependSlot(), this.genControl(), this.genAppendSlot()];
|
||
},
|
||
|
||
genControl() {
|
||
return this.$createElement('div', {
|
||
staticClass: 'v-input__control'
|
||
}, [this.genInputSlot(), this.genMessages()]);
|
||
},
|
||
|
||
genDefaultSlot() {
|
||
return [this.genLabel(), this.$slots.default];
|
||
},
|
||
|
||
genIcon(type, cb, extraData = {}) {
|
||
const icon = this[`${type}Icon`];
|
||
const eventName = `click:${Object(helpers["k" /* kebabCase */])(type)}`;
|
||
const hasListener = !!(this.listeners$[eventName] || cb);
|
||
const data = Object(mergeData["a" /* default */])({
|
||
attrs: {
|
||
'aria-label': hasListener ? Object(helpers["k" /* kebabCase */])(type).split('-')[0] + ' icon' : undefined,
|
||
color: this.validationState,
|
||
dark: this.dark,
|
||
disabled: this.isDisabled,
|
||
light: this.light
|
||
},
|
||
on: !hasListener ? undefined : {
|
||
click: e => {
|
||
e.preventDefault();
|
||
e.stopPropagation();
|
||
this.$emit(eventName, e);
|
||
cb && cb(e);
|
||
},
|
||
// Container has g event that will
|
||
// trigger menu open if enclosed
|
||
mouseup: e => {
|
||
e.preventDefault();
|
||
e.stopPropagation();
|
||
}
|
||
}
|
||
}, extraData);
|
||
return this.$createElement('div', {
|
||
staticClass: `v-input__icon`,
|
||
class: type ? `v-input__icon--${Object(helpers["k" /* kebabCase */])(type)}` : undefined
|
||
}, [this.$createElement(components_VIcon, data, icon)]);
|
||
},
|
||
|
||
genInputSlot() {
|
||
return this.$createElement('div', this.setBackgroundColor(this.backgroundColor, {
|
||
staticClass: 'v-input__slot',
|
||
style: {
|
||
height: Object(helpers["d" /* convertToUnit */])(this.height)
|
||
},
|
||
on: {
|
||
click: this.onClick,
|
||
mousedown: this.onMouseDown,
|
||
mouseup: this.onMouseUp
|
||
},
|
||
ref: 'input-slot'
|
||
}), [this.genDefaultSlot()]);
|
||
},
|
||
|
||
genLabel() {
|
||
if (!this.hasLabel) return null;
|
||
return this.$createElement(components_VLabel, {
|
||
props: {
|
||
color: this.validationState,
|
||
dark: this.dark,
|
||
disabled: this.isDisabled,
|
||
focused: this.hasState,
|
||
for: this.computedId,
|
||
light: this.light
|
||
}
|
||
}, this.$slots.label || this.label);
|
||
},
|
||
|
||
genMessages() {
|
||
if (!this.showDetails) return null;
|
||
return this.$createElement(components_VMessages, {
|
||
props: {
|
||
color: this.hasHint ? '' : this.validationState,
|
||
dark: this.dark,
|
||
light: this.light,
|
||
value: this.messagesToDisplay
|
||
},
|
||
attrs: {
|
||
role: this.hasMessages ? 'alert' : null
|
||
},
|
||
scopedSlots: {
|
||
default: props => Object(helpers["j" /* getSlot */])(this, 'message', props)
|
||
}
|
||
});
|
||
},
|
||
|
||
genSlot(type, location, slot) {
|
||
if (!slot.length) return null;
|
||
const ref = `${type}-${location}`;
|
||
return this.$createElement('div', {
|
||
staticClass: `v-input__${ref}`,
|
||
ref
|
||
}, slot);
|
||
},
|
||
|
||
genPrependSlot() {
|
||
const slot = [];
|
||
|
||
if (this.$slots.prepend) {
|
||
slot.push(this.$slots.prepend);
|
||
} else if (this.prependIcon) {
|
||
slot.push(this.genIcon('prepend'));
|
||
}
|
||
|
||
return this.genSlot('prepend', 'outer', slot);
|
||
},
|
||
|
||
genAppendSlot() {
|
||
const slot = []; // Append icon for text field was really
|
||
// an appended inner icon, v-text-field
|
||
// will overwrite this method in order to obtain
|
||
// backwards compat
|
||
|
||
if (this.$slots.append) {
|
||
slot.push(this.$slots.append);
|
||
} else if (this.appendIcon) {
|
||
slot.push(this.genIcon('append'));
|
||
}
|
||
|
||
return this.genSlot('append', 'outer', slot);
|
||
},
|
||
|
||
onClick(e) {
|
||
this.$emit('click', e);
|
||
},
|
||
|
||
onMouseDown(e) {
|
||
this.hasMouseDown = true;
|
||
this.$emit('mousedown', e);
|
||
},
|
||
|
||
onMouseUp(e) {
|
||
this.hasMouseDown = false;
|
||
this.$emit('mouseup', e);
|
||
}
|
||
|
||
},
|
||
|
||
render(h) {
|
||
return h('div', this.setTextColor(this.validationState, {
|
||
staticClass: 'v-input',
|
||
class: this.classes
|
||
}), this.genContent());
|
||
}
|
||
|
||
}));
|
||
// CONCATENATED MODULE: ./node_modules/vuetify/lib/components/VInput/index.js
|
||
|
||
|
||
/* harmony default export */ var components_VInput = (VInput_VInput);
|
||
// EXTERNAL MODULE: ./node_modules/vuetify/src/components/VCounter/VCounter.sass
|
||
var VCounter = __webpack_require__(81);
|
||
|
||
// CONCATENATED MODULE: ./node_modules/vuetify/lib/components/VCounter/VCounter.js
|
||
// Styles
|
||
// Mixins
|
||
|
||
|
||
|
||
/* @vue/component */
|
||
|
||
/* harmony default export */ var VCounter_VCounter = (Object(mixins["a" /* default */])(themeable["a" /* default */]).extend({
|
||
name: 'v-counter',
|
||
functional: true,
|
||
props: {
|
||
value: {
|
||
type: [Number, String],
|
||
default: ''
|
||
},
|
||
max: [Number, String]
|
||
},
|
||
|
||
render(h, ctx) {
|
||
const {
|
||
props
|
||
} = ctx;
|
||
const max = parseInt(props.max, 10);
|
||
const value = parseInt(props.value, 10);
|
||
const content = max ? `${value} / ${max}` : String(props.value);
|
||
const isGreater = max && value > max;
|
||
return h('div', {
|
||
staticClass: 'v-counter',
|
||
class: {
|
||
'error--text': isGreater,
|
||
...Object(themeable["b" /* functionalThemeClasses */])(ctx)
|
||
}
|
||
}, content);
|
||
}
|
||
|
||
}));
|
||
// CONCATENATED MODULE: ./node_modules/vuetify/lib/components/VCounter/index.js
|
||
|
||
|
||
/* harmony default export */ var components_VCounter = (VCounter_VCounter);
|
||
// CONCATENATED MODULE: ./node_modules/vuetify/lib/directives/intersect/index.js
|
||
function inserted(el, binding) {
|
||
const modifiers = binding.modifiers || {};
|
||
const value = binding.value;
|
||
const {
|
||
handler,
|
||
options
|
||
} = typeof value === 'object' ? value : {
|
||
handler: value,
|
||
options: {}
|
||
};
|
||
const observer = new IntersectionObserver((entries = [], observer) => {
|
||
/* istanbul ignore if */
|
||
if (!el._observe) return; // Just in case, should never fire
|
||
// If is not quiet or has already been
|
||
// initted, invoke the user callback
|
||
|
||
if (handler && (!modifiers.quiet || el._observe.init)) {
|
||
const isIntersecting = Boolean(entries.find(entry => entry.isIntersecting));
|
||
handler(entries, observer, isIntersecting);
|
||
} // If has already been initted and
|
||
// has the once modifier, unbind
|
||
|
||
|
||
if (el._observe.init && modifiers.once) intersect_unbind(el); // Otherwise, mark the observer as initted
|
||
else el._observe.init = true;
|
||
}, options);
|
||
el._observe = {
|
||
init: false,
|
||
observer
|
||
};
|
||
observer.observe(el);
|
||
}
|
||
|
||
function intersect_unbind(el) {
|
||
/* istanbul ignore if */
|
||
if (!el._observe) return;
|
||
|
||
el._observe.observer.unobserve(el);
|
||
|
||
delete el._observe;
|
||
}
|
||
|
||
const Intersect = {
|
||
inserted,
|
||
unbind: intersect_unbind
|
||
};
|
||
/* harmony default export */ var intersect = (Intersect);
|
||
// CONCATENATED MODULE: ./node_modules/vuetify/lib/mixins/intersectable/index.js
|
||
// Directives
|
||
// Utilities
|
||
|
||
// Types
|
||
|
||
|
||
function intersectable(options) {
|
||
if (typeof window === 'undefined' || !('IntersectionObserver' in window)) {
|
||
// do nothing because intersection observer is not available
|
||
return external_vue_default.a.extend({
|
||
name: 'intersectable'
|
||
});
|
||
}
|
||
|
||
return external_vue_default.a.extend({
|
||
name: 'intersectable',
|
||
|
||
mounted() {
|
||
intersect.inserted(this.$el, {
|
||
name: 'intersect',
|
||
value: this.onObserve
|
||
});
|
||
},
|
||
|
||
destroyed() {
|
||
intersect.unbind(this.$el);
|
||
},
|
||
|
||
methods: {
|
||
onObserve(entries, observer, isIntersecting) {
|
||
if (!isIntersecting) return;
|
||
|
||
for (let i = 0, length = options.onVisible.length; i < length; i++) {
|
||
const callback = this[options.onVisible[i]];
|
||
|
||
if (typeof callback === 'function') {
|
||
callback();
|
||
continue;
|
||
}
|
||
|
||
Object(util_console["c" /* consoleWarn */])(options.onVisible[i] + ' method is not available on the instance but referenced in intersectable mixin options');
|
||
}
|
||
}
|
||
|
||
}
|
||
});
|
||
}
|
||
// CONCATENATED MODULE: ./node_modules/vuetify/lib/components/VTextField/VTextField.js
|
||
// Styles
|
||
// Extensions
|
||
|
||
// Components
|
||
|
||
|
||
// Mixins
|
||
|
||
|
||
|
||
// Directives
|
||
|
||
// Utilities
|
||
|
||
|
||
// Types
|
||
|
||
|
||
const VTextField_baseMixins = Object(mixins["a" /* default */])(components_VInput, intersectable({
|
||
onVisible: ['setLabelWidth', 'setPrefixWidth', 'setPrependWidth', 'tryAutofocus']
|
||
}), loadable);
|
||
const dirtyTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month'];
|
||
/* @vue/component */
|
||
|
||
/* harmony default export */ var VTextField_VTextField = (VTextField_baseMixins.extend().extend({
|
||
name: 'v-text-field',
|
||
directives: {
|
||
ripple: ripple
|
||
},
|
||
inheritAttrs: false,
|
||
props: {
|
||
appendOuterIcon: String,
|
||
autofocus: Boolean,
|
||
clearable: Boolean,
|
||
clearIcon: {
|
||
type: String,
|
||
default: '$clear'
|
||
},
|
||
counter: [Boolean, Number, String],
|
||
counterValue: Function,
|
||
filled: Boolean,
|
||
flat: Boolean,
|
||
fullWidth: Boolean,
|
||
label: String,
|
||
outlined: Boolean,
|
||
placeholder: String,
|
||
prefix: String,
|
||
prependInnerIcon: String,
|
||
reverse: Boolean,
|
||
rounded: Boolean,
|
||
shaped: Boolean,
|
||
singleLine: Boolean,
|
||
solo: Boolean,
|
||
soloInverted: Boolean,
|
||
suffix: String,
|
||
type: {
|
||
type: String,
|
||
default: 'text'
|
||
}
|
||
},
|
||
data: () => ({
|
||
badInput: false,
|
||
labelWidth: 0,
|
||
prefixWidth: 0,
|
||
prependWidth: 0,
|
||
initialValue: null,
|
||
isBooted: false,
|
||
isClearing: false
|
||
}),
|
||
computed: {
|
||
classes() {
|
||
return { ...components_VInput.options.computed.classes.call(this),
|
||
'v-text-field': true,
|
||
'v-text-field--full-width': this.fullWidth,
|
||
'v-text-field--prefix': this.prefix,
|
||
'v-text-field--single-line': this.isSingle,
|
||
'v-text-field--solo': this.isSolo,
|
||
'v-text-field--solo-inverted': this.soloInverted,
|
||
'v-text-field--solo-flat': this.flat,
|
||
'v-text-field--filled': this.filled,
|
||
'v-text-field--is-booted': this.isBooted,
|
||
'v-text-field--enclosed': this.isEnclosed,
|
||
'v-text-field--reverse': this.reverse,
|
||
'v-text-field--outlined': this.outlined,
|
||
'v-text-field--placeholder': this.placeholder,
|
||
'v-text-field--rounded': this.rounded,
|
||
'v-text-field--shaped': this.shaped
|
||
};
|
||
},
|
||
|
||
computedColor() {
|
||
const computedColor = validatable.options.computed.computedColor.call(this);
|
||
if (!this.soloInverted || !this.isFocused) return computedColor;
|
||
return this.color || 'primary';
|
||
},
|
||
|
||
computedCounterValue() {
|
||
if (typeof this.counterValue === 'function') {
|
||
return this.counterValue(this.internalValue);
|
||
}
|
||
|
||
return (this.internalValue || '').toString().length;
|
||
},
|
||
|
||
hasCounter() {
|
||
return this.counter !== false && this.counter != null;
|
||
},
|
||
|
||
hasDetails() {
|
||
return components_VInput.options.computed.hasDetails.call(this) || this.hasCounter;
|
||
},
|
||
|
||
internalValue: {
|
||
get() {
|
||
return this.lazyValue;
|
||
},
|
||
|
||
set(val) {
|
||
this.lazyValue = val;
|
||
this.$emit('input', this.lazyValue);
|
||
}
|
||
|
||
},
|
||
|
||
isDirty() {
|
||
return this.lazyValue != null && this.lazyValue.toString().length > 0 || this.badInput;
|
||
},
|
||
|
||
isEnclosed() {
|
||
return this.filled || this.isSolo || this.outlined;
|
||
},
|
||
|
||
isLabelActive() {
|
||
return this.isDirty || dirtyTypes.includes(this.type);
|
||
},
|
||
|
||
isSingle() {
|
||
return this.isSolo || this.singleLine || this.fullWidth || // https://material.io/components/text-fields/#filled-text-field
|
||
this.filled && !this.hasLabel;
|
||
},
|
||
|
||
isSolo() {
|
||
return this.solo || this.soloInverted;
|
||
},
|
||
|
||
labelPosition() {
|
||
let offset = this.prefix && !this.labelValue ? this.prefixWidth : 0;
|
||
if (this.labelValue && this.prependWidth) offset -= this.prependWidth;
|
||
return this.$vuetify.rtl === this.reverse ? {
|
||
left: offset,
|
||
right: 'auto'
|
||
} : {
|
||
left: 'auto',
|
||
right: offset
|
||
};
|
||
},
|
||
|
||
showLabel() {
|
||
return this.hasLabel && (!this.isSingle || !this.isLabelActive && !this.placeholder);
|
||
},
|
||
|
||
labelValue() {
|
||
return !this.isSingle && Boolean(this.isFocused || this.isLabelActive || this.placeholder);
|
||
}
|
||
|
||
},
|
||
watch: {
|
||
labelValue: 'setLabelWidth',
|
||
outlined: 'setLabelWidth',
|
||
|
||
label() {
|
||
this.$nextTick(this.setLabelWidth);
|
||
},
|
||
|
||
prefix() {
|
||
this.$nextTick(this.setPrefixWidth);
|
||
},
|
||
|
||
isFocused: 'updateValue',
|
||
|
||
value(val) {
|
||
this.lazyValue = val;
|
||
}
|
||
|
||
},
|
||
|
||
created() {
|
||
/* istanbul ignore next */
|
||
if (this.$attrs.hasOwnProperty('box')) {
|
||
Object(util_console["a" /* breaking */])('box', 'filled', this);
|
||
}
|
||
/* istanbul ignore next */
|
||
|
||
|
||
if (this.$attrs.hasOwnProperty('browser-autocomplete')) {
|
||
Object(util_console["a" /* breaking */])('browser-autocomplete', 'autocomplete', this);
|
||
}
|
||
/* istanbul ignore if */
|
||
|
||
|
||
if (this.shaped && !(this.filled || this.outlined || this.isSolo)) {
|
||
Object(util_console["c" /* consoleWarn */])('shaped should be used with either filled or outlined', this);
|
||
}
|
||
},
|
||
|
||
mounted() {
|
||
this.autofocus && this.tryAutofocus();
|
||
this.setLabelWidth();
|
||
this.setPrefixWidth();
|
||
this.setPrependWidth();
|
||
requestAnimationFrame(() => this.isBooted = true);
|
||
},
|
||
|
||
methods: {
|
||
/** @public */
|
||
focus() {
|
||
this.onFocus();
|
||
},
|
||
|
||
/** @public */
|
||
blur(e) {
|
||
// https://github.com/vuetifyjs/vuetify/issues/5913
|
||
// Safari tab order gets broken if called synchronous
|
||
window.requestAnimationFrame(() => {
|
||
this.$refs.input && this.$refs.input.blur();
|
||
});
|
||
},
|
||
|
||
clearableCallback() {
|
||
this.$refs.input && this.$refs.input.focus();
|
||
this.$nextTick(() => this.internalValue = null);
|
||
},
|
||
|
||
genAppendSlot() {
|
||
const slot = [];
|
||
|
||
if (this.$slots['append-outer']) {
|
||
slot.push(this.$slots['append-outer']);
|
||
} else if (this.appendOuterIcon) {
|
||
slot.push(this.genIcon('appendOuter'));
|
||
}
|
||
|
||
return this.genSlot('append', 'outer', slot);
|
||
},
|
||
|
||
genPrependInnerSlot() {
|
||
const slot = [];
|
||
|
||
if (this.$slots['prepend-inner']) {
|
||
slot.push(this.$slots['prepend-inner']);
|
||
} else if (this.prependInnerIcon) {
|
||
slot.push(this.genIcon('prependInner'));
|
||
}
|
||
|
||
return this.genSlot('prepend', 'inner', slot);
|
||
},
|
||
|
||
genIconSlot() {
|
||
const slot = [];
|
||
|
||
if (this.$slots['append']) {
|
||
slot.push(this.$slots['append']);
|
||
} else if (this.appendIcon) {
|
||
slot.push(this.genIcon('append'));
|
||
}
|
||
|
||
return this.genSlot('append', 'inner', slot);
|
||
},
|
||
|
||
genInputSlot() {
|
||
const input = components_VInput.options.methods.genInputSlot.call(this);
|
||
const prepend = this.genPrependInnerSlot();
|
||
|
||
if (prepend) {
|
||
input.children = input.children || [];
|
||
input.children.unshift(prepend);
|
||
}
|
||
|
||
return input;
|
||
},
|
||
|
||
genClearIcon() {
|
||
if (!this.clearable) return null;
|
||
const data = this.isDirty ? undefined : {
|
||
attrs: {
|
||
disabled: true
|
||
}
|
||
};
|
||
return this.genSlot('append', 'inner', [this.genIcon('clear', this.clearableCallback, data)]);
|
||
},
|
||
|
||
genCounter() {
|
||
if (!this.hasCounter) return null;
|
||
const max = this.counter === true ? this.attrs$.maxlength : this.counter;
|
||
return this.$createElement(components_VCounter, {
|
||
props: {
|
||
dark: this.dark,
|
||
light: this.light,
|
||
max,
|
||
value: this.computedCounterValue
|
||
}
|
||
});
|
||
},
|
||
|
||
genControl() {
|
||
return components_VInput.options.methods.genControl.call(this);
|
||
},
|
||
|
||
genDefaultSlot() {
|
||
return [this.genFieldset(), this.genTextFieldSlot(), this.genClearIcon(), this.genIconSlot(), this.genProgress()];
|
||
},
|
||
|
||
genFieldset() {
|
||
if (!this.outlined) return null;
|
||
return this.$createElement('fieldset', {
|
||
attrs: {
|
||
'aria-hidden': true
|
||
}
|
||
}, [this.genLegend()]);
|
||
},
|
||
|
||
genLabel() {
|
||
if (!this.showLabel) return null;
|
||
const data = {
|
||
props: {
|
||
absolute: true,
|
||
color: this.validationState,
|
||
dark: this.dark,
|
||
disabled: this.isDisabled,
|
||
focused: !this.isSingle && (this.isFocused || !!this.validationState),
|
||
for: this.computedId,
|
||
left: this.labelPosition.left,
|
||
light: this.light,
|
||
right: this.labelPosition.right,
|
||
value: this.labelValue
|
||
}
|
||
};
|
||
return this.$createElement(components_VLabel, data, this.$slots.label || this.label);
|
||
},
|
||
|
||
genLegend() {
|
||
const width = !this.singleLine && (this.labelValue || this.isDirty) ? this.labelWidth : 0;
|
||
const span = this.$createElement('span', {
|
||
domProps: {
|
||
innerHTML: '​'
|
||
}
|
||
});
|
||
return this.$createElement('legend', {
|
||
style: {
|
||
width: !this.isSingle ? Object(helpers["d" /* convertToUnit */])(width) : undefined
|
||
}
|
||
}, [span]);
|
||
},
|
||
|
||
genInput() {
|
||
const listeners = Object.assign({}, this.listeners$);
|
||
delete listeners['change']; // Change should not be bound externally
|
||
|
||
return this.$createElement('input', {
|
||
style: {},
|
||
domProps: {
|
||
value: this.type === 'number' && Object.is(this.lazyValue, -0) ? '-0' : this.lazyValue
|
||
},
|
||
attrs: { ...this.attrs$,
|
||
autofocus: this.autofocus,
|
||
disabled: this.isDisabled,
|
||
id: this.computedId,
|
||
placeholder: this.placeholder,
|
||
readonly: this.isReadonly,
|
||
type: this.type
|
||
},
|
||
on: Object.assign(listeners, {
|
||
blur: this.onBlur,
|
||
input: this.onInput,
|
||
focus: this.onFocus,
|
||
keydown: this.onKeyDown
|
||
}),
|
||
ref: 'input'
|
||
});
|
||
},
|
||
|
||
genMessages() {
|
||
if (!this.showDetails) return null;
|
||
const messagesNode = components_VInput.options.methods.genMessages.call(this);
|
||
const counterNode = this.genCounter();
|
||
return this.$createElement('div', {
|
||
staticClass: 'v-text-field__details'
|
||
}, [messagesNode, counterNode]);
|
||
},
|
||
|
||
genTextFieldSlot() {
|
||
return this.$createElement('div', {
|
||
staticClass: 'v-text-field__slot'
|
||
}, [this.genLabel(), this.prefix ? this.genAffix('prefix') : null, this.genInput(), this.suffix ? this.genAffix('suffix') : null]);
|
||
},
|
||
|
||
genAffix(type) {
|
||
return this.$createElement('div', {
|
||
class: `v-text-field__${type}`,
|
||
ref: type
|
||
}, this[type]);
|
||
},
|
||
|
||
onBlur(e) {
|
||
this.isFocused = false;
|
||
e && this.$nextTick(() => this.$emit('blur', e));
|
||
},
|
||
|
||
onClick() {
|
||
if (this.isFocused || this.isDisabled || !this.$refs.input) return;
|
||
this.$refs.input.focus();
|
||
},
|
||
|
||
onFocus(e) {
|
||
if (!this.$refs.input) return;
|
||
|
||
if (document.activeElement !== this.$refs.input) {
|
||
return this.$refs.input.focus();
|
||
}
|
||
|
||
if (!this.isFocused) {
|
||
this.isFocused = true;
|
||
e && this.$emit('focus', e);
|
||
}
|
||
},
|
||
|
||
onInput(e) {
|
||
const target = e.target;
|
||
this.internalValue = target.value;
|
||
this.badInput = target.validity && target.validity.badInput;
|
||
},
|
||
|
||
onKeyDown(e) {
|
||
if (e.keyCode === helpers["l" /* keyCodes */].enter) this.$emit('change', this.internalValue);
|
||
this.$emit('keydown', e);
|
||
},
|
||
|
||
onMouseDown(e) {
|
||
// Prevent input from being blurred
|
||
if (e.target !== this.$refs.input) {
|
||
e.preventDefault();
|
||
e.stopPropagation();
|
||
}
|
||
|
||
components_VInput.options.methods.onMouseDown.call(this, e);
|
||
},
|
||
|
||
onMouseUp(e) {
|
||
if (this.hasMouseDown) this.focus();
|
||
components_VInput.options.methods.onMouseUp.call(this, e);
|
||
},
|
||
|
||
setLabelWidth() {
|
||
if (!this.outlined) return;
|
||
this.labelWidth = this.$refs.label ? Math.min(this.$refs.label.scrollWidth * 0.75 + 6, this.$el.offsetWidth - 24) : 0;
|
||
},
|
||
|
||
setPrefixWidth() {
|
||
if (!this.$refs.prefix) return;
|
||
this.prefixWidth = this.$refs.prefix.offsetWidth;
|
||
},
|
||
|
||
setPrependWidth() {
|
||
if (!this.outlined || !this.$refs['prepend-inner']) return;
|
||
this.prependWidth = this.$refs['prepend-inner'].offsetWidth;
|
||
},
|
||
|
||
tryAutofocus() {
|
||
if (!this.autofocus || typeof document === 'undefined' || !this.$refs.input || document.activeElement === this.$refs.input) return false;
|
||
this.$refs.input.focus();
|
||
return true;
|
||
},
|
||
|
||
updateValue(val) {
|
||
// Sets validationState from validatable
|
||
this.hasColor = val;
|
||
|
||
if (val) {
|
||
this.initialValue = this.lazyValue;
|
||
} else if (this.initialValue !== this.lazyValue) {
|
||
this.$emit('change', this.lazyValue);
|
||
}
|
||
}
|
||
|
||
}
|
||
}));
|
||
// CONCATENATED MODULE: ./pages/index.vue
|
||
|
||
|
||
|
||
function injectStyles (context) {
|
||
|
||
var style0 = __webpack_require__(59)
|
||
if (style0.__inject__) style0.__inject__(context)
|
||
|
||
}
|
||
|
||
/* normalize component */
|
||
|
||
var component = Object(componentNormalizer["a" /* default */])(
|
||
pagesvue_type_script_lang_ts_,
|
||
lib_vue_loader_options_pagesvue_type_template_id_27c3eb76_scoped_true_lang_pug_render,
|
||
staticRenderFns,
|
||
false,
|
||
injectStyles,
|
||
"27c3eb76",
|
||
"7bf7e781"
|
||
|
||
)
|
||
|
||
/* harmony default export */ var pages = __webpack_exports__["default"] = (component.exports);
|
||
|
||
/* vuetify-loader */
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
installComponents_default()(component, {VBtn: VBtn_VBtn,VCard: VCard_VCard,VCardText: VCardText,VCardTitle: VCardTitle,VContainer: VContainer["a" /* default */],VForm: VForm,VTextField: VTextField_VTextField})
|
||
|
||
|
||
/***/ })
|
||
|
||
};;
|
||
//# sourceMappingURL=index.js.map
|