34289 lines
1.0 MiB
34289 lines
1.0 MiB
/******/ (function() { // webpackBootstrap
|
||
/******/ var __webpack_modules__ = ({
|
||
|
||
/***/ 3331:
|
||
/***/ (function(module) {
|
||
|
||
"use strict";
|
||
|
||
|
||
var hasOwn = Object.prototype.hasOwnProperty;
|
||
var toStr = Object.prototype.toString;
|
||
var defineProperty = Object.defineProperty;
|
||
var gOPD = Object.getOwnPropertyDescriptor;
|
||
var isArray = function isArray(arr) {
|
||
if (typeof Array.isArray === 'function') {
|
||
return Array.isArray(arr);
|
||
}
|
||
return toStr.call(arr) === '[object Array]';
|
||
};
|
||
var isPlainObject = function isPlainObject(obj) {
|
||
if (!obj || toStr.call(obj) !== '[object Object]') {
|
||
return false;
|
||
}
|
||
var hasOwnConstructor = hasOwn.call(obj, 'constructor');
|
||
var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');
|
||
// Not own constructor property must be Object
|
||
if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {
|
||
return false;
|
||
}
|
||
|
||
// Own properties are enumerated firstly, so to speed up,
|
||
// if last one is own, then all properties are own.
|
||
var key;
|
||
for (key in obj) {/**/}
|
||
return typeof key === 'undefined' || hasOwn.call(obj, key);
|
||
};
|
||
|
||
// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target
|
||
var setProperty = function setProperty(target, options) {
|
||
if (defineProperty && options.name === '__proto__') {
|
||
defineProperty(target, options.name, {
|
||
enumerable: true,
|
||
configurable: true,
|
||
value: options.newValue,
|
||
writable: true
|
||
});
|
||
} else {
|
||
target[options.name] = options.newValue;
|
||
}
|
||
};
|
||
|
||
// Return undefined instead of __proto__ if '__proto__' is not an own property
|
||
var getProperty = function getProperty(obj, name) {
|
||
if (name === '__proto__') {
|
||
if (!hasOwn.call(obj, name)) {
|
||
return void 0;
|
||
} else if (gOPD) {
|
||
// In early versions of node, obj['__proto__'] is buggy when obj has
|
||
// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.
|
||
return gOPD(obj, name).value;
|
||
}
|
||
}
|
||
return obj[name];
|
||
};
|
||
module.exports = function extend() {
|
||
var options, name, src, copy, copyIsArray, clone;
|
||
var target = arguments[0];
|
||
var i = 1;
|
||
var length = arguments.length;
|
||
var deep = false;
|
||
|
||
// Handle a deep copy situation
|
||
if (typeof target === 'boolean') {
|
||
deep = target;
|
||
target = arguments[1] || {};
|
||
// skip the boolean and the target
|
||
i = 2;
|
||
}
|
||
if (target == null || typeof target !== 'object' && typeof target !== 'function') {
|
||
target = {};
|
||
}
|
||
for (; i < length; ++i) {
|
||
options = arguments[i];
|
||
// Only deal with non-null/undefined values
|
||
if (options != null) {
|
||
// Extend the base object
|
||
for (name in options) {
|
||
src = getProperty(target, name);
|
||
copy = getProperty(options, name);
|
||
|
||
// Prevent never-ending loop
|
||
if (target !== copy) {
|
||
// Recurse if we're merging plain objects or arrays
|
||
if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {
|
||
if (copyIsArray) {
|
||
copyIsArray = false;
|
||
clone = src && isArray(src) ? src : [];
|
||
} else {
|
||
clone = src && isPlainObject(src) ? src : {};
|
||
}
|
||
|
||
// Never move original objects, clone them
|
||
setProperty(target, {
|
||
name: name,
|
||
newValue: extend(deep, clone, copy)
|
||
});
|
||
|
||
// Don't bring in undefined values
|
||
} else if (typeof copy !== 'undefined') {
|
||
setProperty(target, {
|
||
name: name,
|
||
newValue: copy
|
||
});
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
// Return the modified object
|
||
return target;
|
||
};
|
||
|
||
/***/ }),
|
||
|
||
/***/ 9761:
|
||
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
var reactIs = __webpack_require__(736);
|
||
|
||
/**
|
||
* Copyright 2015, Yahoo! Inc.
|
||
* Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
|
||
*/
|
||
var REACT_STATICS = {
|
||
childContextTypes: true,
|
||
contextType: true,
|
||
contextTypes: true,
|
||
defaultProps: true,
|
||
displayName: true,
|
||
getDefaultProps: true,
|
||
getDerivedStateFromError: true,
|
||
getDerivedStateFromProps: true,
|
||
mixins: true,
|
||
propTypes: true,
|
||
type: true
|
||
};
|
||
var KNOWN_STATICS = {
|
||
name: true,
|
||
length: true,
|
||
prototype: true,
|
||
caller: true,
|
||
callee: true,
|
||
arguments: true,
|
||
arity: true
|
||
};
|
||
var FORWARD_REF_STATICS = {
|
||
'$$typeof': true,
|
||
render: true,
|
||
defaultProps: true,
|
||
displayName: true,
|
||
propTypes: true
|
||
};
|
||
var MEMO_STATICS = {
|
||
'$$typeof': true,
|
||
compare: true,
|
||
defaultProps: true,
|
||
displayName: true,
|
||
propTypes: true,
|
||
type: true
|
||
};
|
||
var TYPE_STATICS = {};
|
||
TYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;
|
||
TYPE_STATICS[reactIs.Memo] = MEMO_STATICS;
|
||
function getStatics(component) {
|
||
// React v16.11 and below
|
||
if (reactIs.isMemo(component)) {
|
||
return MEMO_STATICS;
|
||
} // React v16.12 and above
|
||
|
||
return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;
|
||
}
|
||
var defineProperty = Object.defineProperty;
|
||
var getOwnPropertyNames = Object.getOwnPropertyNames;
|
||
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
|
||
var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
|
||
var getPrototypeOf = Object.getPrototypeOf;
|
||
var objectPrototype = Object.prototype;
|
||
function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {
|
||
if (typeof sourceComponent !== 'string') {
|
||
// don't hoist over string (html) components
|
||
if (objectPrototype) {
|
||
var inheritedComponent = getPrototypeOf(sourceComponent);
|
||
if (inheritedComponent && inheritedComponent !== objectPrototype) {
|
||
hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);
|
||
}
|
||
}
|
||
var keys = getOwnPropertyNames(sourceComponent);
|
||
if (getOwnPropertySymbols) {
|
||
keys = keys.concat(getOwnPropertySymbols(sourceComponent));
|
||
}
|
||
var targetStatics = getStatics(targetComponent);
|
||
var sourceStatics = getStatics(sourceComponent);
|
||
for (var i = 0; i < keys.length; ++i) {
|
||
var key = keys[i];
|
||
if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {
|
||
var descriptor = getOwnPropertyDescriptor(sourceComponent, key);
|
||
try {
|
||
// Avoid failures from read-only properties
|
||
defineProperty(targetComponent, key, descriptor);
|
||
} catch (e) {}
|
||
}
|
||
}
|
||
}
|
||
return targetComponent;
|
||
}
|
||
module.exports = hoistNonReactStatics;
|
||
|
||
/***/ }),
|
||
|
||
/***/ 2072:
|
||
/***/ (function(module) {
|
||
|
||
// http://www.w3.org/TR/CSS21/grammar.html
|
||
// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027
|
||
var COMMENT_REGEX = /\/\*[^*]*\*+([^/*][^*]*\*+)*\//g;
|
||
var NEWLINE_REGEX = /\n/g;
|
||
var WHITESPACE_REGEX = /^\s*/;
|
||
|
||
// declaration
|
||
var PROPERTY_REGEX = /^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/;
|
||
var COLON_REGEX = /^:\s*/;
|
||
var VALUE_REGEX = /^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/;
|
||
var SEMICOLON_REGEX = /^[;\s]*/;
|
||
|
||
// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill
|
||
var TRIM_REGEX = /^\s+|\s+$/g;
|
||
|
||
// strings
|
||
var NEWLINE = '\n';
|
||
var FORWARD_SLASH = '/';
|
||
var ASTERISK = '*';
|
||
var EMPTY_STRING = '';
|
||
|
||
// types
|
||
var TYPE_COMMENT = 'comment';
|
||
var TYPE_DECLARATION = 'declaration';
|
||
|
||
/**
|
||
* @param {String} style
|
||
* @param {Object} [options]
|
||
* @return {Object[]}
|
||
* @throws {TypeError}
|
||
* @throws {Error}
|
||
*/
|
||
module.exports = function (style, options) {
|
||
if (typeof style !== 'string') {
|
||
throw new TypeError('First argument must be a string');
|
||
}
|
||
if (!style) return [];
|
||
options = options || {};
|
||
|
||
/**
|
||
* Positional.
|
||
*/
|
||
var lineno = 1;
|
||
var column = 1;
|
||
|
||
/**
|
||
* Update lineno and column based on `str`.
|
||
*
|
||
* @param {String} str
|
||
*/
|
||
function updatePosition(str) {
|
||
var lines = str.match(NEWLINE_REGEX);
|
||
if (lines) lineno += lines.length;
|
||
var i = str.lastIndexOf(NEWLINE);
|
||
column = ~i ? str.length - i : column + str.length;
|
||
}
|
||
|
||
/**
|
||
* Mark position and patch `node.position`.
|
||
*
|
||
* @return {Function}
|
||
*/
|
||
function position() {
|
||
var start = {
|
||
line: lineno,
|
||
column: column
|
||
};
|
||
return function (node) {
|
||
node.position = new Position(start);
|
||
whitespace();
|
||
return node;
|
||
};
|
||
}
|
||
|
||
/**
|
||
* Store position information for a node.
|
||
*
|
||
* @constructor
|
||
* @property {Object} start
|
||
* @property {Object} end
|
||
* @property {undefined|String} source
|
||
*/
|
||
function Position(start) {
|
||
this.start = start;
|
||
this.end = {
|
||
line: lineno,
|
||
column: column
|
||
};
|
||
this.source = options.source;
|
||
}
|
||
|
||
/**
|
||
* Non-enumerable source string.
|
||
*/
|
||
Position.prototype.content = style;
|
||
var errorsList = [];
|
||
|
||
/**
|
||
* Error `msg`.
|
||
*
|
||
* @param {String} msg
|
||
* @throws {Error}
|
||
*/
|
||
function error(msg) {
|
||
var err = new Error(options.source + ':' + lineno + ':' + column + ': ' + msg);
|
||
err.reason = msg;
|
||
err.filename = options.source;
|
||
err.line = lineno;
|
||
err.column = column;
|
||
err.source = style;
|
||
if (options.silent) {
|
||
errorsList.push(err);
|
||
} else {
|
||
throw err;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Match `re` and return captures.
|
||
*
|
||
* @param {RegExp} re
|
||
* @return {undefined|Array}
|
||
*/
|
||
function match(re) {
|
||
var m = re.exec(style);
|
||
if (!m) return;
|
||
var str = m[0];
|
||
updatePosition(str);
|
||
style = style.slice(str.length);
|
||
return m;
|
||
}
|
||
|
||
/**
|
||
* Parse whitespace.
|
||
*/
|
||
function whitespace() {
|
||
match(WHITESPACE_REGEX);
|
||
}
|
||
|
||
/**
|
||
* Parse comments.
|
||
*
|
||
* @param {Object[]} [rules]
|
||
* @return {Object[]}
|
||
*/
|
||
function comments(rules) {
|
||
var c;
|
||
rules = rules || [];
|
||
while (c = comment()) {
|
||
if (c !== false) {
|
||
rules.push(c);
|
||
}
|
||
}
|
||
return rules;
|
||
}
|
||
|
||
/**
|
||
* Parse comment.
|
||
*
|
||
* @return {Object}
|
||
* @throws {Error}
|
||
*/
|
||
function comment() {
|
||
var pos = position();
|
||
if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;
|
||
var i = 2;
|
||
while (EMPTY_STRING != style.charAt(i) && (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))) {
|
||
++i;
|
||
}
|
||
i += 2;
|
||
if (EMPTY_STRING === style.charAt(i - 1)) {
|
||
return error('End of comment missing');
|
||
}
|
||
var str = style.slice(2, i - 2);
|
||
column += 2;
|
||
updatePosition(str);
|
||
style = style.slice(i);
|
||
column += 2;
|
||
return pos({
|
||
type: TYPE_COMMENT,
|
||
comment: str
|
||
});
|
||
}
|
||
|
||
/**
|
||
* Parse declaration.
|
||
*
|
||
* @return {Object}
|
||
* @throws {Error}
|
||
*/
|
||
function declaration() {
|
||
var pos = position();
|
||
|
||
// prop
|
||
var prop = match(PROPERTY_REGEX);
|
||
if (!prop) return;
|
||
comment();
|
||
|
||
// :
|
||
if (!match(COLON_REGEX)) return error("property missing ':'");
|
||
|
||
// val
|
||
var val = match(VALUE_REGEX);
|
||
var ret = pos({
|
||
type: TYPE_DECLARATION,
|
||
property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),
|
||
value: val ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING)) : EMPTY_STRING
|
||
});
|
||
|
||
// ;
|
||
match(SEMICOLON_REGEX);
|
||
return ret;
|
||
}
|
||
|
||
/**
|
||
* Parse declarations.
|
||
*
|
||
* @return {Object[]}
|
||
*/
|
||
function declarations() {
|
||
var decls = [];
|
||
comments(decls);
|
||
|
||
// declarations
|
||
var decl;
|
||
while (decl = declaration()) {
|
||
if (decl !== false) {
|
||
decls.push(decl);
|
||
comments(decls);
|
||
}
|
||
}
|
||
return decls;
|
||
}
|
||
whitespace();
|
||
return declarations();
|
||
};
|
||
|
||
/**
|
||
* Trim `str`.
|
||
*
|
||
* @param {String} str
|
||
* @return {String}
|
||
*/
|
||
function trim(str) {
|
||
return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;
|
||
}
|
||
|
||
/***/ }),
|
||
|
||
/***/ 1730:
|
||
/***/ (function(module) {
|
||
|
||
/*!
|
||
* Determine if an object is a Buffer
|
||
*
|
||
* @author Feross Aboukhadijeh <https://feross.org>
|
||
* @license MIT
|
||
*/
|
||
|
||
module.exports = function isBuffer(obj) {
|
||
return obj != null && obj.constructor != null && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj);
|
||
};
|
||
|
||
/***/ }),
|
||
|
||
/***/ 4488:
|
||
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
/**
|
||
* Copyright (c) 2013-present, Facebook, Inc.
|
||
*
|
||
* This source code is licensed under the MIT license found in the
|
||
* LICENSE file in the root directory of this source tree.
|
||
*/
|
||
|
||
|
||
|
||
var ReactPropTypesSecret = __webpack_require__(4202);
|
||
function emptyFunction() {}
|
||
function emptyFunctionWithReset() {}
|
||
emptyFunctionWithReset.resetWarningCache = emptyFunction;
|
||
module.exports = function () {
|
||
function shim(props, propName, componentName, location, propFullName, secret) {
|
||
if (secret === ReactPropTypesSecret) {
|
||
// It is still safe when called from React.
|
||
return;
|
||
}
|
||
var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');
|
||
err.name = 'Invariant Violation';
|
||
throw err;
|
||
}
|
||
;
|
||
shim.isRequired = shim;
|
||
function getShim() {
|
||
return shim;
|
||
}
|
||
;
|
||
// Important!
|
||
// Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
|
||
var ReactPropTypes = {
|
||
array: shim,
|
||
bigint: shim,
|
||
bool: shim,
|
||
func: shim,
|
||
number: shim,
|
||
object: shim,
|
||
string: shim,
|
||
symbol: shim,
|
||
any: shim,
|
||
arrayOf: getShim,
|
||
element: shim,
|
||
elementType: shim,
|
||
instanceOf: getShim,
|
||
node: shim,
|
||
objectOf: getShim,
|
||
oneOf: getShim,
|
||
oneOfType: getShim,
|
||
shape: getShim,
|
||
exact: getShim,
|
||
checkPropTypes: emptyFunctionWithReset,
|
||
resetWarningCache: emptyFunction
|
||
};
|
||
ReactPropTypes.PropTypes = ReactPropTypes;
|
||
return ReactPropTypes;
|
||
};
|
||
|
||
/***/ }),
|
||
|
||
/***/ 7897:
|
||
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
||
|
||
/**
|
||
* Copyright (c) 2013-present, Facebook, Inc.
|
||
*
|
||
* This source code is licensed under the MIT license found in the
|
||
* LICENSE file in the root directory of this source tree.
|
||
*/
|
||
|
||
if (false) { var throwOnDirectAccess, ReactIs; } else {
|
||
// By explicitly using `prop-types` you are opting into new production behavior.
|
||
// http://fb.me/prop-types-in-prod
|
||
module.exports = __webpack_require__(4488)();
|
||
}
|
||
|
||
/***/ }),
|
||
|
||
/***/ 4202:
|
||
/***/ (function(module) {
|
||
|
||
"use strict";
|
||
/**
|
||
* Copyright (c) 2013-present, Facebook, Inc.
|
||
*
|
||
* This source code is licensed under the MIT license found in the
|
||
* LICENSE file in the root directory of this source tree.
|
||
*/
|
||
|
||
|
||
|
||
var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
|
||
module.exports = ReactPropTypesSecret;
|
||
|
||
/***/ }),
|
||
|
||
/***/ 4883:
|
||
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
/**
|
||
* @license React
|
||
* react-dom.production.min.js
|
||
*
|
||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||
*
|
||
* This source code is licensed under the MIT license found in the
|
||
* LICENSE file in the root directory of this source tree.
|
||
*/
|
||
/*
|
||
Modernizr 3.0.0pre (Custom Build) | MIT
|
||
*/
|
||
|
||
|
||
var aa = __webpack_require__(7948),
|
||
ca = __webpack_require__(1935);
|
||
function p(a) {
|
||
for (var b = "https://reactjs.org/docs/error-decoder.html?invariant=" + a, c = 1; c < arguments.length; c++) b += "&args[]=" + encodeURIComponent(arguments[c]);
|
||
return "Minified React error #" + a + "; visit " + b + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";
|
||
}
|
||
var da = new Set(),
|
||
ea = {};
|
||
function fa(a, b) {
|
||
ha(a, b);
|
||
ha(a + "Capture", b);
|
||
}
|
||
function ha(a, b) {
|
||
ea[a] = b;
|
||
for (a = 0; a < b.length; a++) da.add(b[a]);
|
||
}
|
||
var ia = !("undefined" === typeof window || "undefined" === typeof window.document || "undefined" === typeof window.document.createElement),
|
||
ja = Object.prototype.hasOwnProperty,
|
||
ka = /^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,
|
||
la = {},
|
||
ma = {};
|
||
function oa(a) {
|
||
if (ja.call(ma, a)) return !0;
|
||
if (ja.call(la, a)) return !1;
|
||
if (ka.test(a)) return ma[a] = !0;
|
||
la[a] = !0;
|
||
return !1;
|
||
}
|
||
function pa(a, b, c, d) {
|
||
if (null !== c && 0 === c.type) return !1;
|
||
switch (typeof b) {
|
||
case "function":
|
||
case "symbol":
|
||
return !0;
|
||
case "boolean":
|
||
if (d) return !1;
|
||
if (null !== c) return !c.acceptsBooleans;
|
||
a = a.toLowerCase().slice(0, 5);
|
||
return "data-" !== a && "aria-" !== a;
|
||
default:
|
||
return !1;
|
||
}
|
||
}
|
||
function qa(a, b, c, d) {
|
||
if (null === b || "undefined" === typeof b || pa(a, b, c, d)) return !0;
|
||
if (d) return !1;
|
||
if (null !== c) switch (c.type) {
|
||
case 3:
|
||
return !b;
|
||
case 4:
|
||
return !1 === b;
|
||
case 5:
|
||
return isNaN(b);
|
||
case 6:
|
||
return isNaN(b) || 1 > b;
|
||
}
|
||
return !1;
|
||
}
|
||
function v(a, b, c, d, e, f, g) {
|
||
this.acceptsBooleans = 2 === b || 3 === b || 4 === b;
|
||
this.attributeName = d;
|
||
this.attributeNamespace = e;
|
||
this.mustUseProperty = c;
|
||
this.propertyName = a;
|
||
this.type = b;
|
||
this.sanitizeURL = f;
|
||
this.removeEmptyString = g;
|
||
}
|
||
var z = {};
|
||
"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function (a) {
|
||
z[a] = new v(a, 0, !1, a, null, !1, !1);
|
||
});
|
||
[["acceptCharset", "accept-charset"], ["className", "class"], ["htmlFor", "for"], ["httpEquiv", "http-equiv"]].forEach(function (a) {
|
||
var b = a[0];
|
||
z[b] = new v(b, 1, !1, a[1], null, !1, !1);
|
||
});
|
||
["contentEditable", "draggable", "spellCheck", "value"].forEach(function (a) {
|
||
z[a] = new v(a, 2, !1, a.toLowerCase(), null, !1, !1);
|
||
});
|
||
["autoReverse", "externalResourcesRequired", "focusable", "preserveAlpha"].forEach(function (a) {
|
||
z[a] = new v(a, 2, !1, a, null, !1, !1);
|
||
});
|
||
"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function (a) {
|
||
z[a] = new v(a, 3, !1, a.toLowerCase(), null, !1, !1);
|
||
});
|
||
["checked", "multiple", "muted", "selected"].forEach(function (a) {
|
||
z[a] = new v(a, 3, !0, a, null, !1, !1);
|
||
});
|
||
["capture", "download"].forEach(function (a) {
|
||
z[a] = new v(a, 4, !1, a, null, !1, !1);
|
||
});
|
||
["cols", "rows", "size", "span"].forEach(function (a) {
|
||
z[a] = new v(a, 6, !1, a, null, !1, !1);
|
||
});
|
||
["rowSpan", "start"].forEach(function (a) {
|
||
z[a] = new v(a, 5, !1, a.toLowerCase(), null, !1, !1);
|
||
});
|
||
var ra = /[\-:]([a-z])/g;
|
||
function sa(a) {
|
||
return a[1].toUpperCase();
|
||
}
|
||
"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function (a) {
|
||
var b = a.replace(ra, sa);
|
||
z[b] = new v(b, 1, !1, a, null, !1, !1);
|
||
});
|
||
"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function (a) {
|
||
var b = a.replace(ra, sa);
|
||
z[b] = new v(b, 1, !1, a, "http://www.w3.org/1999/xlink", !1, !1);
|
||
});
|
||
["xml:base", "xml:lang", "xml:space"].forEach(function (a) {
|
||
var b = a.replace(ra, sa);
|
||
z[b] = new v(b, 1, !1, a, "http://www.w3.org/XML/1998/namespace", !1, !1);
|
||
});
|
||
["tabIndex", "crossOrigin"].forEach(function (a) {
|
||
z[a] = new v(a, 1, !1, a.toLowerCase(), null, !1, !1);
|
||
});
|
||
z.xlinkHref = new v("xlinkHref", 1, !1, "xlink:href", "http://www.w3.org/1999/xlink", !0, !1);
|
||
["src", "href", "action", "formAction"].forEach(function (a) {
|
||
z[a] = new v(a, 1, !1, a.toLowerCase(), null, !0, !0);
|
||
});
|
||
function ta(a, b, c, d) {
|
||
var e = z.hasOwnProperty(b) ? z[b] : null;
|
||
if (null !== e ? 0 !== e.type : d || !(2 < b.length) || "o" !== b[0] && "O" !== b[0] || "n" !== b[1] && "N" !== b[1]) qa(b, c, e, d) && (c = null), d || null === e ? oa(b) && (null === c ? a.removeAttribute(b) : a.setAttribute(b, "" + c)) : e.mustUseProperty ? a[e.propertyName] = null === c ? 3 === e.type ? !1 : "" : c : (b = e.attributeName, d = e.attributeNamespace, null === c ? a.removeAttribute(b) : (e = e.type, c = 3 === e || 4 === e && !0 === c ? "" : "" + c, d ? a.setAttributeNS(d, b, c) : a.setAttribute(b, c)));
|
||
}
|
||
var ua = aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,
|
||
va = Symbol.for("react.element"),
|
||
wa = Symbol.for("react.portal"),
|
||
ya = Symbol.for("react.fragment"),
|
||
za = Symbol.for("react.strict_mode"),
|
||
Aa = Symbol.for("react.profiler"),
|
||
Ba = Symbol.for("react.provider"),
|
||
Ca = Symbol.for("react.context"),
|
||
Da = Symbol.for("react.forward_ref"),
|
||
Ea = Symbol.for("react.suspense"),
|
||
Fa = Symbol.for("react.suspense_list"),
|
||
Ga = Symbol.for("react.memo"),
|
||
Ha = Symbol.for("react.lazy");
|
||
Symbol.for("react.scope");
|
||
Symbol.for("react.debug_trace_mode");
|
||
var Ia = Symbol.for("react.offscreen");
|
||
Symbol.for("react.legacy_hidden");
|
||
Symbol.for("react.cache");
|
||
Symbol.for("react.tracing_marker");
|
||
var Ja = Symbol.iterator;
|
||
function Ka(a) {
|
||
if (null === a || "object" !== typeof a) return null;
|
||
a = Ja && a[Ja] || a["@@iterator"];
|
||
return "function" === typeof a ? a : null;
|
||
}
|
||
var A = Object.assign,
|
||
La;
|
||
function Ma(a) {
|
||
if (void 0 === La) try {
|
||
throw Error();
|
||
} catch (c) {
|
||
var b = c.stack.trim().match(/\n( *(at )?)/);
|
||
La = b && b[1] || "";
|
||
}
|
||
return "\n" + La + a;
|
||
}
|
||
var Na = !1;
|
||
function Oa(a, b) {
|
||
if (!a || Na) return "";
|
||
Na = !0;
|
||
var c = Error.prepareStackTrace;
|
||
Error.prepareStackTrace = void 0;
|
||
try {
|
||
if (b) {
|
||
if (b = function b() {
|
||
throw Error();
|
||
}, Object.defineProperty(b.prototype, "props", {
|
||
set: function set() {
|
||
throw Error();
|
||
}
|
||
}), "object" === typeof Reflect && Reflect.construct) {
|
||
try {
|
||
Reflect.construct(b, []);
|
||
} catch (l) {
|
||
var d = l;
|
||
}
|
||
Reflect.construct(a, [], b);
|
||
} else {
|
||
try {
|
||
b.call();
|
||
} catch (l) {
|
||
d = l;
|
||
}
|
||
a.call(b.prototype);
|
||
}
|
||
} else {
|
||
try {
|
||
throw Error();
|
||
} catch (l) {
|
||
d = l;
|
||
}
|
||
a();
|
||
}
|
||
} catch (l) {
|
||
if (l && d && "string" === typeof l.stack) {
|
||
for (var e = l.stack.split("\n"), f = d.stack.split("\n"), g = e.length - 1, h = f.length - 1; 1 <= g && 0 <= h && e[g] !== f[h];) h--;
|
||
for (; 1 <= g && 0 <= h; g--, h--) if (e[g] !== f[h]) {
|
||
if (1 !== g || 1 !== h) {
|
||
do if (g--, h--, 0 > h || e[g] !== f[h]) {
|
||
var k = "\n" + e[g].replace(" at new ", " at ");
|
||
a.displayName && k.includes("<anonymous>") && (k = k.replace("<anonymous>", a.displayName));
|
||
return k;
|
||
} while (1 <= g && 0 <= h);
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
} finally {
|
||
Na = !1, Error.prepareStackTrace = c;
|
||
}
|
||
return (a = a ? a.displayName || a.name : "") ? Ma(a) : "";
|
||
}
|
||
function Pa(a) {
|
||
switch (a.tag) {
|
||
case 5:
|
||
return Ma(a.type);
|
||
case 16:
|
||
return Ma("Lazy");
|
||
case 13:
|
||
return Ma("Suspense");
|
||
case 19:
|
||
return Ma("SuspenseList");
|
||
case 0:
|
||
case 2:
|
||
case 15:
|
||
return a = Oa(a.type, !1), a;
|
||
case 11:
|
||
return a = Oa(a.type.render, !1), a;
|
||
case 1:
|
||
return a = Oa(a.type, !0), a;
|
||
default:
|
||
return "";
|
||
}
|
||
}
|
||
function Qa(a) {
|
||
if (null == a) return null;
|
||
if ("function" === typeof a) return a.displayName || a.name || null;
|
||
if ("string" === typeof a) return a;
|
||
switch (a) {
|
||
case ya:
|
||
return "Fragment";
|
||
case wa:
|
||
return "Portal";
|
||
case Aa:
|
||
return "Profiler";
|
||
case za:
|
||
return "StrictMode";
|
||
case Ea:
|
||
return "Suspense";
|
||
case Fa:
|
||
return "SuspenseList";
|
||
}
|
||
if ("object" === typeof a) switch (a.$$typeof) {
|
||
case Ca:
|
||
return (a.displayName || "Context") + ".Consumer";
|
||
case Ba:
|
||
return (a._context.displayName || "Context") + ".Provider";
|
||
case Da:
|
||
var b = a.render;
|
||
a = a.displayName;
|
||
a || (a = b.displayName || b.name || "", a = "" !== a ? "ForwardRef(" + a + ")" : "ForwardRef");
|
||
return a;
|
||
case Ga:
|
||
return b = a.displayName || null, null !== b ? b : Qa(a.type) || "Memo";
|
||
case Ha:
|
||
b = a._payload;
|
||
a = a._init;
|
||
try {
|
||
return Qa(a(b));
|
||
} catch (c) {}
|
||
}
|
||
return null;
|
||
}
|
||
function Ra(a) {
|
||
var b = a.type;
|
||
switch (a.tag) {
|
||
case 24:
|
||
return "Cache";
|
||
case 9:
|
||
return (b.displayName || "Context") + ".Consumer";
|
||
case 10:
|
||
return (b._context.displayName || "Context") + ".Provider";
|
||
case 18:
|
||
return "DehydratedFragment";
|
||
case 11:
|
||
return a = b.render, a = a.displayName || a.name || "", b.displayName || ("" !== a ? "ForwardRef(" + a + ")" : "ForwardRef");
|
||
case 7:
|
||
return "Fragment";
|
||
case 5:
|
||
return b;
|
||
case 4:
|
||
return "Portal";
|
||
case 3:
|
||
return "Root";
|
||
case 6:
|
||
return "Text";
|
||
case 16:
|
||
return Qa(b);
|
||
case 8:
|
||
return b === za ? "StrictMode" : "Mode";
|
||
case 22:
|
||
return "Offscreen";
|
||
case 12:
|
||
return "Profiler";
|
||
case 21:
|
||
return "Scope";
|
||
case 13:
|
||
return "Suspense";
|
||
case 19:
|
||
return "SuspenseList";
|
||
case 25:
|
||
return "TracingMarker";
|
||
case 1:
|
||
case 0:
|
||
case 17:
|
||
case 2:
|
||
case 14:
|
||
case 15:
|
||
if ("function" === typeof b) return b.displayName || b.name || null;
|
||
if ("string" === typeof b) return b;
|
||
}
|
||
return null;
|
||
}
|
||
function Sa(a) {
|
||
switch (typeof a) {
|
||
case "boolean":
|
||
case "number":
|
||
case "string":
|
||
case "undefined":
|
||
return a;
|
||
case "object":
|
||
return a;
|
||
default:
|
||
return "";
|
||
}
|
||
}
|
||
function Ta(a) {
|
||
var b = a.type;
|
||
return (a = a.nodeName) && "input" === a.toLowerCase() && ("checkbox" === b || "radio" === b);
|
||
}
|
||
function Ua(a) {
|
||
var b = Ta(a) ? "checked" : "value",
|
||
c = Object.getOwnPropertyDescriptor(a.constructor.prototype, b),
|
||
d = "" + a[b];
|
||
if (!a.hasOwnProperty(b) && "undefined" !== typeof c && "function" === typeof c.get && "function" === typeof c.set) {
|
||
var e = c.get,
|
||
f = c.set;
|
||
Object.defineProperty(a, b, {
|
||
configurable: !0,
|
||
get: function get() {
|
||
return e.call(this);
|
||
},
|
||
set: function set(a) {
|
||
d = "" + a;
|
||
f.call(this, a);
|
||
}
|
||
});
|
||
Object.defineProperty(a, b, {
|
||
enumerable: c.enumerable
|
||
});
|
||
return {
|
||
getValue: function getValue() {
|
||
return d;
|
||
},
|
||
setValue: function setValue(a) {
|
||
d = "" + a;
|
||
},
|
||
stopTracking: function stopTracking() {
|
||
a._valueTracker = null;
|
||
delete a[b];
|
||
}
|
||
};
|
||
}
|
||
}
|
||
function Va(a) {
|
||
a._valueTracker || (a._valueTracker = Ua(a));
|
||
}
|
||
function Wa(a) {
|
||
if (!a) return !1;
|
||
var b = a._valueTracker;
|
||
if (!b) return !0;
|
||
var c = b.getValue();
|
||
var d = "";
|
||
a && (d = Ta(a) ? a.checked ? "true" : "false" : a.value);
|
||
a = d;
|
||
return a !== c ? (b.setValue(a), !0) : !1;
|
||
}
|
||
function Xa(a) {
|
||
a = a || ("undefined" !== typeof document ? document : void 0);
|
||
if ("undefined" === typeof a) return null;
|
||
try {
|
||
return a.activeElement || a.body;
|
||
} catch (b) {
|
||
return a.body;
|
||
}
|
||
}
|
||
function Ya(a, b) {
|
||
var c = b.checked;
|
||
return A({}, b, {
|
||
defaultChecked: void 0,
|
||
defaultValue: void 0,
|
||
value: void 0,
|
||
checked: null != c ? c : a._wrapperState.initialChecked
|
||
});
|
||
}
|
||
function Za(a, b) {
|
||
var c = null == b.defaultValue ? "" : b.defaultValue,
|
||
d = null != b.checked ? b.checked : b.defaultChecked;
|
||
c = Sa(null != b.value ? b.value : c);
|
||
a._wrapperState = {
|
||
initialChecked: d,
|
||
initialValue: c,
|
||
controlled: "checkbox" === b.type || "radio" === b.type ? null != b.checked : null != b.value
|
||
};
|
||
}
|
||
function ab(a, b) {
|
||
b = b.checked;
|
||
null != b && ta(a, "checked", b, !1);
|
||
}
|
||
function bb(a, b) {
|
||
ab(a, b);
|
||
var c = Sa(b.value),
|
||
d = b.type;
|
||
if (null != c) {
|
||
if ("number" === d) {
|
||
if (0 === c && "" === a.value || a.value != c) a.value = "" + c;
|
||
} else a.value !== "" + c && (a.value = "" + c);
|
||
} else if ("submit" === d || "reset" === d) {
|
||
a.removeAttribute("value");
|
||
return;
|
||
}
|
||
b.hasOwnProperty("value") ? cb(a, b.type, c) : b.hasOwnProperty("defaultValue") && cb(a, b.type, Sa(b.defaultValue));
|
||
null == b.checked && null != b.defaultChecked && (a.defaultChecked = !!b.defaultChecked);
|
||
}
|
||
function db(a, b, c) {
|
||
if (b.hasOwnProperty("value") || b.hasOwnProperty("defaultValue")) {
|
||
var d = b.type;
|
||
if (!("submit" !== d && "reset" !== d || void 0 !== b.value && null !== b.value)) return;
|
||
b = "" + a._wrapperState.initialValue;
|
||
c || b === a.value || (a.value = b);
|
||
a.defaultValue = b;
|
||
}
|
||
c = a.name;
|
||
"" !== c && (a.name = "");
|
||
a.defaultChecked = !!a._wrapperState.initialChecked;
|
||
"" !== c && (a.name = c);
|
||
}
|
||
function cb(a, b, c) {
|
||
if ("number" !== b || Xa(a.ownerDocument) !== a) null == c ? a.defaultValue = "" + a._wrapperState.initialValue : a.defaultValue !== "" + c && (a.defaultValue = "" + c);
|
||
}
|
||
var eb = Array.isArray;
|
||
function fb(a, b, c, d) {
|
||
a = a.options;
|
||
if (b) {
|
||
b = {};
|
||
for (var e = 0; e < c.length; e++) b["$" + c[e]] = !0;
|
||
for (c = 0; c < a.length; c++) e = b.hasOwnProperty("$" + a[c].value), a[c].selected !== e && (a[c].selected = e), e && d && (a[c].defaultSelected = !0);
|
||
} else {
|
||
c = "" + Sa(c);
|
||
b = null;
|
||
for (e = 0; e < a.length; e++) {
|
||
if (a[e].value === c) {
|
||
a[e].selected = !0;
|
||
d && (a[e].defaultSelected = !0);
|
||
return;
|
||
}
|
||
null !== b || a[e].disabled || (b = a[e]);
|
||
}
|
||
null !== b && (b.selected = !0);
|
||
}
|
||
}
|
||
function gb(a, b) {
|
||
if (null != b.dangerouslySetInnerHTML) throw Error(p(91));
|
||
return A({}, b, {
|
||
value: void 0,
|
||
defaultValue: void 0,
|
||
children: "" + a._wrapperState.initialValue
|
||
});
|
||
}
|
||
function hb(a, b) {
|
||
var c = b.value;
|
||
if (null == c) {
|
||
c = b.children;
|
||
b = b.defaultValue;
|
||
if (null != c) {
|
||
if (null != b) throw Error(p(92));
|
||
if (eb(c)) {
|
||
if (1 < c.length) throw Error(p(93));
|
||
c = c[0];
|
||
}
|
||
b = c;
|
||
}
|
||
null == b && (b = "");
|
||
c = b;
|
||
}
|
||
a._wrapperState = {
|
||
initialValue: Sa(c)
|
||
};
|
||
}
|
||
function ib(a, b) {
|
||
var c = Sa(b.value),
|
||
d = Sa(b.defaultValue);
|
||
null != c && (c = "" + c, c !== a.value && (a.value = c), null == b.defaultValue && a.defaultValue !== c && (a.defaultValue = c));
|
||
null != d && (a.defaultValue = "" + d);
|
||
}
|
||
function jb(a) {
|
||
var b = a.textContent;
|
||
b === a._wrapperState.initialValue && "" !== b && null !== b && (a.value = b);
|
||
}
|
||
function kb(a) {
|
||
switch (a) {
|
||
case "svg":
|
||
return "http://www.w3.org/2000/svg";
|
||
case "math":
|
||
return "http://www.w3.org/1998/Math/MathML";
|
||
default:
|
||
return "http://www.w3.org/1999/xhtml";
|
||
}
|
||
}
|
||
function lb(a, b) {
|
||
return null == a || "http://www.w3.org/1999/xhtml" === a ? kb(b) : "http://www.w3.org/2000/svg" === a && "foreignObject" === b ? "http://www.w3.org/1999/xhtml" : a;
|
||
}
|
||
var mb,
|
||
nb = function (a) {
|
||
return "undefined" !== typeof MSApp && MSApp.execUnsafeLocalFunction ? function (b, c, d, e) {
|
||
MSApp.execUnsafeLocalFunction(function () {
|
||
return a(b, c, d, e);
|
||
});
|
||
} : a;
|
||
}(function (a, b) {
|
||
if ("http://www.w3.org/2000/svg" !== a.namespaceURI || "innerHTML" in a) a.innerHTML = b;else {
|
||
mb = mb || document.createElement("div");
|
||
mb.innerHTML = "<svg>" + b.valueOf().toString() + "</svg>";
|
||
for (b = mb.firstChild; a.firstChild;) a.removeChild(a.firstChild);
|
||
for (; b.firstChild;) a.appendChild(b.firstChild);
|
||
}
|
||
});
|
||
function ob(a, b) {
|
||
if (b) {
|
||
var c = a.firstChild;
|
||
if (c && c === a.lastChild && 3 === c.nodeType) {
|
||
c.nodeValue = b;
|
||
return;
|
||
}
|
||
}
|
||
a.textContent = b;
|
||
}
|
||
var pb = {
|
||
animationIterationCount: !0,
|
||
aspectRatio: !0,
|
||
borderImageOutset: !0,
|
||
borderImageSlice: !0,
|
||
borderImageWidth: !0,
|
||
boxFlex: !0,
|
||
boxFlexGroup: !0,
|
||
boxOrdinalGroup: !0,
|
||
columnCount: !0,
|
||
columns: !0,
|
||
flex: !0,
|
||
flexGrow: !0,
|
||
flexPositive: !0,
|
||
flexShrink: !0,
|
||
flexNegative: !0,
|
||
flexOrder: !0,
|
||
gridArea: !0,
|
||
gridRow: !0,
|
||
gridRowEnd: !0,
|
||
gridRowSpan: !0,
|
||
gridRowStart: !0,
|
||
gridColumn: !0,
|
||
gridColumnEnd: !0,
|
||
gridColumnSpan: !0,
|
||
gridColumnStart: !0,
|
||
fontWeight: !0,
|
||
lineClamp: !0,
|
||
lineHeight: !0,
|
||
opacity: !0,
|
||
order: !0,
|
||
orphans: !0,
|
||
tabSize: !0,
|
||
widows: !0,
|
||
zIndex: !0,
|
||
zoom: !0,
|
||
fillOpacity: !0,
|
||
floodOpacity: !0,
|
||
stopOpacity: !0,
|
||
strokeDasharray: !0,
|
||
strokeDashoffset: !0,
|
||
strokeMiterlimit: !0,
|
||
strokeOpacity: !0,
|
||
strokeWidth: !0
|
||
},
|
||
qb = ["Webkit", "ms", "Moz", "O"];
|
||
Object.keys(pb).forEach(function (a) {
|
||
qb.forEach(function (b) {
|
||
b = b + a.charAt(0).toUpperCase() + a.substring(1);
|
||
pb[b] = pb[a];
|
||
});
|
||
});
|
||
function rb(a, b, c) {
|
||
return null == b || "boolean" === typeof b || "" === b ? "" : c || "number" !== typeof b || 0 === b || pb.hasOwnProperty(a) && pb[a] ? ("" + b).trim() : b + "px";
|
||
}
|
||
function sb(a, b) {
|
||
a = a.style;
|
||
for (var c in b) if (b.hasOwnProperty(c)) {
|
||
var d = 0 === c.indexOf("--"),
|
||
e = rb(c, b[c], d);
|
||
"float" === c && (c = "cssFloat");
|
||
d ? a.setProperty(c, e) : a[c] = e;
|
||
}
|
||
}
|
||
var tb = A({
|
||
menuitem: !0
|
||
}, {
|
||
area: !0,
|
||
base: !0,
|
||
br: !0,
|
||
col: !0,
|
||
embed: !0,
|
||
hr: !0,
|
||
img: !0,
|
||
input: !0,
|
||
keygen: !0,
|
||
link: !0,
|
||
meta: !0,
|
||
param: !0,
|
||
source: !0,
|
||
track: !0,
|
||
wbr: !0
|
||
});
|
||
function ub(a, b) {
|
||
if (b) {
|
||
if (tb[a] && (null != b.children || null != b.dangerouslySetInnerHTML)) throw Error(p(137, a));
|
||
if (null != b.dangerouslySetInnerHTML) {
|
||
if (null != b.children) throw Error(p(60));
|
||
if ("object" !== typeof b.dangerouslySetInnerHTML || !("__html" in b.dangerouslySetInnerHTML)) throw Error(p(61));
|
||
}
|
||
if (null != b.style && "object" !== typeof b.style) throw Error(p(62));
|
||
}
|
||
}
|
||
function vb(a, b) {
|
||
if (-1 === a.indexOf("-")) return "string" === typeof b.is;
|
||
switch (a) {
|
||
case "annotation-xml":
|
||
case "color-profile":
|
||
case "font-face":
|
||
case "font-face-src":
|
||
case "font-face-uri":
|
||
case "font-face-format":
|
||
case "font-face-name":
|
||
case "missing-glyph":
|
||
return !1;
|
||
default:
|
||
return !0;
|
||
}
|
||
}
|
||
var wb = null;
|
||
function xb(a) {
|
||
a = a.target || a.srcElement || window;
|
||
a.correspondingUseElement && (a = a.correspondingUseElement);
|
||
return 3 === a.nodeType ? a.parentNode : a;
|
||
}
|
||
var yb = null,
|
||
zb = null,
|
||
Ab = null;
|
||
function Bb(a) {
|
||
if (a = Cb(a)) {
|
||
if ("function" !== typeof yb) throw Error(p(280));
|
||
var b = a.stateNode;
|
||
b && (b = Db(b), yb(a.stateNode, a.type, b));
|
||
}
|
||
}
|
||
function Eb(a) {
|
||
zb ? Ab ? Ab.push(a) : Ab = [a] : zb = a;
|
||
}
|
||
function Fb() {
|
||
if (zb) {
|
||
var a = zb,
|
||
b = Ab;
|
||
Ab = zb = null;
|
||
Bb(a);
|
||
if (b) for (a = 0; a < b.length; a++) Bb(b[a]);
|
||
}
|
||
}
|
||
function Gb(a, b) {
|
||
return a(b);
|
||
}
|
||
function Hb() {}
|
||
var Ib = !1;
|
||
function Jb(a, b, c) {
|
||
if (Ib) return a(b, c);
|
||
Ib = !0;
|
||
try {
|
||
return Gb(a, b, c);
|
||
} finally {
|
||
if (Ib = !1, null !== zb || null !== Ab) Hb(), Fb();
|
||
}
|
||
}
|
||
function Kb(a, b) {
|
||
var c = a.stateNode;
|
||
if (null === c) return null;
|
||
var d = Db(c);
|
||
if (null === d) return null;
|
||
c = d[b];
|
||
a: switch (b) {
|
||
case "onClick":
|
||
case "onClickCapture":
|
||
case "onDoubleClick":
|
||
case "onDoubleClickCapture":
|
||
case "onMouseDown":
|
||
case "onMouseDownCapture":
|
||
case "onMouseMove":
|
||
case "onMouseMoveCapture":
|
||
case "onMouseUp":
|
||
case "onMouseUpCapture":
|
||
case "onMouseEnter":
|
||
(d = !d.disabled) || (a = a.type, d = !("button" === a || "input" === a || "select" === a || "textarea" === a));
|
||
a = !d;
|
||
break a;
|
||
default:
|
||
a = !1;
|
||
}
|
||
if (a) return null;
|
||
if (c && "function" !== typeof c) throw Error(p(231, b, typeof c));
|
||
return c;
|
||
}
|
||
var Lb = !1;
|
||
if (ia) try {
|
||
var Mb = {};
|
||
Object.defineProperty(Mb, "passive", {
|
||
get: function get() {
|
||
Lb = !0;
|
||
}
|
||
});
|
||
window.addEventListener("test", Mb, Mb);
|
||
window.removeEventListener("test", Mb, Mb);
|
||
} catch (a) {
|
||
Lb = !1;
|
||
}
|
||
function Nb(a, b, c, d, e, f, g, h, k) {
|
||
var l = Array.prototype.slice.call(arguments, 3);
|
||
try {
|
||
b.apply(c, l);
|
||
} catch (m) {
|
||
this.onError(m);
|
||
}
|
||
}
|
||
var Ob = !1,
|
||
Pb = null,
|
||
Qb = !1,
|
||
Rb = null,
|
||
Sb = {
|
||
onError: function onError(a) {
|
||
Ob = !0;
|
||
Pb = a;
|
||
}
|
||
};
|
||
function Tb(a, b, c, d, e, f, g, h, k) {
|
||
Ob = !1;
|
||
Pb = null;
|
||
Nb.apply(Sb, arguments);
|
||
}
|
||
function Ub(a, b, c, d, e, f, g, h, k) {
|
||
Tb.apply(this, arguments);
|
||
if (Ob) {
|
||
if (Ob) {
|
||
var l = Pb;
|
||
Ob = !1;
|
||
Pb = null;
|
||
} else throw Error(p(198));
|
||
Qb || (Qb = !0, Rb = l);
|
||
}
|
||
}
|
||
function Vb(a) {
|
||
var b = a,
|
||
c = a;
|
||
if (a.alternate) for (; b.return;) b = b.return;else {
|
||
a = b;
|
||
do b = a, 0 !== (b.flags & 4098) && (c = b.return), a = b.return; while (a);
|
||
}
|
||
return 3 === b.tag ? c : null;
|
||
}
|
||
function Wb(a) {
|
||
if (13 === a.tag) {
|
||
var b = a.memoizedState;
|
||
null === b && (a = a.alternate, null !== a && (b = a.memoizedState));
|
||
if (null !== b) return b.dehydrated;
|
||
}
|
||
return null;
|
||
}
|
||
function Xb(a) {
|
||
if (Vb(a) !== a) throw Error(p(188));
|
||
}
|
||
function Yb(a) {
|
||
var b = a.alternate;
|
||
if (!b) {
|
||
b = Vb(a);
|
||
if (null === b) throw Error(p(188));
|
||
return b !== a ? null : a;
|
||
}
|
||
for (var c = a, d = b;;) {
|
||
var e = c.return;
|
||
if (null === e) break;
|
||
var f = e.alternate;
|
||
if (null === f) {
|
||
d = e.return;
|
||
if (null !== d) {
|
||
c = d;
|
||
continue;
|
||
}
|
||
break;
|
||
}
|
||
if (e.child === f.child) {
|
||
for (f = e.child; f;) {
|
||
if (f === c) return Xb(e), a;
|
||
if (f === d) return Xb(e), b;
|
||
f = f.sibling;
|
||
}
|
||
throw Error(p(188));
|
||
}
|
||
if (c.return !== d.return) c = e, d = f;else {
|
||
for (var g = !1, h = e.child; h;) {
|
||
if (h === c) {
|
||
g = !0;
|
||
c = e;
|
||
d = f;
|
||
break;
|
||
}
|
||
if (h === d) {
|
||
g = !0;
|
||
d = e;
|
||
c = f;
|
||
break;
|
||
}
|
||
h = h.sibling;
|
||
}
|
||
if (!g) {
|
||
for (h = f.child; h;) {
|
||
if (h === c) {
|
||
g = !0;
|
||
c = f;
|
||
d = e;
|
||
break;
|
||
}
|
||
if (h === d) {
|
||
g = !0;
|
||
d = f;
|
||
c = e;
|
||
break;
|
||
}
|
||
h = h.sibling;
|
||
}
|
||
if (!g) throw Error(p(189));
|
||
}
|
||
}
|
||
if (c.alternate !== d) throw Error(p(190));
|
||
}
|
||
if (3 !== c.tag) throw Error(p(188));
|
||
return c.stateNode.current === c ? a : b;
|
||
}
|
||
function Zb(a) {
|
||
a = Yb(a);
|
||
return null !== a ? $b(a) : null;
|
||
}
|
||
function $b(a) {
|
||
if (5 === a.tag || 6 === a.tag) return a;
|
||
for (a = a.child; null !== a;) {
|
||
var b = $b(a);
|
||
if (null !== b) return b;
|
||
a = a.sibling;
|
||
}
|
||
return null;
|
||
}
|
||
var ac = ca.unstable_scheduleCallback,
|
||
bc = ca.unstable_cancelCallback,
|
||
cc = ca.unstable_shouldYield,
|
||
dc = ca.unstable_requestPaint,
|
||
B = ca.unstable_now,
|
||
ec = ca.unstable_getCurrentPriorityLevel,
|
||
fc = ca.unstable_ImmediatePriority,
|
||
gc = ca.unstable_UserBlockingPriority,
|
||
hc = ca.unstable_NormalPriority,
|
||
ic = ca.unstable_LowPriority,
|
||
jc = ca.unstable_IdlePriority,
|
||
kc = null,
|
||
lc = null;
|
||
function mc(a) {
|
||
if (lc && "function" === typeof lc.onCommitFiberRoot) try {
|
||
lc.onCommitFiberRoot(kc, a, void 0, 128 === (a.current.flags & 128));
|
||
} catch (b) {}
|
||
}
|
||
var oc = Math.clz32 ? Math.clz32 : nc,
|
||
pc = Math.log,
|
||
qc = Math.LN2;
|
||
function nc(a) {
|
||
a >>>= 0;
|
||
return 0 === a ? 32 : 31 - (pc(a) / qc | 0) | 0;
|
||
}
|
||
var rc = 64,
|
||
sc = 4194304;
|
||
function tc(a) {
|
||
switch (a & -a) {
|
||
case 1:
|
||
return 1;
|
||
case 2:
|
||
return 2;
|
||
case 4:
|
||
return 4;
|
||
case 8:
|
||
return 8;
|
||
case 16:
|
||
return 16;
|
||
case 32:
|
||
return 32;
|
||
case 64:
|
||
case 128:
|
||
case 256:
|
||
case 512:
|
||
case 1024:
|
||
case 2048:
|
||
case 4096:
|
||
case 8192:
|
||
case 16384:
|
||
case 32768:
|
||
case 65536:
|
||
case 131072:
|
||
case 262144:
|
||
case 524288:
|
||
case 1048576:
|
||
case 2097152:
|
||
return a & 4194240;
|
||
case 4194304:
|
||
case 8388608:
|
||
case 16777216:
|
||
case 33554432:
|
||
case 67108864:
|
||
return a & 130023424;
|
||
case 134217728:
|
||
return 134217728;
|
||
case 268435456:
|
||
return 268435456;
|
||
case 536870912:
|
||
return 536870912;
|
||
case 1073741824:
|
||
return 1073741824;
|
||
default:
|
||
return a;
|
||
}
|
||
}
|
||
function uc(a, b) {
|
||
var c = a.pendingLanes;
|
||
if (0 === c) return 0;
|
||
var d = 0,
|
||
e = a.suspendedLanes,
|
||
f = a.pingedLanes,
|
||
g = c & 268435455;
|
||
if (0 !== g) {
|
||
var h = g & ~e;
|
||
0 !== h ? d = tc(h) : (f &= g, 0 !== f && (d = tc(f)));
|
||
} else g = c & ~e, 0 !== g ? d = tc(g) : 0 !== f && (d = tc(f));
|
||
if (0 === d) return 0;
|
||
if (0 !== b && b !== d && 0 === (b & e) && (e = d & -d, f = b & -b, e >= f || 16 === e && 0 !== (f & 4194240))) return b;
|
||
0 !== (d & 4) && (d |= c & 16);
|
||
b = a.entangledLanes;
|
||
if (0 !== b) for (a = a.entanglements, b &= d; 0 < b;) c = 31 - oc(b), e = 1 << c, d |= a[c], b &= ~e;
|
||
return d;
|
||
}
|
||
function vc(a, b) {
|
||
switch (a) {
|
||
case 1:
|
||
case 2:
|
||
case 4:
|
||
return b + 250;
|
||
case 8:
|
||
case 16:
|
||
case 32:
|
||
case 64:
|
||
case 128:
|
||
case 256:
|
||
case 512:
|
||
case 1024:
|
||
case 2048:
|
||
case 4096:
|
||
case 8192:
|
||
case 16384:
|
||
case 32768:
|
||
case 65536:
|
||
case 131072:
|
||
case 262144:
|
||
case 524288:
|
||
case 1048576:
|
||
case 2097152:
|
||
return b + 5E3;
|
||
case 4194304:
|
||
case 8388608:
|
||
case 16777216:
|
||
case 33554432:
|
||
case 67108864:
|
||
return -1;
|
||
case 134217728:
|
||
case 268435456:
|
||
case 536870912:
|
||
case 1073741824:
|
||
return -1;
|
||
default:
|
||
return -1;
|
||
}
|
||
}
|
||
function wc(a, b) {
|
||
for (var c = a.suspendedLanes, d = a.pingedLanes, e = a.expirationTimes, f = a.pendingLanes; 0 < f;) {
|
||
var g = 31 - oc(f),
|
||
h = 1 << g,
|
||
k = e[g];
|
||
if (-1 === k) {
|
||
if (0 === (h & c) || 0 !== (h & d)) e[g] = vc(h, b);
|
||
} else k <= b && (a.expiredLanes |= h);
|
||
f &= ~h;
|
||
}
|
||
}
|
||
function xc(a) {
|
||
a = a.pendingLanes & -1073741825;
|
||
return 0 !== a ? a : a & 1073741824 ? 1073741824 : 0;
|
||
}
|
||
function yc() {
|
||
var a = rc;
|
||
rc <<= 1;
|
||
0 === (rc & 4194240) && (rc = 64);
|
||
return a;
|
||
}
|
||
function zc(a) {
|
||
for (var b = [], c = 0; 31 > c; c++) b.push(a);
|
||
return b;
|
||
}
|
||
function Ac(a, b, c) {
|
||
a.pendingLanes |= b;
|
||
536870912 !== b && (a.suspendedLanes = 0, a.pingedLanes = 0);
|
||
a = a.eventTimes;
|
||
b = 31 - oc(b);
|
||
a[b] = c;
|
||
}
|
||
function Bc(a, b) {
|
||
var c = a.pendingLanes & ~b;
|
||
a.pendingLanes = b;
|
||
a.suspendedLanes = 0;
|
||
a.pingedLanes = 0;
|
||
a.expiredLanes &= b;
|
||
a.mutableReadLanes &= b;
|
||
a.entangledLanes &= b;
|
||
b = a.entanglements;
|
||
var d = a.eventTimes;
|
||
for (a = a.expirationTimes; 0 < c;) {
|
||
var e = 31 - oc(c),
|
||
f = 1 << e;
|
||
b[e] = 0;
|
||
d[e] = -1;
|
||
a[e] = -1;
|
||
c &= ~f;
|
||
}
|
||
}
|
||
function Cc(a, b) {
|
||
var c = a.entangledLanes |= b;
|
||
for (a = a.entanglements; c;) {
|
||
var d = 31 - oc(c),
|
||
e = 1 << d;
|
||
e & b | a[d] & b && (a[d] |= b);
|
||
c &= ~e;
|
||
}
|
||
}
|
||
var C = 0;
|
||
function Dc(a) {
|
||
a &= -a;
|
||
return 1 < a ? 4 < a ? 0 !== (a & 268435455) ? 16 : 536870912 : 4 : 1;
|
||
}
|
||
var Ec,
|
||
Fc,
|
||
Gc,
|
||
Hc,
|
||
Ic,
|
||
Jc = !1,
|
||
Kc = [],
|
||
Lc = null,
|
||
Mc = null,
|
||
Nc = null,
|
||
Oc = new Map(),
|
||
Pc = new Map(),
|
||
Qc = [],
|
||
Rc = "mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");
|
||
function Sc(a, b) {
|
||
switch (a) {
|
||
case "focusin":
|
||
case "focusout":
|
||
Lc = null;
|
||
break;
|
||
case "dragenter":
|
||
case "dragleave":
|
||
Mc = null;
|
||
break;
|
||
case "mouseover":
|
||
case "mouseout":
|
||
Nc = null;
|
||
break;
|
||
case "pointerover":
|
||
case "pointerout":
|
||
Oc.delete(b.pointerId);
|
||
break;
|
||
case "gotpointercapture":
|
||
case "lostpointercapture":
|
||
Pc.delete(b.pointerId);
|
||
}
|
||
}
|
||
function Tc(a, b, c, d, e, f) {
|
||
if (null === a || a.nativeEvent !== f) return a = {
|
||
blockedOn: b,
|
||
domEventName: c,
|
||
eventSystemFlags: d,
|
||
nativeEvent: f,
|
||
targetContainers: [e]
|
||
}, null !== b && (b = Cb(b), null !== b && Fc(b)), a;
|
||
a.eventSystemFlags |= d;
|
||
b = a.targetContainers;
|
||
null !== e && -1 === b.indexOf(e) && b.push(e);
|
||
return a;
|
||
}
|
||
function Uc(a, b, c, d, e) {
|
||
switch (b) {
|
||
case "focusin":
|
||
return Lc = Tc(Lc, a, b, c, d, e), !0;
|
||
case "dragenter":
|
||
return Mc = Tc(Mc, a, b, c, d, e), !0;
|
||
case "mouseover":
|
||
return Nc = Tc(Nc, a, b, c, d, e), !0;
|
||
case "pointerover":
|
||
var f = e.pointerId;
|
||
Oc.set(f, Tc(Oc.get(f) || null, a, b, c, d, e));
|
||
return !0;
|
||
case "gotpointercapture":
|
||
return f = e.pointerId, Pc.set(f, Tc(Pc.get(f) || null, a, b, c, d, e)), !0;
|
||
}
|
||
return !1;
|
||
}
|
||
function Vc(a) {
|
||
var b = Wc(a.target);
|
||
if (null !== b) {
|
||
var c = Vb(b);
|
||
if (null !== c) if (b = c.tag, 13 === b) {
|
||
if (b = Wb(c), null !== b) {
|
||
a.blockedOn = b;
|
||
Ic(a.priority, function () {
|
||
Gc(c);
|
||
});
|
||
return;
|
||
}
|
||
} else if (3 === b && c.stateNode.current.memoizedState.isDehydrated) {
|
||
a.blockedOn = 3 === c.tag ? c.stateNode.containerInfo : null;
|
||
return;
|
||
}
|
||
}
|
||
a.blockedOn = null;
|
||
}
|
||
function Xc(a) {
|
||
if (null !== a.blockedOn) return !1;
|
||
for (var b = a.targetContainers; 0 < b.length;) {
|
||
var c = Yc(a.domEventName, a.eventSystemFlags, b[0], a.nativeEvent);
|
||
if (null === c) {
|
||
c = a.nativeEvent;
|
||
var d = new c.constructor(c.type, c);
|
||
wb = d;
|
||
c.target.dispatchEvent(d);
|
||
wb = null;
|
||
} else return b = Cb(c), null !== b && Fc(b), a.blockedOn = c, !1;
|
||
b.shift();
|
||
}
|
||
return !0;
|
||
}
|
||
function Zc(a, b, c) {
|
||
Xc(a) && c.delete(b);
|
||
}
|
||
function $c() {
|
||
Jc = !1;
|
||
null !== Lc && Xc(Lc) && (Lc = null);
|
||
null !== Mc && Xc(Mc) && (Mc = null);
|
||
null !== Nc && Xc(Nc) && (Nc = null);
|
||
Oc.forEach(Zc);
|
||
Pc.forEach(Zc);
|
||
}
|
||
function ad(a, b) {
|
||
a.blockedOn === b && (a.blockedOn = null, Jc || (Jc = !0, ca.unstable_scheduleCallback(ca.unstable_NormalPriority, $c)));
|
||
}
|
||
function bd(a) {
|
||
function b(b) {
|
||
return ad(b, a);
|
||
}
|
||
if (0 < Kc.length) {
|
||
ad(Kc[0], a);
|
||
for (var c = 1; c < Kc.length; c++) {
|
||
var d = Kc[c];
|
||
d.blockedOn === a && (d.blockedOn = null);
|
||
}
|
||
}
|
||
null !== Lc && ad(Lc, a);
|
||
null !== Mc && ad(Mc, a);
|
||
null !== Nc && ad(Nc, a);
|
||
Oc.forEach(b);
|
||
Pc.forEach(b);
|
||
for (c = 0; c < Qc.length; c++) d = Qc[c], d.blockedOn === a && (d.blockedOn = null);
|
||
for (; 0 < Qc.length && (c = Qc[0], null === c.blockedOn);) Vc(c), null === c.blockedOn && Qc.shift();
|
||
}
|
||
var cd = ua.ReactCurrentBatchConfig,
|
||
dd = !0;
|
||
function ed(a, b, c, d) {
|
||
var e = C,
|
||
f = cd.transition;
|
||
cd.transition = null;
|
||
try {
|
||
C = 1, fd(a, b, c, d);
|
||
} finally {
|
||
C = e, cd.transition = f;
|
||
}
|
||
}
|
||
function gd(a, b, c, d) {
|
||
var e = C,
|
||
f = cd.transition;
|
||
cd.transition = null;
|
||
try {
|
||
C = 4, fd(a, b, c, d);
|
||
} finally {
|
||
C = e, cd.transition = f;
|
||
}
|
||
}
|
||
function fd(a, b, c, d) {
|
||
if (dd) {
|
||
var e = Yc(a, b, c, d);
|
||
if (null === e) hd(a, b, d, id, c), Sc(a, d);else if (Uc(e, a, b, c, d)) d.stopPropagation();else if (Sc(a, d), b & 4 && -1 < Rc.indexOf(a)) {
|
||
for (; null !== e;) {
|
||
var f = Cb(e);
|
||
null !== f && Ec(f);
|
||
f = Yc(a, b, c, d);
|
||
null === f && hd(a, b, d, id, c);
|
||
if (f === e) break;
|
||
e = f;
|
||
}
|
||
null !== e && d.stopPropagation();
|
||
} else hd(a, b, d, null, c);
|
||
}
|
||
}
|
||
var id = null;
|
||
function Yc(a, b, c, d) {
|
||
id = null;
|
||
a = xb(d);
|
||
a = Wc(a);
|
||
if (null !== a) if (b = Vb(a), null === b) a = null;else if (c = b.tag, 13 === c) {
|
||
a = Wb(b);
|
||
if (null !== a) return a;
|
||
a = null;
|
||
} else if (3 === c) {
|
||
if (b.stateNode.current.memoizedState.isDehydrated) return 3 === b.tag ? b.stateNode.containerInfo : null;
|
||
a = null;
|
||
} else b !== a && (a = null);
|
||
id = a;
|
||
return null;
|
||
}
|
||
function jd(a) {
|
||
switch (a) {
|
||
case "cancel":
|
||
case "click":
|
||
case "close":
|
||
case "contextmenu":
|
||
case "copy":
|
||
case "cut":
|
||
case "auxclick":
|
||
case "dblclick":
|
||
case "dragend":
|
||
case "dragstart":
|
||
case "drop":
|
||
case "focusin":
|
||
case "focusout":
|
||
case "input":
|
||
case "invalid":
|
||
case "keydown":
|
||
case "keypress":
|
||
case "keyup":
|
||
case "mousedown":
|
||
case "mouseup":
|
||
case "paste":
|
||
case "pause":
|
||
case "play":
|
||
case "pointercancel":
|
||
case "pointerdown":
|
||
case "pointerup":
|
||
case "ratechange":
|
||
case "reset":
|
||
case "resize":
|
||
case "seeked":
|
||
case "submit":
|
||
case "touchcancel":
|
||
case "touchend":
|
||
case "touchstart":
|
||
case "volumechange":
|
||
case "change":
|
||
case "selectionchange":
|
||
case "textInput":
|
||
case "compositionstart":
|
||
case "compositionend":
|
||
case "compositionupdate":
|
||
case "beforeblur":
|
||
case "afterblur":
|
||
case "beforeinput":
|
||
case "blur":
|
||
case "fullscreenchange":
|
||
case "focus":
|
||
case "hashchange":
|
||
case "popstate":
|
||
case "select":
|
||
case "selectstart":
|
||
return 1;
|
||
case "drag":
|
||
case "dragenter":
|
||
case "dragexit":
|
||
case "dragleave":
|
||
case "dragover":
|
||
case "mousemove":
|
||
case "mouseout":
|
||
case "mouseover":
|
||
case "pointermove":
|
||
case "pointerout":
|
||
case "pointerover":
|
||
case "scroll":
|
||
case "toggle":
|
||
case "touchmove":
|
||
case "wheel":
|
||
case "mouseenter":
|
||
case "mouseleave":
|
||
case "pointerenter":
|
||
case "pointerleave":
|
||
return 4;
|
||
case "message":
|
||
switch (ec()) {
|
||
case fc:
|
||
return 1;
|
||
case gc:
|
||
return 4;
|
||
case hc:
|
||
case ic:
|
||
return 16;
|
||
case jc:
|
||
return 536870912;
|
||
default:
|
||
return 16;
|
||
}
|
||
default:
|
||
return 16;
|
||
}
|
||
}
|
||
var kd = null,
|
||
ld = null,
|
||
md = null;
|
||
function nd() {
|
||
if (md) return md;
|
||
var a,
|
||
b = ld,
|
||
c = b.length,
|
||
d,
|
||
e = "value" in kd ? kd.value : kd.textContent,
|
||
f = e.length;
|
||
for (a = 0; a < c && b[a] === e[a]; a++);
|
||
var g = c - a;
|
||
for (d = 1; d <= g && b[c - d] === e[f - d]; d++);
|
||
return md = e.slice(a, 1 < d ? 1 - d : void 0);
|
||
}
|
||
function od(a) {
|
||
var b = a.keyCode;
|
||
"charCode" in a ? (a = a.charCode, 0 === a && 13 === b && (a = 13)) : a = b;
|
||
10 === a && (a = 13);
|
||
return 32 <= a || 13 === a ? a : 0;
|
||
}
|
||
function pd() {
|
||
return !0;
|
||
}
|
||
function qd() {
|
||
return !1;
|
||
}
|
||
function rd(a) {
|
||
function b(b, d, e, f, g) {
|
||
this._reactName = b;
|
||
this._targetInst = e;
|
||
this.type = d;
|
||
this.nativeEvent = f;
|
||
this.target = g;
|
||
this.currentTarget = null;
|
||
for (var c in a) a.hasOwnProperty(c) && (b = a[c], this[c] = b ? b(f) : f[c]);
|
||
this.isDefaultPrevented = (null != f.defaultPrevented ? f.defaultPrevented : !1 === f.returnValue) ? pd : qd;
|
||
this.isPropagationStopped = qd;
|
||
return this;
|
||
}
|
||
A(b.prototype, {
|
||
preventDefault: function preventDefault() {
|
||
this.defaultPrevented = !0;
|
||
var a = this.nativeEvent;
|
||
a && (a.preventDefault ? a.preventDefault() : "unknown" !== typeof a.returnValue && (a.returnValue = !1), this.isDefaultPrevented = pd);
|
||
},
|
||
stopPropagation: function stopPropagation() {
|
||
var a = this.nativeEvent;
|
||
a && (a.stopPropagation ? a.stopPropagation() : "unknown" !== typeof a.cancelBubble && (a.cancelBubble = !0), this.isPropagationStopped = pd);
|
||
},
|
||
persist: function persist() {},
|
||
isPersistent: pd
|
||
});
|
||
return b;
|
||
}
|
||
var sd = {
|
||
eventPhase: 0,
|
||
bubbles: 0,
|
||
cancelable: 0,
|
||
timeStamp: function timeStamp(a) {
|
||
return a.timeStamp || Date.now();
|
||
},
|
||
defaultPrevented: 0,
|
||
isTrusted: 0
|
||
},
|
||
td = rd(sd),
|
||
ud = A({}, sd, {
|
||
view: 0,
|
||
detail: 0
|
||
}),
|
||
vd = rd(ud),
|
||
wd,
|
||
xd,
|
||
yd,
|
||
Ad = A({}, ud, {
|
||
screenX: 0,
|
||
screenY: 0,
|
||
clientX: 0,
|
||
clientY: 0,
|
||
pageX: 0,
|
||
pageY: 0,
|
||
ctrlKey: 0,
|
||
shiftKey: 0,
|
||
altKey: 0,
|
||
metaKey: 0,
|
||
getModifierState: zd,
|
||
button: 0,
|
||
buttons: 0,
|
||
relatedTarget: function relatedTarget(a) {
|
||
return void 0 === a.relatedTarget ? a.fromElement === a.srcElement ? a.toElement : a.fromElement : a.relatedTarget;
|
||
},
|
||
movementX: function movementX(a) {
|
||
if ("movementX" in a) return a.movementX;
|
||
a !== yd && (yd && "mousemove" === a.type ? (wd = a.screenX - yd.screenX, xd = a.screenY - yd.screenY) : xd = wd = 0, yd = a);
|
||
return wd;
|
||
},
|
||
movementY: function movementY(a) {
|
||
return "movementY" in a ? a.movementY : xd;
|
||
}
|
||
}),
|
||
Bd = rd(Ad),
|
||
Cd = A({}, Ad, {
|
||
dataTransfer: 0
|
||
}),
|
||
Dd = rd(Cd),
|
||
Ed = A({}, ud, {
|
||
relatedTarget: 0
|
||
}),
|
||
Fd = rd(Ed),
|
||
Gd = A({}, sd, {
|
||
animationName: 0,
|
||
elapsedTime: 0,
|
||
pseudoElement: 0
|
||
}),
|
||
Hd = rd(Gd),
|
||
Id = A({}, sd, {
|
||
clipboardData: function clipboardData(a) {
|
||
return "clipboardData" in a ? a.clipboardData : window.clipboardData;
|
||
}
|
||
}),
|
||
Jd = rd(Id),
|
||
Kd = A({}, sd, {
|
||
data: 0
|
||
}),
|
||
Ld = rd(Kd),
|
||
Md = {
|
||
Esc: "Escape",
|
||
Spacebar: " ",
|
||
Left: "ArrowLeft",
|
||
Up: "ArrowUp",
|
||
Right: "ArrowRight",
|
||
Down: "ArrowDown",
|
||
Del: "Delete",
|
||
Win: "OS",
|
||
Menu: "ContextMenu",
|
||
Apps: "ContextMenu",
|
||
Scroll: "ScrollLock",
|
||
MozPrintableKey: "Unidentified"
|
||
},
|
||
Nd = {
|
||
8: "Backspace",
|
||
9: "Tab",
|
||
12: "Clear",
|
||
13: "Enter",
|
||
16: "Shift",
|
||
17: "Control",
|
||
18: "Alt",
|
||
19: "Pause",
|
||
20: "CapsLock",
|
||
27: "Escape",
|
||
32: " ",
|
||
33: "PageUp",
|
||
34: "PageDown",
|
||
35: "End",
|
||
36: "Home",
|
||
37: "ArrowLeft",
|
||
38: "ArrowUp",
|
||
39: "ArrowRight",
|
||
40: "ArrowDown",
|
||
45: "Insert",
|
||
46: "Delete",
|
||
112: "F1",
|
||
113: "F2",
|
||
114: "F3",
|
||
115: "F4",
|
||
116: "F5",
|
||
117: "F6",
|
||
118: "F7",
|
||
119: "F8",
|
||
120: "F9",
|
||
121: "F10",
|
||
122: "F11",
|
||
123: "F12",
|
||
144: "NumLock",
|
||
145: "ScrollLock",
|
||
224: "Meta"
|
||
},
|
||
Od = {
|
||
Alt: "altKey",
|
||
Control: "ctrlKey",
|
||
Meta: "metaKey",
|
||
Shift: "shiftKey"
|
||
};
|
||
function Pd(a) {
|
||
var b = this.nativeEvent;
|
||
return b.getModifierState ? b.getModifierState(a) : (a = Od[a]) ? !!b[a] : !1;
|
||
}
|
||
function zd() {
|
||
return Pd;
|
||
}
|
||
var Qd = A({}, ud, {
|
||
key: function key(a) {
|
||
if (a.key) {
|
||
var b = Md[a.key] || a.key;
|
||
if ("Unidentified" !== b) return b;
|
||
}
|
||
return "keypress" === a.type ? (a = od(a), 13 === a ? "Enter" : String.fromCharCode(a)) : "keydown" === a.type || "keyup" === a.type ? Nd[a.keyCode] || "Unidentified" : "";
|
||
},
|
||
code: 0,
|
||
location: 0,
|
||
ctrlKey: 0,
|
||
shiftKey: 0,
|
||
altKey: 0,
|
||
metaKey: 0,
|
||
repeat: 0,
|
||
locale: 0,
|
||
getModifierState: zd,
|
||
charCode: function charCode(a) {
|
||
return "keypress" === a.type ? od(a) : 0;
|
||
},
|
||
keyCode: function keyCode(a) {
|
||
return "keydown" === a.type || "keyup" === a.type ? a.keyCode : 0;
|
||
},
|
||
which: function which(a) {
|
||
return "keypress" === a.type ? od(a) : "keydown" === a.type || "keyup" === a.type ? a.keyCode : 0;
|
||
}
|
||
}),
|
||
Rd = rd(Qd),
|
||
Sd = A({}, Ad, {
|
||
pointerId: 0,
|
||
width: 0,
|
||
height: 0,
|
||
pressure: 0,
|
||
tangentialPressure: 0,
|
||
tiltX: 0,
|
||
tiltY: 0,
|
||
twist: 0,
|
||
pointerType: 0,
|
||
isPrimary: 0
|
||
}),
|
||
Td = rd(Sd),
|
||
Ud = A({}, ud, {
|
||
touches: 0,
|
||
targetTouches: 0,
|
||
changedTouches: 0,
|
||
altKey: 0,
|
||
metaKey: 0,
|
||
ctrlKey: 0,
|
||
shiftKey: 0,
|
||
getModifierState: zd
|
||
}),
|
||
Vd = rd(Ud),
|
||
Wd = A({}, sd, {
|
||
propertyName: 0,
|
||
elapsedTime: 0,
|
||
pseudoElement: 0
|
||
}),
|
||
Xd = rd(Wd),
|
||
Yd = A({}, Ad, {
|
||
deltaX: function deltaX(a) {
|
||
return "deltaX" in a ? a.deltaX : "wheelDeltaX" in a ? -a.wheelDeltaX : 0;
|
||
},
|
||
deltaY: function deltaY(a) {
|
||
return "deltaY" in a ? a.deltaY : "wheelDeltaY" in a ? -a.wheelDeltaY : "wheelDelta" in a ? -a.wheelDelta : 0;
|
||
},
|
||
deltaZ: 0,
|
||
deltaMode: 0
|
||
}),
|
||
Zd = rd(Yd),
|
||
$d = [9, 13, 27, 32],
|
||
ae = ia && "CompositionEvent" in window,
|
||
be = null;
|
||
ia && "documentMode" in document && (be = document.documentMode);
|
||
var ce = ia && "TextEvent" in window && !be,
|
||
de = ia && (!ae || be && 8 < be && 11 >= be),
|
||
ee = String.fromCharCode(32),
|
||
fe = !1;
|
||
function ge(a, b) {
|
||
switch (a) {
|
||
case "keyup":
|
||
return -1 !== $d.indexOf(b.keyCode);
|
||
case "keydown":
|
||
return 229 !== b.keyCode;
|
||
case "keypress":
|
||
case "mousedown":
|
||
case "focusout":
|
||
return !0;
|
||
default:
|
||
return !1;
|
||
}
|
||
}
|
||
function he(a) {
|
||
a = a.detail;
|
||
return "object" === typeof a && "data" in a ? a.data : null;
|
||
}
|
||
var ie = !1;
|
||
function je(a, b) {
|
||
switch (a) {
|
||
case "compositionend":
|
||
return he(b);
|
||
case "keypress":
|
||
if (32 !== b.which) return null;
|
||
fe = !0;
|
||
return ee;
|
||
case "textInput":
|
||
return a = b.data, a === ee && fe ? null : a;
|
||
default:
|
||
return null;
|
||
}
|
||
}
|
||
function ke(a, b) {
|
||
if (ie) return "compositionend" === a || !ae && ge(a, b) ? (a = nd(), md = ld = kd = null, ie = !1, a) : null;
|
||
switch (a) {
|
||
case "paste":
|
||
return null;
|
||
case "keypress":
|
||
if (!(b.ctrlKey || b.altKey || b.metaKey) || b.ctrlKey && b.altKey) {
|
||
if (b.char && 1 < b.char.length) return b.char;
|
||
if (b.which) return String.fromCharCode(b.which);
|
||
}
|
||
return null;
|
||
case "compositionend":
|
||
return de && "ko" !== b.locale ? null : b.data;
|
||
default:
|
||
return null;
|
||
}
|
||
}
|
||
var le = {
|
||
color: !0,
|
||
date: !0,
|
||
datetime: !0,
|
||
"datetime-local": !0,
|
||
email: !0,
|
||
month: !0,
|
||
number: !0,
|
||
password: !0,
|
||
range: !0,
|
||
search: !0,
|
||
tel: !0,
|
||
text: !0,
|
||
time: !0,
|
||
url: !0,
|
||
week: !0
|
||
};
|
||
function me(a) {
|
||
var b = a && a.nodeName && a.nodeName.toLowerCase();
|
||
return "input" === b ? !!le[a.type] : "textarea" === b ? !0 : !1;
|
||
}
|
||
function ne(a, b, c, d) {
|
||
Eb(d);
|
||
b = oe(b, "onChange");
|
||
0 < b.length && (c = new td("onChange", "change", null, c, d), a.push({
|
||
event: c,
|
||
listeners: b
|
||
}));
|
||
}
|
||
var pe = null,
|
||
qe = null;
|
||
function re(a) {
|
||
se(a, 0);
|
||
}
|
||
function te(a) {
|
||
var b = ue(a);
|
||
if (Wa(b)) return a;
|
||
}
|
||
function ve(a, b) {
|
||
if ("change" === a) return b;
|
||
}
|
||
var we = !1;
|
||
if (ia) {
|
||
var xe;
|
||
if (ia) {
|
||
var ye = ("oninput" in document);
|
||
if (!ye) {
|
||
var ze = document.createElement("div");
|
||
ze.setAttribute("oninput", "return;");
|
||
ye = "function" === typeof ze.oninput;
|
||
}
|
||
xe = ye;
|
||
} else xe = !1;
|
||
we = xe && (!document.documentMode || 9 < document.documentMode);
|
||
}
|
||
function Ae() {
|
||
pe && (pe.detachEvent("onpropertychange", Be), qe = pe = null);
|
||
}
|
||
function Be(a) {
|
||
if ("value" === a.propertyName && te(qe)) {
|
||
var b = [];
|
||
ne(b, qe, a, xb(a));
|
||
Jb(re, b);
|
||
}
|
||
}
|
||
function Ce(a, b, c) {
|
||
"focusin" === a ? (Ae(), pe = b, qe = c, pe.attachEvent("onpropertychange", Be)) : "focusout" === a && Ae();
|
||
}
|
||
function De(a) {
|
||
if ("selectionchange" === a || "keyup" === a || "keydown" === a) return te(qe);
|
||
}
|
||
function Ee(a, b) {
|
||
if ("click" === a) return te(b);
|
||
}
|
||
function Fe(a, b) {
|
||
if ("input" === a || "change" === a) return te(b);
|
||
}
|
||
function Ge(a, b) {
|
||
return a === b && (0 !== a || 1 / a === 1 / b) || a !== a && b !== b;
|
||
}
|
||
var He = "function" === typeof Object.is ? Object.is : Ge;
|
||
function Ie(a, b) {
|
||
if (He(a, b)) return !0;
|
||
if ("object" !== typeof a || null === a || "object" !== typeof b || null === b) return !1;
|
||
var c = Object.keys(a),
|
||
d = Object.keys(b);
|
||
if (c.length !== d.length) return !1;
|
||
for (d = 0; d < c.length; d++) {
|
||
var e = c[d];
|
||
if (!ja.call(b, e) || !He(a[e], b[e])) return !1;
|
||
}
|
||
return !0;
|
||
}
|
||
function Je(a) {
|
||
for (; a && a.firstChild;) a = a.firstChild;
|
||
return a;
|
||
}
|
||
function Ke(a, b) {
|
||
var c = Je(a);
|
||
a = 0;
|
||
for (var d; c;) {
|
||
if (3 === c.nodeType) {
|
||
d = a + c.textContent.length;
|
||
if (a <= b && d >= b) return {
|
||
node: c,
|
||
offset: b - a
|
||
};
|
||
a = d;
|
||
}
|
||
a: {
|
||
for (; c;) {
|
||
if (c.nextSibling) {
|
||
c = c.nextSibling;
|
||
break a;
|
||
}
|
||
c = c.parentNode;
|
||
}
|
||
c = void 0;
|
||
}
|
||
c = Je(c);
|
||
}
|
||
}
|
||
function Le(a, b) {
|
||
return a && b ? a === b ? !0 : a && 3 === a.nodeType ? !1 : b && 3 === b.nodeType ? Le(a, b.parentNode) : "contains" in a ? a.contains(b) : a.compareDocumentPosition ? !!(a.compareDocumentPosition(b) & 16) : !1 : !1;
|
||
}
|
||
function Me() {
|
||
for (var a = window, b = Xa(); b instanceof a.HTMLIFrameElement;) {
|
||
try {
|
||
var c = "string" === typeof b.contentWindow.location.href;
|
||
} catch (d) {
|
||
c = !1;
|
||
}
|
||
if (c) a = b.contentWindow;else break;
|
||
b = Xa(a.document);
|
||
}
|
||
return b;
|
||
}
|
||
function Ne(a) {
|
||
var b = a && a.nodeName && a.nodeName.toLowerCase();
|
||
return b && ("input" === b && ("text" === a.type || "search" === a.type || "tel" === a.type || "url" === a.type || "password" === a.type) || "textarea" === b || "true" === a.contentEditable);
|
||
}
|
||
function Oe(a) {
|
||
var b = Me(),
|
||
c = a.focusedElem,
|
||
d = a.selectionRange;
|
||
if (b !== c && c && c.ownerDocument && Le(c.ownerDocument.documentElement, c)) {
|
||
if (null !== d && Ne(c)) if (b = d.start, a = d.end, void 0 === a && (a = b), "selectionStart" in c) c.selectionStart = b, c.selectionEnd = Math.min(a, c.value.length);else if (a = (b = c.ownerDocument || document) && b.defaultView || window, a.getSelection) {
|
||
a = a.getSelection();
|
||
var e = c.textContent.length,
|
||
f = Math.min(d.start, e);
|
||
d = void 0 === d.end ? f : Math.min(d.end, e);
|
||
!a.extend && f > d && (e = d, d = f, f = e);
|
||
e = Ke(c, f);
|
||
var g = Ke(c, d);
|
||
e && g && (1 !== a.rangeCount || a.anchorNode !== e.node || a.anchorOffset !== e.offset || a.focusNode !== g.node || a.focusOffset !== g.offset) && (b = b.createRange(), b.setStart(e.node, e.offset), a.removeAllRanges(), f > d ? (a.addRange(b), a.extend(g.node, g.offset)) : (b.setEnd(g.node, g.offset), a.addRange(b)));
|
||
}
|
||
b = [];
|
||
for (a = c; a = a.parentNode;) 1 === a.nodeType && b.push({
|
||
element: a,
|
||
left: a.scrollLeft,
|
||
top: a.scrollTop
|
||
});
|
||
"function" === typeof c.focus && c.focus();
|
||
for (c = 0; c < b.length; c++) a = b[c], a.element.scrollLeft = a.left, a.element.scrollTop = a.top;
|
||
}
|
||
}
|
||
var Pe = ia && "documentMode" in document && 11 >= document.documentMode,
|
||
Qe = null,
|
||
Re = null,
|
||
Se = null,
|
||
Te = !1;
|
||
function Ue(a, b, c) {
|
||
var d = c.window === c ? c.document : 9 === c.nodeType ? c : c.ownerDocument;
|
||
Te || null == Qe || Qe !== Xa(d) || (d = Qe, "selectionStart" in d && Ne(d) ? d = {
|
||
start: d.selectionStart,
|
||
end: d.selectionEnd
|
||
} : (d = (d.ownerDocument && d.ownerDocument.defaultView || window).getSelection(), d = {
|
||
anchorNode: d.anchorNode,
|
||
anchorOffset: d.anchorOffset,
|
||
focusNode: d.focusNode,
|
||
focusOffset: d.focusOffset
|
||
}), Se && Ie(Se, d) || (Se = d, d = oe(Re, "onSelect"), 0 < d.length && (b = new td("onSelect", "select", null, b, c), a.push({
|
||
event: b,
|
||
listeners: d
|
||
}), b.target = Qe)));
|
||
}
|
||
function Ve(a, b) {
|
||
var c = {};
|
||
c[a.toLowerCase()] = b.toLowerCase();
|
||
c["Webkit" + a] = "webkit" + b;
|
||
c["Moz" + a] = "moz" + b;
|
||
return c;
|
||
}
|
||
var We = {
|
||
animationend: Ve("Animation", "AnimationEnd"),
|
||
animationiteration: Ve("Animation", "AnimationIteration"),
|
||
animationstart: Ve("Animation", "AnimationStart"),
|
||
transitionend: Ve("Transition", "TransitionEnd")
|
||
},
|
||
Xe = {},
|
||
Ye = {};
|
||
ia && (Ye = document.createElement("div").style, "AnimationEvent" in window || (delete We.animationend.animation, delete We.animationiteration.animation, delete We.animationstart.animation), "TransitionEvent" in window || delete We.transitionend.transition);
|
||
function Ze(a) {
|
||
if (Xe[a]) return Xe[a];
|
||
if (!We[a]) return a;
|
||
var b = We[a],
|
||
c;
|
||
for (c in b) if (b.hasOwnProperty(c) && c in Ye) return Xe[a] = b[c];
|
||
return a;
|
||
}
|
||
var $e = Ze("animationend"),
|
||
af = Ze("animationiteration"),
|
||
bf = Ze("animationstart"),
|
||
cf = Ze("transitionend"),
|
||
df = new Map(),
|
||
ef = "abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");
|
||
function ff(a, b) {
|
||
df.set(a, b);
|
||
fa(b, [a]);
|
||
}
|
||
for (var gf = 0; gf < ef.length; gf++) {
|
||
var hf = ef[gf],
|
||
jf = hf.toLowerCase(),
|
||
kf = hf[0].toUpperCase() + hf.slice(1);
|
||
ff(jf, "on" + kf);
|
||
}
|
||
ff($e, "onAnimationEnd");
|
||
ff(af, "onAnimationIteration");
|
||
ff(bf, "onAnimationStart");
|
||
ff("dblclick", "onDoubleClick");
|
||
ff("focusin", "onFocus");
|
||
ff("focusout", "onBlur");
|
||
ff(cf, "onTransitionEnd");
|
||
ha("onMouseEnter", ["mouseout", "mouseover"]);
|
||
ha("onMouseLeave", ["mouseout", "mouseover"]);
|
||
ha("onPointerEnter", ["pointerout", "pointerover"]);
|
||
ha("onPointerLeave", ["pointerout", "pointerover"]);
|
||
fa("onChange", "change click focusin focusout input keydown keyup selectionchange".split(" "));
|
||
fa("onSelect", "focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));
|
||
fa("onBeforeInput", ["compositionend", "keypress", "textInput", "paste"]);
|
||
fa("onCompositionEnd", "compositionend focusout keydown keypress keyup mousedown".split(" "));
|
||
fa("onCompositionStart", "compositionstart focusout keydown keypress keyup mousedown".split(" "));
|
||
fa("onCompositionUpdate", "compositionupdate focusout keydown keypress keyup mousedown".split(" "));
|
||
var lf = "abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),
|
||
mf = new Set("cancel close invalid load scroll toggle".split(" ").concat(lf));
|
||
function nf(a, b, c) {
|
||
var d = a.type || "unknown-event";
|
||
a.currentTarget = c;
|
||
Ub(d, b, void 0, a);
|
||
a.currentTarget = null;
|
||
}
|
||
function se(a, b) {
|
||
b = 0 !== (b & 4);
|
||
for (var c = 0; c < a.length; c++) {
|
||
var d = a[c],
|
||
e = d.event;
|
||
d = d.listeners;
|
||
a: {
|
||
var f = void 0;
|
||
if (b) for (var g = d.length - 1; 0 <= g; g--) {
|
||
var h = d[g],
|
||
k = h.instance,
|
||
l = h.currentTarget;
|
||
h = h.listener;
|
||
if (k !== f && e.isPropagationStopped()) break a;
|
||
nf(e, h, l);
|
||
f = k;
|
||
} else for (g = 0; g < d.length; g++) {
|
||
h = d[g];
|
||
k = h.instance;
|
||
l = h.currentTarget;
|
||
h = h.listener;
|
||
if (k !== f && e.isPropagationStopped()) break a;
|
||
nf(e, h, l);
|
||
f = k;
|
||
}
|
||
}
|
||
}
|
||
if (Qb) throw a = Rb, Qb = !1, Rb = null, a;
|
||
}
|
||
function D(a, b) {
|
||
var c = b[of];
|
||
void 0 === c && (c = b[of] = new Set());
|
||
var d = a + "__bubble";
|
||
c.has(d) || (pf(b, a, 2, !1), c.add(d));
|
||
}
|
||
function qf(a, b, c) {
|
||
var d = 0;
|
||
b && (d |= 4);
|
||
pf(c, a, d, b);
|
||
}
|
||
var rf = "_reactListening" + Math.random().toString(36).slice(2);
|
||
function sf(a) {
|
||
if (!a[rf]) {
|
||
a[rf] = !0;
|
||
da.forEach(function (b) {
|
||
"selectionchange" !== b && (mf.has(b) || qf(b, !1, a), qf(b, !0, a));
|
||
});
|
||
var b = 9 === a.nodeType ? a : a.ownerDocument;
|
||
null === b || b[rf] || (b[rf] = !0, qf("selectionchange", !1, b));
|
||
}
|
||
}
|
||
function pf(a, b, c, d) {
|
||
switch (jd(b)) {
|
||
case 1:
|
||
var e = ed;
|
||
break;
|
||
case 4:
|
||
e = gd;
|
||
break;
|
||
default:
|
||
e = fd;
|
||
}
|
||
c = e.bind(null, b, c, a);
|
||
e = void 0;
|
||
!Lb || "touchstart" !== b && "touchmove" !== b && "wheel" !== b || (e = !0);
|
||
d ? void 0 !== e ? a.addEventListener(b, c, {
|
||
capture: !0,
|
||
passive: e
|
||
}) : a.addEventListener(b, c, !0) : void 0 !== e ? a.addEventListener(b, c, {
|
||
passive: e
|
||
}) : a.addEventListener(b, c, !1);
|
||
}
|
||
function hd(a, b, c, d, e) {
|
||
var f = d;
|
||
if (0 === (b & 1) && 0 === (b & 2) && null !== d) a: for (;;) {
|
||
if (null === d) return;
|
||
var g = d.tag;
|
||
if (3 === g || 4 === g) {
|
||
var h = d.stateNode.containerInfo;
|
||
if (h === e || 8 === h.nodeType && h.parentNode === e) break;
|
||
if (4 === g) for (g = d.return; null !== g;) {
|
||
var k = g.tag;
|
||
if (3 === k || 4 === k) if (k = g.stateNode.containerInfo, k === e || 8 === k.nodeType && k.parentNode === e) return;
|
||
g = g.return;
|
||
}
|
||
for (; null !== h;) {
|
||
g = Wc(h);
|
||
if (null === g) return;
|
||
k = g.tag;
|
||
if (5 === k || 6 === k) {
|
||
d = f = g;
|
||
continue a;
|
||
}
|
||
h = h.parentNode;
|
||
}
|
||
}
|
||
d = d.return;
|
||
}
|
||
Jb(function () {
|
||
var d = f,
|
||
e = xb(c),
|
||
g = [];
|
||
a: {
|
||
var h = df.get(a);
|
||
if (void 0 !== h) {
|
||
var k = td,
|
||
n = a;
|
||
switch (a) {
|
||
case "keypress":
|
||
if (0 === od(c)) break a;
|
||
case "keydown":
|
||
case "keyup":
|
||
k = Rd;
|
||
break;
|
||
case "focusin":
|
||
n = "focus";
|
||
k = Fd;
|
||
break;
|
||
case "focusout":
|
||
n = "blur";
|
||
k = Fd;
|
||
break;
|
||
case "beforeblur":
|
||
case "afterblur":
|
||
k = Fd;
|
||
break;
|
||
case "click":
|
||
if (2 === c.button) break a;
|
||
case "auxclick":
|
||
case "dblclick":
|
||
case "mousedown":
|
||
case "mousemove":
|
||
case "mouseup":
|
||
case "mouseout":
|
||
case "mouseover":
|
||
case "contextmenu":
|
||
k = Bd;
|
||
break;
|
||
case "drag":
|
||
case "dragend":
|
||
case "dragenter":
|
||
case "dragexit":
|
||
case "dragleave":
|
||
case "dragover":
|
||
case "dragstart":
|
||
case "drop":
|
||
k = Dd;
|
||
break;
|
||
case "touchcancel":
|
||
case "touchend":
|
||
case "touchmove":
|
||
case "touchstart":
|
||
k = Vd;
|
||
break;
|
||
case $e:
|
||
case af:
|
||
case bf:
|
||
k = Hd;
|
||
break;
|
||
case cf:
|
||
k = Xd;
|
||
break;
|
||
case "scroll":
|
||
k = vd;
|
||
break;
|
||
case "wheel":
|
||
k = Zd;
|
||
break;
|
||
case "copy":
|
||
case "cut":
|
||
case "paste":
|
||
k = Jd;
|
||
break;
|
||
case "gotpointercapture":
|
||
case "lostpointercapture":
|
||
case "pointercancel":
|
||
case "pointerdown":
|
||
case "pointermove":
|
||
case "pointerout":
|
||
case "pointerover":
|
||
case "pointerup":
|
||
k = Td;
|
||
}
|
||
var t = 0 !== (b & 4),
|
||
J = !t && "scroll" === a,
|
||
x = t ? null !== h ? h + "Capture" : null : h;
|
||
t = [];
|
||
for (var w = d, u; null !== w;) {
|
||
u = w;
|
||
var F = u.stateNode;
|
||
5 === u.tag && null !== F && (u = F, null !== x && (F = Kb(w, x), null != F && t.push(tf(w, F, u))));
|
||
if (J) break;
|
||
w = w.return;
|
||
}
|
||
0 < t.length && (h = new k(h, n, null, c, e), g.push({
|
||
event: h,
|
||
listeners: t
|
||
}));
|
||
}
|
||
}
|
||
if (0 === (b & 7)) {
|
||
a: {
|
||
h = "mouseover" === a || "pointerover" === a;
|
||
k = "mouseout" === a || "pointerout" === a;
|
||
if (h && c !== wb && (n = c.relatedTarget || c.fromElement) && (Wc(n) || n[uf])) break a;
|
||
if (k || h) {
|
||
h = e.window === e ? e : (h = e.ownerDocument) ? h.defaultView || h.parentWindow : window;
|
||
if (k) {
|
||
if (n = c.relatedTarget || c.toElement, k = d, n = n ? Wc(n) : null, null !== n && (J = Vb(n), n !== J || 5 !== n.tag && 6 !== n.tag)) n = null;
|
||
} else k = null, n = d;
|
||
if (k !== n) {
|
||
t = Bd;
|
||
F = "onMouseLeave";
|
||
x = "onMouseEnter";
|
||
w = "mouse";
|
||
if ("pointerout" === a || "pointerover" === a) t = Td, F = "onPointerLeave", x = "onPointerEnter", w = "pointer";
|
||
J = null == k ? h : ue(k);
|
||
u = null == n ? h : ue(n);
|
||
h = new t(F, w + "leave", k, c, e);
|
||
h.target = J;
|
||
h.relatedTarget = u;
|
||
F = null;
|
||
Wc(e) === d && (t = new t(x, w + "enter", n, c, e), t.target = u, t.relatedTarget = J, F = t);
|
||
J = F;
|
||
if (k && n) b: {
|
||
t = k;
|
||
x = n;
|
||
w = 0;
|
||
for (u = t; u; u = vf(u)) w++;
|
||
u = 0;
|
||
for (F = x; F; F = vf(F)) u++;
|
||
for (; 0 < w - u;) t = vf(t), w--;
|
||
for (; 0 < u - w;) x = vf(x), u--;
|
||
for (; w--;) {
|
||
if (t === x || null !== x && t === x.alternate) break b;
|
||
t = vf(t);
|
||
x = vf(x);
|
||
}
|
||
t = null;
|
||
} else t = null;
|
||
null !== k && wf(g, h, k, t, !1);
|
||
null !== n && null !== J && wf(g, J, n, t, !0);
|
||
}
|
||
}
|
||
}
|
||
a: {
|
||
h = d ? ue(d) : window;
|
||
k = h.nodeName && h.nodeName.toLowerCase();
|
||
if ("select" === k || "input" === k && "file" === h.type) var na = ve;else if (me(h)) {
|
||
if (we) na = Fe;else {
|
||
na = De;
|
||
var xa = Ce;
|
||
}
|
||
} else (k = h.nodeName) && "input" === k.toLowerCase() && ("checkbox" === h.type || "radio" === h.type) && (na = Ee);
|
||
if (na && (na = na(a, d))) {
|
||
ne(g, na, c, e);
|
||
break a;
|
||
}
|
||
xa && xa(a, h, d);
|
||
"focusout" === a && (xa = h._wrapperState) && xa.controlled && "number" === h.type && cb(h, "number", h.value);
|
||
}
|
||
xa = d ? ue(d) : window;
|
||
switch (a) {
|
||
case "focusin":
|
||
if (me(xa) || "true" === xa.contentEditable) Qe = xa, Re = d, Se = null;
|
||
break;
|
||
case "focusout":
|
||
Se = Re = Qe = null;
|
||
break;
|
||
case "mousedown":
|
||
Te = !0;
|
||
break;
|
||
case "contextmenu":
|
||
case "mouseup":
|
||
case "dragend":
|
||
Te = !1;
|
||
Ue(g, c, e);
|
||
break;
|
||
case "selectionchange":
|
||
if (Pe) break;
|
||
case "keydown":
|
||
case "keyup":
|
||
Ue(g, c, e);
|
||
}
|
||
var $a;
|
||
if (ae) b: {
|
||
switch (a) {
|
||
case "compositionstart":
|
||
var ba = "onCompositionStart";
|
||
break b;
|
||
case "compositionend":
|
||
ba = "onCompositionEnd";
|
||
break b;
|
||
case "compositionupdate":
|
||
ba = "onCompositionUpdate";
|
||
break b;
|
||
}
|
||
ba = void 0;
|
||
} else ie ? ge(a, c) && (ba = "onCompositionEnd") : "keydown" === a && 229 === c.keyCode && (ba = "onCompositionStart");
|
||
ba && (de && "ko" !== c.locale && (ie || "onCompositionStart" !== ba ? "onCompositionEnd" === ba && ie && ($a = nd()) : (kd = e, ld = "value" in kd ? kd.value : kd.textContent, ie = !0)), xa = oe(d, ba), 0 < xa.length && (ba = new Ld(ba, a, null, c, e), g.push({
|
||
event: ba,
|
||
listeners: xa
|
||
}), $a ? ba.data = $a : ($a = he(c), null !== $a && (ba.data = $a))));
|
||
if ($a = ce ? je(a, c) : ke(a, c)) d = oe(d, "onBeforeInput"), 0 < d.length && (e = new Ld("onBeforeInput", "beforeinput", null, c, e), g.push({
|
||
event: e,
|
||
listeners: d
|
||
}), e.data = $a);
|
||
}
|
||
se(g, b);
|
||
});
|
||
}
|
||
function tf(a, b, c) {
|
||
return {
|
||
instance: a,
|
||
listener: b,
|
||
currentTarget: c
|
||
};
|
||
}
|
||
function oe(a, b) {
|
||
for (var c = b + "Capture", d = []; null !== a;) {
|
||
var e = a,
|
||
f = e.stateNode;
|
||
5 === e.tag && null !== f && (e = f, f = Kb(a, c), null != f && d.unshift(tf(a, f, e)), f = Kb(a, b), null != f && d.push(tf(a, f, e)));
|
||
a = a.return;
|
||
}
|
||
return d;
|
||
}
|
||
function vf(a) {
|
||
if (null === a) return null;
|
||
do a = a.return; while (a && 5 !== a.tag);
|
||
return a ? a : null;
|
||
}
|
||
function wf(a, b, c, d, e) {
|
||
for (var f = b._reactName, g = []; null !== c && c !== d;) {
|
||
var h = c,
|
||
k = h.alternate,
|
||
l = h.stateNode;
|
||
if (null !== k && k === d) break;
|
||
5 === h.tag && null !== l && (h = l, e ? (k = Kb(c, f), null != k && g.unshift(tf(c, k, h))) : e || (k = Kb(c, f), null != k && g.push(tf(c, k, h))));
|
||
c = c.return;
|
||
}
|
||
0 !== g.length && a.push({
|
||
event: b,
|
||
listeners: g
|
||
});
|
||
}
|
||
var xf = /\r\n?/g,
|
||
yf = /\u0000|\uFFFD/g;
|
||
function zf(a) {
|
||
return ("string" === typeof a ? a : "" + a).replace(xf, "\n").replace(yf, "");
|
||
}
|
||
function Af(a, b, c) {
|
||
b = zf(b);
|
||
if (zf(a) !== b && c) throw Error(p(425));
|
||
}
|
||
function Bf() {}
|
||
var Cf = null,
|
||
Df = null;
|
||
function Ef(a, b) {
|
||
return "textarea" === a || "noscript" === a || "string" === typeof b.children || "number" === typeof b.children || "object" === typeof b.dangerouslySetInnerHTML && null !== b.dangerouslySetInnerHTML && null != b.dangerouslySetInnerHTML.__html;
|
||
}
|
||
var Ff = "function" === typeof setTimeout ? setTimeout : void 0,
|
||
Gf = "function" === typeof clearTimeout ? clearTimeout : void 0,
|
||
Hf = "function" === typeof Promise ? Promise : void 0,
|
||
Jf = "function" === typeof queueMicrotask ? queueMicrotask : "undefined" !== typeof Hf ? function (a) {
|
||
return Hf.resolve(null).then(a).catch(If);
|
||
} : Ff;
|
||
function If(a) {
|
||
setTimeout(function () {
|
||
throw a;
|
||
});
|
||
}
|
||
function Kf(a, b) {
|
||
var c = b,
|
||
d = 0;
|
||
do {
|
||
var e = c.nextSibling;
|
||
a.removeChild(c);
|
||
if (e && 8 === e.nodeType) if (c = e.data, "/$" === c) {
|
||
if (0 === d) {
|
||
a.removeChild(e);
|
||
bd(b);
|
||
return;
|
||
}
|
||
d--;
|
||
} else "$" !== c && "$?" !== c && "$!" !== c || d++;
|
||
c = e;
|
||
} while (c);
|
||
bd(b);
|
||
}
|
||
function Lf(a) {
|
||
for (; null != a; a = a.nextSibling) {
|
||
var b = a.nodeType;
|
||
if (1 === b || 3 === b) break;
|
||
if (8 === b) {
|
||
b = a.data;
|
||
if ("$" === b || "$!" === b || "$?" === b) break;
|
||
if ("/$" === b) return null;
|
||
}
|
||
}
|
||
return a;
|
||
}
|
||
function Mf(a) {
|
||
a = a.previousSibling;
|
||
for (var b = 0; a;) {
|
||
if (8 === a.nodeType) {
|
||
var c = a.data;
|
||
if ("$" === c || "$!" === c || "$?" === c) {
|
||
if (0 === b) return a;
|
||
b--;
|
||
} else "/$" === c && b++;
|
||
}
|
||
a = a.previousSibling;
|
||
}
|
||
return null;
|
||
}
|
||
var Nf = Math.random().toString(36).slice(2),
|
||
Of = "__reactFiber$" + Nf,
|
||
Pf = "__reactProps$" + Nf,
|
||
uf = "__reactContainer$" + Nf,
|
||
of = "__reactEvents$" + Nf,
|
||
Qf = "__reactListeners$" + Nf,
|
||
Rf = "__reactHandles$" + Nf;
|
||
function Wc(a) {
|
||
var b = a[Of];
|
||
if (b) return b;
|
||
for (var c = a.parentNode; c;) {
|
||
if (b = c[uf] || c[Of]) {
|
||
c = b.alternate;
|
||
if (null !== b.child || null !== c && null !== c.child) for (a = Mf(a); null !== a;) {
|
||
if (c = a[Of]) return c;
|
||
a = Mf(a);
|
||
}
|
||
return b;
|
||
}
|
||
a = c;
|
||
c = a.parentNode;
|
||
}
|
||
return null;
|
||
}
|
||
function Cb(a) {
|
||
a = a[Of] || a[uf];
|
||
return !a || 5 !== a.tag && 6 !== a.tag && 13 !== a.tag && 3 !== a.tag ? null : a;
|
||
}
|
||
function ue(a) {
|
||
if (5 === a.tag || 6 === a.tag) return a.stateNode;
|
||
throw Error(p(33));
|
||
}
|
||
function Db(a) {
|
||
return a[Pf] || null;
|
||
}
|
||
var Sf = [],
|
||
Tf = -1;
|
||
function Uf(a) {
|
||
return {
|
||
current: a
|
||
};
|
||
}
|
||
function E(a) {
|
||
0 > Tf || (a.current = Sf[Tf], Sf[Tf] = null, Tf--);
|
||
}
|
||
function G(a, b) {
|
||
Tf++;
|
||
Sf[Tf] = a.current;
|
||
a.current = b;
|
||
}
|
||
var Vf = {},
|
||
H = Uf(Vf),
|
||
Wf = Uf(!1),
|
||
Xf = Vf;
|
||
function Yf(a, b) {
|
||
var c = a.type.contextTypes;
|
||
if (!c) return Vf;
|
||
var d = a.stateNode;
|
||
if (d && d.__reactInternalMemoizedUnmaskedChildContext === b) return d.__reactInternalMemoizedMaskedChildContext;
|
||
var e = {},
|
||
f;
|
||
for (f in c) e[f] = b[f];
|
||
d && (a = a.stateNode, a.__reactInternalMemoizedUnmaskedChildContext = b, a.__reactInternalMemoizedMaskedChildContext = e);
|
||
return e;
|
||
}
|
||
function Zf(a) {
|
||
a = a.childContextTypes;
|
||
return null !== a && void 0 !== a;
|
||
}
|
||
function $f() {
|
||
E(Wf);
|
||
E(H);
|
||
}
|
||
function ag(a, b, c) {
|
||
if (H.current !== Vf) throw Error(p(168));
|
||
G(H, b);
|
||
G(Wf, c);
|
||
}
|
||
function bg(a, b, c) {
|
||
var d = a.stateNode;
|
||
b = b.childContextTypes;
|
||
if ("function" !== typeof d.getChildContext) return c;
|
||
d = d.getChildContext();
|
||
for (var e in d) if (!(e in b)) throw Error(p(108, Ra(a) || "Unknown", e));
|
||
return A({}, c, d);
|
||
}
|
||
function cg(a) {
|
||
a = (a = a.stateNode) && a.__reactInternalMemoizedMergedChildContext || Vf;
|
||
Xf = H.current;
|
||
G(H, a);
|
||
G(Wf, Wf.current);
|
||
return !0;
|
||
}
|
||
function dg(a, b, c) {
|
||
var d = a.stateNode;
|
||
if (!d) throw Error(p(169));
|
||
c ? (a = bg(a, b, Xf), d.__reactInternalMemoizedMergedChildContext = a, E(Wf), E(H), G(H, a)) : E(Wf);
|
||
G(Wf, c);
|
||
}
|
||
var eg = null,
|
||
fg = !1,
|
||
gg = !1;
|
||
function hg(a) {
|
||
null === eg ? eg = [a] : eg.push(a);
|
||
}
|
||
function ig(a) {
|
||
fg = !0;
|
||
hg(a);
|
||
}
|
||
function jg() {
|
||
if (!gg && null !== eg) {
|
||
gg = !0;
|
||
var a = 0,
|
||
b = C;
|
||
try {
|
||
var c = eg;
|
||
for (C = 1; a < c.length; a++) {
|
||
var d = c[a];
|
||
do d = d(!0); while (null !== d);
|
||
}
|
||
eg = null;
|
||
fg = !1;
|
||
} catch (e) {
|
||
throw null !== eg && (eg = eg.slice(a + 1)), ac(fc, jg), e;
|
||
} finally {
|
||
C = b, gg = !1;
|
||
}
|
||
}
|
||
return null;
|
||
}
|
||
var kg = [],
|
||
lg = 0,
|
||
mg = null,
|
||
ng = 0,
|
||
og = [],
|
||
pg = 0,
|
||
qg = null,
|
||
rg = 1,
|
||
sg = "";
|
||
function tg(a, b) {
|
||
kg[lg++] = ng;
|
||
kg[lg++] = mg;
|
||
mg = a;
|
||
ng = b;
|
||
}
|
||
function ug(a, b, c) {
|
||
og[pg++] = rg;
|
||
og[pg++] = sg;
|
||
og[pg++] = qg;
|
||
qg = a;
|
||
var d = rg;
|
||
a = sg;
|
||
var e = 32 - oc(d) - 1;
|
||
d &= ~(1 << e);
|
||
c += 1;
|
||
var f = 32 - oc(b) + e;
|
||
if (30 < f) {
|
||
var g = e - e % 5;
|
||
f = (d & (1 << g) - 1).toString(32);
|
||
d >>= g;
|
||
e -= g;
|
||
rg = 1 << 32 - oc(b) + e | c << e | d;
|
||
sg = f + a;
|
||
} else rg = 1 << f | c << e | d, sg = a;
|
||
}
|
||
function vg(a) {
|
||
null !== a.return && (tg(a, 1), ug(a, 1, 0));
|
||
}
|
||
function wg(a) {
|
||
for (; a === mg;) mg = kg[--lg], kg[lg] = null, ng = kg[--lg], kg[lg] = null;
|
||
for (; a === qg;) qg = og[--pg], og[pg] = null, sg = og[--pg], og[pg] = null, rg = og[--pg], og[pg] = null;
|
||
}
|
||
var xg = null,
|
||
yg = null,
|
||
I = !1,
|
||
zg = null;
|
||
function Ag(a, b) {
|
||
var c = Bg(5, null, null, 0);
|
||
c.elementType = "DELETED";
|
||
c.stateNode = b;
|
||
c.return = a;
|
||
b = a.deletions;
|
||
null === b ? (a.deletions = [c], a.flags |= 16) : b.push(c);
|
||
}
|
||
function Cg(a, b) {
|
||
switch (a.tag) {
|
||
case 5:
|
||
var c = a.type;
|
||
b = 1 !== b.nodeType || c.toLowerCase() !== b.nodeName.toLowerCase() ? null : b;
|
||
return null !== b ? (a.stateNode = b, xg = a, yg = Lf(b.firstChild), !0) : !1;
|
||
case 6:
|
||
return b = "" === a.pendingProps || 3 !== b.nodeType ? null : b, null !== b ? (a.stateNode = b, xg = a, yg = null, !0) : !1;
|
||
case 13:
|
||
return b = 8 !== b.nodeType ? null : b, null !== b ? (c = null !== qg ? {
|
||
id: rg,
|
||
overflow: sg
|
||
} : null, a.memoizedState = {
|
||
dehydrated: b,
|
||
treeContext: c,
|
||
retryLane: 1073741824
|
||
}, c = Bg(18, null, null, 0), c.stateNode = b, c.return = a, a.child = c, xg = a, yg = null, !0) : !1;
|
||
default:
|
||
return !1;
|
||
}
|
||
}
|
||
function Dg(a) {
|
||
return 0 !== (a.mode & 1) && 0 === (a.flags & 128);
|
||
}
|
||
function Eg(a) {
|
||
if (I) {
|
||
var b = yg;
|
||
if (b) {
|
||
var c = b;
|
||
if (!Cg(a, b)) {
|
||
if (Dg(a)) throw Error(p(418));
|
||
b = Lf(c.nextSibling);
|
||
var d = xg;
|
||
b && Cg(a, b) ? Ag(d, c) : (a.flags = a.flags & -4097 | 2, I = !1, xg = a);
|
||
}
|
||
} else {
|
||
if (Dg(a)) throw Error(p(418));
|
||
a.flags = a.flags & -4097 | 2;
|
||
I = !1;
|
||
xg = a;
|
||
}
|
||
}
|
||
}
|
||
function Fg(a) {
|
||
for (a = a.return; null !== a && 5 !== a.tag && 3 !== a.tag && 13 !== a.tag;) a = a.return;
|
||
xg = a;
|
||
}
|
||
function Gg(a) {
|
||
if (a !== xg) return !1;
|
||
if (!I) return Fg(a), I = !0, !1;
|
||
var b;
|
||
(b = 3 !== a.tag) && !(b = 5 !== a.tag) && (b = a.type, b = "head" !== b && "body" !== b && !Ef(a.type, a.memoizedProps));
|
||
if (b && (b = yg)) {
|
||
if (Dg(a)) throw Hg(), Error(p(418));
|
||
for (; b;) Ag(a, b), b = Lf(b.nextSibling);
|
||
}
|
||
Fg(a);
|
||
if (13 === a.tag) {
|
||
a = a.memoizedState;
|
||
a = null !== a ? a.dehydrated : null;
|
||
if (!a) throw Error(p(317));
|
||
a: {
|
||
a = a.nextSibling;
|
||
for (b = 0; a;) {
|
||
if (8 === a.nodeType) {
|
||
var c = a.data;
|
||
if ("/$" === c) {
|
||
if (0 === b) {
|
||
yg = Lf(a.nextSibling);
|
||
break a;
|
||
}
|
||
b--;
|
||
} else "$" !== c && "$!" !== c && "$?" !== c || b++;
|
||
}
|
||
a = a.nextSibling;
|
||
}
|
||
yg = null;
|
||
}
|
||
} else yg = xg ? Lf(a.stateNode.nextSibling) : null;
|
||
return !0;
|
||
}
|
||
function Hg() {
|
||
for (var a = yg; a;) a = Lf(a.nextSibling);
|
||
}
|
||
function Ig() {
|
||
yg = xg = null;
|
||
I = !1;
|
||
}
|
||
function Jg(a) {
|
||
null === zg ? zg = [a] : zg.push(a);
|
||
}
|
||
var Kg = ua.ReactCurrentBatchConfig;
|
||
function Lg(a, b) {
|
||
if (a && a.defaultProps) {
|
||
b = A({}, b);
|
||
a = a.defaultProps;
|
||
for (var c in a) void 0 === b[c] && (b[c] = a[c]);
|
||
return b;
|
||
}
|
||
return b;
|
||
}
|
||
var Mg = Uf(null),
|
||
Ng = null,
|
||
Og = null,
|
||
Pg = null;
|
||
function Qg() {
|
||
Pg = Og = Ng = null;
|
||
}
|
||
function Rg(a) {
|
||
var b = Mg.current;
|
||
E(Mg);
|
||
a._currentValue = b;
|
||
}
|
||
function Sg(a, b, c) {
|
||
for (; null !== a;) {
|
||
var d = a.alternate;
|
||
(a.childLanes & b) !== b ? (a.childLanes |= b, null !== d && (d.childLanes |= b)) : null !== d && (d.childLanes & b) !== b && (d.childLanes |= b);
|
||
if (a === c) break;
|
||
a = a.return;
|
||
}
|
||
}
|
||
function Tg(a, b) {
|
||
Ng = a;
|
||
Pg = Og = null;
|
||
a = a.dependencies;
|
||
null !== a && null !== a.firstContext && (0 !== (a.lanes & b) && (Ug = !0), a.firstContext = null);
|
||
}
|
||
function Vg(a) {
|
||
var b = a._currentValue;
|
||
if (Pg !== a) if (a = {
|
||
context: a,
|
||
memoizedValue: b,
|
||
next: null
|
||
}, null === Og) {
|
||
if (null === Ng) throw Error(p(308));
|
||
Og = a;
|
||
Ng.dependencies = {
|
||
lanes: 0,
|
||
firstContext: a
|
||
};
|
||
} else Og = Og.next = a;
|
||
return b;
|
||
}
|
||
var Wg = null;
|
||
function Xg(a) {
|
||
null === Wg ? Wg = [a] : Wg.push(a);
|
||
}
|
||
function Yg(a, b, c, d) {
|
||
var e = b.interleaved;
|
||
null === e ? (c.next = c, Xg(b)) : (c.next = e.next, e.next = c);
|
||
b.interleaved = c;
|
||
return Zg(a, d);
|
||
}
|
||
function Zg(a, b) {
|
||
a.lanes |= b;
|
||
var c = a.alternate;
|
||
null !== c && (c.lanes |= b);
|
||
c = a;
|
||
for (a = a.return; null !== a;) a.childLanes |= b, c = a.alternate, null !== c && (c.childLanes |= b), c = a, a = a.return;
|
||
return 3 === c.tag ? c.stateNode : null;
|
||
}
|
||
var $g = !1;
|
||
function ah(a) {
|
||
a.updateQueue = {
|
||
baseState: a.memoizedState,
|
||
firstBaseUpdate: null,
|
||
lastBaseUpdate: null,
|
||
shared: {
|
||
pending: null,
|
||
interleaved: null,
|
||
lanes: 0
|
||
},
|
||
effects: null
|
||
};
|
||
}
|
||
function bh(a, b) {
|
||
a = a.updateQueue;
|
||
b.updateQueue === a && (b.updateQueue = {
|
||
baseState: a.baseState,
|
||
firstBaseUpdate: a.firstBaseUpdate,
|
||
lastBaseUpdate: a.lastBaseUpdate,
|
||
shared: a.shared,
|
||
effects: a.effects
|
||
});
|
||
}
|
||
function ch(a, b) {
|
||
return {
|
||
eventTime: a,
|
||
lane: b,
|
||
tag: 0,
|
||
payload: null,
|
||
callback: null,
|
||
next: null
|
||
};
|
||
}
|
||
function dh(a, b, c) {
|
||
var d = a.updateQueue;
|
||
if (null === d) return null;
|
||
d = d.shared;
|
||
if (0 !== (K & 2)) {
|
||
var e = d.pending;
|
||
null === e ? b.next = b : (b.next = e.next, e.next = b);
|
||
d.pending = b;
|
||
return Zg(a, c);
|
||
}
|
||
e = d.interleaved;
|
||
null === e ? (b.next = b, Xg(d)) : (b.next = e.next, e.next = b);
|
||
d.interleaved = b;
|
||
return Zg(a, c);
|
||
}
|
||
function eh(a, b, c) {
|
||
b = b.updateQueue;
|
||
if (null !== b && (b = b.shared, 0 !== (c & 4194240))) {
|
||
var d = b.lanes;
|
||
d &= a.pendingLanes;
|
||
c |= d;
|
||
b.lanes = c;
|
||
Cc(a, c);
|
||
}
|
||
}
|
||
function fh(a, b) {
|
||
var c = a.updateQueue,
|
||
d = a.alternate;
|
||
if (null !== d && (d = d.updateQueue, c === d)) {
|
||
var e = null,
|
||
f = null;
|
||
c = c.firstBaseUpdate;
|
||
if (null !== c) {
|
||
do {
|
||
var g = {
|
||
eventTime: c.eventTime,
|
||
lane: c.lane,
|
||
tag: c.tag,
|
||
payload: c.payload,
|
||
callback: c.callback,
|
||
next: null
|
||
};
|
||
null === f ? e = f = g : f = f.next = g;
|
||
c = c.next;
|
||
} while (null !== c);
|
||
null === f ? e = f = b : f = f.next = b;
|
||
} else e = f = b;
|
||
c = {
|
||
baseState: d.baseState,
|
||
firstBaseUpdate: e,
|
||
lastBaseUpdate: f,
|
||
shared: d.shared,
|
||
effects: d.effects
|
||
};
|
||
a.updateQueue = c;
|
||
return;
|
||
}
|
||
a = c.lastBaseUpdate;
|
||
null === a ? c.firstBaseUpdate = b : a.next = b;
|
||
c.lastBaseUpdate = b;
|
||
}
|
||
function gh(a, b, c, d) {
|
||
var e = a.updateQueue;
|
||
$g = !1;
|
||
var f = e.firstBaseUpdate,
|
||
g = e.lastBaseUpdate,
|
||
h = e.shared.pending;
|
||
if (null !== h) {
|
||
e.shared.pending = null;
|
||
var k = h,
|
||
l = k.next;
|
||
k.next = null;
|
||
null === g ? f = l : g.next = l;
|
||
g = k;
|
||
var m = a.alternate;
|
||
null !== m && (m = m.updateQueue, h = m.lastBaseUpdate, h !== g && (null === h ? m.firstBaseUpdate = l : h.next = l, m.lastBaseUpdate = k));
|
||
}
|
||
if (null !== f) {
|
||
var q = e.baseState;
|
||
g = 0;
|
||
m = l = k = null;
|
||
h = f;
|
||
do {
|
||
var r = h.lane,
|
||
y = h.eventTime;
|
||
if ((d & r) === r) {
|
||
null !== m && (m = m.next = {
|
||
eventTime: y,
|
||
lane: 0,
|
||
tag: h.tag,
|
||
payload: h.payload,
|
||
callback: h.callback,
|
||
next: null
|
||
});
|
||
a: {
|
||
var n = a,
|
||
t = h;
|
||
r = b;
|
||
y = c;
|
||
switch (t.tag) {
|
||
case 1:
|
||
n = t.payload;
|
||
if ("function" === typeof n) {
|
||
q = n.call(y, q, r);
|
||
break a;
|
||
}
|
||
q = n;
|
||
break a;
|
||
case 3:
|
||
n.flags = n.flags & -65537 | 128;
|
||
case 0:
|
||
n = t.payload;
|
||
r = "function" === typeof n ? n.call(y, q, r) : n;
|
||
if (null === r || void 0 === r) break a;
|
||
q = A({}, q, r);
|
||
break a;
|
||
case 2:
|
||
$g = !0;
|
||
}
|
||
}
|
||
null !== h.callback && 0 !== h.lane && (a.flags |= 64, r = e.effects, null === r ? e.effects = [h] : r.push(h));
|
||
} else y = {
|
||
eventTime: y,
|
||
lane: r,
|
||
tag: h.tag,
|
||
payload: h.payload,
|
||
callback: h.callback,
|
||
next: null
|
||
}, null === m ? (l = m = y, k = q) : m = m.next = y, g |= r;
|
||
h = h.next;
|
||
if (null === h) if (h = e.shared.pending, null === h) break;else r = h, h = r.next, r.next = null, e.lastBaseUpdate = r, e.shared.pending = null;
|
||
} while (1);
|
||
null === m && (k = q);
|
||
e.baseState = k;
|
||
e.firstBaseUpdate = l;
|
||
e.lastBaseUpdate = m;
|
||
b = e.shared.interleaved;
|
||
if (null !== b) {
|
||
e = b;
|
||
do g |= e.lane, e = e.next; while (e !== b);
|
||
} else null === f && (e.shared.lanes = 0);
|
||
hh |= g;
|
||
a.lanes = g;
|
||
a.memoizedState = q;
|
||
}
|
||
}
|
||
function ih(a, b, c) {
|
||
a = b.effects;
|
||
b.effects = null;
|
||
if (null !== a) for (b = 0; b < a.length; b++) {
|
||
var d = a[b],
|
||
e = d.callback;
|
||
if (null !== e) {
|
||
d.callback = null;
|
||
d = c;
|
||
if ("function" !== typeof e) throw Error(p(191, e));
|
||
e.call(d);
|
||
}
|
||
}
|
||
}
|
||
var jh = new aa.Component().refs;
|
||
function kh(a, b, c, d) {
|
||
b = a.memoizedState;
|
||
c = c(d, b);
|
||
c = null === c || void 0 === c ? b : A({}, b, c);
|
||
a.memoizedState = c;
|
||
0 === a.lanes && (a.updateQueue.baseState = c);
|
||
}
|
||
var nh = {
|
||
isMounted: function isMounted(a) {
|
||
return (a = a._reactInternals) ? Vb(a) === a : !1;
|
||
},
|
||
enqueueSetState: function enqueueSetState(a, b, c) {
|
||
a = a._reactInternals;
|
||
var d = L(),
|
||
e = lh(a),
|
||
f = ch(d, e);
|
||
f.payload = b;
|
||
void 0 !== c && null !== c && (f.callback = c);
|
||
b = dh(a, f, e);
|
||
null !== b && (mh(b, a, e, d), eh(b, a, e));
|
||
},
|
||
enqueueReplaceState: function enqueueReplaceState(a, b, c) {
|
||
a = a._reactInternals;
|
||
var d = L(),
|
||
e = lh(a),
|
||
f = ch(d, e);
|
||
f.tag = 1;
|
||
f.payload = b;
|
||
void 0 !== c && null !== c && (f.callback = c);
|
||
b = dh(a, f, e);
|
||
null !== b && (mh(b, a, e, d), eh(b, a, e));
|
||
},
|
||
enqueueForceUpdate: function enqueueForceUpdate(a, b) {
|
||
a = a._reactInternals;
|
||
var c = L(),
|
||
d = lh(a),
|
||
e = ch(c, d);
|
||
e.tag = 2;
|
||
void 0 !== b && null !== b && (e.callback = b);
|
||
b = dh(a, e, d);
|
||
null !== b && (mh(b, a, d, c), eh(b, a, d));
|
||
}
|
||
};
|
||
function oh(a, b, c, d, e, f, g) {
|
||
a = a.stateNode;
|
||
return "function" === typeof a.shouldComponentUpdate ? a.shouldComponentUpdate(d, f, g) : b.prototype && b.prototype.isPureReactComponent ? !Ie(c, d) || !Ie(e, f) : !0;
|
||
}
|
||
function ph(a, b, c) {
|
||
var d = !1,
|
||
e = Vf;
|
||
var f = b.contextType;
|
||
"object" === typeof f && null !== f ? f = Vg(f) : (e = Zf(b) ? Xf : H.current, d = b.contextTypes, f = (d = null !== d && void 0 !== d) ? Yf(a, e) : Vf);
|
||
b = new b(c, f);
|
||
a.memoizedState = null !== b.state && void 0 !== b.state ? b.state : null;
|
||
b.updater = nh;
|
||
a.stateNode = b;
|
||
b._reactInternals = a;
|
||
d && (a = a.stateNode, a.__reactInternalMemoizedUnmaskedChildContext = e, a.__reactInternalMemoizedMaskedChildContext = f);
|
||
return b;
|
||
}
|
||
function qh(a, b, c, d) {
|
||
a = b.state;
|
||
"function" === typeof b.componentWillReceiveProps && b.componentWillReceiveProps(c, d);
|
||
"function" === typeof b.UNSAFE_componentWillReceiveProps && b.UNSAFE_componentWillReceiveProps(c, d);
|
||
b.state !== a && nh.enqueueReplaceState(b, b.state, null);
|
||
}
|
||
function rh(a, b, c, d) {
|
||
var e = a.stateNode;
|
||
e.props = c;
|
||
e.state = a.memoizedState;
|
||
e.refs = jh;
|
||
ah(a);
|
||
var f = b.contextType;
|
||
"object" === typeof f && null !== f ? e.context = Vg(f) : (f = Zf(b) ? Xf : H.current, e.context = Yf(a, f));
|
||
e.state = a.memoizedState;
|
||
f = b.getDerivedStateFromProps;
|
||
"function" === typeof f && (kh(a, b, f, c), e.state = a.memoizedState);
|
||
"function" === typeof b.getDerivedStateFromProps || "function" === typeof e.getSnapshotBeforeUpdate || "function" !== typeof e.UNSAFE_componentWillMount && "function" !== typeof e.componentWillMount || (b = e.state, "function" === typeof e.componentWillMount && e.componentWillMount(), "function" === typeof e.UNSAFE_componentWillMount && e.UNSAFE_componentWillMount(), b !== e.state && nh.enqueueReplaceState(e, e.state, null), gh(a, c, e, d), e.state = a.memoizedState);
|
||
"function" === typeof e.componentDidMount && (a.flags |= 4194308);
|
||
}
|
||
function sh(a, b, c) {
|
||
a = c.ref;
|
||
if (null !== a && "function" !== typeof a && "object" !== typeof a) {
|
||
if (c._owner) {
|
||
c = c._owner;
|
||
if (c) {
|
||
if (1 !== c.tag) throw Error(p(309));
|
||
var d = c.stateNode;
|
||
}
|
||
if (!d) throw Error(p(147, a));
|
||
var e = d,
|
||
f = "" + a;
|
||
if (null !== b && null !== b.ref && "function" === typeof b.ref && b.ref._stringRef === f) return b.ref;
|
||
b = function b(a) {
|
||
var b = e.refs;
|
||
b === jh && (b = e.refs = {});
|
||
null === a ? delete b[f] : b[f] = a;
|
||
};
|
||
b._stringRef = f;
|
||
return b;
|
||
}
|
||
if ("string" !== typeof a) throw Error(p(284));
|
||
if (!c._owner) throw Error(p(290, a));
|
||
}
|
||
return a;
|
||
}
|
||
function th(a, b) {
|
||
a = Object.prototype.toString.call(b);
|
||
throw Error(p(31, "[object Object]" === a ? "object with keys {" + Object.keys(b).join(", ") + "}" : a));
|
||
}
|
||
function uh(a) {
|
||
var b = a._init;
|
||
return b(a._payload);
|
||
}
|
||
function vh(a) {
|
||
function b(b, c) {
|
||
if (a) {
|
||
var d = b.deletions;
|
||
null === d ? (b.deletions = [c], b.flags |= 16) : d.push(c);
|
||
}
|
||
}
|
||
function c(c, d) {
|
||
if (!a) return null;
|
||
for (; null !== d;) b(c, d), d = d.sibling;
|
||
return null;
|
||
}
|
||
function d(a, b) {
|
||
for (a = new Map(); null !== b;) null !== b.key ? a.set(b.key, b) : a.set(b.index, b), b = b.sibling;
|
||
return a;
|
||
}
|
||
function e(a, b) {
|
||
a = wh(a, b);
|
||
a.index = 0;
|
||
a.sibling = null;
|
||
return a;
|
||
}
|
||
function f(b, c, d) {
|
||
b.index = d;
|
||
if (!a) return b.flags |= 1048576, c;
|
||
d = b.alternate;
|
||
if (null !== d) return d = d.index, d < c ? (b.flags |= 2, c) : d;
|
||
b.flags |= 2;
|
||
return c;
|
||
}
|
||
function g(b) {
|
||
a && null === b.alternate && (b.flags |= 2);
|
||
return b;
|
||
}
|
||
function h(a, b, c, d) {
|
||
if (null === b || 6 !== b.tag) return b = xh(c, a.mode, d), b.return = a, b;
|
||
b = e(b, c);
|
||
b.return = a;
|
||
return b;
|
||
}
|
||
function k(a, b, c, d) {
|
||
var f = c.type;
|
||
if (f === ya) return m(a, b, c.props.children, d, c.key);
|
||
if (null !== b && (b.elementType === f || "object" === typeof f && null !== f && f.$$typeof === Ha && uh(f) === b.type)) return d = e(b, c.props), d.ref = sh(a, b, c), d.return = a, d;
|
||
d = yh(c.type, c.key, c.props, null, a.mode, d);
|
||
d.ref = sh(a, b, c);
|
||
d.return = a;
|
||
return d;
|
||
}
|
||
function l(a, b, c, d) {
|
||
if (null === b || 4 !== b.tag || b.stateNode.containerInfo !== c.containerInfo || b.stateNode.implementation !== c.implementation) return b = zh(c, a.mode, d), b.return = a, b;
|
||
b = e(b, c.children || []);
|
||
b.return = a;
|
||
return b;
|
||
}
|
||
function m(a, b, c, d, f) {
|
||
if (null === b || 7 !== b.tag) return b = Ah(c, a.mode, d, f), b.return = a, b;
|
||
b = e(b, c);
|
||
b.return = a;
|
||
return b;
|
||
}
|
||
function q(a, b, c) {
|
||
if ("string" === typeof b && "" !== b || "number" === typeof b) return b = xh("" + b, a.mode, c), b.return = a, b;
|
||
if ("object" === typeof b && null !== b) {
|
||
switch (b.$$typeof) {
|
||
case va:
|
||
return c = yh(b.type, b.key, b.props, null, a.mode, c), c.ref = sh(a, null, b), c.return = a, c;
|
||
case wa:
|
||
return b = zh(b, a.mode, c), b.return = a, b;
|
||
case Ha:
|
||
var d = b._init;
|
||
return q(a, d(b._payload), c);
|
||
}
|
||
if (eb(b) || Ka(b)) return b = Ah(b, a.mode, c, null), b.return = a, b;
|
||
th(a, b);
|
||
}
|
||
return null;
|
||
}
|
||
function r(a, b, c, d) {
|
||
var e = null !== b ? b.key : null;
|
||
if ("string" === typeof c && "" !== c || "number" === typeof c) return null !== e ? null : h(a, b, "" + c, d);
|
||
if ("object" === typeof c && null !== c) {
|
||
switch (c.$$typeof) {
|
||
case va:
|
||
return c.key === e ? k(a, b, c, d) : null;
|
||
case wa:
|
||
return c.key === e ? l(a, b, c, d) : null;
|
||
case Ha:
|
||
return e = c._init, r(a, b, e(c._payload), d);
|
||
}
|
||
if (eb(c) || Ka(c)) return null !== e ? null : m(a, b, c, d, null);
|
||
th(a, c);
|
||
}
|
||
return null;
|
||
}
|
||
function y(a, b, c, d, e) {
|
||
if ("string" === typeof d && "" !== d || "number" === typeof d) return a = a.get(c) || null, h(b, a, "" + d, e);
|
||
if ("object" === typeof d && null !== d) {
|
||
switch (d.$$typeof) {
|
||
case va:
|
||
return a = a.get(null === d.key ? c : d.key) || null, k(b, a, d, e);
|
||
case wa:
|
||
return a = a.get(null === d.key ? c : d.key) || null, l(b, a, d, e);
|
||
case Ha:
|
||
var f = d._init;
|
||
return y(a, b, c, f(d._payload), e);
|
||
}
|
||
if (eb(d) || Ka(d)) return a = a.get(c) || null, m(b, a, d, e, null);
|
||
th(b, d);
|
||
}
|
||
return null;
|
||
}
|
||
function n(e, g, h, k) {
|
||
for (var l = null, m = null, u = g, w = g = 0, x = null; null !== u && w < h.length; w++) {
|
||
u.index > w ? (x = u, u = null) : x = u.sibling;
|
||
var n = r(e, u, h[w], k);
|
||
if (null === n) {
|
||
null === u && (u = x);
|
||
break;
|
||
}
|
||
a && u && null === n.alternate && b(e, u);
|
||
g = f(n, g, w);
|
||
null === m ? l = n : m.sibling = n;
|
||
m = n;
|
||
u = x;
|
||
}
|
||
if (w === h.length) return c(e, u), I && tg(e, w), l;
|
||
if (null === u) {
|
||
for (; w < h.length; w++) u = q(e, h[w], k), null !== u && (g = f(u, g, w), null === m ? l = u : m.sibling = u, m = u);
|
||
I && tg(e, w);
|
||
return l;
|
||
}
|
||
for (u = d(e, u); w < h.length; w++) x = y(u, e, w, h[w], k), null !== x && (a && null !== x.alternate && u.delete(null === x.key ? w : x.key), g = f(x, g, w), null === m ? l = x : m.sibling = x, m = x);
|
||
a && u.forEach(function (a) {
|
||
return b(e, a);
|
||
});
|
||
I && tg(e, w);
|
||
return l;
|
||
}
|
||
function t(e, g, h, k) {
|
||
var l = Ka(h);
|
||
if ("function" !== typeof l) throw Error(p(150));
|
||
h = l.call(h);
|
||
if (null == h) throw Error(p(151));
|
||
for (var u = l = null, m = g, w = g = 0, x = null, n = h.next(); null !== m && !n.done; w++, n = h.next()) {
|
||
m.index > w ? (x = m, m = null) : x = m.sibling;
|
||
var t = r(e, m, n.value, k);
|
||
if (null === t) {
|
||
null === m && (m = x);
|
||
break;
|
||
}
|
||
a && m && null === t.alternate && b(e, m);
|
||
g = f(t, g, w);
|
||
null === u ? l = t : u.sibling = t;
|
||
u = t;
|
||
m = x;
|
||
}
|
||
if (n.done) return c(e, m), I && tg(e, w), l;
|
||
if (null === m) {
|
||
for (; !n.done; w++, n = h.next()) n = q(e, n.value, k), null !== n && (g = f(n, g, w), null === u ? l = n : u.sibling = n, u = n);
|
||
I && tg(e, w);
|
||
return l;
|
||
}
|
||
for (m = d(e, m); !n.done; w++, n = h.next()) n = y(m, e, w, n.value, k), null !== n && (a && null !== n.alternate && m.delete(null === n.key ? w : n.key), g = f(n, g, w), null === u ? l = n : u.sibling = n, u = n);
|
||
a && m.forEach(function (a) {
|
||
return b(e, a);
|
||
});
|
||
I && tg(e, w);
|
||
return l;
|
||
}
|
||
function J(a, d, f, h) {
|
||
"object" === typeof f && null !== f && f.type === ya && null === f.key && (f = f.props.children);
|
||
if ("object" === typeof f && null !== f) {
|
||
switch (f.$$typeof) {
|
||
case va:
|
||
a: {
|
||
for (var k = f.key, l = d; null !== l;) {
|
||
if (l.key === k) {
|
||
k = f.type;
|
||
if (k === ya) {
|
||
if (7 === l.tag) {
|
||
c(a, l.sibling);
|
||
d = e(l, f.props.children);
|
||
d.return = a;
|
||
a = d;
|
||
break a;
|
||
}
|
||
} else if (l.elementType === k || "object" === typeof k && null !== k && k.$$typeof === Ha && uh(k) === l.type) {
|
||
c(a, l.sibling);
|
||
d = e(l, f.props);
|
||
d.ref = sh(a, l, f);
|
||
d.return = a;
|
||
a = d;
|
||
break a;
|
||
}
|
||
c(a, l);
|
||
break;
|
||
} else b(a, l);
|
||
l = l.sibling;
|
||
}
|
||
f.type === ya ? (d = Ah(f.props.children, a.mode, h, f.key), d.return = a, a = d) : (h = yh(f.type, f.key, f.props, null, a.mode, h), h.ref = sh(a, d, f), h.return = a, a = h);
|
||
}
|
||
return g(a);
|
||
case wa:
|
||
a: {
|
||
for (l = f.key; null !== d;) {
|
||
if (d.key === l) {
|
||
if (4 === d.tag && d.stateNode.containerInfo === f.containerInfo && d.stateNode.implementation === f.implementation) {
|
||
c(a, d.sibling);
|
||
d = e(d, f.children || []);
|
||
d.return = a;
|
||
a = d;
|
||
break a;
|
||
} else {
|
||
c(a, d);
|
||
break;
|
||
}
|
||
} else b(a, d);
|
||
d = d.sibling;
|
||
}
|
||
d = zh(f, a.mode, h);
|
||
d.return = a;
|
||
a = d;
|
||
}
|
||
return g(a);
|
||
case Ha:
|
||
return l = f._init, J(a, d, l(f._payload), h);
|
||
}
|
||
if (eb(f)) return n(a, d, f, h);
|
||
if (Ka(f)) return t(a, d, f, h);
|
||
th(a, f);
|
||
}
|
||
return "string" === typeof f && "" !== f || "number" === typeof f ? (f = "" + f, null !== d && 6 === d.tag ? (c(a, d.sibling), d = e(d, f), d.return = a, a = d) : (c(a, d), d = xh(f, a.mode, h), d.return = a, a = d), g(a)) : c(a, d);
|
||
}
|
||
return J;
|
||
}
|
||
var Bh = vh(!0),
|
||
Ch = vh(!1),
|
||
Dh = {},
|
||
Eh = Uf(Dh),
|
||
Fh = Uf(Dh),
|
||
Gh = Uf(Dh);
|
||
function Hh(a) {
|
||
if (a === Dh) throw Error(p(174));
|
||
return a;
|
||
}
|
||
function Ih(a, b) {
|
||
G(Gh, b);
|
||
G(Fh, a);
|
||
G(Eh, Dh);
|
||
a = b.nodeType;
|
||
switch (a) {
|
||
case 9:
|
||
case 11:
|
||
b = (b = b.documentElement) ? b.namespaceURI : lb(null, "");
|
||
break;
|
||
default:
|
||
a = 8 === a ? b.parentNode : b, b = a.namespaceURI || null, a = a.tagName, b = lb(b, a);
|
||
}
|
||
E(Eh);
|
||
G(Eh, b);
|
||
}
|
||
function Jh() {
|
||
E(Eh);
|
||
E(Fh);
|
||
E(Gh);
|
||
}
|
||
function Kh(a) {
|
||
Hh(Gh.current);
|
||
var b = Hh(Eh.current);
|
||
var c = lb(b, a.type);
|
||
b !== c && (G(Fh, a), G(Eh, c));
|
||
}
|
||
function Lh(a) {
|
||
Fh.current === a && (E(Eh), E(Fh));
|
||
}
|
||
var M = Uf(0);
|
||
function Mh(a) {
|
||
for (var b = a; null !== b;) {
|
||
if (13 === b.tag) {
|
||
var c = b.memoizedState;
|
||
if (null !== c && (c = c.dehydrated, null === c || "$?" === c.data || "$!" === c.data)) return b;
|
||
} else if (19 === b.tag && void 0 !== b.memoizedProps.revealOrder) {
|
||
if (0 !== (b.flags & 128)) return b;
|
||
} else if (null !== b.child) {
|
||
b.child.return = b;
|
||
b = b.child;
|
||
continue;
|
||
}
|
||
if (b === a) break;
|
||
for (; null === b.sibling;) {
|
||
if (null === b.return || b.return === a) return null;
|
||
b = b.return;
|
||
}
|
||
b.sibling.return = b.return;
|
||
b = b.sibling;
|
||
}
|
||
return null;
|
||
}
|
||
var Nh = [];
|
||
function Oh() {
|
||
for (var a = 0; a < Nh.length; a++) Nh[a]._workInProgressVersionPrimary = null;
|
||
Nh.length = 0;
|
||
}
|
||
var Ph = ua.ReactCurrentDispatcher,
|
||
Qh = ua.ReactCurrentBatchConfig,
|
||
Rh = 0,
|
||
N = null,
|
||
O = null,
|
||
P = null,
|
||
Sh = !1,
|
||
Th = !1,
|
||
Uh = 0,
|
||
Vh = 0;
|
||
function Q() {
|
||
throw Error(p(321));
|
||
}
|
||
function Wh(a, b) {
|
||
if (null === b) return !1;
|
||
for (var c = 0; c < b.length && c < a.length; c++) if (!He(a[c], b[c])) return !1;
|
||
return !0;
|
||
}
|
||
function Xh(a, b, c, d, e, f) {
|
||
Rh = f;
|
||
N = b;
|
||
b.memoizedState = null;
|
||
b.updateQueue = null;
|
||
b.lanes = 0;
|
||
Ph.current = null === a || null === a.memoizedState ? Yh : Zh;
|
||
a = c(d, e);
|
||
if (Th) {
|
||
f = 0;
|
||
do {
|
||
Th = !1;
|
||
Uh = 0;
|
||
if (25 <= f) throw Error(p(301));
|
||
f += 1;
|
||
P = O = null;
|
||
b.updateQueue = null;
|
||
Ph.current = $h;
|
||
a = c(d, e);
|
||
} while (Th);
|
||
}
|
||
Ph.current = ai;
|
||
b = null !== O && null !== O.next;
|
||
Rh = 0;
|
||
P = O = N = null;
|
||
Sh = !1;
|
||
if (b) throw Error(p(300));
|
||
return a;
|
||
}
|
||
function bi() {
|
||
var a = 0 !== Uh;
|
||
Uh = 0;
|
||
return a;
|
||
}
|
||
function ci() {
|
||
var a = {
|
||
memoizedState: null,
|
||
baseState: null,
|
||
baseQueue: null,
|
||
queue: null,
|
||
next: null
|
||
};
|
||
null === P ? N.memoizedState = P = a : P = P.next = a;
|
||
return P;
|
||
}
|
||
function di() {
|
||
if (null === O) {
|
||
var a = N.alternate;
|
||
a = null !== a ? a.memoizedState : null;
|
||
} else a = O.next;
|
||
var b = null === P ? N.memoizedState : P.next;
|
||
if (null !== b) P = b, O = a;else {
|
||
if (null === a) throw Error(p(310));
|
||
O = a;
|
||
a = {
|
||
memoizedState: O.memoizedState,
|
||
baseState: O.baseState,
|
||
baseQueue: O.baseQueue,
|
||
queue: O.queue,
|
||
next: null
|
||
};
|
||
null === P ? N.memoizedState = P = a : P = P.next = a;
|
||
}
|
||
return P;
|
||
}
|
||
function ei(a, b) {
|
||
return "function" === typeof b ? b(a) : b;
|
||
}
|
||
function fi(a) {
|
||
var b = di(),
|
||
c = b.queue;
|
||
if (null === c) throw Error(p(311));
|
||
c.lastRenderedReducer = a;
|
||
var d = O,
|
||
e = d.baseQueue,
|
||
f = c.pending;
|
||
if (null !== f) {
|
||
if (null !== e) {
|
||
var g = e.next;
|
||
e.next = f.next;
|
||
f.next = g;
|
||
}
|
||
d.baseQueue = e = f;
|
||
c.pending = null;
|
||
}
|
||
if (null !== e) {
|
||
f = e.next;
|
||
d = d.baseState;
|
||
var h = g = null,
|
||
k = null,
|
||
l = f;
|
||
do {
|
||
var m = l.lane;
|
||
if ((Rh & m) === m) null !== k && (k = k.next = {
|
||
lane: 0,
|
||
action: l.action,
|
||
hasEagerState: l.hasEagerState,
|
||
eagerState: l.eagerState,
|
||
next: null
|
||
}), d = l.hasEagerState ? l.eagerState : a(d, l.action);else {
|
||
var q = {
|
||
lane: m,
|
||
action: l.action,
|
||
hasEagerState: l.hasEagerState,
|
||
eagerState: l.eagerState,
|
||
next: null
|
||
};
|
||
null === k ? (h = k = q, g = d) : k = k.next = q;
|
||
N.lanes |= m;
|
||
hh |= m;
|
||
}
|
||
l = l.next;
|
||
} while (null !== l && l !== f);
|
||
null === k ? g = d : k.next = h;
|
||
He(d, b.memoizedState) || (Ug = !0);
|
||
b.memoizedState = d;
|
||
b.baseState = g;
|
||
b.baseQueue = k;
|
||
c.lastRenderedState = d;
|
||
}
|
||
a = c.interleaved;
|
||
if (null !== a) {
|
||
e = a;
|
||
do f = e.lane, N.lanes |= f, hh |= f, e = e.next; while (e !== a);
|
||
} else null === e && (c.lanes = 0);
|
||
return [b.memoizedState, c.dispatch];
|
||
}
|
||
function gi(a) {
|
||
var b = di(),
|
||
c = b.queue;
|
||
if (null === c) throw Error(p(311));
|
||
c.lastRenderedReducer = a;
|
||
var d = c.dispatch,
|
||
e = c.pending,
|
||
f = b.memoizedState;
|
||
if (null !== e) {
|
||
c.pending = null;
|
||
var g = e = e.next;
|
||
do f = a(f, g.action), g = g.next; while (g !== e);
|
||
He(f, b.memoizedState) || (Ug = !0);
|
||
b.memoizedState = f;
|
||
null === b.baseQueue && (b.baseState = f);
|
||
c.lastRenderedState = f;
|
||
}
|
||
return [f, d];
|
||
}
|
||
function hi() {}
|
||
function ii(a, b) {
|
||
var c = N,
|
||
d = di(),
|
||
e = b(),
|
||
f = !He(d.memoizedState, e);
|
||
f && (d.memoizedState = e, Ug = !0);
|
||
d = d.queue;
|
||
ji(ki.bind(null, c, d, a), [a]);
|
||
if (d.getSnapshot !== b || f || null !== P && P.memoizedState.tag & 1) {
|
||
c.flags |= 2048;
|
||
li(9, mi.bind(null, c, d, e, b), void 0, null);
|
||
if (null === R) throw Error(p(349));
|
||
0 !== (Rh & 30) || ni(c, b, e);
|
||
}
|
||
return e;
|
||
}
|
||
function ni(a, b, c) {
|
||
a.flags |= 16384;
|
||
a = {
|
||
getSnapshot: b,
|
||
value: c
|
||
};
|
||
b = N.updateQueue;
|
||
null === b ? (b = {
|
||
lastEffect: null,
|
||
stores: null
|
||
}, N.updateQueue = b, b.stores = [a]) : (c = b.stores, null === c ? b.stores = [a] : c.push(a));
|
||
}
|
||
function mi(a, b, c, d) {
|
||
b.value = c;
|
||
b.getSnapshot = d;
|
||
oi(b) && pi(a);
|
||
}
|
||
function ki(a, b, c) {
|
||
return c(function () {
|
||
oi(b) && pi(a);
|
||
});
|
||
}
|
||
function oi(a) {
|
||
var b = a.getSnapshot;
|
||
a = a.value;
|
||
try {
|
||
var c = b();
|
||
return !He(a, c);
|
||
} catch (d) {
|
||
return !0;
|
||
}
|
||
}
|
||
function pi(a) {
|
||
var b = Zg(a, 1);
|
||
null !== b && mh(b, a, 1, -1);
|
||
}
|
||
function qi(a) {
|
||
var b = ci();
|
||
"function" === typeof a && (a = a());
|
||
b.memoizedState = b.baseState = a;
|
||
a = {
|
||
pending: null,
|
||
interleaved: null,
|
||
lanes: 0,
|
||
dispatch: null,
|
||
lastRenderedReducer: ei,
|
||
lastRenderedState: a
|
||
};
|
||
b.queue = a;
|
||
a = a.dispatch = ri.bind(null, N, a);
|
||
return [b.memoizedState, a];
|
||
}
|
||
function li(a, b, c, d) {
|
||
a = {
|
||
tag: a,
|
||
create: b,
|
||
destroy: c,
|
||
deps: d,
|
||
next: null
|
||
};
|
||
b = N.updateQueue;
|
||
null === b ? (b = {
|
||
lastEffect: null,
|
||
stores: null
|
||
}, N.updateQueue = b, b.lastEffect = a.next = a) : (c = b.lastEffect, null === c ? b.lastEffect = a.next = a : (d = c.next, c.next = a, a.next = d, b.lastEffect = a));
|
||
return a;
|
||
}
|
||
function si() {
|
||
return di().memoizedState;
|
||
}
|
||
function ti(a, b, c, d) {
|
||
var e = ci();
|
||
N.flags |= a;
|
||
e.memoizedState = li(1 | b, c, void 0, void 0 === d ? null : d);
|
||
}
|
||
function ui(a, b, c, d) {
|
||
var e = di();
|
||
d = void 0 === d ? null : d;
|
||
var f = void 0;
|
||
if (null !== O) {
|
||
var g = O.memoizedState;
|
||
f = g.destroy;
|
||
if (null !== d && Wh(d, g.deps)) {
|
||
e.memoizedState = li(b, c, f, d);
|
||
return;
|
||
}
|
||
}
|
||
N.flags |= a;
|
||
e.memoizedState = li(1 | b, c, f, d);
|
||
}
|
||
function vi(a, b) {
|
||
return ti(8390656, 8, a, b);
|
||
}
|
||
function ji(a, b) {
|
||
return ui(2048, 8, a, b);
|
||
}
|
||
function wi(a, b) {
|
||
return ui(4, 2, a, b);
|
||
}
|
||
function xi(a, b) {
|
||
return ui(4, 4, a, b);
|
||
}
|
||
function yi(a, b) {
|
||
if ("function" === typeof b) return a = a(), b(a), function () {
|
||
b(null);
|
||
};
|
||
if (null !== b && void 0 !== b) return a = a(), b.current = a, function () {
|
||
b.current = null;
|
||
};
|
||
}
|
||
function zi(a, b, c) {
|
||
c = null !== c && void 0 !== c ? c.concat([a]) : null;
|
||
return ui(4, 4, yi.bind(null, b, a), c);
|
||
}
|
||
function Ai() {}
|
||
function Bi(a, b) {
|
||
var c = di();
|
||
b = void 0 === b ? null : b;
|
||
var d = c.memoizedState;
|
||
if (null !== d && null !== b && Wh(b, d[1])) return d[0];
|
||
c.memoizedState = [a, b];
|
||
return a;
|
||
}
|
||
function Ci(a, b) {
|
||
var c = di();
|
||
b = void 0 === b ? null : b;
|
||
var d = c.memoizedState;
|
||
if (null !== d && null !== b && Wh(b, d[1])) return d[0];
|
||
a = a();
|
||
c.memoizedState = [a, b];
|
||
return a;
|
||
}
|
||
function Di(a, b, c) {
|
||
if (0 === (Rh & 21)) return a.baseState && (a.baseState = !1, Ug = !0), a.memoizedState = c;
|
||
He(c, b) || (c = yc(), N.lanes |= c, hh |= c, a.baseState = !0);
|
||
return b;
|
||
}
|
||
function Ei(a, b) {
|
||
var c = C;
|
||
C = 0 !== c && 4 > c ? c : 4;
|
||
a(!0);
|
||
var d = Qh.transition;
|
||
Qh.transition = {};
|
||
try {
|
||
a(!1), b();
|
||
} finally {
|
||
C = c, Qh.transition = d;
|
||
}
|
||
}
|
||
function Fi() {
|
||
return di().memoizedState;
|
||
}
|
||
function Gi(a, b, c) {
|
||
var d = lh(a);
|
||
c = {
|
||
lane: d,
|
||
action: c,
|
||
hasEagerState: !1,
|
||
eagerState: null,
|
||
next: null
|
||
};
|
||
if (Hi(a)) Ii(b, c);else if (c = Yg(a, b, c, d), null !== c) {
|
||
var e = L();
|
||
mh(c, a, d, e);
|
||
Ji(c, b, d);
|
||
}
|
||
}
|
||
function ri(a, b, c) {
|
||
var d = lh(a),
|
||
e = {
|
||
lane: d,
|
||
action: c,
|
||
hasEagerState: !1,
|
||
eagerState: null,
|
||
next: null
|
||
};
|
||
if (Hi(a)) Ii(b, e);else {
|
||
var f = a.alternate;
|
||
if (0 === a.lanes && (null === f || 0 === f.lanes) && (f = b.lastRenderedReducer, null !== f)) try {
|
||
var g = b.lastRenderedState,
|
||
h = f(g, c);
|
||
e.hasEagerState = !0;
|
||
e.eagerState = h;
|
||
if (He(h, g)) {
|
||
var k = b.interleaved;
|
||
null === k ? (e.next = e, Xg(b)) : (e.next = k.next, k.next = e);
|
||
b.interleaved = e;
|
||
return;
|
||
}
|
||
} catch (l) {} finally {}
|
||
c = Yg(a, b, e, d);
|
||
null !== c && (e = L(), mh(c, a, d, e), Ji(c, b, d));
|
||
}
|
||
}
|
||
function Hi(a) {
|
||
var b = a.alternate;
|
||
return a === N || null !== b && b === N;
|
||
}
|
||
function Ii(a, b) {
|
||
Th = Sh = !0;
|
||
var c = a.pending;
|
||
null === c ? b.next = b : (b.next = c.next, c.next = b);
|
||
a.pending = b;
|
||
}
|
||
function Ji(a, b, c) {
|
||
if (0 !== (c & 4194240)) {
|
||
var d = b.lanes;
|
||
d &= a.pendingLanes;
|
||
c |= d;
|
||
b.lanes = c;
|
||
Cc(a, c);
|
||
}
|
||
}
|
||
var ai = {
|
||
readContext: Vg,
|
||
useCallback: Q,
|
||
useContext: Q,
|
||
useEffect: Q,
|
||
useImperativeHandle: Q,
|
||
useInsertionEffect: Q,
|
||
useLayoutEffect: Q,
|
||
useMemo: Q,
|
||
useReducer: Q,
|
||
useRef: Q,
|
||
useState: Q,
|
||
useDebugValue: Q,
|
||
useDeferredValue: Q,
|
||
useTransition: Q,
|
||
useMutableSource: Q,
|
||
useSyncExternalStore: Q,
|
||
useId: Q,
|
||
unstable_isNewReconciler: !1
|
||
},
|
||
Yh = {
|
||
readContext: Vg,
|
||
useCallback: function useCallback(a, b) {
|
||
ci().memoizedState = [a, void 0 === b ? null : b];
|
||
return a;
|
||
},
|
||
useContext: Vg,
|
||
useEffect: vi,
|
||
useImperativeHandle: function useImperativeHandle(a, b, c) {
|
||
c = null !== c && void 0 !== c ? c.concat([a]) : null;
|
||
return ti(4194308, 4, yi.bind(null, b, a), c);
|
||
},
|
||
useLayoutEffect: function useLayoutEffect(a, b) {
|
||
return ti(4194308, 4, a, b);
|
||
},
|
||
useInsertionEffect: function useInsertionEffect(a, b) {
|
||
return ti(4, 2, a, b);
|
||
},
|
||
useMemo: function useMemo(a, b) {
|
||
var c = ci();
|
||
b = void 0 === b ? null : b;
|
||
a = a();
|
||
c.memoizedState = [a, b];
|
||
return a;
|
||
},
|
||
useReducer: function useReducer(a, b, c) {
|
||
var d = ci();
|
||
b = void 0 !== c ? c(b) : b;
|
||
d.memoizedState = d.baseState = b;
|
||
a = {
|
||
pending: null,
|
||
interleaved: null,
|
||
lanes: 0,
|
||
dispatch: null,
|
||
lastRenderedReducer: a,
|
||
lastRenderedState: b
|
||
};
|
||
d.queue = a;
|
||
a = a.dispatch = Gi.bind(null, N, a);
|
||
return [d.memoizedState, a];
|
||
},
|
||
useRef: function useRef(a) {
|
||
var b = ci();
|
||
a = {
|
||
current: a
|
||
};
|
||
return b.memoizedState = a;
|
||
},
|
||
useState: qi,
|
||
useDebugValue: Ai,
|
||
useDeferredValue: function useDeferredValue(a) {
|
||
return ci().memoizedState = a;
|
||
},
|
||
useTransition: function useTransition() {
|
||
var a = qi(!1),
|
||
b = a[0];
|
||
a = Ei.bind(null, a[1]);
|
||
ci().memoizedState = a;
|
||
return [b, a];
|
||
},
|
||
useMutableSource: function useMutableSource() {},
|
||
useSyncExternalStore: function useSyncExternalStore(a, b, c) {
|
||
var d = N,
|
||
e = ci();
|
||
if (I) {
|
||
if (void 0 === c) throw Error(p(407));
|
||
c = c();
|
||
} else {
|
||
c = b();
|
||
if (null === R) throw Error(p(349));
|
||
0 !== (Rh & 30) || ni(d, b, c);
|
||
}
|
||
e.memoizedState = c;
|
||
var f = {
|
||
value: c,
|
||
getSnapshot: b
|
||
};
|
||
e.queue = f;
|
||
vi(ki.bind(null, d, f, a), [a]);
|
||
d.flags |= 2048;
|
||
li(9, mi.bind(null, d, f, c, b), void 0, null);
|
||
return c;
|
||
},
|
||
useId: function useId() {
|
||
var a = ci(),
|
||
b = R.identifierPrefix;
|
||
if (I) {
|
||
var c = sg;
|
||
var d = rg;
|
||
c = (d & ~(1 << 32 - oc(d) - 1)).toString(32) + c;
|
||
b = ":" + b + "R" + c;
|
||
c = Uh++;
|
||
0 < c && (b += "H" + c.toString(32));
|
||
b += ":";
|
||
} else c = Vh++, b = ":" + b + "r" + c.toString(32) + ":";
|
||
return a.memoizedState = b;
|
||
},
|
||
unstable_isNewReconciler: !1
|
||
},
|
||
Zh = {
|
||
readContext: Vg,
|
||
useCallback: Bi,
|
||
useContext: Vg,
|
||
useEffect: ji,
|
||
useImperativeHandle: zi,
|
||
useInsertionEffect: wi,
|
||
useLayoutEffect: xi,
|
||
useMemo: Ci,
|
||
useReducer: fi,
|
||
useRef: si,
|
||
useState: function useState() {
|
||
return fi(ei);
|
||
},
|
||
useDebugValue: Ai,
|
||
useDeferredValue: function useDeferredValue(a) {
|
||
var b = di();
|
||
return Di(b, O.memoizedState, a);
|
||
},
|
||
useTransition: function useTransition() {
|
||
var a = fi(ei)[0],
|
||
b = di().memoizedState;
|
||
return [a, b];
|
||
},
|
||
useMutableSource: hi,
|
||
useSyncExternalStore: ii,
|
||
useId: Fi,
|
||
unstable_isNewReconciler: !1
|
||
},
|
||
$h = {
|
||
readContext: Vg,
|
||
useCallback: Bi,
|
||
useContext: Vg,
|
||
useEffect: ji,
|
||
useImperativeHandle: zi,
|
||
useInsertionEffect: wi,
|
||
useLayoutEffect: xi,
|
||
useMemo: Ci,
|
||
useReducer: gi,
|
||
useRef: si,
|
||
useState: function useState() {
|
||
return gi(ei);
|
||
},
|
||
useDebugValue: Ai,
|
||
useDeferredValue: function useDeferredValue(a) {
|
||
var b = di();
|
||
return null === O ? b.memoizedState = a : Di(b, O.memoizedState, a);
|
||
},
|
||
useTransition: function useTransition() {
|
||
var a = gi(ei)[0],
|
||
b = di().memoizedState;
|
||
return [a, b];
|
||
},
|
||
useMutableSource: hi,
|
||
useSyncExternalStore: ii,
|
||
useId: Fi,
|
||
unstable_isNewReconciler: !1
|
||
};
|
||
function Ki(a, b) {
|
||
try {
|
||
var c = "",
|
||
d = b;
|
||
do c += Pa(d), d = d.return; while (d);
|
||
var e = c;
|
||
} catch (f) {
|
||
e = "\nError generating stack: " + f.message + "\n" + f.stack;
|
||
}
|
||
return {
|
||
value: a,
|
||
source: b,
|
||
stack: e,
|
||
digest: null
|
||
};
|
||
}
|
||
function Li(a, b, c) {
|
||
return {
|
||
value: a,
|
||
source: null,
|
||
stack: null != c ? c : null,
|
||
digest: null != b ? b : null
|
||
};
|
||
}
|
||
function Mi(a, b) {
|
||
try {
|
||
console.error(b.value);
|
||
} catch (c) {
|
||
setTimeout(function () {
|
||
throw c;
|
||
});
|
||
}
|
||
}
|
||
var Ni = "function" === typeof WeakMap ? WeakMap : Map;
|
||
function Oi(a, b, c) {
|
||
c = ch(-1, c);
|
||
c.tag = 3;
|
||
c.payload = {
|
||
element: null
|
||
};
|
||
var d = b.value;
|
||
c.callback = function () {
|
||
Pi || (Pi = !0, Qi = d);
|
||
Mi(a, b);
|
||
};
|
||
return c;
|
||
}
|
||
function Ri(a, b, c) {
|
||
c = ch(-1, c);
|
||
c.tag = 3;
|
||
var d = a.type.getDerivedStateFromError;
|
||
if ("function" === typeof d) {
|
||
var e = b.value;
|
||
c.payload = function () {
|
||
return d(e);
|
||
};
|
||
c.callback = function () {
|
||
Mi(a, b);
|
||
};
|
||
}
|
||
var f = a.stateNode;
|
||
null !== f && "function" === typeof f.componentDidCatch && (c.callback = function () {
|
||
Mi(a, b);
|
||
"function" !== typeof d && (null === Si ? Si = new Set([this]) : Si.add(this));
|
||
var c = b.stack;
|
||
this.componentDidCatch(b.value, {
|
||
componentStack: null !== c ? c : ""
|
||
});
|
||
});
|
||
return c;
|
||
}
|
||
function Ti(a, b, c) {
|
||
var d = a.pingCache;
|
||
if (null === d) {
|
||
d = a.pingCache = new Ni();
|
||
var e = new Set();
|
||
d.set(b, e);
|
||
} else e = d.get(b), void 0 === e && (e = new Set(), d.set(b, e));
|
||
e.has(c) || (e.add(c), a = Ui.bind(null, a, b, c), b.then(a, a));
|
||
}
|
||
function Vi(a) {
|
||
do {
|
||
var b;
|
||
if (b = 13 === a.tag) b = a.memoizedState, b = null !== b ? null !== b.dehydrated ? !0 : !1 : !0;
|
||
if (b) return a;
|
||
a = a.return;
|
||
} while (null !== a);
|
||
return null;
|
||
}
|
||
function Wi(a, b, c, d, e) {
|
||
if (0 === (a.mode & 1)) return a === b ? a.flags |= 65536 : (a.flags |= 128, c.flags |= 131072, c.flags &= -52805, 1 === c.tag && (null === c.alternate ? c.tag = 17 : (b = ch(-1, 1), b.tag = 2, dh(c, b, 1))), c.lanes |= 1), a;
|
||
a.flags |= 65536;
|
||
a.lanes = e;
|
||
return a;
|
||
}
|
||
var Xi = ua.ReactCurrentOwner,
|
||
Ug = !1;
|
||
function Yi(a, b, c, d) {
|
||
b.child = null === a ? Ch(b, null, c, d) : Bh(b, a.child, c, d);
|
||
}
|
||
function Zi(a, b, c, d, e) {
|
||
c = c.render;
|
||
var f = b.ref;
|
||
Tg(b, e);
|
||
d = Xh(a, b, c, d, f, e);
|
||
c = bi();
|
||
if (null !== a && !Ug) return b.updateQueue = a.updateQueue, b.flags &= -2053, a.lanes &= ~e, $i(a, b, e);
|
||
I && c && vg(b);
|
||
b.flags |= 1;
|
||
Yi(a, b, d, e);
|
||
return b.child;
|
||
}
|
||
function aj(a, b, c, d, e) {
|
||
if (null === a) {
|
||
var f = c.type;
|
||
if ("function" === typeof f && !bj(f) && void 0 === f.defaultProps && null === c.compare && void 0 === c.defaultProps) return b.tag = 15, b.type = f, cj(a, b, f, d, e);
|
||
a = yh(c.type, null, d, b, b.mode, e);
|
||
a.ref = b.ref;
|
||
a.return = b;
|
||
return b.child = a;
|
||
}
|
||
f = a.child;
|
||
if (0 === (a.lanes & e)) {
|
||
var g = f.memoizedProps;
|
||
c = c.compare;
|
||
c = null !== c ? c : Ie;
|
||
if (c(g, d) && a.ref === b.ref) return $i(a, b, e);
|
||
}
|
||
b.flags |= 1;
|
||
a = wh(f, d);
|
||
a.ref = b.ref;
|
||
a.return = b;
|
||
return b.child = a;
|
||
}
|
||
function cj(a, b, c, d, e) {
|
||
if (null !== a) {
|
||
var f = a.memoizedProps;
|
||
if (Ie(f, d) && a.ref === b.ref) if (Ug = !1, b.pendingProps = d = f, 0 !== (a.lanes & e)) 0 !== (a.flags & 131072) && (Ug = !0);else return b.lanes = a.lanes, $i(a, b, e);
|
||
}
|
||
return dj(a, b, c, d, e);
|
||
}
|
||
function ej(a, b, c) {
|
||
var d = b.pendingProps,
|
||
e = d.children,
|
||
f = null !== a ? a.memoizedState : null;
|
||
if ("hidden" === d.mode) {
|
||
if (0 === (b.mode & 1)) b.memoizedState = {
|
||
baseLanes: 0,
|
||
cachePool: null,
|
||
transitions: null
|
||
}, G(fj, gj), gj |= c;else {
|
||
if (0 === (c & 1073741824)) return a = null !== f ? f.baseLanes | c : c, b.lanes = b.childLanes = 1073741824, b.memoizedState = {
|
||
baseLanes: a,
|
||
cachePool: null,
|
||
transitions: null
|
||
}, b.updateQueue = null, G(fj, gj), gj |= a, null;
|
||
b.memoizedState = {
|
||
baseLanes: 0,
|
||
cachePool: null,
|
||
transitions: null
|
||
};
|
||
d = null !== f ? f.baseLanes : c;
|
||
G(fj, gj);
|
||
gj |= d;
|
||
}
|
||
} else null !== f ? (d = f.baseLanes | c, b.memoizedState = null) : d = c, G(fj, gj), gj |= d;
|
||
Yi(a, b, e, c);
|
||
return b.child;
|
||
}
|
||
function hj(a, b) {
|
||
var c = b.ref;
|
||
if (null === a && null !== c || null !== a && a.ref !== c) b.flags |= 512, b.flags |= 2097152;
|
||
}
|
||
function dj(a, b, c, d, e) {
|
||
var f = Zf(c) ? Xf : H.current;
|
||
f = Yf(b, f);
|
||
Tg(b, e);
|
||
c = Xh(a, b, c, d, f, e);
|
||
d = bi();
|
||
if (null !== a && !Ug) return b.updateQueue = a.updateQueue, b.flags &= -2053, a.lanes &= ~e, $i(a, b, e);
|
||
I && d && vg(b);
|
||
b.flags |= 1;
|
||
Yi(a, b, c, e);
|
||
return b.child;
|
||
}
|
||
function ij(a, b, c, d, e) {
|
||
if (Zf(c)) {
|
||
var f = !0;
|
||
cg(b);
|
||
} else f = !1;
|
||
Tg(b, e);
|
||
if (null === b.stateNode) jj(a, b), ph(b, c, d), rh(b, c, d, e), d = !0;else if (null === a) {
|
||
var g = b.stateNode,
|
||
h = b.memoizedProps;
|
||
g.props = h;
|
||
var k = g.context,
|
||
l = c.contextType;
|
||
"object" === typeof l && null !== l ? l = Vg(l) : (l = Zf(c) ? Xf : H.current, l = Yf(b, l));
|
||
var m = c.getDerivedStateFromProps,
|
||
q = "function" === typeof m || "function" === typeof g.getSnapshotBeforeUpdate;
|
||
q || "function" !== typeof g.UNSAFE_componentWillReceiveProps && "function" !== typeof g.componentWillReceiveProps || (h !== d || k !== l) && qh(b, g, d, l);
|
||
$g = !1;
|
||
var r = b.memoizedState;
|
||
g.state = r;
|
||
gh(b, d, g, e);
|
||
k = b.memoizedState;
|
||
h !== d || r !== k || Wf.current || $g ? ("function" === typeof m && (kh(b, c, m, d), k = b.memoizedState), (h = $g || oh(b, c, h, d, r, k, l)) ? (q || "function" !== typeof g.UNSAFE_componentWillMount && "function" !== typeof g.componentWillMount || ("function" === typeof g.componentWillMount && g.componentWillMount(), "function" === typeof g.UNSAFE_componentWillMount && g.UNSAFE_componentWillMount()), "function" === typeof g.componentDidMount && (b.flags |= 4194308)) : ("function" === typeof g.componentDidMount && (b.flags |= 4194308), b.memoizedProps = d, b.memoizedState = k), g.props = d, g.state = k, g.context = l, d = h) : ("function" === typeof g.componentDidMount && (b.flags |= 4194308), d = !1);
|
||
} else {
|
||
g = b.stateNode;
|
||
bh(a, b);
|
||
h = b.memoizedProps;
|
||
l = b.type === b.elementType ? h : Lg(b.type, h);
|
||
g.props = l;
|
||
q = b.pendingProps;
|
||
r = g.context;
|
||
k = c.contextType;
|
||
"object" === typeof k && null !== k ? k = Vg(k) : (k = Zf(c) ? Xf : H.current, k = Yf(b, k));
|
||
var y = c.getDerivedStateFromProps;
|
||
(m = "function" === typeof y || "function" === typeof g.getSnapshotBeforeUpdate) || "function" !== typeof g.UNSAFE_componentWillReceiveProps && "function" !== typeof g.componentWillReceiveProps || (h !== q || r !== k) && qh(b, g, d, k);
|
||
$g = !1;
|
||
r = b.memoizedState;
|
||
g.state = r;
|
||
gh(b, d, g, e);
|
||
var n = b.memoizedState;
|
||
h !== q || r !== n || Wf.current || $g ? ("function" === typeof y && (kh(b, c, y, d), n = b.memoizedState), (l = $g || oh(b, c, l, d, r, n, k) || !1) ? (m || "function" !== typeof g.UNSAFE_componentWillUpdate && "function" !== typeof g.componentWillUpdate || ("function" === typeof g.componentWillUpdate && g.componentWillUpdate(d, n, k), "function" === typeof g.UNSAFE_componentWillUpdate && g.UNSAFE_componentWillUpdate(d, n, k)), "function" === typeof g.componentDidUpdate && (b.flags |= 4), "function" === typeof g.getSnapshotBeforeUpdate && (b.flags |= 1024)) : ("function" !== typeof g.componentDidUpdate || h === a.memoizedProps && r === a.memoizedState || (b.flags |= 4), "function" !== typeof g.getSnapshotBeforeUpdate || h === a.memoizedProps && r === a.memoizedState || (b.flags |= 1024), b.memoizedProps = d, b.memoizedState = n), g.props = d, g.state = n, g.context = k, d = l) : ("function" !== typeof g.componentDidUpdate || h === a.memoizedProps && r === a.memoizedState || (b.flags |= 4), "function" !== typeof g.getSnapshotBeforeUpdate || h === a.memoizedProps && r === a.memoizedState || (b.flags |= 1024), d = !1);
|
||
}
|
||
return kj(a, b, c, d, f, e);
|
||
}
|
||
function kj(a, b, c, d, e, f) {
|
||
hj(a, b);
|
||
var g = 0 !== (b.flags & 128);
|
||
if (!d && !g) return e && dg(b, c, !1), $i(a, b, f);
|
||
d = b.stateNode;
|
||
Xi.current = b;
|
||
var h = g && "function" !== typeof c.getDerivedStateFromError ? null : d.render();
|
||
b.flags |= 1;
|
||
null !== a && g ? (b.child = Bh(b, a.child, null, f), b.child = Bh(b, null, h, f)) : Yi(a, b, h, f);
|
||
b.memoizedState = d.state;
|
||
e && dg(b, c, !0);
|
||
return b.child;
|
||
}
|
||
function lj(a) {
|
||
var b = a.stateNode;
|
||
b.pendingContext ? ag(a, b.pendingContext, b.pendingContext !== b.context) : b.context && ag(a, b.context, !1);
|
||
Ih(a, b.containerInfo);
|
||
}
|
||
function mj(a, b, c, d, e) {
|
||
Ig();
|
||
Jg(e);
|
||
b.flags |= 256;
|
||
Yi(a, b, c, d);
|
||
return b.child;
|
||
}
|
||
var nj = {
|
||
dehydrated: null,
|
||
treeContext: null,
|
||
retryLane: 0
|
||
};
|
||
function oj(a) {
|
||
return {
|
||
baseLanes: a,
|
||
cachePool: null,
|
||
transitions: null
|
||
};
|
||
}
|
||
function pj(a, b, c) {
|
||
var d = b.pendingProps,
|
||
e = M.current,
|
||
f = !1,
|
||
g = 0 !== (b.flags & 128),
|
||
h;
|
||
(h = g) || (h = null !== a && null === a.memoizedState ? !1 : 0 !== (e & 2));
|
||
if (h) f = !0, b.flags &= -129;else if (null === a || null !== a.memoizedState) e |= 1;
|
||
G(M, e & 1);
|
||
if (null === a) {
|
||
Eg(b);
|
||
a = b.memoizedState;
|
||
if (null !== a && (a = a.dehydrated, null !== a)) return 0 === (b.mode & 1) ? b.lanes = 1 : "$!" === a.data ? b.lanes = 8 : b.lanes = 1073741824, null;
|
||
g = d.children;
|
||
a = d.fallback;
|
||
return f ? (d = b.mode, f = b.child, g = {
|
||
mode: "hidden",
|
||
children: g
|
||
}, 0 === (d & 1) && null !== f ? (f.childLanes = 0, f.pendingProps = g) : f = qj(g, d, 0, null), a = Ah(a, d, c, null), f.return = b, a.return = b, f.sibling = a, b.child = f, b.child.memoizedState = oj(c), b.memoizedState = nj, a) : rj(b, g);
|
||
}
|
||
e = a.memoizedState;
|
||
if (null !== e && (h = e.dehydrated, null !== h)) return sj(a, b, g, d, h, e, c);
|
||
if (f) {
|
||
f = d.fallback;
|
||
g = b.mode;
|
||
e = a.child;
|
||
h = e.sibling;
|
||
var k = {
|
||
mode: "hidden",
|
||
children: d.children
|
||
};
|
||
0 === (g & 1) && b.child !== e ? (d = b.child, d.childLanes = 0, d.pendingProps = k, b.deletions = null) : (d = wh(e, k), d.subtreeFlags = e.subtreeFlags & 14680064);
|
||
null !== h ? f = wh(h, f) : (f = Ah(f, g, c, null), f.flags |= 2);
|
||
f.return = b;
|
||
d.return = b;
|
||
d.sibling = f;
|
||
b.child = d;
|
||
d = f;
|
||
f = b.child;
|
||
g = a.child.memoizedState;
|
||
g = null === g ? oj(c) : {
|
||
baseLanes: g.baseLanes | c,
|
||
cachePool: null,
|
||
transitions: g.transitions
|
||
};
|
||
f.memoizedState = g;
|
||
f.childLanes = a.childLanes & ~c;
|
||
b.memoizedState = nj;
|
||
return d;
|
||
}
|
||
f = a.child;
|
||
a = f.sibling;
|
||
d = wh(f, {
|
||
mode: "visible",
|
||
children: d.children
|
||
});
|
||
0 === (b.mode & 1) && (d.lanes = c);
|
||
d.return = b;
|
||
d.sibling = null;
|
||
null !== a && (c = b.deletions, null === c ? (b.deletions = [a], b.flags |= 16) : c.push(a));
|
||
b.child = d;
|
||
b.memoizedState = null;
|
||
return d;
|
||
}
|
||
function rj(a, b) {
|
||
b = qj({
|
||
mode: "visible",
|
||
children: b
|
||
}, a.mode, 0, null);
|
||
b.return = a;
|
||
return a.child = b;
|
||
}
|
||
function tj(a, b, c, d) {
|
||
null !== d && Jg(d);
|
||
Bh(b, a.child, null, c);
|
||
a = rj(b, b.pendingProps.children);
|
||
a.flags |= 2;
|
||
b.memoizedState = null;
|
||
return a;
|
||
}
|
||
function sj(a, b, c, d, e, f, g) {
|
||
if (c) {
|
||
if (b.flags & 256) return b.flags &= -257, d = Li(Error(p(422))), tj(a, b, g, d);
|
||
if (null !== b.memoizedState) return b.child = a.child, b.flags |= 128, null;
|
||
f = d.fallback;
|
||
e = b.mode;
|
||
d = qj({
|
||
mode: "visible",
|
||
children: d.children
|
||
}, e, 0, null);
|
||
f = Ah(f, e, g, null);
|
||
f.flags |= 2;
|
||
d.return = b;
|
||
f.return = b;
|
||
d.sibling = f;
|
||
b.child = d;
|
||
0 !== (b.mode & 1) && Bh(b, a.child, null, g);
|
||
b.child.memoizedState = oj(g);
|
||
b.memoizedState = nj;
|
||
return f;
|
||
}
|
||
if (0 === (b.mode & 1)) return tj(a, b, g, null);
|
||
if ("$!" === e.data) {
|
||
d = e.nextSibling && e.nextSibling.dataset;
|
||
if (d) var h = d.dgst;
|
||
d = h;
|
||
f = Error(p(419));
|
||
d = Li(f, d, void 0);
|
||
return tj(a, b, g, d);
|
||
}
|
||
h = 0 !== (g & a.childLanes);
|
||
if (Ug || h) {
|
||
d = R;
|
||
if (null !== d) {
|
||
switch (g & -g) {
|
||
case 4:
|
||
e = 2;
|
||
break;
|
||
case 16:
|
||
e = 8;
|
||
break;
|
||
case 64:
|
||
case 128:
|
||
case 256:
|
||
case 512:
|
||
case 1024:
|
||
case 2048:
|
||
case 4096:
|
||
case 8192:
|
||
case 16384:
|
||
case 32768:
|
||
case 65536:
|
||
case 131072:
|
||
case 262144:
|
||
case 524288:
|
||
case 1048576:
|
||
case 2097152:
|
||
case 4194304:
|
||
case 8388608:
|
||
case 16777216:
|
||
case 33554432:
|
||
case 67108864:
|
||
e = 32;
|
||
break;
|
||
case 536870912:
|
||
e = 268435456;
|
||
break;
|
||
default:
|
||
e = 0;
|
||
}
|
||
e = 0 !== (e & (d.suspendedLanes | g)) ? 0 : e;
|
||
0 !== e && e !== f.retryLane && (f.retryLane = e, Zg(a, e), mh(d, a, e, -1));
|
||
}
|
||
uj();
|
||
d = Li(Error(p(421)));
|
||
return tj(a, b, g, d);
|
||
}
|
||
if ("$?" === e.data) return b.flags |= 128, b.child = a.child, b = vj.bind(null, a), e._reactRetry = b, null;
|
||
a = f.treeContext;
|
||
yg = Lf(e.nextSibling);
|
||
xg = b;
|
||
I = !0;
|
||
zg = null;
|
||
null !== a && (og[pg++] = rg, og[pg++] = sg, og[pg++] = qg, rg = a.id, sg = a.overflow, qg = b);
|
||
b = rj(b, d.children);
|
||
b.flags |= 4096;
|
||
return b;
|
||
}
|
||
function wj(a, b, c) {
|
||
a.lanes |= b;
|
||
var d = a.alternate;
|
||
null !== d && (d.lanes |= b);
|
||
Sg(a.return, b, c);
|
||
}
|
||
function xj(a, b, c, d, e) {
|
||
var f = a.memoizedState;
|
||
null === f ? a.memoizedState = {
|
||
isBackwards: b,
|
||
rendering: null,
|
||
renderingStartTime: 0,
|
||
last: d,
|
||
tail: c,
|
||
tailMode: e
|
||
} : (f.isBackwards = b, f.rendering = null, f.renderingStartTime = 0, f.last = d, f.tail = c, f.tailMode = e);
|
||
}
|
||
function yj(a, b, c) {
|
||
var d = b.pendingProps,
|
||
e = d.revealOrder,
|
||
f = d.tail;
|
||
Yi(a, b, d.children, c);
|
||
d = M.current;
|
||
if (0 !== (d & 2)) d = d & 1 | 2, b.flags |= 128;else {
|
||
if (null !== a && 0 !== (a.flags & 128)) a: for (a = b.child; null !== a;) {
|
||
if (13 === a.tag) null !== a.memoizedState && wj(a, c, b);else if (19 === a.tag) wj(a, c, b);else if (null !== a.child) {
|
||
a.child.return = a;
|
||
a = a.child;
|
||
continue;
|
||
}
|
||
if (a === b) break a;
|
||
for (; null === a.sibling;) {
|
||
if (null === a.return || a.return === b) break a;
|
||
a = a.return;
|
||
}
|
||
a.sibling.return = a.return;
|
||
a = a.sibling;
|
||
}
|
||
d &= 1;
|
||
}
|
||
G(M, d);
|
||
if (0 === (b.mode & 1)) b.memoizedState = null;else switch (e) {
|
||
case "forwards":
|
||
c = b.child;
|
||
for (e = null; null !== c;) a = c.alternate, null !== a && null === Mh(a) && (e = c), c = c.sibling;
|
||
c = e;
|
||
null === c ? (e = b.child, b.child = null) : (e = c.sibling, c.sibling = null);
|
||
xj(b, !1, e, c, f);
|
||
break;
|
||
case "backwards":
|
||
c = null;
|
||
e = b.child;
|
||
for (b.child = null; null !== e;) {
|
||
a = e.alternate;
|
||
if (null !== a && null === Mh(a)) {
|
||
b.child = e;
|
||
break;
|
||
}
|
||
a = e.sibling;
|
||
e.sibling = c;
|
||
c = e;
|
||
e = a;
|
||
}
|
||
xj(b, !0, c, null, f);
|
||
break;
|
||
case "together":
|
||
xj(b, !1, null, null, void 0);
|
||
break;
|
||
default:
|
||
b.memoizedState = null;
|
||
}
|
||
return b.child;
|
||
}
|
||
function jj(a, b) {
|
||
0 === (b.mode & 1) && null !== a && (a.alternate = null, b.alternate = null, b.flags |= 2);
|
||
}
|
||
function $i(a, b, c) {
|
||
null !== a && (b.dependencies = a.dependencies);
|
||
hh |= b.lanes;
|
||
if (0 === (c & b.childLanes)) return null;
|
||
if (null !== a && b.child !== a.child) throw Error(p(153));
|
||
if (null !== b.child) {
|
||
a = b.child;
|
||
c = wh(a, a.pendingProps);
|
||
b.child = c;
|
||
for (c.return = b; null !== a.sibling;) a = a.sibling, c = c.sibling = wh(a, a.pendingProps), c.return = b;
|
||
c.sibling = null;
|
||
}
|
||
return b.child;
|
||
}
|
||
function zj(a, b, c) {
|
||
switch (b.tag) {
|
||
case 3:
|
||
lj(b);
|
||
Ig();
|
||
break;
|
||
case 5:
|
||
Kh(b);
|
||
break;
|
||
case 1:
|
||
Zf(b.type) && cg(b);
|
||
break;
|
||
case 4:
|
||
Ih(b, b.stateNode.containerInfo);
|
||
break;
|
||
case 10:
|
||
var d = b.type._context,
|
||
e = b.memoizedProps.value;
|
||
G(Mg, d._currentValue);
|
||
d._currentValue = e;
|
||
break;
|
||
case 13:
|
||
d = b.memoizedState;
|
||
if (null !== d) {
|
||
if (null !== d.dehydrated) return G(M, M.current & 1), b.flags |= 128, null;
|
||
if (0 !== (c & b.child.childLanes)) return pj(a, b, c);
|
||
G(M, M.current & 1);
|
||
a = $i(a, b, c);
|
||
return null !== a ? a.sibling : null;
|
||
}
|
||
G(M, M.current & 1);
|
||
break;
|
||
case 19:
|
||
d = 0 !== (c & b.childLanes);
|
||
if (0 !== (a.flags & 128)) {
|
||
if (d) return yj(a, b, c);
|
||
b.flags |= 128;
|
||
}
|
||
e = b.memoizedState;
|
||
null !== e && (e.rendering = null, e.tail = null, e.lastEffect = null);
|
||
G(M, M.current);
|
||
if (d) break;else return null;
|
||
case 22:
|
||
case 23:
|
||
return b.lanes = 0, ej(a, b, c);
|
||
}
|
||
return $i(a, b, c);
|
||
}
|
||
var Aj, Bj, Cj, Dj;
|
||
Aj = function Aj(a, b) {
|
||
for (var c = b.child; null !== c;) {
|
||
if (5 === c.tag || 6 === c.tag) a.appendChild(c.stateNode);else if (4 !== c.tag && null !== c.child) {
|
||
c.child.return = c;
|
||
c = c.child;
|
||
continue;
|
||
}
|
||
if (c === b) break;
|
||
for (; null === c.sibling;) {
|
||
if (null === c.return || c.return === b) return;
|
||
c = c.return;
|
||
}
|
||
c.sibling.return = c.return;
|
||
c = c.sibling;
|
||
}
|
||
};
|
||
Bj = function Bj() {};
|
||
Cj = function Cj(a, b, c, d) {
|
||
var e = a.memoizedProps;
|
||
if (e !== d) {
|
||
a = b.stateNode;
|
||
Hh(Eh.current);
|
||
var f = null;
|
||
switch (c) {
|
||
case "input":
|
||
e = Ya(a, e);
|
||
d = Ya(a, d);
|
||
f = [];
|
||
break;
|
||
case "select":
|
||
e = A({}, e, {
|
||
value: void 0
|
||
});
|
||
d = A({}, d, {
|
||
value: void 0
|
||
});
|
||
f = [];
|
||
break;
|
||
case "textarea":
|
||
e = gb(a, e);
|
||
d = gb(a, d);
|
||
f = [];
|
||
break;
|
||
default:
|
||
"function" !== typeof e.onClick && "function" === typeof d.onClick && (a.onclick = Bf);
|
||
}
|
||
ub(c, d);
|
||
var g;
|
||
c = null;
|
||
for (l in e) if (!d.hasOwnProperty(l) && e.hasOwnProperty(l) && null != e[l]) if ("style" === l) {
|
||
var h = e[l];
|
||
for (g in h) h.hasOwnProperty(g) && (c || (c = {}), c[g] = "");
|
||
} else "dangerouslySetInnerHTML" !== l && "children" !== l && "suppressContentEditableWarning" !== l && "suppressHydrationWarning" !== l && "autoFocus" !== l && (ea.hasOwnProperty(l) ? f || (f = []) : (f = f || []).push(l, null));
|
||
for (l in d) {
|
||
var k = d[l];
|
||
h = null != e ? e[l] : void 0;
|
||
if (d.hasOwnProperty(l) && k !== h && (null != k || null != h)) if ("style" === l) {
|
||
if (h) {
|
||
for (g in h) !h.hasOwnProperty(g) || k && k.hasOwnProperty(g) || (c || (c = {}), c[g] = "");
|
||
for (g in k) k.hasOwnProperty(g) && h[g] !== k[g] && (c || (c = {}), c[g] = k[g]);
|
||
} else c || (f || (f = []), f.push(l, c)), c = k;
|
||
} else "dangerouslySetInnerHTML" === l ? (k = k ? k.__html : void 0, h = h ? h.__html : void 0, null != k && h !== k && (f = f || []).push(l, k)) : "children" === l ? "string" !== typeof k && "number" !== typeof k || (f = f || []).push(l, "" + k) : "suppressContentEditableWarning" !== l && "suppressHydrationWarning" !== l && (ea.hasOwnProperty(l) ? (null != k && "onScroll" === l && D("scroll", a), f || h === k || (f = [])) : (f = f || []).push(l, k));
|
||
}
|
||
c && (f = f || []).push("style", c);
|
||
var l = f;
|
||
if (b.updateQueue = l) b.flags |= 4;
|
||
}
|
||
};
|
||
Dj = function Dj(a, b, c, d) {
|
||
c !== d && (b.flags |= 4);
|
||
};
|
||
function Ej(a, b) {
|
||
if (!I) switch (a.tailMode) {
|
||
case "hidden":
|
||
b = a.tail;
|
||
for (var c = null; null !== b;) null !== b.alternate && (c = b), b = b.sibling;
|
||
null === c ? a.tail = null : c.sibling = null;
|
||
break;
|
||
case "collapsed":
|
||
c = a.tail;
|
||
for (var d = null; null !== c;) null !== c.alternate && (d = c), c = c.sibling;
|
||
null === d ? b || null === a.tail ? a.tail = null : a.tail.sibling = null : d.sibling = null;
|
||
}
|
||
}
|
||
function S(a) {
|
||
var b = null !== a.alternate && a.alternate.child === a.child,
|
||
c = 0,
|
||
d = 0;
|
||
if (b) for (var e = a.child; null !== e;) c |= e.lanes | e.childLanes, d |= e.subtreeFlags & 14680064, d |= e.flags & 14680064, e.return = a, e = e.sibling;else for (e = a.child; null !== e;) c |= e.lanes | e.childLanes, d |= e.subtreeFlags, d |= e.flags, e.return = a, e = e.sibling;
|
||
a.subtreeFlags |= d;
|
||
a.childLanes = c;
|
||
return b;
|
||
}
|
||
function Fj(a, b, c) {
|
||
var d = b.pendingProps;
|
||
wg(b);
|
||
switch (b.tag) {
|
||
case 2:
|
||
case 16:
|
||
case 15:
|
||
case 0:
|
||
case 11:
|
||
case 7:
|
||
case 8:
|
||
case 12:
|
||
case 9:
|
||
case 14:
|
||
return S(b), null;
|
||
case 1:
|
||
return Zf(b.type) && $f(), S(b), null;
|
||
case 3:
|
||
d = b.stateNode;
|
||
Jh();
|
||
E(Wf);
|
||
E(H);
|
||
Oh();
|
||
d.pendingContext && (d.context = d.pendingContext, d.pendingContext = null);
|
||
if (null === a || null === a.child) Gg(b) ? b.flags |= 4 : null === a || a.memoizedState.isDehydrated && 0 === (b.flags & 256) || (b.flags |= 1024, null !== zg && (Gj(zg), zg = null));
|
||
Bj(a, b);
|
||
S(b);
|
||
return null;
|
||
case 5:
|
||
Lh(b);
|
||
var e = Hh(Gh.current);
|
||
c = b.type;
|
||
if (null !== a && null != b.stateNode) Cj(a, b, c, d, e), a.ref !== b.ref && (b.flags |= 512, b.flags |= 2097152);else {
|
||
if (!d) {
|
||
if (null === b.stateNode) throw Error(p(166));
|
||
S(b);
|
||
return null;
|
||
}
|
||
a = Hh(Eh.current);
|
||
if (Gg(b)) {
|
||
d = b.stateNode;
|
||
c = b.type;
|
||
var f = b.memoizedProps;
|
||
d[Of] = b;
|
||
d[Pf] = f;
|
||
a = 0 !== (b.mode & 1);
|
||
switch (c) {
|
||
case "dialog":
|
||
D("cancel", d);
|
||
D("close", d);
|
||
break;
|
||
case "iframe":
|
||
case "object":
|
||
case "embed":
|
||
D("load", d);
|
||
break;
|
||
case "video":
|
||
case "audio":
|
||
for (e = 0; e < lf.length; e++) D(lf[e], d);
|
||
break;
|
||
case "source":
|
||
D("error", d);
|
||
break;
|
||
case "img":
|
||
case "image":
|
||
case "link":
|
||
D("error", d);
|
||
D("load", d);
|
||
break;
|
||
case "details":
|
||
D("toggle", d);
|
||
break;
|
||
case "input":
|
||
Za(d, f);
|
||
D("invalid", d);
|
||
break;
|
||
case "select":
|
||
d._wrapperState = {
|
||
wasMultiple: !!f.multiple
|
||
};
|
||
D("invalid", d);
|
||
break;
|
||
case "textarea":
|
||
hb(d, f), D("invalid", d);
|
||
}
|
||
ub(c, f);
|
||
e = null;
|
||
for (var g in f) if (f.hasOwnProperty(g)) {
|
||
var h = f[g];
|
||
"children" === g ? "string" === typeof h ? d.textContent !== h && (!0 !== f.suppressHydrationWarning && Af(d.textContent, h, a), e = ["children", h]) : "number" === typeof h && d.textContent !== "" + h && (!0 !== f.suppressHydrationWarning && Af(d.textContent, h, a), e = ["children", "" + h]) : ea.hasOwnProperty(g) && null != h && "onScroll" === g && D("scroll", d);
|
||
}
|
||
switch (c) {
|
||
case "input":
|
||
Va(d);
|
||
db(d, f, !0);
|
||
break;
|
||
case "textarea":
|
||
Va(d);
|
||
jb(d);
|
||
break;
|
||
case "select":
|
||
case "option":
|
||
break;
|
||
default:
|
||
"function" === typeof f.onClick && (d.onclick = Bf);
|
||
}
|
||
d = e;
|
||
b.updateQueue = d;
|
||
null !== d && (b.flags |= 4);
|
||
} else {
|
||
g = 9 === e.nodeType ? e : e.ownerDocument;
|
||
"http://www.w3.org/1999/xhtml" === a && (a = kb(c));
|
||
"http://www.w3.org/1999/xhtml" === a ? "script" === c ? (a = g.createElement("div"), a.innerHTML = "<script>\x3c/script>", a = a.removeChild(a.firstChild)) : "string" === typeof d.is ? a = g.createElement(c, {
|
||
is: d.is
|
||
}) : (a = g.createElement(c), "select" === c && (g = a, d.multiple ? g.multiple = !0 : d.size && (g.size = d.size))) : a = g.createElementNS(a, c);
|
||
a[Of] = b;
|
||
a[Pf] = d;
|
||
Aj(a, b, !1, !1);
|
||
b.stateNode = a;
|
||
a: {
|
||
g = vb(c, d);
|
||
switch (c) {
|
||
case "dialog":
|
||
D("cancel", a);
|
||
D("close", a);
|
||
e = d;
|
||
break;
|
||
case "iframe":
|
||
case "object":
|
||
case "embed":
|
||
D("load", a);
|
||
e = d;
|
||
break;
|
||
case "video":
|
||
case "audio":
|
||
for (e = 0; e < lf.length; e++) D(lf[e], a);
|
||
e = d;
|
||
break;
|
||
case "source":
|
||
D("error", a);
|
||
e = d;
|
||
break;
|
||
case "img":
|
||
case "image":
|
||
case "link":
|
||
D("error", a);
|
||
D("load", a);
|
||
e = d;
|
||
break;
|
||
case "details":
|
||
D("toggle", a);
|
||
e = d;
|
||
break;
|
||
case "input":
|
||
Za(a, d);
|
||
e = Ya(a, d);
|
||
D("invalid", a);
|
||
break;
|
||
case "option":
|
||
e = d;
|
||
break;
|
||
case "select":
|
||
a._wrapperState = {
|
||
wasMultiple: !!d.multiple
|
||
};
|
||
e = A({}, d, {
|
||
value: void 0
|
||
});
|
||
D("invalid", a);
|
||
break;
|
||
case "textarea":
|
||
hb(a, d);
|
||
e = gb(a, d);
|
||
D("invalid", a);
|
||
break;
|
||
default:
|
||
e = d;
|
||
}
|
||
ub(c, e);
|
||
h = e;
|
||
for (f in h) if (h.hasOwnProperty(f)) {
|
||
var k = h[f];
|
||
"style" === f ? sb(a, k) : "dangerouslySetInnerHTML" === f ? (k = k ? k.__html : void 0, null != k && nb(a, k)) : "children" === f ? "string" === typeof k ? ("textarea" !== c || "" !== k) && ob(a, k) : "number" === typeof k && ob(a, "" + k) : "suppressContentEditableWarning" !== f && "suppressHydrationWarning" !== f && "autoFocus" !== f && (ea.hasOwnProperty(f) ? null != k && "onScroll" === f && D("scroll", a) : null != k && ta(a, f, k, g));
|
||
}
|
||
switch (c) {
|
||
case "input":
|
||
Va(a);
|
||
db(a, d, !1);
|
||
break;
|
||
case "textarea":
|
||
Va(a);
|
||
jb(a);
|
||
break;
|
||
case "option":
|
||
null != d.value && a.setAttribute("value", "" + Sa(d.value));
|
||
break;
|
||
case "select":
|
||
a.multiple = !!d.multiple;
|
||
f = d.value;
|
||
null != f ? fb(a, !!d.multiple, f, !1) : null != d.defaultValue && fb(a, !!d.multiple, d.defaultValue, !0);
|
||
break;
|
||
default:
|
||
"function" === typeof e.onClick && (a.onclick = Bf);
|
||
}
|
||
switch (c) {
|
||
case "button":
|
||
case "input":
|
||
case "select":
|
||
case "textarea":
|
||
d = !!d.autoFocus;
|
||
break a;
|
||
case "img":
|
||
d = !0;
|
||
break a;
|
||
default:
|
||
d = !1;
|
||
}
|
||
}
|
||
d && (b.flags |= 4);
|
||
}
|
||
null !== b.ref && (b.flags |= 512, b.flags |= 2097152);
|
||
}
|
||
S(b);
|
||
return null;
|
||
case 6:
|
||
if (a && null != b.stateNode) Dj(a, b, a.memoizedProps, d);else {
|
||
if ("string" !== typeof d && null === b.stateNode) throw Error(p(166));
|
||
c = Hh(Gh.current);
|
||
Hh(Eh.current);
|
||
if (Gg(b)) {
|
||
d = b.stateNode;
|
||
c = b.memoizedProps;
|
||
d[Of] = b;
|
||
if (f = d.nodeValue !== c) if (a = xg, null !== a) switch (a.tag) {
|
||
case 3:
|
||
Af(d.nodeValue, c, 0 !== (a.mode & 1));
|
||
break;
|
||
case 5:
|
||
!0 !== a.memoizedProps.suppressHydrationWarning && Af(d.nodeValue, c, 0 !== (a.mode & 1));
|
||
}
|
||
f && (b.flags |= 4);
|
||
} else d = (9 === c.nodeType ? c : c.ownerDocument).createTextNode(d), d[Of] = b, b.stateNode = d;
|
||
}
|
||
S(b);
|
||
return null;
|
||
case 13:
|
||
E(M);
|
||
d = b.memoizedState;
|
||
if (null === a || null !== a.memoizedState && null !== a.memoizedState.dehydrated) {
|
||
if (I && null !== yg && 0 !== (b.mode & 1) && 0 === (b.flags & 128)) Hg(), Ig(), b.flags |= 98560, f = !1;else if (f = Gg(b), null !== d && null !== d.dehydrated) {
|
||
if (null === a) {
|
||
if (!f) throw Error(p(318));
|
||
f = b.memoizedState;
|
||
f = null !== f ? f.dehydrated : null;
|
||
if (!f) throw Error(p(317));
|
||
f[Of] = b;
|
||
} else Ig(), 0 === (b.flags & 128) && (b.memoizedState = null), b.flags |= 4;
|
||
S(b);
|
||
f = !1;
|
||
} else null !== zg && (Gj(zg), zg = null), f = !0;
|
||
if (!f) return b.flags & 65536 ? b : null;
|
||
}
|
||
if (0 !== (b.flags & 128)) return b.lanes = c, b;
|
||
d = null !== d;
|
||
d !== (null !== a && null !== a.memoizedState) && d && (b.child.flags |= 8192, 0 !== (b.mode & 1) && (null === a || 0 !== (M.current & 1) ? 0 === T && (T = 3) : uj()));
|
||
null !== b.updateQueue && (b.flags |= 4);
|
||
S(b);
|
||
return null;
|
||
case 4:
|
||
return Jh(), Bj(a, b), null === a && sf(b.stateNode.containerInfo), S(b), null;
|
||
case 10:
|
||
return Rg(b.type._context), S(b), null;
|
||
case 17:
|
||
return Zf(b.type) && $f(), S(b), null;
|
||
case 19:
|
||
E(M);
|
||
f = b.memoizedState;
|
||
if (null === f) return S(b), null;
|
||
d = 0 !== (b.flags & 128);
|
||
g = f.rendering;
|
||
if (null === g) {
|
||
if (d) Ej(f, !1);else {
|
||
if (0 !== T || null !== a && 0 !== (a.flags & 128)) for (a = b.child; null !== a;) {
|
||
g = Mh(a);
|
||
if (null !== g) {
|
||
b.flags |= 128;
|
||
Ej(f, !1);
|
||
d = g.updateQueue;
|
||
null !== d && (b.updateQueue = d, b.flags |= 4);
|
||
b.subtreeFlags = 0;
|
||
d = c;
|
||
for (c = b.child; null !== c;) f = c, a = d, f.flags &= 14680066, g = f.alternate, null === g ? (f.childLanes = 0, f.lanes = a, f.child = null, f.subtreeFlags = 0, f.memoizedProps = null, f.memoizedState = null, f.updateQueue = null, f.dependencies = null, f.stateNode = null) : (f.childLanes = g.childLanes, f.lanes = g.lanes, f.child = g.child, f.subtreeFlags = 0, f.deletions = null, f.memoizedProps = g.memoizedProps, f.memoizedState = g.memoizedState, f.updateQueue = g.updateQueue, f.type = g.type, a = g.dependencies, f.dependencies = null === a ? null : {
|
||
lanes: a.lanes,
|
||
firstContext: a.firstContext
|
||
}), c = c.sibling;
|
||
G(M, M.current & 1 | 2);
|
||
return b.child;
|
||
}
|
||
a = a.sibling;
|
||
}
|
||
null !== f.tail && B() > Hj && (b.flags |= 128, d = !0, Ej(f, !1), b.lanes = 4194304);
|
||
}
|
||
} else {
|
||
if (!d) if (a = Mh(g), null !== a) {
|
||
if (b.flags |= 128, d = !0, c = a.updateQueue, null !== c && (b.updateQueue = c, b.flags |= 4), Ej(f, !0), null === f.tail && "hidden" === f.tailMode && !g.alternate && !I) return S(b), null;
|
||
} else 2 * B() - f.renderingStartTime > Hj && 1073741824 !== c && (b.flags |= 128, d = !0, Ej(f, !1), b.lanes = 4194304);
|
||
f.isBackwards ? (g.sibling = b.child, b.child = g) : (c = f.last, null !== c ? c.sibling = g : b.child = g, f.last = g);
|
||
}
|
||
if (null !== f.tail) return b = f.tail, f.rendering = b, f.tail = b.sibling, f.renderingStartTime = B(), b.sibling = null, c = M.current, G(M, d ? c & 1 | 2 : c & 1), b;
|
||
S(b);
|
||
return null;
|
||
case 22:
|
||
case 23:
|
||
return Ij(), d = null !== b.memoizedState, null !== a && null !== a.memoizedState !== d && (b.flags |= 8192), d && 0 !== (b.mode & 1) ? 0 !== (gj & 1073741824) && (S(b), b.subtreeFlags & 6 && (b.flags |= 8192)) : S(b), null;
|
||
case 24:
|
||
return null;
|
||
case 25:
|
||
return null;
|
||
}
|
||
throw Error(p(156, b.tag));
|
||
}
|
||
function Jj(a, b) {
|
||
wg(b);
|
||
switch (b.tag) {
|
||
case 1:
|
||
return Zf(b.type) && $f(), a = b.flags, a & 65536 ? (b.flags = a & -65537 | 128, b) : null;
|
||
case 3:
|
||
return Jh(), E(Wf), E(H), Oh(), a = b.flags, 0 !== (a & 65536) && 0 === (a & 128) ? (b.flags = a & -65537 | 128, b) : null;
|
||
case 5:
|
||
return Lh(b), null;
|
||
case 13:
|
||
E(M);
|
||
a = b.memoizedState;
|
||
if (null !== a && null !== a.dehydrated) {
|
||
if (null === b.alternate) throw Error(p(340));
|
||
Ig();
|
||
}
|
||
a = b.flags;
|
||
return a & 65536 ? (b.flags = a & -65537 | 128, b) : null;
|
||
case 19:
|
||
return E(M), null;
|
||
case 4:
|
||
return Jh(), null;
|
||
case 10:
|
||
return Rg(b.type._context), null;
|
||
case 22:
|
||
case 23:
|
||
return Ij(), null;
|
||
case 24:
|
||
return null;
|
||
default:
|
||
return null;
|
||
}
|
||
}
|
||
var Kj = !1,
|
||
U = !1,
|
||
Lj = "function" === typeof WeakSet ? WeakSet : Set,
|
||
V = null;
|
||
function Mj(a, b) {
|
||
var c = a.ref;
|
||
if (null !== c) if ("function" === typeof c) try {
|
||
c(null);
|
||
} catch (d) {
|
||
W(a, b, d);
|
||
} else c.current = null;
|
||
}
|
||
function Nj(a, b, c) {
|
||
try {
|
||
c();
|
||
} catch (d) {
|
||
W(a, b, d);
|
||
}
|
||
}
|
||
var Oj = !1;
|
||
function Pj(a, b) {
|
||
Cf = dd;
|
||
a = Me();
|
||
if (Ne(a)) {
|
||
if ("selectionStart" in a) var c = {
|
||
start: a.selectionStart,
|
||
end: a.selectionEnd
|
||
};else a: {
|
||
c = (c = a.ownerDocument) && c.defaultView || window;
|
||
var d = c.getSelection && c.getSelection();
|
||
if (d && 0 !== d.rangeCount) {
|
||
c = d.anchorNode;
|
||
var e = d.anchorOffset,
|
||
f = d.focusNode;
|
||
d = d.focusOffset;
|
||
try {
|
||
c.nodeType, f.nodeType;
|
||
} catch (F) {
|
||
c = null;
|
||
break a;
|
||
}
|
||
var g = 0,
|
||
h = -1,
|
||
k = -1,
|
||
l = 0,
|
||
m = 0,
|
||
q = a,
|
||
r = null;
|
||
b: for (;;) {
|
||
for (var y;;) {
|
||
q !== c || 0 !== e && 3 !== q.nodeType || (h = g + e);
|
||
q !== f || 0 !== d && 3 !== q.nodeType || (k = g + d);
|
||
3 === q.nodeType && (g += q.nodeValue.length);
|
||
if (null === (y = q.firstChild)) break;
|
||
r = q;
|
||
q = y;
|
||
}
|
||
for (;;) {
|
||
if (q === a) break b;
|
||
r === c && ++l === e && (h = g);
|
||
r === f && ++m === d && (k = g);
|
||
if (null !== (y = q.nextSibling)) break;
|
||
q = r;
|
||
r = q.parentNode;
|
||
}
|
||
q = y;
|
||
}
|
||
c = -1 === h || -1 === k ? null : {
|
||
start: h,
|
||
end: k
|
||
};
|
||
} else c = null;
|
||
}
|
||
c = c || {
|
||
start: 0,
|
||
end: 0
|
||
};
|
||
} else c = null;
|
||
Df = {
|
||
focusedElem: a,
|
||
selectionRange: c
|
||
};
|
||
dd = !1;
|
||
for (V = b; null !== V;) if (b = V, a = b.child, 0 !== (b.subtreeFlags & 1028) && null !== a) a.return = b, V = a;else for (; null !== V;) {
|
||
b = V;
|
||
try {
|
||
var n = b.alternate;
|
||
if (0 !== (b.flags & 1024)) switch (b.tag) {
|
||
case 0:
|
||
case 11:
|
||
case 15:
|
||
break;
|
||
case 1:
|
||
if (null !== n) {
|
||
var t = n.memoizedProps,
|
||
J = n.memoizedState,
|
||
x = b.stateNode,
|
||
w = x.getSnapshotBeforeUpdate(b.elementType === b.type ? t : Lg(b.type, t), J);
|
||
x.__reactInternalSnapshotBeforeUpdate = w;
|
||
}
|
||
break;
|
||
case 3:
|
||
var u = b.stateNode.containerInfo;
|
||
1 === u.nodeType ? u.textContent = "" : 9 === u.nodeType && u.documentElement && u.removeChild(u.documentElement);
|
||
break;
|
||
case 5:
|
||
case 6:
|
||
case 4:
|
||
case 17:
|
||
break;
|
||
default:
|
||
throw Error(p(163));
|
||
}
|
||
} catch (F) {
|
||
W(b, b.return, F);
|
||
}
|
||
a = b.sibling;
|
||
if (null !== a) {
|
||
a.return = b.return;
|
||
V = a;
|
||
break;
|
||
}
|
||
V = b.return;
|
||
}
|
||
n = Oj;
|
||
Oj = !1;
|
||
return n;
|
||
}
|
||
function Qj(a, b, c) {
|
||
var d = b.updateQueue;
|
||
d = null !== d ? d.lastEffect : null;
|
||
if (null !== d) {
|
||
var e = d = d.next;
|
||
do {
|
||
if ((e.tag & a) === a) {
|
||
var f = e.destroy;
|
||
e.destroy = void 0;
|
||
void 0 !== f && Nj(b, c, f);
|
||
}
|
||
e = e.next;
|
||
} while (e !== d);
|
||
}
|
||
}
|
||
function Rj(a, b) {
|
||
b = b.updateQueue;
|
||
b = null !== b ? b.lastEffect : null;
|
||
if (null !== b) {
|
||
var c = b = b.next;
|
||
do {
|
||
if ((c.tag & a) === a) {
|
||
var d = c.create;
|
||
c.destroy = d();
|
||
}
|
||
c = c.next;
|
||
} while (c !== b);
|
||
}
|
||
}
|
||
function Sj(a) {
|
||
var b = a.ref;
|
||
if (null !== b) {
|
||
var c = a.stateNode;
|
||
switch (a.tag) {
|
||
case 5:
|
||
a = c;
|
||
break;
|
||
default:
|
||
a = c;
|
||
}
|
||
"function" === typeof b ? b(a) : b.current = a;
|
||
}
|
||
}
|
||
function Tj(a) {
|
||
var b = a.alternate;
|
||
null !== b && (a.alternate = null, Tj(b));
|
||
a.child = null;
|
||
a.deletions = null;
|
||
a.sibling = null;
|
||
5 === a.tag && (b = a.stateNode, null !== b && (delete b[Of], delete b[Pf], delete b[of], delete b[Qf], delete b[Rf]));
|
||
a.stateNode = null;
|
||
a.return = null;
|
||
a.dependencies = null;
|
||
a.memoizedProps = null;
|
||
a.memoizedState = null;
|
||
a.pendingProps = null;
|
||
a.stateNode = null;
|
||
a.updateQueue = null;
|
||
}
|
||
function Uj(a) {
|
||
return 5 === a.tag || 3 === a.tag || 4 === a.tag;
|
||
}
|
||
function Vj(a) {
|
||
a: for (;;) {
|
||
for (; null === a.sibling;) {
|
||
if (null === a.return || Uj(a.return)) return null;
|
||
a = a.return;
|
||
}
|
||
a.sibling.return = a.return;
|
||
for (a = a.sibling; 5 !== a.tag && 6 !== a.tag && 18 !== a.tag;) {
|
||
if (a.flags & 2) continue a;
|
||
if (null === a.child || 4 === a.tag) continue a;else a.child.return = a, a = a.child;
|
||
}
|
||
if (!(a.flags & 2)) return a.stateNode;
|
||
}
|
||
}
|
||
function Wj(a, b, c) {
|
||
var d = a.tag;
|
||
if (5 === d || 6 === d) a = a.stateNode, b ? 8 === c.nodeType ? c.parentNode.insertBefore(a, b) : c.insertBefore(a, b) : (8 === c.nodeType ? (b = c.parentNode, b.insertBefore(a, c)) : (b = c, b.appendChild(a)), c = c._reactRootContainer, null !== c && void 0 !== c || null !== b.onclick || (b.onclick = Bf));else if (4 !== d && (a = a.child, null !== a)) for (Wj(a, b, c), a = a.sibling; null !== a;) Wj(a, b, c), a = a.sibling;
|
||
}
|
||
function Xj(a, b, c) {
|
||
var d = a.tag;
|
||
if (5 === d || 6 === d) a = a.stateNode, b ? c.insertBefore(a, b) : c.appendChild(a);else if (4 !== d && (a = a.child, null !== a)) for (Xj(a, b, c), a = a.sibling; null !== a;) Xj(a, b, c), a = a.sibling;
|
||
}
|
||
var X = null,
|
||
Yj = !1;
|
||
function Zj(a, b, c) {
|
||
for (c = c.child; null !== c;) ak(a, b, c), c = c.sibling;
|
||
}
|
||
function ak(a, b, c) {
|
||
if (lc && "function" === typeof lc.onCommitFiberUnmount) try {
|
||
lc.onCommitFiberUnmount(kc, c);
|
||
} catch (h) {}
|
||
switch (c.tag) {
|
||
case 5:
|
||
U || Mj(c, b);
|
||
case 6:
|
||
var d = X,
|
||
e = Yj;
|
||
X = null;
|
||
Zj(a, b, c);
|
||
X = d;
|
||
Yj = e;
|
||
null !== X && (Yj ? (a = X, c = c.stateNode, 8 === a.nodeType ? a.parentNode.removeChild(c) : a.removeChild(c)) : X.removeChild(c.stateNode));
|
||
break;
|
||
case 18:
|
||
null !== X && (Yj ? (a = X, c = c.stateNode, 8 === a.nodeType ? Kf(a.parentNode, c) : 1 === a.nodeType && Kf(a, c), bd(a)) : Kf(X, c.stateNode));
|
||
break;
|
||
case 4:
|
||
d = X;
|
||
e = Yj;
|
||
X = c.stateNode.containerInfo;
|
||
Yj = !0;
|
||
Zj(a, b, c);
|
||
X = d;
|
||
Yj = e;
|
||
break;
|
||
case 0:
|
||
case 11:
|
||
case 14:
|
||
case 15:
|
||
if (!U && (d = c.updateQueue, null !== d && (d = d.lastEffect, null !== d))) {
|
||
e = d = d.next;
|
||
do {
|
||
var f = e,
|
||
g = f.destroy;
|
||
f = f.tag;
|
||
void 0 !== g && (0 !== (f & 2) ? Nj(c, b, g) : 0 !== (f & 4) && Nj(c, b, g));
|
||
e = e.next;
|
||
} while (e !== d);
|
||
}
|
||
Zj(a, b, c);
|
||
break;
|
||
case 1:
|
||
if (!U && (Mj(c, b), d = c.stateNode, "function" === typeof d.componentWillUnmount)) try {
|
||
d.props = c.memoizedProps, d.state = c.memoizedState, d.componentWillUnmount();
|
||
} catch (h) {
|
||
W(c, b, h);
|
||
}
|
||
Zj(a, b, c);
|
||
break;
|
||
case 21:
|
||
Zj(a, b, c);
|
||
break;
|
||
case 22:
|
||
c.mode & 1 ? (U = (d = U) || null !== c.memoizedState, Zj(a, b, c), U = d) : Zj(a, b, c);
|
||
break;
|
||
default:
|
||
Zj(a, b, c);
|
||
}
|
||
}
|
||
function bk(a) {
|
||
var b = a.updateQueue;
|
||
if (null !== b) {
|
||
a.updateQueue = null;
|
||
var c = a.stateNode;
|
||
null === c && (c = a.stateNode = new Lj());
|
||
b.forEach(function (b) {
|
||
var d = ck.bind(null, a, b);
|
||
c.has(b) || (c.add(b), b.then(d, d));
|
||
});
|
||
}
|
||
}
|
||
function dk(a, b) {
|
||
var c = b.deletions;
|
||
if (null !== c) for (var d = 0; d < c.length; d++) {
|
||
var e = c[d];
|
||
try {
|
||
var f = a,
|
||
g = b,
|
||
h = g;
|
||
a: for (; null !== h;) {
|
||
switch (h.tag) {
|
||
case 5:
|
||
X = h.stateNode;
|
||
Yj = !1;
|
||
break a;
|
||
case 3:
|
||
X = h.stateNode.containerInfo;
|
||
Yj = !0;
|
||
break a;
|
||
case 4:
|
||
X = h.stateNode.containerInfo;
|
||
Yj = !0;
|
||
break a;
|
||
}
|
||
h = h.return;
|
||
}
|
||
if (null === X) throw Error(p(160));
|
||
ak(f, g, e);
|
||
X = null;
|
||
Yj = !1;
|
||
var k = e.alternate;
|
||
null !== k && (k.return = null);
|
||
e.return = null;
|
||
} catch (l) {
|
||
W(e, b, l);
|
||
}
|
||
}
|
||
if (b.subtreeFlags & 12854) for (b = b.child; null !== b;) ek(b, a), b = b.sibling;
|
||
}
|
||
function ek(a, b) {
|
||
var c = a.alternate,
|
||
d = a.flags;
|
||
switch (a.tag) {
|
||
case 0:
|
||
case 11:
|
||
case 14:
|
||
case 15:
|
||
dk(b, a);
|
||
fk(a);
|
||
if (d & 4) {
|
||
try {
|
||
Qj(3, a, a.return), Rj(3, a);
|
||
} catch (t) {
|
||
W(a, a.return, t);
|
||
}
|
||
try {
|
||
Qj(5, a, a.return);
|
||
} catch (t) {
|
||
W(a, a.return, t);
|
||
}
|
||
}
|
||
break;
|
||
case 1:
|
||
dk(b, a);
|
||
fk(a);
|
||
d & 512 && null !== c && Mj(c, c.return);
|
||
break;
|
||
case 5:
|
||
dk(b, a);
|
||
fk(a);
|
||
d & 512 && null !== c && Mj(c, c.return);
|
||
if (a.flags & 32) {
|
||
var e = a.stateNode;
|
||
try {
|
||
ob(e, "");
|
||
} catch (t) {
|
||
W(a, a.return, t);
|
||
}
|
||
}
|
||
if (d & 4 && (e = a.stateNode, null != e)) {
|
||
var f = a.memoizedProps,
|
||
g = null !== c ? c.memoizedProps : f,
|
||
h = a.type,
|
||
k = a.updateQueue;
|
||
a.updateQueue = null;
|
||
if (null !== k) try {
|
||
"input" === h && "radio" === f.type && null != f.name && ab(e, f);
|
||
vb(h, g);
|
||
var l = vb(h, f);
|
||
for (g = 0; g < k.length; g += 2) {
|
||
var m = k[g],
|
||
q = k[g + 1];
|
||
"style" === m ? sb(e, q) : "dangerouslySetInnerHTML" === m ? nb(e, q) : "children" === m ? ob(e, q) : ta(e, m, q, l);
|
||
}
|
||
switch (h) {
|
||
case "input":
|
||
bb(e, f);
|
||
break;
|
||
case "textarea":
|
||
ib(e, f);
|
||
break;
|
||
case "select":
|
||
var r = e._wrapperState.wasMultiple;
|
||
e._wrapperState.wasMultiple = !!f.multiple;
|
||
var y = f.value;
|
||
null != y ? fb(e, !!f.multiple, y, !1) : r !== !!f.multiple && (null != f.defaultValue ? fb(e, !!f.multiple, f.defaultValue, !0) : fb(e, !!f.multiple, f.multiple ? [] : "", !1));
|
||
}
|
||
e[Pf] = f;
|
||
} catch (t) {
|
||
W(a, a.return, t);
|
||
}
|
||
}
|
||
break;
|
||
case 6:
|
||
dk(b, a);
|
||
fk(a);
|
||
if (d & 4) {
|
||
if (null === a.stateNode) throw Error(p(162));
|
||
e = a.stateNode;
|
||
f = a.memoizedProps;
|
||
try {
|
||
e.nodeValue = f;
|
||
} catch (t) {
|
||
W(a, a.return, t);
|
||
}
|
||
}
|
||
break;
|
||
case 3:
|
||
dk(b, a);
|
||
fk(a);
|
||
if (d & 4 && null !== c && c.memoizedState.isDehydrated) try {
|
||
bd(b.containerInfo);
|
||
} catch (t) {
|
||
W(a, a.return, t);
|
||
}
|
||
break;
|
||
case 4:
|
||
dk(b, a);
|
||
fk(a);
|
||
break;
|
||
case 13:
|
||
dk(b, a);
|
||
fk(a);
|
||
e = a.child;
|
||
e.flags & 8192 && (f = null !== e.memoizedState, e.stateNode.isHidden = f, !f || null !== e.alternate && null !== e.alternate.memoizedState || (gk = B()));
|
||
d & 4 && bk(a);
|
||
break;
|
||
case 22:
|
||
m = null !== c && null !== c.memoizedState;
|
||
a.mode & 1 ? (U = (l = U) || m, dk(b, a), U = l) : dk(b, a);
|
||
fk(a);
|
||
if (d & 8192) {
|
||
l = null !== a.memoizedState;
|
||
if ((a.stateNode.isHidden = l) && !m && 0 !== (a.mode & 1)) for (V = a, m = a.child; null !== m;) {
|
||
for (q = V = m; null !== V;) {
|
||
r = V;
|
||
y = r.child;
|
||
switch (r.tag) {
|
||
case 0:
|
||
case 11:
|
||
case 14:
|
||
case 15:
|
||
Qj(4, r, r.return);
|
||
break;
|
||
case 1:
|
||
Mj(r, r.return);
|
||
var n = r.stateNode;
|
||
if ("function" === typeof n.componentWillUnmount) {
|
||
d = r;
|
||
c = r.return;
|
||
try {
|
||
b = d, n.props = b.memoizedProps, n.state = b.memoizedState, n.componentWillUnmount();
|
||
} catch (t) {
|
||
W(d, c, t);
|
||
}
|
||
}
|
||
break;
|
||
case 5:
|
||
Mj(r, r.return);
|
||
break;
|
||
case 22:
|
||
if (null !== r.memoizedState) {
|
||
hk(q);
|
||
continue;
|
||
}
|
||
}
|
||
null !== y ? (y.return = r, V = y) : hk(q);
|
||
}
|
||
m = m.sibling;
|
||
}
|
||
a: for (m = null, q = a;;) {
|
||
if (5 === q.tag) {
|
||
if (null === m) {
|
||
m = q;
|
||
try {
|
||
e = q.stateNode, l ? (f = e.style, "function" === typeof f.setProperty ? f.setProperty("display", "none", "important") : f.display = "none") : (h = q.stateNode, k = q.memoizedProps.style, g = void 0 !== k && null !== k && k.hasOwnProperty("display") ? k.display : null, h.style.display = rb("display", g));
|
||
} catch (t) {
|
||
W(a, a.return, t);
|
||
}
|
||
}
|
||
} else if (6 === q.tag) {
|
||
if (null === m) try {
|
||
q.stateNode.nodeValue = l ? "" : q.memoizedProps;
|
||
} catch (t) {
|
||
W(a, a.return, t);
|
||
}
|
||
} else if ((22 !== q.tag && 23 !== q.tag || null === q.memoizedState || q === a) && null !== q.child) {
|
||
q.child.return = q;
|
||
q = q.child;
|
||
continue;
|
||
}
|
||
if (q === a) break a;
|
||
for (; null === q.sibling;) {
|
||
if (null === q.return || q.return === a) break a;
|
||
m === q && (m = null);
|
||
q = q.return;
|
||
}
|
||
m === q && (m = null);
|
||
q.sibling.return = q.return;
|
||
q = q.sibling;
|
||
}
|
||
}
|
||
break;
|
||
case 19:
|
||
dk(b, a);
|
||
fk(a);
|
||
d & 4 && bk(a);
|
||
break;
|
||
case 21:
|
||
break;
|
||
default:
|
||
dk(b, a), fk(a);
|
||
}
|
||
}
|
||
function fk(a) {
|
||
var b = a.flags;
|
||
if (b & 2) {
|
||
try {
|
||
a: {
|
||
for (var c = a.return; null !== c;) {
|
||
if (Uj(c)) {
|
||
var d = c;
|
||
break a;
|
||
}
|
||
c = c.return;
|
||
}
|
||
throw Error(p(160));
|
||
}
|
||
switch (d.tag) {
|
||
case 5:
|
||
var e = d.stateNode;
|
||
d.flags & 32 && (ob(e, ""), d.flags &= -33);
|
||
var f = Vj(a);
|
||
Xj(a, f, e);
|
||
break;
|
||
case 3:
|
||
case 4:
|
||
var g = d.stateNode.containerInfo,
|
||
h = Vj(a);
|
||
Wj(a, h, g);
|
||
break;
|
||
default:
|
||
throw Error(p(161));
|
||
}
|
||
} catch (k) {
|
||
W(a, a.return, k);
|
||
}
|
||
a.flags &= -3;
|
||
}
|
||
b & 4096 && (a.flags &= -4097);
|
||
}
|
||
function ik(a, b, c) {
|
||
V = a;
|
||
jk(a, b, c);
|
||
}
|
||
function jk(a, b, c) {
|
||
for (var d = 0 !== (a.mode & 1); null !== V;) {
|
||
var e = V,
|
||
f = e.child;
|
||
if (22 === e.tag && d) {
|
||
var g = null !== e.memoizedState || Kj;
|
||
if (!g) {
|
||
var h = e.alternate,
|
||
k = null !== h && null !== h.memoizedState || U;
|
||
h = Kj;
|
||
var l = U;
|
||
Kj = g;
|
||
if ((U = k) && !l) for (V = e; null !== V;) g = V, k = g.child, 22 === g.tag && null !== g.memoizedState ? kk(e) : null !== k ? (k.return = g, V = k) : kk(e);
|
||
for (; null !== f;) V = f, jk(f, b, c), f = f.sibling;
|
||
V = e;
|
||
Kj = h;
|
||
U = l;
|
||
}
|
||
lk(a, b, c);
|
||
} else 0 !== (e.subtreeFlags & 8772) && null !== f ? (f.return = e, V = f) : lk(a, b, c);
|
||
}
|
||
}
|
||
function lk(a) {
|
||
for (; null !== V;) {
|
||
var b = V;
|
||
if (0 !== (b.flags & 8772)) {
|
||
var c = b.alternate;
|
||
try {
|
||
if (0 !== (b.flags & 8772)) switch (b.tag) {
|
||
case 0:
|
||
case 11:
|
||
case 15:
|
||
U || Rj(5, b);
|
||
break;
|
||
case 1:
|
||
var d = b.stateNode;
|
||
if (b.flags & 4 && !U) if (null === c) d.componentDidMount();else {
|
||
var e = b.elementType === b.type ? c.memoizedProps : Lg(b.type, c.memoizedProps);
|
||
d.componentDidUpdate(e, c.memoizedState, d.__reactInternalSnapshotBeforeUpdate);
|
||
}
|
||
var f = b.updateQueue;
|
||
null !== f && ih(b, f, d);
|
||
break;
|
||
case 3:
|
||
var g = b.updateQueue;
|
||
if (null !== g) {
|
||
c = null;
|
||
if (null !== b.child) switch (b.child.tag) {
|
||
case 5:
|
||
c = b.child.stateNode;
|
||
break;
|
||
case 1:
|
||
c = b.child.stateNode;
|
||
}
|
||
ih(b, g, c);
|
||
}
|
||
break;
|
||
case 5:
|
||
var h = b.stateNode;
|
||
if (null === c && b.flags & 4) {
|
||
c = h;
|
||
var k = b.memoizedProps;
|
||
switch (b.type) {
|
||
case "button":
|
||
case "input":
|
||
case "select":
|
||
case "textarea":
|
||
k.autoFocus && c.focus();
|
||
break;
|
||
case "img":
|
||
k.src && (c.src = k.src);
|
||
}
|
||
}
|
||
break;
|
||
case 6:
|
||
break;
|
||
case 4:
|
||
break;
|
||
case 12:
|
||
break;
|
||
case 13:
|
||
if (null === b.memoizedState) {
|
||
var l = b.alternate;
|
||
if (null !== l) {
|
||
var m = l.memoizedState;
|
||
if (null !== m) {
|
||
var q = m.dehydrated;
|
||
null !== q && bd(q);
|
||
}
|
||
}
|
||
}
|
||
break;
|
||
case 19:
|
||
case 17:
|
||
case 21:
|
||
case 22:
|
||
case 23:
|
||
case 25:
|
||
break;
|
||
default:
|
||
throw Error(p(163));
|
||
}
|
||
U || b.flags & 512 && Sj(b);
|
||
} catch (r) {
|
||
W(b, b.return, r);
|
||
}
|
||
}
|
||
if (b === a) {
|
||
V = null;
|
||
break;
|
||
}
|
||
c = b.sibling;
|
||
if (null !== c) {
|
||
c.return = b.return;
|
||
V = c;
|
||
break;
|
||
}
|
||
V = b.return;
|
||
}
|
||
}
|
||
function hk(a) {
|
||
for (; null !== V;) {
|
||
var b = V;
|
||
if (b === a) {
|
||
V = null;
|
||
break;
|
||
}
|
||
var c = b.sibling;
|
||
if (null !== c) {
|
||
c.return = b.return;
|
||
V = c;
|
||
break;
|
||
}
|
||
V = b.return;
|
||
}
|
||
}
|
||
function kk(a) {
|
||
for (; null !== V;) {
|
||
var b = V;
|
||
try {
|
||
switch (b.tag) {
|
||
case 0:
|
||
case 11:
|
||
case 15:
|
||
var c = b.return;
|
||
try {
|
||
Rj(4, b);
|
||
} catch (k) {
|
||
W(b, c, k);
|
||
}
|
||
break;
|
||
case 1:
|
||
var d = b.stateNode;
|
||
if ("function" === typeof d.componentDidMount) {
|
||
var e = b.return;
|
||
try {
|
||
d.componentDidMount();
|
||
} catch (k) {
|
||
W(b, e, k);
|
||
}
|
||
}
|
||
var f = b.return;
|
||
try {
|
||
Sj(b);
|
||
} catch (k) {
|
||
W(b, f, k);
|
||
}
|
||
break;
|
||
case 5:
|
||
var g = b.return;
|
||
try {
|
||
Sj(b);
|
||
} catch (k) {
|
||
W(b, g, k);
|
||
}
|
||
}
|
||
} catch (k) {
|
||
W(b, b.return, k);
|
||
}
|
||
if (b === a) {
|
||
V = null;
|
||
break;
|
||
}
|
||
var h = b.sibling;
|
||
if (null !== h) {
|
||
h.return = b.return;
|
||
V = h;
|
||
break;
|
||
}
|
||
V = b.return;
|
||
}
|
||
}
|
||
var mk = Math.ceil,
|
||
nk = ua.ReactCurrentDispatcher,
|
||
ok = ua.ReactCurrentOwner,
|
||
pk = ua.ReactCurrentBatchConfig,
|
||
K = 0,
|
||
R = null,
|
||
Y = null,
|
||
Z = 0,
|
||
gj = 0,
|
||
fj = Uf(0),
|
||
T = 0,
|
||
qk = null,
|
||
hh = 0,
|
||
rk = 0,
|
||
sk = 0,
|
||
tk = null,
|
||
uk = null,
|
||
gk = 0,
|
||
Hj = Infinity,
|
||
vk = null,
|
||
Pi = !1,
|
||
Qi = null,
|
||
Si = null,
|
||
wk = !1,
|
||
xk = null,
|
||
yk = 0,
|
||
zk = 0,
|
||
Ak = null,
|
||
Bk = -1,
|
||
Ck = 0;
|
||
function L() {
|
||
return 0 !== (K & 6) ? B() : -1 !== Bk ? Bk : Bk = B();
|
||
}
|
||
function lh(a) {
|
||
if (0 === (a.mode & 1)) return 1;
|
||
if (0 !== (K & 2) && 0 !== Z) return Z & -Z;
|
||
if (null !== Kg.transition) return 0 === Ck && (Ck = yc()), Ck;
|
||
a = C;
|
||
if (0 !== a) return a;
|
||
a = window.event;
|
||
a = void 0 === a ? 16 : jd(a.type);
|
||
return a;
|
||
}
|
||
function mh(a, b, c, d) {
|
||
if (50 < zk) throw zk = 0, Ak = null, Error(p(185));
|
||
Ac(a, c, d);
|
||
if (0 === (K & 2) || a !== R) a === R && (0 === (K & 2) && (rk |= c), 4 === T && Dk(a, Z)), Ek(a, d), 1 === c && 0 === K && 0 === (b.mode & 1) && (Hj = B() + 500, fg && jg());
|
||
}
|
||
function Ek(a, b) {
|
||
var c = a.callbackNode;
|
||
wc(a, b);
|
||
var d = uc(a, a === R ? Z : 0);
|
||
if (0 === d) null !== c && bc(c), a.callbackNode = null, a.callbackPriority = 0;else if (b = d & -d, a.callbackPriority !== b) {
|
||
null != c && bc(c);
|
||
if (1 === b) 0 === a.tag ? ig(Fk.bind(null, a)) : hg(Fk.bind(null, a)), Jf(function () {
|
||
0 === (K & 6) && jg();
|
||
}), c = null;else {
|
||
switch (Dc(d)) {
|
||
case 1:
|
||
c = fc;
|
||
break;
|
||
case 4:
|
||
c = gc;
|
||
break;
|
||
case 16:
|
||
c = hc;
|
||
break;
|
||
case 536870912:
|
||
c = jc;
|
||
break;
|
||
default:
|
||
c = hc;
|
||
}
|
||
c = Gk(c, Hk.bind(null, a));
|
||
}
|
||
a.callbackPriority = b;
|
||
a.callbackNode = c;
|
||
}
|
||
}
|
||
function Hk(a, b) {
|
||
Bk = -1;
|
||
Ck = 0;
|
||
if (0 !== (K & 6)) throw Error(p(327));
|
||
var c = a.callbackNode;
|
||
if (Ik() && a.callbackNode !== c) return null;
|
||
var d = uc(a, a === R ? Z : 0);
|
||
if (0 === d) return null;
|
||
if (0 !== (d & 30) || 0 !== (d & a.expiredLanes) || b) b = Jk(a, d);else {
|
||
b = d;
|
||
var e = K;
|
||
K |= 2;
|
||
var f = Kk();
|
||
if (R !== a || Z !== b) vk = null, Hj = B() + 500, Lk(a, b);
|
||
do try {
|
||
Mk();
|
||
break;
|
||
} catch (h) {
|
||
Nk(a, h);
|
||
} while (1);
|
||
Qg();
|
||
nk.current = f;
|
||
K = e;
|
||
null !== Y ? b = 0 : (R = null, Z = 0, b = T);
|
||
}
|
||
if (0 !== b) {
|
||
2 === b && (e = xc(a), 0 !== e && (d = e, b = Ok(a, e)));
|
||
if (1 === b) throw c = qk, Lk(a, 0), Dk(a, d), Ek(a, B()), c;
|
||
if (6 === b) Dk(a, d);else {
|
||
e = a.current.alternate;
|
||
if (0 === (d & 30) && !Pk(e) && (b = Jk(a, d), 2 === b && (f = xc(a), 0 !== f && (d = f, b = Ok(a, f))), 1 === b)) throw c = qk, Lk(a, 0), Dk(a, d), Ek(a, B()), c;
|
||
a.finishedWork = e;
|
||
a.finishedLanes = d;
|
||
switch (b) {
|
||
case 0:
|
||
case 1:
|
||
throw Error(p(345));
|
||
case 2:
|
||
Qk(a, uk, vk);
|
||
break;
|
||
case 3:
|
||
Dk(a, d);
|
||
if ((d & 130023424) === d && (b = gk + 500 - B(), 10 < b)) {
|
||
if (0 !== uc(a, 0)) break;
|
||
e = a.suspendedLanes;
|
||
if ((e & d) !== d) {
|
||
L();
|
||
a.pingedLanes |= a.suspendedLanes & e;
|
||
break;
|
||
}
|
||
a.timeoutHandle = Ff(Qk.bind(null, a, uk, vk), b);
|
||
break;
|
||
}
|
||
Qk(a, uk, vk);
|
||
break;
|
||
case 4:
|
||
Dk(a, d);
|
||
if ((d & 4194240) === d) break;
|
||
b = a.eventTimes;
|
||
for (e = -1; 0 < d;) {
|
||
var g = 31 - oc(d);
|
||
f = 1 << g;
|
||
g = b[g];
|
||
g > e && (e = g);
|
||
d &= ~f;
|
||
}
|
||
d = e;
|
||
d = B() - d;
|
||
d = (120 > d ? 120 : 480 > d ? 480 : 1080 > d ? 1080 : 1920 > d ? 1920 : 3E3 > d ? 3E3 : 4320 > d ? 4320 : 1960 * mk(d / 1960)) - d;
|
||
if (10 < d) {
|
||
a.timeoutHandle = Ff(Qk.bind(null, a, uk, vk), d);
|
||
break;
|
||
}
|
||
Qk(a, uk, vk);
|
||
break;
|
||
case 5:
|
||
Qk(a, uk, vk);
|
||
break;
|
||
default:
|
||
throw Error(p(329));
|
||
}
|
||
}
|
||
}
|
||
Ek(a, B());
|
||
return a.callbackNode === c ? Hk.bind(null, a) : null;
|
||
}
|
||
function Ok(a, b) {
|
||
var c = tk;
|
||
a.current.memoizedState.isDehydrated && (Lk(a, b).flags |= 256);
|
||
a = Jk(a, b);
|
||
2 !== a && (b = uk, uk = c, null !== b && Gj(b));
|
||
return a;
|
||
}
|
||
function Gj(a) {
|
||
null === uk ? uk = a : uk.push.apply(uk, a);
|
||
}
|
||
function Pk(a) {
|
||
for (var b = a;;) {
|
||
if (b.flags & 16384) {
|
||
var c = b.updateQueue;
|
||
if (null !== c && (c = c.stores, null !== c)) for (var d = 0; d < c.length; d++) {
|
||
var e = c[d],
|
||
f = e.getSnapshot;
|
||
e = e.value;
|
||
try {
|
||
if (!He(f(), e)) return !1;
|
||
} catch (g) {
|
||
return !1;
|
||
}
|
||
}
|
||
}
|
||
c = b.child;
|
||
if (b.subtreeFlags & 16384 && null !== c) c.return = b, b = c;else {
|
||
if (b === a) break;
|
||
for (; null === b.sibling;) {
|
||
if (null === b.return || b.return === a) return !0;
|
||
b = b.return;
|
||
}
|
||
b.sibling.return = b.return;
|
||
b = b.sibling;
|
||
}
|
||
}
|
||
return !0;
|
||
}
|
||
function Dk(a, b) {
|
||
b &= ~sk;
|
||
b &= ~rk;
|
||
a.suspendedLanes |= b;
|
||
a.pingedLanes &= ~b;
|
||
for (a = a.expirationTimes; 0 < b;) {
|
||
var c = 31 - oc(b),
|
||
d = 1 << c;
|
||
a[c] = -1;
|
||
b &= ~d;
|
||
}
|
||
}
|
||
function Fk(a) {
|
||
if (0 !== (K & 6)) throw Error(p(327));
|
||
Ik();
|
||
var b = uc(a, 0);
|
||
if (0 === (b & 1)) return Ek(a, B()), null;
|
||
var c = Jk(a, b);
|
||
if (0 !== a.tag && 2 === c) {
|
||
var d = xc(a);
|
||
0 !== d && (b = d, c = Ok(a, d));
|
||
}
|
||
if (1 === c) throw c = qk, Lk(a, 0), Dk(a, b), Ek(a, B()), c;
|
||
if (6 === c) throw Error(p(345));
|
||
a.finishedWork = a.current.alternate;
|
||
a.finishedLanes = b;
|
||
Qk(a, uk, vk);
|
||
Ek(a, B());
|
||
return null;
|
||
}
|
||
function Rk(a, b) {
|
||
var c = K;
|
||
K |= 1;
|
||
try {
|
||
return a(b);
|
||
} finally {
|
||
K = c, 0 === K && (Hj = B() + 500, fg && jg());
|
||
}
|
||
}
|
||
function Sk(a) {
|
||
null !== xk && 0 === xk.tag && 0 === (K & 6) && Ik();
|
||
var b = K;
|
||
K |= 1;
|
||
var c = pk.transition,
|
||
d = C;
|
||
try {
|
||
if (pk.transition = null, C = 1, a) return a();
|
||
} finally {
|
||
C = d, pk.transition = c, K = b, 0 === (K & 6) && jg();
|
||
}
|
||
}
|
||
function Ij() {
|
||
gj = fj.current;
|
||
E(fj);
|
||
}
|
||
function Lk(a, b) {
|
||
a.finishedWork = null;
|
||
a.finishedLanes = 0;
|
||
var c = a.timeoutHandle;
|
||
-1 !== c && (a.timeoutHandle = -1, Gf(c));
|
||
if (null !== Y) for (c = Y.return; null !== c;) {
|
||
var d = c;
|
||
wg(d);
|
||
switch (d.tag) {
|
||
case 1:
|
||
d = d.type.childContextTypes;
|
||
null !== d && void 0 !== d && $f();
|
||
break;
|
||
case 3:
|
||
Jh();
|
||
E(Wf);
|
||
E(H);
|
||
Oh();
|
||
break;
|
||
case 5:
|
||
Lh(d);
|
||
break;
|
||
case 4:
|
||
Jh();
|
||
break;
|
||
case 13:
|
||
E(M);
|
||
break;
|
||
case 19:
|
||
E(M);
|
||
break;
|
||
case 10:
|
||
Rg(d.type._context);
|
||
break;
|
||
case 22:
|
||
case 23:
|
||
Ij();
|
||
}
|
||
c = c.return;
|
||
}
|
||
R = a;
|
||
Y = a = wh(a.current, null);
|
||
Z = gj = b;
|
||
T = 0;
|
||
qk = null;
|
||
sk = rk = hh = 0;
|
||
uk = tk = null;
|
||
if (null !== Wg) {
|
||
for (b = 0; b < Wg.length; b++) if (c = Wg[b], d = c.interleaved, null !== d) {
|
||
c.interleaved = null;
|
||
var e = d.next,
|
||
f = c.pending;
|
||
if (null !== f) {
|
||
var g = f.next;
|
||
f.next = e;
|
||
d.next = g;
|
||
}
|
||
c.pending = d;
|
||
}
|
||
Wg = null;
|
||
}
|
||
return a;
|
||
}
|
||
function Nk(a, b) {
|
||
do {
|
||
var c = Y;
|
||
try {
|
||
Qg();
|
||
Ph.current = ai;
|
||
if (Sh) {
|
||
for (var d = N.memoizedState; null !== d;) {
|
||
var e = d.queue;
|
||
null !== e && (e.pending = null);
|
||
d = d.next;
|
||
}
|
||
Sh = !1;
|
||
}
|
||
Rh = 0;
|
||
P = O = N = null;
|
||
Th = !1;
|
||
Uh = 0;
|
||
ok.current = null;
|
||
if (null === c || null === c.return) {
|
||
T = 1;
|
||
qk = b;
|
||
Y = null;
|
||
break;
|
||
}
|
||
a: {
|
||
var f = a,
|
||
g = c.return,
|
||
h = c,
|
||
k = b;
|
||
b = Z;
|
||
h.flags |= 32768;
|
||
if (null !== k && "object" === typeof k && "function" === typeof k.then) {
|
||
var l = k,
|
||
m = h,
|
||
q = m.tag;
|
||
if (0 === (m.mode & 1) && (0 === q || 11 === q || 15 === q)) {
|
||
var r = m.alternate;
|
||
r ? (m.updateQueue = r.updateQueue, m.memoizedState = r.memoizedState, m.lanes = r.lanes) : (m.updateQueue = null, m.memoizedState = null);
|
||
}
|
||
var y = Vi(g);
|
||
if (null !== y) {
|
||
y.flags &= -257;
|
||
Wi(y, g, h, f, b);
|
||
y.mode & 1 && Ti(f, l, b);
|
||
b = y;
|
||
k = l;
|
||
var n = b.updateQueue;
|
||
if (null === n) {
|
||
var t = new Set();
|
||
t.add(k);
|
||
b.updateQueue = t;
|
||
} else n.add(k);
|
||
break a;
|
||
} else {
|
||
if (0 === (b & 1)) {
|
||
Ti(f, l, b);
|
||
uj();
|
||
break a;
|
||
}
|
||
k = Error(p(426));
|
||
}
|
||
} else if (I && h.mode & 1) {
|
||
var J = Vi(g);
|
||
if (null !== J) {
|
||
0 === (J.flags & 65536) && (J.flags |= 256);
|
||
Wi(J, g, h, f, b);
|
||
Jg(Ki(k, h));
|
||
break a;
|
||
}
|
||
}
|
||
f = k = Ki(k, h);
|
||
4 !== T && (T = 2);
|
||
null === tk ? tk = [f] : tk.push(f);
|
||
f = g;
|
||
do {
|
||
switch (f.tag) {
|
||
case 3:
|
||
f.flags |= 65536;
|
||
b &= -b;
|
||
f.lanes |= b;
|
||
var x = Oi(f, k, b);
|
||
fh(f, x);
|
||
break a;
|
||
case 1:
|
||
h = k;
|
||
var w = f.type,
|
||
u = f.stateNode;
|
||
if (0 === (f.flags & 128) && ("function" === typeof w.getDerivedStateFromError || null !== u && "function" === typeof u.componentDidCatch && (null === Si || !Si.has(u)))) {
|
||
f.flags |= 65536;
|
||
b &= -b;
|
||
f.lanes |= b;
|
||
var F = Ri(f, h, b);
|
||
fh(f, F);
|
||
break a;
|
||
}
|
||
}
|
||
f = f.return;
|
||
} while (null !== f);
|
||
}
|
||
Tk(c);
|
||
} catch (na) {
|
||
b = na;
|
||
Y === c && null !== c && (Y = c = c.return);
|
||
continue;
|
||
}
|
||
break;
|
||
} while (1);
|
||
}
|
||
function Kk() {
|
||
var a = nk.current;
|
||
nk.current = ai;
|
||
return null === a ? ai : a;
|
||
}
|
||
function uj() {
|
||
if (0 === T || 3 === T || 2 === T) T = 4;
|
||
null === R || 0 === (hh & 268435455) && 0 === (rk & 268435455) || Dk(R, Z);
|
||
}
|
||
function Jk(a, b) {
|
||
var c = K;
|
||
K |= 2;
|
||
var d = Kk();
|
||
if (R !== a || Z !== b) vk = null, Lk(a, b);
|
||
do try {
|
||
Uk();
|
||
break;
|
||
} catch (e) {
|
||
Nk(a, e);
|
||
} while (1);
|
||
Qg();
|
||
K = c;
|
||
nk.current = d;
|
||
if (null !== Y) throw Error(p(261));
|
||
R = null;
|
||
Z = 0;
|
||
return T;
|
||
}
|
||
function Uk() {
|
||
for (; null !== Y;) Vk(Y);
|
||
}
|
||
function Mk() {
|
||
for (; null !== Y && !cc();) Vk(Y);
|
||
}
|
||
function Vk(a) {
|
||
var b = Wk(a.alternate, a, gj);
|
||
a.memoizedProps = a.pendingProps;
|
||
null === b ? Tk(a) : Y = b;
|
||
ok.current = null;
|
||
}
|
||
function Tk(a) {
|
||
var b = a;
|
||
do {
|
||
var c = b.alternate;
|
||
a = b.return;
|
||
if (0 === (b.flags & 32768)) {
|
||
if (c = Fj(c, b, gj), null !== c) {
|
||
Y = c;
|
||
return;
|
||
}
|
||
} else {
|
||
c = Jj(c, b);
|
||
if (null !== c) {
|
||
c.flags &= 32767;
|
||
Y = c;
|
||
return;
|
||
}
|
||
if (null !== a) a.flags |= 32768, a.subtreeFlags = 0, a.deletions = null;else {
|
||
T = 6;
|
||
Y = null;
|
||
return;
|
||
}
|
||
}
|
||
b = b.sibling;
|
||
if (null !== b) {
|
||
Y = b;
|
||
return;
|
||
}
|
||
Y = b = a;
|
||
} while (null !== b);
|
||
0 === T && (T = 5);
|
||
}
|
||
function Qk(a, b, c) {
|
||
var d = C,
|
||
e = pk.transition;
|
||
try {
|
||
pk.transition = null, C = 1, Xk(a, b, c, d);
|
||
} finally {
|
||
pk.transition = e, C = d;
|
||
}
|
||
return null;
|
||
}
|
||
function Xk(a, b, c, d) {
|
||
do Ik(); while (null !== xk);
|
||
if (0 !== (K & 6)) throw Error(p(327));
|
||
c = a.finishedWork;
|
||
var e = a.finishedLanes;
|
||
if (null === c) return null;
|
||
a.finishedWork = null;
|
||
a.finishedLanes = 0;
|
||
if (c === a.current) throw Error(p(177));
|
||
a.callbackNode = null;
|
||
a.callbackPriority = 0;
|
||
var f = c.lanes | c.childLanes;
|
||
Bc(a, f);
|
||
a === R && (Y = R = null, Z = 0);
|
||
0 === (c.subtreeFlags & 2064) && 0 === (c.flags & 2064) || wk || (wk = !0, Gk(hc, function () {
|
||
Ik();
|
||
return null;
|
||
}));
|
||
f = 0 !== (c.flags & 15990);
|
||
if (0 !== (c.subtreeFlags & 15990) || f) {
|
||
f = pk.transition;
|
||
pk.transition = null;
|
||
var g = C;
|
||
C = 1;
|
||
var h = K;
|
||
K |= 4;
|
||
ok.current = null;
|
||
Pj(a, c);
|
||
ek(c, a);
|
||
Oe(Df);
|
||
dd = !!Cf;
|
||
Df = Cf = null;
|
||
a.current = c;
|
||
ik(c, a, e);
|
||
dc();
|
||
K = h;
|
||
C = g;
|
||
pk.transition = f;
|
||
} else a.current = c;
|
||
wk && (wk = !1, xk = a, yk = e);
|
||
f = a.pendingLanes;
|
||
0 === f && (Si = null);
|
||
mc(c.stateNode, d);
|
||
Ek(a, B());
|
||
if (null !== b) for (d = a.onRecoverableError, c = 0; c < b.length; c++) e = b[c], d(e.value, {
|
||
componentStack: e.stack,
|
||
digest: e.digest
|
||
});
|
||
if (Pi) throw Pi = !1, a = Qi, Qi = null, a;
|
||
0 !== (yk & 1) && 0 !== a.tag && Ik();
|
||
f = a.pendingLanes;
|
||
0 !== (f & 1) ? a === Ak ? zk++ : (zk = 0, Ak = a) : zk = 0;
|
||
jg();
|
||
return null;
|
||
}
|
||
function Ik() {
|
||
if (null !== xk) {
|
||
var a = Dc(yk),
|
||
b = pk.transition,
|
||
c = C;
|
||
try {
|
||
pk.transition = null;
|
||
C = 16 > a ? 16 : a;
|
||
if (null === xk) var d = !1;else {
|
||
a = xk;
|
||
xk = null;
|
||
yk = 0;
|
||
if (0 !== (K & 6)) throw Error(p(331));
|
||
var e = K;
|
||
K |= 4;
|
||
for (V = a.current; null !== V;) {
|
||
var f = V,
|
||
g = f.child;
|
||
if (0 !== (V.flags & 16)) {
|
||
var h = f.deletions;
|
||
if (null !== h) {
|
||
for (var k = 0; k < h.length; k++) {
|
||
var l = h[k];
|
||
for (V = l; null !== V;) {
|
||
var m = V;
|
||
switch (m.tag) {
|
||
case 0:
|
||
case 11:
|
||
case 15:
|
||
Qj(8, m, f);
|
||
}
|
||
var q = m.child;
|
||
if (null !== q) q.return = m, V = q;else for (; null !== V;) {
|
||
m = V;
|
||
var r = m.sibling,
|
||
y = m.return;
|
||
Tj(m);
|
||
if (m === l) {
|
||
V = null;
|
||
break;
|
||
}
|
||
if (null !== r) {
|
||
r.return = y;
|
||
V = r;
|
||
break;
|
||
}
|
||
V = y;
|
||
}
|
||
}
|
||
}
|
||
var n = f.alternate;
|
||
if (null !== n) {
|
||
var t = n.child;
|
||
if (null !== t) {
|
||
n.child = null;
|
||
do {
|
||
var J = t.sibling;
|
||
t.sibling = null;
|
||
t = J;
|
||
} while (null !== t);
|
||
}
|
||
}
|
||
V = f;
|
||
}
|
||
}
|
||
if (0 !== (f.subtreeFlags & 2064) && null !== g) g.return = f, V = g;else b: for (; null !== V;) {
|
||
f = V;
|
||
if (0 !== (f.flags & 2048)) switch (f.tag) {
|
||
case 0:
|
||
case 11:
|
||
case 15:
|
||
Qj(9, f, f.return);
|
||
}
|
||
var x = f.sibling;
|
||
if (null !== x) {
|
||
x.return = f.return;
|
||
V = x;
|
||
break b;
|
||
}
|
||
V = f.return;
|
||
}
|
||
}
|
||
var w = a.current;
|
||
for (V = w; null !== V;) {
|
||
g = V;
|
||
var u = g.child;
|
||
if (0 !== (g.subtreeFlags & 2064) && null !== u) u.return = g, V = u;else b: for (g = w; null !== V;) {
|
||
h = V;
|
||
if (0 !== (h.flags & 2048)) try {
|
||
switch (h.tag) {
|
||
case 0:
|
||
case 11:
|
||
case 15:
|
||
Rj(9, h);
|
||
}
|
||
} catch (na) {
|
||
W(h, h.return, na);
|
||
}
|
||
if (h === g) {
|
||
V = null;
|
||
break b;
|
||
}
|
||
var F = h.sibling;
|
||
if (null !== F) {
|
||
F.return = h.return;
|
||
V = F;
|
||
break b;
|
||
}
|
||
V = h.return;
|
||
}
|
||
}
|
||
K = e;
|
||
jg();
|
||
if (lc && "function" === typeof lc.onPostCommitFiberRoot) try {
|
||
lc.onPostCommitFiberRoot(kc, a);
|
||
} catch (na) {}
|
||
d = !0;
|
||
}
|
||
return d;
|
||
} finally {
|
||
C = c, pk.transition = b;
|
||
}
|
||
}
|
||
return !1;
|
||
}
|
||
function Yk(a, b, c) {
|
||
b = Ki(c, b);
|
||
b = Oi(a, b, 1);
|
||
a = dh(a, b, 1);
|
||
b = L();
|
||
null !== a && (Ac(a, 1, b), Ek(a, b));
|
||
}
|
||
function W(a, b, c) {
|
||
if (3 === a.tag) Yk(a, a, c);else for (; null !== b;) {
|
||
if (3 === b.tag) {
|
||
Yk(b, a, c);
|
||
break;
|
||
} else if (1 === b.tag) {
|
||
var d = b.stateNode;
|
||
if ("function" === typeof b.type.getDerivedStateFromError || "function" === typeof d.componentDidCatch && (null === Si || !Si.has(d))) {
|
||
a = Ki(c, a);
|
||
a = Ri(b, a, 1);
|
||
b = dh(b, a, 1);
|
||
a = L();
|
||
null !== b && (Ac(b, 1, a), Ek(b, a));
|
||
break;
|
||
}
|
||
}
|
||
b = b.return;
|
||
}
|
||
}
|
||
function Ui(a, b, c) {
|
||
var d = a.pingCache;
|
||
null !== d && d.delete(b);
|
||
b = L();
|
||
a.pingedLanes |= a.suspendedLanes & c;
|
||
R === a && (Z & c) === c && (4 === T || 3 === T && (Z & 130023424) === Z && 500 > B() - gk ? Lk(a, 0) : sk |= c);
|
||
Ek(a, b);
|
||
}
|
||
function Zk(a, b) {
|
||
0 === b && (0 === (a.mode & 1) ? b = 1 : (b = sc, sc <<= 1, 0 === (sc & 130023424) && (sc = 4194304)));
|
||
var c = L();
|
||
a = Zg(a, b);
|
||
null !== a && (Ac(a, b, c), Ek(a, c));
|
||
}
|
||
function vj(a) {
|
||
var b = a.memoizedState,
|
||
c = 0;
|
||
null !== b && (c = b.retryLane);
|
||
Zk(a, c);
|
||
}
|
||
function ck(a, b) {
|
||
var c = 0;
|
||
switch (a.tag) {
|
||
case 13:
|
||
var d = a.stateNode;
|
||
var e = a.memoizedState;
|
||
null !== e && (c = e.retryLane);
|
||
break;
|
||
case 19:
|
||
d = a.stateNode;
|
||
break;
|
||
default:
|
||
throw Error(p(314));
|
||
}
|
||
null !== d && d.delete(b);
|
||
Zk(a, c);
|
||
}
|
||
var Wk;
|
||
Wk = function Wk(a, b, c) {
|
||
if (null !== a) {
|
||
if (a.memoizedProps !== b.pendingProps || Wf.current) Ug = !0;else {
|
||
if (0 === (a.lanes & c) && 0 === (b.flags & 128)) return Ug = !1, zj(a, b, c);
|
||
Ug = 0 !== (a.flags & 131072) ? !0 : !1;
|
||
}
|
||
} else Ug = !1, I && 0 !== (b.flags & 1048576) && ug(b, ng, b.index);
|
||
b.lanes = 0;
|
||
switch (b.tag) {
|
||
case 2:
|
||
var d = b.type;
|
||
jj(a, b);
|
||
a = b.pendingProps;
|
||
var e = Yf(b, H.current);
|
||
Tg(b, c);
|
||
e = Xh(null, b, d, a, e, c);
|
||
var f = bi();
|
||
b.flags |= 1;
|
||
"object" === typeof e && null !== e && "function" === typeof e.render && void 0 === e.$$typeof ? (b.tag = 1, b.memoizedState = null, b.updateQueue = null, Zf(d) ? (f = !0, cg(b)) : f = !1, b.memoizedState = null !== e.state && void 0 !== e.state ? e.state : null, ah(b), e.updater = nh, b.stateNode = e, e._reactInternals = b, rh(b, d, a, c), b = kj(null, b, d, !0, f, c)) : (b.tag = 0, I && f && vg(b), Yi(null, b, e, c), b = b.child);
|
||
return b;
|
||
case 16:
|
||
d = b.elementType;
|
||
a: {
|
||
jj(a, b);
|
||
a = b.pendingProps;
|
||
e = d._init;
|
||
d = e(d._payload);
|
||
b.type = d;
|
||
e = b.tag = $k(d);
|
||
a = Lg(d, a);
|
||
switch (e) {
|
||
case 0:
|
||
b = dj(null, b, d, a, c);
|
||
break a;
|
||
case 1:
|
||
b = ij(null, b, d, a, c);
|
||
break a;
|
||
case 11:
|
||
b = Zi(null, b, d, a, c);
|
||
break a;
|
||
case 14:
|
||
b = aj(null, b, d, Lg(d.type, a), c);
|
||
break a;
|
||
}
|
||
throw Error(p(306, d, ""));
|
||
}
|
||
return b;
|
||
case 0:
|
||
return d = b.type, e = b.pendingProps, e = b.elementType === d ? e : Lg(d, e), dj(a, b, d, e, c);
|
||
case 1:
|
||
return d = b.type, e = b.pendingProps, e = b.elementType === d ? e : Lg(d, e), ij(a, b, d, e, c);
|
||
case 3:
|
||
a: {
|
||
lj(b);
|
||
if (null === a) throw Error(p(387));
|
||
d = b.pendingProps;
|
||
f = b.memoizedState;
|
||
e = f.element;
|
||
bh(a, b);
|
||
gh(b, d, null, c);
|
||
var g = b.memoizedState;
|
||
d = g.element;
|
||
if (f.isDehydrated) {
|
||
if (f = {
|
||
element: d,
|
||
isDehydrated: !1,
|
||
cache: g.cache,
|
||
pendingSuspenseBoundaries: g.pendingSuspenseBoundaries,
|
||
transitions: g.transitions
|
||
}, b.updateQueue.baseState = f, b.memoizedState = f, b.flags & 256) {
|
||
e = Ki(Error(p(423)), b);
|
||
b = mj(a, b, d, c, e);
|
||
break a;
|
||
} else if (d !== e) {
|
||
e = Ki(Error(p(424)), b);
|
||
b = mj(a, b, d, c, e);
|
||
break a;
|
||
} else for (yg = Lf(b.stateNode.containerInfo.firstChild), xg = b, I = !0, zg = null, c = Ch(b, null, d, c), b.child = c; c;) c.flags = c.flags & -3 | 4096, c = c.sibling;
|
||
} else {
|
||
Ig();
|
||
if (d === e) {
|
||
b = $i(a, b, c);
|
||
break a;
|
||
}
|
||
Yi(a, b, d, c);
|
||
}
|
||
b = b.child;
|
||
}
|
||
return b;
|
||
case 5:
|
||
return Kh(b), null === a && Eg(b), d = b.type, e = b.pendingProps, f = null !== a ? a.memoizedProps : null, g = e.children, Ef(d, e) ? g = null : null !== f && Ef(d, f) && (b.flags |= 32), hj(a, b), Yi(a, b, g, c), b.child;
|
||
case 6:
|
||
return null === a && Eg(b), null;
|
||
case 13:
|
||
return pj(a, b, c);
|
||
case 4:
|
||
return Ih(b, b.stateNode.containerInfo), d = b.pendingProps, null === a ? b.child = Bh(b, null, d, c) : Yi(a, b, d, c), b.child;
|
||
case 11:
|
||
return d = b.type, e = b.pendingProps, e = b.elementType === d ? e : Lg(d, e), Zi(a, b, d, e, c);
|
||
case 7:
|
||
return Yi(a, b, b.pendingProps, c), b.child;
|
||
case 8:
|
||
return Yi(a, b, b.pendingProps.children, c), b.child;
|
||
case 12:
|
||
return Yi(a, b, b.pendingProps.children, c), b.child;
|
||
case 10:
|
||
a: {
|
||
d = b.type._context;
|
||
e = b.pendingProps;
|
||
f = b.memoizedProps;
|
||
g = e.value;
|
||
G(Mg, d._currentValue);
|
||
d._currentValue = g;
|
||
if (null !== f) if (He(f.value, g)) {
|
||
if (f.children === e.children && !Wf.current) {
|
||
b = $i(a, b, c);
|
||
break a;
|
||
}
|
||
} else for (f = b.child, null !== f && (f.return = b); null !== f;) {
|
||
var h = f.dependencies;
|
||
if (null !== h) {
|
||
g = f.child;
|
||
for (var k = h.firstContext; null !== k;) {
|
||
if (k.context === d) {
|
||
if (1 === f.tag) {
|
||
k = ch(-1, c & -c);
|
||
k.tag = 2;
|
||
var l = f.updateQueue;
|
||
if (null !== l) {
|
||
l = l.shared;
|
||
var m = l.pending;
|
||
null === m ? k.next = k : (k.next = m.next, m.next = k);
|
||
l.pending = k;
|
||
}
|
||
}
|
||
f.lanes |= c;
|
||
k = f.alternate;
|
||
null !== k && (k.lanes |= c);
|
||
Sg(f.return, c, b);
|
||
h.lanes |= c;
|
||
break;
|
||
}
|
||
k = k.next;
|
||
}
|
||
} else if (10 === f.tag) g = f.type === b.type ? null : f.child;else if (18 === f.tag) {
|
||
g = f.return;
|
||
if (null === g) throw Error(p(341));
|
||
g.lanes |= c;
|
||
h = g.alternate;
|
||
null !== h && (h.lanes |= c);
|
||
Sg(g, c, b);
|
||
g = f.sibling;
|
||
} else g = f.child;
|
||
if (null !== g) g.return = f;else for (g = f; null !== g;) {
|
||
if (g === b) {
|
||
g = null;
|
||
break;
|
||
}
|
||
f = g.sibling;
|
||
if (null !== f) {
|
||
f.return = g.return;
|
||
g = f;
|
||
break;
|
||
}
|
||
g = g.return;
|
||
}
|
||
f = g;
|
||
}
|
||
Yi(a, b, e.children, c);
|
||
b = b.child;
|
||
}
|
||
return b;
|
||
case 9:
|
||
return e = b.type, d = b.pendingProps.children, Tg(b, c), e = Vg(e), d = d(e), b.flags |= 1, Yi(a, b, d, c), b.child;
|
||
case 14:
|
||
return d = b.type, e = Lg(d, b.pendingProps), e = Lg(d.type, e), aj(a, b, d, e, c);
|
||
case 15:
|
||
return cj(a, b, b.type, b.pendingProps, c);
|
||
case 17:
|
||
return d = b.type, e = b.pendingProps, e = b.elementType === d ? e : Lg(d, e), jj(a, b), b.tag = 1, Zf(d) ? (a = !0, cg(b)) : a = !1, Tg(b, c), ph(b, d, e), rh(b, d, e, c), kj(null, b, d, !0, a, c);
|
||
case 19:
|
||
return yj(a, b, c);
|
||
case 22:
|
||
return ej(a, b, c);
|
||
}
|
||
throw Error(p(156, b.tag));
|
||
};
|
||
function Gk(a, b) {
|
||
return ac(a, b);
|
||
}
|
||
function al(a, b, c, d) {
|
||
this.tag = a;
|
||
this.key = c;
|
||
this.sibling = this.child = this.return = this.stateNode = this.type = this.elementType = null;
|
||
this.index = 0;
|
||
this.ref = null;
|
||
this.pendingProps = b;
|
||
this.dependencies = this.memoizedState = this.updateQueue = this.memoizedProps = null;
|
||
this.mode = d;
|
||
this.subtreeFlags = this.flags = 0;
|
||
this.deletions = null;
|
||
this.childLanes = this.lanes = 0;
|
||
this.alternate = null;
|
||
}
|
||
function Bg(a, b, c, d) {
|
||
return new al(a, b, c, d);
|
||
}
|
||
function bj(a) {
|
||
a = a.prototype;
|
||
return !(!a || !a.isReactComponent);
|
||
}
|
||
function $k(a) {
|
||
if ("function" === typeof a) return bj(a) ? 1 : 0;
|
||
if (void 0 !== a && null !== a) {
|
||
a = a.$$typeof;
|
||
if (a === Da) return 11;
|
||
if (a === Ga) return 14;
|
||
}
|
||
return 2;
|
||
}
|
||
function wh(a, b) {
|
||
var c = a.alternate;
|
||
null === c ? (c = Bg(a.tag, b, a.key, a.mode), c.elementType = a.elementType, c.type = a.type, c.stateNode = a.stateNode, c.alternate = a, a.alternate = c) : (c.pendingProps = b, c.type = a.type, c.flags = 0, c.subtreeFlags = 0, c.deletions = null);
|
||
c.flags = a.flags & 14680064;
|
||
c.childLanes = a.childLanes;
|
||
c.lanes = a.lanes;
|
||
c.child = a.child;
|
||
c.memoizedProps = a.memoizedProps;
|
||
c.memoizedState = a.memoizedState;
|
||
c.updateQueue = a.updateQueue;
|
||
b = a.dependencies;
|
||
c.dependencies = null === b ? null : {
|
||
lanes: b.lanes,
|
||
firstContext: b.firstContext
|
||
};
|
||
c.sibling = a.sibling;
|
||
c.index = a.index;
|
||
c.ref = a.ref;
|
||
return c;
|
||
}
|
||
function yh(a, b, c, d, e, f) {
|
||
var g = 2;
|
||
d = a;
|
||
if ("function" === typeof a) bj(a) && (g = 1);else if ("string" === typeof a) g = 5;else a: switch (a) {
|
||
case ya:
|
||
return Ah(c.children, e, f, b);
|
||
case za:
|
||
g = 8;
|
||
e |= 8;
|
||
break;
|
||
case Aa:
|
||
return a = Bg(12, c, b, e | 2), a.elementType = Aa, a.lanes = f, a;
|
||
case Ea:
|
||
return a = Bg(13, c, b, e), a.elementType = Ea, a.lanes = f, a;
|
||
case Fa:
|
||
return a = Bg(19, c, b, e), a.elementType = Fa, a.lanes = f, a;
|
||
case Ia:
|
||
return qj(c, e, f, b);
|
||
default:
|
||
if ("object" === typeof a && null !== a) switch (a.$$typeof) {
|
||
case Ba:
|
||
g = 10;
|
||
break a;
|
||
case Ca:
|
||
g = 9;
|
||
break a;
|
||
case Da:
|
||
g = 11;
|
||
break a;
|
||
case Ga:
|
||
g = 14;
|
||
break a;
|
||
case Ha:
|
||
g = 16;
|
||
d = null;
|
||
break a;
|
||
}
|
||
throw Error(p(130, null == a ? a : typeof a, ""));
|
||
}
|
||
b = Bg(g, c, b, e);
|
||
b.elementType = a;
|
||
b.type = d;
|
||
b.lanes = f;
|
||
return b;
|
||
}
|
||
function Ah(a, b, c, d) {
|
||
a = Bg(7, a, d, b);
|
||
a.lanes = c;
|
||
return a;
|
||
}
|
||
function qj(a, b, c, d) {
|
||
a = Bg(22, a, d, b);
|
||
a.elementType = Ia;
|
||
a.lanes = c;
|
||
a.stateNode = {
|
||
isHidden: !1
|
||
};
|
||
return a;
|
||
}
|
||
function xh(a, b, c) {
|
||
a = Bg(6, a, null, b);
|
||
a.lanes = c;
|
||
return a;
|
||
}
|
||
function zh(a, b, c) {
|
||
b = Bg(4, null !== a.children ? a.children : [], a.key, b);
|
||
b.lanes = c;
|
||
b.stateNode = {
|
||
containerInfo: a.containerInfo,
|
||
pendingChildren: null,
|
||
implementation: a.implementation
|
||
};
|
||
return b;
|
||
}
|
||
function bl(a, b, c, d, e) {
|
||
this.tag = b;
|
||
this.containerInfo = a;
|
||
this.finishedWork = this.pingCache = this.current = this.pendingChildren = null;
|
||
this.timeoutHandle = -1;
|
||
this.callbackNode = this.pendingContext = this.context = null;
|
||
this.callbackPriority = 0;
|
||
this.eventTimes = zc(0);
|
||
this.expirationTimes = zc(-1);
|
||
this.entangledLanes = this.finishedLanes = this.mutableReadLanes = this.expiredLanes = this.pingedLanes = this.suspendedLanes = this.pendingLanes = 0;
|
||
this.entanglements = zc(0);
|
||
this.identifierPrefix = d;
|
||
this.onRecoverableError = e;
|
||
this.mutableSourceEagerHydrationData = null;
|
||
}
|
||
function cl(a, b, c, d, e, f, g, h, k) {
|
||
a = new bl(a, b, c, h, k);
|
||
1 === b ? (b = 1, !0 === f && (b |= 8)) : b = 0;
|
||
f = Bg(3, null, null, b);
|
||
a.current = f;
|
||
f.stateNode = a;
|
||
f.memoizedState = {
|
||
element: d,
|
||
isDehydrated: c,
|
||
cache: null,
|
||
transitions: null,
|
||
pendingSuspenseBoundaries: null
|
||
};
|
||
ah(f);
|
||
return a;
|
||
}
|
||
function dl(a, b, c) {
|
||
var d = 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;
|
||
return {
|
||
$$typeof: wa,
|
||
key: null == d ? null : "" + d,
|
||
children: a,
|
||
containerInfo: b,
|
||
implementation: c
|
||
};
|
||
}
|
||
function el(a) {
|
||
if (!a) return Vf;
|
||
a = a._reactInternals;
|
||
a: {
|
||
if (Vb(a) !== a || 1 !== a.tag) throw Error(p(170));
|
||
var b = a;
|
||
do {
|
||
switch (b.tag) {
|
||
case 3:
|
||
b = b.stateNode.context;
|
||
break a;
|
||
case 1:
|
||
if (Zf(b.type)) {
|
||
b = b.stateNode.__reactInternalMemoizedMergedChildContext;
|
||
break a;
|
||
}
|
||
}
|
||
b = b.return;
|
||
} while (null !== b);
|
||
throw Error(p(171));
|
||
}
|
||
if (1 === a.tag) {
|
||
var c = a.type;
|
||
if (Zf(c)) return bg(a, c, b);
|
||
}
|
||
return b;
|
||
}
|
||
function fl(a, b, c, d, e, f, g, h, k) {
|
||
a = cl(c, d, !0, a, e, f, g, h, k);
|
||
a.context = el(null);
|
||
c = a.current;
|
||
d = L();
|
||
e = lh(c);
|
||
f = ch(d, e);
|
||
f.callback = void 0 !== b && null !== b ? b : null;
|
||
dh(c, f, e);
|
||
a.current.lanes = e;
|
||
Ac(a, e, d);
|
||
Ek(a, d);
|
||
return a;
|
||
}
|
||
function gl(a, b, c, d) {
|
||
var e = b.current,
|
||
f = L(),
|
||
g = lh(e);
|
||
c = el(c);
|
||
null === b.context ? b.context = c : b.pendingContext = c;
|
||
b = ch(f, g);
|
||
b.payload = {
|
||
element: a
|
||
};
|
||
d = void 0 === d ? null : d;
|
||
null !== d && (b.callback = d);
|
||
a = dh(e, b, g);
|
||
null !== a && (mh(a, e, g, f), eh(a, e, g));
|
||
return g;
|
||
}
|
||
function hl(a) {
|
||
a = a.current;
|
||
if (!a.child) return null;
|
||
switch (a.child.tag) {
|
||
case 5:
|
||
return a.child.stateNode;
|
||
default:
|
||
return a.child.stateNode;
|
||
}
|
||
}
|
||
function il(a, b) {
|
||
a = a.memoizedState;
|
||
if (null !== a && null !== a.dehydrated) {
|
||
var c = a.retryLane;
|
||
a.retryLane = 0 !== c && c < b ? c : b;
|
||
}
|
||
}
|
||
function jl(a, b) {
|
||
il(a, b);
|
||
(a = a.alternate) && il(a, b);
|
||
}
|
||
function kl() {
|
||
return null;
|
||
}
|
||
var ll = "function" === typeof reportError ? reportError : function (a) {
|
||
console.error(a);
|
||
};
|
||
function ml(a) {
|
||
this._internalRoot = a;
|
||
}
|
||
nl.prototype.render = ml.prototype.render = function (a) {
|
||
var b = this._internalRoot;
|
||
if (null === b) throw Error(p(409));
|
||
gl(a, b, null, null);
|
||
};
|
||
nl.prototype.unmount = ml.prototype.unmount = function () {
|
||
var a = this._internalRoot;
|
||
if (null !== a) {
|
||
this._internalRoot = null;
|
||
var b = a.containerInfo;
|
||
Sk(function () {
|
||
gl(null, a, null, null);
|
||
});
|
||
b[uf] = null;
|
||
}
|
||
};
|
||
function nl(a) {
|
||
this._internalRoot = a;
|
||
}
|
||
nl.prototype.unstable_scheduleHydration = function (a) {
|
||
if (a) {
|
||
var b = Hc();
|
||
a = {
|
||
blockedOn: null,
|
||
target: a,
|
||
priority: b
|
||
};
|
||
for (var c = 0; c < Qc.length && 0 !== b && b < Qc[c].priority; c++);
|
||
Qc.splice(c, 0, a);
|
||
0 === c && Vc(a);
|
||
}
|
||
};
|
||
function ol(a) {
|
||
return !(!a || 1 !== a.nodeType && 9 !== a.nodeType && 11 !== a.nodeType);
|
||
}
|
||
function pl(a) {
|
||
return !(!a || 1 !== a.nodeType && 9 !== a.nodeType && 11 !== a.nodeType && (8 !== a.nodeType || " react-mount-point-unstable " !== a.nodeValue));
|
||
}
|
||
function ql() {}
|
||
function rl(a, b, c, d, e) {
|
||
if (e) {
|
||
if ("function" === typeof d) {
|
||
var f = d;
|
||
d = function d() {
|
||
var a = hl(g);
|
||
f.call(a);
|
||
};
|
||
}
|
||
var g = fl(b, d, a, 0, null, !1, !1, "", ql);
|
||
a._reactRootContainer = g;
|
||
a[uf] = g.current;
|
||
sf(8 === a.nodeType ? a.parentNode : a);
|
||
Sk();
|
||
return g;
|
||
}
|
||
for (; e = a.lastChild;) a.removeChild(e);
|
||
if ("function" === typeof d) {
|
||
var h = d;
|
||
d = function d() {
|
||
var a = hl(k);
|
||
h.call(a);
|
||
};
|
||
}
|
||
var k = cl(a, 0, !1, null, null, !1, !1, "", ql);
|
||
a._reactRootContainer = k;
|
||
a[uf] = k.current;
|
||
sf(8 === a.nodeType ? a.parentNode : a);
|
||
Sk(function () {
|
||
gl(b, k, c, d);
|
||
});
|
||
return k;
|
||
}
|
||
function sl(a, b, c, d, e) {
|
||
var f = c._reactRootContainer;
|
||
if (f) {
|
||
var g = f;
|
||
if ("function" === typeof e) {
|
||
var h = e;
|
||
e = function e() {
|
||
var a = hl(g);
|
||
h.call(a);
|
||
};
|
||
}
|
||
gl(b, g, a, e);
|
||
} else g = rl(c, b, a, e, d);
|
||
return hl(g);
|
||
}
|
||
Ec = function Ec(a) {
|
||
switch (a.tag) {
|
||
case 3:
|
||
var b = a.stateNode;
|
||
if (b.current.memoizedState.isDehydrated) {
|
||
var c = tc(b.pendingLanes);
|
||
0 !== c && (Cc(b, c | 1), Ek(b, B()), 0 === (K & 6) && (Hj = B() + 500, jg()));
|
||
}
|
||
break;
|
||
case 13:
|
||
Sk(function () {
|
||
var b = Zg(a, 1);
|
||
if (null !== b) {
|
||
var c = L();
|
||
mh(b, a, 1, c);
|
||
}
|
||
}), jl(a, 1);
|
||
}
|
||
};
|
||
Fc = function Fc(a) {
|
||
if (13 === a.tag) {
|
||
var b = Zg(a, 134217728);
|
||
if (null !== b) {
|
||
var c = L();
|
||
mh(b, a, 134217728, c);
|
||
}
|
||
jl(a, 134217728);
|
||
}
|
||
};
|
||
Gc = function Gc(a) {
|
||
if (13 === a.tag) {
|
||
var b = lh(a),
|
||
c = Zg(a, b);
|
||
if (null !== c) {
|
||
var d = L();
|
||
mh(c, a, b, d);
|
||
}
|
||
jl(a, b);
|
||
}
|
||
};
|
||
Hc = function Hc() {
|
||
return C;
|
||
};
|
||
Ic = function Ic(a, b) {
|
||
var c = C;
|
||
try {
|
||
return C = a, b();
|
||
} finally {
|
||
C = c;
|
||
}
|
||
};
|
||
yb = function yb(a, b, c) {
|
||
switch (b) {
|
||
case "input":
|
||
bb(a, c);
|
||
b = c.name;
|
||
if ("radio" === c.type && null != b) {
|
||
for (c = a; c.parentNode;) c = c.parentNode;
|
||
c = c.querySelectorAll("input[name=" + JSON.stringify("" + b) + '][type="radio"]');
|
||
for (b = 0; b < c.length; b++) {
|
||
var d = c[b];
|
||
if (d !== a && d.form === a.form) {
|
||
var e = Db(d);
|
||
if (!e) throw Error(p(90));
|
||
Wa(d);
|
||
bb(d, e);
|
||
}
|
||
}
|
||
}
|
||
break;
|
||
case "textarea":
|
||
ib(a, c);
|
||
break;
|
||
case "select":
|
||
b = c.value, null != b && fb(a, !!c.multiple, b, !1);
|
||
}
|
||
};
|
||
Gb = Rk;
|
||
Hb = Sk;
|
||
var tl = {
|
||
usingClientEntryPoint: !1,
|
||
Events: [Cb, ue, Db, Eb, Fb, Rk]
|
||
},
|
||
ul = {
|
||
findFiberByHostInstance: Wc,
|
||
bundleType: 0,
|
||
version: "18.2.0",
|
||
rendererPackageName: "react-dom"
|
||
};
|
||
var vl = {
|
||
bundleType: ul.bundleType,
|
||
version: ul.version,
|
||
rendererPackageName: ul.rendererPackageName,
|
||
rendererConfig: ul.rendererConfig,
|
||
overrideHookState: null,
|
||
overrideHookStateDeletePath: null,
|
||
overrideHookStateRenamePath: null,
|
||
overrideProps: null,
|
||
overridePropsDeletePath: null,
|
||
overridePropsRenamePath: null,
|
||
setErrorHandler: null,
|
||
setSuspenseHandler: null,
|
||
scheduleUpdate: null,
|
||
currentDispatcherRef: ua.ReactCurrentDispatcher,
|
||
findHostInstanceByFiber: function findHostInstanceByFiber(a) {
|
||
a = Zb(a);
|
||
return null === a ? null : a.stateNode;
|
||
},
|
||
findFiberByHostInstance: ul.findFiberByHostInstance || kl,
|
||
findHostInstancesForRefresh: null,
|
||
scheduleRefresh: null,
|
||
scheduleRoot: null,
|
||
setRefreshHandler: null,
|
||
getCurrentFiber: null,
|
||
reconcilerVersion: "18.2.0-next-9e3b772b8-20220608"
|
||
};
|
||
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
|
||
var wl = __REACT_DEVTOOLS_GLOBAL_HOOK__;
|
||
if (!wl.isDisabled && wl.supportsFiber) try {
|
||
kc = wl.inject(vl), lc = wl;
|
||
} catch (a) {}
|
||
}
|
||
exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = tl;
|
||
exports.createPortal = function (a, b) {
|
||
var c = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;
|
||
if (!ol(b)) throw Error(p(200));
|
||
return dl(a, b, null, c);
|
||
};
|
||
exports.createRoot = function (a, b) {
|
||
if (!ol(a)) throw Error(p(299));
|
||
var c = !1,
|
||
d = "",
|
||
e = ll;
|
||
null !== b && void 0 !== b && (!0 === b.unstable_strictMode && (c = !0), void 0 !== b.identifierPrefix && (d = b.identifierPrefix), void 0 !== b.onRecoverableError && (e = b.onRecoverableError));
|
||
b = cl(a, 1, !1, null, null, c, !1, d, e);
|
||
a[uf] = b.current;
|
||
sf(8 === a.nodeType ? a.parentNode : a);
|
||
return new ml(b);
|
||
};
|
||
exports.findDOMNode = function (a) {
|
||
if (null == a) return null;
|
||
if (1 === a.nodeType) return a;
|
||
var b = a._reactInternals;
|
||
if (void 0 === b) {
|
||
if ("function" === typeof a.render) throw Error(p(188));
|
||
a = Object.keys(a).join(",");
|
||
throw Error(p(268, a));
|
||
}
|
||
a = Zb(b);
|
||
a = null === a ? null : a.stateNode;
|
||
return a;
|
||
};
|
||
exports.flushSync = function (a) {
|
||
return Sk(a);
|
||
};
|
||
exports.hydrate = function (a, b, c) {
|
||
if (!pl(b)) throw Error(p(200));
|
||
return sl(null, a, b, !0, c);
|
||
};
|
||
exports.hydrateRoot = function (a, b, c) {
|
||
if (!ol(a)) throw Error(p(405));
|
||
var d = null != c && c.hydratedSources || null,
|
||
e = !1,
|
||
f = "",
|
||
g = ll;
|
||
null !== c && void 0 !== c && (!0 === c.unstable_strictMode && (e = !0), void 0 !== c.identifierPrefix && (f = c.identifierPrefix), void 0 !== c.onRecoverableError && (g = c.onRecoverableError));
|
||
b = fl(b, null, a, 1, null != c ? c : null, e, !1, f, g);
|
||
a[uf] = b.current;
|
||
sf(a);
|
||
if (d) for (a = 0; a < d.length; a++) c = d[a], e = c._getVersion, e = e(c._source), null == b.mutableSourceEagerHydrationData ? b.mutableSourceEagerHydrationData = [c, e] : b.mutableSourceEagerHydrationData.push(c, e);
|
||
return new nl(b);
|
||
};
|
||
exports.render = function (a, b, c) {
|
||
if (!pl(b)) throw Error(p(200));
|
||
return sl(null, a, b, !1, c);
|
||
};
|
||
exports.unmountComponentAtNode = function (a) {
|
||
if (!pl(a)) throw Error(p(40));
|
||
return a._reactRootContainer ? (Sk(function () {
|
||
sl(null, null, a, !1, function () {
|
||
a._reactRootContainer = null;
|
||
a[uf] = null;
|
||
});
|
||
}), !0) : !1;
|
||
};
|
||
exports.unstable_batchedUpdates = Rk;
|
||
exports.unstable_renderSubtreeIntoContainer = function (a, b, c, d) {
|
||
if (!pl(c)) throw Error(p(200));
|
||
if (null == a || void 0 === a._reactInternals) throw Error(p(38));
|
||
return sl(a, b, c, !1, d);
|
||
};
|
||
exports.version = "18.2.0-next-9e3b772b8-20220608";
|
||
|
||
/***/ }),
|
||
|
||
/***/ 3884:
|
||
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
var m = __webpack_require__(7366);
|
||
if (true) {
|
||
exports.createRoot = m.createRoot;
|
||
exports.hydrateRoot = m.hydrateRoot;
|
||
} else { var i; }
|
||
|
||
/***/ }),
|
||
|
||
/***/ 7366:
|
||
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
function checkDCE() {
|
||
/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */
|
||
if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function') {
|
||
return;
|
||
}
|
||
if (false) {}
|
||
try {
|
||
// Verify that the code above has been dead code eliminated (DCE'd).
|
||
__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);
|
||
} catch (err) {
|
||
// DevTools shouldn't crash React, no matter what.
|
||
// We should still report in case we break this code.
|
||
console.error(err);
|
||
}
|
||
}
|
||
if (true) {
|
||
// DCE check should happen before ReactDOM bundle executes so that
|
||
// DevTools can report bad minification during injection.
|
||
checkDCE();
|
||
module.exports = __webpack_require__(4883);
|
||
} else {}
|
||
|
||
/***/ }),
|
||
|
||
/***/ 4918:
|
||
/***/ (function(__unused_webpack_module, exports) {
|
||
|
||
"use strict";
|
||
/** @license React v16.13.1
|
||
* react-is.production.min.js
|
||
*
|
||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||
*
|
||
* This source code is licensed under the MIT license found in the
|
||
* LICENSE file in the root directory of this source tree.
|
||
*/
|
||
|
||
|
||
|
||
var b = "function" === typeof Symbol && Symbol.for,
|
||
c = b ? Symbol.for("react.element") : 60103,
|
||
d = b ? Symbol.for("react.portal") : 60106,
|
||
e = b ? Symbol.for("react.fragment") : 60107,
|
||
f = b ? Symbol.for("react.strict_mode") : 60108,
|
||
g = b ? Symbol.for("react.profiler") : 60114,
|
||
h = b ? Symbol.for("react.provider") : 60109,
|
||
k = b ? Symbol.for("react.context") : 60110,
|
||
l = b ? Symbol.for("react.async_mode") : 60111,
|
||
m = b ? Symbol.for("react.concurrent_mode") : 60111,
|
||
n = b ? Symbol.for("react.forward_ref") : 60112,
|
||
p = b ? Symbol.for("react.suspense") : 60113,
|
||
q = b ? Symbol.for("react.suspense_list") : 60120,
|
||
r = b ? Symbol.for("react.memo") : 60115,
|
||
t = b ? Symbol.for("react.lazy") : 60116,
|
||
v = b ? Symbol.for("react.block") : 60121,
|
||
w = b ? Symbol.for("react.fundamental") : 60117,
|
||
x = b ? Symbol.for("react.responder") : 60118,
|
||
y = b ? Symbol.for("react.scope") : 60119;
|
||
function z(a) {
|
||
if ("object" === typeof a && null !== a) {
|
||
var u = a.$$typeof;
|
||
switch (u) {
|
||
case c:
|
||
switch (a = a.type, a) {
|
||
case l:
|
||
case m:
|
||
case e:
|
||
case g:
|
||
case f:
|
||
case p:
|
||
return a;
|
||
default:
|
||
switch (a = a && a.$$typeof, a) {
|
||
case k:
|
||
case n:
|
||
case t:
|
||
case r:
|
||
case h:
|
||
return a;
|
||
default:
|
||
return u;
|
||
}
|
||
}
|
||
case d:
|
||
return u;
|
||
}
|
||
}
|
||
}
|
||
function A(a) {
|
||
return z(a) === m;
|
||
}
|
||
exports.AsyncMode = l;
|
||
exports.ConcurrentMode = m;
|
||
exports.ContextConsumer = k;
|
||
exports.ContextProvider = h;
|
||
exports.Element = c;
|
||
exports.ForwardRef = n;
|
||
exports.Fragment = e;
|
||
exports.Lazy = t;
|
||
exports.Memo = r;
|
||
exports.Portal = d;
|
||
exports.Profiler = g;
|
||
exports.StrictMode = f;
|
||
exports.Suspense = p;
|
||
exports.isAsyncMode = function (a) {
|
||
return A(a) || z(a) === l;
|
||
};
|
||
exports.isConcurrentMode = A;
|
||
exports.isContextConsumer = function (a) {
|
||
return z(a) === k;
|
||
};
|
||
exports.isContextProvider = function (a) {
|
||
return z(a) === h;
|
||
};
|
||
exports.isElement = function (a) {
|
||
return "object" === typeof a && null !== a && a.$$typeof === c;
|
||
};
|
||
exports.isForwardRef = function (a) {
|
||
return z(a) === n;
|
||
};
|
||
exports.isFragment = function (a) {
|
||
return z(a) === e;
|
||
};
|
||
exports.isLazy = function (a) {
|
||
return z(a) === t;
|
||
};
|
||
exports.isMemo = function (a) {
|
||
return z(a) === r;
|
||
};
|
||
exports.isPortal = function (a) {
|
||
return z(a) === d;
|
||
};
|
||
exports.isProfiler = function (a) {
|
||
return z(a) === g;
|
||
};
|
||
exports.isStrictMode = function (a) {
|
||
return z(a) === f;
|
||
};
|
||
exports.isSuspense = function (a) {
|
||
return z(a) === p;
|
||
};
|
||
exports.isValidElementType = function (a) {
|
||
return "string" === typeof a || "function" === typeof a || a === e || a === m || a === g || a === f || a === p || a === q || "object" === typeof a && null !== a && (a.$$typeof === t || a.$$typeof === r || a.$$typeof === h || a.$$typeof === k || a.$$typeof === n || a.$$typeof === w || a.$$typeof === x || a.$$typeof === y || a.$$typeof === v);
|
||
};
|
||
exports.typeOf = z;
|
||
|
||
/***/ }),
|
||
|
||
/***/ 736:
|
||
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
if (true) {
|
||
module.exports = __webpack_require__(4918);
|
||
} else {}
|
||
|
||
/***/ }),
|
||
|
||
/***/ 237:
|
||
/***/ (function(__unused_webpack_module, exports) {
|
||
|
||
"use strict";
|
||
/**
|
||
* @license React
|
||
* react-is.production.min.js
|
||
*
|
||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||
*
|
||
* This source code is licensed under the MIT license found in the
|
||
* LICENSE file in the root directory of this source tree.
|
||
*/
|
||
|
||
|
||
var b = Symbol.for("react.element"),
|
||
c = Symbol.for("react.portal"),
|
||
d = Symbol.for("react.fragment"),
|
||
e = Symbol.for("react.strict_mode"),
|
||
f = Symbol.for("react.profiler"),
|
||
g = Symbol.for("react.provider"),
|
||
h = Symbol.for("react.context"),
|
||
k = Symbol.for("react.server_context"),
|
||
l = Symbol.for("react.forward_ref"),
|
||
m = Symbol.for("react.suspense"),
|
||
n = Symbol.for("react.suspense_list"),
|
||
p = Symbol.for("react.memo"),
|
||
q = Symbol.for("react.lazy"),
|
||
t = Symbol.for("react.offscreen"),
|
||
u;
|
||
u = Symbol.for("react.module.reference");
|
||
function v(a) {
|
||
if ("object" === typeof a && null !== a) {
|
||
var r = a.$$typeof;
|
||
switch (r) {
|
||
case b:
|
||
switch (a = a.type, a) {
|
||
case d:
|
||
case f:
|
||
case e:
|
||
case m:
|
||
case n:
|
||
return a;
|
||
default:
|
||
switch (a = a && a.$$typeof, a) {
|
||
case k:
|
||
case h:
|
||
case l:
|
||
case q:
|
||
case p:
|
||
case g:
|
||
return a;
|
||
default:
|
||
return r;
|
||
}
|
||
}
|
||
case c:
|
||
return r;
|
||
}
|
||
}
|
||
}
|
||
exports.ContextConsumer = h;
|
||
exports.ContextProvider = g;
|
||
exports.Element = b;
|
||
exports.ForwardRef = l;
|
||
exports.Fragment = d;
|
||
exports.Lazy = q;
|
||
exports.Memo = p;
|
||
exports.Portal = c;
|
||
exports.Profiler = f;
|
||
exports.StrictMode = e;
|
||
exports.Suspense = m;
|
||
exports.SuspenseList = n;
|
||
exports.isAsyncMode = function () {
|
||
return !1;
|
||
};
|
||
exports.isConcurrentMode = function () {
|
||
return !1;
|
||
};
|
||
exports.isContextConsumer = function (a) {
|
||
return v(a) === h;
|
||
};
|
||
exports.isContextProvider = function (a) {
|
||
return v(a) === g;
|
||
};
|
||
exports.isElement = function (a) {
|
||
return "object" === typeof a && null !== a && a.$$typeof === b;
|
||
};
|
||
exports.isForwardRef = function (a) {
|
||
return v(a) === l;
|
||
};
|
||
exports.isFragment = function (a) {
|
||
return v(a) === d;
|
||
};
|
||
exports.isLazy = function (a) {
|
||
return v(a) === q;
|
||
};
|
||
exports.isMemo = function (a) {
|
||
return v(a) === p;
|
||
};
|
||
exports.isPortal = function (a) {
|
||
return v(a) === c;
|
||
};
|
||
exports.isProfiler = function (a) {
|
||
return v(a) === f;
|
||
};
|
||
exports.isStrictMode = function (a) {
|
||
return v(a) === e;
|
||
};
|
||
exports.isSuspense = function (a) {
|
||
return v(a) === m;
|
||
};
|
||
exports.isSuspenseList = function (a) {
|
||
return v(a) === n;
|
||
};
|
||
exports.isValidElementType = function (a) {
|
||
return "string" === typeof a || "function" === typeof a || a === d || a === f || a === e || a === m || a === n || a === t || "object" === typeof a && null !== a && (a.$$typeof === q || a.$$typeof === p || a.$$typeof === g || a.$$typeof === h || a.$$typeof === l || a.$$typeof === u || void 0 !== a.getModuleId) ? !0 : !1;
|
||
};
|
||
exports.typeOf = v;
|
||
|
||
/***/ }),
|
||
|
||
/***/ 8890:
|
||
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
if (true) {
|
||
module.exports = __webpack_require__(237);
|
||
} else {}
|
||
|
||
/***/ }),
|
||
|
||
/***/ 9656:
|
||
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
var __webpack_unused_export__;
|
||
/**
|
||
* @license React
|
||
* react-jsx-runtime.production.min.js
|
||
*
|
||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||
*
|
||
* This source code is licensed under the MIT license found in the
|
||
* LICENSE file in the root directory of this source tree.
|
||
*/
|
||
|
||
|
||
var f = __webpack_require__(7948),
|
||
k = Symbol.for("react.element"),
|
||
l = Symbol.for("react.fragment"),
|
||
m = Object.prototype.hasOwnProperty,
|
||
n = f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,
|
||
p = {
|
||
key: !0,
|
||
ref: !0,
|
||
__self: !0,
|
||
__source: !0
|
||
};
|
||
function q(c, a, g) {
|
||
var b,
|
||
d = {},
|
||
e = null,
|
||
h = null;
|
||
void 0 !== g && (e = "" + g);
|
||
void 0 !== a.key && (e = "" + a.key);
|
||
void 0 !== a.ref && (h = a.ref);
|
||
for (b in a) m.call(a, b) && !p.hasOwnProperty(b) && (d[b] = a[b]);
|
||
if (c && c.defaultProps) for (b in a = c.defaultProps, a) void 0 === d[b] && (d[b] = a[b]);
|
||
return {
|
||
$$typeof: k,
|
||
type: c,
|
||
key: e,
|
||
ref: h,
|
||
props: d,
|
||
_owner: n.current
|
||
};
|
||
}
|
||
__webpack_unused_export__ = l;
|
||
exports.jsx = q;
|
||
exports.jsxs = q;
|
||
|
||
/***/ }),
|
||
|
||
/***/ 6575:
|
||
/***/ (function(__unused_webpack_module, exports) {
|
||
|
||
"use strict";
|
||
/**
|
||
* @license React
|
||
* react.production.min.js
|
||
*
|
||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||
*
|
||
* This source code is licensed under the MIT license found in the
|
||
* LICENSE file in the root directory of this source tree.
|
||
*/
|
||
|
||
|
||
var l = Symbol.for("react.element"),
|
||
n = Symbol.for("react.portal"),
|
||
p = Symbol.for("react.fragment"),
|
||
q = Symbol.for("react.strict_mode"),
|
||
r = Symbol.for("react.profiler"),
|
||
t = Symbol.for("react.provider"),
|
||
u = Symbol.for("react.context"),
|
||
v = Symbol.for("react.forward_ref"),
|
||
w = Symbol.for("react.suspense"),
|
||
x = Symbol.for("react.memo"),
|
||
y = Symbol.for("react.lazy"),
|
||
z = Symbol.iterator;
|
||
function A(a) {
|
||
if (null === a || "object" !== typeof a) return null;
|
||
a = z && a[z] || a["@@iterator"];
|
||
return "function" === typeof a ? a : null;
|
||
}
|
||
var B = {
|
||
isMounted: function isMounted() {
|
||
return !1;
|
||
},
|
||
enqueueForceUpdate: function enqueueForceUpdate() {},
|
||
enqueueReplaceState: function enqueueReplaceState() {},
|
||
enqueueSetState: function enqueueSetState() {}
|
||
},
|
||
C = Object.assign,
|
||
D = {};
|
||
function E(a, b, e) {
|
||
this.props = a;
|
||
this.context = b;
|
||
this.refs = D;
|
||
this.updater = e || B;
|
||
}
|
||
E.prototype.isReactComponent = {};
|
||
E.prototype.setState = function (a, b) {
|
||
if ("object" !== typeof a && "function" !== typeof a && null != a) throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");
|
||
this.updater.enqueueSetState(this, a, b, "setState");
|
||
};
|
||
E.prototype.forceUpdate = function (a) {
|
||
this.updater.enqueueForceUpdate(this, a, "forceUpdate");
|
||
};
|
||
function F() {}
|
||
F.prototype = E.prototype;
|
||
function G(a, b, e) {
|
||
this.props = a;
|
||
this.context = b;
|
||
this.refs = D;
|
||
this.updater = e || B;
|
||
}
|
||
var H = G.prototype = new F();
|
||
H.constructor = G;
|
||
C(H, E.prototype);
|
||
H.isPureReactComponent = !0;
|
||
var I = Array.isArray,
|
||
J = Object.prototype.hasOwnProperty,
|
||
K = {
|
||
current: null
|
||
},
|
||
L = {
|
||
key: !0,
|
||
ref: !0,
|
||
__self: !0,
|
||
__source: !0
|
||
};
|
||
function M(a, b, e) {
|
||
var d,
|
||
c = {},
|
||
k = null,
|
||
h = null;
|
||
if (null != b) for (d in void 0 !== b.ref && (h = b.ref), void 0 !== b.key && (k = "" + b.key), b) J.call(b, d) && !L.hasOwnProperty(d) && (c[d] = b[d]);
|
||
var g = arguments.length - 2;
|
||
if (1 === g) c.children = e;else if (1 < g) {
|
||
for (var f = Array(g), m = 0; m < g; m++) f[m] = arguments[m + 2];
|
||
c.children = f;
|
||
}
|
||
if (a && a.defaultProps) for (d in g = a.defaultProps, g) void 0 === c[d] && (c[d] = g[d]);
|
||
return {
|
||
$$typeof: l,
|
||
type: a,
|
||
key: k,
|
||
ref: h,
|
||
props: c,
|
||
_owner: K.current
|
||
};
|
||
}
|
||
function N(a, b) {
|
||
return {
|
||
$$typeof: l,
|
||
type: a.type,
|
||
key: b,
|
||
ref: a.ref,
|
||
props: a.props,
|
||
_owner: a._owner
|
||
};
|
||
}
|
||
function O(a) {
|
||
return "object" === typeof a && null !== a && a.$$typeof === l;
|
||
}
|
||
function escape(a) {
|
||
var b = {
|
||
"=": "=0",
|
||
":": "=2"
|
||
};
|
||
return "$" + a.replace(/[=:]/g, function (a) {
|
||
return b[a];
|
||
});
|
||
}
|
||
var P = /\/+/g;
|
||
function Q(a, b) {
|
||
return "object" === typeof a && null !== a && null != a.key ? escape("" + a.key) : b.toString(36);
|
||
}
|
||
function R(a, b, e, d, c) {
|
||
var k = typeof a;
|
||
if ("undefined" === k || "boolean" === k) a = null;
|
||
var h = !1;
|
||
if (null === a) h = !0;else switch (k) {
|
||
case "string":
|
||
case "number":
|
||
h = !0;
|
||
break;
|
||
case "object":
|
||
switch (a.$$typeof) {
|
||
case l:
|
||
case n:
|
||
h = !0;
|
||
}
|
||
}
|
||
if (h) return h = a, c = c(h), a = "" === d ? "." + Q(h, 0) : d, I(c) ? (e = "", null != a && (e = a.replace(P, "$&/") + "/"), R(c, b, e, "", function (a) {
|
||
return a;
|
||
})) : null != c && (O(c) && (c = N(c, e + (!c.key || h && h.key === c.key ? "" : ("" + c.key).replace(P, "$&/") + "/") + a)), b.push(c)), 1;
|
||
h = 0;
|
||
d = "" === d ? "." : d + ":";
|
||
if (I(a)) for (var g = 0; g < a.length; g++) {
|
||
k = a[g];
|
||
var f = d + Q(k, g);
|
||
h += R(k, b, e, f, c);
|
||
} else if (f = A(a), "function" === typeof f) for (a = f.call(a), g = 0; !(k = a.next()).done;) k = k.value, f = d + Q(k, g++), h += R(k, b, e, f, c);else if ("object" === k) throw b = String(a), Error("Objects are not valid as a React child (found: " + ("[object Object]" === b ? "object with keys {" + Object.keys(a).join(", ") + "}" : b) + "). If you meant to render a collection of children, use an array instead.");
|
||
return h;
|
||
}
|
||
function S(a, b, e) {
|
||
if (null == a) return a;
|
||
var d = [],
|
||
c = 0;
|
||
R(a, d, "", "", function (a) {
|
||
return b.call(e, a, c++);
|
||
});
|
||
return d;
|
||
}
|
||
function T(a) {
|
||
if (-1 === a._status) {
|
||
var b = a._result;
|
||
b = b();
|
||
b.then(function (b) {
|
||
if (0 === a._status || -1 === a._status) a._status = 1, a._result = b;
|
||
}, function (b) {
|
||
if (0 === a._status || -1 === a._status) a._status = 2, a._result = b;
|
||
});
|
||
-1 === a._status && (a._status = 0, a._result = b);
|
||
}
|
||
if (1 === a._status) return a._result.default;
|
||
throw a._result;
|
||
}
|
||
var U = {
|
||
current: null
|
||
},
|
||
V = {
|
||
transition: null
|
||
},
|
||
W = {
|
||
ReactCurrentDispatcher: U,
|
||
ReactCurrentBatchConfig: V,
|
||
ReactCurrentOwner: K
|
||
};
|
||
exports.Children = {
|
||
map: S,
|
||
forEach: function forEach(a, b, e) {
|
||
S(a, function () {
|
||
b.apply(this, arguments);
|
||
}, e);
|
||
},
|
||
count: function count(a) {
|
||
var b = 0;
|
||
S(a, function () {
|
||
b++;
|
||
});
|
||
return b;
|
||
},
|
||
toArray: function toArray(a) {
|
||
return S(a, function (a) {
|
||
return a;
|
||
}) || [];
|
||
},
|
||
only: function only(a) {
|
||
if (!O(a)) throw Error("React.Children.only expected to receive a single React element child.");
|
||
return a;
|
||
}
|
||
};
|
||
exports.Component = E;
|
||
exports.Fragment = p;
|
||
exports.Profiler = r;
|
||
exports.PureComponent = G;
|
||
exports.StrictMode = q;
|
||
exports.Suspense = w;
|
||
exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = W;
|
||
exports.cloneElement = function (a, b, e) {
|
||
if (null === a || void 0 === a) throw Error("React.cloneElement(...): The argument must be a React element, but you passed " + a + ".");
|
||
var d = C({}, a.props),
|
||
c = a.key,
|
||
k = a.ref,
|
||
h = a._owner;
|
||
if (null != b) {
|
||
void 0 !== b.ref && (k = b.ref, h = K.current);
|
||
void 0 !== b.key && (c = "" + b.key);
|
||
if (a.type && a.type.defaultProps) var g = a.type.defaultProps;
|
||
for (f in b) J.call(b, f) && !L.hasOwnProperty(f) && (d[f] = void 0 === b[f] && void 0 !== g ? g[f] : b[f]);
|
||
}
|
||
var f = arguments.length - 2;
|
||
if (1 === f) d.children = e;else if (1 < f) {
|
||
g = Array(f);
|
||
for (var m = 0; m < f; m++) g[m] = arguments[m + 2];
|
||
d.children = g;
|
||
}
|
||
return {
|
||
$$typeof: l,
|
||
type: a.type,
|
||
key: c,
|
||
ref: k,
|
||
props: d,
|
||
_owner: h
|
||
};
|
||
};
|
||
exports.createContext = function (a) {
|
||
a = {
|
||
$$typeof: u,
|
||
_currentValue: a,
|
||
_currentValue2: a,
|
||
_threadCount: 0,
|
||
Provider: null,
|
||
Consumer: null,
|
||
_defaultValue: null,
|
||
_globalName: null
|
||
};
|
||
a.Provider = {
|
||
$$typeof: t,
|
||
_context: a
|
||
};
|
||
return a.Consumer = a;
|
||
};
|
||
exports.createElement = M;
|
||
exports.createFactory = function (a) {
|
||
var b = M.bind(null, a);
|
||
b.type = a;
|
||
return b;
|
||
};
|
||
exports.createRef = function () {
|
||
return {
|
||
current: null
|
||
};
|
||
};
|
||
exports.forwardRef = function (a) {
|
||
return {
|
||
$$typeof: v,
|
||
render: a
|
||
};
|
||
};
|
||
exports.isValidElement = O;
|
||
exports.lazy = function (a) {
|
||
return {
|
||
$$typeof: y,
|
||
_payload: {
|
||
_status: -1,
|
||
_result: a
|
||
},
|
||
_init: T
|
||
};
|
||
};
|
||
exports.memo = function (a, b) {
|
||
return {
|
||
$$typeof: x,
|
||
type: a,
|
||
compare: void 0 === b ? null : b
|
||
};
|
||
};
|
||
exports.startTransition = function (a) {
|
||
var b = V.transition;
|
||
V.transition = {};
|
||
try {
|
||
a();
|
||
} finally {
|
||
V.transition = b;
|
||
}
|
||
};
|
||
exports.unstable_act = function () {
|
||
throw Error("act(...) is not supported in production builds of React.");
|
||
};
|
||
exports.useCallback = function (a, b) {
|
||
return U.current.useCallback(a, b);
|
||
};
|
||
exports.useContext = function (a) {
|
||
return U.current.useContext(a);
|
||
};
|
||
exports.useDebugValue = function () {};
|
||
exports.useDeferredValue = function (a) {
|
||
return U.current.useDeferredValue(a);
|
||
};
|
||
exports.useEffect = function (a, b) {
|
||
return U.current.useEffect(a, b);
|
||
};
|
||
exports.useId = function () {
|
||
return U.current.useId();
|
||
};
|
||
exports.useImperativeHandle = function (a, b, e) {
|
||
return U.current.useImperativeHandle(a, b, e);
|
||
};
|
||
exports.useInsertionEffect = function (a, b) {
|
||
return U.current.useInsertionEffect(a, b);
|
||
};
|
||
exports.useLayoutEffect = function (a, b) {
|
||
return U.current.useLayoutEffect(a, b);
|
||
};
|
||
exports.useMemo = function (a, b) {
|
||
return U.current.useMemo(a, b);
|
||
};
|
||
exports.useReducer = function (a, b, e) {
|
||
return U.current.useReducer(a, b, e);
|
||
};
|
||
exports.useRef = function (a) {
|
||
return U.current.useRef(a);
|
||
};
|
||
exports.useState = function (a) {
|
||
return U.current.useState(a);
|
||
};
|
||
exports.useSyncExternalStore = function (a, b, e) {
|
||
return U.current.useSyncExternalStore(a, b, e);
|
||
};
|
||
exports.useTransition = function () {
|
||
return U.current.useTransition();
|
||
};
|
||
exports.version = "18.2.0";
|
||
|
||
/***/ }),
|
||
|
||
/***/ 7948:
|
||
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
if (true) {
|
||
module.exports = __webpack_require__(6575);
|
||
} else {}
|
||
|
||
/***/ }),
|
||
|
||
/***/ 7394:
|
||
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
if (true) {
|
||
module.exports = __webpack_require__(9656);
|
||
} else {}
|
||
|
||
/***/ }),
|
||
|
||
/***/ 6929:
|
||
/***/ (function(__unused_webpack_module, exports) {
|
||
|
||
"use strict";
|
||
/**
|
||
* @license React
|
||
* scheduler.production.min.js
|
||
*
|
||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||
*
|
||
* This source code is licensed under the MIT license found in the
|
||
* LICENSE file in the root directory of this source tree.
|
||
*/
|
||
|
||
|
||
function f(a, b) {
|
||
var c = a.length;
|
||
a.push(b);
|
||
a: for (; 0 < c;) {
|
||
var d = c - 1 >>> 1,
|
||
e = a[d];
|
||
if (0 < g(e, b)) a[d] = b, a[c] = e, c = d;else break a;
|
||
}
|
||
}
|
||
function h(a) {
|
||
return 0 === a.length ? null : a[0];
|
||
}
|
||
function k(a) {
|
||
if (0 === a.length) return null;
|
||
var b = a[0],
|
||
c = a.pop();
|
||
if (c !== b) {
|
||
a[0] = c;
|
||
a: for (var d = 0, e = a.length, w = e >>> 1; d < w;) {
|
||
var m = 2 * (d + 1) - 1,
|
||
C = a[m],
|
||
n = m + 1,
|
||
x = a[n];
|
||
if (0 > g(C, c)) n < e && 0 > g(x, C) ? (a[d] = x, a[n] = c, d = n) : (a[d] = C, a[m] = c, d = m);else if (n < e && 0 > g(x, c)) a[d] = x, a[n] = c, d = n;else break a;
|
||
}
|
||
}
|
||
return b;
|
||
}
|
||
function g(a, b) {
|
||
var c = a.sortIndex - b.sortIndex;
|
||
return 0 !== c ? c : a.id - b.id;
|
||
}
|
||
if ("object" === typeof performance && "function" === typeof performance.now) {
|
||
var l = performance;
|
||
exports.unstable_now = function () {
|
||
return l.now();
|
||
};
|
||
} else {
|
||
var p = Date,
|
||
q = p.now();
|
||
exports.unstable_now = function () {
|
||
return p.now() - q;
|
||
};
|
||
}
|
||
var r = [],
|
||
t = [],
|
||
u = 1,
|
||
v = null,
|
||
y = 3,
|
||
z = !1,
|
||
A = !1,
|
||
B = !1,
|
||
D = "function" === typeof setTimeout ? setTimeout : null,
|
||
E = "function" === typeof clearTimeout ? clearTimeout : null,
|
||
F = "undefined" !== typeof setImmediate ? setImmediate : null;
|
||
"undefined" !== typeof navigator && void 0 !== navigator.scheduling && void 0 !== navigator.scheduling.isInputPending && navigator.scheduling.isInputPending.bind(navigator.scheduling);
|
||
function G(a) {
|
||
for (var b = h(t); null !== b;) {
|
||
if (null === b.callback) k(t);else if (b.startTime <= a) k(t), b.sortIndex = b.expirationTime, f(r, b);else break;
|
||
b = h(t);
|
||
}
|
||
}
|
||
function H(a) {
|
||
B = !1;
|
||
G(a);
|
||
if (!A) if (null !== h(r)) A = !0, I(J);else {
|
||
var b = h(t);
|
||
null !== b && K(H, b.startTime - a);
|
||
}
|
||
}
|
||
function J(a, b) {
|
||
A = !1;
|
||
B && (B = !1, E(L), L = -1);
|
||
z = !0;
|
||
var c = y;
|
||
try {
|
||
G(b);
|
||
for (v = h(r); null !== v && (!(v.expirationTime > b) || a && !M());) {
|
||
var d = v.callback;
|
||
if ("function" === typeof d) {
|
||
v.callback = null;
|
||
y = v.priorityLevel;
|
||
var e = d(v.expirationTime <= b);
|
||
b = exports.unstable_now();
|
||
"function" === typeof e ? v.callback = e : v === h(r) && k(r);
|
||
G(b);
|
||
} else k(r);
|
||
v = h(r);
|
||
}
|
||
if (null !== v) var w = !0;else {
|
||
var m = h(t);
|
||
null !== m && K(H, m.startTime - b);
|
||
w = !1;
|
||
}
|
||
return w;
|
||
} finally {
|
||
v = null, y = c, z = !1;
|
||
}
|
||
}
|
||
var N = !1,
|
||
O = null,
|
||
L = -1,
|
||
P = 5,
|
||
Q = -1;
|
||
function M() {
|
||
return exports.unstable_now() - Q < P ? !1 : !0;
|
||
}
|
||
function R() {
|
||
if (null !== O) {
|
||
var a = exports.unstable_now();
|
||
Q = a;
|
||
var b = !0;
|
||
try {
|
||
b = O(!0, a);
|
||
} finally {
|
||
b ? S() : (N = !1, O = null);
|
||
}
|
||
} else N = !1;
|
||
}
|
||
var S;
|
||
if ("function" === typeof F) S = function S() {
|
||
F(R);
|
||
};else if ("undefined" !== typeof MessageChannel) {
|
||
var T = new MessageChannel(),
|
||
U = T.port2;
|
||
T.port1.onmessage = R;
|
||
S = function S() {
|
||
U.postMessage(null);
|
||
};
|
||
} else S = function S() {
|
||
D(R, 0);
|
||
};
|
||
function I(a) {
|
||
O = a;
|
||
N || (N = !0, S());
|
||
}
|
||
function K(a, b) {
|
||
L = D(function () {
|
||
a(exports.unstable_now());
|
||
}, b);
|
||
}
|
||
exports.unstable_IdlePriority = 5;
|
||
exports.unstable_ImmediatePriority = 1;
|
||
exports.unstable_LowPriority = 4;
|
||
exports.unstable_NormalPriority = 3;
|
||
exports.unstable_Profiling = null;
|
||
exports.unstable_UserBlockingPriority = 2;
|
||
exports.unstable_cancelCallback = function (a) {
|
||
a.callback = null;
|
||
};
|
||
exports.unstable_continueExecution = function () {
|
||
A || z || (A = !0, I(J));
|
||
};
|
||
exports.unstable_forceFrameRate = function (a) {
|
||
0 > a || 125 < a ? console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported") : P = 0 < a ? Math.floor(1E3 / a) : 5;
|
||
};
|
||
exports.unstable_getCurrentPriorityLevel = function () {
|
||
return y;
|
||
};
|
||
exports.unstable_getFirstCallbackNode = function () {
|
||
return h(r);
|
||
};
|
||
exports.unstable_next = function (a) {
|
||
switch (y) {
|
||
case 1:
|
||
case 2:
|
||
case 3:
|
||
var b = 3;
|
||
break;
|
||
default:
|
||
b = y;
|
||
}
|
||
var c = y;
|
||
y = b;
|
||
try {
|
||
return a();
|
||
} finally {
|
||
y = c;
|
||
}
|
||
};
|
||
exports.unstable_pauseExecution = function () {};
|
||
exports.unstable_requestPaint = function () {};
|
||
exports.unstable_runWithPriority = function (a, b) {
|
||
switch (a) {
|
||
case 1:
|
||
case 2:
|
||
case 3:
|
||
case 4:
|
||
case 5:
|
||
break;
|
||
default:
|
||
a = 3;
|
||
}
|
||
var c = y;
|
||
y = a;
|
||
try {
|
||
return b();
|
||
} finally {
|
||
y = c;
|
||
}
|
||
};
|
||
exports.unstable_scheduleCallback = function (a, b, c) {
|
||
var d = exports.unstable_now();
|
||
"object" === typeof c && null !== c ? (c = c.delay, c = "number" === typeof c && 0 < c ? d + c : d) : c = d;
|
||
switch (a) {
|
||
case 1:
|
||
var e = -1;
|
||
break;
|
||
case 2:
|
||
e = 250;
|
||
break;
|
||
case 5:
|
||
e = 1073741823;
|
||
break;
|
||
case 4:
|
||
e = 1E4;
|
||
break;
|
||
default:
|
||
e = 5E3;
|
||
}
|
||
e = c + e;
|
||
a = {
|
||
id: u++,
|
||
callback: b,
|
||
priorityLevel: a,
|
||
startTime: c,
|
||
expirationTime: e,
|
||
sortIndex: -1
|
||
};
|
||
c > d ? (a.sortIndex = c, f(t, a), null === h(r) && a === h(t) && (B ? (E(L), L = -1) : B = !0, K(H, c - d))) : (a.sortIndex = e, f(r, a), A || z || (A = !0, I(J)));
|
||
return a;
|
||
};
|
||
exports.unstable_shouldYield = M;
|
||
exports.unstable_wrapCallback = function (a) {
|
||
var b = y;
|
||
return function () {
|
||
var c = y;
|
||
y = b;
|
||
try {
|
||
return a.apply(this, arguments);
|
||
} finally {
|
||
y = c;
|
||
}
|
||
};
|
||
};
|
||
|
||
/***/ }),
|
||
|
||
/***/ 1935:
|
||
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
if (true) {
|
||
module.exports = __webpack_require__(6929);
|
||
} else {}
|
||
|
||
/***/ }),
|
||
|
||
/***/ 8879:
|
||
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
||
|
||
var parse = __webpack_require__(2072);
|
||
|
||
/**
|
||
* Parses inline style to object.
|
||
*
|
||
* @example
|
||
* // returns { 'line-height': '42' }
|
||
* StyleToObject('line-height: 42;');
|
||
*
|
||
* @param {String} style - The inline style.
|
||
* @param {Function} [iterator] - The iterator function.
|
||
* @return {null|Object}
|
||
*/
|
||
function StyleToObject(style, iterator) {
|
||
var output = null;
|
||
if (!style || typeof style !== 'string') {
|
||
return output;
|
||
}
|
||
var declaration;
|
||
var declarations = parse(style);
|
||
var hasIterator = typeof iterator === 'function';
|
||
var property;
|
||
var value;
|
||
for (var i = 0, len = declarations.length; i < len; i++) {
|
||
declaration = declarations[i];
|
||
property = declaration.property;
|
||
value = declaration.value;
|
||
if (hasIterator) {
|
||
iterator(property, value, declaration);
|
||
} else if (value) {
|
||
output || (output = {});
|
||
output[property] = value;
|
||
}
|
||
}
|
||
return output;
|
||
}
|
||
module.exports = StyleToObject;
|
||
module.exports["default"] = StyleToObject; // ESM support
|
||
|
||
/***/ })
|
||
|
||
/******/ });
|
||
/************************************************************************/
|
||
/******/ // The module cache
|
||
/******/ var __webpack_module_cache__ = {};
|
||
/******/
|
||
/******/ // The require function
|
||
/******/ function __webpack_require__(moduleId) {
|
||
/******/ // Check if module is in cache
|
||
/******/ var cachedModule = __webpack_module_cache__[moduleId];
|
||
/******/ if (cachedModule !== undefined) {
|
||
/******/ return cachedModule.exports;
|
||
/******/ }
|
||
/******/ // Create a new module (and put it into the cache)
|
||
/******/ var module = __webpack_module_cache__[moduleId] = {
|
||
/******/ // no module.id needed
|
||
/******/ // no module.loaded needed
|
||
/******/ exports: {}
|
||
/******/ };
|
||
/******/
|
||
/******/ // Execute the module function
|
||
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
||
/******/
|
||
/******/ // Return the exports of the module
|
||
/******/ return module.exports;
|
||
/******/ }
|
||
/******/
|
||
/************************************************************************/
|
||
/******/ /* webpack/runtime/create fake namespace object */
|
||
/******/ !function() {
|
||
/******/ var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };
|
||
/******/ var leafPrototypes;
|
||
/******/ // create a fake namespace object
|
||
/******/ // mode & 1: value is a module id, require it
|
||
/******/ // mode & 2: merge all properties of value into the ns
|
||
/******/ // mode & 4: return value when already ns object
|
||
/******/ // mode & 16: return value when it's Promise-like
|
||
/******/ // mode & 8|1: behave like require
|
||
/******/ __webpack_require__.t = function(value, mode) {
|
||
/******/ if(mode & 1) value = this(value);
|
||
/******/ if(mode & 8) return value;
|
||
/******/ if(typeof value === 'object' && value) {
|
||
/******/ if((mode & 4) && value.__esModule) return value;
|
||
/******/ if((mode & 16) && typeof value.then === 'function') return value;
|
||
/******/ }
|
||
/******/ var ns = Object.create(null);
|
||
/******/ __webpack_require__.r(ns);
|
||
/******/ var def = {};
|
||
/******/ leafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];
|
||
/******/ for(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {
|
||
/******/ Object.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });
|
||
/******/ }
|
||
/******/ def['default'] = function() { return value; };
|
||
/******/ __webpack_require__.d(ns, def);
|
||
/******/ return ns;
|
||
/******/ };
|
||
/******/ }();
|
||
/******/
|
||
/******/ /* webpack/runtime/define property getters */
|
||
/******/ !function() {
|
||
/******/ // define getter functions for harmony exports
|
||
/******/ __webpack_require__.d = function(exports, definition) {
|
||
/******/ for(var key in definition) {
|
||
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
|
||
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
||
/******/ }
|
||
/******/ }
|
||
/******/ };
|
||
/******/ }();
|
||
/******/
|
||
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
||
/******/ !function() {
|
||
/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
|
||
/******/ }();
|
||
/******/
|
||
/******/ /* webpack/runtime/make namespace object */
|
||
/******/ !function() {
|
||
/******/ // define __esModule on exports
|
||
/******/ __webpack_require__.r = function(exports) {
|
||
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
||
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
||
/******/ }
|
||
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
||
/******/ };
|
||
/******/ }();
|
||
/******/
|
||
/************************************************************************/
|
||
var __webpack_exports__ = {};
|
||
// This entry need to be wrapped in an IIFE because it need to be in strict mode.
|
||
!function() {
|
||
"use strict";
|
||
|
||
// NAMESPACE OBJECT: ./node_modules/.pnpm/micromark@3.2.0/node_modules/micromark/lib/constructs.js
|
||
var constructs_namespaceObject = {};
|
||
__webpack_require__.r(constructs_namespaceObject);
|
||
__webpack_require__.d(constructs_namespaceObject, {
|
||
attentionMarkers: function() { return attentionMarkers; },
|
||
contentInitial: function() { return contentInitial; },
|
||
disable: function() { return disable; },
|
||
document: function() { return constructs_document; },
|
||
flow: function() { return constructs_flow; },
|
||
flowInitial: function() { return flowInitial; },
|
||
insideSpan: function() { return insideSpan; },
|
||
string: function() { return constructs_string; },
|
||
text: function() { return constructs_text; }
|
||
});
|
||
|
||
// NAMESPACE OBJECT: ./node_modules/.pnpm/property-information@6.3.0/node_modules/property-information/lib/util/types.js
|
||
var types_namespaceObject = {};
|
||
__webpack_require__.r(types_namespaceObject);
|
||
__webpack_require__.d(types_namespaceObject, {
|
||
boolean: function() { return types_boolean; },
|
||
booleanish: function() { return booleanish; },
|
||
commaOrSpaceSeparated: function() { return commaOrSpaceSeparated; },
|
||
commaSeparated: function() { return commaSeparated; },
|
||
number: function() { return number; },
|
||
overloadedBoolean: function() { return overloadedBoolean; },
|
||
spaceSeparated: function() { return spaceSeparated; }
|
||
});
|
||
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js
|
||
function _arrayWithHoles(arr) {
|
||
if (Array.isArray(arr)) return arr;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js
|
||
function _iterableToArrayLimit(r, l) {
|
||
var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
|
||
if (null != t) {
|
||
var e,
|
||
n,
|
||
i,
|
||
u,
|
||
a = [],
|
||
f = !0,
|
||
o = !1;
|
||
try {
|
||
if (i = (t = t.call(r)).next, 0 === l) {
|
||
if (Object(t) !== t) return;
|
||
f = !1;
|
||
} else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
|
||
} catch (r) {
|
||
o = !0, n = r;
|
||
} finally {
|
||
try {
|
||
if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
|
||
} finally {
|
||
if (o) throw n;
|
||
}
|
||
}
|
||
return a;
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
|
||
function _arrayLikeToArray(arr, len) {
|
||
if (len == null || len > arr.length) len = arr.length;
|
||
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
||
return arr2;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js
|
||
|
||
function _unsupportedIterableToArray(o, minLen) {
|
||
if (!o) return;
|
||
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
||
var n = Object.prototype.toString.call(o).slice(8, -1);
|
||
if (n === "Object" && o.constructor) n = o.constructor.name;
|
||
if (n === "Map" || n === "Set") return Array.from(o);
|
||
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js
|
||
function _nonIterableRest() {
|
||
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/slicedToArray.js
|
||
|
||
|
||
|
||
|
||
function _slicedToArray(arr, i) {
|
||
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
||
}
|
||
// EXTERNAL MODULE: ./node_modules/.pnpm/react@18.2.0/node_modules/react/index.js
|
||
var react = __webpack_require__(7948);
|
||
var react_namespaceObject = /*#__PURE__*/__webpack_require__.t(react, 2);
|
||
// EXTERNAL MODULE: ./node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/client.js
|
||
var client = __webpack_require__(3884);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js
|
||
function _taggedTemplateLiteral(strings, raw) {
|
||
if (!raw) {
|
||
raw = strings.slice(0);
|
||
}
|
||
return Object.freeze(Object.defineProperties(strings, {
|
||
raw: {
|
||
value: Object.freeze(raw)
|
||
}
|
||
}));
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js
|
||
function _objectWithoutPropertiesLoose(source, excluded) {
|
||
if (source == null) return {};
|
||
var target = {};
|
||
var sourceKeys = Object.keys(source);
|
||
var key, i;
|
||
for (i = 0; i < sourceKeys.length; i++) {
|
||
key = sourceKeys[i];
|
||
if (excluded.indexOf(key) >= 0) continue;
|
||
target[key] = source[key];
|
||
}
|
||
return target;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/extends.js
|
||
function extends_extends() {
|
||
extends_extends = Object.assign ? Object.assign.bind() : function (target) {
|
||
for (var i = 1; i < arguments.length; i++) {
|
||
var source = arguments[i];
|
||
for (var key in source) {
|
||
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
||
target[key] = source[key];
|
||
}
|
||
}
|
||
}
|
||
return target;
|
||
};
|
||
return extends_extends.apply(this, arguments);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/clsx@2.0.0/node_modules/clsx/dist/clsx.mjs
|
||
function r(e) {
|
||
var t,
|
||
f,
|
||
n = "";
|
||
if ("string" == typeof e || "number" == typeof e) n += e;else if ("object" == typeof e) if (Array.isArray(e)) for (t = 0; t < e.length; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f);else for (t in e) e[t] && (n && (n += " "), n += t);
|
||
return n;
|
||
}
|
||
function clsx() {
|
||
for (var e, t, f = 0, n = ""; f < arguments.length;) (e = arguments[f++]) && (t = r(e)) && (n && (n += " "), n += t);
|
||
return n;
|
||
}
|
||
/* harmony default export */ var dist_clsx = (clsx);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+utils@5.14.10_@types+react@18.2.22_react@18.2.0/node_modules/@mui/utils/esm/composeClasses/composeClasses.js
|
||
function composeClasses(slots, getUtilityClass) {
|
||
var classes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
|
||
var output = {};
|
||
Object.keys(slots).forEach(
|
||
// `Object.keys(slots)` can't be wider than `T` because we infer `T` from `slots`.
|
||
// @ts-expect-error https://github.com/microsoft/TypeScript/pull/12253#issuecomment-263132208
|
||
function (slot) {
|
||
output[slot] = slots[slot].reduce(function (acc, key) {
|
||
if (key) {
|
||
var utilityClass = getUtilityClass(key);
|
||
if (utilityClass !== '') {
|
||
acc.push(utilityClass);
|
||
}
|
||
if (classes && classes[key]) {
|
||
acc.push(classes[key]);
|
||
}
|
||
}
|
||
return acc;
|
||
}, []).join(' ');
|
||
});
|
||
return output;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@emotion+use-insertion-effect-with-fallbacks@1.0.1_react@18.2.0/node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js
|
||
|
||
var syncFallback = function syncFallback(create) {
|
||
return create();
|
||
};
|
||
var useInsertionEffect = react_namespaceObject['useInsertion' + 'Effect'] ? react_namespaceObject['useInsertion' + 'Effect'] : false;
|
||
var emotion_use_insertion_effect_with_fallbacks_browser_esm_useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;
|
||
var emotion_use_insertion_effect_with_fallbacks_browser_esm_useInsertionEffectWithLayoutFallback = useInsertionEffect || react.useLayoutEffect;
|
||
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@emotion+hash@0.9.1/node_modules/@emotion/hash/dist/emotion-hash.esm.js
|
||
/* eslint-disable */
|
||
// Inspired by https://github.com/garycourt/murmurhash-js
|
||
// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86
|
||
function murmur2(str) {
|
||
// 'm' and 'r' are mixing constants generated offline.
|
||
// They're not really 'magic', they just happen to work well.
|
||
// const m = 0x5bd1e995;
|
||
// const r = 24;
|
||
// Initialize the hash
|
||
var h = 0; // Mix 4 bytes at a time into the hash
|
||
|
||
var k,
|
||
i = 0,
|
||
len = str.length;
|
||
for (; len >= 4; ++i, len -= 4) {
|
||
k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;
|
||
k = /* Math.imul(k, m): */
|
||
(k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);
|
||
k ^= /* k >>> r: */
|
||
k >>> 24;
|
||
h = /* Math.imul(k, m): */
|
||
(k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^ /* Math.imul(h, m): */
|
||
(h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);
|
||
} // Handle the last few bytes of the input array
|
||
|
||
switch (len) {
|
||
case 3:
|
||
h ^= (str.charCodeAt(i + 2) & 0xff) << 16;
|
||
case 2:
|
||
h ^= (str.charCodeAt(i + 1) & 0xff) << 8;
|
||
case 1:
|
||
h ^= str.charCodeAt(i) & 0xff;
|
||
h = /* Math.imul(h, m): */
|
||
(h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);
|
||
} // Do a few final mixes of the hash to ensure the last few
|
||
// bytes are well-incorporated.
|
||
|
||
h ^= h >>> 13;
|
||
h = /* Math.imul(h, m): */
|
||
(h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);
|
||
return ((h ^ h >>> 15) >>> 0).toString(36);
|
||
}
|
||
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@emotion+unitless@0.8.1/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js
|
||
var unitlessKeys = {
|
||
animationIterationCount: 1,
|
||
aspectRatio: 1,
|
||
borderImageOutset: 1,
|
||
borderImageSlice: 1,
|
||
borderImageWidth: 1,
|
||
boxFlex: 1,
|
||
boxFlexGroup: 1,
|
||
boxOrdinalGroup: 1,
|
||
columnCount: 1,
|
||
columns: 1,
|
||
flex: 1,
|
||
flexGrow: 1,
|
||
flexPositive: 1,
|
||
flexShrink: 1,
|
||
flexNegative: 1,
|
||
flexOrder: 1,
|
||
gridRow: 1,
|
||
gridRowEnd: 1,
|
||
gridRowSpan: 1,
|
||
gridRowStart: 1,
|
||
gridColumn: 1,
|
||
gridColumnEnd: 1,
|
||
gridColumnSpan: 1,
|
||
gridColumnStart: 1,
|
||
msGridRow: 1,
|
||
msGridRowSpan: 1,
|
||
msGridColumn: 1,
|
||
msGridColumnSpan: 1,
|
||
fontWeight: 1,
|
||
lineHeight: 1,
|
||
opacity: 1,
|
||
order: 1,
|
||
orphans: 1,
|
||
tabSize: 1,
|
||
widows: 1,
|
||
zIndex: 1,
|
||
zoom: 1,
|
||
WebkitLineClamp: 1,
|
||
// SVG-related properties
|
||
fillOpacity: 1,
|
||
floodOpacity: 1,
|
||
stopOpacity: 1,
|
||
strokeDasharray: 1,
|
||
strokeDashoffset: 1,
|
||
strokeMiterlimit: 1,
|
||
strokeOpacity: 1,
|
||
strokeWidth: 1
|
||
};
|
||
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@emotion+memoize@0.8.1/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js
|
||
function memoize(fn) {
|
||
var cache = Object.create(null);
|
||
return function (arg) {
|
||
if (cache[arg] === undefined) cache[arg] = fn(arg);
|
||
return cache[arg];
|
||
};
|
||
}
|
||
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@emotion+serialize@1.1.2/node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js
|
||
|
||
|
||
|
||
var ILLEGAL_ESCAPE_SEQUENCE_ERROR = "You have illegal escape sequence in your template literal, most likely inside content's property value.\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \"content: '\\00d7';\" should become \"content: '\\\\00d7';\".\nYou can read more about this here:\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences";
|
||
var UNDEFINED_AS_OBJECT_KEY_ERROR = "You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).";
|
||
var hyphenateRegex = /[A-Z]|^ms/g;
|
||
var animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;
|
||
var isCustomProperty = function isCustomProperty(property) {
|
||
return property.charCodeAt(1) === 45;
|
||
};
|
||
var isProcessableValue = function isProcessableValue(value) {
|
||
return value != null && typeof value !== 'boolean';
|
||
};
|
||
var processStyleName = /* #__PURE__ */memoize(function (styleName) {
|
||
return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();
|
||
});
|
||
var processStyleValue = function processStyleValue(key, value) {
|
||
switch (key) {
|
||
case 'animation':
|
||
case 'animationName':
|
||
{
|
||
if (typeof value === 'string') {
|
||
return value.replace(animationRegex, function (match, p1, p2) {
|
||
cursor = {
|
||
name: p1,
|
||
styles: p2,
|
||
next: cursor
|
||
};
|
||
return p1;
|
||
});
|
||
}
|
||
}
|
||
}
|
||
if (unitlessKeys[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {
|
||
return value + 'px';
|
||
}
|
||
return value;
|
||
};
|
||
if (false) { var hyphenatedCache, hyphenPattern, msPattern, oldProcessStyleValue, contentValues, contentValuePattern; }
|
||
var noComponentSelectorMessage = (/* unused pure expression or super */ null && ('Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.'));
|
||
function handleInterpolation(mergedProps, registered, interpolation) {
|
||
if (interpolation == null) {
|
||
return '';
|
||
}
|
||
if (interpolation.__emotion_styles !== undefined) {
|
||
if (false) {}
|
||
return interpolation;
|
||
}
|
||
switch (typeof interpolation) {
|
||
case 'boolean':
|
||
{
|
||
return '';
|
||
}
|
||
case 'object':
|
||
{
|
||
if (interpolation.anim === 1) {
|
||
cursor = {
|
||
name: interpolation.name,
|
||
styles: interpolation.styles,
|
||
next: cursor
|
||
};
|
||
return interpolation.name;
|
||
}
|
||
if (interpolation.styles !== undefined) {
|
||
var next = interpolation.next;
|
||
if (next !== undefined) {
|
||
// not the most efficient thing ever but this is a pretty rare case
|
||
// and there will be very few iterations of this generally
|
||
while (next !== undefined) {
|
||
cursor = {
|
||
name: next.name,
|
||
styles: next.styles,
|
||
next: cursor
|
||
};
|
||
next = next.next;
|
||
}
|
||
}
|
||
var styles = interpolation.styles + ";";
|
||
if (false) {}
|
||
return styles;
|
||
}
|
||
return createStringFromObject(mergedProps, registered, interpolation);
|
||
}
|
||
case 'function':
|
||
{
|
||
if (mergedProps !== undefined) {
|
||
var previousCursor = cursor;
|
||
var result = interpolation(mergedProps);
|
||
cursor = previousCursor;
|
||
return handleInterpolation(mergedProps, registered, result);
|
||
} else if (false) {}
|
||
break;
|
||
}
|
||
case 'string':
|
||
if (false) { var replaced, matched; }
|
||
break;
|
||
} // finalize string values (regular strings and functions interpolated into css calls)
|
||
|
||
if (registered == null) {
|
||
return interpolation;
|
||
}
|
||
var cached = registered[interpolation];
|
||
return cached !== undefined ? cached : interpolation;
|
||
}
|
||
function createStringFromObject(mergedProps, registered, obj) {
|
||
var string = '';
|
||
if (Array.isArray(obj)) {
|
||
for (var i = 0; i < obj.length; i++) {
|
||
string += handleInterpolation(mergedProps, registered, obj[i]) + ";";
|
||
}
|
||
} else {
|
||
for (var _key in obj) {
|
||
var value = obj[_key];
|
||
if (typeof value !== 'object') {
|
||
if (registered != null && registered[value] !== undefined) {
|
||
string += _key + "{" + registered[value] + "}";
|
||
} else if (isProcessableValue(value)) {
|
||
string += processStyleName(_key) + ":" + processStyleValue(_key, value) + ";";
|
||
}
|
||
} else {
|
||
if (_key === 'NO_COMPONENT_SELECTOR' && "production" !== 'production') {}
|
||
if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {
|
||
for (var _i = 0; _i < value.length; _i++) {
|
||
if (isProcessableValue(value[_i])) {
|
||
string += processStyleName(_key) + ":" + processStyleValue(_key, value[_i]) + ";";
|
||
}
|
||
}
|
||
} else {
|
||
var interpolated = handleInterpolation(mergedProps, registered, value);
|
||
switch (_key) {
|
||
case 'animation':
|
||
case 'animationName':
|
||
{
|
||
string += processStyleName(_key) + ":" + interpolated + ";";
|
||
break;
|
||
}
|
||
default:
|
||
{
|
||
if (false) {}
|
||
string += _key + "{" + interpolated + "}";
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
return string;
|
||
}
|
||
var labelPattern = /label:\s*([^\s;\n{]+)\s*(;|$)/g;
|
||
var sourceMapPattern;
|
||
if (false) {} // this is the cursor for keyframes
|
||
// keyframes are stored on the SerializedStyles object as a linked list
|
||
|
||
var cursor;
|
||
var emotion_serialize_browser_esm_serializeStyles = function serializeStyles(args, registered, mergedProps) {
|
||
if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {
|
||
return args[0];
|
||
}
|
||
var stringMode = true;
|
||
var styles = '';
|
||
cursor = undefined;
|
||
var strings = args[0];
|
||
if (strings == null || strings.raw === undefined) {
|
||
stringMode = false;
|
||
styles += handleInterpolation(mergedProps, registered, strings);
|
||
} else {
|
||
if (false) {}
|
||
styles += strings[0];
|
||
} // we start at 1 since we've already handled the first arg
|
||
|
||
for (var i = 1; i < args.length; i++) {
|
||
styles += handleInterpolation(mergedProps, registered, args[i]);
|
||
if (stringMode) {
|
||
if (false) {}
|
||
styles += strings[i];
|
||
}
|
||
}
|
||
var sourceMap;
|
||
if (false) {} // using a global regex with .exec is stateful so lastIndex has to be reset each time
|
||
|
||
labelPattern.lastIndex = 0;
|
||
var identifierName = '';
|
||
var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5
|
||
|
||
while ((match = labelPattern.exec(styles)) !== null) {
|
||
identifierName += '-' +
|
||
// $FlowFixMe we know it's not null
|
||
match[1];
|
||
}
|
||
var name = murmur2(styles) + identifierName;
|
||
if (false) {}
|
||
return {
|
||
name: name,
|
||
styles: styles,
|
||
next: cursor
|
||
};
|
||
};
|
||
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@emotion+sheet@1.2.2/node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js
|
||
/*
|
||
|
||
Based off glamor's StyleSheet, thanks Sunil ❤️
|
||
|
||
high performance StyleSheet for css-in-js systems
|
||
|
||
- uses multiple style tags behind the scenes for millions of rules
|
||
- uses `insertRule` for appending in production for *much* faster performance
|
||
|
||
// usage
|
||
|
||
import { StyleSheet } from '@emotion/sheet'
|
||
|
||
let styleSheet = new StyleSheet({ key: '', container: document.head })
|
||
|
||
styleSheet.insert('#box { border: 1px solid red; }')
|
||
- appends a css rule into the stylesheet
|
||
|
||
styleSheet.flush()
|
||
- empties the stylesheet of all its contents
|
||
|
||
*/
|
||
// $FlowFixMe
|
||
function sheetForTag(tag) {
|
||
if (tag.sheet) {
|
||
// $FlowFixMe
|
||
return tag.sheet;
|
||
} // this weirdness brought to you by firefox
|
||
|
||
/* istanbul ignore next */
|
||
|
||
for (var i = 0; i < document.styleSheets.length; i++) {
|
||
if (document.styleSheets[i].ownerNode === tag) {
|
||
// $FlowFixMe
|
||
return document.styleSheets[i];
|
||
}
|
||
}
|
||
}
|
||
function createStyleElement(options) {
|
||
var tag = document.createElement('style');
|
||
tag.setAttribute('data-emotion', options.key);
|
||
if (options.nonce !== undefined) {
|
||
tag.setAttribute('nonce', options.nonce);
|
||
}
|
||
tag.appendChild(document.createTextNode(''));
|
||
tag.setAttribute('data-s', '');
|
||
return tag;
|
||
}
|
||
var StyleSheet = /*#__PURE__*/function () {
|
||
// Using Node instead of HTMLElement since container may be a ShadowRoot
|
||
function StyleSheet(options) {
|
||
var _this = this;
|
||
this._insertTag = function (tag) {
|
||
var before;
|
||
if (_this.tags.length === 0) {
|
||
if (_this.insertionPoint) {
|
||
before = _this.insertionPoint.nextSibling;
|
||
} else if (_this.prepend) {
|
||
before = _this.container.firstChild;
|
||
} else {
|
||
before = _this.before;
|
||
}
|
||
} else {
|
||
before = _this.tags[_this.tags.length - 1].nextSibling;
|
||
}
|
||
_this.container.insertBefore(tag, before);
|
||
_this.tags.push(tag);
|
||
};
|
||
this.isSpeedy = options.speedy === undefined ? "production" === 'production' : options.speedy;
|
||
this.tags = [];
|
||
this.ctr = 0;
|
||
this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets
|
||
|
||
this.key = options.key;
|
||
this.container = options.container;
|
||
this.prepend = options.prepend;
|
||
this.insertionPoint = options.insertionPoint;
|
||
this.before = null;
|
||
}
|
||
var _proto = StyleSheet.prototype;
|
||
_proto.hydrate = function hydrate(nodes) {
|
||
nodes.forEach(this._insertTag);
|
||
};
|
||
_proto.insert = function insert(rule) {
|
||
// the max length is how many rules we have per style tag, it's 65000 in speedy mode
|
||
// it's 1 in dev because we insert source maps that map a single rule to a location
|
||
// and you can only have one source map per style tag
|
||
if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {
|
||
this._insertTag(createStyleElement(this));
|
||
}
|
||
var tag = this.tags[this.tags.length - 1];
|
||
if (false) { var isImportRule; }
|
||
if (this.isSpeedy) {
|
||
var sheet = sheetForTag(tag);
|
||
try {
|
||
// this is the ultrafast version, works across browsers
|
||
// the big drawback is that the css won't be editable in devtools
|
||
sheet.insertRule(rule, sheet.cssRules.length);
|
||
} catch (e) {
|
||
if (false) {}
|
||
}
|
||
} else {
|
||
tag.appendChild(document.createTextNode(rule));
|
||
}
|
||
this.ctr++;
|
||
};
|
||
_proto.flush = function flush() {
|
||
// $FlowFixMe
|
||
this.tags.forEach(function (tag) {
|
||
return tag.parentNode && tag.parentNode.removeChild(tag);
|
||
});
|
||
this.tags = [];
|
||
this.ctr = 0;
|
||
if (false) {}
|
||
};
|
||
return StyleSheet;
|
||
}();
|
||
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Utility.js
|
||
/**
|
||
* @param {number}
|
||
* @return {number}
|
||
*/
|
||
var abs = Math.abs;
|
||
|
||
/**
|
||
* @param {number}
|
||
* @return {string}
|
||
*/
|
||
var Utility_from = String.fromCharCode;
|
||
|
||
/**
|
||
* @param {object}
|
||
* @return {object}
|
||
*/
|
||
var Utility_assign = Object.assign;
|
||
|
||
/**
|
||
* @param {string} value
|
||
* @param {number} length
|
||
* @return {number}
|
||
*/
|
||
function hash(value, length) {
|
||
return Utility_charat(value, 0) ^ 45 ? (((length << 2 ^ Utility_charat(value, 0)) << 2 ^ Utility_charat(value, 1)) << 2 ^ Utility_charat(value, 2)) << 2 ^ Utility_charat(value, 3) : 0;
|
||
}
|
||
|
||
/**
|
||
* @param {string} value
|
||
* @return {string}
|
||
*/
|
||
function trim(value) {
|
||
return value.trim();
|
||
}
|
||
|
||
/**
|
||
* @param {string} value
|
||
* @param {RegExp} pattern
|
||
* @return {string?}
|
||
*/
|
||
function Utility_match(value, pattern) {
|
||
return (value = pattern.exec(value)) ? value[0] : value;
|
||
}
|
||
|
||
/**
|
||
* @param {string} value
|
||
* @param {(string|RegExp)} pattern
|
||
* @param {string} replacement
|
||
* @return {string}
|
||
*/
|
||
function Utility_replace(value, pattern, replacement) {
|
||
return value.replace(pattern, replacement);
|
||
}
|
||
|
||
/**
|
||
* @param {string} value
|
||
* @param {string} search
|
||
* @return {number}
|
||
*/
|
||
function indexof(value, search) {
|
||
return value.indexOf(search);
|
||
}
|
||
|
||
/**
|
||
* @param {string} value
|
||
* @param {number} index
|
||
* @return {number}
|
||
*/
|
||
function Utility_charat(value, index) {
|
||
return value.charCodeAt(index) | 0;
|
||
}
|
||
|
||
/**
|
||
* @param {string} value
|
||
* @param {number} begin
|
||
* @param {number} end
|
||
* @return {string}
|
||
*/
|
||
function Utility_substr(value, begin, end) {
|
||
return value.slice(begin, end);
|
||
}
|
||
|
||
/**
|
||
* @param {string} value
|
||
* @return {number}
|
||
*/
|
||
function Utility_strlen(value) {
|
||
return value.length;
|
||
}
|
||
|
||
/**
|
||
* @param {any[]} value
|
||
* @return {number}
|
||
*/
|
||
function Utility_sizeof(value) {
|
||
return value.length;
|
||
}
|
||
|
||
/**
|
||
* @param {any} value
|
||
* @param {any[]} array
|
||
* @return {any}
|
||
*/
|
||
function Utility_append(value, array) {
|
||
return array.push(value), value;
|
||
}
|
||
|
||
/**
|
||
* @param {string[]} array
|
||
* @param {function} callback
|
||
* @return {string}
|
||
*/
|
||
function Utility_combine(array, callback) {
|
||
return array.map(callback).join('');
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Tokenizer.js
|
||
|
||
var line = 1;
|
||
var column = 1;
|
||
var Tokenizer_length = 0;
|
||
var position = 0;
|
||
var character = 0;
|
||
var characters = '';
|
||
|
||
/**
|
||
* @param {string} value
|
||
* @param {object | null} root
|
||
* @param {object | null} parent
|
||
* @param {string} type
|
||
* @param {string[] | string} props
|
||
* @param {object[] | string} children
|
||
* @param {number} length
|
||
*/
|
||
function node(value, root, parent, type, props, children, length) {
|
||
return {
|
||
value: value,
|
||
root: root,
|
||
parent: parent,
|
||
type: type,
|
||
props: props,
|
||
children: children,
|
||
line: line,
|
||
column: column,
|
||
length: length,
|
||
return: ''
|
||
};
|
||
}
|
||
|
||
/**
|
||
* @param {object} root
|
||
* @param {object} props
|
||
* @return {object}
|
||
*/
|
||
function Tokenizer_copy(root, props) {
|
||
return Utility_assign(node('', null, null, '', null, null, 0), root, {
|
||
length: -root.length
|
||
}, props);
|
||
}
|
||
|
||
/**
|
||
* @return {number}
|
||
*/
|
||
function Tokenizer_char() {
|
||
return character;
|
||
}
|
||
|
||
/**
|
||
* @return {number}
|
||
*/
|
||
function prev() {
|
||
character = position > 0 ? Utility_charat(characters, --position) : 0;
|
||
if (column--, character === 10) column = 1, line--;
|
||
return character;
|
||
}
|
||
|
||
/**
|
||
* @return {number}
|
||
*/
|
||
function next() {
|
||
character = position < Tokenizer_length ? Utility_charat(characters, position++) : 0;
|
||
if (column++, character === 10) column = 1, line++;
|
||
return character;
|
||
}
|
||
|
||
/**
|
||
* @return {number}
|
||
*/
|
||
function peek() {
|
||
return Utility_charat(characters, position);
|
||
}
|
||
|
||
/**
|
||
* @return {number}
|
||
*/
|
||
function caret() {
|
||
return position;
|
||
}
|
||
|
||
/**
|
||
* @param {number} begin
|
||
* @param {number} end
|
||
* @return {string}
|
||
*/
|
||
function slice(begin, end) {
|
||
return Utility_substr(characters, begin, end);
|
||
}
|
||
|
||
/**
|
||
* @param {number} type
|
||
* @return {number}
|
||
*/
|
||
function token(type) {
|
||
switch (type) {
|
||
// \0 \t \n \r \s whitespace token
|
||
case 0:
|
||
case 9:
|
||
case 10:
|
||
case 13:
|
||
case 32:
|
||
return 5;
|
||
// ! + , / > @ ~ isolate token
|
||
case 33:
|
||
case 43:
|
||
case 44:
|
||
case 47:
|
||
case 62:
|
||
case 64:
|
||
case 126:
|
||
// ; { } breakpoint token
|
||
case 59:
|
||
case 123:
|
||
case 125:
|
||
return 4;
|
||
// : accompanied token
|
||
case 58:
|
||
return 3;
|
||
// " ' ( [ opening delimit token
|
||
case 34:
|
||
case 39:
|
||
case 40:
|
||
case 91:
|
||
return 2;
|
||
// ) ] closing delimit token
|
||
case 41:
|
||
case 93:
|
||
return 1;
|
||
}
|
||
return 0;
|
||
}
|
||
|
||
/**
|
||
* @param {string} value
|
||
* @return {any[]}
|
||
*/
|
||
function alloc(value) {
|
||
return line = column = 1, Tokenizer_length = Utility_strlen(characters = value), position = 0, [];
|
||
}
|
||
|
||
/**
|
||
* @param {any} value
|
||
* @return {any}
|
||
*/
|
||
function dealloc(value) {
|
||
return characters = '', value;
|
||
}
|
||
|
||
/**
|
||
* @param {number} type
|
||
* @return {string}
|
||
*/
|
||
function delimit(type) {
|
||
return trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)));
|
||
}
|
||
|
||
/**
|
||
* @param {string} value
|
||
* @return {string[]}
|
||
*/
|
||
function Tokenizer_tokenize(value) {
|
||
return dealloc(tokenizer(alloc(value)));
|
||
}
|
||
|
||
/**
|
||
* @param {number} type
|
||
* @return {string}
|
||
*/
|
||
function whitespace(type) {
|
||
while (character = peek()) if (character < 33) next();else break;
|
||
return token(type) > 2 || token(character) > 3 ? '' : ' ';
|
||
}
|
||
|
||
/**
|
||
* @param {string[]} children
|
||
* @return {string[]}
|
||
*/
|
||
function tokenizer(children) {
|
||
while (next()) switch (token(character)) {
|
||
case 0:
|
||
append(identifier(position - 1), children);
|
||
break;
|
||
case 2:
|
||
append(delimit(character), children);
|
||
break;
|
||
default:
|
||
append(from(character), children);
|
||
}
|
||
return children;
|
||
}
|
||
|
||
/**
|
||
* @param {number} index
|
||
* @param {number} count
|
||
* @return {string}
|
||
*/
|
||
function escaping(index, count) {
|
||
while (--count && next())
|
||
// not 0-9 A-F a-f
|
||
if (character < 48 || character > 102 || character > 57 && character < 65 || character > 70 && character < 97) break;
|
||
return slice(index, caret() + (count < 6 && peek() == 32 && next() == 32));
|
||
}
|
||
|
||
/**
|
||
* @param {number} type
|
||
* @return {number}
|
||
*/
|
||
function delimiter(type) {
|
||
while (next()) switch (character) {
|
||
// ] ) " '
|
||
case type:
|
||
return position;
|
||
// " '
|
||
case 34:
|
||
case 39:
|
||
if (type !== 34 && type !== 39) delimiter(character);
|
||
break;
|
||
// (
|
||
case 40:
|
||
if (type === 41) delimiter(type);
|
||
break;
|
||
// \
|
||
case 92:
|
||
next();
|
||
break;
|
||
}
|
||
return position;
|
||
}
|
||
|
||
/**
|
||
* @param {number} type
|
||
* @param {number} index
|
||
* @return {number}
|
||
*/
|
||
function commenter(type, index) {
|
||
while (next())
|
||
// //
|
||
if (type + character === 47 + 10) break;
|
||
// /*
|
||
else if (type + character === 42 + 42 && peek() === 47) break;
|
||
return '/*' + slice(index, position - 1) + '*' + Utility_from(type === 47 ? type : next());
|
||
}
|
||
|
||
/**
|
||
* @param {number} index
|
||
* @return {string}
|
||
*/
|
||
function identifier(index) {
|
||
while (!token(peek())) next();
|
||
return slice(index, position);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Enum.js
|
||
var Enum_MS = '-ms-';
|
||
var Enum_MOZ = '-moz-';
|
||
var Enum_WEBKIT = '-webkit-';
|
||
var COMMENT = 'comm';
|
||
var Enum_RULESET = 'rule';
|
||
var Enum_DECLARATION = 'decl';
|
||
var PAGE = '@page';
|
||
var MEDIA = '@media';
|
||
var IMPORT = '@import';
|
||
var CHARSET = '@charset';
|
||
var VIEWPORT = '@viewport';
|
||
var SUPPORTS = '@supports';
|
||
var DOCUMENT = '@document';
|
||
var NAMESPACE = '@namespace';
|
||
var Enum_KEYFRAMES = '@keyframes';
|
||
var FONT_FACE = '@font-face';
|
||
var COUNTER_STYLE = '@counter-style';
|
||
var FONT_FEATURE_VALUES = '@font-feature-values';
|
||
var LAYER = '@layer';
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Serializer.js
|
||
|
||
|
||
|
||
/**
|
||
* @param {object[]} children
|
||
* @param {function} callback
|
||
* @return {string}
|
||
*/
|
||
function Serializer_serialize(children, callback) {
|
||
var output = '';
|
||
var length = Utility_sizeof(children);
|
||
for (var i = 0; i < length; i++) output += callback(children[i], i, children, callback) || '';
|
||
return output;
|
||
}
|
||
|
||
/**
|
||
* @param {object} element
|
||
* @param {number} index
|
||
* @param {object[]} children
|
||
* @param {function} callback
|
||
* @return {string}
|
||
*/
|
||
function stringify(element, index, children, callback) {
|
||
switch (element.type) {
|
||
case LAYER:
|
||
if (element.children.length) break;
|
||
case IMPORT:
|
||
case Enum_DECLARATION:
|
||
return element.return = element.return || element.value;
|
||
case COMMENT:
|
||
return '';
|
||
case Enum_KEYFRAMES:
|
||
return element.return = element.value + '{' + Serializer_serialize(element.children, callback) + '}';
|
||
case Enum_RULESET:
|
||
element.value = element.props.join(',');
|
||
}
|
||
return Utility_strlen(children = Serializer_serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : '';
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Middleware.js
|
||
|
||
|
||
|
||
|
||
|
||
|
||
/**
|
||
* @param {function[]} collection
|
||
* @return {function}
|
||
*/
|
||
function middleware(collection) {
|
||
var length = Utility_sizeof(collection);
|
||
return function (element, index, children, callback) {
|
||
var output = '';
|
||
for (var i = 0; i < length; i++) output += collection[i](element, index, children, callback) || '';
|
||
return output;
|
||
};
|
||
}
|
||
|
||
/**
|
||
* @param {function} callback
|
||
* @return {function}
|
||
*/
|
||
function rulesheet(callback) {
|
||
return function (element) {
|
||
if (!element.root) if (element = element.return) callback(element);
|
||
};
|
||
}
|
||
|
||
/**
|
||
* @param {object} element
|
||
* @param {number} index
|
||
* @param {object[]} children
|
||
* @param {function} callback
|
||
*/
|
||
function prefixer(element, index, children, callback) {
|
||
if (element.length > -1) if (!element.return) switch (element.type) {
|
||
case DECLARATION:
|
||
element.return = prefix(element.value, element.length, children);
|
||
return;
|
||
case KEYFRAMES:
|
||
return serialize([copy(element, {
|
||
value: replace(element.value, '@', '@' + WEBKIT)
|
||
})], callback);
|
||
case RULESET:
|
||
if (element.length) return combine(element.props, function (value) {
|
||
switch (match(value, /(::plac\w+|:read-\w+)/)) {
|
||
// :read-(only|write)
|
||
case ':read-only':
|
||
case ':read-write':
|
||
return serialize([copy(element, {
|
||
props: [replace(value, /:(read-\w+)/, ':' + MOZ + '$1')]
|
||
})], callback);
|
||
// :placeholder
|
||
case '::placeholder':
|
||
return serialize([copy(element, {
|
||
props: [replace(value, /:(plac\w+)/, ':' + WEBKIT + 'input-$1')]
|
||
}), copy(element, {
|
||
props: [replace(value, /:(plac\w+)/, ':' + MOZ + '$1')]
|
||
}), copy(element, {
|
||
props: [replace(value, /:(plac\w+)/, MS + 'input-$1')]
|
||
})], callback);
|
||
}
|
||
return '';
|
||
});
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @param {object} element
|
||
* @param {number} index
|
||
* @param {object[]} children
|
||
*/
|
||
function namespace(element) {
|
||
switch (element.type) {
|
||
case RULESET:
|
||
element.props = element.props.map(function (value) {
|
||
return combine(tokenize(value), function (value, index, children) {
|
||
switch (charat(value, 0)) {
|
||
// \f
|
||
case 12:
|
||
return substr(value, 1, strlen(value));
|
||
// \0 ( + > ~
|
||
case 0:
|
||
case 40:
|
||
case 43:
|
||
case 62:
|
||
case 126:
|
||
return value;
|
||
// :
|
||
case 58:
|
||
if (children[++index] === 'global') children[index] = '', children[++index] = '\f' + substr(children[index], index = 1, -1);
|
||
// \s
|
||
case 32:
|
||
return index === 1 ? '' : value;
|
||
default:
|
||
switch (index) {
|
||
case 0:
|
||
element = value;
|
||
return sizeof(children) > 1 ? '' : value;
|
||
case index = sizeof(children) - 1:
|
||
case 2:
|
||
return index === 2 ? value + element + element : value + element;
|
||
default:
|
||
return value;
|
||
}
|
||
}
|
||
});
|
||
});
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/stylis@4.2.0/node_modules/stylis/src/Parser.js
|
||
|
||
|
||
|
||
|
||
/**
|
||
* @param {string} value
|
||
* @return {object[]}
|
||
*/
|
||
function compile(value) {
|
||
return dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value));
|
||
}
|
||
|
||
/**
|
||
* @param {string} value
|
||
* @param {object} root
|
||
* @param {object?} parent
|
||
* @param {string[]} rule
|
||
* @param {string[]} rules
|
||
* @param {string[]} rulesets
|
||
* @param {number[]} pseudo
|
||
* @param {number[]} points
|
||
* @param {string[]} declarations
|
||
* @return {object}
|
||
*/
|
||
function parse(value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {
|
||
var index = 0;
|
||
var offset = 0;
|
||
var length = pseudo;
|
||
var atrule = 0;
|
||
var property = 0;
|
||
var previous = 0;
|
||
var variable = 1;
|
||
var scanning = 1;
|
||
var ampersand = 1;
|
||
var character = 0;
|
||
var type = '';
|
||
var props = rules;
|
||
var children = rulesets;
|
||
var reference = rule;
|
||
var characters = type;
|
||
while (scanning) switch (previous = character, character = next()) {
|
||
// (
|
||
case 40:
|
||
if (previous != 108 && Utility_charat(characters, length - 1) == 58) {
|
||
if (indexof(characters += Utility_replace(delimit(character), '&', '&\f'), '&\f') != -1) ampersand = -1;
|
||
break;
|
||
}
|
||
// " ' [
|
||
case 34:
|
||
case 39:
|
||
case 91:
|
||
characters += delimit(character);
|
||
break;
|
||
// \t \n \r \s
|
||
case 9:
|
||
case 10:
|
||
case 13:
|
||
case 32:
|
||
characters += whitespace(previous);
|
||
break;
|
||
// \
|
||
case 92:
|
||
characters += escaping(caret() - 1, 7);
|
||
continue;
|
||
// /
|
||
case 47:
|
||
switch (peek()) {
|
||
case 42:
|
||
case 47:
|
||
Utility_append(comment(commenter(next(), caret()), root, parent), declarations);
|
||
break;
|
||
default:
|
||
characters += '/';
|
||
}
|
||
break;
|
||
// {
|
||
case 123 * variable:
|
||
points[index++] = Utility_strlen(characters) * ampersand;
|
||
// } ; \0
|
||
case 125 * variable:
|
||
case 59:
|
||
case 0:
|
||
switch (character) {
|
||
// \0 }
|
||
case 0:
|
||
case 125:
|
||
scanning = 0;
|
||
// ;
|
||
case 59 + offset:
|
||
if (ampersand == -1) characters = Utility_replace(characters, /\f/g, '');
|
||
if (property > 0 && Utility_strlen(characters) - length) Utility_append(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(Utility_replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations);
|
||
break;
|
||
// @ ;
|
||
case 59:
|
||
characters += ';';
|
||
// { rule/at-rule
|
||
default:
|
||
Utility_append(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets);
|
||
if (character === 123) if (offset === 0) parse(characters, root, reference, reference, props, rulesets, length, points, children);else switch (atrule === 99 && Utility_charat(characters, 3) === 110 ? 100 : atrule) {
|
||
// d l m s
|
||
case 100:
|
||
case 108:
|
||
case 109:
|
||
case 115:
|
||
parse(value, reference, reference, rule && Utility_append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children);
|
||
break;
|
||
default:
|
||
parse(characters, reference, reference, reference, [''], children, 0, points, children);
|
||
}
|
||
}
|
||
index = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo;
|
||
break;
|
||
// :
|
||
case 58:
|
||
length = 1 + Utility_strlen(characters), property = previous;
|
||
default:
|
||
if (variable < 1) if (character == 123) --variable;else if (character == 125 && variable++ == 0 && prev() == 125) continue;
|
||
switch (characters += Utility_from(character), character * variable) {
|
||
// &
|
||
case 38:
|
||
ampersand = offset > 0 ? 1 : (characters += '\f', -1);
|
||
break;
|
||
// ,
|
||
case 44:
|
||
points[index++] = (Utility_strlen(characters) - 1) * ampersand, ampersand = 1;
|
||
break;
|
||
// @
|
||
case 64:
|
||
// -
|
||
if (peek() === 45) characters += delimit(next());
|
||
atrule = peek(), offset = length = Utility_strlen(type = characters += identifier(caret())), character++;
|
||
break;
|
||
// -
|
||
case 45:
|
||
if (previous === 45 && Utility_strlen(characters) == 2) variable = 0;
|
||
}
|
||
}
|
||
return rulesets;
|
||
}
|
||
|
||
/**
|
||
* @param {string} value
|
||
* @param {object} root
|
||
* @param {object?} parent
|
||
* @param {number} index
|
||
* @param {number} offset
|
||
* @param {string[]} rules
|
||
* @param {number[]} points
|
||
* @param {string} type
|
||
* @param {string[]} props
|
||
* @param {string[]} children
|
||
* @param {number} length
|
||
* @return {object}
|
||
*/
|
||
function ruleset(value, root, parent, index, offset, rules, points, type, props, children, length) {
|
||
var post = offset - 1;
|
||
var rule = offset === 0 ? rules : [''];
|
||
var size = Utility_sizeof(rule);
|
||
for (var i = 0, j = 0, k = 0; i < index; ++i) for (var x = 0, y = Utility_substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x) if (z = trim(j > 0 ? rule[x] + ' ' + y : Utility_replace(y, /&\f/g, rule[x]))) props[k++] = z;
|
||
return node(value, root, parent, offset === 0 ? Enum_RULESET : type, props, children, length);
|
||
}
|
||
|
||
/**
|
||
* @param {number} value
|
||
* @param {object} root
|
||
* @param {object?} parent
|
||
* @return {object}
|
||
*/
|
||
function comment(value, root, parent) {
|
||
return node(value, root, parent, COMMENT, Utility_from(Tokenizer_char()), Utility_substr(value, 2, -2), 0);
|
||
}
|
||
|
||
/**
|
||
* @param {string} value
|
||
* @param {object} root
|
||
* @param {object?} parent
|
||
* @param {number} length
|
||
* @return {object}
|
||
*/
|
||
function declaration(value, root, parent, length) {
|
||
return node(value, root, parent, Enum_DECLARATION, Utility_substr(value, 0, length), Utility_substr(value, length + 1, -1), length);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@emotion+cache@11.11.0/node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js
|
||
|
||
|
||
|
||
|
||
var identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {
|
||
var previous = 0;
|
||
var character = 0;
|
||
while (true) {
|
||
previous = character;
|
||
character = peek(); // &\f
|
||
|
||
if (previous === 38 && character === 12) {
|
||
points[index] = 1;
|
||
}
|
||
if (token(character)) {
|
||
break;
|
||
}
|
||
next();
|
||
}
|
||
return slice(begin, position);
|
||
};
|
||
var toRules = function toRules(parsed, points) {
|
||
// pretend we've started with a comma
|
||
var index = -1;
|
||
var character = 44;
|
||
do {
|
||
switch (token(character)) {
|
||
case 0:
|
||
// &\f
|
||
if (character === 38 && peek() === 12) {
|
||
// this is not 100% correct, we don't account for literal sequences here - like for example quoted strings
|
||
// stylis inserts \f after & to know when & where it should replace this sequence with the context selector
|
||
// and when it should just concatenate the outer and inner selectors
|
||
// it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here
|
||
points[index] = 1;
|
||
}
|
||
parsed[index] += identifierWithPointTracking(position - 1, points, index);
|
||
break;
|
||
case 2:
|
||
parsed[index] += delimit(character);
|
||
break;
|
||
case 4:
|
||
// comma
|
||
if (character === 44) {
|
||
// colon
|
||
parsed[++index] = peek() === 58 ? '&\f' : '';
|
||
points[index] = parsed[index].length;
|
||
break;
|
||
}
|
||
|
||
// fallthrough
|
||
|
||
default:
|
||
parsed[index] += Utility_from(character);
|
||
}
|
||
} while (character = next());
|
||
return parsed;
|
||
};
|
||
var getRules = function getRules(value, points) {
|
||
return dealloc(toRules(alloc(value), points));
|
||
}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11
|
||
|
||
var fixedElements = /* #__PURE__ */new WeakMap();
|
||
var compat = function compat(element) {
|
||
if (element.type !== 'rule' || !element.parent ||
|
||
// positive .length indicates that this rule contains pseudo
|
||
// negative .length indicates that this rule has been already prefixed
|
||
element.length < 1) {
|
||
return;
|
||
}
|
||
var value = element.value,
|
||
parent = element.parent;
|
||
var isImplicitRule = element.column === parent.column && element.line === parent.line;
|
||
while (parent.type !== 'rule') {
|
||
parent = parent.parent;
|
||
if (!parent) return;
|
||
} // short-circuit for the simplest case
|
||
|
||
if (element.props.length === 1 && value.charCodeAt(0) !== 58
|
||
/* colon */ && !fixedElements.get(parent)) {
|
||
return;
|
||
} // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)
|
||
// then the props has already been manipulated beforehand as they that array is shared between it and its "rule parent"
|
||
|
||
if (isImplicitRule) {
|
||
return;
|
||
}
|
||
fixedElements.set(element, true);
|
||
var points = [];
|
||
var rules = getRules(value, points);
|
||
var parentRules = parent.props;
|
||
for (var i = 0, k = 0; i < rules.length; i++) {
|
||
for (var j = 0; j < parentRules.length; j++, k++) {
|
||
element.props[k] = points[i] ? rules[i].replace(/&\f/g, parentRules[j]) : parentRules[j] + " " + rules[i];
|
||
}
|
||
}
|
||
};
|
||
var removeLabel = function removeLabel(element) {
|
||
if (element.type === 'decl') {
|
||
var value = element.value;
|
||
if (
|
||
// charcode for l
|
||
value.charCodeAt(0) === 108 &&
|
||
// charcode for b
|
||
value.charCodeAt(2) === 98) {
|
||
// this ignores label
|
||
element["return"] = '';
|
||
element.value = '';
|
||
}
|
||
}
|
||
};
|
||
var ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';
|
||
var isIgnoringComment = function isIgnoringComment(element) {
|
||
return element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;
|
||
};
|
||
var createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {
|
||
return function (element, index, children) {
|
||
if (element.type !== 'rule' || cache.compat) return;
|
||
var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);
|
||
if (unsafePseudoClasses) {
|
||
var isNested = !!element.parent; // in nested rules comments become children of the "auto-inserted" rule and that's always the `element.parent`
|
||
//
|
||
// considering this input:
|
||
// .a {
|
||
// .b /* comm */ {}
|
||
// color: hotpink;
|
||
// }
|
||
// we get output corresponding to this:
|
||
// .a {
|
||
// & {
|
||
// /* comm */
|
||
// color: hotpink;
|
||
// }
|
||
// .b {}
|
||
// }
|
||
|
||
var commentContainer = isNested ? element.parent.children :
|
||
// global rule at the root level
|
||
children;
|
||
for (var i = commentContainer.length - 1; i >= 0; i--) {
|
||
var node = commentContainer[i];
|
||
if (node.line < element.line) {
|
||
break;
|
||
} // it is quite weird but comments are *usually* put at `column: element.column - 1`
|
||
// so we seek *from the end* for the node that is earlier than the rule's `element` and check that
|
||
// this will also match inputs like this:
|
||
// .a {
|
||
// /* comm */
|
||
// .b {}
|
||
// }
|
||
//
|
||
// but that is fine
|
||
//
|
||
// it would be the easiest to change the placement of the comment to be the first child of the rule:
|
||
// .a {
|
||
// .b { /* comm */ }
|
||
// }
|
||
// with such inputs we wouldn't have to search for the comment at all
|
||
// TODO: consider changing this comment placement in the next major version
|
||
|
||
if (node.column < element.column) {
|
||
if (isIgnoringComment(node)) {
|
||
return;
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
unsafePseudoClasses.forEach(function (unsafePseudoClass) {
|
||
console.error("The pseudo class \"" + unsafePseudoClass + "\" is potentially unsafe when doing server-side rendering. Try changing it to \"" + unsafePseudoClass.split('-child')[0] + "-of-type\".");
|
||
});
|
||
}
|
||
};
|
||
};
|
||
var isImportRule = function isImportRule(element) {
|
||
return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;
|
||
};
|
||
var isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {
|
||
for (var i = index - 1; i >= 0; i--) {
|
||
if (!isImportRule(children[i])) {
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
}; // use this to remove incorrect elements from further processing
|
||
// so they don't get handed to the `sheet` (or anything else)
|
||
// as that could potentially lead to additional logs which in turn could be overhelming to the user
|
||
|
||
var nullifyElement = function nullifyElement(element) {
|
||
element.type = '';
|
||
element.value = '';
|
||
element["return"] = '';
|
||
element.children = '';
|
||
element.props = '';
|
||
};
|
||
var incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {
|
||
if (!isImportRule(element)) {
|
||
return;
|
||
}
|
||
if (element.parent) {
|
||
console.error("`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.");
|
||
nullifyElement(element);
|
||
} else if (isPrependedWithRegularRules(index, children)) {
|
||
console.error("`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.");
|
||
nullifyElement(element);
|
||
}
|
||
};
|
||
|
||
/* eslint-disable no-fallthrough */
|
||
|
||
function emotion_cache_browser_esm_prefix(value, length) {
|
||
switch (hash(value, length)) {
|
||
// color-adjust
|
||
case 5103:
|
||
return Enum_WEBKIT + 'print-' + value + value;
|
||
// animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)
|
||
|
||
case 5737:
|
||
case 4201:
|
||
case 3177:
|
||
case 3433:
|
||
case 1641:
|
||
case 4457:
|
||
case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break
|
||
|
||
case 5572:
|
||
case 6356:
|
||
case 5844:
|
||
case 3191:
|
||
case 6645:
|
||
case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,
|
||
|
||
case 6391:
|
||
case 5879:
|
||
case 5623:
|
||
case 6135:
|
||
case 4599:
|
||
case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)
|
||
|
||
case 4215:
|
||
case 6389:
|
||
case 5109:
|
||
case 5365:
|
||
case 5621:
|
||
case 3829:
|
||
return Enum_WEBKIT + value + value;
|
||
// appearance, user-select, transform, hyphens, text-size-adjust
|
||
|
||
case 5349:
|
||
case 4246:
|
||
case 4810:
|
||
case 6968:
|
||
case 2756:
|
||
return Enum_WEBKIT + value + Enum_MOZ + value + Enum_MS + value + value;
|
||
// flex, flex-direction
|
||
|
||
case 6828:
|
||
case 4268:
|
||
return Enum_WEBKIT + value + Enum_MS + value + value;
|
||
// order
|
||
|
||
case 6165:
|
||
return Enum_WEBKIT + value + Enum_MS + 'flex-' + value + value;
|
||
// align-items
|
||
|
||
case 5187:
|
||
return Enum_WEBKIT + value + Utility_replace(value, /(\w+).+(:[^]+)/, Enum_WEBKIT + 'box-$1$2' + Enum_MS + 'flex-$1$2') + value;
|
||
// align-self
|
||
|
||
case 5443:
|
||
return Enum_WEBKIT + value + Enum_MS + 'flex-item-' + Utility_replace(value, /flex-|-self/, '') + value;
|
||
// align-content
|
||
|
||
case 4675:
|
||
return Enum_WEBKIT + value + Enum_MS + 'flex-line-pack' + Utility_replace(value, /align-content|flex-|-self/, '') + value;
|
||
// flex-shrink
|
||
|
||
case 5548:
|
||
return Enum_WEBKIT + value + Enum_MS + Utility_replace(value, 'shrink', 'negative') + value;
|
||
// flex-basis
|
||
|
||
case 5292:
|
||
return Enum_WEBKIT + value + Enum_MS + Utility_replace(value, 'basis', 'preferred-size') + value;
|
||
// flex-grow
|
||
|
||
case 6060:
|
||
return Enum_WEBKIT + 'box-' + Utility_replace(value, '-grow', '') + Enum_WEBKIT + value + Enum_MS + Utility_replace(value, 'grow', 'positive') + value;
|
||
// transition
|
||
|
||
case 4554:
|
||
return Enum_WEBKIT + Utility_replace(value, /([^-])(transform)/g, '$1' + Enum_WEBKIT + '$2') + value;
|
||
// cursor
|
||
|
||
case 6187:
|
||
return Utility_replace(Utility_replace(Utility_replace(value, /(zoom-|grab)/, Enum_WEBKIT + '$1'), /(image-set)/, Enum_WEBKIT + '$1'), value, '') + value;
|
||
// background, background-image
|
||
|
||
case 5495:
|
||
case 3959:
|
||
return Utility_replace(value, /(image-set\([^]*)/, Enum_WEBKIT + '$1' + '$`$1');
|
||
// justify-content
|
||
|
||
case 4968:
|
||
return Utility_replace(Utility_replace(value, /(.+:)(flex-)?(.*)/, Enum_WEBKIT + 'box-pack:$3' + Enum_MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + Enum_WEBKIT + value + value;
|
||
// (margin|padding)-inline-(start|end)
|
||
|
||
case 4095:
|
||
case 3583:
|
||
case 4068:
|
||
case 2532:
|
||
return Utility_replace(value, /(.+)-inline(.+)/, Enum_WEBKIT + '$1$2') + value;
|
||
// (min|max)?(width|height|inline-size|block-size)
|
||
|
||
case 8116:
|
||
case 7059:
|
||
case 5753:
|
||
case 5535:
|
||
case 5445:
|
||
case 5701:
|
||
case 4933:
|
||
case 4677:
|
||
case 5533:
|
||
case 5789:
|
||
case 5021:
|
||
case 4765:
|
||
// stretch, max-content, min-content, fill-available
|
||
if (Utility_strlen(value) - 1 - length > 6) switch (Utility_charat(value, length + 1)) {
|
||
// (m)ax-content, (m)in-content
|
||
case 109:
|
||
// -
|
||
if (Utility_charat(value, length + 4) !== 45) break;
|
||
// (f)ill-available, (f)it-content
|
||
|
||
case 102:
|
||
return Utility_replace(value, /(.+:)(.+)-([^]+)/, '$1' + Enum_WEBKIT + '$2-$3' + '$1' + Enum_MOZ + (Utility_charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;
|
||
// (s)tretch
|
||
|
||
case 115:
|
||
return ~indexof(value, 'stretch') ? emotion_cache_browser_esm_prefix(Utility_replace(value, 'stretch', 'fill-available'), length) + value : value;
|
||
}
|
||
break;
|
||
// position: sticky
|
||
|
||
case 4949:
|
||
// (s)ticky?
|
||
if (Utility_charat(value, length + 1) !== 115) break;
|
||
// display: (flex|inline-flex)
|
||
|
||
case 6444:
|
||
switch (Utility_charat(value, Utility_strlen(value) - 3 - (~indexof(value, '!important') && 10))) {
|
||
// stic(k)y
|
||
case 107:
|
||
return Utility_replace(value, ':', ':' + Enum_WEBKIT) + value;
|
||
// (inline-)?fl(e)x
|
||
|
||
case 101:
|
||
return Utility_replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + Enum_WEBKIT + (Utility_charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + Enum_WEBKIT + '$2$3' + '$1' + Enum_MS + '$2box$3') + value;
|
||
}
|
||
break;
|
||
// writing-mode
|
||
|
||
case 5936:
|
||
switch (Utility_charat(value, length + 11)) {
|
||
// vertical-l(r)
|
||
case 114:
|
||
return Enum_WEBKIT + value + Enum_MS + Utility_replace(value, /[svh]\w+-[tblr]{2}/, 'tb') + value;
|
||
// vertical-r(l)
|
||
|
||
case 108:
|
||
return Enum_WEBKIT + value + Enum_MS + Utility_replace(value, /[svh]\w+-[tblr]{2}/, 'tb-rl') + value;
|
||
// horizontal(-)tb
|
||
|
||
case 45:
|
||
return Enum_WEBKIT + value + Enum_MS + Utility_replace(value, /[svh]\w+-[tblr]{2}/, 'lr') + value;
|
||
}
|
||
return Enum_WEBKIT + value + Enum_MS + value + value;
|
||
}
|
||
return value;
|
||
}
|
||
var emotion_cache_browser_esm_prefixer = function prefixer(element, index, children, callback) {
|
||
if (element.length > -1) if (!element["return"]) switch (element.type) {
|
||
case Enum_DECLARATION:
|
||
element["return"] = emotion_cache_browser_esm_prefix(element.value, element.length);
|
||
break;
|
||
case Enum_KEYFRAMES:
|
||
return Serializer_serialize([Tokenizer_copy(element, {
|
||
value: Utility_replace(element.value, '@', '@' + Enum_WEBKIT)
|
||
})], callback);
|
||
case Enum_RULESET:
|
||
if (element.length) return Utility_combine(element.props, function (value) {
|
||
switch (Utility_match(value, /(::plac\w+|:read-\w+)/)) {
|
||
// :read-(only|write)
|
||
case ':read-only':
|
||
case ':read-write':
|
||
return Serializer_serialize([Tokenizer_copy(element, {
|
||
props: [Utility_replace(value, /:(read-\w+)/, ':' + Enum_MOZ + '$1')]
|
||
})], callback);
|
||
// :placeholder
|
||
|
||
case '::placeholder':
|
||
return Serializer_serialize([Tokenizer_copy(element, {
|
||
props: [Utility_replace(value, /:(plac\w+)/, ':' + Enum_WEBKIT + 'input-$1')]
|
||
}), Tokenizer_copy(element, {
|
||
props: [Utility_replace(value, /:(plac\w+)/, ':' + Enum_MOZ + '$1')]
|
||
}), Tokenizer_copy(element, {
|
||
props: [Utility_replace(value, /:(plac\w+)/, Enum_MS + 'input-$1')]
|
||
})], callback);
|
||
}
|
||
return '';
|
||
});
|
||
}
|
||
};
|
||
var defaultStylisPlugins = [emotion_cache_browser_esm_prefixer];
|
||
var createCache = function createCache(options) {
|
||
var key = options.key;
|
||
if (false) {}
|
||
if (key === 'css') {
|
||
var ssrStyles = document.querySelectorAll("style[data-emotion]:not([data-s])"); // get SSRed styles out of the way of React's hydration
|
||
// document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)
|
||
// note this very very intentionally targets all style elements regardless of the key to ensure
|
||
// that creating a cache works inside of render of a React component
|
||
|
||
Array.prototype.forEach.call(ssrStyles, function (node) {
|
||
// we want to only move elements which have a space in the data-emotion attribute value
|
||
// because that indicates that it is an Emotion 11 server-side rendered style elements
|
||
// while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector
|
||
// Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)
|
||
// so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles
|
||
// will not result in the Emotion 10 styles being destroyed
|
||
var dataEmotionAttribute = node.getAttribute('data-emotion');
|
||
if (dataEmotionAttribute.indexOf(' ') === -1) {
|
||
return;
|
||
}
|
||
document.head.appendChild(node);
|
||
node.setAttribute('data-s', '');
|
||
});
|
||
}
|
||
var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;
|
||
if (false) {}
|
||
var inserted = {};
|
||
var container;
|
||
var nodesToHydrate = [];
|
||
{
|
||
container = options.container || document.head;
|
||
Array.prototype.forEach.call(
|
||
// this means we will ignore elements which don't have a space in them which
|
||
// means that the style elements we're looking at are only Emotion 11 server-rendered style elements
|
||
document.querySelectorAll("style[data-emotion^=\"" + key + " \"]"), function (node) {
|
||
var attrib = node.getAttribute("data-emotion").split(' '); // $FlowFixMe
|
||
|
||
for (var i = 1; i < attrib.length; i++) {
|
||
inserted[attrib[i]] = true;
|
||
}
|
||
nodesToHydrate.push(node);
|
||
});
|
||
}
|
||
var _insert;
|
||
var omnipresentPlugins = [compat, removeLabel];
|
||
if (false) {}
|
||
{
|
||
var currentSheet;
|
||
var finalizingPlugins = [stringify, false ? 0 : rulesheet(function (rule) {
|
||
currentSheet.insert(rule);
|
||
})];
|
||
var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));
|
||
var stylis = function stylis(styles) {
|
||
return Serializer_serialize(compile(styles), serializer);
|
||
};
|
||
_insert = function insert(selector, serialized, sheet, shouldCache) {
|
||
currentSheet = sheet;
|
||
if (false) {}
|
||
stylis(selector ? selector + "{" + serialized.styles + "}" : serialized.styles);
|
||
if (shouldCache) {
|
||
cache.inserted[serialized.name] = true;
|
||
}
|
||
};
|
||
}
|
||
var cache = {
|
||
key: key,
|
||
sheet: new StyleSheet({
|
||
key: key,
|
||
container: container,
|
||
nonce: options.nonce,
|
||
speedy: options.speedy,
|
||
prepend: options.prepend,
|
||
insertionPoint: options.insertionPoint
|
||
}),
|
||
nonce: options.nonce,
|
||
inserted: inserted,
|
||
registered: {},
|
||
insert: _insert
|
||
};
|
||
cache.sheet.hydrate(nodesToHydrate);
|
||
return cache;
|
||
};
|
||
|
||
// EXTERNAL MODULE: ./node_modules/.pnpm/hoist-non-react-statics@3.3.2/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js
|
||
var hoist_non_react_statics_cjs = __webpack_require__(9761);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@emotion+react@11.11.1_@types+react@18.2.22_react@18.2.0/node_modules/@emotion/react/dist/emotion-react.browser.esm.js
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
var pkg = {
|
||
name: "@emotion/react",
|
||
version: "11.11.1",
|
||
main: "dist/emotion-react.cjs.js",
|
||
module: "dist/emotion-react.esm.js",
|
||
browser: {
|
||
"./dist/emotion-react.esm.js": "./dist/emotion-react.browser.esm.js"
|
||
},
|
||
exports: {
|
||
".": {
|
||
module: {
|
||
worker: "./dist/emotion-react.worker.esm.js",
|
||
browser: "./dist/emotion-react.browser.esm.js",
|
||
"default": "./dist/emotion-react.esm.js"
|
||
},
|
||
"import": "./dist/emotion-react.cjs.mjs",
|
||
"default": "./dist/emotion-react.cjs.js"
|
||
},
|
||
"./jsx-runtime": {
|
||
module: {
|
||
worker: "./jsx-runtime/dist/emotion-react-jsx-runtime.worker.esm.js",
|
||
browser: "./jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js",
|
||
"default": "./jsx-runtime/dist/emotion-react-jsx-runtime.esm.js"
|
||
},
|
||
"import": "./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.mjs",
|
||
"default": "./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.js"
|
||
},
|
||
"./_isolated-hnrs": {
|
||
module: {
|
||
worker: "./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.worker.esm.js",
|
||
browser: "./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js",
|
||
"default": "./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.esm.js"
|
||
},
|
||
"import": "./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.mjs",
|
||
"default": "./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.js"
|
||
},
|
||
"./jsx-dev-runtime": {
|
||
module: {
|
||
worker: "./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.worker.esm.js",
|
||
browser: "./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.esm.js",
|
||
"default": "./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.esm.js"
|
||
},
|
||
"import": "./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.mjs",
|
||
"default": "./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.js"
|
||
},
|
||
"./package.json": "./package.json",
|
||
"./types/css-prop": "./types/css-prop.d.ts",
|
||
"./macro": {
|
||
types: {
|
||
"import": "./macro.d.mts",
|
||
"default": "./macro.d.ts"
|
||
},
|
||
"default": "./macro.js"
|
||
}
|
||
},
|
||
types: "types/index.d.ts",
|
||
files: ["src", "dist", "jsx-runtime", "jsx-dev-runtime", "_isolated-hnrs", "types/*.d.ts", "macro.*"],
|
||
sideEffects: false,
|
||
author: "Emotion Contributors",
|
||
license: "MIT",
|
||
scripts: {
|
||
"test:typescript": "dtslint types"
|
||
},
|
||
dependencies: {
|
||
"@babel/runtime": "^7.18.3",
|
||
"@emotion/babel-plugin": "^11.11.0",
|
||
"@emotion/cache": "^11.11.0",
|
||
"@emotion/serialize": "^1.1.2",
|
||
"@emotion/use-insertion-effect-with-fallbacks": "^1.0.1",
|
||
"@emotion/utils": "^1.2.1",
|
||
"@emotion/weak-memoize": "^0.3.1",
|
||
"hoist-non-react-statics": "^3.3.1"
|
||
},
|
||
peerDependencies: {
|
||
react: ">=16.8.0"
|
||
},
|
||
peerDependenciesMeta: {
|
||
"@types/react": {
|
||
optional: true
|
||
}
|
||
},
|
||
devDependencies: {
|
||
"@definitelytyped/dtslint": "0.0.112",
|
||
"@emotion/css": "11.11.0",
|
||
"@emotion/css-prettifier": "1.1.3",
|
||
"@emotion/server": "11.11.0",
|
||
"@emotion/styled": "11.11.0",
|
||
"html-tag-names": "^1.1.2",
|
||
react: "16.14.0",
|
||
"svg-tag-names": "^1.1.1",
|
||
typescript: "^4.5.5"
|
||
},
|
||
repository: "https://github.com/emotion-js/emotion/tree/main/packages/react",
|
||
publishConfig: {
|
||
access: "public"
|
||
},
|
||
"umd:main": "dist/emotion-react.umd.min.js",
|
||
preconstruct: {
|
||
entrypoints: ["./index.js", "./jsx-runtime.js", "./jsx-dev-runtime.js", "./_isolated-hnrs.js"],
|
||
umdName: "emotionReact",
|
||
exports: {
|
||
envConditions: ["browser", "worker"],
|
||
extra: {
|
||
"./types/css-prop": "./types/css-prop.d.ts",
|
||
"./macro": {
|
||
types: {
|
||
"import": "./macro.d.mts",
|
||
"default": "./macro.d.ts"
|
||
},
|
||
"default": "./macro.js"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
};
|
||
var jsx = function jsx(type, props) {
|
||
var args = arguments;
|
||
if (props == null || !hasOwnProperty.call(props, 'css')) {
|
||
// $FlowFixMe
|
||
return React.createElement.apply(undefined, args);
|
||
}
|
||
var argsLength = args.length;
|
||
var createElementArgArray = new Array(argsLength);
|
||
createElementArgArray[0] = Emotion;
|
||
createElementArgArray[1] = createEmotionProps(type, props);
|
||
for (var i = 2; i < argsLength; i++) {
|
||
createElementArgArray[i] = args[i];
|
||
} // $FlowFixMe
|
||
|
||
return React.createElement.apply(null, createElementArgArray);
|
||
};
|
||
var warnedAboutCssPropForGlobal = false; // maintain place over rerenders.
|
||
// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild
|
||
// initial client-side render from SSR, use place of hydrating tag
|
||
|
||
var Global = /* #__PURE__ */(/* unused pure expression or super */ null && (withEmotionCache(function (props, cache) {
|
||
if (false) {}
|
||
var styles = props.styles;
|
||
var serialized = serializeStyles([styles], undefined, React.useContext(ThemeContext));
|
||
if (!isBrowser$1) {
|
||
var _ref;
|
||
var serializedNames = serialized.name;
|
||
var serializedStyles = serialized.styles;
|
||
var next = serialized.next;
|
||
while (next !== undefined) {
|
||
serializedNames += ' ' + next.name;
|
||
serializedStyles += next.styles;
|
||
next = next.next;
|
||
}
|
||
var shouldCache = cache.compat === true;
|
||
var rules = cache.insert("", {
|
||
name: serializedNames,
|
||
styles: serializedStyles
|
||
}, cache.sheet, shouldCache);
|
||
if (shouldCache) {
|
||
return null;
|
||
}
|
||
return /*#__PURE__*/React.createElement("style", (_ref = {}, _ref["data-emotion"] = cache.key + "-global " + serializedNames, _ref.dangerouslySetInnerHTML = {
|
||
__html: rules
|
||
}, _ref.nonce = cache.sheet.nonce, _ref));
|
||
} // yes, i know these hooks are used conditionally
|
||
// but it is based on a constant that will never change at runtime
|
||
// it's effectively like having two implementations and switching them out
|
||
// so it's not actually breaking anything
|
||
|
||
var sheetRef = React.useRef();
|
||
useInsertionEffectWithLayoutFallback(function () {
|
||
var key = cache.key + "-global"; // use case of https://github.com/emotion-js/emotion/issues/2675
|
||
|
||
var sheet = new cache.sheet.constructor({
|
||
key: key,
|
||
nonce: cache.sheet.nonce,
|
||
container: cache.sheet.container,
|
||
speedy: cache.sheet.isSpeedy
|
||
});
|
||
var rehydrating = false; // $FlowFixMe
|
||
|
||
var node = document.querySelector("style[data-emotion=\"" + key + " " + serialized.name + "\"]");
|
||
if (cache.sheet.tags.length) {
|
||
sheet.before = cache.sheet.tags[0];
|
||
}
|
||
if (node !== null) {
|
||
rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other <Global/>s
|
||
|
||
node.setAttribute('data-emotion', key);
|
||
sheet.hydrate([node]);
|
||
}
|
||
sheetRef.current = [sheet, rehydrating];
|
||
return function () {
|
||
sheet.flush();
|
||
};
|
||
}, [cache]);
|
||
useInsertionEffectWithLayoutFallback(function () {
|
||
var sheetRefCurrent = sheetRef.current;
|
||
var sheet = sheetRefCurrent[0],
|
||
rehydrating = sheetRefCurrent[1];
|
||
if (rehydrating) {
|
||
sheetRefCurrent[1] = false;
|
||
return;
|
||
}
|
||
if (serialized.next !== undefined) {
|
||
// insert keyframes
|
||
insertStyles(cache, serialized.next, true);
|
||
}
|
||
if (sheet.tags.length) {
|
||
// if this doesn't exist then it will be null so the style element will be appended
|
||
var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;
|
||
sheet.before = element;
|
||
sheet.flush();
|
||
}
|
||
cache.insert("", serialized, sheet, false);
|
||
}, [cache, serialized.name]);
|
||
return null;
|
||
})));
|
||
if (false) {}
|
||
function css() {
|
||
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
||
args[_key] = arguments[_key];
|
||
}
|
||
return emotion_serialize_browser_esm_serializeStyles(args);
|
||
}
|
||
var keyframes = function keyframes() {
|
||
var insertable = css.apply(void 0, arguments);
|
||
var name = "animation-" + insertable.name; // $FlowFixMe
|
||
|
||
return {
|
||
name: name,
|
||
styles: "@keyframes " + name + "{" + insertable.styles + "}",
|
||
anim: 1,
|
||
toString: function toString() {
|
||
return "_EMO_" + this.name + "_" + this.styles + "_EMO_";
|
||
}
|
||
};
|
||
};
|
||
var classnames = function classnames(args) {
|
||
var len = args.length;
|
||
var i = 0;
|
||
var cls = '';
|
||
for (; i < len; i++) {
|
||
var arg = args[i];
|
||
if (arg == null) continue;
|
||
var toAdd = void 0;
|
||
switch (typeof arg) {
|
||
case 'boolean':
|
||
break;
|
||
case 'object':
|
||
{
|
||
if (Array.isArray(arg)) {
|
||
toAdd = classnames(arg);
|
||
} else {
|
||
if (false) {}
|
||
toAdd = '';
|
||
for (var k in arg) {
|
||
if (arg[k] && k) {
|
||
toAdd && (toAdd += ' ');
|
||
toAdd += k;
|
||
}
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
default:
|
||
{
|
||
toAdd = arg;
|
||
}
|
||
}
|
||
if (toAdd) {
|
||
cls && (cls += ' ');
|
||
cls += toAdd;
|
||
}
|
||
}
|
||
return cls;
|
||
};
|
||
function emotion_react_browser_esm_merge(registered, css, className) {
|
||
var registeredStyles = [];
|
||
var rawClassName = getRegisteredStyles(registered, registeredStyles, className);
|
||
if (registeredStyles.length < 2) {
|
||
return className;
|
||
}
|
||
return rawClassName + css(registeredStyles);
|
||
}
|
||
var Insertion = function Insertion(_ref) {
|
||
var cache = _ref.cache,
|
||
serializedArr = _ref.serializedArr;
|
||
useInsertionEffectAlwaysWithSyncFallback(function () {
|
||
for (var i = 0; i < serializedArr.length; i++) {
|
||
insertStyles(cache, serializedArr[i], false);
|
||
}
|
||
});
|
||
return null;
|
||
};
|
||
var ClassNames = /* #__PURE__ */(/* unused pure expression or super */ null && (withEmotionCache(function (props, cache) {
|
||
var hasRendered = false;
|
||
var serializedArr = [];
|
||
var css = function css() {
|
||
if (hasRendered && "production" !== 'production') {}
|
||
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
||
args[_key] = arguments[_key];
|
||
}
|
||
var serialized = serializeStyles(args, cache.registered);
|
||
serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`
|
||
|
||
registerStyles(cache, serialized, false);
|
||
return cache.key + "-" + serialized.name;
|
||
};
|
||
var cx = function cx() {
|
||
if (hasRendered && "production" !== 'production') {}
|
||
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
||
args[_key2] = arguments[_key2];
|
||
}
|
||
return emotion_react_browser_esm_merge(cache.registered, css, classnames(args));
|
||
};
|
||
var content = {
|
||
css: css,
|
||
cx: cx,
|
||
theme: React.useContext(ThemeContext)
|
||
};
|
||
var ele = props.children(content);
|
||
hasRendered = true;
|
||
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {
|
||
cache: cache,
|
||
serializedArr: serializedArr
|
||
}), ele);
|
||
})));
|
||
if (false) {}
|
||
if (false) { var globalKey, globalContext, isTestEnv, isBrowser; }
|
||
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+utils@5.14.10_@types+react@18.2.22_react@18.2.0/node_modules/@mui/utils/esm/formatMuiErrorMessage.js
|
||
/**
|
||
* WARNING: Don't import this directly.
|
||
* Use `MuiError` from `@mui/utils/macros/MuiError.macro` instead.
|
||
* @param {number} code
|
||
*/
|
||
function formatMuiErrorMessage(code) {
|
||
// Apply babel-plugin-transform-template-literals in loose mode
|
||
// loose mode is safe iff we're concatenating primitives
|
||
// see https://babeljs.io/docs/en/babel-plugin-transform-template-literals#loose
|
||
/* eslint-disable prefer-template */
|
||
var url = 'https://mui.com/production-error/?code=' + code;
|
||
for (var i = 1; i < arguments.length; i += 1) {
|
||
// rest params over-transpile for this case
|
||
// eslint-disable-next-line prefer-rest-params
|
||
url += '&args[]=' + encodeURIComponent(arguments[i]);
|
||
}
|
||
return 'Minified MUI error #' + code + '; visit ' + url + ' for the full message.';
|
||
/* eslint-enable prefer-template */
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+utils@5.14.10_@types+react@18.2.22_react@18.2.0/node_modules/@mui/utils/esm/capitalize/capitalize.js
|
||
|
||
// It should to be noted that this function isn't equivalent to `text-transform: capitalize`.
|
||
//
|
||
// A strict capitalization should uppercase the first letter of each word in the sentence.
|
||
// We only handle the first word.
|
||
function capitalize(string) {
|
||
if (typeof string !== 'string') {
|
||
throw new Error( false ? 0 : formatMuiErrorMessage(7));
|
||
}
|
||
return string.charAt(0).toUpperCase() + string.slice(1);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/capitalize.js
|
||
|
||
/* harmony default export */ var utils_capitalize = (capitalize);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+utils@5.14.10_@types+react@18.2.22_react@18.2.0/node_modules/@mui/utils/esm/resolveProps.js
|
||
|
||
/**
|
||
* Add keys, values of `defaultProps` that does not exist in `props`
|
||
* @param {object} defaultProps
|
||
* @param {object} props
|
||
* @returns {object} resolved props
|
||
*/
|
||
function resolveProps(defaultProps, props) {
|
||
var output = extends_extends({}, props);
|
||
Object.keys(defaultProps).forEach(function (propName) {
|
||
if (propName.toString().match(/^(components|slots)$/)) {
|
||
output[propName] = extends_extends({}, defaultProps[propName], output[propName]);
|
||
} else if (propName.toString().match(/^(componentsProps|slotProps)$/)) {
|
||
var defaultSlotProps = defaultProps[propName] || {};
|
||
var slotProps = props[propName];
|
||
output[propName] = {};
|
||
if (!slotProps || !Object.keys(slotProps)) {
|
||
// Reduce the iteration if the slot props is empty
|
||
output[propName] = defaultSlotProps;
|
||
} else if (!defaultSlotProps || !Object.keys(defaultSlotProps)) {
|
||
// Reduce the iteration if the default slot props is empty
|
||
output[propName] = slotProps;
|
||
} else {
|
||
output[propName] = extends_extends({}, slotProps);
|
||
Object.keys(defaultSlotProps).forEach(function (slotPropName) {
|
||
output[propName][slotPropName] = resolveProps(defaultSlotProps[slotPropName], slotProps[slotPropName]);
|
||
});
|
||
}
|
||
} else if (output[propName] === undefined) {
|
||
output[propName] = defaultProps[propName];
|
||
}
|
||
});
|
||
return output;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react@18.2.0/node_modules/@mui/system/esm/useThemeProps/getThemeProps.js
|
||
|
||
function getThemeProps(params) {
|
||
var theme = params.theme,
|
||
name = params.name,
|
||
props = params.props;
|
||
if (!theme || !theme.components || !theme.components[name] || !theme.components[name].defaultProps) {
|
||
return props;
|
||
}
|
||
return resolveProps(theme.components[name].defaultProps, props);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+utils@5.14.10_@types+react@18.2.22_react@18.2.0/node_modules/@mui/utils/esm/deepmerge.js
|
||
|
||
function isPlainObject(item) {
|
||
return item !== null && typeof item === 'object' && item.constructor === Object;
|
||
}
|
||
function deepClone(source) {
|
||
if (!isPlainObject(source)) {
|
||
return source;
|
||
}
|
||
var output = {};
|
||
Object.keys(source).forEach(function (key) {
|
||
output[key] = deepClone(source[key]);
|
||
});
|
||
return output;
|
||
}
|
||
function deepmerge(target, source) {
|
||
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
|
||
clone: true
|
||
};
|
||
var output = options.clone ? extends_extends({}, target) : target;
|
||
if (isPlainObject(target) && isPlainObject(source)) {
|
||
Object.keys(source).forEach(function (key) {
|
||
// Avoid prototype pollution
|
||
if (key === '__proto__') {
|
||
return;
|
||
}
|
||
if (isPlainObject(source[key]) && key in target && isPlainObject(target[key])) {
|
||
// Since `output` is a clone of `target` and we have narrowed `target` in this block we can cast to the same type.
|
||
output[key] = deepmerge(target[key], source[key], options);
|
||
} else if (options.clone) {
|
||
output[key] = isPlainObject(source[key]) ? deepClone(source[key]) : source[key];
|
||
} else {
|
||
output[key] = source[key];
|
||
}
|
||
});
|
||
}
|
||
return output;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/typeof.js
|
||
function _typeof(o) {
|
||
"@babel/helpers - typeof";
|
||
|
||
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
|
||
return typeof o;
|
||
} : function (o) {
|
||
return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
|
||
}, _typeof(o);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/toPrimitive.js
|
||
|
||
function _toPrimitive(input, hint) {
|
||
if (_typeof(input) !== "object" || input === null) return input;
|
||
var prim = input[Symbol.toPrimitive];
|
||
if (prim !== undefined) {
|
||
var res = prim.call(input, hint || "default");
|
||
if (_typeof(res) !== "object") return res;
|
||
throw new TypeError("@@toPrimitive must return a primitive value.");
|
||
}
|
||
return (hint === "string" ? String : Number)(input);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js
|
||
|
||
|
||
function _toPropertyKey(arg) {
|
||
var key = _toPrimitive(arg, "string");
|
||
return _typeof(key) === "symbol" ? key : String(key);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/defineProperty.js
|
||
|
||
function _defineProperty(obj, key, value) {
|
||
key = _toPropertyKey(key);
|
||
if (key in obj) {
|
||
Object.defineProperty(obj, key, {
|
||
value: value,
|
||
enumerable: true,
|
||
configurable: true,
|
||
writable: true
|
||
});
|
||
} else {
|
||
obj[key] = value;
|
||
}
|
||
return obj;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react@18.2.0/node_modules/@mui/system/esm/createTheme/createBreakpoints.js
|
||
|
||
|
||
|
||
var _excluded = ["values", "unit", "step"];
|
||
// Sorted ASC by size. That's important.
|
||
// It can't be configured as it's used statically for propTypes.
|
||
var breakpointKeys = (/* unused pure expression or super */ null && (['xs', 'sm', 'md', 'lg', 'xl']));
|
||
var sortBreakpointsValues = function sortBreakpointsValues(values) {
|
||
var breakpointsAsArray = Object.keys(values).map(function (key) {
|
||
return {
|
||
key: key,
|
||
val: values[key]
|
||
};
|
||
}) || [];
|
||
// Sort in ascending order
|
||
breakpointsAsArray.sort(function (breakpoint1, breakpoint2) {
|
||
return breakpoint1.val - breakpoint2.val;
|
||
});
|
||
return breakpointsAsArray.reduce(function (acc, obj) {
|
||
return extends_extends({}, acc, _defineProperty({}, obj.key, obj.val));
|
||
}, {});
|
||
};
|
||
|
||
// Keep in mind that @media is inclusive by the CSS specification.
|
||
function createBreakpoints(breakpoints) {
|
||
var _breakpoints$values = breakpoints.values,
|
||
values = _breakpoints$values === void 0 ? {
|
||
xs: 0,
|
||
// phone
|
||
sm: 600,
|
||
// tablet
|
||
md: 900,
|
||
// small laptop
|
||
lg: 1200,
|
||
// desktop
|
||
xl: 1536 // large screen
|
||
} : _breakpoints$values,
|
||
_breakpoints$unit = breakpoints.unit,
|
||
unit = _breakpoints$unit === void 0 ? 'px' : _breakpoints$unit,
|
||
_breakpoints$step = breakpoints.step,
|
||
step = _breakpoints$step === void 0 ? 5 : _breakpoints$step,
|
||
other = _objectWithoutPropertiesLoose(breakpoints, _excluded);
|
||
var sortedValues = sortBreakpointsValues(values);
|
||
var keys = Object.keys(sortedValues);
|
||
function up(key) {
|
||
var value = typeof values[key] === 'number' ? values[key] : key;
|
||
return "@media (min-width:".concat(value).concat(unit, ")");
|
||
}
|
||
function down(key) {
|
||
var value = typeof values[key] === 'number' ? values[key] : key;
|
||
return "@media (max-width:".concat(value - step / 100).concat(unit, ")");
|
||
}
|
||
function between(start, end) {
|
||
var endIndex = keys.indexOf(end);
|
||
return "@media (min-width:".concat(typeof values[start] === 'number' ? values[start] : start).concat(unit, ") and ") + "(max-width:".concat((endIndex !== -1 && typeof values[keys[endIndex]] === 'number' ? values[keys[endIndex]] : end) - step / 100).concat(unit, ")");
|
||
}
|
||
function only(key) {
|
||
if (keys.indexOf(key) + 1 < keys.length) {
|
||
return between(key, keys[keys.indexOf(key) + 1]);
|
||
}
|
||
return up(key);
|
||
}
|
||
function not(key) {
|
||
// handle first and last key separately, for better readability
|
||
var keyIndex = keys.indexOf(key);
|
||
if (keyIndex === 0) {
|
||
return up(keys[1]);
|
||
}
|
||
if (keyIndex === keys.length - 1) {
|
||
return down(keys[keyIndex]);
|
||
}
|
||
return between(key, keys[keys.indexOf(key) + 1]).replace('@media', '@media not all and');
|
||
}
|
||
return extends_extends({
|
||
keys: keys,
|
||
values: sortedValues,
|
||
up: up,
|
||
down: down,
|
||
between: between,
|
||
only: only,
|
||
not: not,
|
||
unit: unit
|
||
}, other);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react@18.2.0/node_modules/@mui/system/esm/createTheme/shape.js
|
||
var shape = {
|
||
borderRadius: 4
|
||
};
|
||
/* harmony default export */ var createTheme_shape = (shape);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react@18.2.0/node_modules/@mui/system/esm/breakpoints.js
|
||
|
||
|
||
|
||
|
||
|
||
|
||
// The breakpoint **start** at this value.
|
||
// For instance with the first breakpoint xs: [xs, sm[.
|
||
var values = {
|
||
xs: 0,
|
||
// phone
|
||
sm: 600,
|
||
// tablet
|
||
md: 900,
|
||
// small laptop
|
||
lg: 1200,
|
||
// desktop
|
||
xl: 1536 // large screen
|
||
};
|
||
|
||
var defaultBreakpoints = {
|
||
// Sorted ASC by size. That's important.
|
||
// It can't be configured as it's used statically for propTypes.
|
||
keys: ['xs', 'sm', 'md', 'lg', 'xl'],
|
||
up: function up(key) {
|
||
return "@media (min-width:".concat(values[key], "px)");
|
||
}
|
||
};
|
||
function handleBreakpoints(props, propValue, styleFromPropValue) {
|
||
var theme = props.theme || {};
|
||
if (Array.isArray(propValue)) {
|
||
var themeBreakpoints = theme.breakpoints || defaultBreakpoints;
|
||
return propValue.reduce(function (acc, item, index) {
|
||
acc[themeBreakpoints.up(themeBreakpoints.keys[index])] = styleFromPropValue(propValue[index]);
|
||
return acc;
|
||
}, {});
|
||
}
|
||
if (typeof propValue === 'object') {
|
||
var _themeBreakpoints = theme.breakpoints || defaultBreakpoints;
|
||
return Object.keys(propValue).reduce(function (acc, breakpoint) {
|
||
// key is breakpoint
|
||
if (Object.keys(_themeBreakpoints.values || values).indexOf(breakpoint) !== -1) {
|
||
var mediaKey = _themeBreakpoints.up(breakpoint);
|
||
acc[mediaKey] = styleFromPropValue(propValue[breakpoint], breakpoint);
|
||
} else {
|
||
var cssKey = breakpoint;
|
||
acc[cssKey] = propValue[cssKey];
|
||
}
|
||
return acc;
|
||
}, {});
|
||
}
|
||
var output = styleFromPropValue(propValue);
|
||
return output;
|
||
}
|
||
function breakpoints(styleFunction) {
|
||
// false positive
|
||
// eslint-disable-next-line react/function-component-definition
|
||
var newStyleFunction = function newStyleFunction(props) {
|
||
var theme = props.theme || {};
|
||
var base = styleFunction(props);
|
||
var themeBreakpoints = theme.breakpoints || defaultBreakpoints;
|
||
var extended = themeBreakpoints.keys.reduce(function (acc, key) {
|
||
if (props[key]) {
|
||
acc = acc || {};
|
||
acc[themeBreakpoints.up(key)] = styleFunction(_extends({
|
||
theme: theme
|
||
}, props[key]));
|
||
}
|
||
return acc;
|
||
}, null);
|
||
return merge(base, extended);
|
||
};
|
||
newStyleFunction.propTypes = false ? 0 : {};
|
||
newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl'].concat(_toConsumableArray(styleFunction.filterProps));
|
||
return newStyleFunction;
|
||
}
|
||
function createEmptyBreakpointObject() {
|
||
var breakpointsInput = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||
var _breakpointsInput$key;
|
||
var breakpointsInOrder = (_breakpointsInput$key = breakpointsInput.keys) == null ? void 0 : _breakpointsInput$key.reduce(function (acc, key) {
|
||
var breakpointStyleKey = breakpointsInput.up(key);
|
||
acc[breakpointStyleKey] = {};
|
||
return acc;
|
||
}, {});
|
||
return breakpointsInOrder || {};
|
||
}
|
||
function removeUnusedBreakpoints(breakpointKeys, style) {
|
||
return breakpointKeys.reduce(function (acc, key) {
|
||
var breakpointOutput = acc[key];
|
||
var isBreakpointUnused = !breakpointOutput || Object.keys(breakpointOutput).length === 0;
|
||
if (isBreakpointUnused) {
|
||
delete acc[key];
|
||
}
|
||
return acc;
|
||
}, style);
|
||
}
|
||
function mergeBreakpointsInOrder(breakpointsInput) {
|
||
var emptyBreakpoints = createEmptyBreakpointObject(breakpointsInput);
|
||
for (var _len = arguments.length, styles = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
||
styles[_key - 1] = arguments[_key];
|
||
}
|
||
var mergedOutput = [emptyBreakpoints].concat(styles).reduce(function (prev, next) {
|
||
return deepmerge(prev, next);
|
||
}, {});
|
||
return removeUnusedBreakpoints(Object.keys(emptyBreakpoints), mergedOutput);
|
||
}
|
||
|
||
// compute base for responsive values; e.g.,
|
||
// [1,2,3] => {xs: true, sm: true, md: true}
|
||
// {xs: 1, sm: 2, md: 3} => {xs: true, sm: true, md: true}
|
||
function computeBreakpointsBase(breakpointValues, themeBreakpoints) {
|
||
// fixed value
|
||
if (typeof breakpointValues !== 'object') {
|
||
return {};
|
||
}
|
||
var base = {};
|
||
var breakpointsKeys = Object.keys(themeBreakpoints);
|
||
if (Array.isArray(breakpointValues)) {
|
||
breakpointsKeys.forEach(function (breakpoint, i) {
|
||
if (i < breakpointValues.length) {
|
||
base[breakpoint] = true;
|
||
}
|
||
});
|
||
} else {
|
||
breakpointsKeys.forEach(function (breakpoint) {
|
||
if (breakpointValues[breakpoint] != null) {
|
||
base[breakpoint] = true;
|
||
}
|
||
});
|
||
}
|
||
return base;
|
||
}
|
||
function resolveBreakpointValues(_ref) {
|
||
var breakpointValues = _ref.values,
|
||
themeBreakpoints = _ref.breakpoints,
|
||
customBase = _ref.base;
|
||
var base = customBase || computeBreakpointsBase(breakpointValues, themeBreakpoints);
|
||
var keys = Object.keys(base);
|
||
if (keys.length === 0) {
|
||
return breakpointValues;
|
||
}
|
||
var previous;
|
||
return keys.reduce(function (acc, breakpoint, i) {
|
||
if (Array.isArray(breakpointValues)) {
|
||
acc[breakpoint] = breakpointValues[i] != null ? breakpointValues[i] : breakpointValues[previous];
|
||
previous = i;
|
||
} else if (typeof breakpointValues === 'object') {
|
||
acc[breakpoint] = breakpointValues[breakpoint] != null ? breakpointValues[breakpoint] : breakpointValues[previous];
|
||
previous = breakpoint;
|
||
} else {
|
||
acc[breakpoint] = breakpointValues;
|
||
}
|
||
return acc;
|
||
}, {});
|
||
}
|
||
/* harmony default export */ var esm_breakpoints = ((/* unused pure expression or super */ null && (breakpoints)));
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react@18.2.0/node_modules/@mui/system/esm/style.js
|
||
|
||
|
||
|
||
|
||
function getPath(obj, path) {
|
||
var checkVars = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
||
if (!path || typeof path !== 'string') {
|
||
return null;
|
||
}
|
||
|
||
// Check if CSS variables are used
|
||
if (obj && obj.vars && checkVars) {
|
||
var val = "vars.".concat(path).split('.').reduce(function (acc, item) {
|
||
return acc && acc[item] ? acc[item] : null;
|
||
}, obj);
|
||
if (val != null) {
|
||
return val;
|
||
}
|
||
}
|
||
return path.split('.').reduce(function (acc, item) {
|
||
if (acc && acc[item] != null) {
|
||
return acc[item];
|
||
}
|
||
return null;
|
||
}, obj);
|
||
}
|
||
function getStyleValue(themeMapping, transform, propValueFinal) {
|
||
var userValue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : propValueFinal;
|
||
var value;
|
||
if (typeof themeMapping === 'function') {
|
||
value = themeMapping(propValueFinal);
|
||
} else if (Array.isArray(themeMapping)) {
|
||
value = themeMapping[propValueFinal] || userValue;
|
||
} else {
|
||
value = getPath(themeMapping, propValueFinal) || userValue;
|
||
}
|
||
if (transform) {
|
||
value = transform(value, userValue, themeMapping);
|
||
}
|
||
return value;
|
||
}
|
||
function style(options) {
|
||
var prop = options.prop,
|
||
_options$cssProperty = options.cssProperty,
|
||
cssProperty = _options$cssProperty === void 0 ? options.prop : _options$cssProperty,
|
||
themeKey = options.themeKey,
|
||
transform = options.transform;
|
||
|
||
// false positive
|
||
// eslint-disable-next-line react/function-component-definition
|
||
var fn = function fn(props) {
|
||
if (props[prop] == null) {
|
||
return null;
|
||
}
|
||
var propValue = props[prop];
|
||
var theme = props.theme;
|
||
var themeMapping = getPath(theme, themeKey) || {};
|
||
var styleFromPropValue = function styleFromPropValue(propValueFinal) {
|
||
var value = getStyleValue(themeMapping, transform, propValueFinal);
|
||
if (propValueFinal === value && typeof propValueFinal === 'string') {
|
||
// Haven't found value
|
||
value = getStyleValue(themeMapping, transform, "".concat(prop).concat(propValueFinal === 'default' ? '' : capitalize(propValueFinal)), propValueFinal);
|
||
}
|
||
if (cssProperty === false) {
|
||
return value;
|
||
}
|
||
return _defineProperty({}, cssProperty, value);
|
||
};
|
||
return handleBreakpoints(props, propValue, styleFromPropValue);
|
||
};
|
||
fn.propTypes = false ? 0 : {};
|
||
fn.filterProps = [prop];
|
||
return fn;
|
||
}
|
||
/* harmony default export */ var esm_style = (style);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react@18.2.0/node_modules/@mui/system/esm/merge.js
|
||
|
||
function merge_merge(acc, item) {
|
||
if (!item) {
|
||
return acc;
|
||
}
|
||
return deepmerge(acc, item, {
|
||
clone: false // No need to clone deep, it's way faster.
|
||
});
|
||
}
|
||
|
||
/* harmony default export */ var esm_merge = (merge_merge);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react@18.2.0/node_modules/@mui/system/esm/memoize.js
|
||
function memoize_memoize(fn) {
|
||
var cache = {};
|
||
return function (arg) {
|
||
if (cache[arg] === undefined) {
|
||
cache[arg] = fn(arg);
|
||
}
|
||
return cache[arg];
|
||
};
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react@18.2.0/node_modules/@mui/system/esm/spacing.js
|
||
|
||
|
||
|
||
|
||
|
||
|
||
var properties = {
|
||
m: 'margin',
|
||
p: 'padding'
|
||
};
|
||
var directions = {
|
||
t: 'Top',
|
||
r: 'Right',
|
||
b: 'Bottom',
|
||
l: 'Left',
|
||
x: ['Left', 'Right'],
|
||
y: ['Top', 'Bottom']
|
||
};
|
||
var aliases = {
|
||
marginX: 'mx',
|
||
marginY: 'my',
|
||
paddingX: 'px',
|
||
paddingY: 'py'
|
||
};
|
||
|
||
// memoize() impact:
|
||
// From 300,000 ops/sec
|
||
// To 350,000 ops/sec
|
||
var getCssProperties = memoize_memoize(function (prop) {
|
||
// It's not a shorthand notation.
|
||
if (prop.length > 2) {
|
||
if (aliases[prop]) {
|
||
prop = aliases[prop];
|
||
} else {
|
||
return [prop];
|
||
}
|
||
}
|
||
var _prop$split = prop.split(''),
|
||
_prop$split2 = _slicedToArray(_prop$split, 2),
|
||
a = _prop$split2[0],
|
||
b = _prop$split2[1];
|
||
var property = properties[a];
|
||
var direction = directions[b] || '';
|
||
return Array.isArray(direction) ? direction.map(function (dir) {
|
||
return property + dir;
|
||
}) : [property + direction];
|
||
});
|
||
var marginKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'marginInline', 'marginInlineStart', 'marginInlineEnd', 'marginBlock', 'marginBlockStart', 'marginBlockEnd'];
|
||
var paddingKeys = ['p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY', 'paddingInline', 'paddingInlineStart', 'paddingInlineEnd', 'paddingBlock', 'paddingBlockStart', 'paddingBlockEnd'];
|
||
var spacingKeys = [].concat(marginKeys, paddingKeys);
|
||
function createUnaryUnit(theme, themeKey, defaultValue, propName) {
|
||
var _getPath;
|
||
var themeSpacing = (_getPath = getPath(theme, themeKey, false)) != null ? _getPath : defaultValue;
|
||
if (typeof themeSpacing === 'number') {
|
||
return function (abs) {
|
||
if (typeof abs === 'string') {
|
||
return abs;
|
||
}
|
||
if (false) {}
|
||
return themeSpacing * abs;
|
||
};
|
||
}
|
||
if (Array.isArray(themeSpacing)) {
|
||
return function (abs) {
|
||
if (typeof abs === 'string') {
|
||
return abs;
|
||
}
|
||
if (false) {}
|
||
return themeSpacing[abs];
|
||
};
|
||
}
|
||
if (typeof themeSpacing === 'function') {
|
||
return themeSpacing;
|
||
}
|
||
if (false) {}
|
||
return function () {
|
||
return undefined;
|
||
};
|
||
}
|
||
function createUnarySpacing(theme) {
|
||
return createUnaryUnit(theme, 'spacing', 8, 'spacing');
|
||
}
|
||
function getValue(transformer, propValue) {
|
||
if (typeof propValue === 'string' || propValue == null) {
|
||
return propValue;
|
||
}
|
||
var abs = Math.abs(propValue);
|
||
var transformed = transformer(abs);
|
||
if (propValue >= 0) {
|
||
return transformed;
|
||
}
|
||
if (typeof transformed === 'number') {
|
||
return -transformed;
|
||
}
|
||
return "-".concat(transformed);
|
||
}
|
||
function getStyleFromPropValue(cssProperties, transformer) {
|
||
return function (propValue) {
|
||
return cssProperties.reduce(function (acc, cssProperty) {
|
||
acc[cssProperty] = getValue(transformer, propValue);
|
||
return acc;
|
||
}, {});
|
||
};
|
||
}
|
||
function resolveCssProperty(props, keys, prop, transformer) {
|
||
// Using a hash computation over an array iteration could be faster, but with only 28 items,
|
||
// it's doesn't worth the bundle size.
|
||
if (keys.indexOf(prop) === -1) {
|
||
return null;
|
||
}
|
||
var cssProperties = getCssProperties(prop);
|
||
var styleFromPropValue = getStyleFromPropValue(cssProperties, transformer);
|
||
var propValue = props[prop];
|
||
return handleBreakpoints(props, propValue, styleFromPropValue);
|
||
}
|
||
function spacing_style(props, keys) {
|
||
var transformer = createUnarySpacing(props.theme);
|
||
return Object.keys(props).map(function (prop) {
|
||
return resolveCssProperty(props, keys, prop, transformer);
|
||
}).reduce(esm_merge, {});
|
||
}
|
||
function margin(props) {
|
||
return spacing_style(props, marginKeys);
|
||
}
|
||
margin.propTypes = false ? 0 : {};
|
||
margin.filterProps = marginKeys;
|
||
function padding(props) {
|
||
return spacing_style(props, paddingKeys);
|
||
}
|
||
padding.propTypes = false ? 0 : {};
|
||
padding.filterProps = paddingKeys;
|
||
function spacing(props) {
|
||
return spacing_style(props, spacingKeys);
|
||
}
|
||
spacing.propTypes = false ? 0 : {};
|
||
spacing.filterProps = spacingKeys;
|
||
/* harmony default export */ var esm_spacing = ((/* unused pure expression or super */ null && (spacing)));
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react@18.2.0/node_modules/@mui/system/esm/createTheme/createSpacing.js
|
||
|
||
|
||
// The different signatures imply different meaning for their arguments that can't be expressed structurally.
|
||
// We express the difference with variable names.
|
||
/* tslint:disable:unified-signatures */
|
||
/* tslint:enable:unified-signatures */
|
||
|
||
function createSpacing() {
|
||
var spacingInput = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 8;
|
||
// Already transformed.
|
||
if (spacingInput.mui) {
|
||
return spacingInput;
|
||
}
|
||
|
||
// Material Design layouts are visually balanced. Most measurements align to an 8dp grid, which aligns both spacing and the overall layout.
|
||
// Smaller components, such as icons, can align to a 4dp grid.
|
||
// https://m2.material.io/design/layout/understanding-layout.html
|
||
var transform = createUnarySpacing({
|
||
spacing: spacingInput
|
||
});
|
||
var spacing = function spacing() {
|
||
for (var _len = arguments.length, argsInput = new Array(_len), _key = 0; _key < _len; _key++) {
|
||
argsInput[_key] = arguments[_key];
|
||
}
|
||
if (false) {}
|
||
var args = argsInput.length === 0 ? [1] : argsInput;
|
||
return args.map(function (argument) {
|
||
var output = transform(argument);
|
||
return typeof output === 'number' ? "".concat(output, "px") : output;
|
||
}).join(' ');
|
||
};
|
||
spacing.mui = true;
|
||
return spacing;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react@18.2.0/node_modules/@mui/system/esm/compose.js
|
||
|
||
function compose() {
|
||
for (var _len = arguments.length, styles = new Array(_len), _key = 0; _key < _len; _key++) {
|
||
styles[_key] = arguments[_key];
|
||
}
|
||
var handlers = styles.reduce(function (acc, style) {
|
||
style.filterProps.forEach(function (prop) {
|
||
acc[prop] = style;
|
||
});
|
||
return acc;
|
||
}, {});
|
||
|
||
// false positive
|
||
// eslint-disable-next-line react/function-component-definition
|
||
var fn = function fn(props) {
|
||
return Object.keys(props).reduce(function (acc, prop) {
|
||
if (handlers[prop]) {
|
||
return esm_merge(acc, handlers[prop](props));
|
||
}
|
||
return acc;
|
||
}, {});
|
||
};
|
||
fn.propTypes = false ? 0 : {};
|
||
fn.filterProps = styles.reduce(function (acc, style) {
|
||
return acc.concat(style.filterProps);
|
||
}, []);
|
||
return fn;
|
||
}
|
||
/* harmony default export */ var esm_compose = (compose);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react@18.2.0/node_modules/@mui/system/esm/borders.js
|
||
|
||
|
||
|
||
|
||
|
||
function borderTransform(value) {
|
||
if (typeof value !== 'number') {
|
||
return value;
|
||
}
|
||
return "".concat(value, "px solid");
|
||
}
|
||
var border = esm_style({
|
||
prop: 'border',
|
||
themeKey: 'borders',
|
||
transform: borderTransform
|
||
});
|
||
var borderTop = esm_style({
|
||
prop: 'borderTop',
|
||
themeKey: 'borders',
|
||
transform: borderTransform
|
||
});
|
||
var borderRight = esm_style({
|
||
prop: 'borderRight',
|
||
themeKey: 'borders',
|
||
transform: borderTransform
|
||
});
|
||
var borderBottom = esm_style({
|
||
prop: 'borderBottom',
|
||
themeKey: 'borders',
|
||
transform: borderTransform
|
||
});
|
||
var borderLeft = esm_style({
|
||
prop: 'borderLeft',
|
||
themeKey: 'borders',
|
||
transform: borderTransform
|
||
});
|
||
var borderColor = esm_style({
|
||
prop: 'borderColor',
|
||
themeKey: 'palette'
|
||
});
|
||
var borderTopColor = esm_style({
|
||
prop: 'borderTopColor',
|
||
themeKey: 'palette'
|
||
});
|
||
var borderRightColor = esm_style({
|
||
prop: 'borderRightColor',
|
||
themeKey: 'palette'
|
||
});
|
||
var borderBottomColor = esm_style({
|
||
prop: 'borderBottomColor',
|
||
themeKey: 'palette'
|
||
});
|
||
var borderLeftColor = esm_style({
|
||
prop: 'borderLeftColor',
|
||
themeKey: 'palette'
|
||
});
|
||
|
||
// false positive
|
||
// eslint-disable-next-line react/function-component-definition
|
||
var borderRadius = function borderRadius(props) {
|
||
if (props.borderRadius !== undefined && props.borderRadius !== null) {
|
||
var transformer = createUnaryUnit(props.theme, 'shape.borderRadius', 4, 'borderRadius');
|
||
var styleFromPropValue = function styleFromPropValue(propValue) {
|
||
return {
|
||
borderRadius: getValue(transformer, propValue)
|
||
};
|
||
};
|
||
return handleBreakpoints(props, props.borderRadius, styleFromPropValue);
|
||
}
|
||
return null;
|
||
};
|
||
borderRadius.propTypes = false ? 0 : {};
|
||
borderRadius.filterProps = ['borderRadius'];
|
||
var borders = esm_compose(border, borderTop, borderRight, borderBottom, borderLeft, borderColor, borderTopColor, borderRightColor, borderBottomColor, borderLeftColor, borderRadius);
|
||
/* harmony default export */ var esm_borders = ((/* unused pure expression or super */ null && (borders)));
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react@18.2.0/node_modules/@mui/system/esm/cssGrid.js
|
||
|
||
|
||
|
||
|
||
|
||
|
||
// false positive
|
||
// eslint-disable-next-line react/function-component-definition
|
||
var gap = function gap(props) {
|
||
if (props.gap !== undefined && props.gap !== null) {
|
||
var transformer = createUnaryUnit(props.theme, 'spacing', 8, 'gap');
|
||
var styleFromPropValue = function styleFromPropValue(propValue) {
|
||
return {
|
||
gap: getValue(transformer, propValue)
|
||
};
|
||
};
|
||
return handleBreakpoints(props, props.gap, styleFromPropValue);
|
||
}
|
||
return null;
|
||
};
|
||
gap.propTypes = false ? 0 : {};
|
||
gap.filterProps = ['gap'];
|
||
|
||
// false positive
|
||
// eslint-disable-next-line react/function-component-definition
|
||
var columnGap = function columnGap(props) {
|
||
if (props.columnGap !== undefined && props.columnGap !== null) {
|
||
var transformer = createUnaryUnit(props.theme, 'spacing', 8, 'columnGap');
|
||
var styleFromPropValue = function styleFromPropValue(propValue) {
|
||
return {
|
||
columnGap: getValue(transformer, propValue)
|
||
};
|
||
};
|
||
return handleBreakpoints(props, props.columnGap, styleFromPropValue);
|
||
}
|
||
return null;
|
||
};
|
||
columnGap.propTypes = false ? 0 : {};
|
||
columnGap.filterProps = ['columnGap'];
|
||
|
||
// false positive
|
||
// eslint-disable-next-line react/function-component-definition
|
||
var rowGap = function rowGap(props) {
|
||
if (props.rowGap !== undefined && props.rowGap !== null) {
|
||
var transformer = createUnaryUnit(props.theme, 'spacing', 8, 'rowGap');
|
||
var styleFromPropValue = function styleFromPropValue(propValue) {
|
||
return {
|
||
rowGap: getValue(transformer, propValue)
|
||
};
|
||
};
|
||
return handleBreakpoints(props, props.rowGap, styleFromPropValue);
|
||
}
|
||
return null;
|
||
};
|
||
rowGap.propTypes = false ? 0 : {};
|
||
rowGap.filterProps = ['rowGap'];
|
||
var gridColumn = esm_style({
|
||
prop: 'gridColumn'
|
||
});
|
||
var gridRow = esm_style({
|
||
prop: 'gridRow'
|
||
});
|
||
var gridAutoFlow = esm_style({
|
||
prop: 'gridAutoFlow'
|
||
});
|
||
var gridAutoColumns = esm_style({
|
||
prop: 'gridAutoColumns'
|
||
});
|
||
var gridAutoRows = esm_style({
|
||
prop: 'gridAutoRows'
|
||
});
|
||
var gridTemplateColumns = esm_style({
|
||
prop: 'gridTemplateColumns'
|
||
});
|
||
var gridTemplateRows = esm_style({
|
||
prop: 'gridTemplateRows'
|
||
});
|
||
var gridTemplateAreas = esm_style({
|
||
prop: 'gridTemplateAreas'
|
||
});
|
||
var gridArea = esm_style({
|
||
prop: 'gridArea'
|
||
});
|
||
var grid = esm_compose(gap, columnGap, rowGap, gridColumn, gridRow, gridAutoFlow, gridAutoColumns, gridAutoRows, gridTemplateColumns, gridTemplateRows, gridTemplateAreas, gridArea);
|
||
/* harmony default export */ var cssGrid = ((/* unused pure expression or super */ null && (grid)));
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react@18.2.0/node_modules/@mui/system/esm/palette.js
|
||
|
||
|
||
function paletteTransform(value, userValue) {
|
||
if (userValue === 'grey') {
|
||
return userValue;
|
||
}
|
||
return value;
|
||
}
|
||
var color = esm_style({
|
||
prop: 'color',
|
||
themeKey: 'palette',
|
||
transform: paletteTransform
|
||
});
|
||
var bgcolor = esm_style({
|
||
prop: 'bgcolor',
|
||
cssProperty: 'backgroundColor',
|
||
themeKey: 'palette',
|
||
transform: paletteTransform
|
||
});
|
||
var backgroundColor = esm_style({
|
||
prop: 'backgroundColor',
|
||
themeKey: 'palette',
|
||
transform: paletteTransform
|
||
});
|
||
var palette = esm_compose(color, bgcolor, backgroundColor);
|
||
/* harmony default export */ var esm_palette = ((/* unused pure expression or super */ null && (palette)));
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react@18.2.0/node_modules/@mui/system/esm/sizing.js
|
||
|
||
|
||
|
||
function sizingTransform(value) {
|
||
return value <= 1 && value !== 0 ? "".concat(value * 100, "%") : value;
|
||
}
|
||
var width = esm_style({
|
||
prop: 'width',
|
||
transform: sizingTransform
|
||
});
|
||
var maxWidth = function maxWidth(props) {
|
||
if (props.maxWidth !== undefined && props.maxWidth !== null) {
|
||
var styleFromPropValue = function styleFromPropValue(propValue) {
|
||
var _props$theme, _props$theme2;
|
||
var breakpoint = ((_props$theme = props.theme) == null || (_props$theme = _props$theme.breakpoints) == null || (_props$theme = _props$theme.values) == null ? void 0 : _props$theme[propValue]) || values[propValue];
|
||
if (!breakpoint) {
|
||
return {
|
||
maxWidth: sizingTransform(propValue)
|
||
};
|
||
}
|
||
if (((_props$theme2 = props.theme) == null || (_props$theme2 = _props$theme2.breakpoints) == null ? void 0 : _props$theme2.unit) !== 'px') {
|
||
return {
|
||
maxWidth: "".concat(breakpoint).concat(props.theme.breakpoints.unit)
|
||
};
|
||
}
|
||
return {
|
||
maxWidth: breakpoint
|
||
};
|
||
};
|
||
return handleBreakpoints(props, props.maxWidth, styleFromPropValue);
|
||
}
|
||
return null;
|
||
};
|
||
maxWidth.filterProps = ['maxWidth'];
|
||
var minWidth = esm_style({
|
||
prop: 'minWidth',
|
||
transform: sizingTransform
|
||
});
|
||
var height = esm_style({
|
||
prop: 'height',
|
||
transform: sizingTransform
|
||
});
|
||
var maxHeight = esm_style({
|
||
prop: 'maxHeight',
|
||
transform: sizingTransform
|
||
});
|
||
var minHeight = esm_style({
|
||
prop: 'minHeight',
|
||
transform: sizingTransform
|
||
});
|
||
var sizeWidth = esm_style({
|
||
prop: 'size',
|
||
cssProperty: 'width',
|
||
transform: sizingTransform
|
||
});
|
||
var sizeHeight = esm_style({
|
||
prop: 'size',
|
||
cssProperty: 'height',
|
||
transform: sizingTransform
|
||
});
|
||
var boxSizing = esm_style({
|
||
prop: 'boxSizing'
|
||
});
|
||
var sizing = esm_compose(width, maxWidth, minWidth, height, maxHeight, minHeight, boxSizing);
|
||
/* harmony default export */ var esm_sizing = ((/* unused pure expression or super */ null && (sizing)));
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react@18.2.0/node_modules/@mui/system/esm/styleFunctionSx/defaultSxConfig.js
|
||
|
||
|
||
|
||
|
||
|
||
var defaultSxConfig = {
|
||
// borders
|
||
border: {
|
||
themeKey: 'borders',
|
||
transform: borderTransform
|
||
},
|
||
borderTop: {
|
||
themeKey: 'borders',
|
||
transform: borderTransform
|
||
},
|
||
borderRight: {
|
||
themeKey: 'borders',
|
||
transform: borderTransform
|
||
},
|
||
borderBottom: {
|
||
themeKey: 'borders',
|
||
transform: borderTransform
|
||
},
|
||
borderLeft: {
|
||
themeKey: 'borders',
|
||
transform: borderTransform
|
||
},
|
||
borderColor: {
|
||
themeKey: 'palette'
|
||
},
|
||
borderTopColor: {
|
||
themeKey: 'palette'
|
||
},
|
||
borderRightColor: {
|
||
themeKey: 'palette'
|
||
},
|
||
borderBottomColor: {
|
||
themeKey: 'palette'
|
||
},
|
||
borderLeftColor: {
|
||
themeKey: 'palette'
|
||
},
|
||
borderRadius: {
|
||
themeKey: 'shape.borderRadius',
|
||
style: borderRadius
|
||
},
|
||
// palette
|
||
color: {
|
||
themeKey: 'palette',
|
||
transform: paletteTransform
|
||
},
|
||
bgcolor: {
|
||
themeKey: 'palette',
|
||
cssProperty: 'backgroundColor',
|
||
transform: paletteTransform
|
||
},
|
||
backgroundColor: {
|
||
themeKey: 'palette',
|
||
transform: paletteTransform
|
||
},
|
||
// spacing
|
||
p: {
|
||
style: padding
|
||
},
|
||
pt: {
|
||
style: padding
|
||
},
|
||
pr: {
|
||
style: padding
|
||
},
|
||
pb: {
|
||
style: padding
|
||
},
|
||
pl: {
|
||
style: padding
|
||
},
|
||
px: {
|
||
style: padding
|
||
},
|
||
py: {
|
||
style: padding
|
||
},
|
||
padding: {
|
||
style: padding
|
||
},
|
||
paddingTop: {
|
||
style: padding
|
||
},
|
||
paddingRight: {
|
||
style: padding
|
||
},
|
||
paddingBottom: {
|
||
style: padding
|
||
},
|
||
paddingLeft: {
|
||
style: padding
|
||
},
|
||
paddingX: {
|
||
style: padding
|
||
},
|
||
paddingY: {
|
||
style: padding
|
||
},
|
||
paddingInline: {
|
||
style: padding
|
||
},
|
||
paddingInlineStart: {
|
||
style: padding
|
||
},
|
||
paddingInlineEnd: {
|
||
style: padding
|
||
},
|
||
paddingBlock: {
|
||
style: padding
|
||
},
|
||
paddingBlockStart: {
|
||
style: padding
|
||
},
|
||
paddingBlockEnd: {
|
||
style: padding
|
||
},
|
||
m: {
|
||
style: margin
|
||
},
|
||
mt: {
|
||
style: margin
|
||
},
|
||
mr: {
|
||
style: margin
|
||
},
|
||
mb: {
|
||
style: margin
|
||
},
|
||
ml: {
|
||
style: margin
|
||
},
|
||
mx: {
|
||
style: margin
|
||
},
|
||
my: {
|
||
style: margin
|
||
},
|
||
margin: {
|
||
style: margin
|
||
},
|
||
marginTop: {
|
||
style: margin
|
||
},
|
||
marginRight: {
|
||
style: margin
|
||
},
|
||
marginBottom: {
|
||
style: margin
|
||
},
|
||
marginLeft: {
|
||
style: margin
|
||
},
|
||
marginX: {
|
||
style: margin
|
||
},
|
||
marginY: {
|
||
style: margin
|
||
},
|
||
marginInline: {
|
||
style: margin
|
||
},
|
||
marginInlineStart: {
|
||
style: margin
|
||
},
|
||
marginInlineEnd: {
|
||
style: margin
|
||
},
|
||
marginBlock: {
|
||
style: margin
|
||
},
|
||
marginBlockStart: {
|
||
style: margin
|
||
},
|
||
marginBlockEnd: {
|
||
style: margin
|
||
},
|
||
// display
|
||
displayPrint: {
|
||
cssProperty: false,
|
||
transform: function transform(value) {
|
||
return {
|
||
'@media print': {
|
||
display: value
|
||
}
|
||
};
|
||
}
|
||
},
|
||
display: {},
|
||
overflow: {},
|
||
textOverflow: {},
|
||
visibility: {},
|
||
whiteSpace: {},
|
||
// flexbox
|
||
flexBasis: {},
|
||
flexDirection: {},
|
||
flexWrap: {},
|
||
justifyContent: {},
|
||
alignItems: {},
|
||
alignContent: {},
|
||
order: {},
|
||
flex: {},
|
||
flexGrow: {},
|
||
flexShrink: {},
|
||
alignSelf: {},
|
||
justifyItems: {},
|
||
justifySelf: {},
|
||
// grid
|
||
gap: {
|
||
style: gap
|
||
},
|
||
rowGap: {
|
||
style: rowGap
|
||
},
|
||
columnGap: {
|
||
style: columnGap
|
||
},
|
||
gridColumn: {},
|
||
gridRow: {},
|
||
gridAutoFlow: {},
|
||
gridAutoColumns: {},
|
||
gridAutoRows: {},
|
||
gridTemplateColumns: {},
|
||
gridTemplateRows: {},
|
||
gridTemplateAreas: {},
|
||
gridArea: {},
|
||
// positions
|
||
position: {},
|
||
zIndex: {
|
||
themeKey: 'zIndex'
|
||
},
|
||
top: {},
|
||
right: {},
|
||
bottom: {},
|
||
left: {},
|
||
// shadows
|
||
boxShadow: {
|
||
themeKey: 'shadows'
|
||
},
|
||
// sizing
|
||
width: {
|
||
transform: sizingTransform
|
||
},
|
||
maxWidth: {
|
||
style: maxWidth
|
||
},
|
||
minWidth: {
|
||
transform: sizingTransform
|
||
},
|
||
height: {
|
||
transform: sizingTransform
|
||
},
|
||
maxHeight: {
|
||
transform: sizingTransform
|
||
},
|
||
minHeight: {
|
||
transform: sizingTransform
|
||
},
|
||
boxSizing: {},
|
||
// typography
|
||
fontFamily: {
|
||
themeKey: 'typography'
|
||
},
|
||
fontSize: {
|
||
themeKey: 'typography'
|
||
},
|
||
fontStyle: {
|
||
themeKey: 'typography'
|
||
},
|
||
fontWeight: {
|
||
themeKey: 'typography'
|
||
},
|
||
letterSpacing: {},
|
||
textTransform: {},
|
||
lineHeight: {},
|
||
textAlign: {},
|
||
typography: {
|
||
cssProperty: false,
|
||
themeKey: 'typography'
|
||
}
|
||
};
|
||
/* harmony default export */ var styleFunctionSx_defaultSxConfig = (defaultSxConfig);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react@18.2.0/node_modules/@mui/system/esm/styleFunctionSx/styleFunctionSx.js
|
||
|
||
|
||
|
||
|
||
|
||
|
||
function objectsHaveSameKeys() {
|
||
for (var _len = arguments.length, objects = new Array(_len), _key = 0; _key < _len; _key++) {
|
||
objects[_key] = arguments[_key];
|
||
}
|
||
var allKeys = objects.reduce(function (keys, object) {
|
||
return keys.concat(Object.keys(object));
|
||
}, []);
|
||
var union = new Set(allKeys);
|
||
return objects.every(function (object) {
|
||
return union.size === Object.keys(object).length;
|
||
});
|
||
}
|
||
function callIfFn(maybeFn, arg) {
|
||
return typeof maybeFn === 'function' ? maybeFn(arg) : maybeFn;
|
||
}
|
||
|
||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
||
function unstable_createStyleFunctionSx() {
|
||
function getThemeValue(prop, val, theme, config) {
|
||
var _props;
|
||
var props = (_props = {}, _defineProperty(_props, prop, val), _defineProperty(_props, "theme", theme), _props);
|
||
var options = config[prop];
|
||
if (!options) {
|
||
return _defineProperty({}, prop, val);
|
||
}
|
||
var _options$cssProperty = options.cssProperty,
|
||
cssProperty = _options$cssProperty === void 0 ? prop : _options$cssProperty,
|
||
themeKey = options.themeKey,
|
||
transform = options.transform,
|
||
style = options.style;
|
||
if (val == null) {
|
||
return null;
|
||
}
|
||
|
||
// TODO v6: remove, see https://github.com/mui/material-ui/pull/38123
|
||
if (themeKey === 'typography' && val === 'inherit') {
|
||
return _defineProperty({}, prop, val);
|
||
}
|
||
var themeMapping = getPath(theme, themeKey) || {};
|
||
if (style) {
|
||
return style(props);
|
||
}
|
||
var styleFromPropValue = function styleFromPropValue(propValueFinal) {
|
||
var value = getStyleValue(themeMapping, transform, propValueFinal);
|
||
if (propValueFinal === value && typeof propValueFinal === 'string') {
|
||
// Haven't found value
|
||
value = getStyleValue(themeMapping, transform, "".concat(prop).concat(propValueFinal === 'default' ? '' : capitalize(propValueFinal)), propValueFinal);
|
||
}
|
||
if (cssProperty === false) {
|
||
return value;
|
||
}
|
||
return _defineProperty({}, cssProperty, value);
|
||
};
|
||
return handleBreakpoints(props, val, styleFromPropValue);
|
||
}
|
||
function styleFunctionSx(props) {
|
||
var _theme$unstable_sxCon;
|
||
var _ref4 = props || {},
|
||
sx = _ref4.sx,
|
||
_ref4$theme = _ref4.theme,
|
||
theme = _ref4$theme === void 0 ? {} : _ref4$theme;
|
||
if (!sx) {
|
||
return null; // Emotion & styled-components will neglect null
|
||
}
|
||
|
||
var config = (_theme$unstable_sxCon = theme.unstable_sxConfig) != null ? _theme$unstable_sxCon : styleFunctionSx_defaultSxConfig;
|
||
|
||
/*
|
||
* Receive `sxInput` as object or callback
|
||
* and then recursively check keys & values to create media query object styles.
|
||
* (the result will be used in `styled`)
|
||
*/
|
||
function traverse(sxInput) {
|
||
var sxObject = sxInput;
|
||
if (typeof sxInput === 'function') {
|
||
sxObject = sxInput(theme);
|
||
} else if (typeof sxInput !== 'object') {
|
||
// value
|
||
return sxInput;
|
||
}
|
||
if (!sxObject) {
|
||
return null;
|
||
}
|
||
var emptyBreakpoints = createEmptyBreakpointObject(theme.breakpoints);
|
||
var breakpointsKeys = Object.keys(emptyBreakpoints);
|
||
var css = emptyBreakpoints;
|
||
Object.keys(sxObject).forEach(function (styleKey) {
|
||
var value = callIfFn(sxObject[styleKey], theme);
|
||
if (value !== null && value !== undefined) {
|
||
if (typeof value === 'object') {
|
||
if (config[styleKey]) {
|
||
css = esm_merge(css, getThemeValue(styleKey, value, theme, config));
|
||
} else {
|
||
var breakpointsValues = handleBreakpoints({
|
||
theme: theme
|
||
}, value, function (x) {
|
||
return _defineProperty({}, styleKey, x);
|
||
});
|
||
if (objectsHaveSameKeys(breakpointsValues, value)) {
|
||
css[styleKey] = styleFunctionSx({
|
||
sx: value,
|
||
theme: theme
|
||
});
|
||
} else {
|
||
css = esm_merge(css, breakpointsValues);
|
||
}
|
||
}
|
||
} else {
|
||
css = esm_merge(css, getThemeValue(styleKey, value, theme, config));
|
||
}
|
||
}
|
||
});
|
||
return removeUnusedBreakpoints(breakpointsKeys, css);
|
||
}
|
||
return Array.isArray(sx) ? sx.map(traverse) : traverse(sx);
|
||
}
|
||
return styleFunctionSx;
|
||
}
|
||
var styleFunctionSx = unstable_createStyleFunctionSx();
|
||
styleFunctionSx.filterProps = ['sx'];
|
||
/* harmony default export */ var styleFunctionSx_styleFunctionSx = (styleFunctionSx);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react@18.2.0/node_modules/@mui/system/esm/createTheme/createTheme.js
|
||
|
||
|
||
var createTheme_excluded = ["breakpoints", "palette", "spacing", "shape"];
|
||
|
||
|
||
|
||
|
||
|
||
|
||
function createTheme() {
|
||
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||
var _options$breakpoints = options.breakpoints,
|
||
breakpointsInput = _options$breakpoints === void 0 ? {} : _options$breakpoints,
|
||
_options$palette = options.palette,
|
||
paletteInput = _options$palette === void 0 ? {} : _options$palette,
|
||
spacingInput = options.spacing,
|
||
_options$shape = options.shape,
|
||
shapeInput = _options$shape === void 0 ? {} : _options$shape,
|
||
other = _objectWithoutPropertiesLoose(options, createTheme_excluded);
|
||
var breakpoints = createBreakpoints(breakpointsInput);
|
||
var spacing = createSpacing(spacingInput);
|
||
var muiTheme = deepmerge({
|
||
breakpoints: breakpoints,
|
||
direction: 'ltr',
|
||
components: {},
|
||
// Inject component definitions.
|
||
palette: extends_extends({
|
||
mode: 'light'
|
||
}, paletteInput),
|
||
spacing: spacing,
|
||
shape: extends_extends({}, createTheme_shape, shapeInput)
|
||
}, other);
|
||
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
||
args[_key - 1] = arguments[_key];
|
||
}
|
||
muiTheme = args.reduce(function (acc, argument) {
|
||
return deepmerge(acc, argument);
|
||
}, muiTheme);
|
||
muiTheme.unstable_sxConfig = extends_extends({}, styleFunctionSx_defaultSxConfig, other == null ? void 0 : other.unstable_sxConfig);
|
||
muiTheme.unstable_sx = function sx(props) {
|
||
return styleFunctionSx_styleFunctionSx({
|
||
sx: props,
|
||
theme: this
|
||
});
|
||
};
|
||
return muiTheme;
|
||
}
|
||
/* harmony default export */ var createTheme_createTheme = (createTheme);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@emotion+react@11.11.1_@types+react@18.2.22_react@18.2.0/node_modules/@emotion/react/dist/emotion-element-c39617d8.browser.esm.js
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
var emotion_element_c39617d8_browser_esm_isBrowser = "object" !== 'undefined';
|
||
var emotion_element_c39617d8_browser_esm_hasOwnProperty = {}.hasOwnProperty;
|
||
var EmotionCacheContext = /* #__PURE__ */react.createContext(
|
||
// we're doing this to avoid preconstruct's dead code elimination in this one case
|
||
// because this module is primarily intended for the browser and node
|
||
// but it's also required in react native and similar environments sometimes
|
||
// and we could have a special build just for that
|
||
// but this is much easier and the native packages
|
||
// might use a different theme context in the future anyway
|
||
typeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({
|
||
key: 'css'
|
||
}) : null);
|
||
if (false) {}
|
||
var CacheProvider = EmotionCacheContext.Provider;
|
||
var __unsafe_useEmotionCache = function useEmotionCache() {
|
||
return useContext(EmotionCacheContext);
|
||
};
|
||
var emotion_element_c39617d8_browser_esm_withEmotionCache = function withEmotionCache(func) {
|
||
// $FlowFixMe
|
||
return /*#__PURE__*/(0,react.forwardRef)(function (props, ref) {
|
||
// the cache will never be null in the browser
|
||
var cache = (0,react.useContext)(EmotionCacheContext);
|
||
return func(props, cache, ref);
|
||
});
|
||
};
|
||
if (!emotion_element_c39617d8_browser_esm_isBrowser) {
|
||
emotion_element_c39617d8_browser_esm_withEmotionCache = function withEmotionCache(func) {
|
||
return function (props) {
|
||
var cache = (0,react.useContext)(EmotionCacheContext);
|
||
if (cache === null) {
|
||
// yes, we're potentially creating this on every render
|
||
// it doesn't actually matter though since it's only on the server
|
||
// so there will only every be a single render
|
||
// that could change in the future because of suspense and etc. but for now,
|
||
// this works and i don't want to optimise for a future thing that we aren't sure about
|
||
cache = createCache({
|
||
key: 'css'
|
||
});
|
||
return /*#__PURE__*/react.createElement(EmotionCacheContext.Provider, {
|
||
value: cache
|
||
}, func(props, cache));
|
||
} else {
|
||
return func(props, cache);
|
||
}
|
||
};
|
||
};
|
||
}
|
||
var emotion_element_c39617d8_browser_esm_ThemeContext = /* #__PURE__ */react.createContext({});
|
||
if (false) {}
|
||
var useTheme = function useTheme() {
|
||
return React.useContext(emotion_element_c39617d8_browser_esm_ThemeContext);
|
||
};
|
||
var getTheme = function getTheme(outerTheme, theme) {
|
||
if (typeof theme === 'function') {
|
||
var mergedTheme = theme(outerTheme);
|
||
if (false) {}
|
||
return mergedTheme;
|
||
}
|
||
if (false) {}
|
||
return _extends({}, outerTheme, theme);
|
||
};
|
||
var createCacheWithTheme = /* #__PURE__ */(/* unused pure expression or super */ null && (weakMemoize(function (outerTheme) {
|
||
return weakMemoize(function (theme) {
|
||
return getTheme(outerTheme, theme);
|
||
});
|
||
})));
|
||
var ThemeProvider = function ThemeProvider(props) {
|
||
var theme = React.useContext(emotion_element_c39617d8_browser_esm_ThemeContext);
|
||
if (props.theme !== theme) {
|
||
theme = createCacheWithTheme(theme)(props.theme);
|
||
}
|
||
return /*#__PURE__*/React.createElement(emotion_element_c39617d8_browser_esm_ThemeContext.Provider, {
|
||
value: theme
|
||
}, props.children);
|
||
};
|
||
function withTheme(Component) {
|
||
var componentName = Component.displayName || Component.name || 'Component';
|
||
var render = function render(props, ref) {
|
||
var theme = React.useContext(emotion_element_c39617d8_browser_esm_ThemeContext);
|
||
return /*#__PURE__*/React.createElement(Component, _extends({
|
||
theme: theme,
|
||
ref: ref
|
||
}, props));
|
||
}; // $FlowFixMe
|
||
|
||
var WithTheme = /*#__PURE__*/React.forwardRef(render);
|
||
WithTheme.displayName = "WithTheme(" + componentName + ")";
|
||
return hoistNonReactStatics(WithTheme, Component);
|
||
}
|
||
var getLastPart = function getLastPart(functionName) {
|
||
// The match may be something like 'Object.createEmotionProps' or
|
||
// 'Loader.prototype.render'
|
||
var parts = functionName.split('.');
|
||
return parts[parts.length - 1];
|
||
};
|
||
var getFunctionNameFromStackTraceLine = function getFunctionNameFromStackTraceLine(line) {
|
||
// V8
|
||
var match = /^\s+at\s+([A-Za-z0-9$.]+)\s/.exec(line);
|
||
if (match) return getLastPart(match[1]); // Safari / Firefox
|
||
|
||
match = /^([A-Za-z0-9$.]+)@/.exec(line);
|
||
if (match) return getLastPart(match[1]);
|
||
return undefined;
|
||
};
|
||
var internalReactFunctionNames = /* #__PURE__ */new Set(['renderWithHooks', 'processChild', 'finishClassComponent', 'renderToString']); // These identifiers come from error stacks, so they have to be valid JS
|
||
// identifiers, thus we only need to replace what is a valid character for JS,
|
||
// but not for CSS.
|
||
|
||
var sanitizeIdentifier = function sanitizeIdentifier(identifier) {
|
||
return identifier.replace(/\$/g, '-');
|
||
};
|
||
var getLabelFromStackTrace = function getLabelFromStackTrace(stackTrace) {
|
||
if (!stackTrace) return undefined;
|
||
var lines = stackTrace.split('\n');
|
||
for (var i = 0; i < lines.length; i++) {
|
||
var functionName = getFunctionNameFromStackTraceLine(lines[i]); // The first line of V8 stack traces is just "Error"
|
||
|
||
if (!functionName) continue; // If we reach one of these, we have gone too far and should quit
|
||
|
||
if (internalReactFunctionNames.has(functionName)) break; // The component name is the first function in the stack that starts with an
|
||
// uppercase letter
|
||
|
||
if (/^[A-Z]/.test(functionName)) return sanitizeIdentifier(functionName);
|
||
}
|
||
return undefined;
|
||
};
|
||
var typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';
|
||
var labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';
|
||
var emotion_element_c39617d8_browser_esm_createEmotionProps = function createEmotionProps(type, props) {
|
||
if (false) {}
|
||
var newProps = {};
|
||
for (var key in props) {
|
||
if (emotion_element_c39617d8_browser_esm_hasOwnProperty.call(props, key)) {
|
||
newProps[key] = props[key];
|
||
}
|
||
}
|
||
newProps[typePropName] = type; // For performance, only call getLabelFromStackTrace in development and when
|
||
// the label hasn't already been computed
|
||
|
||
if (false) { var label; }
|
||
return newProps;
|
||
};
|
||
var emotion_element_c39617d8_browser_esm_Insertion = function Insertion(_ref) {
|
||
var cache = _ref.cache,
|
||
serialized = _ref.serialized,
|
||
isStringTag = _ref.isStringTag;
|
||
registerStyles(cache, serialized, isStringTag);
|
||
useInsertionEffectAlwaysWithSyncFallback(function () {
|
||
return insertStyles(cache, serialized, isStringTag);
|
||
});
|
||
return null;
|
||
};
|
||
var emotion_element_c39617d8_browser_esm_Emotion = /* #__PURE__ */(/* unused pure expression or super */ null && (emotion_element_c39617d8_browser_esm_withEmotionCache(function (props, cache, ref) {
|
||
var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works
|
||
// not passing the registered cache to serializeStyles because it would
|
||
// make certain babel optimisations not possible
|
||
|
||
if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {
|
||
cssProp = cache.registered[cssProp];
|
||
}
|
||
var WrappedComponent = props[typePropName];
|
||
var registeredStyles = [cssProp];
|
||
var className = '';
|
||
if (typeof props.className === 'string') {
|
||
className = getRegisteredStyles(cache.registered, registeredStyles, props.className);
|
||
} else if (props.className != null) {
|
||
className = props.className + " ";
|
||
}
|
||
var serialized = serializeStyles(registeredStyles, undefined, React.useContext(emotion_element_c39617d8_browser_esm_ThemeContext));
|
||
if (false) { var labelFromStack; }
|
||
className += cache.key + "-" + serialized.name;
|
||
var newProps = {};
|
||
for (var key in props) {
|
||
if (emotion_element_c39617d8_browser_esm_hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && ( true || 0)) {
|
||
newProps[key] = props[key];
|
||
}
|
||
}
|
||
newProps.ref = ref;
|
||
newProps.className = className;
|
||
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(emotion_element_c39617d8_browser_esm_Insertion, {
|
||
cache: cache,
|
||
serialized: serialized,
|
||
isStringTag: typeof WrappedComponent === 'string'
|
||
}), /*#__PURE__*/React.createElement(WrappedComponent, newProps));
|
||
})));
|
||
if (false) {}
|
||
var Emotion$1 = (/* unused pure expression or super */ null && (emotion_element_c39617d8_browser_esm_Emotion));
|
||
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react@18.2.0/node_modules/@mui/system/esm/useThemeWithoutDefault.js
|
||
'use client';
|
||
|
||
|
||
|
||
function isObjectEmpty(obj) {
|
||
return Object.keys(obj).length === 0;
|
||
}
|
||
function useThemeWithoutDefault_useTheme() {
|
||
var defaultTheme = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
||
var contextTheme = react.useContext(emotion_element_c39617d8_browser_esm_ThemeContext);
|
||
return !contextTheme || isObjectEmpty(contextTheme) ? defaultTheme : contextTheme;
|
||
}
|
||
/* harmony default export */ var useThemeWithoutDefault = (useThemeWithoutDefault_useTheme);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react@18.2.0/node_modules/@mui/system/esm/useTheme.js
|
||
'use client';
|
||
|
||
|
||
|
||
var systemDefaultTheme = createTheme_createTheme();
|
||
function useTheme_useTheme() {
|
||
var defaultTheme = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : systemDefaultTheme;
|
||
return useThemeWithoutDefault(defaultTheme);
|
||
}
|
||
/* harmony default export */ var esm_useTheme = (useTheme_useTheme);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react@18.2.0/node_modules/@mui/system/esm/useThemeProps/useThemeProps.js
|
||
'use client';
|
||
|
||
|
||
|
||
function useThemeProps(_ref) {
|
||
var props = _ref.props,
|
||
name = _ref.name,
|
||
defaultTheme = _ref.defaultTheme,
|
||
themeId = _ref.themeId;
|
||
var theme = esm_useTheme(defaultTheme);
|
||
if (themeId) {
|
||
theme = theme[themeId] || theme;
|
||
}
|
||
var mergedProps = getThemeProps({
|
||
theme: theme,
|
||
name: name,
|
||
props: props
|
||
});
|
||
return mergedProps;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/styles/createMixins.js
|
||
|
||
|
||
function createMixins(breakpoints, mixins) {
|
||
var _toolbar;
|
||
return extends_extends({
|
||
toolbar: (_toolbar = {
|
||
minHeight: 56
|
||
}, _defineProperty(_toolbar, breakpoints.up('xs'), {
|
||
'@media (orientation: landscape)': {
|
||
minHeight: 48
|
||
}
|
||
}), _defineProperty(_toolbar, breakpoints.up('sm'), {
|
||
minHeight: 64
|
||
}), _toolbar)
|
||
}, mixins);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react@18.2.0/node_modules/@mui/system/esm/colorManipulator.js
|
||
|
||
/* eslint-disable @typescript-eslint/naming-convention */
|
||
/**
|
||
* Returns a number whose value is limited to the given range.
|
||
* @param {number} value The value to be clamped
|
||
* @param {number} min The lower boundary of the output range
|
||
* @param {number} max The upper boundary of the output range
|
||
* @returns {number} A number in the range [min, max]
|
||
*/
|
||
function clamp(value) {
|
||
var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
||
var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
||
if (false) {}
|
||
return Math.min(Math.max(min, value), max);
|
||
}
|
||
|
||
/**
|
||
* Converts a color from CSS hex format to CSS rgb format.
|
||
* @param {string} color - Hex color, i.e. #nnn or #nnnnnn
|
||
* @returns {string} A CSS rgb color string
|
||
*/
|
||
function hexToRgb(color) {
|
||
color = color.slice(1);
|
||
var re = new RegExp(".{1,".concat(color.length >= 6 ? 2 : 1, "}"), 'g');
|
||
var colors = color.match(re);
|
||
if (colors && colors[0].length === 1) {
|
||
colors = colors.map(function (n) {
|
||
return n + n;
|
||
});
|
||
}
|
||
return colors ? "rgb".concat(colors.length === 4 ? 'a' : '', "(").concat(colors.map(function (n, index) {
|
||
return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000;
|
||
}).join(', '), ")") : '';
|
||
}
|
||
function intToHex(int) {
|
||
var hex = int.toString(16);
|
||
return hex.length === 1 ? "0".concat(hex) : hex;
|
||
}
|
||
|
||
/**
|
||
* Returns an object with the type and values of a color.
|
||
*
|
||
* Note: Does not support rgb % values.
|
||
* @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()
|
||
* @returns {object} - A MUI color object: {type: string, values: number[]}
|
||
*/
|
||
function decomposeColor(color) {
|
||
// Idempotent
|
||
if (color.type) {
|
||
return color;
|
||
}
|
||
if (color.charAt(0) === '#') {
|
||
return decomposeColor(hexToRgb(color));
|
||
}
|
||
var marker = color.indexOf('(');
|
||
var type = color.substring(0, marker);
|
||
if (['rgb', 'rgba', 'hsl', 'hsla', 'color'].indexOf(type) === -1) {
|
||
throw new Error( false ? 0 : formatMuiErrorMessage(9, color));
|
||
}
|
||
var values = color.substring(marker + 1, color.length - 1);
|
||
var colorSpace;
|
||
if (type === 'color') {
|
||
values = values.split(' ');
|
||
colorSpace = values.shift();
|
||
if (values.length === 4 && values[3].charAt(0) === '/') {
|
||
values[3] = values[3].slice(1);
|
||
}
|
||
if (['srgb', 'display-p3', 'a98-rgb', 'prophoto-rgb', 'rec-2020'].indexOf(colorSpace) === -1) {
|
||
throw new Error( false ? 0 : formatMuiErrorMessage(10, colorSpace));
|
||
}
|
||
} else {
|
||
values = values.split(',');
|
||
}
|
||
values = values.map(function (value) {
|
||
return parseFloat(value);
|
||
});
|
||
return {
|
||
type: type,
|
||
values: values,
|
||
colorSpace: colorSpace
|
||
};
|
||
}
|
||
|
||
/**
|
||
* Returns a channel created from the input color.
|
||
*
|
||
* @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()
|
||
* @returns {string} - The channel for the color, that can be used in rgba or hsla colors
|
||
*/
|
||
var colorChannel = function colorChannel(color) {
|
||
var decomposedColor = decomposeColor(color);
|
||
return decomposedColor.values.slice(0, 3).map(function (val, idx) {
|
||
return decomposedColor.type.indexOf('hsl') !== -1 && idx !== 0 ? "".concat(val, "%") : val;
|
||
}).join(' ');
|
||
};
|
||
var private_safeColorChannel = function private_safeColorChannel(color, warning) {
|
||
try {
|
||
return colorChannel(color);
|
||
} catch (error) {
|
||
if (warning && "production" !== 'production') {}
|
||
return color;
|
||
}
|
||
};
|
||
|
||
/**
|
||
* Converts a color object with type and values to a string.
|
||
* @param {object} color - Decomposed color
|
||
* @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla', 'color'
|
||
* @param {array} color.values - [n,n,n] or [n,n,n,n]
|
||
* @returns {string} A CSS color string
|
||
*/
|
||
function recomposeColor(color) {
|
||
var type = color.type,
|
||
colorSpace = color.colorSpace;
|
||
var values = color.values;
|
||
if (type.indexOf('rgb') !== -1) {
|
||
// Only convert the first 3 values to int (i.e. not alpha)
|
||
values = values.map(function (n, i) {
|
||
return i < 3 ? parseInt(n, 10) : n;
|
||
});
|
||
} else if (type.indexOf('hsl') !== -1) {
|
||
values[1] = "".concat(values[1], "%");
|
||
values[2] = "".concat(values[2], "%");
|
||
}
|
||
if (type.indexOf('color') !== -1) {
|
||
values = "".concat(colorSpace, " ").concat(values.join(' '));
|
||
} else {
|
||
values = "".concat(values.join(', '));
|
||
}
|
||
return "".concat(type, "(").concat(values, ")");
|
||
}
|
||
|
||
/**
|
||
* Converts a color from CSS rgb format to CSS hex format.
|
||
* @param {string} color - RGB color, i.e. rgb(n, n, n)
|
||
* @returns {string} A CSS rgb color string, i.e. #nnnnnn
|
||
*/
|
||
function rgbToHex(color) {
|
||
// Idempotent
|
||
if (color.indexOf('#') === 0) {
|
||
return color;
|
||
}
|
||
var _decomposeColor = decomposeColor(color),
|
||
values = _decomposeColor.values;
|
||
return "#".concat(values.map(function (n, i) {
|
||
return intToHex(i === 3 ? Math.round(255 * n) : n);
|
||
}).join(''));
|
||
}
|
||
|
||
/**
|
||
* Converts a color from hsl format to rgb format.
|
||
* @param {string} color - HSL color values
|
||
* @returns {string} rgb color values
|
||
*/
|
||
function hslToRgb(color) {
|
||
color = decomposeColor(color);
|
||
var _color = color,
|
||
values = _color.values;
|
||
var h = values[0];
|
||
var s = values[1] / 100;
|
||
var l = values[2] / 100;
|
||
var a = s * Math.min(l, 1 - l);
|
||
var f = function f(n) {
|
||
var k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 30) % 12;
|
||
return l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);
|
||
};
|
||
var type = 'rgb';
|
||
var rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];
|
||
if (color.type === 'hsla') {
|
||
type += 'a';
|
||
rgb.push(values[3]);
|
||
}
|
||
return recomposeColor({
|
||
type: type,
|
||
values: rgb
|
||
});
|
||
}
|
||
/**
|
||
* The relative brightness of any point in a color space,
|
||
* normalized to 0 for darkest black and 1 for lightest white.
|
||
*
|
||
* Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests
|
||
* @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()
|
||
* @returns {number} The relative brightness of the color in the range 0 - 1
|
||
*/
|
||
function getLuminance(color) {
|
||
color = decomposeColor(color);
|
||
var rgb = color.type === 'hsl' || color.type === 'hsla' ? decomposeColor(hslToRgb(color)).values : color.values;
|
||
rgb = rgb.map(function (val) {
|
||
if (color.type !== 'color') {
|
||
val /= 255; // normalized
|
||
}
|
||
|
||
return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4);
|
||
});
|
||
|
||
// Truncate at 3 digits
|
||
return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));
|
||
}
|
||
|
||
/**
|
||
* Calculates the contrast ratio between two colors.
|
||
*
|
||
* Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests
|
||
* @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()
|
||
* @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()
|
||
* @returns {number} A contrast ratio value in the range 0 - 21.
|
||
*/
|
||
function getContrastRatio(foreground, background) {
|
||
var lumA = getLuminance(foreground);
|
||
var lumB = getLuminance(background);
|
||
return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);
|
||
}
|
||
|
||
/**
|
||
* Sets the absolute transparency of a color.
|
||
* Any existing alpha values are overwritten.
|
||
* @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()
|
||
* @param {number} value - value to set the alpha channel to in the range 0 - 1
|
||
* @returns {string} A CSS color string. Hex input values are returned as rgb
|
||
*/
|
||
function alpha(color, value) {
|
||
color = decomposeColor(color);
|
||
value = clamp(value);
|
||
if (color.type === 'rgb' || color.type === 'hsl') {
|
||
color.type += 'a';
|
||
}
|
||
if (color.type === 'color') {
|
||
color.values[3] = "/".concat(value);
|
||
} else {
|
||
color.values[3] = value;
|
||
}
|
||
return recomposeColor(color);
|
||
}
|
||
function private_safeAlpha(color, value, warning) {
|
||
try {
|
||
return alpha(color, value);
|
||
} catch (error) {
|
||
if (warning && "production" !== 'production') {}
|
||
return color;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Darkens a color.
|
||
* @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()
|
||
* @param {number} coefficient - multiplier in the range 0 - 1
|
||
* @returns {string} A CSS color string. Hex input values are returned as rgb
|
||
*/
|
||
function darken(color, coefficient) {
|
||
color = decomposeColor(color);
|
||
coefficient = clamp(coefficient);
|
||
if (color.type.indexOf('hsl') !== -1) {
|
||
color.values[2] *= 1 - coefficient;
|
||
} else if (color.type.indexOf('rgb') !== -1 || color.type.indexOf('color') !== -1) {
|
||
for (var i = 0; i < 3; i += 1) {
|
||
color.values[i] *= 1 - coefficient;
|
||
}
|
||
}
|
||
return recomposeColor(color);
|
||
}
|
||
function private_safeDarken(color, coefficient, warning) {
|
||
try {
|
||
return darken(color, coefficient);
|
||
} catch (error) {
|
||
if (warning && "production" !== 'production') {}
|
||
return color;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Lightens a color.
|
||
* @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()
|
||
* @param {number} coefficient - multiplier in the range 0 - 1
|
||
* @returns {string} A CSS color string. Hex input values are returned as rgb
|
||
*/
|
||
function lighten(color, coefficient) {
|
||
color = decomposeColor(color);
|
||
coefficient = clamp(coefficient);
|
||
if (color.type.indexOf('hsl') !== -1) {
|
||
color.values[2] += (100 - color.values[2]) * coefficient;
|
||
} else if (color.type.indexOf('rgb') !== -1) {
|
||
for (var i = 0; i < 3; i += 1) {
|
||
color.values[i] += (255 - color.values[i]) * coefficient;
|
||
}
|
||
} else if (color.type.indexOf('color') !== -1) {
|
||
for (var _i = 0; _i < 3; _i += 1) {
|
||
color.values[_i] += (1 - color.values[_i]) * coefficient;
|
||
}
|
||
}
|
||
return recomposeColor(color);
|
||
}
|
||
function private_safeLighten(color, coefficient, warning) {
|
||
try {
|
||
return lighten(color, coefficient);
|
||
} catch (error) {
|
||
if (warning && "production" !== 'production') {}
|
||
return color;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Darken or lighten a color, depending on its luminance.
|
||
* Light colors are darkened, dark colors are lightened.
|
||
* @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()
|
||
* @param {number} coefficient=0.15 - multiplier in the range 0 - 1
|
||
* @returns {string} A CSS color string. Hex input values are returned as rgb
|
||
*/
|
||
function emphasize(color) {
|
||
var coefficient = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.15;
|
||
return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);
|
||
}
|
||
function private_safeEmphasize(color, coefficient, warning) {
|
||
try {
|
||
return private_safeEmphasize(color, coefficient);
|
||
} catch (error) {
|
||
if (warning && "production" !== 'production') {}
|
||
return color;
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/colors/common.js
|
||
var common = {
|
||
black: '#000',
|
||
white: '#fff'
|
||
};
|
||
/* harmony default export */ var colors_common = (common);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/colors/grey.js
|
||
var grey = {
|
||
50: '#fafafa',
|
||
100: '#f5f5f5',
|
||
200: '#eeeeee',
|
||
300: '#e0e0e0',
|
||
400: '#bdbdbd',
|
||
500: '#9e9e9e',
|
||
600: '#757575',
|
||
700: '#616161',
|
||
800: '#424242',
|
||
900: '#212121',
|
||
A100: '#f5f5f5',
|
||
A200: '#eeeeee',
|
||
A400: '#bdbdbd',
|
||
A700: '#616161'
|
||
};
|
||
/* harmony default export */ var colors_grey = (grey);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/colors/purple.js
|
||
var purple = {
|
||
50: '#f3e5f5',
|
||
100: '#e1bee7',
|
||
200: '#ce93d8',
|
||
300: '#ba68c8',
|
||
400: '#ab47bc',
|
||
500: '#9c27b0',
|
||
600: '#8e24aa',
|
||
700: '#7b1fa2',
|
||
800: '#6a1b9a',
|
||
900: '#4a148c',
|
||
A100: '#ea80fc',
|
||
A200: '#e040fb',
|
||
A400: '#d500f9',
|
||
A700: '#aa00ff'
|
||
};
|
||
/* harmony default export */ var colors_purple = (purple);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/colors/red.js
|
||
var red = {
|
||
50: '#ffebee',
|
||
100: '#ffcdd2',
|
||
200: '#ef9a9a',
|
||
300: '#e57373',
|
||
400: '#ef5350',
|
||
500: '#f44336',
|
||
600: '#e53935',
|
||
700: '#d32f2f',
|
||
800: '#c62828',
|
||
900: '#b71c1c',
|
||
A100: '#ff8a80',
|
||
A200: '#ff5252',
|
||
A400: '#ff1744',
|
||
A700: '#d50000'
|
||
};
|
||
/* harmony default export */ var colors_red = (red);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/colors/orange.js
|
||
var orange = {
|
||
50: '#fff3e0',
|
||
100: '#ffe0b2',
|
||
200: '#ffcc80',
|
||
300: '#ffb74d',
|
||
400: '#ffa726',
|
||
500: '#ff9800',
|
||
600: '#fb8c00',
|
||
700: '#f57c00',
|
||
800: '#ef6c00',
|
||
900: '#e65100',
|
||
A100: '#ffd180',
|
||
A200: '#ffab40',
|
||
A400: '#ff9100',
|
||
A700: '#ff6d00'
|
||
};
|
||
/* harmony default export */ var colors_orange = (orange);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/colors/blue.js
|
||
var blue = {
|
||
50: '#e3f2fd',
|
||
100: '#bbdefb',
|
||
200: '#90caf9',
|
||
300: '#64b5f6',
|
||
400: '#42a5f5',
|
||
500: '#2196f3',
|
||
600: '#1e88e5',
|
||
700: '#1976d2',
|
||
800: '#1565c0',
|
||
900: '#0d47a1',
|
||
A100: '#82b1ff',
|
||
A200: '#448aff',
|
||
A400: '#2979ff',
|
||
A700: '#2962ff'
|
||
};
|
||
/* harmony default export */ var colors_blue = (blue);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/colors/lightBlue.js
|
||
var lightBlue = {
|
||
50: '#e1f5fe',
|
||
100: '#b3e5fc',
|
||
200: '#81d4fa',
|
||
300: '#4fc3f7',
|
||
400: '#29b6f6',
|
||
500: '#03a9f4',
|
||
600: '#039be5',
|
||
700: '#0288d1',
|
||
800: '#0277bd',
|
||
900: '#01579b',
|
||
A100: '#80d8ff',
|
||
A200: '#40c4ff',
|
||
A400: '#00b0ff',
|
||
A700: '#0091ea'
|
||
};
|
||
/* harmony default export */ var colors_lightBlue = (lightBlue);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/colors/green.js
|
||
var green = {
|
||
50: '#e8f5e9',
|
||
100: '#c8e6c9',
|
||
200: '#a5d6a7',
|
||
300: '#81c784',
|
||
400: '#66bb6a',
|
||
500: '#4caf50',
|
||
600: '#43a047',
|
||
700: '#388e3c',
|
||
800: '#2e7d32',
|
||
900: '#1b5e20',
|
||
A100: '#b9f6ca',
|
||
A200: '#69f0ae',
|
||
A400: '#00e676',
|
||
A700: '#00c853'
|
||
};
|
||
/* harmony default export */ var colors_green = (green);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/styles/createPalette.js
|
||
|
||
|
||
|
||
var createPalette_excluded = ["mode", "contrastThreshold", "tonalOffset"];
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
var light = {
|
||
// The colors used to style the text.
|
||
text: {
|
||
// The most important text.
|
||
primary: 'rgba(0, 0, 0, 0.87)',
|
||
// Secondary text.
|
||
secondary: 'rgba(0, 0, 0, 0.6)',
|
||
// Disabled text have even lower visual prominence.
|
||
disabled: 'rgba(0, 0, 0, 0.38)'
|
||
},
|
||
// The color used to divide different elements.
|
||
divider: 'rgba(0, 0, 0, 0.12)',
|
||
// The background colors used to style the surfaces.
|
||
// Consistency between these values is important.
|
||
background: {
|
||
paper: colors_common.white,
|
||
default: colors_common.white
|
||
},
|
||
// The colors used to style the action elements.
|
||
action: {
|
||
// The color of an active action like an icon button.
|
||
active: 'rgba(0, 0, 0, 0.54)',
|
||
// The color of an hovered action.
|
||
hover: 'rgba(0, 0, 0, 0.04)',
|
||
hoverOpacity: 0.04,
|
||
// The color of a selected action.
|
||
selected: 'rgba(0, 0, 0, 0.08)',
|
||
selectedOpacity: 0.08,
|
||
// The color of a disabled action.
|
||
disabled: 'rgba(0, 0, 0, 0.26)',
|
||
// The background color of a disabled action.
|
||
disabledBackground: 'rgba(0, 0, 0, 0.12)',
|
||
disabledOpacity: 0.38,
|
||
focus: 'rgba(0, 0, 0, 0.12)',
|
||
focusOpacity: 0.12,
|
||
activatedOpacity: 0.12
|
||
}
|
||
};
|
||
var dark = {
|
||
text: {
|
||
primary: colors_common.white,
|
||
secondary: 'rgba(255, 255, 255, 0.7)',
|
||
disabled: 'rgba(255, 255, 255, 0.5)',
|
||
icon: 'rgba(255, 255, 255, 0.5)'
|
||
},
|
||
divider: 'rgba(255, 255, 255, 0.12)',
|
||
background: {
|
||
paper: '#121212',
|
||
default: '#121212'
|
||
},
|
||
action: {
|
||
active: colors_common.white,
|
||
hover: 'rgba(255, 255, 255, 0.08)',
|
||
hoverOpacity: 0.08,
|
||
selected: 'rgba(255, 255, 255, 0.16)',
|
||
selectedOpacity: 0.16,
|
||
disabled: 'rgba(255, 255, 255, 0.3)',
|
||
disabledBackground: 'rgba(255, 255, 255, 0.12)',
|
||
disabledOpacity: 0.38,
|
||
focus: 'rgba(255, 255, 255, 0.12)',
|
||
focusOpacity: 0.12,
|
||
activatedOpacity: 0.24
|
||
}
|
||
};
|
||
function addLightOrDark(intent, direction, shade, tonalOffset) {
|
||
var tonalOffsetLight = tonalOffset.light || tonalOffset;
|
||
var tonalOffsetDark = tonalOffset.dark || tonalOffset * 1.5;
|
||
if (!intent[direction]) {
|
||
if (intent.hasOwnProperty(shade)) {
|
||
intent[direction] = intent[shade];
|
||
} else if (direction === 'light') {
|
||
intent.light = lighten(intent.main, tonalOffsetLight);
|
||
} else if (direction === 'dark') {
|
||
intent.dark = darken(intent.main, tonalOffsetDark);
|
||
}
|
||
}
|
||
}
|
||
function getDefaultPrimary() {
|
||
var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'light';
|
||
if (mode === 'dark') {
|
||
return {
|
||
main: colors_blue[200],
|
||
light: colors_blue[50],
|
||
dark: colors_blue[400]
|
||
};
|
||
}
|
||
return {
|
||
main: colors_blue[700],
|
||
light: colors_blue[400],
|
||
dark: colors_blue[800]
|
||
};
|
||
}
|
||
function getDefaultSecondary() {
|
||
var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'light';
|
||
if (mode === 'dark') {
|
||
return {
|
||
main: colors_purple[200],
|
||
light: colors_purple[50],
|
||
dark: colors_purple[400]
|
||
};
|
||
}
|
||
return {
|
||
main: colors_purple[500],
|
||
light: colors_purple[300],
|
||
dark: colors_purple[700]
|
||
};
|
||
}
|
||
function getDefaultError() {
|
||
var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'light';
|
||
if (mode === 'dark') {
|
||
return {
|
||
main: colors_red[500],
|
||
light: colors_red[300],
|
||
dark: colors_red[700]
|
||
};
|
||
}
|
||
return {
|
||
main: colors_red[700],
|
||
light: colors_red[400],
|
||
dark: colors_red[800]
|
||
};
|
||
}
|
||
function getDefaultInfo() {
|
||
var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'light';
|
||
if (mode === 'dark') {
|
||
return {
|
||
main: colors_lightBlue[400],
|
||
light: colors_lightBlue[300],
|
||
dark: colors_lightBlue[700]
|
||
};
|
||
}
|
||
return {
|
||
main: colors_lightBlue[700],
|
||
light: colors_lightBlue[500],
|
||
dark: colors_lightBlue[900]
|
||
};
|
||
}
|
||
function getDefaultSuccess() {
|
||
var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'light';
|
||
if (mode === 'dark') {
|
||
return {
|
||
main: colors_green[400],
|
||
light: colors_green[300],
|
||
dark: colors_green[700]
|
||
};
|
||
}
|
||
return {
|
||
main: colors_green[800],
|
||
light: colors_green[500],
|
||
dark: colors_green[900]
|
||
};
|
||
}
|
||
function getDefaultWarning() {
|
||
var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'light';
|
||
if (mode === 'dark') {
|
||
return {
|
||
main: colors_orange[400],
|
||
light: colors_orange[300],
|
||
dark: colors_orange[700]
|
||
};
|
||
}
|
||
return {
|
||
main: '#ed6c02',
|
||
// closest to orange[800] that pass 3:1.
|
||
light: colors_orange[500],
|
||
dark: colors_orange[900]
|
||
};
|
||
}
|
||
function createPalette(palette) {
|
||
var _palette$mode = palette.mode,
|
||
mode = _palette$mode === void 0 ? 'light' : _palette$mode,
|
||
_palette$contrastThre = palette.contrastThreshold,
|
||
contrastThreshold = _palette$contrastThre === void 0 ? 3 : _palette$contrastThre,
|
||
_palette$tonalOffset = palette.tonalOffset,
|
||
tonalOffset = _palette$tonalOffset === void 0 ? 0.2 : _palette$tonalOffset,
|
||
other = _objectWithoutPropertiesLoose(palette, createPalette_excluded);
|
||
var primary = palette.primary || getDefaultPrimary(mode);
|
||
var secondary = palette.secondary || getDefaultSecondary(mode);
|
||
var error = palette.error || getDefaultError(mode);
|
||
var info = palette.info || getDefaultInfo(mode);
|
||
var success = palette.success || getDefaultSuccess(mode);
|
||
var warning = palette.warning || getDefaultWarning(mode);
|
||
|
||
// Use the same logic as
|
||
// Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59
|
||
// and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54
|
||
function getContrastText(background) {
|
||
var contrastText = getContrastRatio(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;
|
||
if (false) { var contrast; }
|
||
return contrastText;
|
||
}
|
||
var augmentColor = function augmentColor(_ref) {
|
||
var color = _ref.color,
|
||
name = _ref.name,
|
||
_ref$mainShade = _ref.mainShade,
|
||
mainShade = _ref$mainShade === void 0 ? 500 : _ref$mainShade,
|
||
_ref$lightShade = _ref.lightShade,
|
||
lightShade = _ref$lightShade === void 0 ? 300 : _ref$lightShade,
|
||
_ref$darkShade = _ref.darkShade,
|
||
darkShade = _ref$darkShade === void 0 ? 700 : _ref$darkShade;
|
||
color = extends_extends({}, color);
|
||
if (!color.main && color[mainShade]) {
|
||
color.main = color[mainShade];
|
||
}
|
||
if (!color.hasOwnProperty('main')) {
|
||
throw new Error( false ? 0 : formatMuiErrorMessage(11, name ? " (".concat(name, ")") : '', mainShade));
|
||
}
|
||
if (typeof color.main !== 'string') {
|
||
throw new Error( false ? 0 : formatMuiErrorMessage(12, name ? " (".concat(name, ")") : '', JSON.stringify(color.main)));
|
||
}
|
||
addLightOrDark(color, 'light', lightShade, tonalOffset);
|
||
addLightOrDark(color, 'dark', darkShade, tonalOffset);
|
||
if (!color.contrastText) {
|
||
color.contrastText = getContrastText(color.main);
|
||
}
|
||
return color;
|
||
};
|
||
var modes = {
|
||
dark: dark,
|
||
light: light
|
||
};
|
||
if (false) {}
|
||
var paletteOutput = deepmerge(extends_extends({
|
||
// A collection of common colors.
|
||
common: extends_extends({}, colors_common),
|
||
// prevent mutable object.
|
||
// The palette mode, can be light or dark.
|
||
mode: mode,
|
||
// The colors used to represent primary interface elements for a user.
|
||
primary: augmentColor({
|
||
color: primary,
|
||
name: 'primary'
|
||
}),
|
||
// The colors used to represent secondary interface elements for a user.
|
||
secondary: augmentColor({
|
||
color: secondary,
|
||
name: 'secondary',
|
||
mainShade: 'A400',
|
||
lightShade: 'A200',
|
||
darkShade: 'A700'
|
||
}),
|
||
// The colors used to represent interface elements that the user should be made aware of.
|
||
error: augmentColor({
|
||
color: error,
|
||
name: 'error'
|
||
}),
|
||
// The colors used to represent potentially dangerous actions or important messages.
|
||
warning: augmentColor({
|
||
color: warning,
|
||
name: 'warning'
|
||
}),
|
||
// The colors used to present information to the user that is neutral and not necessarily important.
|
||
info: augmentColor({
|
||
color: info,
|
||
name: 'info'
|
||
}),
|
||
// The colors used to indicate the successful completion of an action that user triggered.
|
||
success: augmentColor({
|
||
color: success,
|
||
name: 'success'
|
||
}),
|
||
// The grey colors.
|
||
grey: colors_grey,
|
||
// Used by `getContrastText()` to maximize the contrast between
|
||
// the background and the text.
|
||
contrastThreshold: contrastThreshold,
|
||
// Takes a background color and returns the text color that maximizes the contrast.
|
||
getContrastText: getContrastText,
|
||
// Generate a rich color object.
|
||
augmentColor: augmentColor,
|
||
// Used by the functions below to shift a color's luminance by approximately
|
||
// two indexes within its tonal palette.
|
||
// E.g., shift from Red 500 to Red 300 or Red 700.
|
||
tonalOffset: tonalOffset
|
||
}, modes[mode]), other);
|
||
return paletteOutput;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/styles/createTypography.js
|
||
|
||
|
||
var createTypography_excluded = ["fontFamily", "fontSize", "fontWeightLight", "fontWeightRegular", "fontWeightMedium", "fontWeightBold", "htmlFontSize", "allVariants", "pxToRem"];
|
||
|
||
function round(value) {
|
||
return Math.round(value * 1e5) / 1e5;
|
||
}
|
||
var caseAllCaps = {
|
||
textTransform: 'uppercase'
|
||
};
|
||
var defaultFontFamily = '"Roboto", "Helvetica", "Arial", sans-serif';
|
||
|
||
/**
|
||
* @see @link{https://m2.material.io/design/typography/the-type-system.html}
|
||
* @see @link{https://m2.material.io/design/typography/understanding-typography.html}
|
||
*/
|
||
function createTypography(palette, typography) {
|
||
var _ref = typeof typography === 'function' ? typography(palette) : typography,
|
||
_ref$fontFamily = _ref.fontFamily,
|
||
fontFamily = _ref$fontFamily === void 0 ? defaultFontFamily : _ref$fontFamily,
|
||
_ref$fontSize = _ref.fontSize,
|
||
fontSize = _ref$fontSize === void 0 ? 14 : _ref$fontSize,
|
||
_ref$fontWeightLight = _ref.fontWeightLight,
|
||
fontWeightLight = _ref$fontWeightLight === void 0 ? 300 : _ref$fontWeightLight,
|
||
_ref$fontWeightRegula = _ref.fontWeightRegular,
|
||
fontWeightRegular = _ref$fontWeightRegula === void 0 ? 400 : _ref$fontWeightRegula,
|
||
_ref$fontWeightMedium = _ref.fontWeightMedium,
|
||
fontWeightMedium = _ref$fontWeightMedium === void 0 ? 500 : _ref$fontWeightMedium,
|
||
_ref$fontWeightBold = _ref.fontWeightBold,
|
||
fontWeightBold = _ref$fontWeightBold === void 0 ? 700 : _ref$fontWeightBold,
|
||
_ref$htmlFontSize = _ref.htmlFontSize,
|
||
htmlFontSize = _ref$htmlFontSize === void 0 ? 16 : _ref$htmlFontSize,
|
||
allVariants = _ref.allVariants,
|
||
pxToRem2 = _ref.pxToRem,
|
||
other = _objectWithoutPropertiesLoose(_ref, createTypography_excluded);
|
||
if (false) {}
|
||
var coef = fontSize / 14;
|
||
var pxToRem = pxToRem2 || function (size) {
|
||
return "".concat(size / htmlFontSize * coef, "rem");
|
||
};
|
||
var buildVariant = function buildVariant(fontWeight, size, lineHeight, letterSpacing, casing) {
|
||
return extends_extends({
|
||
fontFamily: fontFamily,
|
||
fontWeight: fontWeight,
|
||
fontSize: pxToRem(size),
|
||
// Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/
|
||
lineHeight: lineHeight
|
||
}, fontFamily === defaultFontFamily ? {
|
||
letterSpacing: "".concat(round(letterSpacing / size), "em")
|
||
} : {}, casing, allVariants);
|
||
};
|
||
var variants = {
|
||
h1: buildVariant(fontWeightLight, 96, 1.167, -1.5),
|
||
h2: buildVariant(fontWeightLight, 60, 1.2, -0.5),
|
||
h3: buildVariant(fontWeightRegular, 48, 1.167, 0),
|
||
h4: buildVariant(fontWeightRegular, 34, 1.235, 0.25),
|
||
h5: buildVariant(fontWeightRegular, 24, 1.334, 0),
|
||
h6: buildVariant(fontWeightMedium, 20, 1.6, 0.15),
|
||
subtitle1: buildVariant(fontWeightRegular, 16, 1.75, 0.15),
|
||
subtitle2: buildVariant(fontWeightMedium, 14, 1.57, 0.1),
|
||
body1: buildVariant(fontWeightRegular, 16, 1.5, 0.15),
|
||
body2: buildVariant(fontWeightRegular, 14, 1.43, 0.15),
|
||
button: buildVariant(fontWeightMedium, 14, 1.75, 0.4, caseAllCaps),
|
||
caption: buildVariant(fontWeightRegular, 12, 1.66, 0.4),
|
||
overline: buildVariant(fontWeightRegular, 12, 2.66, 1, caseAllCaps),
|
||
// TODO v6: Remove handling of 'inherit' variant from the theme as it is already handled in Material UI's Typography component. Also, remember to remove the associated types.
|
||
inherit: {
|
||
fontFamily: 'inherit',
|
||
fontWeight: 'inherit',
|
||
fontSize: 'inherit',
|
||
lineHeight: 'inherit',
|
||
letterSpacing: 'inherit'
|
||
}
|
||
};
|
||
return deepmerge(extends_extends({
|
||
htmlFontSize: htmlFontSize,
|
||
pxToRem: pxToRem,
|
||
fontFamily: fontFamily,
|
||
fontSize: fontSize,
|
||
fontWeightLight: fontWeightLight,
|
||
fontWeightRegular: fontWeightRegular,
|
||
fontWeightMedium: fontWeightMedium,
|
||
fontWeightBold: fontWeightBold
|
||
}, variants), other, {
|
||
clone: false // No need to clone deep
|
||
});
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/styles/shadows.js
|
||
var shadowKeyUmbraOpacity = 0.2;
|
||
var shadowKeyPenumbraOpacity = 0.14;
|
||
var shadowAmbientShadowOpacity = 0.12;
|
||
function createShadow() {
|
||
return ["".concat(arguments.length <= 0 ? undefined : arguments[0], "px ").concat(arguments.length <= 1 ? undefined : arguments[1], "px ").concat(arguments.length <= 2 ? undefined : arguments[2], "px ").concat(arguments.length <= 3 ? undefined : arguments[3], "px rgba(0,0,0,").concat(shadowKeyUmbraOpacity, ")"), "".concat(arguments.length <= 4 ? undefined : arguments[4], "px ").concat(arguments.length <= 5 ? undefined : arguments[5], "px ").concat(arguments.length <= 6 ? undefined : arguments[6], "px ").concat(arguments.length <= 7 ? undefined : arguments[7], "px rgba(0,0,0,").concat(shadowKeyPenumbraOpacity, ")"), "".concat(arguments.length <= 8 ? undefined : arguments[8], "px ").concat(arguments.length <= 9 ? undefined : arguments[9], "px ").concat(arguments.length <= 10 ? undefined : arguments[10], "px ").concat(arguments.length <= 11 ? undefined : arguments[11], "px rgba(0,0,0,").concat(shadowAmbientShadowOpacity, ")")].join(',');
|
||
}
|
||
|
||
// Values from https://github.com/material-components/material-components-web/blob/be8747f94574669cb5e7add1a7c54fa41a89cec7/packages/mdc-elevation/_variables.scss
|
||
var shadows = ['none', createShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), createShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), createShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)];
|
||
/* harmony default export */ var styles_shadows = (shadows);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/styles/createTransitions.js
|
||
|
||
|
||
var createTransitions_excluded = ["duration", "easing", "delay"];
|
||
// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves
|
||
// to learn the context in which each easing should be used.
|
||
var easing = {
|
||
// This is the most common easing curve.
|
||
easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',
|
||
// Objects enter the screen at full velocity from off-screen and
|
||
// slowly decelerate to a resting point.
|
||
easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',
|
||
// Objects leave the screen at full velocity. They do not decelerate when off-screen.
|
||
easeIn: 'cubic-bezier(0.4, 0, 1, 1)',
|
||
// The sharp curve is used by objects that may return to the screen at any time.
|
||
sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'
|
||
};
|
||
|
||
// Follow https://m2.material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations
|
||
// to learn when use what timing
|
||
var duration = {
|
||
shortest: 150,
|
||
shorter: 200,
|
||
short: 250,
|
||
// most basic recommended timing
|
||
standard: 300,
|
||
// this is to be used in complex animations
|
||
complex: 375,
|
||
// recommended when something is entering screen
|
||
enteringScreen: 225,
|
||
// recommended when something is leaving screen
|
||
leavingScreen: 195
|
||
};
|
||
function formatMs(milliseconds) {
|
||
return "".concat(Math.round(milliseconds), "ms");
|
||
}
|
||
function getAutoHeightDuration(height) {
|
||
if (!height) {
|
||
return 0;
|
||
}
|
||
var constant = height / 36;
|
||
|
||
// https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10
|
||
return Math.round((4 + 15 * Math.pow(constant, 0.25) + constant / 5) * 10);
|
||
}
|
||
function createTransitions(inputTransitions) {
|
||
var mergedEasing = extends_extends({}, easing, inputTransitions.easing);
|
||
var mergedDuration = extends_extends({}, duration, inputTransitions.duration);
|
||
var create = function create() {
|
||
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['all'];
|
||
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||
var _options$duration = options.duration,
|
||
durationOption = _options$duration === void 0 ? mergedDuration.standard : _options$duration,
|
||
_options$easing = options.easing,
|
||
easingOption = _options$easing === void 0 ? mergedEasing.easeInOut : _options$easing,
|
||
_options$delay = options.delay,
|
||
delay = _options$delay === void 0 ? 0 : _options$delay,
|
||
other = _objectWithoutPropertiesLoose(options, createTransitions_excluded);
|
||
if (false) { var isNumber, isString; }
|
||
return (Array.isArray(props) ? props : [props]).map(function (animatedProp) {
|
||
return "".concat(animatedProp, " ").concat(typeof durationOption === 'string' ? durationOption : formatMs(durationOption), " ").concat(easingOption, " ").concat(typeof delay === 'string' ? delay : formatMs(delay));
|
||
}).join(',');
|
||
};
|
||
return extends_extends({
|
||
getAutoHeightDuration: getAutoHeightDuration,
|
||
create: create
|
||
}, inputTransitions, {
|
||
easing: mergedEasing,
|
||
duration: mergedDuration
|
||
});
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/styles/zIndex.js
|
||
// We need to centralize the zIndex definitions as they work
|
||
// like global values in the browser.
|
||
var zIndex = {
|
||
mobileStepper: 1000,
|
||
fab: 1050,
|
||
speedDial: 1050,
|
||
appBar: 1100,
|
||
drawer: 1200,
|
||
modal: 1300,
|
||
snackbar: 1400,
|
||
tooltip: 1500
|
||
};
|
||
/* harmony default export */ var styles_zIndex = (zIndex);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/styles/createTheme.js
|
||
|
||
|
||
|
||
|
||
var styles_createTheme_excluded = ["breakpoints", "mixins", "spacing", "palette", "transitions", "typography", "shape"];
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
function styles_createTheme_createTheme() {
|
||
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||
var _options$mixins = options.mixins,
|
||
mixinsInput = _options$mixins === void 0 ? {} : _options$mixins,
|
||
_options$palette = options.palette,
|
||
paletteInput = _options$palette === void 0 ? {} : _options$palette,
|
||
_options$transitions = options.transitions,
|
||
transitionsInput = _options$transitions === void 0 ? {} : _options$transitions,
|
||
_options$typography = options.typography,
|
||
typographyInput = _options$typography === void 0 ? {} : _options$typography,
|
||
other = _objectWithoutPropertiesLoose(options, styles_createTheme_excluded);
|
||
if (options.vars) {
|
||
throw new Error( false ? 0 : formatMuiErrorMessage(18));
|
||
}
|
||
var palette = createPalette(paletteInput);
|
||
var systemTheme = createTheme_createTheme(options);
|
||
var muiTheme = deepmerge(systemTheme, {
|
||
mixins: createMixins(systemTheme.breakpoints, mixinsInput),
|
||
palette: palette,
|
||
// Don't use [...shadows] until you've verified its transpiled code is not invoking the iterator protocol.
|
||
shadows: styles_shadows.slice(),
|
||
typography: createTypography(palette, typographyInput),
|
||
transitions: createTransitions(transitionsInput),
|
||
zIndex: extends_extends({}, styles_zIndex)
|
||
});
|
||
muiTheme = deepmerge(muiTheme, other);
|
||
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
||
args[_key - 1] = arguments[_key];
|
||
}
|
||
muiTheme = args.reduce(function (acc, argument) {
|
||
return deepmerge(acc, argument);
|
||
}, muiTheme);
|
||
if (false) { var traverse, stateClasses; }
|
||
muiTheme.unstable_sxConfig = extends_extends({}, styleFunctionSx_defaultSxConfig, other == null ? void 0 : other.unstable_sxConfig);
|
||
muiTheme.unstable_sx = function sx(props) {
|
||
return styleFunctionSx_styleFunctionSx({
|
||
sx: props,
|
||
theme: this
|
||
});
|
||
};
|
||
return muiTheme;
|
||
}
|
||
var warnedOnce = false;
|
||
function createMuiTheme() {
|
||
if (false) {}
|
||
return styles_createTheme_createTheme.apply(void 0, arguments);
|
||
}
|
||
/* harmony default export */ var styles_createTheme = (styles_createTheme_createTheme);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/styles/defaultTheme.js
|
||
'use client';
|
||
|
||
|
||
var defaultTheme = styles_createTheme();
|
||
/* harmony default export */ var styles_defaultTheme = (defaultTheme);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/styles/identifier.js
|
||
/* harmony default export */ var styles_identifier = ('$$material');
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/styles/useThemeProps.js
|
||
'use client';
|
||
|
||
|
||
|
||
|
||
function useThemeProps_useThemeProps(_ref) {
|
||
var props = _ref.props,
|
||
name = _ref.name;
|
||
return useThemeProps({
|
||
props: props,
|
||
name: name,
|
||
defaultTheme: styles_defaultTheme,
|
||
themeId: styles_identifier
|
||
});
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js
|
||
|
||
function _arrayWithoutHoles(arr) {
|
||
if (Array.isArray(arr)) return _arrayLikeToArray(arr);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/iterableToArray.js
|
||
function _iterableToArray(iter) {
|
||
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js
|
||
function _nonIterableSpread() {
|
||
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js
|
||
|
||
|
||
|
||
|
||
function toConsumableArray_toConsumableArray(arr) {
|
||
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@emotion+is-prop-valid@1.2.1/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js
|
||
|
||
var reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23
|
||
|
||
var isPropValid = /* #__PURE__ */memoize(function (prop) {
|
||
return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111
|
||
/* o */ && prop.charCodeAt(1) === 110
|
||
/* n */ && prop.charCodeAt(2) < 91;
|
||
}
|
||
/* Z+1 */);
|
||
|
||
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@emotion+utils@1.2.1/node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js
|
||
var emotion_utils_browser_esm_isBrowser = "object" !== 'undefined';
|
||
function emotion_utils_browser_esm_getRegisteredStyles(registered, registeredStyles, classNames) {
|
||
var rawClassName = '';
|
||
classNames.split(' ').forEach(function (className) {
|
||
if (registered[className] !== undefined) {
|
||
registeredStyles.push(registered[className] + ";");
|
||
} else {
|
||
rawClassName += className + " ";
|
||
}
|
||
});
|
||
return rawClassName;
|
||
}
|
||
var emotion_utils_browser_esm_registerStyles = function registerStyles(cache, serialized, isStringTag) {
|
||
var className = cache.key + "-" + serialized.name;
|
||
if (
|
||
// we only need to add the styles to the registered cache if the
|
||
// class name could be used further down
|
||
// the tree but if it's a string tag, we know it won't
|
||
// so we don't have to add it to registered cache.
|
||
// this improves memory usage since we can avoid storing the whole style string
|
||
(isStringTag === false ||
|
||
// we need to always store it if we're in compat mode and
|
||
// in node since emotion-server relies on whether a style is in
|
||
// the registered cache to know whether a style is global or not
|
||
// also, note that this check will be dead code eliminated in the browser
|
||
emotion_utils_browser_esm_isBrowser === false) && cache.registered[className] === undefined) {
|
||
cache.registered[className] = serialized.styles;
|
||
}
|
||
};
|
||
var emotion_utils_browser_esm_insertStyles = function insertStyles(cache, serialized, isStringTag) {
|
||
emotion_utils_browser_esm_registerStyles(cache, serialized, isStringTag);
|
||
var className = cache.key + "-" + serialized.name;
|
||
if (cache.inserted[serialized.name] === undefined) {
|
||
var current = serialized;
|
||
do {
|
||
cache.insert(serialized === current ? "." + className : '', current, cache.sheet, true);
|
||
current = current.next;
|
||
} while (current !== undefined);
|
||
}
|
||
};
|
||
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@emotion+styled@11.11.0_@emotion+react@11.11.1_@types+react@18.2.22_react@18.2.0/node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
var testOmitPropsOnStringTag = isPropValid;
|
||
var testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {
|
||
return key !== 'theme';
|
||
};
|
||
var getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {
|
||
return typeof tag === 'string' &&
|
||
// 96 is one less than the char code
|
||
// for "a" so this is checking that
|
||
// it's a lowercase character
|
||
tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;
|
||
};
|
||
var composeShouldForwardProps = function composeShouldForwardProps(tag, options, isReal) {
|
||
var shouldForwardProp;
|
||
if (options) {
|
||
var optionsShouldForwardProp = options.shouldForwardProp;
|
||
shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName) {
|
||
return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);
|
||
} : optionsShouldForwardProp;
|
||
}
|
||
if (typeof shouldForwardProp !== 'function' && isReal) {
|
||
shouldForwardProp = tag.__emotion_forwardProp;
|
||
}
|
||
return shouldForwardProp;
|
||
};
|
||
var emotion_styled_base_browser_esm_ILLEGAL_ESCAPE_SEQUENCE_ERROR = "You have illegal escape sequence in your template literal, most likely inside content's property value.\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \"content: '\\00d7';\" should become \"content: '\\\\00d7';\".\nYou can read more about this here:\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences";
|
||
var emotion_styled_base_browser_esm_Insertion = function Insertion(_ref) {
|
||
var cache = _ref.cache,
|
||
serialized = _ref.serialized,
|
||
isStringTag = _ref.isStringTag;
|
||
emotion_utils_browser_esm_registerStyles(cache, serialized, isStringTag);
|
||
emotion_use_insertion_effect_with_fallbacks_browser_esm_useInsertionEffectAlwaysWithSyncFallback(function () {
|
||
return emotion_utils_browser_esm_insertStyles(cache, serialized, isStringTag);
|
||
});
|
||
return null;
|
||
};
|
||
var createStyled = function createStyled(tag, options) {
|
||
if (false) {}
|
||
var isReal = tag.__emotion_real === tag;
|
||
var baseTag = isReal && tag.__emotion_base || tag;
|
||
var identifierName;
|
||
var targetClassName;
|
||
if (options !== undefined) {
|
||
identifierName = options.label;
|
||
targetClassName = options.target;
|
||
}
|
||
var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);
|
||
var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);
|
||
var shouldUseAs = !defaultShouldForwardProp('as');
|
||
return function () {
|
||
var args = arguments;
|
||
var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];
|
||
if (identifierName !== undefined) {
|
||
styles.push("label:" + identifierName + ";");
|
||
}
|
||
if (args[0] == null || args[0].raw === undefined) {
|
||
styles.push.apply(styles, args);
|
||
} else {
|
||
if (false) {}
|
||
styles.push(args[0][0]);
|
||
var len = args.length;
|
||
var i = 1;
|
||
for (; i < len; i++) {
|
||
if (false) {}
|
||
styles.push(args[i], args[0][i]);
|
||
}
|
||
} // $FlowFixMe: we need to cast StatelessFunctionalComponent to our PrivateStyledComponent class
|
||
|
||
var Styled = emotion_element_c39617d8_browser_esm_withEmotionCache(function (props, cache, ref) {
|
||
var FinalTag = shouldUseAs && props.as || baseTag;
|
||
var className = '';
|
||
var classInterpolations = [];
|
||
var mergedProps = props;
|
||
if (props.theme == null) {
|
||
mergedProps = {};
|
||
for (var key in props) {
|
||
mergedProps[key] = props[key];
|
||
}
|
||
mergedProps.theme = react.useContext(emotion_element_c39617d8_browser_esm_ThemeContext);
|
||
}
|
||
if (typeof props.className === 'string') {
|
||
className = emotion_utils_browser_esm_getRegisteredStyles(cache.registered, classInterpolations, props.className);
|
||
} else if (props.className != null) {
|
||
className = props.className + " ";
|
||
}
|
||
var serialized = emotion_serialize_browser_esm_serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);
|
||
className += cache.key + "-" + serialized.name;
|
||
if (targetClassName !== undefined) {
|
||
className += " " + targetClassName;
|
||
}
|
||
var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp;
|
||
var newProps = {};
|
||
for (var _key in props) {
|
||
if (shouldUseAs && _key === 'as') continue;
|
||
if (
|
||
// $FlowFixMe
|
||
finalShouldForwardProp(_key)) {
|
||
newProps[_key] = props[_key];
|
||
}
|
||
}
|
||
newProps.className = className;
|
||
newProps.ref = ref;
|
||
return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(emotion_styled_base_browser_esm_Insertion, {
|
||
cache: cache,
|
||
serialized: serialized,
|
||
isStringTag: typeof FinalTag === 'string'
|
||
}), /*#__PURE__*/react.createElement(FinalTag, newProps));
|
||
});
|
||
Styled.displayName = identifierName !== undefined ? identifierName : "Styled(" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + ")";
|
||
Styled.defaultProps = tag.defaultProps;
|
||
Styled.__emotion_real = Styled;
|
||
Styled.__emotion_base = baseTag;
|
||
Styled.__emotion_styles = styles;
|
||
Styled.__emotion_forwardProp = shouldForwardProp;
|
||
Object.defineProperty(Styled, 'toString', {
|
||
value: function value() {
|
||
if (targetClassName === undefined && "production" !== 'production') {} // $FlowFixMe: coerce undefined to string
|
||
|
||
return "." + targetClassName;
|
||
}
|
||
});
|
||
Styled.withComponent = function (nextTag, nextOptions) {
|
||
return createStyled(nextTag, extends_extends({}, options, nextOptions, {
|
||
shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)
|
||
})).apply(void 0, styles);
|
||
};
|
||
return Styled;
|
||
};
|
||
};
|
||
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@emotion+styled@11.11.0_@emotion+react@11.11.1_@types+react@18.2.22_react@18.2.0/node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
var tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr',
|
||
// SVG
|
||
'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];
|
||
var newStyled = createStyled.bind();
|
||
tags.forEach(function (tagName) {
|
||
// $FlowFixMe: we can ignore this because its exposed type is defined by the CreateStyled type
|
||
newStyled[tagName] = newStyled(tagName);
|
||
});
|
||
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+styled-engine@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_react@18.2.0/node_modules/@mui/styled-engine/index.js
|
||
/**
|
||
* @mui/styled-engine v5.14.10
|
||
*
|
||
* @license MIT
|
||
* This source code is licensed under the MIT license found in the
|
||
* LICENSE file in the root directory of this source tree.
|
||
*/
|
||
'use client';
|
||
|
||
/* eslint-disable no-underscore-dangle */
|
||
|
||
function styled(tag, options) {
|
||
var stylesFactory = newStyled(tag, options);
|
||
if (false) {}
|
||
return stylesFactory;
|
||
}
|
||
|
||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
||
var internal_processStyles = function internal_processStyles(tag, processor) {
|
||
// Emotion attaches all the styles as `__emotion_styles`.
|
||
// Ref: https://github.com/emotion-js/emotion/blob/16d971d0da229596d6bcc39d282ba9753c9ee7cf/packages/styled/src/base.js#L186
|
||
if (Array.isArray(tag.__emotion_styles)) {
|
||
tag.__emotion_styles = processor(tag.__emotion_styles);
|
||
}
|
||
};
|
||
|
||
|
||
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react@18.2.0/node_modules/@mui/system/esm/propsToClassKey.js
|
||
|
||
var propsToClassKey_excluded = ["variant"];
|
||
|
||
function isEmpty(string) {
|
||
return string.length === 0;
|
||
}
|
||
|
||
/**
|
||
* Generates string classKey based on the properties provided. It starts with the
|
||
* variant if defined, and then it appends all other properties in alphabetical order.
|
||
* @param {object} props - the properties for which the classKey should be created.
|
||
*/
|
||
function propsToClassKey(props) {
|
||
var variant = props.variant,
|
||
other = _objectWithoutPropertiesLoose(props, propsToClassKey_excluded);
|
||
var classKey = variant || '';
|
||
Object.keys(other).sort().forEach(function (key) {
|
||
if (key === 'color') {
|
||
classKey += isEmpty(classKey) ? props[key] : capitalize(props[key]);
|
||
} else {
|
||
classKey += "".concat(isEmpty(classKey) ? key : capitalize(key)).concat(capitalize(props[key].toString()));
|
||
}
|
||
});
|
||
return classKey;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react@18.2.0/node_modules/@mui/system/esm/createStyled.js
|
||
|
||
|
||
|
||
|
||
var createStyled_excluded = ["name", "slot", "skipVariantsResolver", "skipSx", "overridesResolver"];
|
||
/* eslint-disable no-underscore-dangle */
|
||
|
||
|
||
|
||
|
||
|
||
function createStyled_isEmpty(obj) {
|
||
return Object.keys(obj).length === 0;
|
||
}
|
||
|
||
// https://github.com/emotion-js/emotion/blob/26ded6109fcd8ca9875cc2ce4564fee678a3f3c5/packages/styled/src/utils.js#L40
|
||
function isStringTag(tag) {
|
||
return typeof tag === 'string' &&
|
||
// 96 is one less than the char code
|
||
// for "a" so this is checking that
|
||
// it's a lowercase character
|
||
tag.charCodeAt(0) > 96;
|
||
}
|
||
var getStyleOverrides = function getStyleOverrides(name, theme) {
|
||
if (theme.components && theme.components[name] && theme.components[name].styleOverrides) {
|
||
return theme.components[name].styleOverrides;
|
||
}
|
||
return null;
|
||
};
|
||
var getVariantStyles = function getVariantStyles(name, theme) {
|
||
var variants = [];
|
||
if (theme && theme.components && theme.components[name] && theme.components[name].variants) {
|
||
variants = theme.components[name].variants;
|
||
}
|
||
var variantsStyles = {};
|
||
variants.forEach(function (definition) {
|
||
var key = propsToClassKey(definition.props);
|
||
variantsStyles[key] = definition.style;
|
||
});
|
||
return variantsStyles;
|
||
};
|
||
var variantsResolver = function variantsResolver(props, styles, theme, name) {
|
||
var _theme$components;
|
||
var _props$ownerState = props.ownerState,
|
||
ownerState = _props$ownerState === void 0 ? {} : _props$ownerState;
|
||
var variantsStyles = [];
|
||
var themeVariants = theme == null || (_theme$components = theme.components) == null || (_theme$components = _theme$components[name]) == null ? void 0 : _theme$components.variants;
|
||
if (themeVariants) {
|
||
themeVariants.forEach(function (themeVariant) {
|
||
var isMatch = true;
|
||
Object.keys(themeVariant.props).forEach(function (key) {
|
||
if (ownerState[key] !== themeVariant.props[key] && props[key] !== themeVariant.props[key]) {
|
||
isMatch = false;
|
||
}
|
||
});
|
||
if (isMatch) {
|
||
variantsStyles.push(styles[propsToClassKey(themeVariant.props)]);
|
||
}
|
||
});
|
||
}
|
||
return variantsStyles;
|
||
};
|
||
|
||
// Update /system/styled/#api in case if this changes
|
||
function createStyled_shouldForwardProp(prop) {
|
||
return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';
|
||
}
|
||
var createStyled_systemDefaultTheme = createTheme_createTheme();
|
||
var lowercaseFirstLetter = function lowercaseFirstLetter(string) {
|
||
if (!string) {
|
||
return string;
|
||
}
|
||
return string.charAt(0).toLowerCase() + string.slice(1);
|
||
};
|
||
function resolveTheme(_ref) {
|
||
var defaultTheme = _ref.defaultTheme,
|
||
theme = _ref.theme,
|
||
themeId = _ref.themeId;
|
||
return createStyled_isEmpty(theme) ? defaultTheme : theme[themeId] || theme;
|
||
}
|
||
function defaultOverridesResolver(slot) {
|
||
if (!slot) {
|
||
return null;
|
||
}
|
||
return function (props, styles) {
|
||
return styles[slot];
|
||
};
|
||
}
|
||
function createStyled_createStyled() {
|
||
var input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||
var themeId = input.themeId,
|
||
_input$defaultTheme = input.defaultTheme,
|
||
defaultTheme = _input$defaultTheme === void 0 ? createStyled_systemDefaultTheme : _input$defaultTheme,
|
||
_input$rootShouldForw = input.rootShouldForwardProp,
|
||
rootShouldForwardProp = _input$rootShouldForw === void 0 ? createStyled_shouldForwardProp : _input$rootShouldForw,
|
||
_input$slotShouldForw = input.slotShouldForwardProp,
|
||
slotShouldForwardProp = _input$slotShouldForw === void 0 ? createStyled_shouldForwardProp : _input$slotShouldForw;
|
||
var systemSx = function systemSx(props) {
|
||
return styleFunctionSx_styleFunctionSx(extends_extends({}, props, {
|
||
theme: resolveTheme(extends_extends({}, props, {
|
||
defaultTheme: defaultTheme,
|
||
themeId: themeId
|
||
}))
|
||
}));
|
||
};
|
||
systemSx.__mui_systemSx = true;
|
||
return function (tag) {
|
||
var inputOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||
// Filter out the `sx` style function from the previous styled component to prevent unnecessary styles generated by the composite components.
|
||
internal_processStyles(tag, function (styles) {
|
||
return styles.filter(function (style) {
|
||
return !(style != null && style.__mui_systemSx);
|
||
});
|
||
});
|
||
var componentName = inputOptions.name,
|
||
componentSlot = inputOptions.slot,
|
||
inputSkipVariantsResolver = inputOptions.skipVariantsResolver,
|
||
inputSkipSx = inputOptions.skipSx,
|
||
_inputOptions$overrid = inputOptions.overridesResolver,
|
||
overridesResolver = _inputOptions$overrid === void 0 ? defaultOverridesResolver(lowercaseFirstLetter(componentSlot)) : _inputOptions$overrid,
|
||
options = _objectWithoutPropertiesLoose(inputOptions, createStyled_excluded);
|
||
|
||
// if skipVariantsResolver option is defined, take the value, otherwise, true for root and false for other slots.
|
||
var skipVariantsResolver = inputSkipVariantsResolver !== undefined ? inputSkipVariantsResolver :
|
||
// TODO v6: remove `Root` in the next major release
|
||
// For more details: https://github.com/mui/material-ui/pull/37908
|
||
componentSlot && componentSlot !== 'Root' && componentSlot !== 'root' || false;
|
||
var skipSx = inputSkipSx || false;
|
||
var label;
|
||
if (false) {}
|
||
var shouldForwardPropOption = createStyled_shouldForwardProp;
|
||
|
||
// TODO v6: remove `Root` in the next major release
|
||
// For more details: https://github.com/mui/material-ui/pull/37908
|
||
if (componentSlot === 'Root' || componentSlot === 'root') {
|
||
shouldForwardPropOption = rootShouldForwardProp;
|
||
} else if (componentSlot) {
|
||
// any other slot specified
|
||
shouldForwardPropOption = slotShouldForwardProp;
|
||
} else if (isStringTag(tag)) {
|
||
// for string (html) tag, preserve the behavior in emotion & styled-components.
|
||
shouldForwardPropOption = undefined;
|
||
}
|
||
var defaultStyledResolver = styled(tag, extends_extends({
|
||
shouldForwardProp: shouldForwardPropOption,
|
||
label: label
|
||
}, options));
|
||
var muiStyledResolver = function muiStyledResolver(styleArg) {
|
||
for (var _len = arguments.length, expressions = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
||
expressions[_key - 1] = arguments[_key];
|
||
}
|
||
var expressionsWithDefaultTheme = expressions ? expressions.map(function (stylesArg) {
|
||
// On the server Emotion doesn't use React.forwardRef for creating components, so the created
|
||
// component stays as a function. This condition makes sure that we do not interpolate functions
|
||
// which are basically components used as a selectors.
|
||
return typeof stylesArg === 'function' && stylesArg.__emotion_real !== stylesArg ? function (props) {
|
||
return stylesArg(extends_extends({}, props, {
|
||
theme: resolveTheme(extends_extends({}, props, {
|
||
defaultTheme: defaultTheme,
|
||
themeId: themeId
|
||
}))
|
||
}));
|
||
} : stylesArg;
|
||
}) : [];
|
||
var transformedStyleArg = styleArg;
|
||
if (componentName && overridesResolver) {
|
||
expressionsWithDefaultTheme.push(function (props) {
|
||
var theme = resolveTheme(extends_extends({}, props, {
|
||
defaultTheme: defaultTheme,
|
||
themeId: themeId
|
||
}));
|
||
var styleOverrides = getStyleOverrides(componentName, theme);
|
||
if (styleOverrides) {
|
||
var resolvedStyleOverrides = {};
|
||
Object.entries(styleOverrides).forEach(function (_ref2) {
|
||
var _ref3 = _slicedToArray(_ref2, 2),
|
||
slotKey = _ref3[0],
|
||
slotStyle = _ref3[1];
|
||
resolvedStyleOverrides[slotKey] = typeof slotStyle === 'function' ? slotStyle(extends_extends({}, props, {
|
||
theme: theme
|
||
})) : slotStyle;
|
||
});
|
||
return overridesResolver(props, resolvedStyleOverrides);
|
||
}
|
||
return null;
|
||
});
|
||
}
|
||
if (componentName && !skipVariantsResolver) {
|
||
expressionsWithDefaultTheme.push(function (props) {
|
||
var theme = resolveTheme(extends_extends({}, props, {
|
||
defaultTheme: defaultTheme,
|
||
themeId: themeId
|
||
}));
|
||
return variantsResolver(props, getVariantStyles(componentName, theme), theme, componentName);
|
||
});
|
||
}
|
||
if (!skipSx) {
|
||
expressionsWithDefaultTheme.push(systemSx);
|
||
}
|
||
var numOfCustomFnsApplied = expressionsWithDefaultTheme.length - expressions.length;
|
||
if (Array.isArray(styleArg) && numOfCustomFnsApplied > 0) {
|
||
var placeholders = new Array(numOfCustomFnsApplied).fill('');
|
||
// If the type is array, than we need to add placeholders in the template for the overrides, variants and the sx styles.
|
||
transformedStyleArg = [].concat(toConsumableArray_toConsumableArray(styleArg), toConsumableArray_toConsumableArray(placeholders));
|
||
transformedStyleArg.raw = [].concat(toConsumableArray_toConsumableArray(styleArg.raw), toConsumableArray_toConsumableArray(placeholders));
|
||
} else if (typeof styleArg === 'function' &&
|
||
// On the server Emotion doesn't use React.forwardRef for creating components, so the created
|
||
// component stays as a function. This condition makes sure that we do not interpolate functions
|
||
// which are basically components used as a selectors.
|
||
styleArg.__emotion_real !== styleArg) {
|
||
// If the type is function, we need to define the default theme.
|
||
transformedStyleArg = function transformedStyleArg(props) {
|
||
return styleArg(extends_extends({}, props, {
|
||
theme: resolveTheme(extends_extends({}, props, {
|
||
defaultTheme: defaultTheme,
|
||
themeId: themeId
|
||
}))
|
||
}));
|
||
};
|
||
}
|
||
var Component = defaultStyledResolver.apply(void 0, [transformedStyleArg].concat(toConsumableArray_toConsumableArray(expressionsWithDefaultTheme)));
|
||
if (false) { var displayName; }
|
||
if (tag.muiName) {
|
||
Component.muiName = tag.muiName;
|
||
}
|
||
return Component;
|
||
};
|
||
if (defaultStyledResolver.withConfig) {
|
||
muiStyledResolver.withConfig = defaultStyledResolver.withConfig;
|
||
}
|
||
return muiStyledResolver;
|
||
};
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/styles/styled.js
|
||
'use client';
|
||
|
||
|
||
|
||
|
||
var rootShouldForwardProp = function rootShouldForwardProp(prop) {
|
||
return createStyled_shouldForwardProp(prop) && prop !== 'classes';
|
||
};
|
||
var slotShouldForwardProp = (/* unused pure expression or super */ null && (shouldForwardProp));
|
||
var styled_styled = createStyled_createStyled({
|
||
themeId: styles_identifier,
|
||
defaultTheme: styles_defaultTheme,
|
||
rootShouldForwardProp: rootShouldForwardProp
|
||
});
|
||
/* harmony default export */ var styles_styled = (styled_styled);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+utils@5.14.10_@types+react@18.2.22_react@18.2.0/node_modules/@mui/utils/esm/ClassNameGenerator/ClassNameGenerator.js
|
||
var defaultGenerator = function defaultGenerator(componentName) {
|
||
return componentName;
|
||
};
|
||
var createClassNameGenerator = function createClassNameGenerator() {
|
||
var _generate = defaultGenerator;
|
||
return {
|
||
configure: function configure(generator) {
|
||
_generate = generator;
|
||
},
|
||
generate: function generate(componentName) {
|
||
return _generate(componentName);
|
||
},
|
||
reset: function reset() {
|
||
_generate = defaultGenerator;
|
||
}
|
||
};
|
||
};
|
||
var ClassNameGenerator = createClassNameGenerator();
|
||
/* harmony default export */ var ClassNameGenerator_ClassNameGenerator = (ClassNameGenerator);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+utils@5.14.10_@types+react@18.2.22_react@18.2.0/node_modules/@mui/utils/esm/generateUtilityClass/generateUtilityClass.js
|
||
|
||
|
||
// If GlobalStateSlot is changed, GLOBAL_STATE_CLASSES in
|
||
// \packages\api-docs-builder\utils\parseSlotsAndClasses.ts must be updated accordingly.
|
||
var globalStateClassesMapping = {
|
||
active: 'active',
|
||
checked: 'checked',
|
||
completed: 'completed',
|
||
disabled: 'disabled',
|
||
error: 'error',
|
||
expanded: 'expanded',
|
||
focused: 'focused',
|
||
focusVisible: 'focusVisible',
|
||
open: 'open',
|
||
readOnly: 'readOnly',
|
||
required: 'required',
|
||
selected: 'selected'
|
||
};
|
||
function generateUtilityClass_generateUtilityClass(componentName, slot) {
|
||
var globalStatePrefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'Mui';
|
||
var globalStateClass = globalStateClassesMapping[slot];
|
||
return globalStateClass ? "".concat(globalStatePrefix, "-").concat(globalStateClass) : "".concat(ClassNameGenerator_ClassNameGenerator.generate(componentName), "-").concat(slot);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+utils@5.14.10_@types+react@18.2.22_react@18.2.0/node_modules/@mui/utils/esm/generateUtilityClasses/generateUtilityClasses.js
|
||
|
||
function generateUtilityClasses(componentName, slots) {
|
||
var globalStatePrefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'Mui';
|
||
var result = {};
|
||
slots.forEach(function (slot) {
|
||
result[slot] = generateUtilityClass_generateUtilityClass(componentName, slot, globalStatePrefix);
|
||
});
|
||
return result;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/CircularProgress/circularProgressClasses.js
|
||
|
||
|
||
function getCircularProgressUtilityClass(slot) {
|
||
return generateUtilityClass_generateUtilityClass('MuiCircularProgress', slot);
|
||
}
|
||
var circularProgressClasses = generateUtilityClasses('MuiCircularProgress', ['root', 'determinate', 'indeterminate', 'colorPrimary', 'colorSecondary', 'svg', 'circle', 'circleDeterminate', 'circleIndeterminate', 'circleDisableShrink']);
|
||
/* harmony default export */ var CircularProgress_circularProgressClasses = ((/* unused pure expression or super */ null && (circularProgressClasses)));
|
||
// EXTERNAL MODULE: ./node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js
|
||
var jsx_runtime = __webpack_require__(7394);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/CircularProgress/CircularProgress.js
|
||
'use client';
|
||
|
||
|
||
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
||
|
||
|
||
var CircularProgress_excluded = ["className", "color", "disableShrink", "size", "style", "thickness", "value", "variant"];
|
||
var _ = function _(t) {
|
||
return t;
|
||
},
|
||
_t,
|
||
_t2,
|
||
_t3,
|
||
_t4;
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
var SIZE = 44;
|
||
var circularRotateKeyframe = keyframes(_t || (_t = _(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n"])))));
|
||
var circularDashKeyframe = keyframes(_t2 || (_t2 = _(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n 0% {\n stroke-dasharray: 1px, 200px;\n stroke-dashoffset: 0;\n }\n\n 50% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -15px;\n }\n\n 100% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -125px;\n }\n"])))));
|
||
var useUtilityClasses = function useUtilityClasses(ownerState) {
|
||
var classes = ownerState.classes,
|
||
variant = ownerState.variant,
|
||
color = ownerState.color,
|
||
disableShrink = ownerState.disableShrink;
|
||
var slots = {
|
||
root: ['root', variant, "color".concat(utils_capitalize(color))],
|
||
svg: ['svg'],
|
||
circle: ['circle', "circle".concat(utils_capitalize(variant)), disableShrink && 'circleDisableShrink']
|
||
};
|
||
return composeClasses(slots, getCircularProgressUtilityClass, classes);
|
||
};
|
||
var CircularProgressRoot = styles_styled('span', {
|
||
name: 'MuiCircularProgress',
|
||
slot: 'Root',
|
||
overridesResolver: function overridesResolver(props, styles) {
|
||
var ownerState = props.ownerState;
|
||
return [styles.root, styles[ownerState.variant], styles["color".concat(utils_capitalize(ownerState.color))]];
|
||
}
|
||
})(function (_ref) {
|
||
var ownerState = _ref.ownerState,
|
||
theme = _ref.theme;
|
||
return extends_extends({
|
||
display: 'inline-block'
|
||
}, ownerState.variant === 'determinate' && {
|
||
transition: theme.transitions.create('transform')
|
||
}, ownerState.color !== 'inherit' && {
|
||
color: (theme.vars || theme).palette[ownerState.color].main
|
||
});
|
||
}, function (_ref2) {
|
||
var ownerState = _ref2.ownerState;
|
||
return ownerState.variant === 'indeterminate' && css(_t3 || (_t3 = _(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n animation: ", " 1.4s linear infinite;\n "])), 0)), circularRotateKeyframe);
|
||
});
|
||
var CircularProgressSVG = styles_styled('svg', {
|
||
name: 'MuiCircularProgress',
|
||
slot: 'Svg',
|
||
overridesResolver: function overridesResolver(props, styles) {
|
||
return styles.svg;
|
||
}
|
||
})({
|
||
display: 'block' // Keeps the progress centered
|
||
});
|
||
|
||
var CircularProgressCircle = styles_styled('circle', {
|
||
name: 'MuiCircularProgress',
|
||
slot: 'Circle',
|
||
overridesResolver: function overridesResolver(props, styles) {
|
||
var ownerState = props.ownerState;
|
||
return [styles.circle, styles["circle".concat(utils_capitalize(ownerState.variant))], ownerState.disableShrink && styles.circleDisableShrink];
|
||
}
|
||
})(function (_ref3) {
|
||
var ownerState = _ref3.ownerState,
|
||
theme = _ref3.theme;
|
||
return extends_extends({
|
||
stroke: 'currentColor'
|
||
}, ownerState.variant === 'determinate' && {
|
||
transition: theme.transitions.create('stroke-dashoffset')
|
||
}, ownerState.variant === 'indeterminate' && {
|
||
// Some default value that looks fine waiting for the animation to kicks in.
|
||
strokeDasharray: '80px, 200px',
|
||
strokeDashoffset: 0 // Add the unit to fix a Edge 16 and below bug.
|
||
});
|
||
}, function (_ref4) {
|
||
var ownerState = _ref4.ownerState;
|
||
return ownerState.variant === 'indeterminate' && !ownerState.disableShrink && css(_t4 || (_t4 = _(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n animation: ", " 1.4s ease-in-out infinite;\n "])), 0)), circularDashKeyframe);
|
||
});
|
||
|
||
/**
|
||
* ## ARIA
|
||
*
|
||
* If the progress bar is describing the loading progress of a particular region of a page,
|
||
* you should use `aria-describedby` to point to the progress bar, and set the `aria-busy`
|
||
* attribute to `true` on that region until it has finished loading.
|
||
*/
|
||
var CircularProgress = /*#__PURE__*/react.forwardRef(function CircularProgress(inProps, ref) {
|
||
var props = useThemeProps_useThemeProps({
|
||
props: inProps,
|
||
name: 'MuiCircularProgress'
|
||
});
|
||
var className = props.className,
|
||
_props$color = props.color,
|
||
color = _props$color === void 0 ? 'primary' : _props$color,
|
||
_props$disableShrink = props.disableShrink,
|
||
disableShrink = _props$disableShrink === void 0 ? false : _props$disableShrink,
|
||
_props$size = props.size,
|
||
size = _props$size === void 0 ? 40 : _props$size,
|
||
style = props.style,
|
||
_props$thickness = props.thickness,
|
||
thickness = _props$thickness === void 0 ? 3.6 : _props$thickness,
|
||
_props$value = props.value,
|
||
value = _props$value === void 0 ? 0 : _props$value,
|
||
_props$variant = props.variant,
|
||
variant = _props$variant === void 0 ? 'indeterminate' : _props$variant,
|
||
other = _objectWithoutPropertiesLoose(props, CircularProgress_excluded);
|
||
var ownerState = extends_extends({}, props, {
|
||
color: color,
|
||
disableShrink: disableShrink,
|
||
size: size,
|
||
thickness: thickness,
|
||
value: value,
|
||
variant: variant
|
||
});
|
||
var classes = useUtilityClasses(ownerState);
|
||
var circleStyle = {};
|
||
var rootStyle = {};
|
||
var rootProps = {};
|
||
if (variant === 'determinate') {
|
||
var circumference = 2 * Math.PI * ((SIZE - thickness) / 2);
|
||
circleStyle.strokeDasharray = circumference.toFixed(3);
|
||
rootProps['aria-valuenow'] = Math.round(value);
|
||
circleStyle.strokeDashoffset = "".concat(((100 - value) / 100 * circumference).toFixed(3), "px");
|
||
rootStyle.transform = 'rotate(-90deg)';
|
||
}
|
||
return /*#__PURE__*/(0,jsx_runtime.jsx)(CircularProgressRoot, extends_extends({
|
||
className: dist_clsx(classes.root, className),
|
||
style: extends_extends({
|
||
width: size,
|
||
height: size
|
||
}, rootStyle, style),
|
||
ownerState: ownerState,
|
||
ref: ref,
|
||
role: "progressbar"
|
||
}, rootProps, other, {
|
||
children: /*#__PURE__*/(0,jsx_runtime.jsx)(CircularProgressSVG, {
|
||
className: classes.svg,
|
||
ownerState: ownerState,
|
||
viewBox: "".concat(SIZE / 2, " ").concat(SIZE / 2, " ").concat(SIZE, " ").concat(SIZE),
|
||
children: /*#__PURE__*/(0,jsx_runtime.jsx)(CircularProgressCircle, {
|
||
className: classes.circle,
|
||
style: circleStyle,
|
||
ownerState: ownerState,
|
||
cx: SIZE,
|
||
cy: SIZE,
|
||
r: (SIZE - thickness) / 2,
|
||
fill: "none",
|
||
strokeWidth: thickness
|
||
})
|
||
})
|
||
}));
|
||
});
|
||
false ? 0 : void 0;
|
||
/* harmony default export */ var CircularProgress_CircularProgress = (CircularProgress);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Divider/dividerClasses.js
|
||
|
||
|
||
function getDividerUtilityClass(slot) {
|
||
return generateUtilityClass_generateUtilityClass('MuiDivider', slot);
|
||
}
|
||
var dividerClasses = generateUtilityClasses('MuiDivider', ['root', 'absolute', 'fullWidth', 'inset', 'middle', 'flexItem', 'light', 'vertical', 'withChildren', 'withChildrenVertical', 'textAlignRight', 'textAlignLeft', 'wrapper', 'wrapperVertical']);
|
||
/* harmony default export */ var Divider_dividerClasses = ((/* unused pure expression or super */ null && (dividerClasses)));
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Divider/Divider.js
|
||
'use client';
|
||
|
||
|
||
|
||
var Divider_excluded = ["absolute", "children", "className", "component", "flexItem", "light", "orientation", "role", "textAlign", "variant"];
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
var Divider_useUtilityClasses = function useUtilityClasses(ownerState) {
|
||
var absolute = ownerState.absolute,
|
||
children = ownerState.children,
|
||
classes = ownerState.classes,
|
||
flexItem = ownerState.flexItem,
|
||
light = ownerState.light,
|
||
orientation = ownerState.orientation,
|
||
textAlign = ownerState.textAlign,
|
||
variant = ownerState.variant;
|
||
var slots = {
|
||
root: ['root', absolute && 'absolute', variant, light && 'light', orientation === 'vertical' && 'vertical', flexItem && 'flexItem', children && 'withChildren', children && orientation === 'vertical' && 'withChildrenVertical', textAlign === 'right' && orientation !== 'vertical' && 'textAlignRight', textAlign === 'left' && orientation !== 'vertical' && 'textAlignLeft'],
|
||
wrapper: ['wrapper', orientation === 'vertical' && 'wrapperVertical']
|
||
};
|
||
return composeClasses(slots, getDividerUtilityClass, classes);
|
||
};
|
||
var DividerRoot = styles_styled('div', {
|
||
name: 'MuiDivider',
|
||
slot: 'Root',
|
||
overridesResolver: function overridesResolver(props, styles) {
|
||
var ownerState = props.ownerState;
|
||
return [styles.root, ownerState.absolute && styles.absolute, styles[ownerState.variant], ownerState.light && styles.light, ownerState.orientation === 'vertical' && styles.vertical, ownerState.flexItem && styles.flexItem, ownerState.children && styles.withChildren, ownerState.children && ownerState.orientation === 'vertical' && styles.withChildrenVertical, ownerState.textAlign === 'right' && ownerState.orientation !== 'vertical' && styles.textAlignRight, ownerState.textAlign === 'left' && ownerState.orientation !== 'vertical' && styles.textAlignLeft];
|
||
}
|
||
})(function (_ref) {
|
||
var theme = _ref.theme,
|
||
ownerState = _ref.ownerState;
|
||
return extends_extends({
|
||
margin: 0,
|
||
// Reset browser default style.
|
||
flexShrink: 0,
|
||
borderWidth: 0,
|
||
borderStyle: 'solid',
|
||
borderColor: (theme.vars || theme).palette.divider,
|
||
borderBottomWidth: 'thin'
|
||
}, ownerState.absolute && {
|
||
position: 'absolute',
|
||
bottom: 0,
|
||
left: 0,
|
||
width: '100%'
|
||
}, ownerState.light && {
|
||
borderColor: theme.vars ? "rgba(".concat(theme.vars.palette.dividerChannel, " / 0.08)") : alpha(theme.palette.divider, 0.08)
|
||
}, ownerState.variant === 'inset' && {
|
||
marginLeft: 72
|
||
}, ownerState.variant === 'middle' && ownerState.orientation === 'horizontal' && {
|
||
marginLeft: theme.spacing(2),
|
||
marginRight: theme.spacing(2)
|
||
}, ownerState.variant === 'middle' && ownerState.orientation === 'vertical' && {
|
||
marginTop: theme.spacing(1),
|
||
marginBottom: theme.spacing(1)
|
||
}, ownerState.orientation === 'vertical' && {
|
||
height: '100%',
|
||
borderBottomWidth: 0,
|
||
borderRightWidth: 'thin'
|
||
}, ownerState.flexItem && {
|
||
alignSelf: 'stretch',
|
||
height: 'auto'
|
||
});
|
||
}, function (_ref2) {
|
||
var ownerState = _ref2.ownerState;
|
||
return extends_extends({}, ownerState.children && {
|
||
display: 'flex',
|
||
whiteSpace: 'nowrap',
|
||
textAlign: 'center',
|
||
border: 0,
|
||
'&::before, &::after': {
|
||
content: '""',
|
||
alignSelf: 'center'
|
||
}
|
||
});
|
||
}, function (_ref3) {
|
||
var theme = _ref3.theme,
|
||
ownerState = _ref3.ownerState;
|
||
return extends_extends({}, ownerState.children && ownerState.orientation !== 'vertical' && {
|
||
'&::before, &::after': {
|
||
width: '100%',
|
||
borderTop: "thin solid ".concat((theme.vars || theme).palette.divider)
|
||
}
|
||
});
|
||
}, function (_ref4) {
|
||
var theme = _ref4.theme,
|
||
ownerState = _ref4.ownerState;
|
||
return extends_extends({}, ownerState.children && ownerState.orientation === 'vertical' && {
|
||
flexDirection: 'column',
|
||
'&::before, &::after': {
|
||
height: '100%',
|
||
borderLeft: "thin solid ".concat((theme.vars || theme).palette.divider)
|
||
}
|
||
});
|
||
}, function (_ref5) {
|
||
var ownerState = _ref5.ownerState;
|
||
return extends_extends({}, ownerState.textAlign === 'right' && ownerState.orientation !== 'vertical' && {
|
||
'&::before': {
|
||
width: '90%'
|
||
},
|
||
'&::after': {
|
||
width: '10%'
|
||
}
|
||
}, ownerState.textAlign === 'left' && ownerState.orientation !== 'vertical' && {
|
||
'&::before': {
|
||
width: '10%'
|
||
},
|
||
'&::after': {
|
||
width: '90%'
|
||
}
|
||
});
|
||
});
|
||
var DividerWrapper = styles_styled('span', {
|
||
name: 'MuiDivider',
|
||
slot: 'Wrapper',
|
||
overridesResolver: function overridesResolver(props, styles) {
|
||
var ownerState = props.ownerState;
|
||
return [styles.wrapper, ownerState.orientation === 'vertical' && styles.wrapperVertical];
|
||
}
|
||
})(function (_ref6) {
|
||
var theme = _ref6.theme,
|
||
ownerState = _ref6.ownerState;
|
||
return extends_extends({
|
||
display: 'inline-block',
|
||
paddingLeft: "calc(".concat(theme.spacing(1), " * 1.2)"),
|
||
paddingRight: "calc(".concat(theme.spacing(1), " * 1.2)")
|
||
}, ownerState.orientation === 'vertical' && {
|
||
paddingTop: "calc(".concat(theme.spacing(1), " * 1.2)"),
|
||
paddingBottom: "calc(".concat(theme.spacing(1), " * 1.2)")
|
||
});
|
||
});
|
||
var Divider = /*#__PURE__*/react.forwardRef(function Divider(inProps, ref) {
|
||
var props = useThemeProps_useThemeProps({
|
||
props: inProps,
|
||
name: 'MuiDivider'
|
||
});
|
||
var _props$absolute = props.absolute,
|
||
absolute = _props$absolute === void 0 ? false : _props$absolute,
|
||
children = props.children,
|
||
className = props.className,
|
||
_props$component = props.component,
|
||
component = _props$component === void 0 ? children ? 'div' : 'hr' : _props$component,
|
||
_props$flexItem = props.flexItem,
|
||
flexItem = _props$flexItem === void 0 ? false : _props$flexItem,
|
||
_props$light = props.light,
|
||
light = _props$light === void 0 ? false : _props$light,
|
||
_props$orientation = props.orientation,
|
||
orientation = _props$orientation === void 0 ? 'horizontal' : _props$orientation,
|
||
_props$role = props.role,
|
||
role = _props$role === void 0 ? component !== 'hr' ? 'separator' : undefined : _props$role,
|
||
_props$textAlign = props.textAlign,
|
||
textAlign = _props$textAlign === void 0 ? 'center' : _props$textAlign,
|
||
_props$variant = props.variant,
|
||
variant = _props$variant === void 0 ? 'fullWidth' : _props$variant,
|
||
other = _objectWithoutPropertiesLoose(props, Divider_excluded);
|
||
var ownerState = extends_extends({}, props, {
|
||
absolute: absolute,
|
||
component: component,
|
||
flexItem: flexItem,
|
||
light: light,
|
||
orientation: orientation,
|
||
role: role,
|
||
textAlign: textAlign,
|
||
variant: variant
|
||
});
|
||
var classes = Divider_useUtilityClasses(ownerState);
|
||
return /*#__PURE__*/(0,jsx_runtime.jsx)(DividerRoot, extends_extends({
|
||
as: component,
|
||
className: dist_clsx(classes.root, className),
|
||
role: role,
|
||
ref: ref,
|
||
ownerState: ownerState
|
||
}, other, {
|
||
children: children ? /*#__PURE__*/(0,jsx_runtime.jsx)(DividerWrapper, {
|
||
className: classes.wrapper,
|
||
ownerState: ownerState,
|
||
children: children
|
||
}) : null
|
||
}));
|
||
});
|
||
|
||
/**
|
||
* The following flag is used to ensure that this component isn't tabbable i.e.
|
||
* does not get highlight/focus inside of MUI List.
|
||
*/
|
||
Divider.muiSkipListHighlight = true;
|
||
false ? 0 : void 0;
|
||
/* harmony default export */ var Divider_Divider = (Divider);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/objectSpread2.js
|
||
|
||
function ownKeys(e, r) {
|
||
var t = Object.keys(e);
|
||
if (Object.getOwnPropertySymbols) {
|
||
var o = Object.getOwnPropertySymbols(e);
|
||
r && (o = o.filter(function (r) {
|
||
return Object.getOwnPropertyDescriptor(e, r).enumerable;
|
||
})), t.push.apply(t, o);
|
||
}
|
||
return t;
|
||
}
|
||
function _objectSpread2(e) {
|
||
for (var r = 1; r < arguments.length; r++) {
|
||
var t = null != arguments[r] ? arguments[r] : {};
|
||
r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {
|
||
_defineProperty(e, r, t[r]);
|
||
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {
|
||
Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
|
||
});
|
||
}
|
||
return e;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/classCallCheck.js
|
||
function _classCallCheck(instance, Constructor) {
|
||
if (!(instance instanceof Constructor)) {
|
||
throw new TypeError("Cannot call a class as a function");
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/createClass.js
|
||
|
||
function _defineProperties(target, props) {
|
||
for (var i = 0; i < props.length; i++) {
|
||
var descriptor = props[i];
|
||
descriptor.enumerable = descriptor.enumerable || false;
|
||
descriptor.configurable = true;
|
||
if ("value" in descriptor) descriptor.writable = true;
|
||
Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);
|
||
}
|
||
}
|
||
function _createClass(Constructor, protoProps, staticProps) {
|
||
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
||
if (staticProps) _defineProperties(Constructor, staticProps);
|
||
Object.defineProperty(Constructor, "prototype", {
|
||
writable: false
|
||
});
|
||
return Constructor;
|
||
}
|
||
// EXTERNAL MODULE: ./node_modules/.pnpm/is-buffer@2.0.5/node_modules/is-buffer/index.js
|
||
var is_buffer = __webpack_require__(1730);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js
|
||
function _setPrototypeOf(o, p) {
|
||
_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
|
||
o.__proto__ = p;
|
||
return o;
|
||
};
|
||
return _setPrototypeOf(o, p);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/inherits.js
|
||
|
||
function _inherits(subClass, superClass) {
|
||
if (typeof superClass !== "function" && superClass !== null) {
|
||
throw new TypeError("Super expression must either be null or a function");
|
||
}
|
||
subClass.prototype = Object.create(superClass && superClass.prototype, {
|
||
constructor: {
|
||
value: subClass,
|
||
writable: true,
|
||
configurable: true
|
||
}
|
||
});
|
||
Object.defineProperty(subClass, "prototype", {
|
||
writable: false
|
||
});
|
||
if (superClass) _setPrototypeOf(subClass, superClass);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js
|
||
function _getPrototypeOf(o) {
|
||
_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {
|
||
return o.__proto__ || Object.getPrototypeOf(o);
|
||
};
|
||
return _getPrototypeOf(o);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js
|
||
function _isNativeReflectConstruct() {
|
||
if (typeof Reflect === "undefined" || !Reflect.construct) return false;
|
||
if (Reflect.construct.sham) return false;
|
||
if (typeof Proxy === "function") return true;
|
||
try {
|
||
Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
|
||
return true;
|
||
} catch (e) {
|
||
return false;
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js
|
||
function _assertThisInitialized(self) {
|
||
if (self === void 0) {
|
||
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
||
}
|
||
return self;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js
|
||
|
||
|
||
function _possibleConstructorReturn(self, call) {
|
||
if (call && (_typeof(call) === "object" || typeof call === "function")) {
|
||
return call;
|
||
} else if (call !== void 0) {
|
||
throw new TypeError("Derived constructors may only return object or undefined");
|
||
}
|
||
return _assertThisInitialized(self);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/createSuper.js
|
||
|
||
|
||
|
||
function _createSuper(Derived) {
|
||
var hasNativeReflectConstruct = _isNativeReflectConstruct();
|
||
return function _createSuperInternal() {
|
||
var Super = _getPrototypeOf(Derived),
|
||
result;
|
||
if (hasNativeReflectConstruct) {
|
||
var NewTarget = _getPrototypeOf(this).constructor;
|
||
result = Reflect.construct(Super, arguments, NewTarget);
|
||
} else {
|
||
result = Super.apply(this, arguments);
|
||
}
|
||
return _possibleConstructorReturn(this, result);
|
||
};
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js
|
||
function _isNativeFunction(fn) {
|
||
return Function.toString.call(fn).indexOf("[native code]") !== -1;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/construct.js
|
||
|
||
|
||
function _construct(Parent, args, Class) {
|
||
if (_isNativeReflectConstruct()) {
|
||
_construct = Reflect.construct.bind();
|
||
} else {
|
||
_construct = function _construct(Parent, args, Class) {
|
||
var a = [null];
|
||
a.push.apply(a, args);
|
||
var Constructor = Function.bind.apply(Parent, a);
|
||
var instance = new Constructor();
|
||
if (Class) _setPrototypeOf(instance, Class.prototype);
|
||
return instance;
|
||
};
|
||
}
|
||
return _construct.apply(null, arguments);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js
|
||
|
||
|
||
|
||
|
||
function _wrapNativeSuper(Class) {
|
||
var _cache = typeof Map === "function" ? new Map() : undefined;
|
||
_wrapNativeSuper = function _wrapNativeSuper(Class) {
|
||
if (Class === null || !_isNativeFunction(Class)) return Class;
|
||
if (typeof Class !== "function") {
|
||
throw new TypeError("Super expression must either be null or a function");
|
||
}
|
||
if (typeof _cache !== "undefined") {
|
||
if (_cache.has(Class)) return _cache.get(Class);
|
||
_cache.set(Class, Wrapper);
|
||
}
|
||
function Wrapper() {
|
||
return _construct(Class, arguments, _getPrototypeOf(this).constructor);
|
||
}
|
||
Wrapper.prototype = Object.create(Class.prototype, {
|
||
constructor: {
|
||
value: Wrapper,
|
||
enumerable: false,
|
||
writable: true,
|
||
configurable: true
|
||
}
|
||
});
|
||
return _setPrototypeOf(Wrapper, Class);
|
||
};
|
||
return _wrapNativeSuper(Class);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/unist-util-stringify-position@3.0.3/node_modules/unist-util-stringify-position/lib/index.js
|
||
/**
|
||
* @typedef {import('unist').Node} Node
|
||
* @typedef {import('unist').Point} Point
|
||
* @typedef {import('unist').Position} Position
|
||
*/
|
||
|
||
/**
|
||
* @typedef NodeLike
|
||
* @property {string} type
|
||
* @property {PositionLike | null | undefined} [position]
|
||
*
|
||
* @typedef PositionLike
|
||
* @property {PointLike | null | undefined} [start]
|
||
* @property {PointLike | null | undefined} [end]
|
||
*
|
||
* @typedef PointLike
|
||
* @property {number | null | undefined} [line]
|
||
* @property {number | null | undefined} [column]
|
||
* @property {number | null | undefined} [offset]
|
||
*/
|
||
|
||
/**
|
||
* Serialize the positional info of a point, position (start and end points),
|
||
* or node.
|
||
*
|
||
* @param {Node | NodeLike | Position | PositionLike | Point | PointLike | null | undefined} [value]
|
||
* Node, position, or point.
|
||
* @returns {string}
|
||
* Pretty printed positional info of a node (`string`).
|
||
*
|
||
* In the format of a range `ls:cs-le:ce` (when given `node` or `position`)
|
||
* or a point `l:c` (when given `point`), where `l` stands for line, `c` for
|
||
* column, `s` for `start`, and `e` for end.
|
||
* An empty string (`''`) is returned if the given value is neither `node`,
|
||
* `position`, nor `point`.
|
||
*/
|
||
function stringifyPosition(value) {
|
||
// Nothing.
|
||
if (!value || typeof value !== 'object') {
|
||
return '';
|
||
}
|
||
|
||
// Node.
|
||
if ('position' in value || 'type' in value) {
|
||
return lib_position(value.position);
|
||
}
|
||
|
||
// Position.
|
||
if ('start' in value || 'end' in value) {
|
||
return lib_position(value);
|
||
}
|
||
|
||
// Point.
|
||
if ('line' in value || 'column' in value) {
|
||
return point(value);
|
||
}
|
||
|
||
// ?
|
||
return '';
|
||
}
|
||
|
||
/**
|
||
* @param {Point | PointLike | null | undefined} point
|
||
* @returns {string}
|
||
*/
|
||
function point(point) {
|
||
return index(point && point.line) + ':' + index(point && point.column);
|
||
}
|
||
|
||
/**
|
||
* @param {Position | PositionLike | null | undefined} pos
|
||
* @returns {string}
|
||
*/
|
||
function lib_position(pos) {
|
||
return point(pos && pos.start) + '-' + point(pos && pos.end);
|
||
}
|
||
|
||
/**
|
||
* @param {number | null | undefined} value
|
||
* @returns {number}
|
||
*/
|
||
function index(value) {
|
||
return value && typeof value === 'number' ? value : 1;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/vfile-message@3.1.4/node_modules/vfile-message/lib/index.js
|
||
|
||
|
||
|
||
|
||
|
||
/**
|
||
* @typedef {import('unist').Node} Node
|
||
* @typedef {import('unist').Position} Position
|
||
* @typedef {import('unist').Point} Point
|
||
* @typedef {object & {type: string, position?: Position | undefined}} NodeLike
|
||
*/
|
||
|
||
|
||
|
||
/**
|
||
* Message.
|
||
*/
|
||
var VFileMessage = /*#__PURE__*/function (_Error) {
|
||
_inherits(VFileMessage, _Error);
|
||
var _super = _createSuper(VFileMessage);
|
||
/**
|
||
* Create a message for `reason` at `place` from `origin`.
|
||
*
|
||
* When an error is passed in as `reason`, the `stack` is copied.
|
||
*
|
||
* @param {string | Error | VFileMessage} reason
|
||
* Reason for message, uses the stack and message of the error if given.
|
||
*
|
||
* > 👉 **Note**: you should use markdown.
|
||
* @param {Node | NodeLike | Position | Point | null | undefined} [place]
|
||
* Place in file where the message occurred.
|
||
* @param {string | null | undefined} [origin]
|
||
* Place in code where the message originates (example:
|
||
* `'my-package:my-rule'` or `'my-rule'`).
|
||
* @returns
|
||
* Instance of `VFileMessage`.
|
||
*/
|
||
// To do: next major: expose `undefined` everywhere instead of `null`.
|
||
function VFileMessage(reason, place, origin) {
|
||
var _this;
|
||
_classCallCheck(this, VFileMessage);
|
||
/** @type {[string | null, string | null]} */
|
||
var parts = [null, null];
|
||
/** @type {Position} */
|
||
var position = {
|
||
// @ts-expect-error: we always follows the structure of `position`.
|
||
start: {
|
||
line: null,
|
||
column: null
|
||
},
|
||
// @ts-expect-error: "
|
||
end: {
|
||
line: null,
|
||
column: null
|
||
}
|
||
};
|
||
_this = _super.call(this);
|
||
if (typeof place === 'string') {
|
||
origin = place;
|
||
place = undefined;
|
||
}
|
||
if (typeof origin === 'string') {
|
||
var index = origin.indexOf(':');
|
||
if (index === -1) {
|
||
parts[1] = origin;
|
||
} else {
|
||
parts[0] = origin.slice(0, index);
|
||
parts[1] = origin.slice(index + 1);
|
||
}
|
||
}
|
||
if (place) {
|
||
// Node.
|
||
if ('type' in place || 'position' in place) {
|
||
if (place.position) {
|
||
// To do: next major: deep clone.
|
||
// @ts-expect-error: looks like a position.
|
||
position = place.position;
|
||
}
|
||
}
|
||
// Position.
|
||
else if ('start' in place || 'end' in place) {
|
||
// @ts-expect-error: looks like a position.
|
||
// To do: next major: deep clone.
|
||
position = place;
|
||
}
|
||
// Point.
|
||
else if ('line' in place || 'column' in place) {
|
||
// To do: next major: deep clone.
|
||
position.start = place;
|
||
}
|
||
}
|
||
|
||
// Fields from `Error`.
|
||
/**
|
||
* Serialized positional info of error.
|
||
*
|
||
* On normal errors, this would be something like `ParseError`, buit in
|
||
* `VFile` messages we use this space to show where an error happened.
|
||
*/
|
||
_this.name = stringifyPosition(place) || '1:1';
|
||
|
||
/**
|
||
* Reason for message.
|
||
*
|
||
* @type {string}
|
||
*/
|
||
_this.message = typeof reason === 'object' ? reason.message : reason;
|
||
|
||
/**
|
||
* Stack of message.
|
||
*
|
||
* This is used by normal errors to show where something happened in
|
||
* programming code, irrelevant for `VFile` messages,
|
||
*
|
||
* @type {string}
|
||
*/
|
||
_this.stack = '';
|
||
if (typeof reason === 'object' && reason.stack) {
|
||
_this.stack = reason.stack;
|
||
}
|
||
|
||
/**
|
||
* Reason for message.
|
||
*
|
||
* > 👉 **Note**: you should use markdown.
|
||
*
|
||
* @type {string}
|
||
*/
|
||
_this.reason = _this.message;
|
||
|
||
/* eslint-disable no-unused-expressions */
|
||
/**
|
||
* State of problem.
|
||
*
|
||
* * `true` — marks associated file as no longer processable (error)
|
||
* * `false` — necessitates a (potential) change (warning)
|
||
* * `null | undefined` — for things that might not need changing (info)
|
||
*
|
||
* @type {boolean | null | undefined}
|
||
*/
|
||
_this.fatal;
|
||
|
||
/**
|
||
* Starting line of error.
|
||
*
|
||
* @type {number | null}
|
||
*/
|
||
_this.line = position.start.line;
|
||
|
||
/**
|
||
* Starting column of error.
|
||
*
|
||
* @type {number | null}
|
||
*/
|
||
_this.column = position.start.column;
|
||
|
||
/**
|
||
* Full unist position.
|
||
*
|
||
* @type {Position | null}
|
||
*/
|
||
_this.position = position;
|
||
|
||
/**
|
||
* Namespace of message (example: `'my-package'`).
|
||
*
|
||
* @type {string | null}
|
||
*/
|
||
_this.source = parts[0];
|
||
|
||
/**
|
||
* Category of message (example: `'my-rule'`).
|
||
*
|
||
* @type {string | null}
|
||
*/
|
||
_this.ruleId = parts[1];
|
||
|
||
/**
|
||
* Path of a file (used throughout the `VFile` ecosystem).
|
||
*
|
||
* @type {string | null}
|
||
*/
|
||
_this.file;
|
||
|
||
// The following fields are “well known”.
|
||
// Not standard.
|
||
// Feel free to add other non-standard fields to your messages.
|
||
|
||
/**
|
||
* Specify the source value that’s being reported, which is deemed
|
||
* incorrect.
|
||
*
|
||
* @type {string | null}
|
||
*/
|
||
_this.actual;
|
||
|
||
/**
|
||
* Suggest acceptable values that can be used instead of `actual`.
|
||
*
|
||
* @type {Array<string> | null}
|
||
*/
|
||
_this.expected;
|
||
|
||
/**
|
||
* Link to docs for the message.
|
||
*
|
||
* > 👉 **Note**: this must be an absolute URL that can be passed as `x`
|
||
* > to `new URL(x)`.
|
||
*
|
||
* @type {string | null}
|
||
*/
|
||
_this.url;
|
||
|
||
/**
|
||
* Long form description of the message (you should use markdown).
|
||
*
|
||
* @type {string | null}
|
||
*/
|
||
_this.note;
|
||
/* eslint-enable no-unused-expressions */
|
||
return _this;
|
||
}
|
||
return _createClass(VFileMessage);
|
||
}( /*#__PURE__*/_wrapNativeSuper(Error));
|
||
VFileMessage.prototype.file = '';
|
||
VFileMessage.prototype.name = '';
|
||
VFileMessage.prototype.reason = '';
|
||
VFileMessage.prototype.message = '';
|
||
VFileMessage.prototype.stack = '';
|
||
VFileMessage.prototype.fatal = null;
|
||
VFileMessage.prototype.column = null;
|
||
VFileMessage.prototype.line = null;
|
||
VFileMessage.prototype.source = null;
|
||
VFileMessage.prototype.ruleId = null;
|
||
VFileMessage.prototype.position = null;
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/vfile@5.3.7/node_modules/vfile/lib/minpath.browser.js
|
||
// A derivative work based on:
|
||
// <https://github.com/browserify/path-browserify>.
|
||
// Which is licensed:
|
||
//
|
||
// MIT License
|
||
//
|
||
// Copyright (c) 2013 James Halliday
|
||
//
|
||
// Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||
// this software and associated documentation files (the "Software"), to deal in
|
||
// the Software without restriction, including without limitation the rights to
|
||
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||
// the Software, and to permit persons to whom the Software is furnished to do so,
|
||
// subject to the following conditions:
|
||
//
|
||
// The above copyright notice and this permission notice shall be included in all
|
||
// copies or substantial portions of the Software.
|
||
//
|
||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||
// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||
// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||
// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||
// A derivative work based on:
|
||
//
|
||
// Parts of that are extracted from Node’s internal `path` module:
|
||
// <https://github.com/nodejs/node/blob/master/lib/path.js>.
|
||
// Which is licensed:
|
||
//
|
||
// Copyright Joyent, Inc. and other Node contributors.
|
||
//
|
||
// Permission is hereby granted, free of charge, to any person obtaining a
|
||
// copy of this software and associated documentation files (the
|
||
// "Software"), to deal in the Software without restriction, including
|
||
// without limitation the rights to use, copy, modify, merge, publish,
|
||
// distribute, sublicense, and/or sell copies of the Software, and to permit
|
||
// persons to whom the Software is furnished to do so, subject to the
|
||
// following conditions:
|
||
//
|
||
// The above copyright notice and this permission notice shall be included
|
||
// in all copies or substantial portions of the Software.
|
||
//
|
||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
|
||
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
||
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
||
// USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||
|
||
var path = {
|
||
basename: basename,
|
||
dirname: dirname,
|
||
extname: extname,
|
||
join: join,
|
||
sep: '/'
|
||
};
|
||
|
||
/* eslint-disable max-depth, complexity */
|
||
|
||
/**
|
||
* Get the basename from a path.
|
||
*
|
||
* @param {string} path
|
||
* File path.
|
||
* @param {string | undefined} [ext]
|
||
* Extension to strip.
|
||
* @returns {string}
|
||
* Stem or basename.
|
||
*/
|
||
function basename(path, ext) {
|
||
if (ext !== undefined && typeof ext !== 'string') {
|
||
throw new TypeError('"ext" argument must be a string');
|
||
}
|
||
assertPath(path);
|
||
var start = 0;
|
||
var end = -1;
|
||
var index = path.length;
|
||
/** @type {boolean | undefined} */
|
||
var seenNonSlash;
|
||
if (ext === undefined || ext.length === 0 || ext.length > path.length) {
|
||
while (index--) {
|
||
if (path.charCodeAt(index) === 47 /* `/` */) {
|
||
// If we reached a path separator that was not part of a set of path
|
||
// separators at the end of the string, stop now.
|
||
if (seenNonSlash) {
|
||
start = index + 1;
|
||
break;
|
||
}
|
||
} else if (end < 0) {
|
||
// We saw the first non-path separator, mark this as the end of our
|
||
// path component.
|
||
seenNonSlash = true;
|
||
end = index + 1;
|
||
}
|
||
}
|
||
return end < 0 ? '' : path.slice(start, end);
|
||
}
|
||
if (ext === path) {
|
||
return '';
|
||
}
|
||
var firstNonSlashEnd = -1;
|
||
var extIndex = ext.length - 1;
|
||
while (index--) {
|
||
if (path.charCodeAt(index) === 47 /* `/` */) {
|
||
// If we reached a path separator that was not part of a set of path
|
||
// separators at the end of the string, stop now.
|
||
if (seenNonSlash) {
|
||
start = index + 1;
|
||
break;
|
||
}
|
||
} else {
|
||
if (firstNonSlashEnd < 0) {
|
||
// We saw the first non-path separator, remember this index in case
|
||
// we need it if the extension ends up not matching.
|
||
seenNonSlash = true;
|
||
firstNonSlashEnd = index + 1;
|
||
}
|
||
if (extIndex > -1) {
|
||
// Try to match the explicit extension.
|
||
if (path.charCodeAt(index) === ext.charCodeAt(extIndex--)) {
|
||
if (extIndex < 0) {
|
||
// We matched the extension, so mark this as the end of our path
|
||
// component
|
||
end = index;
|
||
}
|
||
} else {
|
||
// Extension does not match, so our result is the entire path
|
||
// component
|
||
extIndex = -1;
|
||
end = firstNonSlashEnd;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
if (start === end) {
|
||
end = firstNonSlashEnd;
|
||
} else if (end < 0) {
|
||
end = path.length;
|
||
}
|
||
return path.slice(start, end);
|
||
}
|
||
|
||
/**
|
||
* Get the dirname from a path.
|
||
*
|
||
* @param {string} path
|
||
* File path.
|
||
* @returns {string}
|
||
* File path.
|
||
*/
|
||
function dirname(path) {
|
||
assertPath(path);
|
||
if (path.length === 0) {
|
||
return '.';
|
||
}
|
||
var end = -1;
|
||
var index = path.length;
|
||
/** @type {boolean | undefined} */
|
||
var unmatchedSlash;
|
||
|
||
// Prefix `--` is important to not run on `0`.
|
||
while (--index) {
|
||
if (path.charCodeAt(index) === 47 /* `/` */) {
|
||
if (unmatchedSlash) {
|
||
end = index;
|
||
break;
|
||
}
|
||
} else if (!unmatchedSlash) {
|
||
// We saw the first non-path separator
|
||
unmatchedSlash = true;
|
||
}
|
||
}
|
||
return end < 0 ? path.charCodeAt(0) === 47 /* `/` */ ? '/' : '.' : end === 1 && path.charCodeAt(0) === 47 /* `/` */ ? '//' : path.slice(0, end);
|
||
}
|
||
|
||
/**
|
||
* Get an extname from a path.
|
||
*
|
||
* @param {string} path
|
||
* File path.
|
||
* @returns {string}
|
||
* Extname.
|
||
*/
|
||
function extname(path) {
|
||
assertPath(path);
|
||
var index = path.length;
|
||
var end = -1;
|
||
var startPart = 0;
|
||
var startDot = -1;
|
||
// Track the state of characters (if any) we see before our first dot and
|
||
// after any path separator we find.
|
||
var preDotState = 0;
|
||
/** @type {boolean | undefined} */
|
||
var unmatchedSlash;
|
||
while (index--) {
|
||
var code = path.charCodeAt(index);
|
||
if (code === 47 /* `/` */) {
|
||
// If we reached a path separator that was not part of a set of path
|
||
// separators at the end of the string, stop now.
|
||
if (unmatchedSlash) {
|
||
startPart = index + 1;
|
||
break;
|
||
}
|
||
continue;
|
||
}
|
||
if (end < 0) {
|
||
// We saw the first non-path separator, mark this as the end of our
|
||
// extension.
|
||
unmatchedSlash = true;
|
||
end = index + 1;
|
||
}
|
||
if (code === 46 /* `.` */) {
|
||
// If this is our first dot, mark it as the start of our extension.
|
||
if (startDot < 0) {
|
||
startDot = index;
|
||
} else if (preDotState !== 1) {
|
||
preDotState = 1;
|
||
}
|
||
} else if (startDot > -1) {
|
||
// We saw a non-dot and non-path separator before our dot, so we should
|
||
// have a good chance at having a non-empty extension.
|
||
preDotState = -1;
|
||
}
|
||
}
|
||
if (startDot < 0 || end < 0 ||
|
||
// We saw a non-dot character immediately before the dot.
|
||
preDotState === 0 ||
|
||
// The (right-most) trimmed path component is exactly `..`.
|
||
preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {
|
||
return '';
|
||
}
|
||
return path.slice(startDot, end);
|
||
}
|
||
|
||
/**
|
||
* Join segments from a path.
|
||
*
|
||
* @param {Array<string>} segments
|
||
* Path segments.
|
||
* @returns {string}
|
||
* File path.
|
||
*/
|
||
function join() {
|
||
var index = -1;
|
||
/** @type {string | undefined} */
|
||
var joined;
|
||
for (var _len = arguments.length, segments = new Array(_len), _key = 0; _key < _len; _key++) {
|
||
segments[_key] = arguments[_key];
|
||
}
|
||
while (++index < segments.length) {
|
||
assertPath(segments[index]);
|
||
if (segments[index]) {
|
||
joined = joined === undefined ? segments[index] : joined + '/' + segments[index];
|
||
}
|
||
}
|
||
return joined === undefined ? '.' : normalize(joined);
|
||
}
|
||
|
||
/**
|
||
* Normalize a basic file path.
|
||
*
|
||
* @param {string} path
|
||
* File path.
|
||
* @returns {string}
|
||
* File path.
|
||
*/
|
||
// Note: `normalize` is not exposed as `path.normalize`, so some code is
|
||
// manually removed from it.
|
||
function normalize(path) {
|
||
assertPath(path);
|
||
var absolute = path.charCodeAt(0) === 47; /* `/` */
|
||
|
||
// Normalize the path according to POSIX rules.
|
||
var value = normalizeString(path, !absolute);
|
||
if (value.length === 0 && !absolute) {
|
||
value = '.';
|
||
}
|
||
if (value.length > 0 && path.charCodeAt(path.length - 1) === 47 /* / */) {
|
||
value += '/';
|
||
}
|
||
return absolute ? '/' + value : value;
|
||
}
|
||
|
||
/**
|
||
* Resolve `.` and `..` elements in a path with directory names.
|
||
*
|
||
* @param {string} path
|
||
* File path.
|
||
* @param {boolean} allowAboveRoot
|
||
* Whether `..` can move above root.
|
||
* @returns {string}
|
||
* File path.
|
||
*/
|
||
function normalizeString(path, allowAboveRoot) {
|
||
var result = '';
|
||
var lastSegmentLength = 0;
|
||
var lastSlash = -1;
|
||
var dots = 0;
|
||
var index = -1;
|
||
/** @type {number | undefined} */
|
||
var code;
|
||
/** @type {number} */
|
||
var lastSlashIndex;
|
||
while (++index <= path.length) {
|
||
if (index < path.length) {
|
||
code = path.charCodeAt(index);
|
||
} else if (code === 47 /* `/` */) {
|
||
break;
|
||
} else {
|
||
code = 47; /* `/` */
|
||
}
|
||
|
||
if (code === 47 /* `/` */) {
|
||
if (lastSlash === index - 1 || dots === 1) {
|
||
// Empty.
|
||
} else if (lastSlash !== index - 1 && dots === 2) {
|
||
if (result.length < 2 || lastSegmentLength !== 2 || result.charCodeAt(result.length - 1) !== 46 /* `.` */ || result.charCodeAt(result.length - 2) !== 46 /* `.` */) {
|
||
if (result.length > 2) {
|
||
lastSlashIndex = result.lastIndexOf('/');
|
||
if (lastSlashIndex !== result.length - 1) {
|
||
if (lastSlashIndex < 0) {
|
||
result = '';
|
||
lastSegmentLength = 0;
|
||
} else {
|
||
result = result.slice(0, lastSlashIndex);
|
||
lastSegmentLength = result.length - 1 - result.lastIndexOf('/');
|
||
}
|
||
lastSlash = index;
|
||
dots = 0;
|
||
continue;
|
||
}
|
||
} else if (result.length > 0) {
|
||
result = '';
|
||
lastSegmentLength = 0;
|
||
lastSlash = index;
|
||
dots = 0;
|
||
continue;
|
||
}
|
||
}
|
||
if (allowAboveRoot) {
|
||
result = result.length > 0 ? result + '/..' : '..';
|
||
lastSegmentLength = 2;
|
||
}
|
||
} else {
|
||
if (result.length > 0) {
|
||
result += '/' + path.slice(lastSlash + 1, index);
|
||
} else {
|
||
result = path.slice(lastSlash + 1, index);
|
||
}
|
||
lastSegmentLength = index - lastSlash - 1;
|
||
}
|
||
lastSlash = index;
|
||
dots = 0;
|
||
} else if (code === 46 /* `.` */ && dots > -1) {
|
||
dots++;
|
||
} else {
|
||
dots = -1;
|
||
}
|
||
}
|
||
return result;
|
||
}
|
||
|
||
/**
|
||
* Make sure `path` is a string.
|
||
*
|
||
* @param {string} path
|
||
* File path.
|
||
* @returns {asserts path is string}
|
||
* Nothing.
|
||
*/
|
||
function assertPath(path) {
|
||
if (typeof path !== 'string') {
|
||
throw new TypeError('Path must be a string. Received ' + JSON.stringify(path));
|
||
}
|
||
}
|
||
|
||
/* eslint-enable max-depth, complexity */
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/vfile@5.3.7/node_modules/vfile/lib/minproc.browser.js
|
||
// Somewhat based on:
|
||
// <https://github.com/defunctzombie/node-process/blob/master/browser.js>.
|
||
// But I don’t think one tiny line of code can be copyrighted. 😅
|
||
var proc = {
|
||
cwd: cwd
|
||
};
|
||
function cwd() {
|
||
return '/';
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/vfile@5.3.7/node_modules/vfile/lib/minurl.shared.js
|
||
/**
|
||
* @typedef URL
|
||
* @property {string} hash
|
||
* @property {string} host
|
||
* @property {string} hostname
|
||
* @property {string} href
|
||
* @property {string} origin
|
||
* @property {string} password
|
||
* @property {string} pathname
|
||
* @property {string} port
|
||
* @property {string} protocol
|
||
* @property {string} search
|
||
* @property {any} searchParams
|
||
* @property {string} username
|
||
* @property {() => string} toString
|
||
* @property {() => string} toJSON
|
||
*/
|
||
|
||
/**
|
||
* Check if `fileUrlOrPath` looks like a URL.
|
||
*
|
||
* @param {unknown} fileUrlOrPath
|
||
* File path or URL.
|
||
* @returns {fileUrlOrPath is URL}
|
||
* Whether it’s a URL.
|
||
*/
|
||
// From: <https://github.com/nodejs/node/blob/fcf8ba4/lib/internal/url.js#L1501>
|
||
function isUrl(fileUrlOrPath) {
|
||
return fileUrlOrPath !== null && typeof fileUrlOrPath === 'object' &&
|
||
// @ts-expect-error: indexable.
|
||
fileUrlOrPath.href &&
|
||
// @ts-expect-error: indexable.
|
||
fileUrlOrPath.origin;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/vfile@5.3.7/node_modules/vfile/lib/minurl.browser.js
|
||
/// <reference lib="dom" />
|
||
|
||
|
||
|
||
// See: <https://github.com/nodejs/node/blob/fcf8ba4/lib/internal/url.js>
|
||
|
||
/**
|
||
* @param {string | URL} path
|
||
* File URL.
|
||
* @returns {string}
|
||
* File URL.
|
||
*/
|
||
function urlToPath(path) {
|
||
if (typeof path === 'string') {
|
||
path = new URL(path);
|
||
} else if (!isUrl(path)) {
|
||
/** @type {NodeJS.ErrnoException} */
|
||
var error = new TypeError('The "path" argument must be of type string or an instance of URL. Received `' + path + '`');
|
||
error.code = 'ERR_INVALID_ARG_TYPE';
|
||
throw error;
|
||
}
|
||
if (path.protocol !== 'file:') {
|
||
/** @type {NodeJS.ErrnoException} */
|
||
var _error = new TypeError('The URL must be of scheme file');
|
||
_error.code = 'ERR_INVALID_URL_SCHEME';
|
||
throw _error;
|
||
}
|
||
return getPathFromURLPosix(path);
|
||
}
|
||
|
||
/**
|
||
* Get a path from a POSIX URL.
|
||
*
|
||
* @param {URL} url
|
||
* URL.
|
||
* @returns {string}
|
||
* File path.
|
||
*/
|
||
function getPathFromURLPosix(url) {
|
||
if (url.hostname !== '') {
|
||
/** @type {NodeJS.ErrnoException} */
|
||
var error = new TypeError('File URL host must be "localhost" or empty on darwin');
|
||
error.code = 'ERR_INVALID_FILE_URL_HOST';
|
||
throw error;
|
||
}
|
||
var pathname = url.pathname;
|
||
var index = -1;
|
||
while (++index < pathname.length) {
|
||
if (pathname.charCodeAt(index) === 37 /* `%` */ && pathname.charCodeAt(index + 1) === 50 /* `2` */) {
|
||
var third = pathname.charCodeAt(index + 2);
|
||
if (third === 70 /* `F` */ || third === 102 /* `f` */) {
|
||
/** @type {NodeJS.ErrnoException} */
|
||
var _error2 = new TypeError('File URL path must not include encoded / characters');
|
||
_error2.code = 'ERR_INVALID_FILE_URL_PATH';
|
||
throw _error2;
|
||
}
|
||
}
|
||
}
|
||
return decodeURIComponent(pathname);
|
||
}
|
||
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/vfile@5.3.7/node_modules/vfile/lib/index.js
|
||
|
||
|
||
|
||
/**
|
||
* @typedef {import('unist').Node} Node
|
||
* @typedef {import('unist').Position} Position
|
||
* @typedef {import('unist').Point} Point
|
||
* @typedef {import('./minurl.shared.js').URL} URL
|
||
* @typedef {import('../index.js').Data} Data
|
||
* @typedef {import('../index.js').Value} Value
|
||
*/
|
||
|
||
/**
|
||
* @typedef {Record<string, unknown> & {type: string, position?: Position | undefined}} NodeLike
|
||
*
|
||
* @typedef {'ascii' | 'utf8' | 'utf-8' | 'utf16le' | 'ucs2' | 'ucs-2' | 'base64' | 'base64url' | 'latin1' | 'binary' | 'hex'} BufferEncoding
|
||
* Encodings supported by the buffer class.
|
||
*
|
||
* This is a copy of the types from Node, copied to prevent Node globals from
|
||
* being needed.
|
||
* Copied from: <https://github.com/DefinitelyTyped/DefinitelyTyped/blob/90a4ec8/types/node/buffer.d.ts#L170>
|
||
*
|
||
* @typedef {Options | URL | Value | VFile} Compatible
|
||
* Things that can be passed to the constructor.
|
||
*
|
||
* @typedef VFileCoreOptions
|
||
* Set multiple values.
|
||
* @property {Value | null | undefined} [value]
|
||
* Set `value`.
|
||
* @property {string | null | undefined} [cwd]
|
||
* Set `cwd`.
|
||
* @property {Array<string> | null | undefined} [history]
|
||
* Set `history`.
|
||
* @property {URL | string | null | undefined} [path]
|
||
* Set `path`.
|
||
* @property {string | null | undefined} [basename]
|
||
* Set `basename`.
|
||
* @property {string | null | undefined} [stem]
|
||
* Set `stem`.
|
||
* @property {string | null | undefined} [extname]
|
||
* Set `extname`.
|
||
* @property {string | null | undefined} [dirname]
|
||
* Set `dirname`.
|
||
* @property {Data | null | undefined} [data]
|
||
* Set `data`.
|
||
*
|
||
* @typedef Map
|
||
* Raw source map.
|
||
*
|
||
* See:
|
||
* <https://github.com/mozilla/source-map/blob/58819f0/source-map.d.ts#L15-L23>.
|
||
* @property {number} version
|
||
* Which version of the source map spec this map is following.
|
||
* @property {Array<string>} sources
|
||
* An array of URLs to the original source files.
|
||
* @property {Array<string>} names
|
||
* An array of identifiers which can be referenced by individual mappings.
|
||
* @property {string | undefined} [sourceRoot]
|
||
* The URL root from which all sources are relative.
|
||
* @property {Array<string> | undefined} [sourcesContent]
|
||
* An array of contents of the original source files.
|
||
* @property {string} mappings
|
||
* A string of base64 VLQs which contain the actual mappings.
|
||
* @property {string} file
|
||
* The generated file this source map is associated with.
|
||
*
|
||
* @typedef {{[key: string]: unknown} & VFileCoreOptions} Options
|
||
* Configuration.
|
||
*
|
||
* A bunch of keys that will be shallow copied over to the new file.
|
||
*
|
||
* @typedef {Record<string, unknown>} ReporterSettings
|
||
* Configuration for reporters.
|
||
*/
|
||
|
||
/**
|
||
* @template {ReporterSettings} Settings
|
||
* Options type.
|
||
* @callback Reporter
|
||
* Type for a reporter.
|
||
* @param {Array<VFile>} files
|
||
* Files to report.
|
||
* @param {Settings} options
|
||
* Configuration.
|
||
* @returns {string}
|
||
* Report.
|
||
*/
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
/**
|
||
* Order of setting (least specific to most), we need this because otherwise
|
||
* `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a
|
||
* stem can be set.
|
||
*
|
||
* @type {Array<'basename' | 'dirname' | 'extname' | 'history' | 'path' | 'stem'>}
|
||
*/
|
||
var order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname'];
|
||
var VFile = /*#__PURE__*/function () {
|
||
/**
|
||
* Create a new virtual file.
|
||
*
|
||
* `options` is treated as:
|
||
*
|
||
* * `string` or `Buffer` — `{value: options}`
|
||
* * `URL` — `{path: options}`
|
||
* * `VFile` — shallow copies its data over to the new file
|
||
* * `object` — all fields are shallow copied over to the new file
|
||
*
|
||
* Path related fields are set in the following order (least specific to
|
||
* most specific): `history`, `path`, `basename`, `stem`, `extname`,
|
||
* `dirname`.
|
||
*
|
||
* You cannot set `dirname` or `extname` without setting either `history`,
|
||
* `path`, `basename`, or `stem` too.
|
||
*
|
||
* @param {Compatible | null | undefined} [value]
|
||
* File value.
|
||
* @returns
|
||
* New instance.
|
||
*/
|
||
function VFile(value) {
|
||
_classCallCheck(this, VFile);
|
||
/** @type {Options | VFile} */
|
||
var options;
|
||
if (!value) {
|
||
options = {};
|
||
} else if (typeof value === 'string' || buffer(value)) {
|
||
options = {
|
||
value: value
|
||
};
|
||
} else if (isUrl(value)) {
|
||
options = {
|
||
path: value
|
||
};
|
||
} else {
|
||
options = value;
|
||
}
|
||
|
||
/**
|
||
* Place to store custom information (default: `{}`).
|
||
*
|
||
* It’s OK to store custom data directly on the file but moving it to
|
||
* `data` is recommended.
|
||
*
|
||
* @type {Data}
|
||
*/
|
||
this.data = {};
|
||
|
||
/**
|
||
* List of messages associated with the file.
|
||
*
|
||
* @type {Array<VFileMessage>}
|
||
*/
|
||
this.messages = [];
|
||
|
||
/**
|
||
* List of filepaths the file moved between.
|
||
*
|
||
* The first is the original path and the last is the current path.
|
||
*
|
||
* @type {Array<string>}
|
||
*/
|
||
this.history = [];
|
||
|
||
/**
|
||
* Base of `path` (default: `process.cwd()` or `'/'` in browsers).
|
||
*
|
||
* @type {string}
|
||
*/
|
||
this.cwd = proc.cwd();
|
||
|
||
/* eslint-disable no-unused-expressions */
|
||
/**
|
||
* Raw value.
|
||
*
|
||
* @type {Value}
|
||
*/
|
||
this.value;
|
||
|
||
// The below are non-standard, they are “well-known”.
|
||
// As in, used in several tools.
|
||
|
||
/**
|
||
* Whether a file was saved to disk.
|
||
*
|
||
* This is used by vfile reporters.
|
||
*
|
||
* @type {boolean}
|
||
*/
|
||
this.stored;
|
||
|
||
/**
|
||
* Custom, non-string, compiled, representation.
|
||
*
|
||
* This is used by unified to store non-string results.
|
||
* One example is when turning markdown into React nodes.
|
||
*
|
||
* @type {unknown}
|
||
*/
|
||
this.result;
|
||
|
||
/**
|
||
* Source map.
|
||
*
|
||
* This type is equivalent to the `RawSourceMap` type from the `source-map`
|
||
* module.
|
||
*
|
||
* @type {Map | null | undefined}
|
||
*/
|
||
this.map;
|
||
/* eslint-enable no-unused-expressions */
|
||
|
||
// Set path related properties in the correct order.
|
||
var index = -1;
|
||
while (++index < order.length) {
|
||
var _prop = order[index];
|
||
|
||
// Note: we specifically use `in` instead of `hasOwnProperty` to accept
|
||
// `vfile`s too.
|
||
if (_prop in options && options[_prop] !== undefined && options[_prop] !== null) {
|
||
// @ts-expect-error: TS doesn’t understand basic reality.
|
||
this[_prop] = _prop === 'history' ? toConsumableArray_toConsumableArray(options[_prop]) : options[_prop];
|
||
}
|
||
}
|
||
|
||
/** @type {string} */
|
||
var prop;
|
||
|
||
// Set non-path related properties.
|
||
for (prop in options) {
|
||
// @ts-expect-error: fine to set other things.
|
||
if (!order.includes(prop)) {
|
||
// @ts-expect-error: fine to set other things.
|
||
this[prop] = options[prop];
|
||
}
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Get the full path (example: `'~/index.min.js'`).
|
||
*
|
||
* @returns {string}
|
||
*/
|
||
_createClass(VFile, [{
|
||
key: "path",
|
||
get: function get() {
|
||
return this.history[this.history.length - 1];
|
||
}
|
||
|
||
/**
|
||
* Set the full path (example: `'~/index.min.js'`).
|
||
*
|
||
* Cannot be nullified.
|
||
* You can set a file URL (a `URL` object with a `file:` protocol) which will
|
||
* be turned into a path with `url.fileURLToPath`.
|
||
*
|
||
* @param {string | URL} path
|
||
*/,
|
||
set: function set(path) {
|
||
if (isUrl(path)) {
|
||
path = urlToPath(path);
|
||
}
|
||
assertNonEmpty(path, 'path');
|
||
if (this.path !== path) {
|
||
this.history.push(path);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Get the parent path (example: `'~'`).
|
||
*/
|
||
}, {
|
||
key: "dirname",
|
||
get: function get() {
|
||
return typeof this.path === 'string' ? path.dirname(this.path) : undefined;
|
||
}
|
||
|
||
/**
|
||
* Set the parent path (example: `'~'`).
|
||
*
|
||
* Cannot be set if there’s no `path` yet.
|
||
*/,
|
||
set: function set(dirname) {
|
||
lib_assertPath(this.basename, 'dirname');
|
||
this.path = path.join(dirname || '', this.basename);
|
||
}
|
||
|
||
/**
|
||
* Get the basename (including extname) (example: `'index.min.js'`).
|
||
*/
|
||
}, {
|
||
key: "basename",
|
||
get: function get() {
|
||
return typeof this.path === 'string' ? path.basename(this.path) : undefined;
|
||
}
|
||
|
||
/**
|
||
* Set basename (including extname) (`'index.min.js'`).
|
||
*
|
||
* Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\'`
|
||
* on windows).
|
||
* Cannot be nullified (use `file.path = file.dirname` instead).
|
||
*/,
|
||
set: function set(basename) {
|
||
assertNonEmpty(basename, 'basename');
|
||
assertPart(basename, 'basename');
|
||
this.path = path.join(this.dirname || '', basename);
|
||
}
|
||
|
||
/**
|
||
* Get the extname (including dot) (example: `'.js'`).
|
||
*/
|
||
}, {
|
||
key: "extname",
|
||
get: function get() {
|
||
return typeof this.path === 'string' ? path.extname(this.path) : undefined;
|
||
}
|
||
|
||
/**
|
||
* Set the extname (including dot) (example: `'.js'`).
|
||
*
|
||
* Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\'`
|
||
* on windows).
|
||
* Cannot be set if there’s no `path` yet.
|
||
*/,
|
||
set: function set(extname) {
|
||
assertPart(extname, 'extname');
|
||
lib_assertPath(this.dirname, 'extname');
|
||
if (extname) {
|
||
if (extname.charCodeAt(0) !== 46 /* `.` */) {
|
||
throw new Error('`extname` must start with `.`');
|
||
}
|
||
if (extname.includes('.', 1)) {
|
||
throw new Error('`extname` cannot contain multiple dots');
|
||
}
|
||
}
|
||
this.path = path.join(this.dirname, this.stem + (extname || ''));
|
||
}
|
||
|
||
/**
|
||
* Get the stem (basename w/o extname) (example: `'index.min'`).
|
||
*/
|
||
}, {
|
||
key: "stem",
|
||
get: function get() {
|
||
return typeof this.path === 'string' ? path.basename(this.path, this.extname) : undefined;
|
||
}
|
||
|
||
/**
|
||
* Set the stem (basename w/o extname) (example: `'index.min'`).
|
||
*
|
||
* Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\'`
|
||
* on windows).
|
||
* Cannot be nullified (use `file.path = file.dirname` instead).
|
||
*/,
|
||
set: function set(stem) {
|
||
assertNonEmpty(stem, 'stem');
|
||
assertPart(stem, 'stem');
|
||
this.path = path.join(this.dirname || '', stem + (this.extname || ''));
|
||
}
|
||
|
||
/**
|
||
* Serialize the file.
|
||
*
|
||
* @param {BufferEncoding | null | undefined} [encoding='utf8']
|
||
* Character encoding to understand `value` as when it’s a `Buffer`
|
||
* (default: `'utf8'`).
|
||
* @returns {string}
|
||
* Serialized file.
|
||
*/
|
||
}, {
|
||
key: "toString",
|
||
value: function toString(encoding) {
|
||
return (this.value || '').toString(encoding || undefined);
|
||
}
|
||
|
||
/**
|
||
* Create a warning message associated with the file.
|
||
*
|
||
* Its `fatal` is set to `false` and `file` is set to the current file path.
|
||
* Its added to `file.messages`.
|
||
*
|
||
* @param {string | Error | VFileMessage} reason
|
||
* Reason for message, uses the stack and message of the error if given.
|
||
* @param {Node | NodeLike | Position | Point | null | undefined} [place]
|
||
* Place in file where the message occurred.
|
||
* @param {string | null | undefined} [origin]
|
||
* Place in code where the message originates (example:
|
||
* `'my-package:my-rule'` or `'my-rule'`).
|
||
* @returns {VFileMessage}
|
||
* Message.
|
||
*/
|
||
}, {
|
||
key: "message",
|
||
value: function message(reason, place, origin) {
|
||
var message = new VFileMessage(reason, place, origin);
|
||
if (this.path) {
|
||
message.name = this.path + ':' + message.name;
|
||
message.file = this.path;
|
||
}
|
||
message.fatal = false;
|
||
this.messages.push(message);
|
||
return message;
|
||
}
|
||
|
||
/**
|
||
* Create an info message associated with the file.
|
||
*
|
||
* Its `fatal` is set to `null` and `file` is set to the current file path.
|
||
* Its added to `file.messages`.
|
||
*
|
||
* @param {string | Error | VFileMessage} reason
|
||
* Reason for message, uses the stack and message of the error if given.
|
||
* @param {Node | NodeLike | Position | Point | null | undefined} [place]
|
||
* Place in file where the message occurred.
|
||
* @param {string | null | undefined} [origin]
|
||
* Place in code where the message originates (example:
|
||
* `'my-package:my-rule'` or `'my-rule'`).
|
||
* @returns {VFileMessage}
|
||
* Message.
|
||
*/
|
||
}, {
|
||
key: "info",
|
||
value: function info(reason, place, origin) {
|
||
var message = this.message(reason, place, origin);
|
||
message.fatal = null;
|
||
return message;
|
||
}
|
||
|
||
/**
|
||
* Create a fatal error associated with the file.
|
||
*
|
||
* Its `fatal` is set to `true` and `file` is set to the current file path.
|
||
* Its added to `file.messages`.
|
||
*
|
||
* > 👉 **Note**: a fatal error means that a file is no longer processable.
|
||
*
|
||
* @param {string | Error | VFileMessage} reason
|
||
* Reason for message, uses the stack and message of the error if given.
|
||
* @param {Node | NodeLike | Position | Point | null | undefined} [place]
|
||
* Place in file where the message occurred.
|
||
* @param {string | null | undefined} [origin]
|
||
* Place in code where the message originates (example:
|
||
* `'my-package:my-rule'` or `'my-rule'`).
|
||
* @returns {never}
|
||
* Message.
|
||
* @throws {VFileMessage}
|
||
* Message.
|
||
*/
|
||
}, {
|
||
key: "fail",
|
||
value: function fail(reason, place, origin) {
|
||
var message = this.message(reason, place, origin);
|
||
message.fatal = true;
|
||
throw message;
|
||
}
|
||
}]);
|
||
return VFile;
|
||
}();
|
||
|
||
/**
|
||
* Assert that `part` is not a path (as in, does not contain `path.sep`).
|
||
*
|
||
* @param {string | null | undefined} part
|
||
* File path part.
|
||
* @param {string} name
|
||
* Part name.
|
||
* @returns {void}
|
||
* Nothing.
|
||
*/
|
||
function assertPart(part, name) {
|
||
if (part && part.includes(path.sep)) {
|
||
throw new Error('`' + name + '` cannot be a path: did not expect `' + path.sep + '`');
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Assert that `part` is not empty.
|
||
*
|
||
* @param {string | undefined} part
|
||
* Thing.
|
||
* @param {string} name
|
||
* Part name.
|
||
* @returns {asserts part is string}
|
||
* Nothing.
|
||
*/
|
||
function assertNonEmpty(part, name) {
|
||
if (!part) {
|
||
throw new Error('`' + name + '` cannot be empty');
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Assert `path` exists.
|
||
*
|
||
* @param {string | undefined} path
|
||
* Path.
|
||
* @param {string} name
|
||
* Dependency name.
|
||
* @returns {asserts path is string}
|
||
* Nothing.
|
||
*/
|
||
function lib_assertPath(path, name) {
|
||
if (!path) {
|
||
throw new Error('Setting `' + name + '` requires `path` to be set too');
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Assert `value` is a buffer.
|
||
*
|
||
* @param {unknown} value
|
||
* thing.
|
||
* @returns {value is Buffer}
|
||
* Whether `value` is a Node.js buffer.
|
||
*/
|
||
function buffer(value) {
|
||
return is_buffer(value);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/toArray.js
|
||
|
||
|
||
|
||
|
||
function _toArray(arr) {
|
||
return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest();
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/bail@2.0.2/node_modules/bail/index.js
|
||
/**
|
||
* Throw a given error.
|
||
*
|
||
* @param {Error|null|undefined} [error]
|
||
* Maybe error.
|
||
* @returns {asserts error is null|undefined}
|
||
*/
|
||
function bail(error) {
|
||
if (error) {
|
||
throw error;
|
||
}
|
||
}
|
||
// EXTERNAL MODULE: ./node_modules/.pnpm/extend@3.0.2/node_modules/extend/index.js
|
||
var extend = __webpack_require__(3331);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/is-plain-obj@4.1.0/node_modules/is-plain-obj/index.js
|
||
function is_plain_obj_isPlainObject(value) {
|
||
if (typeof value !== 'object' || value === null) {
|
||
return false;
|
||
}
|
||
var prototype = Object.getPrototypeOf(value);
|
||
return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/trough@2.1.0/node_modules/trough/index.js
|
||
|
||
/**
|
||
* @typedef {(error?: Error|null|undefined, ...output: Array<any>) => void} Callback
|
||
* @typedef {(...input: Array<any>) => any} Middleware
|
||
*
|
||
* @typedef {(...input: Array<any>) => void} Run
|
||
* Call all middleware.
|
||
* @typedef {(fn: Middleware) => Pipeline} Use
|
||
* Add `fn` (middleware) to the list.
|
||
* @typedef {{run: Run, use: Use}} Pipeline
|
||
* Middleware.
|
||
*/
|
||
|
||
/**
|
||
* Create new middleware.
|
||
*
|
||
* @returns {Pipeline}
|
||
*/
|
||
function trough() {
|
||
/** @type {Array<Middleware>} */
|
||
var fns = [];
|
||
/** @type {Pipeline} */
|
||
var pipeline = {
|
||
run: run,
|
||
use: use
|
||
};
|
||
return pipeline;
|
||
|
||
/** @type {Run} */
|
||
function run() {
|
||
for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {
|
||
values[_key] = arguments[_key];
|
||
}
|
||
var middlewareIndex = -1;
|
||
/** @type {Callback} */
|
||
var callback = values.pop();
|
||
if (typeof callback !== 'function') {
|
||
throw new TypeError('Expected function as last argument, not ' + callback);
|
||
}
|
||
next.apply(void 0, [null].concat(toConsumableArray_toConsumableArray(values)));
|
||
|
||
/**
|
||
* Run the next `fn`, or we’re done.
|
||
*
|
||
* @param {Error|null|undefined} error
|
||
* @param {Array<any>} output
|
||
*/
|
||
function next(error) {
|
||
var fn = fns[++middlewareIndex];
|
||
var index = -1;
|
||
if (error) {
|
||
callback(error);
|
||
return;
|
||
}
|
||
|
||
// Copy non-nullish input into values.
|
||
for (var _len2 = arguments.length, output = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
||
output[_key2 - 1] = arguments[_key2];
|
||
}
|
||
while (++index < values.length) {
|
||
if (output[index] === null || output[index] === undefined) {
|
||
output[index] = values[index];
|
||
}
|
||
}
|
||
|
||
// Save the newly created `output` for the next call.
|
||
values = output;
|
||
|
||
// Next or done.
|
||
if (fn) {
|
||
wrap(fn, next).apply(void 0, output);
|
||
} else {
|
||
callback.apply(void 0, [null].concat(output));
|
||
}
|
||
}
|
||
}
|
||
|
||
/** @type {Use} */
|
||
function use(middelware) {
|
||
if (typeof middelware !== 'function') {
|
||
throw new TypeError('Expected `middelware` to be a function, not ' + middelware);
|
||
}
|
||
fns.push(middelware);
|
||
return pipeline;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Wrap `middleware`.
|
||
* Can be sync or async; return a promise, receive a callback, or return new
|
||
* values and errors.
|
||
*
|
||
* @param {Middleware} middleware
|
||
* @param {Callback} callback
|
||
*/
|
||
function wrap(middleware, callback) {
|
||
/** @type {boolean} */
|
||
var called;
|
||
return wrapped;
|
||
|
||
/**
|
||
* Call `middleware`.
|
||
* @this {any}
|
||
* @param {Array<any>} parameters
|
||
* @returns {void}
|
||
*/
|
||
function wrapped() {
|
||
for (var _len3 = arguments.length, parameters = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
||
parameters[_key3] = arguments[_key3];
|
||
}
|
||
var fnExpectsCallback = middleware.length > parameters.length;
|
||
/** @type {any} */
|
||
var result;
|
||
if (fnExpectsCallback) {
|
||
parameters.push(done);
|
||
}
|
||
try {
|
||
result = middleware.apply(this, parameters);
|
||
} catch (error) {
|
||
var exception = /** @type {Error} */error;
|
||
|
||
// Well, this is quite the pickle.
|
||
// `middleware` received a callback and called it synchronously, but that
|
||
// threw an error.
|
||
// The only thing left to do is to throw the thing instead.
|
||
if (fnExpectsCallback && called) {
|
||
throw exception;
|
||
}
|
||
return done(exception);
|
||
}
|
||
if (!fnExpectsCallback) {
|
||
if (result instanceof Promise) {
|
||
result.then(then, done);
|
||
} else if (result instanceof Error) {
|
||
done(result);
|
||
} else {
|
||
then(result);
|
||
}
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Call `callback`, only once.
|
||
* @type {Callback}
|
||
*/
|
||
function done(error) {
|
||
if (!called) {
|
||
called = true;
|
||
for (var _len4 = arguments.length, output = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {
|
||
output[_key4 - 1] = arguments[_key4];
|
||
}
|
||
callback.apply(void 0, [error].concat(output));
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Call `done` with one value.
|
||
*
|
||
* @param {any} [value]
|
||
*/
|
||
function then(value) {
|
||
done(null, value);
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/unified@10.1.2/node_modules/unified/lib/index.js
|
||
|
||
|
||
/**
|
||
* @typedef {import('unist').Node} Node
|
||
* @typedef {import('vfile').VFileCompatible} VFileCompatible
|
||
* @typedef {import('vfile').VFileValue} VFileValue
|
||
* @typedef {import('..').Processor} Processor
|
||
* @typedef {import('..').Plugin} Plugin
|
||
* @typedef {import('..').Preset} Preset
|
||
* @typedef {import('..').Pluggable} Pluggable
|
||
* @typedef {import('..').PluggableList} PluggableList
|
||
* @typedef {import('..').Transformer} Transformer
|
||
* @typedef {import('..').Parser} Parser
|
||
* @typedef {import('..').Compiler} Compiler
|
||
* @typedef {import('..').RunCallback} RunCallback
|
||
* @typedef {import('..').ProcessCallback} ProcessCallback
|
||
*
|
||
* @typedef Context
|
||
* @property {Node} tree
|
||
* @property {VFile} file
|
||
*/
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
// Expose a frozen processor.
|
||
var unified = base().freeze();
|
||
var own = {}.hasOwnProperty;
|
||
|
||
// Function to create the first processor.
|
||
/**
|
||
* @returns {Processor}
|
||
*/
|
||
function base() {
|
||
var transformers = trough();
|
||
/** @type {Processor['attachers']} */
|
||
var attachers = [];
|
||
/** @type {Record<string, unknown>} */
|
||
var namespace = {};
|
||
/** @type {boolean|undefined} */
|
||
var frozen;
|
||
var freezeIndex = -1;
|
||
|
||
// Data management.
|
||
// @ts-expect-error: overloads are handled.
|
||
processor.data = data;
|
||
processor.Parser = undefined;
|
||
processor.Compiler = undefined;
|
||
|
||
// Lock.
|
||
processor.freeze = freeze;
|
||
|
||
// Plugins.
|
||
processor.attachers = attachers;
|
||
// @ts-expect-error: overloads are handled.
|
||
processor.use = use;
|
||
|
||
// API.
|
||
processor.parse = parse;
|
||
processor.stringify = stringify;
|
||
// @ts-expect-error: overloads are handled.
|
||
processor.run = run;
|
||
processor.runSync = runSync;
|
||
// @ts-expect-error: overloads are handled.
|
||
processor.process = process;
|
||
processor.processSync = processSync;
|
||
|
||
// Expose.
|
||
return processor;
|
||
|
||
// Create a new processor based on the processor in the current scope.
|
||
/** @type {Processor} */
|
||
function processor() {
|
||
var destination = base();
|
||
var index = -1;
|
||
while (++index < attachers.length) {
|
||
destination.use.apply(destination, toConsumableArray_toConsumableArray(attachers[index]));
|
||
}
|
||
destination.data(extend(true, {}, namespace));
|
||
return destination;
|
||
}
|
||
|
||
/**
|
||
* @param {string|Record<string, unknown>} [key]
|
||
* @param {unknown} [value]
|
||
* @returns {unknown}
|
||
*/
|
||
function data(key, value) {
|
||
if (typeof key === 'string') {
|
||
// Set `key`.
|
||
if (arguments.length === 2) {
|
||
assertUnfrozen('data', frozen);
|
||
namespace[key] = value;
|
||
return processor;
|
||
}
|
||
|
||
// Get `key`.
|
||
return own.call(namespace, key) && namespace[key] || null;
|
||
}
|
||
|
||
// Set space.
|
||
if (key) {
|
||
assertUnfrozen('data', frozen);
|
||
namespace = key;
|
||
return processor;
|
||
}
|
||
|
||
// Get space.
|
||
return namespace;
|
||
}
|
||
|
||
/** @type {Processor['freeze']} */
|
||
function freeze() {
|
||
if (frozen) {
|
||
return processor;
|
||
}
|
||
while (++freezeIndex < attachers.length) {
|
||
var _attachers$freezeInde = _toArray(attachers[freezeIndex]),
|
||
attacher = _attachers$freezeInde[0],
|
||
options = _attachers$freezeInde.slice(1);
|
||
if (options[0] === false) {
|
||
continue;
|
||
}
|
||
if (options[0] === true) {
|
||
options[0] = undefined;
|
||
}
|
||
|
||
/** @type {Transformer|void} */
|
||
var transformer = attacher.call.apply(attacher, [processor].concat(toConsumableArray_toConsumableArray(options)));
|
||
if (typeof transformer === 'function') {
|
||
transformers.use(transformer);
|
||
}
|
||
}
|
||
frozen = true;
|
||
freezeIndex = Number.POSITIVE_INFINITY;
|
||
return processor;
|
||
}
|
||
|
||
/**
|
||
* @param {Pluggable|null|undefined} [value]
|
||
* @param {...unknown} options
|
||
* @returns {Processor}
|
||
*/
|
||
function use(value) {
|
||
for (var _len = arguments.length, options = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
||
options[_key - 1] = arguments[_key];
|
||
}
|
||
/** @type {Record<string, unknown>|undefined} */
|
||
var settings;
|
||
assertUnfrozen('use', frozen);
|
||
if (value === null || value === undefined) {
|
||
// Empty.
|
||
} else if (typeof value === 'function') {
|
||
addPlugin.apply(void 0, [value].concat(options));
|
||
} else if (typeof value === 'object') {
|
||
if (Array.isArray(value)) {
|
||
addList(value);
|
||
} else {
|
||
addPreset(value);
|
||
}
|
||
} else {
|
||
throw new TypeError('Expected usable value, not `' + value + '`');
|
||
}
|
||
if (settings) {
|
||
namespace.settings = Object.assign(namespace.settings || {}, settings);
|
||
}
|
||
return processor;
|
||
|
||
/**
|
||
* @param {import('..').Pluggable<unknown[]>} value
|
||
* @returns {void}
|
||
*/
|
||
function add(value) {
|
||
if (typeof value === 'function') {
|
||
addPlugin(value);
|
||
} else if (typeof value === 'object') {
|
||
if (Array.isArray(value)) {
|
||
var _value = _toArray(value),
|
||
plugin = _value[0],
|
||
_options = _value.slice(1);
|
||
addPlugin.apply(void 0, [plugin].concat(toConsumableArray_toConsumableArray(_options)));
|
||
} else {
|
||
addPreset(value);
|
||
}
|
||
} else {
|
||
throw new TypeError('Expected usable value, not `' + value + '`');
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @param {Preset} result
|
||
* @returns {void}
|
||
*/
|
||
function addPreset(result) {
|
||
addList(result.plugins);
|
||
if (result.settings) {
|
||
settings = Object.assign(settings || {}, result.settings);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @param {PluggableList|null|undefined} [plugins]
|
||
* @returns {void}
|
||
*/
|
||
function addList(plugins) {
|
||
var index = -1;
|
||
if (plugins === null || plugins === undefined) {
|
||
// Empty.
|
||
} else if (Array.isArray(plugins)) {
|
||
while (++index < plugins.length) {
|
||
var thing = plugins[index];
|
||
add(thing);
|
||
}
|
||
} else {
|
||
throw new TypeError('Expected a list of plugins, not `' + plugins + '`');
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @param {Plugin} plugin
|
||
* @param {...unknown} [value]
|
||
* @returns {void}
|
||
*/
|
||
function addPlugin(plugin, value) {
|
||
var index = -1;
|
||
/** @type {Processor['attachers'][number]|undefined} */
|
||
var entry;
|
||
while (++index < attachers.length) {
|
||
if (attachers[index][0] === plugin) {
|
||
entry = attachers[index];
|
||
break;
|
||
}
|
||
}
|
||
if (entry) {
|
||
if (is_plain_obj_isPlainObject(entry[1]) && is_plain_obj_isPlainObject(value)) {
|
||
value = extend(true, entry[1], value);
|
||
}
|
||
entry[1] = value;
|
||
} else {
|
||
// @ts-expect-error: fine.
|
||
attachers.push(Array.prototype.slice.call(arguments));
|
||
}
|
||
}
|
||
}
|
||
|
||
/** @type {Processor['parse']} */
|
||
function parse(doc) {
|
||
processor.freeze();
|
||
var file = vfile(doc);
|
||
var Parser = processor.Parser;
|
||
assertParser('parse', Parser);
|
||
if (newable(Parser, 'parse')) {
|
||
// @ts-expect-error: `newable` checks this.
|
||
return new Parser(String(file), file).parse();
|
||
}
|
||
|
||
// @ts-expect-error: `newable` checks this.
|
||
return Parser(String(file), file); // eslint-disable-line new-cap
|
||
}
|
||
|
||
/** @type {Processor['stringify']} */
|
||
function stringify(node, doc) {
|
||
processor.freeze();
|
||
var file = vfile(doc);
|
||
var Compiler = processor.Compiler;
|
||
assertCompiler('stringify', Compiler);
|
||
assertNode(node);
|
||
if (newable(Compiler, 'compile')) {
|
||
// @ts-expect-error: `newable` checks this.
|
||
return new Compiler(node, file).compile();
|
||
}
|
||
|
||
// @ts-expect-error: `newable` checks this.
|
||
return Compiler(node, file); // eslint-disable-line new-cap
|
||
}
|
||
|
||
/**
|
||
* @param {Node} node
|
||
* @param {VFileCompatible|RunCallback} [doc]
|
||
* @param {RunCallback} [callback]
|
||
* @returns {Promise<Node>|void}
|
||
*/
|
||
function run(node, doc, callback) {
|
||
assertNode(node);
|
||
processor.freeze();
|
||
if (!callback && typeof doc === 'function') {
|
||
callback = doc;
|
||
doc = undefined;
|
||
}
|
||
if (!callback) {
|
||
return new Promise(executor);
|
||
}
|
||
executor(null, callback);
|
||
|
||
/**
|
||
* @param {null|((node: Node) => void)} resolve
|
||
* @param {(error: Error) => void} reject
|
||
* @returns {void}
|
||
*/
|
||
function executor(resolve, reject) {
|
||
// @ts-expect-error: `doc` can’t be a callback anymore, we checked.
|
||
transformers.run(node, vfile(doc), done);
|
||
|
||
/**
|
||
* @param {Error|null} error
|
||
* @param {Node} tree
|
||
* @param {VFile} file
|
||
* @returns {void}
|
||
*/
|
||
function done(error, tree, file) {
|
||
tree = tree || node;
|
||
if (error) {
|
||
reject(error);
|
||
} else if (resolve) {
|
||
resolve(tree);
|
||
} else {
|
||
// @ts-expect-error: `callback` is defined if `resolve` is not.
|
||
callback(null, tree, file);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
/** @type {Processor['runSync']} */
|
||
function runSync(node, file) {
|
||
/** @type {Node|undefined} */
|
||
var result;
|
||
/** @type {boolean|undefined} */
|
||
var complete;
|
||
processor.run(node, file, done);
|
||
assertDone('runSync', 'run', complete);
|
||
|
||
// @ts-expect-error: we either bailed on an error or have a tree.
|
||
return result;
|
||
|
||
/**
|
||
* @param {Error|null} [error]
|
||
* @param {Node} [tree]
|
||
* @returns {void}
|
||
*/
|
||
function done(error, tree) {
|
||
bail(error);
|
||
result = tree;
|
||
complete = true;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @param {VFileCompatible} doc
|
||
* @param {ProcessCallback} [callback]
|
||
* @returns {Promise<VFile>|undefined}
|
||
*/
|
||
function process(doc, callback) {
|
||
processor.freeze();
|
||
assertParser('process', processor.Parser);
|
||
assertCompiler('process', processor.Compiler);
|
||
if (!callback) {
|
||
return new Promise(executor);
|
||
}
|
||
executor(null, callback);
|
||
|
||
/**
|
||
* @param {null|((file: VFile) => void)} resolve
|
||
* @param {(error?: Error|null|undefined) => void} reject
|
||
* @returns {void}
|
||
*/
|
||
function executor(resolve, reject) {
|
||
var file = vfile(doc);
|
||
processor.run(processor.parse(file), file, function (error, tree, file) {
|
||
if (error || !tree || !file) {
|
||
done(error);
|
||
} else {
|
||
/** @type {unknown} */
|
||
var result = processor.stringify(tree, file);
|
||
if (result === undefined || result === null) {
|
||
// Empty.
|
||
} else if (looksLikeAVFileValue(result)) {
|
||
file.value = result;
|
||
} else {
|
||
file.result = result;
|
||
}
|
||
done(error, file);
|
||
}
|
||
});
|
||
|
||
/**
|
||
* @param {Error|null|undefined} [error]
|
||
* @param {VFile|undefined} [file]
|
||
* @returns {void}
|
||
*/
|
||
function done(error, file) {
|
||
if (error || !file) {
|
||
reject(error);
|
||
} else if (resolve) {
|
||
resolve(file);
|
||
} else {
|
||
// @ts-expect-error: `callback` is defined if `resolve` is not.
|
||
callback(null, file);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
/** @type {Processor['processSync']} */
|
||
function processSync(doc) {
|
||
/** @type {boolean|undefined} */
|
||
var complete;
|
||
processor.freeze();
|
||
assertParser('processSync', processor.Parser);
|
||
assertCompiler('processSync', processor.Compiler);
|
||
var file = vfile(doc);
|
||
processor.process(file, done);
|
||
assertDone('processSync', 'process', complete);
|
||
return file;
|
||
|
||
/**
|
||
* @param {Error|null|undefined} [error]
|
||
* @returns {void}
|
||
*/
|
||
function done(error) {
|
||
complete = true;
|
||
bail(error);
|
||
}
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Check if `value` is a constructor.
|
||
*
|
||
* @param {unknown} value
|
||
* @param {string} name
|
||
* @returns {boolean}
|
||
*/
|
||
function newable(value, name) {
|
||
return typeof value === 'function' &&
|
||
// Prototypes do exist.
|
||
// type-coverage:ignore-next-line
|
||
value.prototype && (
|
||
// A function with keys in its prototype is probably a constructor.
|
||
// Classes’ prototype methods are not enumerable, so we check if some value
|
||
// exists in the prototype.
|
||
// type-coverage:ignore-next-line
|
||
keys(value.prototype) || name in value.prototype);
|
||
}
|
||
|
||
/**
|
||
* Check if `value` is an object with keys.
|
||
*
|
||
* @param {Record<string, unknown>} value
|
||
* @returns {boolean}
|
||
*/
|
||
function keys(value) {
|
||
/** @type {string} */
|
||
var key;
|
||
for (key in value) {
|
||
if (own.call(value, key)) {
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
}
|
||
|
||
/**
|
||
* Assert a parser is available.
|
||
*
|
||
* @param {string} name
|
||
* @param {unknown} value
|
||
* @returns {asserts value is Parser}
|
||
*/
|
||
function assertParser(name, value) {
|
||
if (typeof value !== 'function') {
|
||
throw new TypeError('Cannot `' + name + '` without `Parser`');
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Assert a compiler is available.
|
||
*
|
||
* @param {string} name
|
||
* @param {unknown} value
|
||
* @returns {asserts value is Compiler}
|
||
*/
|
||
function assertCompiler(name, value) {
|
||
if (typeof value !== 'function') {
|
||
throw new TypeError('Cannot `' + name + '` without `Compiler`');
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Assert the processor is not frozen.
|
||
*
|
||
* @param {string} name
|
||
* @param {unknown} frozen
|
||
* @returns {asserts frozen is false}
|
||
*/
|
||
function assertUnfrozen(name, frozen) {
|
||
if (frozen) {
|
||
throw new Error('Cannot call `' + name + '` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.');
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Assert `node` is a unist node.
|
||
*
|
||
* @param {unknown} node
|
||
* @returns {asserts node is Node}
|
||
*/
|
||
function assertNode(node) {
|
||
// `isPlainObj` unfortunately uses `any` instead of `unknown`.
|
||
// type-coverage:ignore-next-line
|
||
if (!is_plain_obj_isPlainObject(node) || typeof node.type !== 'string') {
|
||
throw new TypeError('Expected node, got `' + node + '`');
|
||
// Fine.
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Assert that `complete` is `true`.
|
||
*
|
||
* @param {string} name
|
||
* @param {string} asyncName
|
||
* @param {unknown} complete
|
||
* @returns {asserts complete is true}
|
||
*/
|
||
function assertDone(name, asyncName, complete) {
|
||
if (!complete) {
|
||
throw new Error('`' + name + '` finished async. Use `' + asyncName + '` instead');
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @param {VFileCompatible} [value]
|
||
* @returns {VFile}
|
||
*/
|
||
function vfile(value) {
|
||
return looksLikeAVFile(value) ? value : new VFile(value);
|
||
}
|
||
|
||
/**
|
||
* @param {VFileCompatible} [value]
|
||
* @returns {value is VFile}
|
||
*/
|
||
function looksLikeAVFile(value) {
|
||
return Boolean(value && typeof value === 'object' && 'message' in value && 'messages' in value);
|
||
}
|
||
|
||
/**
|
||
* @param {unknown} [value]
|
||
* @returns {value is VFileValue}
|
||
*/
|
||
function looksLikeAVFileValue(value) {
|
||
return typeof value === 'string' || is_buffer(value);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/mdast-util-to-string@3.2.0/node_modules/mdast-util-to-string/lib/index.js
|
||
/**
|
||
* @typedef {import('mdast').Root|import('mdast').Content} Node
|
||
*
|
||
* @typedef Options
|
||
* Configuration (optional).
|
||
* @property {boolean | null | undefined} [includeImageAlt=true]
|
||
* Whether to use `alt` for `image`s.
|
||
* @property {boolean | null | undefined} [includeHtml=true]
|
||
* Whether to use `value` of HTML.
|
||
*/
|
||
|
||
/** @type {Options} */
|
||
var emptyOptions = {};
|
||
|
||
/**
|
||
* Get the text content of a node or list of nodes.
|
||
*
|
||
* Prefers the node’s plain-text fields, otherwise serializes its children,
|
||
* and if the given value is an array, serialize the nodes in it.
|
||
*
|
||
* @param {unknown} value
|
||
* Thing to serialize, typically `Node`.
|
||
* @param {Options | null | undefined} [options]
|
||
* Configuration (optional).
|
||
* @returns {string}
|
||
* Serialized `value`.
|
||
*/
|
||
function lib_toString(value, options) {
|
||
var settings = options || emptyOptions;
|
||
var includeImageAlt = typeof settings.includeImageAlt === 'boolean' ? settings.includeImageAlt : true;
|
||
var includeHtml = typeof settings.includeHtml === 'boolean' ? settings.includeHtml : true;
|
||
return one(value, includeImageAlt, includeHtml);
|
||
}
|
||
|
||
/**
|
||
* One node or several nodes.
|
||
*
|
||
* @param {unknown} value
|
||
* Thing to serialize.
|
||
* @param {boolean} includeImageAlt
|
||
* Include image `alt`s.
|
||
* @param {boolean} includeHtml
|
||
* Include HTML.
|
||
* @returns {string}
|
||
* Serialized node.
|
||
*/
|
||
function one(value, includeImageAlt, includeHtml) {
|
||
if (lib_node(value)) {
|
||
if ('value' in value) {
|
||
return value.type === 'html' && !includeHtml ? '' : value.value;
|
||
}
|
||
if (includeImageAlt && 'alt' in value && value.alt) {
|
||
return value.alt;
|
||
}
|
||
if ('children' in value) {
|
||
return lib_all(value.children, includeImageAlt, includeHtml);
|
||
}
|
||
}
|
||
if (Array.isArray(value)) {
|
||
return lib_all(value, includeImageAlt, includeHtml);
|
||
}
|
||
return '';
|
||
}
|
||
|
||
/**
|
||
* Serialize a list of nodes.
|
||
*
|
||
* @param {Array<unknown>} values
|
||
* Thing to serialize.
|
||
* @param {boolean} includeImageAlt
|
||
* Include image `alt`s.
|
||
* @param {boolean} includeHtml
|
||
* Include HTML.
|
||
* @returns {string}
|
||
* Serialized nodes.
|
||
*/
|
||
function lib_all(values, includeImageAlt, includeHtml) {
|
||
/** @type {Array<string>} */
|
||
var result = [];
|
||
var index = -1;
|
||
while (++index < values.length) {
|
||
result[index] = one(values[index], includeImageAlt, includeHtml);
|
||
}
|
||
return result.join('');
|
||
}
|
||
|
||
/**
|
||
* Check if `value` looks like a node.
|
||
*
|
||
* @param {unknown} value
|
||
* Thing.
|
||
* @returns {value is Node}
|
||
* Whether `value` is a node.
|
||
*/
|
||
function lib_node(value) {
|
||
return Boolean(value && typeof value === 'object');
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-util-chunked@1.1.0/node_modules/micromark-util-chunked/index.js
|
||
|
||
/**
|
||
* Like `Array#splice`, but smarter for giant arrays.
|
||
*
|
||
* `Array#splice` takes all items to be inserted as individual argument which
|
||
* causes a stack overflow in V8 when trying to insert 100k items for instance.
|
||
*
|
||
* Otherwise, this does not return the removed items, and takes `items` as an
|
||
* array instead of rest parameters.
|
||
*
|
||
* @template {unknown} T
|
||
* Item type.
|
||
* @param {Array<T>} list
|
||
* List to operate on.
|
||
* @param {number} start
|
||
* Index to remove/insert at (can be negative).
|
||
* @param {number} remove
|
||
* Number of items to remove.
|
||
* @param {Array<T>} items
|
||
* Items to inject into `list`.
|
||
* @returns {void}
|
||
* Nothing.
|
||
*/
|
||
function splice(list, start, remove, items) {
|
||
var end = list.length;
|
||
var chunkStart = 0;
|
||
/** @type {Array<unknown>} */
|
||
var parameters;
|
||
|
||
// Make start between zero and `end` (included).
|
||
if (start < 0) {
|
||
start = -start > end ? 0 : end + start;
|
||
} else {
|
||
start = start > end ? end : start;
|
||
}
|
||
remove = remove > 0 ? remove : 0;
|
||
|
||
// No need to chunk the items if there’s only a couple (10k) items.
|
||
if (items.length < 10000) {
|
||
parameters = Array.from(items);
|
||
parameters.unshift(start, remove);
|
||
// @ts-expect-error Hush, it’s fine.
|
||
list.splice.apply(list, toConsumableArray_toConsumableArray(parameters));
|
||
} else {
|
||
// Delete `remove` items starting from `start`
|
||
if (remove) list.splice(start, remove);
|
||
|
||
// Insert the items in chunks to not cause stack overflows.
|
||
while (chunkStart < items.length) {
|
||
parameters = items.slice(chunkStart, chunkStart + 10000);
|
||
parameters.unshift(start, 0);
|
||
// @ts-expect-error Hush, it’s fine.
|
||
list.splice.apply(list, toConsumableArray_toConsumableArray(parameters));
|
||
chunkStart += 10000;
|
||
start += 10000;
|
||
}
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Append `items` (an array) at the end of `list` (another array).
|
||
* When `list` was empty, returns `items` instead.
|
||
*
|
||
* This prevents a potentially expensive operation when `list` is empty,
|
||
* and adds items in batches to prevent V8 from hanging.
|
||
*
|
||
* @template {unknown} T
|
||
* Item type.
|
||
* @param {Array<T>} list
|
||
* List to operate on.
|
||
* @param {Array<T>} items
|
||
* Items to add to `list`.
|
||
* @returns {Array<T>}
|
||
* Either `list` or `items`.
|
||
*/
|
||
function push(list, items) {
|
||
if (list.length > 0) {
|
||
splice(list, list.length, 0, items);
|
||
return list;
|
||
}
|
||
return items;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-util-combine-extensions@1.1.0/node_modules/micromark-util-combine-extensions/index.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Extension} Extension
|
||
* @typedef {import('micromark-util-types').Handles} Handles
|
||
* @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension
|
||
* @typedef {import('micromark-util-types').NormalizedExtension} NormalizedExtension
|
||
*/
|
||
|
||
|
||
var micromark_util_combine_extensions_hasOwnProperty = {}.hasOwnProperty;
|
||
|
||
/**
|
||
* Combine multiple syntax extensions into one.
|
||
*
|
||
* @param {Array<Extension>} extensions
|
||
* List of syntax extensions.
|
||
* @returns {NormalizedExtension}
|
||
* A single combined extension.
|
||
*/
|
||
function combineExtensions(extensions) {
|
||
/** @type {NormalizedExtension} */
|
||
var all = {};
|
||
var index = -1;
|
||
while (++index < extensions.length) {
|
||
syntaxExtension(all, extensions[index]);
|
||
}
|
||
return all;
|
||
}
|
||
|
||
/**
|
||
* Merge `extension` into `all`.
|
||
*
|
||
* @param {NormalizedExtension} all
|
||
* Extension to merge into.
|
||
* @param {Extension} extension
|
||
* Extension to merge.
|
||
* @returns {void}
|
||
*/
|
||
function syntaxExtension(all, extension) {
|
||
/** @type {keyof Extension} */
|
||
var hook;
|
||
for (hook in extension) {
|
||
var maybe = micromark_util_combine_extensions_hasOwnProperty.call(all, hook) ? all[hook] : undefined;
|
||
/** @type {Record<string, unknown>} */
|
||
var left = maybe || (all[hook] = {});
|
||
/** @type {Record<string, unknown> | undefined} */
|
||
var right = extension[hook];
|
||
/** @type {string} */
|
||
var code = void 0;
|
||
if (right) {
|
||
for (code in right) {
|
||
if (!micromark_util_combine_extensions_hasOwnProperty.call(left, code)) left[code] = [];
|
||
var value = right[code];
|
||
constructs(
|
||
// @ts-expect-error Looks like a list.
|
||
left[code], Array.isArray(value) ? value : value ? [value] : []);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Merge `list` into `existing` (both lists of constructs).
|
||
* Mutates `existing`.
|
||
*
|
||
* @param {Array<unknown>} existing
|
||
* @param {Array<unknown>} list
|
||
* @returns {void}
|
||
*/
|
||
function constructs(existing, list) {
|
||
var index = -1;
|
||
/** @type {Array<unknown>} */
|
||
var before = [];
|
||
while (++index < list.length) {
|
||
// @ts-expect-error Looks like an object.
|
||
;
|
||
(list[index].add === 'after' ? existing : before).push(list[index]);
|
||
}
|
||
splice(existing, 0, 0, before);
|
||
}
|
||
|
||
/**
|
||
* Combine multiple HTML extensions into one.
|
||
*
|
||
* @param {Array<HtmlExtension>} htmlExtensions
|
||
* List of HTML extensions.
|
||
* @returns {HtmlExtension}
|
||
* A single combined HTML extension.
|
||
*/
|
||
function combineHtmlExtensions(htmlExtensions) {
|
||
/** @type {HtmlExtension} */
|
||
var handlers = {};
|
||
var index = -1;
|
||
while (++index < htmlExtensions.length) {
|
||
htmlExtension(handlers, htmlExtensions[index]);
|
||
}
|
||
return handlers;
|
||
}
|
||
|
||
/**
|
||
* Merge `extension` into `all`.
|
||
*
|
||
* @param {HtmlExtension} all
|
||
* Extension to merge into.
|
||
* @param {HtmlExtension} extension
|
||
* Extension to merge.
|
||
* @returns {void}
|
||
*/
|
||
function htmlExtension(all, extension) {
|
||
/** @type {keyof HtmlExtension} */
|
||
var hook;
|
||
for (hook in extension) {
|
||
var maybe = micromark_util_combine_extensions_hasOwnProperty.call(all, hook) ? all[hook] : undefined;
|
||
var left = maybe || (all[hook] = {});
|
||
var right = extension[hook];
|
||
/** @type {keyof Handles} */
|
||
var type = void 0;
|
||
if (right) {
|
||
for (type in right) {
|
||
// @ts-expect-error assume document vs regular handler are managed correctly.
|
||
left[type] = right[type];
|
||
}
|
||
}
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-util-character@1.2.0/node_modules/micromark-util-character/lib/unicode-punctuation-regex.js
|
||
// This module is generated by `script/`.
|
||
//
|
||
// CommonMark handles attention (emphasis, strong) markers based on what comes
|
||
// before or after them.
|
||
// One such difference is if those characters are Unicode punctuation.
|
||
// This script is generated from the Unicode data.
|
||
|
||
/**
|
||
* Regular expression that matches a unicode punctuation character.
|
||
*/
|
||
var unicodePunctuationRegex = /[!-\/:-@\[-`\{-~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]/;
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-util-character@1.2.0/node_modules/micromark-util-character/index.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Code} Code
|
||
*/
|
||
|
||
|
||
|
||
/**
|
||
* Check whether the character code represents an ASCII alpha (`a` through `z`,
|
||
* case insensitive).
|
||
*
|
||
* An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.
|
||
*
|
||
* An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)
|
||
* to U+005A (`Z`).
|
||
*
|
||
* An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)
|
||
* to U+007A (`z`).
|
||
*
|
||
* @param code
|
||
* Code.
|
||
* @returns
|
||
* Whether it matches.
|
||
*/
|
||
var asciiAlpha = regexCheck(/[A-Za-z]/);
|
||
|
||
/**
|
||
* Check whether the character code represents an ASCII alphanumeric (`a`
|
||
* through `z`, case insensitive, or `0` through `9`).
|
||
*
|
||
* An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha
|
||
* (see `asciiAlpha`).
|
||
*
|
||
* @param code
|
||
* Code.
|
||
* @returns
|
||
* Whether it matches.
|
||
*/
|
||
var asciiAlphanumeric = regexCheck(/[\dA-Za-z]/);
|
||
|
||
/**
|
||
* Check whether the character code represents an ASCII atext.
|
||
*
|
||
* atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in
|
||
* the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),
|
||
* U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F
|
||
* SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E
|
||
* CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE
|
||
* (`{`) to U+007E TILDE (`~`).
|
||
*
|
||
* See:
|
||
* **\[RFC5322]**:
|
||
* [Internet Message Format](https://tools.ietf.org/html/rfc5322).
|
||
* P. Resnick.
|
||
* IETF.
|
||
*
|
||
* @param code
|
||
* Code.
|
||
* @returns
|
||
* Whether it matches.
|
||
*/
|
||
var asciiAtext = regexCheck(/[#-'*+\--9=?A-Z^-~]/);
|
||
|
||
/**
|
||
* Check whether a character code is an ASCII control character.
|
||
*
|
||
* An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)
|
||
* to U+001F (US), or U+007F (DEL).
|
||
*
|
||
* @param {Code} code
|
||
* Code.
|
||
* @returns {boolean}
|
||
* Whether it matches.
|
||
*/
|
||
function asciiControl(code) {
|
||
return (
|
||
// Special whitespace codes (which have negative values), C0 and Control
|
||
// character DEL
|
||
code !== null && (code < 32 || code === 127)
|
||
);
|
||
}
|
||
|
||
/**
|
||
* Check whether the character code represents an ASCII digit (`0` through `9`).
|
||
*
|
||
* An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to
|
||
* U+0039 (`9`).
|
||
*
|
||
* @param code
|
||
* Code.
|
||
* @returns
|
||
* Whether it matches.
|
||
*/
|
||
var asciiDigit = regexCheck(/\d/);
|
||
|
||
/**
|
||
* Check whether the character code represents an ASCII hex digit (`a` through
|
||
* `f`, case insensitive, or `0` through `9`).
|
||
*
|
||
* An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex
|
||
* digit, or an ASCII lower hex digit.
|
||
*
|
||
* An **ASCII upper hex digit** is a character in the inclusive range U+0041
|
||
* (`A`) to U+0046 (`F`).
|
||
*
|
||
* An **ASCII lower hex digit** is a character in the inclusive range U+0061
|
||
* (`a`) to U+0066 (`f`).
|
||
*
|
||
* @param code
|
||
* Code.
|
||
* @returns
|
||
* Whether it matches.
|
||
*/
|
||
var asciiHexDigit = regexCheck(/[\dA-Fa-f]/);
|
||
|
||
/**
|
||
* Check whether the character code represents ASCII punctuation.
|
||
*
|
||
* An **ASCII punctuation** is a character in the inclusive ranges U+0021
|
||
* EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT
|
||
* SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT
|
||
* (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).
|
||
*
|
||
* @param code
|
||
* Code.
|
||
* @returns
|
||
* Whether it matches.
|
||
*/
|
||
var asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/);
|
||
|
||
/**
|
||
* Check whether a character code is a markdown line ending.
|
||
*
|
||
* A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN
|
||
* LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).
|
||
*
|
||
* In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE
|
||
* RETURN (CR) are replaced by these virtual characters depending on whether
|
||
* they occurred together.
|
||
*
|
||
* @param {Code} code
|
||
* Code.
|
||
* @returns {boolean}
|
||
* Whether it matches.
|
||
*/
|
||
function markdownLineEnding(code) {
|
||
return code !== null && code < -2;
|
||
}
|
||
|
||
/**
|
||
* Check whether a character code is a markdown line ending (see
|
||
* `markdownLineEnding`) or markdown space (see `markdownSpace`).
|
||
*
|
||
* @param {Code} code
|
||
* Code.
|
||
* @returns {boolean}
|
||
* Whether it matches.
|
||
*/
|
||
function markdownLineEndingOrSpace(code) {
|
||
return code !== null && (code < 0 || code === 32);
|
||
}
|
||
|
||
/**
|
||
* Check whether a character code is a markdown space.
|
||
*
|
||
* A **markdown space** is the concrete character U+0020 SPACE (SP) and the
|
||
* virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).
|
||
*
|
||
* In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is
|
||
* replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL
|
||
* SPACE (VS) characters, depending on the column at which the tab occurred.
|
||
*
|
||
* @param {Code} code
|
||
* Code.
|
||
* @returns {boolean}
|
||
* Whether it matches.
|
||
*/
|
||
function markdownSpace(code) {
|
||
return code === -2 || code === -1 || code === 32;
|
||
}
|
||
|
||
// Size note: removing ASCII from the regex and using `asciiPunctuation` here
|
||
// In fact adds to the bundle size.
|
||
/**
|
||
* Check whether the character code represents Unicode punctuation.
|
||
*
|
||
* A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,
|
||
* Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`
|
||
* (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`
|
||
* (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII
|
||
* punctuation (see `asciiPunctuation`).
|
||
*
|
||
* See:
|
||
* **\[UNICODE]**:
|
||
* [The Unicode Standard](https://www.unicode.org/versions/).
|
||
* Unicode Consortium.
|
||
*
|
||
* @param code
|
||
* Code.
|
||
* @returns
|
||
* Whether it matches.
|
||
*/
|
||
var unicodePunctuation = regexCheck(unicodePunctuationRegex);
|
||
|
||
/**
|
||
* Check whether the character code represents Unicode whitespace.
|
||
*
|
||
* Note that this does handle micromark specific markdown whitespace characters.
|
||
* See `markdownLineEndingOrSpace` to check that.
|
||
*
|
||
* A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,
|
||
* Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),
|
||
* U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\[UNICODE]**).
|
||
*
|
||
* See:
|
||
* **\[UNICODE]**:
|
||
* [The Unicode Standard](https://www.unicode.org/versions/).
|
||
* Unicode Consortium.
|
||
*
|
||
* @param code
|
||
* Code.
|
||
* @returns
|
||
* Whether it matches.
|
||
*/
|
||
var unicodeWhitespace = regexCheck(/\s/);
|
||
|
||
/**
|
||
* Create a code check from a regex.
|
||
*
|
||
* @param {RegExp} regex
|
||
* @returns {(code: Code) => boolean}
|
||
*/
|
||
function regexCheck(regex) {
|
||
return check;
|
||
|
||
/**
|
||
* Check whether a code matches the bound regex.
|
||
*
|
||
* @param {Code} code
|
||
* Character code.
|
||
* @returns {boolean}
|
||
* Whether the character code matches the bound regex.
|
||
*/
|
||
function check(code) {
|
||
return code !== null && regex.test(String.fromCharCode(code));
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-factory-space@1.1.0/node_modules/micromark-factory-space/index.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Effects} Effects
|
||
* @typedef {import('micromark-util-types').State} State
|
||
* @typedef {import('micromark-util-types').TokenType} TokenType
|
||
*/
|
||
|
||
|
||
|
||
// To do: implement `spaceOrTab`, `spaceOrTabMinMax`, `spaceOrTabWithOptions`.
|
||
|
||
/**
|
||
* Parse spaces and tabs.
|
||
*
|
||
* There is no `nok` parameter:
|
||
*
|
||
* * spaces in markdown are often optional, in which case this factory can be
|
||
* used and `ok` will be switched to whether spaces were found or not
|
||
* * one line ending or space can be detected with `markdownSpace(code)` right
|
||
* before using `factorySpace`
|
||
*
|
||
* ###### Examples
|
||
*
|
||
* Where `␉` represents a tab (plus how much it expands) and `␠` represents a
|
||
* single space.
|
||
*
|
||
* ```markdown
|
||
* ␉
|
||
* ␠␠␠␠
|
||
* ␉␠
|
||
* ```
|
||
*
|
||
* @param {Effects} effects
|
||
* Context.
|
||
* @param {State} ok
|
||
* State switched to when successful.
|
||
* @param {TokenType} type
|
||
* Type (`' \t'`).
|
||
* @param {number | undefined} [max=Infinity]
|
||
* Max (exclusive).
|
||
* @returns
|
||
* Start state.
|
||
*/
|
||
function factorySpace(effects, ok, type, max) {
|
||
var limit = max ? max - 1 : Number.POSITIVE_INFINITY;
|
||
var size = 0;
|
||
return start;
|
||
|
||
/** @type {State} */
|
||
function start(code) {
|
||
if (markdownSpace(code)) {
|
||
effects.enter(type);
|
||
return prefix(code);
|
||
}
|
||
return ok(code);
|
||
}
|
||
|
||
/** @type {State} */
|
||
function prefix(code) {
|
||
if (markdownSpace(code) && size++ < limit) {
|
||
effects.consume(code);
|
||
return prefix;
|
||
}
|
||
effects.exit(type);
|
||
return ok(code);
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark@3.2.0/node_modules/micromark/lib/initialize/content.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct
|
||
* @typedef {import('micromark-util-types').Initializer} Initializer
|
||
* @typedef {import('micromark-util-types').State} State
|
||
* @typedef {import('micromark-util-types').Token} Token
|
||
* @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
|
||
*/
|
||
|
||
|
||
|
||
/** @type {InitialConstruct} */
|
||
var content = {
|
||
tokenize: initializeContent
|
||
};
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Initializer}
|
||
*/
|
||
function initializeContent(effects) {
|
||
var contentStart = effects.attempt(this.parser.constructs.contentInitial, afterContentStartConstruct, paragraphInitial);
|
||
/** @type {Token} */
|
||
var previous;
|
||
return contentStart;
|
||
|
||
/** @type {State} */
|
||
function afterContentStartConstruct(code) {
|
||
if (code === null) {
|
||
effects.consume(code);
|
||
return;
|
||
}
|
||
effects.enter('lineEnding');
|
||
effects.consume(code);
|
||
effects.exit('lineEnding');
|
||
return factorySpace(effects, contentStart, 'linePrefix');
|
||
}
|
||
|
||
/** @type {State} */
|
||
function paragraphInitial(code) {
|
||
effects.enter('paragraph');
|
||
return lineStart(code);
|
||
}
|
||
|
||
/** @type {State} */
|
||
function lineStart(code) {
|
||
var token = effects.enter('chunkText', {
|
||
contentType: 'text',
|
||
previous: previous
|
||
});
|
||
if (previous) {
|
||
previous.next = token;
|
||
}
|
||
previous = token;
|
||
return data(code);
|
||
}
|
||
|
||
/** @type {State} */
|
||
function data(code) {
|
||
if (code === null) {
|
||
effects.exit('chunkText');
|
||
effects.exit('paragraph');
|
||
effects.consume(code);
|
||
return;
|
||
}
|
||
if (markdownLineEnding(code)) {
|
||
effects.consume(code);
|
||
effects.exit('chunkText');
|
||
return lineStart;
|
||
}
|
||
|
||
// Data.
|
||
effects.consume(code);
|
||
return data;
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark@3.2.0/node_modules/micromark/lib/initialize/document.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Construct} Construct
|
||
* @typedef {import('micromark-util-types').ContainerState} ContainerState
|
||
* @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct
|
||
* @typedef {import('micromark-util-types').Initializer} Initializer
|
||
* @typedef {import('micromark-util-types').Point} Point
|
||
* @typedef {import('micromark-util-types').State} State
|
||
* @typedef {import('micromark-util-types').Token} Token
|
||
* @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
|
||
* @typedef {import('micromark-util-types').Tokenizer} Tokenizer
|
||
*/
|
||
|
||
/**
|
||
* @typedef {[Construct, ContainerState]} StackItem
|
||
*/
|
||
|
||
|
||
|
||
|
||
/** @type {InitialConstruct} */
|
||
var document_document = {
|
||
tokenize: initializeDocument
|
||
};
|
||
|
||
/** @type {Construct} */
|
||
var containerConstruct = {
|
||
tokenize: tokenizeContainer
|
||
};
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Initializer}
|
||
*/
|
||
function initializeDocument(effects) {
|
||
var self = this;
|
||
/** @type {Array<StackItem>} */
|
||
var stack = [];
|
||
var continued = 0;
|
||
/** @type {TokenizeContext | undefined} */
|
||
var childFlow;
|
||
/** @type {Token | undefined} */
|
||
var childToken;
|
||
/** @type {number} */
|
||
var lineStartOffset;
|
||
return start;
|
||
|
||
/** @type {State} */
|
||
function start(code) {
|
||
// First we iterate through the open blocks, starting with the root
|
||
// document, and descending through last children down to the last open
|
||
// block.
|
||
// Each block imposes a condition that the line must satisfy if the block is
|
||
// to remain open.
|
||
// For example, a block quote requires a `>` character.
|
||
// A paragraph requires a non-blank line.
|
||
// In this phase we may match all or just some of the open blocks.
|
||
// But we cannot close unmatched blocks yet, because we may have a lazy
|
||
// continuation line.
|
||
if (continued < stack.length) {
|
||
var item = stack[continued];
|
||
self.containerState = item[1];
|
||
return effects.attempt(item[0].continuation, documentContinue, checkNewContainers)(code);
|
||
}
|
||
|
||
// Done.
|
||
return checkNewContainers(code);
|
||
}
|
||
|
||
/** @type {State} */
|
||
function documentContinue(code) {
|
||
continued++;
|
||
|
||
// Note: this field is called `_closeFlow` but it also closes containers.
|
||
// Perhaps a good idea to rename it but it’s already used in the wild by
|
||
// extensions.
|
||
if (self.containerState._closeFlow) {
|
||
self.containerState._closeFlow = undefined;
|
||
if (childFlow) {
|
||
closeFlow();
|
||
}
|
||
|
||
// Note: this algorithm for moving events around is similar to the
|
||
// algorithm when dealing with lazy lines in `writeToChild`.
|
||
var indexBeforeExits = self.events.length;
|
||
var indexBeforeFlow = indexBeforeExits;
|
||
/** @type {Point | undefined} */
|
||
var point;
|
||
|
||
// Find the flow chunk.
|
||
while (indexBeforeFlow--) {
|
||
if (self.events[indexBeforeFlow][0] === 'exit' && self.events[indexBeforeFlow][1].type === 'chunkFlow') {
|
||
point = self.events[indexBeforeFlow][1].end;
|
||
break;
|
||
}
|
||
}
|
||
exitContainers(continued);
|
||
|
||
// Fix positions.
|
||
var index = indexBeforeExits;
|
||
while (index < self.events.length) {
|
||
self.events[index][1].end = Object.assign({}, point);
|
||
index++;
|
||
}
|
||
|
||
// Inject the exits earlier (they’re still also at the end).
|
||
splice(self.events, indexBeforeFlow + 1, 0, self.events.slice(indexBeforeExits));
|
||
|
||
// Discard the duplicate exits.
|
||
self.events.length = index;
|
||
return checkNewContainers(code);
|
||
}
|
||
return start(code);
|
||
}
|
||
|
||
/** @type {State} */
|
||
function checkNewContainers(code) {
|
||
// Next, after consuming the continuation markers for existing blocks, we
|
||
// look for new block starts (e.g. `>` for a block quote).
|
||
// If we encounter a new block start, we close any blocks unmatched in
|
||
// step 1 before creating the new block as a child of the last matched
|
||
// block.
|
||
if (continued === stack.length) {
|
||
// No need to `check` whether there’s a container, of `exitContainers`
|
||
// would be moot.
|
||
// We can instead immediately `attempt` to parse one.
|
||
if (!childFlow) {
|
||
return documentContinued(code);
|
||
}
|
||
|
||
// If we have concrete content, such as block HTML or fenced code,
|
||
// we can’t have containers “pierce” into them, so we can immediately
|
||
// start.
|
||
if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {
|
||
return flowStart(code);
|
||
}
|
||
|
||
// If we do have flow, it could still be a blank line,
|
||
// but we’d be interrupting it w/ a new container if there’s a current
|
||
// construct.
|
||
// To do: next major: remove `_gfmTableDynamicInterruptHack` (no longer
|
||
// needed in micromark-extension-gfm-table@1.0.6).
|
||
self.interrupt = Boolean(childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack);
|
||
}
|
||
|
||
// Check if there is a new container.
|
||
self.containerState = {};
|
||
return effects.check(containerConstruct, thereIsANewContainer, thereIsNoNewContainer)(code);
|
||
}
|
||
|
||
/** @type {State} */
|
||
function thereIsANewContainer(code) {
|
||
if (childFlow) closeFlow();
|
||
exitContainers(continued);
|
||
return documentContinued(code);
|
||
}
|
||
|
||
/** @type {State} */
|
||
function thereIsNoNewContainer(code) {
|
||
self.parser.lazy[self.now().line] = continued !== stack.length;
|
||
lineStartOffset = self.now().offset;
|
||
return flowStart(code);
|
||
}
|
||
|
||
/** @type {State} */
|
||
function documentContinued(code) {
|
||
// Try new containers.
|
||
self.containerState = {};
|
||
return effects.attempt(containerConstruct, containerContinue, flowStart)(code);
|
||
}
|
||
|
||
/** @type {State} */
|
||
function containerContinue(code) {
|
||
continued++;
|
||
stack.push([self.currentConstruct, self.containerState]);
|
||
// Try another.
|
||
return documentContinued(code);
|
||
}
|
||
|
||
/** @type {State} */
|
||
function flowStart(code) {
|
||
if (code === null) {
|
||
if (childFlow) closeFlow();
|
||
exitContainers(0);
|
||
effects.consume(code);
|
||
return;
|
||
}
|
||
childFlow = childFlow || self.parser.flow(self.now());
|
||
effects.enter('chunkFlow', {
|
||
contentType: 'flow',
|
||
previous: childToken,
|
||
_tokenizer: childFlow
|
||
});
|
||
return flowContinue(code);
|
||
}
|
||
|
||
/** @type {State} */
|
||
function flowContinue(code) {
|
||
if (code === null) {
|
||
writeToChild(effects.exit('chunkFlow'), true);
|
||
exitContainers(0);
|
||
effects.consume(code);
|
||
return;
|
||
}
|
||
if (markdownLineEnding(code)) {
|
||
effects.consume(code);
|
||
writeToChild(effects.exit('chunkFlow'));
|
||
// Get ready for the next line.
|
||
continued = 0;
|
||
self.interrupt = undefined;
|
||
return start;
|
||
}
|
||
effects.consume(code);
|
||
return flowContinue;
|
||
}
|
||
|
||
/**
|
||
* @param {Token} token
|
||
* @param {boolean | undefined} [eof]
|
||
* @returns {void}
|
||
*/
|
||
function writeToChild(token, eof) {
|
||
var stream = self.sliceStream(token);
|
||
if (eof) stream.push(null);
|
||
token.previous = childToken;
|
||
if (childToken) childToken.next = token;
|
||
childToken = token;
|
||
childFlow.defineSkip(token.start);
|
||
childFlow.write(stream);
|
||
|
||
// Alright, so we just added a lazy line:
|
||
//
|
||
// ```markdown
|
||
// > a
|
||
// b.
|
||
//
|
||
// Or:
|
||
//
|
||
// > ~~~c
|
||
// d
|
||
//
|
||
// Or:
|
||
//
|
||
// > | e |
|
||
// f
|
||
// ```
|
||
//
|
||
// The construct in the second example (fenced code) does not accept lazy
|
||
// lines, so it marked itself as done at the end of its first line, and
|
||
// then the content construct parses `d`.
|
||
// Most constructs in markdown match on the first line: if the first line
|
||
// forms a construct, a non-lazy line can’t “unmake” it.
|
||
//
|
||
// The construct in the third example is potentially a GFM table, and
|
||
// those are *weird*.
|
||
// It *could* be a table, from the first line, if the following line
|
||
// matches a condition.
|
||
// In this case, that second line is lazy, which “unmakes” the first line
|
||
// and turns the whole into one content block.
|
||
//
|
||
// We’ve now parsed the non-lazy and the lazy line, and can figure out
|
||
// whether the lazy line started a new flow block.
|
||
// If it did, we exit the current containers between the two flow blocks.
|
||
if (self.parser.lazy[token.start.line]) {
|
||
var index = childFlow.events.length;
|
||
while (index--) {
|
||
if (
|
||
// The token starts before the line ending…
|
||
childFlow.events[index][1].start.offset < lineStartOffset && (
|
||
// …and either is not ended yet…
|
||
!childFlow.events[index][1].end ||
|
||
// …or ends after it.
|
||
childFlow.events[index][1].end.offset > lineStartOffset)) {
|
||
// Exit: there’s still something open, which means it’s a lazy line
|
||
// part of something.
|
||
return;
|
||
}
|
||
}
|
||
|
||
// Note: this algorithm for moving events around is similar to the
|
||
// algorithm when closing flow in `documentContinue`.
|
||
var indexBeforeExits = self.events.length;
|
||
var indexBeforeFlow = indexBeforeExits;
|
||
/** @type {boolean | undefined} */
|
||
var seen;
|
||
/** @type {Point | undefined} */
|
||
var point;
|
||
|
||
// Find the previous chunk (the one before the lazy line).
|
||
while (indexBeforeFlow--) {
|
||
if (self.events[indexBeforeFlow][0] === 'exit' && self.events[indexBeforeFlow][1].type === 'chunkFlow') {
|
||
if (seen) {
|
||
point = self.events[indexBeforeFlow][1].end;
|
||
break;
|
||
}
|
||
seen = true;
|
||
}
|
||
}
|
||
exitContainers(continued);
|
||
|
||
// Fix positions.
|
||
index = indexBeforeExits;
|
||
while (index < self.events.length) {
|
||
self.events[index][1].end = Object.assign({}, point);
|
||
index++;
|
||
}
|
||
|
||
// Inject the exits earlier (they’re still also at the end).
|
||
splice(self.events, indexBeforeFlow + 1, 0, self.events.slice(indexBeforeExits));
|
||
|
||
// Discard the duplicate exits.
|
||
self.events.length = index;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @param {number} size
|
||
* @returns {void}
|
||
*/
|
||
function exitContainers(size) {
|
||
var index = stack.length;
|
||
|
||
// Exit open containers.
|
||
while (index-- > size) {
|
||
var entry = stack[index];
|
||
self.containerState = entry[1];
|
||
entry[0].exit.call(self, effects);
|
||
}
|
||
stack.length = size;
|
||
}
|
||
function closeFlow() {
|
||
childFlow.write([null]);
|
||
childToken = undefined;
|
||
childFlow = undefined;
|
||
self.containerState._closeFlow = undefined;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Tokenizer}
|
||
*/
|
||
function tokenizeContainer(effects, ok, nok) {
|
||
// Always populated by defaults.
|
||
|
||
return factorySpace(effects, effects.attempt(this.parser.constructs.document, ok, nok), 'linePrefix', this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-core-commonmark@1.1.0/node_modules/micromark-core-commonmark/lib/blank-line.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Construct} Construct
|
||
* @typedef {import('micromark-util-types').State} State
|
||
* @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
|
||
* @typedef {import('micromark-util-types').Tokenizer} Tokenizer
|
||
*/
|
||
|
||
|
||
|
||
/** @type {Construct} */
|
||
var blankLine = {
|
||
tokenize: tokenizeBlankLine,
|
||
partial: true
|
||
};
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Tokenizer}
|
||
*/
|
||
function tokenizeBlankLine(effects, ok, nok) {
|
||
return start;
|
||
|
||
/**
|
||
* Start of blank line.
|
||
*
|
||
* > 👉 **Note**: `␠` represents a space character.
|
||
*
|
||
* ```markdown
|
||
* > | ␠␠␊
|
||
* ^
|
||
* > | ␊
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function start(code) {
|
||
return markdownSpace(code) ? factorySpace(effects, after, 'linePrefix')(code) : after(code);
|
||
}
|
||
|
||
/**
|
||
* At eof/eol, after optional whitespace.
|
||
*
|
||
* > 👉 **Note**: `␠` represents a space character.
|
||
*
|
||
* ```markdown
|
||
* > | ␠␠␊
|
||
* ^
|
||
* > | ␊
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function after(code) {
|
||
return code === null || markdownLineEnding(code) ? ok(code) : nok(code);
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-util-subtokenize@1.1.0/node_modules/micromark-util-subtokenize/index.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Chunk} Chunk
|
||
* @typedef {import('micromark-util-types').Event} Event
|
||
* @typedef {import('micromark-util-types').Token} Token
|
||
*/
|
||
|
||
|
||
/**
|
||
* Tokenize subcontent.
|
||
*
|
||
* @param {Array<Event>} events
|
||
* List of events.
|
||
* @returns {boolean}
|
||
* Whether subtokens were found.
|
||
*/
|
||
function subtokenize(events) {
|
||
/** @type {Record<string, number>} */
|
||
var jumps = {};
|
||
var index = -1;
|
||
/** @type {Event} */
|
||
var event;
|
||
/** @type {number | undefined} */
|
||
var lineIndex;
|
||
/** @type {number} */
|
||
var otherIndex;
|
||
/** @type {Event} */
|
||
var otherEvent;
|
||
/** @type {Array<Event>} */
|
||
var parameters;
|
||
/** @type {Array<Event>} */
|
||
var subevents;
|
||
/** @type {boolean | undefined} */
|
||
var more;
|
||
while (++index < events.length) {
|
||
while (index in jumps) {
|
||
index = jumps[index];
|
||
}
|
||
event = events[index];
|
||
|
||
// Add a hook for the GFM tasklist extension, which needs to know if text
|
||
// is in the first content of a list item.
|
||
if (index && event[1].type === 'chunkFlow' && events[index - 1][1].type === 'listItemPrefix') {
|
||
subevents = event[1]._tokenizer.events;
|
||
otherIndex = 0;
|
||
if (otherIndex < subevents.length && subevents[otherIndex][1].type === 'lineEndingBlank') {
|
||
otherIndex += 2;
|
||
}
|
||
if (otherIndex < subevents.length && subevents[otherIndex][1].type === 'content') {
|
||
while (++otherIndex < subevents.length) {
|
||
if (subevents[otherIndex][1].type === 'content') {
|
||
break;
|
||
}
|
||
if (subevents[otherIndex][1].type === 'chunkText') {
|
||
subevents[otherIndex][1]._isInFirstContentOfListItem = true;
|
||
otherIndex++;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
// Enter.
|
||
if (event[0] === 'enter') {
|
||
if (event[1].contentType) {
|
||
Object.assign(jumps, subcontent(events, index));
|
||
index = jumps[index];
|
||
more = true;
|
||
}
|
||
}
|
||
// Exit.
|
||
else if (event[1]._container) {
|
||
otherIndex = index;
|
||
lineIndex = undefined;
|
||
while (otherIndex--) {
|
||
otherEvent = events[otherIndex];
|
||
if (otherEvent[1].type === 'lineEnding' || otherEvent[1].type === 'lineEndingBlank') {
|
||
if (otherEvent[0] === 'enter') {
|
||
if (lineIndex) {
|
||
events[lineIndex][1].type = 'lineEndingBlank';
|
||
}
|
||
otherEvent[1].type = 'lineEnding';
|
||
lineIndex = otherIndex;
|
||
}
|
||
} else {
|
||
break;
|
||
}
|
||
}
|
||
if (lineIndex) {
|
||
// Fix position.
|
||
event[1].end = Object.assign({}, events[lineIndex][1].start);
|
||
|
||
// Switch container exit w/ line endings.
|
||
parameters = events.slice(lineIndex, index);
|
||
parameters.unshift(event);
|
||
splice(events, lineIndex, index - lineIndex + 1, parameters);
|
||
}
|
||
}
|
||
}
|
||
return !more;
|
||
}
|
||
|
||
/**
|
||
* Tokenize embedded tokens.
|
||
*
|
||
* @param {Array<Event>} events
|
||
* @param {number} eventIndex
|
||
* @returns {Record<string, number>}
|
||
*/
|
||
function subcontent(events, eventIndex) {
|
||
var token = events[eventIndex][1];
|
||
var context = events[eventIndex][2];
|
||
var startPosition = eventIndex - 1;
|
||
/** @type {Array<number>} */
|
||
var startPositions = [];
|
||
var tokenizer = token._tokenizer || context.parser[token.contentType](token.start);
|
||
var childEvents = tokenizer.events;
|
||
/** @type {Array<[number, number]>} */
|
||
var jumps = [];
|
||
/** @type {Record<string, number>} */
|
||
var gaps = {};
|
||
/** @type {Array<Chunk>} */
|
||
var stream;
|
||
/** @type {Token | undefined} */
|
||
var previous;
|
||
var index = -1;
|
||
/** @type {Token | undefined} */
|
||
var current = token;
|
||
var adjust = 0;
|
||
var start = 0;
|
||
var breaks = [start];
|
||
|
||
// Loop forward through the linked tokens to pass them in order to the
|
||
// subtokenizer.
|
||
while (current) {
|
||
// Find the position of the event for this token.
|
||
while (events[++startPosition][1] !== current) {
|
||
// Empty.
|
||
}
|
||
startPositions.push(startPosition);
|
||
if (!current._tokenizer) {
|
||
stream = context.sliceStream(current);
|
||
if (!current.next) {
|
||
stream.push(null);
|
||
}
|
||
if (previous) {
|
||
tokenizer.defineSkip(current.start);
|
||
}
|
||
if (current._isInFirstContentOfListItem) {
|
||
tokenizer._gfmTasklistFirstContentOfListItem = true;
|
||
}
|
||
tokenizer.write(stream);
|
||
if (current._isInFirstContentOfListItem) {
|
||
tokenizer._gfmTasklistFirstContentOfListItem = undefined;
|
||
}
|
||
}
|
||
|
||
// Unravel the next token.
|
||
previous = current;
|
||
current = current.next;
|
||
}
|
||
|
||
// Now, loop back through all events (and linked tokens), to figure out which
|
||
// parts belong where.
|
||
current = token;
|
||
while (++index < childEvents.length) {
|
||
if (
|
||
// Find a void token that includes a break.
|
||
childEvents[index][0] === 'exit' && childEvents[index - 1][0] === 'enter' && childEvents[index][1].type === childEvents[index - 1][1].type && childEvents[index][1].start.line !== childEvents[index][1].end.line) {
|
||
start = index + 1;
|
||
breaks.push(start);
|
||
// Help GC.
|
||
current._tokenizer = undefined;
|
||
current.previous = undefined;
|
||
current = current.next;
|
||
}
|
||
}
|
||
|
||
// Help GC.
|
||
tokenizer.events = [];
|
||
|
||
// If there’s one more token (which is the cases for lines that end in an
|
||
// EOF), that’s perfect: the last point we found starts it.
|
||
// If there isn’t then make sure any remaining content is added to it.
|
||
if (current) {
|
||
// Help GC.
|
||
current._tokenizer = undefined;
|
||
current.previous = undefined;
|
||
} else {
|
||
breaks.pop();
|
||
}
|
||
|
||
// Now splice the events from the subtokenizer into the current events,
|
||
// moving back to front so that splice indices aren’t affected.
|
||
index = breaks.length;
|
||
while (index--) {
|
||
var slice = childEvents.slice(breaks[index], breaks[index + 1]);
|
||
var _start = startPositions.pop();
|
||
jumps.unshift([_start, _start + slice.length - 1]);
|
||
splice(events, _start, 2, slice);
|
||
}
|
||
index = -1;
|
||
while (++index < jumps.length) {
|
||
gaps[adjust + jumps[index][0]] = adjust + jumps[index][1];
|
||
adjust += jumps[index][1] - jumps[index][0] - 1;
|
||
}
|
||
return gaps;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-core-commonmark@1.1.0/node_modules/micromark-core-commonmark/lib/content.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Construct} Construct
|
||
* @typedef {import('micromark-util-types').Resolver} Resolver
|
||
* @typedef {import('micromark-util-types').State} State
|
||
* @typedef {import('micromark-util-types').Token} Token
|
||
* @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
|
||
* @typedef {import('micromark-util-types').Tokenizer} Tokenizer
|
||
*/
|
||
|
||
|
||
|
||
|
||
/**
|
||
* No name because it must not be turned off.
|
||
* @type {Construct}
|
||
*/
|
||
var content_content = {
|
||
tokenize: tokenizeContent,
|
||
resolve: resolveContent
|
||
};
|
||
|
||
/** @type {Construct} */
|
||
var continuationConstruct = {
|
||
tokenize: tokenizeContinuation,
|
||
partial: true
|
||
};
|
||
|
||
/**
|
||
* Content is transparent: it’s parsed right now. That way, definitions are also
|
||
* parsed right now: before text in paragraphs (specifically, media) are parsed.
|
||
*
|
||
* @type {Resolver}
|
||
*/
|
||
function resolveContent(events) {
|
||
subtokenize(events);
|
||
return events;
|
||
}
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Tokenizer}
|
||
*/
|
||
function tokenizeContent(effects, ok) {
|
||
/** @type {Token | undefined} */
|
||
var previous;
|
||
return chunkStart;
|
||
|
||
/**
|
||
* Before a content chunk.
|
||
*
|
||
* ```markdown
|
||
* > | abc
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function chunkStart(code) {
|
||
effects.enter('content');
|
||
previous = effects.enter('chunkContent', {
|
||
contentType: 'content'
|
||
});
|
||
return chunkInside(code);
|
||
}
|
||
|
||
/**
|
||
* In a content chunk.
|
||
*
|
||
* ```markdown
|
||
* > | abc
|
||
* ^^^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function chunkInside(code) {
|
||
if (code === null) {
|
||
return contentEnd(code);
|
||
}
|
||
|
||
// To do: in `markdown-rs`, each line is parsed on its own, and everything
|
||
// is stitched together resolving.
|
||
if (markdownLineEnding(code)) {
|
||
return effects.check(continuationConstruct, contentContinue, contentEnd)(code);
|
||
}
|
||
|
||
// Data.
|
||
effects.consume(code);
|
||
return chunkInside;
|
||
}
|
||
|
||
/**
|
||
*
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function contentEnd(code) {
|
||
effects.exit('chunkContent');
|
||
effects.exit('content');
|
||
return ok(code);
|
||
}
|
||
|
||
/**
|
||
*
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function contentContinue(code) {
|
||
effects.consume(code);
|
||
effects.exit('chunkContent');
|
||
previous.next = effects.enter('chunkContent', {
|
||
contentType: 'content',
|
||
previous: previous
|
||
});
|
||
previous = previous.next;
|
||
return chunkInside;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Tokenizer}
|
||
*/
|
||
function tokenizeContinuation(effects, ok, nok) {
|
||
var self = this;
|
||
return startLookahead;
|
||
|
||
/**
|
||
*
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function startLookahead(code) {
|
||
effects.exit('chunkContent');
|
||
effects.enter('lineEnding');
|
||
effects.consume(code);
|
||
effects.exit('lineEnding');
|
||
return factorySpace(effects, prefixed, 'linePrefix');
|
||
}
|
||
|
||
/**
|
||
*
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function prefixed(code) {
|
||
if (code === null || markdownLineEnding(code)) {
|
||
return nok(code);
|
||
}
|
||
|
||
// Always populated by defaults.
|
||
|
||
var tail = self.events[self.events.length - 1];
|
||
if (!self.parser.constructs.disable.null.includes('codeIndented') && tail && tail[1].type === 'linePrefix' && tail[2].sliceSerialize(tail[1], true).length >= 4) {
|
||
return ok(code);
|
||
}
|
||
return effects.interrupt(self.parser.constructs.flow, nok, ok)(code);
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark@3.2.0/node_modules/micromark/lib/initialize/flow.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct
|
||
* @typedef {import('micromark-util-types').Initializer} Initializer
|
||
* @typedef {import('micromark-util-types').State} State
|
||
* @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
|
||
*/
|
||
|
||
|
||
|
||
|
||
/** @type {InitialConstruct} */
|
||
var flow = {
|
||
tokenize: initializeFlow
|
||
};
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Initializer}
|
||
*/
|
||
function initializeFlow(effects) {
|
||
var self = this;
|
||
var initial = effects.attempt(
|
||
// Try to parse a blank line.
|
||
blankLine, atBlankEnding,
|
||
// Try to parse initial flow (essentially, only code).
|
||
effects.attempt(this.parser.constructs.flowInitial, afterConstruct, factorySpace(effects, effects.attempt(this.parser.constructs.flow, afterConstruct, effects.attempt(content_content, afterConstruct)), 'linePrefix')));
|
||
return initial;
|
||
|
||
/** @type {State} */
|
||
function atBlankEnding(code) {
|
||
if (code === null) {
|
||
effects.consume(code);
|
||
return;
|
||
}
|
||
effects.enter('lineEndingBlank');
|
||
effects.consume(code);
|
||
effects.exit('lineEndingBlank');
|
||
self.currentConstruct = undefined;
|
||
return initial;
|
||
}
|
||
|
||
/** @type {State} */
|
||
function afterConstruct(code) {
|
||
if (code === null) {
|
||
effects.consume(code);
|
||
return;
|
||
}
|
||
effects.enter('lineEnding');
|
||
effects.consume(code);
|
||
effects.exit('lineEnding');
|
||
self.currentConstruct = undefined;
|
||
return initial;
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark@3.2.0/node_modules/micromark/lib/initialize/text.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Code} Code
|
||
* @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct
|
||
* @typedef {import('micromark-util-types').Initializer} Initializer
|
||
* @typedef {import('micromark-util-types').Resolver} Resolver
|
||
* @typedef {import('micromark-util-types').State} State
|
||
* @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
|
||
*/
|
||
|
||
var resolver = {
|
||
resolveAll: createResolver()
|
||
};
|
||
var string = initializeFactory('string');
|
||
var text_text = initializeFactory('text');
|
||
|
||
/**
|
||
* @param {'string' | 'text'} field
|
||
* @returns {InitialConstruct}
|
||
*/
|
||
function initializeFactory(field) {
|
||
return {
|
||
tokenize: initializeText,
|
||
resolveAll: createResolver(field === 'text' ? resolveAllLineSuffixes : undefined)
|
||
};
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Initializer}
|
||
*/
|
||
function initializeText(effects) {
|
||
var self = this;
|
||
var constructs = this.parser.constructs[field];
|
||
var text = effects.attempt(constructs, start, notText);
|
||
return start;
|
||
|
||
/** @type {State} */
|
||
function start(code) {
|
||
return atBreak(code) ? text(code) : notText(code);
|
||
}
|
||
|
||
/** @type {State} */
|
||
function notText(code) {
|
||
if (code === null) {
|
||
effects.consume(code);
|
||
return;
|
||
}
|
||
effects.enter('data');
|
||
effects.consume(code);
|
||
return data;
|
||
}
|
||
|
||
/** @type {State} */
|
||
function data(code) {
|
||
if (atBreak(code)) {
|
||
effects.exit('data');
|
||
return text(code);
|
||
}
|
||
|
||
// Data.
|
||
effects.consume(code);
|
||
return data;
|
||
}
|
||
|
||
/**
|
||
* @param {Code} code
|
||
* @returns {boolean}
|
||
*/
|
||
function atBreak(code) {
|
||
if (code === null) {
|
||
return true;
|
||
}
|
||
var list = constructs[code];
|
||
var index = -1;
|
||
if (list) {
|
||
// Always populated by defaults.
|
||
|
||
while (++index < list.length) {
|
||
var item = list[index];
|
||
if (!item.previous || item.previous.call(self, self.previous)) {
|
||
return true;
|
||
}
|
||
}
|
||
}
|
||
return false;
|
||
}
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @param {Resolver | undefined} [extraResolver]
|
||
* @returns {Resolver}
|
||
*/
|
||
function createResolver(extraResolver) {
|
||
return resolveAllText;
|
||
|
||
/** @type {Resolver} */
|
||
function resolveAllText(events, context) {
|
||
var index = -1;
|
||
/** @type {number | undefined} */
|
||
var enter;
|
||
|
||
// A rather boring computation (to merge adjacent `data` events) which
|
||
// improves mm performance by 29%.
|
||
while (++index <= events.length) {
|
||
if (enter === undefined) {
|
||
if (events[index] && events[index][1].type === 'data') {
|
||
enter = index;
|
||
index++;
|
||
}
|
||
} else if (!events[index] || events[index][1].type !== 'data') {
|
||
// Don’t do anything if there is one data token.
|
||
if (index !== enter + 2) {
|
||
events[enter][1].end = events[index - 1][1].end;
|
||
events.splice(enter + 2, index - enter - 2);
|
||
index = enter + 2;
|
||
}
|
||
enter = undefined;
|
||
}
|
||
}
|
||
return extraResolver ? extraResolver(events, context) : events;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* A rather ugly set of instructions which again looks at chunks in the input
|
||
* stream.
|
||
* The reason to do this here is that it is *much* faster to parse in reverse.
|
||
* And that we can’t hook into `null` to split the line suffix before an EOF.
|
||
* To do: figure out if we can make this into a clean utility, or even in core.
|
||
* As it will be useful for GFMs literal autolink extension (and maybe even
|
||
* tables?)
|
||
*
|
||
* @type {Resolver}
|
||
*/
|
||
function resolveAllLineSuffixes(events, context) {
|
||
var eventIndex = 0; // Skip first.
|
||
|
||
while (++eventIndex <= events.length) {
|
||
if ((eventIndex === events.length || events[eventIndex][1].type === 'lineEnding') && events[eventIndex - 1][1].type === 'data') {
|
||
var data = events[eventIndex - 1][1];
|
||
var chunks = context.sliceStream(data);
|
||
var index = chunks.length;
|
||
var bufferIndex = -1;
|
||
var size = 0;
|
||
/** @type {boolean | undefined} */
|
||
var tabs = void 0;
|
||
while (index--) {
|
||
var chunk = chunks[index];
|
||
if (typeof chunk === 'string') {
|
||
bufferIndex = chunk.length;
|
||
while (chunk.charCodeAt(bufferIndex - 1) === 32) {
|
||
size++;
|
||
bufferIndex--;
|
||
}
|
||
if (bufferIndex) break;
|
||
bufferIndex = -1;
|
||
}
|
||
// Number
|
||
else if (chunk === -2) {
|
||
tabs = true;
|
||
size++;
|
||
} else if (chunk === -1) {
|
||
// Empty
|
||
} else {
|
||
// Replacement character, exit.
|
||
index++;
|
||
break;
|
||
}
|
||
}
|
||
if (size) {
|
||
var token = {
|
||
type: eventIndex === events.length || tabs || size < 2 ? 'lineSuffix' : 'hardBreakTrailing',
|
||
start: {
|
||
line: data.end.line,
|
||
column: data.end.column - size,
|
||
offset: data.end.offset - size,
|
||
_index: data.start._index + index,
|
||
_bufferIndex: index ? bufferIndex : data.start._bufferIndex + bufferIndex
|
||
},
|
||
end: Object.assign({}, data.end)
|
||
};
|
||
data.end = Object.assign({}, token.start);
|
||
if (data.start.offset === data.end.offset) {
|
||
Object.assign(data, token);
|
||
} else {
|
||
events.splice(eventIndex, 0, ['enter', token, context], ['exit', token, context]);
|
||
eventIndex += 2;
|
||
}
|
||
}
|
||
eventIndex++;
|
||
}
|
||
}
|
||
return events;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-util-resolve-all@1.1.0/node_modules/micromark-util-resolve-all/index.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Event} Event
|
||
* @typedef {import('micromark-util-types').Resolver} Resolver
|
||
* @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
|
||
*/
|
||
|
||
/**
|
||
* Call all `resolveAll`s.
|
||
*
|
||
* @param {Array<{resolveAll?: Resolver | undefined}>} constructs
|
||
* List of constructs, optionally with `resolveAll`s.
|
||
* @param {Array<Event>} events
|
||
* List of events.
|
||
* @param {TokenizeContext} context
|
||
* Context used by `tokenize`.
|
||
* @returns {Array<Event>}
|
||
* Changed events.
|
||
*/
|
||
function resolveAll(constructs, events, context) {
|
||
/** @type {Array<Resolver>} */
|
||
var called = [];
|
||
var index = -1;
|
||
while (++index < constructs.length) {
|
||
var resolve = constructs[index].resolveAll;
|
||
if (resolve && !called.includes(resolve)) {
|
||
events = resolve(events, context);
|
||
called.push(resolve);
|
||
}
|
||
}
|
||
return events;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark@3.2.0/node_modules/micromark/lib/create-tokenizer.js
|
||
|
||
/**
|
||
* @typedef {import('micromark-util-types').Chunk} Chunk
|
||
* @typedef {import('micromark-util-types').Code} Code
|
||
* @typedef {import('micromark-util-types').Construct} Construct
|
||
* @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord
|
||
* @typedef {import('micromark-util-types').Effects} Effects
|
||
* @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct
|
||
* @typedef {import('micromark-util-types').ParseContext} ParseContext
|
||
* @typedef {import('micromark-util-types').Point} Point
|
||
* @typedef {import('micromark-util-types').State} State
|
||
* @typedef {import('micromark-util-types').Token} Token
|
||
* @typedef {import('micromark-util-types').TokenType} TokenType
|
||
* @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
|
||
*/
|
||
|
||
/**
|
||
* @callback Restore
|
||
* @returns {void}
|
||
*
|
||
* @typedef Info
|
||
* @property {Restore} restore
|
||
* @property {number} from
|
||
*
|
||
* @callback ReturnHandle
|
||
* Handle a successful run.
|
||
* @param {Construct} construct
|
||
* @param {Info} info
|
||
* @returns {void}
|
||
*/
|
||
|
||
|
||
|
||
|
||
/**
|
||
* Create a tokenizer.
|
||
* Tokenizers deal with one type of data (e.g., containers, flow, text).
|
||
* The parser is the object dealing with it all.
|
||
* `initialize` works like other constructs, except that only its `tokenize`
|
||
* function is used, in which case it doesn’t receive an `ok` or `nok`.
|
||
* `from` can be given to set the point before the first character, although
|
||
* when further lines are indented, they must be set with `defineSkip`.
|
||
*
|
||
* @param {ParseContext} parser
|
||
* @param {InitialConstruct} initialize
|
||
* @param {Omit<Point, '_bufferIndex' | '_index'> | undefined} [from]
|
||
* @returns {TokenizeContext}
|
||
*/
|
||
function createTokenizer(parser, initialize, from) {
|
||
/** @type {Point} */
|
||
var point = Object.assign(from ? Object.assign({}, from) : {
|
||
line: 1,
|
||
column: 1,
|
||
offset: 0
|
||
}, {
|
||
_index: 0,
|
||
_bufferIndex: -1
|
||
});
|
||
/** @type {Record<string, number>} */
|
||
var columnStart = {};
|
||
/** @type {Array<Construct>} */
|
||
var resolveAllConstructs = [];
|
||
/** @type {Array<Chunk>} */
|
||
var chunks = [];
|
||
/** @type {Array<Token>} */
|
||
var stack = [];
|
||
/** @type {boolean | undefined} */
|
||
var consumed = true;
|
||
|
||
/**
|
||
* Tools used for tokenizing.
|
||
*
|
||
* @type {Effects}
|
||
*/
|
||
var effects = {
|
||
consume: consume,
|
||
enter: enter,
|
||
exit: exit,
|
||
attempt: constructFactory(onsuccessfulconstruct),
|
||
check: constructFactory(onsuccessfulcheck),
|
||
interrupt: constructFactory(onsuccessfulcheck, {
|
||
interrupt: true
|
||
})
|
||
};
|
||
|
||
/**
|
||
* State and tools for resolving and serializing.
|
||
*
|
||
* @type {TokenizeContext}
|
||
*/
|
||
var context = {
|
||
previous: null,
|
||
code: null,
|
||
containerState: {},
|
||
events: [],
|
||
parser: parser,
|
||
sliceStream: sliceStream,
|
||
sliceSerialize: sliceSerialize,
|
||
now: now,
|
||
defineSkip: defineSkip,
|
||
write: write
|
||
};
|
||
|
||
/**
|
||
* The state function.
|
||
*
|
||
* @type {State | void}
|
||
*/
|
||
var state = initialize.tokenize.call(context, effects);
|
||
|
||
/**
|
||
* Track which character we expect to be consumed, to catch bugs.
|
||
*
|
||
* @type {Code}
|
||
*/
|
||
var expectedCode;
|
||
if (initialize.resolveAll) {
|
||
resolveAllConstructs.push(initialize);
|
||
}
|
||
return context;
|
||
|
||
/** @type {TokenizeContext['write']} */
|
||
function write(slice) {
|
||
chunks = push(chunks, slice);
|
||
main();
|
||
|
||
// Exit if we’re not done, resolve might change stuff.
|
||
if (chunks[chunks.length - 1] !== null) {
|
||
return [];
|
||
}
|
||
addResult(initialize, 0);
|
||
|
||
// Otherwise, resolve, and exit.
|
||
context.events = resolveAll(resolveAllConstructs, context.events, context);
|
||
return context.events;
|
||
}
|
||
|
||
//
|
||
// Tools.
|
||
//
|
||
|
||
/** @type {TokenizeContext['sliceSerialize']} */
|
||
function sliceSerialize(token, expandTabs) {
|
||
return serializeChunks(sliceStream(token), expandTabs);
|
||
}
|
||
|
||
/** @type {TokenizeContext['sliceStream']} */
|
||
function sliceStream(token) {
|
||
return sliceChunks(chunks, token);
|
||
}
|
||
|
||
/** @type {TokenizeContext['now']} */
|
||
function now() {
|
||
// This is a hot path, so we clone manually instead of `Object.assign({}, point)`
|
||
var _point = point,
|
||
line = _point.line,
|
||
column = _point.column,
|
||
offset = _point.offset,
|
||
_index = _point._index,
|
||
_bufferIndex = _point._bufferIndex;
|
||
return {
|
||
line: line,
|
||
column: column,
|
||
offset: offset,
|
||
_index: _index,
|
||
_bufferIndex: _bufferIndex
|
||
};
|
||
}
|
||
|
||
/** @type {TokenizeContext['defineSkip']} */
|
||
function defineSkip(value) {
|
||
columnStart[value.line] = value.column;
|
||
accountForPotentialSkip();
|
||
}
|
||
|
||
//
|
||
// State management.
|
||
//
|
||
|
||
/**
|
||
* Main loop (note that `_index` and `_bufferIndex` in `point` are modified by
|
||
* `consume`).
|
||
* Here is where we walk through the chunks, which either include strings of
|
||
* several characters, or numerical character codes.
|
||
* The reason to do this in a loop instead of a call is so the stack can
|
||
* drain.
|
||
*
|
||
* @returns {void}
|
||
*/
|
||
function main() {
|
||
/** @type {number} */
|
||
var chunkIndex;
|
||
while (point._index < chunks.length) {
|
||
var chunk = chunks[point._index];
|
||
|
||
// If we’re in a buffer chunk, loop through it.
|
||
if (typeof chunk === 'string') {
|
||
chunkIndex = point._index;
|
||
if (point._bufferIndex < 0) {
|
||
point._bufferIndex = 0;
|
||
}
|
||
while (point._index === chunkIndex && point._bufferIndex < chunk.length) {
|
||
go(chunk.charCodeAt(point._bufferIndex));
|
||
}
|
||
} else {
|
||
go(chunk);
|
||
}
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Deal with one code.
|
||
*
|
||
* @param {Code} code
|
||
* @returns {void}
|
||
*/
|
||
function go(code) {
|
||
consumed = undefined;
|
||
expectedCode = code;
|
||
state = state(code);
|
||
}
|
||
|
||
/** @type {Effects['consume']} */
|
||
function consume(code) {
|
||
if (markdownLineEnding(code)) {
|
||
point.line++;
|
||
point.column = 1;
|
||
point.offset += code === -3 ? 2 : 1;
|
||
accountForPotentialSkip();
|
||
} else if (code !== -1) {
|
||
point.column++;
|
||
point.offset++;
|
||
}
|
||
|
||
// Not in a string chunk.
|
||
if (point._bufferIndex < 0) {
|
||
point._index++;
|
||
} else {
|
||
point._bufferIndex++;
|
||
|
||
// At end of string chunk.
|
||
// @ts-expect-error Points w/ non-negative `_bufferIndex` reference
|
||
// strings.
|
||
if (point._bufferIndex === chunks[point._index].length) {
|
||
point._bufferIndex = -1;
|
||
point._index++;
|
||
}
|
||
}
|
||
|
||
// Expose the previous character.
|
||
context.previous = code;
|
||
|
||
// Mark as consumed.
|
||
consumed = true;
|
||
}
|
||
|
||
/** @type {Effects['enter']} */
|
||
function enter(type, fields) {
|
||
/** @type {Token} */
|
||
// @ts-expect-error Patch instead of assign required fields to help GC.
|
||
var token = fields || {};
|
||
token.type = type;
|
||
token.start = now();
|
||
context.events.push(['enter', token, context]);
|
||
stack.push(token);
|
||
return token;
|
||
}
|
||
|
||
/** @type {Effects['exit']} */
|
||
function exit(type) {
|
||
var token = stack.pop();
|
||
token.end = now();
|
||
context.events.push(['exit', token, context]);
|
||
return token;
|
||
}
|
||
|
||
/**
|
||
* Use results.
|
||
*
|
||
* @type {ReturnHandle}
|
||
*/
|
||
function onsuccessfulconstruct(construct, info) {
|
||
addResult(construct, info.from);
|
||
}
|
||
|
||
/**
|
||
* Discard results.
|
||
*
|
||
* @type {ReturnHandle}
|
||
*/
|
||
function onsuccessfulcheck(_, info) {
|
||
info.restore();
|
||
}
|
||
|
||
/**
|
||
* Factory to attempt/check/interrupt.
|
||
*
|
||
* @param {ReturnHandle} onreturn
|
||
* @param {{interrupt?: boolean | undefined} | undefined} [fields]
|
||
*/
|
||
function constructFactory(onreturn, fields) {
|
||
return hook;
|
||
|
||
/**
|
||
* Handle either an object mapping codes to constructs, a list of
|
||
* constructs, or a single construct.
|
||
*
|
||
* @param {Array<Construct> | Construct | ConstructRecord} constructs
|
||
* @param {State} returnState
|
||
* @param {State | undefined} [bogusState]
|
||
* @returns {State}
|
||
*/
|
||
function hook(constructs, returnState, bogusState) {
|
||
/** @type {Array<Construct>} */
|
||
var listOfConstructs;
|
||
/** @type {number} */
|
||
var constructIndex;
|
||
/** @type {Construct} */
|
||
var currentConstruct;
|
||
/** @type {Info} */
|
||
var info;
|
||
return Array.isArray(constructs) /* c8 ignore next 1 */ ? handleListOfConstructs(constructs) : 'tokenize' in constructs ?
|
||
// @ts-expect-error Looks like a construct.
|
||
handleListOfConstructs([constructs]) : handleMapOfConstructs(constructs);
|
||
|
||
/**
|
||
* Handle a list of construct.
|
||
*
|
||
* @param {ConstructRecord} map
|
||
* @returns {State}
|
||
*/
|
||
function handleMapOfConstructs(map) {
|
||
return start;
|
||
|
||
/** @type {State} */
|
||
function start(code) {
|
||
var def = code !== null && map[code];
|
||
var all = code !== null && map.null;
|
||
var list = [].concat(toConsumableArray_toConsumableArray(Array.isArray(def) ? def : def ? [def] : []), toConsumableArray_toConsumableArray(Array.isArray(all) ? all : all ? [all] : []));
|
||
return handleListOfConstructs(list)(code);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Handle a list of construct.
|
||
*
|
||
* @param {Array<Construct>} list
|
||
* @returns {State}
|
||
*/
|
||
function handleListOfConstructs(list) {
|
||
listOfConstructs = list;
|
||
constructIndex = 0;
|
||
if (list.length === 0) {
|
||
return bogusState;
|
||
}
|
||
return handleConstruct(list[constructIndex]);
|
||
}
|
||
|
||
/**
|
||
* Handle a single construct.
|
||
*
|
||
* @param {Construct} construct
|
||
* @returns {State}
|
||
*/
|
||
function handleConstruct(construct) {
|
||
return start;
|
||
|
||
/** @type {State} */
|
||
function start(code) {
|
||
// To do: not needed to store if there is no bogus state, probably?
|
||
// Currently doesn’t work because `inspect` in document does a check
|
||
// w/o a bogus, which doesn’t make sense. But it does seem to help perf
|
||
// by not storing.
|
||
info = store();
|
||
currentConstruct = construct;
|
||
if (!construct.partial) {
|
||
context.currentConstruct = construct;
|
||
}
|
||
|
||
// Always populated by defaults.
|
||
|
||
if (construct.name && context.parser.constructs.disable.null.includes(construct.name)) {
|
||
return nok(code);
|
||
}
|
||
return construct.tokenize.call(
|
||
// If we do have fields, create an object w/ `context` as its
|
||
// prototype.
|
||
// This allows a “live binding”, which is needed for `interrupt`.
|
||
fields ? Object.assign(Object.create(context), fields) : context, effects, ok, nok)(code);
|
||
}
|
||
}
|
||
|
||
/** @type {State} */
|
||
function ok(code) {
|
||
consumed = true;
|
||
onreturn(currentConstruct, info);
|
||
return returnState;
|
||
}
|
||
|
||
/** @type {State} */
|
||
function nok(code) {
|
||
consumed = true;
|
||
info.restore();
|
||
if (++constructIndex < listOfConstructs.length) {
|
||
return handleConstruct(listOfConstructs[constructIndex]);
|
||
}
|
||
return bogusState;
|
||
}
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @param {Construct} construct
|
||
* @param {number} from
|
||
* @returns {void}
|
||
*/
|
||
function addResult(construct, from) {
|
||
if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {
|
||
resolveAllConstructs.push(construct);
|
||
}
|
||
if (construct.resolve) {
|
||
splice(context.events, from, context.events.length - from, construct.resolve(context.events.slice(from), context));
|
||
}
|
||
if (construct.resolveTo) {
|
||
context.events = construct.resolveTo(context.events, context);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Store state.
|
||
*
|
||
* @returns {Info}
|
||
*/
|
||
function store() {
|
||
var startPoint = now();
|
||
var startPrevious = context.previous;
|
||
var startCurrentConstruct = context.currentConstruct;
|
||
var startEventsIndex = context.events.length;
|
||
var startStack = Array.from(stack);
|
||
return {
|
||
restore: restore,
|
||
from: startEventsIndex
|
||
};
|
||
|
||
/**
|
||
* Restore state.
|
||
*
|
||
* @returns {void}
|
||
*/
|
||
function restore() {
|
||
point = startPoint;
|
||
context.previous = startPrevious;
|
||
context.currentConstruct = startCurrentConstruct;
|
||
context.events.length = startEventsIndex;
|
||
stack = startStack;
|
||
accountForPotentialSkip();
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Move the current point a bit forward in the line when it’s on a column
|
||
* skip.
|
||
*
|
||
* @returns {void}
|
||
*/
|
||
function accountForPotentialSkip() {
|
||
if (point.line in columnStart && point.column < 2) {
|
||
point.column = columnStart[point.line];
|
||
point.offset += columnStart[point.line] - 1;
|
||
}
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Get the chunks from a slice of chunks in the range of a token.
|
||
*
|
||
* @param {Array<Chunk>} chunks
|
||
* @param {Pick<Token, 'end' | 'start'>} token
|
||
* @returns {Array<Chunk>}
|
||
*/
|
||
function sliceChunks(chunks, token) {
|
||
var startIndex = token.start._index;
|
||
var startBufferIndex = token.start._bufferIndex;
|
||
var endIndex = token.end._index;
|
||
var endBufferIndex = token.end._bufferIndex;
|
||
/** @type {Array<Chunk>} */
|
||
var view;
|
||
if (startIndex === endIndex) {
|
||
// @ts-expect-error `_bufferIndex` is used on string chunks.
|
||
view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)];
|
||
} else {
|
||
view = chunks.slice(startIndex, endIndex);
|
||
if (startBufferIndex > -1) {
|
||
var head = view[0];
|
||
if (typeof head === 'string') {
|
||
view[0] = head.slice(startBufferIndex);
|
||
} else {
|
||
view.shift();
|
||
}
|
||
}
|
||
if (endBufferIndex > 0) {
|
||
// @ts-expect-error `_bufferIndex` is used on string chunks.
|
||
view.push(chunks[endIndex].slice(0, endBufferIndex));
|
||
}
|
||
}
|
||
return view;
|
||
}
|
||
|
||
/**
|
||
* Get the string value of a slice of chunks.
|
||
*
|
||
* @param {Array<Chunk>} chunks
|
||
* @param {boolean | undefined} [expandTabs=false]
|
||
* @returns {string}
|
||
*/
|
||
function serializeChunks(chunks, expandTabs) {
|
||
var index = -1;
|
||
/** @type {Array<string>} */
|
||
var result = [];
|
||
/** @type {boolean | undefined} */
|
||
var atTab;
|
||
while (++index < chunks.length) {
|
||
var chunk = chunks[index];
|
||
/** @type {string} */
|
||
var value = void 0;
|
||
if (typeof chunk === 'string') {
|
||
value = chunk;
|
||
} else switch (chunk) {
|
||
case -5:
|
||
{
|
||
value = '\r';
|
||
break;
|
||
}
|
||
case -4:
|
||
{
|
||
value = '\n';
|
||
break;
|
||
}
|
||
case -3:
|
||
{
|
||
value = '\r' + '\n';
|
||
break;
|
||
}
|
||
case -2:
|
||
{
|
||
value = expandTabs ? ' ' : '\t';
|
||
break;
|
||
}
|
||
case -1:
|
||
{
|
||
if (!expandTabs && atTab) continue;
|
||
value = ' ';
|
||
break;
|
||
}
|
||
default:
|
||
{
|
||
// Currently only replacement character.
|
||
value = String.fromCharCode(chunk);
|
||
}
|
||
}
|
||
atTab = chunk === -2;
|
||
result.push(value);
|
||
}
|
||
return result.join('');
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-core-commonmark@1.1.0/node_modules/micromark-core-commonmark/lib/thematic-break.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Code} Code
|
||
* @typedef {import('micromark-util-types').Construct} Construct
|
||
* @typedef {import('micromark-util-types').State} State
|
||
* @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
|
||
* @typedef {import('micromark-util-types').Tokenizer} Tokenizer
|
||
*/
|
||
|
||
|
||
|
||
/** @type {Construct} */
|
||
var thematicBreak = {
|
||
name: 'thematicBreak',
|
||
tokenize: tokenizeThematicBreak
|
||
};
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Tokenizer}
|
||
*/
|
||
function tokenizeThematicBreak(effects, ok, nok) {
|
||
var size = 0;
|
||
/** @type {NonNullable<Code>} */
|
||
var marker;
|
||
return start;
|
||
|
||
/**
|
||
* Start of thematic break.
|
||
*
|
||
* ```markdown
|
||
* > | ***
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function start(code) {
|
||
effects.enter('thematicBreak');
|
||
// To do: parse indent like `markdown-rs`.
|
||
return before(code);
|
||
}
|
||
|
||
/**
|
||
* After optional whitespace, at marker.
|
||
*
|
||
* ```markdown
|
||
* > | ***
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function before(code) {
|
||
marker = code;
|
||
return atBreak(code);
|
||
}
|
||
|
||
/**
|
||
* After something, before something else.
|
||
*
|
||
* ```markdown
|
||
* > | ***
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function atBreak(code) {
|
||
if (code === marker) {
|
||
effects.enter('thematicBreakSequence');
|
||
return sequence(code);
|
||
}
|
||
if (size >= 3 && (code === null || markdownLineEnding(code))) {
|
||
effects.exit('thematicBreak');
|
||
return ok(code);
|
||
}
|
||
return nok(code);
|
||
}
|
||
|
||
/**
|
||
* In sequence.
|
||
*
|
||
* ```markdown
|
||
* > | ***
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function sequence(code) {
|
||
if (code === marker) {
|
||
effects.consume(code);
|
||
size++;
|
||
return sequence;
|
||
}
|
||
effects.exit('thematicBreakSequence');
|
||
return markdownSpace(code) ? factorySpace(effects, atBreak, 'whitespace')(code) : atBreak(code);
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-core-commonmark@1.1.0/node_modules/micromark-core-commonmark/lib/list.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Code} Code
|
||
* @typedef {import('micromark-util-types').Construct} Construct
|
||
* @typedef {import('micromark-util-types').ContainerState} ContainerState
|
||
* @typedef {import('micromark-util-types').Exiter} Exiter
|
||
* @typedef {import('micromark-util-types').State} State
|
||
* @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
|
||
* @typedef {import('micromark-util-types').Tokenizer} Tokenizer
|
||
*/
|
||
|
||
|
||
|
||
|
||
|
||
|
||
/** @type {Construct} */
|
||
var list = {
|
||
name: 'list',
|
||
tokenize: tokenizeListStart,
|
||
continuation: {
|
||
tokenize: tokenizeListContinuation
|
||
},
|
||
exit: tokenizeListEnd
|
||
};
|
||
|
||
/** @type {Construct} */
|
||
var listItemPrefixWhitespaceConstruct = {
|
||
tokenize: tokenizeListItemPrefixWhitespace,
|
||
partial: true
|
||
};
|
||
|
||
/** @type {Construct} */
|
||
var indentConstruct = {
|
||
tokenize: tokenizeIndent,
|
||
partial: true
|
||
};
|
||
|
||
// To do: `markdown-rs` parses list items on their own and later stitches them
|
||
// together.
|
||
|
||
/**
|
||
* @type {Tokenizer}
|
||
* @this {TokenizeContext}
|
||
*/
|
||
function tokenizeListStart(effects, ok, nok) {
|
||
var self = this;
|
||
var tail = self.events[self.events.length - 1];
|
||
var initialSize = tail && tail[1].type === 'linePrefix' ? tail[2].sliceSerialize(tail[1], true).length : 0;
|
||
var size = 0;
|
||
return start;
|
||
|
||
/** @type {State} */
|
||
function start(code) {
|
||
var kind = self.containerState.type || (code === 42 || code === 43 || code === 45 ? 'listUnordered' : 'listOrdered');
|
||
if (kind === 'listUnordered' ? !self.containerState.marker || code === self.containerState.marker : asciiDigit(code)) {
|
||
if (!self.containerState.type) {
|
||
self.containerState.type = kind;
|
||
effects.enter(kind, {
|
||
_container: true
|
||
});
|
||
}
|
||
if (kind === 'listUnordered') {
|
||
effects.enter('listItemPrefix');
|
||
return code === 42 || code === 45 ? effects.check(thematicBreak, nok, atMarker)(code) : atMarker(code);
|
||
}
|
||
if (!self.interrupt || code === 49) {
|
||
effects.enter('listItemPrefix');
|
||
effects.enter('listItemValue');
|
||
return inside(code);
|
||
}
|
||
}
|
||
return nok(code);
|
||
}
|
||
|
||
/** @type {State} */
|
||
function inside(code) {
|
||
if (asciiDigit(code) && ++size < 10) {
|
||
effects.consume(code);
|
||
return inside;
|
||
}
|
||
if ((!self.interrupt || size < 2) && (self.containerState.marker ? code === self.containerState.marker : code === 41 || code === 46)) {
|
||
effects.exit('listItemValue');
|
||
return atMarker(code);
|
||
}
|
||
return nok(code);
|
||
}
|
||
|
||
/**
|
||
* @type {State}
|
||
**/
|
||
function atMarker(code) {
|
||
effects.enter('listItemMarker');
|
||
effects.consume(code);
|
||
effects.exit('listItemMarker');
|
||
self.containerState.marker = self.containerState.marker || code;
|
||
return effects.check(blankLine,
|
||
// Can’t be empty when interrupting.
|
||
self.interrupt ? nok : onBlank, effects.attempt(listItemPrefixWhitespaceConstruct, endOfPrefix, otherPrefix));
|
||
}
|
||
|
||
/** @type {State} */
|
||
function onBlank(code) {
|
||
self.containerState.initialBlankLine = true;
|
||
initialSize++;
|
||
return endOfPrefix(code);
|
||
}
|
||
|
||
/** @type {State} */
|
||
function otherPrefix(code) {
|
||
if (markdownSpace(code)) {
|
||
effects.enter('listItemPrefixWhitespace');
|
||
effects.consume(code);
|
||
effects.exit('listItemPrefixWhitespace');
|
||
return endOfPrefix;
|
||
}
|
||
return nok(code);
|
||
}
|
||
|
||
/** @type {State} */
|
||
function endOfPrefix(code) {
|
||
self.containerState.size = initialSize + self.sliceSerialize(effects.exit('listItemPrefix'), true).length;
|
||
return ok(code);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @type {Tokenizer}
|
||
* @this {TokenizeContext}
|
||
*/
|
||
function tokenizeListContinuation(effects, ok, nok) {
|
||
var self = this;
|
||
self.containerState._closeFlow = undefined;
|
||
return effects.check(blankLine, onBlank, notBlank);
|
||
|
||
/** @type {State} */
|
||
function onBlank(code) {
|
||
self.containerState.furtherBlankLines = self.containerState.furtherBlankLines || self.containerState.initialBlankLine;
|
||
|
||
// We have a blank line.
|
||
// Still, try to consume at most the items size.
|
||
return factorySpace(effects, ok, 'listItemIndent', self.containerState.size + 1)(code);
|
||
}
|
||
|
||
/** @type {State} */
|
||
function notBlank(code) {
|
||
if (self.containerState.furtherBlankLines || !markdownSpace(code)) {
|
||
self.containerState.furtherBlankLines = undefined;
|
||
self.containerState.initialBlankLine = undefined;
|
||
return notInCurrentItem(code);
|
||
}
|
||
self.containerState.furtherBlankLines = undefined;
|
||
self.containerState.initialBlankLine = undefined;
|
||
return effects.attempt(indentConstruct, ok, notInCurrentItem)(code);
|
||
}
|
||
|
||
/** @type {State} */
|
||
function notInCurrentItem(code) {
|
||
// While we do continue, we signal that the flow should be closed.
|
||
self.containerState._closeFlow = true;
|
||
// As we’re closing flow, we’re no longer interrupting.
|
||
self.interrupt = undefined;
|
||
// Always populated by defaults.
|
||
|
||
return factorySpace(effects, effects.attempt(list, ok, nok), 'linePrefix', self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @type {Tokenizer}
|
||
* @this {TokenizeContext}
|
||
*/
|
||
function tokenizeIndent(effects, ok, nok) {
|
||
var self = this;
|
||
return factorySpace(effects, afterPrefix, 'listItemIndent', self.containerState.size + 1);
|
||
|
||
/** @type {State} */
|
||
function afterPrefix(code) {
|
||
var tail = self.events[self.events.length - 1];
|
||
return tail && tail[1].type === 'listItemIndent' && tail[2].sliceSerialize(tail[1], true).length === self.containerState.size ? ok(code) : nok(code);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @type {Exiter}
|
||
* @this {TokenizeContext}
|
||
*/
|
||
function tokenizeListEnd(effects) {
|
||
effects.exit(this.containerState.type);
|
||
}
|
||
|
||
/**
|
||
* @type {Tokenizer}
|
||
* @this {TokenizeContext}
|
||
*/
|
||
function tokenizeListItemPrefixWhitespace(effects, ok, nok) {
|
||
var self = this;
|
||
|
||
// Always populated by defaults.
|
||
|
||
return factorySpace(effects, afterPrefix, 'listItemPrefixWhitespace', self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4 + 1);
|
||
|
||
/** @type {State} */
|
||
function afterPrefix(code) {
|
||
var tail = self.events[self.events.length - 1];
|
||
return !markdownSpace(code) && tail && tail[1].type === 'listItemPrefixWhitespace' ? ok(code) : nok(code);
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-core-commonmark@1.1.0/node_modules/micromark-core-commonmark/lib/block-quote.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Construct} Construct
|
||
* @typedef {import('micromark-util-types').Exiter} Exiter
|
||
* @typedef {import('micromark-util-types').State} State
|
||
* @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
|
||
* @typedef {import('micromark-util-types').Tokenizer} Tokenizer
|
||
*/
|
||
|
||
|
||
|
||
/** @type {Construct} */
|
||
var blockQuote = {
|
||
name: 'blockQuote',
|
||
tokenize: tokenizeBlockQuoteStart,
|
||
continuation: {
|
||
tokenize: tokenizeBlockQuoteContinuation
|
||
},
|
||
exit: exit
|
||
};
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Tokenizer}
|
||
*/
|
||
function tokenizeBlockQuoteStart(effects, ok, nok) {
|
||
var self = this;
|
||
return start;
|
||
|
||
/**
|
||
* Start of block quote.
|
||
*
|
||
* ```markdown
|
||
* > | > a
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function start(code) {
|
||
if (code === 62) {
|
||
var state = self.containerState;
|
||
if (!state.open) {
|
||
effects.enter('blockQuote', {
|
||
_container: true
|
||
});
|
||
state.open = true;
|
||
}
|
||
effects.enter('blockQuotePrefix');
|
||
effects.enter('blockQuoteMarker');
|
||
effects.consume(code);
|
||
effects.exit('blockQuoteMarker');
|
||
return after;
|
||
}
|
||
return nok(code);
|
||
}
|
||
|
||
/**
|
||
* After `>`, before optional whitespace.
|
||
*
|
||
* ```markdown
|
||
* > | > a
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function after(code) {
|
||
if (markdownSpace(code)) {
|
||
effects.enter('blockQuotePrefixWhitespace');
|
||
effects.consume(code);
|
||
effects.exit('blockQuotePrefixWhitespace');
|
||
effects.exit('blockQuotePrefix');
|
||
return ok;
|
||
}
|
||
effects.exit('blockQuotePrefix');
|
||
return ok(code);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Start of block quote continuation.
|
||
*
|
||
* ```markdown
|
||
* | > a
|
||
* > | > b
|
||
* ^
|
||
* ```
|
||
*
|
||
* @this {TokenizeContext}
|
||
* @type {Tokenizer}
|
||
*/
|
||
function tokenizeBlockQuoteContinuation(effects, ok, nok) {
|
||
var self = this;
|
||
return contStart;
|
||
|
||
/**
|
||
* Start of block quote continuation.
|
||
*
|
||
* Also used to parse the first block quote opening.
|
||
*
|
||
* ```markdown
|
||
* | > a
|
||
* > | > b
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function contStart(code) {
|
||
if (markdownSpace(code)) {
|
||
// Always populated by defaults.
|
||
|
||
return factorySpace(effects, contBefore, 'linePrefix', self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code);
|
||
}
|
||
return contBefore(code);
|
||
}
|
||
|
||
/**
|
||
* At `>`, after optional whitespace.
|
||
*
|
||
* Also used to parse the first block quote opening.
|
||
*
|
||
* ```markdown
|
||
* | > a
|
||
* > | > b
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function contBefore(code) {
|
||
return effects.attempt(blockQuote, ok, nok)(code);
|
||
}
|
||
}
|
||
|
||
/** @type {Exiter} */
|
||
function exit(effects) {
|
||
effects.exit('blockQuote');
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-factory-destination@1.1.0/node_modules/micromark-factory-destination/index.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Effects} Effects
|
||
* @typedef {import('micromark-util-types').State} State
|
||
* @typedef {import('micromark-util-types').TokenType} TokenType
|
||
*/
|
||
|
||
|
||
/**
|
||
* Parse destinations.
|
||
*
|
||
* ###### Examples
|
||
*
|
||
* ```markdown
|
||
* <a>
|
||
* <a\>b>
|
||
* <a b>
|
||
* <a)>
|
||
* a
|
||
* a\)b
|
||
* a(b)c
|
||
* a(b)
|
||
* ```
|
||
*
|
||
* @param {Effects} effects
|
||
* Context.
|
||
* @param {State} ok
|
||
* State switched to when successful.
|
||
* @param {State} nok
|
||
* State switched to when unsuccessful.
|
||
* @param {TokenType} type
|
||
* Type for whole (`<a>` or `b`).
|
||
* @param {TokenType} literalType
|
||
* Type when enclosed (`<a>`).
|
||
* @param {TokenType} literalMarkerType
|
||
* Type for enclosing (`<` and `>`).
|
||
* @param {TokenType} rawType
|
||
* Type when not enclosed (`b`).
|
||
* @param {TokenType} stringType
|
||
* Type for the value (`a` or `b`).
|
||
* @param {number | undefined} [max=Infinity]
|
||
* Depth of nested parens (inclusive).
|
||
* @returns {State}
|
||
* Start state.
|
||
*/ // eslint-disable-next-line max-params
|
||
function factoryDestination(effects, ok, nok, type, literalType, literalMarkerType, rawType, stringType, max) {
|
||
var limit = max || Number.POSITIVE_INFINITY;
|
||
var balance = 0;
|
||
return start;
|
||
|
||
/**
|
||
* Start of destination.
|
||
*
|
||
* ```markdown
|
||
* > | <aa>
|
||
* ^
|
||
* > | aa
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function start(code) {
|
||
if (code === 60) {
|
||
effects.enter(type);
|
||
effects.enter(literalType);
|
||
effects.enter(literalMarkerType);
|
||
effects.consume(code);
|
||
effects.exit(literalMarkerType);
|
||
return enclosedBefore;
|
||
}
|
||
|
||
// ASCII control, space, closing paren.
|
||
if (code === null || code === 32 || code === 41 || asciiControl(code)) {
|
||
return nok(code);
|
||
}
|
||
effects.enter(type);
|
||
effects.enter(rawType);
|
||
effects.enter(stringType);
|
||
effects.enter('chunkString', {
|
||
contentType: 'string'
|
||
});
|
||
return raw(code);
|
||
}
|
||
|
||
/**
|
||
* After `<`, at an enclosed destination.
|
||
*
|
||
* ```markdown
|
||
* > | <aa>
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function enclosedBefore(code) {
|
||
if (code === 62) {
|
||
effects.enter(literalMarkerType);
|
||
effects.consume(code);
|
||
effects.exit(literalMarkerType);
|
||
effects.exit(literalType);
|
||
effects.exit(type);
|
||
return ok;
|
||
}
|
||
effects.enter(stringType);
|
||
effects.enter('chunkString', {
|
||
contentType: 'string'
|
||
});
|
||
return enclosed(code);
|
||
}
|
||
|
||
/**
|
||
* In enclosed destination.
|
||
*
|
||
* ```markdown
|
||
* > | <aa>
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function enclosed(code) {
|
||
if (code === 62) {
|
||
effects.exit('chunkString');
|
||
effects.exit(stringType);
|
||
return enclosedBefore(code);
|
||
}
|
||
if (code === null || code === 60 || markdownLineEnding(code)) {
|
||
return nok(code);
|
||
}
|
||
effects.consume(code);
|
||
return code === 92 ? enclosedEscape : enclosed;
|
||
}
|
||
|
||
/**
|
||
* After `\`, at a special character.
|
||
*
|
||
* ```markdown
|
||
* > | <a\*a>
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function enclosedEscape(code) {
|
||
if (code === 60 || code === 62 || code === 92) {
|
||
effects.consume(code);
|
||
return enclosed;
|
||
}
|
||
return enclosed(code);
|
||
}
|
||
|
||
/**
|
||
* In raw destination.
|
||
*
|
||
* ```markdown
|
||
* > | aa
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function raw(code) {
|
||
if (!balance && (code === null || code === 41 || markdownLineEndingOrSpace(code))) {
|
||
effects.exit('chunkString');
|
||
effects.exit(stringType);
|
||
effects.exit(rawType);
|
||
effects.exit(type);
|
||
return ok(code);
|
||
}
|
||
if (balance < limit && code === 40) {
|
||
effects.consume(code);
|
||
balance++;
|
||
return raw;
|
||
}
|
||
if (code === 41) {
|
||
effects.consume(code);
|
||
balance--;
|
||
return raw;
|
||
}
|
||
|
||
// ASCII control (but *not* `\0`) and space and `(`.
|
||
// Note: in `markdown-rs`, `\0` exists in codes, in `micromark-js` it
|
||
// doesn’t.
|
||
if (code === null || code === 32 || code === 40 || asciiControl(code)) {
|
||
return nok(code);
|
||
}
|
||
effects.consume(code);
|
||
return code === 92 ? rawEscape : raw;
|
||
}
|
||
|
||
/**
|
||
* After `\`, at special character.
|
||
*
|
||
* ```markdown
|
||
* > | a\*a
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function rawEscape(code) {
|
||
if (code === 40 || code === 41 || code === 92) {
|
||
effects.consume(code);
|
||
return raw;
|
||
}
|
||
return raw(code);
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-factory-label@1.1.0/node_modules/micromark-factory-label/index.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Effects} Effects
|
||
* @typedef {import('micromark-util-types').State} State
|
||
* @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
|
||
* @typedef {import('micromark-util-types').TokenType} TokenType
|
||
*/
|
||
|
||
|
||
/**
|
||
* Parse labels.
|
||
*
|
||
* > 👉 **Note**: labels in markdown are capped at 999 characters in the string.
|
||
*
|
||
* ###### Examples
|
||
*
|
||
* ```markdown
|
||
* [a]
|
||
* [a
|
||
* b]
|
||
* [a\]b]
|
||
* ```
|
||
*
|
||
* @this {TokenizeContext}
|
||
* Tokenize context.
|
||
* @param {Effects} effects
|
||
* Context.
|
||
* @param {State} ok
|
||
* State switched to when successful.
|
||
* @param {State} nok
|
||
* State switched to when unsuccessful.
|
||
* @param {TokenType} type
|
||
* Type of the whole label (`[a]`).
|
||
* @param {TokenType} markerType
|
||
* Type for the markers (`[` and `]`).
|
||
* @param {TokenType} stringType
|
||
* Type for the identifier (`a`).
|
||
* @returns {State}
|
||
* Start state.
|
||
*/ // eslint-disable-next-line max-params
|
||
function factoryLabel(effects, ok, nok, type, markerType, stringType) {
|
||
var self = this;
|
||
var size = 0;
|
||
/** @type {boolean} */
|
||
var seen;
|
||
return start;
|
||
|
||
/**
|
||
* Start of label.
|
||
*
|
||
* ```markdown
|
||
* > | [a]
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function start(code) {
|
||
effects.enter(type);
|
||
effects.enter(markerType);
|
||
effects.consume(code);
|
||
effects.exit(markerType);
|
||
effects.enter(stringType);
|
||
return atBreak;
|
||
}
|
||
|
||
/**
|
||
* In label, at something, before something else.
|
||
*
|
||
* ```markdown
|
||
* > | [a]
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function atBreak(code) {
|
||
if (size > 999 || code === null || code === 91 || code === 93 && !seen ||
|
||
// To do: remove in the future once we’ve switched from
|
||
// `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,
|
||
// which doesn’t need this.
|
||
// Hidden footnotes hook.
|
||
/* c8 ignore next 3 */
|
||
code === 94 && !size && '_hiddenFootnoteSupport' in self.parser.constructs) {
|
||
return nok(code);
|
||
}
|
||
if (code === 93) {
|
||
effects.exit(stringType);
|
||
effects.enter(markerType);
|
||
effects.consume(code);
|
||
effects.exit(markerType);
|
||
effects.exit(type);
|
||
return ok;
|
||
}
|
||
|
||
// To do: indent? Link chunks and EOLs together?
|
||
if (markdownLineEnding(code)) {
|
||
effects.enter('lineEnding');
|
||
effects.consume(code);
|
||
effects.exit('lineEnding');
|
||
return atBreak;
|
||
}
|
||
effects.enter('chunkString', {
|
||
contentType: 'string'
|
||
});
|
||
return labelInside(code);
|
||
}
|
||
|
||
/**
|
||
* In label, in text.
|
||
*
|
||
* ```markdown
|
||
* > | [a]
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function labelInside(code) {
|
||
if (code === null || code === 91 || code === 93 || markdownLineEnding(code) || size++ > 999) {
|
||
effects.exit('chunkString');
|
||
return atBreak(code);
|
||
}
|
||
effects.consume(code);
|
||
if (!seen) seen = !markdownSpace(code);
|
||
return code === 92 ? labelEscape : labelInside;
|
||
}
|
||
|
||
/**
|
||
* After `\`, at a special character.
|
||
*
|
||
* ```markdown
|
||
* > | [a\*a]
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function labelEscape(code) {
|
||
if (code === 91 || code === 92 || code === 93) {
|
||
effects.consume(code);
|
||
size++;
|
||
return labelInside;
|
||
}
|
||
return labelInside(code);
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-factory-title@1.1.0/node_modules/micromark-factory-title/index.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Code} Code
|
||
* @typedef {import('micromark-util-types').Effects} Effects
|
||
* @typedef {import('micromark-util-types').State} State
|
||
* @typedef {import('micromark-util-types').TokenType} TokenType
|
||
*/
|
||
|
||
|
||
|
||
/**
|
||
* Parse titles.
|
||
*
|
||
* ###### Examples
|
||
*
|
||
* ```markdown
|
||
* "a"
|
||
* 'b'
|
||
* (c)
|
||
* "a
|
||
* b"
|
||
* 'a
|
||
* b'
|
||
* (a\)b)
|
||
* ```
|
||
*
|
||
* @param {Effects} effects
|
||
* Context.
|
||
* @param {State} ok
|
||
* State switched to when successful.
|
||
* @param {State} nok
|
||
* State switched to when unsuccessful.
|
||
* @param {TokenType} type
|
||
* Type of the whole title (`"a"`, `'b'`, `(c)`).
|
||
* @param {TokenType} markerType
|
||
* Type for the markers (`"`, `'`, `(`, and `)`).
|
||
* @param {TokenType} stringType
|
||
* Type for the value (`a`).
|
||
* @returns {State}
|
||
* Start state.
|
||
*/ // eslint-disable-next-line max-params
|
||
function factoryTitle(effects, ok, nok, type, markerType, stringType) {
|
||
/** @type {NonNullable<Code>} */
|
||
var marker;
|
||
return start;
|
||
|
||
/**
|
||
* Start of title.
|
||
*
|
||
* ```markdown
|
||
* > | "a"
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function start(code) {
|
||
if (code === 34 || code === 39 || code === 40) {
|
||
effects.enter(type);
|
||
effects.enter(markerType);
|
||
effects.consume(code);
|
||
effects.exit(markerType);
|
||
marker = code === 40 ? 41 : code;
|
||
return begin;
|
||
}
|
||
return nok(code);
|
||
}
|
||
|
||
/**
|
||
* After opening marker.
|
||
*
|
||
* This is also used at the closing marker.
|
||
*
|
||
* ```markdown
|
||
* > | "a"
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function begin(code) {
|
||
if (code === marker) {
|
||
effects.enter(markerType);
|
||
effects.consume(code);
|
||
effects.exit(markerType);
|
||
effects.exit(type);
|
||
return ok;
|
||
}
|
||
effects.enter(stringType);
|
||
return atBreak(code);
|
||
}
|
||
|
||
/**
|
||
* At something, before something else.
|
||
*
|
||
* ```markdown
|
||
* > | "a"
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function atBreak(code) {
|
||
if (code === marker) {
|
||
effects.exit(stringType);
|
||
return begin(marker);
|
||
}
|
||
if (code === null) {
|
||
return nok(code);
|
||
}
|
||
|
||
// Note: blank lines can’t exist in content.
|
||
if (markdownLineEnding(code)) {
|
||
// To do: use `space_or_tab_eol_with_options`, connect.
|
||
effects.enter('lineEnding');
|
||
effects.consume(code);
|
||
effects.exit('lineEnding');
|
||
return factorySpace(effects, atBreak, 'linePrefix');
|
||
}
|
||
effects.enter('chunkString', {
|
||
contentType: 'string'
|
||
});
|
||
return inside(code);
|
||
}
|
||
|
||
/**
|
||
*
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function inside(code) {
|
||
if (code === marker || code === null || markdownLineEnding(code)) {
|
||
effects.exit('chunkString');
|
||
return atBreak(code);
|
||
}
|
||
effects.consume(code);
|
||
return code === 92 ? escape : inside;
|
||
}
|
||
|
||
/**
|
||
* After `\`, at a special character.
|
||
*
|
||
* ```markdown
|
||
* > | "a\*b"
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function escape(code) {
|
||
if (code === marker || code === 92) {
|
||
effects.consume(code);
|
||
return inside;
|
||
}
|
||
return inside(code);
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-factory-whitespace@1.1.0/node_modules/micromark-factory-whitespace/index.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Effects} Effects
|
||
* @typedef {import('micromark-util-types').State} State
|
||
*/
|
||
|
||
|
||
|
||
/**
|
||
* Parse spaces and tabs.
|
||
*
|
||
* There is no `nok` parameter:
|
||
*
|
||
* * line endings or spaces in markdown are often optional, in which case this
|
||
* factory can be used and `ok` will be switched to whether spaces were found
|
||
* or not
|
||
* * one line ending or space can be detected with
|
||
* `markdownLineEndingOrSpace(code)` right before using `factoryWhitespace`
|
||
*
|
||
* @param {Effects} effects
|
||
* Context.
|
||
* @param {State} ok
|
||
* State switched to when successful.
|
||
* @returns
|
||
* Start state.
|
||
*/
|
||
function factoryWhitespace(effects, ok) {
|
||
/** @type {boolean} */
|
||
var seen;
|
||
return start;
|
||
|
||
/** @type {State} */
|
||
function start(code) {
|
||
if (markdownLineEnding(code)) {
|
||
effects.enter('lineEnding');
|
||
effects.consume(code);
|
||
effects.exit('lineEnding');
|
||
seen = true;
|
||
return start;
|
||
}
|
||
if (markdownSpace(code)) {
|
||
return factorySpace(effects, start, seen ? 'linePrefix' : 'lineSuffix')(code);
|
||
}
|
||
return ok(code);
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-util-normalize-identifier@1.1.0/node_modules/micromark-util-normalize-identifier/index.js
|
||
/**
|
||
* Normalize an identifier (as found in references, definitions).
|
||
*
|
||
* Collapses markdown whitespace, trim, and then lower- and uppercase.
|
||
*
|
||
* Some characters are considered “uppercase”, such as U+03F4 (`ϴ`), but if their
|
||
* lowercase counterpart (U+03B8 (`θ`)) is uppercased will result in a different
|
||
* uppercase character (U+0398 (`Θ`)).
|
||
* So, to get a canonical form, we perform both lower- and uppercase.
|
||
*
|
||
* Using uppercase last makes sure keys will never interact with default
|
||
* prototypal values (such as `constructor`): nothing in the prototype of
|
||
* `Object` is uppercase.
|
||
*
|
||
* @param {string} value
|
||
* Identifier to normalize.
|
||
* @returns {string}
|
||
* Normalized identifier.
|
||
*/
|
||
function normalizeIdentifier(value) {
|
||
return value
|
||
// Collapse markdown whitespace.
|
||
.replace(/[\t\n\r ]+/g, ' ')
|
||
// Trim.
|
||
.replace(/^ | $/g, '')
|
||
// Some characters are considered “uppercase”, but if their lowercase
|
||
// counterpart is uppercased will result in a different uppercase
|
||
// character.
|
||
// Hence, to get that form, we perform both lower- and uppercase.
|
||
// Upper case makes sure keys will not interact with default prototypal
|
||
// methods: no method is uppercase.
|
||
.toLowerCase().toUpperCase();
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-core-commonmark@1.1.0/node_modules/micromark-core-commonmark/lib/definition.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Construct} Construct
|
||
* @typedef {import('micromark-util-types').State} State
|
||
* @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
|
||
* @typedef {import('micromark-util-types').Tokenizer} Tokenizer
|
||
*/
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
/** @type {Construct} */
|
||
var definition = {
|
||
name: 'definition',
|
||
tokenize: tokenizeDefinition
|
||
};
|
||
|
||
/** @type {Construct} */
|
||
var titleBefore = {
|
||
tokenize: tokenizeTitleBefore,
|
||
partial: true
|
||
};
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Tokenizer}
|
||
*/
|
||
function tokenizeDefinition(effects, ok, nok) {
|
||
var self = this;
|
||
/** @type {string} */
|
||
var identifier;
|
||
return start;
|
||
|
||
/**
|
||
* At start of a definition.
|
||
*
|
||
* ```markdown
|
||
* > | [a]: b "c"
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function start(code) {
|
||
// Do not interrupt paragraphs (but do follow definitions).
|
||
// To do: do `interrupt` the way `markdown-rs` does.
|
||
// To do: parse whitespace the way `markdown-rs` does.
|
||
effects.enter('definition');
|
||
return before(code);
|
||
}
|
||
|
||
/**
|
||
* After optional whitespace, at `[`.
|
||
*
|
||
* ```markdown
|
||
* > | [a]: b "c"
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function before(code) {
|
||
// To do: parse whitespace the way `markdown-rs` does.
|
||
|
||
return factoryLabel.call(self, effects, labelAfter,
|
||
// Note: we don’t need to reset the way `markdown-rs` does.
|
||
nok, 'definitionLabel', 'definitionLabelMarker', 'definitionLabelString')(code);
|
||
}
|
||
|
||
/**
|
||
* After label.
|
||
*
|
||
* ```markdown
|
||
* > | [a]: b "c"
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function labelAfter(code) {
|
||
identifier = normalizeIdentifier(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1));
|
||
if (code === 58) {
|
||
effects.enter('definitionMarker');
|
||
effects.consume(code);
|
||
effects.exit('definitionMarker');
|
||
return markerAfter;
|
||
}
|
||
return nok(code);
|
||
}
|
||
|
||
/**
|
||
* After marker.
|
||
*
|
||
* ```markdown
|
||
* > | [a]: b "c"
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function markerAfter(code) {
|
||
// Note: whitespace is optional.
|
||
return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, destinationBefore)(code) : destinationBefore(code);
|
||
}
|
||
|
||
/**
|
||
* Before destination.
|
||
*
|
||
* ```markdown
|
||
* > | [a]: b "c"
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function destinationBefore(code) {
|
||
return factoryDestination(effects, destinationAfter,
|
||
// Note: we don’t need to reset the way `markdown-rs` does.
|
||
nok, 'definitionDestination', 'definitionDestinationLiteral', 'definitionDestinationLiteralMarker', 'definitionDestinationRaw', 'definitionDestinationString')(code);
|
||
}
|
||
|
||
/**
|
||
* After destination.
|
||
*
|
||
* ```markdown
|
||
* > | [a]: b "c"
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function destinationAfter(code) {
|
||
return effects.attempt(titleBefore, after, after)(code);
|
||
}
|
||
|
||
/**
|
||
* After definition.
|
||
*
|
||
* ```markdown
|
||
* > | [a]: b
|
||
* ^
|
||
* > | [a]: b "c"
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function after(code) {
|
||
return markdownSpace(code) ? factorySpace(effects, afterWhitespace, 'whitespace')(code) : afterWhitespace(code);
|
||
}
|
||
|
||
/**
|
||
* After definition, after optional whitespace.
|
||
*
|
||
* ```markdown
|
||
* > | [a]: b
|
||
* ^
|
||
* > | [a]: b "c"
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function afterWhitespace(code) {
|
||
if (code === null || markdownLineEnding(code)) {
|
||
effects.exit('definition');
|
||
|
||
// Note: we don’t care about uniqueness.
|
||
// It’s likely that that doesn’t happen very frequently.
|
||
// It is more likely that it wastes precious time.
|
||
self.parser.defined.push(identifier);
|
||
|
||
// To do: `markdown-rs` interrupt.
|
||
// // You’d be interrupting.
|
||
// tokenizer.interrupt = true
|
||
return ok(code);
|
||
}
|
||
return nok(code);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Tokenizer}
|
||
*/
|
||
function tokenizeTitleBefore(effects, ok, nok) {
|
||
return titleBefore;
|
||
|
||
/**
|
||
* After destination, at whitespace.
|
||
*
|
||
* ```markdown
|
||
* > | [a]: b
|
||
* ^
|
||
* > | [a]: b "c"
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function titleBefore(code) {
|
||
return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, beforeMarker)(code) : nok(code);
|
||
}
|
||
|
||
/**
|
||
* At title.
|
||
*
|
||
* ```markdown
|
||
* | [a]: b
|
||
* > | "c"
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function beforeMarker(code) {
|
||
return factoryTitle(effects, titleAfter, nok, 'definitionTitle', 'definitionTitleMarker', 'definitionTitleString')(code);
|
||
}
|
||
|
||
/**
|
||
* After title.
|
||
*
|
||
* ```markdown
|
||
* > | [a]: b "c"
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function titleAfter(code) {
|
||
return markdownSpace(code) ? factorySpace(effects, titleAfterOptionalWhitespace, 'whitespace')(code) : titleAfterOptionalWhitespace(code);
|
||
}
|
||
|
||
/**
|
||
* After title, after optional whitespace.
|
||
*
|
||
* ```markdown
|
||
* > | [a]: b "c"
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function titleAfterOptionalWhitespace(code) {
|
||
return code === null || markdownLineEnding(code) ? ok(code) : nok(code);
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-core-commonmark@1.1.0/node_modules/micromark-core-commonmark/lib/code-indented.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Construct} Construct
|
||
* @typedef {import('micromark-util-types').State} State
|
||
* @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
|
||
* @typedef {import('micromark-util-types').Tokenizer} Tokenizer
|
||
*/
|
||
|
||
|
||
|
||
/** @type {Construct} */
|
||
var codeIndented = {
|
||
name: 'codeIndented',
|
||
tokenize: tokenizeCodeIndented
|
||
};
|
||
|
||
/** @type {Construct} */
|
||
var furtherStart = {
|
||
tokenize: tokenizeFurtherStart,
|
||
partial: true
|
||
};
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Tokenizer}
|
||
*/
|
||
function tokenizeCodeIndented(effects, ok, nok) {
|
||
var self = this;
|
||
return start;
|
||
|
||
/**
|
||
* Start of code (indented).
|
||
*
|
||
* > **Parsing note**: it is not needed to check if this first line is a
|
||
* > filled line (that it has a non-whitespace character), because blank lines
|
||
* > are parsed already, so we never run into that.
|
||
*
|
||
* ```markdown
|
||
* > | aaa
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function start(code) {
|
||
// To do: manually check if interrupting like `markdown-rs`.
|
||
|
||
effects.enter('codeIndented');
|
||
// To do: use an improved `space_or_tab` function like `markdown-rs`,
|
||
// so that we can drop the next state.
|
||
return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)(code);
|
||
}
|
||
|
||
/**
|
||
* At start, after 1 or 4 spaces.
|
||
*
|
||
* ```markdown
|
||
* > | aaa
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function afterPrefix(code) {
|
||
var tail = self.events[self.events.length - 1];
|
||
return tail && tail[1].type === 'linePrefix' && tail[2].sliceSerialize(tail[1], true).length >= 4 ? atBreak(code) : nok(code);
|
||
}
|
||
|
||
/**
|
||
* At a break.
|
||
*
|
||
* ```markdown
|
||
* > | aaa
|
||
* ^ ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function atBreak(code) {
|
||
if (code === null) {
|
||
return after(code);
|
||
}
|
||
if (markdownLineEnding(code)) {
|
||
return effects.attempt(furtherStart, atBreak, after)(code);
|
||
}
|
||
effects.enter('codeFlowValue');
|
||
return inside(code);
|
||
}
|
||
|
||
/**
|
||
* In code content.
|
||
*
|
||
* ```markdown
|
||
* > | aaa
|
||
* ^^^^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function inside(code) {
|
||
if (code === null || markdownLineEnding(code)) {
|
||
effects.exit('codeFlowValue');
|
||
return atBreak(code);
|
||
}
|
||
effects.consume(code);
|
||
return inside;
|
||
}
|
||
|
||
/** @type {State} */
|
||
function after(code) {
|
||
effects.exit('codeIndented');
|
||
// To do: allow interrupting like `markdown-rs`.
|
||
// Feel free to interrupt.
|
||
// tokenizer.interrupt = false
|
||
return ok(code);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Tokenizer}
|
||
*/
|
||
function tokenizeFurtherStart(effects, ok, nok) {
|
||
var self = this;
|
||
return furtherStart;
|
||
|
||
/**
|
||
* At eol, trying to parse another indent.
|
||
*
|
||
* ```markdown
|
||
* > | aaa
|
||
* ^
|
||
* | bbb
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function furtherStart(code) {
|
||
// To do: improve `lazy` / `pierce` handling.
|
||
// If this is a lazy line, it can’t be code.
|
||
if (self.parser.lazy[self.now().line]) {
|
||
return nok(code);
|
||
}
|
||
if (markdownLineEnding(code)) {
|
||
effects.enter('lineEnding');
|
||
effects.consume(code);
|
||
effects.exit('lineEnding');
|
||
return furtherStart;
|
||
}
|
||
|
||
// To do: the code here in `micromark-js` is a bit different from
|
||
// `markdown-rs` because there it can attempt spaces.
|
||
// We can’t yet.
|
||
//
|
||
// To do: use an improved `space_or_tab` function like `markdown-rs`,
|
||
// so that we can drop the next state.
|
||
return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)(code);
|
||
}
|
||
|
||
/**
|
||
* At start, after 1 or 4 spaces.
|
||
*
|
||
* ```markdown
|
||
* > | aaa
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function afterPrefix(code) {
|
||
var tail = self.events[self.events.length - 1];
|
||
return tail && tail[1].type === 'linePrefix' && tail[2].sliceSerialize(tail[1], true).length >= 4 ? ok(code) : markdownLineEnding(code) ? furtherStart(code) : nok(code);
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-core-commonmark@1.1.0/node_modules/micromark-core-commonmark/lib/heading-atx.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Construct} Construct
|
||
* @typedef {import('micromark-util-types').Resolver} Resolver
|
||
* @typedef {import('micromark-util-types').State} State
|
||
* @typedef {import('micromark-util-types').Token} Token
|
||
* @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
|
||
* @typedef {import('micromark-util-types').Tokenizer} Tokenizer
|
||
*/
|
||
|
||
|
||
|
||
|
||
/** @type {Construct} */
|
||
var headingAtx = {
|
||
name: 'headingAtx',
|
||
tokenize: tokenizeHeadingAtx,
|
||
resolve: resolveHeadingAtx
|
||
};
|
||
|
||
/** @type {Resolver} */
|
||
function resolveHeadingAtx(events, context) {
|
||
var contentEnd = events.length - 2;
|
||
var contentStart = 3;
|
||
/** @type {Token} */
|
||
var content;
|
||
/** @type {Token} */
|
||
var text;
|
||
|
||
// Prefix whitespace, part of the opening.
|
||
if (events[contentStart][1].type === 'whitespace') {
|
||
contentStart += 2;
|
||
}
|
||
|
||
// Suffix whitespace, part of the closing.
|
||
if (contentEnd - 2 > contentStart && events[contentEnd][1].type === 'whitespace') {
|
||
contentEnd -= 2;
|
||
}
|
||
if (events[contentEnd][1].type === 'atxHeadingSequence' && (contentStart === contentEnd - 1 || contentEnd - 4 > contentStart && events[contentEnd - 2][1].type === 'whitespace')) {
|
||
contentEnd -= contentStart + 1 === contentEnd ? 2 : 4;
|
||
}
|
||
if (contentEnd > contentStart) {
|
||
content = {
|
||
type: 'atxHeadingText',
|
||
start: events[contentStart][1].start,
|
||
end: events[contentEnd][1].end
|
||
};
|
||
text = {
|
||
type: 'chunkText',
|
||
start: events[contentStart][1].start,
|
||
end: events[contentEnd][1].end,
|
||
contentType: 'text'
|
||
};
|
||
splice(events, contentStart, contentEnd - contentStart + 1, [['enter', content, context], ['enter', text, context], ['exit', text, context], ['exit', content, context]]);
|
||
}
|
||
return events;
|
||
}
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Tokenizer}
|
||
*/
|
||
function tokenizeHeadingAtx(effects, ok, nok) {
|
||
var size = 0;
|
||
return start;
|
||
|
||
/**
|
||
* Start of a heading (atx).
|
||
*
|
||
* ```markdown
|
||
* > | ## aa
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function start(code) {
|
||
// To do: parse indent like `markdown-rs`.
|
||
effects.enter('atxHeading');
|
||
return before(code);
|
||
}
|
||
|
||
/**
|
||
* After optional whitespace, at `#`.
|
||
*
|
||
* ```markdown
|
||
* > | ## aa
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function before(code) {
|
||
effects.enter('atxHeadingSequence');
|
||
return sequenceOpen(code);
|
||
}
|
||
|
||
/**
|
||
* In opening sequence.
|
||
*
|
||
* ```markdown
|
||
* > | ## aa
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function sequenceOpen(code) {
|
||
if (code === 35 && size++ < 6) {
|
||
effects.consume(code);
|
||
return sequenceOpen;
|
||
}
|
||
|
||
// Always at least one `#`.
|
||
if (code === null || markdownLineEndingOrSpace(code)) {
|
||
effects.exit('atxHeadingSequence');
|
||
return atBreak(code);
|
||
}
|
||
return nok(code);
|
||
}
|
||
|
||
/**
|
||
* After something, before something else.
|
||
*
|
||
* ```markdown
|
||
* > | ## aa
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function atBreak(code) {
|
||
if (code === 35) {
|
||
effects.enter('atxHeadingSequence');
|
||
return sequenceFurther(code);
|
||
}
|
||
if (code === null || markdownLineEnding(code)) {
|
||
effects.exit('atxHeading');
|
||
// To do: interrupt like `markdown-rs`.
|
||
// // Feel free to interrupt.
|
||
// tokenizer.interrupt = false
|
||
return ok(code);
|
||
}
|
||
if (markdownSpace(code)) {
|
||
return factorySpace(effects, atBreak, 'whitespace')(code);
|
||
}
|
||
|
||
// To do: generate `data` tokens, add the `text` token later.
|
||
// Needs edit map, see: `markdown.rs`.
|
||
effects.enter('atxHeadingText');
|
||
return data(code);
|
||
}
|
||
|
||
/**
|
||
* In further sequence (after whitespace).
|
||
*
|
||
* Could be normal “visible” hashes in the heading or a final sequence.
|
||
*
|
||
* ```markdown
|
||
* > | ## aa ##
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function sequenceFurther(code) {
|
||
if (code === 35) {
|
||
effects.consume(code);
|
||
return sequenceFurther;
|
||
}
|
||
effects.exit('atxHeadingSequence');
|
||
return atBreak(code);
|
||
}
|
||
|
||
/**
|
||
* In text.
|
||
*
|
||
* ```markdown
|
||
* > | ## aa
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function data(code) {
|
||
if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {
|
||
effects.exit('atxHeadingText');
|
||
return atBreak(code);
|
||
}
|
||
effects.consume(code);
|
||
return data;
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-core-commonmark@1.1.0/node_modules/micromark-core-commonmark/lib/setext-underline.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Code} Code
|
||
* @typedef {import('micromark-util-types').Construct} Construct
|
||
* @typedef {import('micromark-util-types').Resolver} Resolver
|
||
* @typedef {import('micromark-util-types').State} State
|
||
* @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
|
||
* @typedef {import('micromark-util-types').Tokenizer} Tokenizer
|
||
*/
|
||
|
||
|
||
|
||
/** @type {Construct} */
|
||
var setextUnderline = {
|
||
name: 'setextUnderline',
|
||
tokenize: tokenizeSetextUnderline,
|
||
resolveTo: resolveToSetextUnderline
|
||
};
|
||
|
||
/** @type {Resolver} */
|
||
function resolveToSetextUnderline(events, context) {
|
||
// To do: resolve like `markdown-rs`.
|
||
var index = events.length;
|
||
/** @type {number | undefined} */
|
||
var content;
|
||
/** @type {number | undefined} */
|
||
var text;
|
||
/** @type {number | undefined} */
|
||
var definition;
|
||
|
||
// Find the opening of the content.
|
||
// It’ll always exist: we don’t tokenize if it isn’t there.
|
||
while (index--) {
|
||
if (events[index][0] === 'enter') {
|
||
if (events[index][1].type === 'content') {
|
||
content = index;
|
||
break;
|
||
}
|
||
if (events[index][1].type === 'paragraph') {
|
||
text = index;
|
||
}
|
||
}
|
||
// Exit
|
||
else {
|
||
if (events[index][1].type === 'content') {
|
||
// Remove the content end (if needed we’ll add it later)
|
||
events.splice(index, 1);
|
||
}
|
||
if (!definition && events[index][1].type === 'definition') {
|
||
definition = index;
|
||
}
|
||
}
|
||
}
|
||
var heading = {
|
||
type: 'setextHeading',
|
||
start: Object.assign({}, events[text][1].start),
|
||
end: Object.assign({}, events[events.length - 1][1].end)
|
||
};
|
||
|
||
// Change the paragraph to setext heading text.
|
||
events[text][1].type = 'setextHeadingText';
|
||
|
||
// If we have definitions in the content, we’ll keep on having content,
|
||
// but we need move it.
|
||
if (definition) {
|
||
events.splice(text, 0, ['enter', heading, context]);
|
||
events.splice(definition + 1, 0, ['exit', events[content][1], context]);
|
||
events[content][1].end = Object.assign({}, events[definition][1].end);
|
||
} else {
|
||
events[content][1] = heading;
|
||
}
|
||
|
||
// Add the heading exit at the end.
|
||
events.push(['exit', heading, context]);
|
||
return events;
|
||
}
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Tokenizer}
|
||
*/
|
||
function tokenizeSetextUnderline(effects, ok, nok) {
|
||
var self = this;
|
||
/** @type {NonNullable<Code>} */
|
||
var marker;
|
||
return start;
|
||
|
||
/**
|
||
* At start of heading (setext) underline.
|
||
*
|
||
* ```markdown
|
||
* | aa
|
||
* > | ==
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function start(code) {
|
||
var index = self.events.length;
|
||
/** @type {boolean | undefined} */
|
||
var paragraph;
|
||
// Find an opening.
|
||
while (index--) {
|
||
// Skip enter/exit of line ending, line prefix, and content.
|
||
// We can now either have a definition or a paragraph.
|
||
if (self.events[index][1].type !== 'lineEnding' && self.events[index][1].type !== 'linePrefix' && self.events[index][1].type !== 'content') {
|
||
paragraph = self.events[index][1].type === 'paragraph';
|
||
break;
|
||
}
|
||
}
|
||
|
||
// To do: handle lazy/pierce like `markdown-rs`.
|
||
// To do: parse indent like `markdown-rs`.
|
||
if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {
|
||
effects.enter('setextHeadingLine');
|
||
marker = code;
|
||
return before(code);
|
||
}
|
||
return nok(code);
|
||
}
|
||
|
||
/**
|
||
* After optional whitespace, at `-` or `=`.
|
||
*
|
||
* ```markdown
|
||
* | aa
|
||
* > | ==
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function before(code) {
|
||
effects.enter('setextHeadingLineSequence');
|
||
return inside(code);
|
||
}
|
||
|
||
/**
|
||
* In sequence.
|
||
*
|
||
* ```markdown
|
||
* | aa
|
||
* > | ==
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function inside(code) {
|
||
if (code === marker) {
|
||
effects.consume(code);
|
||
return inside;
|
||
}
|
||
effects.exit('setextHeadingLineSequence');
|
||
return markdownSpace(code) ? factorySpace(effects, after, 'lineSuffix')(code) : after(code);
|
||
}
|
||
|
||
/**
|
||
* After sequence, after optional whitespace.
|
||
*
|
||
* ```markdown
|
||
* | aa
|
||
* > | ==
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function after(code) {
|
||
if (code === null || markdownLineEnding(code)) {
|
||
effects.exit('setextHeadingLine');
|
||
return ok(code);
|
||
}
|
||
return nok(code);
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-util-html-tag-name@1.2.0/node_modules/micromark-util-html-tag-name/index.js
|
||
/**
|
||
* List of lowercase HTML “block” tag names.
|
||
*
|
||
* The list, when parsing HTML (flow), results in more relaxed rules (condition
|
||
* 6).
|
||
* Because they are known blocks, the HTML-like syntax doesn’t have to be
|
||
* strictly parsed.
|
||
* For tag names not in this list, a more strict algorithm (condition 7) is used
|
||
* to detect whether the HTML-like syntax is seen as HTML (flow) or not.
|
||
*
|
||
* This is copied from:
|
||
* <https://spec.commonmark.org/0.30/#html-blocks>.
|
||
*
|
||
* > 👉 **Note**: `search` was added in `CommonMark@0.31`.
|
||
*/
|
||
var htmlBlockNames = ['address', 'article', 'aside', 'base', 'basefont', 'blockquote', 'body', 'caption', 'center', 'col', 'colgroup', 'dd', 'details', 'dialog', 'dir', 'div', 'dl', 'dt', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hr', 'html', 'iframe', 'legend', 'li', 'link', 'main', 'menu', 'menuitem', 'nav', 'noframes', 'ol', 'optgroup', 'option', 'p', 'param', 'search', 'section', 'summary', 'table', 'tbody', 'td', 'tfoot', 'th', 'thead', 'title', 'tr', 'track', 'ul'];
|
||
|
||
/**
|
||
* List of lowercase HTML “raw” tag names.
|
||
*
|
||
* The list, when parsing HTML (flow), results in HTML that can include lines
|
||
* without exiting, until a closing tag also in this list is found (condition
|
||
* 1).
|
||
*
|
||
* This module is copied from:
|
||
* <https://spec.commonmark.org/0.30/#html-blocks>.
|
||
*
|
||
* > 👉 **Note**: `textarea` was added in `CommonMark@0.30`.
|
||
*/
|
||
var htmlRawNames = ['pre', 'script', 'style', 'textarea'];
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-core-commonmark@1.1.0/node_modules/micromark-core-commonmark/lib/html-flow.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Code} Code
|
||
* @typedef {import('micromark-util-types').Construct} Construct
|
||
* @typedef {import('micromark-util-types').Resolver} Resolver
|
||
* @typedef {import('micromark-util-types').State} State
|
||
* @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
|
||
* @typedef {import('micromark-util-types').Tokenizer} Tokenizer
|
||
*/
|
||
|
||
|
||
|
||
|
||
|
||
/** @type {Construct} */
|
||
var htmlFlow = {
|
||
name: 'htmlFlow',
|
||
tokenize: tokenizeHtmlFlow,
|
||
resolveTo: resolveToHtmlFlow,
|
||
concrete: true
|
||
};
|
||
|
||
/** @type {Construct} */
|
||
var blankLineBefore = {
|
||
tokenize: tokenizeBlankLineBefore,
|
||
partial: true
|
||
};
|
||
var nonLazyContinuationStart = {
|
||
tokenize: tokenizeNonLazyContinuationStart,
|
||
partial: true
|
||
};
|
||
|
||
/** @type {Resolver} */
|
||
function resolveToHtmlFlow(events) {
|
||
var index = events.length;
|
||
while (index--) {
|
||
if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') {
|
||
break;
|
||
}
|
||
}
|
||
if (index > 1 && events[index - 2][1].type === 'linePrefix') {
|
||
// Add the prefix start to the HTML token.
|
||
events[index][1].start = events[index - 2][1].start;
|
||
// Add the prefix start to the HTML line token.
|
||
events[index + 1][1].start = events[index - 2][1].start;
|
||
// Remove the line prefix.
|
||
events.splice(index - 2, 2);
|
||
}
|
||
return events;
|
||
}
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Tokenizer}
|
||
*/
|
||
function tokenizeHtmlFlow(effects, ok, nok) {
|
||
var self = this;
|
||
/** @type {number} */
|
||
var marker;
|
||
/** @type {boolean} */
|
||
var closingTag;
|
||
/** @type {string} */
|
||
var buffer;
|
||
/** @type {number} */
|
||
var index;
|
||
/** @type {Code} */
|
||
var markerB;
|
||
return start;
|
||
|
||
/**
|
||
* Start of HTML (flow).
|
||
*
|
||
* ```markdown
|
||
* > | <x />
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function start(code) {
|
||
// To do: parse indent like `markdown-rs`.
|
||
return before(code);
|
||
}
|
||
|
||
/**
|
||
* At `<`, after optional whitespace.
|
||
*
|
||
* ```markdown
|
||
* > | <x />
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function before(code) {
|
||
effects.enter('htmlFlow');
|
||
effects.enter('htmlFlowData');
|
||
effects.consume(code);
|
||
return open;
|
||
}
|
||
|
||
/**
|
||
* After `<`, at tag name or other stuff.
|
||
*
|
||
* ```markdown
|
||
* > | <x />
|
||
* ^
|
||
* > | <!doctype>
|
||
* ^
|
||
* > | <!--xxx-->
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function open(code) {
|
||
if (code === 33) {
|
||
effects.consume(code);
|
||
return declarationOpen;
|
||
}
|
||
if (code === 47) {
|
||
effects.consume(code);
|
||
closingTag = true;
|
||
return tagCloseStart;
|
||
}
|
||
if (code === 63) {
|
||
effects.consume(code);
|
||
marker = 3;
|
||
// To do:
|
||
// tokenizer.concrete = true
|
||
// To do: use `markdown-rs` style interrupt.
|
||
// While we’re in an instruction instead of a declaration, we’re on a `?`
|
||
// right now, so we do need to search for `>`, similar to declarations.
|
||
return self.interrupt ? ok : continuationDeclarationInside;
|
||
}
|
||
|
||
// ASCII alphabetical.
|
||
if (asciiAlpha(code)) {
|
||
effects.consume(code);
|
||
// @ts-expect-error: not null.
|
||
buffer = String.fromCharCode(code);
|
||
return tagName;
|
||
}
|
||
return nok(code);
|
||
}
|
||
|
||
/**
|
||
* After `<!`, at declaration, comment, or CDATA.
|
||
*
|
||
* ```markdown
|
||
* > | <!doctype>
|
||
* ^
|
||
* > | <!--xxx-->
|
||
* ^
|
||
* > | <![CDATA[>&<]]>
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function declarationOpen(code) {
|
||
if (code === 45) {
|
||
effects.consume(code);
|
||
marker = 2;
|
||
return commentOpenInside;
|
||
}
|
||
if (code === 91) {
|
||
effects.consume(code);
|
||
marker = 5;
|
||
index = 0;
|
||
return cdataOpenInside;
|
||
}
|
||
|
||
// ASCII alphabetical.
|
||
if (asciiAlpha(code)) {
|
||
effects.consume(code);
|
||
marker = 4;
|
||
// // Do not form containers.
|
||
// tokenizer.concrete = true
|
||
return self.interrupt ? ok : continuationDeclarationInside;
|
||
}
|
||
return nok(code);
|
||
}
|
||
|
||
/**
|
||
* After `<!-`, inside a comment, at another `-`.
|
||
*
|
||
* ```markdown
|
||
* > | <!--xxx-->
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function commentOpenInside(code) {
|
||
if (code === 45) {
|
||
effects.consume(code);
|
||
// // Do not form containers.
|
||
// tokenizer.concrete = true
|
||
return self.interrupt ? ok : continuationDeclarationInside;
|
||
}
|
||
return nok(code);
|
||
}
|
||
|
||
/**
|
||
* After `<![`, inside CDATA, expecting `CDATA[`.
|
||
*
|
||
* ```markdown
|
||
* > | <![CDATA[>&<]]>
|
||
* ^^^^^^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function cdataOpenInside(code) {
|
||
var value = 'CDATA[';
|
||
if (code === value.charCodeAt(index++)) {
|
||
effects.consume(code);
|
||
if (index === value.length) {
|
||
// // Do not form containers.
|
||
// tokenizer.concrete = true
|
||
return self.interrupt ? ok : continuation;
|
||
}
|
||
return cdataOpenInside;
|
||
}
|
||
return nok(code);
|
||
}
|
||
|
||
/**
|
||
* After `</`, in closing tag, at tag name.
|
||
*
|
||
* ```markdown
|
||
* > | </x>
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function tagCloseStart(code) {
|
||
if (asciiAlpha(code)) {
|
||
effects.consume(code);
|
||
// @ts-expect-error: not null.
|
||
buffer = String.fromCharCode(code);
|
||
return tagName;
|
||
}
|
||
return nok(code);
|
||
}
|
||
|
||
/**
|
||
* In tag name.
|
||
*
|
||
* ```markdown
|
||
* > | <ab>
|
||
* ^^
|
||
* > | </ab>
|
||
* ^^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function tagName(code) {
|
||
if (code === null || code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {
|
||
var slash = code === 47;
|
||
var name = buffer.toLowerCase();
|
||
if (!slash && !closingTag && htmlRawNames.includes(name)) {
|
||
marker = 1;
|
||
// // Do not form containers.
|
||
// tokenizer.concrete = true
|
||
return self.interrupt ? ok(code) : continuation(code);
|
||
}
|
||
if (htmlBlockNames.includes(buffer.toLowerCase())) {
|
||
marker = 6;
|
||
if (slash) {
|
||
effects.consume(code);
|
||
return basicSelfClosing;
|
||
}
|
||
|
||
// // Do not form containers.
|
||
// tokenizer.concrete = true
|
||
return self.interrupt ? ok(code) : continuation(code);
|
||
}
|
||
marker = 7;
|
||
// Do not support complete HTML when interrupting.
|
||
return self.interrupt && !self.parser.lazy[self.now().line] ? nok(code) : closingTag ? completeClosingTagAfter(code) : completeAttributeNameBefore(code);
|
||
}
|
||
|
||
// ASCII alphanumerical and `-`.
|
||
if (code === 45 || asciiAlphanumeric(code)) {
|
||
effects.consume(code);
|
||
buffer += String.fromCharCode(code);
|
||
return tagName;
|
||
}
|
||
return nok(code);
|
||
}
|
||
|
||
/**
|
||
* After closing slash of a basic tag name.
|
||
*
|
||
* ```markdown
|
||
* > | <div/>
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function basicSelfClosing(code) {
|
||
if (code === 62) {
|
||
effects.consume(code);
|
||
// // Do not form containers.
|
||
// tokenizer.concrete = true
|
||
return self.interrupt ? ok : continuation;
|
||
}
|
||
return nok(code);
|
||
}
|
||
|
||
/**
|
||
* After closing slash of a complete tag name.
|
||
*
|
||
* ```markdown
|
||
* > | <x/>
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function completeClosingTagAfter(code) {
|
||
if (markdownSpace(code)) {
|
||
effects.consume(code);
|
||
return completeClosingTagAfter;
|
||
}
|
||
return completeEnd(code);
|
||
}
|
||
|
||
/**
|
||
* At an attribute name.
|
||
*
|
||
* At first, this state is used after a complete tag name, after whitespace,
|
||
* where it expects optional attributes or the end of the tag.
|
||
* It is also reused after attributes, when expecting more optional
|
||
* attributes.
|
||
*
|
||
* ```markdown
|
||
* > | <a />
|
||
* ^
|
||
* > | <a :b>
|
||
* ^
|
||
* > | <a _b>
|
||
* ^
|
||
* > | <a b>
|
||
* ^
|
||
* > | <a >
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function completeAttributeNameBefore(code) {
|
||
if (code === 47) {
|
||
effects.consume(code);
|
||
return completeEnd;
|
||
}
|
||
|
||
// ASCII alphanumerical and `:` and `_`.
|
||
if (code === 58 || code === 95 || asciiAlpha(code)) {
|
||
effects.consume(code);
|
||
return completeAttributeName;
|
||
}
|
||
if (markdownSpace(code)) {
|
||
effects.consume(code);
|
||
return completeAttributeNameBefore;
|
||
}
|
||
return completeEnd(code);
|
||
}
|
||
|
||
/**
|
||
* In attribute name.
|
||
*
|
||
* ```markdown
|
||
* > | <a :b>
|
||
* ^
|
||
* > | <a _b>
|
||
* ^
|
||
* > | <a b>
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function completeAttributeName(code) {
|
||
// ASCII alphanumerical and `-`, `.`, `:`, and `_`.
|
||
if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {
|
||
effects.consume(code);
|
||
return completeAttributeName;
|
||
}
|
||
return completeAttributeNameAfter(code);
|
||
}
|
||
|
||
/**
|
||
* After attribute name, at an optional initializer, the end of the tag, or
|
||
* whitespace.
|
||
*
|
||
* ```markdown
|
||
* > | <a b>
|
||
* ^
|
||
* > | <a b=c>
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function completeAttributeNameAfter(code) {
|
||
if (code === 61) {
|
||
effects.consume(code);
|
||
return completeAttributeValueBefore;
|
||
}
|
||
if (markdownSpace(code)) {
|
||
effects.consume(code);
|
||
return completeAttributeNameAfter;
|
||
}
|
||
return completeAttributeNameBefore(code);
|
||
}
|
||
|
||
/**
|
||
* Before unquoted, double quoted, or single quoted attribute value, allowing
|
||
* whitespace.
|
||
*
|
||
* ```markdown
|
||
* > | <a b=c>
|
||
* ^
|
||
* > | <a b="c">
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function completeAttributeValueBefore(code) {
|
||
if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {
|
||
return nok(code);
|
||
}
|
||
if (code === 34 || code === 39) {
|
||
effects.consume(code);
|
||
markerB = code;
|
||
return completeAttributeValueQuoted;
|
||
}
|
||
if (markdownSpace(code)) {
|
||
effects.consume(code);
|
||
return completeAttributeValueBefore;
|
||
}
|
||
return completeAttributeValueUnquoted(code);
|
||
}
|
||
|
||
/**
|
||
* In double or single quoted attribute value.
|
||
*
|
||
* ```markdown
|
||
* > | <a b="c">
|
||
* ^
|
||
* > | <a b='c'>
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function completeAttributeValueQuoted(code) {
|
||
if (code === markerB) {
|
||
effects.consume(code);
|
||
markerB = null;
|
||
return completeAttributeValueQuotedAfter;
|
||
}
|
||
if (code === null || markdownLineEnding(code)) {
|
||
return nok(code);
|
||
}
|
||
effects.consume(code);
|
||
return completeAttributeValueQuoted;
|
||
}
|
||
|
||
/**
|
||
* In unquoted attribute value.
|
||
*
|
||
* ```markdown
|
||
* > | <a b=c>
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function completeAttributeValueUnquoted(code) {
|
||
if (code === null || code === 34 || code === 39 || code === 47 || code === 60 || code === 61 || code === 62 || code === 96 || markdownLineEndingOrSpace(code)) {
|
||
return completeAttributeNameAfter(code);
|
||
}
|
||
effects.consume(code);
|
||
return completeAttributeValueUnquoted;
|
||
}
|
||
|
||
/**
|
||
* After double or single quoted attribute value, before whitespace or the
|
||
* end of the tag.
|
||
*
|
||
* ```markdown
|
||
* > | <a b="c">
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function completeAttributeValueQuotedAfter(code) {
|
||
if (code === 47 || code === 62 || markdownSpace(code)) {
|
||
return completeAttributeNameBefore(code);
|
||
}
|
||
return nok(code);
|
||
}
|
||
|
||
/**
|
||
* In certain circumstances of a complete tag where only an `>` is allowed.
|
||
*
|
||
* ```markdown
|
||
* > | <a b="c">
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function completeEnd(code) {
|
||
if (code === 62) {
|
||
effects.consume(code);
|
||
return completeAfter;
|
||
}
|
||
return nok(code);
|
||
}
|
||
|
||
/**
|
||
* After `>` in a complete tag.
|
||
*
|
||
* ```markdown
|
||
* > | <x>
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function completeAfter(code) {
|
||
if (code === null || markdownLineEnding(code)) {
|
||
// // Do not form containers.
|
||
// tokenizer.concrete = true
|
||
return continuation(code);
|
||
}
|
||
if (markdownSpace(code)) {
|
||
effects.consume(code);
|
||
return completeAfter;
|
||
}
|
||
return nok(code);
|
||
}
|
||
|
||
/**
|
||
* In continuation of any HTML kind.
|
||
*
|
||
* ```markdown
|
||
* > | <!--xxx-->
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function continuation(code) {
|
||
if (code === 45 && marker === 2) {
|
||
effects.consume(code);
|
||
return continuationCommentInside;
|
||
}
|
||
if (code === 60 && marker === 1) {
|
||
effects.consume(code);
|
||
return continuationRawTagOpen;
|
||
}
|
||
if (code === 62 && marker === 4) {
|
||
effects.consume(code);
|
||
return continuationClose;
|
||
}
|
||
if (code === 63 && marker === 3) {
|
||
effects.consume(code);
|
||
return continuationDeclarationInside;
|
||
}
|
||
if (code === 93 && marker === 5) {
|
||
effects.consume(code);
|
||
return continuationCdataInside;
|
||
}
|
||
if (markdownLineEnding(code) && (marker === 6 || marker === 7)) {
|
||
effects.exit('htmlFlowData');
|
||
return effects.check(blankLineBefore, continuationAfter, continuationStart)(code);
|
||
}
|
||
if (code === null || markdownLineEnding(code)) {
|
||
effects.exit('htmlFlowData');
|
||
return continuationStart(code);
|
||
}
|
||
effects.consume(code);
|
||
return continuation;
|
||
}
|
||
|
||
/**
|
||
* In continuation, at eol.
|
||
*
|
||
* ```markdown
|
||
* > | <x>
|
||
* ^
|
||
* | asd
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function continuationStart(code) {
|
||
return effects.check(nonLazyContinuationStart, continuationStartNonLazy, continuationAfter)(code);
|
||
}
|
||
|
||
/**
|
||
* In continuation, at eol, before non-lazy content.
|
||
*
|
||
* ```markdown
|
||
* > | <x>
|
||
* ^
|
||
* | asd
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function continuationStartNonLazy(code) {
|
||
effects.enter('lineEnding');
|
||
effects.consume(code);
|
||
effects.exit('lineEnding');
|
||
return continuationBefore;
|
||
}
|
||
|
||
/**
|
||
* In continuation, before non-lazy content.
|
||
*
|
||
* ```markdown
|
||
* | <x>
|
||
* > | asd
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function continuationBefore(code) {
|
||
if (code === null || markdownLineEnding(code)) {
|
||
return continuationStart(code);
|
||
}
|
||
effects.enter('htmlFlowData');
|
||
return continuation(code);
|
||
}
|
||
|
||
/**
|
||
* In comment continuation, after one `-`, expecting another.
|
||
*
|
||
* ```markdown
|
||
* > | <!--xxx-->
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function continuationCommentInside(code) {
|
||
if (code === 45) {
|
||
effects.consume(code);
|
||
return continuationDeclarationInside;
|
||
}
|
||
return continuation(code);
|
||
}
|
||
|
||
/**
|
||
* In raw continuation, after `<`, at `/`.
|
||
*
|
||
* ```markdown
|
||
* > | <script>console.log(1)</script>
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function continuationRawTagOpen(code) {
|
||
if (code === 47) {
|
||
effects.consume(code);
|
||
buffer = '';
|
||
return continuationRawEndTag;
|
||
}
|
||
return continuation(code);
|
||
}
|
||
|
||
/**
|
||
* In raw continuation, after `</`, in a raw tag name.
|
||
*
|
||
* ```markdown
|
||
* > | <script>console.log(1)</script>
|
||
* ^^^^^^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function continuationRawEndTag(code) {
|
||
if (code === 62) {
|
||
var name = buffer.toLowerCase();
|
||
if (htmlRawNames.includes(name)) {
|
||
effects.consume(code);
|
||
return continuationClose;
|
||
}
|
||
return continuation(code);
|
||
}
|
||
if (asciiAlpha(code) && buffer.length < 8) {
|
||
effects.consume(code);
|
||
// @ts-expect-error: not null.
|
||
buffer += String.fromCharCode(code);
|
||
return continuationRawEndTag;
|
||
}
|
||
return continuation(code);
|
||
}
|
||
|
||
/**
|
||
* In cdata continuation, after `]`, expecting `]>`.
|
||
*
|
||
* ```markdown
|
||
* > | <![CDATA[>&<]]>
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function continuationCdataInside(code) {
|
||
if (code === 93) {
|
||
effects.consume(code);
|
||
return continuationDeclarationInside;
|
||
}
|
||
return continuation(code);
|
||
}
|
||
|
||
/**
|
||
* In declaration or instruction continuation, at `>`.
|
||
*
|
||
* ```markdown
|
||
* > | <!-->
|
||
* ^
|
||
* > | <?>
|
||
* ^
|
||
* > | <!q>
|
||
* ^
|
||
* > | <!--ab-->
|
||
* ^
|
||
* > | <![CDATA[>&<]]>
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function continuationDeclarationInside(code) {
|
||
if (code === 62) {
|
||
effects.consume(code);
|
||
return continuationClose;
|
||
}
|
||
|
||
// More dashes.
|
||
if (code === 45 && marker === 2) {
|
||
effects.consume(code);
|
||
return continuationDeclarationInside;
|
||
}
|
||
return continuation(code);
|
||
}
|
||
|
||
/**
|
||
* In closed continuation: everything we get until the eol/eof is part of it.
|
||
*
|
||
* ```markdown
|
||
* > | <!doctype>
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function continuationClose(code) {
|
||
if (code === null || markdownLineEnding(code)) {
|
||
effects.exit('htmlFlowData');
|
||
return continuationAfter(code);
|
||
}
|
||
effects.consume(code);
|
||
return continuationClose;
|
||
}
|
||
|
||
/**
|
||
* Done.
|
||
*
|
||
* ```markdown
|
||
* > | <!doctype>
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function continuationAfter(code) {
|
||
effects.exit('htmlFlow');
|
||
// // Feel free to interrupt.
|
||
// tokenizer.interrupt = false
|
||
// // No longer concrete.
|
||
// tokenizer.concrete = false
|
||
return ok(code);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Tokenizer}
|
||
*/
|
||
function tokenizeNonLazyContinuationStart(effects, ok, nok) {
|
||
var self = this;
|
||
return start;
|
||
|
||
/**
|
||
* At eol, before continuation.
|
||
*
|
||
* ```markdown
|
||
* > | * ```js
|
||
* ^
|
||
* | b
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function start(code) {
|
||
if (markdownLineEnding(code)) {
|
||
effects.enter('lineEnding');
|
||
effects.consume(code);
|
||
effects.exit('lineEnding');
|
||
return after;
|
||
}
|
||
return nok(code);
|
||
}
|
||
|
||
/**
|
||
* A continuation.
|
||
*
|
||
* ```markdown
|
||
* | * ```js
|
||
* > | b
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function after(code) {
|
||
return self.parser.lazy[self.now().line] ? nok(code) : ok(code);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Tokenizer}
|
||
*/
|
||
function tokenizeBlankLineBefore(effects, ok, nok) {
|
||
return start;
|
||
|
||
/**
|
||
* Before eol, expecting blank line.
|
||
*
|
||
* ```markdown
|
||
* > | <div>
|
||
* ^
|
||
* |
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function start(code) {
|
||
effects.enter('lineEnding');
|
||
effects.consume(code);
|
||
effects.exit('lineEnding');
|
||
return effects.attempt(blankLine, ok, nok);
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-core-commonmark@1.1.0/node_modules/micromark-core-commonmark/lib/code-fenced.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Code} Code
|
||
* @typedef {import('micromark-util-types').Construct} Construct
|
||
* @typedef {import('micromark-util-types').State} State
|
||
* @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
|
||
* @typedef {import('micromark-util-types').Tokenizer} Tokenizer
|
||
*/
|
||
|
||
|
||
|
||
/** @type {Construct} */
|
||
var nonLazyContinuation = {
|
||
tokenize: tokenizeNonLazyContinuation,
|
||
partial: true
|
||
};
|
||
|
||
/** @type {Construct} */
|
||
var codeFenced = {
|
||
name: 'codeFenced',
|
||
tokenize: tokenizeCodeFenced,
|
||
concrete: true
|
||
};
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Tokenizer}
|
||
*/
|
||
function tokenizeCodeFenced(effects, ok, nok) {
|
||
var self = this;
|
||
/** @type {Construct} */
|
||
var closeStart = {
|
||
tokenize: tokenizeCloseStart,
|
||
partial: true
|
||
};
|
||
var initialPrefix = 0;
|
||
var sizeOpen = 0;
|
||
/** @type {NonNullable<Code>} */
|
||
var marker;
|
||
return start;
|
||
|
||
/**
|
||
* Start of code.
|
||
*
|
||
* ```markdown
|
||
* > | ~~~js
|
||
* ^
|
||
* | alert(1)
|
||
* | ~~~
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function start(code) {
|
||
// To do: parse whitespace like `markdown-rs`.
|
||
return beforeSequenceOpen(code);
|
||
}
|
||
|
||
/**
|
||
* In opening fence, after prefix, at sequence.
|
||
*
|
||
* ```markdown
|
||
* > | ~~~js
|
||
* ^
|
||
* | alert(1)
|
||
* | ~~~
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function beforeSequenceOpen(code) {
|
||
var tail = self.events[self.events.length - 1];
|
||
initialPrefix = tail && tail[1].type === 'linePrefix' ? tail[2].sliceSerialize(tail[1], true).length : 0;
|
||
marker = code;
|
||
effects.enter('codeFenced');
|
||
effects.enter('codeFencedFence');
|
||
effects.enter('codeFencedFenceSequence');
|
||
return sequenceOpen(code);
|
||
}
|
||
|
||
/**
|
||
* In opening fence sequence.
|
||
*
|
||
* ```markdown
|
||
* > | ~~~js
|
||
* ^
|
||
* | alert(1)
|
||
* | ~~~
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function sequenceOpen(code) {
|
||
if (code === marker) {
|
||
sizeOpen++;
|
||
effects.consume(code);
|
||
return sequenceOpen;
|
||
}
|
||
if (sizeOpen < 3) {
|
||
return nok(code);
|
||
}
|
||
effects.exit('codeFencedFenceSequence');
|
||
return markdownSpace(code) ? factorySpace(effects, infoBefore, 'whitespace')(code) : infoBefore(code);
|
||
}
|
||
|
||
/**
|
||
* In opening fence, after the sequence (and optional whitespace), before info.
|
||
*
|
||
* ```markdown
|
||
* > | ~~~js
|
||
* ^
|
||
* | alert(1)
|
||
* | ~~~
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function infoBefore(code) {
|
||
if (code === null || markdownLineEnding(code)) {
|
||
effects.exit('codeFencedFence');
|
||
return self.interrupt ? ok(code) : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);
|
||
}
|
||
effects.enter('codeFencedFenceInfo');
|
||
effects.enter('chunkString', {
|
||
contentType: 'string'
|
||
});
|
||
return info(code);
|
||
}
|
||
|
||
/**
|
||
* In info.
|
||
*
|
||
* ```markdown
|
||
* > | ~~~js
|
||
* ^
|
||
* | alert(1)
|
||
* | ~~~
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function info(code) {
|
||
if (code === null || markdownLineEnding(code)) {
|
||
effects.exit('chunkString');
|
||
effects.exit('codeFencedFenceInfo');
|
||
return infoBefore(code);
|
||
}
|
||
if (markdownSpace(code)) {
|
||
effects.exit('chunkString');
|
||
effects.exit('codeFencedFenceInfo');
|
||
return factorySpace(effects, metaBefore, 'whitespace')(code);
|
||
}
|
||
if (code === 96 && code === marker) {
|
||
return nok(code);
|
||
}
|
||
effects.consume(code);
|
||
return info;
|
||
}
|
||
|
||
/**
|
||
* In opening fence, after info and whitespace, before meta.
|
||
*
|
||
* ```markdown
|
||
* > | ~~~js eval
|
||
* ^
|
||
* | alert(1)
|
||
* | ~~~
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function metaBefore(code) {
|
||
if (code === null || markdownLineEnding(code)) {
|
||
return infoBefore(code);
|
||
}
|
||
effects.enter('codeFencedFenceMeta');
|
||
effects.enter('chunkString', {
|
||
contentType: 'string'
|
||
});
|
||
return meta(code);
|
||
}
|
||
|
||
/**
|
||
* In meta.
|
||
*
|
||
* ```markdown
|
||
* > | ~~~js eval
|
||
* ^
|
||
* | alert(1)
|
||
* | ~~~
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function meta(code) {
|
||
if (code === null || markdownLineEnding(code)) {
|
||
effects.exit('chunkString');
|
||
effects.exit('codeFencedFenceMeta');
|
||
return infoBefore(code);
|
||
}
|
||
if (code === 96 && code === marker) {
|
||
return nok(code);
|
||
}
|
||
effects.consume(code);
|
||
return meta;
|
||
}
|
||
|
||
/**
|
||
* At eol/eof in code, before a non-lazy closing fence or content.
|
||
*
|
||
* ```markdown
|
||
* > | ~~~js
|
||
* ^
|
||
* > | alert(1)
|
||
* ^
|
||
* | ~~~
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function atNonLazyBreak(code) {
|
||
return effects.attempt(closeStart, after, contentBefore)(code);
|
||
}
|
||
|
||
/**
|
||
* Before code content, not a closing fence, at eol.
|
||
*
|
||
* ```markdown
|
||
* | ~~~js
|
||
* > | alert(1)
|
||
* ^
|
||
* | ~~~
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function contentBefore(code) {
|
||
effects.enter('lineEnding');
|
||
effects.consume(code);
|
||
effects.exit('lineEnding');
|
||
return contentStart;
|
||
}
|
||
|
||
/**
|
||
* Before code content, not a closing fence.
|
||
*
|
||
* ```markdown
|
||
* | ~~~js
|
||
* > | alert(1)
|
||
* ^
|
||
* | ~~~
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function contentStart(code) {
|
||
return initialPrefix > 0 && markdownSpace(code) ? factorySpace(effects, beforeContentChunk, 'linePrefix', initialPrefix + 1)(code) : beforeContentChunk(code);
|
||
}
|
||
|
||
/**
|
||
* Before code content, after optional prefix.
|
||
*
|
||
* ```markdown
|
||
* | ~~~js
|
||
* > | alert(1)
|
||
* ^
|
||
* | ~~~
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function beforeContentChunk(code) {
|
||
if (code === null || markdownLineEnding(code)) {
|
||
return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);
|
||
}
|
||
effects.enter('codeFlowValue');
|
||
return contentChunk(code);
|
||
}
|
||
|
||
/**
|
||
* In code content.
|
||
*
|
||
* ```markdown
|
||
* | ~~~js
|
||
* > | alert(1)
|
||
* ^^^^^^^^
|
||
* | ~~~
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function contentChunk(code) {
|
||
if (code === null || markdownLineEnding(code)) {
|
||
effects.exit('codeFlowValue');
|
||
return beforeContentChunk(code);
|
||
}
|
||
effects.consume(code);
|
||
return contentChunk;
|
||
}
|
||
|
||
/**
|
||
* After code.
|
||
*
|
||
* ```markdown
|
||
* | ~~~js
|
||
* | alert(1)
|
||
* > | ~~~
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function after(code) {
|
||
effects.exit('codeFenced');
|
||
return ok(code);
|
||
}
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Tokenizer}
|
||
*/
|
||
function tokenizeCloseStart(effects, ok, nok) {
|
||
var size = 0;
|
||
return startBefore;
|
||
|
||
/**
|
||
*
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function startBefore(code) {
|
||
effects.enter('lineEnding');
|
||
effects.consume(code);
|
||
effects.exit('lineEnding');
|
||
return start;
|
||
}
|
||
|
||
/**
|
||
* Before closing fence, at optional whitespace.
|
||
*
|
||
* ```markdown
|
||
* | ~~~js
|
||
* | alert(1)
|
||
* > | ~~~
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function start(code) {
|
||
// Always populated by defaults.
|
||
|
||
// To do: `enter` here or in next state?
|
||
effects.enter('codeFencedFence');
|
||
return markdownSpace(code) ? factorySpace(effects, beforeSequenceClose, 'linePrefix', self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : beforeSequenceClose(code);
|
||
}
|
||
|
||
/**
|
||
* In closing fence, after optional whitespace, at sequence.
|
||
*
|
||
* ```markdown
|
||
* | ~~~js
|
||
* | alert(1)
|
||
* > | ~~~
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function beforeSequenceClose(code) {
|
||
if (code === marker) {
|
||
effects.enter('codeFencedFenceSequence');
|
||
return sequenceClose(code);
|
||
}
|
||
return nok(code);
|
||
}
|
||
|
||
/**
|
||
* In closing fence sequence.
|
||
*
|
||
* ```markdown
|
||
* | ~~~js
|
||
* | alert(1)
|
||
* > | ~~~
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function sequenceClose(code) {
|
||
if (code === marker) {
|
||
size++;
|
||
effects.consume(code);
|
||
return sequenceClose;
|
||
}
|
||
if (size >= sizeOpen) {
|
||
effects.exit('codeFencedFenceSequence');
|
||
return markdownSpace(code) ? factorySpace(effects, sequenceCloseAfter, 'whitespace')(code) : sequenceCloseAfter(code);
|
||
}
|
||
return nok(code);
|
||
}
|
||
|
||
/**
|
||
* After closing fence sequence, after optional whitespace.
|
||
*
|
||
* ```markdown
|
||
* | ~~~js
|
||
* | alert(1)
|
||
* > | ~~~
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function sequenceCloseAfter(code) {
|
||
if (code === null || markdownLineEnding(code)) {
|
||
effects.exit('codeFencedFence');
|
||
return ok(code);
|
||
}
|
||
return nok(code);
|
||
}
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Tokenizer}
|
||
*/
|
||
function tokenizeNonLazyContinuation(effects, ok, nok) {
|
||
var self = this;
|
||
return start;
|
||
|
||
/**
|
||
*
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function start(code) {
|
||
if (code === null) {
|
||
return nok(code);
|
||
}
|
||
effects.enter('lineEnding');
|
||
effects.consume(code);
|
||
effects.exit('lineEnding');
|
||
return lineStart;
|
||
}
|
||
|
||
/**
|
||
*
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function lineStart(code) {
|
||
return self.parser.lazy[self.now().line] ? nok(code) : ok(code);
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/decode-named-character-reference@1.0.2/node_modules/decode-named-character-reference/index.dom.js
|
||
/// <reference lib="dom" />
|
||
|
||
/* eslint-env browser */
|
||
|
||
var index_dom_element = document.createElement('i');
|
||
|
||
/**
|
||
* @param {string} value
|
||
* @returns {string|false}
|
||
*/
|
||
function decodeNamedCharacterReference(value) {
|
||
var characterReference = '&' + value + ';';
|
||
index_dom_element.innerHTML = characterReference;
|
||
var char = index_dom_element.textContent;
|
||
|
||
// Some named character references do not require the closing semicolon
|
||
// (`¬`, for instance), which leads to situations where parsing the assumed
|
||
// named reference of `¬it;` will result in the string `¬it;`.
|
||
// When we encounter a trailing semicolon after parsing, and the character
|
||
// reference to decode was not a semicolon (`;`), we can assume that the
|
||
// matching was not complete.
|
||
// @ts-expect-error: TypeScript is wrong that `textContent` on elements can
|
||
// yield `null`.
|
||
if (char.charCodeAt(char.length - 1) === 59 /* `;` */ && value !== 'semi') {
|
||
return false;
|
||
}
|
||
|
||
// If the decoded string is equal to the input, the character reference was
|
||
// not valid.
|
||
// @ts-expect-error: TypeScript is wrong that `textContent` on elements can
|
||
// yield `null`.
|
||
return char === characterReference ? false : char;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-core-commonmark@1.1.0/node_modules/micromark-core-commonmark/lib/character-reference.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Code} Code
|
||
* @typedef {import('micromark-util-types').Construct} Construct
|
||
* @typedef {import('micromark-util-types').State} State
|
||
* @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
|
||
* @typedef {import('micromark-util-types').Tokenizer} Tokenizer
|
||
*/
|
||
|
||
|
||
|
||
/** @type {Construct} */
|
||
var characterReference = {
|
||
name: 'characterReference',
|
||
tokenize: tokenizeCharacterReference
|
||
};
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Tokenizer}
|
||
*/
|
||
function tokenizeCharacterReference(effects, ok, nok) {
|
||
var self = this;
|
||
var size = 0;
|
||
/** @type {number} */
|
||
var max;
|
||
/** @type {(code: Code) => boolean} */
|
||
var test;
|
||
return start;
|
||
|
||
/**
|
||
* Start of character reference.
|
||
*
|
||
* ```markdown
|
||
* > | a&b
|
||
* ^
|
||
* > | a{b
|
||
* ^
|
||
* > | a	b
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function start(code) {
|
||
effects.enter('characterReference');
|
||
effects.enter('characterReferenceMarker');
|
||
effects.consume(code);
|
||
effects.exit('characterReferenceMarker');
|
||
return open;
|
||
}
|
||
|
||
/**
|
||
* After `&`, at `#` for numeric references or alphanumeric for named
|
||
* references.
|
||
*
|
||
* ```markdown
|
||
* > | a&b
|
||
* ^
|
||
* > | a{b
|
||
* ^
|
||
* > | a	b
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function open(code) {
|
||
if (code === 35) {
|
||
effects.enter('characterReferenceMarkerNumeric');
|
||
effects.consume(code);
|
||
effects.exit('characterReferenceMarkerNumeric');
|
||
return numeric;
|
||
}
|
||
effects.enter('characterReferenceValue');
|
||
max = 31;
|
||
test = asciiAlphanumeric;
|
||
return value(code);
|
||
}
|
||
|
||
/**
|
||
* After `#`, at `x` for hexadecimals or digit for decimals.
|
||
*
|
||
* ```markdown
|
||
* > | a{b
|
||
* ^
|
||
* > | a	b
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function numeric(code) {
|
||
if (code === 88 || code === 120) {
|
||
effects.enter('characterReferenceMarkerHexadecimal');
|
||
effects.consume(code);
|
||
effects.exit('characterReferenceMarkerHexadecimal');
|
||
effects.enter('characterReferenceValue');
|
||
max = 6;
|
||
test = asciiHexDigit;
|
||
return value;
|
||
}
|
||
effects.enter('characterReferenceValue');
|
||
max = 7;
|
||
test = asciiDigit;
|
||
return value(code);
|
||
}
|
||
|
||
/**
|
||
* After markers (`&#x`, `&#`, or `&`), in value, before `;`.
|
||
*
|
||
* The character reference kind defines what and how many characters are
|
||
* allowed.
|
||
*
|
||
* ```markdown
|
||
* > | a&b
|
||
* ^^^
|
||
* > | a{b
|
||
* ^^^
|
||
* > | a	b
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function value(code) {
|
||
if (code === 59 && size) {
|
||
var token = effects.exit('characterReferenceValue');
|
||
if (test === asciiAlphanumeric && !decodeNamedCharacterReference(self.sliceSerialize(token))) {
|
||
return nok(code);
|
||
}
|
||
|
||
// To do: `markdown-rs` uses a different name:
|
||
// `CharacterReferenceMarkerSemi`.
|
||
effects.enter('characterReferenceMarker');
|
||
effects.consume(code);
|
||
effects.exit('characterReferenceMarker');
|
||
effects.exit('characterReference');
|
||
return ok;
|
||
}
|
||
if (test(code) && size++ < max) {
|
||
effects.consume(code);
|
||
return value;
|
||
}
|
||
return nok(code);
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-core-commonmark@1.1.0/node_modules/micromark-core-commonmark/lib/character-escape.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Construct} Construct
|
||
* @typedef {import('micromark-util-types').State} State
|
||
* @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
|
||
* @typedef {import('micromark-util-types').Tokenizer} Tokenizer
|
||
*/
|
||
|
||
|
||
/** @type {Construct} */
|
||
var characterEscape = {
|
||
name: 'characterEscape',
|
||
tokenize: tokenizeCharacterEscape
|
||
};
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Tokenizer}
|
||
*/
|
||
function tokenizeCharacterEscape(effects, ok, nok) {
|
||
return start;
|
||
|
||
/**
|
||
* Start of character escape.
|
||
*
|
||
* ```markdown
|
||
* > | a\*b
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function start(code) {
|
||
effects.enter('characterEscape');
|
||
effects.enter('escapeMarker');
|
||
effects.consume(code);
|
||
effects.exit('escapeMarker');
|
||
return inside;
|
||
}
|
||
|
||
/**
|
||
* After `\`, at punctuation.
|
||
*
|
||
* ```markdown
|
||
* > | a\*b
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function inside(code) {
|
||
// ASCII punctuation.
|
||
if (asciiPunctuation(code)) {
|
||
effects.enter('characterEscapeValue');
|
||
effects.consume(code);
|
||
effects.exit('characterEscapeValue');
|
||
effects.exit('characterEscape');
|
||
return ok;
|
||
}
|
||
return nok(code);
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-core-commonmark@1.1.0/node_modules/micromark-core-commonmark/lib/line-ending.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Construct} Construct
|
||
* @typedef {import('micromark-util-types').State} State
|
||
* @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
|
||
* @typedef {import('micromark-util-types').Tokenizer} Tokenizer
|
||
*/
|
||
|
||
|
||
|
||
/** @type {Construct} */
|
||
var lineEnding = {
|
||
name: 'lineEnding',
|
||
tokenize: tokenizeLineEnding
|
||
};
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Tokenizer}
|
||
*/
|
||
function tokenizeLineEnding(effects, ok) {
|
||
return start;
|
||
|
||
/** @type {State} */
|
||
function start(code) {
|
||
effects.enter('lineEnding');
|
||
effects.consume(code);
|
||
effects.exit('lineEnding');
|
||
return factorySpace(effects, ok, 'linePrefix');
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-core-commonmark@1.1.0/node_modules/micromark-core-commonmark/lib/label-end.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Construct} Construct
|
||
* @typedef {import('micromark-util-types').Event} Event
|
||
* @typedef {import('micromark-util-types').Resolver} Resolver
|
||
* @typedef {import('micromark-util-types').State} State
|
||
* @typedef {import('micromark-util-types').Token} Token
|
||
* @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
|
||
* @typedef {import('micromark-util-types').Tokenizer} Tokenizer
|
||
*/
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
/** @type {Construct} */
|
||
var labelEnd = {
|
||
name: 'labelEnd',
|
||
tokenize: tokenizeLabelEnd,
|
||
resolveTo: resolveToLabelEnd,
|
||
resolveAll: resolveAllLabelEnd
|
||
};
|
||
|
||
/** @type {Construct} */
|
||
var resourceConstruct = {
|
||
tokenize: tokenizeResource
|
||
};
|
||
/** @type {Construct} */
|
||
var referenceFullConstruct = {
|
||
tokenize: tokenizeReferenceFull
|
||
};
|
||
/** @type {Construct} */
|
||
var referenceCollapsedConstruct = {
|
||
tokenize: tokenizeReferenceCollapsed
|
||
};
|
||
|
||
/** @type {Resolver} */
|
||
function resolveAllLabelEnd(events) {
|
||
var index = -1;
|
||
while (++index < events.length) {
|
||
var token = events[index][1];
|
||
if (token.type === 'labelImage' || token.type === 'labelLink' || token.type === 'labelEnd') {
|
||
// Remove the marker.
|
||
events.splice(index + 1, token.type === 'labelImage' ? 4 : 2);
|
||
token.type = 'data';
|
||
index++;
|
||
}
|
||
}
|
||
return events;
|
||
}
|
||
|
||
/** @type {Resolver} */
|
||
function resolveToLabelEnd(events, context) {
|
||
var index = events.length;
|
||
var offset = 0;
|
||
/** @type {Token} */
|
||
var token;
|
||
/** @type {number | undefined} */
|
||
var open;
|
||
/** @type {number | undefined} */
|
||
var close;
|
||
/** @type {Array<Event>} */
|
||
var media;
|
||
|
||
// Find an opening.
|
||
while (index--) {
|
||
token = events[index][1];
|
||
if (open) {
|
||
// If we see another link, or inactive link label, we’ve been here before.
|
||
if (token.type === 'link' || token.type === 'labelLink' && token._inactive) {
|
||
break;
|
||
}
|
||
|
||
// Mark other link openings as inactive, as we can’t have links in
|
||
// links.
|
||
if (events[index][0] === 'enter' && token.type === 'labelLink') {
|
||
token._inactive = true;
|
||
}
|
||
} else if (close) {
|
||
if (events[index][0] === 'enter' && (token.type === 'labelImage' || token.type === 'labelLink') && !token._balanced) {
|
||
open = index;
|
||
if (token.type !== 'labelLink') {
|
||
offset = 2;
|
||
break;
|
||
}
|
||
}
|
||
} else if (token.type === 'labelEnd') {
|
||
close = index;
|
||
}
|
||
}
|
||
var group = {
|
||
type: events[open][1].type === 'labelLink' ? 'link' : 'image',
|
||
start: Object.assign({}, events[open][1].start),
|
||
end: Object.assign({}, events[events.length - 1][1].end)
|
||
};
|
||
var label = {
|
||
type: 'label',
|
||
start: Object.assign({}, events[open][1].start),
|
||
end: Object.assign({}, events[close][1].end)
|
||
};
|
||
var text = {
|
||
type: 'labelText',
|
||
start: Object.assign({}, events[open + offset + 2][1].end),
|
||
end: Object.assign({}, events[close - 2][1].start)
|
||
};
|
||
media = [['enter', group, context], ['enter', label, context]];
|
||
|
||
// Opening marker.
|
||
media = push(media, events.slice(open + 1, open + offset + 3));
|
||
|
||
// Text open.
|
||
media = push(media, [['enter', text, context]]);
|
||
|
||
// Always populated by defaults.
|
||
|
||
// Between.
|
||
media = push(media, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + offset + 4, close - 3), context));
|
||
|
||
// Text close, marker close, label close.
|
||
media = push(media, [['exit', text, context], events[close - 2], events[close - 1], ['exit', label, context]]);
|
||
|
||
// Reference, resource, or so.
|
||
media = push(media, events.slice(close + 1));
|
||
|
||
// Media close.
|
||
media = push(media, [['exit', group, context]]);
|
||
splice(events, open, events.length, media);
|
||
return events;
|
||
}
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Tokenizer}
|
||
*/
|
||
function tokenizeLabelEnd(effects, ok, nok) {
|
||
var self = this;
|
||
var index = self.events.length;
|
||
/** @type {Token} */
|
||
var labelStart;
|
||
/** @type {boolean} */
|
||
var defined;
|
||
|
||
// Find an opening.
|
||
while (index--) {
|
||
if ((self.events[index][1].type === 'labelImage' || self.events[index][1].type === 'labelLink') && !self.events[index][1]._balanced) {
|
||
labelStart = self.events[index][1];
|
||
break;
|
||
}
|
||
}
|
||
return start;
|
||
|
||
/**
|
||
* Start of label end.
|
||
*
|
||
* ```markdown
|
||
* > | [a](b) c
|
||
* ^
|
||
* > | [a][b] c
|
||
* ^
|
||
* > | [a][] b
|
||
* ^
|
||
* > | [a] b
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function start(code) {
|
||
// If there is not an okay opening.
|
||
if (!labelStart) {
|
||
return nok(code);
|
||
}
|
||
|
||
// If the corresponding label (link) start is marked as inactive,
|
||
// it means we’d be wrapping a link, like this:
|
||
//
|
||
// ```markdown
|
||
// > | a [b [c](d) e](f) g.
|
||
// ^
|
||
// ```
|
||
//
|
||
// We can’t have that, so it’s just balanced brackets.
|
||
if (labelStart._inactive) {
|
||
return labelEndNok(code);
|
||
}
|
||
defined = self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize({
|
||
start: labelStart.end,
|
||
end: self.now()
|
||
})));
|
||
effects.enter('labelEnd');
|
||
effects.enter('labelMarker');
|
||
effects.consume(code);
|
||
effects.exit('labelMarker');
|
||
effects.exit('labelEnd');
|
||
return after;
|
||
}
|
||
|
||
/**
|
||
* After `]`.
|
||
*
|
||
* ```markdown
|
||
* > | [a](b) c
|
||
* ^
|
||
* > | [a][b] c
|
||
* ^
|
||
* > | [a][] b
|
||
* ^
|
||
* > | [a] b
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function after(code) {
|
||
// Note: `markdown-rs` also parses GFM footnotes here, which for us is in
|
||
// an extension.
|
||
|
||
// Resource (`[asd](fgh)`)?
|
||
if (code === 40) {
|
||
return effects.attempt(resourceConstruct, labelEndOk, defined ? labelEndOk : labelEndNok)(code);
|
||
}
|
||
|
||
// Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?
|
||
if (code === 91) {
|
||
return effects.attempt(referenceFullConstruct, labelEndOk, defined ? referenceNotFull : labelEndNok)(code);
|
||
}
|
||
|
||
// Shortcut (`[asd]`) reference?
|
||
return defined ? labelEndOk(code) : labelEndNok(code);
|
||
}
|
||
|
||
/**
|
||
* After `]`, at `[`, but not at a full reference.
|
||
*
|
||
* > 👉 **Note**: we only get here if the label is defined.
|
||
*
|
||
* ```markdown
|
||
* > | [a][] b
|
||
* ^
|
||
* > | [a] b
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function referenceNotFull(code) {
|
||
return effects.attempt(referenceCollapsedConstruct, labelEndOk, labelEndNok)(code);
|
||
}
|
||
|
||
/**
|
||
* Done, we found something.
|
||
*
|
||
* ```markdown
|
||
* > | [a](b) c
|
||
* ^
|
||
* > | [a][b] c
|
||
* ^
|
||
* > | [a][] b
|
||
* ^
|
||
* > | [a] b
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function labelEndOk(code) {
|
||
// Note: `markdown-rs` does a bunch of stuff here.
|
||
return ok(code);
|
||
}
|
||
|
||
/**
|
||
* Done, it’s nothing.
|
||
*
|
||
* There was an okay opening, but we didn’t match anything.
|
||
*
|
||
* ```markdown
|
||
* > | [a](b c
|
||
* ^
|
||
* > | [a][b c
|
||
* ^
|
||
* > | [a] b
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function labelEndNok(code) {
|
||
labelStart._balanced = true;
|
||
return nok(code);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Tokenizer}
|
||
*/
|
||
function tokenizeResource(effects, ok, nok) {
|
||
return resourceStart;
|
||
|
||
/**
|
||
* At a resource.
|
||
*
|
||
* ```markdown
|
||
* > | [a](b) c
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function resourceStart(code) {
|
||
effects.enter('resource');
|
||
effects.enter('resourceMarker');
|
||
effects.consume(code);
|
||
effects.exit('resourceMarker');
|
||
return resourceBefore;
|
||
}
|
||
|
||
/**
|
||
* In resource, after `(`, at optional whitespace.
|
||
*
|
||
* ```markdown
|
||
* > | [a](b) c
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function resourceBefore(code) {
|
||
return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceOpen)(code) : resourceOpen(code);
|
||
}
|
||
|
||
/**
|
||
* In resource, after optional whitespace, at `)` or a destination.
|
||
*
|
||
* ```markdown
|
||
* > | [a](b) c
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function resourceOpen(code) {
|
||
if (code === 41) {
|
||
return resourceEnd(code);
|
||
}
|
||
return factoryDestination(effects, resourceDestinationAfter, resourceDestinationMissing, 'resourceDestination', 'resourceDestinationLiteral', 'resourceDestinationLiteralMarker', 'resourceDestinationRaw', 'resourceDestinationString', 32)(code);
|
||
}
|
||
|
||
/**
|
||
* In resource, after destination, at optional whitespace.
|
||
*
|
||
* ```markdown
|
||
* > | [a](b) c
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function resourceDestinationAfter(code) {
|
||
return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceBetween)(code) : resourceEnd(code);
|
||
}
|
||
|
||
/**
|
||
* At invalid destination.
|
||
*
|
||
* ```markdown
|
||
* > | [a](<<) b
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function resourceDestinationMissing(code) {
|
||
return nok(code);
|
||
}
|
||
|
||
/**
|
||
* In resource, after destination and whitespace, at `(` or title.
|
||
*
|
||
* ```markdown
|
||
* > | [a](b ) c
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function resourceBetween(code) {
|
||
if (code === 34 || code === 39 || code === 40) {
|
||
return factoryTitle(effects, resourceTitleAfter, nok, 'resourceTitle', 'resourceTitleMarker', 'resourceTitleString')(code);
|
||
}
|
||
return resourceEnd(code);
|
||
}
|
||
|
||
/**
|
||
* In resource, after title, at optional whitespace.
|
||
*
|
||
* ```markdown
|
||
* > | [a](b "c") d
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function resourceTitleAfter(code) {
|
||
return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceEnd)(code) : resourceEnd(code);
|
||
}
|
||
|
||
/**
|
||
* In resource, at `)`.
|
||
*
|
||
* ```markdown
|
||
* > | [a](b) d
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function resourceEnd(code) {
|
||
if (code === 41) {
|
||
effects.enter('resourceMarker');
|
||
effects.consume(code);
|
||
effects.exit('resourceMarker');
|
||
effects.exit('resource');
|
||
return ok;
|
||
}
|
||
return nok(code);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Tokenizer}
|
||
*/
|
||
function tokenizeReferenceFull(effects, ok, nok) {
|
||
var self = this;
|
||
return referenceFull;
|
||
|
||
/**
|
||
* In a reference (full), at the `[`.
|
||
*
|
||
* ```markdown
|
||
* > | [a][b] d
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function referenceFull(code) {
|
||
return factoryLabel.call(self, effects, referenceFullAfter, referenceFullMissing, 'reference', 'referenceMarker', 'referenceString')(code);
|
||
}
|
||
|
||
/**
|
||
* In a reference (full), after `]`.
|
||
*
|
||
* ```markdown
|
||
* > | [a][b] d
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function referenceFullAfter(code) {
|
||
return self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1))) ? ok(code) : nok(code);
|
||
}
|
||
|
||
/**
|
||
* In reference (full) that was missing.
|
||
*
|
||
* ```markdown
|
||
* > | [a][b d
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function referenceFullMissing(code) {
|
||
return nok(code);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Tokenizer}
|
||
*/
|
||
function tokenizeReferenceCollapsed(effects, ok, nok) {
|
||
return referenceCollapsedStart;
|
||
|
||
/**
|
||
* In reference (collapsed), at `[`.
|
||
*
|
||
* > 👉 **Note**: we only get here if the label is defined.
|
||
*
|
||
* ```markdown
|
||
* > | [a][] d
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function referenceCollapsedStart(code) {
|
||
// We only attempt a collapsed label if there’s a `[`.
|
||
|
||
effects.enter('reference');
|
||
effects.enter('referenceMarker');
|
||
effects.consume(code);
|
||
effects.exit('referenceMarker');
|
||
return referenceCollapsedOpen;
|
||
}
|
||
|
||
/**
|
||
* In reference (collapsed), at `]`.
|
||
*
|
||
* > 👉 **Note**: we only get here if the label is defined.
|
||
*
|
||
* ```markdown
|
||
* > | [a][] d
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function referenceCollapsedOpen(code) {
|
||
if (code === 93) {
|
||
effects.enter('referenceMarker');
|
||
effects.consume(code);
|
||
effects.exit('referenceMarker');
|
||
effects.exit('reference');
|
||
return ok;
|
||
}
|
||
return nok(code);
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-core-commonmark@1.1.0/node_modules/micromark-core-commonmark/lib/label-start-image.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Construct} Construct
|
||
* @typedef {import('micromark-util-types').State} State
|
||
* @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
|
||
* @typedef {import('micromark-util-types').Tokenizer} Tokenizer
|
||
*/
|
||
|
||
|
||
|
||
/** @type {Construct} */
|
||
var labelStartImage = {
|
||
name: 'labelStartImage',
|
||
tokenize: tokenizeLabelStartImage,
|
||
resolveAll: labelEnd.resolveAll
|
||
};
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Tokenizer}
|
||
*/
|
||
function tokenizeLabelStartImage(effects, ok, nok) {
|
||
var self = this;
|
||
return start;
|
||
|
||
/**
|
||
* Start of label (image) start.
|
||
*
|
||
* ```markdown
|
||
* > | a ![b] c
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function start(code) {
|
||
effects.enter('labelImage');
|
||
effects.enter('labelImageMarker');
|
||
effects.consume(code);
|
||
effects.exit('labelImageMarker');
|
||
return open;
|
||
}
|
||
|
||
/**
|
||
* After `!`, at `[`.
|
||
*
|
||
* ```markdown
|
||
* > | a ![b] c
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function open(code) {
|
||
if (code === 91) {
|
||
effects.enter('labelMarker');
|
||
effects.consume(code);
|
||
effects.exit('labelMarker');
|
||
effects.exit('labelImage');
|
||
return after;
|
||
}
|
||
return nok(code);
|
||
}
|
||
|
||
/**
|
||
* After `![`.
|
||
*
|
||
* ```markdown
|
||
* > | a ![b] c
|
||
* ^
|
||
* ```
|
||
*
|
||
* This is needed in because, when GFM footnotes are enabled, images never
|
||
* form when started with a `^`.
|
||
* Instead, links form:
|
||
*
|
||
* ```markdown
|
||
* 
|
||
*
|
||
* ![^a][b]
|
||
*
|
||
* [b]: c
|
||
* ```
|
||
*
|
||
* ```html
|
||
* <p>!<a href=\"b\">^a</a></p>
|
||
* <p>!<a href=\"c\">^a</a></p>
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function after(code) {
|
||
// To do: use a new field to do this, this is still needed for
|
||
// `micromark-extension-gfm-footnote`, but the `label-start-link`
|
||
// behavior isn’t.
|
||
// Hidden footnotes hook.
|
||
/* c8 ignore next 3 */
|
||
return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-util-classify-character@1.1.0/node_modules/micromark-util-classify-character/index.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Code} Code
|
||
*/
|
||
|
||
|
||
/**
|
||
* Classify whether a code represents whitespace, punctuation, or something
|
||
* else.
|
||
*
|
||
* Used for attention (emphasis, strong), whose sequences can open or close
|
||
* based on the class of surrounding characters.
|
||
*
|
||
* > 👉 **Note**: eof (`null`) is seen as whitespace.
|
||
*
|
||
* @param {Code} code
|
||
* Code.
|
||
* @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}
|
||
* Group.
|
||
*/
|
||
function classifyCharacter(code) {
|
||
if (code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {
|
||
return 1;
|
||
}
|
||
if (unicodePunctuation(code)) {
|
||
return 2;
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-core-commonmark@1.1.0/node_modules/micromark-core-commonmark/lib/attention.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Code} Code
|
||
* @typedef {import('micromark-util-types').Construct} Construct
|
||
* @typedef {import('micromark-util-types').Event} Event
|
||
* @typedef {import('micromark-util-types').Point} Point
|
||
* @typedef {import('micromark-util-types').Resolver} Resolver
|
||
* @typedef {import('micromark-util-types').State} State
|
||
* @typedef {import('micromark-util-types').Token} Token
|
||
* @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
|
||
* @typedef {import('micromark-util-types').Tokenizer} Tokenizer
|
||
*/
|
||
|
||
|
||
|
||
|
||
/** @type {Construct} */
|
||
var attention = {
|
||
name: 'attention',
|
||
tokenize: tokenizeAttention,
|
||
resolveAll: resolveAllAttention
|
||
};
|
||
|
||
/**
|
||
* Take all events and resolve attention to emphasis or strong.
|
||
*
|
||
* @type {Resolver}
|
||
*/
|
||
function resolveAllAttention(events, context) {
|
||
var index = -1;
|
||
/** @type {number} */
|
||
var open;
|
||
/** @type {Token} */
|
||
var group;
|
||
/** @type {Token} */
|
||
var text;
|
||
/** @type {Token} */
|
||
var openingSequence;
|
||
/** @type {Token} */
|
||
var closingSequence;
|
||
/** @type {number} */
|
||
var use;
|
||
/** @type {Array<Event>} */
|
||
var nextEvents;
|
||
/** @type {number} */
|
||
var offset;
|
||
|
||
// Walk through all events.
|
||
//
|
||
// Note: performance of this is fine on an mb of normal markdown, but it’s
|
||
// a bottleneck for malicious stuff.
|
||
while (++index < events.length) {
|
||
// Find a token that can close.
|
||
if (events[index][0] === 'enter' && events[index][1].type === 'attentionSequence' && events[index][1]._close) {
|
||
open = index;
|
||
|
||
// Now walk back to find an opener.
|
||
while (open--) {
|
||
// Find a token that can open the closer.
|
||
if (events[open][0] === 'exit' && events[open][1].type === 'attentionSequence' && events[open][1]._open &&
|
||
// If the markers are the same:
|
||
context.sliceSerialize(events[open][1]).charCodeAt(0) === context.sliceSerialize(events[index][1]).charCodeAt(0)) {
|
||
// If the opening can close or the closing can open,
|
||
// and the close size *is not* a multiple of three,
|
||
// but the sum of the opening and closing size *is* multiple of three,
|
||
// then don’t match.
|
||
if ((events[open][1]._close || events[index][1]._open) && (events[index][1].end.offset - events[index][1].start.offset) % 3 && !((events[open][1].end.offset - events[open][1].start.offset + events[index][1].end.offset - events[index][1].start.offset) % 3)) {
|
||
continue;
|
||
}
|
||
|
||
// Number of markers to use from the sequence.
|
||
use = events[open][1].end.offset - events[open][1].start.offset > 1 && events[index][1].end.offset - events[index][1].start.offset > 1 ? 2 : 1;
|
||
var start = Object.assign({}, events[open][1].end);
|
||
var end = Object.assign({}, events[index][1].start);
|
||
movePoint(start, -use);
|
||
movePoint(end, use);
|
||
openingSequence = {
|
||
type: use > 1 ? 'strongSequence' : 'emphasisSequence',
|
||
start: start,
|
||
end: Object.assign({}, events[open][1].end)
|
||
};
|
||
closingSequence = {
|
||
type: use > 1 ? 'strongSequence' : 'emphasisSequence',
|
||
start: Object.assign({}, events[index][1].start),
|
||
end: end
|
||
};
|
||
text = {
|
||
type: use > 1 ? 'strongText' : 'emphasisText',
|
||
start: Object.assign({}, events[open][1].end),
|
||
end: Object.assign({}, events[index][1].start)
|
||
};
|
||
group = {
|
||
type: use > 1 ? 'strong' : 'emphasis',
|
||
start: Object.assign({}, openingSequence.start),
|
||
end: Object.assign({}, closingSequence.end)
|
||
};
|
||
events[open][1].end = Object.assign({}, openingSequence.start);
|
||
events[index][1].start = Object.assign({}, closingSequence.end);
|
||
nextEvents = [];
|
||
|
||
// If there are more markers in the opening, add them before.
|
||
if (events[open][1].end.offset - events[open][1].start.offset) {
|
||
nextEvents = push(nextEvents, [['enter', events[open][1], context], ['exit', events[open][1], context]]);
|
||
}
|
||
|
||
// Opening.
|
||
nextEvents = push(nextEvents, [['enter', group, context], ['enter', openingSequence, context], ['exit', openingSequence, context], ['enter', text, context]]);
|
||
|
||
// Always populated by defaults.
|
||
|
||
// Between.
|
||
nextEvents = push(nextEvents, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + 1, index), context));
|
||
|
||
// Closing.
|
||
nextEvents = push(nextEvents, [['exit', text, context], ['enter', closingSequence, context], ['exit', closingSequence, context], ['exit', group, context]]);
|
||
|
||
// If there are more markers in the closing, add them after.
|
||
if (events[index][1].end.offset - events[index][1].start.offset) {
|
||
offset = 2;
|
||
nextEvents = push(nextEvents, [['enter', events[index][1], context], ['exit', events[index][1], context]]);
|
||
} else {
|
||
offset = 0;
|
||
}
|
||
splice(events, open - 1, index - open + 3, nextEvents);
|
||
index = open + nextEvents.length - offset - 2;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
// Remove remaining sequences.
|
||
index = -1;
|
||
while (++index < events.length) {
|
||
if (events[index][1].type === 'attentionSequence') {
|
||
events[index][1].type = 'data';
|
||
}
|
||
}
|
||
return events;
|
||
}
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Tokenizer}
|
||
*/
|
||
function tokenizeAttention(effects, ok) {
|
||
var attentionMarkers = this.parser.constructs.attentionMarkers.null;
|
||
var previous = this.previous;
|
||
var before = classifyCharacter(previous);
|
||
|
||
/** @type {NonNullable<Code>} */
|
||
var marker;
|
||
return start;
|
||
|
||
/**
|
||
* Before a sequence.
|
||
*
|
||
* ```markdown
|
||
* > | **
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function start(code) {
|
||
marker = code;
|
||
effects.enter('attentionSequence');
|
||
return inside(code);
|
||
}
|
||
|
||
/**
|
||
* In a sequence.
|
||
*
|
||
* ```markdown
|
||
* > | **
|
||
* ^^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function inside(code) {
|
||
if (code === marker) {
|
||
effects.consume(code);
|
||
return inside;
|
||
}
|
||
var token = effects.exit('attentionSequence');
|
||
|
||
// To do: next major: move this to resolver, just like `markdown-rs`.
|
||
var after = classifyCharacter(code);
|
||
|
||
// Always populated by defaults.
|
||
|
||
var open = !after || after === 2 && before || attentionMarkers.includes(code);
|
||
var close = !before || before === 2 && after || attentionMarkers.includes(previous);
|
||
token._open = Boolean(marker === 42 ? open : open && (before || !close));
|
||
token._close = Boolean(marker === 42 ? close : close && (after || !open));
|
||
return ok(code);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Move a point a bit.
|
||
*
|
||
* Note: `move` only works inside lines! It’s not possible to move past other
|
||
* chunks (replacement characters, tabs, or line endings).
|
||
*
|
||
* @param {Point} point
|
||
* @param {number} offset
|
||
* @returns {void}
|
||
*/
|
||
function movePoint(point, offset) {
|
||
point.column += offset;
|
||
point.offset += offset;
|
||
point._bufferIndex += offset;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-core-commonmark@1.1.0/node_modules/micromark-core-commonmark/lib/autolink.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Construct} Construct
|
||
* @typedef {import('micromark-util-types').State} State
|
||
* @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
|
||
* @typedef {import('micromark-util-types').Tokenizer} Tokenizer
|
||
*/
|
||
|
||
|
||
/** @type {Construct} */
|
||
var autolink = {
|
||
name: 'autolink',
|
||
tokenize: tokenizeAutolink
|
||
};
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Tokenizer}
|
||
*/
|
||
function tokenizeAutolink(effects, ok, nok) {
|
||
var size = 0;
|
||
return start;
|
||
|
||
/**
|
||
* Start of an autolink.
|
||
*
|
||
* ```markdown
|
||
* > | a<https://example.com>b
|
||
* ^
|
||
* > | a<user@example.com>b
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function start(code) {
|
||
effects.enter('autolink');
|
||
effects.enter('autolinkMarker');
|
||
effects.consume(code);
|
||
effects.exit('autolinkMarker');
|
||
effects.enter('autolinkProtocol');
|
||
return open;
|
||
}
|
||
|
||
/**
|
||
* After `<`, at protocol or atext.
|
||
*
|
||
* ```markdown
|
||
* > | a<https://example.com>b
|
||
* ^
|
||
* > | a<user@example.com>b
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function open(code) {
|
||
if (asciiAlpha(code)) {
|
||
effects.consume(code);
|
||
return schemeOrEmailAtext;
|
||
}
|
||
return emailAtext(code);
|
||
}
|
||
|
||
/**
|
||
* At second byte of protocol or atext.
|
||
*
|
||
* ```markdown
|
||
* > | a<https://example.com>b
|
||
* ^
|
||
* > | a<user@example.com>b
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function schemeOrEmailAtext(code) {
|
||
// ASCII alphanumeric and `+`, `-`, and `.`.
|
||
if (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) {
|
||
// Count the previous alphabetical from `open` too.
|
||
size = 1;
|
||
return schemeInsideOrEmailAtext(code);
|
||
}
|
||
return emailAtext(code);
|
||
}
|
||
|
||
/**
|
||
* In ambiguous protocol or atext.
|
||
*
|
||
* ```markdown
|
||
* > | a<https://example.com>b
|
||
* ^
|
||
* > | a<user@example.com>b
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function schemeInsideOrEmailAtext(code) {
|
||
if (code === 58) {
|
||
effects.consume(code);
|
||
size = 0;
|
||
return urlInside;
|
||
}
|
||
|
||
// ASCII alphanumeric and `+`, `-`, and `.`.
|
||
if ((code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) && size++ < 32) {
|
||
effects.consume(code);
|
||
return schemeInsideOrEmailAtext;
|
||
}
|
||
size = 0;
|
||
return emailAtext(code);
|
||
}
|
||
|
||
/**
|
||
* After protocol, in URL.
|
||
*
|
||
* ```markdown
|
||
* > | a<https://example.com>b
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function urlInside(code) {
|
||
if (code === 62) {
|
||
effects.exit('autolinkProtocol');
|
||
effects.enter('autolinkMarker');
|
||
effects.consume(code);
|
||
effects.exit('autolinkMarker');
|
||
effects.exit('autolink');
|
||
return ok;
|
||
}
|
||
|
||
// ASCII control, space, or `<`.
|
||
if (code === null || code === 32 || code === 60 || asciiControl(code)) {
|
||
return nok(code);
|
||
}
|
||
effects.consume(code);
|
||
return urlInside;
|
||
}
|
||
|
||
/**
|
||
* In email atext.
|
||
*
|
||
* ```markdown
|
||
* > | a<user.name@example.com>b
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function emailAtext(code) {
|
||
if (code === 64) {
|
||
effects.consume(code);
|
||
return emailAtSignOrDot;
|
||
}
|
||
if (asciiAtext(code)) {
|
||
effects.consume(code);
|
||
return emailAtext;
|
||
}
|
||
return nok(code);
|
||
}
|
||
|
||
/**
|
||
* In label, after at-sign or dot.
|
||
*
|
||
* ```markdown
|
||
* > | a<user.name@example.com>b
|
||
* ^ ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function emailAtSignOrDot(code) {
|
||
return asciiAlphanumeric(code) ? emailLabel(code) : nok(code);
|
||
}
|
||
|
||
/**
|
||
* In label, where `.` and `>` are allowed.
|
||
*
|
||
* ```markdown
|
||
* > | a<user.name@example.com>b
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function emailLabel(code) {
|
||
if (code === 46) {
|
||
effects.consume(code);
|
||
size = 0;
|
||
return emailAtSignOrDot;
|
||
}
|
||
if (code === 62) {
|
||
// Exit, then change the token type.
|
||
effects.exit('autolinkProtocol').type = 'autolinkEmail';
|
||
effects.enter('autolinkMarker');
|
||
effects.consume(code);
|
||
effects.exit('autolinkMarker');
|
||
effects.exit('autolink');
|
||
return ok;
|
||
}
|
||
return emailValue(code);
|
||
}
|
||
|
||
/**
|
||
* In label, where `.` and `>` are *not* allowed.
|
||
*
|
||
* Though, this is also used in `emailLabel` to parse other values.
|
||
*
|
||
* ```markdown
|
||
* > | a<user.name@ex-ample.com>b
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function emailValue(code) {
|
||
// ASCII alphanumeric or `-`.
|
||
if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {
|
||
var next = code === 45 ? emailValue : emailLabel;
|
||
effects.consume(code);
|
||
return next;
|
||
}
|
||
return nok(code);
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-core-commonmark@1.1.0/node_modules/micromark-core-commonmark/lib/html-text.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Code} Code
|
||
* @typedef {import('micromark-util-types').Construct} Construct
|
||
* @typedef {import('micromark-util-types').State} State
|
||
* @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
|
||
* @typedef {import('micromark-util-types').Tokenizer} Tokenizer
|
||
*/
|
||
|
||
|
||
|
||
/** @type {Construct} */
|
||
var htmlText = {
|
||
name: 'htmlText',
|
||
tokenize: tokenizeHtmlText
|
||
};
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Tokenizer}
|
||
*/
|
||
function tokenizeHtmlText(effects, ok, nok) {
|
||
var self = this;
|
||
/** @type {NonNullable<Code> | undefined} */
|
||
var marker;
|
||
/** @type {number} */
|
||
var index;
|
||
/** @type {State} */
|
||
var returnState;
|
||
return start;
|
||
|
||
/**
|
||
* Start of HTML (text).
|
||
*
|
||
* ```markdown
|
||
* > | a <b> c
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function start(code) {
|
||
effects.enter('htmlText');
|
||
effects.enter('htmlTextData');
|
||
effects.consume(code);
|
||
return open;
|
||
}
|
||
|
||
/**
|
||
* After `<`, at tag name or other stuff.
|
||
*
|
||
* ```markdown
|
||
* > | a <b> c
|
||
* ^
|
||
* > | a <!doctype> c
|
||
* ^
|
||
* > | a <!--b--> c
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function open(code) {
|
||
if (code === 33) {
|
||
effects.consume(code);
|
||
return declarationOpen;
|
||
}
|
||
if (code === 47) {
|
||
effects.consume(code);
|
||
return tagCloseStart;
|
||
}
|
||
if (code === 63) {
|
||
effects.consume(code);
|
||
return instruction;
|
||
}
|
||
|
||
// ASCII alphabetical.
|
||
if (asciiAlpha(code)) {
|
||
effects.consume(code);
|
||
return tagOpen;
|
||
}
|
||
return nok(code);
|
||
}
|
||
|
||
/**
|
||
* After `<!`, at declaration, comment, or CDATA.
|
||
*
|
||
* ```markdown
|
||
* > | a <!doctype> c
|
||
* ^
|
||
* > | a <!--b--> c
|
||
* ^
|
||
* > | a <![CDATA[>&<]]> c
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function declarationOpen(code) {
|
||
if (code === 45) {
|
||
effects.consume(code);
|
||
return commentOpenInside;
|
||
}
|
||
if (code === 91) {
|
||
effects.consume(code);
|
||
index = 0;
|
||
return cdataOpenInside;
|
||
}
|
||
if (asciiAlpha(code)) {
|
||
effects.consume(code);
|
||
return declaration;
|
||
}
|
||
return nok(code);
|
||
}
|
||
|
||
/**
|
||
* In a comment, after `<!-`, at another `-`.
|
||
*
|
||
* ```markdown
|
||
* > | a <!--b--> c
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function commentOpenInside(code) {
|
||
if (code === 45) {
|
||
effects.consume(code);
|
||
return commentEnd;
|
||
}
|
||
return nok(code);
|
||
}
|
||
|
||
/**
|
||
* In comment.
|
||
*
|
||
* ```markdown
|
||
* > | a <!--b--> c
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function comment(code) {
|
||
if (code === null) {
|
||
return nok(code);
|
||
}
|
||
if (code === 45) {
|
||
effects.consume(code);
|
||
return commentClose;
|
||
}
|
||
if (markdownLineEnding(code)) {
|
||
returnState = comment;
|
||
return lineEndingBefore(code);
|
||
}
|
||
effects.consume(code);
|
||
return comment;
|
||
}
|
||
|
||
/**
|
||
* In comment, after `-`.
|
||
*
|
||
* ```markdown
|
||
* > | a <!--b--> c
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function commentClose(code) {
|
||
if (code === 45) {
|
||
effects.consume(code);
|
||
return commentEnd;
|
||
}
|
||
return comment(code);
|
||
}
|
||
|
||
/**
|
||
* In comment, after `--`.
|
||
*
|
||
* ```markdown
|
||
* > | a <!--b--> c
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function commentEnd(code) {
|
||
return code === 62 ? end(code) : code === 45 ? commentClose(code) : comment(code);
|
||
}
|
||
|
||
/**
|
||
* After `<![`, in CDATA, expecting `CDATA[`.
|
||
*
|
||
* ```markdown
|
||
* > | a <![CDATA[>&<]]> b
|
||
* ^^^^^^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function cdataOpenInside(code) {
|
||
var value = 'CDATA[';
|
||
if (code === value.charCodeAt(index++)) {
|
||
effects.consume(code);
|
||
return index === value.length ? cdata : cdataOpenInside;
|
||
}
|
||
return nok(code);
|
||
}
|
||
|
||
/**
|
||
* In CDATA.
|
||
*
|
||
* ```markdown
|
||
* > | a <![CDATA[>&<]]> b
|
||
* ^^^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function cdata(code) {
|
||
if (code === null) {
|
||
return nok(code);
|
||
}
|
||
if (code === 93) {
|
||
effects.consume(code);
|
||
return cdataClose;
|
||
}
|
||
if (markdownLineEnding(code)) {
|
||
returnState = cdata;
|
||
return lineEndingBefore(code);
|
||
}
|
||
effects.consume(code);
|
||
return cdata;
|
||
}
|
||
|
||
/**
|
||
* In CDATA, after `]`, at another `]`.
|
||
*
|
||
* ```markdown
|
||
* > | a <![CDATA[>&<]]> b
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function cdataClose(code) {
|
||
if (code === 93) {
|
||
effects.consume(code);
|
||
return cdataEnd;
|
||
}
|
||
return cdata(code);
|
||
}
|
||
|
||
/**
|
||
* In CDATA, after `]]`, at `>`.
|
||
*
|
||
* ```markdown
|
||
* > | a <![CDATA[>&<]]> b
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function cdataEnd(code) {
|
||
if (code === 62) {
|
||
return end(code);
|
||
}
|
||
if (code === 93) {
|
||
effects.consume(code);
|
||
return cdataEnd;
|
||
}
|
||
return cdata(code);
|
||
}
|
||
|
||
/**
|
||
* In declaration.
|
||
*
|
||
* ```markdown
|
||
* > | a <!b> c
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function declaration(code) {
|
||
if (code === null || code === 62) {
|
||
return end(code);
|
||
}
|
||
if (markdownLineEnding(code)) {
|
||
returnState = declaration;
|
||
return lineEndingBefore(code);
|
||
}
|
||
effects.consume(code);
|
||
return declaration;
|
||
}
|
||
|
||
/**
|
||
* In instruction.
|
||
*
|
||
* ```markdown
|
||
* > | a <?b?> c
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function instruction(code) {
|
||
if (code === null) {
|
||
return nok(code);
|
||
}
|
||
if (code === 63) {
|
||
effects.consume(code);
|
||
return instructionClose;
|
||
}
|
||
if (markdownLineEnding(code)) {
|
||
returnState = instruction;
|
||
return lineEndingBefore(code);
|
||
}
|
||
effects.consume(code);
|
||
return instruction;
|
||
}
|
||
|
||
/**
|
||
* In instruction, after `?`, at `>`.
|
||
*
|
||
* ```markdown
|
||
* > | a <?b?> c
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function instructionClose(code) {
|
||
return code === 62 ? end(code) : instruction(code);
|
||
}
|
||
|
||
/**
|
||
* After `</`, in closing tag, at tag name.
|
||
*
|
||
* ```markdown
|
||
* > | a </b> c
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function tagCloseStart(code) {
|
||
// ASCII alphabetical.
|
||
if (asciiAlpha(code)) {
|
||
effects.consume(code);
|
||
return tagClose;
|
||
}
|
||
return nok(code);
|
||
}
|
||
|
||
/**
|
||
* After `</x`, in a tag name.
|
||
*
|
||
* ```markdown
|
||
* > | a </b> c
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function tagClose(code) {
|
||
// ASCII alphanumerical and `-`.
|
||
if (code === 45 || asciiAlphanumeric(code)) {
|
||
effects.consume(code);
|
||
return tagClose;
|
||
}
|
||
return tagCloseBetween(code);
|
||
}
|
||
|
||
/**
|
||
* In closing tag, after tag name.
|
||
*
|
||
* ```markdown
|
||
* > | a </b> c
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function tagCloseBetween(code) {
|
||
if (markdownLineEnding(code)) {
|
||
returnState = tagCloseBetween;
|
||
return lineEndingBefore(code);
|
||
}
|
||
if (markdownSpace(code)) {
|
||
effects.consume(code);
|
||
return tagCloseBetween;
|
||
}
|
||
return end(code);
|
||
}
|
||
|
||
/**
|
||
* After `<x`, in opening tag name.
|
||
*
|
||
* ```markdown
|
||
* > | a <b> c
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function tagOpen(code) {
|
||
// ASCII alphanumerical and `-`.
|
||
if (code === 45 || asciiAlphanumeric(code)) {
|
||
effects.consume(code);
|
||
return tagOpen;
|
||
}
|
||
if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {
|
||
return tagOpenBetween(code);
|
||
}
|
||
return nok(code);
|
||
}
|
||
|
||
/**
|
||
* In opening tag, after tag name.
|
||
*
|
||
* ```markdown
|
||
* > | a <b> c
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function tagOpenBetween(code) {
|
||
if (code === 47) {
|
||
effects.consume(code);
|
||
return end;
|
||
}
|
||
|
||
// ASCII alphabetical and `:` and `_`.
|
||
if (code === 58 || code === 95 || asciiAlpha(code)) {
|
||
effects.consume(code);
|
||
return tagOpenAttributeName;
|
||
}
|
||
if (markdownLineEnding(code)) {
|
||
returnState = tagOpenBetween;
|
||
return lineEndingBefore(code);
|
||
}
|
||
if (markdownSpace(code)) {
|
||
effects.consume(code);
|
||
return tagOpenBetween;
|
||
}
|
||
return end(code);
|
||
}
|
||
|
||
/**
|
||
* In attribute name.
|
||
*
|
||
* ```markdown
|
||
* > | a <b c> d
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function tagOpenAttributeName(code) {
|
||
// ASCII alphabetical and `-`, `.`, `:`, and `_`.
|
||
if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {
|
||
effects.consume(code);
|
||
return tagOpenAttributeName;
|
||
}
|
||
return tagOpenAttributeNameAfter(code);
|
||
}
|
||
|
||
/**
|
||
* After attribute name, before initializer, the end of the tag, or
|
||
* whitespace.
|
||
*
|
||
* ```markdown
|
||
* > | a <b c> d
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function tagOpenAttributeNameAfter(code) {
|
||
if (code === 61) {
|
||
effects.consume(code);
|
||
return tagOpenAttributeValueBefore;
|
||
}
|
||
if (markdownLineEnding(code)) {
|
||
returnState = tagOpenAttributeNameAfter;
|
||
return lineEndingBefore(code);
|
||
}
|
||
if (markdownSpace(code)) {
|
||
effects.consume(code);
|
||
return tagOpenAttributeNameAfter;
|
||
}
|
||
return tagOpenBetween(code);
|
||
}
|
||
|
||
/**
|
||
* Before unquoted, double quoted, or single quoted attribute value, allowing
|
||
* whitespace.
|
||
*
|
||
* ```markdown
|
||
* > | a <b c=d> e
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function tagOpenAttributeValueBefore(code) {
|
||
if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {
|
||
return nok(code);
|
||
}
|
||
if (code === 34 || code === 39) {
|
||
effects.consume(code);
|
||
marker = code;
|
||
return tagOpenAttributeValueQuoted;
|
||
}
|
||
if (markdownLineEnding(code)) {
|
||
returnState = tagOpenAttributeValueBefore;
|
||
return lineEndingBefore(code);
|
||
}
|
||
if (markdownSpace(code)) {
|
||
effects.consume(code);
|
||
return tagOpenAttributeValueBefore;
|
||
}
|
||
effects.consume(code);
|
||
return tagOpenAttributeValueUnquoted;
|
||
}
|
||
|
||
/**
|
||
* In double or single quoted attribute value.
|
||
*
|
||
* ```markdown
|
||
* > | a <b c="d"> e
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function tagOpenAttributeValueQuoted(code) {
|
||
if (code === marker) {
|
||
effects.consume(code);
|
||
marker = undefined;
|
||
return tagOpenAttributeValueQuotedAfter;
|
||
}
|
||
if (code === null) {
|
||
return nok(code);
|
||
}
|
||
if (markdownLineEnding(code)) {
|
||
returnState = tagOpenAttributeValueQuoted;
|
||
return lineEndingBefore(code);
|
||
}
|
||
effects.consume(code);
|
||
return tagOpenAttributeValueQuoted;
|
||
}
|
||
|
||
/**
|
||
* In unquoted attribute value.
|
||
*
|
||
* ```markdown
|
||
* > | a <b c=d> e
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function tagOpenAttributeValueUnquoted(code) {
|
||
if (code === null || code === 34 || code === 39 || code === 60 || code === 61 || code === 96) {
|
||
return nok(code);
|
||
}
|
||
if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {
|
||
return tagOpenBetween(code);
|
||
}
|
||
effects.consume(code);
|
||
return tagOpenAttributeValueUnquoted;
|
||
}
|
||
|
||
/**
|
||
* After double or single quoted attribute value, before whitespace or the end
|
||
* of the tag.
|
||
*
|
||
* ```markdown
|
||
* > | a <b c="d"> e
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function tagOpenAttributeValueQuotedAfter(code) {
|
||
if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {
|
||
return tagOpenBetween(code);
|
||
}
|
||
return nok(code);
|
||
}
|
||
|
||
/**
|
||
* In certain circumstances of a tag where only an `>` is allowed.
|
||
*
|
||
* ```markdown
|
||
* > | a <b c="d"> e
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function end(code) {
|
||
if (code === 62) {
|
||
effects.consume(code);
|
||
effects.exit('htmlTextData');
|
||
effects.exit('htmlText');
|
||
return ok;
|
||
}
|
||
return nok(code);
|
||
}
|
||
|
||
/**
|
||
* At eol.
|
||
*
|
||
* > 👉 **Note**: we can’t have blank lines in text, so no need to worry about
|
||
* > empty tokens.
|
||
*
|
||
* ```markdown
|
||
* > | a <!--a
|
||
* ^
|
||
* | b-->
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function lineEndingBefore(code) {
|
||
effects.exit('htmlTextData');
|
||
effects.enter('lineEnding');
|
||
effects.consume(code);
|
||
effects.exit('lineEnding');
|
||
return lineEndingAfter;
|
||
}
|
||
|
||
/**
|
||
* After eol, at optional whitespace.
|
||
*
|
||
* > 👉 **Note**: we can’t have blank lines in text, so no need to worry about
|
||
* > empty tokens.
|
||
*
|
||
* ```markdown
|
||
* | a <!--a
|
||
* > | b-->
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function lineEndingAfter(code) {
|
||
// Always populated by defaults.
|
||
|
||
return markdownSpace(code) ? factorySpace(effects, lineEndingAfterPrefix, 'linePrefix', self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : lineEndingAfterPrefix(code);
|
||
}
|
||
|
||
/**
|
||
* After eol, after optional whitespace.
|
||
*
|
||
* > 👉 **Note**: we can’t have blank lines in text, so no need to worry about
|
||
* > empty tokens.
|
||
*
|
||
* ```markdown
|
||
* | a <!--a
|
||
* > | b-->
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function lineEndingAfterPrefix(code) {
|
||
effects.enter('htmlTextData');
|
||
return returnState(code);
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-core-commonmark@1.1.0/node_modules/micromark-core-commonmark/lib/label-start-link.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Construct} Construct
|
||
* @typedef {import('micromark-util-types').State} State
|
||
* @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
|
||
* @typedef {import('micromark-util-types').Tokenizer} Tokenizer
|
||
*/
|
||
|
||
|
||
|
||
/** @type {Construct} */
|
||
var labelStartLink = {
|
||
name: 'labelStartLink',
|
||
tokenize: tokenizeLabelStartLink,
|
||
resolveAll: labelEnd.resolveAll
|
||
};
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Tokenizer}
|
||
*/
|
||
function tokenizeLabelStartLink(effects, ok, nok) {
|
||
var self = this;
|
||
return start;
|
||
|
||
/**
|
||
* Start of label (link) start.
|
||
*
|
||
* ```markdown
|
||
* > | a [b] c
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function start(code) {
|
||
effects.enter('labelLink');
|
||
effects.enter('labelMarker');
|
||
effects.consume(code);
|
||
effects.exit('labelMarker');
|
||
effects.exit('labelLink');
|
||
return after;
|
||
}
|
||
|
||
/** @type {State} */
|
||
function after(code) {
|
||
// To do: this isn’t needed in `micromark-extension-gfm-footnote`,
|
||
// remove.
|
||
// Hidden footnotes hook.
|
||
/* c8 ignore next 3 */
|
||
return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-core-commonmark@1.1.0/node_modules/micromark-core-commonmark/lib/hard-break-escape.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Construct} Construct
|
||
* @typedef {import('micromark-util-types').State} State
|
||
* @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
|
||
* @typedef {import('micromark-util-types').Tokenizer} Tokenizer
|
||
*/
|
||
|
||
|
||
/** @type {Construct} */
|
||
var hardBreakEscape = {
|
||
name: 'hardBreakEscape',
|
||
tokenize: tokenizeHardBreakEscape
|
||
};
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Tokenizer}
|
||
*/
|
||
function tokenizeHardBreakEscape(effects, ok, nok) {
|
||
return start;
|
||
|
||
/**
|
||
* Start of a hard break (escape).
|
||
*
|
||
* ```markdown
|
||
* > | a\
|
||
* ^
|
||
* | b
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function start(code) {
|
||
effects.enter('hardBreakEscape');
|
||
effects.consume(code);
|
||
return after;
|
||
}
|
||
|
||
/**
|
||
* After `\`, at eol.
|
||
*
|
||
* ```markdown
|
||
* > | a\
|
||
* ^
|
||
* | b
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function after(code) {
|
||
if (markdownLineEnding(code)) {
|
||
effects.exit('hardBreakEscape');
|
||
return ok(code);
|
||
}
|
||
return nok(code);
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-core-commonmark@1.1.0/node_modules/micromark-core-commonmark/lib/code-text.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Construct} Construct
|
||
* @typedef {import('micromark-util-types').Previous} Previous
|
||
* @typedef {import('micromark-util-types').Resolver} Resolver
|
||
* @typedef {import('micromark-util-types').State} State
|
||
* @typedef {import('micromark-util-types').Token} Token
|
||
* @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
|
||
* @typedef {import('micromark-util-types').Tokenizer} Tokenizer
|
||
*/
|
||
|
||
|
||
/** @type {Construct} */
|
||
var codeText = {
|
||
name: 'codeText',
|
||
tokenize: tokenizeCodeText,
|
||
resolve: resolveCodeText,
|
||
previous: previous
|
||
};
|
||
|
||
// To do: next major: don’t resolve, like `markdown-rs`.
|
||
/** @type {Resolver} */
|
||
function resolveCodeText(events) {
|
||
var tailExitIndex = events.length - 4;
|
||
var headEnterIndex = 3;
|
||
/** @type {number} */
|
||
var index;
|
||
/** @type {number | undefined} */
|
||
var enter;
|
||
|
||
// If we start and end with an EOL or a space.
|
||
if ((events[headEnterIndex][1].type === 'lineEnding' || events[headEnterIndex][1].type === 'space') && (events[tailExitIndex][1].type === 'lineEnding' || events[tailExitIndex][1].type === 'space')) {
|
||
index = headEnterIndex;
|
||
|
||
// And we have data.
|
||
while (++index < tailExitIndex) {
|
||
if (events[index][1].type === 'codeTextData') {
|
||
// Then we have padding.
|
||
events[headEnterIndex][1].type = 'codeTextPadding';
|
||
events[tailExitIndex][1].type = 'codeTextPadding';
|
||
headEnterIndex += 2;
|
||
tailExitIndex -= 2;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
// Merge adjacent spaces and data.
|
||
index = headEnterIndex - 1;
|
||
tailExitIndex++;
|
||
while (++index <= tailExitIndex) {
|
||
if (enter === undefined) {
|
||
if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {
|
||
enter = index;
|
||
}
|
||
} else if (index === tailExitIndex || events[index][1].type === 'lineEnding') {
|
||
events[enter][1].type = 'codeTextData';
|
||
if (index !== enter + 2) {
|
||
events[enter][1].end = events[index - 1][1].end;
|
||
events.splice(enter + 2, index - enter - 2);
|
||
tailExitIndex -= index - enter - 2;
|
||
index = enter + 2;
|
||
}
|
||
enter = undefined;
|
||
}
|
||
}
|
||
return events;
|
||
}
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Previous}
|
||
*/
|
||
function previous(code) {
|
||
// If there is a previous code, there will always be a tail.
|
||
return code !== 96 || this.events[this.events.length - 1][1].type === 'characterEscape';
|
||
}
|
||
|
||
/**
|
||
* @this {TokenizeContext}
|
||
* @type {Tokenizer}
|
||
*/
|
||
function tokenizeCodeText(effects, ok, nok) {
|
||
var self = this;
|
||
var sizeOpen = 0;
|
||
/** @type {number} */
|
||
var size;
|
||
/** @type {Token} */
|
||
var token;
|
||
return start;
|
||
|
||
/**
|
||
* Start of code (text).
|
||
*
|
||
* ```markdown
|
||
* > | `a`
|
||
* ^
|
||
* > | \`a`
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function start(code) {
|
||
effects.enter('codeText');
|
||
effects.enter('codeTextSequence');
|
||
return sequenceOpen(code);
|
||
}
|
||
|
||
/**
|
||
* In opening sequence.
|
||
*
|
||
* ```markdown
|
||
* > | `a`
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function sequenceOpen(code) {
|
||
if (code === 96) {
|
||
effects.consume(code);
|
||
sizeOpen++;
|
||
return sequenceOpen;
|
||
}
|
||
effects.exit('codeTextSequence');
|
||
return between(code);
|
||
}
|
||
|
||
/**
|
||
* Between something and something else.
|
||
*
|
||
* ```markdown
|
||
* > | `a`
|
||
* ^^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function between(code) {
|
||
// EOF.
|
||
if (code === null) {
|
||
return nok(code);
|
||
}
|
||
|
||
// To do: next major: don’t do spaces in resolve, but when compiling,
|
||
// like `markdown-rs`.
|
||
// Tabs don’t work, and virtual spaces don’t make sense.
|
||
if (code === 32) {
|
||
effects.enter('space');
|
||
effects.consume(code);
|
||
effects.exit('space');
|
||
return between;
|
||
}
|
||
|
||
// Closing fence? Could also be data.
|
||
if (code === 96) {
|
||
token = effects.enter('codeTextSequence');
|
||
size = 0;
|
||
return sequenceClose(code);
|
||
}
|
||
if (markdownLineEnding(code)) {
|
||
effects.enter('lineEnding');
|
||
effects.consume(code);
|
||
effects.exit('lineEnding');
|
||
return between;
|
||
}
|
||
|
||
// Data.
|
||
effects.enter('codeTextData');
|
||
return data(code);
|
||
}
|
||
|
||
/**
|
||
* In data.
|
||
*
|
||
* ```markdown
|
||
* > | `a`
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function data(code) {
|
||
if (code === null || code === 32 || code === 96 || markdownLineEnding(code)) {
|
||
effects.exit('codeTextData');
|
||
return between(code);
|
||
}
|
||
effects.consume(code);
|
||
return data;
|
||
}
|
||
|
||
/**
|
||
* In closing sequence.
|
||
*
|
||
* ```markdown
|
||
* > | `a`
|
||
* ^
|
||
* ```
|
||
*
|
||
* @type {State}
|
||
*/
|
||
function sequenceClose(code) {
|
||
// More.
|
||
if (code === 96) {
|
||
effects.consume(code);
|
||
size++;
|
||
return sequenceClose;
|
||
}
|
||
|
||
// Done!
|
||
if (size === sizeOpen) {
|
||
effects.exit('codeTextSequence');
|
||
effects.exit('codeText');
|
||
return ok(code);
|
||
}
|
||
|
||
// More or less accents: mark as data.
|
||
token.type = 'codeTextData';
|
||
return data(code);
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark@3.2.0/node_modules/micromark/lib/constructs.js
|
||
|
||
var _document, _flowInitial, _flow, _string, _text;
|
||
/**
|
||
* @typedef {import('micromark-util-types').Extension} Extension
|
||
*/
|
||
|
||
|
||
|
||
|
||
/** @satisfies {Extension['document']} */
|
||
var constructs_document = (_document = {}, _defineProperty(_document, 42, list), _defineProperty(_document, 43, list), _defineProperty(_document, 45, list), _defineProperty(_document, 48, list), _defineProperty(_document, 49, list), _defineProperty(_document, 50, list), _defineProperty(_document, 51, list), _defineProperty(_document, 52, list), _defineProperty(_document, 53, list), _defineProperty(_document, 54, list), _defineProperty(_document, 55, list), _defineProperty(_document, 56, list), _defineProperty(_document, 57, list), _defineProperty(_document, 62, blockQuote), _document);
|
||
|
||
/** @satisfies {Extension['contentInitial']} */
|
||
var contentInitial = _defineProperty({}, 91, definition);
|
||
|
||
/** @satisfies {Extension['flowInitial']} */
|
||
var flowInitial = (_flowInitial = {}, _defineProperty(_flowInitial, -2, codeIndented), _defineProperty(_flowInitial, -1, codeIndented), _defineProperty(_flowInitial, 32, codeIndented), _flowInitial);
|
||
|
||
/** @satisfies {Extension['flow']} */
|
||
var constructs_flow = (_flow = {}, _defineProperty(_flow, 35, headingAtx), _defineProperty(_flow, 42, thematicBreak), _defineProperty(_flow, 45, [setextUnderline, thematicBreak]), _defineProperty(_flow, 60, htmlFlow), _defineProperty(_flow, 61, setextUnderline), _defineProperty(_flow, 95, thematicBreak), _defineProperty(_flow, 96, codeFenced), _defineProperty(_flow, 126, codeFenced), _flow);
|
||
|
||
/** @satisfies {Extension['string']} */
|
||
var constructs_string = (_string = {}, _defineProperty(_string, 38, characterReference), _defineProperty(_string, 92, characterEscape), _string);
|
||
|
||
/** @satisfies {Extension['text']} */
|
||
var constructs_text = (_text = {}, _defineProperty(_text, -5, lineEnding), _defineProperty(_text, -4, lineEnding), _defineProperty(_text, -3, lineEnding), _defineProperty(_text, 33, labelStartImage), _defineProperty(_text, 38, characterReference), _defineProperty(_text, 42, attention), _defineProperty(_text, 60, [autolink, htmlText]), _defineProperty(_text, 91, labelStartLink), _defineProperty(_text, 92, [hardBreakEscape, characterEscape]), _defineProperty(_text, 93, labelEnd), _defineProperty(_text, 95, attention), _defineProperty(_text, 96, codeText), _text);
|
||
|
||
/** @satisfies {Extension['insideSpan']} */
|
||
var insideSpan = {
|
||
null: [attention, resolver]
|
||
};
|
||
|
||
/** @satisfies {Extension['attentionMarkers']} */
|
||
var attentionMarkers = {
|
||
null: [42, 95]
|
||
};
|
||
|
||
/** @satisfies {Extension['disable']} */
|
||
var disable = {
|
||
null: []
|
||
};
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark@3.2.0/node_modules/micromark/lib/parse.js
|
||
|
||
/**
|
||
* @typedef {import('micromark-util-types').Create} Create
|
||
* @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension
|
||
* @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct
|
||
* @typedef {import('micromark-util-types').ParseContext} ParseContext
|
||
* @typedef {import('micromark-util-types').ParseOptions} ParseOptions
|
||
*/
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
/**
|
||
* @param {ParseOptions | null | undefined} [options]
|
||
* @returns {ParseContext}
|
||
*/
|
||
function parse_parse(options) {
|
||
var settings = options || {};
|
||
var constructs = /** @type {FullNormalizedExtension} */
|
||
combineExtensions([constructs_namespaceObject].concat(toConsumableArray_toConsumableArray(settings.extensions || [])));
|
||
|
||
/** @type {ParseContext} */
|
||
var parser = {
|
||
defined: [],
|
||
lazy: {},
|
||
constructs: constructs,
|
||
content: create(content),
|
||
document: create(document_document),
|
||
flow: create(flow),
|
||
string: create(string),
|
||
text: create(text_text)
|
||
};
|
||
return parser;
|
||
|
||
/**
|
||
* @param {InitialConstruct} initial
|
||
*/
|
||
function create(initial) {
|
||
return creator;
|
||
/** @type {Create} */
|
||
function creator(from) {
|
||
return createTokenizer(parser, initial, from);
|
||
}
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark@3.2.0/node_modules/micromark/lib/preprocess.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Chunk} Chunk
|
||
* @typedef {import('micromark-util-types').Code} Code
|
||
* @typedef {import('micromark-util-types').Encoding} Encoding
|
||
* @typedef {import('micromark-util-types').Value} Value
|
||
*/
|
||
|
||
/**
|
||
* @callback Preprocessor
|
||
* @param {Value} value
|
||
* @param {Encoding | null | undefined} [encoding]
|
||
* @param {boolean | null | undefined} [end=false]
|
||
* @returns {Array<Chunk>}
|
||
*/
|
||
|
||
var search = /[\0\t\n\r]/g;
|
||
|
||
/**
|
||
* @returns {Preprocessor}
|
||
*/
|
||
function preprocess() {
|
||
var column = 1;
|
||
var buffer = '';
|
||
/** @type {boolean | undefined} */
|
||
var start = true;
|
||
/** @type {boolean | undefined} */
|
||
var atCarriageReturn;
|
||
return preprocessor;
|
||
|
||
/** @type {Preprocessor} */
|
||
function preprocessor(value, encoding, end) {
|
||
/** @type {Array<Chunk>} */
|
||
var chunks = [];
|
||
/** @type {RegExpMatchArray | null} */
|
||
var match;
|
||
/** @type {number} */
|
||
var next;
|
||
/** @type {number} */
|
||
var startPosition;
|
||
/** @type {number} */
|
||
var endPosition;
|
||
/** @type {Code} */
|
||
var code;
|
||
|
||
// @ts-expect-error `Buffer` does allow an encoding.
|
||
value = buffer + value.toString(encoding);
|
||
startPosition = 0;
|
||
buffer = '';
|
||
if (start) {
|
||
// To do: `markdown-rs` actually parses BOMs (byte order mark).
|
||
if (value.charCodeAt(0) === 65279) {
|
||
startPosition++;
|
||
}
|
||
start = undefined;
|
||
}
|
||
while (startPosition < value.length) {
|
||
search.lastIndex = startPosition;
|
||
match = search.exec(value);
|
||
endPosition = match && match.index !== undefined ? match.index : value.length;
|
||
code = value.charCodeAt(endPosition);
|
||
if (!match) {
|
||
buffer = value.slice(startPosition);
|
||
break;
|
||
}
|
||
if (code === 10 && startPosition === endPosition && atCarriageReturn) {
|
||
chunks.push(-3);
|
||
atCarriageReturn = undefined;
|
||
} else {
|
||
if (atCarriageReturn) {
|
||
chunks.push(-5);
|
||
atCarriageReturn = undefined;
|
||
}
|
||
if (startPosition < endPosition) {
|
||
chunks.push(value.slice(startPosition, endPosition));
|
||
column += endPosition - startPosition;
|
||
}
|
||
switch (code) {
|
||
case 0:
|
||
{
|
||
chunks.push(65533);
|
||
column++;
|
||
break;
|
||
}
|
||
case 9:
|
||
{
|
||
next = Math.ceil(column / 4) * 4;
|
||
chunks.push(-2);
|
||
while (column++ < next) chunks.push(-1);
|
||
break;
|
||
}
|
||
case 10:
|
||
{
|
||
chunks.push(-4);
|
||
column = 1;
|
||
break;
|
||
}
|
||
default:
|
||
{
|
||
atCarriageReturn = true;
|
||
column = 1;
|
||
}
|
||
}
|
||
}
|
||
startPosition = endPosition + 1;
|
||
}
|
||
if (end) {
|
||
if (atCarriageReturn) chunks.push(-5);
|
||
if (buffer) chunks.push(buffer);
|
||
chunks.push(null);
|
||
}
|
||
return chunks;
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark@3.2.0/node_modules/micromark/lib/postprocess.js
|
||
/**
|
||
* @typedef {import('micromark-util-types').Event} Event
|
||
*/
|
||
|
||
|
||
|
||
/**
|
||
* @param {Array<Event>} events
|
||
* @returns {Array<Event>}
|
||
*/
|
||
function postprocess(events) {
|
||
while (!subtokenize(events)) {
|
||
// Empty
|
||
}
|
||
return events;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-util-decode-numeric-character-reference@1.1.0/node_modules/micromark-util-decode-numeric-character-reference/index.js
|
||
/**
|
||
* Turn the number (in string form as either hexa- or plain decimal) coming from
|
||
* a numeric character reference into a character.
|
||
*
|
||
* Sort of like `String.fromCharCode(Number.parseInt(value, base))`, but makes
|
||
* non-characters and control characters safe.
|
||
*
|
||
* @param {string} value
|
||
* Value to decode.
|
||
* @param {number} base
|
||
* Numeric base.
|
||
* @returns {string}
|
||
* Character.
|
||
*/
|
||
function decodeNumericCharacterReference(value, base) {
|
||
var code = Number.parseInt(value, base);
|
||
if (
|
||
// C0 except for HT, LF, FF, CR, space.
|
||
code < 9 || code === 11 || code > 13 && code < 32 ||
|
||
// Control character (DEL) of C0, and C1 controls.
|
||
code > 126 && code < 160 ||
|
||
// Lone high surrogates and low surrogates.
|
||
code > 55295 && code < 57344 ||
|
||
// Noncharacters.
|
||
code > 64975 && code < 65008 /* eslint-disable no-bitwise */ || (code & 65535) === 65535 || (code & 65535) === 65534 /* eslint-enable no-bitwise */ ||
|
||
// Out of range
|
||
code > 1114111) {
|
||
return "\uFFFD";
|
||
}
|
||
return String.fromCharCode(code);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-util-decode-string@1.1.0/node_modules/micromark-util-decode-string/index.js
|
||
|
||
|
||
var characterEscapeOrReference = /\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;
|
||
|
||
/**
|
||
* Decode markdown strings (which occur in places such as fenced code info
|
||
* strings, destinations, labels, and titles).
|
||
*
|
||
* The “string” content type allows character escapes and -references.
|
||
* This decodes those.
|
||
*
|
||
* @param {string} value
|
||
* Value to decode.
|
||
* @returns {string}
|
||
* Decoded value.
|
||
*/
|
||
function decodeString(value) {
|
||
return value.replace(characterEscapeOrReference, decode);
|
||
}
|
||
|
||
/**
|
||
* @param {string} $0
|
||
* @param {string} $1
|
||
* @param {string} $2
|
||
* @returns {string}
|
||
*/
|
||
function decode($0, $1, $2) {
|
||
if ($1) {
|
||
// Escape.
|
||
return $1;
|
||
}
|
||
|
||
// Reference.
|
||
var head = $2.charCodeAt(0);
|
||
if (head === 35) {
|
||
var _head = $2.charCodeAt(1);
|
||
var hex = _head === 120 || _head === 88;
|
||
return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10);
|
||
}
|
||
return decodeNamedCharacterReference($2) || $0;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/mdast-util-from-markdown@1.3.1/node_modules/mdast-util-from-markdown/lib/index.js
|
||
|
||
/**
|
||
* @typedef {import('micromark-util-types').Encoding} Encoding
|
||
* @typedef {import('micromark-util-types').Event} Event
|
||
* @typedef {import('micromark-util-types').ParseOptions} ParseOptions
|
||
* @typedef {import('micromark-util-types').Token} Token
|
||
* @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext
|
||
* @typedef {import('micromark-util-types').Value} Value
|
||
*
|
||
* @typedef {import('unist').Parent} UnistParent
|
||
* @typedef {import('unist').Point} Point
|
||
*
|
||
* @typedef {import('mdast').PhrasingContent} PhrasingContent
|
||
* @typedef {import('mdast').StaticPhrasingContent} StaticPhrasingContent
|
||
* @typedef {import('mdast').Content} Content
|
||
* @typedef {import('mdast').Break} Break
|
||
* @typedef {import('mdast').Blockquote} Blockquote
|
||
* @typedef {import('mdast').Code} Code
|
||
* @typedef {import('mdast').Definition} Definition
|
||
* @typedef {import('mdast').Emphasis} Emphasis
|
||
* @typedef {import('mdast').Heading} Heading
|
||
* @typedef {import('mdast').HTML} HTML
|
||
* @typedef {import('mdast').Image} Image
|
||
* @typedef {import('mdast').ImageReference} ImageReference
|
||
* @typedef {import('mdast').InlineCode} InlineCode
|
||
* @typedef {import('mdast').Link} Link
|
||
* @typedef {import('mdast').LinkReference} LinkReference
|
||
* @typedef {import('mdast').List} List
|
||
* @typedef {import('mdast').ListItem} ListItem
|
||
* @typedef {import('mdast').Paragraph} Paragraph
|
||
* @typedef {import('mdast').Root} Root
|
||
* @typedef {import('mdast').Strong} Strong
|
||
* @typedef {import('mdast').Text} Text
|
||
* @typedef {import('mdast').ThematicBreak} ThematicBreak
|
||
* @typedef {import('mdast').ReferenceType} ReferenceType
|
||
* @typedef {import('../index.js').CompileData} CompileData
|
||
*/
|
||
|
||
/**
|
||
* @typedef {Root | Content} Node
|
||
* @typedef {Extract<Node, UnistParent>} Parent
|
||
*
|
||
* @typedef {Omit<UnistParent, 'type' | 'children'> & {type: 'fragment', children: Array<PhrasingContent>}} Fragment
|
||
*/
|
||
|
||
/**
|
||
* @callback Transform
|
||
* Extra transform, to change the AST afterwards.
|
||
* @param {Root} tree
|
||
* Tree to transform.
|
||
* @returns {Root | undefined | null | void}
|
||
* New tree or nothing (in which case the current tree is used).
|
||
*
|
||
* @callback Handle
|
||
* Handle a token.
|
||
* @param {CompileContext} this
|
||
* Context.
|
||
* @param {Token} token
|
||
* Current token.
|
||
* @returns {void}
|
||
* Nothing.
|
||
*
|
||
* @typedef {Record<string, Handle>} Handles
|
||
* Token types mapping to handles
|
||
*
|
||
* @callback OnEnterError
|
||
* Handle the case where the `right` token is open, but it is closed (by the
|
||
* `left` token) or because we reached the end of the document.
|
||
* @param {Omit<CompileContext, 'sliceSerialize'>} this
|
||
* Context.
|
||
* @param {Token | undefined} left
|
||
* Left token.
|
||
* @param {Token} right
|
||
* Right token.
|
||
* @returns {void}
|
||
* Nothing.
|
||
*
|
||
* @callback OnExitError
|
||
* Handle the case where the `right` token is open but it is closed by
|
||
* exiting the `left` token.
|
||
* @param {Omit<CompileContext, 'sliceSerialize'>} this
|
||
* Context.
|
||
* @param {Token} left
|
||
* Left token.
|
||
* @param {Token} right
|
||
* Right token.
|
||
* @returns {void}
|
||
* Nothing.
|
||
*
|
||
* @typedef {[Token, OnEnterError | undefined]} TokenTuple
|
||
* Open token on the stack, with an optional error handler for when
|
||
* that token isn’t closed properly.
|
||
*/
|
||
|
||
/**
|
||
* @typedef Config
|
||
* Configuration.
|
||
*
|
||
* We have our defaults, but extensions will add more.
|
||
* @property {Array<string>} canContainEols
|
||
* Token types where line endings are used.
|
||
* @property {Handles} enter
|
||
* Opening handles.
|
||
* @property {Handles} exit
|
||
* Closing handles.
|
||
* @property {Array<Transform>} transforms
|
||
* Tree transforms.
|
||
*
|
||
* @typedef {Partial<Config>} Extension
|
||
* Change how markdown tokens from micromark are turned into mdast.
|
||
*
|
||
* @typedef CompileContext
|
||
* mdast compiler context.
|
||
* @property {Array<Node | Fragment>} stack
|
||
* Stack of nodes.
|
||
* @property {Array<TokenTuple>} tokenStack
|
||
* Stack of tokens.
|
||
* @property {<Key extends keyof CompileData>(key: Key) => CompileData[Key]} getData
|
||
* Get data from the key/value store.
|
||
* @property {<Key extends keyof CompileData>(key: Key, value?: CompileData[Key]) => void} setData
|
||
* Set data into the key/value store.
|
||
* @property {(this: CompileContext) => void} buffer
|
||
* Capture some of the output data.
|
||
* @property {(this: CompileContext) => string} resume
|
||
* Stop capturing and access the output data.
|
||
* @property {<Kind extends Node>(this: CompileContext, node: Kind, token: Token, onError?: OnEnterError) => Kind} enter
|
||
* Enter a token.
|
||
* @property {(this: CompileContext, token: Token, onError?: OnExitError) => Node} exit
|
||
* Exit a token.
|
||
* @property {TokenizeContext['sliceSerialize']} sliceSerialize
|
||
* Get the string value of a token.
|
||
* @property {Config} config
|
||
* Configuration.
|
||
*
|
||
* @typedef FromMarkdownOptions
|
||
* Configuration for how to build mdast.
|
||
* @property {Array<Extension | Array<Extension>> | null | undefined} [mdastExtensions]
|
||
* Extensions for this utility to change how tokens are turned into a tree.
|
||
*
|
||
* @typedef {ParseOptions & FromMarkdownOptions} Options
|
||
* Configuration.
|
||
*/
|
||
|
||
// To do: micromark: create a registry of tokens?
|
||
// To do: next major: don’t return given `Node` from `enter`.
|
||
// To do: next major: remove setter/getter.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
var lib_own = {}.hasOwnProperty;
|
||
|
||
/**
|
||
* @param value
|
||
* Markdown to parse.
|
||
* @param encoding
|
||
* Character encoding for when `value` is `Buffer`.
|
||
* @param options
|
||
* Configuration.
|
||
* @returns
|
||
* mdast tree.
|
||
*/
|
||
var fromMarkdown =
|
||
/**
|
||
* @type {(
|
||
* ((value: Value, encoding: Encoding, options?: Options | null | undefined) => Root) &
|
||
* ((value: Value, options?: Options | null | undefined) => Root)
|
||
* )}
|
||
*/
|
||
|
||
/**
|
||
* @param {Value} value
|
||
* @param {Encoding | Options | null | undefined} [encoding]
|
||
* @param {Options | null | undefined} [options]
|
||
* @returns {Root}
|
||
*/
|
||
function fromMarkdown(value, encoding, options) {
|
||
if (typeof encoding !== 'string') {
|
||
options = encoding;
|
||
encoding = undefined;
|
||
}
|
||
return compiler(options)(postprocess(parse_parse(options).document().write(preprocess()(value, encoding, true))));
|
||
};
|
||
|
||
/**
|
||
* Note this compiler only understand complete buffering, not streaming.
|
||
*
|
||
* @param {Options | null | undefined} [options]
|
||
*/
|
||
function compiler(options) {
|
||
/** @type {Config} */
|
||
var config = {
|
||
transforms: [],
|
||
canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],
|
||
enter: {
|
||
autolink: opener(link),
|
||
autolinkProtocol: onenterdata,
|
||
autolinkEmail: onenterdata,
|
||
atxHeading: opener(heading),
|
||
blockQuote: opener(blockQuote),
|
||
characterEscape: onenterdata,
|
||
characterReference: onenterdata,
|
||
codeFenced: opener(codeFlow),
|
||
codeFencedFenceInfo: buffer,
|
||
codeFencedFenceMeta: buffer,
|
||
codeIndented: opener(codeFlow, buffer),
|
||
codeText: opener(codeText, buffer),
|
||
codeTextData: onenterdata,
|
||
data: onenterdata,
|
||
codeFlowValue: onenterdata,
|
||
definition: opener(definition),
|
||
definitionDestinationString: buffer,
|
||
definitionLabelString: buffer,
|
||
definitionTitleString: buffer,
|
||
emphasis: opener(emphasis),
|
||
hardBreakEscape: opener(hardBreak),
|
||
hardBreakTrailing: opener(hardBreak),
|
||
htmlFlow: opener(html, buffer),
|
||
htmlFlowData: onenterdata,
|
||
htmlText: opener(html, buffer),
|
||
htmlTextData: onenterdata,
|
||
image: opener(image),
|
||
label: buffer,
|
||
link: opener(link),
|
||
listItem: opener(listItem),
|
||
listItemValue: onenterlistitemvalue,
|
||
listOrdered: opener(list, onenterlistordered),
|
||
listUnordered: opener(list),
|
||
paragraph: opener(paragraph),
|
||
reference: onenterreference,
|
||
referenceString: buffer,
|
||
resourceDestinationString: buffer,
|
||
resourceTitleString: buffer,
|
||
setextHeading: opener(heading),
|
||
strong: opener(strong),
|
||
thematicBreak: opener(thematicBreak)
|
||
},
|
||
exit: {
|
||
atxHeading: closer(),
|
||
atxHeadingSequence: onexitatxheadingsequence,
|
||
autolink: closer(),
|
||
autolinkEmail: onexitautolinkemail,
|
||
autolinkProtocol: onexitautolinkprotocol,
|
||
blockQuote: closer(),
|
||
characterEscapeValue: onexitdata,
|
||
characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,
|
||
characterReferenceMarkerNumeric: onexitcharacterreferencemarker,
|
||
characterReferenceValue: onexitcharacterreferencevalue,
|
||
codeFenced: closer(onexitcodefenced),
|
||
codeFencedFence: onexitcodefencedfence,
|
||
codeFencedFenceInfo: onexitcodefencedfenceinfo,
|
||
codeFencedFenceMeta: onexitcodefencedfencemeta,
|
||
codeFlowValue: onexitdata,
|
||
codeIndented: closer(onexitcodeindented),
|
||
codeText: closer(onexitcodetext),
|
||
codeTextData: onexitdata,
|
||
data: onexitdata,
|
||
definition: closer(),
|
||
definitionDestinationString: onexitdefinitiondestinationstring,
|
||
definitionLabelString: onexitdefinitionlabelstring,
|
||
definitionTitleString: onexitdefinitiontitlestring,
|
||
emphasis: closer(),
|
||
hardBreakEscape: closer(onexithardbreak),
|
||
hardBreakTrailing: closer(onexithardbreak),
|
||
htmlFlow: closer(onexithtmlflow),
|
||
htmlFlowData: onexitdata,
|
||
htmlText: closer(onexithtmltext),
|
||
htmlTextData: onexitdata,
|
||
image: closer(onexitimage),
|
||
label: onexitlabel,
|
||
labelText: onexitlabeltext,
|
||
lineEnding: onexitlineending,
|
||
link: closer(onexitlink),
|
||
listItem: closer(),
|
||
listOrdered: closer(),
|
||
listUnordered: closer(),
|
||
paragraph: closer(),
|
||
referenceString: onexitreferencestring,
|
||
resourceDestinationString: onexitresourcedestinationstring,
|
||
resourceTitleString: onexitresourcetitlestring,
|
||
resource: onexitresource,
|
||
setextHeading: closer(onexitsetextheading),
|
||
setextHeadingLineSequence: onexitsetextheadinglinesequence,
|
||
setextHeadingText: onexitsetextheadingtext,
|
||
strong: closer(),
|
||
thematicBreak: closer()
|
||
}
|
||
};
|
||
configure(config, (options || {}).mdastExtensions || []);
|
||
|
||
/** @type {CompileData} */
|
||
var data = {};
|
||
return compile;
|
||
|
||
/**
|
||
* Turn micromark events into an mdast tree.
|
||
*
|
||
* @param {Array<Event>} events
|
||
* Events.
|
||
* @returns {Root}
|
||
* mdast tree.
|
||
*/
|
||
function compile(events) {
|
||
/** @type {Root} */
|
||
var tree = {
|
||
type: 'root',
|
||
children: []
|
||
};
|
||
/** @type {Omit<CompileContext, 'sliceSerialize'>} */
|
||
var context = {
|
||
stack: [tree],
|
||
tokenStack: [],
|
||
config: config,
|
||
enter: enter,
|
||
exit: exit,
|
||
buffer: buffer,
|
||
resume: resume,
|
||
setData: setData,
|
||
getData: getData
|
||
};
|
||
/** @type {Array<number>} */
|
||
var listStack = [];
|
||
var index = -1;
|
||
while (++index < events.length) {
|
||
// We preprocess lists to add `listItem` tokens, and to infer whether
|
||
// items the list itself are spread out.
|
||
if (events[index][1].type === 'listOrdered' || events[index][1].type === 'listUnordered') {
|
||
if (events[index][0] === 'enter') {
|
||
listStack.push(index);
|
||
} else {
|
||
var tail = listStack.pop();
|
||
index = prepareList(events, tail, index);
|
||
}
|
||
}
|
||
}
|
||
index = -1;
|
||
while (++index < events.length) {
|
||
var handler = config[events[index][0]];
|
||
if (lib_own.call(handler, events[index][1].type)) {
|
||
handler[events[index][1].type].call(Object.assign({
|
||
sliceSerialize: events[index][2].sliceSerialize
|
||
}, context), events[index][1]);
|
||
}
|
||
}
|
||
|
||
// Handle tokens still being open.
|
||
if (context.tokenStack.length > 0) {
|
||
var _tail = context.tokenStack[context.tokenStack.length - 1];
|
||
var _handler = _tail[1] || defaultOnError;
|
||
_handler.call(context, undefined, _tail[0]);
|
||
}
|
||
|
||
// Figure out `root` position.
|
||
tree.position = {
|
||
start: lib_point(events.length > 0 ? events[0][1].start : {
|
||
line: 1,
|
||
column: 1,
|
||
offset: 0
|
||
}),
|
||
end: lib_point(events.length > 0 ? events[events.length - 2][1].end : {
|
||
line: 1,
|
||
column: 1,
|
||
offset: 0
|
||
})
|
||
};
|
||
|
||
// Call transforms.
|
||
index = -1;
|
||
while (++index < config.transforms.length) {
|
||
tree = config.transforms[index](tree) || tree;
|
||
}
|
||
return tree;
|
||
}
|
||
|
||
/**
|
||
* @param {Array<Event>} events
|
||
* @param {number} start
|
||
* @param {number} length
|
||
* @returns {number}
|
||
*/
|
||
function prepareList(events, start, length) {
|
||
var index = start - 1;
|
||
var containerBalance = -1;
|
||
var listSpread = false;
|
||
/** @type {Token | undefined} */
|
||
var listItem;
|
||
/** @type {number | undefined} */
|
||
var lineIndex;
|
||
/** @type {number | undefined} */
|
||
var firstBlankLineIndex;
|
||
/** @type {boolean | undefined} */
|
||
var atMarker;
|
||
while (++index <= length) {
|
||
var event = events[index];
|
||
if (event[1].type === 'listUnordered' || event[1].type === 'listOrdered' || event[1].type === 'blockQuote') {
|
||
if (event[0] === 'enter') {
|
||
containerBalance++;
|
||
} else {
|
||
containerBalance--;
|
||
}
|
||
atMarker = undefined;
|
||
} else if (event[1].type === 'lineEndingBlank') {
|
||
if (event[0] === 'enter') {
|
||
if (listItem && !atMarker && !containerBalance && !firstBlankLineIndex) {
|
||
firstBlankLineIndex = index;
|
||
}
|
||
atMarker = undefined;
|
||
}
|
||
} else if (event[1].type === 'linePrefix' || event[1].type === 'listItemValue' || event[1].type === 'listItemMarker' || event[1].type === 'listItemPrefix' || event[1].type === 'listItemPrefixWhitespace') {
|
||
// Empty.
|
||
} else {
|
||
atMarker = undefined;
|
||
}
|
||
if (!containerBalance && event[0] === 'enter' && event[1].type === 'listItemPrefix' || containerBalance === -1 && event[0] === 'exit' && (event[1].type === 'listUnordered' || event[1].type === 'listOrdered')) {
|
||
if (listItem) {
|
||
var tailIndex = index;
|
||
lineIndex = undefined;
|
||
while (tailIndex--) {
|
||
var tailEvent = events[tailIndex];
|
||
if (tailEvent[1].type === 'lineEnding' || tailEvent[1].type === 'lineEndingBlank') {
|
||
if (tailEvent[0] === 'exit') continue;
|
||
if (lineIndex) {
|
||
events[lineIndex][1].type = 'lineEndingBlank';
|
||
listSpread = true;
|
||
}
|
||
tailEvent[1].type = 'lineEnding';
|
||
lineIndex = tailIndex;
|
||
} else if (tailEvent[1].type === 'linePrefix' || tailEvent[1].type === 'blockQuotePrefix' || tailEvent[1].type === 'blockQuotePrefixWhitespace' || tailEvent[1].type === 'blockQuoteMarker' || tailEvent[1].type === 'listItemIndent') {
|
||
// Empty
|
||
} else {
|
||
break;
|
||
}
|
||
}
|
||
if (firstBlankLineIndex && (!lineIndex || firstBlankLineIndex < lineIndex)) {
|
||
listItem._spread = true;
|
||
}
|
||
|
||
// Fix position.
|
||
listItem.end = Object.assign({}, lineIndex ? events[lineIndex][1].start : event[1].end);
|
||
events.splice(lineIndex || index, 0, ['exit', listItem, event[2]]);
|
||
index++;
|
||
length++;
|
||
}
|
||
|
||
// Create a new list item.
|
||
if (event[1].type === 'listItemPrefix') {
|
||
listItem = {
|
||
type: 'listItem',
|
||
_spread: false,
|
||
start: Object.assign({}, event[1].start),
|
||
// @ts-expect-error: we’ll add `end` in a second.
|
||
end: undefined
|
||
};
|
||
// @ts-expect-error: `listItem` is most definitely defined, TS...
|
||
events.splice(index, 0, ['enter', listItem, event[2]]);
|
||
index++;
|
||
length++;
|
||
firstBlankLineIndex = undefined;
|
||
atMarker = true;
|
||
}
|
||
}
|
||
}
|
||
events[start][1]._spread = listSpread;
|
||
return length;
|
||
}
|
||
|
||
/**
|
||
* Set data.
|
||
*
|
||
* @template {keyof CompileData} Key
|
||
* Field type.
|
||
* @param {Key} key
|
||
* Key of field.
|
||
* @param {CompileData[Key]} [value]
|
||
* New value.
|
||
* @returns {void}
|
||
* Nothing.
|
||
*/
|
||
function setData(key, value) {
|
||
data[key] = value;
|
||
}
|
||
|
||
/**
|
||
* Get data.
|
||
*
|
||
* @template {keyof CompileData} Key
|
||
* Field type.
|
||
* @param {Key} key
|
||
* Key of field.
|
||
* @returns {CompileData[Key]}
|
||
* Value.
|
||
*/
|
||
function getData(key) {
|
||
return data[key];
|
||
}
|
||
|
||
/**
|
||
* Create an opener handle.
|
||
*
|
||
* @param {(token: Token) => Node} create
|
||
* Create a node.
|
||
* @param {Handle} [and]
|
||
* Optional function to also run.
|
||
* @returns {Handle}
|
||
* Handle.
|
||
*/
|
||
function opener(create, and) {
|
||
return open;
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @param {Token} token
|
||
* @returns {void}
|
||
*/
|
||
function open(token) {
|
||
enter.call(this, create(token), token);
|
||
if (and) and.call(this, token);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @returns {void}
|
||
*/
|
||
function buffer() {
|
||
this.stack.push({
|
||
type: 'fragment',
|
||
children: []
|
||
});
|
||
}
|
||
|
||
/**
|
||
* @template {Node} Kind
|
||
* Node type.
|
||
* @this {CompileContext}
|
||
* Context.
|
||
* @param {Kind} node
|
||
* Node to enter.
|
||
* @param {Token} token
|
||
* Corresponding token.
|
||
* @param {OnEnterError | undefined} [errorHandler]
|
||
* Handle the case where this token is open, but it is closed by something else.
|
||
* @returns {Kind}
|
||
* The given node.
|
||
*/
|
||
function enter(node, token, errorHandler) {
|
||
var parent = this.stack[this.stack.length - 1];
|
||
// @ts-expect-error: Assume `Node` can exist as a child of `parent`.
|
||
parent.children.push(node);
|
||
this.stack.push(node);
|
||
this.tokenStack.push([token, errorHandler]);
|
||
// @ts-expect-error: `end` will be patched later.
|
||
node.position = {
|
||
start: lib_point(token.start)
|
||
};
|
||
return node;
|
||
}
|
||
|
||
/**
|
||
* Create a closer handle.
|
||
*
|
||
* @param {Handle} [and]
|
||
* Optional function to also run.
|
||
* @returns {Handle}
|
||
* Handle.
|
||
*/
|
||
function closer(and) {
|
||
return close;
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @param {Token} token
|
||
* @returns {void}
|
||
*/
|
||
function close(token) {
|
||
if (and) and.call(this, token);
|
||
exit.call(this, token);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* Context.
|
||
* @param {Token} token
|
||
* Corresponding token.
|
||
* @param {OnExitError | undefined} [onExitError]
|
||
* Handle the case where another token is open.
|
||
* @returns {Node}
|
||
* The closed node.
|
||
*/
|
||
function exit(token, onExitError) {
|
||
var node = this.stack.pop();
|
||
var open = this.tokenStack.pop();
|
||
if (!open) {
|
||
throw new Error('Cannot close `' + token.type + '` (' + stringifyPosition({
|
||
start: token.start,
|
||
end: token.end
|
||
}) + '): it’s not open');
|
||
} else if (open[0].type !== token.type) {
|
||
if (onExitError) {
|
||
onExitError.call(this, token, open[0]);
|
||
} else {
|
||
var handler = open[1] || defaultOnError;
|
||
handler.call(this, token, open[0]);
|
||
}
|
||
}
|
||
node.position.end = lib_point(token.end);
|
||
return node;
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @returns {string}
|
||
*/
|
||
function resume() {
|
||
return lib_toString(this.stack.pop());
|
||
}
|
||
|
||
//
|
||
// Handlers.
|
||
//
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @type {Handle}
|
||
*/
|
||
function onenterlistordered() {
|
||
setData('expectingFirstListItemValue', true);
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @type {Handle}
|
||
*/
|
||
function onenterlistitemvalue(token) {
|
||
if (getData('expectingFirstListItemValue')) {
|
||
var ancestor = this.stack[this.stack.length - 2];
|
||
ancestor.start = Number.parseInt(this.sliceSerialize(token), 10);
|
||
setData('expectingFirstListItemValue');
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @type {Handle}
|
||
*/
|
||
function onexitcodefencedfenceinfo() {
|
||
var data = this.resume();
|
||
var node = this.stack[this.stack.length - 1];
|
||
node.lang = data;
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @type {Handle}
|
||
*/
|
||
function onexitcodefencedfencemeta() {
|
||
var data = this.resume();
|
||
var node = this.stack[this.stack.length - 1];
|
||
node.meta = data;
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @type {Handle}
|
||
*/
|
||
function onexitcodefencedfence() {
|
||
// Exit if this is the closing fence.
|
||
if (getData('flowCodeInside')) return;
|
||
this.buffer();
|
||
setData('flowCodeInside', true);
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @type {Handle}
|
||
*/
|
||
function onexitcodefenced() {
|
||
var data = this.resume();
|
||
var node = this.stack[this.stack.length - 1];
|
||
node.value = data.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g, '');
|
||
setData('flowCodeInside');
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @type {Handle}
|
||
*/
|
||
function onexitcodeindented() {
|
||
var data = this.resume();
|
||
var node = this.stack[this.stack.length - 1];
|
||
node.value = data.replace(/(\r?\n|\r)$/g, '');
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @type {Handle}
|
||
*/
|
||
function onexitdefinitionlabelstring(token) {
|
||
var label = this.resume();
|
||
var node = this.stack[this.stack.length - 1];
|
||
node.label = label;
|
||
node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @type {Handle}
|
||
*/
|
||
function onexitdefinitiontitlestring() {
|
||
var data = this.resume();
|
||
var node = this.stack[this.stack.length - 1];
|
||
node.title = data;
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @type {Handle}
|
||
*/
|
||
function onexitdefinitiondestinationstring() {
|
||
var data = this.resume();
|
||
var node = this.stack[this.stack.length - 1];
|
||
node.url = data;
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @type {Handle}
|
||
*/
|
||
function onexitatxheadingsequence(token) {
|
||
var node = this.stack[this.stack.length - 1];
|
||
if (!node.depth) {
|
||
var depth = this.sliceSerialize(token).length;
|
||
node.depth = depth;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @type {Handle}
|
||
*/
|
||
function onexitsetextheadingtext() {
|
||
setData('setextHeadingSlurpLineEnding', true);
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @type {Handle}
|
||
*/
|
||
function onexitsetextheadinglinesequence(token) {
|
||
var node = this.stack[this.stack.length - 1];
|
||
node.depth = this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2;
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @type {Handle}
|
||
*/
|
||
function onexitsetextheading() {
|
||
setData('setextHeadingSlurpLineEnding');
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @type {Handle}
|
||
*/
|
||
|
||
function onenterdata(token) {
|
||
var node = this.stack[this.stack.length - 1];
|
||
var tail = node.children[node.children.length - 1];
|
||
if (!tail || tail.type !== 'text') {
|
||
// Add a new text node.
|
||
tail = text();
|
||
// @ts-expect-error: we’ll add `end` later.
|
||
tail.position = {
|
||
start: lib_point(token.start)
|
||
};
|
||
// @ts-expect-error: Assume `parent` accepts `text`.
|
||
node.children.push(tail);
|
||
}
|
||
this.stack.push(tail);
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @type {Handle}
|
||
*/
|
||
|
||
function onexitdata(token) {
|
||
var tail = this.stack.pop();
|
||
tail.value += this.sliceSerialize(token);
|
||
tail.position.end = lib_point(token.end);
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @type {Handle}
|
||
*/
|
||
|
||
function onexitlineending(token) {
|
||
var context = this.stack[this.stack.length - 1];
|
||
// If we’re at a hard break, include the line ending in there.
|
||
if (getData('atHardBreak')) {
|
||
var tail = context.children[context.children.length - 1];
|
||
tail.position.end = lib_point(token.end);
|
||
setData('atHardBreak');
|
||
return;
|
||
}
|
||
if (!getData('setextHeadingSlurpLineEnding') && config.canContainEols.includes(context.type)) {
|
||
onenterdata.call(this, token);
|
||
onexitdata.call(this, token);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @type {Handle}
|
||
*/
|
||
|
||
function onexithardbreak() {
|
||
setData('atHardBreak', true);
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @type {Handle}
|
||
*/
|
||
|
||
function onexithtmlflow() {
|
||
var data = this.resume();
|
||
var node = this.stack[this.stack.length - 1];
|
||
node.value = data;
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @type {Handle}
|
||
*/
|
||
|
||
function onexithtmltext() {
|
||
var data = this.resume();
|
||
var node = this.stack[this.stack.length - 1];
|
||
node.value = data;
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @type {Handle}
|
||
*/
|
||
|
||
function onexitcodetext() {
|
||
var data = this.resume();
|
||
var node = this.stack[this.stack.length - 1];
|
||
node.value = data;
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @type {Handle}
|
||
*/
|
||
|
||
function onexitlink() {
|
||
var node = this.stack[this.stack.length - 1];
|
||
// Note: there are also `identifier` and `label` fields on this link node!
|
||
// These are used / cleaned here.
|
||
// To do: clean.
|
||
if (getData('inReference')) {
|
||
/** @type {ReferenceType} */
|
||
var referenceType = getData('referenceType') || 'shortcut';
|
||
node.type += 'Reference';
|
||
// @ts-expect-error: mutate.
|
||
node.referenceType = referenceType;
|
||
// @ts-expect-error: mutate.
|
||
delete node.url;
|
||
delete node.title;
|
||
} else {
|
||
// @ts-expect-error: mutate.
|
||
delete node.identifier;
|
||
// @ts-expect-error: mutate.
|
||
delete node.label;
|
||
}
|
||
setData('referenceType');
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @type {Handle}
|
||
*/
|
||
|
||
function onexitimage() {
|
||
var node = this.stack[this.stack.length - 1];
|
||
// Note: there are also `identifier` and `label` fields on this link node!
|
||
// These are used / cleaned here.
|
||
// To do: clean.
|
||
if (getData('inReference')) {
|
||
/** @type {ReferenceType} */
|
||
var referenceType = getData('referenceType') || 'shortcut';
|
||
node.type += 'Reference';
|
||
// @ts-expect-error: mutate.
|
||
node.referenceType = referenceType;
|
||
// @ts-expect-error: mutate.
|
||
delete node.url;
|
||
delete node.title;
|
||
} else {
|
||
// @ts-expect-error: mutate.
|
||
delete node.identifier;
|
||
// @ts-expect-error: mutate.
|
||
delete node.label;
|
||
}
|
||
setData('referenceType');
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @type {Handle}
|
||
*/
|
||
|
||
function onexitlabeltext(token) {
|
||
var string = this.sliceSerialize(token);
|
||
var ancestor = this.stack[this.stack.length - 2];
|
||
// @ts-expect-error: stash this on the node, as it might become a reference
|
||
// later.
|
||
ancestor.label = decodeString(string);
|
||
// @ts-expect-error: same as above.
|
||
ancestor.identifier = normalizeIdentifier(string).toLowerCase();
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @type {Handle}
|
||
*/
|
||
|
||
function onexitlabel() {
|
||
var fragment = this.stack[this.stack.length - 1];
|
||
var value = this.resume();
|
||
var node = this.stack[this.stack.length - 1];
|
||
// Assume a reference.
|
||
setData('inReference', true);
|
||
if (node.type === 'link') {
|
||
/** @type {Array<StaticPhrasingContent>} */
|
||
// @ts-expect-error: Assume static phrasing content.
|
||
var children = fragment.children;
|
||
node.children = children;
|
||
} else {
|
||
node.alt = value;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @type {Handle}
|
||
*/
|
||
|
||
function onexitresourcedestinationstring() {
|
||
var data = this.resume();
|
||
var node = this.stack[this.stack.length - 1];
|
||
node.url = data;
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @type {Handle}
|
||
*/
|
||
|
||
function onexitresourcetitlestring() {
|
||
var data = this.resume();
|
||
var node = this.stack[this.stack.length - 1];
|
||
node.title = data;
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @type {Handle}
|
||
*/
|
||
|
||
function onexitresource() {
|
||
setData('inReference');
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @type {Handle}
|
||
*/
|
||
|
||
function onenterreference() {
|
||
setData('referenceType', 'collapsed');
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @type {Handle}
|
||
*/
|
||
|
||
function onexitreferencestring(token) {
|
||
var label = this.resume();
|
||
var node = this.stack[this.stack.length - 1];
|
||
// @ts-expect-error: stash this on the node, as it might become a reference
|
||
// later.
|
||
node.label = label;
|
||
// @ts-expect-error: same as above.
|
||
node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();
|
||
setData('referenceType', 'full');
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @type {Handle}
|
||
*/
|
||
|
||
function onexitcharacterreferencemarker(token) {
|
||
setData('characterReferenceType', token.type);
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @type {Handle}
|
||
*/
|
||
function onexitcharacterreferencevalue(token) {
|
||
var data = this.sliceSerialize(token);
|
||
var type = getData('characterReferenceType');
|
||
/** @type {string} */
|
||
var value;
|
||
if (type) {
|
||
value = decodeNumericCharacterReference(data, type === 'characterReferenceMarkerNumeric' ? 10 : 16);
|
||
setData('characterReferenceType');
|
||
} else {
|
||
var result = decodeNamedCharacterReference(data);
|
||
value = result;
|
||
}
|
||
var tail = this.stack.pop();
|
||
tail.value += value;
|
||
tail.position.end = lib_point(token.end);
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @type {Handle}
|
||
*/
|
||
function onexitautolinkprotocol(token) {
|
||
onexitdata.call(this, token);
|
||
var node = this.stack[this.stack.length - 1];
|
||
node.url = this.sliceSerialize(token);
|
||
}
|
||
|
||
/**
|
||
* @this {CompileContext}
|
||
* @type {Handle}
|
||
*/
|
||
function onexitautolinkemail(token) {
|
||
onexitdata.call(this, token);
|
||
var node = this.stack[this.stack.length - 1];
|
||
node.url = 'mailto:' + this.sliceSerialize(token);
|
||
}
|
||
|
||
//
|
||
// Creaters.
|
||
//
|
||
|
||
/** @returns {Blockquote} */
|
||
function blockQuote() {
|
||
return {
|
||
type: 'blockquote',
|
||
children: []
|
||
};
|
||
}
|
||
|
||
/** @returns {Code} */
|
||
function codeFlow() {
|
||
return {
|
||
type: 'code',
|
||
lang: null,
|
||
meta: null,
|
||
value: ''
|
||
};
|
||
}
|
||
|
||
/** @returns {InlineCode} */
|
||
function codeText() {
|
||
return {
|
||
type: 'inlineCode',
|
||
value: ''
|
||
};
|
||
}
|
||
|
||
/** @returns {Definition} */
|
||
function definition() {
|
||
return {
|
||
type: 'definition',
|
||
identifier: '',
|
||
label: null,
|
||
title: null,
|
||
url: ''
|
||
};
|
||
}
|
||
|
||
/** @returns {Emphasis} */
|
||
function emphasis() {
|
||
return {
|
||
type: 'emphasis',
|
||
children: []
|
||
};
|
||
}
|
||
|
||
/** @returns {Heading} */
|
||
function heading() {
|
||
// @ts-expect-error `depth` will be set later.
|
||
return {
|
||
type: 'heading',
|
||
depth: undefined,
|
||
children: []
|
||
};
|
||
}
|
||
|
||
/** @returns {Break} */
|
||
function hardBreak() {
|
||
return {
|
||
type: 'break'
|
||
};
|
||
}
|
||
|
||
/** @returns {HTML} */
|
||
function html() {
|
||
return {
|
||
type: 'html',
|
||
value: ''
|
||
};
|
||
}
|
||
|
||
/** @returns {Image} */
|
||
function image() {
|
||
return {
|
||
type: 'image',
|
||
title: null,
|
||
url: '',
|
||
alt: null
|
||
};
|
||
}
|
||
|
||
/** @returns {Link} */
|
||
function link() {
|
||
return {
|
||
type: 'link',
|
||
title: null,
|
||
url: '',
|
||
children: []
|
||
};
|
||
}
|
||
|
||
/**
|
||
* @param {Token} token
|
||
* @returns {List}
|
||
*/
|
||
function list(token) {
|
||
return {
|
||
type: 'list',
|
||
ordered: token.type === 'listOrdered',
|
||
start: null,
|
||
spread: token._spread,
|
||
children: []
|
||
};
|
||
}
|
||
|
||
/**
|
||
* @param {Token} token
|
||
* @returns {ListItem}
|
||
*/
|
||
function listItem(token) {
|
||
return {
|
||
type: 'listItem',
|
||
spread: token._spread,
|
||
checked: null,
|
||
children: []
|
||
};
|
||
}
|
||
|
||
/** @returns {Paragraph} */
|
||
function paragraph() {
|
||
return {
|
||
type: 'paragraph',
|
||
children: []
|
||
};
|
||
}
|
||
|
||
/** @returns {Strong} */
|
||
function strong() {
|
||
return {
|
||
type: 'strong',
|
||
children: []
|
||
};
|
||
}
|
||
|
||
/** @returns {Text} */
|
||
function text() {
|
||
return {
|
||
type: 'text',
|
||
value: ''
|
||
};
|
||
}
|
||
|
||
/** @returns {ThematicBreak} */
|
||
function thematicBreak() {
|
||
return {
|
||
type: 'thematicBreak'
|
||
};
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Copy a point-like value.
|
||
*
|
||
* @param {Point} d
|
||
* Point-like value.
|
||
* @returns {Point}
|
||
* unist point.
|
||
*/
|
||
function lib_point(d) {
|
||
return {
|
||
line: d.line,
|
||
column: d.column,
|
||
offset: d.offset
|
||
};
|
||
}
|
||
|
||
/**
|
||
* @param {Config} combined
|
||
* @param {Array<Extension | Array<Extension>>} extensions
|
||
* @returns {void}
|
||
*/
|
||
function configure(combined, extensions) {
|
||
var index = -1;
|
||
while (++index < extensions.length) {
|
||
var value = extensions[index];
|
||
if (Array.isArray(value)) {
|
||
configure(combined, value);
|
||
} else {
|
||
extension(combined, value);
|
||
}
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @param {Config} combined
|
||
* @param {Extension} extension
|
||
* @returns {void}
|
||
*/
|
||
function extension(combined, extension) {
|
||
/** @type {keyof Extension} */
|
||
var key;
|
||
for (key in extension) {
|
||
if (lib_own.call(extension, key)) {
|
||
if (key === 'canContainEols') {
|
||
var right = extension[key];
|
||
if (right) {
|
||
var _combined$key;
|
||
(_combined$key = combined[key]).push.apply(_combined$key, toConsumableArray_toConsumableArray(right));
|
||
}
|
||
} else if (key === 'transforms') {
|
||
var _right = extension[key];
|
||
if (_right) {
|
||
var _combined$key2;
|
||
(_combined$key2 = combined[key]).push.apply(_combined$key2, toConsumableArray_toConsumableArray(_right));
|
||
}
|
||
} else if (key === 'enter' || key === 'exit') {
|
||
var _right2 = extension[key];
|
||
if (_right2) {
|
||
Object.assign(combined[key], _right2);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
/** @type {OnEnterError} */
|
||
function defaultOnError(left, right) {
|
||
if (left) {
|
||
throw new Error('Cannot close `' + left.type + '` (' + stringifyPosition({
|
||
start: left.start,
|
||
end: left.end
|
||
}) + '): a different token (`' + right.type + '`, ' + stringifyPosition({
|
||
start: right.start,
|
||
end: right.end
|
||
}) + ') is open');
|
||
} else {
|
||
throw new Error('Cannot close document, a token (`' + right.type + '`, ' + stringifyPosition({
|
||
start: right.start,
|
||
end: right.end
|
||
}) + ') is still open');
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/remark-parse@10.0.2/node_modules/remark-parse/lib/index.js
|
||
/**
|
||
* @typedef {import('mdast').Root} Root
|
||
* @typedef {import('mdast-util-from-markdown').Options} Options
|
||
*/
|
||
|
||
|
||
|
||
/**
|
||
* @this {import('unified').Processor}
|
||
* @type {import('unified').Plugin<[Options?] | void[], string, Root>}
|
||
*/
|
||
function remarkParse(options) {
|
||
var _this = this;
|
||
/** @type {import('unified').ParserFunction<Root>} */
|
||
var parser = function parser(doc) {
|
||
// Assume options.
|
||
var settings = /** @type {Options} */_this.data('settings');
|
||
return fromMarkdown(doc, Object.assign({}, settings, options, {
|
||
// Note: these options are not in the readme.
|
||
// The goal is for them to be set by plugins on `data` instead of being
|
||
// passed by users.
|
||
extensions: _this.data('micromarkExtensions') || [],
|
||
mdastExtensions: _this.data('fromMarkdownExtensions') || []
|
||
}));
|
||
};
|
||
Object.assign(this, {
|
||
Parser: parser
|
||
});
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/micromark-util-sanitize-uri@1.2.0/node_modules/micromark-util-sanitize-uri/index.js
|
||
|
||
|
||
/**
|
||
* Make a value safe for injection as a URL.
|
||
*
|
||
* This encodes unsafe characters with percent-encoding and skips already
|
||
* encoded sequences (see `normalizeUri`).
|
||
* Further unsafe characters are encoded as character references (see
|
||
* `micromark-util-encode`).
|
||
*
|
||
* A regex of allowed protocols can be given, in which case the URL is
|
||
* sanitized.
|
||
* For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or
|
||
* `/^https?$/i` for `img[src]` (this is what `github.com` allows).
|
||
* If the URL includes an unknown protocol (one not matched by `protocol`, such
|
||
* as a dangerous example, `javascript:`), the value is ignored.
|
||
*
|
||
* @param {string | undefined} url
|
||
* URI to sanitize.
|
||
* @param {RegExp | null | undefined} [protocol]
|
||
* Allowed protocols.
|
||
* @returns {string}
|
||
* Sanitized URI.
|
||
*/
|
||
function sanitizeUri(url, protocol) {
|
||
var value = encode(normalizeUri(url || ''));
|
||
if (!protocol) {
|
||
return value;
|
||
}
|
||
var colon = value.indexOf(':');
|
||
var questionMark = value.indexOf('?');
|
||
var numberSign = value.indexOf('#');
|
||
var slash = value.indexOf('/');
|
||
if (
|
||
// If there is no protocol, it’s relative.
|
||
colon < 0 ||
|
||
// If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.
|
||
slash > -1 && colon > slash || questionMark > -1 && colon > questionMark || numberSign > -1 && colon > numberSign ||
|
||
// It is a protocol, it should be allowed.
|
||
protocol.test(value.slice(0, colon))) {
|
||
return value;
|
||
}
|
||
return '';
|
||
}
|
||
|
||
/**
|
||
* Normalize a URL.
|
||
*
|
||
* Encode unsafe characters with percent-encoding, skipping already encoded
|
||
* sequences.
|
||
*
|
||
* @param {string} value
|
||
* URI to normalize.
|
||
* @returns {string}
|
||
* Normalized URI.
|
||
*/
|
||
function normalizeUri(value) {
|
||
/** @type {Array<string>} */
|
||
var result = [];
|
||
var index = -1;
|
||
var start = 0;
|
||
var skip = 0;
|
||
while (++index < value.length) {
|
||
var code = value.charCodeAt(index);
|
||
/** @type {string} */
|
||
var replace = '';
|
||
|
||
// A correct percent encoded value.
|
||
if (code === 37 && asciiAlphanumeric(value.charCodeAt(index + 1)) && asciiAlphanumeric(value.charCodeAt(index + 2))) {
|
||
skip = 2;
|
||
}
|
||
// ASCII.
|
||
else if (code < 128) {
|
||
if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {
|
||
replace = String.fromCharCode(code);
|
||
}
|
||
}
|
||
// Astral.
|
||
else if (code > 55295 && code < 57344) {
|
||
var next = value.charCodeAt(index + 1);
|
||
|
||
// A correct surrogate pair.
|
||
if (code < 56320 && next > 56319 && next < 57344) {
|
||
replace = String.fromCharCode(code, next);
|
||
skip = 1;
|
||
}
|
||
// Lone surrogate.
|
||
else {
|
||
replace = "\uFFFD";
|
||
}
|
||
}
|
||
// Unicode.
|
||
else {
|
||
replace = String.fromCharCode(code);
|
||
}
|
||
if (replace) {
|
||
result.push(value.slice(start, index), encodeURIComponent(replace));
|
||
start = index + skip + 1;
|
||
replace = '';
|
||
}
|
||
if (skip) {
|
||
index += skip;
|
||
skip = 0;
|
||
}
|
||
}
|
||
return result.join('') + value.slice(start);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/mdast-util-to-hast@12.3.0/node_modules/mdast-util-to-hast/lib/footer.js
|
||
|
||
/**
|
||
* @typedef {import('hast').Element} Element
|
||
* @typedef {import('hast').ElementContent} ElementContent
|
||
*
|
||
* @typedef {import('./state.js').State} State
|
||
*/
|
||
|
||
|
||
|
||
/**
|
||
* Generate a hast footer for called footnote definitions.
|
||
*
|
||
* @param {State} state
|
||
* Info passed around.
|
||
* @returns {Element | undefined}
|
||
* `section` element or `undefined`.
|
||
*/
|
||
function footer(state) {
|
||
/** @type {Array<ElementContent>} */
|
||
var listItems = [];
|
||
var index = -1;
|
||
while (++index < state.footnoteOrder.length) {
|
||
var def = state.footnoteById[state.footnoteOrder[index]];
|
||
if (!def) {
|
||
continue;
|
||
}
|
||
var content = state.all(def);
|
||
var id = String(def.identifier).toUpperCase();
|
||
var safeId = normalizeUri(id.toLowerCase());
|
||
var referenceIndex = 0;
|
||
/** @type {Array<ElementContent>} */
|
||
var backReferences = [];
|
||
while (++referenceIndex <= state.footnoteCounts[id]) {
|
||
/** @type {Element} */
|
||
var backReference = {
|
||
type: 'element',
|
||
tagName: 'a',
|
||
properties: {
|
||
href: '#' + state.clobberPrefix + 'fnref-' + safeId + (referenceIndex > 1 ? '-' + referenceIndex : ''),
|
||
dataFootnoteBackref: true,
|
||
className: ['data-footnote-backref'],
|
||
ariaLabel: state.footnoteBackLabel
|
||
},
|
||
children: [{
|
||
type: 'text',
|
||
value: '↩'
|
||
}]
|
||
};
|
||
if (referenceIndex > 1) {
|
||
backReference.children.push({
|
||
type: 'element',
|
||
tagName: 'sup',
|
||
children: [{
|
||
type: 'text',
|
||
value: String(referenceIndex)
|
||
}]
|
||
});
|
||
}
|
||
if (backReferences.length > 0) {
|
||
backReferences.push({
|
||
type: 'text',
|
||
value: ' '
|
||
});
|
||
}
|
||
backReferences.push(backReference);
|
||
}
|
||
var tail = content[content.length - 1];
|
||
if (tail && tail.type === 'element' && tail.tagName === 'p') {
|
||
var _tail$children;
|
||
var tailTail = tail.children[tail.children.length - 1];
|
||
if (tailTail && tailTail.type === 'text') {
|
||
tailTail.value += ' ';
|
||
} else {
|
||
tail.children.push({
|
||
type: 'text',
|
||
value: ' '
|
||
});
|
||
}
|
||
(_tail$children = tail.children).push.apply(_tail$children, backReferences);
|
||
} else {
|
||
content.push.apply(content, backReferences);
|
||
}
|
||
|
||
/** @type {Element} */
|
||
var listItem = {
|
||
type: 'element',
|
||
tagName: 'li',
|
||
properties: {
|
||
id: state.clobberPrefix + 'fn-' + safeId
|
||
},
|
||
children: state.wrap(content, true)
|
||
};
|
||
state.patch(def, listItem);
|
||
listItems.push(listItem);
|
||
}
|
||
if (listItems.length === 0) {
|
||
return;
|
||
}
|
||
return {
|
||
type: 'element',
|
||
tagName: 'section',
|
||
properties: {
|
||
dataFootnotes: true,
|
||
className: ['footnotes']
|
||
},
|
||
children: [{
|
||
type: 'element',
|
||
tagName: state.footnoteLabelTagName,
|
||
properties: _objectSpread2(_objectSpread2({}, JSON.parse(JSON.stringify(state.footnoteLabelProperties))), {}, {
|
||
id: 'footnote-label'
|
||
}),
|
||
children: [{
|
||
type: 'text',
|
||
value: state.footnoteLabel
|
||
}]
|
||
}, {
|
||
type: 'text',
|
||
value: '\n'
|
||
}, {
|
||
type: 'element',
|
||
tagName: 'ol',
|
||
properties: {},
|
||
children: state.wrap(listItems, true)
|
||
}, {
|
||
type: 'text',
|
||
value: '\n'
|
||
}]
|
||
};
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/unist-util-is@5.2.1/node_modules/unist-util-is/lib/index.js
|
||
/**
|
||
* @typedef {import('unist').Node} Node
|
||
* @typedef {import('unist').Parent} Parent
|
||
*/
|
||
|
||
/**
|
||
* @typedef {Record<string, unknown>} Props
|
||
* @typedef {null | undefined | string | Props | TestFunctionAnything | Array<string | Props | TestFunctionAnything>} Test
|
||
* Check for an arbitrary node, unaware of TypeScript inferral.
|
||
*
|
||
* @callback TestFunctionAnything
|
||
* Check if a node passes a test, unaware of TypeScript inferral.
|
||
* @param {unknown} this
|
||
* The given context.
|
||
* @param {Node} node
|
||
* A node.
|
||
* @param {number | null | undefined} [index]
|
||
* The node’s position in its parent.
|
||
* @param {Parent | null | undefined} [parent]
|
||
* The node’s parent.
|
||
* @returns {boolean | void}
|
||
* Whether this node passes the test.
|
||
*/
|
||
|
||
/**
|
||
* @template {Node} Kind
|
||
* Node type.
|
||
* @typedef {Kind['type'] | Partial<Kind> | TestFunctionPredicate<Kind> | Array<Kind['type'] | Partial<Kind> | TestFunctionPredicate<Kind>>} PredicateTest
|
||
* Check for a node that can be inferred by TypeScript.
|
||
*/
|
||
|
||
/**
|
||
* Check if a node passes a certain test.
|
||
*
|
||
* @template {Node} Kind
|
||
* Node type.
|
||
* @callback TestFunctionPredicate
|
||
* Complex test function for a node that can be inferred by TypeScript.
|
||
* @param {Node} node
|
||
* A node.
|
||
* @param {number | null | undefined} [index]
|
||
* The node’s position in its parent.
|
||
* @param {Parent | null | undefined} [parent]
|
||
* The node’s parent.
|
||
* @returns {node is Kind}
|
||
* Whether this node passes the test.
|
||
*/
|
||
|
||
/**
|
||
* @callback AssertAnything
|
||
* Check that an arbitrary value is a node, unaware of TypeScript inferral.
|
||
* @param {unknown} [node]
|
||
* Anything (typically a node).
|
||
* @param {number | null | undefined} [index]
|
||
* The node’s position in its parent.
|
||
* @param {Parent | null | undefined} [parent]
|
||
* The node’s parent.
|
||
* @returns {boolean}
|
||
* Whether this is a node and passes a test.
|
||
*/
|
||
|
||
/**
|
||
* Check if a node is a node and passes a certain node test.
|
||
*
|
||
* @template {Node} Kind
|
||
* Node type.
|
||
* @callback AssertPredicate
|
||
* Check that an arbitrary value is a specific node, aware of TypeScript.
|
||
* @param {unknown} [node]
|
||
* Anything (typically a node).
|
||
* @param {number | null | undefined} [index]
|
||
* The node’s position in its parent.
|
||
* @param {Parent | null | undefined} [parent]
|
||
* The node’s parent.
|
||
* @returns {node is Kind}
|
||
* Whether this is a node and passes a test.
|
||
*/
|
||
|
||
/**
|
||
* Check if `node` is a `Node` and whether it passes the given test.
|
||
*
|
||
* @param node
|
||
* Thing to check, typically `Node`.
|
||
* @param test
|
||
* A check for a specific node.
|
||
* @param index
|
||
* The node’s position in its parent.
|
||
* @param parent
|
||
* The node’s parent.
|
||
* @returns
|
||
* Whether `node` is a node and passes a test.
|
||
*/
|
||
var is =
|
||
/**
|
||
* @type {(
|
||
* (() => false) &
|
||
* (<Kind extends Node = Node>(node: unknown, test: PredicateTest<Kind>, index: number, parent: Parent, context?: unknown) => node is Kind) &
|
||
* (<Kind extends Node = Node>(node: unknown, test: PredicateTest<Kind>, index?: null | undefined, parent?: null | undefined, context?: unknown) => node is Kind) &
|
||
* ((node: unknown, test: Test, index: number, parent: Parent, context?: unknown) => boolean) &
|
||
* ((node: unknown, test?: Test, index?: null | undefined, parent?: null | undefined, context?: unknown) => boolean)
|
||
* )}
|
||
*/
|
||
|
||
/**
|
||
* @param {unknown} [node]
|
||
* @param {Test} [test]
|
||
* @param {number | null | undefined} [index]
|
||
* @param {Parent | null | undefined} [parent]
|
||
* @param {unknown} [context]
|
||
* @returns {boolean}
|
||
*/
|
||
// eslint-disable-next-line max-params
|
||
function is(node, test, index, parent, context) {
|
||
var check = convert(test);
|
||
if (index !== undefined && index !== null && (typeof index !== 'number' || index < 0 || index === Number.POSITIVE_INFINITY)) {
|
||
throw new Error('Expected positive finite index');
|
||
}
|
||
if (parent !== undefined && parent !== null && (!is(parent) || !parent.children)) {
|
||
throw new Error('Expected parent node');
|
||
}
|
||
if ((parent === undefined || parent === null) !== (index === undefined || index === null)) {
|
||
throw new Error('Expected both parent and index');
|
||
}
|
||
|
||
// @ts-expect-error Looks like a node.
|
||
return node && node.type && typeof node.type === 'string' ? Boolean(check.call(context, node, index, parent)) : false;
|
||
};
|
||
|
||
/**
|
||
* Generate an assertion from a test.
|
||
*
|
||
* Useful if you’re going to test many nodes, for example when creating a
|
||
* utility where something else passes a compatible test.
|
||
*
|
||
* The created function is a bit faster because it expects valid input only:
|
||
* a `node`, `index`, and `parent`.
|
||
*
|
||
* @param test
|
||
* * when nullish, checks if `node` is a `Node`.
|
||
* * when `string`, works like passing `(node) => node.type === test`.
|
||
* * when `function` checks if function passed the node is true.
|
||
* * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.
|
||
* * when `array`, checks if any one of the subtests pass.
|
||
* @returns
|
||
* An assertion.
|
||
*/
|
||
var convert =
|
||
/**
|
||
* @type {(
|
||
* (<Kind extends Node>(test: PredicateTest<Kind>) => AssertPredicate<Kind>) &
|
||
* ((test?: Test) => AssertAnything)
|
||
* )}
|
||
*/
|
||
|
||
/**
|
||
* @param {Test} [test]
|
||
* @returns {AssertAnything}
|
||
*/
|
||
function convert(test) {
|
||
if (test === undefined || test === null) {
|
||
return ok;
|
||
}
|
||
if (typeof test === 'string') {
|
||
return typeFactory(test);
|
||
}
|
||
if (typeof test === 'object') {
|
||
return Array.isArray(test) ? anyFactory(test) : propsFactory(test);
|
||
}
|
||
if (typeof test === 'function') {
|
||
return castFactory(test);
|
||
}
|
||
throw new Error('Expected function, string, or object as test');
|
||
};
|
||
|
||
/**
|
||
* @param {Array<string | Props | TestFunctionAnything>} tests
|
||
* @returns {AssertAnything}
|
||
*/
|
||
function anyFactory(tests) {
|
||
/** @type {Array<AssertAnything>} */
|
||
var checks = [];
|
||
var index = -1;
|
||
while (++index < tests.length) {
|
||
checks[index] = convert(tests[index]);
|
||
}
|
||
return castFactory(any);
|
||
|
||
/**
|
||
* @this {unknown}
|
||
* @param {Array<unknown>} parameters
|
||
* @returns {boolean}
|
||
*/
|
||
function any() {
|
||
var index = -1;
|
||
for (var _len = arguments.length, parameters = new Array(_len), _key = 0; _key < _len; _key++) {
|
||
parameters[_key] = arguments[_key];
|
||
}
|
||
while (++index < checks.length) {
|
||
var _checks$index;
|
||
if ((_checks$index = checks[index]).call.apply(_checks$index, [this].concat(parameters))) return true;
|
||
}
|
||
return false;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Turn an object into a test for a node with a certain fields.
|
||
*
|
||
* @param {Props} check
|
||
* @returns {AssertAnything}
|
||
*/
|
||
function propsFactory(check) {
|
||
return castFactory(all);
|
||
|
||
/**
|
||
* @param {Node} node
|
||
* @returns {boolean}
|
||
*/
|
||
function all(node) {
|
||
/** @type {string} */
|
||
var key;
|
||
for (key in check) {
|
||
// @ts-expect-error: hush, it sure works as an index.
|
||
if (node[key] !== check[key]) return false;
|
||
}
|
||
return true;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Turn a string into a test for a node with a certain type.
|
||
*
|
||
* @param {string} check
|
||
* @returns {AssertAnything}
|
||
*/
|
||
function typeFactory(check) {
|
||
return castFactory(type);
|
||
|
||
/**
|
||
* @param {Node} node
|
||
*/
|
||
function type(node) {
|
||
return node && node.type === check;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Turn a custom test into a test for a node that passes that test.
|
||
*
|
||
* @param {TestFunctionAnything} check
|
||
* @returns {AssertAnything}
|
||
*/
|
||
function castFactory(check) {
|
||
return assertion;
|
||
|
||
/**
|
||
* @this {unknown}
|
||
* @param {unknown} node
|
||
* @param {Array<unknown>} parameters
|
||
* @returns {boolean}
|
||
*/
|
||
function assertion(node) {
|
||
for (var _len2 = arguments.length, parameters = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
||
parameters[_key2 - 1] = arguments[_key2];
|
||
}
|
||
return Boolean(node && typeof node === 'object' && 'type' in node &&
|
||
// @ts-expect-error: fine.
|
||
Boolean(check.call.apply(check, [this, node].concat(parameters))));
|
||
}
|
||
}
|
||
function ok() {
|
||
return true;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/unist-util-visit-parents@5.1.3/node_modules/unist-util-visit-parents/lib/color.browser.js
|
||
/**
|
||
* @param {string} d
|
||
* @returns {string}
|
||
*/
|
||
function color_browser_color(d) {
|
||
return d;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/unist-util-visit-parents@5.1.3/node_modules/unist-util-visit-parents/lib/index.js
|
||
/**
|
||
* @typedef {import('unist').Node} Node
|
||
* @typedef {import('unist').Parent} Parent
|
||
* @typedef {import('unist-util-is').Test} Test
|
||
*/
|
||
|
||
/**
|
||
* @typedef {boolean | 'skip'} Action
|
||
* Union of the action types.
|
||
*
|
||
* @typedef {number} Index
|
||
* Move to the sibling at `index` next (after node itself is completely
|
||
* traversed).
|
||
*
|
||
* Useful if mutating the tree, such as removing the node the visitor is
|
||
* currently on, or any of its previous siblings.
|
||
* Results less than 0 or greater than or equal to `children.length` stop
|
||
* traversing the parent.
|
||
*
|
||
* @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple
|
||
* List with one or two values, the first an action, the second an index.
|
||
*
|
||
* @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult
|
||
* Any value that can be returned from a visitor.
|
||
*/
|
||
|
||
/**
|
||
* @template {Node} [Visited=Node]
|
||
* Visited node type.
|
||
* @template {Parent} [Ancestor=Parent]
|
||
* Ancestor type.
|
||
* @callback Visitor
|
||
* Handle a node (matching `test`, if given).
|
||
*
|
||
* Visitors are free to transform `node`.
|
||
* They can also transform the parent of node (the last of `ancestors`).
|
||
*
|
||
* Replacing `node` itself, if `SKIP` is not returned, still causes its
|
||
* descendants to be walked (which is a bug).
|
||
*
|
||
* When adding or removing previous siblings of `node` (or next siblings, in
|
||
* case of reverse), the `Visitor` should return a new `Index` to specify the
|
||
* sibling to traverse after `node` is traversed.
|
||
* Adding or removing next siblings of `node` (or previous siblings, in case
|
||
* of reverse) is handled as expected without needing to return a new `Index`.
|
||
*
|
||
* Removing the children property of an ancestor still results in them being
|
||
* traversed.
|
||
* @param {Visited} node
|
||
* Found node.
|
||
* @param {Array<Ancestor>} ancestors
|
||
* Ancestors of `node`.
|
||
* @returns {VisitorResult}
|
||
* What to do next.
|
||
*
|
||
* An `Index` is treated as a tuple of `[CONTINUE, Index]`.
|
||
* An `Action` is treated as a tuple of `[Action]`.
|
||
*
|
||
* Passing a tuple back only makes sense if the `Action` is `SKIP`.
|
||
* When the `Action` is `EXIT`, that action can be returned.
|
||
* When the `Action` is `CONTINUE`, `Index` can be returned.
|
||
*/
|
||
|
||
/**
|
||
* @template {Node} [Tree=Node]
|
||
* Tree type.
|
||
* @template {Test} [Check=string]
|
||
* Test type.
|
||
* @typedef {Visitor<import('./complex-types.js').Matches<import('./complex-types.js').InclusiveDescendant<Tree>, Check>, Extract<import('./complex-types.js').InclusiveDescendant<Tree>, Parent>>} BuildVisitor
|
||
* Build a typed `Visitor` function from a tree and a test.
|
||
*
|
||
* It will infer which values are passed as `node` and which as `parents`.
|
||
*/
|
||
|
||
|
||
|
||
|
||
/**
|
||
* Continue traversing as normal.
|
||
*/
|
||
var CONTINUE = true;
|
||
|
||
/**
|
||
* Stop traversing immediately.
|
||
*/
|
||
var EXIT = false;
|
||
|
||
/**
|
||
* Do not traverse this node’s children.
|
||
*/
|
||
var SKIP = 'skip';
|
||
|
||
/**
|
||
* Visit nodes, with ancestral information.
|
||
*
|
||
* This algorithm performs *depth-first* *tree traversal* in *preorder*
|
||
* (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).
|
||
*
|
||
* You can choose for which nodes `visitor` is called by passing a `test`.
|
||
* For complex tests, you should test yourself in `visitor`, as it will be
|
||
* faster and will have improved type information.
|
||
*
|
||
* Walking the tree is an intensive task.
|
||
* Make use of the return values of the visitor when possible.
|
||
* Instead of walking a tree multiple times, walk it once, use `unist-util-is`
|
||
* to check if a node matches, and then perform different operations.
|
||
*
|
||
* You can change the tree.
|
||
* See `Visitor` for more info.
|
||
*
|
||
* @param tree
|
||
* Tree to traverse.
|
||
* @param test
|
||
* `unist-util-is`-compatible test
|
||
* @param visitor
|
||
* Handle each node.
|
||
* @param reverse
|
||
* Traverse in reverse preorder (NRL) instead of the default preorder (NLR).
|
||
* @returns
|
||
* Nothing.
|
||
*/
|
||
var visitParents =
|
||
/**
|
||
* @type {(
|
||
* (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: BuildVisitor<Tree, Check>, reverse?: boolean | null | undefined) => void) &
|
||
* (<Tree extends Node>(tree: Tree, visitor: BuildVisitor<Tree>, reverse?: boolean | null | undefined) => void)
|
||
* )}
|
||
*/
|
||
|
||
/**
|
||
* @param {Node} tree
|
||
* @param {Test} test
|
||
* @param {Visitor<Node>} visitor
|
||
* @param {boolean | null | undefined} [reverse]
|
||
* @returns {void}
|
||
*/
|
||
function visitParents(tree, test, visitor, reverse) {
|
||
if (typeof test === 'function' && typeof visitor !== 'function') {
|
||
reverse = visitor;
|
||
// @ts-expect-error no visitor given, so `visitor` is test.
|
||
visitor = test;
|
||
test = null;
|
||
}
|
||
var is = convert(test);
|
||
var step = reverse ? -1 : 1;
|
||
factory(tree, undefined, [])();
|
||
|
||
/**
|
||
* @param {Node} node
|
||
* @param {number | undefined} index
|
||
* @param {Array<Parent>} parents
|
||
*/
|
||
function factory(node, index, parents) {
|
||
/** @type {Record<string, unknown>} */
|
||
// @ts-expect-error: hush
|
||
var value = node && typeof node === 'object' ? node : {};
|
||
if (typeof value.type === 'string') {
|
||
var name =
|
||
// `hast`
|
||
typeof value.tagName === 'string' ? value.tagName :
|
||
// `xast`
|
||
typeof value.name === 'string' ? value.name : undefined;
|
||
Object.defineProperty(visit, 'name', {
|
||
value: 'node (' + color_browser_color(node.type + (name ? '<' + name + '>' : '')) + ')'
|
||
});
|
||
}
|
||
return visit;
|
||
function visit() {
|
||
/** @type {ActionTuple} */
|
||
var result = [];
|
||
/** @type {ActionTuple} */
|
||
var subresult;
|
||
/** @type {number} */
|
||
var offset;
|
||
/** @type {Array<Parent>} */
|
||
var grandparents;
|
||
if (!test || is(node, index, parents[parents.length - 1] || null)) {
|
||
result = toResult(visitor(node, parents));
|
||
if (result[0] === EXIT) {
|
||
return result;
|
||
}
|
||
}
|
||
|
||
// @ts-expect-error looks like a parent.
|
||
if (node.children && result[0] !== SKIP) {
|
||
// @ts-expect-error looks like a parent.
|
||
offset = (reverse ? node.children.length : -1) + step;
|
||
// @ts-expect-error looks like a parent.
|
||
grandparents = parents.concat(node);
|
||
|
||
// @ts-expect-error looks like a parent.
|
||
while (offset > -1 && offset < node.children.length) {
|
||
// @ts-expect-error looks like a parent.
|
||
subresult = factory(node.children[offset], offset, grandparents)();
|
||
if (subresult[0] === EXIT) {
|
||
return subresult;
|
||
}
|
||
offset = typeof subresult[1] === 'number' ? subresult[1] : offset + step;
|
||
}
|
||
}
|
||
return result;
|
||
}
|
||
}
|
||
};
|
||
|
||
/**
|
||
* Turn a return value into a clean result.
|
||
*
|
||
* @param {VisitorResult} value
|
||
* Valid return values from visitors.
|
||
* @returns {ActionTuple}
|
||
* Clean result.
|
||
*/
|
||
function toResult(value) {
|
||
if (Array.isArray(value)) {
|
||
return value;
|
||
}
|
||
if (typeof value === 'number') {
|
||
return [CONTINUE, value];
|
||
}
|
||
return [value];
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/unist-util-visit@4.1.2/node_modules/unist-util-visit/lib/index.js
|
||
/**
|
||
* @typedef {import('unist').Node} Node
|
||
* @typedef {import('unist').Parent} Parent
|
||
* @typedef {import('unist-util-is').Test} Test
|
||
* @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult
|
||
*/
|
||
|
||
/**
|
||
* Check if `Child` can be a child of `Ancestor`.
|
||
*
|
||
* Returns the ancestor when `Child` can be a child of `Ancestor`, or returns
|
||
* `never`.
|
||
*
|
||
* @template {Node} Ancestor
|
||
* Node type.
|
||
* @template {Node} Child
|
||
* Node type.
|
||
* @typedef {(
|
||
* Ancestor extends Parent
|
||
* ? Child extends Ancestor['children'][number]
|
||
* ? Ancestor
|
||
* : never
|
||
* : never
|
||
* )} ParentsOf
|
||
*/
|
||
|
||
/**
|
||
* @template {Node} [Visited=Node]
|
||
* Visited node type.
|
||
* @template {Parent} [Ancestor=Parent]
|
||
* Ancestor type.
|
||
* @callback Visitor
|
||
* Handle a node (matching `test`, if given).
|
||
*
|
||
* Visitors are free to transform `node`.
|
||
* They can also transform `parent`.
|
||
*
|
||
* Replacing `node` itself, if `SKIP` is not returned, still causes its
|
||
* descendants to be walked (which is a bug).
|
||
*
|
||
* When adding or removing previous siblings of `node` (or next siblings, in
|
||
* case of reverse), the `Visitor` should return a new `Index` to specify the
|
||
* sibling to traverse after `node` is traversed.
|
||
* Adding or removing next siblings of `node` (or previous siblings, in case
|
||
* of reverse) is handled as expected without needing to return a new `Index`.
|
||
*
|
||
* Removing the children property of `parent` still results in them being
|
||
* traversed.
|
||
* @param {Visited} node
|
||
* Found node.
|
||
* @param {Visited extends Node ? number | null : never} index
|
||
* Index of `node` in `parent`.
|
||
* @param {Ancestor extends Node ? Ancestor | null : never} parent
|
||
* Parent of `node`.
|
||
* @returns {VisitorResult}
|
||
* What to do next.
|
||
*
|
||
* An `Index` is treated as a tuple of `[CONTINUE, Index]`.
|
||
* An `Action` is treated as a tuple of `[Action]`.
|
||
*
|
||
* Passing a tuple back only makes sense if the `Action` is `SKIP`.
|
||
* When the `Action` is `EXIT`, that action can be returned.
|
||
* When the `Action` is `CONTINUE`, `Index` can be returned.
|
||
*/
|
||
|
||
/**
|
||
* Build a typed `Visitor` function from a node and all possible parents.
|
||
*
|
||
* It will infer which values are passed as `node` and which as `parent`.
|
||
*
|
||
* @template {Node} Visited
|
||
* Node type.
|
||
* @template {Parent} Ancestor
|
||
* Parent type.
|
||
* @typedef {Visitor<Visited, ParentsOf<Ancestor, Visited>>} BuildVisitorFromMatch
|
||
*/
|
||
|
||
/**
|
||
* Build a typed `Visitor` function from a list of descendants and a test.
|
||
*
|
||
* It will infer which values are passed as `node` and which as `parent`.
|
||
*
|
||
* @template {Node} Descendant
|
||
* Node type.
|
||
* @template {Test} Check
|
||
* Test type.
|
||
* @typedef {(
|
||
* BuildVisitorFromMatch<
|
||
* import('unist-util-visit-parents/complex-types.js').Matches<Descendant, Check>,
|
||
* Extract<Descendant, Parent>
|
||
* >
|
||
* )} BuildVisitorFromDescendants
|
||
*/
|
||
|
||
/**
|
||
* Build a typed `Visitor` function from a tree and a test.
|
||
*
|
||
* It will infer which values are passed as `node` and which as `parent`.
|
||
*
|
||
* @template {Node} [Tree=Node]
|
||
* Node type.
|
||
* @template {Test} [Check=string]
|
||
* Test type.
|
||
* @typedef {(
|
||
* BuildVisitorFromDescendants<
|
||
* import('unist-util-visit-parents/complex-types.js').InclusiveDescendant<Tree>,
|
||
* Check
|
||
* >
|
||
* )} BuildVisitor
|
||
*/
|
||
|
||
|
||
|
||
/**
|
||
* Visit nodes.
|
||
*
|
||
* This algorithm performs *depth-first* *tree traversal* in *preorder*
|
||
* (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).
|
||
*
|
||
* You can choose for which nodes `visitor` is called by passing a `test`.
|
||
* For complex tests, you should test yourself in `visitor`, as it will be
|
||
* faster and will have improved type information.
|
||
*
|
||
* Walking the tree is an intensive task.
|
||
* Make use of the return values of the visitor when possible.
|
||
* Instead of walking a tree multiple times, walk it once, use `unist-util-is`
|
||
* to check if a node matches, and then perform different operations.
|
||
*
|
||
* You can change the tree.
|
||
* See `Visitor` for more info.
|
||
*
|
||
* @param tree
|
||
* Tree to traverse.
|
||
* @param test
|
||
* `unist-util-is`-compatible test
|
||
* @param visitor
|
||
* Handle each node.
|
||
* @param reverse
|
||
* Traverse in reverse preorder (NRL) instead of the default preorder (NLR).
|
||
* @returns
|
||
* Nothing.
|
||
*/
|
||
var visit =
|
||
/**
|
||
* @type {(
|
||
* (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: BuildVisitor<Tree, Check>, reverse?: boolean | null | undefined) => void) &
|
||
* (<Tree extends Node>(tree: Tree, visitor: BuildVisitor<Tree>, reverse?: boolean | null | undefined) => void)
|
||
* )}
|
||
*/
|
||
|
||
/**
|
||
* @param {Node} tree
|
||
* @param {Test} test
|
||
* @param {Visitor} visitor
|
||
* @param {boolean | null | undefined} [reverse]
|
||
* @returns {void}
|
||
*/
|
||
function visit(tree, test, visitor, reverse) {
|
||
if (typeof test === 'function' && typeof visitor !== 'function') {
|
||
reverse = visitor;
|
||
visitor = test;
|
||
test = null;
|
||
}
|
||
visitParents(tree, test, overload, reverse);
|
||
|
||
/**
|
||
* @param {Node} node
|
||
* @param {Array<Parent>} parents
|
||
*/
|
||
function overload(node, parents) {
|
||
var parent = parents[parents.length - 1];
|
||
return visitor(node, parent ? parent.children.indexOf(node) : null, parent);
|
||
}
|
||
};
|
||
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/unist-util-position@4.0.4/node_modules/unist-util-position/lib/index.js
|
||
/**
|
||
* @typedef {import('unist').Position} Position
|
||
* @typedef {import('unist').Node} Node
|
||
* @typedef {import('unist').Point} Point
|
||
*/
|
||
|
||
/**
|
||
* @typedef NodeLike
|
||
* @property {string} type
|
||
* @property {PositionLike | null | undefined} [position]
|
||
*
|
||
* @typedef PositionLike
|
||
* @property {PointLike | null | undefined} [start]
|
||
* @property {PointLike | null | undefined} [end]
|
||
*
|
||
* @typedef PointLike
|
||
* @property {number | null | undefined} [line]
|
||
* @property {number | null | undefined} [column]
|
||
* @property {number | null | undefined} [offset]
|
||
*/
|
||
|
||
/**
|
||
* Get the starting point of `node`.
|
||
*
|
||
* @param node
|
||
* Node.
|
||
* @returns
|
||
* Point.
|
||
*/
|
||
var pointStart = unist_util_position_lib_point('start');
|
||
|
||
/**
|
||
* Get the ending point of `node`.
|
||
*
|
||
* @param node
|
||
* Node.
|
||
* @returns
|
||
* Point.
|
||
*/
|
||
var pointEnd = unist_util_position_lib_point('end');
|
||
|
||
/**
|
||
* Get the positional info of `node`.
|
||
*
|
||
* @param {NodeLike | Node | null | undefined} [node]
|
||
* Node.
|
||
* @returns {Position}
|
||
* Position.
|
||
*/
|
||
function unist_util_position_lib_position(node) {
|
||
return {
|
||
start: pointStart(node),
|
||
end: pointEnd(node)
|
||
};
|
||
}
|
||
|
||
/**
|
||
* Get the positional info of `node`.
|
||
*
|
||
* @param {'start' | 'end'} type
|
||
* Side.
|
||
* @returns
|
||
* Getter.
|
||
*/
|
||
function unist_util_position_lib_point(type) {
|
||
return point;
|
||
|
||
/**
|
||
* Get the point info of `node` at a bound side.
|
||
*
|
||
* @param {NodeLike | Node | null | undefined} [node]
|
||
* @returns {Point}
|
||
*/
|
||
function point(node) {
|
||
var point = node && node.position && node.position[type] || {};
|
||
|
||
// To do: next major: don’t return points when invalid.
|
||
return {
|
||
// @ts-expect-error: in practice, null is allowed.
|
||
line: point.line || null,
|
||
// @ts-expect-error: in practice, null is allowed.
|
||
column: point.column || null,
|
||
// @ts-expect-error: in practice, null is allowed.
|
||
offset: point.offset > -1 ? point.offset : null
|
||
};
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/unist-util-generated@2.0.1/node_modules/unist-util-generated/lib/index.js
|
||
/**
|
||
* @typedef PointLike
|
||
* @property {number | null | undefined} [line]
|
||
* @property {number | null | undefined} [column]
|
||
* @property {number | null | undefined} [offset]
|
||
*
|
||
* @typedef PositionLike
|
||
* @property {PointLike | null | undefined} [start]
|
||
* @property {PointLike | null | undefined} [end]
|
||
*
|
||
* @typedef NodeLike
|
||
* @property {PositionLike | null | undefined} [position]
|
||
*/
|
||
|
||
/**
|
||
* Check if `node` is generated.
|
||
*
|
||
* @param {NodeLike | null | undefined} [node]
|
||
* Node to check.
|
||
* @returns {boolean}
|
||
* Whether `node` is generated (does not have positional info).
|
||
*/
|
||
function generated(node) {
|
||
return !node || !node.position || !node.position.start || !node.position.start.line || !node.position.start.column || !node.position.end || !node.position.end.line || !node.position.end.column;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/mdast-util-definitions@5.1.2/node_modules/mdast-util-definitions/lib/index.js
|
||
/**
|
||
* @typedef {import('mdast').Root} Root
|
||
* @typedef {import('mdast').Content} Content
|
||
* @typedef {import('mdast').Definition} Definition
|
||
*/
|
||
|
||
/**
|
||
* @typedef {Root | Content} Node
|
||
*
|
||
* @callback GetDefinition
|
||
* Get a definition by identifier.
|
||
* @param {string | null | undefined} [identifier]
|
||
* Identifier of definition.
|
||
* @returns {Definition | null}
|
||
* Definition corresponding to `identifier` or `null`.
|
||
*/
|
||
|
||
|
||
var mdast_util_definitions_lib_own = {}.hasOwnProperty;
|
||
|
||
/**
|
||
* Find definitions in `tree`.
|
||
*
|
||
* Uses CommonMark precedence, which means that earlier definitions are
|
||
* preferred over duplicate later definitions.
|
||
*
|
||
* @param {Node} tree
|
||
* Tree to check.
|
||
* @returns {GetDefinition}
|
||
* Getter.
|
||
*/
|
||
function definitions(tree) {
|
||
/** @type {Record<string, Definition>} */
|
||
var cache = Object.create(null);
|
||
if (!tree || !tree.type) {
|
||
throw new Error('mdast-util-definitions expected node');
|
||
}
|
||
visit(tree, 'definition', function (definition) {
|
||
var id = clean(definition.identifier);
|
||
if (id && !mdast_util_definitions_lib_own.call(cache, id)) {
|
||
cache[id] = definition;
|
||
}
|
||
});
|
||
return definition;
|
||
|
||
/** @type {GetDefinition} */
|
||
function definition(identifier) {
|
||
var id = clean(identifier);
|
||
// To do: next major: return `undefined` when not found.
|
||
return id && mdast_util_definitions_lib_own.call(cache, id) ? cache[id] : null;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @param {string | null | undefined} [value]
|
||
* @returns {string}
|
||
*/
|
||
function clean(value) {
|
||
return String(value || '').toUpperCase();
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/mdast-util-to-hast@12.3.0/node_modules/mdast-util-to-hast/lib/handlers/blockquote.js
|
||
/**
|
||
* @typedef {import('hast').Element} Element
|
||
* @typedef {import('mdast').Blockquote} Blockquote
|
||
* @typedef {import('../state.js').State} State
|
||
*/
|
||
|
||
/**
|
||
* Turn an mdast `blockquote` node into hast.
|
||
*
|
||
* @param {State} state
|
||
* Info passed around.
|
||
* @param {Blockquote} node
|
||
* mdast node.
|
||
* @returns {Element}
|
||
* hast node.
|
||
*/
|
||
function blockquote(state, node) {
|
||
/** @type {Element} */
|
||
var result = {
|
||
type: 'element',
|
||
tagName: 'blockquote',
|
||
properties: {},
|
||
children: state.wrap(state.all(node), true)
|
||
};
|
||
state.patch(node, result);
|
||
return state.applyData(node, result);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/mdast-util-to-hast@12.3.0/node_modules/mdast-util-to-hast/lib/handlers/break.js
|
||
/**
|
||
* @typedef {import('hast').Element} Element
|
||
* @typedef {import('hast').Text} Text
|
||
* @typedef {import('mdast').Break} Break
|
||
* @typedef {import('../state.js').State} State
|
||
*/
|
||
|
||
/**
|
||
* Turn an mdast `break` node into hast.
|
||
*
|
||
* @param {State} state
|
||
* Info passed around.
|
||
* @param {Break} node
|
||
* mdast node.
|
||
* @returns {Array<Element | Text>}
|
||
* hast element content.
|
||
*/
|
||
function hardBreak(state, node) {
|
||
/** @type {Element} */
|
||
var result = {
|
||
type: 'element',
|
||
tagName: 'br',
|
||
properties: {},
|
||
children: []
|
||
};
|
||
state.patch(node, result);
|
||
return [state.applyData(node, result), {
|
||
type: 'text',
|
||
value: '\n'
|
||
}];
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/mdast-util-to-hast@12.3.0/node_modules/mdast-util-to-hast/lib/handlers/code.js
|
||
/**
|
||
* @typedef {import('hast').Element} Element
|
||
* @typedef {import('hast').Properties} Properties
|
||
* @typedef {import('mdast').Code} Code
|
||
* @typedef {import('../state.js').State} State
|
||
|
||
*/
|
||
|
||
/**
|
||
* Turn an mdast `code` node into hast.
|
||
*
|
||
* @param {State} state
|
||
* Info passed around.
|
||
* @param {Code} node
|
||
* mdast node.
|
||
* @returns {Element}
|
||
* hast node.
|
||
*/
|
||
function code(state, node) {
|
||
var value = node.value ? node.value + '\n' : '';
|
||
// To do: next major, use `node.lang` w/o regex, the splitting’s been going
|
||
// on for years in remark now.
|
||
var lang = node.lang ? node.lang.match(/^[^ \t]+(?=[ \t]|$)/) : null;
|
||
/** @type {Properties} */
|
||
var properties = {};
|
||
if (lang) {
|
||
properties.className = ['language-' + lang];
|
||
}
|
||
|
||
// Create `<code>`.
|
||
/** @type {Element} */
|
||
var result = {
|
||
type: 'element',
|
||
tagName: 'code',
|
||
properties: properties,
|
||
children: [{
|
||
type: 'text',
|
||
value: value
|
||
}]
|
||
};
|
||
if (node.meta) {
|
||
result.data = {
|
||
meta: node.meta
|
||
};
|
||
}
|
||
state.patch(node, result);
|
||
result = state.applyData(node, result);
|
||
|
||
// Create `<pre>`.
|
||
result = {
|
||
type: 'element',
|
||
tagName: 'pre',
|
||
properties: {},
|
||
children: [result]
|
||
};
|
||
state.patch(node, result);
|
||
return result;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/mdast-util-to-hast@12.3.0/node_modules/mdast-util-to-hast/lib/handlers/delete.js
|
||
/**
|
||
* @typedef {import('hast').Element} Element
|
||
* @typedef {import('mdast').Delete} Delete
|
||
* @typedef {import('../state.js').State} State
|
||
|
||
*/
|
||
|
||
/**
|
||
* Turn an mdast `delete` node into hast.
|
||
*
|
||
* @param {State} state
|
||
* Info passed around.
|
||
* @param {Delete} node
|
||
* mdast node.
|
||
* @returns {Element}
|
||
* hast node.
|
||
*/
|
||
function strikethrough(state, node) {
|
||
/** @type {Element} */
|
||
var result = {
|
||
type: 'element',
|
||
tagName: 'del',
|
||
properties: {},
|
||
children: state.all(node)
|
||
};
|
||
state.patch(node, result);
|
||
return state.applyData(node, result);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/mdast-util-to-hast@12.3.0/node_modules/mdast-util-to-hast/lib/handlers/emphasis.js
|
||
/**
|
||
* @typedef {import('hast').Element} Element
|
||
* @typedef {import('mdast').Emphasis} Emphasis
|
||
* @typedef {import('../state.js').State} State
|
||
*/
|
||
|
||
/**
|
||
* Turn an mdast `emphasis` node into hast.
|
||
*
|
||
* @param {State} state
|
||
* Info passed around.
|
||
* @param {Emphasis} node
|
||
* mdast node.
|
||
* @returns {Element}
|
||
* hast node.
|
||
*/
|
||
function emphasis(state, node) {
|
||
/** @type {Element} */
|
||
var result = {
|
||
type: 'element',
|
||
tagName: 'em',
|
||
properties: {},
|
||
children: state.all(node)
|
||
};
|
||
state.patch(node, result);
|
||
return state.applyData(node, result);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/mdast-util-to-hast@12.3.0/node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js
|
||
/**
|
||
* @typedef {import('mdast').FootnoteReference} FootnoteReference
|
||
* @typedef {import('hast').Element} Element
|
||
* @typedef {import('../state.js').State} State
|
||
*/
|
||
|
||
|
||
|
||
/**
|
||
* Turn an mdast `footnoteReference` node into hast.
|
||
*
|
||
* @param {State} state
|
||
* Info passed around.
|
||
* @param {FootnoteReference} node
|
||
* mdast node.
|
||
* @returns {Element}
|
||
* hast node.
|
||
*/
|
||
function footnoteReference(state, node) {
|
||
var id = String(node.identifier).toUpperCase();
|
||
var safeId = normalizeUri(id.toLowerCase());
|
||
var index = state.footnoteOrder.indexOf(id);
|
||
/** @type {number} */
|
||
var counter;
|
||
if (index === -1) {
|
||
state.footnoteOrder.push(id);
|
||
state.footnoteCounts[id] = 1;
|
||
counter = state.footnoteOrder.length;
|
||
} else {
|
||
state.footnoteCounts[id]++;
|
||
counter = index + 1;
|
||
}
|
||
var reuseCounter = state.footnoteCounts[id];
|
||
|
||
/** @type {Element} */
|
||
var link = {
|
||
type: 'element',
|
||
tagName: 'a',
|
||
properties: {
|
||
href: '#' + state.clobberPrefix + 'fn-' + safeId,
|
||
id: state.clobberPrefix + 'fnref-' + safeId + (reuseCounter > 1 ? '-' + reuseCounter : ''),
|
||
dataFootnoteRef: true,
|
||
ariaDescribedBy: ['footnote-label']
|
||
},
|
||
children: [{
|
||
type: 'text',
|
||
value: String(counter)
|
||
}]
|
||
};
|
||
state.patch(node, link);
|
||
|
||
/** @type {Element} */
|
||
var sup = {
|
||
type: 'element',
|
||
tagName: 'sup',
|
||
properties: {},
|
||
children: [link]
|
||
};
|
||
state.patch(node, sup);
|
||
return state.applyData(node, sup);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/mdast-util-to-hast@12.3.0/node_modules/mdast-util-to-hast/lib/handlers/footnote.js
|
||
/**
|
||
* @typedef {import('hast').Element} Element
|
||
* @typedef {import('mdast').Footnote} Footnote
|
||
* @typedef {import('../state.js').State} State
|
||
*/
|
||
|
||
|
||
|
||
// To do: when both:
|
||
// * <https://github.com/micromark/micromark-extension-footnote>
|
||
// * <https://github.com/syntax-tree/mdast-util-footnote>
|
||
// …are archived, remove this (also from mdast).
|
||
// These inline notes are not used in GFM.
|
||
|
||
/**
|
||
* Turn an mdast `footnote` node into hast.
|
||
*
|
||
* @param {State} state
|
||
* Info passed around.
|
||
* @param {Footnote} node
|
||
* mdast node.
|
||
* @returns {Element}
|
||
* hast node.
|
||
*/
|
||
function footnote(state, node) {
|
||
var footnoteById = state.footnoteById;
|
||
var no = 1;
|
||
while (no in footnoteById) no++;
|
||
var identifier = String(no);
|
||
footnoteById[identifier] = {
|
||
type: 'footnoteDefinition',
|
||
identifier: identifier,
|
||
children: [{
|
||
type: 'paragraph',
|
||
children: node.children
|
||
}],
|
||
position: node.position
|
||
};
|
||
return footnoteReference(state, {
|
||
type: 'footnoteReference',
|
||
identifier: identifier,
|
||
position: node.position
|
||
});
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/mdast-util-to-hast@12.3.0/node_modules/mdast-util-to-hast/lib/handlers/heading.js
|
||
/**
|
||
* @typedef {import('hast').Element} Element
|
||
* @typedef {import('mdast').Heading} Heading
|
||
* @typedef {import('../state.js').State} State
|
||
*/
|
||
|
||
/**
|
||
* Turn an mdast `heading` node into hast.
|
||
*
|
||
* @param {State} state
|
||
* Info passed around.
|
||
* @param {Heading} node
|
||
* mdast node.
|
||
* @returns {Element}
|
||
* hast node.
|
||
*/
|
||
function heading(state, node) {
|
||
/** @type {Element} */
|
||
var result = {
|
||
type: 'element',
|
||
tagName: 'h' + node.depth,
|
||
properties: {},
|
||
children: state.all(node)
|
||
};
|
||
state.patch(node, result);
|
||
return state.applyData(node, result);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/mdast-util-to-hast@12.3.0/node_modules/mdast-util-to-hast/lib/handlers/html.js
|
||
/**
|
||
* @typedef {import('hast').Element} Element
|
||
* @typedef {import('mdast').HTML} Html
|
||
* @typedef {import('../state.js').State} State
|
||
* @typedef {import('../../index.js').Raw} Raw
|
||
*/
|
||
|
||
/**
|
||
* Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise
|
||
* nothing).
|
||
*
|
||
* @param {State} state
|
||
* Info passed around.
|
||
* @param {Html} node
|
||
* mdast node.
|
||
* @returns {Raw | Element | null}
|
||
* hast node.
|
||
*/
|
||
function html(state, node) {
|
||
if (state.dangerous) {
|
||
/** @type {Raw} */
|
||
var result = {
|
||
type: 'raw',
|
||
value: node.value
|
||
};
|
||
state.patch(node, result);
|
||
return state.applyData(node, result);
|
||
}
|
||
|
||
// To do: next major: return `undefined`.
|
||
return null;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/mdast-util-to-hast@12.3.0/node_modules/mdast-util-to-hast/lib/revert.js
|
||
/**
|
||
* @typedef {import('hast').ElementContent} ElementContent
|
||
*
|
||
* @typedef {import('mdast').Content} Content
|
||
* @typedef {import('mdast').Reference} Reference
|
||
* @typedef {import('mdast').Root} Root
|
||
*
|
||
* @typedef {import('./state.js').State} State
|
||
*/
|
||
|
||
/**
|
||
* @typedef {Root | Content} Nodes
|
||
* @typedef {Extract<Nodes, Reference>} References
|
||
*/
|
||
|
||
// To do: next major: always return array.
|
||
|
||
/**
|
||
* Return the content of a reference without definition as plain text.
|
||
*
|
||
* @param {State} state
|
||
* Info passed around.
|
||
* @param {References} node
|
||
* Reference node (image, link).
|
||
* @returns {ElementContent | Array<ElementContent>}
|
||
* hast content.
|
||
*/
|
||
function revert(state, node) {
|
||
var subtype = node.referenceType;
|
||
var suffix = ']';
|
||
if (subtype === 'collapsed') {
|
||
suffix += '[]';
|
||
} else if (subtype === 'full') {
|
||
suffix += '[' + (node.label || node.identifier) + ']';
|
||
}
|
||
if (node.type === 'imageReference') {
|
||
return {
|
||
type: 'text',
|
||
value: '![' + node.alt + suffix
|
||
};
|
||
}
|
||
var contents = state.all(node);
|
||
var head = contents[0];
|
||
if (head && head.type === 'text') {
|
||
head.value = '[' + head.value;
|
||
} else {
|
||
contents.unshift({
|
||
type: 'text',
|
||
value: '['
|
||
});
|
||
}
|
||
var tail = contents[contents.length - 1];
|
||
if (tail && tail.type === 'text') {
|
||
tail.value += suffix;
|
||
} else {
|
||
contents.push({
|
||
type: 'text',
|
||
value: suffix
|
||
});
|
||
}
|
||
return contents;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/mdast-util-to-hast@12.3.0/node_modules/mdast-util-to-hast/lib/handlers/image-reference.js
|
||
/**
|
||
* @typedef {import('hast').ElementContent} ElementContent
|
||
* @typedef {import('hast').Element} Element
|
||
* @typedef {import('hast').Properties} Properties
|
||
* @typedef {import('mdast').ImageReference} ImageReference
|
||
* @typedef {import('../state.js').State} State
|
||
*/
|
||
|
||
|
||
|
||
|
||
/**
|
||
* Turn an mdast `imageReference` node into hast.
|
||
*
|
||
* @param {State} state
|
||
* Info passed around.
|
||
* @param {ImageReference} node
|
||
* mdast node.
|
||
* @returns {ElementContent | Array<ElementContent>}
|
||
* hast node.
|
||
*/
|
||
function imageReference(state, node) {
|
||
var def = state.definition(node.identifier);
|
||
if (!def) {
|
||
return revert(state, node);
|
||
}
|
||
|
||
/** @type {Properties} */
|
||
var properties = {
|
||
src: normalizeUri(def.url || ''),
|
||
alt: node.alt
|
||
};
|
||
if (def.title !== null && def.title !== undefined) {
|
||
properties.title = def.title;
|
||
}
|
||
|
||
/** @type {Element} */
|
||
var result = {
|
||
type: 'element',
|
||
tagName: 'img',
|
||
properties: properties,
|
||
children: []
|
||
};
|
||
state.patch(node, result);
|
||
return state.applyData(node, result);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/mdast-util-to-hast@12.3.0/node_modules/mdast-util-to-hast/lib/handlers/image.js
|
||
/**
|
||
* @typedef {import('hast').Element} Element
|
||
* @typedef {import('hast').Properties} Properties
|
||
* @typedef {import('mdast').Image} Image
|
||
* @typedef {import('../state.js').State} State
|
||
*/
|
||
|
||
|
||
|
||
/**
|
||
* Turn an mdast `image` node into hast.
|
||
*
|
||
* @param {State} state
|
||
* Info passed around.
|
||
* @param {Image} node
|
||
* mdast node.
|
||
* @returns {Element}
|
||
* hast node.
|
||
*/
|
||
function image_image(state, node) {
|
||
/** @type {Properties} */
|
||
var properties = {
|
||
src: normalizeUri(node.url)
|
||
};
|
||
if (node.alt !== null && node.alt !== undefined) {
|
||
properties.alt = node.alt;
|
||
}
|
||
if (node.title !== null && node.title !== undefined) {
|
||
properties.title = node.title;
|
||
}
|
||
|
||
/** @type {Element} */
|
||
var result = {
|
||
type: 'element',
|
||
tagName: 'img',
|
||
properties: properties,
|
||
children: []
|
||
};
|
||
state.patch(node, result);
|
||
return state.applyData(node, result);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/mdast-util-to-hast@12.3.0/node_modules/mdast-util-to-hast/lib/handlers/inline-code.js
|
||
/**
|
||
* @typedef {import('hast').Element} Element
|
||
* @typedef {import('hast').Text} Text
|
||
* @typedef {import('mdast').InlineCode} InlineCode
|
||
* @typedef {import('../state.js').State} State
|
||
*/
|
||
|
||
/**
|
||
* Turn an mdast `inlineCode` node into hast.
|
||
*
|
||
* @param {State} state
|
||
* Info passed around.
|
||
* @param {InlineCode} node
|
||
* mdast node.
|
||
* @returns {Element}
|
||
* hast node.
|
||
*/
|
||
function inlineCode(state, node) {
|
||
/** @type {Text} */
|
||
var text = {
|
||
type: 'text',
|
||
value: node.value.replace(/\r?\n|\r/g, ' ')
|
||
};
|
||
state.patch(node, text);
|
||
|
||
/** @type {Element} */
|
||
var result = {
|
||
type: 'element',
|
||
tagName: 'code',
|
||
properties: {},
|
||
children: [text]
|
||
};
|
||
state.patch(node, result);
|
||
return state.applyData(node, result);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/mdast-util-to-hast@12.3.0/node_modules/mdast-util-to-hast/lib/handlers/link-reference.js
|
||
/**
|
||
* @typedef {import('hast').Element} Element
|
||
* @typedef {import('hast').ElementContent} ElementContent
|
||
* @typedef {import('hast').Properties} Properties
|
||
* @typedef {import('mdast').LinkReference} LinkReference
|
||
* @typedef {import('../state.js').State} State
|
||
*/
|
||
|
||
|
||
|
||
|
||
/**
|
||
* Turn an mdast `linkReference` node into hast.
|
||
*
|
||
* @param {State} state
|
||
* Info passed around.
|
||
* @param {LinkReference} node
|
||
* mdast node.
|
||
* @returns {ElementContent | Array<ElementContent>}
|
||
* hast node.
|
||
*/
|
||
function linkReference(state, node) {
|
||
var def = state.definition(node.identifier);
|
||
if (!def) {
|
||
return revert(state, node);
|
||
}
|
||
|
||
/** @type {Properties} */
|
||
var properties = {
|
||
href: normalizeUri(def.url || '')
|
||
};
|
||
if (def.title !== null && def.title !== undefined) {
|
||
properties.title = def.title;
|
||
}
|
||
|
||
/** @type {Element} */
|
||
var result = {
|
||
type: 'element',
|
||
tagName: 'a',
|
||
properties: properties,
|
||
children: state.all(node)
|
||
};
|
||
state.patch(node, result);
|
||
return state.applyData(node, result);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/mdast-util-to-hast@12.3.0/node_modules/mdast-util-to-hast/lib/handlers/link.js
|
||
/**
|
||
* @typedef {import('hast').Element} Element
|
||
* @typedef {import('hast').Properties} Properties
|
||
* @typedef {import('mdast').Link} Link
|
||
* @typedef {import('../state.js').State} State
|
||
*/
|
||
|
||
|
||
|
||
/**
|
||
* Turn an mdast `link` node into hast.
|
||
*
|
||
* @param {State} state
|
||
* Info passed around.
|
||
* @param {Link} node
|
||
* mdast node.
|
||
* @returns {Element}
|
||
* hast node.
|
||
*/
|
||
function link_link(state, node) {
|
||
/** @type {Properties} */
|
||
var properties = {
|
||
href: normalizeUri(node.url)
|
||
};
|
||
if (node.title !== null && node.title !== undefined) {
|
||
properties.title = node.title;
|
||
}
|
||
|
||
/** @type {Element} */
|
||
var result = {
|
||
type: 'element',
|
||
tagName: 'a',
|
||
properties: properties,
|
||
children: state.all(node)
|
||
};
|
||
state.patch(node, result);
|
||
return state.applyData(node, result);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/mdast-util-to-hast@12.3.0/node_modules/mdast-util-to-hast/lib/handlers/list-item.js
|
||
|
||
/**
|
||
* @typedef {import('hast').Element} Element
|
||
* @typedef {import('hast').ElementContent} ElementContent
|
||
* @typedef {import('hast').Properties} Properties
|
||
* @typedef {import('mdast').Content} Content
|
||
* @typedef {import('mdast').ListItem} ListItem
|
||
* @typedef {import('mdast').Parent} Parent
|
||
* @typedef {import('mdast').Root} Root
|
||
* @typedef {import('../state.js').State} State
|
||
*/
|
||
|
||
/**
|
||
* @typedef {Root | Content} Nodes
|
||
* @typedef {Extract<Nodes, Parent>} Parents
|
||
*/
|
||
|
||
/**
|
||
* Turn an mdast `listItem` node into hast.
|
||
*
|
||
* @param {State} state
|
||
* Info passed around.
|
||
* @param {ListItem} node
|
||
* mdast node.
|
||
* @param {Parents | null | undefined} parent
|
||
* Parent of `node`.
|
||
* @returns {Element}
|
||
* hast node.
|
||
*/
|
||
function listItem(state, node, parent) {
|
||
var results = state.all(node);
|
||
var loose = parent ? listLoose(parent) : listItemLoose(node);
|
||
/** @type {Properties} */
|
||
var properties = {};
|
||
/** @type {Array<ElementContent>} */
|
||
var children = [];
|
||
if (typeof node.checked === 'boolean') {
|
||
var head = results[0];
|
||
/** @type {Element} */
|
||
var paragraph;
|
||
if (head && head.type === 'element' && head.tagName === 'p') {
|
||
paragraph = head;
|
||
} else {
|
||
paragraph = {
|
||
type: 'element',
|
||
tagName: 'p',
|
||
properties: {},
|
||
children: []
|
||
};
|
||
results.unshift(paragraph);
|
||
}
|
||
if (paragraph.children.length > 0) {
|
||
paragraph.children.unshift({
|
||
type: 'text',
|
||
value: ' '
|
||
});
|
||
}
|
||
paragraph.children.unshift({
|
||
type: 'element',
|
||
tagName: 'input',
|
||
properties: {
|
||
type: 'checkbox',
|
||
checked: node.checked,
|
||
disabled: true
|
||
},
|
||
children: []
|
||
});
|
||
|
||
// According to github-markdown-css, this class hides bullet.
|
||
// See: <https://github.com/sindresorhus/github-markdown-css>.
|
||
properties.className = ['task-list-item'];
|
||
}
|
||
var index = -1;
|
||
while (++index < results.length) {
|
||
var child = results[index];
|
||
|
||
// Add eols before nodes, except if this is a loose, first paragraph.
|
||
if (loose || index !== 0 || child.type !== 'element' || child.tagName !== 'p') {
|
||
children.push({
|
||
type: 'text',
|
||
value: '\n'
|
||
});
|
||
}
|
||
if (child.type === 'element' && child.tagName === 'p' && !loose) {
|
||
children.push.apply(children, toConsumableArray_toConsumableArray(child.children));
|
||
} else {
|
||
children.push(child);
|
||
}
|
||
}
|
||
var tail = results[results.length - 1];
|
||
|
||
// Add a final eol.
|
||
if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {
|
||
children.push({
|
||
type: 'text',
|
||
value: '\n'
|
||
});
|
||
}
|
||
|
||
/** @type {Element} */
|
||
var result = {
|
||
type: 'element',
|
||
tagName: 'li',
|
||
properties: properties,
|
||
children: children
|
||
};
|
||
state.patch(node, result);
|
||
return state.applyData(node, result);
|
||
}
|
||
|
||
/**
|
||
* @param {Parents} node
|
||
* @return {Boolean}
|
||
*/
|
||
function listLoose(node) {
|
||
var loose = false;
|
||
if (node.type === 'list') {
|
||
loose = node.spread || false;
|
||
var children = node.children;
|
||
var index = -1;
|
||
while (!loose && ++index < children.length) {
|
||
loose = listItemLoose(children[index]);
|
||
}
|
||
}
|
||
return loose;
|
||
}
|
||
|
||
/**
|
||
* @param {ListItem} node
|
||
* @return {Boolean}
|
||
*/
|
||
function listItemLoose(node) {
|
||
var spread = node.spread;
|
||
return spread === undefined || spread === null ? node.children.length > 1 : spread;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/mdast-util-to-hast@12.3.0/node_modules/mdast-util-to-hast/lib/handlers/list.js
|
||
/**
|
||
* @typedef {import('hast').Element} Element
|
||
* @typedef {import('hast').Properties} Properties
|
||
* @typedef {import('mdast').List} List
|
||
* @typedef {import('../state.js').State} State
|
||
*/
|
||
|
||
/**
|
||
* Turn an mdast `list` node into hast.
|
||
*
|
||
* @param {State} state
|
||
* Info passed around.
|
||
* @param {List} node
|
||
* mdast node.
|
||
* @returns {Element}
|
||
* hast node.
|
||
*/
|
||
function list_list(state, node) {
|
||
/** @type {Properties} */
|
||
var properties = {};
|
||
var results = state.all(node);
|
||
var index = -1;
|
||
if (typeof node.start === 'number' && node.start !== 1) {
|
||
properties.start = node.start;
|
||
}
|
||
|
||
// Like GitHub, add a class for custom styling.
|
||
while (++index < results.length) {
|
||
var child = results[index];
|
||
if (child.type === 'element' && child.tagName === 'li' && child.properties && Array.isArray(child.properties.className) && child.properties.className.includes('task-list-item')) {
|
||
properties.className = ['contains-task-list'];
|
||
break;
|
||
}
|
||
}
|
||
|
||
/** @type {Element} */
|
||
var result = {
|
||
type: 'element',
|
||
tagName: node.ordered ? 'ol' : 'ul',
|
||
properties: properties,
|
||
children: state.wrap(results, true)
|
||
};
|
||
state.patch(node, result);
|
||
return state.applyData(node, result);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/mdast-util-to-hast@12.3.0/node_modules/mdast-util-to-hast/lib/handlers/paragraph.js
|
||
/**
|
||
* @typedef {import('hast').Element} Element
|
||
* @typedef {import('mdast').Paragraph} Paragraph
|
||
* @typedef {import('../state.js').State} State
|
||
*/
|
||
|
||
/**
|
||
* Turn an mdast `paragraph` node into hast.
|
||
*
|
||
* @param {State} state
|
||
* Info passed around.
|
||
* @param {Paragraph} node
|
||
* mdast node.
|
||
* @returns {Element}
|
||
* hast node.
|
||
*/
|
||
function paragraph(state, node) {
|
||
/** @type {Element} */
|
||
var result = {
|
||
type: 'element',
|
||
tagName: 'p',
|
||
properties: {},
|
||
children: state.all(node)
|
||
};
|
||
state.patch(node, result);
|
||
return state.applyData(node, result);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/mdast-util-to-hast@12.3.0/node_modules/mdast-util-to-hast/lib/handlers/root.js
|
||
/**
|
||
* @typedef {import('hast').Root} HastRoot
|
||
* @typedef {import('hast').Element} HastElement
|
||
* @typedef {import('mdast').Root} MdastRoot
|
||
* @typedef {import('../state.js').State} State
|
||
*/
|
||
|
||
/**
|
||
* Turn an mdast `root` node into hast.
|
||
*
|
||
* @param {State} state
|
||
* Info passed around.
|
||
* @param {MdastRoot} node
|
||
* mdast node.
|
||
* @returns {HastRoot | HastElement}
|
||
* hast node.
|
||
*/
|
||
function root(state, node) {
|
||
/** @type {HastRoot} */
|
||
var result = {
|
||
type: 'root',
|
||
children: state.wrap(state.all(node))
|
||
};
|
||
state.patch(node, result);
|
||
return state.applyData(node, result);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/mdast-util-to-hast@12.3.0/node_modules/mdast-util-to-hast/lib/handlers/strong.js
|
||
/**
|
||
* @typedef {import('hast').Element} Element
|
||
* @typedef {import('mdast').Strong} Strong
|
||
* @typedef {import('../state.js').State} State
|
||
*/
|
||
|
||
/**
|
||
* Turn an mdast `strong` node into hast.
|
||
*
|
||
* @param {State} state
|
||
* Info passed around.
|
||
* @param {Strong} node
|
||
* mdast node.
|
||
* @returns {Element}
|
||
* hast node.
|
||
*/
|
||
function strong(state, node) {
|
||
/** @type {Element} */
|
||
var result = {
|
||
type: 'element',
|
||
tagName: 'strong',
|
||
properties: {},
|
||
children: state.all(node)
|
||
};
|
||
state.patch(node, result);
|
||
return state.applyData(node, result);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/mdast-util-to-hast@12.3.0/node_modules/mdast-util-to-hast/lib/handlers/table.js
|
||
/**
|
||
* @typedef {import('hast').Element} Element
|
||
* @typedef {import('mdast').Table} Table
|
||
* @typedef {import('../state.js').State} State
|
||
*/
|
||
|
||
|
||
|
||
/**
|
||
* Turn an mdast `table` node into hast.
|
||
*
|
||
* @param {State} state
|
||
* Info passed around.
|
||
* @param {Table} node
|
||
* mdast node.
|
||
* @returns {Element}
|
||
* hast node.
|
||
*/
|
||
function table(state, node) {
|
||
var rows = state.all(node);
|
||
var firstRow = rows.shift();
|
||
/** @type {Array<Element>} */
|
||
var tableContent = [];
|
||
if (firstRow) {
|
||
/** @type {Element} */
|
||
var head = {
|
||
type: 'element',
|
||
tagName: 'thead',
|
||
properties: {},
|
||
children: state.wrap([firstRow], true)
|
||
};
|
||
state.patch(node.children[0], head);
|
||
tableContent.push(head);
|
||
}
|
||
if (rows.length > 0) {
|
||
/** @type {Element} */
|
||
var body = {
|
||
type: 'element',
|
||
tagName: 'tbody',
|
||
properties: {},
|
||
children: state.wrap(rows, true)
|
||
};
|
||
var start = pointStart(node.children[1]);
|
||
var end = pointEnd(node.children[node.children.length - 1]);
|
||
if (start.line && end.line) body.position = {
|
||
start: start,
|
||
end: end
|
||
};
|
||
tableContent.push(body);
|
||
}
|
||
|
||
/** @type {Element} */
|
||
var result = {
|
||
type: 'element',
|
||
tagName: 'table',
|
||
properties: {},
|
||
children: state.wrap(tableContent, true)
|
||
};
|
||
state.patch(node, result);
|
||
return state.applyData(node, result);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/mdast-util-to-hast@12.3.0/node_modules/mdast-util-to-hast/lib/handlers/table-row.js
|
||
/**
|
||
* @typedef {import('hast').Properties} Properties
|
||
* @typedef {import('hast').Element} Element
|
||
* @typedef {import('hast').ElementContent} ElementContent
|
||
* @typedef {import('mdast').Content} Content
|
||
* @typedef {import('mdast').Parent} Parent
|
||
* @typedef {import('mdast').Root} Root
|
||
* @typedef {import('mdast').TableRow} TableRow
|
||
* @typedef {import('../state.js').State} State
|
||
*/
|
||
|
||
/**
|
||
* @typedef {Root | Content} Nodes
|
||
* @typedef {Extract<Nodes, Parent>} Parents
|
||
*/
|
||
|
||
/**
|
||
* Turn an mdast `tableRow` node into hast.
|
||
*
|
||
* @param {State} state
|
||
* Info passed around.
|
||
* @param {TableRow} node
|
||
* mdast node.
|
||
* @param {Parents | null | undefined} parent
|
||
* Parent of `node`.
|
||
* @returns {Element}
|
||
* hast node.
|
||
*/
|
||
function tableRow(state, node, parent) {
|
||
var siblings = parent ? parent.children : undefined;
|
||
// Generate a body row when without parent.
|
||
var rowIndex = siblings ? siblings.indexOf(node) : 1;
|
||
var tagName = rowIndex === 0 ? 'th' : 'td';
|
||
var align = parent && parent.type === 'table' ? parent.align : undefined;
|
||
var length = align ? align.length : node.children.length;
|
||
var cellIndex = -1;
|
||
/** @type {Array<ElementContent>} */
|
||
var cells = [];
|
||
while (++cellIndex < length) {
|
||
// Note: can also be undefined.
|
||
var cell = node.children[cellIndex];
|
||
/** @type {Properties} */
|
||
var properties = {};
|
||
var alignValue = align ? align[cellIndex] : undefined;
|
||
if (alignValue) {
|
||
properties.align = alignValue;
|
||
}
|
||
|
||
/** @type {Element} */
|
||
var _result = {
|
||
type: 'element',
|
||
tagName: tagName,
|
||
properties: properties,
|
||
children: []
|
||
};
|
||
if (cell) {
|
||
_result.children = state.all(cell);
|
||
state.patch(cell, _result);
|
||
_result = state.applyData(node, _result);
|
||
}
|
||
cells.push(_result);
|
||
}
|
||
|
||
/** @type {Element} */
|
||
var result = {
|
||
type: 'element',
|
||
tagName: 'tr',
|
||
properties: {},
|
||
children: state.wrap(cells, true)
|
||
};
|
||
state.patch(node, result);
|
||
return state.applyData(node, result);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/mdast-util-to-hast@12.3.0/node_modules/mdast-util-to-hast/lib/handlers/table-cell.js
|
||
/**
|
||
* @typedef {import('hast').Element} Element
|
||
* @typedef {import('mdast').TableCell} TableCell
|
||
* @typedef {import('../state.js').State} State
|
||
*/
|
||
|
||
/**
|
||
* Turn an mdast `tableCell` node into hast.
|
||
*
|
||
* @param {State} state
|
||
* Info passed around.
|
||
* @param {TableCell} node
|
||
* mdast node.
|
||
* @returns {Element}
|
||
* hast node.
|
||
*/
|
||
function tableCell(state, node) {
|
||
// Note: this function is normally not called: see `table-row` for how rows
|
||
// and their cells are compiled.
|
||
/** @type {Element} */
|
||
var result = {
|
||
type: 'element',
|
||
tagName: 'td',
|
||
// Assume body cell.
|
||
properties: {},
|
||
children: state.all(node)
|
||
};
|
||
state.patch(node, result);
|
||
return state.applyData(node, result);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/trim-lines@3.0.1/node_modules/trim-lines/index.js
|
||
var tab = 9; /* `\t` */
|
||
var space = 32; /* ` ` */
|
||
|
||
/**
|
||
* Remove initial and final spaces and tabs at the line breaks in `value`.
|
||
* Does not trim initial and final spaces and tabs of the value itself.
|
||
*
|
||
* @param {string} value
|
||
* Value to trim.
|
||
* @returns {string}
|
||
* Trimmed value.
|
||
*/
|
||
function trimLines(value) {
|
||
var source = String(value);
|
||
var search = /\r?\n|\r/g;
|
||
var match = search.exec(source);
|
||
var last = 0;
|
||
/** @type {Array<string>} */
|
||
var lines = [];
|
||
while (match) {
|
||
lines.push(trimLine(source.slice(last, match.index), last > 0, true), match[0]);
|
||
last = match.index + match[0].length;
|
||
match = search.exec(source);
|
||
}
|
||
lines.push(trimLine(source.slice(last), last > 0, false));
|
||
return lines.join('');
|
||
}
|
||
|
||
/**
|
||
* @param {string} value
|
||
* Line to trim.
|
||
* @param {boolean} start
|
||
* Whether to trim the start of the line.
|
||
* @param {boolean} end
|
||
* Whether to trim the end of the line.
|
||
* @returns {string}
|
||
* Trimmed line.
|
||
*/
|
||
function trimLine(value, start, end) {
|
||
var startIndex = 0;
|
||
var endIndex = value.length;
|
||
if (start) {
|
||
var code = value.codePointAt(startIndex);
|
||
while (code === tab || code === space) {
|
||
startIndex++;
|
||
code = value.codePointAt(startIndex);
|
||
}
|
||
}
|
||
if (end) {
|
||
var _code = value.codePointAt(endIndex - 1);
|
||
while (_code === tab || _code === space) {
|
||
endIndex--;
|
||
_code = value.codePointAt(endIndex - 1);
|
||
}
|
||
}
|
||
return endIndex > startIndex ? value.slice(startIndex, endIndex) : '';
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/mdast-util-to-hast@12.3.0/node_modules/mdast-util-to-hast/lib/handlers/text.js
|
||
/**
|
||
* @typedef {import('hast').Element} HastElement
|
||
* @typedef {import('hast').Text} HastText
|
||
* @typedef {import('mdast').Text} MdastText
|
||
* @typedef {import('../state.js').State} State
|
||
*/
|
||
|
||
|
||
|
||
/**
|
||
* Turn an mdast `text` node into hast.
|
||
*
|
||
* @param {State} state
|
||
* Info passed around.
|
||
* @param {MdastText} node
|
||
* mdast node.
|
||
* @returns {HastText | HastElement}
|
||
* hast node.
|
||
*/
|
||
function handlers_text_text(state, node) {
|
||
/** @type {HastText} */
|
||
var result = {
|
||
type: 'text',
|
||
value: trimLines(String(node.value))
|
||
};
|
||
state.patch(node, result);
|
||
return state.applyData(node, result);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/mdast-util-to-hast@12.3.0/node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js
|
||
/**
|
||
* @typedef {import('hast').Element} Element
|
||
* @typedef {import('mdast').ThematicBreak} ThematicBreak
|
||
* @typedef {import('../state.js').State} State
|
||
*/
|
||
|
||
/**
|
||
* Turn an mdast `thematicBreak` node into hast.
|
||
*
|
||
* @param {State} state
|
||
* Info passed around.
|
||
* @param {ThematicBreak} node
|
||
* mdast node.
|
||
* @returns {Element}
|
||
* hast node.
|
||
*/
|
||
function thematic_break_thematicBreak(state, node) {
|
||
/** @type {Element} */
|
||
var result = {
|
||
type: 'element',
|
||
tagName: 'hr',
|
||
properties: {},
|
||
children: []
|
||
};
|
||
state.patch(node, result);
|
||
return state.applyData(node, result);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/mdast-util-to-hast@12.3.0/node_modules/mdast-util-to-hast/lib/handlers/index.js
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
/**
|
||
* Default handlers for nodes.
|
||
*/
|
||
var handlers = {
|
||
blockquote: blockquote,
|
||
break: hardBreak,
|
||
code: code,
|
||
delete: strikethrough,
|
||
emphasis: emphasis,
|
||
footnoteReference: footnoteReference,
|
||
footnote: footnote,
|
||
heading: heading,
|
||
html: html,
|
||
imageReference: imageReference,
|
||
image: image_image,
|
||
inlineCode: inlineCode,
|
||
linkReference: linkReference,
|
||
link: link_link,
|
||
listItem: listItem,
|
||
list: list_list,
|
||
paragraph: paragraph,
|
||
root: root,
|
||
strong: strong,
|
||
table: table,
|
||
tableCell: tableCell,
|
||
tableRow: tableRow,
|
||
text: handlers_text_text,
|
||
thematicBreak: thematic_break_thematicBreak,
|
||
toml: ignore,
|
||
yaml: ignore,
|
||
definition: ignore,
|
||
footnoteDefinition: ignore
|
||
};
|
||
|
||
// Return nothing for nodes that are ignored.
|
||
function ignore() {
|
||
// To do: next major: return `undefined`.
|
||
return null;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/mdast-util-to-hast@12.3.0/node_modules/mdast-util-to-hast/lib/state.js
|
||
|
||
|
||
/**
|
||
* @typedef {import('hast').Content} HastContent
|
||
* @typedef {import('hast').Element} HastElement
|
||
* @typedef {import('hast').ElementContent} HastElementContent
|
||
* @typedef {import('hast').Properties} HastProperties
|
||
* @typedef {import('hast').Root} HastRoot
|
||
* @typedef {import('hast').Text} HastText
|
||
*
|
||
* @typedef {import('mdast').Content} MdastContent
|
||
* @typedef {import('mdast').Definition} MdastDefinition
|
||
* @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition
|
||
* @typedef {import('mdast').Parent} MdastParent
|
||
* @typedef {import('mdast').Root} MdastRoot
|
||
*/
|
||
|
||
/**
|
||
* @typedef {HastRoot | HastContent} HastNodes
|
||
* @typedef {MdastRoot | MdastContent} MdastNodes
|
||
* @typedef {Extract<MdastNodes, MdastParent>} MdastParents
|
||
*
|
||
* @typedef EmbeddedHastFields
|
||
* hast fields.
|
||
* @property {string | null | undefined} [hName]
|
||
* Generate a specific element with this tag name instead.
|
||
* @property {HastProperties | null | undefined} [hProperties]
|
||
* Generate an element with these properties instead.
|
||
* @property {Array<HastElementContent> | null | undefined} [hChildren]
|
||
* Generate an element with this content instead.
|
||
*
|
||
* @typedef {Record<string, unknown> & EmbeddedHastFields} MdastData
|
||
* mdast data with embedded hast fields.
|
||
*
|
||
* @typedef {MdastNodes & {data?: MdastData | null | undefined}} MdastNodeWithData
|
||
* mdast node with embedded hast data.
|
||
*
|
||
* @typedef PointLike
|
||
* Point-like value.
|
||
* @property {number | null | undefined} [line]
|
||
* Line.
|
||
* @property {number | null | undefined} [column]
|
||
* Column.
|
||
* @property {number | null | undefined} [offset]
|
||
* Offset.
|
||
*
|
||
* @typedef PositionLike
|
||
* Position-like value.
|
||
* @property {PointLike | null | undefined} [start]
|
||
* Point-like value.
|
||
* @property {PointLike | null | undefined} [end]
|
||
* Point-like value.
|
||
*
|
||
* @callback Handler
|
||
* Handle a node.
|
||
* @param {State} state
|
||
* Info passed around.
|
||
* @param {any} node
|
||
* mdast node to handle.
|
||
* @param {MdastParents | null | undefined} parent
|
||
* Parent of `node`.
|
||
* @returns {HastElementContent | Array<HastElementContent> | null | undefined}
|
||
* hast node.
|
||
*
|
||
* @callback HFunctionProps
|
||
* Signature of `state` for when props are passed.
|
||
* @param {MdastNodes | PositionLike | null | undefined} node
|
||
* mdast node or unist position.
|
||
* @param {string} tagName
|
||
* HTML tag name.
|
||
* @param {HastProperties} props
|
||
* Properties.
|
||
* @param {Array<HastElementContent> | null | undefined} [children]
|
||
* hast content.
|
||
* @returns {HastElement}
|
||
* Compiled element.
|
||
*
|
||
* @callback HFunctionNoProps
|
||
* Signature of `state` for when no props are passed.
|
||
* @param {MdastNodes | PositionLike | null | undefined} node
|
||
* mdast node or unist position.
|
||
* @param {string} tagName
|
||
* HTML tag name.
|
||
* @param {Array<HastElementContent> | null | undefined} [children]
|
||
* hast content.
|
||
* @returns {HastElement}
|
||
* Compiled element.
|
||
*
|
||
* @typedef HFields
|
||
* Info on `state`.
|
||
* @property {boolean} dangerous
|
||
* Whether HTML is allowed.
|
||
* @property {string} clobberPrefix
|
||
* Prefix to use to prevent DOM clobbering.
|
||
* @property {string} footnoteLabel
|
||
* Label to use to introduce the footnote section.
|
||
* @property {string} footnoteLabelTagName
|
||
* HTML used for the footnote label.
|
||
* @property {HastProperties} footnoteLabelProperties
|
||
* Properties on the HTML tag used for the footnote label.
|
||
* @property {string} footnoteBackLabel
|
||
* Label to use from backreferences back to their footnote call.
|
||
* @property {(identifier: string) => MdastDefinition | null} definition
|
||
* Definition cache.
|
||
* @property {Record<string, MdastFootnoteDefinition>} footnoteById
|
||
* Footnote definitions by their identifier.
|
||
* @property {Array<string>} footnoteOrder
|
||
* Identifiers of order when footnote calls first appear in tree order.
|
||
* @property {Record<string, number>} footnoteCounts
|
||
* Counts for how often the same footnote was called.
|
||
* @property {Handlers} handlers
|
||
* Applied handlers.
|
||
* @property {Handler} unknownHandler
|
||
* Handler for any none not in `passThrough` or otherwise handled.
|
||
* @property {(from: MdastNodes, node: HastNodes) => void} patch
|
||
* Copy a node’s positional info.
|
||
* @property {<Type extends HastNodes>(from: MdastNodes, to: Type) => Type | HastElement} applyData
|
||
* Honor the `data` of `from`, and generate an element instead of `node`.
|
||
* @property {(node: MdastNodes, parent: MdastParents | null | undefined) => HastElementContent | Array<HastElementContent> | null | undefined} one
|
||
* Transform an mdast node to hast.
|
||
* @property {(node: MdastNodes) => Array<HastElementContent>} all
|
||
* Transform the children of an mdast parent to hast.
|
||
* @property {<Type extends HastContent>(nodes: Array<Type>, loose?: boolean | null | undefined) => Array<Type | HastText>} wrap
|
||
* Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.
|
||
* @property {(left: MdastNodeWithData | PositionLike | null | undefined, right: HastElementContent) => HastElementContent} augment
|
||
* Like `state` but lower-level and usable on non-elements.
|
||
* Deprecated: use `patch` and `applyData`.
|
||
* @property {Array<string>} passThrough
|
||
* List of node types to pass through untouched (except for their children).
|
||
*
|
||
* @typedef Options
|
||
* Configuration (optional).
|
||
* @property {boolean | null | undefined} [allowDangerousHtml=false]
|
||
* Whether to persist raw HTML in markdown in the hast tree.
|
||
* @property {string | null | undefined} [clobberPrefix='user-content-']
|
||
* Prefix to use before the `id` attribute on footnotes to prevent it from
|
||
* *clobbering*.
|
||
* @property {string | null | undefined} [footnoteBackLabel='Back to content']
|
||
* Label to use from backreferences back to their footnote call (affects
|
||
* screen readers).
|
||
* @property {string | null | undefined} [footnoteLabel='Footnotes']
|
||
* Label to use for the footnotes section (affects screen readers).
|
||
* @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]
|
||
* Properties to use on the footnote label (note that `id: 'footnote-label'`
|
||
* is always added as footnote calls use it with `aria-describedby` to
|
||
* provide an accessible label).
|
||
* @property {string | null | undefined} [footnoteLabelTagName='h2']
|
||
* Tag name to use for the footnote label.
|
||
* @property {Handlers | null | undefined} [handlers]
|
||
* Extra handlers for nodes.
|
||
* @property {Array<string> | null | undefined} [passThrough]
|
||
* List of custom mdast node types to pass through (keep) in hast (note that
|
||
* the node itself is passed, but eventual children are transformed).
|
||
* @property {Handler | null | undefined} [unknownHandler]
|
||
* Handler for all unknown nodes.
|
||
*
|
||
* @typedef {Record<string, Handler>} Handlers
|
||
* Handle nodes.
|
||
*
|
||
* @typedef {HFunctionProps & HFunctionNoProps & HFields} State
|
||
* Info passed around.
|
||
*/
|
||
|
||
|
||
|
||
|
||
|
||
|
||
var state_own = {}.hasOwnProperty;
|
||
|
||
/**
|
||
* Create `state` from an mdast tree.
|
||
*
|
||
* @param {MdastNodes} tree
|
||
* mdast node to transform.
|
||
* @param {Options | null | undefined} [options]
|
||
* Configuration.
|
||
* @returns {State}
|
||
* `state` function.
|
||
*/
|
||
function createState(tree, options) {
|
||
var settings = options || {};
|
||
var dangerous = settings.allowDangerousHtml || false;
|
||
/** @type {Record<string, MdastFootnoteDefinition>} */
|
||
var footnoteById = {};
|
||
|
||
// To do: next major: add `options` to state, remove:
|
||
// `dangerous`, `clobberPrefix`, `footnoteLabel`, `footnoteLabelTagName`,
|
||
// `footnoteLabelProperties`, `footnoteBackLabel`, `passThrough`,
|
||
// `unknownHandler`.
|
||
|
||
// To do: next major: move to `state.options.allowDangerousHtml`.
|
||
state.dangerous = dangerous;
|
||
// To do: next major: move to `state.options`.
|
||
state.clobberPrefix = settings.clobberPrefix === undefined || settings.clobberPrefix === null ? 'user-content-' : settings.clobberPrefix;
|
||
// To do: next major: move to `state.options`.
|
||
state.footnoteLabel = settings.footnoteLabel || 'Footnotes';
|
||
// To do: next major: move to `state.options`.
|
||
state.footnoteLabelTagName = settings.footnoteLabelTagName || 'h2';
|
||
// To do: next major: move to `state.options`.
|
||
state.footnoteLabelProperties = settings.footnoteLabelProperties || {
|
||
className: ['sr-only']
|
||
};
|
||
// To do: next major: move to `state.options`.
|
||
state.footnoteBackLabel = settings.footnoteBackLabel || 'Back to content';
|
||
// To do: next major: move to `state.options`.
|
||
state.unknownHandler = settings.unknownHandler;
|
||
// To do: next major: move to `state.options`.
|
||
state.passThrough = settings.passThrough;
|
||
state.handlers = _objectSpread2(_objectSpread2({}, handlers), settings.handlers);
|
||
|
||
// To do: next major: replace utility with `definitionById` object, so we
|
||
// only walk once (as we need footnotes too).
|
||
state.definition = definitions(tree);
|
||
state.footnoteById = footnoteById;
|
||
/** @type {Array<string>} */
|
||
state.footnoteOrder = [];
|
||
/** @type {Record<string, number>} */
|
||
state.footnoteCounts = {};
|
||
state.patch = patch;
|
||
state.applyData = applyData;
|
||
state.one = oneBound;
|
||
state.all = allBound;
|
||
state.wrap = state_wrap;
|
||
// To do: next major: remove `augment`.
|
||
state.augment = augment;
|
||
visit(tree, 'footnoteDefinition', function (definition) {
|
||
var id = String(definition.identifier).toUpperCase();
|
||
|
||
// Mimick CM behavior of link definitions.
|
||
// See: <https://github.com/syntax-tree/mdast-util-definitions/blob/8290999/index.js#L26>.
|
||
if (!state_own.call(footnoteById, id)) {
|
||
footnoteById[id] = definition;
|
||
}
|
||
});
|
||
|
||
// @ts-expect-error Hush, it’s fine!
|
||
return state;
|
||
|
||
/**
|
||
* Finalise the created `right`, a hast node, from `left`, an mdast node.
|
||
*
|
||
* @param {MdastNodeWithData | PositionLike | null | undefined} left
|
||
* @param {HastElementContent} right
|
||
* @returns {HastElementContent}
|
||
*/
|
||
/* c8 ignore start */
|
||
// To do: next major: remove.
|
||
function augment(left, right) {
|
||
// Handle `data.hName`, `data.hProperties, `data.hChildren`.
|
||
if (left && 'data' in left && left.data) {
|
||
/** @type {MdastData} */
|
||
var data = left.data;
|
||
if (data.hName) {
|
||
if (right.type !== 'element') {
|
||
right = {
|
||
type: 'element',
|
||
tagName: '',
|
||
properties: {},
|
||
children: []
|
||
};
|
||
}
|
||
right.tagName = data.hName;
|
||
}
|
||
if (right.type === 'element' && data.hProperties) {
|
||
right.properties = _objectSpread2(_objectSpread2({}, right.properties), data.hProperties);
|
||
}
|
||
if ('children' in right && right.children && data.hChildren) {
|
||
right.children = data.hChildren;
|
||
}
|
||
}
|
||
if (left) {
|
||
var ctx = 'type' in left ? left : {
|
||
position: left
|
||
};
|
||
if (!generated(ctx)) {
|
||
// @ts-expect-error: fine.
|
||
right.position = {
|
||
start: pointStart(ctx),
|
||
end: pointEnd(ctx)
|
||
};
|
||
}
|
||
}
|
||
return right;
|
||
}
|
||
/* c8 ignore stop */
|
||
|
||
/**
|
||
* Create an element for `node`.
|
||
*
|
||
* @type {HFunctionProps}
|
||
*/
|
||
/* c8 ignore start */
|
||
// To do: next major: remove.
|
||
function state(node, tagName, props, children) {
|
||
if (Array.isArray(props)) {
|
||
children = props;
|
||
props = {};
|
||
}
|
||
|
||
// @ts-expect-error augmenting an element yields an element.
|
||
return augment(node, {
|
||
type: 'element',
|
||
tagName: tagName,
|
||
properties: props || {},
|
||
children: children || []
|
||
});
|
||
}
|
||
/* c8 ignore stop */
|
||
|
||
/**
|
||
* Transform an mdast node into a hast node.
|
||
*
|
||
* @param {MdastNodes} node
|
||
* mdast node.
|
||
* @param {MdastParents | null | undefined} [parent]
|
||
* Parent of `node`.
|
||
* @returns {HastElementContent | Array<HastElementContent> | null | undefined}
|
||
* Resulting hast node.
|
||
*/
|
||
function oneBound(node, parent) {
|
||
// @ts-expect-error: that’s a state :)
|
||
return state_one(state, node, parent);
|
||
}
|
||
|
||
/**
|
||
* Transform the children of an mdast node into hast nodes.
|
||
*
|
||
* @param {MdastNodes} parent
|
||
* mdast node to compile
|
||
* @returns {Array<HastElementContent>}
|
||
* Resulting hast nodes.
|
||
*/
|
||
function allBound(parent) {
|
||
// @ts-expect-error: that’s a state :)
|
||
return state_all(state, parent);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Copy a node’s positional info.
|
||
*
|
||
* @param {MdastNodes} from
|
||
* mdast node to copy from.
|
||
* @param {HastNodes} to
|
||
* hast node to copy into.
|
||
* @returns {void}
|
||
* Nothing.
|
||
*/
|
||
function patch(from, to) {
|
||
if (from.position) to.position = unist_util_position_lib_position(from);
|
||
}
|
||
|
||
/**
|
||
* Honor the `data` of `from` and maybe generate an element instead of `to`.
|
||
*
|
||
* @template {HastNodes} Type
|
||
* Node type.
|
||
* @param {MdastNodes} from
|
||
* mdast node to use data from.
|
||
* @param {Type} to
|
||
* hast node to change.
|
||
* @returns {Type | HastElement}
|
||
* Nothing.
|
||
*/
|
||
function applyData(from, to) {
|
||
/** @type {Type | HastElement} */
|
||
var result = to;
|
||
|
||
// Handle `data.hName`, `data.hProperties, `data.hChildren`.
|
||
if (from && from.data) {
|
||
var hName = from.data.hName;
|
||
var hChildren = from.data.hChildren;
|
||
var hProperties = from.data.hProperties;
|
||
if (typeof hName === 'string') {
|
||
// Transforming the node resulted in an element with a different name
|
||
// than wanted:
|
||
if (result.type === 'element') {
|
||
result.tagName = hName;
|
||
}
|
||
// Transforming the node resulted in a non-element, which happens for
|
||
// raw, text, and root nodes (unless custom handlers are passed).
|
||
// The intent is likely to keep the content around (otherwise: pass
|
||
// `hChildren`).
|
||
else {
|
||
result = {
|
||
type: 'element',
|
||
tagName: hName,
|
||
properties: {},
|
||
children: []
|
||
};
|
||
|
||
// To do: next major: take the children from the `root`, or inject the
|
||
// raw/text/comment or so into the element?
|
||
// if ('children' in node) {
|
||
// // @ts-expect-error: assume `children` are allowed in elements.
|
||
// result.children = node.children
|
||
// } else {
|
||
// // @ts-expect-error: assume `node` is allowed in elements.
|
||
// result.children.push(node)
|
||
// }
|
||
}
|
||
}
|
||
|
||
if (result.type === 'element' && hProperties) {
|
||
result.properties = _objectSpread2(_objectSpread2({}, result.properties), hProperties);
|
||
}
|
||
if ('children' in result && result.children && hChildren !== null && hChildren !== undefined) {
|
||
// @ts-expect-error: assume valid children are defined.
|
||
result.children = hChildren;
|
||
}
|
||
}
|
||
return result;
|
||
}
|
||
|
||
/**
|
||
* Transform an mdast node into a hast node.
|
||
*
|
||
* @param {State} state
|
||
* Info passed around.
|
||
* @param {MdastNodes} node
|
||
* mdast node.
|
||
* @param {MdastParents | null | undefined} [parent]
|
||
* Parent of `node`.
|
||
* @returns {HastElementContent | Array<HastElementContent> | null | undefined}
|
||
* Resulting hast node.
|
||
*/
|
||
// To do: next major: do not expose, keep bound.
|
||
function state_one(state, node, parent) {
|
||
var type = node && node.type;
|
||
|
||
// Fail on non-nodes.
|
||
if (!type) {
|
||
throw new Error('Expected node, got `' + node + '`');
|
||
}
|
||
if (state_own.call(state.handlers, type)) {
|
||
return state.handlers[type](state, node, parent);
|
||
}
|
||
if (state.passThrough && state.passThrough.includes(type)) {
|
||
// To do: next major: deep clone.
|
||
// @ts-expect-error: types of passed through nodes are expected to be added manually.
|
||
return 'children' in node ? _objectSpread2(_objectSpread2({}, node), {}, {
|
||
children: state_all(state, node)
|
||
}) : node;
|
||
}
|
||
if (state.unknownHandler) {
|
||
return state.unknownHandler(state, node, parent);
|
||
}
|
||
return defaultUnknownHandler(state, node);
|
||
}
|
||
|
||
/**
|
||
* Transform the children of an mdast node into hast nodes.
|
||
*
|
||
* @param {State} state
|
||
* Info passed around.
|
||
* @param {MdastNodes} parent
|
||
* mdast node to compile
|
||
* @returns {Array<HastElementContent>}
|
||
* Resulting hast nodes.
|
||
*/
|
||
// To do: next major: do not expose, keep bound.
|
||
function state_all(state, parent) {
|
||
/** @type {Array<HastElementContent>} */
|
||
var values = [];
|
||
if ('children' in parent) {
|
||
var nodes = parent.children;
|
||
var index = -1;
|
||
while (++index < nodes.length) {
|
||
var result = state_one(state, nodes[index], parent);
|
||
|
||
// To do: see if we van clean this? Can we merge texts?
|
||
if (result) {
|
||
if (index && nodes[index - 1].type === 'break') {
|
||
if (!Array.isArray(result) && result.type === 'text') {
|
||
result.value = result.value.replace(/^\s+/, '');
|
||
}
|
||
if (!Array.isArray(result) && result.type === 'element') {
|
||
var head = result.children[0];
|
||
if (head && head.type === 'text') {
|
||
head.value = head.value.replace(/^\s+/, '');
|
||
}
|
||
}
|
||
}
|
||
if (Array.isArray(result)) {
|
||
values.push.apply(values, toConsumableArray_toConsumableArray(result));
|
||
} else {
|
||
values.push(result);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
return values;
|
||
}
|
||
|
||
/**
|
||
* Transform an unknown node.
|
||
*
|
||
* @param {State} state
|
||
* Info passed around.
|
||
* @param {MdastNodes} node
|
||
* Unknown mdast node.
|
||
* @returns {HastText | HastElement}
|
||
* Resulting hast node.
|
||
*/
|
||
function defaultUnknownHandler(state, node) {
|
||
var data = node.data || {};
|
||
/** @type {HastText | HastElement} */
|
||
var result = 'value' in node && !(state_own.call(data, 'hProperties') || state_own.call(data, 'hChildren')) ? {
|
||
type: 'text',
|
||
value: node.value
|
||
} : {
|
||
type: 'element',
|
||
tagName: 'div',
|
||
properties: {},
|
||
children: state_all(state, node)
|
||
};
|
||
state.patch(node, result);
|
||
return state.applyData(node, result);
|
||
}
|
||
|
||
/**
|
||
* Wrap `nodes` with line endings between each node.
|
||
*
|
||
* @template {HastContent} Type
|
||
* Node type.
|
||
* @param {Array<Type>} nodes
|
||
* List of nodes to wrap.
|
||
* @param {boolean | null | undefined} [loose=false]
|
||
* Whether to add line endings at start and end.
|
||
* @returns {Array<Type | HastText>}
|
||
* Wrapped nodes.
|
||
*/
|
||
function state_wrap(nodes, loose) {
|
||
/** @type {Array<Type | HastText>} */
|
||
var result = [];
|
||
var index = -1;
|
||
if (loose) {
|
||
result.push({
|
||
type: 'text',
|
||
value: '\n'
|
||
});
|
||
}
|
||
while (++index < nodes.length) {
|
||
if (index) result.push({
|
||
type: 'text',
|
||
value: '\n'
|
||
});
|
||
result.push(nodes[index]);
|
||
}
|
||
if (loose && nodes.length > 0) {
|
||
result.push({
|
||
type: 'text',
|
||
value: '\n'
|
||
});
|
||
}
|
||
return result;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/mdast-util-to-hast@12.3.0/node_modules/mdast-util-to-hast/lib/index.js
|
||
/**
|
||
* @typedef {import('hast').Content} HastContent
|
||
* @typedef {import('hast').Root} HastRoot
|
||
*
|
||
* @typedef {import('mdast').Content} MdastContent
|
||
* @typedef {import('mdast').Root} MdastRoot
|
||
*
|
||
* @typedef {import('./state.js').Options} Options
|
||
*/
|
||
|
||
/**
|
||
* @typedef {HastRoot | HastContent} HastNodes
|
||
* @typedef {MdastRoot | MdastContent} MdastNodes
|
||
*/
|
||
|
||
|
||
|
||
|
||
/**
|
||
* Transform mdast to hast.
|
||
*
|
||
* ##### Notes
|
||
*
|
||
* ###### HTML
|
||
*
|
||
* Raw HTML is available in mdast as `html` nodes and can be embedded in hast
|
||
* as semistandard `raw` nodes.
|
||
* Most utilities ignore `raw` nodes but two notable ones don’t:
|
||
*
|
||
* * `hast-util-to-html` also has an option `allowDangerousHtml` which will
|
||
* output the raw HTML.
|
||
* This is typically discouraged as noted by the option name but is useful
|
||
* if you completely trust authors
|
||
* * `hast-util-raw` can handle the raw embedded HTML strings by parsing them
|
||
* into standard hast nodes (`element`, `text`, etc).
|
||
* This is a heavy task as it needs a full HTML parser, but it is the only
|
||
* way to support untrusted content
|
||
*
|
||
* ###### Footnotes
|
||
*
|
||
* Many options supported here relate to footnotes.
|
||
* Footnotes are not specified by CommonMark, which we follow by default.
|
||
* They are supported by GitHub, so footnotes can be enabled in markdown with
|
||
* `mdast-util-gfm`.
|
||
*
|
||
* The options `footnoteBackLabel` and `footnoteLabel` define natural language
|
||
* that explains footnotes, which is hidden for sighted users but shown to
|
||
* assistive technology.
|
||
* When your page is not in English, you must define translated values.
|
||
*
|
||
* Back references use ARIA attributes, but the section label itself uses a
|
||
* heading that is hidden with an `sr-only` class.
|
||
* To show it to sighted users, define different attributes in
|
||
* `footnoteLabelProperties`.
|
||
*
|
||
* ###### Clobbering
|
||
*
|
||
* Footnotes introduces a problem, as it links footnote calls to footnote
|
||
* definitions on the page through `id` attributes generated from user content,
|
||
* which results in DOM clobbering.
|
||
*
|
||
* DOM clobbering is this:
|
||
*
|
||
* ```html
|
||
* <p id=x></p>
|
||
* <script>alert(x) // `x` now refers to the DOM `p#x` element</script>
|
||
* ```
|
||
*
|
||
* Elements by their ID are made available by browsers on the `window` object,
|
||
* which is a security risk.
|
||
* Using a prefix solves this problem.
|
||
*
|
||
* More information on how to handle clobbering and the prefix is explained in
|
||
* Example: headings (DOM clobbering) in `rehype-sanitize`.
|
||
*
|
||
* ###### Unknown nodes
|
||
*
|
||
* Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.
|
||
* The default behavior for unknown nodes is:
|
||
*
|
||
* * when the node has a `value` (and doesn’t have `data.hName`,
|
||
* `data.hProperties`, or `data.hChildren`, see later), create a hast `text`
|
||
* node
|
||
* * otherwise, create a `<div>` element (which could be changed with
|
||
* `data.hName`), with its children mapped from mdast to hast as well
|
||
*
|
||
* This behavior can be changed by passing an `unknownHandler`.
|
||
*
|
||
* @param {MdastNodes} tree
|
||
* mdast tree.
|
||
* @param {Options | null | undefined} [options]
|
||
* Configuration.
|
||
* @returns {HastNodes | null | undefined}
|
||
* hast tree.
|
||
*/
|
||
// To do: next major: always return a single `root`.
|
||
function toHast(tree, options) {
|
||
var state = createState(tree, options);
|
||
var node = state.one(tree, null);
|
||
var foot = footer(state);
|
||
if (foot) {
|
||
// @ts-expect-error If there’s a footer, there were definitions, meaning block
|
||
// content.
|
||
// So assume `node` is a parent node.
|
||
node.children.push({
|
||
type: 'text',
|
||
value: '\n'
|
||
}, foot);
|
||
}
|
||
|
||
// To do: next major: always return root?
|
||
return Array.isArray(node) ? {
|
||
type: 'root',
|
||
children: node
|
||
} : node;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/remark-rehype@10.1.0/node_modules/remark-rehype/lib/index.js
|
||
/**
|
||
* @typedef {import('hast').Root} HastRoot
|
||
* @typedef {import('mdast').Root} MdastRoot
|
||
* @typedef {import('mdast-util-to-hast').Options} Options
|
||
* @typedef {import('unified').Processor<any, any, any, any>} Processor
|
||
*
|
||
* @typedef {import('mdast-util-to-hast')} DoNotTouchAsThisImportIncludesRawInTree
|
||
*/
|
||
|
||
|
||
|
||
// Note: the `<MdastRoot, HastRoot>` overload doesn’t seem to work :'(
|
||
|
||
/**
|
||
* Plugin that turns markdown into HTML to support rehype.
|
||
*
|
||
* * If a destination processor is given, that processor runs with a new HTML
|
||
* (hast) tree (bridge-mode).
|
||
* As the given processor runs with a hast tree, and rehype plugins support
|
||
* hast, that means rehype plugins can be used with the given processor.
|
||
* The hast tree is discarded in the end.
|
||
* It’s highly unlikely that you want to do this.
|
||
* * The common case is to not pass a destination processor, in which case the
|
||
* current processor continues running with a new HTML (hast) tree
|
||
* (mutate-mode).
|
||
* As the current processor continues with a hast tree, and rehype plugins
|
||
* support hast, that means rehype plugins can be used after
|
||
* `remark-rehype`.
|
||
* It’s likely that this is what you want to do.
|
||
*
|
||
* @param destination
|
||
* Optional unified processor.
|
||
* @param options
|
||
* Options passed to `mdast-util-to-hast`.
|
||
*/
|
||
var remarkRehype = /** @type {(import('unified').Plugin<[Processor, Options?]|[null|undefined, Options?]|[Options]|[], MdastRoot>)} */
|
||
|
||
function remarkRehype(destination, options) {
|
||
return destination && 'run' in destination ? bridge(destination, options) : mutate(destination || options);
|
||
};
|
||
/* harmony default export */ var lib = (remarkRehype);
|
||
|
||
/**
|
||
* Bridge-mode.
|
||
* Runs the destination with the new hast tree.
|
||
*
|
||
* @type {import('unified').Plugin<[Processor, Options?], MdastRoot>}
|
||
*/
|
||
function bridge(destination, options) {
|
||
return function (node, file, next) {
|
||
destination.run(toHast(node, options), file, function (error) {
|
||
next(error);
|
||
});
|
||
};
|
||
}
|
||
|
||
/**
|
||
* Mutate-mode.
|
||
* Further plugins run on the hast tree.
|
||
*
|
||
* @type {import('unified').Plugin<[Options?]|void[], MdastRoot, HastRoot>}
|
||
*/
|
||
function mutate(options) {
|
||
// @ts-expect-error: assume a corresponding node is returned by `toHast`.
|
||
return function (node) {
|
||
return toHast(node, options);
|
||
};
|
||
}
|
||
// EXTERNAL MODULE: ./node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js
|
||
var prop_types = __webpack_require__(7897);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/property-information@6.3.0/node_modules/property-information/lib/util/schema.js
|
||
|
||
|
||
/**
|
||
* @typedef {import('./info.js').Info} Info
|
||
* @typedef {Record<string, Info>} Properties
|
||
* @typedef {Record<string, string>} Normal
|
||
*/
|
||
|
||
var Schema = /*#__PURE__*/_createClass(
|
||
/**
|
||
* @constructor
|
||
* @param {Properties} property
|
||
* @param {Normal} normal
|
||
* @param {string} [space]
|
||
*/
|
||
function Schema(property, normal, space) {
|
||
_classCallCheck(this, Schema);
|
||
this.property = property;
|
||
this.normal = normal;
|
||
if (space) {
|
||
this.space = space;
|
||
}
|
||
});
|
||
|
||
/** @type {Properties} */
|
||
Schema.prototype.property = {};
|
||
/** @type {Normal} */
|
||
Schema.prototype.normal = {};
|
||
/** @type {string|null} */
|
||
Schema.prototype.space = null;
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/property-information@6.3.0/node_modules/property-information/lib/util/merge.js
|
||
/**
|
||
* @typedef {import('./schema.js').Properties} Properties
|
||
* @typedef {import('./schema.js').Normal} Normal
|
||
*/
|
||
|
||
|
||
|
||
/**
|
||
* @param {Schema[]} definitions
|
||
* @param {string} [space]
|
||
* @returns {Schema}
|
||
*/
|
||
function util_merge_merge(definitions, space) {
|
||
/** @type {Properties} */
|
||
var property = {};
|
||
/** @type {Normal} */
|
||
var normal = {};
|
||
var index = -1;
|
||
while (++index < definitions.length) {
|
||
Object.assign(property, definitions[index].property);
|
||
Object.assign(normal, definitions[index].normal);
|
||
}
|
||
return new Schema(property, normal, space);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/property-information@6.3.0/node_modules/property-information/lib/normalize.js
|
||
/**
|
||
* @param {string} value
|
||
* @returns {string}
|
||
*/
|
||
function normalize_normalize(value) {
|
||
return value.toLowerCase();
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/property-information@6.3.0/node_modules/property-information/lib/util/info.js
|
||
|
||
|
||
var Info = /*#__PURE__*/_createClass(
|
||
/**
|
||
* @constructor
|
||
* @param {string} property
|
||
* @param {string} attribute
|
||
*/
|
||
function Info(property, attribute) {
|
||
_classCallCheck(this, Info);
|
||
/** @type {string} */
|
||
this.property = property;
|
||
/** @type {string} */
|
||
this.attribute = attribute;
|
||
});
|
||
|
||
/** @type {string|null} */
|
||
Info.prototype.space = null;
|
||
Info.prototype.boolean = false;
|
||
Info.prototype.booleanish = false;
|
||
Info.prototype.overloadedBoolean = false;
|
||
Info.prototype.number = false;
|
||
Info.prototype.commaSeparated = false;
|
||
Info.prototype.spaceSeparated = false;
|
||
Info.prototype.commaOrSpaceSeparated = false;
|
||
Info.prototype.mustUseProperty = false;
|
||
Info.prototype.defined = false;
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/property-information@6.3.0/node_modules/property-information/lib/util/types.js
|
||
var powers = 0;
|
||
var types_boolean = increment();
|
||
var booleanish = increment();
|
||
var overloadedBoolean = increment();
|
||
var number = increment();
|
||
var spaceSeparated = increment();
|
||
var commaSeparated = increment();
|
||
var commaOrSpaceSeparated = increment();
|
||
function increment() {
|
||
return Math.pow(2, ++powers);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/property-information@6.3.0/node_modules/property-information/lib/util/defined-info.js
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
/** @type {Array<keyof types>} */
|
||
// @ts-expect-error: hush.
|
||
var checks = Object.keys(types_namespaceObject);
|
||
var DefinedInfo = /*#__PURE__*/function (_Info) {
|
||
_inherits(DefinedInfo, _Info);
|
||
var _super = _createSuper(DefinedInfo);
|
||
/**
|
||
* @constructor
|
||
* @param {string} property
|
||
* @param {string} attribute
|
||
* @param {number|null} [mask]
|
||
* @param {string} [space]
|
||
*/
|
||
function DefinedInfo(property, attribute, mask, space) {
|
||
var _this;
|
||
_classCallCheck(this, DefinedInfo);
|
||
var index = -1;
|
||
_this = _super.call(this, property, attribute);
|
||
mark(_assertThisInitialized(_this), 'space', space);
|
||
if (typeof mask === 'number') {
|
||
while (++index < checks.length) {
|
||
var check = checks[index];
|
||
mark(_assertThisInitialized(_this), checks[index], (mask & types_namespaceObject[check]) === types_namespaceObject[check]);
|
||
}
|
||
}
|
||
return _this;
|
||
}
|
||
return _createClass(DefinedInfo);
|
||
}(Info);
|
||
DefinedInfo.prototype.defined = true;
|
||
|
||
/**
|
||
* @param {DefinedInfo} values
|
||
* @param {string} key
|
||
* @param {unknown} value
|
||
*/
|
||
function mark(values, key, value) {
|
||
if (value) {
|
||
// @ts-expect-error: assume `value` matches the expected value of `key`.
|
||
values[key] = value;
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/property-information@6.3.0/node_modules/property-information/lib/util/create.js
|
||
/**
|
||
* @typedef {import('./schema.js').Properties} Properties
|
||
* @typedef {import('./schema.js').Normal} Normal
|
||
*
|
||
* @typedef {Record<string, string>} Attributes
|
||
*
|
||
* @typedef {Object} Definition
|
||
* @property {Record<string, number|null>} properties
|
||
* @property {(attributes: Attributes, property: string) => string} transform
|
||
* @property {string} [space]
|
||
* @property {Attributes} [attributes]
|
||
* @property {Array<string>} [mustUseProperty]
|
||
*/
|
||
|
||
|
||
|
||
|
||
var create_own = {}.hasOwnProperty;
|
||
|
||
/**
|
||
* @param {Definition} definition
|
||
* @returns {Schema}
|
||
*/
|
||
function create(definition) {
|
||
/** @type {Properties} */
|
||
var property = {};
|
||
/** @type {Normal} */
|
||
var normal = {};
|
||
/** @type {string} */
|
||
var prop;
|
||
for (prop in definition.properties) {
|
||
if (create_own.call(definition.properties, prop)) {
|
||
var value = definition.properties[prop];
|
||
var info = new DefinedInfo(prop, definition.transform(definition.attributes || {}, prop), value, definition.space);
|
||
if (definition.mustUseProperty && definition.mustUseProperty.includes(prop)) {
|
||
info.mustUseProperty = true;
|
||
}
|
||
property[prop] = info;
|
||
normal[normalize_normalize(prop)] = prop;
|
||
normal[normalize_normalize(info.attribute)] = prop;
|
||
}
|
||
}
|
||
return new Schema(property, normal, definition.space);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/property-information@6.3.0/node_modules/property-information/lib/xlink.js
|
||
|
||
var xlink = create({
|
||
space: 'xlink',
|
||
transform: function transform(_, prop) {
|
||
return 'xlink:' + prop.slice(5).toLowerCase();
|
||
},
|
||
properties: {
|
||
xLinkActuate: null,
|
||
xLinkArcRole: null,
|
||
xLinkHref: null,
|
||
xLinkRole: null,
|
||
xLinkShow: null,
|
||
xLinkTitle: null,
|
||
xLinkType: null
|
||
}
|
||
});
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/property-information@6.3.0/node_modules/property-information/lib/xml.js
|
||
|
||
var xml = create({
|
||
space: 'xml',
|
||
transform: function transform(_, prop) {
|
||
return 'xml:' + prop.slice(3).toLowerCase();
|
||
},
|
||
properties: {
|
||
xmlLang: null,
|
||
xmlBase: null,
|
||
xmlSpace: null
|
||
}
|
||
});
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/property-information@6.3.0/node_modules/property-information/lib/util/case-sensitive-transform.js
|
||
/**
|
||
* @param {Record<string, string>} attributes
|
||
* @param {string} attribute
|
||
* @returns {string}
|
||
*/
|
||
function caseSensitiveTransform(attributes, attribute) {
|
||
return attribute in attributes ? attributes[attribute] : attribute;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/property-information@6.3.0/node_modules/property-information/lib/util/case-insensitive-transform.js
|
||
|
||
|
||
/**
|
||
* @param {Record<string, string>} attributes
|
||
* @param {string} property
|
||
* @returns {string}
|
||
*/
|
||
function caseInsensitiveTransform(attributes, property) {
|
||
return caseSensitiveTransform(attributes, property.toLowerCase());
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/property-information@6.3.0/node_modules/property-information/lib/xmlns.js
|
||
|
||
|
||
var xmlns = create({
|
||
space: 'xmlns',
|
||
attributes: {
|
||
xmlnsxlink: 'xmlns:xlink'
|
||
},
|
||
transform: caseInsensitiveTransform,
|
||
properties: {
|
||
xmlns: null,
|
||
xmlnsXLink: null
|
||
}
|
||
});
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/property-information@6.3.0/node_modules/property-information/lib/aria.js
|
||
|
||
|
||
var aria = create({
|
||
transform: function transform(_, prop) {
|
||
return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase();
|
||
},
|
||
properties: {
|
||
ariaActiveDescendant: null,
|
||
ariaAtomic: booleanish,
|
||
ariaAutoComplete: null,
|
||
ariaBusy: booleanish,
|
||
ariaChecked: booleanish,
|
||
ariaColCount: number,
|
||
ariaColIndex: number,
|
||
ariaColSpan: number,
|
||
ariaControls: spaceSeparated,
|
||
ariaCurrent: null,
|
||
ariaDescribedBy: spaceSeparated,
|
||
ariaDetails: null,
|
||
ariaDisabled: booleanish,
|
||
ariaDropEffect: spaceSeparated,
|
||
ariaErrorMessage: null,
|
||
ariaExpanded: booleanish,
|
||
ariaFlowTo: spaceSeparated,
|
||
ariaGrabbed: booleanish,
|
||
ariaHasPopup: null,
|
||
ariaHidden: booleanish,
|
||
ariaInvalid: null,
|
||
ariaKeyShortcuts: null,
|
||
ariaLabel: null,
|
||
ariaLabelledBy: spaceSeparated,
|
||
ariaLevel: number,
|
||
ariaLive: null,
|
||
ariaModal: booleanish,
|
||
ariaMultiLine: booleanish,
|
||
ariaMultiSelectable: booleanish,
|
||
ariaOrientation: null,
|
||
ariaOwns: spaceSeparated,
|
||
ariaPlaceholder: null,
|
||
ariaPosInSet: number,
|
||
ariaPressed: booleanish,
|
||
ariaReadOnly: booleanish,
|
||
ariaRelevant: null,
|
||
ariaRequired: booleanish,
|
||
ariaRoleDescription: spaceSeparated,
|
||
ariaRowCount: number,
|
||
ariaRowIndex: number,
|
||
ariaRowSpan: number,
|
||
ariaSelected: booleanish,
|
||
ariaSetSize: number,
|
||
ariaSort: null,
|
||
ariaValueMax: number,
|
||
ariaValueMin: number,
|
||
ariaValueNow: number,
|
||
ariaValueText: null,
|
||
role: null
|
||
}
|
||
});
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/property-information@6.3.0/node_modules/property-information/lib/html.js
|
||
|
||
|
||
|
||
var html_html = create({
|
||
space: 'html',
|
||
attributes: {
|
||
acceptcharset: 'accept-charset',
|
||
classname: 'class',
|
||
htmlfor: 'for',
|
||
httpequiv: 'http-equiv'
|
||
},
|
||
transform: caseInsensitiveTransform,
|
||
mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],
|
||
properties: {
|
||
// Standard Properties.
|
||
abbr: null,
|
||
accept: commaSeparated,
|
||
acceptCharset: spaceSeparated,
|
||
accessKey: spaceSeparated,
|
||
action: null,
|
||
allow: null,
|
||
allowFullScreen: types_boolean,
|
||
allowPaymentRequest: types_boolean,
|
||
allowUserMedia: types_boolean,
|
||
alt: null,
|
||
as: null,
|
||
async: types_boolean,
|
||
autoCapitalize: null,
|
||
autoComplete: spaceSeparated,
|
||
autoFocus: types_boolean,
|
||
autoPlay: types_boolean,
|
||
blocking: spaceSeparated,
|
||
capture: types_boolean,
|
||
charSet: null,
|
||
checked: types_boolean,
|
||
cite: null,
|
||
className: spaceSeparated,
|
||
cols: number,
|
||
colSpan: null,
|
||
content: null,
|
||
contentEditable: booleanish,
|
||
controls: types_boolean,
|
||
controlsList: spaceSeparated,
|
||
coords: number | commaSeparated,
|
||
crossOrigin: null,
|
||
data: null,
|
||
dateTime: null,
|
||
decoding: null,
|
||
default: types_boolean,
|
||
defer: types_boolean,
|
||
dir: null,
|
||
dirName: null,
|
||
disabled: types_boolean,
|
||
download: overloadedBoolean,
|
||
draggable: booleanish,
|
||
encType: null,
|
||
enterKeyHint: null,
|
||
fetchPriority: null,
|
||
form: null,
|
||
formAction: null,
|
||
formEncType: null,
|
||
formMethod: null,
|
||
formNoValidate: types_boolean,
|
||
formTarget: null,
|
||
headers: spaceSeparated,
|
||
height: number,
|
||
hidden: types_boolean,
|
||
high: number,
|
||
href: null,
|
||
hrefLang: null,
|
||
htmlFor: spaceSeparated,
|
||
httpEquiv: spaceSeparated,
|
||
id: null,
|
||
imageSizes: null,
|
||
imageSrcSet: null,
|
||
inert: types_boolean,
|
||
inputMode: null,
|
||
integrity: null,
|
||
is: null,
|
||
isMap: types_boolean,
|
||
itemId: null,
|
||
itemProp: spaceSeparated,
|
||
itemRef: spaceSeparated,
|
||
itemScope: types_boolean,
|
||
itemType: spaceSeparated,
|
||
kind: null,
|
||
label: null,
|
||
lang: null,
|
||
language: null,
|
||
list: null,
|
||
loading: null,
|
||
loop: types_boolean,
|
||
low: number,
|
||
manifest: null,
|
||
max: null,
|
||
maxLength: number,
|
||
media: null,
|
||
method: null,
|
||
min: null,
|
||
minLength: number,
|
||
multiple: types_boolean,
|
||
muted: types_boolean,
|
||
name: null,
|
||
nonce: null,
|
||
noModule: types_boolean,
|
||
noValidate: types_boolean,
|
||
onAbort: null,
|
||
onAfterPrint: null,
|
||
onAuxClick: null,
|
||
onBeforeMatch: null,
|
||
onBeforePrint: null,
|
||
onBeforeUnload: null,
|
||
onBlur: null,
|
||
onCancel: null,
|
||
onCanPlay: null,
|
||
onCanPlayThrough: null,
|
||
onChange: null,
|
||
onClick: null,
|
||
onClose: null,
|
||
onContextLost: null,
|
||
onContextMenu: null,
|
||
onContextRestored: null,
|
||
onCopy: null,
|
||
onCueChange: null,
|
||
onCut: null,
|
||
onDblClick: null,
|
||
onDrag: null,
|
||
onDragEnd: null,
|
||
onDragEnter: null,
|
||
onDragExit: null,
|
||
onDragLeave: null,
|
||
onDragOver: null,
|
||
onDragStart: null,
|
||
onDrop: null,
|
||
onDurationChange: null,
|
||
onEmptied: null,
|
||
onEnded: null,
|
||
onError: null,
|
||
onFocus: null,
|
||
onFormData: null,
|
||
onHashChange: null,
|
||
onInput: null,
|
||
onInvalid: null,
|
||
onKeyDown: null,
|
||
onKeyPress: null,
|
||
onKeyUp: null,
|
||
onLanguageChange: null,
|
||
onLoad: null,
|
||
onLoadedData: null,
|
||
onLoadedMetadata: null,
|
||
onLoadEnd: null,
|
||
onLoadStart: null,
|
||
onMessage: null,
|
||
onMessageError: null,
|
||
onMouseDown: null,
|
||
onMouseEnter: null,
|
||
onMouseLeave: null,
|
||
onMouseMove: null,
|
||
onMouseOut: null,
|
||
onMouseOver: null,
|
||
onMouseUp: null,
|
||
onOffline: null,
|
||
onOnline: null,
|
||
onPageHide: null,
|
||
onPageShow: null,
|
||
onPaste: null,
|
||
onPause: null,
|
||
onPlay: null,
|
||
onPlaying: null,
|
||
onPopState: null,
|
||
onProgress: null,
|
||
onRateChange: null,
|
||
onRejectionHandled: null,
|
||
onReset: null,
|
||
onResize: null,
|
||
onScroll: null,
|
||
onScrollEnd: null,
|
||
onSecurityPolicyViolation: null,
|
||
onSeeked: null,
|
||
onSeeking: null,
|
||
onSelect: null,
|
||
onSlotChange: null,
|
||
onStalled: null,
|
||
onStorage: null,
|
||
onSubmit: null,
|
||
onSuspend: null,
|
||
onTimeUpdate: null,
|
||
onToggle: null,
|
||
onUnhandledRejection: null,
|
||
onUnload: null,
|
||
onVolumeChange: null,
|
||
onWaiting: null,
|
||
onWheel: null,
|
||
open: types_boolean,
|
||
optimum: number,
|
||
pattern: null,
|
||
ping: spaceSeparated,
|
||
placeholder: null,
|
||
playsInline: types_boolean,
|
||
popover: null,
|
||
popoverTarget: null,
|
||
popoverTargetAction: null,
|
||
poster: null,
|
||
preload: null,
|
||
readOnly: types_boolean,
|
||
referrerPolicy: null,
|
||
rel: spaceSeparated,
|
||
required: types_boolean,
|
||
reversed: types_boolean,
|
||
rows: number,
|
||
rowSpan: number,
|
||
sandbox: spaceSeparated,
|
||
scope: null,
|
||
scoped: types_boolean,
|
||
seamless: types_boolean,
|
||
selected: types_boolean,
|
||
shape: null,
|
||
size: number,
|
||
sizes: null,
|
||
slot: null,
|
||
span: number,
|
||
spellCheck: booleanish,
|
||
src: null,
|
||
srcDoc: null,
|
||
srcLang: null,
|
||
srcSet: null,
|
||
start: number,
|
||
step: null,
|
||
style: null,
|
||
tabIndex: number,
|
||
target: null,
|
||
title: null,
|
||
translate: null,
|
||
type: null,
|
||
typeMustMatch: types_boolean,
|
||
useMap: null,
|
||
value: booleanish,
|
||
width: number,
|
||
wrap: null,
|
||
// Legacy.
|
||
// See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis
|
||
align: null,
|
||
// Several. Use CSS `text-align` instead,
|
||
aLink: null,
|
||
// `<body>`. Use CSS `a:active {color}` instead
|
||
archive: spaceSeparated,
|
||
// `<object>`. List of URIs to archives
|
||
axis: null,
|
||
// `<td>` and `<th>`. Use `scope` on `<th>`
|
||
background: null,
|
||
// `<body>`. Use CSS `background-image` instead
|
||
bgColor: null,
|
||
// `<body>` and table elements. Use CSS `background-color` instead
|
||
border: number,
|
||
// `<table>`. Use CSS `border-width` instead,
|
||
borderColor: null,
|
||
// `<table>`. Use CSS `border-color` instead,
|
||
bottomMargin: number,
|
||
// `<body>`
|
||
cellPadding: null,
|
||
// `<table>`
|
||
cellSpacing: null,
|
||
// `<table>`
|
||
char: null,
|
||
// Several table elements. When `align=char`, sets the character to align on
|
||
charOff: null,
|
||
// Several table elements. When `char`, offsets the alignment
|
||
classId: null,
|
||
// `<object>`
|
||
clear: null,
|
||
// `<br>`. Use CSS `clear` instead
|
||
code: null,
|
||
// `<object>`
|
||
codeBase: null,
|
||
// `<object>`
|
||
codeType: null,
|
||
// `<object>`
|
||
color: null,
|
||
// `<font>` and `<hr>`. Use CSS instead
|
||
compact: types_boolean,
|
||
// Lists. Use CSS to reduce space between items instead
|
||
declare: types_boolean,
|
||
// `<object>`
|
||
event: null,
|
||
// `<script>`
|
||
face: null,
|
||
// `<font>`. Use CSS instead
|
||
frame: null,
|
||
// `<table>`
|
||
frameBorder: null,
|
||
// `<iframe>`. Use CSS `border` instead
|
||
hSpace: number,
|
||
// `<img>` and `<object>`
|
||
leftMargin: number,
|
||
// `<body>`
|
||
link: null,
|
||
// `<body>`. Use CSS `a:link {color: *}` instead
|
||
longDesc: null,
|
||
// `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`
|
||
lowSrc: null,
|
||
// `<img>`. Use a `<picture>`
|
||
marginHeight: number,
|
||
// `<body>`
|
||
marginWidth: number,
|
||
// `<body>`
|
||
noResize: types_boolean,
|
||
// `<frame>`
|
||
noHref: types_boolean,
|
||
// `<area>`. Use no href instead of an explicit `nohref`
|
||
noShade: types_boolean,
|
||
// `<hr>`. Use background-color and height instead of borders
|
||
noWrap: types_boolean,
|
||
// `<td>` and `<th>`
|
||
object: null,
|
||
// `<applet>`
|
||
profile: null,
|
||
// `<head>`
|
||
prompt: null,
|
||
// `<isindex>`
|
||
rev: null,
|
||
// `<link>`
|
||
rightMargin: number,
|
||
// `<body>`
|
||
rules: null,
|
||
// `<table>`
|
||
scheme: null,
|
||
// `<meta>`
|
||
scrolling: booleanish,
|
||
// `<frame>`. Use overflow in the child context
|
||
standby: null,
|
||
// `<object>`
|
||
summary: null,
|
||
// `<table>`
|
||
text: null,
|
||
// `<body>`. Use CSS `color` instead
|
||
topMargin: number,
|
||
// `<body>`
|
||
valueType: null,
|
||
// `<param>`
|
||
version: null,
|
||
// `<html>`. Use a doctype.
|
||
vAlign: null,
|
||
// Several. Use CSS `vertical-align` instead
|
||
vLink: null,
|
||
// `<body>`. Use CSS `a:visited {color}` instead
|
||
vSpace: number,
|
||
// `<img>` and `<object>`
|
||
|
||
// Non-standard Properties.
|
||
allowTransparency: null,
|
||
autoCorrect: null,
|
||
autoSave: null,
|
||
disablePictureInPicture: types_boolean,
|
||
disableRemotePlayback: types_boolean,
|
||
prefix: null,
|
||
property: null,
|
||
results: number,
|
||
security: null,
|
||
unselectable: null
|
||
}
|
||
});
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/property-information@6.3.0/node_modules/property-information/lib/svg.js
|
||
|
||
|
||
|
||
var svg = create({
|
||
space: 'svg',
|
||
attributes: {
|
||
accentHeight: 'accent-height',
|
||
alignmentBaseline: 'alignment-baseline',
|
||
arabicForm: 'arabic-form',
|
||
baselineShift: 'baseline-shift',
|
||
capHeight: 'cap-height',
|
||
className: 'class',
|
||
clipPath: 'clip-path',
|
||
clipRule: 'clip-rule',
|
||
colorInterpolation: 'color-interpolation',
|
||
colorInterpolationFilters: 'color-interpolation-filters',
|
||
colorProfile: 'color-profile',
|
||
colorRendering: 'color-rendering',
|
||
crossOrigin: 'crossorigin',
|
||
dataType: 'datatype',
|
||
dominantBaseline: 'dominant-baseline',
|
||
enableBackground: 'enable-background',
|
||
fillOpacity: 'fill-opacity',
|
||
fillRule: 'fill-rule',
|
||
floodColor: 'flood-color',
|
||
floodOpacity: 'flood-opacity',
|
||
fontFamily: 'font-family',
|
||
fontSize: 'font-size',
|
||
fontSizeAdjust: 'font-size-adjust',
|
||
fontStretch: 'font-stretch',
|
||
fontStyle: 'font-style',
|
||
fontVariant: 'font-variant',
|
||
fontWeight: 'font-weight',
|
||
glyphName: 'glyph-name',
|
||
glyphOrientationHorizontal: 'glyph-orientation-horizontal',
|
||
glyphOrientationVertical: 'glyph-orientation-vertical',
|
||
hrefLang: 'hreflang',
|
||
horizAdvX: 'horiz-adv-x',
|
||
horizOriginX: 'horiz-origin-x',
|
||
horizOriginY: 'horiz-origin-y',
|
||
imageRendering: 'image-rendering',
|
||
letterSpacing: 'letter-spacing',
|
||
lightingColor: 'lighting-color',
|
||
markerEnd: 'marker-end',
|
||
markerMid: 'marker-mid',
|
||
markerStart: 'marker-start',
|
||
navDown: 'nav-down',
|
||
navDownLeft: 'nav-down-left',
|
||
navDownRight: 'nav-down-right',
|
||
navLeft: 'nav-left',
|
||
navNext: 'nav-next',
|
||
navPrev: 'nav-prev',
|
||
navRight: 'nav-right',
|
||
navUp: 'nav-up',
|
||
navUpLeft: 'nav-up-left',
|
||
navUpRight: 'nav-up-right',
|
||
onAbort: 'onabort',
|
||
onActivate: 'onactivate',
|
||
onAfterPrint: 'onafterprint',
|
||
onBeforePrint: 'onbeforeprint',
|
||
onBegin: 'onbegin',
|
||
onCancel: 'oncancel',
|
||
onCanPlay: 'oncanplay',
|
||
onCanPlayThrough: 'oncanplaythrough',
|
||
onChange: 'onchange',
|
||
onClick: 'onclick',
|
||
onClose: 'onclose',
|
||
onCopy: 'oncopy',
|
||
onCueChange: 'oncuechange',
|
||
onCut: 'oncut',
|
||
onDblClick: 'ondblclick',
|
||
onDrag: 'ondrag',
|
||
onDragEnd: 'ondragend',
|
||
onDragEnter: 'ondragenter',
|
||
onDragExit: 'ondragexit',
|
||
onDragLeave: 'ondragleave',
|
||
onDragOver: 'ondragover',
|
||
onDragStart: 'ondragstart',
|
||
onDrop: 'ondrop',
|
||
onDurationChange: 'ondurationchange',
|
||
onEmptied: 'onemptied',
|
||
onEnd: 'onend',
|
||
onEnded: 'onended',
|
||
onError: 'onerror',
|
||
onFocus: 'onfocus',
|
||
onFocusIn: 'onfocusin',
|
||
onFocusOut: 'onfocusout',
|
||
onHashChange: 'onhashchange',
|
||
onInput: 'oninput',
|
||
onInvalid: 'oninvalid',
|
||
onKeyDown: 'onkeydown',
|
||
onKeyPress: 'onkeypress',
|
||
onKeyUp: 'onkeyup',
|
||
onLoad: 'onload',
|
||
onLoadedData: 'onloadeddata',
|
||
onLoadedMetadata: 'onloadedmetadata',
|
||
onLoadStart: 'onloadstart',
|
||
onMessage: 'onmessage',
|
||
onMouseDown: 'onmousedown',
|
||
onMouseEnter: 'onmouseenter',
|
||
onMouseLeave: 'onmouseleave',
|
||
onMouseMove: 'onmousemove',
|
||
onMouseOut: 'onmouseout',
|
||
onMouseOver: 'onmouseover',
|
||
onMouseUp: 'onmouseup',
|
||
onMouseWheel: 'onmousewheel',
|
||
onOffline: 'onoffline',
|
||
onOnline: 'ononline',
|
||
onPageHide: 'onpagehide',
|
||
onPageShow: 'onpageshow',
|
||
onPaste: 'onpaste',
|
||
onPause: 'onpause',
|
||
onPlay: 'onplay',
|
||
onPlaying: 'onplaying',
|
||
onPopState: 'onpopstate',
|
||
onProgress: 'onprogress',
|
||
onRateChange: 'onratechange',
|
||
onRepeat: 'onrepeat',
|
||
onReset: 'onreset',
|
||
onResize: 'onresize',
|
||
onScroll: 'onscroll',
|
||
onSeeked: 'onseeked',
|
||
onSeeking: 'onseeking',
|
||
onSelect: 'onselect',
|
||
onShow: 'onshow',
|
||
onStalled: 'onstalled',
|
||
onStorage: 'onstorage',
|
||
onSubmit: 'onsubmit',
|
||
onSuspend: 'onsuspend',
|
||
onTimeUpdate: 'ontimeupdate',
|
||
onToggle: 'ontoggle',
|
||
onUnload: 'onunload',
|
||
onVolumeChange: 'onvolumechange',
|
||
onWaiting: 'onwaiting',
|
||
onZoom: 'onzoom',
|
||
overlinePosition: 'overline-position',
|
||
overlineThickness: 'overline-thickness',
|
||
paintOrder: 'paint-order',
|
||
panose1: 'panose-1',
|
||
pointerEvents: 'pointer-events',
|
||
referrerPolicy: 'referrerpolicy',
|
||
renderingIntent: 'rendering-intent',
|
||
shapeRendering: 'shape-rendering',
|
||
stopColor: 'stop-color',
|
||
stopOpacity: 'stop-opacity',
|
||
strikethroughPosition: 'strikethrough-position',
|
||
strikethroughThickness: 'strikethrough-thickness',
|
||
strokeDashArray: 'stroke-dasharray',
|
||
strokeDashOffset: 'stroke-dashoffset',
|
||
strokeLineCap: 'stroke-linecap',
|
||
strokeLineJoin: 'stroke-linejoin',
|
||
strokeMiterLimit: 'stroke-miterlimit',
|
||
strokeOpacity: 'stroke-opacity',
|
||
strokeWidth: 'stroke-width',
|
||
tabIndex: 'tabindex',
|
||
textAnchor: 'text-anchor',
|
||
textDecoration: 'text-decoration',
|
||
textRendering: 'text-rendering',
|
||
transformOrigin: 'transform-origin',
|
||
typeOf: 'typeof',
|
||
underlinePosition: 'underline-position',
|
||
underlineThickness: 'underline-thickness',
|
||
unicodeBidi: 'unicode-bidi',
|
||
unicodeRange: 'unicode-range',
|
||
unitsPerEm: 'units-per-em',
|
||
vAlphabetic: 'v-alphabetic',
|
||
vHanging: 'v-hanging',
|
||
vIdeographic: 'v-ideographic',
|
||
vMathematical: 'v-mathematical',
|
||
vectorEffect: 'vector-effect',
|
||
vertAdvY: 'vert-adv-y',
|
||
vertOriginX: 'vert-origin-x',
|
||
vertOriginY: 'vert-origin-y',
|
||
wordSpacing: 'word-spacing',
|
||
writingMode: 'writing-mode',
|
||
xHeight: 'x-height',
|
||
// These were camelcased in Tiny. Now lowercased in SVG 2
|
||
playbackOrder: 'playbackorder',
|
||
timelineBegin: 'timelinebegin'
|
||
},
|
||
transform: caseSensitiveTransform,
|
||
properties: {
|
||
about: commaOrSpaceSeparated,
|
||
accentHeight: number,
|
||
accumulate: null,
|
||
additive: null,
|
||
alignmentBaseline: null,
|
||
alphabetic: number,
|
||
amplitude: number,
|
||
arabicForm: null,
|
||
ascent: number,
|
||
attributeName: null,
|
||
attributeType: null,
|
||
azimuth: number,
|
||
bandwidth: null,
|
||
baselineShift: null,
|
||
baseFrequency: null,
|
||
baseProfile: null,
|
||
bbox: null,
|
||
begin: null,
|
||
bias: number,
|
||
by: null,
|
||
calcMode: null,
|
||
capHeight: number,
|
||
className: spaceSeparated,
|
||
clip: null,
|
||
clipPath: null,
|
||
clipPathUnits: null,
|
||
clipRule: null,
|
||
color: null,
|
||
colorInterpolation: null,
|
||
colorInterpolationFilters: null,
|
||
colorProfile: null,
|
||
colorRendering: null,
|
||
content: null,
|
||
contentScriptType: null,
|
||
contentStyleType: null,
|
||
crossOrigin: null,
|
||
cursor: null,
|
||
cx: null,
|
||
cy: null,
|
||
d: null,
|
||
dataType: null,
|
||
defaultAction: null,
|
||
descent: number,
|
||
diffuseConstant: number,
|
||
direction: null,
|
||
display: null,
|
||
dur: null,
|
||
divisor: number,
|
||
dominantBaseline: null,
|
||
download: types_boolean,
|
||
dx: null,
|
||
dy: null,
|
||
edgeMode: null,
|
||
editable: null,
|
||
elevation: number,
|
||
enableBackground: null,
|
||
end: null,
|
||
event: null,
|
||
exponent: number,
|
||
externalResourcesRequired: null,
|
||
fill: null,
|
||
fillOpacity: number,
|
||
fillRule: null,
|
||
filter: null,
|
||
filterRes: null,
|
||
filterUnits: null,
|
||
floodColor: null,
|
||
floodOpacity: null,
|
||
focusable: null,
|
||
focusHighlight: null,
|
||
fontFamily: null,
|
||
fontSize: null,
|
||
fontSizeAdjust: null,
|
||
fontStretch: null,
|
||
fontStyle: null,
|
||
fontVariant: null,
|
||
fontWeight: null,
|
||
format: null,
|
||
fr: null,
|
||
from: null,
|
||
fx: null,
|
||
fy: null,
|
||
g1: commaSeparated,
|
||
g2: commaSeparated,
|
||
glyphName: commaSeparated,
|
||
glyphOrientationHorizontal: null,
|
||
glyphOrientationVertical: null,
|
||
glyphRef: null,
|
||
gradientTransform: null,
|
||
gradientUnits: null,
|
||
handler: null,
|
||
hanging: number,
|
||
hatchContentUnits: null,
|
||
hatchUnits: null,
|
||
height: null,
|
||
href: null,
|
||
hrefLang: null,
|
||
horizAdvX: number,
|
||
horizOriginX: number,
|
||
horizOriginY: number,
|
||
id: null,
|
||
ideographic: number,
|
||
imageRendering: null,
|
||
initialVisibility: null,
|
||
in: null,
|
||
in2: null,
|
||
intercept: number,
|
||
k: number,
|
||
k1: number,
|
||
k2: number,
|
||
k3: number,
|
||
k4: number,
|
||
kernelMatrix: commaOrSpaceSeparated,
|
||
kernelUnitLength: null,
|
||
keyPoints: null,
|
||
// SEMI_COLON_SEPARATED
|
||
keySplines: null,
|
||
// SEMI_COLON_SEPARATED
|
||
keyTimes: null,
|
||
// SEMI_COLON_SEPARATED
|
||
kerning: null,
|
||
lang: null,
|
||
lengthAdjust: null,
|
||
letterSpacing: null,
|
||
lightingColor: null,
|
||
limitingConeAngle: number,
|
||
local: null,
|
||
markerEnd: null,
|
||
markerMid: null,
|
||
markerStart: null,
|
||
markerHeight: null,
|
||
markerUnits: null,
|
||
markerWidth: null,
|
||
mask: null,
|
||
maskContentUnits: null,
|
||
maskUnits: null,
|
||
mathematical: null,
|
||
max: null,
|
||
media: null,
|
||
mediaCharacterEncoding: null,
|
||
mediaContentEncodings: null,
|
||
mediaSize: number,
|
||
mediaTime: null,
|
||
method: null,
|
||
min: null,
|
||
mode: null,
|
||
name: null,
|
||
navDown: null,
|
||
navDownLeft: null,
|
||
navDownRight: null,
|
||
navLeft: null,
|
||
navNext: null,
|
||
navPrev: null,
|
||
navRight: null,
|
||
navUp: null,
|
||
navUpLeft: null,
|
||
navUpRight: null,
|
||
numOctaves: null,
|
||
observer: null,
|
||
offset: null,
|
||
onAbort: null,
|
||
onActivate: null,
|
||
onAfterPrint: null,
|
||
onBeforePrint: null,
|
||
onBegin: null,
|
||
onCancel: null,
|
||
onCanPlay: null,
|
||
onCanPlayThrough: null,
|
||
onChange: null,
|
||
onClick: null,
|
||
onClose: null,
|
||
onCopy: null,
|
||
onCueChange: null,
|
||
onCut: null,
|
||
onDblClick: null,
|
||
onDrag: null,
|
||
onDragEnd: null,
|
||
onDragEnter: null,
|
||
onDragExit: null,
|
||
onDragLeave: null,
|
||
onDragOver: null,
|
||
onDragStart: null,
|
||
onDrop: null,
|
||
onDurationChange: null,
|
||
onEmptied: null,
|
||
onEnd: null,
|
||
onEnded: null,
|
||
onError: null,
|
||
onFocus: null,
|
||
onFocusIn: null,
|
||
onFocusOut: null,
|
||
onHashChange: null,
|
||
onInput: null,
|
||
onInvalid: null,
|
||
onKeyDown: null,
|
||
onKeyPress: null,
|
||
onKeyUp: null,
|
||
onLoad: null,
|
||
onLoadedData: null,
|
||
onLoadedMetadata: null,
|
||
onLoadStart: null,
|
||
onMessage: null,
|
||
onMouseDown: null,
|
||
onMouseEnter: null,
|
||
onMouseLeave: null,
|
||
onMouseMove: null,
|
||
onMouseOut: null,
|
||
onMouseOver: null,
|
||
onMouseUp: null,
|
||
onMouseWheel: null,
|
||
onOffline: null,
|
||
onOnline: null,
|
||
onPageHide: null,
|
||
onPageShow: null,
|
||
onPaste: null,
|
||
onPause: null,
|
||
onPlay: null,
|
||
onPlaying: null,
|
||
onPopState: null,
|
||
onProgress: null,
|
||
onRateChange: null,
|
||
onRepeat: null,
|
||
onReset: null,
|
||
onResize: null,
|
||
onScroll: null,
|
||
onSeeked: null,
|
||
onSeeking: null,
|
||
onSelect: null,
|
||
onShow: null,
|
||
onStalled: null,
|
||
onStorage: null,
|
||
onSubmit: null,
|
||
onSuspend: null,
|
||
onTimeUpdate: null,
|
||
onToggle: null,
|
||
onUnload: null,
|
||
onVolumeChange: null,
|
||
onWaiting: null,
|
||
onZoom: null,
|
||
opacity: null,
|
||
operator: null,
|
||
order: null,
|
||
orient: null,
|
||
orientation: null,
|
||
origin: null,
|
||
overflow: null,
|
||
overlay: null,
|
||
overlinePosition: number,
|
||
overlineThickness: number,
|
||
paintOrder: null,
|
||
panose1: null,
|
||
path: null,
|
||
pathLength: number,
|
||
patternContentUnits: null,
|
||
patternTransform: null,
|
||
patternUnits: null,
|
||
phase: null,
|
||
ping: spaceSeparated,
|
||
pitch: null,
|
||
playbackOrder: null,
|
||
pointerEvents: null,
|
||
points: null,
|
||
pointsAtX: number,
|
||
pointsAtY: number,
|
||
pointsAtZ: number,
|
||
preserveAlpha: null,
|
||
preserveAspectRatio: null,
|
||
primitiveUnits: null,
|
||
propagate: null,
|
||
property: commaOrSpaceSeparated,
|
||
r: null,
|
||
radius: null,
|
||
referrerPolicy: null,
|
||
refX: null,
|
||
refY: null,
|
||
rel: commaOrSpaceSeparated,
|
||
rev: commaOrSpaceSeparated,
|
||
renderingIntent: null,
|
||
repeatCount: null,
|
||
repeatDur: null,
|
||
requiredExtensions: commaOrSpaceSeparated,
|
||
requiredFeatures: commaOrSpaceSeparated,
|
||
requiredFonts: commaOrSpaceSeparated,
|
||
requiredFormats: commaOrSpaceSeparated,
|
||
resource: null,
|
||
restart: null,
|
||
result: null,
|
||
rotate: null,
|
||
rx: null,
|
||
ry: null,
|
||
scale: null,
|
||
seed: null,
|
||
shapeRendering: null,
|
||
side: null,
|
||
slope: null,
|
||
snapshotTime: null,
|
||
specularConstant: number,
|
||
specularExponent: number,
|
||
spreadMethod: null,
|
||
spacing: null,
|
||
startOffset: null,
|
||
stdDeviation: null,
|
||
stemh: null,
|
||
stemv: null,
|
||
stitchTiles: null,
|
||
stopColor: null,
|
||
stopOpacity: null,
|
||
strikethroughPosition: number,
|
||
strikethroughThickness: number,
|
||
string: null,
|
||
stroke: null,
|
||
strokeDashArray: commaOrSpaceSeparated,
|
||
strokeDashOffset: null,
|
||
strokeLineCap: null,
|
||
strokeLineJoin: null,
|
||
strokeMiterLimit: number,
|
||
strokeOpacity: number,
|
||
strokeWidth: null,
|
||
style: null,
|
||
surfaceScale: number,
|
||
syncBehavior: null,
|
||
syncBehaviorDefault: null,
|
||
syncMaster: null,
|
||
syncTolerance: null,
|
||
syncToleranceDefault: null,
|
||
systemLanguage: commaOrSpaceSeparated,
|
||
tabIndex: number,
|
||
tableValues: null,
|
||
target: null,
|
||
targetX: number,
|
||
targetY: number,
|
||
textAnchor: null,
|
||
textDecoration: null,
|
||
textRendering: null,
|
||
textLength: null,
|
||
timelineBegin: null,
|
||
title: null,
|
||
transformBehavior: null,
|
||
type: null,
|
||
typeOf: commaOrSpaceSeparated,
|
||
to: null,
|
||
transform: null,
|
||
transformOrigin: null,
|
||
u1: null,
|
||
u2: null,
|
||
underlinePosition: number,
|
||
underlineThickness: number,
|
||
unicode: null,
|
||
unicodeBidi: null,
|
||
unicodeRange: null,
|
||
unitsPerEm: number,
|
||
values: null,
|
||
vAlphabetic: number,
|
||
vMathematical: number,
|
||
vectorEffect: null,
|
||
vHanging: number,
|
||
vIdeographic: number,
|
||
version: null,
|
||
vertAdvY: number,
|
||
vertOriginX: number,
|
||
vertOriginY: number,
|
||
viewBox: null,
|
||
viewTarget: null,
|
||
visibility: null,
|
||
width: null,
|
||
widths: null,
|
||
wordSpacing: null,
|
||
writingMode: null,
|
||
x: null,
|
||
x1: null,
|
||
x2: null,
|
||
xChannelSelector: null,
|
||
xHeight: number,
|
||
y: null,
|
||
y1: null,
|
||
y2: null,
|
||
yChannelSelector: null,
|
||
z: null,
|
||
zoomAndPan: null
|
||
}
|
||
});
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/property-information@6.3.0/node_modules/property-information/index.js
|
||
/**
|
||
* @typedef {import('./lib/util/info.js').Info} Info
|
||
* @typedef {import('./lib/util/schema.js').Schema} Schema
|
||
*/
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
var property_information_html = util_merge_merge([xml, xlink, xmlns, aria, html_html], 'html');
|
||
var property_information_svg = util_merge_merge([xml, xlink, xmlns, aria, svg], 'svg');
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/react-markdown@8.0.7_@types+react@18.2.22_react@18.2.0/node_modules/react-markdown/lib/rehype-filter.js
|
||
|
||
|
||
|
||
/**
|
||
* @typedef {import('unist').Node} Node
|
||
* @typedef {import('hast').Root} Root
|
||
* @typedef {import('hast').Element} Element
|
||
*
|
||
* @callback AllowElement
|
||
* @param {Element} element
|
||
* @param {number} index
|
||
* @param {Element|Root} parent
|
||
* @returns {boolean|undefined}
|
||
*
|
||
* @typedef Options
|
||
* @property {Array<string>} [allowedElements]
|
||
* @property {Array<string>} [disallowedElements=[]]
|
||
* @property {AllowElement} [allowElement]
|
||
* @property {boolean} [unwrapDisallowed=false]
|
||
*/
|
||
|
||
/**
|
||
* @type {import('unified').Plugin<[Options], Root>}
|
||
*/
|
||
function rehypeFilter(options) {
|
||
if (options.allowedElements && options.disallowedElements) {
|
||
throw new TypeError('Only one of `allowedElements` and `disallowedElements` should be defined');
|
||
}
|
||
if (options.allowedElements || options.disallowedElements || options.allowElement) {
|
||
return function (tree) {
|
||
visit(tree, 'element', function (node, index, parent_) {
|
||
var parent = /** @type {Element|Root} */parent_;
|
||
/** @type {boolean|undefined} */
|
||
var remove;
|
||
if (options.allowedElements) {
|
||
remove = !options.allowedElements.includes(node.tagName);
|
||
} else if (options.disallowedElements) {
|
||
remove = options.disallowedElements.includes(node.tagName);
|
||
}
|
||
if (!remove && options.allowElement && typeof index === 'number') {
|
||
remove = !options.allowElement(node, index, parent);
|
||
}
|
||
if (remove && typeof index === 'number') {
|
||
if (options.unwrapDisallowed && node.children) {
|
||
var _parent$children;
|
||
(_parent$children = parent.children).splice.apply(_parent$children, [index, 1].concat(toConsumableArray_toConsumableArray(node.children)));
|
||
} else {
|
||
parent.children.splice(index, 1);
|
||
}
|
||
return index;
|
||
}
|
||
return undefined;
|
||
});
|
||
};
|
||
}
|
||
}
|
||
// EXTERNAL MODULE: ./node_modules/.pnpm/react-is@18.2.0/node_modules/react-is/index.js
|
||
var react_is = __webpack_require__(8890);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/hast-util-whitespace@2.0.1/node_modules/hast-util-whitespace/index.js
|
||
/**
|
||
* Check if the given value is *inter-element whitespace*.
|
||
*
|
||
* @param {unknown} thing
|
||
* Thing to check (typically `Node` or `string`).
|
||
* @returns {boolean}
|
||
* Whether the `value` is inter-element whitespace (`boolean`): consisting of
|
||
* zero or more of space, tab (`\t`), line feed (`\n`), carriage return
|
||
* (`\r`), or form feed (`\f`).
|
||
* If a node is passed it must be a `Text` node, whose `value` field is
|
||
* checked.
|
||
*/
|
||
function hast_util_whitespace_whitespace(thing) {
|
||
/** @type {string} */
|
||
var value =
|
||
// @ts-expect-error looks like a node.
|
||
thing && typeof thing === 'object' && thing.type === 'text' ?
|
||
// @ts-expect-error looks like a text.
|
||
thing.value || '' : thing;
|
||
|
||
// HTML whitespace expression.
|
||
// See <https://infra.spec.whatwg.org/#ascii-whitespace>.
|
||
return typeof value === 'string' && value.replace(/[ \t\n\f\r]/g, '') === '';
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/property-information@6.3.0/node_modules/property-information/lib/find.js
|
||
/**
|
||
* @typedef {import('./util/schema.js').Schema} Schema
|
||
*/
|
||
|
||
|
||
|
||
|
||
var valid = /^data[-\w.:]+$/i;
|
||
var dash = /-[a-z]/g;
|
||
var cap = /[A-Z]/g;
|
||
|
||
/**
|
||
* @param {Schema} schema
|
||
* @param {string} value
|
||
* @returns {Info}
|
||
*/
|
||
function find(schema, value) {
|
||
var normal = normalize_normalize(value);
|
||
var prop = value;
|
||
var Type = Info;
|
||
if (normal in schema.normal) {
|
||
return schema.property[schema.normal[normal]];
|
||
}
|
||
if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {
|
||
// Attribute or property.
|
||
if (value.charAt(4) === '-') {
|
||
// Turn it into a property.
|
||
var rest = value.slice(5).replace(dash, camelcase);
|
||
prop = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1);
|
||
} else {
|
||
// Turn it into an attribute.
|
||
var _rest = value.slice(4);
|
||
if (!dash.test(_rest)) {
|
||
var dashes = _rest.replace(cap, kebab);
|
||
if (dashes.charAt(0) !== '-') {
|
||
dashes = '-' + dashes;
|
||
}
|
||
value = 'data' + dashes;
|
||
}
|
||
}
|
||
Type = DefinedInfo;
|
||
}
|
||
return new Type(prop, value);
|
||
}
|
||
|
||
/**
|
||
* @param {string} $0
|
||
* @returns {string}
|
||
*/
|
||
function kebab($0) {
|
||
return '-' + $0.toLowerCase();
|
||
}
|
||
|
||
/**
|
||
* @param {string} $0
|
||
* @returns {string}
|
||
*/
|
||
function camelcase($0) {
|
||
return $0.charAt(1).toUpperCase();
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/property-information@6.3.0/node_modules/property-information/lib/hast-to-react.js
|
||
/**
|
||
* `hast` is close to `React`, but differs in a couple of cases.
|
||
*
|
||
* To get a React property from a hast property, check if it is in
|
||
* `hastToReact`, if it is, then use the corresponding value,
|
||
* otherwise, use the hast property.
|
||
*
|
||
* @type {Record<string, string>}
|
||
*/
|
||
var hastToReact = {
|
||
classId: 'classID',
|
||
dataType: 'datatype',
|
||
itemId: 'itemID',
|
||
strokeDashArray: 'strokeDasharray',
|
||
strokeDashOffset: 'strokeDashoffset',
|
||
strokeLineCap: 'strokeLinecap',
|
||
strokeLineJoin: 'strokeLinejoin',
|
||
strokeMiterLimit: 'strokeMiterlimit',
|
||
typeOf: 'typeof',
|
||
xLinkActuate: 'xlinkActuate',
|
||
xLinkArcRole: 'xlinkArcrole',
|
||
xLinkHref: 'xlinkHref',
|
||
xLinkRole: 'xlinkRole',
|
||
xLinkShow: 'xlinkShow',
|
||
xLinkTitle: 'xlinkTitle',
|
||
xLinkType: 'xlinkType',
|
||
xmlnsXLink: 'xmlnsXlink'
|
||
};
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/space-separated-tokens@2.0.2/node_modules/space-separated-tokens/index.js
|
||
/**
|
||
* Parse space-separated tokens to an array of strings.
|
||
*
|
||
* @param {string} value
|
||
* Space-separated tokens.
|
||
* @returns {Array<string>}
|
||
* List of tokens.
|
||
*/
|
||
function space_separated_tokens_parse(value) {
|
||
var input = String(value || '').trim();
|
||
return input ? input.split(/[ \t\n\r\f]+/g) : [];
|
||
}
|
||
|
||
/**
|
||
* Serialize an array of strings as space separated-tokens.
|
||
*
|
||
* @param {Array<string|number>} values
|
||
* List of tokens.
|
||
* @returns {string}
|
||
* Space-separated tokens.
|
||
*/
|
||
function space_separated_tokens_stringify(values) {
|
||
return values.join(' ').trim();
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/comma-separated-tokens@2.0.3/node_modules/comma-separated-tokens/index.js
|
||
|
||
/**
|
||
* @typedef Options
|
||
* Configuration for `stringify`.
|
||
* @property {boolean} [padLeft=true]
|
||
* Whether to pad a space before a token.
|
||
* @property {boolean} [padRight=false]
|
||
* Whether to pad a space after a token.
|
||
*/
|
||
|
||
/**
|
||
* @typedef {Options} StringifyOptions
|
||
* Please use `StringifyOptions` instead.
|
||
*/
|
||
|
||
/**
|
||
* Parse comma-separated tokens to an array.
|
||
*
|
||
* @param {string} value
|
||
* Comma-separated tokens.
|
||
* @returns {Array<string>}
|
||
* List of tokens.
|
||
*/
|
||
function comma_separated_tokens_parse(value) {
|
||
/** @type {Array<string>} */
|
||
var tokens = [];
|
||
var input = String(value || '');
|
||
var index = input.indexOf(',');
|
||
var start = 0;
|
||
/** @type {boolean} */
|
||
var end = false;
|
||
while (!end) {
|
||
if (index === -1) {
|
||
index = input.length;
|
||
end = true;
|
||
}
|
||
var token = input.slice(start, index).trim();
|
||
if (token || !end) {
|
||
tokens.push(token);
|
||
}
|
||
start = index + 1;
|
||
index = input.indexOf(',', start);
|
||
}
|
||
return tokens;
|
||
}
|
||
|
||
/**
|
||
* Serialize an array of strings or numbers to comma-separated tokens.
|
||
*
|
||
* @param {Array<string|number>} values
|
||
* List of tokens.
|
||
* @param {Options} [options]
|
||
* Configuration for `stringify` (optional).
|
||
* @returns {string}
|
||
* Comma-separated tokens.
|
||
*/
|
||
function comma_separated_tokens_stringify(values, options) {
|
||
var settings = options || {};
|
||
|
||
// Ensure the last empty entry is seen.
|
||
var input = values[values.length - 1] === '' ? [].concat(toConsumableArray_toConsumableArray(values), ['']) : values;
|
||
return input.join((settings.padRight ? ' ' : '') + ',' + (settings.padLeft === false ? '' : ' ')).trim();
|
||
}
|
||
// EXTERNAL MODULE: ./node_modules/.pnpm/style-to-object@0.4.2/node_modules/style-to-object/index.js
|
||
var style_to_object = __webpack_require__(8879);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/style-to-object@0.4.2/node_modules/style-to-object/index.mjs
|
||
|
||
/* harmony default export */ var node_modules_style_to_object = (style_to_object);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/react-markdown@8.0.7_@types+react@18.2.22_react@18.2.0/node_modules/react-markdown/lib/uri-transformer.js
|
||
var protocols = ['http', 'https', 'mailto', 'tel'];
|
||
|
||
/**
|
||
* @param {string} uri
|
||
* @returns {string}
|
||
*/
|
||
function uriTransformer(uri) {
|
||
var url = (uri || '').trim();
|
||
var first = url.charAt(0);
|
||
if (first === '#' || first === '/') {
|
||
return url;
|
||
}
|
||
var colon = url.indexOf(':');
|
||
if (colon === -1) {
|
||
return url;
|
||
}
|
||
var index = -1;
|
||
while (++index < protocols.length) {
|
||
var protocol = protocols[index];
|
||
if (colon === protocol.length && url.slice(0, protocol.length).toLowerCase() === protocol) {
|
||
return url;
|
||
}
|
||
}
|
||
index = url.indexOf('?');
|
||
if (index !== -1 && colon > index) {
|
||
return url;
|
||
}
|
||
index = url.indexOf('#');
|
||
if (index !== -1 && colon > index) {
|
||
return url;
|
||
}
|
||
|
||
// eslint-disable-next-line no-script-url
|
||
return 'javascript:void(0)';
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/react-markdown@8.0.7_@types+react@18.2.22_react@18.2.0/node_modules/react-markdown/lib/ast-to-react.js
|
||
/**
|
||
* @template T
|
||
* @typedef {import('react').ComponentType<T>} ComponentType<T>
|
||
*/
|
||
|
||
/**
|
||
* @template {import('react').ElementType} T
|
||
* @typedef {import('react').ComponentPropsWithoutRef<T>} ComponentPropsWithoutRef<T>
|
||
*/
|
||
|
||
/**
|
||
* @typedef {import('react').ReactNode} ReactNode
|
||
* @typedef {import('unist').Position} Position
|
||
* @typedef {import('hast').Element} Element
|
||
* @typedef {import('hast').ElementContent} ElementContent
|
||
* @typedef {import('hast').Root} Root
|
||
* @typedef {import('hast').Text} Text
|
||
* @typedef {import('hast').Comment} Comment
|
||
* @typedef {import('hast').DocType} Doctype
|
||
* @typedef {import('property-information').Info} Info
|
||
* @typedef {import('property-information').Schema} Schema
|
||
* @typedef {import('./complex-types.js').ReactMarkdownProps} ReactMarkdownProps
|
||
*
|
||
* @typedef Raw
|
||
* @property {'raw'} type
|
||
* @property {string} value
|
||
*
|
||
* @typedef Context
|
||
* @property {Options} options
|
||
* @property {Schema} schema
|
||
* @property {number} listDepth
|
||
*
|
||
* @callback TransformLink
|
||
* @param {string} href
|
||
* @param {Array<ElementContent>} children
|
||
* @param {string?} title
|
||
* @returns {string}
|
||
*
|
||
* @callback TransformImage
|
||
* @param {string} src
|
||
* @param {string} alt
|
||
* @param {string?} title
|
||
* @returns {string}
|
||
*
|
||
* @typedef {import('react').HTMLAttributeAnchorTarget} TransformLinkTargetType
|
||
*
|
||
* @callback TransformLinkTarget
|
||
* @param {string} href
|
||
* @param {Array<ElementContent>} children
|
||
* @param {string?} title
|
||
* @returns {TransformLinkTargetType|undefined}
|
||
*
|
||
* @typedef {keyof JSX.IntrinsicElements} ReactMarkdownNames
|
||
*
|
||
* To do: is `data-sourcepos` typeable?
|
||
*
|
||
* @typedef {ComponentPropsWithoutRef<'code'> & ReactMarkdownProps & {inline?: boolean}} CodeProps
|
||
* @typedef {ComponentPropsWithoutRef<'h1'> & ReactMarkdownProps & {level: number}} HeadingProps
|
||
* @typedef {ComponentPropsWithoutRef<'li'> & ReactMarkdownProps & {checked: boolean|null, index: number, ordered: boolean}} LiProps
|
||
* @typedef {ComponentPropsWithoutRef<'ol'> & ReactMarkdownProps & {depth: number, ordered: true}} OrderedListProps
|
||
* @typedef {ComponentPropsWithoutRef<'td'> & ReactMarkdownProps & {style?: Record<string, unknown>, isHeader: false}} TableDataCellProps
|
||
* @typedef {ComponentPropsWithoutRef<'th'> & ReactMarkdownProps & {style?: Record<string, unknown>, isHeader: true}} TableHeaderCellProps
|
||
* @typedef {ComponentPropsWithoutRef<'tr'> & ReactMarkdownProps & {isHeader: boolean}} TableRowProps
|
||
* @typedef {ComponentPropsWithoutRef<'ul'> & ReactMarkdownProps & {depth: number, ordered: false}} UnorderedListProps
|
||
*
|
||
* @typedef {ComponentType<CodeProps>} CodeComponent
|
||
* @typedef {ComponentType<HeadingProps>} HeadingComponent
|
||
* @typedef {ComponentType<LiProps>} LiComponent
|
||
* @typedef {ComponentType<OrderedListProps>} OrderedListComponent
|
||
* @typedef {ComponentType<TableDataCellProps>} TableDataCellComponent
|
||
* @typedef {ComponentType<TableHeaderCellProps>} TableHeaderCellComponent
|
||
* @typedef {ComponentType<TableRowProps>} TableRowComponent
|
||
* @typedef {ComponentType<UnorderedListProps>} UnorderedListComponent
|
||
*
|
||
* @typedef SpecialComponents
|
||
* @property {CodeComponent|ReactMarkdownNames} code
|
||
* @property {HeadingComponent|ReactMarkdownNames} h1
|
||
* @property {HeadingComponent|ReactMarkdownNames} h2
|
||
* @property {HeadingComponent|ReactMarkdownNames} h3
|
||
* @property {HeadingComponent|ReactMarkdownNames} h4
|
||
* @property {HeadingComponent|ReactMarkdownNames} h5
|
||
* @property {HeadingComponent|ReactMarkdownNames} h6
|
||
* @property {LiComponent|ReactMarkdownNames} li
|
||
* @property {OrderedListComponent|ReactMarkdownNames} ol
|
||
* @property {TableDataCellComponent|ReactMarkdownNames} td
|
||
* @property {TableHeaderCellComponent|ReactMarkdownNames} th
|
||
* @property {TableRowComponent|ReactMarkdownNames} tr
|
||
* @property {UnorderedListComponent|ReactMarkdownNames} ul
|
||
*
|
||
* @typedef {Partial<Omit<import('./complex-types.js').NormalComponents, keyof SpecialComponents> & SpecialComponents>} Components
|
||
*
|
||
* @typedef Options
|
||
* @property {boolean} [sourcePos=false]
|
||
* @property {boolean} [rawSourcePos=false]
|
||
* @property {boolean} [skipHtml=false]
|
||
* @property {boolean} [includeElementIndex=false]
|
||
* @property {null|false|TransformLink} [transformLinkUri]
|
||
* @property {TransformImage} [transformImageUri]
|
||
* @property {TransformLinkTargetType|TransformLinkTarget} [linkTarget]
|
||
* @property {Components} [components]
|
||
*/
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
var ast_to_react_own = {}.hasOwnProperty;
|
||
|
||
// The table-related elements that must not contain whitespace text according
|
||
// to React.
|
||
var tableElements = new Set(['table', 'thead', 'tbody', 'tfoot', 'tr']);
|
||
|
||
/**
|
||
* @param {Context} context
|
||
* @param {Element|Root} node
|
||
*/
|
||
function childrenToReact(context, node) {
|
||
/** @type {Array<ReactNode>} */
|
||
var children = [];
|
||
var childIndex = -1;
|
||
/** @type {Comment|Doctype|Element|Raw|Text} */
|
||
var child;
|
||
while (++childIndex < node.children.length) {
|
||
child = node.children[childIndex];
|
||
if (child.type === 'element') {
|
||
children.push(toReact(context, child, childIndex, node));
|
||
} else if (child.type === 'text') {
|
||
// Currently, a warning is triggered by react for *any* white space in
|
||
// tables.
|
||
// So we drop it.
|
||
// See: <https://github.com/facebook/react/pull/7081>.
|
||
// See: <https://github.com/facebook/react/pull/7515>.
|
||
// See: <https://github.com/remarkjs/remark-react/issues/64>.
|
||
// See: <https://github.com/remarkjs/react-markdown/issues/576>.
|
||
if (node.type !== 'element' || !tableElements.has(node.tagName) || !hast_util_whitespace_whitespace(child)) {
|
||
children.push(child.value);
|
||
}
|
||
} else if (child.type === 'raw' && !context.options.skipHtml) {
|
||
// Default behavior is to show (encoded) HTML.
|
||
children.push(child.value);
|
||
}
|
||
}
|
||
return children;
|
||
}
|
||
|
||
/**
|
||
* @param {Context} context
|
||
* @param {Element} node
|
||
* @param {number} index
|
||
* @param {Element|Root} parent
|
||
*/
|
||
function toReact(context, node, index, parent) {
|
||
var options = context.options;
|
||
var transform = options.transformLinkUri === undefined ? uriTransformer : options.transformLinkUri;
|
||
var parentSchema = context.schema;
|
||
/** @type {ReactMarkdownNames} */
|
||
// @ts-expect-error assume a known HTML/SVG element.
|
||
var name = node.tagName;
|
||
/** @type {Record<string, unknown>} */
|
||
var properties = {};
|
||
var schema = parentSchema;
|
||
/** @type {string} */
|
||
var property;
|
||
if (parentSchema.space === 'html' && name === 'svg') {
|
||
schema = property_information_svg;
|
||
context.schema = schema;
|
||
}
|
||
if (node.properties) {
|
||
for (property in node.properties) {
|
||
if (ast_to_react_own.call(node.properties, property)) {
|
||
addProperty(properties, property, node.properties[property], context);
|
||
}
|
||
}
|
||
}
|
||
if (name === 'ol' || name === 'ul') {
|
||
context.listDepth++;
|
||
}
|
||
var children = childrenToReact(context, node);
|
||
if (name === 'ol' || name === 'ul') {
|
||
context.listDepth--;
|
||
}
|
||
|
||
// Restore parent schema.
|
||
context.schema = parentSchema;
|
||
|
||
// Nodes created by plugins do not have positional info, in which case we use
|
||
// an object that matches the position interface.
|
||
var position = node.position || {
|
||
start: {
|
||
line: null,
|
||
column: null,
|
||
offset: null
|
||
},
|
||
end: {
|
||
line: null,
|
||
column: null,
|
||
offset: null
|
||
}
|
||
};
|
||
var component = options.components && ast_to_react_own.call(options.components, name) ? options.components[name] : name;
|
||
var basic = typeof component === 'string' || component === react.Fragment;
|
||
if (!react_is.isValidElementType(component)) {
|
||
throw new TypeError("Component for name `".concat(name, "` not defined or is not renderable"));
|
||
}
|
||
properties.key = index;
|
||
if (name === 'a' && options.linkTarget) {
|
||
properties.target = typeof options.linkTarget === 'function' ? options.linkTarget(String(properties.href || ''), node.children, typeof properties.title === 'string' ? properties.title : null) : options.linkTarget;
|
||
}
|
||
if (name === 'a' && transform) {
|
||
properties.href = transform(String(properties.href || ''), node.children, typeof properties.title === 'string' ? properties.title : null);
|
||
}
|
||
if (!basic && name === 'code' && parent.type === 'element' && parent.tagName !== 'pre') {
|
||
properties.inline = true;
|
||
}
|
||
if (!basic && (name === 'h1' || name === 'h2' || name === 'h3' || name === 'h4' || name === 'h5' || name === 'h6')) {
|
||
properties.level = Number.parseInt(name.charAt(1), 10);
|
||
}
|
||
if (name === 'img' && options.transformImageUri) {
|
||
properties.src = options.transformImageUri(String(properties.src || ''), String(properties.alt || ''), typeof properties.title === 'string' ? properties.title : null);
|
||
}
|
||
if (!basic && name === 'li' && parent.type === 'element') {
|
||
var input = getInputElement(node);
|
||
properties.checked = input && input.properties ? Boolean(input.properties.checked) : null;
|
||
properties.index = getElementsBeforeCount(parent, node);
|
||
properties.ordered = parent.tagName === 'ol';
|
||
}
|
||
if (!basic && (name === 'ol' || name === 'ul')) {
|
||
properties.ordered = name === 'ol';
|
||
properties.depth = context.listDepth;
|
||
}
|
||
if (name === 'td' || name === 'th') {
|
||
if (properties.align) {
|
||
if (!properties.style) properties.style = {};
|
||
// @ts-expect-error assume `style` is an object
|
||
properties.style.textAlign = properties.align;
|
||
delete properties.align;
|
||
}
|
||
if (!basic) {
|
||
properties.isHeader = name === 'th';
|
||
}
|
||
}
|
||
if (!basic && name === 'tr' && parent.type === 'element') {
|
||
properties.isHeader = Boolean(parent.tagName === 'thead');
|
||
}
|
||
|
||
// If `sourcePos` is given, pass source information (line/column info from markdown source).
|
||
if (options.sourcePos) {
|
||
properties['data-sourcepos'] = flattenPosition(position);
|
||
}
|
||
if (!basic && options.rawSourcePos) {
|
||
properties.sourcePosition = node.position;
|
||
}
|
||
|
||
// If `includeElementIndex` is given, pass node index info to components.
|
||
if (!basic && options.includeElementIndex) {
|
||
properties.index = getElementsBeforeCount(parent, node);
|
||
properties.siblingCount = getElementsBeforeCount(parent);
|
||
}
|
||
if (!basic) {
|
||
properties.node = node;
|
||
}
|
||
|
||
// Ensure no React warnings are emitted for void elements w/ children.
|
||
return children.length > 0 ? react.createElement(component, properties, children) : react.createElement(component, properties);
|
||
}
|
||
|
||
/**
|
||
* @param {Element|Root} node
|
||
* @returns {Element?}
|
||
*/
|
||
function getInputElement(node) {
|
||
var index = -1;
|
||
while (++index < node.children.length) {
|
||
var child = node.children[index];
|
||
if (child.type === 'element' && child.tagName === 'input') {
|
||
return child;
|
||
}
|
||
}
|
||
return null;
|
||
}
|
||
|
||
/**
|
||
* @param {Element|Root} parent
|
||
* @param {Element} [node]
|
||
* @returns {number}
|
||
*/
|
||
function getElementsBeforeCount(parent, node) {
|
||
var index = -1;
|
||
var count = 0;
|
||
while (++index < parent.children.length) {
|
||
if (parent.children[index] === node) break;
|
||
if (parent.children[index].type === 'element') count++;
|
||
}
|
||
return count;
|
||
}
|
||
|
||
/**
|
||
* @param {Record<string, unknown>} props
|
||
* @param {string} prop
|
||
* @param {unknown} value
|
||
* @param {Context} ctx
|
||
*/
|
||
function addProperty(props, prop, value, ctx) {
|
||
var info = find(ctx.schema, prop);
|
||
var result = value;
|
||
|
||
// Ignore nullish and `NaN` values.
|
||
// eslint-disable-next-line no-self-compare
|
||
if (result === null || result === undefined || result !== result) {
|
||
return;
|
||
}
|
||
|
||
// Accept `array`.
|
||
// Most props are space-separated.
|
||
if (Array.isArray(result)) {
|
||
result = info.commaSeparated ? comma_separated_tokens_stringify(result) : space_separated_tokens_stringify(result);
|
||
}
|
||
if (info.property === 'style' && typeof result === 'string') {
|
||
result = parseStyle(result);
|
||
}
|
||
if (info.space && info.property) {
|
||
props[ast_to_react_own.call(hastToReact, info.property) ? hastToReact[info.property] : info.property] = result;
|
||
} else if (info.attribute) {
|
||
props[info.attribute] = result;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @param {string} value
|
||
* @returns {Record<string, string>}
|
||
*/
|
||
function parseStyle(value) {
|
||
/** @type {Record<string, string>} */
|
||
var result = {};
|
||
try {
|
||
node_modules_style_to_object(value, iterator);
|
||
} catch (_unused) {
|
||
// Silent.
|
||
}
|
||
return result;
|
||
|
||
/**
|
||
* @param {string} name
|
||
* @param {string} v
|
||
*/
|
||
function iterator(name, v) {
|
||
var k = name.slice(0, 4) === '-ms-' ? "ms-".concat(name.slice(4)) : name;
|
||
result[k.replace(/-([a-z])/g, styleReplacer)] = v;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @param {unknown} _
|
||
* @param {string} $1
|
||
*/
|
||
function styleReplacer(_, $1) {
|
||
return $1.toUpperCase();
|
||
}
|
||
|
||
/**
|
||
* @param {Position|{start: {line: null, column: null, offset: null}, end: {line: null, column: null, offset: null}}} pos
|
||
* @returns {string}
|
||
*/
|
||
function flattenPosition(pos) {
|
||
return [pos.start.line, ':', pos.start.column, '-', pos.end.line, ':', pos.end.column].map(String).join('');
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/react-markdown@8.0.7_@types+react@18.2.22_react@18.2.0/node_modules/react-markdown/lib/react-markdown.js
|
||
|
||
/**
|
||
* @typedef {import('react').ReactNode} ReactNode
|
||
* @typedef {import('react').ReactElement<{}>} ReactElement
|
||
* @typedef {import('unified').PluggableList} PluggableList
|
||
* @typedef {import('hast').Root} Root
|
||
* @typedef {import('./rehype-filter.js').Options} FilterOptions
|
||
* @typedef {import('./ast-to-react.js').Options} TransformOptions
|
||
*
|
||
* @typedef CoreOptions
|
||
* @property {string} children
|
||
*
|
||
* @typedef PluginOptions
|
||
* @property {PluggableList} [remarkPlugins=[]]
|
||
* @property {PluggableList} [rehypePlugins=[]]
|
||
* @property {import('remark-rehype').Options | undefined} [remarkRehypeOptions={}]
|
||
*
|
||
* @typedef LayoutOptions
|
||
* @property {string} [className]
|
||
*
|
||
* @typedef {CoreOptions & PluginOptions & LayoutOptions & FilterOptions & TransformOptions} ReactMarkdownOptions
|
||
*
|
||
* @typedef Deprecation
|
||
* @property {string} id
|
||
* @property {string} [to]
|
||
*/
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
var react_markdown_own = {}.hasOwnProperty;
|
||
var changelog = 'https://github.com/remarkjs/react-markdown/blob/main/changelog.md';
|
||
|
||
/** @type {Record<string, Deprecation>} */
|
||
var deprecated = {
|
||
plugins: {
|
||
to: 'remarkPlugins',
|
||
id: 'change-plugins-to-remarkplugins'
|
||
},
|
||
renderers: {
|
||
to: 'components',
|
||
id: 'change-renderers-to-components'
|
||
},
|
||
astPlugins: {
|
||
id: 'remove-buggy-html-in-markdown-parser'
|
||
},
|
||
allowDangerousHtml: {
|
||
id: 'remove-buggy-html-in-markdown-parser'
|
||
},
|
||
escapeHtml: {
|
||
id: 'remove-buggy-html-in-markdown-parser'
|
||
},
|
||
source: {
|
||
to: 'children',
|
||
id: 'change-source-to-children'
|
||
},
|
||
allowNode: {
|
||
to: 'allowElement',
|
||
id: 'replace-allownode-allowedtypes-and-disallowedtypes'
|
||
},
|
||
allowedTypes: {
|
||
to: 'allowedElements',
|
||
id: 'replace-allownode-allowedtypes-and-disallowedtypes'
|
||
},
|
||
disallowedTypes: {
|
||
to: 'disallowedElements',
|
||
id: 'replace-allownode-allowedtypes-and-disallowedtypes'
|
||
},
|
||
includeNodeIndex: {
|
||
to: 'includeElementIndex',
|
||
id: 'change-includenodeindex-to-includeelementindex'
|
||
}
|
||
};
|
||
|
||
/**
|
||
* React component to render markdown.
|
||
*
|
||
* @param {ReactMarkdownOptions} options
|
||
* @returns {ReactElement}
|
||
*/
|
||
function ReactMarkdown(options) {
|
||
for (var key in deprecated) {
|
||
if (react_markdown_own.call(deprecated, key) && react_markdown_own.call(options, key)) {
|
||
var deprecation = deprecated[key];
|
||
console.warn("[react-markdown] Warning: please ".concat(deprecation.to ? "use `".concat(deprecation.to, "` instead of") : 'remove', " `").concat(key, "` (see <").concat(changelog, "#").concat(deprecation.id, "> for more info)"));
|
||
delete deprecated[key];
|
||
}
|
||
}
|
||
var processor = unified().use(remarkParse).use(options.remarkPlugins || []).use(lib, _objectSpread2(_objectSpread2({}, options.remarkRehypeOptions), {}, {
|
||
allowDangerousHtml: true
|
||
})).use(options.rehypePlugins || []).use(rehypeFilter, options);
|
||
var file = new VFile();
|
||
if (typeof options.children === 'string') {
|
||
file.value = options.children;
|
||
} else if (options.children !== undefined && options.children !== null) {
|
||
console.warn("[react-markdown] Warning: please pass a string as `children` (not: `".concat(options.children, "`)"));
|
||
}
|
||
var hastNode = processor.runSync(processor.parse(file), file);
|
||
if (hastNode.type !== 'root') {
|
||
throw new TypeError('Expected a `root` node');
|
||
}
|
||
|
||
/** @type {ReactElement} */
|
||
var result = react.createElement(react.Fragment, {}, childrenToReact({
|
||
options: options,
|
||
schema: property_information_html,
|
||
listDepth: 0
|
||
}, hastNode));
|
||
if (options.className) {
|
||
result = react.createElement('div', {
|
||
className: options.className
|
||
}, result);
|
||
}
|
||
return result;
|
||
}
|
||
ReactMarkdown.propTypes = {
|
||
// Core options:
|
||
children: prop_types.string,
|
||
// Layout options:
|
||
className: prop_types.string,
|
||
// Filter options:
|
||
allowElement: prop_types.func,
|
||
allowedElements: prop_types.arrayOf(prop_types.string),
|
||
disallowedElements: prop_types.arrayOf(prop_types.string),
|
||
unwrapDisallowed: prop_types.bool,
|
||
// Plugin options:
|
||
remarkPlugins: prop_types.arrayOf(prop_types.oneOfType([prop_types.object, prop_types.func, prop_types.arrayOf(prop_types.oneOfType([prop_types.bool, prop_types.string, prop_types.object, prop_types.func, prop_types.arrayOf(
|
||
// prettier-ignore
|
||
// type-coverage:ignore-next-line
|
||
prop_types.any)]))])),
|
||
rehypePlugins: prop_types.arrayOf(prop_types.oneOfType([prop_types.object, prop_types.func, prop_types.arrayOf(prop_types.oneOfType([prop_types.bool, prop_types.string, prop_types.object, prop_types.func, prop_types.arrayOf(
|
||
// prettier-ignore
|
||
// type-coverage:ignore-next-line
|
||
prop_types.any)]))])),
|
||
// Transform options:
|
||
sourcePos: prop_types.bool,
|
||
rawSourcePos: prop_types.bool,
|
||
skipHtml: prop_types.bool,
|
||
includeElementIndex: prop_types.bool,
|
||
transformLinkUri: prop_types.oneOfType([prop_types.func, prop_types.bool]),
|
||
linkTarget: prop_types.oneOfType([prop_types.func, prop_types.string]),
|
||
transformImageUri: prop_types.func,
|
||
components: prop_types.object
|
||
};
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/styles/getOverlayAlpha.js
|
||
// Inspired by https://github.com/material-components/material-components-ios/blob/bca36107405594d5b7b16265a5b0ed698f85a5ee/components/Elevation/src/UIColor%2BMaterialElevation.m#L61
|
||
var getOverlayAlpha = function getOverlayAlpha(elevation) {
|
||
var alphaValue;
|
||
if (elevation < 1) {
|
||
alphaValue = 5.11916 * Math.pow(elevation, 2);
|
||
} else {
|
||
alphaValue = 4.5 * Math.log(elevation + 1) + 2;
|
||
}
|
||
return (alphaValue / 100).toFixed(2);
|
||
};
|
||
/* harmony default export */ var styles_getOverlayAlpha = (getOverlayAlpha);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Paper/paperClasses.js
|
||
|
||
|
||
function getPaperUtilityClass(slot) {
|
||
return generateUtilityClass_generateUtilityClass('MuiPaper', slot);
|
||
}
|
||
var paperClasses = generateUtilityClasses('MuiPaper', ['root', 'rounded', 'outlined', 'elevation', 'elevation0', 'elevation1', 'elevation2', 'elevation3', 'elevation4', 'elevation5', 'elevation6', 'elevation7', 'elevation8', 'elevation9', 'elevation10', 'elevation11', 'elevation12', 'elevation13', 'elevation14', 'elevation15', 'elevation16', 'elevation17', 'elevation18', 'elevation19', 'elevation20', 'elevation21', 'elevation22', 'elevation23', 'elevation24']);
|
||
/* harmony default export */ var Paper_paperClasses = ((/* unused pure expression or super */ null && (paperClasses)));
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Paper/Paper.js
|
||
'use client';
|
||
|
||
|
||
|
||
var Paper_excluded = ["className", "component", "elevation", "square", "variant"];
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
var Paper_useUtilityClasses = function useUtilityClasses(ownerState) {
|
||
var square = ownerState.square,
|
||
elevation = ownerState.elevation,
|
||
variant = ownerState.variant,
|
||
classes = ownerState.classes;
|
||
var slots = {
|
||
root: ['root', variant, !square && 'rounded', variant === 'elevation' && "elevation".concat(elevation)]
|
||
};
|
||
return composeClasses(slots, getPaperUtilityClass, classes);
|
||
};
|
||
var PaperRoot = styles_styled('div', {
|
||
name: 'MuiPaper',
|
||
slot: 'Root',
|
||
overridesResolver: function overridesResolver(props, styles) {
|
||
var ownerState = props.ownerState;
|
||
return [styles.root, styles[ownerState.variant], !ownerState.square && styles.rounded, ownerState.variant === 'elevation' && styles["elevation".concat(ownerState.elevation)]];
|
||
}
|
||
})(function (_ref) {
|
||
var theme = _ref.theme,
|
||
ownerState = _ref.ownerState;
|
||
var _theme$vars$overlays;
|
||
return extends_extends({
|
||
backgroundColor: (theme.vars || theme).palette.background.paper,
|
||
color: (theme.vars || theme).palette.text.primary,
|
||
transition: theme.transitions.create('box-shadow')
|
||
}, !ownerState.square && {
|
||
borderRadius: theme.shape.borderRadius
|
||
}, ownerState.variant === 'outlined' && {
|
||
border: "1px solid ".concat((theme.vars || theme).palette.divider)
|
||
}, ownerState.variant === 'elevation' && extends_extends({
|
||
boxShadow: (theme.vars || theme).shadows[ownerState.elevation]
|
||
}, !theme.vars && theme.palette.mode === 'dark' && {
|
||
backgroundImage: "linear-gradient(".concat(alpha('#fff', styles_getOverlayAlpha(ownerState.elevation)), ", ").concat(alpha('#fff', styles_getOverlayAlpha(ownerState.elevation)), ")")
|
||
}, theme.vars && {
|
||
backgroundImage: (_theme$vars$overlays = theme.vars.overlays) == null ? void 0 : _theme$vars$overlays[ownerState.elevation]
|
||
}));
|
||
});
|
||
var Paper = /*#__PURE__*/react.forwardRef(function Paper(inProps, ref) {
|
||
var props = useThemeProps_useThemeProps({
|
||
props: inProps,
|
||
name: 'MuiPaper'
|
||
});
|
||
var className = props.className,
|
||
_props$component = props.component,
|
||
component = _props$component === void 0 ? 'div' : _props$component,
|
||
_props$elevation = props.elevation,
|
||
elevation = _props$elevation === void 0 ? 1 : _props$elevation,
|
||
_props$square = props.square,
|
||
square = _props$square === void 0 ? false : _props$square,
|
||
_props$variant = props.variant,
|
||
variant = _props$variant === void 0 ? 'elevation' : _props$variant,
|
||
other = _objectWithoutPropertiesLoose(props, Paper_excluded);
|
||
var ownerState = extends_extends({}, props, {
|
||
component: component,
|
||
elevation: elevation,
|
||
square: square,
|
||
variant: variant
|
||
});
|
||
var classes = Paper_useUtilityClasses(ownerState);
|
||
if (false) { var theme; }
|
||
return /*#__PURE__*/(0,jsx_runtime.jsx)(PaperRoot, extends_extends({
|
||
as: component,
|
||
ownerState: ownerState,
|
||
className: dist_clsx(classes.root, className),
|
||
ref: ref
|
||
}, other));
|
||
});
|
||
false ? 0 : void 0;
|
||
/* harmony default export */ var Paper_Paper = (Paper);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react@18.2.0/node_modules/@mui/system/esm/styled.js
|
||
|
||
var esm_styled_styled = createStyled_createStyled();
|
||
/* harmony default export */ var esm_styled = (esm_styled_styled);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react@18.2.0/node_modules/@mui/system/esm/styleFunctionSx/extendSxProp.js
|
||
|
||
|
||
|
||
var extendSxProp_excluded = ["sx"];
|
||
|
||
|
||
var splitProps = function splitProps(props) {
|
||
var _props$theme$unstable, _props$theme;
|
||
var result = {
|
||
systemProps: {},
|
||
otherProps: {}
|
||
};
|
||
var config = (_props$theme$unstable = props == null || (_props$theme = props.theme) == null ? void 0 : _props$theme.unstable_sxConfig) != null ? _props$theme$unstable : styleFunctionSx_defaultSxConfig;
|
||
Object.keys(props).forEach(function (prop) {
|
||
if (config[prop]) {
|
||
result.systemProps[prop] = props[prop];
|
||
} else {
|
||
result.otherProps[prop] = props[prop];
|
||
}
|
||
});
|
||
return result;
|
||
};
|
||
function extendSxProp(props) {
|
||
var inSx = props.sx,
|
||
other = _objectWithoutPropertiesLoose(props, extendSxProp_excluded);
|
||
var _splitProps = splitProps(other),
|
||
systemProps = _splitProps.systemProps,
|
||
otherProps = _splitProps.otherProps;
|
||
var finalSx;
|
||
if (Array.isArray(inSx)) {
|
||
finalSx = [systemProps].concat(toConsumableArray_toConsumableArray(inSx));
|
||
} else if (typeof inSx === 'function') {
|
||
finalSx = function finalSx() {
|
||
var result = inSx.apply(void 0, arguments);
|
||
if (!isPlainObject(result)) {
|
||
return systemProps;
|
||
}
|
||
return extends_extends({}, systemProps, result);
|
||
};
|
||
} else {
|
||
finalSx = extends_extends({}, systemProps, inSx);
|
||
}
|
||
return extends_extends({}, otherProps, {
|
||
sx: finalSx
|
||
});
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+system@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react@18.2.0/node_modules/@mui/system/esm/Stack/createStack.js
|
||
|
||
|
||
|
||
var createStack_excluded = ["component", "direction", "spacing", "divider", "children", "className", "useFlexGap"];
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
var createStack_defaultTheme = createTheme_createTheme();
|
||
// widening Theme to any so that the consumer can own the theme structure.
|
||
var defaultCreateStyledComponent = esm_styled('div', {
|
||
name: 'MuiStack',
|
||
slot: 'Root',
|
||
overridesResolver: function overridesResolver(props, styles) {
|
||
return styles.root;
|
||
}
|
||
});
|
||
function useThemePropsDefault(props) {
|
||
return useThemeProps({
|
||
props: props,
|
||
name: 'MuiStack',
|
||
defaultTheme: createStack_defaultTheme
|
||
});
|
||
}
|
||
|
||
/**
|
||
* Return an array with the separator React element interspersed between
|
||
* each React node of the input children.
|
||
*
|
||
* > joinChildren([1,2,3], 0)
|
||
* [1,0,2,0,3]
|
||
*/
|
||
function joinChildren(children, separator) {
|
||
var childrenArray = react.Children.toArray(children).filter(Boolean);
|
||
return childrenArray.reduce(function (output, child, index) {
|
||
output.push(child);
|
||
if (index < childrenArray.length - 1) {
|
||
output.push( /*#__PURE__*/react.cloneElement(separator, {
|
||
key: "separator-".concat(index)
|
||
}));
|
||
}
|
||
return output;
|
||
}, []);
|
||
}
|
||
var getSideFromDirection = function getSideFromDirection(direction) {
|
||
return {
|
||
row: 'Left',
|
||
'row-reverse': 'Right',
|
||
column: 'Top',
|
||
'column-reverse': 'Bottom'
|
||
}[direction];
|
||
};
|
||
var createStack_style = function style(_ref) {
|
||
var ownerState = _ref.ownerState,
|
||
theme = _ref.theme;
|
||
var styles = extends_extends({
|
||
display: 'flex',
|
||
flexDirection: 'column'
|
||
}, handleBreakpoints({
|
||
theme: theme
|
||
}, resolveBreakpointValues({
|
||
values: ownerState.direction,
|
||
breakpoints: theme.breakpoints.values
|
||
}), function (propValue) {
|
||
return {
|
||
flexDirection: propValue
|
||
};
|
||
}));
|
||
if (ownerState.spacing) {
|
||
var transformer = createUnarySpacing(theme);
|
||
var base = Object.keys(theme.breakpoints.values).reduce(function (acc, breakpoint) {
|
||
if (typeof ownerState.spacing === 'object' && ownerState.spacing[breakpoint] != null || typeof ownerState.direction === 'object' && ownerState.direction[breakpoint] != null) {
|
||
acc[breakpoint] = true;
|
||
}
|
||
return acc;
|
||
}, {});
|
||
var directionValues = resolveBreakpointValues({
|
||
values: ownerState.direction,
|
||
base: base
|
||
});
|
||
var spacingValues = resolveBreakpointValues({
|
||
values: ownerState.spacing,
|
||
base: base
|
||
});
|
||
if (typeof directionValues === 'object') {
|
||
Object.keys(directionValues).forEach(function (breakpoint, index, breakpoints) {
|
||
var directionValue = directionValues[breakpoint];
|
||
if (!directionValue) {
|
||
var previousDirectionValue = index > 0 ? directionValues[breakpoints[index - 1]] : 'column';
|
||
directionValues[breakpoint] = previousDirectionValue;
|
||
}
|
||
});
|
||
}
|
||
var styleFromPropValue = function styleFromPropValue(propValue, breakpoint) {
|
||
if (ownerState.useFlexGap) {
|
||
return {
|
||
gap: getValue(transformer, propValue)
|
||
};
|
||
}
|
||
return {
|
||
// The useFlexGap={false} implement relies on each child to give up control of the margin.
|
||
// We need to reset the margin to avoid double spacing.
|
||
'& > :not(style):not(style)': {
|
||
margin: 0
|
||
},
|
||
'& > :not(style) ~ :not(style)': _defineProperty({}, "margin".concat(getSideFromDirection(breakpoint ? directionValues[breakpoint] : ownerState.direction)), getValue(transformer, propValue))
|
||
};
|
||
};
|
||
styles = deepmerge(styles, handleBreakpoints({
|
||
theme: theme
|
||
}, spacingValues, styleFromPropValue));
|
||
}
|
||
styles = mergeBreakpointsInOrder(theme.breakpoints, styles);
|
||
return styles;
|
||
};
|
||
function createStack() {
|
||
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||
var _options$createStyled = options.createStyledComponent,
|
||
createStyledComponent = _options$createStyled === void 0 ? defaultCreateStyledComponent : _options$createStyled,
|
||
_options$useThemeProp = options.useThemeProps,
|
||
useThemeProps = _options$useThemeProp === void 0 ? useThemePropsDefault : _options$useThemeProp,
|
||
_options$componentNam = options.componentName,
|
||
componentName = _options$componentNam === void 0 ? 'MuiStack' : _options$componentNam;
|
||
var useUtilityClasses = function useUtilityClasses() {
|
||
var slots = {
|
||
root: ['root']
|
||
};
|
||
return composeClasses(slots, function (slot) {
|
||
return generateUtilityClass_generateUtilityClass(componentName, slot);
|
||
}, {});
|
||
};
|
||
var StackRoot = createStyledComponent(createStack_style);
|
||
var Stack = /*#__PURE__*/react.forwardRef(function Grid(inProps, ref) {
|
||
var themeProps = useThemeProps(inProps);
|
||
var props = extendSxProp(themeProps); // `color` type conflicts with html color attribute.
|
||
var _props$component = props.component,
|
||
component = _props$component === void 0 ? 'div' : _props$component,
|
||
_props$direction = props.direction,
|
||
direction = _props$direction === void 0 ? 'column' : _props$direction,
|
||
_props$spacing = props.spacing,
|
||
spacing = _props$spacing === void 0 ? 0 : _props$spacing,
|
||
divider = props.divider,
|
||
children = props.children,
|
||
className = props.className,
|
||
_props$useFlexGap = props.useFlexGap,
|
||
useFlexGap = _props$useFlexGap === void 0 ? false : _props$useFlexGap,
|
||
other = _objectWithoutPropertiesLoose(props, createStack_excluded);
|
||
var ownerState = {
|
||
direction: direction,
|
||
spacing: spacing,
|
||
useFlexGap: useFlexGap
|
||
};
|
||
var classes = useUtilityClasses();
|
||
return /*#__PURE__*/(0,jsx_runtime.jsx)(StackRoot, extends_extends({
|
||
as: component,
|
||
ownerState: ownerState,
|
||
ref: ref,
|
||
className: dist_clsx(classes.root, className)
|
||
}, other, {
|
||
children: divider ? joinChildren(children, divider) : children
|
||
}));
|
||
});
|
||
false ? 0 : void 0;
|
||
return Stack;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Stack/Stack.js
|
||
'use client';
|
||
|
||
|
||
|
||
|
||
|
||
var Stack = createStack({
|
||
createStyledComponent: styles_styled('div', {
|
||
name: 'MuiStack',
|
||
slot: 'Root',
|
||
overridesResolver: function overridesResolver(props, styles) {
|
||
return styles.root;
|
||
}
|
||
}),
|
||
useThemeProps: function useThemeProps(inProps) {
|
||
return useThemeProps_useThemeProps({
|
||
props: inProps,
|
||
name: 'MuiStack'
|
||
});
|
||
}
|
||
});
|
||
false ? 0 : void 0;
|
||
/* harmony default export */ var Stack_Stack = (Stack);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+utils@5.14.10_@types+react@18.2.22_react@18.2.0/node_modules/@mui/utils/esm/setRef.js
|
||
/**
|
||
* TODO v5: consider making it private
|
||
*
|
||
* passes {value} to {ref}
|
||
*
|
||
* WARNING: Be sure to only call this inside a callback that is passed as a ref.
|
||
* Otherwise, make sure to cleanup the previous {ref} if it changes. See
|
||
* https://github.com/mui/material-ui/issues/13539
|
||
*
|
||
* Useful if you want to expose the ref of an inner component to the public API
|
||
* while still using it inside the component.
|
||
* @param ref A ref callback or ref object. If anything falsy, this is a no-op.
|
||
*/
|
||
function setRef(ref, value) {
|
||
if (typeof ref === 'function') {
|
||
ref(value);
|
||
} else if (ref) {
|
||
ref.current = value;
|
||
}
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+utils@5.14.10_@types+react@18.2.22_react@18.2.0/node_modules/@mui/utils/esm/useForkRef/useForkRef.js
|
||
'use client';
|
||
|
||
|
||
|
||
function useForkRef() {
|
||
for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {
|
||
refs[_key] = arguments[_key];
|
||
}
|
||
/**
|
||
* This will create a new function if the refs passed to this hook change and are all defined.
|
||
* This means react will call the old forkRef with `null` and the new forkRef
|
||
* with the ref. Cleanup naturally emerges from this behavior.
|
||
*/
|
||
return react.useMemo(function () {
|
||
if (refs.every(function (ref) {
|
||
return ref == null;
|
||
})) {
|
||
return null;
|
||
}
|
||
return function (instance) {
|
||
refs.forEach(function (ref) {
|
||
setRef(ref, instance);
|
||
});
|
||
};
|
||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||
}, refs);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/useForkRef.js
|
||
'use client';
|
||
|
||
|
||
/* harmony default export */ var utils_useForkRef = (useForkRef);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+utils@5.14.10_@types+react@18.2.22_react@18.2.0/node_modules/@mui/utils/esm/useEnhancedEffect/useEnhancedEffect.js
|
||
'use client';
|
||
|
||
|
||
var useEnhancedEffect = typeof window !== 'undefined' ? react.useLayoutEffect : react.useEffect;
|
||
/* harmony default export */ var useEnhancedEffect_useEnhancedEffect = (useEnhancedEffect);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+utils@5.14.10_@types+react@18.2.22_react@18.2.0/node_modules/@mui/utils/esm/useEventCallback/useEventCallback.js
|
||
'use client';
|
||
|
||
|
||
|
||
|
||
/**
|
||
* Inspired by https://github.com/facebook/react/issues/14099#issuecomment-440013892
|
||
* See RFC in https://github.com/reactjs/rfcs/pull/220
|
||
*/
|
||
|
||
function useEventCallback(fn) {
|
||
var ref = react.useRef(fn);
|
||
useEnhancedEffect_useEnhancedEffect(function () {
|
||
ref.current = fn;
|
||
});
|
||
return react.useCallback(function () {
|
||
return (
|
||
// @ts-expect-error hide `this`
|
||
// tslint:disable-next-line:ban-comma-operator
|
||
(0, ref.current).apply(void 0, arguments)
|
||
);
|
||
}, []);
|
||
}
|
||
/* harmony default export */ var useEventCallback_useEventCallback = (useEventCallback);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/useEventCallback.js
|
||
'use client';
|
||
|
||
|
||
/* harmony default export */ var utils_useEventCallback = (useEventCallback_useEventCallback);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+utils@5.14.10_@types+react@18.2.22_react@18.2.0/node_modules/@mui/utils/esm/useIsFocusVisible.js
|
||
'use client';
|
||
|
||
// based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js
|
||
|
||
var hadKeyboardEvent = true;
|
||
var hadFocusVisibleRecently = false;
|
||
var hadFocusVisibleRecentlyTimeout;
|
||
var inputTypesWhitelist = {
|
||
text: true,
|
||
search: true,
|
||
url: true,
|
||
tel: true,
|
||
email: true,
|
||
password: true,
|
||
number: true,
|
||
date: true,
|
||
month: true,
|
||
week: true,
|
||
time: true,
|
||
datetime: true,
|
||
'datetime-local': true
|
||
};
|
||
|
||
/**
|
||
* Computes whether the given element should automatically trigger the
|
||
* `focus-visible` class being added, i.e. whether it should always match
|
||
* `:focus-visible` when focused.
|
||
* @param {Element} node
|
||
* @returns {boolean}
|
||
*/
|
||
function focusTriggersKeyboardModality(node) {
|
||
var type = node.type,
|
||
tagName = node.tagName;
|
||
if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) {
|
||
return true;
|
||
}
|
||
if (tagName === 'TEXTAREA' && !node.readOnly) {
|
||
return true;
|
||
}
|
||
if (node.isContentEditable) {
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
/**
|
||
* Keep track of our keyboard modality state with `hadKeyboardEvent`.
|
||
* If the most recent user interaction was via the keyboard;
|
||
* and the key press did not include a meta, alt/option, or control key;
|
||
* then the modality is keyboard. Otherwise, the modality is not keyboard.
|
||
* @param {KeyboardEvent} event
|
||
*/
|
||
function handleKeyDown(event) {
|
||
if (event.metaKey || event.altKey || event.ctrlKey) {
|
||
return;
|
||
}
|
||
hadKeyboardEvent = true;
|
||
}
|
||
|
||
/**
|
||
* If at any point a user clicks with a pointing device, ensure that we change
|
||
* the modality away from keyboard.
|
||
* This avoids the situation where a user presses a key on an already focused
|
||
* element, and then clicks on a different element, focusing it with a
|
||
* pointing device, while we still think we're in keyboard modality.
|
||
*/
|
||
function handlePointerDown() {
|
||
hadKeyboardEvent = false;
|
||
}
|
||
function handleVisibilityChange() {
|
||
if (this.visibilityState === 'hidden') {
|
||
// If the tab becomes active again, the browser will handle calling focus
|
||
// on the element (Safari actually calls it twice).
|
||
// If this tab change caused a blur on an element with focus-visible,
|
||
// re-apply the class when the user switches back to the tab.
|
||
if (hadFocusVisibleRecently) {
|
||
hadKeyboardEvent = true;
|
||
}
|
||
}
|
||
}
|
||
function prepare(doc) {
|
||
doc.addEventListener('keydown', handleKeyDown, true);
|
||
doc.addEventListener('mousedown', handlePointerDown, true);
|
||
doc.addEventListener('pointerdown', handlePointerDown, true);
|
||
doc.addEventListener('touchstart', handlePointerDown, true);
|
||
doc.addEventListener('visibilitychange', handleVisibilityChange, true);
|
||
}
|
||
function teardown(doc) {
|
||
doc.removeEventListener('keydown', handleKeyDown, true);
|
||
doc.removeEventListener('mousedown', handlePointerDown, true);
|
||
doc.removeEventListener('pointerdown', handlePointerDown, true);
|
||
doc.removeEventListener('touchstart', handlePointerDown, true);
|
||
doc.removeEventListener('visibilitychange', handleVisibilityChange, true);
|
||
}
|
||
function isFocusVisible(event) {
|
||
var target = event.target;
|
||
try {
|
||
return target.matches(':focus-visible');
|
||
} catch (error) {
|
||
// Browsers not implementing :focus-visible will throw a SyntaxError.
|
||
// We use our own heuristic for those browsers.
|
||
// Rethrow might be better if it's not the expected error but do we really
|
||
// want to crash if focus-visible malfunctioned?
|
||
}
|
||
|
||
// No need for validFocusTarget check. The user does that by attaching it to
|
||
// focusable events only.
|
||
return hadKeyboardEvent || focusTriggersKeyboardModality(target);
|
||
}
|
||
function useIsFocusVisible() {
|
||
var ref = react.useCallback(function (node) {
|
||
if (node != null) {
|
||
prepare(node.ownerDocument);
|
||
}
|
||
}, []);
|
||
var isFocusVisibleRef = react.useRef(false);
|
||
|
||
/**
|
||
* Should be called if a blur event is fired
|
||
*/
|
||
function handleBlurVisible() {
|
||
// checking against potential state variable does not suffice if we focus and blur synchronously.
|
||
// React wouldn't have time to trigger a re-render so `focusVisible` would be stale.
|
||
// Ideally we would adjust `isFocusVisible(event)` to look at `relatedTarget` for blur events.
|
||
// This doesn't work in IE11 due to https://github.com/facebook/react/issues/3751
|
||
// TODO: check again if React releases their internal changes to focus event handling (https://github.com/facebook/react/pull/19186).
|
||
if (isFocusVisibleRef.current) {
|
||
// To detect a tab/window switch, we look for a blur event followed
|
||
// rapidly by a visibility change.
|
||
// If we don't see a visibility change within 100ms, it's probably a
|
||
// regular focus change.
|
||
hadFocusVisibleRecently = true;
|
||
window.clearTimeout(hadFocusVisibleRecentlyTimeout);
|
||
hadFocusVisibleRecentlyTimeout = window.setTimeout(function () {
|
||
hadFocusVisibleRecently = false;
|
||
}, 100);
|
||
isFocusVisibleRef.current = false;
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
/**
|
||
* Should be called if a blur event is fired
|
||
*/
|
||
function handleFocusVisible(event) {
|
||
if (isFocusVisible(event)) {
|
||
isFocusVisibleRef.current = true;
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
return {
|
||
isFocusVisibleRef: isFocusVisibleRef,
|
||
onFocus: handleFocusVisible,
|
||
onBlur: handleBlurVisible,
|
||
ref: ref
|
||
};
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/utils/useIsFocusVisible.js
|
||
'use client';
|
||
|
||
|
||
/* harmony default export */ var utils_useIsFocusVisible = (useIsFocusVisible);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js
|
||
|
||
function _inheritsLoose(subClass, superClass) {
|
||
subClass.prototype = Object.create(superClass.prototype);
|
||
subClass.prototype.constructor = subClass;
|
||
_setPrototypeOf(subClass, superClass);
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/react-transition-group@4.4.5_react-dom@18.2.0_react@18.2.0/node_modules/react-transition-group/esm/TransitionGroupContext.js
|
||
|
||
/* harmony default export */ var TransitionGroupContext = (react.createContext(null));
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/react-transition-group@4.4.5_react-dom@18.2.0_react@18.2.0/node_modules/react-transition-group/esm/utils/ChildMapping.js
|
||
|
||
/**
|
||
* Given `this.props.children`, return an object mapping key to child.
|
||
*
|
||
* @param {*} children `this.props.children`
|
||
* @return {object} Mapping of key to child
|
||
*/
|
||
|
||
function getChildMapping(children, mapFn) {
|
||
var mapper = function mapper(child) {
|
||
return mapFn && (0,react.isValidElement)(child) ? mapFn(child) : child;
|
||
};
|
||
var result = Object.create(null);
|
||
if (children) react.Children.map(children, function (c) {
|
||
return c;
|
||
}).forEach(function (child) {
|
||
// run the map function here instead so that the key is the computed one
|
||
result[child.key] = mapper(child);
|
||
});
|
||
return result;
|
||
}
|
||
/**
|
||
* When you're adding or removing children some may be added or removed in the
|
||
* same render pass. We want to show *both* since we want to simultaneously
|
||
* animate elements in and out. This function takes a previous set of keys
|
||
* and a new set of keys and merges them with its best guess of the correct
|
||
* ordering. In the future we may expose some of the utilities in
|
||
* ReactMultiChild to make this easy, but for now React itself does not
|
||
* directly have this concept of the union of prevChildren and nextChildren
|
||
* so we implement it here.
|
||
*
|
||
* @param {object} prev prev children as returned from
|
||
* `ReactTransitionChildMapping.getChildMapping()`.
|
||
* @param {object} next next children as returned from
|
||
* `ReactTransitionChildMapping.getChildMapping()`.
|
||
* @return {object} a key set that contains all keys in `prev` and all keys
|
||
* in `next` in a reasonable order.
|
||
*/
|
||
|
||
function mergeChildMappings(prev, next) {
|
||
prev = prev || {};
|
||
next = next || {};
|
||
function getValueForKey(key) {
|
||
return key in next ? next[key] : prev[key];
|
||
} // For each key of `next`, the list of keys to insert before that key in
|
||
// the combined list
|
||
|
||
var nextKeysPending = Object.create(null);
|
||
var pendingKeys = [];
|
||
for (var prevKey in prev) {
|
||
if (prevKey in next) {
|
||
if (pendingKeys.length) {
|
||
nextKeysPending[prevKey] = pendingKeys;
|
||
pendingKeys = [];
|
||
}
|
||
} else {
|
||
pendingKeys.push(prevKey);
|
||
}
|
||
}
|
||
var i;
|
||
var childMapping = {};
|
||
for (var nextKey in next) {
|
||
if (nextKeysPending[nextKey]) {
|
||
for (i = 0; i < nextKeysPending[nextKey].length; i++) {
|
||
var pendingNextKey = nextKeysPending[nextKey][i];
|
||
childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);
|
||
}
|
||
}
|
||
childMapping[nextKey] = getValueForKey(nextKey);
|
||
} // Finally, add the keys which didn't appear before any key in `next`
|
||
|
||
for (i = 0; i < pendingKeys.length; i++) {
|
||
childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);
|
||
}
|
||
return childMapping;
|
||
}
|
||
function getProp(child, prop, props) {
|
||
return props[prop] != null ? props[prop] : child.props[prop];
|
||
}
|
||
function getInitialChildMapping(props, onExited) {
|
||
return getChildMapping(props.children, function (child) {
|
||
return (0,react.cloneElement)(child, {
|
||
onExited: onExited.bind(null, child),
|
||
in: true,
|
||
appear: getProp(child, 'appear', props),
|
||
enter: getProp(child, 'enter', props),
|
||
exit: getProp(child, 'exit', props)
|
||
});
|
||
});
|
||
}
|
||
function getNextChildMapping(nextProps, prevChildMapping, onExited) {
|
||
var nextChildMapping = getChildMapping(nextProps.children);
|
||
var children = mergeChildMappings(prevChildMapping, nextChildMapping);
|
||
Object.keys(children).forEach(function (key) {
|
||
var child = children[key];
|
||
if (!(0,react.isValidElement)(child)) return;
|
||
var hasPrev = (key in prevChildMapping);
|
||
var hasNext = (key in nextChildMapping);
|
||
var prevChild = prevChildMapping[key];
|
||
var isLeaving = (0,react.isValidElement)(prevChild) && !prevChild.props.in; // item is new (entering)
|
||
|
||
if (hasNext && (!hasPrev || isLeaving)) {
|
||
// console.log('entering', key)
|
||
children[key] = (0,react.cloneElement)(child, {
|
||
onExited: onExited.bind(null, child),
|
||
in: true,
|
||
exit: getProp(child, 'exit', nextProps),
|
||
enter: getProp(child, 'enter', nextProps)
|
||
});
|
||
} else if (!hasNext && hasPrev && !isLeaving) {
|
||
// item is old (exiting)
|
||
// console.log('leaving', key)
|
||
children[key] = (0,react.cloneElement)(child, {
|
||
in: false
|
||
});
|
||
} else if (hasNext && hasPrev && (0,react.isValidElement)(prevChild)) {
|
||
// item hasn't changed transition states
|
||
// copy over the last transition props;
|
||
// console.log('unchanged', key)
|
||
children[key] = (0,react.cloneElement)(child, {
|
||
onExited: onExited.bind(null, child),
|
||
in: prevChild.props.in,
|
||
exit: getProp(child, 'exit', nextProps),
|
||
enter: getProp(child, 'enter', nextProps)
|
||
});
|
||
}
|
||
});
|
||
return children;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/react-transition-group@4.4.5_react-dom@18.2.0_react@18.2.0/node_modules/react-transition-group/esm/TransitionGroup.js
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
var TransitionGroup_values = Object.values || function (obj) {
|
||
return Object.keys(obj).map(function (k) {
|
||
return obj[k];
|
||
});
|
||
};
|
||
var defaultProps = {
|
||
component: 'div',
|
||
childFactory: function childFactory(child) {
|
||
return child;
|
||
}
|
||
};
|
||
/**
|
||
* The `<TransitionGroup>` component manages a set of transition components
|
||
* (`<Transition>` and `<CSSTransition>`) in a list. Like with the transition
|
||
* components, `<TransitionGroup>` is a state machine for managing the mounting
|
||
* and unmounting of components over time.
|
||
*
|
||
* Consider the example below. As items are removed or added to the TodoList the
|
||
* `in` prop is toggled automatically by the `<TransitionGroup>`.
|
||
*
|
||
* Note that `<TransitionGroup>` does not define any animation behavior!
|
||
* Exactly _how_ a list item animates is up to the individual transition
|
||
* component. This means you can mix and match animations across different list
|
||
* items.
|
||
*/
|
||
|
||
var TransitionGroup = /*#__PURE__*/function (_React$Component) {
|
||
_inheritsLoose(TransitionGroup, _React$Component);
|
||
function TransitionGroup(props, context) {
|
||
var _this;
|
||
_this = _React$Component.call(this, props, context) || this;
|
||
var handleExited = _this.handleExited.bind(_assertThisInitialized(_this)); // Initial children should all be entering, dependent on appear
|
||
|
||
_this.state = {
|
||
contextValue: {
|
||
isMounting: true
|
||
},
|
||
handleExited: handleExited,
|
||
firstRender: true
|
||
};
|
||
return _this;
|
||
}
|
||
var _proto = TransitionGroup.prototype;
|
||
_proto.componentDidMount = function componentDidMount() {
|
||
this.mounted = true;
|
||
this.setState({
|
||
contextValue: {
|
||
isMounting: false
|
||
}
|
||
});
|
||
};
|
||
_proto.componentWillUnmount = function componentWillUnmount() {
|
||
this.mounted = false;
|
||
};
|
||
TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {
|
||
var prevChildMapping = _ref.children,
|
||
handleExited = _ref.handleExited,
|
||
firstRender = _ref.firstRender;
|
||
return {
|
||
children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),
|
||
firstRender: false
|
||
};
|
||
} // node is `undefined` when user provided `nodeRef` prop
|
||
;
|
||
|
||
_proto.handleExited = function handleExited(child, node) {
|
||
var currentChildMapping = getChildMapping(this.props.children);
|
||
if (child.key in currentChildMapping) return;
|
||
if (child.props.onExited) {
|
||
child.props.onExited(node);
|
||
}
|
||
if (this.mounted) {
|
||
this.setState(function (state) {
|
||
var children = extends_extends({}, state.children);
|
||
delete children[child.key];
|
||
return {
|
||
children: children
|
||
};
|
||
});
|
||
}
|
||
};
|
||
_proto.render = function render() {
|
||
var _this$props = this.props,
|
||
Component = _this$props.component,
|
||
childFactory = _this$props.childFactory,
|
||
props = _objectWithoutPropertiesLoose(_this$props, ["component", "childFactory"]);
|
||
var contextValue = this.state.contextValue;
|
||
var children = TransitionGroup_values(this.state.children).map(childFactory);
|
||
delete props.appear;
|
||
delete props.enter;
|
||
delete props.exit;
|
||
if (Component === null) {
|
||
return /*#__PURE__*/react.createElement(TransitionGroupContext.Provider, {
|
||
value: contextValue
|
||
}, children);
|
||
}
|
||
return /*#__PURE__*/react.createElement(TransitionGroupContext.Provider, {
|
||
value: contextValue
|
||
}, /*#__PURE__*/react.createElement(Component, props, children));
|
||
};
|
||
return TransitionGroup;
|
||
}(react.Component);
|
||
TransitionGroup.propTypes = false ? 0 : {};
|
||
TransitionGroup.defaultProps = defaultProps;
|
||
/* harmony default export */ var esm_TransitionGroup = (TransitionGroup);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/ButtonBase/Ripple.js
|
||
'use client';
|
||
|
||
|
||
|
||
|
||
|
||
|
||
/**
|
||
* @ignore - internal component.
|
||
*/
|
||
|
||
function Ripple(props) {
|
||
var className = props.className,
|
||
classes = props.classes,
|
||
_props$pulsate = props.pulsate,
|
||
pulsate = _props$pulsate === void 0 ? false : _props$pulsate,
|
||
rippleX = props.rippleX,
|
||
rippleY = props.rippleY,
|
||
rippleSize = props.rippleSize,
|
||
inProp = props.in,
|
||
onExited = props.onExited,
|
||
timeout = props.timeout;
|
||
var _React$useState = react.useState(false),
|
||
_React$useState2 = _slicedToArray(_React$useState, 2),
|
||
leaving = _React$useState2[0],
|
||
setLeaving = _React$useState2[1];
|
||
var rippleClassName = dist_clsx(className, classes.ripple, classes.rippleVisible, pulsate && classes.ripplePulsate);
|
||
var rippleStyles = {
|
||
width: rippleSize,
|
||
height: rippleSize,
|
||
top: -(rippleSize / 2) + rippleY,
|
||
left: -(rippleSize / 2) + rippleX
|
||
};
|
||
var childClassName = dist_clsx(classes.child, leaving && classes.childLeaving, pulsate && classes.childPulsate);
|
||
if (!inProp && !leaving) {
|
||
setLeaving(true);
|
||
}
|
||
react.useEffect(function () {
|
||
if (!inProp && onExited != null) {
|
||
// react-transition-group#onExited
|
||
var timeoutId = setTimeout(onExited, timeout);
|
||
return function () {
|
||
clearTimeout(timeoutId);
|
||
};
|
||
}
|
||
return undefined;
|
||
}, [onExited, inProp, timeout]);
|
||
return /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
||
className: rippleClassName,
|
||
style: rippleStyles,
|
||
children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
||
className: childClassName
|
||
})
|
||
});
|
||
}
|
||
false ? 0 : void 0;
|
||
/* harmony default export */ var ButtonBase_Ripple = (Ripple);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/ButtonBase/touchRippleClasses.js
|
||
|
||
|
||
function getTouchRippleUtilityClass(slot) {
|
||
return generateUtilityClass('MuiTouchRipple', slot);
|
||
}
|
||
var touchRippleClasses = generateUtilityClasses('MuiTouchRipple', ['root', 'ripple', 'rippleVisible', 'ripplePulsate', 'child', 'childLeaving', 'childPulsate']);
|
||
/* harmony default export */ var ButtonBase_touchRippleClasses = (touchRippleClasses);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/ButtonBase/TouchRipple.js
|
||
'use client';
|
||
|
||
|
||
|
||
|
||
var TouchRipple_templateObject, TouchRipple_templateObject2, TouchRipple_templateObject3, TouchRipple_templateObject4;
|
||
|
||
|
||
var TouchRipple_excluded = ["center", "classes", "className"];
|
||
var TouchRipple_ = function _(t) {
|
||
return t;
|
||
},
|
||
TouchRipple_t,
|
||
TouchRipple_t2,
|
||
TouchRipple_t3,
|
||
TouchRipple_t4;
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
var DURATION = 550;
|
||
var DELAY_RIPPLE = 80;
|
||
var enterKeyframe = keyframes(TouchRipple_t || (TouchRipple_t = TouchRipple_(TouchRipple_templateObject || (TouchRipple_templateObject = _taggedTemplateLiteral(["\n 0% {\n transform: scale(0);\n opacity: 0.1;\n }\n\n 100% {\n transform: scale(1);\n opacity: 0.3;\n }\n"])))));
|
||
var exitKeyframe = keyframes(TouchRipple_t2 || (TouchRipple_t2 = TouchRipple_(TouchRipple_templateObject2 || (TouchRipple_templateObject2 = _taggedTemplateLiteral(["\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n"])))));
|
||
var pulsateKeyframe = keyframes(TouchRipple_t3 || (TouchRipple_t3 = TouchRipple_(TouchRipple_templateObject3 || (TouchRipple_templateObject3 = _taggedTemplateLiteral(["\n 0% {\n transform: scale(1);\n }\n\n 50% {\n transform: scale(0.92);\n }\n\n 100% {\n transform: scale(1);\n }\n"])))));
|
||
var TouchRippleRoot = styles_styled('span', {
|
||
name: 'MuiTouchRipple',
|
||
slot: 'Root'
|
||
})({
|
||
overflow: 'hidden',
|
||
pointerEvents: 'none',
|
||
position: 'absolute',
|
||
zIndex: 0,
|
||
top: 0,
|
||
right: 0,
|
||
bottom: 0,
|
||
left: 0,
|
||
borderRadius: 'inherit'
|
||
});
|
||
|
||
// This `styled()` function invokes keyframes. `styled-components` only supports keyframes
|
||
// in string templates. Do not convert these styles in JS object as it will break.
|
||
var TouchRippleRipple = styles_styled(ButtonBase_Ripple, {
|
||
name: 'MuiTouchRipple',
|
||
slot: 'Ripple'
|
||
})(TouchRipple_t4 || (TouchRipple_t4 = TouchRipple_(TouchRipple_templateObject4 || (TouchRipple_templateObject4 = _taggedTemplateLiteral(["\n opacity: 0;\n position: absolute;\n\n &.", " {\n opacity: 0.3;\n transform: scale(1);\n animation-name: ", ";\n animation-duration: ", "ms;\n animation-timing-function: ", ";\n }\n\n &.", " {\n animation-duration: ", "ms;\n }\n\n & .", " {\n opacity: 1;\n display: block;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background-color: currentColor;\n }\n\n & .", " {\n opacity: 0;\n animation-name: ", ";\n animation-duration: ", "ms;\n animation-timing-function: ", ";\n }\n\n & .", " {\n position: absolute;\n /* @noflip */\n left: 0px;\n top: 0;\n animation-name: ", ";\n animation-duration: 2500ms;\n animation-timing-function: ", ";\n animation-iteration-count: infinite;\n animation-delay: 200ms;\n }\n"])), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), ButtonBase_touchRippleClasses.rippleVisible, enterKeyframe, DURATION, function (_ref) {
|
||
var theme = _ref.theme;
|
||
return theme.transitions.easing.easeInOut;
|
||
}, ButtonBase_touchRippleClasses.ripplePulsate, function (_ref2) {
|
||
var theme = _ref2.theme;
|
||
return theme.transitions.duration.shorter;
|
||
}, ButtonBase_touchRippleClasses.child, ButtonBase_touchRippleClasses.childLeaving, exitKeyframe, DURATION, function (_ref3) {
|
||
var theme = _ref3.theme;
|
||
return theme.transitions.easing.easeInOut;
|
||
}, ButtonBase_touchRippleClasses.childPulsate, pulsateKeyframe, function (_ref4) {
|
||
var theme = _ref4.theme;
|
||
return theme.transitions.easing.easeInOut;
|
||
});
|
||
|
||
/**
|
||
* @ignore - internal component.
|
||
*
|
||
* TODO v5: Make private
|
||
*/
|
||
var TouchRipple = /*#__PURE__*/react.forwardRef(function TouchRipple(inProps, ref) {
|
||
var props = useThemeProps_useThemeProps({
|
||
props: inProps,
|
||
name: 'MuiTouchRipple'
|
||
});
|
||
var _props$center = props.center,
|
||
centerProp = _props$center === void 0 ? false : _props$center,
|
||
_props$classes = props.classes,
|
||
classes = _props$classes === void 0 ? {} : _props$classes,
|
||
className = props.className,
|
||
other = _objectWithoutPropertiesLoose(props, TouchRipple_excluded);
|
||
var _React$useState = react.useState([]),
|
||
_React$useState2 = _slicedToArray(_React$useState, 2),
|
||
ripples = _React$useState2[0],
|
||
setRipples = _React$useState2[1];
|
||
var nextKey = react.useRef(0);
|
||
var rippleCallback = react.useRef(null);
|
||
react.useEffect(function () {
|
||
if (rippleCallback.current) {
|
||
rippleCallback.current();
|
||
rippleCallback.current = null;
|
||
}
|
||
}, [ripples]);
|
||
|
||
// Used to filter out mouse emulated events on mobile.
|
||
var ignoringMouseDown = react.useRef(false);
|
||
// We use a timer in order to only show the ripples for touch "click" like events.
|
||
// We don't want to display the ripple for touch scroll events.
|
||
var startTimer = react.useRef(0);
|
||
|
||
// This is the hook called once the previous timeout is ready.
|
||
var startTimerCommit = react.useRef(null);
|
||
var container = react.useRef(null);
|
||
react.useEffect(function () {
|
||
return function () {
|
||
if (startTimer.current) {
|
||
clearTimeout(startTimer.current);
|
||
}
|
||
};
|
||
}, []);
|
||
var startCommit = react.useCallback(function (params) {
|
||
var pulsate = params.pulsate,
|
||
rippleX = params.rippleX,
|
||
rippleY = params.rippleY,
|
||
rippleSize = params.rippleSize,
|
||
cb = params.cb;
|
||
setRipples(function (oldRipples) {
|
||
return [].concat(toConsumableArray_toConsumableArray(oldRipples), [/*#__PURE__*/(0,jsx_runtime.jsx)(TouchRippleRipple, {
|
||
classes: {
|
||
ripple: dist_clsx(classes.ripple, ButtonBase_touchRippleClasses.ripple),
|
||
rippleVisible: dist_clsx(classes.rippleVisible, ButtonBase_touchRippleClasses.rippleVisible),
|
||
ripplePulsate: dist_clsx(classes.ripplePulsate, ButtonBase_touchRippleClasses.ripplePulsate),
|
||
child: dist_clsx(classes.child, ButtonBase_touchRippleClasses.child),
|
||
childLeaving: dist_clsx(classes.childLeaving, ButtonBase_touchRippleClasses.childLeaving),
|
||
childPulsate: dist_clsx(classes.childPulsate, ButtonBase_touchRippleClasses.childPulsate)
|
||
},
|
||
timeout: DURATION,
|
||
pulsate: pulsate,
|
||
rippleX: rippleX,
|
||
rippleY: rippleY,
|
||
rippleSize: rippleSize
|
||
}, nextKey.current)]);
|
||
});
|
||
nextKey.current += 1;
|
||
rippleCallback.current = cb;
|
||
}, [classes]);
|
||
var start = react.useCallback(function () {
|
||
var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||
var cb = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};
|
||
var _options$pulsate = options.pulsate,
|
||
pulsate = _options$pulsate === void 0 ? false : _options$pulsate,
|
||
_options$center = options.center,
|
||
center = _options$center === void 0 ? centerProp || options.pulsate : _options$center,
|
||
_options$fakeElement = options.fakeElement,
|
||
fakeElement = _options$fakeElement === void 0 ? false : _options$fakeElement;
|
||
if ((event == null ? void 0 : event.type) === 'mousedown' && ignoringMouseDown.current) {
|
||
ignoringMouseDown.current = false;
|
||
return;
|
||
}
|
||
if ((event == null ? void 0 : event.type) === 'touchstart') {
|
||
ignoringMouseDown.current = true;
|
||
}
|
||
var element = fakeElement ? null : container.current;
|
||
var rect = element ? element.getBoundingClientRect() : {
|
||
width: 0,
|
||
height: 0,
|
||
left: 0,
|
||
top: 0
|
||
};
|
||
|
||
// Get the size of the ripple
|
||
var rippleX;
|
||
var rippleY;
|
||
var rippleSize;
|
||
if (center || event === undefined || event.clientX === 0 && event.clientY === 0 || !event.clientX && !event.touches) {
|
||
rippleX = Math.round(rect.width / 2);
|
||
rippleY = Math.round(rect.height / 2);
|
||
} else {
|
||
var _ref5 = event.touches && event.touches.length > 0 ? event.touches[0] : event,
|
||
clientX = _ref5.clientX,
|
||
clientY = _ref5.clientY;
|
||
rippleX = Math.round(clientX - rect.left);
|
||
rippleY = Math.round(clientY - rect.top);
|
||
}
|
||
if (center) {
|
||
rippleSize = Math.sqrt((2 * Math.pow(rect.width, 2) + Math.pow(rect.height, 2)) / 3);
|
||
|
||
// For some reason the animation is broken on Mobile Chrome if the size is even.
|
||
if (rippleSize % 2 === 0) {
|
||
rippleSize += 1;
|
||
}
|
||
} else {
|
||
var sizeX = Math.max(Math.abs((element ? element.clientWidth : 0) - rippleX), rippleX) * 2 + 2;
|
||
var sizeY = Math.max(Math.abs((element ? element.clientHeight : 0) - rippleY), rippleY) * 2 + 2;
|
||
rippleSize = Math.sqrt(Math.pow(sizeX, 2) + Math.pow(sizeY, 2));
|
||
}
|
||
|
||
// Touche devices
|
||
if (event != null && event.touches) {
|
||
// check that this isn't another touchstart due to multitouch
|
||
// otherwise we will only clear a single timer when unmounting while two
|
||
// are running
|
||
if (startTimerCommit.current === null) {
|
||
// Prepare the ripple effect.
|
||
startTimerCommit.current = function () {
|
||
startCommit({
|
||
pulsate: pulsate,
|
||
rippleX: rippleX,
|
||
rippleY: rippleY,
|
||
rippleSize: rippleSize,
|
||
cb: cb
|
||
});
|
||
};
|
||
// Delay the execution of the ripple effect.
|
||
startTimer.current = setTimeout(function () {
|
||
if (startTimerCommit.current) {
|
||
startTimerCommit.current();
|
||
startTimerCommit.current = null;
|
||
}
|
||
}, DELAY_RIPPLE); // We have to make a tradeoff with this value.
|
||
}
|
||
} else {
|
||
startCommit({
|
||
pulsate: pulsate,
|
||
rippleX: rippleX,
|
||
rippleY: rippleY,
|
||
rippleSize: rippleSize,
|
||
cb: cb
|
||
});
|
||
}
|
||
}, [centerProp, startCommit]);
|
||
var pulsate = react.useCallback(function () {
|
||
start({}, {
|
||
pulsate: true
|
||
});
|
||
}, [start]);
|
||
var stop = react.useCallback(function (event, cb) {
|
||
clearTimeout(startTimer.current);
|
||
|
||
// The touch interaction occurs too quickly.
|
||
// We still want to show ripple effect.
|
||
if ((event == null ? void 0 : event.type) === 'touchend' && startTimerCommit.current) {
|
||
startTimerCommit.current();
|
||
startTimerCommit.current = null;
|
||
startTimer.current = setTimeout(function () {
|
||
stop(event, cb);
|
||
});
|
||
return;
|
||
}
|
||
startTimerCommit.current = null;
|
||
setRipples(function (oldRipples) {
|
||
if (oldRipples.length > 0) {
|
||
return oldRipples.slice(1);
|
||
}
|
||
return oldRipples;
|
||
});
|
||
rippleCallback.current = cb;
|
||
}, []);
|
||
react.useImperativeHandle(ref, function () {
|
||
return {
|
||
pulsate: pulsate,
|
||
start: start,
|
||
stop: stop
|
||
};
|
||
}, [pulsate, start, stop]);
|
||
return /*#__PURE__*/(0,jsx_runtime.jsx)(TouchRippleRoot, extends_extends({
|
||
className: dist_clsx(ButtonBase_touchRippleClasses.root, classes.root, className),
|
||
ref: container
|
||
}, other, {
|
||
children: /*#__PURE__*/(0,jsx_runtime.jsx)(esm_TransitionGroup, {
|
||
component: null,
|
||
exit: true,
|
||
children: ripples
|
||
})
|
||
}));
|
||
});
|
||
false ? 0 : void 0;
|
||
/* harmony default export */ var ButtonBase_TouchRipple = (TouchRipple);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/ButtonBase/buttonBaseClasses.js
|
||
|
||
|
||
function getButtonBaseUtilityClass(slot) {
|
||
return generateUtilityClass_generateUtilityClass('MuiButtonBase', slot);
|
||
}
|
||
var buttonBaseClasses = generateUtilityClasses('MuiButtonBase', ['root', 'disabled', 'focusVisible']);
|
||
/* harmony default export */ var ButtonBase_buttonBaseClasses = (buttonBaseClasses);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/ButtonBase/ButtonBase.js
|
||
'use client';
|
||
|
||
|
||
|
||
var _styled;
|
||
|
||
|
||
var ButtonBase_excluded = ["action", "centerRipple", "children", "className", "component", "disabled", "disableRipple", "disableTouchRipple", "focusRipple", "focusVisibleClassName", "LinkComponent", "onBlur", "onClick", "onContextMenu", "onDragLeave", "onFocus", "onFocusVisible", "onKeyDown", "onKeyUp", "onMouseDown", "onMouseLeave", "onMouseUp", "onTouchEnd", "onTouchMove", "onTouchStart", "tabIndex", "TouchRippleProps", "touchRippleRef", "type"];
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
var ButtonBase_useUtilityClasses = function useUtilityClasses(ownerState) {
|
||
var disabled = ownerState.disabled,
|
||
focusVisible = ownerState.focusVisible,
|
||
focusVisibleClassName = ownerState.focusVisibleClassName,
|
||
classes = ownerState.classes;
|
||
var slots = {
|
||
root: ['root', disabled && 'disabled', focusVisible && 'focusVisible']
|
||
};
|
||
var composedClasses = composeClasses(slots, getButtonBaseUtilityClass, classes);
|
||
if (focusVisible && focusVisibleClassName) {
|
||
composedClasses.root += " ".concat(focusVisibleClassName);
|
||
}
|
||
return composedClasses;
|
||
};
|
||
var ButtonBaseRoot = styles_styled('button', {
|
||
name: 'MuiButtonBase',
|
||
slot: 'Root',
|
||
overridesResolver: function overridesResolver(props, styles) {
|
||
return styles.root;
|
||
}
|
||
})((_styled = {
|
||
display: 'inline-flex',
|
||
alignItems: 'center',
|
||
justifyContent: 'center',
|
||
position: 'relative',
|
||
boxSizing: 'border-box',
|
||
WebkitTapHighlightColor: 'transparent',
|
||
backgroundColor: 'transparent',
|
||
// Reset default value
|
||
// We disable the focus ring for mouse, touch and keyboard users.
|
||
outline: 0,
|
||
border: 0,
|
||
margin: 0,
|
||
// Remove the margin in Safari
|
||
borderRadius: 0,
|
||
padding: 0,
|
||
// Remove the padding in Firefox
|
||
cursor: 'pointer',
|
||
userSelect: 'none',
|
||
verticalAlign: 'middle',
|
||
MozAppearance: 'none',
|
||
// Reset
|
||
WebkitAppearance: 'none',
|
||
// Reset
|
||
textDecoration: 'none',
|
||
// So we take precedent over the style of a native <a /> element.
|
||
color: 'inherit',
|
||
'&::-moz-focus-inner': {
|
||
borderStyle: 'none' // Remove Firefox dotted outline.
|
||
}
|
||
}, _defineProperty(_styled, "&.".concat(ButtonBase_buttonBaseClasses.disabled), {
|
||
pointerEvents: 'none',
|
||
// Disable link interactions
|
||
cursor: 'default'
|
||
}), _defineProperty(_styled, '@media print', {
|
||
colorAdjust: 'exact'
|
||
}), _styled));
|
||
|
||
/**
|
||
* `ButtonBase` contains as few styles as possible.
|
||
* It aims to be a simple building block for creating a button.
|
||
* It contains a load of style reset and some focus/ripple logic.
|
||
*/
|
||
var ButtonBase = /*#__PURE__*/react.forwardRef(function ButtonBase(inProps, ref) {
|
||
var props = useThemeProps_useThemeProps({
|
||
props: inProps,
|
||
name: 'MuiButtonBase'
|
||
});
|
||
var action = props.action,
|
||
_props$centerRipple = props.centerRipple,
|
||
centerRipple = _props$centerRipple === void 0 ? false : _props$centerRipple,
|
||
children = props.children,
|
||
className = props.className,
|
||
_props$component = props.component,
|
||
component = _props$component === void 0 ? 'button' : _props$component,
|
||
_props$disabled = props.disabled,
|
||
disabled = _props$disabled === void 0 ? false : _props$disabled,
|
||
_props$disableRipple = props.disableRipple,
|
||
disableRipple = _props$disableRipple === void 0 ? false : _props$disableRipple,
|
||
_props$disableTouchRi = props.disableTouchRipple,
|
||
disableTouchRipple = _props$disableTouchRi === void 0 ? false : _props$disableTouchRi,
|
||
_props$focusRipple = props.focusRipple,
|
||
focusRipple = _props$focusRipple === void 0 ? false : _props$focusRipple,
|
||
_props$LinkComponent = props.LinkComponent,
|
||
LinkComponent = _props$LinkComponent === void 0 ? 'a' : _props$LinkComponent,
|
||
onBlur = props.onBlur,
|
||
onClick = props.onClick,
|
||
onContextMenu = props.onContextMenu,
|
||
onDragLeave = props.onDragLeave,
|
||
onFocus = props.onFocus,
|
||
onFocusVisible = props.onFocusVisible,
|
||
onKeyDown = props.onKeyDown,
|
||
onKeyUp = props.onKeyUp,
|
||
onMouseDown = props.onMouseDown,
|
||
onMouseLeave = props.onMouseLeave,
|
||
onMouseUp = props.onMouseUp,
|
||
onTouchEnd = props.onTouchEnd,
|
||
onTouchMove = props.onTouchMove,
|
||
onTouchStart = props.onTouchStart,
|
||
_props$tabIndex = props.tabIndex,
|
||
tabIndex = _props$tabIndex === void 0 ? 0 : _props$tabIndex,
|
||
TouchRippleProps = props.TouchRippleProps,
|
||
touchRippleRef = props.touchRippleRef,
|
||
type = props.type,
|
||
other = _objectWithoutPropertiesLoose(props, ButtonBase_excluded);
|
||
var buttonRef = react.useRef(null);
|
||
var rippleRef = react.useRef(null);
|
||
var handleRippleRef = utils_useForkRef(rippleRef, touchRippleRef);
|
||
var _useIsFocusVisible = utils_useIsFocusVisible(),
|
||
isFocusVisibleRef = _useIsFocusVisible.isFocusVisibleRef,
|
||
handleFocusVisible = _useIsFocusVisible.onFocus,
|
||
handleBlurVisible = _useIsFocusVisible.onBlur,
|
||
focusVisibleRef = _useIsFocusVisible.ref;
|
||
var _React$useState = react.useState(false),
|
||
_React$useState2 = _slicedToArray(_React$useState, 2),
|
||
focusVisible = _React$useState2[0],
|
||
setFocusVisible = _React$useState2[1];
|
||
if (disabled && focusVisible) {
|
||
setFocusVisible(false);
|
||
}
|
||
react.useImperativeHandle(action, function () {
|
||
return {
|
||
focusVisible: function focusVisible() {
|
||
setFocusVisible(true);
|
||
buttonRef.current.focus();
|
||
}
|
||
};
|
||
}, []);
|
||
var _React$useState3 = react.useState(false),
|
||
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
||
mountedState = _React$useState4[0],
|
||
setMountedState = _React$useState4[1];
|
||
react.useEffect(function () {
|
||
setMountedState(true);
|
||
}, []);
|
||
var enableTouchRipple = mountedState && !disableRipple && !disabled;
|
||
react.useEffect(function () {
|
||
if (focusVisible && focusRipple && !disableRipple && mountedState) {
|
||
rippleRef.current.pulsate();
|
||
}
|
||
}, [disableRipple, focusRipple, focusVisible, mountedState]);
|
||
function useRippleHandler(rippleAction, eventCallback) {
|
||
var skipRippleAction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : disableTouchRipple;
|
||
return utils_useEventCallback(function (event) {
|
||
if (eventCallback) {
|
||
eventCallback(event);
|
||
}
|
||
var ignore = skipRippleAction;
|
||
if (!ignore && rippleRef.current) {
|
||
rippleRef.current[rippleAction](event);
|
||
}
|
||
return true;
|
||
});
|
||
}
|
||
var handleMouseDown = useRippleHandler('start', onMouseDown);
|
||
var handleContextMenu = useRippleHandler('stop', onContextMenu);
|
||
var handleDragLeave = useRippleHandler('stop', onDragLeave);
|
||
var handleMouseUp = useRippleHandler('stop', onMouseUp);
|
||
var handleMouseLeave = useRippleHandler('stop', function (event) {
|
||
if (focusVisible) {
|
||
event.preventDefault();
|
||
}
|
||
if (onMouseLeave) {
|
||
onMouseLeave(event);
|
||
}
|
||
});
|
||
var handleTouchStart = useRippleHandler('start', onTouchStart);
|
||
var handleTouchEnd = useRippleHandler('stop', onTouchEnd);
|
||
var handleTouchMove = useRippleHandler('stop', onTouchMove);
|
||
var handleBlur = useRippleHandler('stop', function (event) {
|
||
handleBlurVisible(event);
|
||
if (isFocusVisibleRef.current === false) {
|
||
setFocusVisible(false);
|
||
}
|
||
if (onBlur) {
|
||
onBlur(event);
|
||
}
|
||
}, false);
|
||
var handleFocus = utils_useEventCallback(function (event) {
|
||
// Fix for https://github.com/facebook/react/issues/7769
|
||
if (!buttonRef.current) {
|
||
buttonRef.current = event.currentTarget;
|
||
}
|
||
handleFocusVisible(event);
|
||
if (isFocusVisibleRef.current === true) {
|
||
setFocusVisible(true);
|
||
if (onFocusVisible) {
|
||
onFocusVisible(event);
|
||
}
|
||
}
|
||
if (onFocus) {
|
||
onFocus(event);
|
||
}
|
||
});
|
||
var isNonNativeButton = function isNonNativeButton() {
|
||
var button = buttonRef.current;
|
||
return component && component !== 'button' && !(button.tagName === 'A' && button.href);
|
||
};
|
||
|
||
/**
|
||
* IE11 shim for https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/repeat
|
||
*/
|
||
var keydownRef = react.useRef(false);
|
||
var handleKeyDown = utils_useEventCallback(function (event) {
|
||
// Check if key is already down to avoid repeats being counted as multiple activations
|
||
if (focusRipple && !keydownRef.current && focusVisible && rippleRef.current && event.key === ' ') {
|
||
keydownRef.current = true;
|
||
rippleRef.current.stop(event, function () {
|
||
rippleRef.current.start(event);
|
||
});
|
||
}
|
||
if (event.target === event.currentTarget && isNonNativeButton() && event.key === ' ') {
|
||
event.preventDefault();
|
||
}
|
||
if (onKeyDown) {
|
||
onKeyDown(event);
|
||
}
|
||
|
||
// Keyboard accessibility for non interactive elements
|
||
if (event.target === event.currentTarget && isNonNativeButton() && event.key === 'Enter' && !disabled) {
|
||
event.preventDefault();
|
||
if (onClick) {
|
||
onClick(event);
|
||
}
|
||
}
|
||
});
|
||
var handleKeyUp = utils_useEventCallback(function (event) {
|
||
// calling preventDefault in keyUp on a <button> will not dispatch a click event if Space is pressed
|
||
// https://codesandbox.io/s/button-keyup-preventdefault-dn7f0
|
||
if (focusRipple && event.key === ' ' && rippleRef.current && focusVisible && !event.defaultPrevented) {
|
||
keydownRef.current = false;
|
||
rippleRef.current.stop(event, function () {
|
||
rippleRef.current.pulsate(event);
|
||
});
|
||
}
|
||
if (onKeyUp) {
|
||
onKeyUp(event);
|
||
}
|
||
|
||
// Keyboard accessibility for non interactive elements
|
||
if (onClick && event.target === event.currentTarget && isNonNativeButton() && event.key === ' ' && !event.defaultPrevented) {
|
||
onClick(event);
|
||
}
|
||
});
|
||
var ComponentProp = component;
|
||
if (ComponentProp === 'button' && (other.href || other.to)) {
|
||
ComponentProp = LinkComponent;
|
||
}
|
||
var buttonProps = {};
|
||
if (ComponentProp === 'button') {
|
||
buttonProps.type = type === undefined ? 'button' : type;
|
||
buttonProps.disabled = disabled;
|
||
} else {
|
||
if (!other.href && !other.to) {
|
||
buttonProps.role = 'button';
|
||
}
|
||
if (disabled) {
|
||
buttonProps['aria-disabled'] = disabled;
|
||
}
|
||
}
|
||
var handleRef = utils_useForkRef(ref, focusVisibleRef, buttonRef);
|
||
if (false) {}
|
||
var ownerState = extends_extends({}, props, {
|
||
centerRipple: centerRipple,
|
||
component: component,
|
||
disabled: disabled,
|
||
disableRipple: disableRipple,
|
||
disableTouchRipple: disableTouchRipple,
|
||
focusRipple: focusRipple,
|
||
tabIndex: tabIndex,
|
||
focusVisible: focusVisible
|
||
});
|
||
var classes = ButtonBase_useUtilityClasses(ownerState);
|
||
return /*#__PURE__*/(0,jsx_runtime.jsxs)(ButtonBaseRoot, extends_extends({
|
||
as: ComponentProp,
|
||
className: dist_clsx(classes.root, className),
|
||
ownerState: ownerState,
|
||
onBlur: handleBlur,
|
||
onClick: onClick,
|
||
onContextMenu: handleContextMenu,
|
||
onFocus: handleFocus,
|
||
onKeyDown: handleKeyDown,
|
||
onKeyUp: handleKeyUp,
|
||
onMouseDown: handleMouseDown,
|
||
onMouseLeave: handleMouseLeave,
|
||
onMouseUp: handleMouseUp,
|
||
onDragLeave: handleDragLeave,
|
||
onTouchEnd: handleTouchEnd,
|
||
onTouchMove: handleTouchMove,
|
||
onTouchStart: handleTouchStart,
|
||
ref: handleRef,
|
||
tabIndex: disabled ? -1 : tabIndex,
|
||
type: type
|
||
}, buttonProps, other, {
|
||
children: [children, enableTouchRipple ? /*#__PURE__*/
|
||
/* TouchRipple is only needed client-side, x2 boost on the server. */
|
||
(0,jsx_runtime.jsx)(ButtonBase_TouchRipple, extends_extends({
|
||
ref: handleRippleRef,
|
||
center: centerRipple
|
||
}, TouchRippleProps)) : null]
|
||
}));
|
||
});
|
||
false ? 0 : void 0;
|
||
/* harmony default export */ var ButtonBase_ButtonBase = (ButtonBase);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Button/buttonClasses.js
|
||
|
||
|
||
function getButtonUtilityClass(slot) {
|
||
return generateUtilityClass_generateUtilityClass('MuiButton', slot);
|
||
}
|
||
var buttonClasses = generateUtilityClasses('MuiButton', ['root', 'text', 'textInherit', 'textPrimary', 'textSecondary', 'textSuccess', 'textError', 'textInfo', 'textWarning', 'outlined', 'outlinedInherit', 'outlinedPrimary', 'outlinedSecondary', 'outlinedSuccess', 'outlinedError', 'outlinedInfo', 'outlinedWarning', 'contained', 'containedInherit', 'containedPrimary', 'containedSecondary', 'containedSuccess', 'containedError', 'containedInfo', 'containedWarning', 'disableElevation', 'focusVisible', 'disabled', 'colorInherit', 'textSizeSmall', 'textSizeMedium', 'textSizeLarge', 'outlinedSizeSmall', 'outlinedSizeMedium', 'outlinedSizeLarge', 'containedSizeSmall', 'containedSizeMedium', 'containedSizeLarge', 'sizeMedium', 'sizeSmall', 'sizeLarge', 'fullWidth', 'startIcon', 'endIcon', 'iconSizeSmall', 'iconSizeMedium', 'iconSizeLarge']);
|
||
/* harmony default export */ var Button_buttonClasses = (buttonClasses);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/ButtonGroup/ButtonGroupContext.js
|
||
|
||
/**
|
||
* @ignore - internal component.
|
||
*/
|
||
var ButtonGroupContext = /*#__PURE__*/react.createContext({});
|
||
if (false) {}
|
||
/* harmony default export */ var ButtonGroup_ButtonGroupContext = (ButtonGroupContext);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/ButtonGroup/ButtonGroupButtonContext.js
|
||
|
||
/**
|
||
* @ignore - internal component.
|
||
*/
|
||
var ButtonGroupButtonContext = /*#__PURE__*/react.createContext(undefined);
|
||
if (false) {}
|
||
/* harmony default export */ var ButtonGroup_ButtonGroupButtonContext = (ButtonGroupButtonContext);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Button/Button.js
|
||
'use client';
|
||
|
||
|
||
|
||
|
||
var Button_excluded = ["children", "color", "component", "className", "disabled", "disableElevation", "disableFocusRipple", "endIcon", "focusVisibleClassName", "fullWidth", "size", "startIcon", "type", "variant"];
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
var Button_useUtilityClasses = function useUtilityClasses(ownerState) {
|
||
var color = ownerState.color,
|
||
disableElevation = ownerState.disableElevation,
|
||
fullWidth = ownerState.fullWidth,
|
||
size = ownerState.size,
|
||
variant = ownerState.variant,
|
||
classes = ownerState.classes;
|
||
var slots = {
|
||
root: ['root', variant, "".concat(variant).concat(utils_capitalize(color)), "size".concat(utils_capitalize(size)), "".concat(variant, "Size").concat(utils_capitalize(size)), color === 'inherit' && 'colorInherit', disableElevation && 'disableElevation', fullWidth && 'fullWidth'],
|
||
label: ['label'],
|
||
startIcon: ['startIcon', "iconSize".concat(utils_capitalize(size))],
|
||
endIcon: ['endIcon', "iconSize".concat(utils_capitalize(size))]
|
||
};
|
||
var composedClasses = composeClasses(slots, getButtonUtilityClass, classes);
|
||
return extends_extends({}, classes, composedClasses);
|
||
};
|
||
var commonIconStyles = function commonIconStyles(ownerState) {
|
||
return extends_extends({}, ownerState.size === 'small' && {
|
||
'& > *:nth-of-type(1)': {
|
||
fontSize: 18
|
||
}
|
||
}, ownerState.size === 'medium' && {
|
||
'& > *:nth-of-type(1)': {
|
||
fontSize: 20
|
||
}
|
||
}, ownerState.size === 'large' && {
|
||
'& > *:nth-of-type(1)': {
|
||
fontSize: 22
|
||
}
|
||
});
|
||
};
|
||
var ButtonRoot = styles_styled(ButtonBase_ButtonBase, {
|
||
shouldForwardProp: function shouldForwardProp(prop) {
|
||
return rootShouldForwardProp(prop) || prop === 'classes';
|
||
},
|
||
name: 'MuiButton',
|
||
slot: 'Root',
|
||
overridesResolver: function overridesResolver(props, styles) {
|
||
var ownerState = props.ownerState;
|
||
return [styles.root, styles[ownerState.variant], styles["".concat(ownerState.variant).concat(utils_capitalize(ownerState.color))], styles["size".concat(utils_capitalize(ownerState.size))], styles["".concat(ownerState.variant, "Size").concat(utils_capitalize(ownerState.size))], ownerState.color === 'inherit' && styles.colorInherit, ownerState.disableElevation && styles.disableElevation, ownerState.fullWidth && styles.fullWidth];
|
||
}
|
||
})(function (_ref) {
|
||
var _extends2;
|
||
var theme = _ref.theme,
|
||
ownerState = _ref.ownerState;
|
||
var _theme$palette$getCon, _theme$palette;
|
||
var inheritContainedBackgroundColor = theme.palette.mode === 'light' ? theme.palette.grey[300] : theme.palette.grey[800];
|
||
var inheritContainedHoverBackgroundColor = theme.palette.mode === 'light' ? theme.palette.grey.A100 : theme.palette.grey[700];
|
||
return extends_extends({}, theme.typography.button, (_extends2 = {
|
||
minWidth: 64,
|
||
padding: '6px 16px',
|
||
borderRadius: (theme.vars || theme).shape.borderRadius,
|
||
transition: theme.transitions.create(['background-color', 'box-shadow', 'border-color', 'color'], {
|
||
duration: theme.transitions.duration.short
|
||
}),
|
||
'&:hover': extends_extends({
|
||
textDecoration: 'none',
|
||
backgroundColor: theme.vars ? "rgba(".concat(theme.vars.palette.text.primaryChannel, " / ").concat(theme.vars.palette.action.hoverOpacity, ")") : alpha(theme.palette.text.primary, theme.palette.action.hoverOpacity),
|
||
// Reset on touch devices, it doesn't add specificity
|
||
'@media (hover: none)': {
|
||
backgroundColor: 'transparent'
|
||
}
|
||
}, ownerState.variant === 'text' && ownerState.color !== 'inherit' && {
|
||
backgroundColor: theme.vars ? "rgba(".concat(theme.vars.palette[ownerState.color].mainChannel, " / ").concat(theme.vars.palette.action.hoverOpacity, ")") : alpha(theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),
|
||
// Reset on touch devices, it doesn't add specificity
|
||
'@media (hover: none)': {
|
||
backgroundColor: 'transparent'
|
||
}
|
||
}, ownerState.variant === 'outlined' && ownerState.color !== 'inherit' && {
|
||
border: "1px solid ".concat((theme.vars || theme).palette[ownerState.color].main),
|
||
backgroundColor: theme.vars ? "rgba(".concat(theme.vars.palette[ownerState.color].mainChannel, " / ").concat(theme.vars.palette.action.hoverOpacity, ")") : alpha(theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),
|
||
// Reset on touch devices, it doesn't add specificity
|
||
'@media (hover: none)': {
|
||
backgroundColor: 'transparent'
|
||
}
|
||
}, ownerState.variant === 'contained' && {
|
||
backgroundColor: theme.vars ? theme.vars.palette.Button.inheritContainedHoverBg : inheritContainedHoverBackgroundColor,
|
||
boxShadow: (theme.vars || theme).shadows[4],
|
||
// Reset on touch devices, it doesn't add specificity
|
||
'@media (hover: none)': {
|
||
boxShadow: (theme.vars || theme).shadows[2],
|
||
backgroundColor: (theme.vars || theme).palette.grey[300]
|
||
}
|
||
}, ownerState.variant === 'contained' && ownerState.color !== 'inherit' && {
|
||
backgroundColor: (theme.vars || theme).palette[ownerState.color].dark,
|
||
// Reset on touch devices, it doesn't add specificity
|
||
'@media (hover: none)': {
|
||
backgroundColor: (theme.vars || theme).palette[ownerState.color].main
|
||
}
|
||
}),
|
||
'&:active': extends_extends({}, ownerState.variant === 'contained' && {
|
||
boxShadow: (theme.vars || theme).shadows[8]
|
||
})
|
||
}, _defineProperty(_extends2, "&.".concat(Button_buttonClasses.focusVisible), extends_extends({}, ownerState.variant === 'contained' && {
|
||
boxShadow: (theme.vars || theme).shadows[6]
|
||
})), _defineProperty(_extends2, "&.".concat(Button_buttonClasses.disabled), extends_extends({
|
||
color: (theme.vars || theme).palette.action.disabled
|
||
}, ownerState.variant === 'outlined' && {
|
||
border: "1px solid ".concat((theme.vars || theme).palette.action.disabledBackground)
|
||
}, ownerState.variant === 'contained' && {
|
||
color: (theme.vars || theme).palette.action.disabled,
|
||
boxShadow: (theme.vars || theme).shadows[0],
|
||
backgroundColor: (theme.vars || theme).palette.action.disabledBackground
|
||
})), _extends2), ownerState.variant === 'text' && {
|
||
padding: '6px 8px'
|
||
}, ownerState.variant === 'text' && ownerState.color !== 'inherit' && {
|
||
color: (theme.vars || theme).palette[ownerState.color].main
|
||
}, ownerState.variant === 'outlined' && {
|
||
padding: '5px 15px',
|
||
border: '1px solid currentColor'
|
||
}, ownerState.variant === 'outlined' && ownerState.color !== 'inherit' && {
|
||
color: (theme.vars || theme).palette[ownerState.color].main,
|
||
border: theme.vars ? "1px solid rgba(".concat(theme.vars.palette[ownerState.color].mainChannel, " / 0.5)") : "1px solid ".concat(alpha(theme.palette[ownerState.color].main, 0.5))
|
||
}, ownerState.variant === 'contained' && {
|
||
color: theme.vars ?
|
||
// this is safe because grey does not change between default light/dark mode
|
||
theme.vars.palette.text.primary : (_theme$palette$getCon = (_theme$palette = theme.palette).getContrastText) == null ? void 0 : _theme$palette$getCon.call(_theme$palette, theme.palette.grey[300]),
|
||
backgroundColor: theme.vars ? theme.vars.palette.Button.inheritContainedBg : inheritContainedBackgroundColor,
|
||
boxShadow: (theme.vars || theme).shadows[2]
|
||
}, ownerState.variant === 'contained' && ownerState.color !== 'inherit' && {
|
||
color: (theme.vars || theme).palette[ownerState.color].contrastText,
|
||
backgroundColor: (theme.vars || theme).palette[ownerState.color].main
|
||
}, ownerState.color === 'inherit' && {
|
||
color: 'inherit',
|
||
borderColor: 'currentColor'
|
||
}, ownerState.size === 'small' && ownerState.variant === 'text' && {
|
||
padding: '4px 5px',
|
||
fontSize: theme.typography.pxToRem(13)
|
||
}, ownerState.size === 'large' && ownerState.variant === 'text' && {
|
||
padding: '8px 11px',
|
||
fontSize: theme.typography.pxToRem(15)
|
||
}, ownerState.size === 'small' && ownerState.variant === 'outlined' && {
|
||
padding: '3px 9px',
|
||
fontSize: theme.typography.pxToRem(13)
|
||
}, ownerState.size === 'large' && ownerState.variant === 'outlined' && {
|
||
padding: '7px 21px',
|
||
fontSize: theme.typography.pxToRem(15)
|
||
}, ownerState.size === 'small' && ownerState.variant === 'contained' && {
|
||
padding: '4px 10px',
|
||
fontSize: theme.typography.pxToRem(13)
|
||
}, ownerState.size === 'large' && ownerState.variant === 'contained' && {
|
||
padding: '8px 22px',
|
||
fontSize: theme.typography.pxToRem(15)
|
||
}, ownerState.fullWidth && {
|
||
width: '100%'
|
||
});
|
||
}, function (_ref2) {
|
||
var _ref3;
|
||
var ownerState = _ref2.ownerState;
|
||
return ownerState.disableElevation && (_ref3 = {
|
||
boxShadow: 'none',
|
||
'&:hover': {
|
||
boxShadow: 'none'
|
||
}
|
||
}, _defineProperty(_ref3, "&.".concat(Button_buttonClasses.focusVisible), {
|
||
boxShadow: 'none'
|
||
}), _defineProperty(_ref3, '&:active', {
|
||
boxShadow: 'none'
|
||
}), _defineProperty(_ref3, "&.".concat(Button_buttonClasses.disabled), {
|
||
boxShadow: 'none'
|
||
}), _ref3);
|
||
});
|
||
var ButtonStartIcon = styles_styled('span', {
|
||
name: 'MuiButton',
|
||
slot: 'StartIcon',
|
||
overridesResolver: function overridesResolver(props, styles) {
|
||
var ownerState = props.ownerState;
|
||
return [styles.startIcon, styles["iconSize".concat(utils_capitalize(ownerState.size))]];
|
||
}
|
||
})(function (_ref4) {
|
||
var ownerState = _ref4.ownerState;
|
||
return extends_extends({
|
||
display: 'inherit',
|
||
marginRight: 8,
|
||
marginLeft: -4
|
||
}, ownerState.size === 'small' && {
|
||
marginLeft: -2
|
||
}, commonIconStyles(ownerState));
|
||
});
|
||
var ButtonEndIcon = styles_styled('span', {
|
||
name: 'MuiButton',
|
||
slot: 'EndIcon',
|
||
overridesResolver: function overridesResolver(props, styles) {
|
||
var ownerState = props.ownerState;
|
||
return [styles.endIcon, styles["iconSize".concat(utils_capitalize(ownerState.size))]];
|
||
}
|
||
})(function (_ref5) {
|
||
var ownerState = _ref5.ownerState;
|
||
return extends_extends({
|
||
display: 'inherit',
|
||
marginRight: -4,
|
||
marginLeft: 8
|
||
}, ownerState.size === 'small' && {
|
||
marginRight: -2
|
||
}, commonIconStyles(ownerState));
|
||
});
|
||
var Button = /*#__PURE__*/react.forwardRef(function Button(inProps, ref) {
|
||
// props priority: `inProps` > `contextProps` > `themeDefaultProps`
|
||
var contextProps = react.useContext(ButtonGroup_ButtonGroupContext);
|
||
var buttonGroupButtonContextPositionClassName = react.useContext(ButtonGroup_ButtonGroupButtonContext);
|
||
var resolvedProps = resolveProps(contextProps, inProps);
|
||
var props = useThemeProps_useThemeProps({
|
||
props: resolvedProps,
|
||
name: 'MuiButton'
|
||
});
|
||
var children = props.children,
|
||
_props$color = props.color,
|
||
color = _props$color === void 0 ? 'primary' : _props$color,
|
||
_props$component = props.component,
|
||
component = _props$component === void 0 ? 'button' : _props$component,
|
||
className = props.className,
|
||
_props$disabled = props.disabled,
|
||
disabled = _props$disabled === void 0 ? false : _props$disabled,
|
||
_props$disableElevati = props.disableElevation,
|
||
disableElevation = _props$disableElevati === void 0 ? false : _props$disableElevati,
|
||
_props$disableFocusRi = props.disableFocusRipple,
|
||
disableFocusRipple = _props$disableFocusRi === void 0 ? false : _props$disableFocusRi,
|
||
endIconProp = props.endIcon,
|
||
focusVisibleClassName = props.focusVisibleClassName,
|
||
_props$fullWidth = props.fullWidth,
|
||
fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,
|
||
_props$size = props.size,
|
||
size = _props$size === void 0 ? 'medium' : _props$size,
|
||
startIconProp = props.startIcon,
|
||
type = props.type,
|
||
_props$variant = props.variant,
|
||
variant = _props$variant === void 0 ? 'text' : _props$variant,
|
||
other = _objectWithoutPropertiesLoose(props, Button_excluded);
|
||
var ownerState = extends_extends({}, props, {
|
||
color: color,
|
||
component: component,
|
||
disabled: disabled,
|
||
disableElevation: disableElevation,
|
||
disableFocusRipple: disableFocusRipple,
|
||
fullWidth: fullWidth,
|
||
size: size,
|
||
type: type,
|
||
variant: variant
|
||
});
|
||
var classes = Button_useUtilityClasses(ownerState);
|
||
var startIcon = startIconProp && /*#__PURE__*/(0,jsx_runtime.jsx)(ButtonStartIcon, {
|
||
className: classes.startIcon,
|
||
ownerState: ownerState,
|
||
children: startIconProp
|
||
});
|
||
var endIcon = endIconProp && /*#__PURE__*/(0,jsx_runtime.jsx)(ButtonEndIcon, {
|
||
className: classes.endIcon,
|
||
ownerState: ownerState,
|
||
children: endIconProp
|
||
});
|
||
var positionClassName = buttonGroupButtonContextPositionClassName || '';
|
||
return /*#__PURE__*/(0,jsx_runtime.jsxs)(ButtonRoot, extends_extends({
|
||
ownerState: ownerState,
|
||
className: dist_clsx(contextProps.className, classes.root, className, positionClassName),
|
||
component: component,
|
||
disabled: disabled,
|
||
focusRipple: !disableFocusRipple,
|
||
focusVisibleClassName: dist_clsx(classes.focusVisible, focusVisibleClassName),
|
||
ref: ref,
|
||
type: type
|
||
}, other, {
|
||
classes: classes,
|
||
children: [startIcon, children, endIcon]
|
||
}));
|
||
});
|
||
false ? 0 : void 0;
|
||
/* harmony default export */ var Button_Button = (Button);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Typography/typographyClasses.js
|
||
|
||
|
||
function getTypographyUtilityClass(slot) {
|
||
return generateUtilityClass_generateUtilityClass('MuiTypography', slot);
|
||
}
|
||
var typographyClasses = generateUtilityClasses('MuiTypography', ['root', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'subtitle1', 'subtitle2', 'body1', 'body2', 'inherit', 'button', 'caption', 'overline', 'alignLeft', 'alignRight', 'alignCenter', 'alignJustify', 'noWrap', 'gutterBottom', 'paragraph']);
|
||
/* harmony default export */ var Typography_typographyClasses = ((/* unused pure expression or super */ null && (typographyClasses)));
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Typography/Typography.js
|
||
'use client';
|
||
|
||
|
||
|
||
var Typography_excluded = ["align", "className", "component", "gutterBottom", "noWrap", "paragraph", "variant", "variantMapping"];
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
var Typography_useUtilityClasses = function useUtilityClasses(ownerState) {
|
||
var align = ownerState.align,
|
||
gutterBottom = ownerState.gutterBottom,
|
||
noWrap = ownerState.noWrap,
|
||
paragraph = ownerState.paragraph,
|
||
variant = ownerState.variant,
|
||
classes = ownerState.classes;
|
||
var slots = {
|
||
root: ['root', variant, ownerState.align !== 'inherit' && "align".concat(utils_capitalize(align)), gutterBottom && 'gutterBottom', noWrap && 'noWrap', paragraph && 'paragraph']
|
||
};
|
||
return composeClasses(slots, getTypographyUtilityClass, classes);
|
||
};
|
||
var TypographyRoot = styles_styled('span', {
|
||
name: 'MuiTypography',
|
||
slot: 'Root',
|
||
overridesResolver: function overridesResolver(props, styles) {
|
||
var ownerState = props.ownerState;
|
||
return [styles.root, ownerState.variant && styles[ownerState.variant], ownerState.align !== 'inherit' && styles["align".concat(utils_capitalize(ownerState.align))], ownerState.noWrap && styles.noWrap, ownerState.gutterBottom && styles.gutterBottom, ownerState.paragraph && styles.paragraph];
|
||
}
|
||
})(function (_ref) {
|
||
var theme = _ref.theme,
|
||
ownerState = _ref.ownerState;
|
||
return extends_extends({
|
||
margin: 0
|
||
}, ownerState.variant === 'inherit' && {
|
||
// Some elements, like <button> on Chrome have default font that doesn't inherit, reset this.
|
||
font: 'inherit'
|
||
}, ownerState.variant !== 'inherit' && theme.typography[ownerState.variant], ownerState.align !== 'inherit' && {
|
||
textAlign: ownerState.align
|
||
}, ownerState.noWrap && {
|
||
overflow: 'hidden',
|
||
textOverflow: 'ellipsis',
|
||
whiteSpace: 'nowrap'
|
||
}, ownerState.gutterBottom && {
|
||
marginBottom: '0.35em'
|
||
}, ownerState.paragraph && {
|
||
marginBottom: 16
|
||
});
|
||
});
|
||
var defaultVariantMapping = {
|
||
h1: 'h1',
|
||
h2: 'h2',
|
||
h3: 'h3',
|
||
h4: 'h4',
|
||
h5: 'h5',
|
||
h6: 'h6',
|
||
subtitle1: 'h6',
|
||
subtitle2: 'h6',
|
||
body1: 'p',
|
||
body2: 'p',
|
||
inherit: 'p'
|
||
};
|
||
|
||
// TODO v6: deprecate these color values in v5.x and remove the transformation in v6
|
||
var colorTransformations = {
|
||
primary: 'primary.main',
|
||
textPrimary: 'text.primary',
|
||
secondary: 'secondary.main',
|
||
textSecondary: 'text.secondary',
|
||
error: 'error.main'
|
||
};
|
||
var transformDeprecatedColors = function transformDeprecatedColors(color) {
|
||
return colorTransformations[color] || color;
|
||
};
|
||
var Typography = /*#__PURE__*/react.forwardRef(function Typography(inProps, ref) {
|
||
var themeProps = useThemeProps_useThemeProps({
|
||
props: inProps,
|
||
name: 'MuiTypography'
|
||
});
|
||
var color = transformDeprecatedColors(themeProps.color);
|
||
var props = extendSxProp(extends_extends({}, themeProps, {
|
||
color: color
|
||
}));
|
||
var _props$align = props.align,
|
||
align = _props$align === void 0 ? 'inherit' : _props$align,
|
||
className = props.className,
|
||
component = props.component,
|
||
_props$gutterBottom = props.gutterBottom,
|
||
gutterBottom = _props$gutterBottom === void 0 ? false : _props$gutterBottom,
|
||
_props$noWrap = props.noWrap,
|
||
noWrap = _props$noWrap === void 0 ? false : _props$noWrap,
|
||
_props$paragraph = props.paragraph,
|
||
paragraph = _props$paragraph === void 0 ? false : _props$paragraph,
|
||
_props$variant = props.variant,
|
||
variant = _props$variant === void 0 ? 'body1' : _props$variant,
|
||
_props$variantMapping = props.variantMapping,
|
||
variantMapping = _props$variantMapping === void 0 ? defaultVariantMapping : _props$variantMapping,
|
||
other = _objectWithoutPropertiesLoose(props, Typography_excluded);
|
||
var ownerState = extends_extends({}, props, {
|
||
align: align,
|
||
color: color,
|
||
className: className,
|
||
component: component,
|
||
gutterBottom: gutterBottom,
|
||
noWrap: noWrap,
|
||
paragraph: paragraph,
|
||
variant: variant,
|
||
variantMapping: variantMapping
|
||
});
|
||
var Component = component || (paragraph ? 'p' : variantMapping[variant] || defaultVariantMapping[variant]) || 'span';
|
||
var classes = Typography_useUtilityClasses(ownerState);
|
||
return /*#__PURE__*/(0,jsx_runtime.jsx)(TypographyRoot, extends_extends({
|
||
as: Component,
|
||
ref: ref,
|
||
ownerState: ownerState,
|
||
className: dist_clsx(classes.root, className)
|
||
}, other));
|
||
});
|
||
false ? 0 : void 0;
|
||
/* harmony default export */ var Typography_Typography = (Typography);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Link/linkClasses.js
|
||
|
||
|
||
function getLinkUtilityClass(slot) {
|
||
return generateUtilityClass_generateUtilityClass('MuiLink', slot);
|
||
}
|
||
var linkClasses = generateUtilityClasses('MuiLink', ['root', 'underlineNone', 'underlineHover', 'underlineAlways', 'button', 'focusVisible']);
|
||
/* harmony default export */ var Link_linkClasses = (linkClasses);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Link/getTextDecoration.js
|
||
|
||
var getTextDecoration_colorTransformations = {
|
||
primary: 'primary.main',
|
||
textPrimary: 'text.primary',
|
||
secondary: 'secondary.main',
|
||
textSecondary: 'text.secondary',
|
||
error: 'error.main'
|
||
};
|
||
var getTextDecoration_transformDeprecatedColors = function transformDeprecatedColors(color) {
|
||
return getTextDecoration_colorTransformations[color] || color;
|
||
};
|
||
var getTextDecoration = function getTextDecoration(_ref) {
|
||
var theme = _ref.theme,
|
||
ownerState = _ref.ownerState;
|
||
var transformedColor = getTextDecoration_transformDeprecatedColors(ownerState.color);
|
||
var color = getPath(theme, "palette.".concat(transformedColor), false) || ownerState.color;
|
||
var channelColor = getPath(theme, "palette.".concat(transformedColor, "Channel"));
|
||
if ('vars' in theme && channelColor) {
|
||
return "rgba(".concat(channelColor, " / 0.4)");
|
||
}
|
||
return alpha(color, 0.4);
|
||
};
|
||
/* harmony default export */ var Link_getTextDecoration = (getTextDecoration);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@mui+material@5.14.10_@emotion+react@11.11.1_@emotion+styled@11.11.0_@types+react@18.2.22_react-dom@18.2.0_react@18.2.0/node_modules/@mui/material/Link/Link.js
|
||
'use client';
|
||
|
||
|
||
|
||
|
||
|
||
|
||
var Link_excluded = ["className", "color", "component", "onBlur", "onFocus", "TypographyClasses", "underline", "variant", "sx"];
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
var Link_useUtilityClasses = function useUtilityClasses(ownerState) {
|
||
var classes = ownerState.classes,
|
||
component = ownerState.component,
|
||
focusVisible = ownerState.focusVisible,
|
||
underline = ownerState.underline;
|
||
var slots = {
|
||
root: ['root', "underline".concat(utils_capitalize(underline)), component === 'button' && 'button', focusVisible && 'focusVisible']
|
||
};
|
||
return composeClasses(slots, getLinkUtilityClass, classes);
|
||
};
|
||
var LinkRoot = styles_styled(Typography_Typography, {
|
||
name: 'MuiLink',
|
||
slot: 'Root',
|
||
overridesResolver: function overridesResolver(props, styles) {
|
||
var ownerState = props.ownerState;
|
||
return [styles.root, styles["underline".concat(utils_capitalize(ownerState.underline))], ownerState.component === 'button' && styles.button];
|
||
}
|
||
})(function (_ref) {
|
||
var theme = _ref.theme,
|
||
ownerState = _ref.ownerState;
|
||
return extends_extends({}, ownerState.underline === 'none' && {
|
||
textDecoration: 'none'
|
||
}, ownerState.underline === 'hover' && {
|
||
textDecoration: 'none',
|
||
'&:hover': {
|
||
textDecoration: 'underline'
|
||
}
|
||
}, ownerState.underline === 'always' && extends_extends({
|
||
textDecoration: 'underline'
|
||
}, ownerState.color !== 'inherit' && {
|
||
textDecorationColor: Link_getTextDecoration({
|
||
theme: theme,
|
||
ownerState: ownerState
|
||
})
|
||
}, {
|
||
'&:hover': {
|
||
textDecorationColor: 'inherit'
|
||
}
|
||
}), ownerState.component === 'button' && _defineProperty({
|
||
position: 'relative',
|
||
WebkitTapHighlightColor: 'transparent',
|
||
backgroundColor: 'transparent',
|
||
// Reset default value
|
||
// We disable the focus ring for mouse, touch and keyboard users.
|
||
outline: 0,
|
||
border: 0,
|
||
margin: 0,
|
||
// Remove the margin in Safari
|
||
borderRadius: 0,
|
||
padding: 0,
|
||
// Remove the padding in Firefox
|
||
cursor: 'pointer',
|
||
userSelect: 'none',
|
||
verticalAlign: 'middle',
|
||
MozAppearance: 'none',
|
||
// Reset
|
||
WebkitAppearance: 'none',
|
||
// Reset
|
||
'&::-moz-focus-inner': {
|
||
borderStyle: 'none' // Remove Firefox dotted outline.
|
||
}
|
||
}, "&.".concat(Link_linkClasses.focusVisible), {
|
||
outline: 'auto'
|
||
}));
|
||
});
|
||
var Link = /*#__PURE__*/react.forwardRef(function Link(inProps, ref) {
|
||
var props = useThemeProps_useThemeProps({
|
||
props: inProps,
|
||
name: 'MuiLink'
|
||
});
|
||
var className = props.className,
|
||
_props$color = props.color,
|
||
color = _props$color === void 0 ? 'primary' : _props$color,
|
||
_props$component = props.component,
|
||
component = _props$component === void 0 ? 'a' : _props$component,
|
||
onBlur = props.onBlur,
|
||
onFocus = props.onFocus,
|
||
TypographyClasses = props.TypographyClasses,
|
||
_props$underline = props.underline,
|
||
underline = _props$underline === void 0 ? 'always' : _props$underline,
|
||
_props$variant = props.variant,
|
||
variant = _props$variant === void 0 ? 'inherit' : _props$variant,
|
||
sx = props.sx,
|
||
other = _objectWithoutPropertiesLoose(props, Link_excluded);
|
||
var _useIsFocusVisible = utils_useIsFocusVisible(),
|
||
isFocusVisibleRef = _useIsFocusVisible.isFocusVisibleRef,
|
||
handleBlurVisible = _useIsFocusVisible.onBlur,
|
||
handleFocusVisible = _useIsFocusVisible.onFocus,
|
||
focusVisibleRef = _useIsFocusVisible.ref;
|
||
var _React$useState = react.useState(false),
|
||
_React$useState2 = _slicedToArray(_React$useState, 2),
|
||
focusVisible = _React$useState2[0],
|
||
setFocusVisible = _React$useState2[1];
|
||
var handlerRef = utils_useForkRef(ref, focusVisibleRef);
|
||
var handleBlur = function handleBlur(event) {
|
||
handleBlurVisible(event);
|
||
if (isFocusVisibleRef.current === false) {
|
||
setFocusVisible(false);
|
||
}
|
||
if (onBlur) {
|
||
onBlur(event);
|
||
}
|
||
};
|
||
var handleFocus = function handleFocus(event) {
|
||
handleFocusVisible(event);
|
||
if (isFocusVisibleRef.current === true) {
|
||
setFocusVisible(true);
|
||
}
|
||
if (onFocus) {
|
||
onFocus(event);
|
||
}
|
||
};
|
||
var ownerState = extends_extends({}, props, {
|
||
color: color,
|
||
component: component,
|
||
focusVisible: focusVisible,
|
||
underline: underline,
|
||
variant: variant
|
||
});
|
||
var classes = Link_useUtilityClasses(ownerState);
|
||
return /*#__PURE__*/(0,jsx_runtime.jsx)(LinkRoot, extends_extends({
|
||
color: color,
|
||
className: dist_clsx(classes.root, className),
|
||
classes: TypographyClasses,
|
||
component: component,
|
||
onBlur: handleBlur,
|
||
onFocus: handleFocus,
|
||
ref: handlerRef,
|
||
ownerState: ownerState,
|
||
variant: variant,
|
||
sx: [].concat(toConsumableArray_toConsumableArray(!Object.keys(getTextDecoration_colorTransformations).includes(color) ? [{
|
||
color: color
|
||
}] : []), toConsumableArray_toConsumableArray(Array.isArray(sx) ? sx : [sx]))
|
||
}, other));
|
||
});
|
||
false ? 0 : void 0;
|
||
/* harmony default export */ var Link_Link = (Link);
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js
|
||
|
||
function _regeneratorRuntime() {
|
||
"use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
|
||
_regeneratorRuntime = function _regeneratorRuntime() {
|
||
return e;
|
||
};
|
||
var t,
|
||
e = {},
|
||
r = Object.prototype,
|
||
n = r.hasOwnProperty,
|
||
o = Object.defineProperty || function (t, e, r) {
|
||
t[e] = r.value;
|
||
},
|
||
i = "function" == typeof Symbol ? Symbol : {},
|
||
a = i.iterator || "@@iterator",
|
||
c = i.asyncIterator || "@@asyncIterator",
|
||
u = i.toStringTag || "@@toStringTag";
|
||
function define(t, e, r) {
|
||
return Object.defineProperty(t, e, {
|
||
value: r,
|
||
enumerable: !0,
|
||
configurable: !0,
|
||
writable: !0
|
||
}), t[e];
|
||
}
|
||
try {
|
||
define({}, "");
|
||
} catch (t) {
|
||
define = function define(t, e, r) {
|
||
return t[e] = r;
|
||
};
|
||
}
|
||
function wrap(t, e, r, n) {
|
||
var i = e && e.prototype instanceof Generator ? e : Generator,
|
||
a = Object.create(i.prototype),
|
||
c = new Context(n || []);
|
||
return o(a, "_invoke", {
|
||
value: makeInvokeMethod(t, r, c)
|
||
}), a;
|
||
}
|
||
function tryCatch(t, e, r) {
|
||
try {
|
||
return {
|
||
type: "normal",
|
||
arg: t.call(e, r)
|
||
};
|
||
} catch (t) {
|
||
return {
|
||
type: "throw",
|
||
arg: t
|
||
};
|
||
}
|
||
}
|
||
e.wrap = wrap;
|
||
var h = "suspendedStart",
|
||
l = "suspendedYield",
|
||
f = "executing",
|
||
s = "completed",
|
||
y = {};
|
||
function Generator() {}
|
||
function GeneratorFunction() {}
|
||
function GeneratorFunctionPrototype() {}
|
||
var p = {};
|
||
define(p, a, function () {
|
||
return this;
|
||
});
|
||
var d = Object.getPrototypeOf,
|
||
v = d && d(d(values([])));
|
||
v && v !== r && n.call(v, a) && (p = v);
|
||
var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);
|
||
function defineIteratorMethods(t) {
|
||
["next", "throw", "return"].forEach(function (e) {
|
||
define(t, e, function (t) {
|
||
return this._invoke(e, t);
|
||
});
|
||
});
|
||
}
|
||
function AsyncIterator(t, e) {
|
||
function invoke(r, o, i, a) {
|
||
var c = tryCatch(t[r], t, o);
|
||
if ("throw" !== c.type) {
|
||
var u = c.arg,
|
||
h = u.value;
|
||
return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) {
|
||
invoke("next", t, i, a);
|
||
}, function (t) {
|
||
invoke("throw", t, i, a);
|
||
}) : e.resolve(h).then(function (t) {
|
||
u.value = t, i(u);
|
||
}, function (t) {
|
||
return invoke("throw", t, i, a);
|
||
});
|
||
}
|
||
a(c.arg);
|
||
}
|
||
var r;
|
||
o(this, "_invoke", {
|
||
value: function value(t, n) {
|
||
function callInvokeWithMethodAndArg() {
|
||
return new e(function (e, r) {
|
||
invoke(t, n, e, r);
|
||
});
|
||
}
|
||
return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();
|
||
}
|
||
});
|
||
}
|
||
function makeInvokeMethod(e, r, n) {
|
||
var o = h;
|
||
return function (i, a) {
|
||
if (o === f) throw new Error("Generator is already running");
|
||
if (o === s) {
|
||
if ("throw" === i) throw a;
|
||
return {
|
||
value: t,
|
||
done: !0
|
||
};
|
||
}
|
||
for (n.method = i, n.arg = a;;) {
|
||
var c = n.delegate;
|
||
if (c) {
|
||
var u = maybeInvokeDelegate(c, n);
|
||
if (u) {
|
||
if (u === y) continue;
|
||
return u;
|
||
}
|
||
}
|
||
if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) {
|
||
if (o === h) throw o = s, n.arg;
|
||
n.dispatchException(n.arg);
|
||
} else "return" === n.method && n.abrupt("return", n.arg);
|
||
o = f;
|
||
var p = tryCatch(e, r, n);
|
||
if ("normal" === p.type) {
|
||
if (o = n.done ? s : l, p.arg === y) continue;
|
||
return {
|
||
value: p.arg,
|
||
done: n.done
|
||
};
|
||
}
|
||
"throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg);
|
||
}
|
||
};
|
||
}
|
||
function maybeInvokeDelegate(e, r) {
|
||
var n = r.method,
|
||
o = e.iterator[n];
|
||
if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y;
|
||
var i = tryCatch(o, e.iterator, r.arg);
|
||
if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y;
|
||
var a = i.arg;
|
||
return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y);
|
||
}
|
||
function pushTryEntry(t) {
|
||
var e = {
|
||
tryLoc: t[0]
|
||
};
|
||
1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);
|
||
}
|
||
function resetTryEntry(t) {
|
||
var e = t.completion || {};
|
||
e.type = "normal", delete e.arg, t.completion = e;
|
||
}
|
||
function Context(t) {
|
||
this.tryEntries = [{
|
||
tryLoc: "root"
|
||
}], t.forEach(pushTryEntry, this), this.reset(!0);
|
||
}
|
||
function values(e) {
|
||
if (e || "" === e) {
|
||
var r = e[a];
|
||
if (r) return r.call(e);
|
||
if ("function" == typeof e.next) return e;
|
||
if (!isNaN(e.length)) {
|
||
var o = -1,
|
||
i = function next() {
|
||
for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;
|
||
return next.value = t, next.done = !0, next;
|
||
};
|
||
return i.next = i;
|
||
}
|
||
}
|
||
throw new TypeError(_typeof(e) + " is not iterable");
|
||
}
|
||
return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", {
|
||
value: GeneratorFunctionPrototype,
|
||
configurable: !0
|
||
}), o(GeneratorFunctionPrototype, "constructor", {
|
||
value: GeneratorFunction,
|
||
configurable: !0
|
||
}), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) {
|
||
var e = "function" == typeof t && t.constructor;
|
||
return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name));
|
||
}, e.mark = function (t) {
|
||
return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t;
|
||
}, e.awrap = function (t) {
|
||
return {
|
||
__await: t
|
||
};
|
||
}, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {
|
||
return this;
|
||
}), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {
|
||
void 0 === i && (i = Promise);
|
||
var a = new AsyncIterator(wrap(t, r, n, o), i);
|
||
return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {
|
||
return t.done ? t.value : a.next();
|
||
});
|
||
}, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () {
|
||
return this;
|
||
}), define(g, "toString", function () {
|
||
return "[object Generator]";
|
||
}), e.keys = function (t) {
|
||
var e = Object(t),
|
||
r = [];
|
||
for (var n in e) r.push(n);
|
||
return r.reverse(), function next() {
|
||
for (; r.length;) {
|
||
var t = r.pop();
|
||
if (t in e) return next.value = t, next.done = !1, next;
|
||
}
|
||
return next.done = !0, next;
|
||
};
|
||
}, e.values = values, Context.prototype = {
|
||
constructor: Context,
|
||
reset: function reset(e) {
|
||
if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);
|
||
},
|
||
stop: function stop() {
|
||
this.done = !0;
|
||
var t = this.tryEntries[0].completion;
|
||
if ("throw" === t.type) throw t.arg;
|
||
return this.rval;
|
||
},
|
||
dispatchException: function dispatchException(e) {
|
||
if (this.done) throw e;
|
||
var r = this;
|
||
function handle(n, o) {
|
||
return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o;
|
||
}
|
||
for (var o = this.tryEntries.length - 1; o >= 0; --o) {
|
||
var i = this.tryEntries[o],
|
||
a = i.completion;
|
||
if ("root" === i.tryLoc) return handle("end");
|
||
if (i.tryLoc <= this.prev) {
|
||
var c = n.call(i, "catchLoc"),
|
||
u = n.call(i, "finallyLoc");
|
||
if (c && u) {
|
||
if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
|
||
if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
|
||
} else if (c) {
|
||
if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
|
||
} else {
|
||
if (!u) throw new Error("try statement without catch or finally");
|
||
if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
|
||
}
|
||
}
|
||
}
|
||
},
|
||
abrupt: function abrupt(t, e) {
|
||
for (var r = this.tryEntries.length - 1; r >= 0; --r) {
|
||
var o = this.tryEntries[r];
|
||
if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) {
|
||
var i = o;
|
||
break;
|
||
}
|
||
}
|
||
i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);
|
||
var a = i ? i.completion : {};
|
||
return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a);
|
||
},
|
||
complete: function complete(t, e) {
|
||
if ("throw" === t.type) throw t.arg;
|
||
return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y;
|
||
},
|
||
finish: function finish(t) {
|
||
for (var e = this.tryEntries.length - 1; e >= 0; --e) {
|
||
var r = this.tryEntries[e];
|
||
if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;
|
||
}
|
||
},
|
||
"catch": function _catch(t) {
|
||
for (var e = this.tryEntries.length - 1; e >= 0; --e) {
|
||
var r = this.tryEntries[e];
|
||
if (r.tryLoc === t) {
|
||
var n = r.completion;
|
||
if ("throw" === n.type) {
|
||
var o = n.arg;
|
||
resetTryEntry(r);
|
||
}
|
||
return o;
|
||
}
|
||
}
|
||
throw new Error("illegal catch attempt");
|
||
},
|
||
delegateYield: function delegateYield(e, r, n) {
|
||
return this.delegate = {
|
||
iterator: values(e),
|
||
resultName: r,
|
||
nextLoc: n
|
||
}, "next" === this.method && (this.arg = t), y;
|
||
}
|
||
}, e;
|
||
}
|
||
;// CONCATENATED MODULE: ./node_modules/.pnpm/@babel+runtime@7.22.15/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js
|
||
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
||
try {
|
||
var info = gen[key](arg);
|
||
var value = info.value;
|
||
} catch (error) {
|
||
reject(error);
|
||
return;
|
||
}
|
||
if (info.done) {
|
||
resolve(value);
|
||
} else {
|
||
Promise.resolve(value).then(_next, _throw);
|
||
}
|
||
}
|
||
function _asyncToGenerator(fn) {
|
||
return function () {
|
||
var self = this,
|
||
args = arguments;
|
||
return new Promise(function (resolve, reject) {
|
||
var gen = fn.apply(self, args);
|
||
function _next(value) {
|
||
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
||
}
|
||
function _throw(err) {
|
||
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
||
}
|
||
_next(undefined);
|
||
});
|
||
};
|
||
}
|
||
;// CONCATENATED MODULE: ./src/hooks/Fetch.js
|
||
/**
|
||
* fetch data hook
|
||
* @returns
|
||
*/var useFetch=function useFetch(url){var _useState=(0,react.useState)(null),_useState2=_slicedToArray(_useState,2),data=_useState2[0],setData=_useState2[1];var _useState3=(0,react.useState)(false),_useState4=_slicedToArray(_useState3,2),loading=_useState4[0],setLoading=_useState4[1];var _useState5=(0,react.useState)(null),_useState6=_slicedToArray(_useState5,2),error=_useState6[0],setError=_useState6[1];(0,react.useEffect)(function(){if(!url){return;}_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(){var _res$headers$get,res,_data;return _regeneratorRuntime().wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:setLoading(true);_context.prev=1;_context.next=4;return fetch(url);case 4:res=_context.sent;if(res.ok){_context.next=7;break;}throw new Error("[".concat(res.status,"] ").concat(res.statusText));case 7:if(!((_res$headers$get=res.headers.get("Content-Type"))!==null&&_res$headers$get!==void 0&&_res$headers$get.includes("json"))){_context.next=13;break;}_context.next=10;return res.json();case 10:_data=_context.sent;_context.next=16;break;case 13:_context.next=15;return res.text();case 15:_data=_context.sent;case 16:setData(_data);_context.next=22;break;case 19:_context.prev=19;_context.t0=_context["catch"](1);setError(_context.t0);case 22:_context.prev=22;setLoading(false);return _context.finish(22);case 25:case"end":return _context.stop();}},_callee,null,[[1,19,22,25]]);}))();},[url]);return[data,loading,error];};
|
||
;// CONCATENATED MODULE: ./src/config/rules.js
|
||
var DEFAULT_SELECTOR=":is(li, p, h1, h2, h3, h4, h5, h6, dd, blockquote)";var DEFAULT_KEEP_SELECTOR="code, img, svg";var GLOBAL_KEY="*";var REMAIN_KEY="-";var SHADOW_KEY=">>>";var DEFAULT_RULE={pattern:"",selector:"",keepSelector:"",terms:"",translator:GLOBAL_KEY,fromLang:GLOBAL_KEY,toLang:GLOBAL_KEY,textStyle:GLOBAL_KEY,transOpen:GLOBAL_KEY,bgColor:"",textDiyStyle:""};var DEFAULT_DIY_STYLE="color: #666;\nbackground: linear-gradient(\n 45deg,\n LightGreen 20%,\n LightPink 20% 40%,\n LightSalmon 40% 60%,\n LightSeaGreen 60% 80%,\n LightSkyBlue 80%\n);\n&:hover {\n color: #333;\n};";var DEFAULT_OW_RULE={translator:REMAIN_KEY,fromLang:REMAIN_KEY,toLang:REMAIN_KEY,textStyle:REMAIN_KEY,transOpen:REMAIN_KEY,bgColor:"",textDiyStyle:DEFAULT_DIY_STYLE};var RULES_MAP={"www.google.com/search":["h3, .IsZvec, .VwiC3b"],"news.google.com":["[role=\"link\"], .DY5T1d, .ifw3f, ".concat(DEFAULT_SELECTOR)],"www.foxnews.com":["h1, h2, .title, .sidebar [data-type=\"Title\"], .article-content ".concat(DEFAULT_SELECTOR,"; [data-spotim-module=\"conversation\"]>div >>> [data-spot-im-class=\"message-text\"] p, [data-spot-im-class=\"message-text\"]")],"bearblog.dev, www.theverge.com, www.tampermonkey.net/documentation.php":["".concat(DEFAULT_SELECTOR)],"themessenger.com":[".leading-tight, .leading-tighter, .my-2 p, .font-body p, article ".concat(DEFAULT_SELECTOR)],"www.telegraph.co.uk, go.dev/doc/":["article ".concat(DEFAULT_SELECTOR)],"www.theguardian.com":[".show-underline, .dcr-hup5wm div, .dcr-7vl6y8 div, .dcr-12evv1c, figcaption, article ".concat(DEFAULT_SELECTOR,", [data-cy=\"mostviewed-footer\"] h4")],"www.semafor.com":["".concat(DEFAULT_SELECTOR,", .styles_intro__IYj__, [class*=\"styles_description\"]")],"www.noemamag.com":[".splash__title, .single-card__title, .single-card__type, .single-card__topic, .highlighted-content__title, .single-card__author, article ".concat(DEFAULT_SELECTOR,", .quote__text, .wp-caption-text div")],"restofworld.org":["".concat(DEFAULT_SELECTOR,", .recirc-story__headline, .recirc-story__dek")],"www.axios.com":[".h7, ".concat(DEFAULT_SELECTOR)],"www.newyorker.com":[".summary-item__hed, .summary-item__dek, .summary-collection-grid__dek, .dqtvfu, .rubric__link, .caption, article ".concat(DEFAULT_SELECTOR,", .HEhan ").concat(DEFAULT_SELECTOR,", .ContributorBioBio-fBolsO, .BaseText-ewhhUZ")],"time.com":["h1, h3, .summary, .video-title, #article-body ".concat(DEFAULT_SELECTOR,", .image-wrap-container .credit.body-caption, .media-heading")],"www.dw.com":[".ts-teaser-title a, .news-title a, .title a, .teaser-description a, .hbudab h3, .hbudab p, figcaption ,article ".concat(DEFAULT_SELECTOR)],"www.bbc.com":["h1, h2, .media__link, .media__summary, article ".concat(DEFAULT_SELECTOR,", .ssrcss-y7krbn-Stack, .ssrcss-17zglt8-PromoHeadline, .ssrcss-18cjaf3-Headline, .gs-c-promo-heading__title, .gs-c-promo-summary, .media__content h3, .article__intro, .lx-c-summary-points>li")],"www.chinadaily.com.cn":["h1, .tMain [shape=\"rect\"], .cMain [shape=\"rect\"], .photo_art [shape=\"rect\"], .mai_r [shape=\"rect\"], .lisBox li, #Content ".concat(DEFAULT_SELECTOR)],"www.facebook.com":["[role=\"main\"] [dir=\"auto\"]"],"www.reddit.com":["div:is(.tbIApBd2DM_drfZQJjIum, ._1zPvgKHteTOub9dKkvrOl4,.ULWj94BYSOqoJDetxgcnU),a:is([class^=\"_334yl59\"],[class^=\"_2GrMpxD\"]),h1,h2,h3,h4,h5,h6,p,button"],"www.quora.com":[".qu-wordBreak--break-word"],"edition.cnn.com":[".container__title, .container__headline, .headline__text, .image__caption, [data-type=\"Title\"], .article__content ".concat(DEFAULT_SELECTOR)],"www.reuters.com":["#main-content [data-testid=\"Heading\"], #main-content [data-testid=\"Body\"], .article-body__content__17Yit ".concat(DEFAULT_SELECTOR)],"www.bloomberg.com":["[data-component=\"headline\"], [data-component=\"related-item-headline\"], [data-component=\"title\"], article ".concat(DEFAULT_SELECTOR)],"deno.land, docs.github.com":["main ".concat(DEFAULT_SELECTOR),"code, img, svg"],"doc.rust-lang.org":[".content ".concat(DEFAULT_SELECTOR),"code, img, svg"],"www.indiehackers.com":["h1, h3, .content ".concat(DEFAULT_SELECTOR,", .feed-item__title-link")],"platform.openai.com/docs":[".docs-body ".concat(DEFAULT_SELECTOR),"code, img, svg"],"en.wikipedia.org":["h1, .mw-parser-output ".concat(DEFAULT_SELECTOR),".mwe-math-element"],"stackoverflow.com":["h1, .s-prose p, .comment-body .comment-copy","code, img, svg"],"www.npmjs.com/package, developer.chrome.com/docs, medium.com, developers.cloudflare.com, react.dev, create-react-app.dev, pytorch.org":["article ".concat(DEFAULT_SELECTOR)],"news.ycombinator.com":[".title, .commtext"],"github.com":[".markdown-body ".concat(DEFAULT_SELECTOR,", .repo-description p, .Layout-sidebar .f4, .container-lg .py-4 .f5, .container-lg .my-4 .f5, .Box-row .pr-4, .Box-row article .mt-1, [itemprop=\"description\"], .markdown-title, bdi, .ws-pre-wrap, .status-meta, span.status-meta, .col-10.color-fg-muted, .TimelineItem-body, .pinned-item-list-item-content .color-fg-muted, .markdown-body td, .markdown-body th"),"code, img, svg"],"twitter.com":["[data-testid=\"tweetText\"], [data-testid=\"birdwatch-pivot\"]>div.css-1rynq56","img, a, .r-18u37iz, .css-175oi2r"],"m.youtube.com":[".slim-video-information-title .yt-core-attributed-string, .media-item-headline .yt-core-attributed-string, .comment-text .yt-core-attributed-string, .typography-body-2b .yt-core-attributed-string, #ytp-caption-window-container .ytp-caption-segment"],"www.youtube.com":["h1, #video-title, #content-text, #title, yt-attributed-string>span>span, #ytp-caption-window-container .ytp-caption-segment"],"bard.google.com":[".query-content ".concat(DEFAULT_SELECTOR,", message-content ").concat(DEFAULT_SELECTOR)],"www.bing.com":[".b_algoSlug, .rwrl_padref; .cib-serp-main >>> .ac-textBlock ".concat(DEFAULT_SELECTOR,", .text-message-content div")],"www.phoronix.com":["article ".concat(DEFAULT_SELECTOR)],"wx2.qq.com":[".js_message_plain"],"app.slack.com/client/":[".p-rich_text_section, .c-message_attachment__text, .p-rich_text_list li"],"discord.com/channels/":["li[id^=chat-messages] div[id^=message-content], div[class^=headerText], div[class^=name_], section[aria-label='Search Results'] div[id^=message-content]"],"t.me/s/":[".js-message_text ".concat(DEFAULT_SELECTOR)],"web.telegram.org/k/":[".message, .bot-commands-list-element-description, .reply-markup-button-text"],"web.telegram.org/a/":[".message, .text-content, .bot-commands-list-element-description, .reply-markup-button-text"],"chromereleases.googleblog.com":[".title, .publishdate, p, i, .header-desc, .header-title, .text"],"www.instagram.com/":["h1, article span[dir=auto] > span[dir=auto], ._ab1y"],"www.instagram.com/p/,www.instagram.com/reels/":["h1, div[class='x9f619 xjbqb8w x78zum5 x168nmei x13lgxp2 x5pf9jr xo71vjh x1uhb9sk x1plvlek xryxfnj x1c4vz4f x2lah0s xdt5ytf xqjyukv x1cy8zhl x1oa3qoh x1nhvcw1'] > span[class='x1lliihq x1plvlek xryxfnj x1n2onr6 x193iq5w xeuugli x1fj9vlw x13faqbe x1vvkbs x1s928wv xhkezso x1gmr53x x1cpjm7i x1fgarty x1943h6x x1i0vuye xvs91rp xo1l8bm x5n08af x10wh9bi x1wdrske x8viiok x18hxmgj'], span[class='x193iq5w xeuugli x1fj9vlw x13faqbe x1vvkbs xt0psk2 x1i0vuye xvs91rp xo1l8bm x5n08af x10wh9bi x1wdrske x8viiok x18hxmgj']"],"mail.google.com":["".concat(DEFAULT_SELECTOR,", h2[data-thread-perm-id], span[data-thread-id], div[data-message-id] div[class=''], .messageBody, #views")],"web.whatsapp.com":[".copyable-text > span"],"chat.openai.com":["div[data-message-author-role] > div ".concat(DEFAULT_SELECTOR)],"forum.ru-board.com":[".tit, .dats, span.post, .lgf ".concat(DEFAULT_SELECTOR)],"education.github.com":["".concat(DEFAULT_SELECTOR,", a, summary, span.Button-content")],"blogs.windows.com":["".concat(DEFAULT_SELECTOR,", .c-uhf-nav-link, figcaption")],"developer.apple.com/documentation/":["#main ".concat(DEFAULT_SELECTOR,", #main .abstract .content, #main .abstract.content, #main .link span"),"code, img, svg"],"greasyfork.org":["h2, .script-link, .script-description, #additional-info ".concat(DEFAULT_SELECTOR)],"www.fmkorea.com":["#container ".concat(DEFAULT_SELECTOR)],"forum.arduino.cc":[".top-row>.title, .featured-topic>.title, .link-top-line>.title, .category-description, .topic-excerpt, .fancy-title, .cooked ".concat(DEFAULT_SELECTOR)],"docs.arduino.cc":["[class^=\"tutorial-module--left\"] ".concat(DEFAULT_SELECTOR)],"www.historydefined.net":[".wp-element-caption, ".concat(DEFAULT_SELECTOR)]};var BUILTIN_RULES=Object.entries(RULES_MAP).sort(function(a,b){return a[0].localeCompare(b[0]);}).map(function(_ref){var _ref2=_slicedToArray(_ref,2),pattern=_ref2[0],_ref2$=_slicedToArray(_ref2[1],3),selector=_ref2$[0],_ref2$$=_ref2$[1],keepSelector=_ref2$$===void 0?"":_ref2$$,_ref2$$2=_ref2$[2],terms=_ref2$$2===void 0?"":_ref2$$2;return _objectSpread2(_objectSpread2({},DEFAULT_RULE),{},{pattern:pattern,selector:selector,keepSelector:keepSelector,terms:terms});});
|
||
;// CONCATENATED MODULE: ./src/config/app.js
|
||
var APP_NAME="KISS Translator".trim().split(/\s+/).join("-");var APP_LCNAME=APP_NAME.toLowerCase();
|
||
;// CONCATENATED MODULE: ./src/config/i18n.js
|
||
var UI_LANGS=(/* unused pure expression or super */ null && ([["en","English"],["zh","中文"]]));var customApiLangs="[\"en\", \"English - English\"],\n[\"zh-CN\", \"Simplified Chinese - \u7B80\u4F53\u4E2D\u6587\"],\n[\"zh-TW\", \"Traditional Chinese - \u7E41\u9AD4\u4E2D\u6587\"],\n[\"ar\", \"Arabic - \u0627\u0644\u0639\u0631\u0628\u064A\u0629\"],\n[\"bg\", \"Bulgarian - \u0411\u044A\u043B\u0433\u0430\u0440\u0441\u043A\u0438\"],\n[\"ca\", \"Catalan - Catal\xE0\"],\n[\"hr\", \"Croatian - Hrvatski\"],\n[\"cs\", \"Czech - \u010Ce\u0161tina\"],\n[\"da\", \"Danish - Dansk\"],\n[\"nl\", \"Dutch - Nederlands\"],\n[\"fi\", \"Finnish - Suomi\"],\n[\"fr\", \"French - Fran\xE7ais\"],\n[\"de\", \"German - Deutsch\"],\n[\"el\", \"Greek - \u0395\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC\"],\n[\"hi\", \"Hindi - \u0939\u093F\u0928\u094D\u0926\u0940\"],\n[\"hu\", \"Hungarian - Magyar\"],\n[\"id\", \"Indonesian - Indonesia\"],\n[\"it\", \"Italian - Italiano\"],\n[\"ja\", \"Japanese - \u65E5\u672C\u8A9E\"],\n[\"ko\", \"Korean - \uD55C\uAD6D\uC5B4\"],\n[\"ms\", \"Malay - Melayu\"],\n[\"mt\", \"Maltese - Malti\"],\n[\"nb\", \"Norwegian - Norsk Bokm\xE5l\"],\n[\"pl\", \"Polish - Polski\"],\n[\"pt\", \"Portuguese - Portugu\xEAs\"],\n[\"ro\", \"Romanian - Rom\xE2n\u0103\"],\n[\"ru\", \"Russian - \u0420\u0443\u0441\u0441\u043A\u0438\u0439\"],\n[\"sk\", \"Slovak - Sloven\u010Dina\"],\n[\"sl\", \"Slovenian - Sloven\u0161\u010Dina\"],\n[\"es\", \"Spanish - Espa\xF1ol\"],\n[\"sv\", \"Swedish - Svenska\"],\n[\"ta\", \"Tamil - \u0BA4\u0BAE\u0BBF\u0BB4\u0BCD\"],\n[\"te\", \"Telugu - \u0C24\u0C46\u0C32\u0C41\u0C17\u0C41\"],\n[\"th\", \"Thai - \u0E44\u0E17\u0E22\"],\n[\"tr\", \"Turkish - T\xFCrk\xE7e\"],\n[\"uk\", \"Ukrainian - \u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430\"],\n[\"vi\", \"Vietnamese - Ti\u1EBFng Vi\u1EC7t\"],\n";var customApiHelpZH="/// \u81EA\u5B9A\u4E49\u7FFB\u8BD1\u6E90\u63A5\u53E3\u8BF4\u660E\n\n// \u8BF7\u6C42\uFF08Request\uFF09\u6570\u636E\u5C06\u6309\u4E0B\u9762\u89C4\u8303\u53D1\u9001\n{\n url: {{YOUR_URL}},\n method: \"POST\",\n headers: {\n \"Content-type\": \"application/json\",\n \"Authorization\": \"Bearer {{YOUR_KEY}}\",\n },\n body: {\n text: \"\", // \u9700\u8981\u7FFB\u8BD1\u7684\u6587\u5B57\n from: \"\", // \u6E90\u8BED\u8A00\uFF0C\u53EF\u80FD\u4E3A\u7A7A\uFF0C\u8868\u793A\u9700\u8981\u63A5\u53E3\u81EA\u52A8\u8BC6\u522B\u8BED\u8A00\n to: \"\", // \u76EE\u6807\u8BED\u8A00\n }\n}\n\n// \u8FD4\u56DE\uFF08Response\uFF09\u6570\u636E\u9700\u7B26\u5408\u4E0B\u9762\u7684JSON\u89C4\u8303\n{\n text: \"\", // \u7FFB\u8BD1\u540E\u7684\u6587\u5B57\n from: \"\", // \u8BC6\u522B\u7684\u6E90\u8BED\u8A00\n to: \"\", // \u76EE\u6807\u8BED\u8A00\uFF08\u53EF\u9009\uFF09\n}\n\n// \u652F\u6301\u7684\u8BED\u8A00\u4EE3\u7801\u5982\u4E0B\n".concat(customApiLangs,"\n");var customApiHelpEN="/// Custom translation source interface description\n\n// Request data will be sent according to the following specifications\n{\n url: {{YOUR_URL}},\n method: \"POST\",\n headers: {\n \"Content-type\": \"application/json\",\n \"Authorization\": \"Bearer {{YOUR_KEY}}\",\n },\n body: {\n text: \"\", // text to be translated\n from: \"\", // Source language, may be empty\n to: \"\", // Target language\n }\n}\n\n// The returned data must conform to the following JSON specification\n{\n text: \"\", // translated text\n from: \"\", // Recognized source language\n to: \"\", // Target language (optional)\n}\n\n// The supported language codes are as follows\n".concat(customApiLangs,"\n");var I18N={app_name:{zh:"\u7B80\u7EA6\u7FFB\u8BD1",en:"KISS Translator"},translate:{zh:"\u7FFB\u8BD1",en:"Translate"},custom_api_help:{zh:customApiHelpZH,en:customApiHelpEN},translate_alt:{zh:"\u7FFB\u8BD1",en:"Translate"},basic_setting:{zh:"\u57FA\u672C\u8BBE\u7F6E",en:"Basic Setting"},rules_setting:{zh:"\u89C4\u5219\u8BBE\u7F6E",en:"Rules Setting"},apis_setting:{zh:"\u63A5\u53E3\u8BBE\u7F6E",en:"Apis Setting"},sync_setting:{zh:"\u540C\u6B65\u8BBE\u7F6E",en:"Sync Setting"},patch_setting:{zh:"\u8865\u4E01\u8BBE\u7F6E",en:"Patch Setting"},patch_setting_help:{zh:"\u9488\u5BF9\u4E00\u4E9B\u7279\u6B8A\u7F51\u7AD9\u7684\u4FEE\u6B63\u811A\u672C\uFF0C\u4EE5\u4FBF\u7FFB\u8BD1\u8F6F\u4EF6\u5F97\u5230\u66F4\u597D\u7684\u5C55\u793A\u6548\u679C\u3002",en:"Corrected scripts for some special websites so that the translation software can get better display results."},inject_webfix:{zh:"\u6CE8\u5165\u4FEE\u590D\u8865\u4E01",en:"Inject Webfix"},about:{zh:"\u5173\u4E8E",en:"About"},about_md:{zh:"README.md",en:"README.en.md"},about_md_local:{zh:"\u8BF7 [\u70B9\u51FB\u8FD9\u91CC](".concat("https://github.com/fishjar/kiss-translator",") \u67E5\u770B\u8BE6\u60C5\u3002"),en:"Please [click here](".concat("https://github.com/fishjar/kiss-translator",") for details.")},ui_lang:{zh:"\u754C\u9762\u8BED\u8A00",en:"Interface Language"},fetch_limit:{zh:"\u6700\u5927\u8BF7\u6C42\u6570\u91CF (1-100)",en:"Maximum Number Of Request (1-100)"},fetch_interval:{zh:"\u8BF7\u6C42\u95F4\u9694\u65F6\u95F4 (0-5000ms)",en:"Request Interval (0-5000ms)"},min_translate_length:{zh:"\u6700\u5C0F\u7FFB\u8BD1\u957F\u5EA6 (1-100)",en:"Min Translate Length (1-100)"},max_translate_length:{zh:"\u6700\u5927\u7FFB\u8BD1\u957F\u5EA6 (100-10000)",en:"Max Translate Length (100-10000)"},num_of_newline_characters:{zh:"\u6362\u884C\u5B57\u7B26\u6570 (1-1000)",en:"Number of Newline Characters (1-1000)"},translate_service:{zh:"\u7FFB\u8BD1\u670D\u52A1",en:"Translate Service"},translate_timing:{zh:"\u7FFB\u8BD1\u65F6\u673A",en:"Translate Timing"},mk_disable:{zh:"\u6EDA\u52A8\u52A0\u8F7D\uFF08\u5EFA\u8BAE\uFF09",en:"Rolling Loading (Suggested)"},mk_pageopen:{zh:"\u9875\u9762\u6253\u5F00",en:"Page Open"},mk_mouseover:{zh:"\u9F20\u6807\u60AC\u505C",en:"Mouseover"},mk_ctrlKey:{zh:"Control + \u9F20\u6807\u60AC\u505C",en:"Control + Mouseover"},mk_shiftKey:{zh:"Shift + \u9F20\u6807\u60AC\u505C",en:"Shift + Mouseover"},mk_altKey:{zh:"Alt + \u9F20\u6807\u60AC\u505C",en:"Alt + Mouseover"},from_lang:{zh:"\u539F\u6587\u8BED\u8A00",en:"Source Language"},to_lang:{zh:"\u76EE\u6807\u8BED\u8A00",en:"Target Language"},to_lang2:{zh:"\u7B2C\u4E8C\u76EE\u6807\u8BED\u8A00",en:"Target Language 2"},to_lang2_helper:{zh:"\u8BBE\u5B9A\u540E\uFF0C\u4E0E\u76EE\u6807\u8BED\u8A00\u4EA7\u751F\u4E92\u8BD1\u6548\u679C\uFF0C\u4F46\u4F9D\u8D56\u8FDC\u7A0B\u8BED\u8A00\u8BC6\u522B\u3002",en:"After setting, it will produce mutual translation effect with the target language, but it relies on remote language recognition."},text_style:{zh:"\u6587\u5B57\u6837\u5F0F",en:"Text Style"},text_style_alt:{zh:"\u6587\u5B57\u6837\u5F0F",en:"Text Style"},bg_color:{zh:"\u6837\u5F0F\u989C\u8272",en:"Style Color"},remain_unchanged:{zh:"\u4FDD\u7559\u4E0D\u53D8",en:"Remain Unchanged"},google_api:{zh:"\u8C37\u6B4C\u7FFB\u8BD1\u63A5\u53E3",en:"Google Translate API"},default_selector:{zh:"\u9ED8\u8BA4\u9009\u62E9\u5668",en:"Default selector"},selector_rules:{zh:"\u9009\u62E9\u5668\u89C4\u5219",en:"Selector Rules"},save:{zh:"\u4FDD\u5B58",en:"Save"},edit:{zh:"\u7F16\u8F91",en:"Edit"},cancel:{zh:"\u53D6\u6D88",en:"Cancel"},delete:{zh:"\u5220\u9664",en:"Delete"},reset:{zh:"\u91CD\u7F6E",en:"Reset"},add:{zh:"\u6DFB\u52A0",en:"Add"},inject_rules:{zh:"\u6CE8\u5165\u8BA2\u9605\u89C4\u5219",en:"Inject Subscribe Rules"},personal_rules:{zh:"\u4E2A\u4EBA\u89C4\u5219",en:"Rules"},subscribe_rules:{zh:"\u8BA2\u9605\u89C4\u5219",en:"Subscribe"},overwrite_subscribe_rules:{zh:"\u8986\u5199\u8BA2\u9605\u89C4\u5219",en:"Overwrite"},subscribe_url:{zh:"\u8BA2\u9605\u5730\u5740",en:"Subscribe URL"},rules_warn_1:{zh:"1\u3001\u201C\u4E2A\u4EBA\u89C4\u5219\u201D\u4E00\u76F4\u751F\u6548\uFF0C\u9009\u62E9\u201C\u6CE8\u5165\u8BA2\u9605\u89C4\u5219\u201D\u540E\uFF0C\u201C\u8BA2\u9605\u89C4\u5219\u201D\u624D\u4F1A\u751F\u6548\u3002",en:"1. The \"Personal Rules\" are always in effect. After selecting \"Inject Subscription Rules\", the \"Subscription Rules\" will take effect."},rules_warn_2:{zh:"2\u3001\u201C\u8BA2\u9605\u89C4\u5219\u201D\u7684\u6CE8\u5165\u4F4D\u7F6E\u662F\u5012\u6570\u7B2C\u4E8C\u7684\u4F4D\u7F6E\uFF0C\u56E0\u6B64\u9664\u5168\u5C40\u89C4\u5219(*)\u5916\uFF0C\u201C\u4E2A\u4EBA\u89C4\u5219\u201D\u4F18\u5148\u7EA7\u6BD4\u201C\u8BA2\u9605\u89C4\u5219\u201D\u9AD8\uFF0C\u201C\u4E2A\u4EBA\u89C4\u5219\u201D\u586B\u5199\u540C\u6837\u7684\u7F51\u5740\u4F1A\u8986\u76D6\u201D\u8BA2\u9605\u89C4\u5219\u201C\u7684\u6761\u76EE\u3002",en:"2. The injection position of \"Subscription Rules\" is the penultimate position. Therefore, except for the global rules (*), the priority of \"Personal Rules\" is higher than that of \"Subscription Rules\". Filling in the same url in \"Personal Rules\" will overwrite \"Subscription Rules\" entry."},sync_warn:{zh:"\u5982\u679C\u670D\u52A1\u5668\u5B58\u5728\u5176\u4ED6\u5BA2\u6237\u7AEF\u540C\u6B65\u7684\u6570\u636E\uFF0C\u7B2C\u4E00\u6B21\u540C\u6B65\u5C06\u76F4\u63A5\u8986\u76D6\u672C\u5730\u914D\u7F6E\uFF0C\u540E\u9762\u5219\u6839\u636E\u4FEE\u6539\u65F6\u95F4\uFF0C\u65B0\u7684\u8986\u76D6\u65E7\u7684\u3002",en:"If the server has data synchronized by other clients, the first synchronization will directly overwrite the local configuration, and later, according to the modification time, the new one will overwrite the old one."},about_sync_api:{zh:"\u67E5\u770B\u5173\u4E8E\u6570\u636E\u540C\u6B65\u63A5\u53E3\u90E8\u7F72",en:"View About Data Synchronization Interface Deployment"},about_api_proxy:{zh:"\u67E5\u770B\u81EA\u5EFA\u4E00\u4E2A\u7FFB\u8BD1\u63A5\u53E3\u4EE3\u7406",en:"Check out the self-built translation interface proxy"},style_none:{zh:"\u65E0",en:"None"},under_line:{zh:"\u4E0B\u5212\u76F4\u7EBF",en:"Underline"},dot_line:{zh:"\u4E0B\u5212\u70B9\u72B6\u7EBF",en:"Dotted Underline"},dash_line:{zh:"\u4E0B\u5212\u865A\u7EBF",en:"Dashed Underline"},wavy_line:{zh:"\u4E0B\u5212\u6CE2\u6D6A\u7EBF",en:"Wavy Underline"},fuzzy:{zh:"\u6A21\u7CCA",en:"Fuzzy"},highlight:{zh:"\u9AD8\u4EAE",en:"Highlight"},blockquote:{zh:"\u5F15\u7528",en:"Blockquote"},diy_style:{zh:"\u81EA\u5B9A\u4E49\u6837\u5F0F",en:"Custom Style"},diy_style_helper:{zh:"\u9075\u5FAA\u201CCSS\u201D\u7684\u8BED\u6CD5",en:"Follow the syntax of \"CSS\""},setting:{zh:"\u8BBE\u7F6E",en:"Setting"},pattern:{zh:"\u5339\u914D\u7F51\u5740",en:"URL pattern"},pattern_helper:{zh:"1\u3001\u652F\u6301\u661F\u53F7(*)\u901A\u914D\u7B26\u30022\u3001\u591A\u4E2AURL\u7528\u6362\u884C\u6216\u82F1\u6587\u9017\u53F7\u201C,\u201D\u5206\u9694\u3002",en:"1. Supports the asterisk (*) wildcard character. 2. Separate multiple URLs with newlines or English commas \",\"."},selector_helper:{zh:"1\u3001\u9075\u5FAACSS\u9009\u62E9\u5668\u8BED\u6CD5\u30022\u3001\u7559\u7A7A\u8868\u793A\u91C7\u7528\u5168\u5C40\u8BBE\u7F6E\u30023\u3001\u591A\u4E2ACSS\u9009\u62E9\u5668\u4E4B\u95F4\u7528\u201C;\u201D\u9694\u5F00\u30024\u3001\u201Cshadow root\u201D\u9009\u62E9\u5668\u548C\u5185\u90E8\u9009\u62E9\u5668\u7528\u201C>>>\u201D\u9694\u5F00\u3002",en:"1. Follow CSS selector syntax. 2. Leave blank to adopt the global setting. 3. Separate multiple CSS selectors with \";\". 4. The \"shadow root\" selector and the internal selector are separated by \">>>\"."},translate_switch:{zh:"\u542F\u505C\u7FFB\u8BD1",en:"Translate Switch"},default_enabled:{zh:"\u9ED8\u8BA4\u5F00\u542F",en:"Enabled"},default_disabled:{zh:"\u9ED8\u8BA4\u5173\u95ED",en:"Disabled"},selector:{zh:"\u9009\u62E9\u5668",en:"Selector"},keep_selector:{zh:"\u4FDD\u7559\u5143\u7D20\u9009\u62E9\u5668",en:"Keep unchanged selector"},keep_selector_helper:{zh:"1\u3001\u9075\u5FAACSS\u9009\u62E9\u5668\u8BED\u6CD5\u30022\u3001\u7559\u7A7A\u8868\u793A\u91C7\u7528\u5168\u5C40\u8BBE\u7F6E\u30023\u3001\u5B50\u5143\u7D20\u9009\u62E9\u5668\u7528\u201C>>>\u201D\u9694\u5F00\u3002",en:"1. Follow CSS selector syntax. 2. Leave blank to adopt the global setting. 3.Sub-element selectors are separated by \">>>\"."},terms:{zh:"\u4E13\u4E1A\u672F\u8BED",en:"Terms"},terms_helper:{zh:"0\u3001\u652F\u6301\u6B63\u5219\u8868\u8FBE\u5F0F\u5339\u914D\u30021\u3001\u591A\u6761\u672F\u8BED\u7528\u6362\u884C\u6216\u5206\u53F7\u201C;\u201D\u9694\u5F00\u30022\u3001\u672F\u8BED\u548C\u8BD1\u6587\u7528\u82F1\u6587\u9017\u53F7\u201C,\u201D\u9694\u5F00\u30023\u3001\u6CA1\u6709\u8BD1\u6587\u89C6\u4E3A\u4E0D\u7FFB\u8BD1\u672F\u8BED\u30024\u3001\u7559\u7A7A\u8868\u793A\u91C7\u7528\u5168\u5C40\u8BBE\u7F6E\u3002",en:"0. Supports regular expression matching. 1. Separate multiple terms with newlines or semicolons \";\". 2. Terms and translations are separated by English commas \",\". 3. If there is no translation, the term will be deemed not to be translated. 4. Leave blank to adopt the global setting."},root_selector:{zh:"\u6839\u9009\u62E9\u5668",en:"Root Selector"},fixer_function:{zh:"\u4FEE\u590D\u51FD\u6570",en:"Fixer Function"},import:{zh:"\u5BFC\u5165",en:"Import"},export:{zh:"\u5BFC\u51FA",en:"Export"},error_cant_be_blank:{zh:"\u4E0D\u80FD\u4E3A\u7A7A",en:"Can not be blank"},error_duplicate_values:{zh:"\u5B58\u5728\u91CD\u590D\u7684\u503C",en:"There are duplicate values"},error_wrong_file_type:{zh:"\u9519\u8BEF\u7684\u6587\u4EF6\u7C7B\u578B",en:"Wrong file type"},error_fetch_url:{zh:"\u8BF7\u68C0\u67E5url\u5730\u5740\u662F\u5426\u6B63\u786E\u6216\u7A0D\u540E\u518D\u8BD5\u3002",en:"Please check if the url address is correct or try again later."},deepl_api:{zh:"DeepL \u63A5\u53E3",en:"DeepL API"},deepl_key:{zh:"DeepL \u5BC6\u94A5",en:"DeepL Key"},openai_api:{zh:"OpenAI \u63A5\u53E3",en:"OpenAI API"},openai_key:{zh:"OpenAI \u5BC6\u94A5",en:"OpenAI Key"},openai_model:{zh:"OpenAI \u6A21\u578B",en:"OpenAI Model"},openai_prompt:{zh:"OpenAI \u63D0\u793A\u8BCD",en:"OpenAI Prompt"},if_clear_cache:{zh:"\u662F\u5426\u6E05\u9664\u7F13\u5B58",en:"Whether clear cache"},clear_cache_never:{zh:"\u4E0D\u6E05\u9664\u7F13\u5B58",en:"Never clear cache"},clear_cache_restart:{zh:"\u91CD\u542F\u6D4F\u89C8\u5668\u65F6\u6E05\u9664\u7F13\u5B58",en:"Clear cache when restarting browser"},data_sync_type:{zh:"\u6570\u636E\u540C\u6B65\u65B9\u5F0F",en:"Data Sync Type"},data_sync_url:{zh:"\u6570\u636E\u540C\u6B65\u63A5\u53E3",en:"Data Sync API"},data_sync_user:{zh:"\u6570\u636E\u540C\u6B65\u8D26\u6237",en:"Data Sync User"},data_sync_key:{zh:"\u6570\u636E\u540C\u6B65\u5BC6\u94A5",en:"Data Sync Key"},sync_now:{zh:"\u7ACB\u5373\u540C\u6B65",en:"Sync Now"},sync_success:{zh:"\u540C\u6B65\u6210\u529F\uFF01",en:"Sync Success"},sync_failed:{zh:"\u540C\u6B65\u5931\u8D25\uFF01",en:"Sync Error"},error_got_some_wrong:{zh:"\u62B1\u6B49\uFF0C\u51FA\u9519\u4E86\uFF01",en:"Sorry, something went wrong!"},error_sync_setting:{zh:"\u60A8\u7684\u540C\u6B65\u7C7B\u578B\u5FC5\u987B\u4E3A\u201CKISS-Worker\u201D\uFF0C\u4E14\u9700\u586B\u5199\u5B8C\u6574",en:"Your sync type must be \"KISS-Worker\" and must be filled in completely"},click_test:{zh:"\u70B9\u51FB\u6D4B\u8BD5",en:"Click Test"},test_success:{zh:"\u6D4B\u8BD5\u6210\u529F",en:"Test success"},test_failed:{zh:"\u6D4B\u8BD5\u5931\u8D25",en:"Test failed"},clear_all_cache_now:{zh:"\u7ACB\u5373\u6E05\u9664\u5168\u90E8\u7F13\u5B58",en:"Clear all cache now"},clear_cache:{zh:"\u6E05\u9664\u7F13\u5B58",en:"Clear Cache"},clear_success:{zh:"\u6E05\u9664\u6210\u529F",en:"Clear success"},clear_failed:{zh:"\u6E05\u9664\u5931\u8D25",en:"Clear failed"},share:{zh:"\u5206\u4EAB",en:"Share"},clear_all:{zh:"\u6E05\u7A7A",en:"Clear All"},help:{zh:"\u6C42\u52A9",en:"Help"},restore_default:{zh:"\u6062\u590D\u9ED8\u8BA4",en:"Restore Default"},shortcuts_setting:{zh:"\u5FEB\u6377\u952E\u8BBE\u7F6E",en:"Shortcuts Setting"},toggle_translate_shortcut:{zh:"\"\u542F\u505C\u7FFB\u8BD1\"\u5FEB\u6377\u952E",en:"\"Toggle Translate\" Shortcut"},toggle_style_shortcut:{zh:"\"\u5207\u6362\u6837\u5F0F\"\u5FEB\u6377\u952E",en:"\"Toggle Style\" Shortcut"},toggle_popup_shortcut:{zh:"\"\u6253\u5F00\u5F39\u7A97\"\u5FEB\u6377\u952E",en:"\"Open Popup\" Shortcut"},open_setting_shortcut:{zh:"\"\u6253\u5F00\u8BBE\u7F6E\"\u5FEB\u6377\u952E",en:"\"Open Setting\" Shortcut"},hide_fab_button:{zh:"\u9690\u85CF\u60AC\u6D6E\u6309\u94AE",en:"Hide Fab Button"},hide_tran_button:{zh:"\u9690\u85CF\u7FFB\u8BD1\u6309\u94AE",en:"Hide Translate Button"},show:{zh:"\u663E\u793A",en:"Show"},hide:{zh:"\u9690\u85CF",en:"Hide"},save_rule:{zh:"\u4FDD\u5B58\u89C4\u5219",en:"Save Rule"},global_rule:{zh:"\u5168\u5C40\u89C4\u5219",en:"Global Rule"},input_translate:{zh:"\u8F93\u5165\u6846\u7FFB\u8BD1",en:"Input Box Translation"},use_input_box_translation:{zh:"\u542F\u7528\u8F93\u5165\u6846\u7FFB\u8BD1",en:"Input Box Translation"},input_selector:{zh:"\u8F93\u5165\u6846\u9009\u62E9\u5668",en:"Input Selector"},input_selector_helper:{zh:"\u7528\u4E8E\u8F93\u5165\u6846\u7FFB\u8BD1\u3002",en:"Used for input box translation."},trigger_trans_shortcut:{zh:"\u89E6\u53D1\u7FFB\u8BD1\u5FEB\u6377\u952E",en:"Trigger Translation Shortcut Keys"},trigger_trans_shortcut_help:{zh:"\u9ED8\u8BA4\u4E3A\u5355\u51FB\u201CAltLeft+KeyI\u201D",en:"Default is \"AltLeft+KeyI\""},shortcut_press_count:{zh:"\u5FEB\u6377\u952E\u8FDE\u51FB\u6B21\u6570",en:"Shortcut Press Number"},combo_timeout:{zh:"\u8FDE\u51FB\u8D85\u65F6\u65F6\u95F4 (10-1000ms)",en:"Combo Timeout (10-1000ms)"},input_trans_start_sign:{zh:"\u7FFB\u8BD1\u8D77\u59CB\u6807\u8BC6",en:"Translation Start Sign"},input_trans_start_sign_help:{zh:"\u6807\u8BC6\u540E\u9762\u53EF\u4EE5\u52A0\u76EE\u6807\u8BED\u8A00\u4EE3\u7801\uFF0C\u5982\uFF1A \u201C/en \u4F60\u597D\u201D\u3001\u201C/zh hello\u201D",en:"The target language code can be added after the sign, such as: \"/en \u4F60\u597D\", \"/zh hello\""},detect_lang_remote:{zh:"\u8FDC\u7A0B\u8BED\u8A00\u68C0\u6D4B",en:"Remote language detection"},detect_lang_remote_help:{zh:"\u542F\u7528\u540E\u68C0\u6D4B\u51C6\u786E\u5EA6\u589E\u52A0\uFF0C\u4F46\u4F1A\u964D\u4F4E\u7FFB\u8BD1\u901F\u5EA6\uFF0C\u8BF7\u914C\u60C5\u5F00\u542F",en:"After enabling, the detection accuracy will increase, but it will reduce the translation speed. Please enable it as appropriate."},disable:{zh:"\u7981\u7528",en:"Disable"},enable:{zh:"\u542F\u7528",en:"Enable"},selection_translate:{zh:"\u5212\u8BCD\u7FFB\u8BD1",en:"Selection Translate"},toggle_selection_translate:{zh:"\u542F\u7528\u5212\u8BCD\u7FFB\u8BD1",en:"Use Selection Translate"},trigger_tranbox_shortcut:{zh:"\u663E\u793A\u7FFB\u8BD1\u6846/\u7FFB\u8BD1\u9009\u4E2D\u6587\u5B57\u5FEB\u6377\u952E",en:"Open Translate Popup/Translate Selected Shortcut"},tranbtn_offset_x:{zh:"\u7FFB\u8BD1\u6309\u94AE\u504F\u79FBX\uFF080-100\uFF09",en:"Translate Button Offset X (0-100)"},tranbtn_offset_y:{zh:"\u7FFB\u8BD1\u6309\u94AE\u504F\u79FBY\uFF080-100\uFF09",en:"Translate Button Offset Y (0-100)"},translated_text:{zh:"\u8BD1\u6587",en:"Translated Text"},original_text:{zh:"\u539F\u6587",en:"Original Text"},favorite_words:{zh:"\u6536\u85CF\u8BCD\u6C47",en:"Favorite Words"},touch_setting:{zh:"\u89E6\u5C4F\u8BBE\u7F6E",en:"Touch Setting"},touch_translate_shortcut:{zh:"\u89E6\u5C4F\u7FFB\u8BD1\u5FEB\u6377\u65B9\u5F0F",en:"Touch Translate Shortcut"},touch_tap_0:{zh:"\u7981\u7528",en:"Disable"},touch_tap_2:{zh:"\u53CC\u6307\u8F7B\u89E6",en:"Two finger tap"},touch_tap_3:{zh:"\u4E09\u6307\u8F7B\u89E6",en:"Three finger tap"},touch_tap_4:{zh:"\u56DB\u6307\u8F7B\u89E6",en:"Four finger tap"},translate_blacklist:{zh:"\u7981\u7528\u7FFB\u8BD1\u540D\u5355",en:"Translate Blacklist"},disable_langs:{zh:"\u4E0D\u7FFB\u8BD1\u7684\u8BED\u8A00",en:"Disable Languages"},disable_langs_helper:{zh:"\u6B64\u529F\u80FD\u4F9D\u8D56\u51C6\u786E\u7684\u8BED\u8A00\u68C0\u6D4B\uFF0C\u5EFA\u8BAE\u542F\u7528\u8FDC\u7A0B\u8BED\u8A00\u68C0\u6D4B\u3002",en:"This feature relies on accurate language detection. It is recommended to enable remote language detection."},context_menus:{zh:"\u53F3\u952E\u83DC\u5355",en:"Context Menus"},hide_context_menus:{zh:"\u9690\u85CF\u53F3\u952E\u83DC\u5355",en:"Hide Context Menus"},simple_context_menus:{zh:"\u7B80\u5355\u53F3\u952E\u83DC\u5355",en:"Simple_context_menus Context Menus"},secondary_context_menus:{zh:"\u4E8C\u7EA7\u53F3\u952E\u83DC\u5355",en:"Secondary Context Menus"},mulkeys_help:{zh:"\u652F\u6301\u7528\u6362\u884C\u6216\u82F1\u6587\u9017\u53F7\u201C,\u201D\u5206\u9694\u591A\u4E2AKEY\u8F6E\u8BE2\u8C03\u7528\u3002",en:"Supports multiple KEY polling calls separated by newlines or English commas \",\"."},translate_page_title:{zh:"\u662F\u5426\u540C\u65F6\u7FFB\u8BD1\u9875\u9762\u6807\u9898",en:"Translate Page Title"}};
|
||
;// CONCATENATED MODULE: ./src/config/index.js
|
||
var _OPT_LANGS_SPECIAL,_DEFAULT_TRANS_APIS,_DEFAULT_SHORTCUTS;var STOKEY_MSAUTH="".concat(APP_NAME,"_msauth");var STOKEY_BDAUTH="".concat(APP_NAME,"_bdauth");var STOKEY_SETTING="".concat(APP_NAME,"_setting");var STOKEY_RULES="".concat(APP_NAME,"_rules");var STOKEY_WFRULES="".concat(APP_NAME,"_webfix_rules");var STOKEY_WORDS="".concat(APP_NAME,"_words");var STOKEY_SYNC="".concat(APP_NAME,"_sync");var STOKEY_FAB="".concat(APP_NAME,"_fab");var STOKEY_RULESCACHE_PREFIX="".concat(APP_NAME,"_rulescache_");var STOKEY_WEBFIXCACHE_PREFIX="".concat(APP_NAME,"_webfixcache_");var CMD_TOGGLE_TRANSLATE="toggleTranslate";var CMD_TOGGLE_STYLE="toggleStyle";var CMD_OPEN_OPTIONS="openOptions";var CMD_OPEN_TRANBOX="openTranbox";var CLIENT_WEB="web";var CLIENT_CHROME="chrome";var CLIENT_EDGE="edge";var CLIENT_FIREFOX="firefox";var CLIENT_USERSCRIPT="userscript";var CLIENT_EXTS=[CLIENT_CHROME,CLIENT_EDGE,CLIENT_FIREFOX];var KV_RULES_KEY="kiss-rules.json";var KV_WFRULES_KEY="kiss-webfix.json";var KV_WORDS_KEY="kiss-words.json";var KV_RULES_SHARE_KEY="kiss-rules-share.json";var KV_SETTING_KEY="kiss-setting.json";var KV_SALT_SYNC="KISS-Translator-SYNC";var KV_SALT_SHARE="KISS-Translator-SHARE";var CACHE_NAME="".concat(APP_NAME,"_cache");var MSG_FETCH="fetch";var MSG_FETCH_LIMIT="fetch_limit";var MSG_FETCH_CLEAR="fetch_clear";var MSG_OPEN_OPTIONS="open_options";var MSG_SAVE_RULE="save_rule";var MSG_TRANS_TOGGLE="trans_toggle";var MSG_TRANS_TOGGLE_STYLE="trans_toggle_style";var MSG_OPEN_TRANBOX="open_tranbox";var MSG_TRANS_GETRULE="trans_getrule";var MSG_TRANS_PUTRULE="trans_putrule";var MSG_TRANS_CURRULE="trans_currule";var MSG_CONTEXT_MENUS="context_menus";var MSG_COMMAND_SHORTCUTS="command_shortcuts";var THEME_LIGHT="light";var THEME_DARK="dark";var URL_KISS_WORKER="https://github.com/fishjar/kiss-worker";var URL_KISS_PROXY="https://github.com/fishjar/kiss-proxy";var URL_KISS_RULES="https://github.com/fishjar/kiss-rules";var URL_KISS_RULES_NEW_ISSUE="https://github.com/fishjar/kiss-rules/issues/new";var URL_RAW_PREFIX="https://raw.githubusercontent.com/fishjar/kiss-translator/master";var URL_CACHE_TRAN="https://".concat(APP_LCNAME,"/translate");var URL_MICROSOFT_TRAN="https://api-edge.cognitive.microsofttranslator.com/translate";var URL_MICROSOFT_AUTH="https://edge.microsoft.com/translate/auth";var URL_BAIDU_LANGDETECT="https://fanyi.baidu.com/langdetect";var URL_BAIDU_WEB="https://fanyi.baidu.com/";var URL_BAIDU_TRANSAPI="https://fanyi.baidu.com/transapi";var URL_BAIDU_TRANSAPI_V2="https://fanyi.baidu.com/v2transapi";var URL_DEEPLFREE_TRAN="https://www2.deepl.com/jsonrpc";var URL_TENCENT_TRANSMART="https://transmart.qq.com/api/imt";var OPT_TRANS_GOOGLE="Google";var OPT_TRANS_MICROSOFT="Microsoft";var OPT_TRANS_DEEPL="DeepL";var OPT_TRANS_DEEPLX="DeepLX";var OPT_TRANS_DEEPLFREE="DeepLFree";var OPT_TRANS_BAIDU="Baidu";var OPT_TRANS_TENCENT="Tencent";var OPT_TRANS_OPENAI="OpenAI";var OPT_TRANS_GEMINI="Gemini";var OPT_TRANS_CLOUDFLAREAI="CloudflareAI";var OPT_TRANS_CUSTOMIZE="Custom";var OPT_TRANS_ALL=[OPT_TRANS_GOOGLE,OPT_TRANS_MICROSOFT,OPT_TRANS_BAIDU,OPT_TRANS_TENCENT,OPT_TRANS_DEEPL,OPT_TRANS_DEEPLFREE,OPT_TRANS_DEEPLX,OPT_TRANS_OPENAI,OPT_TRANS_GEMINI,OPT_TRANS_CLOUDFLAREAI,OPT_TRANS_CUSTOMIZE];var OPT_LANGS_TO=[["en","English - English"],["zh-CN","Simplified Chinese - 简体中文"],["zh-TW","Traditional Chinese - 繁體中文"],["ar","Arabic - العربية"],["bg","Bulgarian - Български"],["ca","Catalan - Català"],["hr","Croatian - Hrvatski"],["cs","Czech - Čeština"],["da","Danish - Dansk"],["nl","Dutch - Nederlands"],["fi","Finnish - Suomi"],["fr","French - Français"],["de","German - Deutsch"],["el","Greek - Ελληνικά"],["hi","Hindi - हिन्दी"],["hu","Hungarian - Magyar"],["id","Indonesian - Indonesia"],["it","Italian - Italiano"],["ja","Japanese - 日本語"],["ko","Korean - 한국어"],["ms","Malay - Melayu"],["mt","Maltese - Malti"],["nb","Norwegian - Norsk Bokmål"],["pl","Polish - Polski"],["pt","Portuguese - Português"],["ro","Romanian - Română"],["ru","Russian - Русский"],["sk","Slovak - Slovenčina"],["sl","Slovenian - Slovenščina"],["es","Spanish - Español"],["sv","Swedish - Svenska"],["ta","Tamil - தமிழ்"],["te","Telugu - తెలుగు"],["th","Thai - ไทย"],["tr","Turkish - Türkçe"],["uk","Ukrainian - Українська"],["vi","Vietnamese - Tiếng Việt"]];var OPT_LANGS_FROM=[["auto","Auto-detect"]].concat(OPT_LANGS_TO);var OPT_LANGS_SPECIAL=(_OPT_LANGS_SPECIAL={},_defineProperty(_OPT_LANGS_SPECIAL,OPT_TRANS_GOOGLE,new Map(OPT_LANGS_FROM.map(function(_ref){var _ref2=_slicedToArray(_ref,1),key=_ref2[0];return[key,key];}))),_defineProperty(_OPT_LANGS_SPECIAL,OPT_TRANS_MICROSOFT,new Map([].concat(toConsumableArray_toConsumableArray(OPT_LANGS_FROM.map(function(_ref3){var _ref4=_slicedToArray(_ref3,1),key=_ref4[0];return[key,key];})),[["auto",""],["zh-CN","zh-Hans"],["zh-TW","zh-Hant"]]))),_defineProperty(_OPT_LANGS_SPECIAL,OPT_TRANS_DEEPL,new Map([].concat(toConsumableArray_toConsumableArray(OPT_LANGS_FROM.map(function(_ref5){var _ref6=_slicedToArray(_ref5,1),key=_ref6[0];return[key,key.toUpperCase()];})),[["auto",""],["zh-CN","ZH"],["zh-TW","ZH"]]))),_defineProperty(_OPT_LANGS_SPECIAL,OPT_TRANS_DEEPLFREE,new Map([].concat(toConsumableArray_toConsumableArray(OPT_LANGS_FROM.map(function(_ref7){var _ref8=_slicedToArray(_ref7,1),key=_ref8[0];return[key,key.toUpperCase()];})),[["auto","auto"],["zh-CN","ZH"],["zh-TW","ZH"]]))),_defineProperty(_OPT_LANGS_SPECIAL,OPT_TRANS_DEEPLX,new Map([].concat(toConsumableArray_toConsumableArray(OPT_LANGS_FROM.map(function(_ref9){var _ref10=_slicedToArray(_ref9,1),key=_ref10[0];return[key,key.toUpperCase()];})),[["auto",""],["zh-CN","ZH"],["zh-TW","ZH"]]))),_defineProperty(_OPT_LANGS_SPECIAL,OPT_TRANS_BAIDU,new Map([].concat(toConsumableArray_toConsumableArray(OPT_LANGS_FROM.map(function(_ref11){var _ref12=_slicedToArray(_ref11,1),key=_ref12[0];return[key,key];})),[["zh-CN","zh"],["zh-TW","cht"],["ar","ara"],["bg","bul"],["ca","cat"],["hr","hrv"],["da","dan"],["fi","fin"],["fr","fra"],["hi","mai"],["ja","jp"],["ko","kor"],["ms","may"],["mt","mlt"],["nb","nor"],["ro","rom"],["ru","ru"],["sl","slo"],["es","spa"],["sv","swe"],["ta","tam"],["te","tel"],["uk","ukr"],["vi","vie"]]))),_defineProperty(_OPT_LANGS_SPECIAL,OPT_TRANS_TENCENT,new Map([["auto","auto"],["zh-CN","zh"],["zh-TW","zh"],["en","en"],["ar","ar"],["de","de"],["ru","ru"],["fr","fr"],["fi","fil"],["ko","ko"],["ms","ms"],["pt","pt"],["ja","ja"],["th","th"],["tr","tr"],["es","es"],["it","it"],["hi","hi"],["id","id"],["vi","vi"]])),_defineProperty(_OPT_LANGS_SPECIAL,OPT_TRANS_OPENAI,new Map(OPT_LANGS_FROM.map(function(_ref13){var _ref14=_slicedToArray(_ref13,2),key=_ref14[0],val=_ref14[1];return[key,val.split(" - ")[0]];}))),_defineProperty(_OPT_LANGS_SPECIAL,OPT_TRANS_GEMINI,new Map(OPT_LANGS_FROM.map(function(_ref15){var _ref16=_slicedToArray(_ref15,2),key=_ref16[0],val=_ref16[1];return[key,val.split(" - ")[0]];}))),_defineProperty(_OPT_LANGS_SPECIAL,OPT_TRANS_CLOUDFLAREAI,new Map([["auto",""],["zh-CN","chinese"],["zh-TW","chinese"],["en","english"],["ar","arabic"],["de","german"],["ru","russian"],["fr","french"],["pt","portuguese"],["ja","japanese"],["es","spanish"],["hi","hindi"]])),_defineProperty(_OPT_LANGS_SPECIAL,OPT_TRANS_CUSTOMIZE,new Map([].concat(toConsumableArray_toConsumableArray(OPT_LANGS_FROM.map(function(_ref17){var _ref18=_slicedToArray(_ref17,1),key=_ref18[0];return[key,key];})),[["auto",""]]))),_OPT_LANGS_SPECIAL);var OPT_LANGS_LIST=OPT_LANGS_TO.map(function(_ref19){var _ref20=_slicedToArray(_ref19,1),lang=_ref20[0];return lang;});var OPT_LANGS_BAIDU=new Map(Array.from(OPT_LANGS_SPECIAL[OPT_TRANS_BAIDU].entries()).map(function(_ref21){var _ref22=_slicedToArray(_ref21,2),k=_ref22[0],v=_ref22[1];return[v,k];}));var OPT_LANGS_TENCENT=new Map(Array.from(OPT_LANGS_SPECIAL[OPT_TRANS_TENCENT].entries()).map(function(_ref23){var _ref24=_slicedToArray(_ref23,2),k=_ref24[0],v=_ref24[1];return[v,k];}));OPT_LANGS_TENCENT.set("zh","zh-CN");var OPT_STYLE_NONE="style_none";// 无
|
||
var OPT_STYLE_LINE="under_line";// 下划线
|
||
var OPT_STYLE_DOTLINE="dot_line";// 点状线
|
||
var OPT_STYLE_DASHLINE="dash_line";// 虚线
|
||
var OPT_STYLE_WAVYLINE="wavy_line";// 波浪线
|
||
var OPT_STYLE_FUZZY="fuzzy";// 模糊
|
||
var OPT_STYLE_HIGHLIGHT="highlight";// 高亮
|
||
var OPT_STYLE_BLOCKQUOTE="blockquote";// 引用
|
||
var OPT_STYLE_DIY="diy_style";// 自定义样式
|
||
var OPT_STYLE_ALL=[OPT_STYLE_NONE,OPT_STYLE_LINE,OPT_STYLE_DOTLINE,OPT_STYLE_DASHLINE,OPT_STYLE_WAVYLINE,OPT_STYLE_FUZZY,OPT_STYLE_HIGHLIGHT,OPT_STYLE_BLOCKQUOTE,OPT_STYLE_DIY];var OPT_STYLE_USE_COLOR=[OPT_STYLE_LINE,OPT_STYLE_DOTLINE,OPT_STYLE_DASHLINE,OPT_STYLE_WAVYLINE,OPT_STYLE_HIGHLIGHT,OPT_STYLE_BLOCKQUOTE];var OPT_MOUSEKEY_DISABLE="mk_disable";// 滚动加载翻译
|
||
var OPT_MOUSEKEY_PAGEOPEN="mk_pageopen";// 直接翻译到底
|
||
var OPT_MOUSEKEY_MOUSEOVER="mk_mouseover";var OPT_MOUSEKEY_CONTROL="mk_ctrlKey";var OPT_MOUSEKEY_SHIFT="mk_shiftKey";var OPT_MOUSEKEY_ALT="mk_altKey";var OPT_MOUSEKEY_ALL=[OPT_MOUSEKEY_DISABLE,OPT_MOUSEKEY_PAGEOPEN,OPT_MOUSEKEY_MOUSEOVER,OPT_MOUSEKEY_CONTROL,OPT_MOUSEKEY_SHIFT,OPT_MOUSEKEY_ALT];var DEFAULT_FETCH_LIMIT=10;// 默认最大任务数量
|
||
var DEFAULT_FETCH_INTERVAL=100;// 默认任务间隔时间
|
||
var PROMPT_PLACE_FROM="{{from}}";// 占位符
|
||
var PROMPT_PLACE_TO="{{to}}";// 占位符
|
||
var PROMPT_PLACE_TEXT="{{text}}";// 占位符
|
||
var DEFAULT_COLOR="#209CEE";// 默认高亮背景色/线条颜色
|
||
// 全局规则
|
||
var GLOBLA_RULE={pattern:"*",selector:DEFAULT_SELECTOR,keepSelector:DEFAULT_KEEP_SELECTOR,terms:"",translator:OPT_TRANS_MICROSOFT,fromLang:"auto",toLang:"zh-CN",textStyle:OPT_STYLE_DASHLINE,transOpen:"false",bgColor:"",textDiyStyle:""};// 输入框翻译
|
||
var OPT_INPUT_TRANS_SIGNS=["/","//","\\","\\\\",">",">>"];var DEFAULT_INPUT_SHORTCUT=["AltLeft","KeyI"];var DEFAULT_INPUT_RULE={transOpen:true,translator:OPT_TRANS_MICROSOFT,fromLang:"auto",toLang:"en",triggerShortcut:DEFAULT_INPUT_SHORTCUT,triggerCount:1,triggerTime:200,transSign:OPT_INPUT_TRANS_SIGNS[0]};// 划词翻译
|
||
var DEFAULT_TRANBOX_SHORTCUT=["AltLeft","KeyS"];var DEFAULT_TRANBOX_SETTING={transOpen:true,translator:OPT_TRANS_MICROSOFT,fromLang:"auto",toLang:"zh-CN",toLang2:"en",tranboxShortcut:DEFAULT_TRANBOX_SHORTCUT,btnOffsetX:10,btnOffsetY:10,hideTranBtn:false};// 订阅列表
|
||
var DEFAULT_SUBRULES_LIST=[{url:"https://fishjar.github.io/kiss-rules/kiss-rules.json",selected:false},{url:"https://fishjar.github.io/kiss-rules/kiss-rules-on.json",selected:true},{url:"https://fishjar.github.io/kiss-rules/kiss-rules-off.json",selected:false}];// 翻译接口
|
||
var DEFAULT_TRANS_APIS=(_DEFAULT_TRANS_APIS={},_defineProperty(_DEFAULT_TRANS_APIS,OPT_TRANS_GOOGLE,{url:"https://translate.googleapis.com/translate_a/single",key:""}),_defineProperty(_DEFAULT_TRANS_APIS,OPT_TRANS_DEEPL,{url:"https://api-free.deepl.com/v2/translate",key:""}),_defineProperty(_DEFAULT_TRANS_APIS,OPT_TRANS_DEEPLX,{url:"http://localhost:1188/translate",key:""}),_defineProperty(_DEFAULT_TRANS_APIS,OPT_TRANS_OPENAI,{url:"https://api.openai.com/v1/chat/completions",key:"",model:"gpt-4",prompt:"You will be provided with a sentence in ".concat(PROMPT_PLACE_FROM,", and your task is to translate it into ").concat(PROMPT_PLACE_TO,".")}),_defineProperty(_DEFAULT_TRANS_APIS,OPT_TRANS_GEMINI,{url:"https://generativelanguage.googleapis.com/v1/models",key:"",model:"gemini-pro",prompt:"Translate the following text from ".concat(PROMPT_PLACE_FROM," to ").concat(PROMPT_PLACE_TO,":\n\n").concat(PROMPT_PLACE_TEXT)}),_defineProperty(_DEFAULT_TRANS_APIS,OPT_TRANS_CLOUDFLAREAI,{url:"https://api.cloudflare.com/client/v4/accounts/{ACCOUNT_ID}/ai/run/@cf/meta/m2m100-1.2b",key:""}),_defineProperty(_DEFAULT_TRANS_APIS,OPT_TRANS_CUSTOMIZE,{url:"",key:""}),_DEFAULT_TRANS_APIS);// 默认快捷键
|
||
var OPT_SHORTCUT_TRANSLATE="toggleTranslate";var OPT_SHORTCUT_STYLE="toggleStyle";var OPT_SHORTCUT_POPUP="togglePopup";var OPT_SHORTCUT_SETTING="openSetting";var DEFAULT_SHORTCUTS=(_DEFAULT_SHORTCUTS={},_defineProperty(_DEFAULT_SHORTCUTS,OPT_SHORTCUT_TRANSLATE,["AltLeft","KeyQ"]),_defineProperty(_DEFAULT_SHORTCUTS,OPT_SHORTCUT_STYLE,["AltLeft","KeyC"]),_defineProperty(_DEFAULT_SHORTCUTS,OPT_SHORTCUT_POPUP,["AltLeft","KeyK"]),_defineProperty(_DEFAULT_SHORTCUTS,OPT_SHORTCUT_SETTING,["AltLeft","KeyO"]),_DEFAULT_SHORTCUTS);var TRANS_MIN_LENGTH=5;// 最短翻译长度
|
||
var TRANS_MAX_LENGTH=5000;// 最长翻译长度
|
||
var TRANS_NEWLINE_LENGTH=20;// 换行字符数
|
||
var DEFAULT_BLACKLIST=["https://fishjar.github.io/kiss-translator/options.html","https://translate.google.com","https://www.deepl.com/translator","oapi.dingtalk.com","login.dingtalk.com"];// 禁用翻译名单
|
||
var DEFAULT_SETTING={darkMode:false,// 深色模式
|
||
uiLang:"en",// 界面语言
|
||
fetchLimit:DEFAULT_FETCH_LIMIT,// 最大任务数量
|
||
fetchInterval:DEFAULT_FETCH_INTERVAL,// 任务间隔时间
|
||
minLength:TRANS_MIN_LENGTH,maxLength:TRANS_MAX_LENGTH,newlineLength:TRANS_NEWLINE_LENGTH,clearCache:false,// 是否在浏览器下次启动时清除缓存
|
||
injectRules:true,// 是否注入订阅规则
|
||
injectWebfix:true,// 是否注入修复补丁
|
||
detectRemote:false,// 是否使用远程语言检测
|
||
contextMenus:true,// 是否添加右键菜单(作废)
|
||
contextMenuType:1,// 右键菜单类型(0不显示,1简单菜单,2多级菜单)
|
||
transTitle:false,// 是否同时翻译页面标题
|
||
subrulesList:DEFAULT_SUBRULES_LIST,// 订阅列表
|
||
owSubrule:DEFAULT_OW_RULE,// 覆写订阅规则
|
||
transApis:DEFAULT_TRANS_APIS,// 翻译接口
|
||
mouseKey:OPT_MOUSEKEY_DISABLE,// 翻译时机/鼠标悬停翻译
|
||
shortcuts:DEFAULT_SHORTCUTS,// 快捷键
|
||
inputRule:DEFAULT_INPUT_RULE,// 输入框设置
|
||
tranboxSetting:DEFAULT_TRANBOX_SETTING,// 划词翻译设置
|
||
touchTranslate:2,// 触屏翻译
|
||
blacklist:DEFAULT_BLACKLIST.join(",\n"),// 禁用翻译名单
|
||
disableLangs:[]// 不翻译的语言
|
||
};var DEFAULT_RULES=[GLOBLA_RULE];var OPT_SYNCTYPE_WORKER="KISS-Worker";var OPT_SYNCTYPE_WEBDAV="WebDAV";var OPT_SYNCTYPE_ALL=[OPT_SYNCTYPE_WORKER,OPT_SYNCTYPE_WEBDAV];var DEFAULT_SYNC={syncType:OPT_SYNCTYPE_WORKER,// 同步方式
|
||
syncUrl:"",// 数据同步接口
|
||
syncUser:"",// 数据同步用户名
|
||
syncKey:"",// 数据同步密钥
|
||
syncMeta:{},// 数据更新及同步信息
|
||
subRulesSyncAt:0,// 订阅规则同步时间
|
||
dataCaches:{}// 缓存同步时间
|
||
};
|
||
;// CONCATENATED MODULE: ./src/index.js
|
||
function App(){var _I18N$about_md;var _useState=(0,react.useState)("zh"),_useState2=_slicedToArray(_useState,2),lang=_useState2[0],setLang=_useState2[1];var _useFetch=useFetch("".concat(URL_RAW_PREFIX,"/").concat(I18N===null||I18N===void 0?void 0:(_I18N$about_md=I18N["about_md"])===null||_I18N$about_md===void 0?void 0:_I18N$about_md[lang])),_useFetch2=_slicedToArray(_useFetch,3),data=_useFetch2[0],loading=_useFetch2[1],error=_useFetch2[2];return/*#__PURE__*/(0,jsx_runtime.jsxs)(Paper_Paper,{sx:{padding:2,margin:2},children:[/*#__PURE__*/(0,jsx_runtime.jsx)(Stack_Stack,{spacing:2,direction:"row",justifyContent:"flex-end",children:/*#__PURE__*/(0,jsx_runtime.jsx)(Button_Button,{variant:"text",onClick:function onClick(){setLang(function(pre){return pre==="zh"?"en":"zh";});},children:lang==="zh"?"ENGLISH":"中文"})}),/*#__PURE__*/(0,jsx_runtime.jsx)(Divider_Divider,{children:/*#__PURE__*/(0,jsx_runtime.jsx)(Link_Link,{href:"https://github.com/fishjar/kiss-translator",children:"KISS Translator v".concat("1.8.2")})}),/*#__PURE__*/(0,jsx_runtime.jsxs)(Stack_Stack,{spacing:2,children:[/*#__PURE__*/(0,jsx_runtime.jsx)(Link_Link,{href:"https://fishjar.github.io/kiss-translator/kiss-translator.user.js",children:"Install/Update Userscript for Tampermonkey/Violentmonkey"}),/*#__PURE__*/(0,jsx_runtime.jsx)(Link_Link,{href:"https://fishjar.github.io/kiss-translator/kiss-translator-ios-safari.user.js",children:"Install/Update Userscript for iOS Safari"}),/*#__PURE__*/(0,jsx_runtime.jsx)(Link_Link,{href:"https://fishjar.github.io/kiss-translator/options.html",children:"Open Options Page"})]}),loading?/*#__PURE__*/(0,jsx_runtime.jsx)("center",{children:/*#__PURE__*/(0,jsx_runtime.jsx)(CircularProgress_CircularProgress,{})}):/*#__PURE__*/(0,jsx_runtime.jsx)(ReactMarkdown,{children:error?error.message:data})]});}var src_root=client.createRoot(document.getElementById("root"));src_root.render(/*#__PURE__*/(0,jsx_runtime.jsx)(react.StrictMode,{children:/*#__PURE__*/(0,jsx_runtime.jsx)(App,{})}));
|
||
}();
|
||
/******/ })()
|
||
; |