chore: update js vendors

This commit is contained in:
Eneko Illarramendi 2020-09-02 14:39:20 +02:00
parent 0d0e00e699
commit d4f957a5c8
22 changed files with 5351 additions and 2035 deletions

View File

@ -88,7 +88,7 @@
{% endblock %} {% block scripts %} {% endblock %} {% block scripts %}
<script src="{{ url_for('static', filename='vendor/vue-qrcode@1.0.2/vue-qrcode.min.js') }}"></script> <script src="{{ url_for('static', filename='vendor/vue-qrcode@1.0.2/vue-qrcode.min.js') }}"></script>
{% assets filters='rjsmin', output='__bundle__/core/chart.js', {% assets filters='rjsmin', output='__bundle__/core/chart.js',
'vendor/moment@2.25.1/moment.min.js', 'vendor/chart.js@2.9.3/chart.min.js' %} 'vendor/moment@2.27.0/moment.min.js', 'vendor/chart.js@2.9.3/chart.min.js' %}
<script type="text/javascript" src="{{ ASSET_URL }}"></script> <script type="text/javascript" src="{{ ASSET_URL }}"></script>
{% endassets %} {% assets filters='rjsmin', output='__bundle__/core/wallet.js', {% endassets %} {% assets filters='rjsmin', output='__bundle__/core/wallet.js',
'vendor/bolt11/utils.js', 'vendor/bolt11/decoder.js', 'vendor/bolt11/utils.js', 'vendor/bolt11/decoder.js',

View File

@ -50,10 +50,10 @@
} }
</style> </style>
{% endblock %} {% block scripts %} {% endblock %} {% block scripts %}
<script src="{{ url_for('static', filename='vendor/vue@2.6.11/vue.js') }}"></script> <script src="{{ url_for('static', filename='vendor/vue@2.6.12/vue.js') }}"></script>
<script src="{{ url_for('static', filename='vendor/vue-router@3.1.6/vue-router.js') }}"></script> <script src="{{ url_for('static', filename='vendor/vuex@3.5.1/vuex.js') }}"></script>
<script src="{{ url_for('static', filename='vendor/vuex@3.1.3/vuex.js') }}"></script> <script src="{{ url_for('static', filename='vendor/vue-router@3.4.3/vue-router.js') }}"></script>
<script src="{{ url_for('static', filename='vendor/quasar@1.10.4/quasar.umd.js') }}"></script> <script src="{{ url_for('static', filename='vendor/quasar@1.13.2/quasar.umd.js') }}"></script>
<script <script
type="text/javascript" type="text/javascript"
src="/static/__bundle__/base.js?a52a989e" src="/static/__bundle__/base.js?a52a989e"

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,5 @@
/*! /*!
* Quasar Framework v1.10.4 * Quasar Framework v1.13.2
* (c) 2015-present Razvan Stoenescu * (c) 2015-present Razvan Stoenescu
* Released under the MIT License. * Released under the MIT License.
*/ */

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,5 @@
/*! /*!
* vue-router v3.1.6 * vue-router v3.4.3
* (c) 2020 Evan You * (c) 2020 Evan You
* @license MIT * @license MIT
*/ */
@ -23,18 +23,6 @@
} }
} }
function isError (err) {
return Object.prototype.toString.call(err).indexOf('Error') > -1
}
function isExtendedError (constructor, err) {
return (
err instanceof constructor ||
// _name is to support IE9 too
(err && (err.name === constructor.name || err._name === constructor._name))
)
}
function extend (a, b) { function extend (a, b) {
for (var key in b) { for (var key in b) {
a[key] = b[key]; a[key] = b[key];
@ -143,7 +131,7 @@
}; };
var configProps = matched.props && matched.props[name]; var configProps = matched.props && matched.props[name];
// save route and configProps in cachce // save route and configProps in cache
if (configProps) { if (configProps) {
extend(cache[name], { extend(cache[name], {
route: route, route: route,
@ -204,8 +192,8 @@
// - escapes [!'()*] // - escapes [!'()*]
// - preserve commas // - preserve commas
var encode = function (str) { return encodeURIComponent(str) var encode = function (str) { return encodeURIComponent(str)
.replace(encodeReserveRE, encodeReserveReplacer) .replace(encodeReserveRE, encodeReserveReplacer)
.replace(commaRE, ','); }; .replace(commaRE, ','); };
var decode = decodeURIComponent; var decode = decodeURIComponent;
@ -225,11 +213,16 @@
parsedQuery = {}; parsedQuery = {};
} }
for (var key in extraQuery) { for (var key in extraQuery) {
parsedQuery[key] = extraQuery[key]; var value = extraQuery[key];
parsedQuery[key] = Array.isArray(value)
? value.map(castQueryParamValue)
: castQueryParamValue(value);
} }
return parsedQuery return parsedQuery
} }
var castQueryParamValue = function (value) { return (value == null || typeof value === 'object' ? value : String(value)); };
function parseQuery (query) { function parseQuery (query) {
var res = {}; var res = {};
@ -242,9 +235,7 @@
query.split('&').forEach(function (param) { query.split('&').forEach(function (param) {
var parts = param.replace(/\+/g, ' ').split('='); var parts = param.replace(/\+/g, ' ').split('=');
var key = decode(parts.shift()); var key = decode(parts.shift());
var val = parts.length > 0 var val = parts.length > 0 ? decode(parts.join('=')) : null;
? decode(parts.join('='))
: null;
if (res[key] === undefined) { if (res[key] === undefined) {
res[key] = val; res[key] = val;
@ -259,34 +250,39 @@
} }
function stringifyQuery (obj) { function stringifyQuery (obj) {
var res = obj ? Object.keys(obj).map(function (key) { var res = obj
var val = obj[key]; ? Object.keys(obj)
.map(function (key) {
var val = obj[key];
if (val === undefined) { if (val === undefined) {
return '' return ''
}
if (val === null) {
return encode(key)
}
if (Array.isArray(val)) {
var result = [];
val.forEach(function (val2) {
if (val2 === undefined) {
return
} }
if (val2 === null) {
result.push(encode(key));
} else {
result.push(encode(key) + '=' + encode(val2));
}
});
return result.join('&')
}
return encode(key) + '=' + encode(val) if (val === null) {
}).filter(function (x) { return x.length > 0; }).join('&') : null; return encode(key)
}
if (Array.isArray(val)) {
var result = [];
val.forEach(function (val2) {
if (val2 === undefined) {
return
}
if (val2 === null) {
result.push(encode(key));
} else {
result.push(encode(key) + '=' + encode(val2));
}
});
return result.join('&')
}
return encode(key) + '=' + encode(val)
})
.filter(function (x) { return x.length > 0; })
.join('&')
: null;
return res ? ("?" + res) : '' return res ? ("?" + res) : ''
} }
@ -400,6 +396,8 @@
return aKeys.every(function (key) { return aKeys.every(function (key) {
var aVal = a[key]; var aVal = a[key];
var bVal = b[key]; var bVal = b[key];
// query values can be null and undefined
if (aVal == null || bVal == null) { return aVal === bVal }
// check nested equality // check nested equality
if (typeof aVal === 'object' && typeof bVal === 'object') { if (typeof aVal === 'object' && typeof bVal === 'object') {
return isObjectEqual(aVal, bVal) return isObjectEqual(aVal, bVal)
@ -610,7 +608,7 @@
* @return {!function(Object=, Object=)} * @return {!function(Object=, Object=)}
*/ */
function compile (str, options) { function compile (str, options) {
return tokensToFunction(parse(str, options)) return tokensToFunction(parse(str, options), options)
} }
/** /**
@ -640,14 +638,14 @@
/** /**
* Expose a method for transforming tokens into the path function. * Expose a method for transforming tokens into the path function.
*/ */
function tokensToFunction (tokens) { function tokensToFunction (tokens, options) {
// Compile all the tokens into regexps. // Compile all the tokens into regexps.
var matches = new Array(tokens.length); var matches = new Array(tokens.length);
// Compile all the patterns before compilation. // Compile all the patterns before compilation.
for (var i = 0; i < tokens.length; i++) { for (var i = 0; i < tokens.length; i++) {
if (typeof tokens[i] === 'object') { if (typeof tokens[i] === 'object') {
matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$'); matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));
} }
} }
@ -760,7 +758,7 @@
* @return {string} * @return {string}
*/ */
function flags (options) { function flags (options) {
return options.sensitive ? '' : 'i' return options && options.sensitive ? '' : 'i'
} }
/** /**
@ -1051,6 +1049,10 @@
replace: Boolean, replace: Boolean,
activeClass: String, activeClass: String,
exactActiveClass: String, exactActiveClass: String,
ariaCurrentValue: {
type: String,
default: 'page'
},
event: { event: {
type: eventTypes, type: eventTypes,
default: 'click' default: 'click'
@ -1096,6 +1098,8 @@
? classes[exactActiveClass] ? classes[exactActiveClass]
: isIncludedRoute(current, compareTarget); : isIncludedRoute(current, compareTarget);
var ariaCurrentValue = classes[exactActiveClass] ? this.ariaCurrentValue : null;
var handler = function (e) { var handler = function (e) {
if (guardEvent(e)) { if (guardEvent(e)) {
if (this$1.replace) { if (this$1.replace) {
@ -1144,7 +1148,7 @@
if (this.tag === 'a') { if (this.tag === 'a') {
data.on = on; data.on = on;
data.attrs = { href: href }; data.attrs = { href: href, 'aria-current': ariaCurrentValue };
} else { } else {
// find the first <a> child and apply listener and href // find the first <a> child and apply listener and href
var a = findAnchor(this.$slots.default); var a = findAnchor(this.$slots.default);
@ -1172,6 +1176,7 @@
var aAttrs = (a.data.attrs = extend({}, a.data.attrs)); var aAttrs = (a.data.attrs = extend({}, a.data.attrs));
aAttrs.href = href; aAttrs.href = href;
aAttrs['aria-current'] = ariaCurrentValue;
} else { } else {
// doesn't have <a> child, apply listener to self // doesn't have <a> child, apply listener to self
data.on = on; data.on = on;
@ -1690,6 +1695,10 @@
var positionStore = Object.create(null); var positionStore = Object.create(null);
function setupScroll () { function setupScroll () {
// Prevent browser scroll behavior on History popstate
if ('scrollRestoration' in window.history) {
window.history.scrollRestoration = 'manual';
}
// Fix for #1585 for Firefox // Fix for #1585 for Firefox
// Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678 // Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678
// Fix for #2774 Support for apps loaded from Windows file shares not mapped to network drives: replaced location.origin with // Fix for #2774 Support for apps loaded from Windows file shares not mapped to network drives: replaced location.origin with
@ -1701,12 +1710,10 @@
var stateCopy = extend({}, window.history.state); var stateCopy = extend({}, window.history.state);
stateCopy.key = getStateKey(); stateCopy.key = getStateKey();
window.history.replaceState(stateCopy, '', absolutePath); window.history.replaceState(stateCopy, '', absolutePath);
window.addEventListener('popstate', function (e) { window.addEventListener('popstate', handlePopState);
saveScrollPosition(); return function () {
if (e.state && e.state.key) { window.removeEventListener('popstate', handlePopState);
setStateKey(e.state.key); }
}
});
} }
function handleScroll ( function handleScroll (
@ -1768,6 +1775,13 @@
} }
} }
function handlePopState (e) {
saveScrollPosition();
if (e.state && e.state.key) {
setStateKey(e.state.key);
}
}
function getScrollPosition () { function getScrollPosition () {
var key = getStateKey(); var key = getStateKey();
if (key) { if (key) {
@ -1853,7 +1867,7 @@
return false return false
} }
return window.history && 'pushState' in window.history return window.history && typeof window.history.pushState === 'function'
})(); })();
function pushState (url, replace) { function pushState (url, replace) {
@ -1898,6 +1912,88 @@
step(0); step(0);
} }
var NavigationFailureType = {
redirected: 2,
aborted: 4,
cancelled: 8,
duplicated: 16
};
function createNavigationRedirectedError (from, to) {
return createRouterError(
from,
to,
NavigationFailureType.redirected,
("Redirected when going from \"" + (from.fullPath) + "\" to \"" + (stringifyRoute(
to
)) + "\" via a navigation guard.")
)
}
function createNavigationDuplicatedError (from, to) {
var error = createRouterError(
from,
to,
NavigationFailureType.duplicated,
("Avoided redundant navigation to current location: \"" + (from.fullPath) + "\".")
);
// backwards compatible with the first introduction of Errors
error.name = 'NavigationDuplicated';
return error
}
function createNavigationCancelledError (from, to) {
return createRouterError(
from,
to,
NavigationFailureType.cancelled,
("Navigation cancelled from \"" + (from.fullPath) + "\" to \"" + (to.fullPath) + "\" with a new navigation.")
)
}
function createNavigationAbortedError (from, to) {
return createRouterError(
from,
to,
NavigationFailureType.aborted,
("Navigation aborted from \"" + (from.fullPath) + "\" to \"" + (to.fullPath) + "\" via a navigation guard.")
)
}
function createRouterError (from, to, type, message) {
var error = new Error(message);
error._isRouter = true;
error.from = from;
error.to = to;
error.type = type;
return error
}
var propertiesToLog = ['params', 'query', 'hash'];
function stringifyRoute (to) {
if (typeof to === 'string') { return to }
if ('path' in to) { return to.path }
var location = {};
propertiesToLog.forEach(function (key) {
if (key in to) { location[key] = to[key]; }
});
return JSON.stringify(location, null, 2)
}
function isError (err) {
return Object.prototype.toString.call(err).indexOf('Error') > -1
}
function isNavigationFailure (err, errorType) {
return (
isError(err) &&
err._isRouter &&
(errorType == null || err.type === errorType)
)
}
/* */ /* */
function resolveAsyncComponents (matched) { function resolveAsyncComponents (matched) {
@ -2007,33 +2103,6 @@
} }
} }
var NavigationDuplicated = /*@__PURE__*/(function (Error) {
function NavigationDuplicated (normalizedLocation) {
Error.call(this);
this.name = this._name = 'NavigationDuplicated';
// passing the message to super() doesn't seem to work in the transpiled version
this.message = "Navigating to current location (\"" + (normalizedLocation.fullPath) + "\") is not allowed";
// add a stack property so services like Sentry can correctly display it
Object.defineProperty(this, 'stack', {
value: new Error().stack,
writable: true,
configurable: true
});
// we could also have used
// Error.captureStackTrace(this, this.constructor)
// but it only exists on node and chrome
}
if ( Error ) NavigationDuplicated.__proto__ = Error;
NavigationDuplicated.prototype = Object.create( Error && Error.prototype );
NavigationDuplicated.prototype.constructor = NavigationDuplicated;
return NavigationDuplicated;
}(Error));
// support IE9
NavigationDuplicated._name = 'NavigationDuplicated';
/* */ /* */
var History = function History (router, base) { var History = function History (router, base) {
@ -2046,6 +2115,7 @@
this.readyCbs = []; this.readyCbs = [];
this.readyErrorCbs = []; this.readyErrorCbs = [];
this.errorCbs = []; this.errorCbs = [];
this.listeners = [];
}; };
History.prototype.listen = function listen (cb) { History.prototype.listen = function listen (cb) {
@ -2074,13 +2144,27 @@
) { ) {
var this$1 = this; var this$1 = this;
var route = this.router.match(location, this.current); var route;
// catch redirect option https://github.com/vuejs/vue-router/issues/3201
try {
route = this.router.match(location, this.current);
} catch (e) {
this.errorCbs.forEach(function (cb) {
cb(e);
});
// Exception should still be thrown
throw e
}
this.confirmTransition( this.confirmTransition(
route, route,
function () { function () {
var prev = this$1.current;
this$1.updateRoute(route); this$1.updateRoute(route);
onComplete && onComplete(route); onComplete && onComplete(route);
this$1.ensureURL(); this$1.ensureURL();
this$1.router.afterHooks.forEach(function (hook) {
hook && hook(route, prev);
});
// fire ready cbs once // fire ready cbs once
if (!this$1.ready) { if (!this$1.ready) {
@ -2096,9 +2180,17 @@
} }
if (err && !this$1.ready) { if (err && !this$1.ready) {
this$1.ready = true; this$1.ready = true;
this$1.readyErrorCbs.forEach(function (cb) { // Initial redirection should still trigger the onReady onSuccess
cb(err); // https://github.com/vuejs/vue-router/issues/3225
}); if (!isNavigationFailure(err, NavigationFailureType.redirected)) {
this$1.readyErrorCbs.forEach(function (cb) {
cb(err);
});
} else {
this$1.readyCbs.forEach(function (cb) {
cb(route);
});
}
} }
} }
); );
@ -2109,11 +2201,10 @@
var current = this.current; var current = this.current;
var abort = function (err) { var abort = function (err) {
// after merging https://github.com/vuejs/vue-router/pull/2771 we // changed after adding errors with
// When the user navigates through history through back/forward buttons // https://github.com/vuejs/vue-router/pull/3047 before that change,
// we do not want to throw the error. We only throw it if directly calling // redirect and aborted navigation would produce an err == null
// push/replace. That's why it's not included in isError if (!isNavigationFailure(err) && isError(err)) {
if (!isExtendedError(NavigationDuplicated, err) && isError(err)) {
if (this$1.errorCbs.length) { if (this$1.errorCbs.length) {
this$1.errorCbs.forEach(function (cb) { this$1.errorCbs.forEach(function (cb) {
cb(err); cb(err);
@ -2125,13 +2216,16 @@
} }
onAbort && onAbort(err); onAbort && onAbort(err);
}; };
var lastRouteIndex = route.matched.length - 1;
var lastCurrentIndex = current.matched.length - 1;
if ( if (
isSameRoute(route, current) && isSameRoute(route, current) &&
// in the case the route map has been dynamically appended to // in the case the route map has been dynamically appended to
route.matched.length === current.matched.length lastRouteIndex === lastCurrentIndex &&
route.matched[lastRouteIndex] === current.matched[lastCurrentIndex]
) { ) {
this.ensureURL(); this.ensureURL();
return abort(new NavigationDuplicated(route)) return abort(createNavigationDuplicatedError(current, route))
} }
var ref = resolveQueue( var ref = resolveQueue(
@ -2158,12 +2252,15 @@
this.pending = route; this.pending = route;
var iterator = function (hook, next) { var iterator = function (hook, next) {
if (this$1.pending !== route) { if (this$1.pending !== route) {
return abort() return abort(createNavigationCancelledError(current, route))
} }
try { try {
hook(route, current, function (to) { hook(route, current, function (to) {
if (to === false || isError(to)) { if (to === false) {
// next(false) -> abort navigation, ensure current URL // next(false) -> abort navigation, ensure current URL
this$1.ensureURL(true);
abort(createNavigationAbortedError(current, route));
} else if (isError(to)) {
this$1.ensureURL(true); this$1.ensureURL(true);
abort(to); abort(to);
} else if ( } else if (
@ -2172,7 +2269,7 @@
(typeof to.path === 'string' || typeof to.name === 'string')) (typeof to.path === 'string' || typeof to.name === 'string'))
) { ) {
// next('/') or next({ path: '/' }) -> redirect // next('/') or next({ path: '/' }) -> redirect
abort(); abort(createNavigationRedirectedError(current, route));
if (typeof to === 'object' && to.replace) { if (typeof to === 'object' && to.replace) {
this$1.replace(to); this$1.replace(to);
} else { } else {
@ -2197,7 +2294,7 @@
var queue = enterGuards.concat(this$1.router.resolveHooks); var queue = enterGuards.concat(this$1.router.resolveHooks);
runQueue(queue, iterator, function () { runQueue(queue, iterator, function () {
if (this$1.pending !== route) { if (this$1.pending !== route) {
return abort() return abort(createNavigationCancelledError(current, route))
} }
this$1.pending = null; this$1.pending = null;
onComplete(route); onComplete(route);
@ -2213,12 +2310,19 @@
}; };
History.prototype.updateRoute = function updateRoute (route) { History.prototype.updateRoute = function updateRoute (route) {
var prev = this.current;
this.current = route; this.current = route;
this.cb && this.cb(route); this.cb && this.cb(route);
this.router.afterHooks.forEach(function (hook) { };
hook && hook(route, prev);
History.prototype.setupListeners = function setupListeners () {
// Default implementation is empty
};
History.prototype.teardownListeners = function teardownListeners () {
this.listeners.forEach(function (cleanupListener) {
cleanupListener();
}); });
this.listeners = [];
}; };
function normalizeBase (base) { function normalizeBase (base) {
@ -2363,25 +2467,37 @@
var HTML5History = /*@__PURE__*/(function (History) { var HTML5History = /*@__PURE__*/(function (History) {
function HTML5History (router, base) { function HTML5History (router, base) {
var this$1 = this;
History.call(this, router, base); History.call(this, router, base);
this._startLocation = getLocation(this.base);
}
if ( History ) HTML5History.__proto__ = History;
HTML5History.prototype = Object.create( History && History.prototype );
HTML5History.prototype.constructor = HTML5History;
HTML5History.prototype.setupListeners = function setupListeners () {
var this$1 = this;
if (this.listeners.length > 0) {
return
}
var router = this.router;
var expectScroll = router.options.scrollBehavior; var expectScroll = router.options.scrollBehavior;
var supportsScroll = supportsPushState && expectScroll; var supportsScroll = supportsPushState && expectScroll;
if (supportsScroll) { if (supportsScroll) {
setupScroll(); this.listeners.push(setupScroll());
} }
var initLocation = getLocation(this.base); var handleRoutingEvent = function () {
window.addEventListener('popstate', function (e) {
var current = this$1.current; var current = this$1.current;
// Avoiding first `popstate` event dispatched in some browsers but first // Avoiding first `popstate` event dispatched in some browsers but first
// history route not updated since async guard at the same time. // history route not updated since async guard at the same time.
var location = getLocation(this$1.base); var location = getLocation(this$1.base);
if (this$1.current === START && location === initLocation) { if (this$1.current === START && location === this$1._startLocation) {
return return
} }
@ -2390,12 +2506,12 @@
handleScroll(router, route, current, true); handleScroll(router, route, current, true);
} }
}); });
};
window.addEventListener('popstate', handleRoutingEvent);
this.listeners.push(function () {
window.removeEventListener('popstate', handleRoutingEvent);
}); });
} };
if ( History ) HTML5History.__proto__ = History;
HTML5History.prototype = Object.create( History && History.prototype );
HTML5History.prototype.constructor = HTML5History;
HTML5History.prototype.go = function go (n) { HTML5History.prototype.go = function go (n) {
window.history.go(n); window.history.go(n);
@ -2441,7 +2557,7 @@
function getLocation (base) { function getLocation (base) {
var path = decodeURI(window.location.pathname); var path = decodeURI(window.location.pathname);
if (base && path.indexOf(base) === 0) { if (base && path.toLowerCase().indexOf(base.toLowerCase()) === 0) {
path = path.slice(base.length); path = path.slice(base.length);
} }
return (path || '/') + window.location.search + window.location.hash return (path || '/') + window.location.search + window.location.hash
@ -2468,31 +2584,40 @@
HashHistory.prototype.setupListeners = function setupListeners () { HashHistory.prototype.setupListeners = function setupListeners () {
var this$1 = this; var this$1 = this;
if (this.listeners.length > 0) {
return
}
var router = this.router; var router = this.router;
var expectScroll = router.options.scrollBehavior; var expectScroll = router.options.scrollBehavior;
var supportsScroll = supportsPushState && expectScroll; var supportsScroll = supportsPushState && expectScroll;
if (supportsScroll) { if (supportsScroll) {
setupScroll(); this.listeners.push(setupScroll());
} }
window.addEventListener( var handleRoutingEvent = function () {
supportsPushState ? 'popstate' : 'hashchange', var current = this$1.current;
function () { if (!ensureSlash()) {
var current = this$1.current; return
if (!ensureSlash()) {
return
}
this$1.transitionTo(getHash(), function (route) {
if (supportsScroll) {
handleScroll(this$1.router, route, current, true);
}
if (!supportsPushState) {
replaceHash(route.fullPath);
}
});
} }
this$1.transitionTo(getHash(), function (route) {
if (supportsScroll) {
handleScroll(this$1.router, route, current, true);
}
if (!supportsPushState) {
replaceHash(route.fullPath);
}
});
};
var eventType = supportsPushState ? 'popstate' : 'hashchange';
window.addEventListener(
eventType,
handleRoutingEvent
); );
this.listeners.push(function () {
window.removeEventListener(eventType, handleRoutingEvent);
});
}; };
HashHistory.prototype.push = function push (location, onComplete, onAbort) { HashHistory.prototype.push = function push (location, onComplete, onAbort) {
@ -2665,7 +2790,7 @@
this$1.updateRoute(route); this$1.updateRoute(route);
}, },
function (err) { function (err) {
if (isExtendedError(NavigationDuplicated, err)) { if (isNavigationFailure(err, NavigationFailureType.duplicated)) {
this$1.index = targetIndex; this$1.index = targetIndex;
} }
} }
@ -2686,8 +2811,6 @@
/* */ /* */
var VueRouter = function VueRouter (options) { var VueRouter = function VueRouter (options) {
if ( options === void 0 ) options = {}; if ( options === void 0 ) options = {};
@ -2700,7 +2823,8 @@
this.matcher = createMatcher(options.routes || [], this); this.matcher = createMatcher(options.routes || [], this);
var mode = options.mode || 'hash'; var mode = options.mode || 'hash';
this.fallback = mode === 'history' && !supportsPushState && options.fallback !== false; this.fallback =
mode === 'history' && !supportsPushState && options.fallback !== false;
if (this.fallback) { if (this.fallback) {
mode = 'hash'; mode = 'hash';
} }
@ -2728,11 +2852,7 @@
var prototypeAccessors = { currentRoute: { configurable: true } }; var prototypeAccessors = { currentRoute: { configurable: true } };
VueRouter.prototype.match = function match ( VueRouter.prototype.match = function match (raw, current, redirectedFrom) {
raw,
current,
redirectedFrom
) {
return this.matcher.match(raw, current, redirectedFrom) return this.matcher.match(raw, current, redirectedFrom)
}; };
@ -2743,11 +2863,12 @@
VueRouter.prototype.init = function init (app /* Vue component instance */) { VueRouter.prototype.init = function init (app /* Vue component instance */) {
var this$1 = this; var this$1 = this;
assert(
install.installed, assert(
"not installed. Make sure to call `Vue.use(VueRouter)` " + install.installed,
"before creating root instance." "not installed. Make sure to call `Vue.use(VueRouter)` " +
); "before creating root instance."
);
this.apps.push(app); this.apps.push(app);
@ -2760,6 +2881,12 @@
// ensure we still have a main app or null if no apps // ensure we still have a main app or null if no apps
// we do not release the router so it can be reused // we do not release the router so it can be reused
if (this$1.app === app) { this$1.app = this$1.apps[0] || null; } if (this$1.app === app) { this$1.app = this$1.apps[0] || null; }
if (!this$1.app) {
// clean up event listeners
// https://github.com/vuejs/vue-router/issues/2341
this$1.history.teardownListeners();
}
}); });
// main app previously initialized // main app previously initialized
@ -2772,16 +2899,24 @@
var history = this.history; var history = this.history;
if (history instanceof HTML5History) { if (history instanceof HTML5History || history instanceof HashHistory) {
history.transitionTo(history.getCurrentLocation()); var handleInitialScroll = function (routeOrError) {
} else if (history instanceof HashHistory) { var from = history.current;
var setupHashListener = function () { var expectScroll = this$1.options.scrollBehavior;
var supportsScroll = supportsPushState && expectScroll;
if (supportsScroll && 'fullPath' in routeOrError) {
handleScroll(this$1, routeOrError, from, false);
}
};
var setupListeners = function (routeOrError) {
history.setupListeners(); history.setupListeners();
handleInitialScroll(routeOrError);
}; };
history.transitionTo( history.transitionTo(
history.getCurrentLocation(), history.getCurrentLocation(),
setupHashListener, setupListeners,
setupHashListener setupListeners
); );
} }
@ -2859,11 +2994,14 @@
if (!route) { if (!route) {
return [] return []
} }
return [].concat.apply([], route.matched.map(function (m) { return [].concat.apply(
return Object.keys(m.components).map(function (key) { [],
return m.components[key] route.matched.map(function (m) {
return Object.keys(m.components).map(function (key) {
return m.components[key]
})
}) })
})) )
}; };
VueRouter.prototype.resolve = function resolve ( VueRouter.prototype.resolve = function resolve (
@ -2872,12 +3010,7 @@
append append
) { ) {
current = current || this.history.current; current = current || this.history.current;
var location = normalizeLocation( var location = normalizeLocation(to, current, append, this);
to,
current,
append,
this
);
var route = this.match(location, current); var route = this.match(location, current);
var fullPath = route.redirectedFrom || route.fullPath; var fullPath = route.redirectedFrom || route.fullPath;
var base = this.history.base; var base = this.history.base;
@ -2915,7 +3048,9 @@
} }
VueRouter.install = install; VueRouter.install = install;
VueRouter.version = '3.1.6'; VueRouter.version = '3.4.3';
VueRouter.isNavigationFailure = isNavigationFailure;
VueRouter.NavigationFailureType = NavigationFailureType;
if (inBrowser && window.Vue) { if (inBrowser && window.Vue) {
window.Vue.use(VueRouter); window.Vue.use(VueRouter);

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,6 @@
/*! /*!
* Vue.js v2.6.11 * Vue.js v2.6.12
* (c) 2014-2019 Evan You * (c) 2014-2020 Evan You
* Released under the MIT License. * Released under the MIT License.
*/ */
(function (global, factory) { (function (global, factory) {
@ -5443,7 +5443,7 @@
value: FunctionalRenderContext value: FunctionalRenderContext
}); });
Vue.version = '2.6.11'; Vue.version = '2.6.12';
/* */ /* */
@ -7649,7 +7649,7 @@
// skip the update if old and new VDOM state is the same. // skip the update if old and new VDOM state is the same.
// `value` is handled separately because the DOM value may be temporarily // `value` is handled separately because the DOM value may be temporarily
// out of sync with VDOM state due to focus, composition and modifiers. // out of sync with VDOM state due to focus, composition and modifiers.
// This #4521 by skipping the unnecesarry `checked` update. // This #4521 by skipping the unnecessary `checked` update.
cur !== oldProps[key] cur !== oldProps[key]
) { ) {
// some property updates can throw // some property updates can throw
@ -9894,7 +9894,7 @@
} }
}, },
comment: function comment (text, start, end) { comment: function comment (text, start, end) {
// adding anyting as a sibling to the root node is forbidden // adding anything as a sibling to the root node is forbidden
// comments should still be allowed, but ignored // comments should still be allowed, but ignored
if (currentParent) { if (currentParent) {
var child = { var child = {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,5 @@
/** /*!
* vuex v3.1.3 * vuex v3.5.1
* (c) 2020 Evan You * (c) 2020 Evan You
* @license MIT * @license MIT
*/ */
@ -7,7 +7,7 @@
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
typeof define === 'function' && define.amd ? define(factory) : typeof define === 'function' && define.amd ? define(factory) :
(global = global || self, global.Vuex = factory()); (global = global || self, global.Vuex = factory());
}(this, function () { 'use strict'; }(this, (function () { 'use strict';
function applyMixin (Vue) { function applyMixin (Vue) {
var version = Number(Vue.version.split('.')[0]); var version = Number(Vue.version.split('.')[0]);
@ -65,7 +65,11 @@
store.subscribe(function (mutation, state) { store.subscribe(function (mutation, state) {
devtoolHook.emit('vuex:mutation', mutation, state); devtoolHook.emit('vuex:mutation', mutation, state);
}); }, { prepend: true });
store.subscribeAction(function (action, state) {
devtoolHook.emit('vuex:action', action, state);
}, { prepend: true });
} }
/** /**
@ -76,6 +80,47 @@
* @param {Function} f * @param {Function} f
* @return {*} * @return {*}
*/ */
function find (list, f) {
return list.filter(f)[0]
}
/**
* Deep copy the given object considering circular structure.
* This function caches all nested objects and its copies.
* If it detects circular structure, use cached copy to avoid infinite loop.
*
* @param {*} obj
* @param {Array<Object>} cache
* @return {*}
*/
function deepCopy (obj, cache) {
if ( cache === void 0 ) cache = [];
// just return if obj is immutable value
if (obj === null || typeof obj !== 'object') {
return obj
}
// if obj is hit, it is in circular structure
var hit = find(cache, function (c) { return c.original === obj; });
if (hit) {
return hit.copy
}
var copy = Array.isArray(obj) ? [] : {};
// put the copy into cache at first
// because we want to refer it in recursive deepCopy
cache.push({
original: obj,
copy: copy
});
Object.keys(obj).forEach(function (key) {
copy[key] = deepCopy(obj[key], cache);
});
return copy
}
/** /**
* forEach for object * forEach for object
@ -133,6 +178,10 @@
return this._children[key] return this._children[key]
}; };
Module.prototype.hasChild = function hasChild (key) {
return key in this._children
};
Module.prototype.update = function update (rawModule) { Module.prototype.update = function update (rawModule) {
this._rawModule.namespaced = rawModule.namespaced; this._rawModule.namespaced = rawModule.namespaced;
if (rawModule.actions) { if (rawModule.actions) {
@ -220,11 +269,32 @@
ModuleCollection.prototype.unregister = function unregister (path) { ModuleCollection.prototype.unregister = function unregister (path) {
var parent = this.get(path.slice(0, -1)); var parent = this.get(path.slice(0, -1));
var key = path[path.length - 1]; var key = path[path.length - 1];
if (!parent.getChild(key).runtime) { return } var child = parent.getChild(key);
if (!child) {
{
console.warn(
"[vuex] trying to unregister module '" + key + "', which is " +
"not registered"
);
}
return
}
if (!child.runtime) {
return
}
parent.removeChild(key); parent.removeChild(key);
}; };
ModuleCollection.prototype.isRegistered = function isRegistered (path) {
var parent = this.get(path.slice(0, -1));
var key = path[path.length - 1];
return parent.hasChild(key)
};
function update (path, targetModule, newModule) { function update (path, targetModule, newModule) {
{ {
assertRawModule(path, newModule); assertRawModule(path, newModule);
@ -404,6 +474,7 @@
.forEach(function (sub) { return sub(mutation, this$1.state); }); .forEach(function (sub) { return sub(mutation, this$1.state); });
if ( if (
options && options.silent options && options.silent
) { ) {
console.warn( console.warn(
@ -446,28 +517,42 @@
? Promise.all(entry.map(function (handler) { return handler(payload); })) ? Promise.all(entry.map(function (handler) { return handler(payload); }))
: entry[0](payload); : entry[0](payload);
return result.then(function (res) { return new Promise(function (resolve, reject) {
try { result.then(function (res) {
this$1._actionSubscribers try {
.filter(function (sub) { return sub.after; }) this$1._actionSubscribers
.forEach(function (sub) { return sub.after(action, this$1.state); }); .filter(function (sub) { return sub.after; })
} catch (e) { .forEach(function (sub) { return sub.after(action, this$1.state); });
{ } catch (e) {
console.warn("[vuex] error in after action subscribers: "); {
console.error(e); console.warn("[vuex] error in after action subscribers: ");
console.error(e);
}
} }
} resolve(res);
return res }, function (error) {
try {
this$1._actionSubscribers
.filter(function (sub) { return sub.error; })
.forEach(function (sub) { return sub.error(action, this$1.state, error); });
} catch (e) {
{
console.warn("[vuex] error in error action subscribers: ");
console.error(e);
}
}
reject(error);
});
}) })
}; };
Store.prototype.subscribe = function subscribe (fn) { Store.prototype.subscribe = function subscribe (fn, options) {
return genericSubscribe(fn, this._subscribers) return genericSubscribe(fn, this._subscribers, options)
}; };
Store.prototype.subscribeAction = function subscribeAction (fn) { Store.prototype.subscribeAction = function subscribeAction (fn, options) {
var subs = typeof fn === 'function' ? { before: fn } : fn; var subs = typeof fn === 'function' ? { before: fn } : fn;
return genericSubscribe(subs, this._actionSubscribers) return genericSubscribe(subs, this._actionSubscribers, options)
}; };
Store.prototype.watch = function watch (getter, cb, options) { Store.prototype.watch = function watch (getter, cb, options) {
@ -520,6 +605,16 @@
resetStore(this); resetStore(this);
}; };
Store.prototype.hasModule = function hasModule (path) {
if (typeof path === 'string') { path = [path]; }
{
assert(Array.isArray(path), "module path must be a string or an Array.");
}
return this._modules.isRegistered(path)
};
Store.prototype.hotUpdate = function hotUpdate (newOptions) { Store.prototype.hotUpdate = function hotUpdate (newOptions) {
this._modules.update(newOptions); this._modules.update(newOptions);
resetStore(this, true); resetStore(this, true);
@ -534,9 +629,11 @@
Object.defineProperties( Store.prototype, prototypeAccessors$1 ); Object.defineProperties( Store.prototype, prototypeAccessors$1 );
function genericSubscribe (fn, subs) { function genericSubscribe (fn, subs, options) {
if (subs.indexOf(fn) < 0) { if (subs.indexOf(fn) < 0) {
subs.push(fn); options && options.prepend
? subs.unshift(fn)
: subs.push(fn);
} }
return function () { return function () {
var i = subs.indexOf(fn); var i = subs.indexOf(fn);
@ -614,7 +711,7 @@
// register in namespace map // register in namespace map
if (module.namespaced) { if (module.namespaced) {
if (store._modulesNamespaceMap[namespace] && "development" !== 'production') { if (store._modulesNamespaceMap[namespace] && true) {
console.error(("[vuex] duplicate namespace " + namespace + " for the namespaced module " + (path.join('/')))); console.error(("[vuex] duplicate namespace " + namespace + " for the namespaced module " + (path.join('/'))));
} }
store._modulesNamespaceMap[namespace] = module; store._modulesNamespaceMap[namespace] = module;
@ -675,7 +772,7 @@
if (!options || !options.root) { if (!options || !options.root) {
type = namespace + type; type = namespace + type;
if (!store._actions[type]) { if ( !store._actions[type]) {
console.error(("[vuex] unknown local action type: " + (args.type) + ", global type: " + type)); console.error(("[vuex] unknown local action type: " + (args.type) + ", global type: " + type));
return return
} }
@ -692,7 +789,7 @@
if (!options || !options.root) { if (!options || !options.root) {
type = namespace + type; type = namespace + type;
if (!store._mutations[type]) { if ( !store._mutations[type]) {
console.error(("[vuex] unknown local mutation type: " + (args.type) + ", global type: " + type)); console.error(("[vuex] unknown local mutation type: " + (args.type) + ", global type: " + type));
return return
} }
@ -839,7 +936,7 @@
*/ */
var mapState = normalizeNamespace(function (namespace, states) { var mapState = normalizeNamespace(function (namespace, states) {
var res = {}; var res = {};
if (!isValidMap(states)) { if ( !isValidMap(states)) {
console.error('[vuex] mapState: mapper parameter must be either an Array or an Object'); console.error('[vuex] mapState: mapper parameter must be either an Array or an Object');
} }
normalizeMap(states).forEach(function (ref) { normalizeMap(states).forEach(function (ref) {
@ -875,7 +972,7 @@
*/ */
var mapMutations = normalizeNamespace(function (namespace, mutations) { var mapMutations = normalizeNamespace(function (namespace, mutations) {
var res = {}; var res = {};
if (!isValidMap(mutations)) { if ( !isValidMap(mutations)) {
console.error('[vuex] mapMutations: mapper parameter must be either an Array or an Object'); console.error('[vuex] mapMutations: mapper parameter must be either an Array or an Object');
} }
normalizeMap(mutations).forEach(function (ref) { normalizeMap(mutations).forEach(function (ref) {
@ -911,7 +1008,7 @@
*/ */
var mapGetters = normalizeNamespace(function (namespace, getters) { var mapGetters = normalizeNamespace(function (namespace, getters) {
var res = {}; var res = {};
if (!isValidMap(getters)) { if ( !isValidMap(getters)) {
console.error('[vuex] mapGetters: mapper parameter must be either an Array or an Object'); console.error('[vuex] mapGetters: mapper parameter must be either an Array or an Object');
} }
normalizeMap(getters).forEach(function (ref) { normalizeMap(getters).forEach(function (ref) {
@ -924,7 +1021,7 @@
if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) { if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {
return return
} }
if (!(val in this.$store.getters)) { if ( !(val in this.$store.getters)) {
console.error(("[vuex] unknown getter: " + val)); console.error(("[vuex] unknown getter: " + val));
return return
} }
@ -944,7 +1041,7 @@
*/ */
var mapActions = normalizeNamespace(function (namespace, actions) { var mapActions = normalizeNamespace(function (namespace, actions) {
var res = {}; var res = {};
if (!isValidMap(actions)) { if ( !isValidMap(actions)) {
console.error('[vuex] mapActions: mapper parameter must be either an Array or an Object'); console.error('[vuex] mapActions: mapper parameter must be either an Array or an Object');
} }
normalizeMap(actions).forEach(function (ref) { normalizeMap(actions).forEach(function (ref) {
@ -1035,23 +1132,115 @@
*/ */
function getModuleByNamespace (store, helper, namespace) { function getModuleByNamespace (store, helper, namespace) {
var module = store._modulesNamespaceMap[namespace]; var module = store._modulesNamespaceMap[namespace];
if (!module) { if ( !module) {
console.error(("[vuex] module namespace not found in " + helper + "(): " + namespace)); console.error(("[vuex] module namespace not found in " + helper + "(): " + namespace));
} }
return module return module
} }
var index = { // Credits: borrowed code from fcomb/redux-logger
function createLogger (ref) {
if ( ref === void 0 ) ref = {};
var collapsed = ref.collapsed; if ( collapsed === void 0 ) collapsed = true;
var filter = ref.filter; if ( filter === void 0 ) filter = function (mutation, stateBefore, stateAfter) { return true; };
var transformer = ref.transformer; if ( transformer === void 0 ) transformer = function (state) { return state; };
var mutationTransformer = ref.mutationTransformer; if ( mutationTransformer === void 0 ) mutationTransformer = function (mut) { return mut; };
var actionFilter = ref.actionFilter; if ( actionFilter === void 0 ) actionFilter = function (action, state) { return true; };
var actionTransformer = ref.actionTransformer; if ( actionTransformer === void 0 ) actionTransformer = function (act) { return act; };
var logMutations = ref.logMutations; if ( logMutations === void 0 ) logMutations = true;
var logActions = ref.logActions; if ( logActions === void 0 ) logActions = true;
var logger = ref.logger; if ( logger === void 0 ) logger = console;
return function (store) {
var prevState = deepCopy(store.state);
if (typeof logger === 'undefined') {
return
}
if (logMutations) {
store.subscribe(function (mutation, state) {
var nextState = deepCopy(state);
if (filter(mutation, prevState, nextState)) {
var formattedTime = getFormattedTime();
var formattedMutation = mutationTransformer(mutation);
var message = "mutation " + (mutation.type) + formattedTime;
startMessage(logger, message, collapsed);
logger.log('%c prev state', 'color: #9E9E9E; font-weight: bold', transformer(prevState));
logger.log('%c mutation', 'color: #03A9F4; font-weight: bold', formattedMutation);
logger.log('%c next state', 'color: #4CAF50; font-weight: bold', transformer(nextState));
endMessage(logger);
}
prevState = nextState;
});
}
if (logActions) {
store.subscribeAction(function (action, state) {
if (actionFilter(action, state)) {
var formattedTime = getFormattedTime();
var formattedAction = actionTransformer(action);
var message = "action " + (action.type) + formattedTime;
startMessage(logger, message, collapsed);
logger.log('%c action', 'color: #03A9F4; font-weight: bold', formattedAction);
endMessage(logger);
}
});
}
}
}
function startMessage (logger, message, collapsed) {
var startMessage = collapsed
? logger.groupCollapsed
: logger.group;
// render
try {
startMessage.call(logger, message);
} catch (e) {
logger.log(message);
}
}
function endMessage (logger) {
try {
logger.groupEnd();
} catch (e) {
logger.log('—— log end ——');
}
}
function getFormattedTime () {
var time = new Date();
return (" @ " + (pad(time.getHours(), 2)) + ":" + (pad(time.getMinutes(), 2)) + ":" + (pad(time.getSeconds(), 2)) + "." + (pad(time.getMilliseconds(), 3)))
}
function repeat (str, times) {
return (new Array(times + 1)).join(str)
}
function pad (num, maxLength) {
return repeat('0', maxLength - num.toString().length) + num
}
var index_cjs = {
Store: Store, Store: Store,
install: install, install: install,
version: '3.1.3', version: '3.5.1',
mapState: mapState, mapState: mapState,
mapMutations: mapMutations, mapMutations: mapMutations,
mapGetters: mapGetters, mapGetters: mapGetters,
mapActions: mapActions, mapActions: mapActions,
createNamespacedHelpers: createNamespacedHelpers createNamespacedHelpers: createNamespacedHelpers,
createLogger: createLogger
}; };
return index; return index_cjs;
})); })));

File diff suppressed because one or more lines are too long

View File

@ -5,7 +5,7 @@
<link <link
rel="stylesheet" rel="stylesheet"
type="text/css" type="text/css"
href="{{ url_for('static', filename='vendor/quasar@1.10.4/quasar.min.css') }}" href="{{ url_for('static', filename='vendor/quasar@1.13.2/quasar.min.css') }}"
/> />
{% assets 'base_css' %} {% assets 'base_css' %}
<link rel="stylesheet" type="text/css" href="{{ ASSET_URL }}" /> <link rel="stylesheet" type="text/css" href="{{ ASSET_URL }}" />
@ -109,17 +109,17 @@
</q-layout> </q-layout>
{% block vue_templates %}{% endblock %} {% if DEBUG %} {% block vue_templates %}{% endblock %} {% if DEBUG %}
<script src="{{ url_for('static', filename='vendor/vue@2.6.11/vue.js') }}"></script> <script src="{{ url_for('static', filename='vendor/vue@2.6.12/vue.js') }}"></script>
<script src="{{ url_for('static', filename='vendor/vue-router@3.1.6/vue-router.js') }}"></script> <script src="{{ url_for('static', filename='vendor/vuex@3.5.1/vuex.js') }}"></script>
<script src="{{ url_for('static', filename='vendor/vuex@3.1.3/vuex.js') }}"></script> <script src="{{ url_for('static', filename='vendor/vue-router@3.4.3/vue-router.js') }}"></script>
<script src="{{ url_for('static', filename='vendor/quasar@1.10.4/quasar.umd.js') }}"></script> <script src="{{ url_for('static', filename='vendor/quasar@1.13.2/quasar.umd.js') }}"></script>
{% else %} {% assets output='__bundle__/vue.js', {% else %} {% assets output='__bundle__/vue.js',
'vendor/quasar@1.10.4/quasar.ie.polyfills.umd.min.js', 'vendor/quasar@1.13.2/quasar.ie.polyfills.umd.min.js',
'vendor/vue@2.6.11/vue.min.js', 'vendor/vue-router@3.1.6/vue-router.min.js', 'vendor/vue@2.6.12/vue.min.js', 'vendor/vue-router@3.4.3/vue-router.min.js',
'vendor/vuex@3.1.3/vuex.min.js', 'vendor/quasar@1.10.4/quasar.umd.min.js' %} 'vendor/vuex@3.5.1/vuex.min.js', 'vendor/quasar@1.13.2/quasar.umd.min.js' %}
<script type="text/javascript" src="{{ ASSET_URL }}"></script> <script type="text/javascript" src="{{ ASSET_URL }}"></script>
{% endassets %} {% endif %} {% assets filters='rjsmin', {% endassets %} {% endif %} {% assets filters='rjsmin',
output='__bundle__/base.js', 'vendor/axios@0.19.2/axios.min.js', output='__bundle__/base.js', 'vendor/axios@0.20.0/axios.min.js',
'vendor/underscore@1.10.2/underscore.min.js', 'js/base.js', 'vendor/underscore@1.10.2/underscore.min.js', 'js/base.js',
'js/components.js' %} 'js/components.js' %}
<script type="text/javascript" src="{{ ASSET_URL }}"></script> <script type="text/javascript" src="{{ ASSET_URL }}"></script>

View File

@ -39,11 +39,11 @@
</q-layout> </q-layout>
{% if DEBUG %} {% if DEBUG %}
<script src="{{ url_for('static', filename='vendor/vue@2.6.11/vue.js') }}"></script> <script src="{{ url_for('static', filename='vendor/vue@2.6.12/vue.js') }}"></script>
<script src="{{ url_for('static', filename='vendor/quasar@1.10.4/quasar.umd.js') }}"></script> <script src="{{ url_for('static', filename='vendor/quasar@1.13.2/quasar.umd.js') }}"></script>
{% else %} {% assets output='__bundle__/vue-print.js', {% else %} {% assets output='__bundle__/vue-print.js',
'vendor/quasar@1.10.4/quasar.ie.polyfills.umd.min.js', 'vendor/quasar@1.13.2/quasar.ie.polyfills.umd.min.js',
'vendor/vue@2.6.11/vue.min.js', 'vendor/quasar@1.10.4/quasar.umd.min.js' %} 'vendor/vue@2.6.12/vue.min.js', 'vendor/quasar@1.13.2/quasar.umd.min.js' %}
<script type="text/javascript" src="{{ ASSET_URL }}"></script> <script type="text/javascript" src="{{ ASSET_URL }}"></script>
{% endassets %} {% endif %} {% block scripts %}{% endblock %} {% endassets %} {% endif %} {% block scripts %}{% endblock %}
</body> </body>