chunk-IQOBXLIK.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443
  1. // node_modules/.pnpm/tiny-svg@3.0.1/node_modules/tiny-svg/dist/index.esm.js
  2. function ensureImported(element, target) {
  3. if (element.ownerDocument !== target.ownerDocument) {
  4. try {
  5. return target.ownerDocument.importNode(element, true);
  6. } catch (e) {
  7. }
  8. }
  9. return element;
  10. }
  11. function appendTo(element, target) {
  12. return target.appendChild(ensureImported(element, target));
  13. }
  14. function append(target, node2) {
  15. appendTo(node2, target);
  16. return target;
  17. }
  18. var LENGTH_ATTR = 2;
  19. var CSS_PROPERTIES = {
  20. "alignment-baseline": 1,
  21. "baseline-shift": 1,
  22. "clip": 1,
  23. "clip-path": 1,
  24. "clip-rule": 1,
  25. "color": 1,
  26. "color-interpolation": 1,
  27. "color-interpolation-filters": 1,
  28. "color-profile": 1,
  29. "color-rendering": 1,
  30. "cursor": 1,
  31. "direction": 1,
  32. "display": 1,
  33. "dominant-baseline": 1,
  34. "enable-background": 1,
  35. "fill": 1,
  36. "fill-opacity": 1,
  37. "fill-rule": 1,
  38. "filter": 1,
  39. "flood-color": 1,
  40. "flood-opacity": 1,
  41. "font": 1,
  42. "font-family": 1,
  43. "font-size": LENGTH_ATTR,
  44. "font-size-adjust": 1,
  45. "font-stretch": 1,
  46. "font-style": 1,
  47. "font-variant": 1,
  48. "font-weight": 1,
  49. "glyph-orientation-horizontal": 1,
  50. "glyph-orientation-vertical": 1,
  51. "image-rendering": 1,
  52. "kerning": 1,
  53. "letter-spacing": 1,
  54. "lighting-color": 1,
  55. "marker": 1,
  56. "marker-end": 1,
  57. "marker-mid": 1,
  58. "marker-start": 1,
  59. "mask": 1,
  60. "opacity": 1,
  61. "overflow": 1,
  62. "pointer-events": 1,
  63. "shape-rendering": 1,
  64. "stop-color": 1,
  65. "stop-opacity": 1,
  66. "stroke": 1,
  67. "stroke-dasharray": 1,
  68. "stroke-dashoffset": 1,
  69. "stroke-linecap": 1,
  70. "stroke-linejoin": 1,
  71. "stroke-miterlimit": 1,
  72. "stroke-opacity": 1,
  73. "stroke-width": LENGTH_ATTR,
  74. "text-anchor": 1,
  75. "text-decoration": 1,
  76. "text-rendering": 1,
  77. "unicode-bidi": 1,
  78. "visibility": 1,
  79. "word-spacing": 1,
  80. "writing-mode": 1
  81. };
  82. function getAttribute(node2, name) {
  83. if (CSS_PROPERTIES[name]) {
  84. return node2.style[name];
  85. } else {
  86. return node2.getAttributeNS(null, name);
  87. }
  88. }
  89. function setAttribute(node2, name, value) {
  90. var hyphenated = name.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
  91. var type = CSS_PROPERTIES[hyphenated];
  92. if (type) {
  93. if (type === LENGTH_ATTR && typeof value === "number") {
  94. value = String(value) + "px";
  95. }
  96. node2.style[hyphenated] = value;
  97. } else {
  98. node2.setAttributeNS(null, name, value);
  99. }
  100. }
  101. function setAttributes(node2, attrs) {
  102. var names = Object.keys(attrs), i, name;
  103. for (i = 0, name; name = names[i]; i++) {
  104. setAttribute(node2, name, attrs[name]);
  105. }
  106. }
  107. function attr(node2, name, value) {
  108. if (typeof name === "string") {
  109. if (value !== void 0) {
  110. setAttribute(node2, name, value);
  111. } else {
  112. return getAttribute(node2, name);
  113. }
  114. } else {
  115. setAttributes(node2, name);
  116. }
  117. return node2;
  118. }
  119. var toString = Object.prototype.toString;
  120. function classes(el) {
  121. return new ClassList(el);
  122. }
  123. function ClassList(el) {
  124. if (!el || !el.nodeType) {
  125. throw new Error("A DOM element reference is required");
  126. }
  127. this.el = el;
  128. this.list = el.classList;
  129. }
  130. ClassList.prototype.add = function(name) {
  131. this.list.add(name);
  132. return this;
  133. };
  134. ClassList.prototype.remove = function(name) {
  135. if ("[object RegExp]" == toString.call(name)) {
  136. return this.removeMatching(name);
  137. }
  138. this.list.remove(name);
  139. return this;
  140. };
  141. ClassList.prototype.removeMatching = function(re) {
  142. const arr = this.array();
  143. for (let i = 0; i < arr.length; i++) {
  144. if (re.test(arr[i])) {
  145. this.remove(arr[i]);
  146. }
  147. }
  148. return this;
  149. };
  150. ClassList.prototype.toggle = function(name, force) {
  151. if ("undefined" !== typeof force) {
  152. if (force !== this.list.toggle(name, force)) {
  153. this.list.toggle(name);
  154. }
  155. } else {
  156. this.list.toggle(name);
  157. }
  158. return this;
  159. };
  160. ClassList.prototype.array = function() {
  161. return Array.from(this.list);
  162. };
  163. ClassList.prototype.has = ClassList.prototype.contains = function(name) {
  164. return this.list.contains(name);
  165. };
  166. function remove(element) {
  167. var parent = element.parentNode;
  168. if (parent) {
  169. parent.removeChild(element);
  170. }
  171. return element;
  172. }
  173. function clear(element) {
  174. var child;
  175. while (child = element.firstChild) {
  176. remove(child);
  177. }
  178. return element;
  179. }
  180. function clone(element) {
  181. return element.cloneNode(true);
  182. }
  183. var ns = {
  184. svg: "http://www.w3.org/2000/svg"
  185. };
  186. var SVG_START = '<svg xmlns="' + ns.svg + '"';
  187. function parse(svg) {
  188. var unwrap = false;
  189. if (svg.substring(0, 4) === "<svg") {
  190. if (svg.indexOf(ns.svg) === -1) {
  191. svg = SVG_START + svg.substring(4);
  192. }
  193. } else {
  194. svg = SVG_START + ">" + svg + "</svg>";
  195. unwrap = true;
  196. }
  197. var parsed = parseDocument(svg);
  198. if (!unwrap) {
  199. return parsed;
  200. }
  201. var fragment = document.createDocumentFragment();
  202. var parent = parsed.firstChild;
  203. while (parent.firstChild) {
  204. fragment.appendChild(parent.firstChild);
  205. }
  206. return fragment;
  207. }
  208. function parseDocument(svg) {
  209. var parser;
  210. parser = new DOMParser();
  211. parser.async = false;
  212. return parser.parseFromString(svg, "text/xml");
  213. }
  214. function create(name, attrs) {
  215. var element;
  216. if (name.charAt(0) === "<") {
  217. element = parse(name).firstChild;
  218. element = document.importNode(element, true);
  219. } else {
  220. element = document.createElementNS(ns.svg, name);
  221. }
  222. if (attrs) {
  223. attr(element, attrs);
  224. }
  225. return element;
  226. }
  227. function on(node2, event, listener, useCapture) {
  228. node2.addEventListener(event, listener, useCapture);
  229. }
  230. function off(node2, event, listener, useCapture) {
  231. node2.removeEventListener(event, listener, useCapture);
  232. }
  233. var node = null;
  234. function getNode() {
  235. if (node === null) {
  236. node = create("svg");
  237. }
  238. return node;
  239. }
  240. function extend(object, props) {
  241. var i, k, keys = Object.keys(props);
  242. for (i = 0; k = keys[i]; i++) {
  243. object[k] = props[k];
  244. }
  245. return object;
  246. }
  247. function createPoint(x, y) {
  248. var point = getNode().createSVGPoint();
  249. switch (arguments.length) {
  250. case 0:
  251. return point;
  252. case 2:
  253. x = {
  254. x,
  255. y
  256. };
  257. break;
  258. }
  259. return extend(point, x);
  260. }
  261. function createMatrix(a, b, c, d, e, f) {
  262. var matrix = getNode().createSVGMatrix();
  263. switch (arguments.length) {
  264. case 0:
  265. return matrix;
  266. case 1:
  267. return extend(matrix, a);
  268. case 6:
  269. return extend(matrix, {
  270. a,
  271. b,
  272. c,
  273. d,
  274. e,
  275. f
  276. });
  277. }
  278. }
  279. function createTransform(matrix) {
  280. if (matrix) {
  281. return getNode().createSVGTransformFromMatrix(matrix);
  282. } else {
  283. return getNode().createSVGTransform();
  284. }
  285. }
  286. var TEXT_ENTITIES = /([&<>]{1})/g;
  287. var ATTR_ENTITIES = /([\n\r"]{1})/g;
  288. var ENTITY_REPLACEMENT = {
  289. "&": "&amp;",
  290. "<": "&lt;",
  291. ">": "&gt;",
  292. '"': "'"
  293. };
  294. function escape(str, pattern) {
  295. function replaceFn(match, entity) {
  296. return ENTITY_REPLACEMENT[entity] || entity;
  297. }
  298. return str.replace(pattern, replaceFn);
  299. }
  300. function serialize(node2, output) {
  301. var i, len, attrMap, attrNode, childNodes;
  302. switch (node2.nodeType) {
  303. case 3:
  304. output.push(escape(node2.textContent, TEXT_ENTITIES));
  305. break;
  306. case 1:
  307. output.push("<", node2.tagName);
  308. if (node2.hasAttributes()) {
  309. attrMap = node2.attributes;
  310. for (i = 0, len = attrMap.length; i < len; ++i) {
  311. attrNode = attrMap.item(i);
  312. output.push(" ", attrNode.name, '="', escape(attrNode.value, ATTR_ENTITIES), '"');
  313. }
  314. }
  315. if (node2.hasChildNodes()) {
  316. output.push(">");
  317. childNodes = node2.childNodes;
  318. for (i = 0, len = childNodes.length; i < len; ++i) {
  319. serialize(childNodes.item(i), output);
  320. }
  321. output.push("</", node2.tagName, ">");
  322. } else {
  323. output.push("/>");
  324. }
  325. break;
  326. case 8:
  327. output.push("<!--", escape(node2.nodeValue, TEXT_ENTITIES), "-->");
  328. break;
  329. case 4:
  330. output.push("<![CDATA[", node2.nodeValue, "]]>");
  331. break;
  332. default:
  333. throw new Error("unable to handle node " + node2.nodeType);
  334. }
  335. return output;
  336. }
  337. function set(element, svg) {
  338. var parsed = parse(svg);
  339. clear(element);
  340. if (!svg) {
  341. return;
  342. }
  343. if (!isFragment(parsed)) {
  344. parsed = parsed.documentElement;
  345. }
  346. var nodes = slice(parsed.childNodes);
  347. for (var i = 0; i < nodes.length; i++) {
  348. appendTo(nodes[i], element);
  349. }
  350. }
  351. function get(element) {
  352. var child = element.firstChild, output = [];
  353. while (child) {
  354. serialize(child, output);
  355. child = child.nextSibling;
  356. }
  357. return output.join("");
  358. }
  359. function isFragment(node2) {
  360. return node2.nodeName === "#document-fragment";
  361. }
  362. function innerSVG(element, svg) {
  363. if (svg !== void 0) {
  364. try {
  365. set(element, svg);
  366. } catch (e) {
  367. throw new Error("error parsing SVG: " + e.message);
  368. }
  369. return element;
  370. } else {
  371. return get(element);
  372. }
  373. }
  374. function slice(arr) {
  375. return Array.prototype.slice.call(arr);
  376. }
  377. function select(node2, selector) {
  378. return node2.querySelector(selector);
  379. }
  380. function selectAll(node2, selector) {
  381. var nodes = node2.querySelectorAll(selector);
  382. return [].map.call(nodes, function(element) {
  383. return element;
  384. });
  385. }
  386. function prependTo(node2, target) {
  387. return target.insertBefore(ensureImported(node2, target), target.firstChild || null);
  388. }
  389. function prepend(target, node2) {
  390. prependTo(node2, target);
  391. return target;
  392. }
  393. function replace(element, replacement) {
  394. element.parentNode.replaceChild(ensureImported(replacement, element), element);
  395. return replacement;
  396. }
  397. function wrapMatrix(transformList, transform2) {
  398. if (transform2 instanceof SVGMatrix) {
  399. return transformList.createSVGTransformFromMatrix(transform2);
  400. }
  401. return transform2;
  402. }
  403. function setTransforms(transformList, transforms) {
  404. var i, t;
  405. transformList.clear();
  406. for (i = 0; t = transforms[i]; i++) {
  407. transformList.appendItem(wrapMatrix(transformList, t));
  408. }
  409. }
  410. function transform(node2, transforms) {
  411. var transformList = node2.transform.baseVal;
  412. if (transforms) {
  413. if (!Array.isArray(transforms)) {
  414. transforms = [transforms];
  415. }
  416. setTransforms(transformList, transforms);
  417. }
  418. return transformList.consolidate();
  419. }
  420. export {
  421. appendTo,
  422. append,
  423. attr,
  424. classes,
  425. remove,
  426. clear,
  427. clone,
  428. create,
  429. on,
  430. off,
  431. createPoint,
  432. createMatrix,
  433. createTransform,
  434. innerSVG,
  435. select,
  436. selectAll,
  437. prependTo,
  438. prepend,
  439. replace,
  440. transform
  441. };
  442. //# sourceMappingURL=chunk-IQOBXLIK.js.map