@forsakringskassan/docs-generator 3.0.4 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/runtime.mjs CHANGED
@@ -38,7 +38,7 @@ var require_dayjs_min = __commonJS({
38
38
  "object" == typeof exports2 && "undefined" != typeof module2 ? module2.exports = e6() : "function" == typeof define && define.amd ? define(e6) : (t5 = "undefined" != typeof globalThis ? globalThis : t5 || self).dayjs = e6();
39
39
  })(exports2, (function() {
40
40
  "use strict";
41
- var t5 = 1e3, e6 = 6e4, n3 = 36e5, r3 = "millisecond", i3 = "second", s2 = "minute", u2 = "hour", a2 = "day", o4 = "week", c3 = "month", f2 = "quarter", h2 = "year", d3 = "date", l5 = "Invalid Date", $4 = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, y6 = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, M3 = { name: "en", weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), ordinal: function(t6) {
41
+ var t5 = 1e3, e6 = 6e4, n3 = 36e5, r3 = "millisecond", i3 = "second", s2 = "minute", u2 = "hour", a2 = "day", o4 = "week", c3 = "month", f2 = "quarter", h2 = "year", d3 = "date", l5 = "Invalid Date", $4 = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, y6 = /\[([^\]]+)]|YYYY|YY|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, M3 = { name: "en", weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), ordinal: function(t6) {
42
42
  var e7 = ["th", "st", "nd", "rd"], n4 = t6 % 100;
43
43
  return "[" + t6 + (e7[(n4 - 20) % 10] || e7[n4] || e7[0]) + "]";
44
44
  } }, m3 = function(t6, e7, n4) {
@@ -297,9 +297,9 @@ var require_dayjs_min = __commonJS({
297
297
  }, m4.toString = function() {
298
298
  return this.$d.toUTCString();
299
299
  }, M4;
300
- })(), k3 = _3.prototype;
301
- return O2.prototype = k3, [["$ms", r3], ["$s", i3], ["$m", s2], ["$H", u2], ["$W", a2], ["$M", c3], ["$y", h2], ["$D", d3]].forEach((function(t6) {
302
- k3[t6[1]] = function(e7) {
300
+ })(), Y3 = _3.prototype;
301
+ return O2.prototype = Y3, [["$ms", r3], ["$s", i3], ["$m", s2], ["$H", u2], ["$W", a2], ["$M", c3], ["$y", h2], ["$D", d3]].forEach((function(t6) {
302
+ Y3[t6[1]] = function(e7) {
303
303
  return this.$g(e7, t6[0], t6[1]);
304
304
  };
305
305
  })), O2.extend = function(t6, e7) {
@@ -1499,7 +1499,7 @@ function isRegex(value2) {
1499
1499
  function createDOMPurify() {
1500
1500
  let window3 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : getGlobal();
1501
1501
  const DOMPurify = (root4) => createDOMPurify(root4);
1502
- DOMPurify.version = "3.4.5";
1502
+ DOMPurify.version = "3.4.8";
1503
1503
  DOMPurify.removed = [];
1504
1504
  if (!window3 || !window3.document || window3.document.nodeType !== NODE_TYPE.document || !window3.Element) {
1505
1505
  DOMPurify.isSupported = false;
@@ -1508,14 +1508,21 @@ function createDOMPurify() {
1508
1508
  let document2 = window3.document;
1509
1509
  const originalDocument = document2;
1510
1510
  const currentScript = originalDocument.currentScript;
1511
- const DocumentFragment3 = window3.DocumentFragment, HTMLTemplateElement = window3.HTMLTemplateElement, Node2 = window3.Node, Element3 = window3.Element, NodeFilter = window3.NodeFilter, _window$NamedNodeMap = window3.NamedNodeMap, NamedNodeMap = _window$NamedNodeMap === void 0 ? window3.NamedNodeMap || window3.MozNamedAttrMap : _window$NamedNodeMap, HTMLFormElement = window3.HTMLFormElement, DOMParser2 = window3.DOMParser, trustedTypes = window3.trustedTypes;
1511
+ window3.DocumentFragment;
1512
+ const HTMLTemplateElement = window3.HTMLTemplateElement, Node2 = window3.Node, Element3 = window3.Element, NodeFilter = window3.NodeFilter, _window$NamedNodeMap = window3.NamedNodeMap;
1513
+ _window$NamedNodeMap === void 0 ? window3.NamedNodeMap || window3.MozNamedAttrMap : _window$NamedNodeMap;
1514
+ window3.HTMLFormElement;
1515
+ const DOMParser2 = window3.DOMParser, trustedTypes = window3.trustedTypes;
1512
1516
  const ElementPrototype = Element3.prototype;
1513
1517
  const cloneNode = lookupGetter(ElementPrototype, "cloneNode");
1514
1518
  const remove3 = lookupGetter(ElementPrototype, "remove");
1515
1519
  const getNextSibling = lookupGetter(ElementPrototype, "nextSibling");
1516
1520
  const getChildNodes = lookupGetter(ElementPrototype, "childNodes");
1517
1521
  const getParentNode = lookupGetter(ElementPrototype, "parentNode");
1522
+ const getShadowRoot = lookupGetter(ElementPrototype, "shadowRoot");
1523
+ const getAttributes = lookupGetter(ElementPrototype, "attributes");
1518
1524
  const getNodeType = Node2 && Node2.prototype ? lookupGetter(Node2.prototype, "nodeType") : null;
1525
+ const getNodeName = Node2 && Node2.prototype ? lookupGetter(Node2.prototype, "nodeName") : null;
1519
1526
  if (typeof HTMLTemplateElement === "function") {
1520
1527
  const template = document2.createElement("template");
1521
1528
  if (template.content && template.content.ownerDocument) {
@@ -1524,6 +1531,18 @@ function createDOMPurify() {
1524
1531
  }
1525
1532
  let trustedTypesPolicy;
1526
1533
  let emptyHTML = "";
1534
+ let IN_POLICY_CREATE_HTML = 0;
1535
+ const _createTrustedHTML = function _createTrustedHTML2(html2) {
1536
+ if (IN_POLICY_CREATE_HTML > 0) {
1537
+ throw typeErrorCreate('The configured TRUSTED_TYPES_POLICY.createHTML must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose createHTML wraps DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.');
1538
+ }
1539
+ IN_POLICY_CREATE_HTML++;
1540
+ try {
1541
+ return trustedTypesPolicy.createHTML(html2);
1542
+ } finally {
1543
+ IN_POLICY_CREATE_HTML--;
1544
+ }
1545
+ };
1527
1546
  const _document = document2, implementation = _document.implementation, createNodeIterator = _document.createNodeIterator, createDocumentFragment = _document.createDocumentFragment, getElementsByTagName = _document.getElementsByTagName;
1528
1547
  const importNode = originalDocument.importNode;
1529
1548
  let hooks = _createHooksMap();
@@ -1747,16 +1766,28 @@ function createDOMPurify() {
1747
1766
  if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== "function") {
1748
1767
  throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');
1749
1768
  }
1769
+ const previousTrustedTypesPolicy = trustedTypesPolicy;
1750
1770
  trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;
1751
- emptyHTML = trustedTypesPolicy.createHTML("");
1771
+ try {
1772
+ emptyHTML = _createTrustedHTML("");
1773
+ } catch (error3) {
1774
+ trustedTypesPolicy = previousTrustedTypesPolicy;
1775
+ throw error3;
1776
+ }
1752
1777
  } else {
1753
- if (trustedTypesPolicy === void 0) {
1778
+ if (trustedTypesPolicy === void 0 && cfg.TRUSTED_TYPES_POLICY !== null) {
1754
1779
  trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);
1755
1780
  }
1756
- if (trustedTypesPolicy !== null && typeof emptyHTML === "string") {
1757
- emptyHTML = trustedTypesPolicy.createHTML("");
1781
+ if (trustedTypesPolicy && typeof emptyHTML === "string") {
1782
+ emptyHTML = _createTrustedHTML("");
1758
1783
  }
1759
1784
  }
1785
+ if ((hooks.uponSanitizeElement.length > 0 || hooks.uponSanitizeAttribute.length > 0) && ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {
1786
+ ALLOWED_TAGS = clone(ALLOWED_TAGS);
1787
+ }
1788
+ if (hooks.uponSanitizeAttribute.length > 0 && ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {
1789
+ ALLOWED_ATTR = clone(ALLOWED_ATTR);
1790
+ }
1760
1791
  if (freeze) {
1761
1792
  freeze(cfg);
1762
1793
  }
@@ -1858,7 +1889,7 @@ function createDOMPurify() {
1858
1889
  if (PARSER_MEDIA_TYPE === "application/xhtml+xml" && NAMESPACE2 === HTML_NAMESPACE) {
1859
1890
  dirty = '<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>' + dirty + "</body></html>";
1860
1891
  }
1861
- const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;
1892
+ const dirtyPayload = trustedTypesPolicy ? _createTrustedHTML(dirty) : dirty;
1862
1893
  if (NAMESPACE2 === HTML_NAMESPACE) {
1863
1894
  try {
1864
1895
  doc = new DOMParser2().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);
@@ -1890,7 +1921,8 @@ function createDOMPurify() {
1890
1921
  null
1891
1922
  );
1892
1923
  };
1893
- const _scrubTemplateExpressions = function _scrubTemplateExpressions2(node2) {
1924
+ const _scrubTemplateExpressions2 = function _scrubTemplateExpressions(node2) {
1925
+ var _node$querySelectorAl, _node$querySelectorAl2;
1894
1926
  node2.normalize();
1895
1927
  const walker = createNodeIterator.call(
1896
1928
  node2.ownerDocument || node2,
@@ -1908,9 +1940,55 @@ function createDOMPurify() {
1908
1940
  currentNode.data = data5;
1909
1941
  currentNode = walker.nextNode();
1910
1942
  }
1943
+ const templates = (_node$querySelectorAl = (_node$querySelectorAl2 = node2.querySelectorAll) === null || _node$querySelectorAl2 === void 0 ? void 0 : _node$querySelectorAl2.call(node2, "template")) !== null && _node$querySelectorAl !== void 0 ? _node$querySelectorAl : [];
1944
+ arrayForEach(Array.from(templates), (tmpl) => {
1945
+ if (_isDocumentFragment(tmpl.content)) {
1946
+ _scrubTemplateExpressions2(tmpl.content);
1947
+ }
1948
+ });
1911
1949
  };
1912
1950
  const _isClobbered = function _isClobbered2(element3) {
1913
- return element3 instanceof HTMLFormElement && (typeof element3.nodeName !== "string" || typeof element3.textContent !== "string" || typeof element3.removeChild !== "function" || !(element3.attributes instanceof NamedNodeMap) || typeof element3.removeAttribute !== "function" || typeof element3.setAttribute !== "function" || typeof element3.namespaceURI !== "string" || typeof element3.insertBefore !== "function" || typeof element3.hasChildNodes !== "function");
1951
+ const realTagName = getNodeName ? getNodeName(element3) : null;
1952
+ if (typeof realTagName !== "string") {
1953
+ return false;
1954
+ }
1955
+ if (transformCaseFunc(realTagName) !== "form") {
1956
+ return false;
1957
+ }
1958
+ return typeof element3.nodeName !== "string" || typeof element3.textContent !== "string" || typeof element3.removeChild !== "function" || // Realm-safe NamedNodeMap detection: equality against the cached
1959
+ // prototype getter. Clobbered .attributes (e.g. <input name="attributes">)
1960
+ // makes the direct read diverge from the cached read; a clean form
1961
+ // (same-realm OR foreign-realm) has both reads pointing at the same
1962
+ // canonical NamedNodeMap.
1963
+ element3.attributes !== getAttributes(element3) || typeof element3.removeAttribute !== "function" || typeof element3.setAttribute !== "function" || typeof element3.namespaceURI !== "string" || typeof element3.insertBefore !== "function" || typeof element3.hasChildNodes !== "function" || // NodeType clobbering probe. Cached Node.prototype.nodeType getter
1964
+ // returns the integer 1 for any Element regardless of realm; direct
1965
+ // read on a clobbered form (e.g. <input name="nodeType">) returns
1966
+ // the named child element. Cheap addition — nodeType is read from
1967
+ // an internal slot, no serialization cost — and removes a residual
1968
+ // clobbering surface used by several mXSS / PI / comment branches
1969
+ // in _sanitizeElements that compare currentNode.nodeType directly.
1970
+ element3.nodeType !== getNodeType(element3) || // HTMLFormElement has [LegacyOverrideBuiltIns]: a descendant named
1971
+ // "childNodes" shadows the prototype getter. Direct reads of
1972
+ // form.childNodes from a clobbered form return the named child
1973
+ // instead of the real NodeList, so any walk that reads it directly
1974
+ // skips the form's real children. Compare the direct read to the
1975
+ // cached Node.prototype getter — when the form's named-property
1976
+ // getter intercepts the read, the two values differ and we flag
1977
+ // the form. This catches every clobbering child type (input,
1978
+ // select, etc.) regardless of whether the named child happens to
1979
+ // carry a numeric .length, which a typeof-based probe would miss
1980
+ // (e.g. HTMLSelectElement.length is a defined unsigned-long).
1981
+ element3.childNodes !== getChildNodes(element3);
1982
+ };
1983
+ const _isDocumentFragment = function _isDocumentFragment2(value2) {
1984
+ if (!getNodeType || typeof value2 !== "object" || value2 === null) {
1985
+ return false;
1986
+ }
1987
+ try {
1988
+ return getNodeType(value2) === NODE_TYPE.documentFragment;
1989
+ } catch (_3) {
1990
+ return false;
1991
+ }
1914
1992
  };
1915
1993
  const _isNode = function _isNode2(value2) {
1916
1994
  if (!getNodeType || typeof value2 !== "object" || value2 === null) {
@@ -1934,7 +2012,7 @@ function createDOMPurify() {
1934
2012
  _forceRemove(currentNode);
1935
2013
  return true;
1936
2014
  }
1937
- const tagName = transformCaseFunc(currentNode.nodeName);
2015
+ const tagName = transformCaseFunc(getNodeName ? getNodeName(currentNode) : currentNode.nodeName);
1938
2016
  _executeHooks(hooks.uponSanitizeElement, currentNode, {
1939
2017
  tagName,
1940
2018
  allowedTags: ALLOWED_TAGS
@@ -1965,8 +2043,8 @@ function createDOMPurify() {
1965
2043
  }
1966
2044
  }
1967
2045
  if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {
1968
- const parentNode = getParentNode(currentNode) || currentNode.parentNode;
1969
- const childNodes = getChildNodes(currentNode) || currentNode.childNodes;
2046
+ const parentNode = getParentNode(currentNode);
2047
+ const childNodes = getChildNodes(currentNode);
1970
2048
  if (childNodes && parentNode) {
1971
2049
  const childCount = childNodes.length;
1972
2050
  for (let i3 = childCount - 1; i3 >= 0; --i3) {
@@ -1978,7 +2056,8 @@ function createDOMPurify() {
1978
2056
  _forceRemove(currentNode);
1979
2057
  return true;
1980
2058
  }
1981
- if (currentNode instanceof Element3 && !_checkValidNamespace(currentNode)) {
2059
+ const nt2 = getNodeType ? getNodeType(currentNode) : currentNode.nodeType;
2060
+ if (nt2 === NODE_TYPE.element && !_checkValidNamespace(currentNode)) {
1982
2061
  _forceRemove(currentNode);
1983
2062
  return true;
1984
2063
  }
@@ -2100,7 +2179,7 @@ function createDOMPurify() {
2100
2179
  else {
2101
2180
  switch (trustedTypes.getAttributeType(lcTag, lcName)) {
2102
2181
  case "TrustedHTML": {
2103
- value2 = trustedTypesPolicy.createHTML(value2);
2182
+ value2 = _createTrustedHTML(value2);
2104
2183
  break;
2105
2184
  }
2106
2185
  case "TrustedScriptURL": {
@@ -2137,19 +2216,30 @@ function createDOMPurify() {
2137
2216
  _executeHooks(hooks.uponSanitizeShadowNode, shadowNode, null);
2138
2217
  _sanitizeElements(shadowNode);
2139
2218
  _sanitizeAttributes(shadowNode);
2140
- if (shadowNode.content instanceof DocumentFragment3) {
2219
+ if (_isDocumentFragment(shadowNode.content)) {
2141
2220
  _sanitizeShadowDOM2(shadowNode.content);
2142
2221
  }
2222
+ const shadowNodeType = getNodeType ? getNodeType(shadowNode) : shadowNode.nodeType;
2223
+ if (shadowNodeType === NODE_TYPE.element) {
2224
+ const innerSr = getShadowRoot ? getShadowRoot(shadowNode) : shadowNode.shadowRoot;
2225
+ if (_isDocumentFragment(innerSr)) {
2226
+ _sanitizeAttachedShadowRoots2(innerSr);
2227
+ _sanitizeShadowDOM2(innerSr);
2228
+ }
2229
+ }
2143
2230
  }
2144
2231
  _executeHooks(hooks.afterSanitizeShadowDOM, fragment, null);
2145
2232
  };
2146
2233
  const _sanitizeAttachedShadowRoots2 = function _sanitizeAttachedShadowRoots(root4) {
2147
- if (root4.nodeType === NODE_TYPE.element && root4.shadowRoot instanceof DocumentFragment3) {
2148
- const sr = root4.shadowRoot;
2149
- _sanitizeAttachedShadowRoots2(sr);
2150
- _sanitizeShadowDOM2(sr);
2234
+ const nodeType3 = getNodeType ? getNodeType(root4) : root4.nodeType;
2235
+ if (nodeType3 === NODE_TYPE.element) {
2236
+ const sr = getShadowRoot ? getShadowRoot(root4) : root4.shadowRoot;
2237
+ if (_isDocumentFragment(sr)) {
2238
+ _sanitizeAttachedShadowRoots2(sr);
2239
+ _sanitizeShadowDOM2(sr);
2240
+ }
2151
2241
  }
2152
- const childNodes = root4.childNodes;
2242
+ const childNodes = getChildNodes ? getChildNodes(root4) : root4.childNodes;
2153
2243
  if (!childNodes) {
2154
2244
  return;
2155
2245
  }
@@ -2160,6 +2250,15 @@ function createDOMPurify() {
2160
2250
  for (const child of snapshot) {
2161
2251
  _sanitizeAttachedShadowRoots2(child);
2162
2252
  }
2253
+ if (nodeType3 === NODE_TYPE.element) {
2254
+ const rootName = getNodeName ? getNodeName(root4) : null;
2255
+ if (typeof rootName === "string" && transformCaseFunc(rootName) === "template") {
2256
+ const content = root4.content;
2257
+ if (_isDocumentFragment(content)) {
2258
+ _sanitizeAttachedShadowRoots2(content);
2259
+ }
2260
+ }
2261
+ }
2163
2262
  };
2164
2263
  DOMPurify.sanitize = function(dirty) {
2165
2264
  let cfg = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
@@ -2188,13 +2287,16 @@ function createDOMPurify() {
2188
2287
  IN_PLACE = false;
2189
2288
  }
2190
2289
  if (IN_PLACE) {
2191
- const nn = dirty.nodeName;
2290
+ const nn = getNodeName ? getNodeName(dirty) : dirty.nodeName;
2192
2291
  if (typeof nn === "string") {
2193
2292
  const tagName = transformCaseFunc(nn);
2194
2293
  if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
2195
2294
  throw typeErrorCreate("root node is forbidden and cannot be sanitized in-place");
2196
2295
  }
2197
2296
  }
2297
+ if (_isClobbered(dirty)) {
2298
+ throw typeErrorCreate("root node is clobbered and cannot be sanitized in-place");
2299
+ }
2198
2300
  _sanitizeAttachedShadowRoots2(dirty);
2199
2301
  } else if (_isNode(dirty)) {
2200
2302
  body = _initDocument("<!---->");
@@ -2210,7 +2312,7 @@ function createDOMPurify() {
2210
2312
  } else {
2211
2313
  if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT && // eslint-disable-next-line unicorn/prefer-includes
2212
2314
  dirty.indexOf("<") === -1) {
2213
- return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;
2315
+ return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? _createTrustedHTML(dirty) : dirty;
2214
2316
  }
2215
2317
  body = _initDocument(dirty);
2216
2318
  if (!body) {
@@ -2224,19 +2326,19 @@ function createDOMPurify() {
2224
2326
  while (currentNode = nodeIterator.nextNode()) {
2225
2327
  _sanitizeElements(currentNode);
2226
2328
  _sanitizeAttributes(currentNode);
2227
- if (currentNode.content instanceof DocumentFragment3) {
2329
+ if (_isDocumentFragment(currentNode.content)) {
2228
2330
  _sanitizeShadowDOM2(currentNode.content);
2229
2331
  }
2230
2332
  }
2231
2333
  if (IN_PLACE) {
2232
2334
  if (SAFE_FOR_TEMPLATES) {
2233
- _scrubTemplateExpressions(dirty);
2335
+ _scrubTemplateExpressions2(dirty);
2234
2336
  }
2235
2337
  return dirty;
2236
2338
  }
2237
2339
  if (RETURN_DOM) {
2238
2340
  if (SAFE_FOR_TEMPLATES) {
2239
- _scrubTemplateExpressions(body);
2341
+ _scrubTemplateExpressions2(body);
2240
2342
  }
2241
2343
  if (RETURN_DOM_FRAGMENT) {
2242
2344
  returnNode = createDocumentFragment.call(body.ownerDocument);
@@ -2260,7 +2362,7 @@ function createDOMPurify() {
2260
2362
  serializedHTML = stringReplace(serializedHTML, expr, " ");
2261
2363
  });
2262
2364
  }
2263
- return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;
2365
+ return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? _createTrustedHTML(serializedHTML) : serializedHTML;
2264
2366
  };
2265
2367
  DOMPurify.setConfig = function() {
2266
2368
  let cfg = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
@@ -2389,11 +2491,20 @@ var init_purify_es = __esm({
2389
2491
  CUSTOM_ELEMENT = seal(/^[a-z][.\w]*(-[.\w]+)+$/i);
2390
2492
  NODE_TYPE = {
2391
2493
  element: 1,
2494
+ attribute: 2,
2392
2495
  text: 3,
2496
+ cdataSection: 4,
2497
+ entityReference: 5,
2498
+ // Deprecated
2499
+ entityNode: 6,
2393
2500
  // Deprecated
2394
2501
  progressingInstruction: 7,
2395
2502
  comment: 8,
2396
- document: 9
2503
+ document: 9,
2504
+ documentType: 10,
2505
+ documentFragment: 11,
2506
+ notation: 12
2507
+ // Deprecated
2397
2508
  };
2398
2509
  getGlobal = function getGlobal2() {
2399
2510
  return typeof window === "undefined" ? null : window;
@@ -32641,40 +32752,40 @@ var require_dist = __commonJS({
32641
32752
  }
32642
32753
  });
32643
32754
 
32644
- // node_modules/es-toolkit/dist/predicate/isLength.mjs
32645
- function isLength(value2) {
32646
- return Number.isSafeInteger(value2) && value2 >= 0;
32755
+ // node_modules/es-toolkit/dist/compat/predicate/isArray.mjs
32756
+ function isArray(value2) {
32757
+ return Array.isArray(value2);
32647
32758
  }
32648
- var init_isLength = __esm({
32649
- "node_modules/es-toolkit/dist/predicate/isLength.mjs"() {
32759
+ var init_isArray = __esm({
32760
+ "node_modules/es-toolkit/dist/compat/predicate/isArray.mjs"() {
32650
32761
  }
32651
32762
  });
32652
32763
 
32653
- // node_modules/es-toolkit/dist/compat/predicate/isArrayLike.mjs
32654
- function isArrayLike(value2) {
32655
- return value2 != null && typeof value2 !== "function" && isLength(value2.length);
32656
- }
32657
- var init_isArrayLike = __esm({
32658
- "node_modules/es-toolkit/dist/compat/predicate/isArrayLike.mjs"() {
32659
- init_isLength();
32764
+ // node_modules/es-toolkit/dist/compat/predicate/isPlainObject.mjs
32765
+ function isPlainObject(object3) {
32766
+ if (typeof object3 !== "object") return false;
32767
+ if (object3 == null) return false;
32768
+ if (Object.getPrototypeOf(object3) === null) return true;
32769
+ if (Object.prototype.toString.call(object3) !== "[object Object]") {
32770
+ const tag = object3[Symbol.toStringTag];
32771
+ if (tag == null) return false;
32772
+ if (!Object.getOwnPropertyDescriptor(object3, Symbol.toStringTag)?.writable) return false;
32773
+ return object3.toString() === `[object ${tag}]`;
32660
32774
  }
32661
- });
32662
-
32663
- // node_modules/es-toolkit/dist/_internal/isUnsafeProperty.mjs
32664
- function isUnsafeProperty(key) {
32665
- return key === "__proto__";
32775
+ let proto = object3;
32776
+ while (Object.getPrototypeOf(proto) !== null) proto = Object.getPrototypeOf(proto);
32777
+ return Object.getPrototypeOf(object3) === proto;
32666
32778
  }
32667
- var init_isUnsafeProperty = __esm({
32668
- "node_modules/es-toolkit/dist/_internal/isUnsafeProperty.mjs"() {
32779
+ var init_isPlainObject = __esm({
32780
+ "node_modules/es-toolkit/dist/compat/predicate/isPlainObject.mjs"() {
32669
32781
  }
32670
32782
  });
32671
32783
 
32672
- // node_modules/es-toolkit/dist/predicate/isPrimitive.mjs
32673
- function isPrimitive(value2) {
32674
- return value2 == null || typeof value2 !== "object" && typeof value2 !== "function";
32784
+ // node_modules/es-toolkit/dist/function/noop.mjs
32785
+ function noop2() {
32675
32786
  }
32676
- var init_isPrimitive = __esm({
32677
- "node_modules/es-toolkit/dist/predicate/isPrimitive.mjs"() {
32787
+ var init_noop2 = __esm({
32788
+ "node_modules/es-toolkit/dist/function/noop.mjs"() {
32678
32789
  }
32679
32790
  });
32680
32791
 
@@ -32689,9 +32800,7 @@ var init_getSymbols = __esm({
32689
32800
 
32690
32801
  // node_modules/es-toolkit/dist/compat/_internal/getTag.mjs
32691
32802
  function getTag(value2) {
32692
- if (value2 == null) {
32693
- return value2 === void 0 ? "[object Undefined]" : "[object Null]";
32694
- }
32803
+ if (value2 == null) return value2 === void 0 ? "[object Undefined]" : "[object Null]";
32695
32804
  return Object.prototype.toString.call(value2);
32696
32805
  }
32697
32806
  var init_getTag = __esm({
@@ -32748,6 +32857,43 @@ var init_isBuffer = __esm({
32748
32857
  }
32749
32858
  });
32750
32859
 
32860
+ // node_modules/es-toolkit/dist/predicate/isLength.mjs
32861
+ function isLength(value2) {
32862
+ return Number.isSafeInteger(value2) && value2 >= 0;
32863
+ }
32864
+ var init_isLength = __esm({
32865
+ "node_modules/es-toolkit/dist/predicate/isLength.mjs"() {
32866
+ }
32867
+ });
32868
+
32869
+ // node_modules/es-toolkit/dist/compat/predicate/isArrayLike.mjs
32870
+ function isArrayLike(value2) {
32871
+ return value2 != null && typeof value2 !== "function" && isLength(value2.length);
32872
+ }
32873
+ var init_isArrayLike = __esm({
32874
+ "node_modules/es-toolkit/dist/compat/predicate/isArrayLike.mjs"() {
32875
+ init_isLength();
32876
+ }
32877
+ });
32878
+
32879
+ // node_modules/es-toolkit/dist/_internal/isUnsafeProperty.mjs
32880
+ function isUnsafeProperty(key) {
32881
+ return key === "__proto__";
32882
+ }
32883
+ var init_isUnsafeProperty = __esm({
32884
+ "node_modules/es-toolkit/dist/_internal/isUnsafeProperty.mjs"() {
32885
+ }
32886
+ });
32887
+
32888
+ // node_modules/es-toolkit/dist/predicate/isPrimitive.mjs
32889
+ function isPrimitive(value2) {
32890
+ return value2 == null || typeof value2 !== "object" && typeof value2 !== "function";
32891
+ }
32892
+ var init_isPrimitive = __esm({
32893
+ "node_modules/es-toolkit/dist/predicate/isPrimitive.mjs"() {
32894
+ }
32895
+ });
32896
+
32751
32897
  // node_modules/es-toolkit/dist/predicate/isTypedArray.mjs
32752
32898
  function isTypedArray(x6) {
32753
32899
  return ArrayBuffer.isView(x6) && !(x6 instanceof DataView);
@@ -32763,32 +32909,18 @@ function cloneDeepWith(obj, cloneValue) {
32763
32909
  }
32764
32910
  function cloneDeepWithImpl(valueToClone, keyToClone, objectToClone, stack = /* @__PURE__ */ new Map(), cloneValue = void 0) {
32765
32911
  const cloned = cloneValue?.(valueToClone, keyToClone, objectToClone, stack);
32766
- if (cloned !== void 0) {
32767
- return cloned;
32768
- }
32769
- if (isPrimitive(valueToClone)) {
32770
- return valueToClone;
32771
- }
32772
- if (stack.has(valueToClone)) {
32773
- return stack.get(valueToClone);
32774
- }
32912
+ if (cloned !== void 0) return cloned;
32913
+ if (isPrimitive(valueToClone)) return valueToClone;
32914
+ if (stack.has(valueToClone)) return stack.get(valueToClone);
32775
32915
  if (Array.isArray(valueToClone)) {
32776
32916
  const result = new Array(valueToClone.length);
32777
32917
  stack.set(valueToClone, result);
32778
- for (let i3 = 0; i3 < valueToClone.length; i3++) {
32779
- result[i3] = cloneDeepWithImpl(valueToClone[i3], i3, objectToClone, stack, cloneValue);
32780
- }
32781
- if (Object.hasOwn(valueToClone, "index")) {
32782
- result.index = valueToClone.index;
32783
- }
32784
- if (Object.hasOwn(valueToClone, "input")) {
32785
- result.input = valueToClone.input;
32786
- }
32918
+ for (let i3 = 0; i3 < valueToClone.length; i3++) result[i3] = cloneDeepWithImpl(valueToClone[i3], i3, objectToClone, stack, cloneValue);
32919
+ if (Object.hasOwn(valueToClone, "index")) result.index = valueToClone.index;
32920
+ if (Object.hasOwn(valueToClone, "input")) result.input = valueToClone.input;
32787
32921
  return result;
32788
32922
  }
32789
- if (valueToClone instanceof Date) {
32790
- return new Date(valueToClone.getTime());
32791
- }
32923
+ if (valueToClone instanceof Date) return new Date(valueToClone.getTime());
32792
32924
  if (valueToClone instanceof RegExp) {
32793
32925
  const result = new RegExp(valueToClone.source, valueToClone.flags);
32794
32926
  result.lastIndex = valueToClone.lastIndex;
@@ -32797,33 +32929,23 @@ function cloneDeepWithImpl(valueToClone, keyToClone, objectToClone, stack = /* @
32797
32929
  if (valueToClone instanceof Map) {
32798
32930
  const result = /* @__PURE__ */ new Map();
32799
32931
  stack.set(valueToClone, result);
32800
- for (const [key, value2] of valueToClone) {
32801
- result.set(key, cloneDeepWithImpl(value2, key, objectToClone, stack, cloneValue));
32802
- }
32932
+ for (const [key, value2] of valueToClone) result.set(key, cloneDeepWithImpl(value2, key, objectToClone, stack, cloneValue));
32803
32933
  return result;
32804
32934
  }
32805
32935
  if (valueToClone instanceof Set) {
32806
32936
  const result = /* @__PURE__ */ new Set();
32807
32937
  stack.set(valueToClone, result);
32808
- for (const value2 of valueToClone) {
32809
- result.add(cloneDeepWithImpl(value2, void 0, objectToClone, stack, cloneValue));
32810
- }
32938
+ for (const value2 of valueToClone) result.add(cloneDeepWithImpl(value2, void 0, objectToClone, stack, cloneValue));
32811
32939
  return result;
32812
32940
  }
32813
- if (isBuffer(valueToClone)) {
32814
- return valueToClone.subarray();
32815
- }
32941
+ if (isBuffer(valueToClone)) return valueToClone.subarray();
32816
32942
  if (isTypedArray(valueToClone)) {
32817
32943
  const result = new (Object.getPrototypeOf(valueToClone)).constructor(valueToClone.length);
32818
32944
  stack.set(valueToClone, result);
32819
- for (let i3 = 0; i3 < valueToClone.length; i3++) {
32820
- result[i3] = cloneDeepWithImpl(valueToClone[i3], i3, objectToClone, stack, cloneValue);
32821
- }
32945
+ for (let i3 = 0; i3 < valueToClone.length; i3++) result[i3] = cloneDeepWithImpl(valueToClone[i3], i3, objectToClone, stack, cloneValue);
32822
32946
  return result;
32823
32947
  }
32824
- if (valueToClone instanceof ArrayBuffer || typeof SharedArrayBuffer !== "undefined" && valueToClone instanceof SharedArrayBuffer) {
32825
- return valueToClone.slice(0);
32826
- }
32948
+ if (valueToClone instanceof ArrayBuffer || typeof SharedArrayBuffer !== "undefined" && valueToClone instanceof SharedArrayBuffer) return valueToClone.slice(0);
32827
32949
  if (valueToClone instanceof DataView) {
32828
32950
  const result = new DataView(valueToClone.buffer.slice(0), valueToClone.byteOffset, valueToClone.byteLength);
32829
32951
  stack.set(valueToClone, result);
@@ -32831,9 +32953,7 @@ function cloneDeepWithImpl(valueToClone, keyToClone, objectToClone, stack = /* @
32831
32953
  return result;
32832
32954
  }
32833
32955
  if (typeof File !== "undefined" && valueToClone instanceof File) {
32834
- const result = new File([valueToClone], valueToClone.name, {
32835
- type: valueToClone.type
32836
- });
32956
+ const result = new File([valueToClone], valueToClone.name, { type: valueToClone.type });
32837
32957
  stack.set(valueToClone, result);
32838
32958
  copyProperties(result, valueToClone, objectToClone, stack, cloneValue);
32839
32959
  return result;
@@ -32886,9 +33006,7 @@ function copyProperties(target, source, objectToClone = target, stack, cloneValu
32886
33006
  for (let i3 = 0; i3 < keys3.length; i3++) {
32887
33007
  const key = keys3[i3];
32888
33008
  const descriptor = Object.getOwnPropertyDescriptor(target, key);
32889
- if (descriptor == null || descriptor.writable) {
32890
- target[key] = cloneDeepWithImpl(source[key], key, objectToClone, stack, cloneValue);
32891
- }
33009
+ if (descriptor == null || descriptor.writable) target[key] = cloneDeepWithImpl(source[key], key, objectToClone, stack, cloneValue);
32892
33010
  }
32893
33011
  }
32894
33012
  function isCloneableObject(object3) {
@@ -32914,22 +33032,20 @@ function isCloneableObject(object3) {
32914
33032
  case uint8ArrayTag:
32915
33033
  case uint8ClampedArrayTag:
32916
33034
  case uint16ArrayTag:
32917
- case uint32ArrayTag: {
33035
+ case uint32ArrayTag:
32918
33036
  return true;
32919
- }
32920
- default: {
33037
+ default:
32921
33038
  return false;
32922
- }
32923
33039
  }
32924
33040
  }
32925
33041
  var init_cloneDeepWith = __esm({
32926
33042
  "node_modules/es-toolkit/dist/object/cloneDeepWith.mjs"() {
33043
+ init_isPrimitive();
33044
+ init_isTypedArray();
32927
33045
  init_getSymbols();
32928
33046
  init_getTag();
32929
33047
  init_tags();
32930
33048
  init_isBuffer();
32931
- init_isPrimitive();
32932
- init_isTypedArray();
32933
33049
  }
32934
33050
  });
32935
33051
 
@@ -32937,13 +33053,9 @@ var init_cloneDeepWith = __esm({
32937
33053
  function cloneDeepWith2(obj, customizer) {
32938
33054
  return cloneDeepWith(obj, (value2, key, object3, stack) => {
32939
33055
  const cloned = customizer?.(value2, key, object3, stack);
32940
- if (cloned !== void 0) {
32941
- return cloned;
32942
- }
32943
- if (typeof obj !== "object") {
32944
- return void 0;
32945
- }
32946
- if (getTag(obj) === objectTag && typeof obj.constructor !== "function") {
33056
+ if (cloned !== void 0) return cloned;
33057
+ if (typeof obj !== "object") return;
33058
+ if (getTag(obj) === "[object Object]" && typeof obj.constructor !== "function") {
32947
33059
  const result = {};
32948
33060
  stack.set(obj, result);
32949
33061
  copyProperties(result, obj, object3, stack);
@@ -32964,17 +33076,16 @@ function cloneDeepWith2(obj, customizer) {
32964
33076
  result[Symbol.iterator] = obj[Symbol.iterator];
32965
33077
  return result;
32966
33078
  }
32967
- default: {
32968
- return void 0;
32969
- }
33079
+ default:
33080
+ return;
32970
33081
  }
32971
33082
  });
32972
33083
  }
32973
33084
  var init_cloneDeepWith2 = __esm({
32974
33085
  "node_modules/es-toolkit/dist/compat/object/cloneDeepWith.mjs"() {
32975
- init_cloneDeepWith();
32976
33086
  init_getTag();
32977
33087
  init_tags();
33088
+ init_cloneDeepWith();
32978
33089
  }
32979
33090
  });
32980
33091
 
@@ -33018,32 +33129,18 @@ var init_isArrayLikeObject = __esm({
33018
33129
  }
33019
33130
  });
33020
33131
 
33021
- // node_modules/es-toolkit/dist/compat/predicate/isArray.mjs
33022
- function isArray(value2) {
33023
- return Array.isArray(value2);
33024
- }
33025
- var init_isArray = __esm({
33026
- "node_modules/es-toolkit/dist/compat/predicate/isArray.mjs"() {
33027
- }
33028
- });
33029
-
33030
33132
  // node_modules/es-toolkit/dist/compat/function/memoize.mjs
33031
33133
  function memoize(func, resolver3) {
33032
- if (typeof func !== "function" || resolver3 != null && typeof resolver3 !== "function") {
33033
- throw new TypeError("Expected a function");
33034
- }
33134
+ if (typeof func !== "function" || resolver3 != null && typeof resolver3 !== "function") throw new TypeError("Expected a function");
33035
33135
  const memoized = function(...args) {
33036
33136
  const key = resolver3 ? resolver3.apply(this, args) : args[0];
33037
33137
  const cache3 = memoized.cache;
33038
- if (cache3.has(key)) {
33039
- return cache3.get(key);
33040
- }
33138
+ if (cache3.has(key)) return cache3.get(key);
33041
33139
  const result = func.apply(this, args);
33042
33140
  memoized.cache = cache3.set(key, result) || cache3;
33043
33141
  return result;
33044
33142
  };
33045
- const CacheConstructor = memoize.Cache || Map;
33046
- memoized.cache = new CacheConstructor();
33143
+ memoized.cache = new (memoize.Cache || Map)();
33047
33144
  return memoized;
33048
33145
  }
33049
33146
  var init_memoize = __esm({
@@ -33052,44 +33149,31 @@ var init_memoize = __esm({
33052
33149
  }
33053
33150
  });
33054
33151
 
33055
- // node_modules/es-toolkit/dist/function/noop.mjs
33056
- function noop2() {
33152
+ // node_modules/es-toolkit/dist/compat/predicate/isTypedArray.mjs
33153
+ function isTypedArray2(x6) {
33154
+ return isTypedArray(x6);
33057
33155
  }
33058
- var init_noop2 = __esm({
33059
- "node_modules/es-toolkit/dist/function/noop.mjs"() {
33156
+ var init_isTypedArray2 = __esm({
33157
+ "node_modules/es-toolkit/dist/compat/predicate/isTypedArray.mjs"() {
33158
+ init_isTypedArray();
33060
33159
  }
33061
33160
  });
33062
33161
 
33063
33162
  // node_modules/es-toolkit/dist/compat/_internal/isPrototype.mjs
33064
33163
  function isPrototype(value2) {
33065
33164
  const constructor = value2?.constructor;
33066
- const prototype = typeof constructor === "function" ? constructor.prototype : Object.prototype;
33067
- return value2 === prototype;
33165
+ return value2 === (typeof constructor === "function" ? constructor.prototype : Object.prototype);
33068
33166
  }
33069
33167
  var init_isPrototype = __esm({
33070
33168
  "node_modules/es-toolkit/dist/compat/_internal/isPrototype.mjs"() {
33071
33169
  }
33072
33170
  });
33073
33171
 
33074
- // node_modules/es-toolkit/dist/compat/predicate/isTypedArray.mjs
33075
- function isTypedArray2(x6) {
33076
- return isTypedArray(x6);
33077
- }
33078
- var init_isTypedArray2 = __esm({
33079
- "node_modules/es-toolkit/dist/compat/predicate/isTypedArray.mjs"() {
33080
- init_isTypedArray();
33081
- }
33082
- });
33083
-
33084
33172
  // node_modules/es-toolkit/dist/compat/object/clone.mjs
33085
33173
  function clone2(obj) {
33086
- if (isPrimitive(obj)) {
33087
- return obj;
33088
- }
33174
+ if (isPrimitive(obj)) return obj;
33089
33175
  const tag = getTag(obj);
33090
- if (!isCloneableObject2(obj)) {
33091
- return {};
33092
- }
33176
+ if (!isCloneableObject2(obj)) return {};
33093
33177
  if (isArray(obj)) {
33094
33178
  const result2 = Array.from(obj);
33095
33179
  if (obj.length > 0 && typeof obj[0] === "string" && Object.hasOwn(obj, "index")) {
@@ -33103,43 +33187,33 @@ function clone2(obj) {
33103
33187
  const Ctor = typedArray.constructor;
33104
33188
  return new Ctor(typedArray.buffer, typedArray.byteOffset, typedArray.length);
33105
33189
  }
33106
- if (tag === arrayBufferTag) {
33107
- return new ArrayBuffer(obj.byteLength);
33108
- }
33109
- if (tag === dataViewTag) {
33190
+ if (tag === "[object ArrayBuffer]") return new ArrayBuffer(obj.byteLength);
33191
+ if (tag === "[object DataView]") {
33110
33192
  const dataView = obj;
33111
33193
  const buffer = dataView.buffer;
33112
33194
  const byteOffset = dataView.byteOffset;
33113
33195
  const byteLength = dataView.byteLength;
33114
33196
  const clonedBuffer = new ArrayBuffer(byteLength);
33115
33197
  const srcView = new Uint8Array(buffer, byteOffset, byteLength);
33116
- const destView = new Uint8Array(clonedBuffer);
33117
- destView.set(srcView);
33198
+ new Uint8Array(clonedBuffer).set(srcView);
33118
33199
  return new DataView(clonedBuffer);
33119
33200
  }
33120
- if (tag === booleanTag || tag === numberTag || tag === stringTag) {
33201
+ if (tag === "[object Boolean]" || tag === "[object Number]" || tag === "[object String]") {
33121
33202
  const Ctor = obj.constructor;
33122
33203
  const clone9 = new Ctor(obj.valueOf());
33123
- if (tag === stringTag) {
33124
- cloneStringObjectProperties(clone9, obj);
33125
- } else {
33126
- copyOwnProperties(clone9, obj);
33127
- }
33204
+ if (tag === "[object String]") cloneStringObjectProperties(clone9, obj);
33205
+ else copyOwnProperties(clone9, obj);
33128
33206
  return clone9;
33129
33207
  }
33130
- if (tag === dateTag) {
33131
- return new Date(Number(obj));
33132
- }
33133
- if (tag === regexpTag) {
33208
+ if (tag === "[object Date]") return new Date(Number(obj));
33209
+ if (tag === "[object RegExp]") {
33134
33210
  const regExp = obj;
33135
33211
  const clone9 = new RegExp(regExp.source, regExp.flags);
33136
33212
  clone9.lastIndex = regExp.lastIndex;
33137
33213
  return clone9;
33138
33214
  }
33139
- if (tag === symbolTag) {
33140
- return Object(Symbol.prototype.valueOf.call(obj));
33141
- }
33142
- if (tag === mapTag) {
33215
+ if (tag === "[object Symbol]") return Object(Symbol.prototype.valueOf.call(obj));
33216
+ if (tag === "[object Map]") {
33143
33217
  const map6 = obj;
33144
33218
  const result2 = /* @__PURE__ */ new Map();
33145
33219
  map6.forEach((obj2, key) => {
@@ -33147,7 +33221,7 @@ function clone2(obj) {
33147
33221
  });
33148
33222
  return result2;
33149
33223
  }
33150
- if (tag === setTag) {
33224
+ if (tag === "[object Set]") {
33151
33225
  const set5 = obj;
33152
33226
  const result2 = /* @__PURE__ */ new Set();
33153
33227
  set5.forEach((obj2) => {
@@ -33155,7 +33229,7 @@ function clone2(obj) {
33155
33229
  });
33156
33230
  return result2;
33157
33231
  }
33158
- if (tag === argumentsTag) {
33232
+ if (tag === "[object Arguments]") {
33159
33233
  const args = obj;
33160
33234
  const result2 = {};
33161
33235
  copyOwnProperties(result2, args);
@@ -33192,45 +33266,30 @@ function isCloneableObject2(object3) {
33192
33266
  case uint8ArrayTag:
33193
33267
  case uint8ClampedArrayTag:
33194
33268
  case uint16ArrayTag:
33195
- case uint32ArrayTag: {
33269
+ case uint32ArrayTag:
33196
33270
  return true;
33197
- }
33198
- default: {
33271
+ default:
33199
33272
  return false;
33200
- }
33201
33273
  }
33202
33274
  }
33203
33275
  function copyOwnProperties(target, source) {
33204
- for (const key in source) {
33205
- if (Object.hasOwn(source, key)) {
33206
- target[key] = source[key];
33207
- }
33208
- }
33276
+ for (const key in source) if (Object.hasOwn(source, key)) target[key] = source[key];
33209
33277
  }
33210
33278
  function copySymbolProperties(target, source) {
33211
33279
  const symbols2 = Object.getOwnPropertySymbols(source);
33212
33280
  for (let i3 = 0; i3 < symbols2.length; i3++) {
33213
33281
  const symbol = symbols2[i3];
33214
- if (Object.prototype.propertyIsEnumerable.call(source, symbol)) {
33215
- target[symbol] = source[symbol];
33216
- }
33282
+ if (Object.prototype.propertyIsEnumerable.call(source, symbol)) target[symbol] = source[symbol];
33217
33283
  }
33218
33284
  }
33219
33285
  function cloneStringObjectProperties(target, source) {
33220
33286
  const stringLength = source.valueOf().length;
33221
- for (const key in source) {
33222
- if (Object.hasOwn(source, key) && (Number.isNaN(Number(key)) || Number(key) >= stringLength)) {
33223
- target[key] = source[key];
33224
- }
33225
- }
33287
+ for (const key in source) if (Object.hasOwn(source, key) && (Number.isNaN(Number(key)) || Number(key) >= stringLength)) target[key] = source[key];
33226
33288
  }
33227
33289
  function copyPrototype(target, source) {
33228
33290
  const proto = Object.getPrototypeOf(source);
33229
33291
  if (proto !== null) {
33230
- const Ctor = source.constructor;
33231
- if (typeof Ctor === "function") {
33232
- Object.setPrototypeOf(target, proto);
33233
- }
33292
+ if (typeof source.constructor === "function") Object.setPrototypeOf(target, proto);
33234
33293
  }
33235
33294
  }
33236
33295
  var init_clone2 = __esm({
@@ -33243,82 +33302,33 @@ var init_clone2 = __esm({
33243
33302
  }
33244
33303
  });
33245
33304
 
33246
- // node_modules/es-toolkit/dist/compat/predicate/isPlainObject.mjs
33247
- function isPlainObject(object3) {
33248
- if (typeof object3 !== "object") {
33249
- return false;
33250
- }
33251
- if (object3 == null) {
33252
- return false;
33253
- }
33254
- if (Object.getPrototypeOf(object3) === null) {
33255
- return true;
33256
- }
33257
- if (Object.prototype.toString.call(object3) !== "[object Object]") {
33258
- const tag = object3[Symbol.toStringTag];
33259
- if (tag == null) {
33260
- return false;
33261
- }
33262
- const isTagReadonly = !Object.getOwnPropertyDescriptor(object3, Symbol.toStringTag)?.writable;
33263
- if (isTagReadonly) {
33264
- return false;
33265
- }
33266
- return object3.toString() === `[object ${tag}]`;
33267
- }
33268
- let proto = object3;
33269
- while (Object.getPrototypeOf(proto) !== null) {
33270
- proto = Object.getPrototypeOf(proto);
33271
- }
33272
- return Object.getPrototypeOf(object3) === proto;
33273
- }
33274
- var init_isPlainObject = __esm({
33275
- "node_modules/es-toolkit/dist/compat/predicate/isPlainObject.mjs"() {
33276
- }
33277
- });
33278
-
33279
33305
  // node_modules/es-toolkit/dist/object/clone.mjs
33280
33306
  function clone3(obj) {
33281
- if (isPrimitive(obj)) {
33282
- return obj;
33283
- }
33284
- if (Array.isArray(obj) || isTypedArray(obj) || obj instanceof ArrayBuffer || typeof SharedArrayBuffer !== "undefined" && obj instanceof SharedArrayBuffer) {
33285
- return obj.slice(0);
33286
- }
33307
+ if (isPrimitive(obj)) return obj;
33308
+ if (Array.isArray(obj) || isTypedArray(obj) || obj instanceof ArrayBuffer || typeof SharedArrayBuffer !== "undefined" && obj instanceof SharedArrayBuffer) return obj.slice(0);
33287
33309
  const prototype = Object.getPrototypeOf(obj);
33288
- if (prototype == null) {
33289
- return Object.assign(Object.create(prototype), obj);
33290
- }
33310
+ if (prototype == null) return Object.assign(Object.create(prototype), obj);
33291
33311
  const Constructor = prototype.constructor;
33292
- if (obj instanceof Date || obj instanceof Map || obj instanceof Set) {
33293
- return new Constructor(obj);
33294
- }
33312
+ if (obj instanceof Date || obj instanceof Map || obj instanceof Set) return new Constructor(obj);
33295
33313
  if (obj instanceof RegExp) {
33296
33314
  const newRegExp = new Constructor(obj);
33297
33315
  newRegExp.lastIndex = obj.lastIndex;
33298
33316
  return newRegExp;
33299
33317
  }
33300
- if (obj instanceof DataView) {
33301
- return new Constructor(obj.buffer.slice(0));
33302
- }
33318
+ if (obj instanceof DataView) return new Constructor(obj.buffer.slice(0));
33303
33319
  if (obj instanceof Error) {
33304
33320
  let newError;
33305
- if (obj instanceof AggregateError) {
33306
- newError = new Constructor(obj.errors, obj.message, { cause: obj.cause });
33307
- } else {
33308
- newError = new Constructor(obj.message, { cause: obj.cause });
33309
- }
33321
+ if (obj instanceof AggregateError) newError = new Constructor(obj.errors, obj.message, { cause: obj.cause });
33322
+ else newError = new Constructor(obj.message, { cause: obj.cause });
33310
33323
  newError.stack = obj.stack;
33311
33324
  Object.assign(newError, obj);
33312
33325
  return newError;
33313
33326
  }
33314
- if (typeof File !== "undefined" && obj instanceof File) {
33315
- const newFile = new Constructor([obj], obj.name, { type: obj.type, lastModified: obj.lastModified });
33316
- return newFile;
33317
- }
33318
- if (typeof obj === "object") {
33319
- const newObject = Object.create(prototype);
33320
- return Object.assign(newObject, obj);
33321
- }
33327
+ if (typeof File !== "undefined" && obj instanceof File) return new Constructor([obj], obj.name, {
33328
+ type: obj.type,
33329
+ lastModified: obj.lastModified
33330
+ });
33331
+ if (typeof obj === "object") return Object.assign(Object.create(prototype), obj);
33322
33332
  return obj;
33323
33333
  }
33324
33334
  var init_clone3 = __esm({
@@ -33340,87 +33350,58 @@ function mergeWith(object3, ...otherArgs) {
33340
33350
  return result;
33341
33351
  }
33342
33352
  function mergeWithDeep(target, source, merge6, stack) {
33343
- if (isPrimitive(target)) {
33344
- target = Object(target);
33345
- }
33346
- if (source == null || typeof source !== "object") {
33347
- return target;
33348
- }
33349
- if (stack.has(source)) {
33350
- return clone3(stack.get(source));
33351
- }
33353
+ if (isPrimitive(target)) target = Object(target);
33354
+ if (source == null || typeof source !== "object") return target;
33355
+ if (stack.has(source)) return clone3(stack.get(source));
33352
33356
  stack.set(source, target);
33353
33357
  if (Array.isArray(source)) {
33354
33358
  source = source.slice();
33355
- for (let i3 = 0; i3 < source.length; i3++) {
33356
- source[i3] = source[i3] ?? void 0;
33357
- }
33359
+ for (let i3 = 0; i3 < source.length; i3++) source[i3] = source[i3] ?? void 0;
33358
33360
  }
33359
33361
  const sourceKeys = [...Object.keys(source), ...getSymbols(source)];
33360
33362
  for (let i3 = 0; i3 < sourceKeys.length; i3++) {
33361
33363
  const key = sourceKeys[i3];
33362
- if (isUnsafeProperty(key)) {
33363
- continue;
33364
- }
33364
+ if (isUnsafeProperty(key)) continue;
33365
33365
  let sourceValue = source[key];
33366
33366
  let targetValue = target[key];
33367
- if (isArguments(sourceValue)) {
33368
- sourceValue = { ...sourceValue };
33369
- }
33370
- if (isArguments(targetValue)) {
33371
- targetValue = { ...targetValue };
33372
- }
33373
- if (isBuffer(sourceValue)) {
33374
- sourceValue = cloneDeep(sourceValue);
33375
- }
33376
- if (Array.isArray(sourceValue)) {
33377
- if (Array.isArray(targetValue)) {
33378
- const cloned = [];
33379
- const targetKeys = Reflect.ownKeys(targetValue);
33380
- for (let i4 = 0; i4 < targetKeys.length; i4++) {
33381
- const targetKey = targetKeys[i4];
33382
- cloned[targetKey] = targetValue[targetKey];
33383
- }
33384
- targetValue = cloned;
33385
- } else if (isArrayLikeObject(targetValue)) {
33386
- const cloned = [];
33387
- for (let i4 = 0; i4 < targetValue.length; i4++) {
33388
- cloned[i4] = targetValue[i4];
33389
- }
33390
- targetValue = cloned;
33391
- } else {
33392
- targetValue = [];
33393
- }
33394
- }
33367
+ if (isArguments(sourceValue)) sourceValue = { ...sourceValue };
33368
+ if (isArguments(targetValue)) targetValue = { ...targetValue };
33369
+ if (isBuffer(sourceValue)) sourceValue = cloneDeep(sourceValue);
33370
+ if (Array.isArray(sourceValue)) if (Array.isArray(targetValue)) {
33371
+ const cloned = [];
33372
+ const targetKeys = Reflect.ownKeys(targetValue);
33373
+ for (let i4 = 0; i4 < targetKeys.length; i4++) {
33374
+ const targetKey = targetKeys[i4];
33375
+ cloned[targetKey] = targetValue[targetKey];
33376
+ }
33377
+ targetValue = cloned;
33378
+ } else if (isArrayLikeObject(targetValue)) {
33379
+ const cloned = [];
33380
+ for (let i4 = 0; i4 < targetValue.length; i4++) cloned[i4] = targetValue[i4];
33381
+ targetValue = cloned;
33382
+ } else targetValue = [];
33395
33383
  const merged = merge6(targetValue, sourceValue, key, target, source, stack);
33396
- if (merged !== void 0) {
33397
- target[key] = merged;
33398
- } else if (Array.isArray(sourceValue)) {
33399
- target[key] = mergeWithDeep(targetValue, sourceValue, merge6, stack);
33400
- } else if (isObjectLike(targetValue) && isObjectLike(sourceValue) && (isPlainObject(targetValue) || isPlainObject(sourceValue) || isTypedArray2(targetValue) || isTypedArray2(sourceValue))) {
33401
- target[key] = mergeWithDeep(targetValue, sourceValue, merge6, stack);
33402
- } else if (targetValue == null && isPlainObject(sourceValue)) {
33403
- target[key] = mergeWithDeep({}, sourceValue, merge6, stack);
33404
- } else if (targetValue == null && isTypedArray2(sourceValue)) {
33405
- target[key] = cloneDeep(sourceValue);
33406
- } else if (targetValue === void 0 || sourceValue !== void 0) {
33407
- target[key] = sourceValue;
33408
- }
33384
+ if (merged !== void 0) target[key] = merged;
33385
+ else if (Array.isArray(sourceValue)) target[key] = mergeWithDeep(targetValue, sourceValue, merge6, stack);
33386
+ else if (isObjectLike(targetValue) && isObjectLike(sourceValue) && (isPlainObject(targetValue) || isPlainObject(sourceValue) || isTypedArray2(targetValue) || isTypedArray2(sourceValue))) target[key] = mergeWithDeep(targetValue, sourceValue, merge6, stack);
33387
+ else if (targetValue == null && isPlainObject(sourceValue)) target[key] = mergeWithDeep({}, sourceValue, merge6, stack);
33388
+ else if (targetValue == null && isTypedArray2(sourceValue)) target[key] = cloneDeep(sourceValue);
33389
+ else if (targetValue === void 0 || sourceValue !== void 0) target[key] = sourceValue;
33409
33390
  }
33410
33391
  return target;
33411
33392
  }
33412
33393
  var init_mergeWith = __esm({
33413
33394
  "node_modules/es-toolkit/dist/compat/object/mergeWith.mjs"() {
33414
- init_cloneDeep();
33415
- init_isUnsafeProperty();
33416
- init_clone3();
33417
- init_isBuffer();
33418
33395
  init_isPrimitive();
33396
+ init_clone3();
33419
33397
  init_getSymbols();
33398
+ init_isBuffer();
33399
+ init_isUnsafeProperty();
33400
+ init_isPlainObject();
33401
+ init_cloneDeep();
33420
33402
  init_isArguments();
33421
- init_isArrayLikeObject();
33422
33403
  init_isObjectLike();
33423
- init_isPlainObject();
33404
+ init_isArrayLikeObject();
33424
33405
  init_isTypedArray2();
33425
33406
  }
33426
33407
  });
@@ -33431,41 +33412,33 @@ function merge2(object3, ...sources) {
33431
33412
  }
33432
33413
  var init_merge3 = __esm({
33433
33414
  "node_modules/es-toolkit/dist/compat/object/merge.mjs"() {
33434
- init_mergeWith();
33435
33415
  init_noop2();
33416
+ init_mergeWith();
33436
33417
  }
33437
33418
  });
33438
33419
 
33439
33420
  // node_modules/es-toolkit/dist/compat/predicate/isEmpty.mjs
33440
33421
  function isEmpty(value2) {
33441
- if (value2 == null) {
33442
- return true;
33443
- }
33422
+ if (value2 == null) return true;
33444
33423
  if (isArrayLike(value2)) {
33445
- if (typeof value2.splice !== "function" && typeof value2 !== "string" && !isBuffer(value2) && !isTypedArray2(value2) && !isArguments(value2)) {
33446
- return false;
33447
- }
33424
+ if (typeof value2.splice !== "function" && typeof value2 !== "string" && !isBuffer(value2) && !isTypedArray2(value2) && !isArguments(value2)) return false;
33448
33425
  return value2.length === 0;
33449
33426
  }
33450
33427
  if (typeof value2 === "object") {
33451
- if (value2 instanceof Map || value2 instanceof Set) {
33452
- return value2.size === 0;
33453
- }
33428
+ if (value2 instanceof Map || value2 instanceof Set) return value2.size === 0;
33454
33429
  const keys3 = Object.keys(value2);
33455
- if (isPrototype(value2)) {
33456
- return keys3.filter((x6) => x6 !== "constructor").length === 0;
33457
- }
33430
+ if (isPrototype(value2)) return keys3.filter((x6) => x6 !== "constructor").length === 0;
33458
33431
  return keys3.length === 0;
33459
33432
  }
33460
33433
  return true;
33461
33434
  }
33462
33435
  var init_isEmpty = __esm({
33463
33436
  "node_modules/es-toolkit/dist/compat/predicate/isEmpty.mjs"() {
33464
- init_isArguments();
33465
- init_isArrayLike();
33466
- init_isTypedArray2();
33467
33437
  init_isBuffer();
33438
+ init_isArrayLike();
33439
+ init_isArguments();
33468
33440
  init_isPrototype();
33441
+ init_isTypedArray2();
33469
33442
  }
33470
33443
  });
33471
33444
 
@@ -52686,7 +52659,7 @@ function rotatePosAndSkewByBox(pos, box, angleDegrees) {
52686
52659
  function requireHeap$1() {
52687
52660
  if (hasRequiredHeap$1) return heap$2.exports;
52688
52661
  hasRequiredHeap$1 = 1;
52689
- (function(module2, exports2) {
52662
+ (function(module2, exports$1) {
52690
52663
  (function() {
52691
52664
  var Heap2, defaultCmp, floor, heapify, heappop, heappush, heappushpop, heapreplace, insort, min10, nlargest, nsmallest, updateItem, _siftdown, _siftup;
52692
52665
  floor = Math.floor, min10 = Math.min;
@@ -55617,7 +55590,7 @@ function CanvasRenderer(options2) {
55617
55590
  var bb = getLabelBox(ele);
55618
55591
  var p3 = getCenterOffset(getLabelBox(ele));
55619
55592
  if (ele.isNode()) {
55620
- switch (ele.pstyle("text-halign").value) {
55593
+ switch (labelHalign(ele.pstyle("text-halign").value)) {
55621
55594
  case "left":
55622
55595
  p3.x = -bb.w - (bb.leftPad || 0);
55623
55596
  break;
@@ -55625,7 +55598,7 @@ function CanvasRenderer(options2) {
55625
55598
  p3.x = -(bb.rightPad || 0);
55626
55599
  break;
55627
55600
  }
55628
- switch (ele.pstyle("text-valign").value) {
55601
+ switch (labelValign(ele.pstyle("text-valign").value)) {
55629
55602
  case "top":
55630
55603
  p3.y = -bb.h - (bb.topPad || 0);
55631
55604
  break;
@@ -55895,7 +55868,7 @@ function getModule(type3, name, moduleType, moduleName) {
55895
55868
  keys: [type3, name, moduleType, moduleName]
55896
55869
  });
55897
55870
  }
55898
- var _window, navigator2, typeofstr, typeofobj, typeoffn, typeofhtmlele, instanceStr, string, fn$6, array2, plainObject, object, number$1, integer, htmlElement, elementOrCollection, element, collection, core2, stylesheet, event, emptyString, domElement, boundingBox, promise, ms, memoize3, camel2dash, dash2camel, prependCamel, capitalize, endsWith, number6, rgba3, rgbaNoBackRefs, hsla2, hslaNoBackRefs, hex3, hex6, ascending3, descending2, extend3, hex2tuple, hsl2tuple, rgb2tuple, colorname2tuple, color2tuple, colors, setMap, getMap, commonjsGlobal, isObject_12, hasRequiredIsObject, _freeGlobal, hasRequired_freeGlobal, _root, hasRequired_root, now_1, hasRequiredNow, _trimmedEndIndex, hasRequired_trimmedEndIndex, _baseTrim, hasRequired_baseTrim, _Symbol, hasRequired_Symbol, _getRawTag, hasRequired_getRawTag, _objectToString, hasRequired_objectToString, _baseGetTag, hasRequired_baseGetTag, isObjectLike_1, hasRequiredIsObjectLike, isSymbol_1, hasRequiredIsSymbol, toNumber_1, hasRequiredToNumber, debounce_1, hasRequiredDebounce, debounceExports, debounce, performance$1, pnow, raf, requestAnimationFrame2, performanceNow, DEFAULT_HASH_SEED, K4, DEFAULT_HASH_SEED_ALT, hashIterableInts, hashInt, hashIntAlt, combineHashes, combineHashesArray, hashArrays, hashIntsArray, hashString, hashStrings, hashStringsArray, movePointByBoxAspect, warningsEnabled, warnSupported, traceSupported, MAX_INT$1, trueify, falsify, zeroify, noop$1, error, warnings, warn, clone5, copy3, copyArray2, uuid, _staticEmptyObject, staticEmptyObject, defaults$g, removeFromArray, clearArray, push, getPrefixedProperty, setPrefixedProperty, ObjectMap, Map$1, undef, ObjectSet, Set$1, Element, defineSearch, elesfn$v, heap$2, heap$1, hasRequiredHeap$1, heap, hasRequiredHeap, heapExports, Heap, dijkstraDefaults, elesfn$u, elesfn$t, aStarDefaults, elesfn$s, floydWarshallDefaults, elesfn$r, bellmanFordDefaults, elesfn$q, sqrt2, collapse, contractUntil, elesfn$p, _Math$hypot, copyPosition, modelToRenderedPosition$1, renderedToModelPosition, array2point, min5, max5, mean, median, deg2rad, getAngleFromDisp, log22, signum, dist, sqdist, inPlaceSumNormalize, qbezierAt, qbezierPtAt, lineAt, bound, makeBoundingBox, copyBoundingBox, clearBoundingBox, updateBoundingBox, expandBoundingBoxByPoint, expandBoundingBox, expandBoundingBoxSides, assignBoundingBox, boundingBoxesIntersect, inBoundingBox, pointInBoundingBox, boundingBoxInBoundingBox, hypot, roundRectangleIntersectLine, inLineVicinity, inBezierVicinity, solveQuadratic, solveCubic, sqdistToQuadraticBezier, sqdistToFiniteLine, pointInsidePolygonPoints, pointInsidePolygon, pointInsideRoundPolygon, joinLines, expandPolygon, intersectLineEllipse, checkInEllipse, intersectLineCircle, midOfThree, finiteLinesIntersect, transformPoints, polygonIntersectLine, roundPolygonIntersectLine, shortenIntersection, generateUnitNgonPointsFitToSquare, fitPolygonToSquare, generateUnitNgonPoints, getRoundRectangleRadius, getRoundPolygonRadius, getCutRectangleCornerLength, bezierPtsToQuadCoeff, getBarrelCurveConstants, pageRankDefaults, elesfn$o, defaults$f, elesfn$n, defaults$e, elesfn$m, defaults$d, elesfn$l, defaults$c, setOptions$3, getSimilarity$1, addLoops, normalize2, mmult, expand, inflate, hasConverged, assign$2, isDuplicate, removeDuplicates, markovClustering, markovClustering$1, identity$1, absDiff, addAbsDiff, addSquaredDiff, sqrt3, maxAbsDiff, getDistance, distances, defaults$b, setOptions$2, getDist, randomCentroids, classify, buildCluster, haveValuesConverged, haveMatricesConverged, seenBefore, randomMedoids, findCost, kMeans, kMedoids, updateCentroids, updateMembership, assign$1, fuzzyCMeans, kClustering, defaults$a, linkageAliases, setOptions$1, mergeClosest, _getAllChildren, _buildDendrogram, _buildClustersFromTree, hierarchicalClustering, hierarchicalClustering$1, defaults$9, setOptions4, getSimilarity2, getPreference, findExemplars, assignClusters, assign3, affinityPropagation, affinityPropagation$1, hierholzerDefaults, elesfn$k, hopcroftTarjanBiconnected, hopcroftTarjanBiconnected$1, tarjanStronglyConnected, tarjanStronglyConnected$1, elesfn$j, STATE_PENDING, STATE_FULFILLED, STATE_REJECTED, _api, deliver, execute, execute_handlers, resolver, _resolve, Promise$1, Animation, anifn, define$3, isArray_1, hasRequiredIsArray, _isKey, hasRequired_isKey, isFunction_1, hasRequiredIsFunction, _coreJsData, hasRequired_coreJsData, _isMasked, hasRequired_isMasked, _toSource, hasRequired_toSource, _baseIsNative, hasRequired_baseIsNative, _getValue, hasRequired_getValue, _getNative, hasRequired_getNative, _nativeCreate, hasRequired_nativeCreate, _hashClear, hasRequired_hashClear, _hashDelete, hasRequired_hashDelete, _hashGet, hasRequired_hashGet, _hashHas, hasRequired_hashHas, _hashSet, hasRequired_hashSet, _Hash, hasRequired_Hash, _listCacheClear, hasRequired_listCacheClear, eq_1, hasRequiredEq, _assocIndexOf, hasRequired_assocIndexOf, _listCacheDelete, hasRequired_listCacheDelete, _listCacheGet, hasRequired_listCacheGet, _listCacheHas, hasRequired_listCacheHas, _listCacheSet, hasRequired_listCacheSet, _ListCache, hasRequired_ListCache, _Map, hasRequired_Map, _mapCacheClear, hasRequired_mapCacheClear, _isKeyable, hasRequired_isKeyable, _getMapData, hasRequired_getMapData, _mapCacheDelete, hasRequired_mapCacheDelete, _mapCacheGet, hasRequired_mapCacheGet, _mapCacheHas, hasRequired_mapCacheHas, _mapCacheSet, hasRequired_mapCacheSet, _MapCache, hasRequired_MapCache, memoize_1, hasRequiredMemoize, _memoizeCapped, hasRequired_memoizeCapped, _stringToPath, hasRequired_stringToPath, _arrayMap, hasRequired_arrayMap, _baseToString, hasRequired_baseToString, toString_1, hasRequiredToString, _castPath, hasRequired_castPath, _toKey, hasRequired_toKey, _baseGet, hasRequired_baseGet, get_1, hasRequiredGet, getExports, get4, _defineProperty, hasRequired_defineProperty, _baseAssignValue, hasRequired_baseAssignValue, _assignValue, hasRequired_assignValue, _isIndex, hasRequired_isIndex, _baseSet, hasRequired_baseSet, set_1, hasRequiredSet, setExports, set4, _copyArray, hasRequired_copyArray, toPath_1, hasRequiredToPath, toPathExports, toPath, define$2, define$1, define2, elesfn$i, elesfn$h, tokens, newQuery, Type2, stateSelectors, lookup, stateSelectorMatches, stateSelectorRegex, cleanMetaChars, replaceLastQuery, exprs, consumeExpr, consumeWhitespace, parse, toString3, parse$1, valCmp, boolCmp, existCmp, data$1, meta, match, matches$1, filter3, matches31, matching, Selector, selfn, elesfn$g, cache, elesfn$f, fn$5, elesfn$e, data3, elesfn$d, fn$4, elesfn$c, beforePositionSet, positionDef, position2, fn$3, elesfn$b, noninf, updateBounds, updateBoundsFromBox, prefixedProperty, updateBoundsFromArrow, updateBoundsFromLabel, updateBoundsFromOutline, updateBoundsFromMiter, updateBoundsFromMiterBorder, boundingBoxImpl, getKey, getBoundingBoxPosKey, cachedBoundingBoxImpl, defBbOpts, defBbOptsKey, filledBbOpts, bounds, fn$2, elesfn$a, defineDimFns, widthHeight, ifEdge, ifEdgeRenderedPosition, ifEdgeRenderedPositions, controlPoints2, segmentPoints, sourceEndpoint, targetEndpoint, midpoint, pts, renderedName, edgePoints, dimensions, Event2, eventRegex, universalNamespace, defaults$8, defaultsKeys, emptyOpts, p2, forEachEvent, makeEventObj, forEachEventObj, emitterOptions$1, argSelector$1, elesfn$9, elesfn$8, fn$1, elesfn$7, zIndexSort, elesfn$6, defineSymbolIterator, getLayoutDimensionOptions, elesfn$5, elesfn$4, eleTakesUpSpace, eleInteractive, parentInteractive, eleVisible, edgeVisibleViaNode, elesfn$3, elesfn$2, defineDagExtremity, defineDagOneHop, defineDagAllHops, Collection, elesfn$1, corefn$9, generateSpringRK4, cubicBezier, easings, corefn$8, emitterOptions, argSelector2, elesfn, corefn$7, corefn$6, corefn$5, rendererDefaults, corefn$4, corefn$3, styfn$8, TRUE, FALSE, styfn$7, styfn$6, styfn$5, styfn$4, styfn$3, styfn$2, styfn$1, _Style, styfn, corefn$2, defaultSelectionType, corefn$1, fn2, Core, corefn, defaults$7, deprecatedOptionDefaults, getInfo, setInfo, defaults$6, defaults$5, DEBUG, defaults$4, createLayoutInfo, findLCA, _findLCA_aux, printLayoutInfo, randomizePositions, getScaleInBoundsFn, refreshPositions, step, calculateNodeForces, randomDistance, nodeRepulsion2, nodesOverlap, findClippingPoint, calculateEdgeForces, calculateGravityForces, propagateForces, updatePositions, limitForce, _updateAncestryBoundaries, separateComponents, defaults$3, defaults$2, defaults$1, defaults3, layout4, noop5, throwImgErr, BRp$f, BRp$e, BRp$d, x4, y4, v1, v22, sinA, sinA90, radDirection, drawDirection, angle, halfAngle, cRadius, lenOut, radius, limit, startX, startY, stopX, stopY, lastPoint, asVec, invertVec, calcCornerArc, AVOID_IMPOSSIBLE_BEZIER_CONSTANT, AVOID_IMPOSSIBLE_BEZIER_CONSTANT_L, BRp$c, BRp$b, BRp$a, BRp$9, lineAngleFromDelta, lineAngle, bezierAngle, BRp$8, TOO_SMALL_CUT_RECT, warnedCutRect, BRp$7, BRp$6, BRp$5, BRp$4, setGrabState, setGrabbed, setFreed, BRp$3, BRp$2, BRp$1, beforeRenderCallbacks, BaseRenderer, BR, BRp, fullFpsTime, defs, ElementTextureCacheLookup, minTxrH, txrStepH, minLvl$1, maxLvl$1, maxZoom$1, eleTxrSpacing, defTxrWidth, maxTxrW, maxTxrH, minUtility, maxFullness, maxFullnessChecks, deqCost$1, deqAvgCost$1, deqNoDrawCost$1, deqFastCost$1, deqRedrawThreshold$1, maxDeqSize$1, getTxrReasons, initDefaults, ElementTextureCache, ETCp, defNumLayers, minLvl, maxLvl, maxZoom2, deqRedrawThreshold, refineEleDebounceTime, deqCost, deqAvgCost, deqNoDrawCost, deqFastCost, maxDeqSize, invalidThreshold, maxLayerArea, maxLayerDim, useHighQualityEleTxrReqs, LayeredTextureCache, LTCp, layerIdPool, MAX_INT, CRp$b, impl, CRp$a, getZeroRotation, getLabelRotation, getSourceLabelRotation, getTargetLabelRotation, getOpacity, getTextOpacity, CRp$9, drawEdgeOverlayUnderlay, CRp$8, CRp$7, CRp$6, drawNodeOverlayUnderlay, CRp$5, motionBlurDelay, fpsHeight, ARRAY_TYPE, Atlas, AtlasCollection, AtlasManager, AtlasBatchManager, circleSD, rectangleSD, roundRectangleSD, ellipseSD, RENDER_TARGET, TEX_PICKING_MODE, TEXTURE, EDGE_STRAIGHT, EDGE_CURVE_SEGMENT, EDGE_ARROW, RECTANGLE, ROUND_RECTANGLE, BOTTOM_ROUND_RECTANGLE, ELLIPSE, ElementDrawingWebGL, CRp$4, getStyleKeysForLabel, getBoundingBoxForLabel, CRp$3, sin0, cos0, sin2, cos2, ellipseStepSize, i3, CRp$2, CRp$1, CR, CRp, pathsImpld, renderer2, incExts, extensions, modules, extension2, _Stylesheet, sheetfn, version2, cytoscape2;
55871
+ var _window, navigator2, typeofstr, typeofobj, typeoffn, typeofhtmlele, instanceStr, string, fn$6, array2, plainObject, object, number$1, integer, htmlElement, elementOrCollection, element, collection, core2, stylesheet, event, emptyString, domElement, boundingBox, promise, ms, memoize3, camel2dash, dash2camel, prependCamel, capitalize, endsWith, number6, rgba3, rgbaNoBackRefs, hsla2, hslaNoBackRefs, hex3, hex6, ascending3, descending2, extend3, hex2tuple, hsl2tuple, rgb2tuple, colorname2tuple, color2tuple, colors, setMap, getMap, commonjsGlobal, isObject_12, hasRequiredIsObject, _freeGlobal, hasRequired_freeGlobal, _root, hasRequired_root, now_1, hasRequiredNow, _trimmedEndIndex, hasRequired_trimmedEndIndex, _baseTrim, hasRequired_baseTrim, _Symbol, hasRequired_Symbol, _getRawTag, hasRequired_getRawTag, _objectToString, hasRequired_objectToString, _baseGetTag, hasRequired_baseGetTag, isObjectLike_1, hasRequiredIsObjectLike, isSymbol_1, hasRequiredIsSymbol, toNumber_1, hasRequiredToNumber, debounce_1, hasRequiredDebounce, debounceExports, debounce, performance$1, pnow, raf, requestAnimationFrame2, performanceNow, DEFAULT_HASH_SEED, K4, DEFAULT_HASH_SEED_ALT, hashIterableInts, hashInt, hashIntAlt, combineHashes, combineHashesArray, hashArrays, hashIntsArray, hashString, hashStrings, hashStringsArray, movePointByBoxAspect, warningsEnabled, warnSupported, traceSupported, MAX_INT$1, trueify, falsify, zeroify, noop$1, error, warnings, warn, clone5, copy3, copyArray2, uuid, _staticEmptyObject, staticEmptyObject, defaults$g, removeFromArray, clearArray, push, getPrefixedProperty, setPrefixedProperty, ObjectMap, Map$1, undef, ObjectSet, Set$1, Element, defineSearch, elesfn$v, heap$2, heap$1, hasRequiredHeap$1, heap, hasRequiredHeap, heapExports, Heap, dijkstraDefaults, elesfn$u, elesfn$t, aStarDefaults, elesfn$s, floydWarshallDefaults, elesfn$r, bellmanFordDefaults, elesfn$q, sqrt2, collapse, contractUntil, elesfn$p, _Math$hypot, copyPosition, modelToRenderedPosition$1, renderedToModelPosition, array2point, min5, max5, mean, median, deg2rad, getAngleFromDisp, log22, signum, dist, sqdist, inPlaceSumNormalize, qbezierAt, qbezierPtAt, lineAt, bound, makeBoundingBox, copyBoundingBox, clearBoundingBox, updateBoundingBox, expandBoundingBoxByPoint, expandBoundingBox, expandBoundingBoxSides, assignBoundingBox, boundingBoxesIntersect, inBoundingBox, pointInBoundingBox, boundingBoxInBoundingBox, hypot, roundRectangleIntersectLine, inLineVicinity, inBezierVicinity, solveQuadratic, solveCubic, sqdistToQuadraticBezier, sqdistToFiniteLine, pointInsidePolygonPoints, pointInsidePolygon, pointInsideRoundPolygon, joinLines, expandPolygon, intersectLineEllipse, checkInEllipse, intersectLineCircle, midOfThree, finiteLinesIntersect, transformPoints, polygonIntersectLine, roundPolygonIntersectLine, shortenIntersection, generateUnitNgonPointsFitToSquare, fitPolygonToSquare, generateUnitNgonPoints, getRoundRectangleRadius, getRoundPolygonRadius, getCutRectangleCornerLength, bezierPtsToQuadCoeff, getBarrelCurveConstants, pageRankDefaults, elesfn$o, defaults$f, elesfn$n, defaults$e, elesfn$m, defaults$d, elesfn$l, defaults$c, setOptions$3, getSimilarity$1, addLoops, normalize2, mmult, expand, inflate, hasConverged, assign$2, isDuplicate, removeDuplicates, markovClustering, markovClustering$1, identity$1, absDiff, addAbsDiff, addSquaredDiff, sqrt3, maxAbsDiff, getDistance, distances, defaults$b, setOptions$2, getDist, randomCentroids, classify, buildCluster, haveValuesConverged, haveMatricesConverged, seenBefore, randomMedoids, findCost, kMeans, kMedoids, updateCentroids, updateMembership, assign$1, fuzzyCMeans, kClustering, defaults$a, linkageAliases, setOptions$1, mergeClosest, _getAllChildren, _buildDendrogram, _buildClustersFromTree, hierarchicalClustering, hierarchicalClustering$1, defaults$9, setOptions4, getSimilarity2, getPreference, findExemplars, assignClusters, assign3, affinityPropagation, affinityPropagation$1, hierholzerDefaults, elesfn$k, hopcroftTarjanBiconnected, hopcroftTarjanBiconnected$1, tarjanStronglyConnected, tarjanStronglyConnected$1, elesfn$j, STATE_PENDING, STATE_FULFILLED, STATE_REJECTED, _api, deliver, execute, execute_handlers, resolver, _resolve, Promise$1, Animation, anifn, define$3, isArray_1, hasRequiredIsArray, _isKey, hasRequired_isKey, isFunction_1, hasRequiredIsFunction, _coreJsData, hasRequired_coreJsData, _isMasked, hasRequired_isMasked, _toSource, hasRequired_toSource, _baseIsNative, hasRequired_baseIsNative, _getValue, hasRequired_getValue, _getNative, hasRequired_getNative, _nativeCreate, hasRequired_nativeCreate, _hashClear, hasRequired_hashClear, _hashDelete, hasRequired_hashDelete, _hashGet, hasRequired_hashGet, _hashHas, hasRequired_hashHas, _hashSet, hasRequired_hashSet, _Hash, hasRequired_Hash, _listCacheClear, hasRequired_listCacheClear, eq_1, hasRequiredEq, _assocIndexOf, hasRequired_assocIndexOf, _listCacheDelete, hasRequired_listCacheDelete, _listCacheGet, hasRequired_listCacheGet, _listCacheHas, hasRequired_listCacheHas, _listCacheSet, hasRequired_listCacheSet, _ListCache, hasRequired_ListCache, _Map, hasRequired_Map, _mapCacheClear, hasRequired_mapCacheClear, _isKeyable, hasRequired_isKeyable, _getMapData, hasRequired_getMapData, _mapCacheDelete, hasRequired_mapCacheDelete, _mapCacheGet, hasRequired_mapCacheGet, _mapCacheHas, hasRequired_mapCacheHas, _mapCacheSet, hasRequired_mapCacheSet, _MapCache, hasRequired_MapCache, memoize_1, hasRequiredMemoize, _memoizeCapped, hasRequired_memoizeCapped, _stringToPath, hasRequired_stringToPath, _arrayMap, hasRequired_arrayMap, _baseToString, hasRequired_baseToString, toString_1, hasRequiredToString, _castPath, hasRequired_castPath, _toKey, hasRequired_toKey, _baseGet, hasRequired_baseGet, get_1, hasRequiredGet, getExports, get4, _defineProperty, hasRequired_defineProperty, _baseAssignValue, hasRequired_baseAssignValue, _assignValue, hasRequired_assignValue, _isIndex, hasRequired_isIndex, _baseSet, hasRequired_baseSet, set_1, hasRequiredSet, setExports, set4, _copyArray, hasRequired_copyArray, toPath_1, hasRequiredToPath, toPathExports, toPath, define$2, define$1, define2, elesfn$i, elesfn$h, tokens, newQuery, Type2, stateSelectors, lookup, stateSelectorMatches, stateSelectorRegex, cleanMetaChars, replaceLastQuery, exprs, consumeExpr, consumeWhitespace, parse, toString3, parse$1, valCmp, boolCmp, existCmp, data$1, meta, match, matches$1, filter3, matches31, matching, Selector, selfn, elesfn$g, cache, elesfn$f, fn$5, elesfn$e, data3, elesfn$d, fn$4, elesfn$c, beforePositionSet, positionDef, position2, labelHalign, labelValign, labelJustification, fn$3, elesfn$b, noninf, updateBounds, updateBoundsFromBox, prefixedProperty, updateBoundsFromArrow, updateBoundsFromLabel, updateBoundsFromOutline, updateBoundsFromMiter, updateBoundsFromMiterBorder, boundingBoxImpl, getKey, getBoundingBoxPosKey, cachedBoundingBoxImpl, defBbOpts, defBbOptsKey, filledBbOpts, bounds, fn$2, elesfn$a, defineDimFns, widthHeight, ifEdge, ifEdgeRenderedPosition, ifEdgeRenderedPositions, controlPoints2, segmentPoints, sourceEndpoint, targetEndpoint, midpoint, pts, renderedName, edgePoints, dimensions, Event2, eventRegex, universalNamespace, defaults$8, defaultsKeys, emptyOpts, p2, forEachEvent, makeEventObj, forEachEventObj, emitterOptions$1, argSelector$1, elesfn$9, elesfn$8, fn$1, elesfn$7, zIndexSort, elesfn$6, defineSymbolIterator, getLayoutDimensionOptions, elesfn$5, elesfn$4, eleTakesUpSpace, eleInteractive, parentInteractive, eleVisible, edgeVisibleViaNode, elesfn$3, elesfn$2, defineDagExtremity, defineDagOneHop, defineDagAllHops, Collection, elesfn$1, corefn$9, generateSpringRK4, cubicBezier, easings, corefn$8, emitterOptions, argSelector2, elesfn, corefn$7, corefn$6, corefn$5, rendererDefaults, corefn$4, corefn$3, styfn$8, TRUE, FALSE, styfn$7, styfn$6, styfn$5, styfn$4, styfn$3, styfn$2, styfn$1, _Style, styfn, corefn$2, defaultSelectionType, corefn$1, fn2, Core, corefn, defaults$7, deprecatedOptionDefaults, getInfo, setInfo, defaults$6, defaults$5, DEBUG, defaults$4, createLayoutInfo, findLCA, _findLCA_aux, printLayoutInfo, randomizePositions, getScaleInBoundsFn, refreshPositions, step, calculateNodeForces, randomDistance, nodeRepulsion2, nodesOverlap, findClippingPoint, calculateEdgeForces, calculateGravityForces, propagateForces, updatePositions, limitForce, _updateAncestryBoundaries, separateComponents, defaults$3, defaults$2, defaults$1, defaults3, layout4, noop5, throwImgErr, BRp$f, BRp$e, BRp$d, x4, y4, v1, v22, sinA, sinA90, radDirection, drawDirection, angle, halfAngle, cRadius, lenOut, radius, limit, startX, startY, stopX, stopY, lastPoint, asVec, invertVec, calcCornerArc, AVOID_IMPOSSIBLE_BEZIER_CONSTANT, AVOID_IMPOSSIBLE_BEZIER_CONSTANT_L, BRp$c, BRp$b, BRp$a, BRp$9, lineAngleFromDelta, lineAngle, bezierAngle, BRp$8, TOO_SMALL_CUT_RECT, warnedCutRect, BRp$7, BRp$6, BRp$5, BRp$4, setGrabState, setGrabbed, setFreed, BRp$3, BRp$2, BRp$1, beforeRenderCallbacks, BaseRenderer, BR, BRp, fullFpsTime, defs, ElementTextureCacheLookup, minTxrH, txrStepH, minLvl$1, maxLvl$1, maxZoom$1, eleTxrSpacing, defTxrWidth, maxTxrW, maxTxrH, minUtility, maxFullness, maxFullnessChecks, deqCost$1, deqAvgCost$1, deqNoDrawCost$1, deqFastCost$1, deqRedrawThreshold$1, maxDeqSize$1, getTxrReasons, initDefaults, ElementTextureCache, ETCp, defNumLayers, minLvl, maxLvl, maxZoom2, deqRedrawThreshold, refineEleDebounceTime, deqCost, deqAvgCost, deqNoDrawCost, deqFastCost, maxDeqSize, invalidThreshold, maxLayerArea, maxLayerDim, useHighQualityEleTxrReqs, LayeredTextureCache, LTCp, layerIdPool, MAX_INT, CRp$b, impl, CRp$a, getZeroRotation, getLabelRotation, getSourceLabelRotation, getTargetLabelRotation, getOpacity, getTextOpacity, CRp$9, drawEdgeOverlayUnderlay, CRp$8, CRp$7, CRp$6, drawNodeOverlayUnderlay, CRp$5, motionBlurDelay, fpsHeight, ARRAY_TYPE, Atlas, AtlasCollection, AtlasManager, AtlasBatchManager, circleSD, rectangleSD, roundRectangleSD, ellipseSD, RENDER_TARGET, TEX_PICKING_MODE, TEXTURE, EDGE_STRAIGHT, EDGE_CURVE_SEGMENT, EDGE_ARROW, RECTANGLE, ROUND_RECTANGLE, BOTTOM_ROUND_RECTANGLE, ELLIPSE, ElementDrawingWebGL, CRp$4, getStyleKeysForLabel, getBoundingBoxForLabel, CRp$3, sin0, cos0, sin2, cos2, ellipseStepSize, i3, CRp$2, CRp$1, CR, CRp, pathsImpld, renderer2, incExts, extensions, modules, extension2, _Stylesheet, sheetfn, version2, cytoscape2;
55899
55872
  var init_cytoscape_esm = __esm({
55900
55873
  "node_modules/cytoscape/dist/cytoscape.esm.mjs"() {
55901
55874
  _window = typeof window === "undefined" ? null : window;
@@ -60002,19 +59975,19 @@ var init_cytoscape_esm = __esm({
60002
59975
  A2[_i9 * n3 + _i9] = (1 - opts.damping) * (sum2 - Rp[_i9]) + opts.damping * old[_i9];
60003
59976
  }
60004
59977
  var K5 = 0;
60005
- for (var _i10 = 0; _i10 < n3; _i10++) {
60006
- var E3 = A2[_i10 * n3 + _i10] + R2[_i10 * n3 + _i10] > 0 ? 1 : 0;
60007
- e6[iter % opts.minIterations * n3 + _i10] = E3;
59978
+ for (var _i0 = 0; _i0 < n3; _i0++) {
59979
+ var E3 = A2[_i0 * n3 + _i0] + R2[_i0 * n3 + _i0] > 0 ? 1 : 0;
59980
+ e6[iter % opts.minIterations * n3 + _i0] = E3;
60008
59981
  K5 += E3;
60009
59982
  }
60010
59983
  if (K5 > 0 && (iter >= opts.minIterations - 1 || iter == opts.maxIterations - 1)) {
60011
59984
  var _sum = 0;
60012
- for (var _i11 = 0; _i11 < n3; _i11++) {
60013
- se2[_i11] = 0;
59985
+ for (var _i1 = 0; _i1 < n3; _i1++) {
59986
+ se2[_i1] = 0;
60014
59987
  for (var _j5 = 0; _j5 < opts.minIterations; _j5++) {
60015
- se2[_i11] += e6[_j5 * n3 + _i11];
59988
+ se2[_i1] += e6[_j5 * n3 + _i1];
60016
59989
  }
60017
- if (se2[_i11] === 0 || se2[_i11] === opts.minIterations) {
59990
+ if (se2[_i1] === 0 || se2[_i1] === opts.minIterations) {
60018
59991
  _sum++;
60019
59992
  }
60020
59993
  }
@@ -60029,11 +60002,11 @@ var init_cytoscape_esm = __esm({
60029
60002
  for (var c3 = 0; c3 < exemplarsIndices.length; c3++) {
60030
60003
  clusters[exemplarsIndices[c3]] = [];
60031
60004
  }
60032
- for (var _i12 = 0; _i12 < nodes5.length; _i12++) {
60033
- var pos = id2position[nodes5[_i12].id()];
60005
+ for (var _i10 = 0; _i10 < nodes5.length; _i10++) {
60006
+ var pos = id2position[nodes5[_i10].id()];
60034
60007
  var clusterIndex = clusterIndices[pos];
60035
60008
  if (clusterIndex != null) {
60036
- clusters[clusterIndex].push(nodes5[_i12]);
60009
+ clusters[clusterIndex].push(nodes5[_i10]);
60037
60010
  }
60038
60011
  }
60039
60012
  var retClusters = new Array(exemplarsIndices.length);
@@ -61508,7 +61481,7 @@ var init_cytoscape_esm = __esm({
61508
61481
  query: true,
61509
61482
  regex: "\\[\\s*(" + tokens.variable + ")\\s*\\]",
61510
61483
  populate: function populate5(selector, query, _ref9) {
61511
- var _ref10 = _slicedToArray2(_ref9, 1), variable = _ref10[0];
61484
+ var _ref0 = _slicedToArray2(_ref9, 1), variable = _ref0[0];
61512
61485
  query.checks.push({
61513
61486
  type: Type2.DATA_EXIST,
61514
61487
  field: cleanMetaChars(variable)
@@ -61518,8 +61491,8 @@ var init_cytoscape_esm = __esm({
61518
61491
  name: "dataCompare",
61519
61492
  query: true,
61520
61493
  regex: "\\[\\s*(" + tokens.variable + ")\\s*(" + tokens.comparatorOp + ")\\s*(" + tokens.value + ")\\s*\\]",
61521
- populate: function populate6(selector, query, _ref11) {
61522
- var _ref12 = _slicedToArray2(_ref11, 3), variable = _ref12[0], comparatorOp = _ref12[1], value2 = _ref12[2];
61494
+ populate: function populate6(selector, query, _ref1) {
61495
+ var _ref10 = _slicedToArray2(_ref1, 3), variable = _ref10[0], comparatorOp = _ref10[1], value2 = _ref10[2];
61523
61496
  var valueIsString = new RegExp("^" + tokens.string + "$").exec(value2) != null;
61524
61497
  if (valueIsString) {
61525
61498
  value2 = value2.substring(1, value2.length - 1);
@@ -61537,8 +61510,8 @@ var init_cytoscape_esm = __esm({
61537
61510
  name: "dataBool",
61538
61511
  query: true,
61539
61512
  regex: "\\[\\s*(" + tokens.boolOp + ")\\s*(" + tokens.variable + ")\\s*\\]",
61540
- populate: function populate7(selector, query, _ref13) {
61541
- var _ref14 = _slicedToArray2(_ref13, 2), boolOp = _ref14[0], variable = _ref14[1];
61513
+ populate: function populate7(selector, query, _ref11) {
61514
+ var _ref12 = _slicedToArray2(_ref11, 2), boolOp = _ref12[0], variable = _ref12[1];
61542
61515
  query.checks.push({
61543
61516
  type: Type2.DATA_BOOL,
61544
61517
  field: cleanMetaChars(variable),
@@ -61549,8 +61522,8 @@ var init_cytoscape_esm = __esm({
61549
61522
  name: "metaCompare",
61550
61523
  query: true,
61551
61524
  regex: "\\[\\[\\s*(" + tokens.meta + ")\\s*(" + tokens.comparatorOp + ")\\s*(" + tokens.number + ")\\s*\\]\\]",
61552
- populate: function populate8(selector, query, _ref15) {
61553
- var _ref16 = _slicedToArray2(_ref15, 3), meta3 = _ref16[0], comparatorOp = _ref16[1], number7 = _ref16[2];
61525
+ populate: function populate8(selector, query, _ref13) {
61526
+ var _ref14 = _slicedToArray2(_ref13, 3), meta3 = _ref14[0], comparatorOp = _ref14[1], number7 = _ref14[2];
61554
61527
  query.checks.push({
61555
61528
  type: Type2.META_COMPARE,
61556
61529
  field: cleanMetaChars(meta3),
@@ -62782,6 +62755,44 @@ var init_cytoscape_esm = __esm({
62782
62755
  fn$4.renderedPoint = fn$4.renderedPosition;
62783
62756
  fn$4.relativePoint = fn$4.relativePosition;
62784
62757
  position2 = elesfn$c;
62758
+ labelHalign = function labelHalign2(halign) {
62759
+ switch (halign) {
62760
+ case "left":
62761
+ case "right-inside":
62762
+ return "left";
62763
+ case "right":
62764
+ case "left-inside":
62765
+ return "right";
62766
+ default:
62767
+ return "center";
62768
+ }
62769
+ };
62770
+ labelValign = function labelValign2(valign) {
62771
+ switch (valign) {
62772
+ case "top":
62773
+ case "bottom-inside":
62774
+ return "top";
62775
+ case "bottom":
62776
+ case "top-inside":
62777
+ return "bottom";
62778
+ default:
62779
+ return "center";
62780
+ }
62781
+ };
62782
+ labelJustification = function labelJustification2(halign) {
62783
+ switch (halign) {
62784
+ case "left":
62785
+ return "right";
62786
+ case "right":
62787
+ return "left";
62788
+ case "left-inside":
62789
+ return "left";
62790
+ case "right-inside":
62791
+ return "right";
62792
+ default:
62793
+ return "center";
62794
+ }
62795
+ };
62785
62796
  fn$3 = elesfn$b = {};
62786
62797
  elesfn$b.renderedBoundingBox = function(options2) {
62787
62798
  var bb = this.boundingBox(options2);
@@ -63042,7 +63053,7 @@ var init_cytoscape_esm = __esm({
63042
63053
  ly1 = labelY - lh_2;
63043
63054
  ly2 = labelY + lh_2;
63044
63055
  } else {
63045
- switch (halign.value) {
63056
+ switch (labelHalign(halign.value)) {
63046
63057
  case "left":
63047
63058
  lx1 = labelX - lw;
63048
63059
  lx2 = labelX;
@@ -63056,7 +63067,7 @@ var init_cytoscape_esm = __esm({
63056
63067
  lx2 = labelX + lw;
63057
63068
  break;
63058
63069
  }
63059
- switch (valign.value) {
63070
+ switch (labelValign(valign.value)) {
63060
63071
  case "top":
63061
63072
  ly1 = labelY - lh;
63062
63073
  ly2 = labelY;
@@ -63101,7 +63112,7 @@ var init_cytoscape_esm = __esm({
63101
63112
  var xo = (lx1 + lx2) / 2;
63102
63113
  var yo = (ly1 + ly2) / 2;
63103
63114
  if (!isEdge2) {
63104
- switch (halign.value) {
63115
+ switch (labelHalign(halign.value)) {
63105
63116
  case "left":
63106
63117
  xo = lx2;
63107
63118
  break;
@@ -63109,7 +63120,7 @@ var init_cytoscape_esm = __esm({
63109
63120
  xo = lx1;
63110
63121
  break;
63111
63122
  }
63112
- switch (valign.value) {
63123
+ switch (labelValign(valign.value)) {
63113
63124
  case "top":
63114
63125
  yo = ly2;
63115
63126
  break;
@@ -67832,14 +67843,17 @@ var init_cytoscape_esm = __esm({
67832
67843
  enums: ["auto", "manual"]
67833
67844
  },
67834
67845
  valign: {
67835
- enums: ["top", "center", "bottom"]
67846
+ enums: ["top", "top-inside", "center", "bottom", "bottom-inside"]
67836
67847
  },
67837
67848
  halign: {
67838
- enums: ["left", "center", "right"]
67849
+ enums: ["left", "left-inside", "center", "right", "right-inside"]
67839
67850
  },
67840
67851
  justification: {
67841
67852
  enums: ["left", "center", "right", "auto"]
67842
67853
  },
67854
+ textMetrics: {
67855
+ enums: ["font", "glyph"]
67856
+ },
67843
67857
  text: {
67844
67858
  string: true
67845
67859
  },
@@ -68126,6 +68140,9 @@ var init_cytoscape_esm = __esm({
68126
68140
  }, {
68127
68141
  name: "text-justification",
68128
68142
  type: t5.justification
68143
+ }, {
68144
+ name: "text-metrics",
68145
+ type: t5.textMetrics
68129
68146
  }, {
68130
68147
  name: "box-select-labels",
68131
68148
  type: t5.bool,
@@ -68843,6 +68860,7 @@ var init_cytoscape_esm = __esm({
68843
68860
  "underlay-padding": 10,
68844
68861
  "underlay-shape": "round-rectangle",
68845
68862
  "underlay-corner-radius": "auto",
68863
+ "text-metrics": "font",
68846
68864
  "transition-property": "none",
68847
68865
  "transition-duration": 0,
68848
68866
  "transition-delay": 0,
@@ -71479,7 +71497,7 @@ var init_cytoscape_esm = __esm({
71479
71497
  }
71480
71498
  };
71481
71499
  randomDistance = function randomDistance2(max10) {
71482
- return -1 + 2 * max10 * Math.random();
71500
+ return -max10 + 2 * max10 * Math.random();
71483
71501
  };
71484
71502
  nodeRepulsion2 = function nodeRepulsion3(node1, node2, layoutInfo, options2) {
71485
71503
  var cmptId1 = node1.cmptId;
@@ -73949,12 +73967,14 @@ var init_cytoscape_esm = __esm({
73949
73967
  var lw2 = lw / 2;
73950
73968
  var lh2 = lh / 2;
73951
73969
  var va = target.pstyle("text-valign").value;
73970
+ va = labelValign(va);
73952
73971
  if (va === "top") {
73953
73972
  ly -= lh2;
73954
73973
  } else if (va === "bottom") {
73955
73974
  ly += lh2;
73956
73975
  }
73957
73976
  var ha = target.pstyle("text-halign").value;
73977
+ ha = labelHalign(ha);
73958
73978
  if (ha === "left") {
73959
73979
  lx -= lw2;
73960
73980
  } else if (ha === "right") {
@@ -74010,12 +74030,14 @@ var init_cytoscape_esm = __esm({
74010
74030
  var _lw2 = _lw / 2;
74011
74031
  var _lh2 = _lh / 2;
74012
74032
  var _va = source.pstyle("text-valign").value;
74033
+ _va = labelValign(_va);
74013
74034
  if (_va === "top") {
74014
74035
  _ly -= _lh2;
74015
74036
  } else if (_va === "bottom") {
74016
74037
  _ly += _lh2;
74017
74038
  }
74018
74039
  var _ha = source.pstyle("text-halign").value;
74040
+ _ha = labelHalign(_ha);
74019
74041
  if (_ha === "left") {
74020
74042
  _lx -= _lw2;
74021
74043
  } else if (_ha === "right") {
@@ -74145,9 +74167,15 @@ var init_cytoscape_esm = __esm({
74145
74167
  case "left":
74146
74168
  textX = nodePos.x - nodeWidth / 2 - padding2;
74147
74169
  break;
74170
+ case "left-inside":
74171
+ textX = nodePos.x - nodeWidth / 2 + padding2;
74172
+ break;
74148
74173
  case "right":
74149
74174
  textX = nodePos.x + nodeWidth / 2 + padding2;
74150
74175
  break;
74176
+ case "right-inside":
74177
+ textX = nodePos.x + nodeWidth / 2 - padding2;
74178
+ break;
74151
74179
  default:
74152
74180
  textX = nodePos.x;
74153
74181
  }
@@ -74155,9 +74183,15 @@ var init_cytoscape_esm = __esm({
74155
74183
  case "top":
74156
74184
  textY = nodePos.y - nodeHeight / 2 - padding2;
74157
74185
  break;
74186
+ case "top-inside":
74187
+ textY = nodePos.y - nodeHeight / 2 + padding2;
74188
+ break;
74158
74189
  case "bottom":
74159
74190
  textY = nodePos.y + nodeHeight / 2 + padding2;
74160
74191
  break;
74192
+ case "bottom-inside":
74193
+ textY = nodePos.y + nodeHeight / 2 - padding2;
74194
+ break;
74161
74195
  default:
74162
74196
  textY = nodePos.y;
74163
74197
  }
@@ -74381,18 +74415,19 @@ var init_cytoscape_esm = __esm({
74381
74415
  setPrefixedProperty(_p.rscratch, "prefixedLabelDimsKey", prefix, cacheKey);
74382
74416
  var labelDims = this.calculateLabelDimensions(ele, text4);
74383
74417
  var lineHeight = ele.pstyle("line-height").pfValue;
74418
+ var size4 = ele.pstyle("font-size").pfValue;
74384
74419
  var textWrap = ele.pstyle("text-wrap").strValue;
74385
74420
  var lines = getPrefixedProperty(_p.rscratch, "labelWrapCachedLines", prefix) || [];
74386
74421
  var numLines = textWrap !== "wrap" ? 1 : Math.max(lines.length, 1);
74387
- var normPerLineHeight = labelDims.height / numLines;
74388
- var labelLineHeight = normPerLineHeight * lineHeight;
74422
+ var labelLineHeight = size4 * lineHeight;
74389
74423
  var width3 = labelDims.width;
74390
- var height2 = labelDims.height + (numLines - 1) * (lineHeight - 1) * normPerLineHeight;
74424
+ var height2 = labelDims.height + (numLines - 1) * (lineHeight - 1) * size4;
74391
74425
  setPrefixedProperty(_p.rstyle, "labelWidth", prefix, width3);
74392
74426
  setPrefixedProperty(_p.rscratch, "labelWidth", prefix, width3);
74393
74427
  setPrefixedProperty(_p.rstyle, "labelHeight", prefix, height2);
74394
74428
  setPrefixedProperty(_p.rscratch, "labelHeight", prefix, height2);
74395
74429
  setPrefixedProperty(_p.rscratch, "labelLineHeight", prefix, labelLineHeight);
74430
+ setPrefixedProperty(_p.rscratch, "labelActualDescent", prefix, labelDims.labelActualDescent);
74396
74431
  };
74397
74432
  BRp$9.getLabelText = function(ele, prefix) {
74398
74433
  var _p = ele._private;
@@ -74505,14 +74540,7 @@ var init_cytoscape_esm = __esm({
74505
74540
  var textHalign = ele.pstyle("text-halign").strValue;
74506
74541
  if (justification === "auto") {
74507
74542
  if (ele.isNode()) {
74508
- switch (textHalign) {
74509
- case "left":
74510
- return "right";
74511
- case "right":
74512
- return "left";
74513
- default:
74514
- return "center";
74515
- }
74543
+ return labelJustification(textHalign);
74516
74544
  } else {
74517
74545
  return "center";
74518
74546
  }
@@ -74529,6 +74557,7 @@ var init_cytoscape_esm = __esm({
74529
74557
  var size4 = ele.pstyle("font-size").pfValue;
74530
74558
  var family = ele.pstyle("font-family").strValue;
74531
74559
  var weight8 = ele.pstyle("font-weight").strValue;
74560
+ var textMetrics = ele.pstyle("text-metrics").strValue || "font";
74532
74561
  var canvas = this.labelCalcCanvas;
74533
74562
  var c2d = this.labelCalcCanvasContext;
74534
74563
  if (!canvas) {
@@ -74546,19 +74575,35 @@ var init_cytoscape_esm = __esm({
74546
74575
  var width3 = 0;
74547
74576
  var height2 = 0;
74548
74577
  var lines = text4.split("\n");
74549
- for (var i3 = 0; i3 < lines.length; i3++) {
74578
+ var lineCount = lines.length;
74579
+ var labelActualDescent = 0;
74580
+ var labelActualAscent = 0;
74581
+ for (var i3 = 0; i3 < lineCount; i3++) {
74550
74582
  var line2 = lines[i3];
74551
74583
  var metrics = c2d.measureText(line2);
74552
74584
  var w4 = Math.ceil(metrics.width);
74553
74585
  var h2 = size4;
74586
+ if (textMetrics === "glyph") {
74587
+ if (i3 === 0) {
74588
+ labelActualAscent = metrics.actualBoundingBoxAscent;
74589
+ }
74590
+ if (i3 === lineCount - 1) {
74591
+ labelActualDescent = metrics.actualBoundingBoxDescent;
74592
+ }
74593
+ }
74554
74594
  width3 = Math.max(w4, width3);
74555
74595
  height2 += h2;
74556
74596
  }
74597
+ if (textMetrics === "glyph") {
74598
+ height2 -= size4 - labelActualAscent - labelActualDescent;
74599
+ }
74557
74600
  width3 += padding2;
74558
74601
  height2 += padding2;
74559
74602
  return {
74560
74603
  width: width3,
74561
- height: height2
74604
+ height: height2,
74605
+ labelActualAscent,
74606
+ labelActualDescent
74562
74607
  };
74563
74608
  };
74564
74609
  BRp$9.calculateLabelAngle = function(ele, prefix) {
@@ -78940,8 +78985,9 @@ var init_cytoscape_esm = __esm({
78940
78985
  return;
78941
78986
  }
78942
78987
  var justification = r3.getLabelJustification(ele);
78988
+ var isTextMetricsGlyph = ele.pstyle("text-metrics").strValue === "glyph";
78943
78989
  context.textAlign = justification;
78944
- context.textBaseline = "bottom";
78990
+ context.textBaseline = isTextMetricsGlyph ? "alphabetic" : "bottom";
78945
78991
  } else {
78946
78992
  var badLine = ele.element()._private.rscratch.badLine;
78947
78993
  var _label = ele.pstyle("label");
@@ -79039,6 +79085,7 @@ var init_cytoscape_esm = __esm({
79039
79085
  var pdash = prefix ? prefix + "-" : "";
79040
79086
  var textW = getPrefixedProperty(rscratch, "labelWidth", prefix);
79041
79087
  var textH = getPrefixedProperty(rscratch, "labelHeight", prefix);
79088
+ var labelActualDescent = getPrefixedProperty(rscratch, "labelActualDescent", prefix);
79042
79089
  var marginX = ele.pstyle(pdash + "text-margin-x").pfValue;
79043
79090
  var marginY = ele.pstyle(pdash + "text-margin-y").pfValue;
79044
79091
  var isEdge2 = ele.isEdge();
@@ -79064,7 +79111,9 @@ var init_cytoscape_esm = __esm({
79064
79111
  textX = 0;
79065
79112
  textY = 0;
79066
79113
  }
79067
- switch (valign) {
79114
+ var boxHalign = labelHalign(halign);
79115
+ var boxValign = labelValign(valign);
79116
+ switch (boxValign) {
79068
79117
  case "top":
79069
79118
  break;
79070
79119
  case "center":
@@ -79092,7 +79141,7 @@ var init_cytoscape_esm = __esm({
79092
79141
  var doFill = backgroundOpacity > 0;
79093
79142
  var doStroke = textBorderWidth > 0 && borderOpacity > 0;
79094
79143
  var bgX = textX - backgroundPadding;
79095
- switch (halign) {
79144
+ switch (boxHalign) {
79096
79145
  case "left":
79097
79146
  bgX -= textW;
79098
79147
  break;
@@ -79159,32 +79208,33 @@ var init_cytoscape_esm = __esm({
79159
79208
  if (lineWidth > 0) {
79160
79209
  context.lineWidth = lineWidth;
79161
79210
  }
79211
+ textY -= labelActualDescent;
79162
79212
  if (ele.pstyle("text-wrap").value === "wrap") {
79163
79213
  var lines = getPrefixedProperty(rscratch, "labelWrapCachedLines", prefix);
79164
79214
  var lineHeight = getPrefixedProperty(rscratch, "labelLineHeight", prefix);
79165
79215
  var halfTextW = textW / 2;
79166
79216
  var justification = this.getLabelJustification(ele);
79167
79217
  if (justification === "auto") ;
79168
- else if (halign === "left") {
79218
+ else if (boxHalign === "left") {
79169
79219
  if (justification === "left") {
79170
79220
  textX += -textW;
79171
79221
  } else if (justification === "center") {
79172
79222
  textX += -halfTextW;
79173
79223
  }
79174
- } else if (halign === "center") {
79224
+ } else if (boxHalign === "center") {
79175
79225
  if (justification === "left") {
79176
79226
  textX += -halfTextW;
79177
79227
  } else if (justification === "right") {
79178
79228
  textX += halfTextW;
79179
79229
  }
79180
- } else if (halign === "right") {
79230
+ } else if (boxHalign === "right") {
79181
79231
  if (justification === "center") {
79182
79232
  textX += halfTextW;
79183
79233
  } else if (justification === "right") {
79184
79234
  textX += textW;
79185
79235
  }
79186
79236
  }
79187
- switch (valign) {
79237
+ switch (boxValign) {
79188
79238
  case "top":
79189
79239
  textY -= (lines.length - 1) * lineHeight;
79190
79240
  break;
@@ -82342,7 +82392,7 @@ var init_cytoscape_esm = __esm({
82342
82392
  }
82343
82393
  return style4;
82344
82394
  };
82345
- version2 = "3.33.4";
82395
+ version2 = "3.34.0";
82346
82396
  cytoscape2 = function cytoscape3(options2) {
82347
82397
  if (options2 === void 0) {
82348
82398
  options2 = {};
@@ -127034,7 +127084,7 @@ var require_duration = __commonJS({
127034
127084
  "object" == typeof exports2 && "undefined" != typeof module2 ? module2.exports = s2() : "function" == typeof define && define.amd ? define(s2) : (t5 = "undefined" != typeof globalThis ? globalThis : t5 || self).dayjs_plugin_duration = s2();
127035
127085
  })(exports2, (function() {
127036
127086
  "use strict";
127037
- var t5, s2, n3 = 1e3, i3 = 6e4, e6 = 36e5, r3 = 864e5, o4 = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, u2 = 31536e6, d3 = 2628e6, a2 = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/, h2 = { years: u2, months: d3, days: r3, hours: e6, minutes: i3, seconds: n3, milliseconds: 1, weeks: 6048e5 }, c3 = function(t6) {
127087
+ var t5, s2, n3 = 1e3, i3 = 6e4, e6 = 36e5, r3 = 864e5, o4 = 31536e6, u2 = 2628e6, d3 = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/, a2 = /\[([^\]]+)]|YYYY|YY|Y|M{1,2}|D{1,2}|H{1,2}|m{1,2}|s{1,2}|SSS/g, h2 = { years: o4, months: u2, days: r3, hours: e6, minutes: i3, seconds: n3, milliseconds: 1, weeks: 6048e5 }, c3 = function(t6) {
127038
127088
  return t6 instanceof g2;
127039
127089
  }, f2 = function(t6, s3, n4) {
127040
127090
  return new g2(t6, n4, s3.$l);
@@ -127057,7 +127107,7 @@ var require_duration = __commonJS({
127057
127107
  i4.$d[m3(s4)] = t6[s4];
127058
127108
  })), this.calMilliseconds(), this;
127059
127109
  if ("string" == typeof t6) {
127060
- var e7 = t6.match(a2);
127110
+ var e7 = t6.match(d3);
127061
127111
  if (e7) {
127062
127112
  var r4 = e7.slice(2).map((function(t7) {
127063
127113
  return null != t7 ? Number(t7) : 0;
@@ -127075,7 +127125,7 @@ var require_duration = __commonJS({
127075
127125
  }), 0);
127076
127126
  }, y7.parseFromMilliseconds = function() {
127077
127127
  var t6 = this.$ms;
127078
- this.$d.years = $4(t6 / u2), t6 %= u2, this.$d.months = $4(t6 / d3), t6 %= d3, this.$d.days = $4(t6 / r3), t6 %= r3, this.$d.hours = $4(t6 / e6), t6 %= e6, this.$d.minutes = $4(t6 / i3), t6 %= i3, this.$d.seconds = $4(t6 / n3), t6 %= n3, this.$d.milliseconds = t6;
127128
+ this.$d.years = $4(t6 / o4), t6 %= o4, this.$d.months = $4(t6 / u2), t6 %= u2, this.$d.days = $4(t6 / r3), t6 %= r3, this.$d.hours = $4(t6 / e6), t6 %= e6, this.$d.minutes = $4(t6 / i3), t6 %= i3, this.$d.seconds = $4(t6 / n3), t6 %= n3, this.$d.milliseconds = t6;
127079
127129
  }, y7.toISOString = function() {
127080
127130
  var t6 = v3(this.$d.years, "Y"), s3 = v3(this.$d.months, "M"), n4 = +this.$d.days || 0;
127081
127131
  this.$d.weeks && (n4 += 7 * this.$d.weeks);
@@ -127087,7 +127137,7 @@ var require_duration = __commonJS({
127087
127137
  return this.toISOString();
127088
127138
  }, y7.format = function(t6) {
127089
127139
  var n4 = t6 || "YYYY-MM-DDTHH:mm:ss", i4 = { Y: this.$d.years, YY: s2.s(this.$d.years, 2, "0"), YYYY: s2.s(this.$d.years, 4, "0"), M: this.$d.months, MM: s2.s(this.$d.months, 2, "0"), D: this.$d.days, DD: s2.s(this.$d.days, 2, "0"), H: this.$d.hours, HH: s2.s(this.$d.hours, 2, "0"), m: this.$d.minutes, mm: s2.s(this.$d.minutes, 2, "0"), s: this.$d.seconds, ss: s2.s(this.$d.seconds, 2, "0"), SSS: s2.s(this.$d.milliseconds, 3, "0") };
127090
- return n4.replace(o4, (function(t7, s3) {
127140
+ return n4.replace(a2, (function(t7, s3) {
127091
127141
  return s3 || String(i4[t7]);
127092
127142
  }));
127093
127143
  }, y7.as = function(t6) {
@@ -172705,7 +172755,7 @@ export {
172705
172755
  /*! Bundled license information:
172706
172756
 
172707
172757
  dompurify/dist/purify.es.mjs:
172708
- (*! @license DOMPurify 3.4.5 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.5/LICENSE *)
172758
+ (*! @license DOMPurify 3.4.8 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.8/LICENSE *)
172709
172759
 
172710
172760
  mermaid/dist/chunks/mermaid.core/chunk-XPW4576I.mjs:
172711
172761
  (*! Bundled license information: