forked from daren.hsu/line_push
4085 lines
150 KiB
JavaScript
4085 lines
150 KiB
JavaScript
exports.ids = [3];
|
|
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("55ad8d99", 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_7787c9dd_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_7787c9dd_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_7787c9dd_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_7787c9dd_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_7787c9dd_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-7787c9dd]: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-7787c9dd]: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___;
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ 89:
|
|
/***/ (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=7787c9dd&scoped=true&lang=pug&
|
|
var lib_vue_loader_options_pagesvue_type_template_id_7787c9dd_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=7787c9dd&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);
|
|
}
|
|
}
|
|
|
|
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": "-----下面就是驗證碼喔-----"
|
|
}]);
|
|
await this.liff.sendMessages([{
|
|
"type": "text",
|
|
"text": this.form.VerifyNUM
|
|
}]);
|
|
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_7787c9dd_scoped_true_lang_pug_render,
|
|
staticRenderFns,
|
|
false,
|
|
injectStyles,
|
|
"7787c9dd",
|
|
"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
|