feat: update npm packages use terser to minify (#3614)

This commit is contained in:
dni ⚡ 2025-12-04 08:20:01 +01:00 committed by GitHub
parent af9331eede
commit 5213508dc1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
21 changed files with 6975 additions and 6185 deletions

View file

@ -23,7 +23,7 @@ repos:
- id: ruff
args: [ --fix, --exit-non-zero-on-fix ]
- repo: https://github.com/rbubley/mirrors-prettier
rev: v3.6.2
rev: v3.7.4
hooks:
- id: prettier
types_or: [css, javascript, html, json]

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

@ -473,7 +473,6 @@ function confettiStars() {
F = t.width * I.x,
N = t.height * I.y;
E--;
)
S.push(
((o = {

View file

@ -1,6 +1,7 @@
@use 'sass:color';
@use 'themes';
@each $theme, $colors in $themes {
@each $theme, $colors in themes.$themes {
body[data-theme='#{$theme}'] {
@each $name, $color in $colors {
@if $name== 'dark' {

View file

@ -1,7 +1,7 @@
@import 'themes';
@import 'borders';
@import 'background';
@import 'home';
@use 'themes';
@use 'borders';
@use 'background';
@use 'home';
[v-cloak] {
display: none;

View file

@ -1,4 +1,6 @@
@each $theme, $colors in $themes {
@use 'themes';
@each $theme, $colors in themes.$themes {
@each $name, $color in $colors {
@if $name== 'primary' {
body[data-theme='#{$theme}'].neon-border {

View file

@ -1,4 +1,4 @@
/*! Axios v1.12.0 Copyright (c) 2025 Matt Zabriskie and contributors */
/*! Axios v1.13.2 Copyright (c) 2025 Matt Zabriskie and contributors */
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
typeof define === 'function' && define.amd ? define(factory) :
@ -668,6 +668,13 @@
};
}
/**
* Create a bound version of a function with a specified `this` context
*
* @param {Function} fn - The function to bind
* @param {*} thisArg - The value to be passed as the `this` parameter
* @returns {Function} A new function that will call the original function with the specified `this` context
*/
function bind(fn, thisArg) {
return function wrap() {
return fn.apply(thisArg, arguments);
@ -1031,11 +1038,9 @@
result[targetKey] = merge({}, val);
} else if (isArray(val)) {
result[targetKey] = val.slice();
} else {
if (!skipUndefined || !isUndefined(val)) {
} else if (!skipUndefined || !isUndefined(val)) {
result[targetKey] = val;
}
}
};
for (var i = 0, l = arguments.length; i < l; i++) {
arguments[i] && forEach(arguments[i], assignValue);
@ -1833,7 +1838,7 @@
*
* @param {Number} id The ID that was returned by `use`
*
* @returns {Boolean} `true` if the interceptor was removed, `false` otherwise
* @returns {void}
*/
}, {
key: "eject",
@ -2704,20 +2709,33 @@
var cookies = platform.hasStandardBrowserEnv ?
// Standard browser envs support document.cookie
{
write: function write(name, value, expires, path, domain, secure) {
var cookie = [name + '=' + encodeURIComponent(value)];
utils$1.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());
utils$1.isString(path) && cookie.push('path=' + path);
utils$1.isString(domain) && cookie.push('domain=' + domain);
secure === true && cookie.push('secure');
write: function write(name, value, expires, path, domain, secure, sameSite) {
if (typeof document === 'undefined') return;
var cookie = ["".concat(name, "=").concat(encodeURIComponent(value))];
if (utils$1.isNumber(expires)) {
cookie.push("expires=".concat(new Date(expires).toUTCString()));
}
if (utils$1.isString(path)) {
cookie.push("path=".concat(path));
}
if (utils$1.isString(domain)) {
cookie.push("domain=".concat(domain));
}
if (secure === true) {
cookie.push('secure');
}
if (utils$1.isString(sameSite)) {
cookie.push("SameSite=".concat(sameSite));
}
document.cookie = cookie.join('; ');
},
read: function read(name) {
var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)'));
return match ? decodeURIComponent(match[3]) : null;
if (typeof document === 'undefined') return null;
var match = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)'));
return match ? decodeURIComponent(match[1]) : null;
},
remove: function remove(name) {
this.write(name, '', Date.now() - 86400000);
this.write(name, '', Date.now() - 86400000, '/');
}
} :
// Non-standard browser env (web workers, react-native) lack needed support.
@ -3353,11 +3371,9 @@
var DEFAULT_CHUNK_SIZE = 64 * 1024;
var isFunction = utils$1.isFunction;
var globalFetchAPI = function (_ref) {
var fetch = _ref.fetch,
Request = _ref.Request,
var Request = _ref.Request,
Response = _ref.Response;
return {
fetch: fetch,
Request: Request,
Response: Response
};
@ -3376,11 +3392,14 @@
}
};
var factory = function factory(env) {
var _Object$assign = Object.assign({}, globalFetchAPI, env),
fetch = _Object$assign.fetch,
Request = _Object$assign.Request,
Response = _Object$assign.Response;
var isFetchSupported = isFunction(fetch);
env = utils$1.merge.call({
skipUndefined: true
}, globalFetchAPI, env);
var _env = env,
envFetch = _env.fetch,
Request = _env.Request,
Response = _env.Response;
var isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';
var isRequestSupported = isFunction(Request);
var isResponseSupported = isFunction(Response);
if (!isFetchSupported) {
@ -3521,31 +3540,32 @@
}();
return /*#__PURE__*/function () {
var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(config) {
var _resolveConfig, url, method, data, signal, cancelToken, timeout, onDownloadProgress, onUploadProgress, responseType, headers, _resolveConfig$withCr, withCredentials, fetchOptions, composedSignal, request, unsubscribe, requestContentLength, _request, contentTypeHeader, _progressEventDecorat, _progressEventDecorat2, onProgress, flush, isCredentialsSupported, resolvedOptions, response, isStreamResponse, options, responseContentLength, _ref6, _ref7, _onProgress, _flush, responseData;
var _resolveConfig, url, method, data, signal, cancelToken, timeout, onDownloadProgress, onUploadProgress, responseType, headers, _resolveConfig$withCr, withCredentials, fetchOptions, _fetch, composedSignal, request, unsubscribe, requestContentLength, _request, contentTypeHeader, _progressEventDecorat, _progressEventDecorat2, onProgress, flush, isCredentialsSupported, resolvedOptions, response, isStreamResponse, options, responseContentLength, _ref6, _ref7, _onProgress, _flush, responseData;
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
while (1) switch (_context4.prev = _context4.next) {
case 0:
_resolveConfig = resolveConfig(config), url = _resolveConfig.url, method = _resolveConfig.method, data = _resolveConfig.data, signal = _resolveConfig.signal, cancelToken = _resolveConfig.cancelToken, timeout = _resolveConfig.timeout, onDownloadProgress = _resolveConfig.onDownloadProgress, onUploadProgress = _resolveConfig.onUploadProgress, responseType = _resolveConfig.responseType, headers = _resolveConfig.headers, _resolveConfig$withCr = _resolveConfig.withCredentials, withCredentials = _resolveConfig$withCr === void 0 ? 'same-origin' : _resolveConfig$withCr, fetchOptions = _resolveConfig.fetchOptions;
_fetch = envFetch || fetch;
responseType = responseType ? (responseType + '').toLowerCase() : 'text';
composedSignal = composeSignals$1([signal, cancelToken && cancelToken.toAbortSignal()], timeout);
request = null;
unsubscribe = composedSignal && composedSignal.unsubscribe && function () {
composedSignal.unsubscribe();
};
_context4.prev = 5;
_context4.prev = 6;
_context4.t0 = onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head';
if (!_context4.t0) {
_context4.next = 12;
_context4.next = 13;
break;
}
_context4.next = 10;
_context4.next = 11;
return resolveBodyLength(headers, data);
case 10:
case 11:
_context4.t1 = requestContentLength = _context4.sent;
_context4.t0 = _context4.t1 !== 0;
case 12:
case 13:
if (!_context4.t0) {
_context4.next = 16;
_context4.next = 17;
break;
}
_request = new Request(url, {
@ -3560,7 +3580,7 @@
_progressEventDecorat = progressEventDecorator(requestContentLength, progressEventReducer(asyncDecorator(onUploadProgress))), _progressEventDecorat2 = _slicedToArray(_progressEventDecorat, 2), onProgress = _progressEventDecorat2[0], flush = _progressEventDecorat2[1];
data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);
}
case 16:
case 17:
if (!utils$1.isString(withCredentials)) {
withCredentials = withCredentials ? 'include' : 'omit';
}
@ -3577,9 +3597,9 @@
credentials: isCredentialsSupported ? withCredentials : undefined
});
request = isRequestSupported && new Request(url, resolvedOptions);
_context4.next = 22;
return isRequestSupported ? fetch(request, fetchOptions) : fetch(url, resolvedOptions);
case 22:
_context4.next = 23;
return isRequestSupported ? _fetch(request, fetchOptions) : _fetch(url, resolvedOptions);
case 23:
response = _context4.sent;
isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');
if (supportsResponseStream && (onDownloadProgress || isStreamResponse && unsubscribe)) {
@ -3595,12 +3615,12 @@
}), options);
}
responseType = responseType || 'text';
_context4.next = 28;
_context4.next = 29;
return resolvers[utils$1.findKey(resolvers, responseType) || 'text'](response, config);
case 28:
case 29:
responseData = _context4.sent;
!isStreamResponse && unsubscribe && unsubscribe();
_context4.next = 32;
_context4.next = 33;
return new Promise(function (resolve, reject) {
settle(resolve, reject, {
data: responseData,
@ -3611,26 +3631,26 @@
request: request
});
});
case 32:
case 33:
return _context4.abrupt("return", _context4.sent);
case 35:
_context4.prev = 35;
_context4.t2 = _context4["catch"](5);
case 36:
_context4.prev = 36;
_context4.t2 = _context4["catch"](6);
unsubscribe && unsubscribe();
if (!(_context4.t2 && _context4.t2.name === 'TypeError' && /Load failed|fetch/i.test(_context4.t2.message))) {
_context4.next = 40;
_context4.next = 41;
break;
}
throw Object.assign(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request), {
cause: _context4.t2.cause || _context4.t2
});
case 40:
throw AxiosError.from(_context4.t2, _context4.t2 && _context4.t2.code, config, request);
case 41:
throw AxiosError.from(_context4.t2, _context4.t2 && _context4.t2.code, config, request);
case 42:
case "end":
return _context4.stop();
}
}, _callee4, null, [[5, 35]]);
}, _callee4, null, [[6, 36]]);
}));
return function (_x5) {
return _ref5.apply(this, arguments);
@ -3639,9 +3659,7 @@
};
var seedCache = new Map();
var getFetch = function getFetch(config) {
var env = utils$1.merge.call({
skipUndefined: true
}, globalFetchAPI, config ? config.env : null);
var env = config && config.env || {};
var fetch = env.fetch,
Request = env.Request,
Response = env.Response;
@ -3661,6 +3679,15 @@
};
getFetch();
/**
* Known adapters mapping.
* Provides environment-specific adapters for Axios:
* - `http` for Node.js
* - `xhr` for browsers
* - `fetch` for fetch API-based requests
*
* @type {Object<string, Function|Object>}
*/
var knownAdapters = {
http: httpAdapter,
xhr: xhrAdapter,
@ -3668,6 +3695,8 @@
get: getFetch
}
};
// Assign adapter names for easier debugging and identification
utils$1.forEach(knownAdapters, function (fn, value) {
if (fn) {
try {
@ -3682,14 +3711,38 @@
});
}
});
/**
* Render a rejection reason string for unknown or unsupported adapters
*
* @param {string} reason
* @returns {string}
*/
var renderReason = function renderReason(reason) {
return "- ".concat(reason);
};
/**
* Check if the adapter is resolved (function, null, or false)
*
* @param {Function|null|false} adapter
* @returns {boolean}
*/
var isResolvedHandle = function isResolvedHandle(adapter) {
return utils$1.isFunction(adapter) || adapter === null || adapter === false;
};
var adapters = {
getAdapter: function getAdapter(adapters, config) {
/**
* Get the first suitable adapter from the provided list.
* Tries each adapter in order until a supported one is found.
* Throws an AxiosError if no adapter is suitable.
*
* @param {Array<string|Function>|string|Function} adapters - Adapter(s) by name or function.
* @param {Object} config - Axios request configuration
* @throws {AxiosError} If no suitable adapter is available
* @returns {Function} The resolved adapter function
*/
function getAdapter(adapters, config) {
adapters = utils$1.isArray(adapters) ? adapters : [adapters];
var _adapters = adapters,
length = _adapters.length;
@ -3722,7 +3775,21 @@
throw new AxiosError("There is no suitable adapter to dispatch the request " + s, 'ERR_NOT_SUPPORT');
}
return adapter;
},
}
/**
* Exports Axios adapters and utility to resolve an adapter
*/
var adapters = {
/**
* Resolve an adapter from a list of adapter names or functions.
* @type {Function}
*/
getAdapter: getAdapter,
/**
* Exposes all known adapters
* @type {Object<string, Function|Object>}
*/
adapters: knownAdapters
};
@ -3780,7 +3847,7 @@
});
}
var VERSION = "1.12.0";
var VERSION = "1.13.2";
var validators$1 = {};
@ -4023,7 +4090,6 @@
}
len = requestInterceptorChain.length;
var newConfig = config;
i = 0;
while (i < len) {
var onFulfilled = requestInterceptorChain[i++];
var onRejected = requestInterceptorChain[i++];
@ -4317,7 +4383,13 @@
InsufficientStorage: 507,
LoopDetected: 508,
NotExtended: 510,
NetworkAuthenticationRequired: 511
NetworkAuthenticationRequired: 511,
WebServerIsDown: 521,
ConnectionTimedOut: 522,
OriginIsUnreachable: 523,
TimeoutOccurred: 524,
SslHandshakeFailed: 525,
InvalidSslCertificate: 526
};
Object.entries(HttpStatusCode).forEach(function (_ref) {
var _ref2 = _slicedToArray(_ref, 2),

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

View file

@ -1,33 +1,33 @@
/*!
* qrcode.vue v3.4.1
* A Vue.js component to generate QRCode.
* © 2017-2023 @scopewu(https://github.com/scopewu)
* qrcode.vue v3.6.0
* A Vue.js component to generate QRCode. Both support Vue 2 and Vue 3
* © 2017-PRESENT @scopewu(https://github.com/scopewu)
* MIT License.
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('vue')) :
typeof define === 'function' && define.amd ? define(['vue'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.QrcodeVue = factory(global.Vue));
})(this, (function (vue) { 'use strict';
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('vue')) :
typeof define === 'function' && define.amd ? define(['exports', 'vue'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.QrcodeVue = {}, global.Vue));
})(this, (function (exports, vue) { 'use strict';
/******************************************************************************
Copyright (c) Microsoft Corporation.
/******************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
/* global Reflect, Promise, SuppressedError, Symbol */
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
var __assign = function() {
var __assign = function() {
__assign = Object.assign || function __assign(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
@ -36,14 +36,14 @@
return t;
};
return __assign.apply(this, arguments);
};
};
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
var e = new Error(message);
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
};
};
/*
/*
* QR Code generator library (TypeScript)
*
* Copyright (c) Project Nayuki. (MIT License)
@ -65,8 +65,8 @@
* out of or in connection with the Software or the use or other dealings in the
* Software.
*/
var qrcodegen;
(function (qrcodegen) {
var qrcodegen;
(function (qrcodegen) {
/*---- QR Code symbol class ----*/
/*
* A QR Code symbol, which is a type of two-dimension barcode.
@ -527,8 +527,7 @@
return [];
else {
var numAlign = Math.floor(this.version / 7) + 2;
var step = (this.version == 32) ? 26 :
Math.ceil((this.version * 4 + 4) / (numAlign * 2 - 2)) * 2;
var step = Math.floor((this.version * 8 + numAlign * 3 + 5) / (numAlign * 4 - 4)) * 2;
var result = [6];
for (var pos = this.size - 7; result.length < numAlign; pos -= step)
result.splice(1, 0, pos);
@ -654,17 +653,17 @@
QrCode.ECC_CODEWORDS_PER_BLOCK = [
// Version: (note that index 0 is for padding, and is set to an illegal value)
//0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 Error correction level
[-1, 7, 10, 15, 20, 26, 18, 20, 24, 30, 18, 20, 24, 26, 30, 22, 24, 28, 30, 28, 28, 28, 28, 30, 30, 26, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30],
[-1, 10, 16, 26, 18, 24, 16, 18, 22, 22, 26, 30, 22, 22, 24, 24, 28, 28, 26, 26, 26, 26, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28],
[-1, 13, 22, 18, 26, 18, 24, 18, 22, 20, 24, 28, 26, 24, 20, 30, 24, 28, 28, 26, 30, 28, 30, 30, 30, 30, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30],
[-1, 7, 10, 15, 20, 26, 18, 20, 24, 30, 18, 20, 24, 26, 30, 22, 24, 28, 30, 28, 28, 28, 28, 30, 30, 26, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30], // Low
[-1, 10, 16, 26, 18, 24, 16, 18, 22, 22, 26, 30, 22, 22, 24, 24, 28, 28, 26, 26, 26, 26, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28], // Medium
[-1, 13, 22, 18, 26, 18, 24, 18, 22, 20, 24, 28, 26, 24, 20, 30, 24, 28, 28, 26, 30, 28, 30, 30, 30, 30, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30], // Quartile
[-1, 17, 28, 22, 16, 22, 28, 26, 26, 24, 28, 24, 28, 22, 24, 24, 30, 28, 28, 26, 28, 30, 24, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30], // High
];
QrCode.NUM_ERROR_CORRECTION_BLOCKS = [
// Version: (note that index 0 is for padding, and is set to an illegal value)
//0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 Error correction level
[-1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 6, 6, 6, 6, 7, 8, 8, 9, 9, 10, 12, 12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 24, 25],
[-1, 1, 1, 1, 2, 2, 4, 4, 4, 5, 5, 5, 8, 9, 9, 10, 10, 11, 13, 14, 16, 17, 17, 18, 20, 21, 23, 25, 26, 28, 29, 31, 33, 35, 37, 38, 40, 43, 45, 47, 49],
[-1, 1, 1, 2, 2, 4, 4, 6, 6, 8, 8, 8, 10, 12, 16, 12, 17, 16, 18, 21, 20, 23, 23, 25, 27, 29, 34, 34, 35, 38, 40, 43, 45, 48, 51, 53, 56, 59, 62, 65, 68],
[-1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 6, 6, 6, 6, 7, 8, 8, 9, 9, 10, 12, 12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 24, 25], // Low
[-1, 1, 1, 1, 2, 2, 4, 4, 4, 5, 5, 5, 8, 9, 9, 10, 10, 11, 13, 14, 16, 17, 17, 18, 20, 21, 23, 25, 26, 28, 29, 31, 33, 35, 37, 38, 40, 43, 45, 47, 49], // Medium
[-1, 1, 1, 2, 2, 4, 4, 6, 6, 8, 8, 8, 10, 12, 16, 12, 17, 16, 18, 21, 20, 23, 23, 25, 27, 29, 34, 34, 35, 38, 40, 43, 45, 48, 51, 53, 56, 59, 62, 65, 68], // Quartile
[-1, 1, 1, 2, 4, 4, 4, 5, 6, 8, 8, 11, 11, 16, 16, 18, 16, 19, 21, 25, 25, 25, 34, 30, 32, 35, 37, 40, 42, 45, 48, 51, 54, 57, 60, 63, 66, 70, 74, 77, 81], // High
];
return QrCode;
@ -848,9 +847,9 @@
return QrSegment;
}());
qrcodegen.QrSegment = QrSegment;
})(qrcodegen || (qrcodegen = {}));
/*---- Public helper enumeration ----*/
(function (qrcodegen) {
})(qrcodegen || (qrcodegen = {}));
/*---- Public helper enumeration ----*/
(function (qrcodegen) {
(function (QrCode) {
/*
* The error correction level in a QR Code symbol. Immutable.
@ -874,9 +873,9 @@
}());
QrCode.Ecc = Ecc;
})(qrcodegen.QrCode || (qrcodegen.QrCode = {}));
})(qrcodegen || (qrcodegen = {}));
/*---- Public helper enumeration ----*/
(function (qrcodegen) {
})(qrcodegen || (qrcodegen = {}));
/*---- Public helper enumeration ----*/
(function (qrcodegen) {
(function (QrSegment) {
/*
* Describes how a segment's data bits are interpreted. Immutable.
@ -907,18 +906,18 @@
}());
QrSegment.Mode = Mode;
})(qrcodegen.QrSegment || (qrcodegen.QrSegment = {}));
})(qrcodegen || (qrcodegen = {}));
var QR = qrcodegen;
})(qrcodegen || (qrcodegen = {}));
var QR = qrcodegen;
var defaultErrorCorrectLevel = 'H';
var ErrorCorrectLevelMap = {
var defaultErrorCorrectLevel = 'L';
var ErrorCorrectLevelMap = {
L: QR.QrCode.Ecc.LOW,
M: QR.QrCode.Ecc.MEDIUM,
Q: QR.QrCode.Ecc.QUARTILE,
H: QR.QrCode.Ecc.HIGH,
};
// Thanks the `qrcode.react`
var SUPPORTS_PATH2D = (function () {
};
// Thanks the `qrcode.react`
var SUPPORTS_PATH2D = (function () {
try {
new Path2D().addPath(new Path2D());
}
@ -926,11 +925,11 @@
return false;
}
return true;
})();
function validErrorCorrectLevel(level) {
})();
function validErrorCorrectLevel(level) {
return level in ErrorCorrectLevelMap;
}
function generatePath(modules, margin) {
}
function generatePath(modules, margin) {
if (margin === void 0) { margin = 0; }
var ops = [];
modules.forEach(function (row, y) {
@ -966,8 +965,40 @@
});
});
return ops.join('');
}
function getImageSettings(cells, size, margin, imageSettings) {
var width = imageSettings.width, height = imageSettings.height, imageX = imageSettings.x, imageY = imageSettings.y;
var numCells = cells.length + margin * 2;
var defaultSize = Math.floor(size * 0.1);
var scale = numCells / size;
var w = (width || defaultSize) * scale;
var h = (height || defaultSize) * scale;
var x = imageX == null ? cells.length / 2 - w / 2 : imageX * scale;
var y = imageY == null ? cells.length / 2 - h / 2 : imageY * scale;
var excavation = null;
if (imageSettings.excavate) {
var floorX = Math.floor(x);
var floorY = Math.floor(y);
var ceilW = Math.ceil(w + x - floorX);
var ceilH = Math.ceil(h + y - floorY);
excavation = { x: floorX, y: floorY, w: ceilW, h: ceilH };
}
var QRCodeProps = {
return { x: x, y: y, h: h, w: w, excavation: excavation };
}
function excavateModules(modules, excavation) {
return modules.slice().map(function (row, y) {
if (y < excavation.y || y >= excavation.y + excavation.h) {
return row;
}
return row.map(function (cell, x) {
if (x < excavation.x || x >= excavation.x + excavation.w) {
return cell;
}
return false;
});
});
}
var QRCodeProps = {
value: {
type: String,
required: true,
@ -995,23 +1026,64 @@
required: false,
default: 0,
},
};
var QRCodeVueProps = __assign(__assign({}, QRCodeProps), { renderAs: {
imageSettings: {
type: Object,
required: false,
default: function () { return ({}); },
},
gradient: {
type: Boolean,
required: false,
default: false,
},
gradientType: {
type: String,
required: false,
default: 'linear',
validator: function (t) { return ['linear', 'radial'].indexOf(t) > -1; },
},
gradientStartColor: {
type: String,
required: false,
default: '#000',
},
gradientEndColor: {
type: String,
required: false,
default: '#fff',
},
};
var QRCodeVueProps = __assign(__assign({}, QRCodeProps), { renderAs: {
type: String,
required: false,
default: 'canvas',
validator: function (as) { return ['canvas', 'svg'].indexOf(as) > -1; },
} });
var QRCodeSvg = vue.defineComponent({
var QrcodeSvg = vue.defineComponent({
name: 'QRCodeSvg',
props: QRCodeProps,
setup: function (props) {
var numCells = vue.ref(0);
var fgPath = vue.ref('');
var imageProps;
var generate = function () {
var value = props.value, level = props.level, margin = props.margin;
var value = props.value, _level = props.level, _margin = props.margin;
var margin = _margin >>> 0;
var level = validErrorCorrectLevel(_level) ? _level : defaultErrorCorrectLevel;
var cells = QR.QrCode.encodeText(value, ErrorCorrectLevelMap[level]).getModules();
numCells.value = cells.length + margin * 2;
if (props.imageSettings.src) {
var imageSettings = getImageSettings(cells, props.size, margin, props.imageSettings);
imageProps = {
x: imageSettings.x + margin,
y: imageSettings.y + margin,
width: imageSettings.w,
height: imageSettings.h,
};
if (imageSettings.excavation) {
cells = excavateModules(cells, imageSettings.excavation);
}
}
// Drawing strategy: instead of a rect per module, we're going to create a
// single path for the dark modules and layer that on top of a light rect,
// for a total of 2 DOM nodes. We pay a bit more in string concat but that's
@ -1020,6 +1092,34 @@
// For level 40, 31329 -> 2
fgPath.value = generatePath(cells, margin);
};
var renderGradient = function () {
if (!props.gradient)
return null;
var gradientProps = props.gradientType === 'linear'
? {
x1: '0%',
y1: '0%',
x2: '100%',
y2: '100%',
}
: {
cx: '50%',
cy: '50%',
r: '50%',
fx: '50%',
fy: '50%',
};
return vue.h(props.gradientType === 'linear' ? 'linearGradient' : 'radialGradient', __assign({ id: 'qr-gradient' }, gradientProps), [
vue.h('stop', {
offset: '0%',
style: { stopColor: props.gradientStartColor },
}),
vue.h('stop', {
offset: '100%',
style: { stopColor: props.gradientEndColor },
}),
]);
};
generate();
vue.onUpdated(generate);
return function () { return vue.h('svg', {
@ -1029,21 +1129,30 @@
xmlns: 'http://www.w3.org/2000/svg',
viewBox: "0 0 ".concat(numCells.value, " ").concat(numCells.value),
}, [
vue.h('path', {
vue.h('defs', {}, [renderGradient()]),
vue.h('rect', {
width: '100%',
height: '100%',
fill: props.background,
d: "M0,0 h".concat(numCells.value, "v").concat(numCells.value, "H0z"),
}),
vue.h('path', { fill: props.foreground, d: fgPath.value }),
vue.h('path', {
fill: props.gradient ? 'url(#qr-gradient)' : props.foreground,
d: fgPath.value,
}),
props.imageSettings.src && vue.h('image', __assign({ href: props.imageSettings.src }, imageProps)),
]); };
},
});
var QRCodeCanvas = vue.defineComponent({
});
var QrcodeCanvas = vue.defineComponent({
name: 'QRCodeCanvas',
props: QRCodeProps,
setup: function (props) {
setup: function (props, ctx) {
var canvasEl = vue.ref(null);
var imageRef = vue.ref(null);
var generate = function () {
var value = props.value, level = props.level, size = props.size, margin = props.margin, background = props.background, foreground = props.foreground;
var value = props.value, _level = props.level, size = props.size, _margin = props.margin, background = props.background, foreground = props.foreground, gradient = props.gradient, gradientType = props.gradientType, gradientStartColor = props.gradientStartColor, gradientEndColor = props.gradientEndColor;
var margin = _margin >>> 0;
var level = validErrorCorrectLevel(_level) ? _level : defaultErrorCorrectLevel;
var canvas = canvasEl.value;
if (!canvas) {
return;
@ -1054,13 +1163,42 @@
}
var cells = QR.QrCode.encodeText(value, ErrorCorrectLevelMap[level]).getModules();
var numCells = cells.length + margin * 2;
var image = imageRef.value;
var imageProps = { x: 0, y: 0, width: 0, height: 0 };
var showImage = props.imageSettings.src && image != null && image.naturalWidth !== 0 && image.naturalHeight !== 0;
if (showImage) {
var imageSettings = getImageSettings(cells, props.size, margin, props.imageSettings);
imageProps = {
x: imageSettings.x + margin,
y: imageSettings.y + margin,
width: imageSettings.w,
height: imageSettings.h,
};
if (imageSettings.excavation) {
cells = excavateModules(cells, imageSettings.excavation);
}
}
var devicePixelRatio = window.devicePixelRatio || 1;
var scale = (size / numCells) * devicePixelRatio;
canvas.height = canvas.width = size * devicePixelRatio;
ctx.scale(scale, scale);
ctx.fillStyle = background;
ctx.fillRect(0, 0, numCells, numCells);
if (gradient) {
var grad = void 0;
if (gradientType === 'linear') {
grad = ctx.createLinearGradient(0, 0, numCells, numCells);
}
else {
grad = ctx.createRadialGradient(numCells / 2, numCells / 2, 0, numCells / 2, numCells / 2, numCells / 2);
}
grad.addColorStop(0, gradientStartColor);
grad.addColorStop(1, gradientEndColor);
ctx.fillStyle = grad;
}
else {
ctx.fillStyle = foreground;
}
if (SUPPORTS_PATH2D) {
ctx.fill(new Path2D(generatePath(cells, margin)));
}
@ -1073,27 +1211,49 @@
});
});
}
if (showImage) {
ctx.drawImage(image, imageProps.x, imageProps.y, imageProps.width, imageProps.height);
}
};
vue.onMounted(generate);
vue.onUpdated(generate);
return function () { return vue.h('canvas', {
ref: canvasEl,
style: { width: "".concat(props.size, "px"), height: "".concat(props.size, "px") },
}); };
var style = ctx.attrs.style;
return function () { return vue.h(vue.Fragment, [
vue.h('canvas', __assign(__assign({}, ctx.attrs), { ref: canvasEl, style: __assign(__assign({}, style), { width: "".concat(props.size, "px"), height: "".concat(props.size, "px") }) })),
props.imageSettings.src && vue.h('img', {
ref: imageRef,
src: props.imageSettings.src,
style: { display: 'none' },
onLoad: generate,
})
]); };
},
});
var QrcodeVue = vue.defineComponent({
});
var QrcodeVue = vue.defineComponent({
name: 'Qrcode',
render: function () {
var _a = this.$props, renderAs = _a.renderAs, value = _a.value, _size = _a.size, _margin = _a.margin, _level = _a.level, background = _a.background, foreground = _a.foreground;
var size = _size >>> 0;
var margin = _margin >>> 0;
var level = validErrorCorrectLevel(_level) ? _level : defaultErrorCorrectLevel;
return vue.h(renderAs === 'svg' ? QRCodeSvg : QRCodeCanvas, { value: value, size: size, margin: margin, level: level, background: background, foreground: foreground });
var _a = this.$props, renderAs = _a.renderAs, value = _a.value, size = _a.size, margin = _a.margin, level = _a.level, background = _a.background, foreground = _a.foreground, imageSettings = _a.imageSettings, gradient = _a.gradient, gradientType = _a.gradientType, gradientStartColor = _a.gradientStartColor, gradientEndColor = _a.gradientEndColor;
return vue.h(renderAs === 'svg' ? QrcodeSvg : QrcodeCanvas, {
value: value,
size: size,
margin: margin,
level: level,
background: background,
foreground: foreground,
imageSettings: imageSettings,
gradient: gradient,
gradientType: gradientType,
gradientStartColor: gradientStartColor,
gradientEndColor: gradientEndColor,
});
},
props: QRCodeVueProps,
});
});
return QrcodeVue;
exports.QrcodeCanvas = QrcodeCanvas;
exports.QrcodeSvg = QrcodeSvg;
exports.default = QrcodeVue;
Object.defineProperty(exports, '__esModule', { value: true });
}));

View file

@ -1119,16 +1119,19 @@ body.desktop .q-checkbox--dense:not(.disabled):focus .q-checkbox__inner:before,
.q-chip--colored .q-chip__icon, .q-chip--dark .q-chip__icon {
color: inherit;
}
.q-chip--outline {
background: transparent !important;
border: 1px solid currentColor;
}
.q-chip .q-avatar {
font-size: 2em;
margin-left: -0.45em;
margin-right: 0.2em;
border-radius: 16px;
}
.q-chip--outline {
background: transparent !important;
border: 1px solid currentColor;
}
.q-chip--outline .q-avatar {
margin-left: calc(-0.45em - 1px);
}
.q-chip--selected .q-avatar {
display: none;
}
@ -1239,10 +1242,6 @@ body.desktop.body--dark .q-chip--clickable:focus {
min-width: 180px;
border-radius: 4px;
box-shadow: 0 1px 5px rgba(0, 0, 0, 0.2), 0 2px 2px rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12);
/* Saturation Tab */
/* Tune Tab */
/* Palette Tab */
/* Generic */
}
.q-color-picker .q-tab {
padding: 0 !important;
@ -1310,6 +1309,9 @@ body.desktop.body--dark .q-chip--clickable:focus {
.q-color-picker__footer .q-tab--inactive {
background: linear-gradient(to bottom, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.15) 25%, rgba(0, 0, 0, 0.1));
}
.q-color-picker {
/* Saturation Tab */
}
.q-color-picker__spectrum {
width: 100%;
height: 100%;
@ -1360,6 +1362,9 @@ body.desktop.body--dark .q-chip--clickable:focus {
.q-color-picker__sliders .q-slider--active path {
stroke-width: 3px;
}
.q-color-picker {
/* Tune Tab */
}
.q-color-picker__tune-tab .q-slider {
margin-left: 18px;
margin-right: 18px;
@ -1370,6 +1375,9 @@ body.desktop.body--dark .q-chip--clickable:focus {
border-radius: 4px;
width: 3.5em;
}
.q-color-picker {
/* Palette Tab */
}
.q-color-picker__palette-tab {
padding: 0 !important;
}
@ -1380,6 +1388,9 @@ body.desktop.body--dark .q-chip--clickable:focus {
padding-bottom: 10%;
width: 10% !important;
}
.q-color-picker {
/* Generic */
}
.q-color-picker input {
color: inherit;
background: transparent;
@ -2208,12 +2219,6 @@ body.q-ios-padding .q-dialog__inner > div {
-webkit-animation-name: q-autofill;
-webkit-animation-fill-mode: both;
}
.q-field__native:-webkit-autofill + .q-field__label, .q-field__input:-webkit-autofill + .q-field__label {
transform: translateY(-40%) scale(0.75);
}
.q-field__native[type=color] + .q-field__label, .q-field__native[type=date] + .q-field__label, .q-field__native[type=datetime-local] + .q-field__label, .q-field__native[type=month] + .q-field__label, .q-field__native[type=time] + .q-field__label, .q-field__native[type=week] + .q-field__label, .q-field__input[type=color] + .q-field__label, .q-field__input[type=date] + .q-field__label, .q-field__input[type=datetime-local] + .q-field__label, .q-field__input[type=month] + .q-field__label, .q-field__input[type=time] + .q-field__label, .q-field__input[type=week] + .q-field__label {
transform: translateY(-40%) scale(0.75);
}
.q-field__native:invalid, .q-field__input:invalid {
box-shadow: none;
}
@ -2273,6 +2278,15 @@ body.q-ios-padding .q-dialog__inner > div {
transition: transform 0.36s cubic-bezier(0.4, 0, 0.2, 1), max-width 0.324s cubic-bezier(0.4, 0, 0.2, 1);
backface-visibility: hidden;
}
.q-field__label:has(+ :is(.q-field__native, .q-field__input):is(:-webkit-autofill,
[type=color],
[type=date],
[type=datetime-local],
[type=month],
[type=time],
[type=week])) {
transform: translateY(-40%) scale(0.75);
}
.q-field--float .q-field__label {
max-width: 133%;
transform: translateY(-40%) scale(0.75);
@ -2491,10 +2505,13 @@ body.q-ios-padding .q-dialog__inner > div {
.q-field--dense.q-field--float .q-field__label {
transform: translateY(-30%) scale(0.75);
}
.q-field--dense .q-field__native:-webkit-autofill + .q-field__label, .q-field--dense .q-field__input:-webkit-autofill + .q-field__label {
transform: translateY(-30%) scale(0.75);
}
.q-field--dense .q-field__native[type=color] + .q-field__label, .q-field--dense .q-field__native[type=date] + .q-field__label, .q-field--dense .q-field__native[type=datetime-local] + .q-field__label, .q-field--dense .q-field__native[type=month] + .q-field__label, .q-field--dense .q-field__native[type=time] + .q-field__label, .q-field--dense .q-field__native[type=week] + .q-field__label, .q-field--dense .q-field__input[type=color] + .q-field__label, .q-field--dense .q-field__input[type=date] + .q-field__label, .q-field--dense .q-field__input[type=datetime-local] + .q-field__label, .q-field--dense .q-field__input[type=month] + .q-field__label, .q-field--dense .q-field__input[type=time] + .q-field__label, .q-field--dense .q-field__input[type=week] + .q-field__label {
.q-field--dense .q-field__label:has(+ :is(.q-field__native, .q-field__input):is(:-webkit-autofill,
[type=color],
[type=date],
[type=datetime-local],
[type=month],
[type=time],
[type=week])) {
transform: translateY(-30%) scale(0.75);
}
.q-field--borderless .q-field__bottom, .q-field--borderless.q-field--dense .q-field__control, .q-field--standard .q-field__bottom, .q-field--standard.q-field--dense .q-field__control {
@ -3384,7 +3401,7 @@ body.desktop .q-radio--dense:not(.disabled):focus .q-radio__inner:before, body.d
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
position: relative;
opacity: 0.4;
transition: transform 0.2s ease-in, opacity 0.2s ease-in;
transition: transform 0.2s ease-in, opacity 0.2s ease-in, color 0.2s ease-in;
}
.q-rating__icon--hovered {
transform: scale(1.3);
@ -4704,7 +4721,7 @@ body.desktop .q-slider.q-slider--enabled .q-slider__track-container:hover .q-sli
/* * On light background
* */
.q-table__bottom {
.q-table__bottom:not(.q-table__bottom--nodata) {
border-top: 1px solid rgba(0, 0, 0, 0.12);
}
@ -11315,7 +11332,6 @@ p {
}
.text-justify {
text-align: justify;
-webkit-hyphens: auto;
hyphens: auto;
}
.text-italic {

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 it is too large Load diff

File diff suppressed because one or more lines are too long

1269
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -7,31 +7,32 @@
"vendor_bundle_css": "node -e \"require('concat')(require('./package.json').bundle.css.map(a => 'lnbits/static/'+a), './lnbits/static/bundle.css')\"",
"vendor_bundle_js": "node -e \"require('concat')(require('./package.json').bundle.js.map(a => 'lnbits/static/'+a),'./lnbits/static/bundle.js')\"",
"vendor_bundle_components": "node -e \"require('concat')(require('./package.json').bundle.components.map(a => 'lnbits/static/'+a), './lnbits/static/bundle-components.js')\"",
"vendor_minify_css": "./node_modules/.bin/minify ./lnbits/static/bundle.css > ./lnbits/static/bundle.min.css",
"vendor_minify_js": "./node_modules/.bin/minify ./lnbits/static/bundle.js > ./lnbits/static/bundle.min.js",
"vendor_minify_components": "./node_modules/.bin/minify ./lnbits/static/bundle-components.js > ./lnbits/static/bundle-components.min.js",
"vendor_minify_css": "./node_modules/.bin/cleancss -o ./lnbits/static/bundle.min.css ./lnbits/static/bundle.css",
"vendor_minify_js": "./node_modules/.bin/terser ./lnbits/static/bundle.js -o ./lnbits/static/bundle.min.js --compress --mangle",
"vendor_minify_components": "./node_modules/.bin/terser ./lnbits/static/bundle-components.js -o ./lnbits/static/bundle-components.min.js --compress --mangle",
"bundle": "npm run sass && npm run vendor_copy && npm run vendor_json && npm run vendor_bundle_css && npm run vendor_bundle_js && npm run vendor_bundle_components && npm run vendor_minify_css && npm run vendor_minify_js && npm run vendor_minify_components"
},
"devDependencies": {
"clean-css-cli": "^5.6.3",
"concat": "^1.0.3",
"minify": "^9.2.0",
"prettier": "^3.6.2",
"prettier": "^3.7.4",
"pyright": "1.1.289",
"sass": "^1.78.0"
"sass": "^1.94.2",
"terser": "^5.44.1"
},
"dependencies": {
"axios": "^1.12.0",
"chart.js": "^4.4.4",
"axios": "^1.13.2",
"chart.js": "^4.5.1",
"moment": "^2.30.1",
"nostr-tools": "^2.7.2",
"qrcode.vue": "^3.4.1",
"quasar": "2.17.0",
"nostr-tools": "^2.18.2",
"qrcode.vue": "^3.6.0",
"quasar": "2.18.6",
"showdown": "^2.1.0",
"underscore": "^1.13.7",
"vue": "3.5.8",
"vue-i18n": "^10.0.8",
"vue-qrcode-reader": "^5.5.10",
"vue-router": "4.4.5",
"vue": "3.5.25",
"vue-i18n": "^11.2.2",
"vue-qrcode-reader": "^5.7.3",
"vue-router": "4.6.3",
"vuex": "4.1.0"
},
"vendor": [