@layers-app/editor 2.1.4 → 2.1.5
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/index.cjs +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/layers.-4_9j6T3.js +1 -0
- package/dist/{layers.SfPz0Yvc.js → layers.-VJa563m.js} +1 -1
- package/dist/{layers.sr1vtGu6.js → layers.6GYUNj0h.js} +1 -1
- package/dist/{layers.CvnlEd9b.js → layers.7q4JqQm5.js} +1 -1
- package/dist/{layers.rbpTi3-T.js → layers.9Yq4mEkc.js} +1 -1
- package/dist/{layers.CsxVLmvQ.js → layers.9bbvW7Qm.js} +1 -1
- package/dist/{layers.7TsK-Kpe.js → layers.B1Us4lp2.js} +4 -4
- package/dist/{layers.BVpXkDdv.js → layers.B1hHaGnV.js} +1 -1
- package/dist/{layers.DNJkc-Mo.js → layers.B1rzR8iM.js} +19336 -18960
- package/dist/{layers.BMICBPj8.js → layers.B3XkXMY5.js} +4 -4
- package/dist/{layers.C3LY8tx7.js → layers.B3mlmnC8.js} +2 -2
- package/dist/{layers.oPXgxcx0.js → layers.B5P1pZm_.js} +1 -1
- package/dist/{layers.CSSbl973.js → layers.B6tZ4G7Y.js} +1 -1
- package/dist/{layers.CmpAOvSy.js → layers.B78Y0QUz.js} +1 -1
- package/dist/{layers.fAOYEH60.js → layers.B7wVGPTD.js} +1 -1
- package/dist/{layers.KLaNL4bG.js → layers.B9VEE7yq.js} +1 -1
- package/dist/{layers.BDSOX2CD.js → layers.B9WuyR_q.js} +4 -4
- package/dist/{layers.D03Ua4xq.js → layers.BAEsW4Fk.js} +1 -1
- package/dist/{layers.EW49Ned6.js → layers.BAhcb9z3.js} +1 -1
- package/dist/{layers.DpMixDb4.js → layers.BDJA6xA3.js} +1 -1
- package/dist/{layers.CIV5LuL0.js → layers.BEUB7pia.js} +1 -1
- package/dist/{layers.D4_rAe6g.js → layers.BElYiGVa.js} +1 -1
- package/dist/{layers.DndmHTyu.js → layers.BFEgDDF8.js} +1 -1
- package/dist/{layers.AW6ZJg83.js → layers.BGM7JN9d.js} +1 -1
- package/dist/{layers.CFZVIlvH.js → layers.BH2pzDCd.js} +1 -1
- package/dist/{layers.CJ7b2VoP.js → layers.BHpUsVBr.js} +3 -3
- package/dist/{layers.Ba8sUBgc.js → layers.BJwPx-xt.js} +1 -1
- package/dist/layers.BKFXSOMi.js +1125 -0
- package/dist/{layers.CqMMm2pL.js → layers.BKOmhpj_.js} +3 -3
- package/dist/{layers.Dgp1gaU6.js → layers.BLpAkLEf.js} +4 -4
- package/dist/{layers.Bq9RC4C4.js → layers.BOM99GXG.js} +1 -1
- package/dist/{layers.Aa4aSsWk.js → layers.BOgA28rT.js} +1 -1
- package/dist/{layers.BG--ipsx.js → layers.BQdpX2YL.js} +3 -3
- package/dist/{layers.D2nNrhbx.js → layers.BRyBQXZ5.js} +1035 -1028
- package/dist/{layers.0h0xCCvu.js → layers.BUJKIPtJ.js} +3 -3
- package/dist/{layers.BMBTFPwh.js → layers.BVIhrdLj.js} +1 -1
- package/dist/{layers.C9pSe8Gq.js → layers.BVYwrZF0.js} +1 -1
- package/dist/{layers.GornH8rL.js → layers.BYbPSwnY.js} +1 -1
- package/dist/{layers.C27S2Xar.js → layers.BYyPdkZm.js} +1 -1
- package/dist/{layers.DF1wIyJl.js → layers.BZtg0iL-.js} +1 -1
- package/dist/{layers.DkgAwtpC.js → layers.Ba3PdZtd.js} +1 -1
- package/dist/{layers.Bz56YIfK.js → layers.BcXndSgO.js} +1 -1
- package/dist/{layers.D3xEVf11.js → layers.BdCiG87u.js} +1 -1
- package/dist/{layers.wB2fo65H.js → layers.Beomb7ZC.js} +1 -1
- package/dist/{layers.DF3IwTvD.js → layers.BiC0eUf3.js} +1 -1
- package/dist/layers.BiMVrlM8.js +1 -0
- package/dist/layers.BiRuFZj8.js +8 -0
- package/dist/{layers.DRmnp_VT.js → layers.BidP2y6d.js} +5 -6
- package/dist/{layers.1iRWn23E.js → layers.BjNSoD0e.js} +1 -1
- package/dist/{layers.7xEtaMzU.js → layers.BlViLGBz.js} +1 -1
- package/dist/{layers.D3UeFDcM.js → layers.Bm9_STHa.js} +1 -1
- package/dist/{layers.BOlJGPxF.js → layers.BmIMEjgU.js} +1 -1
- package/dist/{layers.BGOtFCsx.js → layers.Bnl2_d2i.js} +1 -1
- package/dist/{layers.CrxxpXzR.js → layers.BnzV9opy.js} +1 -1
- package/dist/{layers.Df22ww72.js → layers.Bo2eK3gp.js} +3 -3
- package/dist/{layers.CS2Q0MP6.js → layers.BpV3oYO0.js} +1 -1
- package/dist/{layers.Hc8Pmmic.js → layers.Bs9Z9EFw.js} +44 -44
- package/dist/{layers.BQaOGAZ0.js → layers.BsNKR8M7.js} +1 -1
- package/dist/{layers.rq_uH5pA.js → layers.BsOmzQaW.js} +1 -1
- package/dist/{layers.EW6UiJMi.js → layers.Bu0Ijk35.js} +1 -1
- package/dist/{layers.C7_sEZsw.js → layers.Bu8CV-42.js} +1 -1
- package/dist/{layers.BGls9yuY.js → layers.BvSfXDtc.js} +1 -1
- package/dist/{layers.i_mYGumA.js → layers.BwfWL-fI.js} +1 -1
- package/dist/layers.ByEjazjC.js +567 -0
- package/dist/{layers.Cdo2oTor.js → layers.ByNH9d_q.js} +1 -1
- package/dist/{layers.CKOPZMk4.js → layers.C-az3lNH.js} +1 -1
- package/dist/{layers.BqwIK88k.js → layers.C01cpYpe.js} +1 -1
- package/dist/{layers.Ck3pOq18.js → layers.C0IaUay0.js} +1 -1
- package/dist/{layers.B2hwWcA2.js → layers.C0PRhnOH.js} +1 -1
- package/dist/{layers.Bj4PSUye.js → layers.C5-y7AfX.js} +1 -1
- package/dist/{layers.4n1gtRVe.js → layers.C6KwsBjH.js} +1 -1
- package/dist/{layers.CLQWeDwS.js → layers.C7w_ydZJ.js} +4 -4
- package/dist/{layers.DC1iLoXw.js → layers.C8LYIUA1.js} +1 -1
- package/dist/{layers.MubFSdwe.js → layers.CAGvevc9.js} +1 -1
- package/dist/{layers.B54prYGZ.js → layers.CBrhZPn3.js} +1 -1
- package/dist/{layers.CNpkcp3V.js → layers.CDr3fhub.js} +4 -4
- package/dist/{layers.BnZeGjMO.js → layers.CEzMwF2O.js} +1 -1
- package/dist/{layers.C6jxKkTv.js → layers.CFLY_S0a.js} +1 -1
- package/dist/{layers.Co_xJxKs.js → layers.CG5x1h3y.js} +1 -1
- package/dist/{layers.B5OXOXmy.js → layers.CGnDPO1t.js} +1 -1
- package/dist/{layers.BN3ygs4g.js → layers.CHaMultW.js} +1 -1
- package/dist/{layers.BJFKH68r.js → layers.CHjLfxQw.js} +1 -1
- package/dist/{layers.F3RaMrM-.js → layers.CL-2rYUv.js} +1 -1
- package/dist/{layers.C_DV_R5p.js → layers.CLA4gwZB.js} +1 -1
- package/dist/{layers.DzUUP9Du.js → layers.CLyygPcd.js} +1 -1
- package/dist/{layers.CpmoXIAt.js → layers.CMzoij6V.js} +1 -1
- package/dist/{layers.DQwmvElW.js → layers.COheYIGb.js} +1 -1
- package/dist/{layers.C2aWyQ_z.js → layers.CRhLbHJB.js} +1 -1
- package/dist/{layers.DcFGX6Rw.js → layers.CRrD4lC-.js} +1 -1
- package/dist/{layers.Cswoe0IX.js → layers.CRt4iUNO.js} +1 -1
- package/dist/{layers.DnMJFLGr.js → layers.CSkcM9hN.js} +4 -4
- package/dist/{layers.Bo67iVkw.js → layers.CUIMlDmw.js} +1 -1
- package/dist/{layers.MHceKg9n.js → layers.CVQQU87h.js} +1 -1
- package/dist/{layers.BKHDRNqX.js → layers.CWMeShYf.js} +1 -1
- package/dist/{layers.DeM__u1_.js → layers.CWQQ2jvS.js} +1 -1
- package/dist/{layers.Dod6Nf_j.js → layers.CX2qU65I.js} +1 -1
- package/dist/{layers.CiuG5bFW.js → layers.CZDgJHt7.js} +1 -1
- package/dist/{layers.DLiB9OEd.js → layers.CZb-SeWz.js} +1 -1
- package/dist/{layers.C4VSQwqA.js → layers.C_DYhb8T.js} +1 -1
- package/dist/{layers.U56kgtto.js → layers.Ca1fqZUr.js} +4 -4
- package/dist/{layers.K43S7aP0.js → layers.CcdJL88D.js} +1 -1
- package/dist/{layers.D6Rcr62n.js → layers.Ccxir_N2.js} +1 -1
- package/dist/{layers.DxbeR8gn.js → layers.Cdk7-Nks.js} +1 -1
- package/dist/{layers.piLdW3O-.js → layers.CeJfHrIi.js} +1 -1
- package/dist/{layers.CU4oDgOc.js → layers.CfBAQy8k.js} +1 -1
- package/dist/{layers.RQU5nEtM.js → layers.CfiisuVU.js} +1 -1
- package/dist/{layers.B3Puj5he.js → layers.CgFGMNxA.js} +1 -1
- package/dist/{layers.W-AFrwh2.js → layers.CgqNy4zP.js} +1 -1
- package/dist/{layers.D9SNCBUi.js → layers.ChmyTDpm.js} +1 -1
- package/dist/{layers.Bhcz8svQ.js → layers.CiD301W0.js} +1 -1
- package/dist/{layers.ktfZPCbd.js → layers.Cii_jWL3.js} +1 -1
- package/dist/{layers.DdafmrR3.js → layers.ClE5KEuk.js} +2 -2
- package/dist/{layers.Cgc8JRjh.js → layers.Coxl919h.js} +1 -1
- package/dist/{layers.BGFBC-Gr.js → layers.Coz9HBUE.js} +1 -1
- package/dist/{layers.bK_voO90.js → layers.CpQ4gLu1.js} +1 -1
- package/dist/{layers.47swObhK.js → layers.CqBfqNmM.js} +1 -1
- package/dist/{layers.CKKHzx-Z.js → layers.CrwS3LRr.js} +4 -4
- package/dist/{layers.DPbQjNkl.js → layers.Cu2TAAlT.js} +1 -1
- package/dist/{layers.YVE78Hde.js → layers.CxiI7x68.js} +1 -1
- package/dist/{layers.DQ15N9DZ.js → layers.Cz_0PNU0.js} +1 -1
- package/dist/{layers.Dld7xCuy.js → layers.D0y8dCDY.js} +1 -1
- package/dist/{layers.BxzEqaLL.js → layers.D1nE9s_g.js} +1 -1
- package/dist/{layers.DZp57Oqh.js → layers.D1vx5ZKF.js} +1 -1
- package/dist/{layers.BT7Zo_Ih.js → layers.D3KAyJsA.js} +1 -1
- package/dist/{layers.BDZyk-_d.js → layers.D3SwhrDu.js} +1 -1
- package/dist/{layers.Dy3JpZkl.js → layers.D55pXkMf.js} +1 -1
- package/dist/layers.D6GwA1q1.js +1 -0
- package/dist/{layers.C28M0pbG.js → layers.D6rR8eTu.js} +5 -5
- package/dist/{layers.CX8BXozR.js → layers.D7MSCThU.js} +1 -1
- package/dist/{layers.BBgpAhwA.js → layers.DCnedJ-y.js} +1 -1
- package/dist/layers.DCyFNqAr.js +6 -0
- package/dist/{layers.GLyR-OWz.js → layers.DDN8QOl7.js} +151 -142
- package/dist/{layers.BppwELpk.js → layers.DDuIzssE.js} +1 -1
- package/dist/{layers.gu8VQIr-.js → layers.DFcuPGzk.js} +1 -1
- package/dist/{layers.Ccq59tb8.js → layers.DGU_l9g2.js} +1 -1
- package/dist/layers.DGazp_fG.js +1 -0
- package/dist/{layers.Da-2dyEi.js → layers.DI7yLZ3l.js} +1 -1
- package/dist/{layers.DqtTeUFK.js → layers.DIE3KsNQ.js} +1 -1
- package/dist/{layers.BcTsQfaC.js → layers.DIpcaT33.js} +1 -1
- package/dist/{layers.CS330bin.js → layers.DM54hDWf.js} +1 -1
- package/dist/{layers.D3OjD3_Z.js → layers.DMtAnSic.js} +1 -1
- package/dist/{layers.CC7k-uCF.js → layers.DNBgeiUW.js} +1 -1
- package/dist/{layers.Ci_-CaC7.js → layers.DOApEJ-8.js} +1 -1
- package/dist/{layers.DTgmIl0j.js → layers.DQJQU3Ci.js} +3 -3
- package/dist/{layers.DIF45FFn.js → layers.DRjWS931.js} +1 -1
- package/dist/{layers.CgwU5cxh.js → layers.DRs_AE2J.js} +1 -1
- package/dist/{layers.BKoYtTI-.js → layers.DSEi1NJj.js} +1 -1
- package/dist/{layers.Dvn_9A0a.js → layers.DSjKo8Da.js} +1 -1
- package/dist/{layers.B8zC9lOU.js → layers.DTbyNB5x.js} +1 -1
- package/dist/{layers.zwanR9F3.js → layers.DUFWy5hd.js} +3 -3
- package/dist/{layers.CbB7a2CQ.js → layers.DVbgjUNo.js} +1 -1
- package/dist/{layers.DItbZWrP.js → layers.DYR1gZNx.js} +1 -1
- package/dist/{layers.CYx3WWdM.js → layers.DZvHff4B.js} +1 -1
- package/dist/{layers.DFf3K_BU.js → layers.DbVUcuKT.js} +1 -1
- package/dist/{layers.BocO2HWt.js → layers.DbmWOYgg.js} +1 -1
- package/dist/{layers.CAMZZkZG.js → layers.Den-ZzaR.js} +1 -1
- package/dist/{layers.DvzDTiKM.js → layers.DeweqNQa.js} +1 -1
- package/dist/{layers.CLxWcsfl.js → layers.DgeHfWB3.js} +6 -6
- package/dist/{layers.Byu2aohV.js → layers.DlLeZsOc.js} +1 -1
- package/dist/{layers.DRMN4wK5.js → layers.DlsvvQxa.js} +1 -1
- package/dist/{layers.DTaNTG_B.js → layers.DnJCBHYn.js} +5981 -6248
- package/dist/{layers.Cli1o2i6.js → layers.DpXrwMuo.js} +1 -1
- package/dist/{layers.CS7NMRN_.js → layers.Dr7Pq7kV.js} +25 -25
- package/dist/{layers.DpPFzOm0.js → layers.DsFWbt9R.js} +1 -1
- package/dist/{layers.Ce1CohBK.js → layers.DuHpBXvz.js} +5 -5
- package/dist/{layers.Dzl9Kzo9.js → layers.DvYgaLEM.js} +1 -1
- package/dist/{layers.Cm_sw-AY.js → layers.DybqAnHw.js} +1 -1
- package/dist/{layers.CLXOAVPz.js → layers.DzHbjYNP.js} +1 -1
- package/dist/{layers.FICd1tQW.js → layers.FFNNEBWV.js} +3 -3
- package/dist/{layers.CgD7ay5J.js → layers.GA7-IklJ.js} +2 -2
- package/dist/{layers.DJ-3Xpuz.js → layers.GXlTgb0M.js} +1 -1
- package/dist/{layers.BRx5nPJB.js → layers.GtpWb4p4.js} +1 -1
- package/dist/{layers.BDybYMm_.js → layers.H82l5SIc.js} +1 -1
- package/dist/{layers.CUAcceRX.js → layers.HR462Pc5.js} +1 -1
- package/dist/{layers.CvysdL-r.js → layers.Hc4vQCsj.js} +1 -1
- package/dist/layers.IfukLNpU.js +1 -0
- package/dist/{layers.CEng0uhp.js → layers.JgtgGSVp.js} +2 -2
- package/dist/{layers.DDVdzu5M.js → layers.KYYTd__Y.js} +1 -1
- package/dist/{layers.CqTnCIrx.js → layers.Q3c6Mf6s.js} +1 -1
- package/dist/{layers.BS8vE0dV.js → layers.Sz6CLv0j.js} +1 -1
- package/dist/{layers.hN_6Bz4k.js → layers.UNHGWenS.js} +1 -1
- package/dist/{layers.CRGuNhS-.js → layers.Ut2v3AtH.js} +1 -1
- package/dist/{layers.CEbI900B.js → layers.VqEf0fy3.js} +1 -1
- package/dist/{layers.CiVpjulR.js → layers.Z2IJRa80.js} +1 -1
- package/dist/{layers.JQ45PKXx.js → layers.Zql4uEqS.js} +1 -1
- package/dist/{layers.DlEA3-cX.js → layers.ayD0eOD4.js} +1 -1
- package/dist/{layers.B8h3aTAI.js → layers.cv9uQp9-.js} +1 -1
- package/dist/{layers.B_fccDFH.js → layers.fbNCUFxk.js} +1 -1
- package/dist/{layers.BLgjmb5i.js → layers.jnppH0DO.js} +1 -1
- package/dist/{layers.BsGxddFV.js → layers.ndujgSYU.js} +1 -1
- package/dist/{layers.DPBt8Ar9.js → layers.nmWGGzFV.js} +1 -1
- package/dist/{layers.BeMgdWFI.js → layers.oUHGgat8.js} +1 -1
- package/dist/{layers.CVWgLN9d.js → layers.oa7FMDIh.js} +2 -2
- package/dist/{layers.DyOMyr1U.js → layers.pCO3R-Ek.js} +1 -1
- package/dist/{layers.C28APEyB.js → layers.tWo_tCh6.js} +3 -3
- package/dist/{layers.BTyLb_e_.js → layers.tfl3LqfO.js} +1 -1
- package/dist/{layers.D4x86ACf.js → layers.veZWW988.js} +1 -1
- package/dist/{layers.HNZIi4HM.js → layers.wb72MCqo.js} +3 -3
- package/dist/{layers.Cp00BqUB.js → layers.xOmXyFkw.js} +1 -1
- package/dist/{layers.C9egzq2p.js → layers.yX1wSigM.js} +1 -1
- package/package.json +80 -80
- package/dist/layers.BQNASuUa.js +0 -6
- package/dist/layers.BSSHVyJ4.js +0 -1
- package/dist/layers.BfoCDFZ9.js +0 -1
- package/dist/layers.CL3mtH76.js +0 -539
- package/dist/layers.CPmFoLSN.js +0 -1125
- package/dist/layers.CmmYt3Ou.js +0 -1
- package/dist/layers.D0jPJbv8.js +0 -8
- package/dist/layers.DilA0qnM.js +0 -54
- package/dist/layers.DojFOI4Z.js +0 -1
- package/dist/layers.Dy-sMwk8.js +0 -1
- package/dist/layers.lXfukYV5.js +0 -1
|
@@ -0,0 +1,567 @@
|
|
|
1
|
+
import { jsx as l, jsxs as S, Fragment as le } from "react/jsx-runtime";
|
|
2
|
+
import { useContext as ae, useMemo as ie, useState as B, useEffect as A, useRef as j, useCallback as F, Suspense as me, lazy as ge } from "react";
|
|
3
|
+
import { useLexicalComposerContext as he } from "@lexical/react/LexicalComposerContext";
|
|
4
|
+
import { useLexicalEditable as Ce } from "@lexical/react/useLexicalEditable";
|
|
5
|
+
import { useLexicalNodeSelection as pe } from "@lexical/react/useLexicalNodeSelection";
|
|
6
|
+
import { mergeRegister as xe } from "@lexical/utils";
|
|
7
|
+
import { $setSelection as be, $getNodeByKey as V, CLICK_COMMAND as ve, COMMAND_PRIORITY_LOW as J, KEY_DELETE_COMMAND as Ee, KEY_BACKSPACE_COMMAND as we } from "lexical";
|
|
8
|
+
import { C as se, R as ye, v as X, s as Z, A as K, K as ke, z as P, N as Te, f as ee, B as De, e as Me, H as te, t as Oe, a as ce, D as oe, l as Ne, p as _e, F as re, G as Se, J as Ae, L as Be } from "./layers.B1rzR8iM.js";
|
|
9
|
+
import { useTranslation as Q } from "react-i18next";
|
|
10
|
+
import { Modal as Le, Text as Re, Flex as ze, Button as q, Box as ne, Stack as We, useMantineColorScheme as je, Loader as Fe } from "@mantine/core";
|
|
11
|
+
import { useDisclosure as Ie } from "@mantine/hooks";
|
|
12
|
+
import "@lexical/mark";
|
|
13
|
+
import "@lexical/code";
|
|
14
|
+
import { BottomDrawerWithoutHeader as He } from "@layers-app/shared";
|
|
15
|
+
const Ge = ({
|
|
16
|
+
isCloseModal: n,
|
|
17
|
+
setCloseModalOpen: a,
|
|
18
|
+
confirmClose: C
|
|
19
|
+
}) => {
|
|
20
|
+
const { t: p } = Q();
|
|
21
|
+
return /* @__PURE__ */ l(
|
|
22
|
+
Le,
|
|
23
|
+
{
|
|
24
|
+
opened: n,
|
|
25
|
+
onClose: () => {
|
|
26
|
+
a(!1);
|
|
27
|
+
},
|
|
28
|
+
centered: !0,
|
|
29
|
+
title: p("editor.unsavedChanges.title"),
|
|
30
|
+
closeOnClickOutside: !0,
|
|
31
|
+
closeOnEscape: !0,
|
|
32
|
+
size: "500",
|
|
33
|
+
zIndex: 999,
|
|
34
|
+
children: /* @__PURE__ */ S("div", { children: [
|
|
35
|
+
/* @__PURE__ */ l(Re, { mb: "md", children: p("editor.unsavedChanges.message") }),
|
|
36
|
+
/* @__PURE__ */ S(ze, { justify: "flex-end", gap: "sm", children: [
|
|
37
|
+
/* @__PURE__ */ l(
|
|
38
|
+
q,
|
|
39
|
+
{
|
|
40
|
+
variant: "default",
|
|
41
|
+
onClick: () => {
|
|
42
|
+
a(!1);
|
|
43
|
+
},
|
|
44
|
+
fullWidth: !0,
|
|
45
|
+
children: p("editor.unsavedChanges.cancel")
|
|
46
|
+
}
|
|
47
|
+
),
|
|
48
|
+
/* @__PURE__ */ l(q, { color: "red", onClick: C, fullWidth: !0, children: p("editor.unsavedChanges.closeWithoutSaving") })
|
|
49
|
+
] })
|
|
50
|
+
] })
|
|
51
|
+
}
|
|
52
|
+
);
|
|
53
|
+
};
|
|
54
|
+
function Ve({
|
|
55
|
+
imageContainerRef: n,
|
|
56
|
+
editor: a,
|
|
57
|
+
rootClassName: C = null,
|
|
58
|
+
width: p = "inherit",
|
|
59
|
+
height: u = "inherit",
|
|
60
|
+
nodeKey: s,
|
|
61
|
+
alignment: I,
|
|
62
|
+
setModalOpen: L,
|
|
63
|
+
previewSVG: r,
|
|
64
|
+
isModalOpen: m
|
|
65
|
+
}) {
|
|
66
|
+
const { disable: g, imperativeHandleRef: v } = ae(se), H = ie(() => r ?? "", [r]), [T, h] = B(!1), [
|
|
67
|
+
G,
|
|
68
|
+
{ open: E, close: D }
|
|
69
|
+
] = Ie(!1), { t: b } = Q();
|
|
70
|
+
A(() => {
|
|
71
|
+
m && h(!1);
|
|
72
|
+
}, [m]);
|
|
73
|
+
const M = (e, x) => {
|
|
74
|
+
a.update(() => {
|
|
75
|
+
be(null);
|
|
76
|
+
const i = V(s);
|
|
77
|
+
return ce(i) && i.setWidthAndHeight(e, x), !0;
|
|
78
|
+
});
|
|
79
|
+
}, w = () => {
|
|
80
|
+
oe(a, s);
|
|
81
|
+
}, R = () => {
|
|
82
|
+
D(), L(!0);
|
|
83
|
+
}, O = () => {
|
|
84
|
+
D(), oe(a, s);
|
|
85
|
+
};
|
|
86
|
+
return /* @__PURE__ */ S(
|
|
87
|
+
ye,
|
|
88
|
+
{
|
|
89
|
+
editor: a,
|
|
90
|
+
isIcon: !1,
|
|
91
|
+
isEmbed: !0,
|
|
92
|
+
width: Z(p),
|
|
93
|
+
height: Z(u),
|
|
94
|
+
onResizeEnd: M,
|
|
95
|
+
alignment: I,
|
|
96
|
+
disable: g,
|
|
97
|
+
onRegisterDecoratorEnter: (e) => {
|
|
98
|
+
v != null && v.current && (v.current.decoratorEnterAction = e);
|
|
99
|
+
},
|
|
100
|
+
onActivate: () => a.dispatchCommand(Oe, "show_menu"),
|
|
101
|
+
children: [
|
|
102
|
+
/* @__PURE__ */ S(ne, { className: "media-wrapper excaildraw", children: [
|
|
103
|
+
/* @__PURE__ */ l(
|
|
104
|
+
"div",
|
|
105
|
+
{
|
|
106
|
+
className: `media-actions${X || !De ? " visible" : ""}`,
|
|
107
|
+
children: X ? /* @__PURE__ */ l(
|
|
108
|
+
K,
|
|
109
|
+
{
|
|
110
|
+
"aria-label": b("editor.toolbar.more"),
|
|
111
|
+
label: b("editor.toolbar.more"),
|
|
112
|
+
flexBorder: !0,
|
|
113
|
+
onClick: E,
|
|
114
|
+
icon: ke,
|
|
115
|
+
iconColor: "var(--mantine-color-gray-text)"
|
|
116
|
+
}
|
|
117
|
+
) : /* @__PURE__ */ S(le, { children: [
|
|
118
|
+
/* @__PURE__ */ l(
|
|
119
|
+
K,
|
|
120
|
+
{
|
|
121
|
+
"aria-label": "Settings",
|
|
122
|
+
label: b("editor.link.edit"),
|
|
123
|
+
flexBorder: !0,
|
|
124
|
+
onClick: () => {
|
|
125
|
+
L(!0);
|
|
126
|
+
},
|
|
127
|
+
icon: P,
|
|
128
|
+
iconColor: "var(--mantine-color-gray-text)"
|
|
129
|
+
}
|
|
130
|
+
),
|
|
131
|
+
/* @__PURE__ */ l(
|
|
132
|
+
Te,
|
|
133
|
+
{
|
|
134
|
+
opened: T,
|
|
135
|
+
setOpened: h,
|
|
136
|
+
t: b,
|
|
137
|
+
editor: a,
|
|
138
|
+
nodeKey: s,
|
|
139
|
+
flexBorder: !0
|
|
140
|
+
}
|
|
141
|
+
),
|
|
142
|
+
/* @__PURE__ */ l(
|
|
143
|
+
K,
|
|
144
|
+
{
|
|
145
|
+
"aria-label": "Delete",
|
|
146
|
+
label: b("editor.actions.delete"),
|
|
147
|
+
flexBorder: !0,
|
|
148
|
+
onClick: w,
|
|
149
|
+
icon: ee,
|
|
150
|
+
iconColor: "var(--mantine-color-red-outline)"
|
|
151
|
+
}
|
|
152
|
+
)
|
|
153
|
+
] })
|
|
154
|
+
}
|
|
155
|
+
),
|
|
156
|
+
/* @__PURE__ */ l(
|
|
157
|
+
ne,
|
|
158
|
+
{
|
|
159
|
+
w: "100%",
|
|
160
|
+
ref: (e) => {
|
|
161
|
+
e && n && (n.current = e);
|
|
162
|
+
},
|
|
163
|
+
className: C ?? "",
|
|
164
|
+
dangerouslySetInnerHTML: { __html: H }
|
|
165
|
+
}
|
|
166
|
+
)
|
|
167
|
+
] }),
|
|
168
|
+
X && /* @__PURE__ */ l(
|
|
169
|
+
Me,
|
|
170
|
+
{
|
|
171
|
+
opened: G,
|
|
172
|
+
onClose: D,
|
|
173
|
+
title: b("editor.image.mobileActions"),
|
|
174
|
+
children: /* @__PURE__ */ S(We, { gap: 4, p: 0, children: [
|
|
175
|
+
/* @__PURE__ */ l(
|
|
176
|
+
q,
|
|
177
|
+
{
|
|
178
|
+
type: "button",
|
|
179
|
+
variant: "subtle",
|
|
180
|
+
color: "gray",
|
|
181
|
+
fullWidth: !0,
|
|
182
|
+
justify: "flex-start",
|
|
183
|
+
bg: "light-dark(var(--mantine-color-gray-0), var(--mantine-color-gray-outline-hover))",
|
|
184
|
+
onClick: R,
|
|
185
|
+
leftSection: /* @__PURE__ */ l(
|
|
186
|
+
te,
|
|
187
|
+
{
|
|
188
|
+
icon: P,
|
|
189
|
+
size: 16,
|
|
190
|
+
color: "var(--mantine-color-dimmed)"
|
|
191
|
+
}
|
|
192
|
+
),
|
|
193
|
+
children: b("editor.link.edit")
|
|
194
|
+
}
|
|
195
|
+
),
|
|
196
|
+
/* @__PURE__ */ l(
|
|
197
|
+
q,
|
|
198
|
+
{
|
|
199
|
+
type: "button",
|
|
200
|
+
variant: "subtle",
|
|
201
|
+
color: "red",
|
|
202
|
+
fullWidth: !0,
|
|
203
|
+
justify: "flex-start",
|
|
204
|
+
bg: "light-dark(var(--mantine-color-gray-0), var(--mantine-color-gray-outline-hover))",
|
|
205
|
+
onClick: O,
|
|
206
|
+
leftSection: /* @__PURE__ */ l(
|
|
207
|
+
te,
|
|
208
|
+
{
|
|
209
|
+
icon: ee,
|
|
210
|
+
size: 16,
|
|
211
|
+
color: "var(--mantine-color-red-6)"
|
|
212
|
+
}
|
|
213
|
+
),
|
|
214
|
+
children: b("editor.actions.delete")
|
|
215
|
+
}
|
|
216
|
+
)
|
|
217
|
+
] })
|
|
218
|
+
}
|
|
219
|
+
)
|
|
220
|
+
]
|
|
221
|
+
}
|
|
222
|
+
);
|
|
223
|
+
}
|
|
224
|
+
let U = null;
|
|
225
|
+
const $e = /* @__PURE__ */ ge(async () => {
|
|
226
|
+
var a;
|
|
227
|
+
const n = await import("./layers.DnJCBHYn.js").then((C) => C.K);
|
|
228
|
+
return !U && n && (U = n.exportToSvg || ((a = n.default) == null ? void 0 : a.exportToSvg) || n.default), { default: n.Excalidraw };
|
|
229
|
+
}), qe = () => {
|
|
230
|
+
const [n, a] = B(
|
|
231
|
+
null
|
|
232
|
+
), C = F(
|
|
233
|
+
(p) => a(p),
|
|
234
|
+
[]
|
|
235
|
+
);
|
|
236
|
+
return [n, C];
|
|
237
|
+
};
|
|
238
|
+
function Ue({
|
|
239
|
+
onSave: n,
|
|
240
|
+
initialElements: a,
|
|
241
|
+
initialAppState: C,
|
|
242
|
+
initialFiles: p,
|
|
243
|
+
isShown: u = !1,
|
|
244
|
+
onDelete: s,
|
|
245
|
+
onClose: I,
|
|
246
|
+
isEdited: L
|
|
247
|
+
}) {
|
|
248
|
+
const [r, m] = qe(), { i18n: g, t: v } = Q(), { colorScheme: H } = je(), T = j(!1), [h, G] = B(a), [E, D] = B(p), [b, M] = B(u);
|
|
249
|
+
A(() => {
|
|
250
|
+
u && M(!0);
|
|
251
|
+
}, [u]), A(() => {
|
|
252
|
+
!u || T.current || (T.current = !0, Promise.resolve({ }));
|
|
253
|
+
}, [u]), A(() => {
|
|
254
|
+
u && setTimeout(() => {
|
|
255
|
+
var e, x;
|
|
256
|
+
(e = r == null ? void 0 : r.refresh) == null || e.call(r), (x = r == null ? void 0 : r.scrollToContent) == null || x.call(r);
|
|
257
|
+
}, 500);
|
|
258
|
+
}, [u, r]), A(() => {
|
|
259
|
+
if (!u)
|
|
260
|
+
return;
|
|
261
|
+
const e = (o, c) => {
|
|
262
|
+
const t = v(o);
|
|
263
|
+
return t.startsWith("editor.menu") ? c : t;
|
|
264
|
+
}, x = e(
|
|
265
|
+
"editor.menu.excalidraw.tools.frameTool",
|
|
266
|
+
g.language === "ru" ? "Инструмент рамки" : g.language === "es" ? "Herramienta de marco" : "Frame tool"
|
|
267
|
+
), i = e(
|
|
268
|
+
"editor.menu.excalidraw.tools.webEmbed",
|
|
269
|
+
g.language === "ru" ? "Веб-встраивание" : g.language === "es" ? "Incrustación web" : "Web Embed"
|
|
270
|
+
), d = e(
|
|
271
|
+
"editor.menu.excalidraw.tools.generate",
|
|
272
|
+
g.language === "ru" ? "Генерировать" : g.language === "es" ? "Generar" : "Generate"
|
|
273
|
+
), z = {
|
|
274
|
+
"Frame tool": x,
|
|
275
|
+
"Web Embed": i,
|
|
276
|
+
"Web embeded": i,
|
|
277
|
+
Generate: d
|
|
278
|
+
}, W = () => {
|
|
279
|
+
const o = document.querySelector(".App-toolbar__extra-tools-dropdown");
|
|
280
|
+
if (!o)
|
|
281
|
+
return;
|
|
282
|
+
const c = document.createTreeWalker(
|
|
283
|
+
o,
|
|
284
|
+
NodeFilter.SHOW_TEXT,
|
|
285
|
+
null
|
|
286
|
+
);
|
|
287
|
+
let t;
|
|
288
|
+
for (; t = c.nextNode(); )
|
|
289
|
+
if (t.nodeType === Node.TEXT_NODE && t.textContent) {
|
|
290
|
+
const f = t.textContent.trim();
|
|
291
|
+
for (const [k, _] of Object.entries(z))
|
|
292
|
+
if (f === k && _ && !f.includes(_)) {
|
|
293
|
+
t.textContent = t.textContent.replace(k, _);
|
|
294
|
+
break;
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
}, N = () => {
|
|
298
|
+
setTimeout(() => {
|
|
299
|
+
W();
|
|
300
|
+
}, 0);
|
|
301
|
+
}, y = setTimeout(() => {
|
|
302
|
+
const o = document.querySelector(
|
|
303
|
+
".excalidraw-container"
|
|
304
|
+
);
|
|
305
|
+
if (o) {
|
|
306
|
+
const c = o.querySelector(
|
|
307
|
+
".App-toolbar__extra-tools-trigger"
|
|
308
|
+
);
|
|
309
|
+
c && c.addEventListener("click", N);
|
|
310
|
+
}
|
|
311
|
+
}, 300);
|
|
312
|
+
return () => {
|
|
313
|
+
clearTimeout(y);
|
|
314
|
+
const o = document.querySelector(
|
|
315
|
+
".excalidraw-container"
|
|
316
|
+
);
|
|
317
|
+
if (o) {
|
|
318
|
+
const c = o.querySelector(
|
|
319
|
+
".App-toolbar__extra-tools-trigger"
|
|
320
|
+
);
|
|
321
|
+
c && c.removeEventListener("click", N);
|
|
322
|
+
}
|
|
323
|
+
};
|
|
324
|
+
}, [u, g.language, v]);
|
|
325
|
+
const w = F(async () => {
|
|
326
|
+
var W, N, y;
|
|
327
|
+
let e = U;
|
|
328
|
+
if (!e || typeof e != "function") {
|
|
329
|
+
const o = await import("./layers.DnJCBHYn.js").then((c) => c.K);
|
|
330
|
+
e = o.exportToSvg || ((W = o.default) == null ? void 0 : W.exportToSvg) || o.default, e && typeof e == "function" && (U = e);
|
|
331
|
+
}
|
|
332
|
+
if (!e || typeof e != "function") {
|
|
333
|
+
const o = await import("./layers.DnJCBHYn.js").then((t) => t.K), c = o ? Object.keys(o) : [];
|
|
334
|
+
throw console.error("Excalidraw module structure:", {
|
|
335
|
+
keys: c,
|
|
336
|
+
hasExportToSvg: o && "exportToSvg" in o,
|
|
337
|
+
hasDefault: o && "default" in o,
|
|
338
|
+
moduleType: typeof o,
|
|
339
|
+
module: o
|
|
340
|
+
}), new Error(
|
|
341
|
+
`exportToSvg is not available from @excalidraw/excalidraw. Module keys: ${c.join(", ")}. Please ensure @excalidraw/excalidraw is properly installed.`
|
|
342
|
+
);
|
|
343
|
+
}
|
|
344
|
+
const x = ((N = r == null ? void 0 : r.getAppState) == null ? void 0 : N.call(r)) ?? C, i = await e({
|
|
345
|
+
appState: x,
|
|
346
|
+
elements: h,
|
|
347
|
+
files: E
|
|
348
|
+
}), d = (y = i == null ? void 0 : i.firstElementChild) == null ? void 0 : y.firstElementChild, z = i.getAttribute("viewBox");
|
|
349
|
+
if (z != null) {
|
|
350
|
+
const o = z.split(" ");
|
|
351
|
+
i.setAttribute("width", o[2]), i.setAttribute("height", o[3]);
|
|
352
|
+
}
|
|
353
|
+
return d && d.tagName === "style" && d.remove(), i.setAttribute("width", "100%"), i.setAttribute("height", "100%"), i.setAttribute("display", "block"), i.classList.add("excalidraw-svg"), i.outerHTML;
|
|
354
|
+
}, [h, E, r, C]), R = () => {
|
|
355
|
+
if (h && h.filter((e) => !e.isDeleted).length > 0) {
|
|
356
|
+
const e = r == null ? void 0 : r.getAppState(), x = {
|
|
357
|
+
exportBackground: e == null ? void 0 : e.exportBackground,
|
|
358
|
+
exportScale: e == null ? void 0 : e.exportScale,
|
|
359
|
+
exportWithDarkMode: (e == null ? void 0 : e.theme) === "dark",
|
|
360
|
+
isBindingEnabled: e == null ? void 0 : e.isBindingEnabled,
|
|
361
|
+
isLoading: e == null ? void 0 : e.isLoading,
|
|
362
|
+
name: e == null ? void 0 : e.name,
|
|
363
|
+
theme: e == null ? void 0 : e.theme,
|
|
364
|
+
viewBackgroundColor: e == null ? void 0 : e.viewBackgroundColor,
|
|
365
|
+
viewModeEnabled: e == null ? void 0 : e.viewModeEnabled,
|
|
366
|
+
zenModeEnabled: e == null ? void 0 : e.zenModeEnabled,
|
|
367
|
+
zoom: e == null ? void 0 : e.zoom
|
|
368
|
+
};
|
|
369
|
+
(async () => {
|
|
370
|
+
const i = await w();
|
|
371
|
+
n(h, x, E, i);
|
|
372
|
+
})();
|
|
373
|
+
} else
|
|
374
|
+
s();
|
|
375
|
+
}, O = (e, x, i) => {
|
|
376
|
+
(e == null ? void 0 : e.length) !== (a == null ? void 0 : a.length) && (L.current = !0), G(e), D(i);
|
|
377
|
+
};
|
|
378
|
+
return /* @__PURE__ */ l(
|
|
379
|
+
He,
|
|
380
|
+
{
|
|
381
|
+
opened: u,
|
|
382
|
+
onClose: I,
|
|
383
|
+
onSave: R,
|
|
384
|
+
className: "excaildraw-modal",
|
|
385
|
+
closeOnEscape: !1,
|
|
386
|
+
children: b && /* @__PURE__ */ l(
|
|
387
|
+
me,
|
|
388
|
+
{
|
|
389
|
+
fallback: /* @__PURE__ */ l(
|
|
390
|
+
"div",
|
|
391
|
+
{
|
|
392
|
+
style: {
|
|
393
|
+
display: "flex",
|
|
394
|
+
justifyContent: "center",
|
|
395
|
+
alignItems: "center",
|
|
396
|
+
height: "100%",
|
|
397
|
+
minHeight: "400px"
|
|
398
|
+
},
|
|
399
|
+
children: /* @__PURE__ */ l(Fe, { size: "sm" })
|
|
400
|
+
}
|
|
401
|
+
),
|
|
402
|
+
children: /* @__PURE__ */ l(
|
|
403
|
+
$e,
|
|
404
|
+
{
|
|
405
|
+
langCode: Ne[g.language],
|
|
406
|
+
theme: H,
|
|
407
|
+
onChange: O,
|
|
408
|
+
excalidrawAPI: m,
|
|
409
|
+
initialData: {
|
|
410
|
+
appState: { ...C || { isLoading: !1 } },
|
|
411
|
+
elements: a,
|
|
412
|
+
files: p,
|
|
413
|
+
scrollToContent: !0
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
)
|
|
417
|
+
}
|
|
418
|
+
)
|
|
419
|
+
}
|
|
420
|
+
);
|
|
421
|
+
}
|
|
422
|
+
function it({
|
|
423
|
+
nodeKey: n,
|
|
424
|
+
data: a,
|
|
425
|
+
width: C,
|
|
426
|
+
height: p,
|
|
427
|
+
alignment: u
|
|
428
|
+
}) {
|
|
429
|
+
var c;
|
|
430
|
+
const [s] = he(), { fetchUploadMedia: I, fetchDeleteMedia: L } = ae(se), r = Ce(), m = ie(() => _e(a), [a]), g = j(
|
|
431
|
+
re(m.files ?? {})
|
|
432
|
+
), v = j(
|
|
433
|
+
Object.keys(m.files ?? {})
|
|
434
|
+
);
|
|
435
|
+
A(() => {
|
|
436
|
+
const t = re(m.files ?? {});
|
|
437
|
+
for (const f of Object.keys(t))
|
|
438
|
+
g.current[f] = t[f];
|
|
439
|
+
}, [m.files]);
|
|
440
|
+
const H = ((c = m == null ? void 0 : m.elements) == null ? void 0 : c.length) === 0 && !m.previewSVG, [T, h] = B(
|
|
441
|
+
H && s.isEditable()
|
|
442
|
+
), [G, E] = B(!1), D = j(null), b = j(null), M = j(null), [w, R, O] = pe(n), e = F(
|
|
443
|
+
(t) => (w && (t.preventDefault(), s.update(() => {
|
|
444
|
+
const f = V(n);
|
|
445
|
+
f && f.remove();
|
|
446
|
+
})), !1),
|
|
447
|
+
[s, w, n]
|
|
448
|
+
);
|
|
449
|
+
A(() => {
|
|
450
|
+
if (!r) {
|
|
451
|
+
w && O();
|
|
452
|
+
return;
|
|
453
|
+
}
|
|
454
|
+
return xe(
|
|
455
|
+
s.registerCommand(
|
|
456
|
+
ve,
|
|
457
|
+
(t) => {
|
|
458
|
+
const f = b.current, k = t.target;
|
|
459
|
+
return f !== null && f.contains(k) ? (t.shiftKey || O(), R(!w), t.detail > 1 && h(!0), !0) : !1;
|
|
460
|
+
},
|
|
461
|
+
J
|
|
462
|
+
),
|
|
463
|
+
s.registerCommand(
|
|
464
|
+
Ee,
|
|
465
|
+
e,
|
|
466
|
+
J
|
|
467
|
+
),
|
|
468
|
+
s.registerCommand(
|
|
469
|
+
we,
|
|
470
|
+
e,
|
|
471
|
+
J
|
|
472
|
+
)
|
|
473
|
+
);
|
|
474
|
+
}, [O, s, w, e, R, r]);
|
|
475
|
+
const x = F(() => (h(!1), s.update(() => {
|
|
476
|
+
const t = V(n);
|
|
477
|
+
t && t.remove();
|
|
478
|
+
})), [s, n]), i = async (t, f, k, _) => {
|
|
479
|
+
const {
|
|
480
|
+
files: $,
|
|
481
|
+
urlByDataUrl: de,
|
|
482
|
+
attachmentIdByFileId: ue
|
|
483
|
+
} = await Se(
|
|
484
|
+
k,
|
|
485
|
+
I,
|
|
486
|
+
g.current
|
|
487
|
+
);
|
|
488
|
+
g.current = Ae(
|
|
489
|
+
v.current,
|
|
490
|
+
$,
|
|
491
|
+
ue,
|
|
492
|
+
L
|
|
493
|
+
), v.current = Object.keys($);
|
|
494
|
+
const fe = Be(_, de);
|
|
495
|
+
s.update(() => {
|
|
496
|
+
const Y = V(n);
|
|
497
|
+
ce(Y) && (t && t.length > 0 || Object.keys($).length > 0 ? Y.setData(
|
|
498
|
+
JSON.stringify({
|
|
499
|
+
appState: f,
|
|
500
|
+
elements: t,
|
|
501
|
+
files: $,
|
|
502
|
+
previewSVG: fe
|
|
503
|
+
})
|
|
504
|
+
) : Y.remove());
|
|
505
|
+
});
|
|
506
|
+
}, { elements: d = [], files: z = {}, appState: W = {}, previewSVG: N } = m, y = F(() => {
|
|
507
|
+
h(!1), E(!1), M.current = !1, (d == null ? void 0 : d.length) === 0 && s.update(() => {
|
|
508
|
+
const t = V(n);
|
|
509
|
+
t && t.remove();
|
|
510
|
+
});
|
|
511
|
+
}, [s, n, d == null ? void 0 : d.length]), o = F(() => {
|
|
512
|
+
M.current ? E(!0) : y();
|
|
513
|
+
}, [y]);
|
|
514
|
+
return /* @__PURE__ */ S(le, { children: [
|
|
515
|
+
/* @__PURE__ */ l(
|
|
516
|
+
Ge,
|
|
517
|
+
{
|
|
518
|
+
isCloseModal: G,
|
|
519
|
+
confirmClose: y,
|
|
520
|
+
setCloseModalOpen: E
|
|
521
|
+
}
|
|
522
|
+
),
|
|
523
|
+
/* @__PURE__ */ l(
|
|
524
|
+
Ue,
|
|
525
|
+
{
|
|
526
|
+
initialElements: d,
|
|
527
|
+
isEdited: M,
|
|
528
|
+
initialFiles: z,
|
|
529
|
+
initialAppState: W,
|
|
530
|
+
isShown: T,
|
|
531
|
+
onDelete: x,
|
|
532
|
+
onClose: o,
|
|
533
|
+
onSave: async (t, f, k, _) => {
|
|
534
|
+
await i(t, f, k, _), h(!1);
|
|
535
|
+
},
|
|
536
|
+
closeOnClickOutside: !1
|
|
537
|
+
}
|
|
538
|
+
),
|
|
539
|
+
(d == null ? void 0 : d.length) && /* @__PURE__ */ l(
|
|
540
|
+
"div",
|
|
541
|
+
{
|
|
542
|
+
style: {
|
|
543
|
+
display: "flex",
|
|
544
|
+
justifyContent: u
|
|
545
|
+
},
|
|
546
|
+
children: /* @__PURE__ */ l(
|
|
547
|
+
Ve,
|
|
548
|
+
{
|
|
549
|
+
imageContainerRef: D,
|
|
550
|
+
className: "image",
|
|
551
|
+
width: C,
|
|
552
|
+
height: p,
|
|
553
|
+
editor: s,
|
|
554
|
+
nodeKey: n,
|
|
555
|
+
alignment: u,
|
|
556
|
+
setModalOpen: h,
|
|
557
|
+
previewSVG: N,
|
|
558
|
+
isModalOpen: T
|
|
559
|
+
}
|
|
560
|
+
)
|
|
561
|
+
}
|
|
562
|
+
)
|
|
563
|
+
] });
|
|
564
|
+
}
|
|
565
|
+
export {
|
|
566
|
+
it as default
|
|
567
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./layers.
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./layers.Bs9Z9EFw.js");var u={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:'"एक्सकेलीड्रॉ ने बनवलेलं" जोडा',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:"Sahayog",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:""},E={noItems:"अजून कोणतेही आइटम जोडलेले नाही...",hint_emptyLibrary:"पटल वर एक वस्तु निवडुन एथे जोडा, किव्हा एक संग्रह जन कोष कडुन खाली स्थापित करा.",hint_emptyPrivateLibrary:"ईथे जोडण्या साठी पटल वरून एक वस्तु निवडा."},F={clearReset:"पटल पुसा",exportJSON:"फ़ाइलमधे बाहेर ठेवा",exportImage:"प्रतिमा निर्यात करा...",export:"येथे सुरक्षित करा...",copyToClipboard:"फळी वर कॉपी करा",save:"वर्तमान फ़ाइल मधे जतन करा",saveAs:"ह्या नावाने जतन करा",load:"उघडा",getShareableLink:"सामायिके साठी दुवा प्राप्त करा",close:"बंद करा",selectLanguage:"भाषा निवड करा",scrollBackToContent:"पहलेचा मजकुर वर मागे स्क्रॉल करा",zoomIn:"मोठं करून पहा",zoomOut:"छोटं करून पहा",resetZoom:"छोटं मोठं करणं बंद करा",menu:"यादि",done:"झालं",edit:"संपादित करा",undo:"पूर्ववत करा",redo:"पुन्हा करा(&R)",resetLibrary:"संग्रह पुनर्स्थित करा",createNewRoom:"एक नवी खोली बनवा",fullScreen:"पूर्ण दृश्यपटल",darkMode:"अंधार स्थिथि",lightMode:"उजेड स्थिति",zenMode:"ध्यानग्र स्थिति",objectsSnapMode:"वस्तूंपासून पकड़ा",exitZenMode:"ध्यानग्र स्थितितून बाहेर",cancel:"रद्द",clear:"स्वछ",remove:"हटवा",embed:"रुतवणे उलटे करा",publishLibrary:"प्रकाशित करा",submit:"जमा करा",confirm:"पुष्टि करा",embeddableInteractionButton:"संवादा साठी क्लिक करा"},D={clearReset:"पटल स्वच्छ होणार, तुम्हाला खात्री आहे का?",couldNotCreateShareableLink:"सामायी करण करण्या योग्य दुवा नाही बनवता आला.",couldNotCreateShareableLinkTooBig:"सामायी करण करण्या योग्य दुवा नाही बनवता आला: दृश्य फार मोठं आहे",couldNotLoadInvalidFile:"अवैध फ़ाइल लोड करता आली नाही",importBackendFailed:"बैकएंड हून मागवणे विफल झाले.",cannotExportEmptyCanvas:"रिकामा पटल जतन करता येत नाही.",couldNotCopyToClipboard:"पटल वर कॉपी नाही झाली.",decryptFailed:"डीक्रिप्ट करता आले नाही.",uploadedSecurly:"अपलोड या टोकापासून त्या टोकापर्यंत कूटबद्धित करून सुरक्षित केले गेले आहे, हयाचा अर्थ असा की एक्सकेलीड्रॉ सर्व्हर आणि तृतीय पक्ष मजकूर वाचू शकत नाहीत.",loadSceneOverridePrompt:"बाह्य रेखाचित्र लोड केल्याने तुमची तुमचा विद्यमान मजकूर बदलेल. हे काम तुम्हाला चालू ठेवायचे आहे का?",collabStopOverridePrompt:`सत्र थांबवल्याने तुमचे पूर्वीचे, स्थानिकरित्या संग्रहित रेखाचित्र अधिलिखित होईल. तुला खात्री आहे?
|
|
2
2
|
|
|
3
3
|
(तुम्हाला तुमचे स्थानिक रेखाचित्र ठेवायचे असल्यास, त्याऐवजी फक्त ब्राउझर टॅब बंद करा.)`,errorAddingToLibrary:"संग्रहात तत्व जोडू शकलो नाही",errorRemovingFromLibrary:"संग्रहातून तत्व काढू शकलो नाही",confirmAddLibrary:"हे तुमच्या संग्राहात {{numShapes}} आकार (एक किव्हा अनेक) जोडेल. तुला खात्री आहे?",imageDoesNotContainScene:"या प्रतिमेमध्ये कोणताही दृश्य डेटा असल्याचे दिसत नाही. बाहेर जतन करताना तुम्ही दृश्य रुतवले होते का?",cannotRestoreFromImage:"प्रतिमा फ़ाइल पासून दृश्य पुनः रचित नाही झाला",invalidSceneUrl:"दिलेल्या यू-आर-एल पासून दृश्य आणू शकलो नाही. तो एकतर बरोबार नाही आहे किंवा त्यात वैध एक्सकेलीड्रॉ जेसन डेटा नाही.",resetLibrary:"पटल स्वच्छ होणार, तुम्हाला खात्री आहे का?",removeItemsFromsLibrary:"संग्रहातून {{count}} तत्व (एक किव्हा अनेक) काढू?",invalidEncryptionKey:"कूटबद्धन कुंजी 22 अक्षरांची असणे आवश्यक आहे. थेट सहयोग अक्षम केले आहे.",collabOfflineWarning:`इंटरनेट कनेक्शन उपलब्ध नाही.
|
|
4
4
|
तुमचे बदल जतन केले जाणार नाहीत!`},e={unsupportedFileType:"असमर्थित फाइल प्रकार.",imageInsertError:"प्रतिमा आत घालता येत नाही. नंतर पुन्हा प्रयत्न करा...",fileTooBig:"फाइल फार मोठी आहे. आकाराची कमाल परवानगी {{maxSize}} आहे.",svgImageInsertError:"एस-वी-जी प्रतिमा आत घालवू शकलो नाही. एस-वी-जी-मार्क-अप यंत्र अयोग्य आहे.",failedToFetchImage:"प्रतिमा आणणे नाही जमले.",invalidSVGString:"अयोग्य एस-वी-जी.",cannotResolveCollabServer:"कॉलेब-सर्वर हे पोहोचत नाही आहे. पान परत लोड करायचा प्रयत्न करावे.",importLibraryError:"संग्रह प्रतिस्थापित नाही करता आला",collabSaveFailed:"काही कारणा निमित्त आतल्या डेटाबेसमध्ये जतन करू शकत नाही। समस्या तशिस राहिल्यास, तुम्ही तुमचे काम गमावणार नाही याची खात्री करण्यासाठी तुम्ही तुमची फाइल स्थानिक जतन करावी.",collabSaveFailed_sizeExceeded:`लगता है कि पृष्ठ तल काफ़ी बड़ा है, इस्कारण अंदरूनी डेटाबेस में सहेजा नहीं जा सका। किये काम को खोने न देने के लिये अपनी फ़ाइल को स्थानीय रूप से सहेजे।
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "./layers.
|
|
1
|
+
import "./layers.DnJCBHYn.js";
|
|
2
2
|
var u = { 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: "" }, e = { noItems: "", hint_emptyLibrary: "", hint_emptyPrivateLibrary: "" }, a = { clearReset: "", exportJSON: "", exportImage: "", export: "", copyToClipboard: "", save: "", saveAs: "", load: "", getShareableLink: "", close: "Жабу", selectLanguage: "Тілді таңдау", scrollBackToContent: "", zoomIn: "", zoomOut: "", resetZoom: "", menu: "Mәзір", done: "Дайын", edit: "", undo: "", redo: "", resetLibrary: "", createNewRoom: "", fullScreen: "", darkMode: "", lightMode: "", zenMode: "", objectsSnapMode: "", exitZenMode: "", cancel: "", clear: "", remove: "", embed: "", publishLibrary: "", submit: "", confirm: "", embeddableInteractionButton: "" }, o = { clearReset: "", couldNotCreateShareableLink: "", couldNotCreateShareableLinkTooBig: "", couldNotLoadInvalidFile: "", importBackendFailed: "", cannotExportEmptyCanvas: "", couldNotCopyToClipboard: "", decryptFailed: "", uploadedSecurly: "", loadSceneOverridePrompt: "", collabStopOverridePrompt: "", errorAddingToLibrary: "", errorRemovingFromLibrary: "", confirmAddLibrary: "", imageDoesNotContainScene: "", cannotRestoreFromImage: "", invalidSceneUrl: "", resetLibrary: "", removeItemsFromsLibrary: "", invalidEncryptionKey: "", collabOfflineWarning: "" }, r = { 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: "" }, t = { selection: "", image: "Суретті қою", rectangle: "", diamond: "", ellipse: "", arrow: "Нұсқар", line: "", freedraw: "", text: "Мәтін", library: "", lock: "", penMode: "", link: "", eraser: "", frame: "", magicframe: "", embeddable: "", laser: "", hand: "", extraTools: "", mermaidToExcalidraw: "", magicSettings: "" }, i = { canvasActions: "", selectedShapeActions: "", shapes: "" }, l = { 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: "" }, n = { cannotShowPreview: "", canvasTooBig: "", canvasTooBigTip: "" }, s = { headingMain: "", clearCanvasMessage: "", clearCanvasCaveat: "", trackedToSentry: "", openIssueMessage: "", sceneContent: "" }, d = { desc_intro: "", desc_privacy: "", button_startSession: "", button_stopSession: "", desc_inProgressIntro: "", desc_shareLink: "", desc_exitSession: "", shareTitle: "" }, c = { title: "Қате" }, B = { disk_title: "", disk_details: "Сахна деректерін кейін қайта импорттауға болатын файлға экспорттаңыз.", disk_button: "Файлға сақтау", link_title: "Ортақ сілтеме", link_details: "Тек оқуға арналған сілтеме ретінде экспорттау.", link_button: "Сілтемеге экспорттау", excalidrawplus_description: "Сахнаны өзіңіздің Excalidraw+ жұмыс кеңістігінде сақтаңыз.", excalidrawplus_button: "Экспорт", excalidrawplus_exportError: "Қазіргі уақытта Excalidraw+ үшін экспорттау мүмкін емес..." }, m = { 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: "" }, p = { title: "" }, g = { title: "", itemName: "", authorName: "", githubUsername: "", twitterUsername: "", libraryName: "", libraryDesc: "", website: "", placeholder: { authorName: "", libraryName: "", libraryDesc: "", githubHandle: "", twitterHandle: "", website: "" }, errors: { required: "", website: "" }, noteDescription: "", noteGuidelines: "", noteLicense: "", noteItems: "", atleastOneLibItem: "", republishWarning: "" }, b = { title: "", content: "" }, A = { resetLibrary: "", removeItemsFromLib: "" }, E = { header: "", label: { withBackground: "", onlySelected: "", darkMode: "", embedScene: "", scale: "", padding: "" }, tooltip: { embedScene: "" }, title: { exportToPng: "", exportToSvg: "", copyPngToClipboard: "" }, button: { exportToPng: "", exportToSvg: "", copyPngToClipboard: "" } }, D = { tooltip: "Сіздің сызбаларыңыз өтпелі шифрлеу арқылы шифрланған, сондықтан Excalidraw серверлері оларды ешқашан көрмейді.", link: "Excalidraw қолданатын өтпелі шифрлеу туралы блог жазбасы" }, h = { angle: "Бұрыш", element: "Элемент", elements: "Элементтер", height: "Биіктігі", scene: "Сахна", selected: "Таңдалды", storage: "Сақтау көлемі", title: "", total: "Барлығы", version: "Нұсқа", versionCopy: "Көшіру үшін басыңыз", versionNotAvailable: "Бұл нұсқа қолжетімсіз", width: "Ені" }, y = { addedToLibrary: "", copyStyles: "Стильдер көшірілді.", copyToClipboard: "", copyToClipboardAsPng: "", fileSaved: "Файл сақталды.", fileSavedToFilename: "{filename} сақталды", canvas: "", selection: "таңдау", pasteAsSingleElement: "", unableToEmbed: "", unrecognizedLinkFormat: "" }, C = { transparent: "", black: "", white: "", red: "", pink: "", grape: "", violet: "", gray: "", blue: "", cyan: "", teal: "", green: "", yellow: "", orange: "", bronze: "" }, v = { app: { center_heading: "", center_heading_plus: "", menuHint: "" }, defaults: { menuHint: "", center_heading: "", toolbarHint: "", helpHint: "" } }, S = { mostUsedCustomColors: "", colors: "", shades: "", hexCode: "", noShades: "" }, w = { action: { exportToImage: { title: "", button: "", description: "" }, saveToDisk: { title: "", button: "", description: "" }, excalidrawPlus: { title: "", button: "", description: "" } }, modal: { loadFromFile: { title: "", button: "", description: "" }, shareableLink: { title: "", button: "", description: "" } } }, F = { title: "", button: "", description: "", syntax: "", preview: "" }, k = { labels: u, library: e, buttons: a, alerts: o, errors: r, toolBar: t, headings: i, hints: l, canvasError: n, errorSplash: s, roomDialog: d, errorDialog: c, exportDialog: B, helpDialog: m, clearCanvasDialog: p, publishDialog: g, publishSuccessDialog: b, confirmDialog: A, imageExportDialog: E, encrypted: D, stats: h, toast: y, colors: C, welcomeScreen: v, colorPicker: S, overwriteConfirm: w, mermaid: F };
|
|
3
3
|
export {
|
|
4
4
|
o as alerts,
|