@8btc/xcanvas 0.0.2 → 0.0.4

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.
Files changed (106) hide show
  1. package/README.md +2 -2
  2. package/dist/{XCanvas-BxdLBkBz.js → XCanvas-CB8oO4UO.js} +220 -43
  3. package/dist/{ar-SA-G6X2FPQ2-DjqDLLYL.js → ar-SA-G6X2FPQ2-CO3hWZ_L.js} +1 -1
  4. package/dist/{arc-D1qX5GFf.js → arc-CYnUonsF.js} +1 -1
  5. package/dist/{az-AZ-76LH7QW2-D7LOsF3_.js → az-AZ-76LH7QW2-CjJtZWzg.js} +1 -1
  6. package/dist/{bg-BG-XCXSNQG7-WI4tFn23.js → bg-BG-XCXSNQG7-BVb8CvH8.js} +1 -1
  7. package/dist/{blockDiagram-38ab4fdb-DtemKfEh.js → blockDiagram-38ab4fdb-D8tnUdVm.js} +5 -5
  8. package/dist/{bn-BD-2XOGV67Q-Bugx_8fy.js → bn-BD-2XOGV67Q-C6NOv14l.js} +1 -1
  9. package/dist/{c4Diagram-3d4e48cf-Byd2vU9K.js → c4Diagram-3d4e48cf-CA8WGqIv.js} +2 -2
  10. package/dist/{ca-ES-6MX7JW3Y-6rFwKGsQ.js → ca-ES-6MX7JW3Y-Dk-lP-nT.js} +1 -1
  11. package/dist/{channel-BT_3Ze-Y.js → channel-DeisP17Z.js} +1 -1
  12. package/dist/{chunk-EIO257PC-C7qD7hGu.js → chunk-EIO257PC-CsDB2ftX.js} +1 -1
  13. package/dist/{classDiagram-70f12bd4-CwfYadk-.js → classDiagram-70f12bd4-DTZU0H00.js} +5 -5
  14. package/dist/{classDiagram-v2-f2320105-B28MuM8f.js → classDiagram-v2-f2320105-BadhCEFu.js} +5 -5
  15. package/dist/{clone-D2FUK8WY.js → clone-75eXcrG7.js} +1 -1
  16. package/dist/{createText-2e5e7dd3-Ca1JfQaJ.js → createText-2e5e7dd3-B9-JoT2J.js} +1 -1
  17. package/dist/{cs-CZ-2BRQDIVT-Dhd8XszK.js → cs-CZ-2BRQDIVT-Bc9fWVyf.js} +1 -1
  18. package/dist/{da-DK-5WZEPLOC-BhL87sSs.js → da-DK-5WZEPLOC-B7uphXHN.js} +1 -1
  19. package/dist/{de-DE-XR44H4JA-xSrZSV0J.js → de-DE-XR44H4JA-Dy8ondmU.js} +1 -1
  20. package/dist/{edges-e0da2a9e-9VbVapWU.js → edges-e0da2a9e-CQu9_UlT.js} +3 -3
  21. package/dist/{el-GR-BZB4AONW-DQORZ_pY.js → el-GR-BZB4AONW-BFN4ME4G.js} +1 -1
  22. package/dist/{en-B4ZKOASM-D2BVbEdz.js → en-B4ZKOASM-D3wZjzBP.js} +1 -1
  23. package/dist/{erDiagram-9861fffd-D4S9QDes.js → erDiagram-9861fffd-BNMWQJAw.js} +4 -4
  24. package/dist/{es-ES-U4NZUMDT-C0Q89-0V.js → es-ES-U4NZUMDT-dpS2lMKQ.js} +1 -1
  25. package/dist/{eu-ES-A7QVB2H4-BwBW3cEw.js → eu-ES-A7QVB2H4-s2DA3YCf.js} +1 -1
  26. package/dist/{fa-IR-HGAKTJCU-DtZ74rm4.js → fa-IR-HGAKTJCU-BNVamR_K.js} +1 -1
  27. package/dist/{fi-FI-Z5N7JZ37-QvQan48z.js → fi-FI-Z5N7JZ37-BpsUlbp_.js} +1 -1
  28. package/dist/{flowDb-956e92f1-S6T8ppJw.js → flowDb-956e92f1-BmZs4KB1.js} +1 -1
  29. package/dist/{flowDiagram-66a62f08-C6TTwS5_.js → flowDiagram-66a62f08-BPTQiBES.js} +6 -6
  30. package/dist/{flowDiagram-v2-96b9c2cf-CzfeUNGP.js → flowDiagram-v2-96b9c2cf-DzF-xtkG.js} +5 -5
  31. package/dist/{flowchart-elk-definition-4a651766-CRv1kWtk.js → flowchart-elk-definition-4a651766-B_iODeBM.js} +5 -5
  32. package/dist/{fr-FR-RHASNOE6-CZFiweNU.js → fr-FR-RHASNOE6-Dt5REDL2.js} +1 -1
  33. package/dist/{ganttDiagram-c361ad54-CAnfd8Sw.js → ganttDiagram-c361ad54-D2UeqZUU.js} +3 -3
  34. package/dist/{gitGraphDiagram-72cf32ee-CSGI-xRI.js → gitGraphDiagram-72cf32ee-USRuLe14.js} +1 -1
  35. package/dist/{gl-ES-HMX3MZ6V-Bqv2xL-V.js → gl-ES-HMX3MZ6V-DxZgLDtP.js} +1 -1
  36. package/dist/{graph-Ct2tKpKj.js → graph-C_b2NbS0.js} +1 -1
  37. package/dist/{he-IL-6SHJWFNN-kso30jhn.js → he-IL-6SHJWFNN-CoomUX4B.js} +1 -1
  38. package/dist/{hi-IN-IWLTKZ5I-Busk5oaa.js → hi-IN-IWLTKZ5I-BPm2wYyt.js} +1 -1
  39. package/dist/{hu-HU-A5ZG7DT2-xSR2C2H0.js → hu-HU-A5ZG7DT2-DxyMZsDQ.js} +1 -1
  40. package/dist/{id-ID-SAP4L64H-BQQZYm1L.js → id-ID-SAP4L64H-B6e9vg4q.js} +1 -1
  41. package/dist/{image-EDRW2JGV-Cx7o2kxD.js → image-EDRW2JGV-D8WRJNV5.js} +1 -1
  42. package/dist/{index-3862675e-B3j3w-v_.js → index-3862675e-o37EbAEl.js} +6 -6
  43. package/dist/{index-CLOU2Ikr.js → index-D_C0FKVU.js} +23 -23
  44. package/dist/index.css +21 -43
  45. package/dist/index.d.ts +9 -2
  46. package/dist/index.js +1 -1
  47. package/dist/index.umd.cjs +211 -34
  48. package/dist/{infoDiagram-f8f76790-NqA75uBo.js → infoDiagram-f8f76790-yR6-Za2i.js} +1 -1
  49. package/dist/{it-IT-JPQ66NNP-CAMVZrYt.js → it-IT-JPQ66NNP-CRT3esMv.js} +1 -1
  50. package/dist/{ja-JP-DBVTYXUO-CAX8A_Uj.js → ja-JP-DBVTYXUO-B6AAF-Jr.js} +1 -1
  51. package/dist/{journeyDiagram-49397b02-By5oBzsZ.js → journeyDiagram-49397b02-lNyagjXB.js} +3 -3
  52. package/dist/{kaa-6HZHGXH3-4-o94cPY.js → kaa-6HZHGXH3-BaZZg6sA.js} +1 -1
  53. package/dist/{kab-KAB-ZGHBKWFO-CgyjjBvZ.js → kab-KAB-ZGHBKWFO-D46CI3jH.js} +1 -1
  54. package/dist/{kk-KZ-P5N5QNE5-BEqZcwLA.js → kk-KZ-P5N5QNE5-Cmfnz7AK.js} +1 -1
  55. package/dist/{km-KH-HSX4SM5Z-DvKDbeH4.js → km-KH-HSX4SM5Z-iFFuhLD6.js} +1 -1
  56. package/dist/{ko-KR-MTYHY66A-DKCuAbKE.js → ko-KR-MTYHY66A-CmKfFWzE.js} +1 -1
  57. package/dist/{ku-TR-6OUDTVRD-CNUs4cCe.js → ku-TR-6OUDTVRD-B6KuNVIm.js} +1 -1
  58. package/dist/{layout-AJxYKqQV.js → layout-DTAkrYBJ.js} +2 -2
  59. package/dist/{line-DJIf5OM8.js → line-Dr3o9AYK.js} +1 -1
  60. package/dist/{linear-Cfj4s4vI.js → linear-CjRu8MB7.js} +1 -1
  61. package/dist/loading.gif +0 -0
  62. package/dist/{lt-LT-XHIRWOB4-gouzGdoW.js → lt-LT-XHIRWOB4-B_ahNyae.js} +1 -1
  63. package/dist/{lv-LV-5QDEKY6T-CTvg1XFv.js → lv-LV-5QDEKY6T-CkqP131J.js} +1 -1
  64. package/dist/{mindmap-definition-fc14e90a-CBlwH_UF.js → mindmap-definition-fc14e90a-DkbsCKfY.js} +3 -3
  65. package/dist/{mr-IN-CRQNXWMA-QeYm06Kq.js → mr-IN-CRQNXWMA-CZXMUxcc.js} +1 -1
  66. package/dist/{my-MM-5M5IBNSE-DG3k9ORf.js → my-MM-5M5IBNSE-C9fFW3p2.js} +1 -1
  67. package/dist/{nb-NO-T6EIAALU-Cj995Nmg.js → nb-NO-T6EIAALU-D00SrFRT.js} +1 -1
  68. package/dist/{nl-NL-IS3SIHDZ-B-2H7xey.js → nl-NL-IS3SIHDZ-D8NlOCQZ.js} +1 -1
  69. package/dist/{nn-NO-6E72VCQL-DrAwKKTN.js → nn-NO-6E72VCQL-9VstPxG8.js} +1 -1
  70. package/dist/{oc-FR-POXYY2M6-CeyJD7tq.js → oc-FR-POXYY2M6-mlYUROT8.js} +1 -1
  71. package/dist/{pa-IN-N4M65BXN-DHzi6mjo.js → pa-IN-N4M65BXN-CEEskuPR.js} +1 -1
  72. package/dist/{percentages-BXMCSKIN-CDYsTuua.js → percentages-BXMCSKIN-CJ0-KBf2.js} +1 -1
  73. package/dist/{pica-CzzcRNRD.js → pica-CRUcAi0U.js} +1 -1
  74. package/dist/{pieDiagram-8a3498a8-DueGoZOh.js → pieDiagram-8a3498a8-Br3kC-Ro.js} +2 -2
  75. package/dist/{pl-PL-T2D74RX3-BBNEV2c6.js → pl-PL-T2D74RX3-B0573z9z.js} +1 -1
  76. package/dist/{pt-BR-5N22H2LF-D2cTx_F0.js → pt-BR-5N22H2LF-CbgtE21X.js} +1 -1
  77. package/dist/{pt-PT-UZXXM6DQ-BddvLLsF.js → pt-PT-UZXXM6DQ-DMLyk0YO.js} +1 -1
  78. package/dist/{quadrantDiagram-120e2f19-Tb6_oGIn.js → quadrantDiagram-120e2f19-BAFv2oHo.js} +2 -2
  79. package/dist/{requirementDiagram-deff3bca-CEeg0ep-.js → requirementDiagram-deff3bca-Y9q1CAL-.js} +4 -4
  80. package/dist/{ro-RO-JPDTUUEW-DynuW50i.js → ro-RO-JPDTUUEW-QCuVyZw4.js} +1 -1
  81. package/dist/{ru-RU-B4JR7IUQ-B5Hecrew.js → ru-RU-B4JR7IUQ-C6-ZQk46.js} +1 -1
  82. package/dist/{sankeyDiagram-04a897e0-CGTLQ8Gm.js → sankeyDiagram-04a897e0-CPu3IjdF.js} +1 -1
  83. package/dist/{sequenceDiagram-704730f1-CZ72D-Nd.js → sequenceDiagram-704730f1-CRjkkTPo.js} +2 -2
  84. package/dist/{si-LK-N5RQ5JYF-BGMa93tc.js → si-LK-N5RQ5JYF-BrmxYIeg.js} +1 -1
  85. package/dist/{sk-SK-C5VTKIMK-BttCAlBm.js → sk-SK-C5VTKIMK-B5e16Gqd.js} +1 -1
  86. package/dist/{sl-SI-NN7IZMDC-DTC59nzG.js → sl-SI-NN7IZMDC-DKZF_90P.js} +1 -1
  87. package/dist/{stateDiagram-587899a1-XISZzz_f.js → stateDiagram-587899a1-D3C5NpRa.js} +5 -5
  88. package/dist/{stateDiagram-v2-d93cdb3a-DbCcmzTc.js → stateDiagram-v2-d93cdb3a-VJvWpWt8.js} +5 -5
  89. package/dist/{styles-6aaf32cf-CyfdkEib.js → styles-6aaf32cf-Cga1awyT.js} +1 -1
  90. package/dist/{styles-9a916d00-zQ92RrTB.js → styles-9a916d00-CZcajMZO.js} +1 -1
  91. package/dist/{styles-c10674c1-BWmkigmR.js → styles-c10674c1-Dw-v0-2y.js} +4 -4
  92. package/dist/{subset-shared.chunk-BuFt2PpZ.js → subset-shared.chunk-B3jKVF_v.js} +2 -2
  93. package/dist/{subset-worker.chunk-CgaFXU4O.js → subset-worker.chunk-BPZ9lRyO.js} +2 -2
  94. package/dist/{sv-SE-XGPEYMSR-BPDlPxC1.js → sv-SE-XGPEYMSR-C9aBKasF.js} +1 -1
  95. package/dist/{svgDrawCommon-08f97a94-CJ0lufOi.js → svgDrawCommon-08f97a94-3s9STiwU.js} +1 -1
  96. package/dist/{ta-IN-2NMHFXQM-CI1ZsNk9.js → ta-IN-2NMHFXQM-y-K66H5e.js} +1 -1
  97. package/dist/{th-TH-HPSO5L25-CUM-w2Qt.js → th-TH-HPSO5L25-EX7HwJMo.js} +1 -1
  98. package/dist/{timeline-definition-85554ec2-DV6084Gl.js → timeline-definition-85554ec2-C4RqT4VZ.js} +2 -2
  99. package/dist/{tr-TR-DEFEU3FU-CGpyf_vD.js → tr-TR-DEFEU3FU-KDM5AJhh.js} +1 -1
  100. package/dist/{uk-UA-QMV73CPH-Bg15Mv3J.js → uk-UA-QMV73CPH-tQwymE_T.js} +1 -1
  101. package/dist/{vi-VN-M7AON7JQ-AYmca9so.js → vi-VN-M7AON7JQ-Db9VVrBW.js} +1 -1
  102. package/dist/{xychartDiagram-e933f94c-P1e6EEaH.js → xychartDiagram-e933f94c-DJk5y6pY.js} +4 -4
  103. package/dist/{zh-CN-LNUGB5OW-Dem2Cc-c.js → zh-CN-LNUGB5OW-qTmXaYqw.js} +1 -1
  104. package/dist/{zh-HK-E62DVLB3-BjsDyiLI.js → zh-HK-E62DVLB3-C8EuHDeT.js} +1 -1
  105. package/dist/{zh-TW-RAJ6MFWO-IDAsc9Pz.js → zh-TW-RAJ6MFWO-QAxlxG2S.js} +1 -1
  106. package/package.json +3 -2
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # xcanvas
2
2
 
3
- 无限画布
3
+ 画布
4
4
 
5
5
  ### 示例
6
6
 
@@ -60,7 +60,7 @@ export interface XCanvasAPI {
60
60
  /**
61
61
  * 将指定的 loading 元素替换为真实图片
62
62
  */
63
- replaceLoadingWithImages: (id: string, url: string) => Promise<void>;
63
+ replaceLoadingWithImages: (id: string, urls: string[]) => Promise<void>;
64
64
  }
65
65
 
66
66
  export type Events = {
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
2
  import { atom, createStore as createStore$2, useAtom as useAtom$1, useAtomValue as useAtomValue$1, useSetAtom as useSetAtom$1 } from "jotai";
3
3
  import * as React from "react";
4
- import React__default, { useCallback, useReducer, useEffect, useDebugValue as useDebugValue$1, useContext, createContext, useRef, useLayoutEffect, useState, useMemo, createElement, forwardRef, Children, isValidElement, cloneElement, Fragment as Fragment$1, memo, useImperativeHandle, version, useDeferredValue } from "react";
4
+ import React__default, { useCallback, useReducer, useEffect, useDebugValue as useDebugValue$1, useContext, createContext, useRef, useLayoutEffect, useState, useMemo, createElement, forwardRef, Children, isValidElement, cloneElement, Fragment as Fragment$1, memo, useImperativeHandle, version as version$1, useDeferredValue } from "react";
5
5
  import * as ReactDOM from "react-dom";
6
6
  import ReactDOM__default, { flushSync, unstable_batchedUpdates, createPortal } from "react-dom";
7
7
  var c$1 = { VITE_APP_BACKEND_V2_GET_URL: "https://json.excalidraw.com/api/v2/", VITE_APP_BACKEND_V2_POST_URL: "https://json.excalidraw.com/api/v2/post/", VITE_APP_LIBRARY_URL: "https://libraries.excalidraw.com", VITE_APP_LIBRARY_BACKEND: "https://us-central1-excalidraw-room-persistence.cloudfunctions.net/libraries", VITE_APP_PLUS_LP: "https://plus.excalidraw.com", VITE_APP_PLUS_APP: "https://app.excalidraw.com", VITE_APP_AI_BACKEND: "https://oss-ai.excalidraw.com", VITE_APP_WS_SERVER_URL: "https://oss-collab.excalidraw.com", VITE_APP_FIREBASE_CONFIG: '{"apiKey":"AIzaSyAd15pYlMci_xIp9ko6wkEsDzAAA0Dn0RU","authDomain":"excalidraw-room-persistence.firebaseapp.com","databaseURL":"https://excalidraw-room-persistence.firebaseio.com","projectId":"excalidraw-room-persistence","storageBucket":"excalidraw-room-persistence.appspot.com","messagingSenderId":"654800341332","appId":"1:654800341332:web:4a692de832b55bd57ce0c1"}', VITE_APP_ENABLE_TRACKING: "false", VITE_APP_PLUS_EXPORT_PUBLIC_KEY: `MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApQ0jM9Qz8TdFLzcuAZZX
@@ -8075,7 +8075,7 @@ var Vd = typeof Worker < "u", qd = async (e12, t3) => {
8075
8075
  return Vd = false, bd$1() && (i3 instanceof zn || i3 instanceof Qn) || console.error("Failed to use workers for subsetting, falling back to the main thread.", i3), r3(e12, t3);
8076
8076
  }
8077
8077
  }) : r3(e12, t3);
8078
- }, pa = null, ua = null, W6 = async () => (pa || (pa = import("./subset-worker.chunk-CgaFXU4O.js")), pa), z6 = async () => (ua || (ua = import("./subset-shared.chunk-BuFt2PpZ.js")), ua), ma = null, Q6 = () => (ma || (ma = mn(async () => {
8078
+ }, pa = null, ua = null, W6 = async () => (pa || (pa = import("./subset-worker.chunk-BPZ9lRyO.js")), pa), z6 = async () => (ua || (ua = import("./subset-shared.chunk-B3jKVF_v.js")), ua), ma = null, Q6 = () => (ma || (ma = mn(async () => {
8079
8079
  let { WorkerUrl: e12 } = await W6();
8080
8080
  return qo$1.create(e12);
8081
8081
  })), ma);
@@ -13452,7 +13452,7 @@ var X2 = (e12) => {
13452
13452
  var s6 = async (e12) => {
13453
13453
  let t3;
13454
13454
  if (e12.type === H.png) try {
13455
- return await (await import("./image-EDRW2JGV-Cx7o2kxD.js")).decodePngMetadata(e12);
13455
+ return await (await import("./image-EDRW2JGV-D8WRJNV5.js")).decodePngMetadata(e12);
13456
13456
  } catch (n3) {
13457
13457
  throw n3.message === "INVALID" ? new nn("Image doesn't contain scene", "IMAGE_NOT_CONTAINS_SCENE_DATA") : new nn("Error: cannot restore image");
13458
13458
  }
@@ -13525,7 +13525,7 @@ var K9 = (e12) => e12 && e12.name.match(/\.(json|excalidraw|png|svg)$/)?.[1] ||
13525
13525
  return new File([i3], t3, { type: o3 });
13526
13526
  }, BY = (e12) => Di$1(e12.slice(e12.indexOf(",") + 1)), _Y = async (e12, t3) => {
13527
13527
  if (e12.type === H.svg) return e12;
13528
- let [n3, r3] = await Promise.all([import("./pica-CzzcRNRD.js").then((n8) => n8.p).then((i3) => i3.default), import("./image-blob-reduce.esm-BKPqMdie.js").then((i3) => i3.default)]), o3 = r3({ pica: n3({ features: ["js", "wasm"] }) });
13528
+ let [n3, r3] = await Promise.all([import("./pica-CRUcAi0U.js").then((n8) => n8.p).then((i3) => i3.default), import("./image-blob-reduce.esm-BKPqMdie.js").then((i3) => i3.default)]), o3 = r3({ pica: n3({ features: ["js", "wasm"] }) });
13529
13529
  if (t3.outputType) {
13530
13530
  let { outputType: i3 } = t3;
13531
13531
  o3._create_blob = function(a3) {
@@ -20476,7 +20476,7 @@ _$94cfa2cfccc8cc22$export$6531021b3bf36eae.constants = {
20476
20476
  let $94cfa2cfccc8cc22$export$6531021b3bf36eae = _$94cfa2cfccc8cc22$export$6531021b3bf36eae;
20477
20477
  var YE = createIsolation();
20478
20478
  var { useAtom: ce, useSetAtom: Tr, useAtomValue: Ws, useStore: LM } = YE, VE = YE.Provider, st = createStore$2();
20479
- var YT = g$2({ "./locales/ar-SA.json": () => import("./ar-SA-G6X2FPQ2-DjqDLLYL.js"), "./locales/az-AZ.json": () => import("./az-AZ-76LH7QW2-D7LOsF3_.js"), "./locales/bg-BG.json": () => import("./bg-BG-XCXSNQG7-WI4tFn23.js"), "./locales/bn-BD.json": () => import("./bn-BD-2XOGV67Q-Bugx_8fy.js"), "./locales/ca-ES.json": () => import("./ca-ES-6MX7JW3Y-6rFwKGsQ.js"), "./locales/cs-CZ.json": () => import("./cs-CZ-2BRQDIVT-Dhd8XszK.js"), "./locales/da-DK.json": () => import("./da-DK-5WZEPLOC-BhL87sSs.js"), "./locales/de-DE.json": () => import("./de-DE-XR44H4JA-xSrZSV0J.js"), "./locales/el-GR.json": () => import("./el-GR-BZB4AONW-DQORZ_pY.js"), "./locales/en.json": () => import("./en-B4ZKOASM-D2BVbEdz.js"), "./locales/es-ES.json": () => import("./es-ES-U4NZUMDT-C0Q89-0V.js"), "./locales/eu-ES.json": () => import("./eu-ES-A7QVB2H4-BwBW3cEw.js"), "./locales/fa-IR.json": () => import("./fa-IR-HGAKTJCU-DtZ74rm4.js"), "./locales/fi-FI.json": () => import("./fi-FI-Z5N7JZ37-QvQan48z.js"), "./locales/fr-FR.json": () => import("./fr-FR-RHASNOE6-CZFiweNU.js"), "./locales/gl-ES.json": () => import("./gl-ES-HMX3MZ6V-Bqv2xL-V.js"), "./locales/he-IL.json": () => import("./he-IL-6SHJWFNN-kso30jhn.js"), "./locales/hi-IN.json": () => import("./hi-IN-IWLTKZ5I-Busk5oaa.js"), "./locales/hu-HU.json": () => import("./hu-HU-A5ZG7DT2-xSR2C2H0.js"), "./locales/id-ID.json": () => import("./id-ID-SAP4L64H-BQQZYm1L.js"), "./locales/it-IT.json": () => import("./it-IT-JPQ66NNP-CAMVZrYt.js"), "./locales/ja-JP.json": () => import("./ja-JP-DBVTYXUO-CAX8A_Uj.js"), "./locales/kaa.json": () => import("./kaa-6HZHGXH3-4-o94cPY.js"), "./locales/kab-KAB.json": () => import("./kab-KAB-ZGHBKWFO-CgyjjBvZ.js"), "./locales/kk-KZ.json": () => import("./kk-KZ-P5N5QNE5-BEqZcwLA.js"), "./locales/km-KH.json": () => import("./km-KH-HSX4SM5Z-DvKDbeH4.js"), "./locales/ko-KR.json": () => import("./ko-KR-MTYHY66A-DKCuAbKE.js"), "./locales/ku-TR.json": () => import("./ku-TR-6OUDTVRD-CNUs4cCe.js"), "./locales/lt-LT.json": () => import("./lt-LT-XHIRWOB4-gouzGdoW.js"), "./locales/lv-LV.json": () => import("./lv-LV-5QDEKY6T-CTvg1XFv.js"), "./locales/mr-IN.json": () => import("./mr-IN-CRQNXWMA-QeYm06Kq.js"), "./locales/my-MM.json": () => import("./my-MM-5M5IBNSE-DG3k9ORf.js"), "./locales/nb-NO.json": () => import("./nb-NO-T6EIAALU-Cj995Nmg.js"), "./locales/nl-NL.json": () => import("./nl-NL-IS3SIHDZ-B-2H7xey.js"), "./locales/nn-NO.json": () => import("./nn-NO-6E72VCQL-DrAwKKTN.js"), "./locales/oc-FR.json": () => import("./oc-FR-POXYY2M6-CeyJD7tq.js"), "./locales/pa-IN.json": () => import("./pa-IN-N4M65BXN-DHzi6mjo.js"), "./locales/percentages.json": () => import("./percentages-BXMCSKIN-CDYsTuua.js"), "./locales/pl-PL.json": () => import("./pl-PL-T2D74RX3-BBNEV2c6.js"), "./locales/pt-BR.json": () => import("./pt-BR-5N22H2LF-D2cTx_F0.js"), "./locales/pt-PT.json": () => import("./pt-PT-UZXXM6DQ-BddvLLsF.js"), "./locales/ro-RO.json": () => import("./ro-RO-JPDTUUEW-DynuW50i.js"), "./locales/ru-RU.json": () => import("./ru-RU-B4JR7IUQ-B5Hecrew.js"), "./locales/si-LK.json": () => import("./si-LK-N5RQ5JYF-BGMa93tc.js"), "./locales/sk-SK.json": () => import("./sk-SK-C5VTKIMK-BttCAlBm.js"), "./locales/sl-SI.json": () => import("./sl-SI-NN7IZMDC-DTC59nzG.js"), "./locales/sv-SE.json": () => import("./sv-SE-XGPEYMSR-BPDlPxC1.js"), "./locales/ta-IN.json": () => import("./ta-IN-2NMHFXQM-CI1ZsNk9.js"), "./locales/th-TH.json": () => import("./th-TH-HPSO5L25-CUM-w2Qt.js"), "./locales/tr-TR.json": () => import("./tr-TR-DEFEU3FU-CGpyf_vD.js"), "./locales/uk-UA.json": () => import("./uk-UA-QMV73CPH-Bg15Mv3J.js"), "./locales/vi-VN.json": () => import("./vi-VN-M7AON7JQ-AYmca9so.js"), "./locales/zh-CN.json": () => import("./zh-CN-LNUGB5OW-Dem2Cc-c.js"), "./locales/zh-HK.json": () => import("./zh-HK-E62DVLB3-BjsDyiLI.js"), "./locales/zh-TW.json": () => import("./zh-TW-RAJ6MFWO-IDAsc9Pz.js") });
20479
+ var YT = g$2({ "./locales/ar-SA.json": () => import("./ar-SA-G6X2FPQ2-CO3hWZ_L.js"), "./locales/az-AZ.json": () => import("./az-AZ-76LH7QW2-CjJtZWzg.js"), "./locales/bg-BG.json": () => import("./bg-BG-XCXSNQG7-BVb8CvH8.js"), "./locales/bn-BD.json": () => import("./bn-BD-2XOGV67Q-C6NOv14l.js"), "./locales/ca-ES.json": () => import("./ca-ES-6MX7JW3Y-Dk-lP-nT.js"), "./locales/cs-CZ.json": () => import("./cs-CZ-2BRQDIVT-Bc9fWVyf.js"), "./locales/da-DK.json": () => import("./da-DK-5WZEPLOC-B7uphXHN.js"), "./locales/de-DE.json": () => import("./de-DE-XR44H4JA-Dy8ondmU.js"), "./locales/el-GR.json": () => import("./el-GR-BZB4AONW-BFN4ME4G.js"), "./locales/en.json": () => import("./en-B4ZKOASM-D3wZjzBP.js"), "./locales/es-ES.json": () => import("./es-ES-U4NZUMDT-dpS2lMKQ.js"), "./locales/eu-ES.json": () => import("./eu-ES-A7QVB2H4-s2DA3YCf.js"), "./locales/fa-IR.json": () => import("./fa-IR-HGAKTJCU-BNVamR_K.js"), "./locales/fi-FI.json": () => import("./fi-FI-Z5N7JZ37-BpsUlbp_.js"), "./locales/fr-FR.json": () => import("./fr-FR-RHASNOE6-Dt5REDL2.js"), "./locales/gl-ES.json": () => import("./gl-ES-HMX3MZ6V-DxZgLDtP.js"), "./locales/he-IL.json": () => import("./he-IL-6SHJWFNN-CoomUX4B.js"), "./locales/hi-IN.json": () => import("./hi-IN-IWLTKZ5I-BPm2wYyt.js"), "./locales/hu-HU.json": () => import("./hu-HU-A5ZG7DT2-DxyMZsDQ.js"), "./locales/id-ID.json": () => import("./id-ID-SAP4L64H-B6e9vg4q.js"), "./locales/it-IT.json": () => import("./it-IT-JPQ66NNP-CRT3esMv.js"), "./locales/ja-JP.json": () => import("./ja-JP-DBVTYXUO-B6AAF-Jr.js"), "./locales/kaa.json": () => import("./kaa-6HZHGXH3-BaZZg6sA.js"), "./locales/kab-KAB.json": () => import("./kab-KAB-ZGHBKWFO-D46CI3jH.js"), "./locales/kk-KZ.json": () => import("./kk-KZ-P5N5QNE5-Cmfnz7AK.js"), "./locales/km-KH.json": () => import("./km-KH-HSX4SM5Z-iFFuhLD6.js"), "./locales/ko-KR.json": () => import("./ko-KR-MTYHY66A-CmKfFWzE.js"), "./locales/ku-TR.json": () => import("./ku-TR-6OUDTVRD-B6KuNVIm.js"), "./locales/lt-LT.json": () => import("./lt-LT-XHIRWOB4-B_ahNyae.js"), "./locales/lv-LV.json": () => import("./lv-LV-5QDEKY6T-CkqP131J.js"), "./locales/mr-IN.json": () => import("./mr-IN-CRQNXWMA-CZXMUxcc.js"), "./locales/my-MM.json": () => import("./my-MM-5M5IBNSE-C9fFW3p2.js"), "./locales/nb-NO.json": () => import("./nb-NO-T6EIAALU-D00SrFRT.js"), "./locales/nl-NL.json": () => import("./nl-NL-IS3SIHDZ-D8NlOCQZ.js"), "./locales/nn-NO.json": () => import("./nn-NO-6E72VCQL-9VstPxG8.js"), "./locales/oc-FR.json": () => import("./oc-FR-POXYY2M6-mlYUROT8.js"), "./locales/pa-IN.json": () => import("./pa-IN-N4M65BXN-CEEskuPR.js"), "./locales/percentages.json": () => import("./percentages-BXMCSKIN-CJ0-KBf2.js"), "./locales/pl-PL.json": () => import("./pl-PL-T2D74RX3-B0573z9z.js"), "./locales/pt-BR.json": () => import("./pt-BR-5N22H2LF-CbgtE21X.js"), "./locales/pt-PT.json": () => import("./pt-PT-UZXXM6DQ-DMLyk0YO.js"), "./locales/ro-RO.json": () => import("./ro-RO-JPDTUUEW-QCuVyZw4.js"), "./locales/ru-RU.json": () => import("./ru-RU-B4JR7IUQ-C6-ZQk46.js"), "./locales/si-LK.json": () => import("./si-LK-N5RQ5JYF-BrmxYIeg.js"), "./locales/sk-SK.json": () => import("./sk-SK-C5VTKIMK-B5e16Gqd.js"), "./locales/sl-SI.json": () => import("./sl-SI-NN7IZMDC-DKZF_90P.js"), "./locales/sv-SE.json": () => import("./sv-SE-XGPEYMSR-C9aBKasF.js"), "./locales/ta-IN.json": () => import("./ta-IN-2NMHFXQM-y-K66H5e.js"), "./locales/th-TH.json": () => import("./th-TH-HPSO5L25-EX7HwJMo.js"), "./locales/tr-TR.json": () => import("./tr-TR-DEFEU3FU-KDM5AJhh.js"), "./locales/uk-UA.json": () => import("./uk-UA-QMV73CPH-tQwymE_T.js"), "./locales/vi-VN.json": () => import("./vi-VN-M7AON7JQ-Db9VVrBW.js"), "./locales/zh-CN.json": () => import("./zh-CN-LNUGB5OW-qTmXaYqw.js"), "./locales/zh-HK.json": () => import("./zh-HK-E62DVLB3-C8EuHDeT.js"), "./locales/zh-TW.json": () => import("./zh-TW-RAJ6MFWO-QAxlxG2S.js") });
20480
20480
  var VT = 85, _o = { code: "en", label: "English" }, xi = [_o, ...[{ code: "ar-SA", label: "العربية", rtl: true }, { code: "bg-BG", label: "Български" }, { code: "ca-ES", label: "Català" }, { code: "cs-CZ", label: "Česky" }, { code: "de-DE", label: "Deutsch" }, { code: "el-GR", label: "Ελληνικά" }, { code: "es-ES", label: "Español" }, { code: "eu-ES", label: "Euskara" }, { code: "fa-IR", label: "فارسی", rtl: true }, { code: "fi-FI", label: "Suomi" }, { code: "fr-FR", label: "Français" }, { code: "gl-ES", label: "Galego" }, { code: "he-IL", label: "עברית", rtl: true }, { code: "hi-IN", label: "हिन्दी" }, { code: "hu-HU", label: "Magyar" }, { code: "id-ID", label: "Bahasa Indonesia" }, { code: "it-IT", label: "Italiano" }, { code: "ja-JP", label: "日本語" }, { code: "kab-KAB", label: "Taqbaylit" }, { code: "kk-KZ", label: "Қазақ тілі" }, { code: "ko-KR", label: "한국어" }, { code: "ku-TR", label: "Kurdî" }, { code: "lt-LT", label: "Lietuvių" }, { code: "lv-LV", label: "Latviešu" }, { code: "my-MM", label: "Burmese" }, { code: "nb-NO", label: "Norsk bokmål" }, { code: "nl-NL", label: "Nederlands" }, { code: "nn-NO", label: "Norsk nynorsk" }, { code: "oc-FR", label: "Occitan" }, { code: "pa-IN", label: "ਪੰਜਾਬੀ" }, { code: "pl-PL", label: "Polski" }, { code: "pt-BR", label: "Português Brasileiro" }, { code: "pt-PT", label: "Português" }, { code: "ro-RO", label: "Română" }, { code: "ru-RU", label: "Русский" }, { code: "sk-SK", label: "Slovenčina" }, { code: "sv-SE", label: "Svenska" }, { code: "sl-SI", label: "Slovenščina" }, { code: "tr-TR", label: "Türkçe" }, { code: "uk-UA", label: "Українська" }, { code: "zh-CN", label: "简体中文" }, { code: "zh-TW", label: "繁體中文" }, { code: "vi-VN", label: "Tiếng Việt" }, { code: "mr-IN", label: "मराठी" }].filter((e12) => N[e12.code] >= VT).sort((e12, o3) => e12.label > o3.label ? 1 : -1)], Xs = "__test__";
20481
20481
  c$1.DEV && xi.unshift({ code: Xs, label: "test language" }, { code: `${Xs}.rtl`, label: "‪test language (rtl)‬", rtl: true });
20482
20482
  var bi = _o, Ks = {}, $s = async (e12) => {
@@ -21543,7 +21543,7 @@ var yn = (e12, { selectedElementIds: o3 }, t3) => {
21543
21543
  let m3 = pp$1(o3, t3, r3, { exportBackground: n3, viewBackgroundColor: a3, exportPadding: i3, exportingFrame: c3 });
21544
21544
  if (e12 === "png") {
21545
21545
  let d3 = vY(m3);
21546
- return t3.exportEmbedScene && (d3 = d3.then((p3) => import("./image-EDRW2JGV-Cx7o2kxD.js").then(({ encodePngMetadata: u3 }) => u3({ blob: p3, metadata: to$1(o3, t3, r3) })))), es(d3, { description: "Export to PNG", name: l3, extension: t3.exportEmbedScene ? "excalidraw.png" : "png", mimeTypes: [yo.png], fileHandle: s3 });
21546
+ return t3.exportEmbedScene && (d3 = d3.then((p3) => import("./image-EDRW2JGV-D8WRJNV5.js").then(({ encodePngMetadata: u3 }) => u3({ blob: p3, metadata: to$1(o3, t3, r3) })))), es(d3, { description: "Export to PNG", name: l3, extension: t3.exportEmbedScene ? "excalidraw.png" : "png", mimeTypes: [yo.png], fileHandle: s3 });
21547
21547
  } else if (e12 === "clipboard") try {
21548
21548
  let d3 = vY(m3);
21549
21549
  await Bp(d3);
@@ -23884,7 +23884,7 @@ TTD mermaid definition render errror: ${M.message}`, "color: yellow"), le("ai",
23884
23884
  }
23885
23885
  }, b3 = useRef(f3);
23886
23886
  b3.current = f3;
23887
- let [x3, T3] = useState({ loaded: false, api: import("./index-CLOU2Ikr.js").then((n8) => n8.b6) });
23887
+ let [x3, T3] = useState({ loaded: false, api: import("./index-D_C0FKVU.js").then((n8) => n8.b6) });
23888
23888
  useEffect(() => {
23889
23889
  (async () => {
23890
23890
  await x3.api, T3((_3) => ({ ..._3, loaded: true }));
@@ -24600,7 +24600,7 @@ var Fe = (e12) => (o3) => {
24600
24600
  }), ji = (() => {
24601
24601
  let e12;
24602
24602
  try {
24603
- let t3 = version.split(".");
24603
+ let t3 = version$1.split(".");
24604
24604
  e12 = Number(t3[0]) > 17;
24605
24605
  } catch {
24606
24606
  e12 = false;
@@ -25524,7 +25524,7 @@ var He = () => useContext(gT), Do = () => useContext(hT), me = () => useContext(
25524
25524
  this.addElementsFromPasteOrLibrary({ elements: d3, files: m8.files || null, position: "cursor", retainSeed: r5 });
25525
25525
  } else if (m8.text) {
25526
25526
  if (m8.text && lT(m8.text)) {
25527
- let u3 = await import("./index-CLOU2Ikr.js").then((n9) => n9.b6);
25527
+ let u3 = await import("./index-D_C0FKVU.js").then((n9) => n9.b6);
25528
25528
  try {
25529
25529
  let { elements: h3, files: f3 } = await u3.parseMermaidToExcalidraw(m8.text), b3 = Yi(h3, { regenerateIds: true });
25530
25530
  this.addElementsFromPasteOrLibrary({ elements: b3, files: f3, position: "cursor" });
@@ -27380,7 +27380,7 @@ function CustomExcalidraw() {
27380
27380
  }
27381
27381
  return null;
27382
27382
  };
27383
- return /* @__PURE__ */ jsx("div", { className: "h-screen w-full relative", children: /* @__PURE__ */ jsx("div", { className: "w-full h-full", children: /* @__PURE__ */ jsx(
27383
+ return /* @__PURE__ */ jsx("div", { className: "h-screen w-full relative custom-excalidraw", children: /* @__PURE__ */ jsx("div", { className: "w-full h-full", children: /* @__PURE__ */ jsx(
27384
27384
  IM,
27385
27385
  {
27386
27386
  excalidrawAPI: (api) => {
@@ -27389,13 +27389,20 @@ function CustomExcalidraw() {
27389
27389
  initialData: {
27390
27390
  elements: [],
27391
27391
  appState: {
27392
- zoom: { value: 0.4 }
27392
+ gridModeEnabled: true,
27393
+ zoom: { value: 0.2 }
27393
27394
  }
27394
27395
  },
27395
27396
  viewModeEnabled: false,
27396
27397
  zenModeEnabled: false,
27397
27398
  validateEmbeddable: true,
27398
- renderEmbeddable
27399
+ renderEmbeddable,
27400
+ UIOptions: {
27401
+ canvasActions: {
27402
+ toggleTheme: true
27403
+ }
27404
+ },
27405
+ theme: "dark"
27399
27406
  }
27400
27407
  ) }) });
27401
27408
  }
@@ -27438,11 +27445,42 @@ function fetchImageAsDataUrl(src) {
27438
27445
  });
27439
27446
  };
27440
27447
  img.onerror = (err2) => {
27448
+ console.error(`failed to download image: ${src}`);
27441
27449
  reject(err2);
27442
27450
  };
27443
27451
  img.src = src;
27444
27452
  });
27445
27453
  }
27454
+ function findPlaceForNewElements(appState, elements, newElements) {
27455
+ const padding = 100;
27456
+ const gap = 100;
27457
+ const canvasW = appState.width / appState.zoom.value;
27458
+ appState.height / appState.zoom.value;
27459
+ const minX = -appState.scrollX + padding;
27460
+ const minY = -appState.scrollY + padding;
27461
+ const maxX = minX + canvasW - padding * 2;
27462
+ let maxElY = -Infinity;
27463
+ elements.forEach((el2) => {
27464
+ maxElY = Math.max(maxElY, el2.y + el2.height);
27465
+ });
27466
+ const px2 = minX;
27467
+ const py = Math.max(maxElY, minY) + gap;
27468
+ let startX = px2;
27469
+ let startY = py;
27470
+ const ret = newElements.map((it2, index2) => {
27471
+ if (startX + it2.width > maxX) {
27472
+ startX = px2;
27473
+ startY += it2.height + gap;
27474
+ }
27475
+ const place = {
27476
+ x: startX,
27477
+ y: startY
27478
+ };
27479
+ startX += it2.width + gap;
27480
+ return place;
27481
+ });
27482
+ return ret;
27483
+ }
27446
27484
  function ApiFactory() {
27447
27485
  const excalidrawAPI = useAtomValue$1(excalidrawApiAtom);
27448
27486
  const setApi = useSetAtom$1(apiAtom);
@@ -27450,6 +27488,48 @@ function ApiFactory() {
27450
27488
  if (!excalidrawAPI) {
27451
27489
  return;
27452
27490
  }
27491
+ const insertImgs = async (urls) => {
27492
+ const rets = await Promise.all(
27493
+ urls.map(async (it2) => {
27494
+ const temp = await fetchImageAsDataUrl(it2);
27495
+ return {
27496
+ ...temp,
27497
+ url: it2
27498
+ };
27499
+ })
27500
+ );
27501
+ rets.forEach((it2) => {
27502
+ excalidrawAPI.addFiles([
27503
+ {
27504
+ mimeType: "image/png",
27505
+ id: it2.url,
27506
+ dataURL: it2.dataUrl,
27507
+ created: Date.now()
27508
+ }
27509
+ ]);
27510
+ });
27511
+ const places = findPlaceForNewElements(
27512
+ excalidrawAPI.getAppState(),
27513
+ excalidrawAPI.getSceneElements(),
27514
+ rets
27515
+ );
27516
+ const els = Yi(
27517
+ rets.map((it2, index2) => {
27518
+ return {
27519
+ type: "image",
27520
+ width: it2.width,
27521
+ height: it2.height,
27522
+ x: places[index2].x,
27523
+ y: places[index2].y,
27524
+ fileId: it2.url
27525
+ };
27526
+ })
27527
+ );
27528
+ const currentElements = excalidrawAPI.getSceneElements();
27529
+ excalidrawAPI.updateScene({
27530
+ elements: [...currentElements, ...els]
27531
+ });
27532
+ };
27453
27533
  setApi({
27454
27534
  rawApi: excalidrawAPI,
27455
27535
  __printCanvasInfo: () => {
@@ -27460,34 +27540,11 @@ function ApiFactory() {
27460
27540
  appState: excalidrawAPI.getAppState()
27461
27541
  });
27462
27542
  },
27463
- insertImg: async (url) => {
27464
- const {
27465
- width,
27466
- height,
27467
- dataUrl: imgDataUrl
27468
- } = await fetchImageAsDataUrl(url);
27469
- excalidrawAPI?.addFiles([
27470
- {
27471
- mimeType: "image/png",
27472
- id: url,
27473
- dataURL: imgDataUrl,
27474
- created: Date.now()
27475
- }
27476
- ]);
27477
- const el2 = Yi([
27478
- {
27479
- type: "image",
27480
- width,
27481
- height,
27482
- x: 0,
27483
- y: 0,
27484
- fileId: url
27485
- }
27486
- ]);
27487
- const currentElements = excalidrawAPI.getSceneElements();
27488
- excalidrawAPI.updateScene({
27489
- elements: [...currentElements, ...el2]
27490
- });
27543
+ insertImgs,
27544
+ appendImgs: async (urls) => {
27545
+ const files = excalidrawAPI.getFiles();
27546
+ const newUrls = urls.filter((it2) => !files[it2]);
27547
+ await insertImgs(newUrls);
27491
27548
  },
27492
27549
  save: () => {
27493
27550
  const appState = excalidrawAPI.getAppState();
@@ -27534,11 +27591,59 @@ function ApiFactory() {
27534
27591
  },
27535
27592
  files: excalidrawAPI.getFiles(),
27536
27593
  getDimensions: () => {
27537
- return { width: 1e3, height: 1e3, scale: 0.4 };
27594
+ return { width: 1e3, height: 1e3, scale: 0.3 };
27538
27595
  }
27539
27596
  });
27540
27597
  const base64 = canvas.toDataURL("image/png", 1);
27541
27598
  return base64;
27599
+ },
27600
+ replaceLoadingWithImages: async (id2, urls) => {
27601
+ const elements = excalidrawAPI.getSceneElements();
27602
+ const loadingEl = elements.find(
27603
+ (it2) => it2.type === "embeddable" && it2.id === id2
27604
+ );
27605
+ if (!loadingEl) {
27606
+ insertImgs(urls);
27607
+ return;
27608
+ }
27609
+ const rets = await Promise.all(
27610
+ urls.map(async (it2) => {
27611
+ const temp = await fetchImageAsDataUrl(it2);
27612
+ return {
27613
+ ...temp,
27614
+ url: it2
27615
+ };
27616
+ })
27617
+ );
27618
+ rets.forEach((it2) => {
27619
+ excalidrawAPI.addFiles([
27620
+ {
27621
+ mimeType: "image/png",
27622
+ id: it2.url,
27623
+ dataURL: it2.dataUrl,
27624
+ created: Date.now()
27625
+ }
27626
+ ]);
27627
+ });
27628
+ let x3 = loadingEl.x;
27629
+ let y3 = loadingEl.y;
27630
+ const els = Yi(
27631
+ rets.map((it2, index2) => {
27632
+ const tempX = x3;
27633
+ x3 += it2.width + 100;
27634
+ return {
27635
+ type: "image",
27636
+ width: it2.width,
27637
+ height: it2.height,
27638
+ x: tempX,
27639
+ y: y3,
27640
+ fileId: it2.url
27641
+ };
27642
+ })
27643
+ );
27644
+ excalidrawAPI.updateScene({
27645
+ elements: [...elements.filter((it2) => it2.id !== id2), ...els]
27646
+ });
27542
27647
  }
27543
27648
  });
27544
27649
  }, [excalidrawAPI, setApi]);
@@ -27570,12 +27675,80 @@ function FloatingMenu() {
27570
27675
  const base64 = canvas.toDataURL("image/png", 1);
27571
27676
  return base64;
27572
27677
  };
27678
+ const insertLoading = () => {
27679
+ if (!excalidrawAPI) return;
27680
+ const appState = excalidrawAPI.getAppState();
27681
+ const selectedIds = appState.selectedElementIds;
27682
+ if (Object.keys(selectedIds).length === 0) {
27683
+ throw "没有选中任何元素";
27684
+ }
27685
+ const selectedElements = excalidrawAPI.getSceneElements().filter((element) => appState.selectedElementIds[element.id]);
27686
+ if (selectedElements.length === 0) {
27687
+ throw "没有选中任何可见元素";
27688
+ }
27689
+ let minY = Infinity;
27690
+ let maxX = -Infinity;
27691
+ let maxY = -Infinity;
27692
+ selectedElements.forEach((el22) => {
27693
+ minY = Math.min(minY, el22.y);
27694
+ maxX = Math.max(maxX, el22.x + el22.width);
27695
+ maxY = Math.max(maxY, el22.y + el22.height);
27696
+ });
27697
+ const h3 = maxY - minY;
27698
+ const el2 = Yi([
27699
+ {
27700
+ type: "embeddable",
27701
+ x: maxX + 100,
27702
+ y: minY,
27703
+ width: h3,
27704
+ height: h3,
27705
+ id: `loading-${Date.now()}`,
27706
+ link: "https://www.google.com",
27707
+ // 添加必需的基本样式属性
27708
+ strokeColor: "#000",
27709
+ backgroundColor: "transparent",
27710
+ fillStyle: "solid",
27711
+ strokeWidth: 1,
27712
+ strokeStyle: "solid",
27713
+ roundness: null,
27714
+ roughness: 1,
27715
+ opacity: 100,
27716
+ // 添加必需的变换属性
27717
+ angle: 0,
27718
+ seed: Math.random(),
27719
+ version: 1,
27720
+ versionNonce: Math.random(),
27721
+ // 添加必需的状态属性
27722
+ locked: false,
27723
+ isDeleted: false,
27724
+ groupIds: [],
27725
+ // 添加绑定框属性
27726
+ boundElements: [],
27727
+ updated: Date.now(),
27728
+ // 添加必需的索引和帧ID属性
27729
+ frameId: null,
27730
+ index: null,
27731
+ // 添加缺失的index属性
27732
+ customData: {
27733
+ type: "loading",
27734
+ component: "loading"
27735
+ }
27736
+ }
27737
+ ]);
27738
+ const currentElements = excalidrawAPI.getSceneElements();
27739
+ excalidrawAPI.updateScene({
27740
+ elements: [...currentElements, ...el2]
27741
+ });
27742
+ return el2[0].id;
27743
+ };
27573
27744
  const handleChatToEdit = async () => {
27574
27745
  const dataUrl = await handleExport();
27746
+ const id2 = insertLoading();
27575
27747
  emitter.emit("chat-to-edit", {
27576
27748
  type: "chat-to-edit",
27577
27749
  url: dataUrl,
27578
- prompt
27750
+ prompt,
27751
+ id: id2
27579
27752
  });
27580
27753
  };
27581
27754
  useEffect(() => {
@@ -27654,12 +27827,16 @@ function FloatingMenu() {
27654
27827
  }
27655
27828
  );
27656
27829
  }
27830
+ const version = "0.0.4";
27831
+ const packageJson = {
27832
+ version
27833
+ };
27657
27834
  function XCanvas({ registerApi, registerEventHandler }) {
27658
27835
  const [api] = useAtom$1(apiAtom);
27659
27836
  useEffect(() => {
27660
27837
  if (api && registerApi) {
27661
27838
  console.log(
27662
- "%c XCanvas bootstraped ",
27839
+ `%c XCanvas bootstraped ${packageJson.version}`,
27663
27840
  "background: #222; color: #bada55"
27664
27841
  );
27665
27842
  registerApi(api);
@@ -1,4 +1,4 @@
1
- import "./XCanvas-BxdLBkBz.js";
1
+ import "./XCanvas-CB8oO4UO.js";
2
2
  var t = { paste: "لصق", pasteAsPlaintext: "اللصق كنص عادي", pasteCharts: "لصق الرسوم البيانية", selectAll: "تحديد الكل", multiSelect: "إضافة عنصر للتحديد", moveCanvas: "نقل لوح الرسم", cut: "قص", copy: "نسخ", copyAsPng: "نسخ إلى الحافظة بصيغة PNG", copyAsSvg: "نسخ إلى الحافظة بصيغة SVG", copyText: "نسخ إلى الحافظة كنص", copySource: "", convertToCode: "", bringForward: "جلب للأمام", sendToBack: "أرسل للخلف", bringToFront: "أحضر للأمام", sendBackward: "أرسل للخلف", delete: "حذف", copyStyles: "نسخ الأنماط", pasteStyles: "لصق الأنماط", stroke: "الخط", background: "الخلفية", fill: "التعبئة", strokeWidth: "سُمك الخط", strokeStyle: "نمط الخط", strokeStyle_solid: "متصل", strokeStyle_dashed: "متقطع", strokeStyle_dotted: "منقط", sloppiness: "الإمالة", opacity: "الشفافية", textAlign: "محاذاة النص", edges: "الحواف", sharp: "حادة", round: "دائرية", arrowheads: "رؤوس الأسهم", arrowhead_none: "لا شيء", arrowhead_arrow: "سهم", arrowhead_bar: "شريط", arrowhead_circle: "", arrowhead_circle_outline: "", arrowhead_triangle: "مثلث", arrowhead_triangle_outline: "", arrowhead_diamond: "", arrowhead_diamond_outline: "", fontSize: "حجم الخط", fontFamily: "نوع الخط", addWatermark: 'إضافة "مصنوعة بواسطة Excalidraw"', handDrawn: "رسم باليد", normal: "عادي", code: "رمز", small: "صغير", medium: "متوسط", large: "كبير", veryLarge: "كبير جدا", solid: "كامل", hachure: "خطوط", zigzag: "متعرج", crossHatch: "خطوط متقطعة", thin: "نحيف", bold: "داكن", left: "الـيسار", center: "وسط", right: "يمين", extraBold: "عريض", architect: "معماري", artist: "رسام", cartoonist: "كرتوني", fileTitle: "إسم الملف", colorPicker: "منتقي اللون", canvasColors: "تستخدم على القماش", canvasBackground: "خلفية اللوحة", drawingCanvas: "لوحة الرسم", layers: "الطبقات", actions: "الإجراءات", language: "اللغة", liveCollaboration: "التعاون المباشر...", duplicateSelection: "تكرار", untitled: "غير معنون", name: "الاسم", yourName: "اسمك", madeWithExcalidraw: "مصنوعة بواسطة Excalidraw", group: "تحديد مجموعة", ungroup: "إلغاء تحديد مجموعة", collaborators: "المتعاونون", showGrid: "إظهار الشبكة", addToLibrary: "أضف إلى المكتبة", removeFromLibrary: "حذف من المكتبة", libraryLoadingMessage: "جارٍ تحميل المكتبة…", libraries: "تصفح المكتبات", loadingScene: "جاري تحميل المشهد…", align: "محاذاة", alignTop: "محاذاة إلى اﻷعلى", alignBottom: "محاذاة إلى اﻷسفل", alignLeft: "محاذاة إلى اليسار", alignRight: "محاذاة إلى اليمين", centerVertically: "توسيط عمودي", centerHorizontally: "توسيط أفقي", distributeHorizontally: "التوزيع الأفقي", distributeVertically: "التوزيع عمودياً", flipHorizontal: "قلب عامودي", flipVertical: "قلب أفقي", viewMode: "نمط العرض", share: "مشاركة", showStroke: "إظهار منتقي لون الخط", showBackground: "إظهار منتقي لون الخلفية", toggleTheme: "غير النمط", personalLib: "المكتبة الشخصية", excalidrawLib: "مكتبتنا", decreaseFontSize: "تصغير حجم الخط", increaseFontSize: "تكبير حجم الخط", unbindText: "فك ربط النص", bindText: "ربط النص بالحاوية", createContainerFromText: "نص مغلف في حاوية", link: { edit: "تعديل الرابط", editEmbed: "تحرير الرابط وإدراجه", create: "إنشاء رابط", createEmbed: "إنشاء رابط و إدراجه", label: "رابط", labelEmbed: "رابط و إدراج", empty: "لم يتم تعيين رابط" }, lineEditor: { edit: "تحرير السطر", exit: "الخروج من المُحرر" }, elementLock: { lock: "قفل", unlock: "فتح", lockAll: "قفل الكل", unlockAll: "فتح الكل" }, statusPublished: "نُشر", sidebarLock: "إبقاء الشريط الجانبي مفتوح", selectAllElementsInFrame: "تحديد جميع العناصر في الإطار", removeAllElementsFromFrame: "إزالة جميع العناصر من الإطار", eyeDropper: "اختيار اللون من القماش", textToDiagram: "", prompt: "" }, o = { noItems: "لا توجد عناصر أضيفت بعد...", hint_emptyLibrary: "حدد عنصر على القماش لإضافته هنا، أو تثبيت مكتبة من المستودع العام أدناه.", hint_emptyPrivateLibrary: "حدد عنصر على القماش لإضافته هنا." }, a = { clearReset: "إعادة تعيين اللوحة", exportJSON: "صدر الملف", exportImage: "تصدير الصورة...", export: "حفظ إلى...", copyToClipboard: "نسخ إلى الحافظة", save: "احفظ للملف الحالي", saveAs: "حفظ كـ", load: "فتح", getShareableLink: "احصل على رابط المشاركة", close: "غلق", selectLanguage: "اختر اللغة", scrollBackToContent: "الرجوع إلى المحتوى", zoomIn: "تكبير", zoomOut: "تصغير", resetZoom: "إعادة تعيين الشاشة", menu: "القائمة", done: "تم", edit: "تعديل", undo: "تراجع", redo: "إعادة تنفيذ", resetLibrary: "إعادة ضبط المكتبة", createNewRoom: "إنشاء غرفة جديدة", fullScreen: "شاشة كاملة", darkMode: "الوضع المظلم", lightMode: "الوضع المضيء", zenMode: "وضع التأمل", objectsSnapMode: "التقط إلى العناصر", exitZenMode: "إلغاء الوضع الليلى", cancel: "إلغاء", clear: "مسح", remove: "إزالة", embed: "تبديل الإدراج", publishLibrary: "انشر", submit: "أرسل", confirm: "تأكيد", embeddableInteractionButton: "اضغط للتفاعل" }, i = { clearReset: "هذا سيُزيل كامل اللوحة. هل أنت متأكد؟", couldNotCreateShareableLink: "تعذر إنشاء رابطة المشاركة.", couldNotCreateShareableLinkTooBig: "تعذر إنشاء رابط قابل للمشاركة: المشهد كبير جدًا", couldNotLoadInvalidFile: "تعذر التحميل، الملف غير صالح", importBackendFailed: "فشل الاستيراد من الخادوم.", cannotExportEmptyCanvas: "لا يمكن تصدير لوحة فارغة.", couldNotCopyToClipboard: "تعذر النسخ إلى الحافظة.", decryptFailed: "تعذر فك تشفير البيانات.", uploadedSecurly: "تم تأمين التحميل بتشفير النهاية إلى النهاية، مما يعني أن خادوم Excalidraw والأطراف الثالثة لا يمكنها قراءة المحتوى.", loadSceneOverridePrompt: "تحميل الرسم الخارجي سيحل محل المحتوى الموجود لديك. هل ترغب في المتابعة؟", collabStopOverridePrompt: `إيقاف الجلسة سيؤدي إلى الكتابة فوق رسومك السابقة المخزنة داخليا. هل أنت متأكد؟
3
3
 
4
4
  (إذا كنت ترغب في الاحتفاظ برسمك المخزن داخليا، ببساطة أغلق علامة تبويب المتصفح بدلاً من ذلك.)`, errorAddingToLibrary: "تعذر إضافة العنصر للمكتبة", errorRemovingFromLibrary: "تعذر إزالة العنصر من المكتبة", confirmAddLibrary: "هذا سيضيف {{numShapes}} شكل إلى مكتبتك. هل أنت متأكد؟", imageDoesNotContainScene: "يبدو أن هذه الصورة لا تحتوي على أي بيانات مشهد. هل قمت بتمكين تضمين المشهد أثناء التصدير؟", cannotRestoreFromImage: "تعذر استعادة المشهد من ملف الصورة", invalidSceneUrl: "تعذر استيراد المشهد من عنوان URL المتوفر. إما أنها مشوهة، أو لا تحتوي على بيانات Excalidraw JSON صالحة.", resetLibrary: "هذا سوف يمسح مكتبتك. هل أنت متأكد؟", removeItemsFromsLibrary: "حذف {{count}} عنصر (عناصر) من المكتبة؟", invalidEncryptionKey: "مفتاح التشفير يجب أن يكون من 22 حرفاً. التعاون المباشر معطل.", collabOfflineWarning: `لا يوجد اتصال بالانترنت.
@@ -1,5 +1,5 @@
1
1
  import { w as withPath, c as constant } from "./path-Cp2qmpkd.js";
2
- import { D as pi, E as cos, F as sin, G as halfPi, H as epsilon, I as tau, J as sqrt, K as min, L as abs, M as atan2, N as asin, O as max, P as acos } from "./index-CLOU2Ikr.js";
2
+ import { D as pi, E as cos, F as sin, G as halfPi, H as epsilon, I as tau, J as sqrt, K as min, L as abs, M as atan2, N as asin, O as max, P as acos } from "./index-D_C0FKVU.js";
3
3
  function arcInnerRadius(d) {
4
4
  return d.innerRadius;
5
5
  }
@@ -1,4 +1,4 @@
1
- import "./XCanvas-BxdLBkBz.js";
1
+ import "./XCanvas-CB8oO4UO.js";
2
2
  var r = { paste: "Yapışdır", pasteAsPlaintext: "Düz mətn kimi yapışdırın", pasteCharts: "Diaqramları yapışdırın", selectAll: "Hamısını seç", multiSelect: "Seçimə element əlavə edin", moveCanvas: "Kanvası köçürün", cut: "Kəs", copy: "Kopyala", copyAsPng: "PNG olaraq panoya kopyala", copyAsSvg: "SVG olaraq panoya kopyala", copyText: "Mətn olaraq panoya kopyala", copySource: "", convertToCode: "", bringForward: "Önə daşı", sendToBack: "Geriyə göndərin", bringToFront: "Önə gətirin", sendBackward: "Geriyə göndərin", delete: "Sil", copyStyles: "Stilləri kopyalayın", pasteStyles: "Stilləri yapışdırın", stroke: "Strok rəngi", background: "Arxa fon", fill: "Doldur", strokeWidth: "Strok eni", strokeStyle: "Strok stili", strokeStyle_solid: "Solid", strokeStyle_dashed: "Kəsik", strokeStyle_dotted: "Nöqtəli", sloppiness: "Səliqəsizlik", opacity: "Şəffaflıq", textAlign: "Mətni uyğunlaşdır", edges: "Kənarlar", sharp: "Kəskin", round: "Dəyirmi", arrowheads: "Ox ucları", arrowhead_none: "Heç biri", arrowhead_arrow: "Ox", arrowhead_bar: "Çubuq", arrowhead_circle: "", arrowhead_circle_outline: "", arrowhead_triangle: "Üçbucaq", arrowhead_triangle_outline: "", arrowhead_diamond: "", arrowhead_diamond_outline: "", fontSize: "Şrift ölçüsü", fontFamily: "Şrift qrupu", addWatermark: '"Made with Excalidraw" əlavə et', handDrawn: "Əllə çəkilmiş", normal: "Normal", code: "Kod", small: "Kiçik", medium: "Orta", large: "Böyük", veryLarge: "Çox böyük", solid: "Solid", hachure: "Ştrix", zigzag: "Ziqzaq", crossHatch: "Çarpaz dəlik", thin: "İncə", bold: "Qalın", left: "Sol", center: "Mərkəz", right: "Sağ", extraBold: "Ekstra qalın", architect: "Memar", artist: "Rəssam", cartoonist: "Karikaturaçı", fileTitle: "Fayl adı", colorPicker: "Rəng seçən", canvasColors: "Kanvas üzərində istifadə olunur", canvasBackground: "Kanvas arxa fonu", drawingCanvas: "Kanvas çəkmək", layers: "Qatlar", actions: "Hərəkətlər", language: "Dil", liveCollaboration: "Canlı əməkdaşlıq...", duplicateSelection: "Dublikat", untitled: "Başlıqsız", name: "Ad", yourName: "Adınız", madeWithExcalidraw: "Excalidraw ilə hazırlanmışdır", group: "Qrup şəklində seçim", ungroup: "Qrupsuz seçim", collaborators: "", showGrid: "", addToLibrary: "", removeFromLibrary: "", libraryLoadingMessage: "", libraries: "", loadingScene: "", align: "", alignTop: "", alignBottom: "", alignLeft: "", alignRight: "", centerVertically: "", centerHorizontally: "", distributeHorizontally: "", distributeVertically: "", flipHorizontal: "", flipVertical: "", viewMode: "", share: "", showStroke: "", showBackground: "", toggleTheme: "", personalLib: "", excalidrawLib: "", decreaseFontSize: "", increaseFontSize: "", unbindText: "", bindText: "", createContainerFromText: "", link: { edit: "", editEmbed: "", create: "", createEmbed: "", label: "", labelEmbed: "", empty: "" }, lineEditor: { edit: "", exit: "" }, elementLock: { lock: "", unlock: "", lockAll: "", unlockAll: "" }, statusPublished: "", sidebarLock: "", selectAllElementsInFrame: "", removeAllElementsFromFrame: "", eyeDropper: "", textToDiagram: "", prompt: "" }, o = { noItems: "", hint_emptyLibrary: "", hint_emptyPrivateLibrary: "" }, t = { clearReset: "", exportJSON: "", exportImage: "", export: "", copyToClipboard: "", save: "", saveAs: "", load: "", getShareableLink: "", close: "", selectLanguage: "", scrollBackToContent: "", zoomIn: "", zoomOut: "", resetZoom: "", menu: "", done: "", edit: "", undo: "", redo: "", resetLibrary: "", createNewRoom: "", fullScreen: "", darkMode: "", lightMode: "", zenMode: "", objectsSnapMode: "", exitZenMode: "", cancel: "", clear: "", remove: "", embed: "", publishLibrary: "", submit: "", confirm: "", embeddableInteractionButton: "" }, i = { clearReset: "", couldNotCreateShareableLink: "", couldNotCreateShareableLinkTooBig: "", couldNotLoadInvalidFile: "", importBackendFailed: "", cannotExportEmptyCanvas: "", couldNotCopyToClipboard: "", decryptFailed: "", uploadedSecurly: "", loadSceneOverridePrompt: "", collabStopOverridePrompt: "", errorAddingToLibrary: "", errorRemovingFromLibrary: "", confirmAddLibrary: "", imageDoesNotContainScene: "", cannotRestoreFromImage: "", invalidSceneUrl: "", resetLibrary: "", removeItemsFromsLibrary: "", invalidEncryptionKey: "", collabOfflineWarning: "" }, l = { unsupportedFileType: "", imageInsertError: "", fileTooBig: "", svgImageInsertError: "", failedToFetchImage: "", invalidSVGString: "", cannotResolveCollabServer: "", importLibraryError: "", collabSaveFailed: "", collabSaveFailed_sizeExceeded: "", imageToolNotSupported: "", brave_measure_text_error: { line1: "", line2: "", line3: "", line4: "" }, libraryElementTypeError: { embeddable: "", iframe: "", image: "" }, asyncPasteFailedOnRead: "", asyncPasteFailedOnParse: "", copyToSystemClipboardFailed: "" }, n = { selection: "", image: "", rectangle: "", diamond: "", ellipse: "", arrow: "", line: "", freedraw: "", text: "", library: "", lock: "", penMode: "", link: "", eraser: "", frame: "", magicframe: "", embeddable: "", laser: "", hand: "", extraTools: "", mermaidToExcalidraw: "", magicSettings: "" }, s = { canvasActions: "", selectedShapeActions: "", shapes: "" }, d = { canvasPanning: "", linearElement: "", freeDraw: "", text: "", embeddable: "", text_selected: "", text_editing: "", linearElementMulti: "", lockAngle: "", resize: "", resizeImage: "", rotate: "", lineEditor_info: "", lineEditor_pointSelected: "", lineEditor_nothingSelected: "", placeImage: "", publishLibrary: "", bindTextToElement: "", deepBoxSelect: "", eraserRevert: "", firefox_clipboard_write: "", disableSnapping: "" }, c = { cannotShowPreview: "", canvasTooBig: "", canvasTooBigTip: "" }, m = { headingMain: "", clearCanvasMessage: "", clearCanvasCaveat: "", trackedToSentry: "", openIssueMessage: "", sceneContent: "" }, p = { desc_intro: "", desc_privacy: "", button_startSession: "", button_stopSession: "", desc_inProgressIntro: "", desc_shareLink: "", desc_exitSession: "", shareTitle: "" }, g = { title: "" }, b = { disk_title: "", disk_details: "", disk_button: "", link_title: "", link_details: "", link_button: "", excalidrawplus_description: "", excalidrawplus_button: "", excalidrawplus_exportError: "" }, u = { blog: "", click: "", deepSelect: "", deepBoxSelect: "", curvedArrow: "", curvedLine: "", documentation: "", doubleClick: "", drag: "", editor: "", editLineArrowPoints: "", editText: "", github: "", howto: "", or: "", preventBinding: "", tools: "", shortcuts: "", textFinish: "", textNewLine: "", title: "", view: "", zoomToFit: "", zoomToSelection: "", toggleElementLock: "", movePageUpDown: "", movePageLeftRight: "" }, y = { title: "" }, h = { title: "", itemName: "", authorName: "", githubUsername: "", twitterUsername: "", libraryName: "", libraryDesc: "", website: "", placeholder: { authorName: "", libraryName: "", libraryDesc: "", githubHandle: "", twitterHandle: "", website: "" }, errors: { required: "", website: "" }, noteDescription: "", noteGuidelines: "", noteLicense: "", noteItems: "", atleastOneLibItem: "", republishWarning: "" }, k = { title: "", content: "" }, S = { resetLibrary: "", removeItemsFromLib: "" }, v = { header: "", label: { withBackground: "", onlySelected: "", darkMode: "", embedScene: "", scale: "", padding: "" }, tooltip: { embedScene: "" }, title: { exportToPng: "", exportToSvg: "", copyPngToClipboard: "" }, button: { exportToPng: "", exportToSvg: "", copyPngToClipboard: "" } }, w = { tooltip: "", link: "" }, x = { angle: "", element: "", elements: "", height: "", scene: "", selected: "", storage: "", title: "", total: "", version: "", versionCopy: "", versionNotAvailable: "", width: "" }, T = { addedToLibrary: "", copyStyles: "", copyToClipboard: "", copyToClipboardAsPng: "", fileSaved: "", fileSavedToFilename: "", canvas: "", selection: "", pasteAsSingleElement: "", unableToEmbed: "", unrecognizedLinkFormat: "" }, _ = { transparent: "", black: "", white: "", red: "", pink: "", grape: "", violet: "", gray: "", blue: "", cyan: "", teal: "", green: "", yellow: "", orange: "", bronze: "" }, L = { app: { center_heading: "", center_heading_plus: "", menuHint: "" }, defaults: { menuHint: "", center_heading: "", toolbarHint: "", helpHint: "" } }, f = { mostUsedCustomColors: "", colors: "", shades: "", hexCode: "", noShades: "" }, C = { action: { exportToImage: { title: "", button: "", description: "" }, saveToDisk: { title: "", button: "", description: "" }, excalidrawPlus: { title: "", button: "", description: "" } }, modal: { loadFromFile: { title: "", button: "", description: "" }, shareableLink: { title: "", button: "", description: "" } } }, E = { title: "", button: "", description: "", syntax: "", preview: "" }, F = { labels: r, library: o, buttons: t, alerts: i, errors: l, toolBar: n, headings: s, hints: d, canvasError: c, errorSplash: m, roomDialog: p, errorDialog: g, exportDialog: b, helpDialog: u, clearCanvasDialog: y, publishDialog: h, publishSuccessDialog: k, confirmDialog: S, imageExportDialog: v, encrypted: w, stats: x, toast: T, colors: _, welcomeScreen: L, colorPicker: f, overwriteConfirm: C, mermaid: E };
3
3
  export {
4
4
  i as alerts,
@@ -1,4 +1,4 @@
1
- import "./XCanvas-BxdLBkBz.js";
1
+ import "./XCanvas-CB8oO4UO.js";
2
2
  var o = { paste: "Постави", pasteAsPlaintext: "Постави като обикновен текст", pasteCharts: "Постави графики", selectAll: "Маркирай всичко", multiSelect: "Добави елемент към селекция", moveCanvas: "Премести платно", cut: "Изрежи", copy: "Копирай", copyAsPng: "Копиране в клипборда", copyAsSvg: "Копирано в клипборда като SVG", copyText: "", copySource: "", convertToCode: "", bringForward: "Преместване напред", sendToBack: "Изнасяне назад", bringToFront: "Изнасяне отпред", sendBackward: "Изпрати отзад", delete: "Изтрий", copyStyles: "Копирайте стилове", pasteStyles: "Постави стилове", stroke: "Щрих", background: "Фон", fill: "Наситеност", strokeWidth: "Ширина на щриха", strokeStyle: "Стил на линия", strokeStyle_solid: "Плътен", strokeStyle_dashed: "Пунктир", strokeStyle_dotted: "Пунктирано", sloppiness: "Небрежност", opacity: "Прозрачност", textAlign: "Подравняване на текста", edges: "Крайща", sharp: "Остър", round: "Закръглено", arrowheads: "Стрелки", arrowhead_none: "Без", arrowhead_arrow: "Стрелка", arrowhead_bar: "Връх на стрелката", arrowhead_circle: "", arrowhead_circle_outline: "", arrowhead_triangle: "Триъгълник", arrowhead_triangle_outline: "", arrowhead_diamond: "", arrowhead_diamond_outline: "", fontSize: "Размер на шрифта", fontFamily: "Семейство шрифтове", addWatermark: 'Добави "Направено с Excalidraw"', handDrawn: "Нарисувано на ръка", normal: "Нормален", code: "Код", small: "Малък", medium: "Среден", large: "Голям", veryLarge: "Много голям", solid: "Солиден", hachure: "Хералдика", zigzag: "Зигзаг", crossHatch: "Двойно-пресечено", thin: "Тънък", bold: "Ясно очертан", left: "Ляво", center: "Център", right: "Дясно", extraBold: "Много ясно очертан", architect: "Архитект", artist: "Художник", cartoonist: "Карикатурист", fileTitle: "Име на файл", colorPicker: "Избор на цвят", canvasColors: "Използван на платно", canvasBackground: "Фон на платно", drawingCanvas: "Платно за рисуване", layers: "Слоеве", actions: "Действия", language: "Език", liveCollaboration: "", duplicateSelection: "Дублирай", untitled: "Неозаглавено", name: "Име", yourName: "Вашето име", madeWithExcalidraw: "Направено с Excalidraw", group: "Групирай селекцията", ungroup: "Спри групирането на селекцията", collaborators: "Сътрудници", showGrid: "Показване на мрежа", addToLibrary: "Добавяне към библиотеката", removeFromLibrary: "Премахване от библиотеката", libraryLoadingMessage: "Зареждане на библиотеката…", libraries: "Разглеждане на библиотеките", loadingScene: "Зареждане на сцена…", align: "Подравняване", alignTop: "Подравняване отгоре", alignBottom: "Подравняване отдолу", alignLeft: "Подравняване отляво", alignRight: "Подравняване отдясно", centerVertically: "Центрирай вертикално", centerHorizontally: "Центрирай хоризонтално", distributeHorizontally: "Разпредели хоризонтално", distributeVertically: "Разпредели вертикално", flipHorizontal: "Хоризонтално обръщане", flipVertical: "Вертикално обръщане", viewMode: "Изглед", share: "Сподели", showStroke: "", showBackground: "", toggleTheme: "Включи тема", personalLib: "Лична Библиотека", excalidrawLib: "Excalidraw Библиотека", decreaseFontSize: "Намали размера на шрифта", increaseFontSize: "Увеличи размера на шрифта", unbindText: "", bindText: "", createContainerFromText: "", link: { edit: "Редактирай линк", editEmbed: "", create: "", createEmbed: "", label: "Линк", labelEmbed: "", empty: "" }, lineEditor: { edit: "", exit: "" }, elementLock: { lock: "Заключи", unlock: "Отключи", lockAll: "Заключи всички", unlockAll: "Отключи всички" }, statusPublished: "Публикувани", sidebarLock: "", selectAllElementsInFrame: "", removeAllElementsFromFrame: "", eyeDropper: "Избери цвят от платното", textToDiagram: "", prompt: "" }, r = { noItems: "Няма добавени неща все още...", hint_emptyLibrary: "", hint_emptyPrivateLibrary: "" }, a = { clearReset: "Нулиране на платно", exportJSON: "", exportImage: "", export: "Запази на...", copyToClipboard: "Копиране в клипборда", save: "Запази към текущ файл", saveAs: "Запиши като", load: "Отвори", getShareableLink: "Получаване на връзка за споделяне", close: "Затвори", selectLanguage: "Избор на език", scrollBackToContent: "Превъртете обратно към съдържанието", zoomIn: "Приближаване", zoomOut: "Отдалечаване", resetZoom: "Стандартен мащаб", menu: "Меню", done: "Завършено", edit: "Редактиране", undo: "Отмяна", redo: "Повтори", resetLibrary: "Нулиране на библиотеката", createNewRoom: "Създай нова стая", fullScreen: "На цял екран", darkMode: "Тъмен режим", lightMode: "Светъл режим", zenMode: "Режим Zen", objectsSnapMode: "", exitZenMode: "Спиране на Zen режим", cancel: "Отмени", clear: "Изчисти", remove: "Премахване", embed: "", publishLibrary: "Публикувай", submit: "Изпрати", confirm: "Потвърждаване", embeddableInteractionButton: "" }, i = { clearReset: "Това ще изчисти цялото платно. Сигурни ли сте?", couldNotCreateShareableLink: "Връзката не може да бъде създадена.", couldNotCreateShareableLinkTooBig: "Не може да се създаде връзка за споделяне: сцената е твърде голяма", couldNotLoadInvalidFile: "Невалиден файл не може да се зареди", importBackendFailed: "Импортирането от бекенд не беше успешно.", cannotExportEmptyCanvas: "Не може да се експортира празно платно.", couldNotCopyToClipboard: "Не можем да копираме в клипбоарда.", decryptFailed: "Данните не можаха да се дешифрират.", uploadedSecurly: "Качването е защитено с криптиране от край до край, което означава, че сървърът Excalidraw и трети страни не могат да четат съдържанието.", loadSceneOverridePrompt: "Зареждането на външна рисунка ще презапише настоящото ви съдържание. Желаете ли да продължите?", collabStopOverridePrompt: `Прекратяването на сесията ще презапише предишната, локално запазена, рисунка. Сигурни ли сте?
3
3
 
4
4
  (Ако искате да продължите с локалната рисунка, просто затворете таба на браузъра.)`, errorAddingToLibrary: "Не можем да заредим от библиотеката", errorRemovingFromLibrary: "Не можем да премахнем елемент от библиотеката", confirmAddLibrary: "Ще се добавят {{numShapes}} фигура(и) във вашата библиотека. Сигурни ли сте?", imageDoesNotContainScene: "", cannotRestoreFromImage: "Не може да бъде възстановена сцена от този файл", invalidSceneUrl: "", resetLibrary: "", removeItemsFromsLibrary: "Изтрий {{count}} елемент(а) от библиотеката?", invalidEncryptionKey: "", collabOfflineWarning: "" }, l = { unsupportedFileType: "Този файлов формат не се поддържа.", imageInsertError: "", fileTooBig: "Файлът е твърде голям. Максималния допустим размер е {{maxSize}}.", svgImageInsertError: "", failedToFetchImage: "", invalidSVGString: "Невалиден SVG.", cannotResolveCollabServer: "", importLibraryError: "Не можем да заредим библиотеката", collabSaveFailed: "", collabSaveFailed_sizeExceeded: "", imageToolNotSupported: "", brave_measure_text_error: { line1: "", line2: "", line3: "Силно препоръчваме да изключите тази настройка. Можете да следвате <link>тези стъпки</link> за това как да го направите.", line4: "" }, libraryElementTypeError: { embeddable: "", iframe: "", image: "" }, asyncPasteFailedOnRead: "", asyncPasteFailedOnParse: "", copyToSystemClipboardFailed: "" }, n = { selection: "Селекция", image: "Вмъкване на изображение", rectangle: "Правоъгълник", diamond: "Диамант", ellipse: "Елипс", arrow: "Стрелка", line: "Линия", freedraw: "Рисуване", text: "Текст", library: "Библиотека", lock: "Поддържайте избрания инструмент активен след рисуване", penMode: "", link: "", eraser: "Гума", frame: "", magicframe: "", embeddable: "", laser: "", hand: "", extraTools: "Още инструменти", mermaidToExcalidraw: "", magicSettings: "" }, d = { canvasActions: "Действия по платното", selectedShapeActions: "Избрани действия", shapes: "Фигури" }, s = { canvasPanning: "", linearElement: "Кликнете, за да стартирате няколко точки, плъзнете за една линия", freeDraw: "Натиснете и влачете, пуснете като сте готови", text: "Подсказка: Можете също да добавите текст като натиснете някъде два път с инструмента за селекция", embeddable: "", text_selected: "", text_editing: "", linearElementMulti: "Кликнете върху последната точка или натиснете Escape или Enter, за да завършите", lockAngle: "Можете да ограничите ъгъла, като задържите SHIFT", resize: `Може да ограничите при преоразмеряване като задържите SHIFT,
@@ -1,8 +1,8 @@
1
- import { X as getConfig$1, a7 as rgba, d as select, e as configureSvgSize, l as log$1, r as clear$1, k as common$1, g as getConfig, $ as getStylesFromArray } from "./index-CLOU2Ikr.js";
2
- import { c as clone } from "./clone-D2FUK8WY.js";
3
- import { i as insertMarkers$1, a as insertEdge, b as insertEdgeLabel, p as positionEdgeLabel, c as insertNode, d as positionNode } from "./edges-e0da2a9e-9VbVapWU.js";
4
- import { G as Graph } from "./graph-Ct2tKpKj.js";
5
- import { c as channel } from "./channel-BT_3Ze-Y.js";
1
+ import { X as getConfig$1, a7 as rgba, d as select, e as configureSvgSize, l as log$1, r as clear$1, k as common$1, g as getConfig, $ as getStylesFromArray } from "./index-D_C0FKVU.js";
2
+ import { c as clone } from "./clone-75eXcrG7.js";
3
+ import { i as insertMarkers$1, a as insertEdge, b as insertEdgeLabel, p as positionEdgeLabel, c as insertNode, d as positionNode } from "./edges-e0da2a9e-CQu9_UlT.js";
4
+ import { G as Graph } from "./graph-C_b2NbS0.js";
5
+ import { c as channel } from "./channel-DeisP17Z.js";
6
6
  import { o as ordinal } from "./ordinal-DSZU4PqD.js";
7
7
  import { s as schemeTableau10 } from "./Tableau10-BqnYsPR6.js";
8
8
  var _a, _b;
@@ -1,4 +1,4 @@
1
- import "./XCanvas-BxdLBkBz.js";
1
+ import "./XCanvas-CB8oO4UO.js";
2
2
  var o = { paste: "পেস্ট করুন", pasteAsPlaintext: "প্লেইনটেক্সট হিসাবে পেস্ট করুন", pasteCharts: "চার্ট পেস্ট করুন", selectAll: "সবটা সিলেক্ট করুন", multiSelect: "একাধিক সিলেক্ট করুন", moveCanvas: "ক্যানভাস সরান", cut: "কাট করুন", copy: "কপি করুন", copyAsPng: "পীএনজী ছবির মতন কপি করুন", copyAsSvg: "এসভীজী ছবির মতন কপি করুন", copyText: "লিখিত তথ্যের মতন কপি করুন", copySource: "", convertToCode: "", bringForward: "অধিকতর সামনে আনুন", sendToBack: "অধিকতর পিছনে নিয়ে যান", bringToFront: "সবার সামনে আনুন", sendBackward: "সবার পিছনে নিয়ে যান", delete: "মুছা", copyStyles: "ডিজাইন কপি করুন", pasteStyles: "ডিজাইন পেস্ট করুন", stroke: "রেখাংশ", background: "পটভূমি", fill: "রং", strokeWidth: "রেখাংশের বেধ", strokeStyle: "রেখাংশের ডিজাইন", strokeStyle_solid: "পুরু", strokeStyle_dashed: "পাতলা", strokeStyle_dotted: "বিন্দুবিন্দু", sloppiness: "ভ্রান্তি", opacity: "দৃশ্যমানতা", textAlign: "লেখ অনুভূমি", edges: "কোণ", sharp: "তীক্ষ্ণ", round: "গোল", arrowheads: "তীরের শীর্ষভাগ", arrowhead_none: "কিছু না", arrowhead_arrow: "তীর", arrowhead_bar: "রেখাংশ", arrowhead_circle: "", arrowhead_circle_outline: "", arrowhead_triangle: "ত্রিভূজ", arrowhead_triangle_outline: "", arrowhead_diamond: "", arrowhead_diamond_outline: "", fontSize: "লেখনীর মাত্রা", fontFamily: "লেখনীর হরফ", addWatermark: "এক্সক্যালিড্র দ্বারা প্রস্তুত", handDrawn: "হাতে আঁকা", normal: "স্বাভাবিক", code: "কোড", small: "ছোট", medium: "মাঝারি", large: "বড়", veryLarge: "অনেক বড়", solid: "দৃঢ়", hachure: "ভ্রুলেখা", zigzag: "আঁকাবাঁকা", crossHatch: "ক্রস হ্যাচ", thin: "পাতলা", bold: "পুরু", left: "বাম", center: "কেন্দ্র", right: "ডান", extraBold: "অতি পুরু", architect: "স্থপতি", artist: "শিল্পী", cartoonist: "চিত্রকার", fileTitle: "ফাইলের নাম", colorPicker: "রং পছন্দ করুন", canvasColors: "ক্যানভাসের রং", canvasBackground: "ক্যানভাসের পটভূমি", drawingCanvas: "ব্যবহৃত ক্যানভাস", layers: "মাত্রা", actions: "ক্রিয়া", language: "ভাষা", liveCollaboration: "সরাসরি পারস্পরিক সহযোগিতা...", duplicateSelection: "সদৃশ সিলেক্ট", untitled: "অনামী", name: "নাম", yourName: "আপনার নাম", madeWithExcalidraw: "এক্সক্যালিড্র দ্বারা তৈরি", group: "দল গঠন করুন", ungroup: "দল বিভেদ করুন", collaborators: "সহযোগী", showGrid: "গ্রিড দেখান", addToLibrary: "সংগ্রহে যোগ করুন", removeFromLibrary: "সংগ্রহ থেকে বের করুন", libraryLoadingMessage: "সংগ্রহ তৈরি হচ্ছে", libraries: "সংগ্রহ দেখুন", loadingScene: "দৃশ্য তৈরি হচ্ছে", align: "পংক্তিবিন্যাস", alignTop: "উপর পংক্তি", alignBottom: "নিম্ন পংক্তি", alignLeft: "বাম পংক্তি", alignRight: "ডান পংক্তি", centerVertically: "উলম্ব কেন্দ্রিত", centerHorizontally: "অনুভূমিক কেন্দ্রিত", distributeHorizontally: "অনুভূমিকভাবে বিতরণ করুন", distributeVertically: "উল্লম্বভাবে বিতরণ করুন", flipHorizontal: "অনুভূমিক আবর্তন", flipVertical: "উলম্ব আবর্তন", viewMode: "দৃশ্য", share: "ভাগ করুন", showStroke: "", showBackground: "", toggleTheme: "", personalLib: "", excalidrawLib: "", decreaseFontSize: "লেখনীর মাত্রা কমান", increaseFontSize: "লেখনীর মাত্রা বাড়ান", unbindText: "", bindText: "", createContainerFromText: "", link: { edit: "লিঙ্ক সংশোধন", editEmbed: "", create: "লিঙ্ক তৈরী", createEmbed: "", label: "লিঙ্ক নামকরণ", labelEmbed: "", empty: "" }, lineEditor: { edit: "", exit: "" }, elementLock: { lock: "আবদ্ধ করুন", unlock: "বিচ্ছিন্ন করুন", lockAll: "সব আবদ্ধ করুন", unlockAll: "সব বিচ্ছিন্ন করুন" }, statusPublished: "প্রকাশিত", sidebarLock: "লক", selectAllElementsInFrame: "", removeAllElementsFromFrame: "", eyeDropper: "", textToDiagram: "", prompt: "" }, r = { noItems: "সংগ্রহে কিছু যোগ করা হয়নি", hint_emptyLibrary: "এখানে যোগ করার জন্য ক্যানভাসে একটি বস্তু নির্বাচন করুন, অথবা নীচে, প্রকাশ্য সংগ্রহশালা থেকে একটি সংগ্রহ ইনস্টল করুন৷", hint_emptyPrivateLibrary: "এখানে যোগ করার জন্য ক্যানভাসে একটি বস্তু নির্বাচন করুন" }, a = { clearReset: "ক্যানভাস সাফ করুন", exportJSON: "জেসন নিবদ্ধ করুন", exportImage: "", export: "", copyToClipboard: "ক্লিপবোর্ডে কপি করুন", save: "জমা করুন", saveAs: "অন্যভাবে জমা করুন", load: "", getShareableLink: "ভাগযোগ্য লিঙ্ক পান", close: "বন্ধ করুন", selectLanguage: "ভাষা চিহ্নিত করুন", scrollBackToContent: "বিষয়বস্তুতে ফেরত যান", zoomIn: "বড় করুন", zoomOut: "ছোট করুন", resetZoom: "স্বাভাবিক করুন", menu: "তালিকা", done: "সম্পন্ন", edit: "সংশোধন করুন", undo: "ফেরত যান", redo: "পুনরায় করুন", resetLibrary: "সংগ্রহ সাফ করুন", createNewRoom: "নতুন রুম বানান", fullScreen: "পূর্ণস্ক্রীন", darkMode: "ডার্ক মোড", lightMode: "লাইট মোড", zenMode: "জেন মোড", objectsSnapMode: "", exitZenMode: "জেন মোড বন্ধ করুন", cancel: "বাতিল", clear: "সাফ", remove: "বিয়োগ", embed: "", publishLibrary: "সংগ্রহ প্রকাশ করুন", submit: "জমা করুন", confirm: "নিশ্চিত করুন", embeddableInteractionButton: "" }, i = { clearReset: "এটি পুরো ক্যানভাস সাফ করবে। আপনি কি নিশ্চিত?", couldNotCreateShareableLink: "ভাগ করা যায় এমন লিঙ্ক তৈরি করা যায়নি।", couldNotCreateShareableLinkTooBig: "ভাগ করা যায় এমন লিঙ্ক তৈরি করা যায়নি: দৃশ্যটি খুব বড়", couldNotLoadInvalidFile: "অবৈধ ফাইল লোড করা যায়নি", importBackendFailed: "ব্যাকেন্ড থেকে আপলোড ব্যর্থ হয়েছে।", cannotExportEmptyCanvas: "খালি ক্যানভাস নিবদ্ধ করা যাবে না।", couldNotCopyToClipboard: "ক্লিপবোর্ডে কপি করা যায়নি।", decryptFailed: "তথ্য ডিক্রিপ্ট করা যায়নি।", uploadedSecurly: "আপলোডটি এন্ড-টু-এন্ড এনক্রিপশনের মাধ্যমে সুরক্ষিত করা হয়েছে, যার অর্থ হল এক্সক্যালিড্র সার্ভার এবং তৃতীয় পক্ষের দ্বারা পড়তে পারা সম্ভব নয়।", loadSceneOverridePrompt: "বাহ্যিক অঙ্কন লোড করা আপনার বিদ্যমান দৃশ্য প্রতিস্থাপন করবে। আপনি কি অবিরত করতে চান?", collabStopOverridePrompt: `অধিবেশন বন্ধ করা আপনার পূর্ববর্তী, স্থানীয়ভাবে সঞ্চিত অঙ্কন ওভাররাইট করবে। আপনি কি নিশ্চিত?
3
3
 
4
4
  (যদি আপনি আপনার স্থানীয় অঙ্কন রাখতে চান, তাহলে শুধু ব্রাউজার ট্যাবটি বন্ধ করুন।)`, errorAddingToLibrary: "বস্তুটি সংগ্রহে যোগ করা যায়নি", errorRemovingFromLibrary: "বস্তুটি সংগ্রহ থেকে বিয়োগ করা যায়নি", confirmAddLibrary: "এটি আপনার সংগ্রহে {{numShapes}} আকার(গুলি) যোগ করবে। আপনি কি নিশ্চিত?", imageDoesNotContainScene: "এই ছবিতে কোনো দৃশ্যের তথ্য আছে বলে মনে হয় না৷ আপনি কি নিবদ্ধ করার সময় দৃশ্য এমবেডিং করতে সক্ষম?", cannotRestoreFromImage: "এই ফাইল থেকে দৃশ্য পুনরুদ্ধার করা যায়নি", invalidSceneUrl: "সরবরাহ করা লিঙ্ক থেকে দৃশ্য লোড করা যায়নি৷ এটি হয় বিকৃত, অথবা বৈধ এক্সক্যালিড্র জেসন তথ্য নেই৷", resetLibrary: "এটি আপনার সংগ্রহ পরিষ্কার করবে। আপনি কি নিশ্চিত?", removeItemsFromsLibrary: "সংগ্রহ থেকে {{count}} বস্তু বিয়োগ করা হবে। আপনি কি নিশ্চিত?", invalidEncryptionKey: "অবৈধ এনক্রীপশন কী।", collabOfflineWarning: "" }, l = { unsupportedFileType: "অসমর্থিত ফাইল।", imageInsertError: "ছবি সন্নিবেশ করা যায়নি। পরে আবার চেষ্টা করুন...", fileTooBig: "ফাইলটি খুব বড়। সর্বাধিক অনুমোদিত আকার হল {{maxSize}}৷", svgImageInsertError: "এসভীজী ছবি সন্নিবেশ করা যায়নি। এসভীজী মার্কআপটি অবৈধ মনে হচ্ছে৷", failedToFetchImage: "", invalidSVGString: "এসভীজী মার্কআপটি অবৈধ মনে হচ্ছে৷", cannotResolveCollabServer: "কোল্যাব সার্ভারের সাথে সংযোগ করা যায়নি। পৃষ্ঠাটি পুনরায় লোড করে আবার চেষ্টা করুন।", importLibraryError: "সংগ্রহ লোড করা যায়নি", collabSaveFailed: "", collabSaveFailed_sizeExceeded: "", imageToolNotSupported: "", brave_measure_text_error: { line1: "", line2: "", line3: "", line4: "" }, libraryElementTypeError: { embeddable: "", iframe: "", image: "" }, asyncPasteFailedOnRead: "", asyncPasteFailedOnParse: "", copyToSystemClipboardFailed: "" }, n = { selection: "বাছাই", image: "চিত্র সন্নিবেশ", rectangle: "আয়তক্ষেত্র", diamond: "রুহিতন", ellipse: "উপবৃত্ত", arrow: "তীর", line: "রেখা", freedraw: "কলম", text: "লেখা", library: "সংগ্রহ", lock: "আঁকার পরে নির্বাচিত টুল সক্রিয় রাখুন", penMode: "", link: "একটি নির্বাচিত আকৃতির জন্য লিঙ্ক যোগ বা আপডেট করুন", eraser: "ঝাড়ন", frame: "", magicframe: "", embeddable: "", laser: "", hand: "", extraTools: "", mermaidToExcalidraw: "", magicSettings: "" }, s = { canvasActions: "ক্যানভাস কার্যকলাপ", selectedShapeActions: "বাছাই করা আকার(গুলি)র কার্যকলাপ", shapes: "আকার(গুলি)" }, d = { canvasPanning: "", linearElement: "একাধিক বিন্দু শুরু করতে ক্লিক করুন, একক লাইনের জন্য টেনে আনুন", freeDraw: "ক্লিক করুন এবং টেনে আনুন, আপনার কাজ শেষ হলে ছেড়ে দিন", text: "বিশেষ্য: আপনি নির্বাচন টুলের সাথে যে কোনো জায়গায় ডাবল-ক্লিক করে পাঠ্য যোগ করতে পারেন", embeddable: "", text_selected: "লেখা সম্পাদনা করতে ডাবল-ক্লিক করুন বা এন্টার টিপুন", text_editing: "লেখা সম্পাদনা শেষ করতে এসকেপ বা কন্ট্রোল/কম্যান্ড যোগে এন্টার টিপুন", linearElementMulti: "শেষ বিন্দুতে ক্লিক করুন অথবা শেষ করতে এসকেপ বা এন্টার টিপুন", lockAngle: "ঘোরানোর সময় আপনি শিফ্ট ধরে রেখে কোণ সীমাবদ্ধ করতে পারেন", resize: `আপনি আকার পরিবর্তন করার সময় শিফ্ট ধরে রেখে অনুপাতকে সীমাবদ্ধ করতে পারেন,
@@ -1,5 +1,5 @@
1
- import { g as getConfig, s as setAccDescription, a as getAccDescription, b as getAccTitle, c as setAccTitle, d as select, l as log$1, e as configureSvgSize, f as assignWithDepth$1, h as calculateTextWidth, i as sanitizeText$2, j as distExports, w as wrapLabel, k as common$1, m as calculateTextHeight } from "./index-CLOU2Ikr.js";
2
- import { d as drawRect$1, g as getNoteRect } from "./svgDrawCommon-08f97a94-CJ0lufOi.js";
1
+ import { g as getConfig, s as setAccDescription, a as getAccDescription, b as getAccTitle, c as setAccTitle, d as select, l as log$1, e as configureSvgSize, f as assignWithDepth$1, h as calculateTextWidth, i as sanitizeText$2, j as distExports, w as wrapLabel, k as common$1, m as calculateTextHeight } from "./index-D_C0FKVU.js";
2
+ import { d as drawRect$1, g as getNoteRect } from "./svgDrawCommon-08f97a94-3s9STiwU.js";
3
3
  var parser = (function() {
4
4
  var o = function(k, v, o2, l) {
5
5
  for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)