From ec30867916a67c51ec822b30f1398201bdaea3c5 Mon Sep 17 00:00:00 2001 From: Marwan Alwali Date: Tue, 11 Feb 2025 15:17:42 +0300 Subject: [PATCH] update --- .DS_Store | Bin 18436 -> 18436 bytes .../__pycache__/settings.cpython-311.pyc | Bin 8483 -> 8488 bytes generate.py | 11 +- inventory/__pycache__/forms.cpython-311.pyc | Bin 35073 -> 35270 bytes inventory/__pycache__/models.cpython-311.pyc | Bin 89021 -> 89130 bytes inventory/__pycache__/urls.cpython-311.pyc | Bin 27357 -> 27532 bytes inventory/__pycache__/views.cpython-311.pyc | Bin 185864 -> 186394 bytes inventory/forms.py | 6 +- inventory/migrations/0018_customer_user.py | 22 + inventory/models.py | 1 + inventory/signals.py | 17 + inventory/templatetags/num2words_tags.py | 2 +- inventory/urls.py | 1 + inventory/views.py | 13 + locale/ar/LC_MESSAGES/django.mo | Bin 214554 -> 225490 bytes locale/ar/LC_MESSAGES/django.po | 1279 +++++++++-------- requirements.txt | 3 +- static/.DS_Store | Bin 16388 -> 16388 bytes static/css/pdf_preview.css | 43 + static/images/.DS_Store | Bin 22532 -> 22532 bytes static/images/logos/logo-d-pdf.png | Bin 0 -> 12210 bytes static/js/app_admin/staff_index.js | 8 +- static/js/appointments.js | 2 +- static/js/html2pdf.bundle.min.js | 3 + static/js/main.js | 1 + static/qr_code/Marwan_qr.png | Bin 0 -> 1478 bytes .../administration/display_appointment.html | 173 +-- templates/administration/staff_index.html | 44 +- templates/administration/user_profile.html | 2 +- templates/crm/employee_calendar.html | 22 + templates/crm/leads/lead_detail.html | 32 +- templates/crm/leads/lead_list.html | 25 +- templates/customers/customer_list.html | 49 +- templates/header.html | 4 + templates/modal/delete_modal.html | 48 + templates/modal/event_details_modal.html | 22 +- templates/sales/invoices/invoice_detail.html | 2 +- templates/sales/invoices/invoice_preview.html | 357 ++--- 38 files changed, 1156 insertions(+), 1036 deletions(-) create mode 100644 inventory/migrations/0018_customer_user.py create mode 100644 static/css/pdf_preview.css create mode 100644 static/images/logos/logo-d-pdf.png create mode 100644 static/js/html2pdf.bundle.min.js create mode 100644 static/qr_code/Marwan_qr.png create mode 100644 templates/crm/employee_calendar.html create mode 100644 templates/modal/delete_modal.html diff --git a/.DS_Store b/.DS_Store index 20d0eea94e48a3c50bddecdc9a0e60332f0bc403..e0094cbaefa43d33f807ec11e628cc5470173427 100644 GIT binary patch delta 1027 zcmeIwPe_wt9KiAS`z)LFE(nP!x@MtZ3>>e;bW9;Z)OY@28mMe`k`hOY0-cJ4n>32( z(Co>M{za6EP+vQRkrdU%gBK5_*CfHCx6GEkyNH2Tq387QoW7sm^GhU2BuNGc&Nscy zr`WJv$j&r^mlmwU@lr$8rY+J@P%U?^G&|iLcO&8M9!>j-u$;&^Y0W%!TD6_YZE0<3 zvjt_qJ0bPr3d8U5qAKPosC3Cyw;ubc>>^M(hn;M4xQH8#5-w9tEjoU#(MFIE?c5;D zEh5~emwOBnBhDj+kvwCBQD%6-OJ4DYk9^`YUs&ZE>um6yO@6S&4!_tFipUaq!XeHJ z%_B;LPgDtA`2U6p%)n5()O-&`?sTNCXBCCVM!YOxan2mhcIbY+&emWAyee|mJ}8Zf z`~z&Ctnt}n8l_ZHlVa9UPa~}+^g1``q-!7BLzF)H8Q?w%9`G;)e!35S&KToNGQ~8n znPUNiMV5HSdzSf-8o>%{fB0s9+SQnLNoS6gZMo=KIZ$_OKjrFBhV=Rh{}1+G+wMC0 Jw##VIli#{;;K2X@ delta 798 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 Z|0{oTv^uBmoaLgw(;plyPECT5{T~q^u<8H+ delta 8596 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 diff --git a/inventory/__pycache__/models.cpython-311.pyc b/inventory/__pycache__/models.cpython-311.pyc index 1b4cb585ede42b9b81301873878e81e2ca895125..24ef713d2cdc9de84811983fdb900338b26813bc 100644 GIT binary patch delta 2845 zcmZ`*3vg8B6~5oyy_?N$Hk(b@WH-+Z)ZS+;(oQErKZ8fsu#RaR>tj$~5wfXblFH{^u^CkkLEYZ~i^! zJC8l*{O9H$nzHAwitSCC%_51XX4{_n`U5s|r@YF*Hed3x*dulrSo#r9x<6)_jVSbp zb8O@!Nj{@2`R%M=T7qJfq`gLV@QBOgiy|Q}D?+B*A&!P+)_eRYpT%d<)m`aG$kvVe zm6h=W$wc(oczF>riW3GXV|Asy9U`vyM4md?7pKb|1LgIykKEhY$*(h6YJ)vdr#T;_ zbtJO<1}DFhh-gzJO(tu(j{m1`yeoB;XSTV8hh$$$MB+;w;3=)$AQBUw$Wxgj*!LGA zy}uB?i~*K0?GIKZRkuv*_jEU&r)_{)X1go`iqGAE=|5>Uc!1TA0ah8ZR4nTK9p#ut|m&y=p6*4aX(mJoQ^{;nb1br z0DH`@M2l6E2&kq@Y}SP#510fmRHKZ2b|F*VB=epE3}Uv6X{@a@Dru*2zv<7hC(Ei% zT9=%%F8P;r$=Vs8$E1cwTzpkQ1v}O~Qh7{-&1XM!uf#(v@Z~m31*Jid5_VjE7pMrI zx^ha!BKF4hd}WD{7xQWd+^pyN?@`Lu+^BKRBa2kZZ3w|PlxhY0`o?hkBGM2Pik7xK z&TkaJDRPSn&+aJ&7KOKb^+%(1B9X?D(IhtW+yBaq27WjTwd}QCE9%(Z-fX2wFgCDH zd!LTd3*|L1M}~_%am$7m*)zAo*b;u^yLVuUC|O@$UjH%g_FVjdJ$d`QtQuIsf&|w1 zeKK~3pZ$K7j8^vJk9kQU3f>}u=NZ&I%6`3=AT`7$-I` z?*Lo~@ehD~<5rQVgwk)N)6)dc5oD3OQ3N9h>PSXVPPM2rP@_`V;ty@wX&JK&a-D(A z8{^V`VZuZi8+fxBiH~j+^gOvQVS1n`s8-hoJu@0w#BjAV1e(-M5uI&*b)&z&Zv8+QmATd6v^&58n? zm#+g7K?za>=%k&n#p!-=jM2n;x?~{$6V`uk@&uNxJ+-6pD;fb zj~Q_tbSCJgcEp2sO~D{OX#}EpQ3CGB9R~ic8!kS75Z+fb!MmfSI#FO0<1p8ak;*|K z%HnI?=#)eHJn~R724N_FJ{e77Hoi;79B6!23KrVmrdR|u6G^q$CYc;tj15RtAa_1l> zaN{s6P|ge0Vt!>9_M(RK;ev6IUmA{w?VV&u@JnjIasI^=IH}i%(8*3+aci!T=$7#~ z$7mcjbqn5Vh3^}WbiT6~(QNdMF>$ev`kQTr|y7GkvAXJAvjsg`SksS=FS z%EzG+^0i1Wjy!^)5ZtRpU;tk`9=VE93~fE{7>^pWJ_@q%oHzjwV>zEQ0mY+qU-~8M zC9ff>T{Iz4{O|;%StJq=Eau%4a8;I!Ebfp?yFL*iC{`g4@}-l- zyteY0Q{c1Oh^}AO*ob{J2?zqba|*W0(MIO^olDz174b5z^WD=i3Y>p39m~vJB8$1| z>*Dt{CMhYxe1rJr z{Gq=-XUw&M6)XHr!4@@x|ILfRar%0nL8Tk2d*N5Ta9i|@3D#)#QXB!|v`^;XdAUu0 zkLoW#eGjcC$NJKtWuk8b{o?8Ktk0(EC*OMK^j7Hg)ZJ%MLGHat`pgqn1bm@J|0H$1 zh%1bwmdoN_v>pS1&!v=;`k!{T94E|UhM@#K(of@at6o_1m9G2denzEs{xO`B{|6Bx B)5-t< delta 2752 zcmZ`)3s6+o8Q$+MyRa{o*9yD5b_FCGc?d;e6j34tL}F|)MKP8VcA*OF;$<J~NTu3+Co96ehK(wncwPg`dpjjLM5E~w zfAFiZNE)wpW7zcGqvx;ALM%ISI6NnOCd*^+7zEAiG4?_j5r6PIX6jXqvZ6sd^t?D0 zHvYaF5#8C)vz}|lZREu43BO;fLGoBtdc;h6qvVNHIZ^j>jz#xsgRNM?j`wVBZg!x#HV@f)HhI9h6+)8#O z{;xzyGx$>_;@e{pS2$%Od4`O$R}ztme=5CrH9g1lKB&bE<1Qqyx#RYfL{HidO-+(F z*)wN{rdNpdO^a%3oSyV5jr#%CHR2dJGtvoti71;TgkMZUDyzHn2_jk94NsMGWnX?A|J4wbyW1kr5am2fE_@q`2s zSHl&XWJw%2aOH>&RjgnvQ(rBtXN9oWj-<0~^Yhp{V>aZn5650KR*_o*$H3OV{{~W( zmN}n|8>qf|O2Rr8aXnjCE10ExC=zzI{`zyMU}M)Gx2+pbl2t^`Ai*zOTl{>3Bn5yNV3H-)Oniz-DX$Jxy!m{nWb7LaReyT}`z(o>qhu*r!; z=D715_7C*lISqYKi8bDJPcOUguEdM%le-^Fn}QYp>x2U@58RsAETMxnO}b+P6lI%; z(yf)S{^n-?6Pb^;I+xWoH_JZ> zlB1XTeF3?yKHx0b&{p5x*0#a#llSrn18k|!2SvwSS>g5lLk~^f433c=-}Ll z0u1vDMs$T77E)}JY~!6Kv{z53a>O{i;Z%Y*HTRm(Q2w(ADNM0 zI!J^Ls^4KAVnMZZM9W;+vBup*CpfKawcxkFZbj7U8A*3s(8j4#dvS=jM_~oN;Af+- z(mlh;AlYmrpTD5hUV?rydV&{3qr^zVO(ytM*%=Kdq&_X%dpVB36@zoSK|#N#JZnQv zi0FXRc4X?#2vQ2aX2%CoKy6Jv>Oc(A`M(|TA;25rQHeo55RbLSQ)HV!tISHkJ?Lm% z-xX<7vXYQ08Gc9n^8)y<(hzU_y;v>K36h^b<%BopfY`gW!^V2qTPF^u_VFLc<@}Bl z`B=zvTv%;;hxD81tlp)SjdB~}2VF>#-qZ3oB_!~oTv(0dLiICOx$c4;I3H}d*(rDv zdezFi{BNm95)54$4&fqyDGd+m{wVY+`GqvRjstwx9JtKyk)=w4AxhrPFU&y%R`JVo z(D;ACS)Y!K$X}9*p5i-Ca9?y6iAPYRyq}JTfs0C_8zT_SHSr*-jU$5fm?%qI9xJ{S z&0FV!p^k@S2+>jg?F`H}4wD6f)x0YM!_u%i*OaF-@tK76+&2$rO`i&OClz;>#J4-e zd^`R|k@Y)XpT{pxkCm;wCkLBEHc`1Kfmf-{MSqC?bF!e z(pT@KC8!@p1Ogu~FUDahEQH<<CCEZIUs{5Vp_hc0mGVn8@Zxk1p~94* z5qFJC+)4Ck2My8A=&HJA?<2Cu zD`z#dH#gV%>RP-nb1`K(j&kF2+(sYQR$yCb8aYv~XAJ*o1!B?9PgdZYnJPU-I3Et( z;M?rqQ16x1`7l9+p_&bc)%#moyuLu2oW#>tVD>l2v0OssOb;3rtJi3ITmZcpnx%3E zrK2WB@T9V31>Od%%F>6iODa=eUG=3@N7HUHs7@W4F6wwt@1}YM)Gn62WM4gC^~BV& qTY2OvF}W8i*{d)Xmghz}ZfL$9pV_>7%T1Mc>#GuLl*+Xjk^T#W9Jky6 diff --git a/inventory/__pycache__/urls.cpython-311.pyc b/inventory/__pycache__/urls.cpython-311.pyc index 21aaa983fb04b3dfe840a14feac11fc32e69e09d..6206ea0f233841d1b80d4195f00e698987716796 100644 GIT binary patch delta 2507 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 Val;ywIJ9(O47Nysh`P2+B8u_X9V>>w8zo)i%g z2_2%Y1#IB6qNpgk7Q_xVc%sklcm8MYmTWfY_x(QK%i-RcGc#w-oO9;PnYpvK?1{Md zKt%LIQBmPR^q-8|z2M&??v73rLk@PhGkB~m$kxAfOWA$-_lY1a$UgGwt-!*6_WO5; zprGCKr~b>|#`zDp-wAiS`+3g*<9u*@&A^pGwn28WBbdt3pZYKVLEGS!LHRpuLkK>k z1&s-^4JEu`_PKs|J2`JS<&9{RSI2odlsD2ofpSBr1^P2v*u}Y{YAAbjqoTVxa}4E; zrJ`5)72U(R<0yAL<<9cU-Ai3gv8UN4?3uVjqbBK3{l}#yQK?)i;JxNiexFP41yuT4`XuFo+OSbC>zD#so z--xbPxUL(hF0jySskOT|`LEh)spxS=T0uxR8qY+>MdrW83IC#mm7sUd>s0qmjp{zZ zST_^aDsSDMs^8$;TPXL|0KIsVb8n;E+f|cqal##xa3{0qr0p)E>}}g>g72&mwu!bi zD@Fb(e!82U-sPvY^zlbDDEEQ|^{V&3w#x_fg(f)z>qea6ct%Ltn>z!tW2z`*yV5sOe8R z|3S*%5uoYMIQJpS-HGZu<$ulzb(FA+(EVlc3(nn5xqHy~&@X9h_cj{auNZ3|VeJpl zM ziF2Q)-2Viq@qe8A0_DC)xwAc%*_ad=TElrSQQpf9@|5lTg>zq_+*bqS{z{Y{Z$#;D zw%3RSzjMjgspN?O6#Zd)gK++|y}7a`DE}|pTPuUsi2NYiN&Z)G(YLASJ7h8%=nP?L zoO_CL-wlu(%(?GTuFGE$sBDPseQv?RSRWA9hrRvh1VXdgK4P>`>fdSq{!xCIF*hn9 zsTt*-36L9Z+(o$&l>2Fb+(_f8sD!L2%Kbb*ZZs421rhe8{VF3ZI-%w(dOjO~##qKY zN4Z}I=xB4!{f2VC4Zx%p)cSV;T5rjvzNb>>Y0TJK8_S}jM4YiDIw3QjO8qxLsa9O- z2P$=uv@szff!}|m_n%1J;<^&U5;^IAl=O1|a*{ar7s~yWI$ao(5c(TE|8Adc+z`{M z#`Xuj{28EF3K#neBV`K;ke`Zt$`g#CHI_mmEX~9TW}J}5GQOrpEVpi&a69v>yB*Pjhg%{6D5jKq8p>+x2Ni2xVjGX z6ib@LQx-ipcTZaM+`>I=(Q`{oTsCkgZjC7IxJHy^6Y2C<)`|Y5zp~EsFa4F(Tt*M{ zSJs98?IMD>P&^f)aV_gcY4lgto&N1^=CvxFS(cxlPpLg9wTGFSKqY!oS}#iLWu_&T zwkb;o=gN9hYHu?&i7+pxv_6zZf5yD#?LprldZoXz!SwH7tPyx@TQg6R*9iLn`s-nQ z(>y6Oh0{`v+7|IGhnje4oYsbLh8nRg;*Ciy!fMhvjfTrUl>Yj8tRh=JYGt@twk_k) zkTG8WMtCDkympM2MR=VW8Lb=>r#<7)DA_w3BU?6aInqq;$mzs?`$(oQs%2PBCr+a= zu#cp_#`KLg%U;HKG(3#gn7%P4URTDW;j&-Wh`zBVPItzkfwOlpLgJdY9A~EY#!h*#PyIxRKSy@q1UR7oEY-t|*^hqL+EAaak%CR+QU)YO6!B{U|2v z`T@Kg1UN*%5l=vhY7rNlt}iz-I=8gELMac__wW2pu-I?JcIzFn4#>{|95p6)OR}Pu z`bnd_TPyL4aZ|Tku}l^{q{Y>L)oprk>=|TYEw6t9;4&uln%rwCJ!Z%1Z_z)l*ah|~ z5M5;>gTWp@1}GEkK(s-U2_l!m3)URqjEP$yL5g0hCG z29E<3;3wnGJ_S~mq~o$EMkL9+6sQ4j8}kEqoi+2C|C1y zkStm!5{*t>dl{$tKHcVZ;Jg9wHUS5s3SfZQ^OMFS{W3&5<5a&Z+=Dly|5aMednoWe zz()Y50X_!sA62Az2Z1@wV;sX{%zbXWc79&TgFpls2le(Rv2q8&5s2bBMbfWv2yenTQah7mlZ zKymjs#a$V5x0Y?}8uIm3+}Y58oxKL-(N9-!QE6$mHDDhEHK@eHN|;QhhsyIqGeXBw zz9TP4X3P>9#;d(!jIqNqhl1uhtDiV334#3SKLYr7=Px7zj52l&8?CzYSCG;C%T7k+ zwQ2Q3hnI_Pte0WX%lQ>#NeWS99RZh>EM-a6a#sZMme|W}6}m$|XM8Xsu|Gz}6%KqQ z^sW#t%Ok`}=O=RE)T8QFq}sB1o@gm%8N+ktYs-S zG{d8lPS)w!k-fxR7!@w&FtuSN*8is&Upr6sny5H&i@F&tjfL#Pmqi8&%E#^a+?tu~CvOu02tYh(O2dQc4y zhRDs1_8*UFXcofmvXoWW?4|m2CV_fB8qAGFQx|~)j_3&hDF6XS&w?C)DfH(+n?I{L z$+-H~NaMLN^VNV_gglt4CDxA_drEZNMOf9*$Xqk&yU&&hY>cqTem7;~ne#O4ZFZZFcOWotU)9Rnfp zZUU*Ghnc43FhpM8!FLjtE2N}+euXQdgeJfuy`Ze<8oSR780k*N0MHOYiqs6#%~+gg z7j2C9^Da}p$}*y+v=KMdcbSr*iDky!#Yy!Gr^bnz%ZYB1zab!hD1e9h(RIQV;wYML z_p;KY)D=dfJc$P#20$6QK~&fkMl&@zAoG?puU#Rf#HMUh_?Y8p&K1sGL3xMq+qCcq zw)X8Qr@FP#V|H99bIq~OsI;dW6Q<9E`W%Q7iS>u457DCffXKcCvV}g>2%S|>##l?$t-EJ$nh>9R8qxFfXF48+5u3&PX^nvIb zMuz)Km6X_h3_JR(AEDgw+*dshb@&RGhfw`?)L|tbsKoBjU#1sFC;_&H>7?)UtaqT& zs`pU}&q)c6&cc{7JE4BTmE*LUnUvs>gDSnm#}hI;(9GKbMRq6+(==c<93>xmeTQZa z8nB>dha<$KPZ8IVa*S@Xlf`SsgxS}SQM&G=NUA?EyI3PL)w`gl=xr=07^E!}GWRl? zn~xOq&00W3^o0QP0Wgo$X)dj6cb8b=fZK$Q8%c#@#6_d1aAZrUyxENwW;cw-3e&BM za^s`IegoNc#8|s5r1FdHCYBmE6tx!% zj0cN)DV4}JJ}T-E`VN(MtPnyT z7VR%i(bTial~Ar3;J;U@Tu~;6DmYhPg0@&I@4yq&xg1a4;feGao>i3PY7U!FVeBYL zPh5(3t6A3#C|3ip!1$=7kFpi8=GDot6=4d^5nMm;>cJujVw6k%l%IF0CV@1b1egcF zQ?lI_RRfe7C$8Dtf-^YnB%zRD+|GWhv7z+g5f>??fid$;AAb5$ONiAirjo@kUYJ8> zZbpfHX;*SB+8cM3rO_C!-IG}VpR)GBqPy{J<#5r<=(Z@G)<1cR#>O9`qIy372$OOq zhZuVoCC%FcLRqxKeR$^~!4+OoMvJh5`6Z>a5+ht!jLlw5joS(;=3Q+su5!3S@ahUC zM)Tk}!l?z*2+=>Jjve(h(W!onK1Hw(mP<~ZA0xp6y%t~($noRl2BZPBHBLE3sVRGd zARjDI7DkGY`k__hwDy<*bheF4u?^AYb)cU>LN9y`-ED9oj5+Ae#5o#V%laxtPArOTkcY8RD=Tn ziVZ2i^mRr#D?pc13~_y$C^gcrA7`%Iqo3;rHMVpmH$ew(U9^cz*_((0p14S z1t^Pim=9mPlEzxdrN0KNp^w=XrG;L>=Jt4~{gzDVPIXF7k@54tT8G{M!e2A_H(=!f znvTC-*-UG>myqB?!KSj;raxkYuCf<&C;GBYs#vJ~lq|wc5W91vj_;r%ZIMGqjru8c z5B^!;RjSi?WmT%Ut^Vw)crl0dE%I;l?IP-W615%%;Gtr=0_xcb-~cQ)uDW$m1X|!% zin*;gNinytZ=Gd{1J3DC{OoO6y*`&r^)VD(l$1>qtFs(72*jX zJ6NBG=Q7SR-dVjpnvLWcey0lLYr1GEt^89NeE*-ADE3TxRLJCzC`tkw}-4!e$cR>G!imb2iu-D56i8>^o2Z@SV|lLuaMu-|?(lzj#BQ82Kz^(ZZx3N_p!%idU~; zK8e@22{a0!QCfAXab`oDk$P`43WRpJH_z>c8h77&b`00SW_~>CNCq|Q@PwJi$La?w zd%z(GwgSO~wV3v;lw=0Y-6i4%{YFa^4iIFqwd58lp>BdvJ~+Y14n+e zBFt}&VKMNVXqe=H*6Tc|C7=aeG}df=Oo`rk7CmFZ{dZa~P=0l`k+(6LZ4?4{&%llNUhVRT2J*(HoZW7JS}y7A2eNfguLwzG|M4=(f(t21pt zrT!a0K)Eo=9%?Ik7;7FXU{6CyLGyng1^OSTGZx??mbTo7ojIZHg^~+4z)CD-i$If?z~M2#$QS>M%JC{3Q3@$L+n$h6C<0uvdBvn&6)JnNB)t5u^k3Ga`0R zR~r@0<&*@{=$hR%BHs9G_w$#rMFV$OgI!h%TiL7Z0gYv%aehyd7-NL*&27(9RHK#X zG<4a=s2exzZIw+&ESiXm()o-a9bg2QI*t7B1moo1;fkTHH1@;gzjH(j1i1~{zK44- zYeSSD%&cXj*0in6GHUn58z=4t^oJ z#+Ls>JbA*>YD!=$%a$dTD)V!lkzSonR%v2IF-PxmbbFDpdY{#JWpsp?X54kKHiP*Y zc;vrBdu@zvhg$dYjy#VyHyBV}lfhYliN1HV`zOVkzySDHcl4q zCTm|&KOr5w)#=y?4GH={e?hctM&oFVW{9En@y7S{vGeB9Xz6tHL`~BH0un3+ifq&g ztE^`L-;aJjdCde0z#OCK;n7N7Gg)4Ffo%+}YHbwOwJ?5qc&tdNANt5nQG@YwHLI#9 zu-S_!GN9&C$ONq%c}&>6Gd+hv#bX3qq4s6PrHd(&TZkkcQ&nKvAqurCUxihxpONhwY!=1X{&_FPhu@1a~w}JC*jQqo`2YY3L$BMb)oudOv zcYAOKV7_ti@B>P^+iNmok(Og@Inr-D*wB>AsahrkH7^8mIeVabfK|cr+1|89=<`&( zlExnOQ=WP{IF5(19aw8EhW}GKT7T1M_uPz_{nRa2sC#zVWZe2(+m^61u81nVsN6B1 zHV-PV(O)p0dakmD#fz!&#(;QS!ay7k4v&@B@8mfwGPk0tWPXV33BIZF>i56sjZ-Bo};34F>QA*)=Mxo^@el6vd@OFKMHYsV4lvM3tp_3HjL#P zXO6bE3?|e&4;_1sV#&sLuO!uf@O)gbm07aa`02$#@x3X(Ix4-yk*?bjnzP%w>X#d1 zUYa;3o~q7{^OyN1dC;)u`T&p!1=a&~_(|jZOG!CRb_kqx#d=3Uui&jj%zlnA%1bx@ zqd4Kjm(wkysI5Kqi(bA?b@C0>zfH#TuVy8%lKHMUxC0#xaXfygU;99HPX@}Cy0CdV z%@l?_-Hz1~0;oEjg$jDnn0~wn?hy_F)Soy$S)@IS(Krfl%%?6hCX-?ee!X49@6fvE zf#MF|t{;|A;G&>r6kbOxcKW%B3()9G_la_?AUvUYfhqTUu-ty_JM{ zIwBTaYRKlaOS9RidAnOgd_d;D`SzpT0x(yn(_{fS2tu-%5O^}JiIrmmu+bQJsx|G2 z&N!9U&udfv3D2gWQGf_z Y~rJEx6N6{`=-n#>YmACUZ8*ARn6q}5P-%GDypRo^0 z?Z#;EhIFJ}kLQL?6z%9a3UoV`6?U7Fn_a+Sk@1))eJ;}a5TNxFL<(kAr+sB*knW|F z21;a1b;Vg`Q}b<%QrAP!7v4YZ@_xVIL^gR5?k2HS%hb0suK#FI1aq7%RWIY%M+1gl z*`N#hEPBmO@aX~{Y+;+qedC&Hi5l~;i!u0gQae9K(AzUMrmQ=OM)m28D7Nj~Neiux zcb?9OhmqwjdX~dvBaDwuCt48S>{9>R>9u5j)XAa>i-?uOKBmd&_?iAzEW+Fe*U~=; z5z|Yl08KI#RkSECu2@`NMFE#-pw#2_=;zQ{Pozx(SO74Q00p+#-6*3f8bq|5#_~_w ziYtswpBCl9J+iO$8N3wh9XHVE>(GhP`9-CZ8RR9Gb zpLE%A6?Gh^H;kE|MH|n2FQ ziRH$ib5F46ruKAVzrH006#4AwV2CJ|&0Zi|RzJ!D%^t@4U$+mv6|7Jj0obl-Qxntb zmS_&!HMH&MSt4nQ{ccO$+VrzsyKQ za}*z{1V6+wW|Mc}WjydpU-6Rh{x5?_aua{;98m}2_$2ZDM((fa{a(WR{is5?;@!L| zP-1$`(jt97QIQwwU;J&h z@J#1J{&-V!3$73Q2BqoiQU3;je-rSs4)kuk=T_0V-!~*R`X*pt;?g(cX$!!809yfk z*a{RD(;fGGBihyMq-@%9<>hxBP?>3_U*Odi7MenoWfO2cFl+J3-G2bDo}tneFNqua zZe;lL6B#UKq=H4{PyvUPD9m4p_9BZ7j~|!AsAdPWe4|96>-Bql9Ewyl)NykxOakbL24aa`iF$9CfbFbXvfPhE9uo+$z$o z$+QXU=p&yUC*tG}R?&W{a$v&!9heL%ucoFZCnU@iN{ql&oxbN*AWoKsim__;ce1xE zZyKbvkRP8Ho#csMMYK!}6KTZVLG({lGxSGOlidZmAWXDL^s)|_Ue?JiVWO4gDQYK6 zJ{~3pl1AW=i8H#HxL1r#Lq)z57b_Y|1WOf9b`~Uj2M2rXt`}{tW5@=mY}FsH~dG z<<&_dLN1OH-DJy1(N!_`8BYk%VSN?_pOf!JimU<$nydm?3@{Dg|DH&{;e8$r01T0H zqQpc+!Sfj2Pa`qYRHrcabXoh0NSOW{A^Pf!YQHIU(T@QuJ=0wIi- z;W1){QjlWOjpt*;>to&{IkS8fgJmnfDCY)Oub{MT+>3t%dO2tSLKPkq#|=Nv4!Y4JkX$d z8@q@xWKHxNme6ezM4Xk!nDb6MVea`W6sQ$_okNKx#0aLjXbvG@N2B@~K3TS)=&nv`@Ac>GMt!MgyH>8k*9{ z22&WuwxNDTLu*FzG{)x|KBUUS zR&3`(qn|bB;^U`SQezlE=vbLut9mCDJyp8D5 zR4{^FGru?luP_7ItnWb}K)Te^g}LSUy}3iSd4$N2KctIcBmYYnxny|#%vPYL{4CZ* zGyu>|F3k|x>hKfZ&6R=k=?w9!-_qdkd|TNiOLP+hZjr}dlpSg_OqB)TI|Di{) zb^0%O;uS+6{{M_z#bP}D3h*1iL4e-@ctw#EX#K7KfqcKUMU8iH!OMqBuP~ZiT=3TB z&FBD(lzaP!`@!UbD*Z3C&+a7n&D%eP*}Qr)z4``R_gPw4i0iYQt-6XM;5r|R{Ar% zVybqK&J^MR&G{Z;^O#qup2qG{^cD6>M25@h6VnpO*%lWGnpBOo=f13UPZQiwXaAG=(+HSH@#43fi3~ujY(i0wsYi=eqyTXTMO=+JkU>+SX%-! zPPXYUy3F&DH4L%e5V0qc0Q5kfNFWhR0y4n;prRkuDZBL(y(4QU*G^UzAxTj}0zX`i z86a|L?pi-UbeV8zN-l!BOG`hF8|eUbkpBLv-^na29o4jZ^FT4%BmKV*6h>zr*+kUs zm2kG)jaLTpi9sSuER-J)5`CJQSGlHtD%`1{7hs;W4Ho7hj#TG?!NL$j8m(QKDz@tx zDCdzpJ$v<>q37*XqvRe3$#Rb#~@kIH>FR@ld|WQX{g3?@Za25TGFJF#iOy6-%QfS* zbm!~i#a1c8$0S_vAF-s1eAqI#~W%Ud(obV6N z5Dz6Rr5ySyk%#mvVC_N$+hz4k(Wbz&(sNlWD;%^-q&{UkODGLC(=Jd!SCpwJYCFSa zty<|zG3l>gvUU-!Z9Jx`E`3K z5hU-wQnYNxqz7dG1n>gjgnai(QLY$1ff-IGXK`xmic2IaFb*{*qHJtEh;QFC0ZaRR4Z4gwMNCg_0 zIajoMl+CloI$?y!4RdJ(&C?EEQ=3shR_jJ$mhN`&R}=`BjSo}sxf9<|IIFSeG@aT^ zckknxXWARh{ah11Oz_NhYMn#I_~}B?)*9c8vWgIWNRh!sVq8;ZIRy;)r)If|daMJ) z$a{;#a5W!SInNY{oanAt{Lz={B~^5wbs6=Xp6xmvvPbxtE=-^U_pY!-i;MV94}F)s zqEckXaxZ*N7_Xecv^1Veg znJ$rH_HjS=%0QX^w1ewoGn>WRF!R^Q$0jPfx0Y0zt*{37nve&H7Z^Ma5n(A zvzDHyoj|FAqX%xAR85Et49!MOx)zDFdv=Rv;&wT-O5D_yb)Y+SNnc0U)9QjnoRBZ@zK(chA{Ef$Vu_aPPa^7mshWr3fI)D9{F(%kjiRiim?!CH~fH^?BTAfXG>gVM7Wun6vo}fJrk$wy{ zEF*M^y_@@wI0?2K6+jzw+?(wRHx&R^PC$0_YvtVKV)V>gkQwV4Z?}BFnW4}4A+;Xn z+>3@dO2tv9FdR9wOzyKKH>`+a9I-C(Y zw>eIpUm*sBJV_brKNYQ$W;$sR2%ly@%kCm0+Nx6Qt=r97pK zS-4IVh$o%TtP`^ZImW5$#elpBs3TKlQ3jO>nuGp&)z0@5Z|)F}3TqhcTC*=&t4zUH z@}c!2TV%^O){C8!L1yCAo{hof`J&)vRrrfqWv<#m$~3+sW!9M=GjTAd5dCCB#gc(ZpS-_! zka`q=XL(kjh8k~?U3QAzT1~jTbF|h?uH7lpo4Ag^+lBV1FczZCsx%I-eEy{Au+pDI zj}EY0#?+BfSmvy#6W0sTQGUCNcEy&X3X2TiE&4{>NybMHCMx-x3jSPsq^#R5V!N=B z#{p%E<#3}c1Dx9Eu(FU5yG3W?-Zvt|I+?mhbezYwq0th~+p7+j>{SA~8*qhc0jU71 zDW4zmAn5fQPaaR-N`=wYZP9H3EOWZ8bvE8;;EivWVU zyU+RbehQHBXLxjv8XF6`rL3wzMH~vqBQN(k_RpfBEDiO<6@h?2L8+Y<#JaM(h>X%) z#}dQSC#ymLi2-7Dc3x454Jsg?I!Ix&o$}*@Vl6L~8^>n7EbjRCEam`hKt4yI>i`?% zdxwPi>2FksXQ}MGv0l6=BG?6jVbn*+>5quZYBtj|9aZm#wwaVdJb8?={ta-)BW)Le zhetZwV%Db1fWm$>*xbMvGnZJo(5A03CQMgMNqHih3A$fTzowwbp~q1N9;T6Wd?q)~ zr7g8?kBT=)WQ0>JvLrC=ya5TK%|o^8g-o_-PC4v|NEyP*g1bP@wFF2HczuUw9Sc7F z9s+J};TC#s;4N&F_Z|@)#0B}>5wRoz`oMniG+h#Ab*i#x@{P+yD`|g9^r6XP(^I67 z9&eClxcys+<{zIDsWr?PkNc;0Mr};Gms!gF10SNyvplB2dG@AVR-_b>D{am@e3n+f z5|y!!SBs~I(K8;pN9f5FHLs-H7E$0{Y0zS7)6*g)(d#zCPjp!q^U+IEmJ?5ltdT7L zUN4bHjJx2Kb)FkMwjX1shR(f`xgfuPjgD|Fmy@3niJ`|Zh+8$Bj&9{#`HZ+z^SF7l zkBT_)f?RY|4AH`cJTQb#4$%FQC+Q24HB+0*k7KnEx#j_p8KQToYG#a|ksKUyU5Ii2 zZCR}>*IBL;Hf<2~`Z|rCg7Kso87GtF_=iP!jV+`k=sK}o+$E-x80M-^+>e1r+@YoP zL>_S=61c;)cwz_3%Tn*eXWl7z6i8g2h1tUaHT%)F8~a-b{wX{Cl{|TjCg@DM)Woq$ zMV*^HFETz2`L`n?gEaz0wFzDcD0?X37u9JBT?003$7x#vYz zuNX_u^FjX%sGY+0A?yDViO!z?5wBWfy}C97;`M@zJ}$b_@zKG@#b!IZE|84uOeJ_; z4`L6n)4{Sr0G1(M07c{#Eyo>xy!>IsV0B<6cn3~zE$~mEI9rx3a_DQKZH=GNnFpjI z0G8(?cw%*Fg@U{S+KVSoSW~aWYhS{1Un`@gNu*|jW84=%dFL*7qFh%@ByOzK>043y zI<-`PnPoh6IaTLsZg$A$ctq=`eedTE}d_~ zTja2JL_))kz*j3N<(39fOI5P!9kGh692wsvXZ$JAI#|sf$^y#)E>R@v1m+jm{{18c*lEl0FiZQ*ma1?p=?-naF|ydl_|yW+T>UKJLIu&r{nuV47QAeD}*K zv_?Wf%4{y3P=Z$fH+)DY{oiLqlz32z(_(4~CWgj09ZsWER}9YN4L85*m{_r(X&*n} z6h4Z$t^?c$+mUA+Je43%o)&|Zvp-56NY!$s{bSM1v%`lYC4&PWDG8ZqFS7Z|UVv@( zTh53yYdsq5FN=C;3G(QfrVpi~mwGP9{HLpz2|xzeD+hfd=wfAO?I$8n>$ntLH1FnN zPoEiR!6!ZrAF74?`7@Cf7jP}!<8xYz9|q+I%(eLSpNq9k*wR3hH@(8h1JwYJ$vIz$ zNksMTFGTm?Rzsjn699$+KoiIfkr&R2QR=u_yt<7!49sUs=XInM1t{iKQ$#?0f{%V? z5#E$CqiiRTG_>M7B63Nat8D?~VfB*V&S9oTI7vW#^aY#02*lDCfj)Xn$=Y zIzp2oD+zDJa0Tcn9X&468-8TwLu;UIBKhIBBE|X{hGYco5T(kL??iSf6h`et2ENPM zD^Hjx^aAic(DJG2ZK8Q70`QSM_?<8>6`AMtePzGz#Q};)oc&((>H2rOLRU~d-j%(a zbY3LVIq3Q4>FA8QfYPkw{Slaueraso(FQO7%}jPJk_!(6expQx4E!$|F~p#taSoj-_o+%#W*QT!>= zxi)SWRMEtN!B&oRb!*Z+*`vQ`RgD~wGGk4eO4I{?tXvh^x=iY6&l%lyD_CJxD$dhh_a$EU}JiU^d7m;%D|HO}QF7c_g zbLG!8Tx!)9@i&zE3j%Zzn$=(`0x5bqHRLlDf$0(E=MnfcP}eCxo;Da9MU+(=^tnv_ z6^nSjL*BXiSCNYF>E7SP2t zfIb!tR(GO-JyG?ERU~tdzKNvMgjM=d%1o0He~KU6^LgT5;;xWZ9xu;aOkIQCu9t^{ zwL7dYfr>hr8=~3D+1G39!%x;(&rrJ}rxq`?+ZLC4KhN~}Xb~j3LTRV3sH#f$etO`F zbeM(s^Gs}_o0d_gTeP^=?82~mco~K0rvA9hwP-y$vpeDS{aA|3dqez`rnTH<(OM_5 z07bbQrPVzt$||C*i}OQ^7KLCSdpaRu+9&SsQsp-O*Z`HarmA z_X3c^`dy1BCN^1~jnbXsi~% z>ksg3%$R0)ClZ*fSEmTmt@ox^7%p9{wD#hDDH1dXeFwYm@g#Xyf>xK42F>){^7l-{ z>UvA&1BY)?3Dd7u4jQGSo2}%UL|PTs$&HEHc>Y43LwvKcxL1hoH4z1)oa!uQ6koo0 zNN!8gI;yYc0-k?$MNFn&E7GfQm-}+%&ha`e#wVFQ81GcfqZkhEa6g)k`QdYN9l$Cv zT=&r7*mPOZT3fC>*>&(_lW^OYvw7oa-s{O)r+H6OIeinVf%nkVMP8eMz@8{iw_EV) zC70=g6sqMd)L-8U6o5zNRVkYJb0u3t)CuRWQ?x5aIDl3Kuo!^l#M{nAq&R% zR1ENRB;U*=?@86-NpE+jYFit)>w{i}Q2Gjrw+XLf$ScJF-ujR>T9)=or2Mld?P}df zFPHpQE)d;^K|HU9{Ca@z*>!;DF=oSLVG0Rje7a_SE4L#A6D+>T?UJF5@73hw>3e!{ zJJsgnO6|(fQp5@QLWVYnIK$uQ3~8&~5c(q)Cj@R(czQJ<gGHV?Mh20Q;X>!VIGf7*|%Wauj7n4`KX%aOkR!#X@=H5v6{Of-ii2!Lpevy&ofo_^XQ3~&uA5G{z_tGoMP3e7~9;ElZ zqmxf$WuH9r)+9SBLQ$Nbiq>V1TYfzGE0wD_2~mwUkjkwXU@A9n@3% zml(nuYQ9E`r!(Hr@(cTnrE&Kga*O<g_5LDcGR1ILdIX<&nX3ORw? z1=+8^mQ`~lO25mcsS}NFXZ3cn>;GdX-$&&D6VcRr?xr}YShicFWvMScnh($>d8B>W z0Ig^c=qK;55Dl|^hM2foU6u-9*GM9WD6rw&{r9S#$+p zu^c{9GtZ5kRdd4)}fU%l*WsLTMT21(FRk4+2E6BV0UxU4WV-MdRtEF2Xge0=j zO_cP@w0+cypwW!$WmZeDEs#C*n{U}XvWwlcjl2M+0vMn|Qq4ch7wM`)lHbDd+Fio4 z`+xsLElutIKTMeV|4`1?(;;4tNYQ^maua;qI+4ujlPLTv7X~Yx-%Zr$3u=$~QMW2E z|9tkD{sAW^=aM~o3VpZ+8+wUyZLT)+Z#miG|05^=K&JrqcsaRnGC28Yp7y&ZT%lc| z%`U1(yM+MUOP>%5M35K#Tkz!F!1wIk^BxVkam+GCf{OC;+&!nmUwrxst&RAPJbi`s zp(pV6&QvYh{TZ`7H$%H##X*^lA*iHDI(i_tJHRjimUJ&gytOnO86yCAJBdR-8ifjc zh@$?wn!`l9&k{rwRMH^~-9l(@IWNrAW(s!r=p%Rhs;+b1mD=`ZGdVzlOK#LLUXB{5 zQ@aq0U0~vMc)A{7H(vJu@O8p9NP`be2iYUlH7V-r5FDQ@*7DMB0s<_fzKWhqT5HWf zf-dtGXze<8iKgt^fyfT#&3Nig^w8YNhZ)#@uR-cs+1jR^?7^v=z*&5(ApxAh*#><* zfd-Q)omQW+Kx@sX)rZO)yS5~q8$uCvvO({R(mdE~sFLM-b}c=26RJxGNJRd6*=)Yn zU%ZFqN0OX9U)vbA9%O3zZu!@IEwk%6^s@&ziNGCAla+YB7b`W4Xv4iV)p=1V7cbCC zl^?!Kez|}G7Ciba!4IRtM*toLs0Hxcvc!$3ZOuN&;7#8=w1_Pg&*dnP2YnwpaR6Wt z5DwyL0G`-$cnrm-0h}dJqi@F}&!5YI!|bj{k&lpZ2v2%B8w|P zzcawNwg7!8Ejvl66?+cHD8bdt6dLy-a+1Sx^Gxv*sF-!{FrK_3c?7Rd0Xz$^8@-KW zv3H-t;7P)BdR%`FXcs^ev(|fhJc-iO>G9Pinl%B_tSf?RQm0Y$Skjyj=bjR6f`ukF z_wS*~<`vp?Q&~}dpstae_Cw|A02~y6f$=P1!9sMSftTcp9>EhiuHfSB<`&e_b@Jm1 za!I@=GCRvTm0C`Nuk&|TYRTDtQ#$Jxi!^$m$5B-bZj4rO7|SBfydpbJp1GN1mkxV& zmbOJ&zp)M!r~>eWdR)ys=d}HO2fv0A(GbAxsv%=oZHWAHk=C3hw^&`(HAEW{NAT292^Dd-55Z|7%WQ8^| z?H9D@S7oN?Fxqr}*@5)P|cGP(+btoI$t?n&*tkg2)nwv;DTgh!VX?a~? zFmm+)AkD8|W03|B4{`_MZJA8JSz8g1>AA=UNRz{F*W#KDsGWrWQIQXB)^1Ajt2+sgHRRt^lJ1AVczj4KM->Ng?5xd%Jd< zf1hRp3t%+roPswt;j>kra_-Rb{EN&55b=%c~aB(YN%~T3QWIl>XbPMmoaI2B8r3K}6Me zXxr_yGg>1P_>zk5?XEej#64D_6?iy>?GC6;pmP2F<+T zqeRKa)(zS$fB9Gfe1NqL{}YE@)Hc$R=8n^^qTL(h_V~qR?r_ z{q&FiCO{!TI>2KDT=;?d0y>I`jX#f3TKVu`{Z=ilgg-UD5q10vATTcy&@OnPuLM#< zCg?XI?e95|dcW4QotFcNSJ;c~B}*DJ;T7q)UwhV6+FMb#-?VTC(g0pWk9(8NymOm2 zfjaiyHf>Tc9lGtXLwl@48blr?DZYobl}lWsFQR`NxYl$Hg7qP-y+$V@yFR4R72{a1 z?WYf3DNZ;u8>Q)dq-B0-1$`~;uEypP^BY#OQQp0i3R~o{om!V{SY}%1k#A@&PPP)M zeg!lVfwnRNYs39JwPqqj4zAM{x_>S*TkfsX(rW?@O`N}&wn8&3reP3MzTT3@heHCj z$b}EU)`or)tYiTlbXPX1hVsnclcQf2xx?;GD8@F61>5(Ruzds@ z4MfN#yR?a|y<;1lS3c24tj{_>*rh$HOi`{LXh_#$NCCc3Lj2|)w-B%O3UQ51mz1H);cjLO(PI@;op?1`} ztvj9wNl^b+^EH=)V0N78{B@7^q$VDgkM7r=6aD4#1KPKuw_I>gI~}zZ;%cF<@++6? z+vLe5mfag!KfsC=EM{vq&qErn%K4X<-}-NF|{@+FQs?iAE<#T{Qo$Je*Y!?lhq6AdlguVI7e94Q?S8={{hAtTlYIj(em_NX@A+Tz`yfhQXN-`Vwu zc5_shI6>bpGzKS5|iYN&95F5pcYXN;KVgnx*MCEz1E#zu$Gzm{=Z=e|AUzPMx&{dBv#Lu<4U`-u7Lk%NEsM>mU*kZts*{>|9H z`5Qg&g!`E1d3#@fToIy$j1IB&TM=UGZx@?GsUG@M|7L8m4OkH}<8j+Sf=@8sAi^7L zuel}waWiKQq0FK7z`Q3pZy4nbw~wRTFlvJS+)ZrZ+!2&JvR=tr&KpH}qp9T8X2}8+ zp0Sm)$58fI%ARg!bM7|cLApJ|mcM-*Q5Qn5?tffrJe8V2Ww^h_)3ch_%-GHu1(Y$7 zs=F$nx*eQbNV${zY2n76;@m4JcXE)jJM9x}SFQ-zOsLyDRD{gf#bu^YnW`)D{P_;b)!UXQ2yiPIJJQeWnpvnr|Tg;aGQrw?$p zPPq>7uI3=WSJC?-!VVOKL!7&qa+d_D>lNEl>hHg8%LpE}RTF&Gb{)YZMA-H92z!m| zx`FDt(QGNz%fi=fHB|HsMp{ltHyImfsNdxGo9X>uAa~YVRP~B_RUc)nTL|k`vubb6 z$2j*k%Dp{ECysOO9h7?~w|Iiz@1pmW%%HbzcN1Oj*zO_t?kZs$YrA)anDHJzt)i#* z`RP7-`hZK`PbG~YRGj482PpSJ8WexA{LuCg)$X!Mf*!-V$;)pDKjMO5RFA9LDj zN?Q}8=1(|xE#r(pQ|=o^LZfCiMBSV9sQbLudr`#~xCyW(NUHde!Ym{%H^i!U6BR@7KC4y2;dr~|$ zhA<Nh@kI-5Y(89{XoUe8O!4m`!^xH^Fi>MQu>cU(wlMl|5Eu2 z#__nMm_&a6iQa!E#cWnXy=u-$zfjVzL54nwb1zcvZ$UVc%(<5+_xB(iN#Wc-DEH4G zHK$T;PKfO?W&bZob{YzkNe_Wo*o3hwKCvd?DbqfIo+E?suob080jFk0Yj@?*TzO0ova{S6jTj>~2u2&KE{>bbrl)vPKAz3! zIl(iZ(Q{+Zj7HB*FsIoThN96-^HDmST=3Jj2Sa1wJW7|b*DC`61kMtjncZg(~`(f^IB8h5KvEb!P(CFBQ(O-RHhr97|7>`Dc@p`wfN9+hU zVn;@#p=887V_%b$n$Da?Lu&6(kC0LBa$OmR2GriM9?obtPB+G(k+qMezxu?EapU!1 zJQ``n3qtHzH)1bF?CnO(Gj42}Qj^DN5Q8rD2pQ)t*Ozhn5l-iNIOE+o{TXKf;f$|` zGr^5BkZ}eP4(YY(P|Y^)3XtTkz>PSV5r?=D>x;@nH{MXj!%(8ayn3Tl=*An)cq0f0 z9qmiYJ=&s}7lYu8s(>Wy`CT0bGglDbB14u-eeKq)y9uCPT8yRL7d7yWSn zte*5I0iFQZV*H$QrKmCTN!|_PqYmvRZa^}k2CjrktHZIRLbnx_RFuyt)fbr6xWX&v zRg~L(YTJThPobEw>pStX3*c#EQpb!Gra9JTx0c!UB1h@m@y-Ui-R&LU4;4=t zMO}Nw7{EUOaL`!aHKhd#>F*GzZak)9fqiPJeMuKvsiV?L9lvP2+qFO}k*Bw4&Fb=U zr-UY)1~!)W`ey(i8f$w@?6H_0a}xBo>3^<-x%Mh_q{_aus>o)ovg*Y^Ohn#~*jBuCGKSa{!0AB+92jB|=u5d?{waTHNMglke6`tNF;D{xV>GN;7 z&V4#V$<-<7lVLrVX!#SUx5$d=qIF$bueo9d#=JH{*Xe({1E7k4E4IqMpt8(bWiKkX zF0eCWbkyXEEh;K0qme4Hmz5P2)e6|nOk>!P&08g_cJ1BKd(hmbkP-REi22h1SLO& z+EU_RK_mF*C2;VNR${ba9dgxR&{t~-kT)d^5HS5GfI!kOBN1SP@!OD55!}biA#!7q zNUpnP=z5XJN*4*Gn^QriqZs&x(Rg^u9E^#}GN;sDW^=eA7cR2v%N+Kq+HmfID;nrZ zqFrHJlt+RUDnPWNsC(7TNo|Mgc2W$s5S|978LNiR(UyeB&&FxVM#6|sTeGIG1sOE} zV+fG4VAOd?GWDfK!pI(CmN8=FaFWz+Yqe(b_dD9DKm92rbSAx+`~+3NmXe@xxN)tZ6lBqt>1`e z=5iZhoW8bIdT*phC|2+|8~_F^te$0jke_8?TT^rYxMWdgq>OuzCb6C4R)l77OO28srH)=1_fQ-TG5uS0qi-G`G%Pri0b4urgv(j$8Ja;b_hk&0Rrxhmk)e zI)=HPO*z%6#`2lXBA9EA9malprm=d;G^o$Q{TC^XzsJ?@@Wj zO~P0{C85`7ZVg=o^jmGxoQ_!fJIA2@A!qAAgI&$Hn(#i#P5|RMc7N8DO zAbk02HLka(C^~YCHTEp=8%gmJuLKv)`ARgo8O7PNu+dYkrq40P%p0QJ?$7JC%XddRX3ST#=2zQaI#RI$voTmWI+ZEqcL%Na$RD1+fdQf z7_e}t=x*G&Fq0N8k1iaOcnEd&0Wi(^K;w^vDYMssP?q0lAKrOsa7C9cpw&~+oKjkt ztR`Gnyv<%ht=oz!X3w{mR5@H>cy)ymqj_)~(bP<)_aEup5Y^+-P^}IR|+5;e1{SYqV8XQLD%?Ig>$B$wn**|}u&^3NXOocO>&F(oAfboC+Nik?SnGFns5CZFnpv8Ot> z3+4$$(@&r-&&O4eLov*VhmuZKPCkB!4+45+=x--`$iYwO=Vr^ug zpmL8=P|;QZ=0X}UeLY9c3ew{=qwt0dajj8t!&vv?N}dZ9;qv9tT9)zpu$cRAOzyD; z)v_WSK(&GgnvCCA^oUzeq;!uDjKt=~xEr%XrBQKX2hS+Bd~enG+VBD$Rp{u5q839( zO9yl40<@5;e;(EQd%S0idu!TQU{Eg%$4F%vAJ?>DI~v^Gbw!aG9bQpZp*u+3sC9OE zW4(z1jxYG99N&f)F#CW5Fo&pM$JeM?zDy0>KKIZi-Be|P;Oo2U?z^eECbk({{*_rH zka7axZGd+G-UZ+_B1?0m4@*o*V-4ie-+;|$3FN3%j~WM-Yi^H+I$*Vfu2iQFw;H2Y zq*`tO(MJ{Q?p(2x%|;3N=(9w#y2-bk7frVlHryiEQ+CVsXN{@1*^9aop*e2ySh@q0 z4a-@#UkUQmy3(aBbm*v2e;@s1C1w%>mzBGX)Z1H#JL>w}o+xIq;x+mk#be|60&3k0 zz~jYq1y#6XzyVllY`tTlGM2~cTHU!YJmDnB^RbP_WA}ES#9nU{oOk7xehwra5Pq8I zc_n3IJ39jPb5;?a0CGZgE1t_Z%gA2!cnsUe)9U@*Ra-{}EBYCVYV5f33{KA#l;nz5 zD-#5u0{n?X_w^AU8-Lta-V2OVRGvaD!mk3=n;_*My}z^gzRHI+p zr%**xwf+teMF^lfIAZKJvgR@OHWR*Dknr@v9tk_*EE)Zgn@8oyp=ZhADQPECnQdR; z2~8^dFbYplSXUT3)vuw&VaCu05;NhLyPB1jFD5^)LSI(IVYH&f6y?*ur2-GuEq-8c z=vWxO0+QE&Db?%qtq7zni8z%MK zqv1yGx)>ph0qfd%%=-=NruJlN!9S|bH0Ycf%z~ry+1?s6*EbSjM(6c?!XbPG_rK8G zSib&?PEbl$Q>)EZ3J=&?MxItV;wO&UXw?RXD2fS-VneGQZPCSvN0!S*;883<9DzXI zbLdC${@kNcmMG$wW2SM=nPH@FP!74?f{Ib_H<;vb?2jdf=MnhmqZDBQ6A6!fz-+=K z{{%V%-GOtUmVg#=!8ovcjX+2nKEz`rPs5^j1b^DDcEvFZk(s-)L%spE~cnY%Y!$P>? z9QHEur^&G{r8u@DSWq%DM2`ZEnFjSX)?Gz=3~Z4+o}{H4Gd7R*m9Ep7Iw;mJ0R)v1 zlSS-WD2ZtN4Wo@f9tgKp*y8nj;@IoS zodEqZp{Jrdn~lA1XByvZxl;+qWfl;l_M5H{4H`>CCUp`bx7QX_ms^m?8jUxlih;(f zTidl}rOSy8+BFV_XBY|FlDqr&NT(wbZZ|2wY$hNBAkUbwZHgi@L2gK*p#RZrHKLhO zu>Iei*qnhgtjR75MV0JT_MnzB$r!vNMT|18+EHK!sr46|!3_FX2u_TL>x=XpVhAPq%jiK+P$ghWsCPwAZmJg+C;l`e)p6bTz4pV+Gvzu*Q z!}c@VIQCSc(ei@?QE2Sj*})ym({|;Hngd`1yT!@$L_Tb=DaCa1i!s7H6MT#(ZyZ@o z5o~r476%uG@6ld{apNLFNX7nl(BZLX#JPamE|Z%u^n6s>bnPJ7)HhU4JWc-~=;@XSDKjFSgjH-+(W#Zm$O zB=#VL>e$RuN2YE^EY5E0qW3f&dTsoyW>j}hvp_{?u&4h0)BA!(Xtf@!TQ3-cUr!m{ zV2^lNonZ1>ui$Mz%!LjTBT@qOj{<{hUe64tqe3Cu>Rx{RdezAjs()*YW^ZLDvC{c2 zKDYzzjKa4P2M4qdRL?x1Y^n>}o*v0B)a_U|A!Mr4A)}C2jmO`zl73^CzOLobi6Y}= zjK)ELLq1ix!)9s5%42OB{SF;`1t{*oUCa0G%X$s(uLC?^zZ?f7vW@$WB^v9FC&Yw= z5!xGE0iVlIk*J=xXibdkw#OJh9Dg`}4RYDE9l#UTE)+d7$A`PkE(PZP27*&mh?X*F zwbQzI+8)XMAlZn0JC~!-{?Q|2;@gQ=n8qS*_##JD#R6iSEx^rZ3&EiWo(hAS2|95_ zo5lowF?PRwi_+FHbwl5Ah^)WnuA+C>J1Ll<8^wc50c_6rYc?B4-|HIF?60{y=>11J z1mUhuN3?>?$Kr!7CtqX-M+3oCw8n>bp zwiqcE@eH2*oi5tWa}?=ztWfMWC1kaXMJ>3k7oM&`T5r@6MiYBWWpZ`eI#zb<5z6sV zJ!6BbdHB`TdWNyr^(2;0yg_>XM}0z*A=s`MPm9=#<$h%uZ+JxelPJJl+dtv>fL zoYvXDo@$i{%gi10F09F}7@bciha()?sV@KY{V-XyjU)Gkd*;BM8CtZF{&`>VVcpcv zTZk#w5-LqR6;-sbFR55mUPXZ#f5%Bbi*~w$^ouQ!U301LoU#)PN2!-dO#`Af>kR*gLHI^@|jdTY-FL z6|9lo1h4h{SIVi*9Kpxec+pjCT>Vu$UQ-q{u(M#22RGIgtqKR|4jVZ-v#qut8eWc- z0|nqJG6IgPsX`plFgAY?XT+b$SA8m1%d=~SHZkrzGh6Jc`~J+MqG=sbex)n2gbklv zC$2{rkDk?MvY|D-f?}{Rns8mQSoeF-)vBI%>Pb0xyzT@hR`hxm(c_~SNCN*UAlCJ} zM5F8Nkz%QF*EcVaitsj2(YLn`2Q@z1Ko}{Cf3qve#y5bfU{j9K;k<c4N|a;~Us5 zXaPc4E?6D*ph*^vy?A0-c@a-6E8J>OYY&;!0V=`rN~-jtIu-+XvQf(Nkw*IWR>gV; zFE8V6raj4{-**#B?*HMvPD`k$D~c=^Z7^0*c!c{J;p1V0+wQI#;#^X1LGSKpyPEfy z$&6)gcLj#q&lm;g+FJ~eI1>kln#-L-g~fRI+z8eka_M!j!vRnQU~-2!!Hj8`3G{_2 zZCnz#$LMf=lImK!u?{9>Iu~`N?(CCZY6Lju|!|c z6;c__U4isjKd?%jRbl-)izv_>X@Jll3NzN}B z;rA2nbH?~zUZVpO&3~P!iM6yCY=#pcLyf(^rM5sL6dbAm3&c|9jJfPG{`*^=IAV0T zG=Plu+)Eu}wh*>D;k&_DcPX>Y5xj3e6~dM1;ZKp;i@0`)RiEpCFMp{i7619tv}s^8 z#ZGw;xp&1V&lVzH4VB5{mypGCU%XGC7pJEJ0~>veO}}SN!kD^Zy)@WLORAJb*$8fN zkOa*;Ane8LP4n)qtI2S;6*Eu!={u;%;ku+hW(x0AeD|MkYaa1*GjLdo2T`>Ic$k36 zH;}&i!IPq6pKnP_^fkc1tfQ~R(>j3l0FMIr@DwO4mQTq3LbR!QlJaS1mDk@}fXfVY z&*!E-__I>K9+*6-bJrikt9PJuFJE=~#@Q`ermJjD_M~K1@`HfGS`!(lHQSNJ<|Kf_ zkzNjCRYor+kEc}94ig{3(4VH_XPkpIvBt|}IXG3kF4oHZVWLd|`c4zS*ZHDDYVLtj z@wy;1Q@p}ov)v;?RLE}OA~F0~sxwB83l~?JPDsAkC8I2&rM5`p@V6Xh5qI~sKvKg4 z4QmXga!8sSMxM9OeSbegMn;HCODb)$I(o}VJw!7(EJC!MjL|QkgLeUjvlS()X{Eu* zB*5{YPpWB_A<$IrjSyp$*SlMJy>j?Q(L`4MF8au_NRdIDyo>%98;QPXYLYrHcSnkr zJxn$s(_|9{D}lDoY!&(ldzH1cj2C||QFCo%WR&O+b)d7jcQ}tmi5xMe1#0%4ept;| zCIZ4a>1c*@A%rx~vp%Gx>a?k7%!nV|T1LbphmHz!p$d7kNIGds0MU`&ppMSu^atBG*$`yPc<-0NK3RO}Qr z8>nb?^p*DVdDgNa-MaT6i?jo^A)UW|QQiQpEQ^uCYUtG&SEG_LyS1D)v-mp_J20FC zTruvsk-xcN#bP($Z6H9lY53V1QQ(hKSp7C2ZzBMs&Ijf1)2nYZ$)ktz&qNxYuVs33 zasOW_p2;D0z@m8c|H0a$Vf8x!vH(885S9^rvMxmomE}pIlhU~p;O=V6+dzCr4oMcf zT4;C<1+WnCpLD}yY>LRL5fPLd0Tf7E1G}~U-O)b)`d{0TFrfSdrv40860<$u!hDDv zfM3uNxidv9R8sh%zs5$ViOkvW5T2jLG9?XZtly-D!8Em(UR-fgC=xM(_sIB=!^c#4 zgj|`%x=g3S<*62;_k^D8Xp$?DM`dX8g5c3QVrhw;Pl@`ft1DIcP(_tE!brX^eQ2?$ z+@_9Dd``8;%bIkO7d~^2+Iz}x(?wLDQz!>iCLqnqq+dgA(3q zdZ+YI-f;bjq`i9M>bNNd2tQK{-y6ZN^)^3rNKsg0Iu$)<)KL){)g zrs&pC)PcRYfPe$9DTA53A3!2NOL-tu3{@ibgWJ%3H%zpW!&-?UBYz}}0y5VDW-eG$ z0T%888UW}LAvX>eO{J@qNK~45!TED5(KOUtKm3jRE3eNMT}5BHJzES=M~^mvfdSs` z1~j;d0DW6fF}I>Riciiux?XpKzD~AiE0QeejJ{d+Yb&fZ?EW@a>j$<$32vVAmZf(w zsD_V6t`?=&)9@&Vcs@vg1*H##=%W^El{y;TA6Nm7agfO~*Uu9MF|NiHYS7g;3g)7N zjrwYt-%hj@OXb3LB0XGCB)q5d{&wO4ufyvck|URqI^B!WX>QEFqv@WOz6|C|AM#Z5@fIDS; zFV7qw=N#Hgd@J&KH4&wA#DfKaT^H}jt7X5}>2X_ z3#R$+T%rb(XRYztpt!NvH|+7Y1}^~02q6d~JTyvNp?tI+p}e6d7mgC2yQ7Hms?lVl+Q^$n ziymXUQ4O9Y0TcBM=m}U7^hH`80ly^yikeFTd3m%*3GYp5Ql^g)%iRllc6&b?BZheu zbK*d)pS)qC=s21MJ}kiHRreauC*TyS<~=w^t@|*LS0K$sLDz11cC2V+c?xXkpxoZ4 zhKdN;F<&%o$oEY_!GEg0eW*`5z!teOU$~Fp^--Ej2eM9y1XHDyw#tvji*^}*qpz70 zi0Zwddb(F%M|oBCr3qqJ{%~s4Z%yFUSPot5!zkZ#D2uscYN~(4D@-~I$R9i?KP?aw zXt$u#MDfmyQK;ShF+QIWD+X80zMyuF08=>fJ!G-QvS-9*A(%x#J=Ll5#R8FPIfA~8 zb)R8wBsUe(`WV{Kz;P&ZOme)9vBm~?K&E+MqJyrA2Z3~eXFZp*F+~g_ zZYE3>v(r&bzY^_ECE!IxSEk8(riy;zbNSj-F_iFQrimw$V1nq_D39nFVAZ06P4cyA zqGgVE#pkkARygRSkY0e?uL=0=shyXNr;D^S9tmtOuy5)%&ZxAywOlhrv=%Ps{OMw% zP%)NzU$B^*_gY9-G-d=k-A;EJ=mpdvS1esKqFX%|j{LxI4a<0>RfSdlSpS6`DpS&!U&aTuA!k- zM;pl6S|e^EzUUs8|9Fvb+4#5wA1v_=nX?jm_srE!xw*j$5%ehjhoG6!xh8zX;GOr> zQi!Z@oRtKvne1j2^BXd|>8R(Qnq72V2Z)nrtsb-MaOTby!{fTFrJ7vfRi#z*o$C_n zFFo6JI);zUPrB)Vj^yJa4r@7KEYoY{#!8Wsz_j}uw2`h#ksF8a-f}co*gUIap1xfs zFBI>@R-hrZd2u0p9FV?Hc3VPI=OQ^t7sJ&U-y&D*qHpG>pob3O;^fF;YgJA- z9o8WtiqtI+dbRU{F0w@7J*fCzfK>q8&VBSm?F35|96Ruspk;*UXIEBhGDjB~(OCSK zR4k|*bf>(hO5D2LKya`bn_qZTaCM+NoHN)EarkVzDJ} z6f!aLbiEMYjPMN-6b8`1?D~e&&F_E98B6HuJamg%Opu3{h~739$7fKi4&YgU=Kwf1 z;EkKP!s((XI_f3RUT?~$Poy2*TTdn;bvnojtuC$f`P$lvn!b_6OGVn`{>Trf)2Q@` zL|+tWiOi*V;_*ZrLTL|w3Q|PA3kP>xk)Dr(d~O74gtB+bqe}%XW@YFy(K@vw7|;p8 zJb2xn>eSE5!OKLu(L5uYDtHJrEFpA?&M(6GKe{G^4tFg@1yBWjEApb<(vM3dAUJxp z+_6lInsys96TIW>kqh`O^Z`Fa*2|nn&=3cxIN%gnLf_`&8V+@x(Cw)74gwBnwVYH< z3#a005!Qm{pdmxl{>xLq0T>uXc#9}t5((*`or@Z|aD~V#;<4fJ@Sx7fArJ`gp3J{h zxR0G2a&Ej;IKtY%V5ut{VAA;8TRPrEoaXZetZrRppSwhM%xYAF9#yxIPu(lhW+0Bp zfonR;#9kRPdGz%|U|35v*D$fKB8z#(D#Ibn*vWK#*+g8kV#Y5y1oDFXp2waZKxLG{e%! z%s4^CS@Cn+KI2xx^)uKDDWSTD+-QiF@}(&vCK~F*mOEX>8e;tLB}_Q#Ar)}z01JPZ zDdD;~md~RBe-G%4Tx*CnB2^wRgd>~ldjs|Tj1CjJXWz($M1aI-qvQD$sXrj{)QZs+ ziqHJV%HJNKUDy|#@ehibBsj9{AGb0c6SM50jB$27Id4z|LDA7Ole|BWp!ZrB1!6 zKjb67xRw~EtrH!@AlZ4HSlf{&7t=K&6H-nmZ+V-Gqsg`CF$?@U`O`XD#~nwzsWNT7 z$eqAZ{_sU~;fziWRDj@d&0i6AfCJ@YlNVU^Ym2N7{XAjyc0Rmb#N(bN?;g^38^nuw z!I#c_cLjZcT)|&34nQmP7eeOEvmbtHqi7|HqAWtzm%EH1T0)K$KLSA<02Ul&kf?vI7(@+<%IvgG)|HGQYC_W>%M;JFtS&+1 z35eA>h1OCV)I`QULk8nX+4UK5f7udZZ2hpV$@unv&v*{r1m%7#`VSz%{hJi`ht_$H zGsK3;9kWET^F*CEB4XHUf)&+=%EzA*oye%4cupkNcultcEi&^#kdLj#(6gmx73&BT z_PfDdKU2-jVU0s0fu=g%ZDQ#XJ!Pr!ElVAdE$zF-HzX~EPO&h&ITOiV-CC-|eH!;c z`N50g-9fx?xElmi6Cgd{@8oZ zKSY?-EtGkanZ4=w^t1a!Z*pe7-ABsk^$}^tyS#xm3rFl1Eozt*UZ+s+h}xKFlRe5Q zqzpRcs{AjvWO+BPT^6KR$-#EBh7aQErY&a&sSZ73ae0=WT(PrD%WW}5p0x-qx4zvk z(vwYR65gZBvWQP^k^yP?vdEqhFrD%kaTiRX=83{P5xBgg@d`Jw^PSRTEK`||~eO0(|Q;Q7w=_ZjY zG`Xu6eTBL;H+qUKv^3;;@wm80OeTdZP~W{D0#|vevjm;$yfd2q2XQ9In&g&$i}sCL z$5385RdsQBh&=Lda%RG!I(#YDKOx%6jKdF00Xq|~#Q@Rr z*iq5E4GSlWBn#qu@IhIgjsczZxs!}KCR*17sQPSFVg+ECdJ#`7vWY0jYm@DG@`e`m z3cThKp650gHB})s2Yg}L17wc7*nx6ga_cb>m-HGH4<=s6j)^qU%lYjwu{mrIi)?^{ zBVeAmarbh?Y^XO?@0nq-TsiixND-y-?7Ntp`0T&4=sl4sBEfkI>J-V_-WSu=O4;OW z8W_NVoJd^#ED%H0?{b`-p<&&&W9+i7tt(qJc(O)_x>%$MBVMY`A&Qcu38W>x(XcSidD5 zn``DfwHE@NCLXo=m;%T(&LJO*p_=6i)H}U zLq7k+c7~@D@Q>oMJah8(Ej(#bebmr$k6*p<6s=<(lW&|7lbb9-0l&)tWbSE^IEpGPirr}7(sNhFB!p7UJHXjFCK)!-+e5U|a zCUnY$5%EEAM!)w!7oL2v!H9<-@l|a?;e@?mDt0S*Z1O4ryf9f!(MzLhz58L z%pW0_pQE{S*cs7XEo}NoVgf<@t=H>$o0)V-q8DH-GhBk^4BpovG zbxxR=3BWULAEJ;x0l)yG2M3&EAK@DUHLERN-yZ$6+@?e z=^9|3%k^UF=Bv)9zZK)Whn1YozbCS%peGcrVWr@$53UhCr31rOU43jrH(je$nHlwI zXk#XcrL1vZt*PZR@O2n%&a{wU{UCCD_639A4sDLy6mX&l;}dKd)9?<>Y!m_b2u&AJ zEf@K~eF&hu=bV_L#&))HG^KW4>>{_a?!4$d`tNpXuAplDR@$yObX6UWyN-6_+i6rYr|HzIG_=z^tz6aCZl8qCz6nS@3 zEdigNZShP!qkk5c1%EB9bCV#5CLu@*bYRx6)E%A}O3@vP;DZJ<V;9x$PQ z-P2(GV^y&DL|xF1Db(cj-2jzrNc|Rgq z7T9bMAuI(X1p6+F=9V;2^$moeofQ8QuX?8b&;KXx2{V^F?v>7bboN1cYnZmuas=&f zk;&njZ4$eFt$o=Yf1)IRroTPk-)YuV%gejKem97bQcEQ;4!`mDZSk(4U4Z|kqN zuBbVS=tKFu=VA5^m@9OFV{X00DxK-HQ7C{6K6^R(Dk6P4M)D#pSeqtjmpp3R zuCcaONxNtI!U)bockjj1e0uV`3Ce%q^i@FmYh%Q+8N35*6z>%u}`7aXTY-C2AeTBl6=! z4PTnlZAJ3=30gDb_~tf7@%VVT?+lI9Q_Z!9uVGfR6~iW*cUnZBxgj1k(?+v6GNwD| z5(7*gD)t|Vm*}ILjwtzflGawNmv1C#4(caeWOT6pc|h-ku9G$X+w*{fQ?zW$W(@RD zoG)rA??|C0I1aZklY4^@oF0wwtsj^gnyPgWJ7rm_);?zmwHEwZ09VY!%E}783Ky*} z(=+5tsaonVb6#c#D+(RwxKG2Ow+BE3zyqN7LF4!{nX+%1woC<1ACRA&rrSNPs2d<- z)3xh@gwY;J*E*CuPi6JBs0joIxd5C;XB`mOdF2^&JzhKf7U%`7># zh1Qz*Sk^*YGfc-oH~^{u0$R9$G+uNERJjRN0=(GBdufvUYlltfY=JzIp-u2}@&~*@ ze5`kFTj%buu(6F77}EMazKqNy+jB&A$<&7b<#%uvfe{7?{6&#YSg$WC5<5M!ftu|^R*9yw%&<3u1p(Px< zb>@U%`W8O?b2Xw5ro6XYnT(XD+G<(iM;Y2qE2UwlskBNDgVQ zb?qL&CeG)GK^{>=uAAZ;74QZm<;M0}3;M8Oe|v3~`y<_C`AKK(CZ{t;`$5cOp0jZ* z2Iox1!^L19(G^i;U22_OW~U$F(rI7D6-F2H*v+tYt#8=+3k-D-3z{ZlJCTStl|4FX zxADpQ+Ta&s{*J-PkRNr@GDn+wKNiIBMhJ74kKeQ6HXN|t1GWLg$YGte>uE6ech;tB z>ZDMbY>}&F56p@soPPsx2^u(zr=RJ`cPI9BBm$%X`G^A#H(&@J>aJyL-D1^88zboDFBkfXS76vbum*2|a)6HV#qOH>qm8%Z!W|U*S(&HJ za^BQKixh)+!OWc3OM9?y3!;~H){0RrOB+|qb0;^&BbrV~0d=Rz&b?{I9FDqsqwZu`*;{Mfz;;th zRL{!a8Bf6^iTl*B{G0&40D7avN|`W{R5LbDD<(-Q&(jvUci7$qT2NNdv6&7r6REKN z9&mhkkO3a(A0RboN40)hcFk0jJjo@g2lY49%pP|6f9&B$s2pG{n)=Yw6epF)&Hc2S zy@EZgzh)f(s%a@wjOM%}=W4#eYZT-p9XI>HRQ-v zhrlxiXo(yV5Aykj*|&cn*rz}^z)X450L^{=`xN^m^0NWjJ7a^>9R<2)mzI?|Jkdk8 zcrHkuiXM`G%d}HUb;>ZpC)hOo1?UHuEAJTu zH`n>bAnh_42>JRD?e6Y;=;m{xh<2f99(SKlMy&9&;J;Ss-@h|z~Fm1XD`yk@1e+Ih_|AJf`o-JNQLJ0tzU00~B z)V-4lr;?D~1E~iA5Se#{;&h`~6VDJ4l$*)_JnlXvRJR1DRVZ5?8AcJ$CGykZ+NlOM zPcqR$0FxVz8=gg17|58B+9YE2tdZo!W%2hrIp|D-yT>wjG|gWR%c-NaLcfWce)?iu zt94Ll_SavF(3BCt}2-a?%*`-QDKk!7E)c)`WGTyvGn`wOptrr7uht2qk*F9CI zht2(V?^Zi+$B|dZ++)dx3iB%6GbfX2ly^+lT1FfKJ@1Cd1Jkukd2F)g^akfPT&cx* zzF?NmPSb9vF-aPP`Whsu8*+02h5)dCU=qiBQ$vw441o8eI7FmT@W6*Y>bk2j?7Qa} zfZR1*ix$V7d#7vD=&nI$(;3=JQ3E+3g1c_i30;mLr~|o>4vt7&ho|cSwt}DA0Qd&s z8)d9bOVO5wdVf1j4zX!@87qLxi?Lhj$xYL8w~<>YQ|D=II(3L6oI8QYuIDXy>PlqL z1j~mH*udY5)cZo^$rpvw_}@qIa+_U??Z)|>#YlW0Aql*|sRaE&0)BHZ9Yar>r=^<5 z&}o@IM_bHc10Chm!34b{sxS>1cv_vx(_X9IBC$y;eGRH_36Kob2jx3+NXbrO(UKzD z&ehgLK8Oxz`d0bcTrH~$uXuC8T7>v$maV|^BUtHSOx?4rA6vu%Ie4B{rtC(oe0rYN z-X{iE2hKkW@EicoL*AR0R2-3}P4_Rh@z(J~yiOLvi5dY1x++5ZfRd;%(-##0?YCSGxLLfxp(tmGg@HZo%5hEgq2{csk0 z8iy#=6{YS}@}3Z9NyG_peGdRD-d;SJGWjB2Ujld;U@Lmphy~qqf`XlC@5yle0MIzl z7A>OaQ5_AJ1LsqmWT`BkPjjqrE}pN^^;bS&Z23`zc6~qAhYK{^B$s{AjZ6TJ7$8_k zgX(W3OxH=?SE(gOEF&>@bY=UHBwwx6(#)fhJ{Mifb_=!P6LnPW0PqHDTnUpG&32UN zrFCc9gv#RTt_t`^~mjTox~y9#U$dC80jr_OgU zFoJ z_>=F=@|I7)e`@|22<7N5&)%$!?CzryRH-YXsK{1PQdAU3$Y9hC@MoMX{+HHP8STNU zqJ96;M)Ao3RXywG2owMaji-lUcw@yKp^99yLK~75(AiNy0*Eq;I1jAQ(nTRyUmM}W z`eJZ^tq~6byA3!bSL;6T?mrUBouQi55`_Gj&bMlVC_q(qt5(O`yCwET=ZJPUs%?nhaPj1r+0)O(d5cmKs<%rw0b~Mao zw`>0jWa(sJ0kkvu12#-n6_33`8y8q)3W@-9_AfF8Md((j6%QOJGCJL^H6>~@*C#XG-Lzx_UG0#Mc?|nw248vH3Q`U2FsY09&XJ*p&qh$rFKPN zr)B~lU^v>Dgf||QnW~*ecWaXZMe7PLbSow9q$P-nL5XC1%N&R%tuG5b6L8m9>z2se2Pu4hSk^qKeOv?uqVUz* zpn#X=#du;xW$aCOcS?fBfbj<&VoW4IbkDYq`7TkiGJYP;?1eP9ZfHgvS|DYSC}pco(%z)8S` zADS~+8l)OcQ1RVDol7Ov#yO?HR!{R2$%jp#nW7P))}-50v%Q7u_bN;fK1 z{bP;RN?v$WYwp93;*F%0{MGTzDE=>i;A}|put8q|B>(>Fw;=7Gbe=wNRo}N1(QjPd zMx|VF^3RQA<5)#&WXs2BzvhS>_?ULUt)X|I>VUqkL>j=qRbK~f^7M73+1J?U!t(J$ z3&-*iryA#`P1=M|I_CT1X6^ZQh&gek6jsE#%q6bXE9w8H1CQ=blgFRb+G_ucmlvPZ zy3-`YYrPR$w1?>H*pIeo({ex;9n=h;Q&vIWReS2Pxx^g*npVrJYpDiJ-cze}=8n-q zkyaz_FCsTkR{{&1s-<~P$cU}lJkL)|wwFt`YMDXDt68AfHusDdedtSK%Xeh*pm8jL zZ4KN59R`PfO{{b-ope`b3Fk`Pzeq8^*Z9Z-zTR&Vs)_h+*G z1)Yva580-TPgO%pxYcpyh;*R<^jFT!+qB)vE*0p(2Ks&sG{Ao_&^;4)TH{2FVEZeb z+n>_*YNAfgds;h4_xpByM*Cj$kSTTAsn|y`uHp2Jd*w2HqohlY=Ql>wdwj)Qe0Rc1 zwo1g};Dybkatz^?$804@WBQDyua-2CIw{42!#bGH2RsQeR}{KJ>{Jwo-{ zbNqvD{2OWfV_y7|S^Tp{{BuP50J1^)2!K%<4F>WA@q1mGyZ34jj)J_g`*304<1yi#DNpKnp* zn+|o{%ctY6IKIJ+FFfNb%J^n4zF~{6yW*>(_{Jl?qlhp4(R-s0gm}5ZCEbZ|9!p zwS0>+aldwJY-hUA_IyZva6F~smKi@H<0msWR~~s&>yU6hBt}@yr>BU%=R*LT+FM$9 Xm^kl@JfVGPi3{l>lFkFLclCb&B_7O` diff --git a/inventory/forms.py b/inventory/forms.py index 409c5ad5..309006c0 100644 --- a/inventory/forms.py +++ b/inventory/forms.py @@ -1,5 +1,7 @@ +from appointment.models import Appointment, Service, StaffMember from django.urls import reverse from django_countries.widgets import CountrySelectWidget +from django_ledger.models import CustomerModel from phonenumber_field.formfields import PhoneNumberField from django.core.validators import MinLengthValidator from django.core.validators import RegexValidator @@ -64,7 +66,7 @@ class StaffForm(forms.ModelForm): email = forms.EmailField( required=True, label="Email", - widget=forms.EmailInput(attrs={"class": "form-control"}), + widget=forms.EmailInput(attrs={"class": "form-control form-control-sm"}), ) class Meta: @@ -773,3 +775,5 @@ class EstimateModelCreateForm(EstimateModelCreateFormBase): def get_customer_queryset(self): return self.USER_MODEL.dealer.entity.get_customers() + + diff --git a/inventory/migrations/0018_customer_user.py b/inventory/migrations/0018_customer_user.py new file mode 100644 index 00000000..c33f8ff6 --- /dev/null +++ b/inventory/migrations/0018_customer_user.py @@ -0,0 +1,22 @@ +# Generated by Django 5.1.5 on 2025-02-11 00:23 + +import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('inventory', '0017_car_hash'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.AddField( + model_name='customer', + name='user', + field=models.OneToOneField(default=4, on_delete=django.db.models.deletion.CASCADE, related_name='customer_profile', to=settings.AUTH_USER_MODEL), + preserve_default=False, + ), + ] diff --git a/inventory/models.py b/inventory/models.py index a148689c..881c3010 100644 --- a/inventory/models.py +++ b/inventory/models.py @@ -1007,6 +1007,7 @@ class Customer(models.Model): dealer = models.ForeignKey( Dealer, on_delete=models.CASCADE, related_name="customers" ) + user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='customer_profile') title = models.CharField( choices=Title.choices, default=Title.NA, max_length=10, verbose_name=_("Title") ) diff --git a/inventory/signals.py b/inventory/signals.py index 1dcfe2e4..60cda31b 100644 --- a/inventory/signals.py +++ b/inventory/signals.py @@ -664,6 +664,23 @@ def create_customer(sender, instance, created, **kwargs): print(f"Customer created: {name}") +@receiver(post_save, sender=models.Customer) +def create_customer_user(sender, instance, created, **kwargs): + if created: + user = User.objects.create( + username=instance.email, + email=instance.email, + password=None, + first_name=instance.first_name, + last_name=instance.last_name + ) + user.is_active = True + user.is_staff = True + user.save() + instance.user = user + instance.save() + + # Create Item @receiver(post_save, sender=models.Car) def create_item_model(sender, instance, created, **kwargs): diff --git a/inventory/templatetags/num2words_tags.py b/inventory/templatetags/num2words_tags.py index 6cf589fa..788d3080 100644 --- a/inventory/templatetags/num2words_tags.py +++ b/inventory/templatetags/num2words_tags.py @@ -4,7 +4,7 @@ from num2words import num2words register = template.Library() @register.filter -def num_to_words(value, lang='en'): +def num_to_words(value, lang='ar'): try: return num2words(value, lang=lang) except: diff --git a/inventory/urls.py b/inventory/urls.py index 33b34d14..01cdcbb5 100644 --- a/inventory/urls.py +++ b/inventory/urls.py @@ -159,6 +159,7 @@ urlpatterns = [ views.mark_notification_as_read, name="mark_notification_as_read", ), + path('crm/calender/', views.EmployeeCalendarView.as_view(), name='calendar_list'), # Vendor URLs path("vendors", views.VendorListView.as_view(), name="vendor_list"), path("vendors//", views.vendorDetailView, name="vendor_detail"), diff --git a/inventory/views.py b/inventory/views.py index c6c7cf92..68be434b 100644 --- a/inventory/views.py +++ b/inventory/views.py @@ -112,6 +112,7 @@ from pyzbar.pyzbar import decode from django.core.files.storage import default_storage from plans.models import Plan,PlanPricing from django_ledger.utils import accruable_net_summary +from appointment.views_admin import fetch_user_appointments logger = logging.getLogger(__name__) @@ -2889,12 +2890,14 @@ class InvoicePreviewView(LoginRequiredMixin, DetailView): template_name = "sales/invoices/invoice_preview.html" def get_context_data(self, **kwargs): + dealer = get_user_type(self.request) invoice = kwargs.get("object") if invoice.get_itemtxs_data(): # data = get_financial_values(invoice) calculator = CarFinanceCalculator(invoice) finance_data = calculator.get_finance_data() kwargs["data"] = finance_data + kwargs['dealer'] = dealer # kwargs["vat_amount"] = data["vat_amount"] # kwargs["total"] = data["grand_total"] # kwargs["discount_amount"] = data["discount_amount"] @@ -4154,4 +4157,14 @@ class PnLAPIView(DjangoLedgerSecurityMixIn, EntityUnitMixIn, View): }, status=401) +class EmployeeCalendarView(ListView): + template_name = 'crm/employee_calendar.html' + model = Appointment + context_object_name = 'appointments' + + # def get_context_data(self): + # self.context['dealer'] = get_user_type(self.request) + # dealer = + # return Appointment.objects.all() + diff --git a/locale/ar/LC_MESSAGES/django.mo b/locale/ar/LC_MESSAGES/django.mo index acf0f596729056578873a70e29f9eb26b33ab978..ec5c7523a779a0060c03ae2b96c6ff8ffa781b00 100644 GIT binary patch delta 61339 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 C@X_@E delta 50327 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 diff --git a/locale/ar/LC_MESSAGES/django.po b/locale/ar/LC_MESSAGES/django.po index c55972b5..6817aa54 100644 --- a/locale/ar/LC_MESSAGES/django.po +++ b/locale/ar/LC_MESSAGES/django.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-07 17:09+0300\n" +"POT-Creation-Date: 2025-02-11 05:34+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -21,17 +21,19 @@ msgstr "" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: api/models.py:6 inventory/models.py:345 -#: templates/inventory/car_detail.html:19 templates/inventory/car_form.html:35 +#: api/models.py:6 inventory/models.py:328 +#: templates/inventory/car_detail.html:19 templates/inventory/car_form.html:33 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:31 #: templates/inventory/car_inventory.html:53 #: templates/inventory/car_list.html:67 templates/inventory/car_list.html:69 #: templates/inventory/transfer_details.html:69 +#: templates/sales/estimates/estimate_detail.html:126 #: templates/sales/estimates/sale_order_preview.html:238 +#: templates/sales/invoices/invoice_detail.html:218 msgid "VIN" msgstr "رقم الهيكل" -#: car_inventory/settings.py:160 car_inventory/settings.py:309 +#: car_inventory/settings.py:160 car_inventory/settings.py:317 #: templates/crm/opportunities/opportunity_detail.html:35 #: templates/dashboards/accounting.html:35 #: templates/dashboards/accounting.html:39 @@ -43,84 +45,84 @@ msgstr "رقم الهيكل" #: templates/sales/invoices/invoice_detail.html:86 #: templates/sales/invoices/invoice_detail.html:138 #: templates/sales/invoices/invoice_detail.html:140 -#: templates/sales/invoices/invoice_preview.html:226 -#: templates/sales/invoices/invoice_preview.html:230 -#: templates/sales/invoices/invoice_preview.html:237 +#: templates/sales/invoices/invoice_preview.html:232 +#: templates/sales/invoices/invoice_preview.html:236 +#: templates/sales/invoices/invoice_preview.html:243 #: templates/subscriptions/subscription_plan.html:41 msgid "SAR" msgstr "ريال" -#: car_inventory/settings.py:249 +#: car_inventory/settings.py:257 #: venv/lib/python3.11/site-packages/appointments/settings.py:136 msgid "English" msgstr "الإنجليزية" -#: car_inventory/settings.py:250 +#: car_inventory/settings.py:258 msgid "Arabic" msgstr "العربية" -#: car_inventory/settings.py:331 templates/header.html:323 +#: car_inventory/settings.py:340 templates/header.html:331 #: templates/welcome.html:57 msgid "Haikal" msgstr "هيكل" -#: inventory/forms.py:289 inventory/models.py:642 +#: inventory/forms.py:291 inventory/models.py:654 #: templates/inventory/car_detail.html:82 msgid "Custom Date" msgstr "تاريخ البطاقة الجمركية" -#: inventory/forms.py:360 +#: inventory/forms.py:362 msgid "Both exterior and interior colors must be selected." msgstr "يجب اختيار اللونين الخارجي والداخلي." -#: inventory/forms.py:431 inventory/models.py:1076 inventory/models.py:1376 +#: inventory/forms.py:433 inventory/models.py:1089 inventory/models.py:1394 #: templates/account/email_change.html:5 templates/account/email_change.html:9 msgid "Email Address" msgstr "عنوان البريد الإلكتروني" -#: inventory/forms.py:435 +#: inventory/forms.py:437 #: venv/lib/python3.11/site-packages/appointment/views.py:424 #: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1915 msgid "Email address" msgstr "عنوان البريد الإلكتروني" -#: inventory/forms.py:436 templates/crm/leads/lead_list.html:49 +#: inventory/forms.py:438 templates/crm/leads/lead_list.html:49 #: templates/customers/customer_list.html:45 #: templates/vendors/vendors_list.html:49 msgid "email" msgstr "البريد الإلكتروني" -#: inventory/forms.py:441 +#: inventory/forms.py:443 msgid "You must add an email." msgstr "يجب إضافة بريد إلكتروني." -#: inventory/forms.py:446 inventory/forms.py:450 +#: inventory/forms.py:448 inventory/forms.py:452 #: templates/account/login.html:35 templates/account/login.html:37 #: venv/lib/python3.11/site-packages/django_ledger/forms/auth.py:15 msgid "Password" msgstr "كلمة المرور" -#: inventory/forms.py:455 inventory/forms.py:469 inventory/forms.py:529 -#: inventory/forms.py:549 inventory/forms.py:567 inventory/forms.py:582 +#: inventory/forms.py:457 inventory/forms.py:471 inventory/forms.py:531 +#: inventory/forms.py:551 inventory/forms.py:569 inventory/forms.py:584 #: venv/lib/python3.11/site-packages/django/forms/fields.py:95 msgid "This field is required." msgstr "هذا الحقل مطلوب." -#: inventory/forms.py:460 inventory/forms.py:464 +#: inventory/forms.py:462 inventory/forms.py:466 msgid "Confirm Password" msgstr "تأكيد كلمة المرور" -#: inventory/forms.py:474 +#: inventory/forms.py:476 msgid "I accept the Terms and Privacy Policy" msgstr "أوافق على الشروط وسياسة الخصوصية" -#: inventory/forms.py:482 +#: inventory/forms.py:484 msgid "You must accept the terms and privacy policy." msgstr "يجب أن تقبل الشروط وسياسة الخصوصية." -#: inventory/forms.py:489 inventory/models.py:301 inventory/models.py:591 -#: inventory/models.py:604 inventory/models.py:900 inventory/models.py:1042 -#: inventory/models.py:1070 templates/administration/manage_service.html:22 +#: inventory/forms.py:491 inventory/models.py:284 inventory/models.py:603 +#: inventory/models.py:616 inventory/models.py:912 inventory/models.py:1055 +#: inventory/models.py:1083 templates/administration/manage_service.html:22 #: templates/administration/service_list.html:23 #: templates/administration/staff_list.html:34 #: templates/administration/user_profile.html:226 @@ -141,28 +143,28 @@ msgstr "يجب أن تقبل الشروط وسياسة الخصوصية." msgid "Name" msgstr "الاسم" -#: inventory/forms.py:493 inventory/models.py:818 inventory/models.py:1373 +#: inventory/forms.py:495 inventory/models.py:830 inventory/models.py:1391 msgid "English Name" msgstr "الاسم بالإنجليزية" -#: inventory/forms.py:498 +#: inventory/forms.py:500 msgid "Please enter an English Name." msgstr "يرجى إدخال اسم باللغة الإنجليزية." -#: inventory/forms.py:503 inventory/forms.py:507 inventory/models.py:302 -#: inventory/models.py:592 inventory/models.py:605 inventory/models.py:817 -#: inventory/models.py:901 inventory/models.py:1043 inventory/models.py:1071 -#: inventory/models.py:1372 templates/users/user_detail.html:48 +#: inventory/forms.py:505 inventory/forms.py:509 inventory/models.py:285 +#: inventory/models.py:604 inventory/models.py:617 inventory/models.py:829 +#: inventory/models.py:913 inventory/models.py:1056 inventory/models.py:1084 +#: inventory/models.py:1390 templates/users/user_detail.html:48 msgid "Arabic Name" msgstr "الاسم بالعربية" -#: inventory/forms.py:512 +#: inventory/forms.py:514 msgid "Please enter an Arabic name." msgstr "يرجى إدخال اسم باللغة العربية." -#: inventory/forms.py:517 inventory/models.py:819 inventory/models.py:902 -#: inventory/models.py:1017 inventory/models.py:1048 inventory/models.py:1075 -#: inventory/models.py:1095 inventory/models.py:1375 +#: inventory/forms.py:519 inventory/models.py:831 inventory/models.py:914 +#: inventory/models.py:1030 inventory/models.py:1061 inventory/models.py:1088 +#: inventory/models.py:1108 inventory/models.py:1393 #: templates/administration/staff_index.html:123 #: templates/crm/leads/lead_list.html:55 #: templates/crm/opportunities/opportunity_detail.html:221 @@ -174,7 +176,7 @@ msgstr "يرجى إدخال اسم باللغة العربية." msgid "Phone Number" msgstr "رقم الهاتف" -#: inventory/forms.py:523 templates/administration/display_appointment.html:49 +#: inventory/forms.py:525 templates/administration/display_appointment.html:55 #: templates/appointment/appointment_client_information.html:57 #: templates/crm/leads/lead_detail.html:79 #: templates/dealers/dealer_detail.html:99 @@ -188,36 +190,36 @@ msgstr "رقم الهاتف" msgid "Phone" msgstr "الهاتف" -#: inventory/forms.py:530 +#: inventory/forms.py:532 msgid "Phone number must be in the format 05xxxxxxxx" msgstr "يجب أن يكون رقم الهاتف بالصيغة 05xxxxxxxx" -#: inventory/forms.py:538 templates/organizations/organization_detail.html:8 +#: inventory/forms.py:540 templates/organizations/organization_detail.html:8 #: templates/organizations/organization_list.html:49 msgid "CRN" msgstr "رقم السجل التجاري" -#: inventory/forms.py:542 inventory/models.py:810 inventory/models.py:1045 -#: inventory/models.py:1367 +#: inventory/forms.py:544 inventory/models.py:822 inventory/models.py:1058 +#: inventory/models.py:1385 msgid "Commercial Registration Number" msgstr "رقم السجل التجاري" -#: inventory/forms.py:556 templates/organizations/organization_detail.html:9 +#: inventory/forms.py:558 templates/organizations/organization_detail.html:9 #: templates/organizations/organization_list.html:54 msgid "VRN" msgstr "الرقم الضريبي" -#: inventory/forms.py:560 inventory/models.py:815 inventory/models.py:1047 -#: inventory/models.py:1370 +#: inventory/forms.py:562 inventory/models.py:827 inventory/models.py:1060 +#: inventory/models.py:1388 msgid "VAT Registration Number" msgstr "رقم التسجيل في ضريبة القيمة المضافة" -#: inventory/forms.py:568 +#: inventory/forms.py:570 msgid "VAT Registration Number must be 15 characters." msgstr "يجب أن يكون رقم التسجيل الضريبي مكونًا من 15 حرفًا." -#: inventory/forms.py:573 inventory/models.py:821 inventory/models.py:1020 -#: inventory/models.py:1050 inventory/models.py:1078 inventory/models.py:1378 +#: inventory/forms.py:575 inventory/models.py:833 inventory/models.py:1033 +#: inventory/models.py:1063 inventory/models.py:1091 inventory/models.py:1396 #: templates/crm/leads/lead_detail.html:109 #: templates/customers/customer_list.html:60 #: templates/customers/view_customer.html:100 @@ -231,29 +233,29 @@ msgstr "يجب أن يكون رقم التسجيل الضريبي مكونًا msgid "Address" msgstr "العنوان" -#: inventory/forms.py:618 inventory/models.py:1576 +#: inventory/forms.py:620 inventory/models.py:1594 msgid "cash" msgstr "نقداً" -#: inventory/forms.py:619 inventory/models.py:1577 +#: inventory/forms.py:621 inventory/models.py:1595 msgid "credit" msgstr "دائن" -#: inventory/forms.py:620 inventory/models.py:1578 +#: inventory/forms.py:622 inventory/models.py:1596 #: templates/inventory/car_detail.html:124 #: templates/inventory/transfer_car.html:23 msgid "transfer" msgstr "نقل" -#: inventory/forms.py:621 inventory/models.py:1579 +#: inventory/forms.py:623 inventory/models.py:1597 msgid "debit" msgstr "مدين" -#: inventory/forms.py:622 inventory/models.py:1580 +#: inventory/forms.py:624 inventory/models.py:1598 msgid "SADAD" msgstr "سداد" -#: inventory/forms.py:740 inventory/forms.py:757 inventory/models.py:1026 +#: inventory/forms.py:750 inventory/forms.py:767 inventory/models.py:1039 #: templates/crm/opportunities/opportunity_form.html:22 #: templates/sales/estimates/estimate_detail.html:86 #: templates/sales/estimates/estimate_list.html:15 @@ -270,7 +272,7 @@ msgstr "سداد" msgid "Customer" msgstr "العميل" -#: inventory/forms.py:745 inventory/forms.py:756 +#: inventory/forms.py:755 inventory/forms.py:766 #: templates/ledger/bills/bill_detail.html:104 #: templates/sales/estimates/estimate_preview.html:265 #: templates/sales/estimates/sale_order_preview.html:229 @@ -279,90 +281,90 @@ msgstr "العميل" msgid "Terms" msgstr "الشروط" -#: inventory/forms.py:751 inventory/forms.py:755 inventory/models.py:999 +#: inventory/forms.py:761 inventory/forms.py:765 inventory/models.py:1012 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/includes/estimate_table.html:11 msgid "Title" msgstr "العنوان" -#: inventory/models.py:120 inventory/models.py:408 inventory/models.py:448 -#: inventory/models.py:493 inventory/models.py:639 inventory/models.py:654 -#: inventory/models.py:698 inventory/models.py:1101 inventory/models.py:1274 +#: inventory/models.py:103 inventory/models.py:396 inventory/models.py:460 +#: inventory/models.py:505 inventory/models.py:651 inventory/models.py:666 +#: inventory/models.py:710 inventory/models.py:1292 #: templates/crm/leads/lead_list.html:43 #: templates/crm/opportunities/opportunity_form.html:35 #: templates/inventory/transfer_details.html:70 msgid "Car" msgstr "سيارة" -#: inventory/models.py:121 +#: inventory/models.py:104 msgid "Light Commercial" msgstr "مركبات تجارية خفيفة" -#: inventory/models.py:122 +#: inventory/models.py:105 msgid "Heavy-Duty Tractors" msgstr "جرارات ثقيلة" -#: inventory/models.py:123 +#: inventory/models.py:106 msgid "Trailers" msgstr "مقطورات" -#: inventory/models.py:124 +#: inventory/models.py:107 msgid "Medium Trucks" msgstr "شاحنات متوسطة" -#: inventory/models.py:125 +#: inventory/models.py:108 msgid "Buses" msgstr "حافلات" -#: inventory/models.py:126 +#: inventory/models.py:109 msgid "Motorcycles" msgstr "دراجات نارية" -#: inventory/models.py:127 +#: inventory/models.py:110 msgid "Buggy" msgstr "باجي" -#: inventory/models.py:128 +#: inventory/models.py:111 msgid "Moto ATV" msgstr "موتو ATV" -#: inventory/models.py:129 +#: inventory/models.py:112 msgid "Scooters" msgstr "دراجات سكوتر" -#: inventory/models.py:130 +#: inventory/models.py:113 msgid "Karting" msgstr "كارتينج" -#: inventory/models.py:131 +#: inventory/models.py:114 msgid "ATV" msgstr "مركبات ATV" -#: inventory/models.py:132 +#: inventory/models.py:115 msgid "Snowmobiles" msgstr "دراجات الثلج" -#: inventory/models.py:139 +#: inventory/models.py:122 msgid "logo" msgstr "الشعار" -#: inventory/models.py:278 templates/ledger/bills/bill_detail.html:191 +#: inventory/models.py:261 templates/ledger/bills/bill_detail.html:191 #: templates/sales/estimates/estimate_detail.html:101 #: templates/sales/estimates/estimate_list.html:29 #: templates/sales/invoices/invoice_detail.html:193 #: templates/sales/invoices/invoice_list.html:36 -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:338 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:343 #: venv/lib/python3.11/site-packages/django_ledger/models/estimate.py:223 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:300 #: venv/lib/python3.11/site-packages/django_ledger/models/purchase_order.py:192 msgid "Draft" msgstr "مسودة" -#: inventory/models.py:279 templates/ledger/bills/bill_detail.html:195 +#: inventory/models.py:262 templates/ledger/bills/bill_detail.html:195 #: templates/sales/estimates/estimate_detail.html:105 #: templates/sales/estimates/estimate_list.html:33 #: templates/sales/invoices/invoice_detail.html:197 #: templates/sales/invoices/invoice_list.html:32 -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:340 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:345 #: venv/lib/python3.11/site-packages/django_ledger/models/estimate.py:225 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:302 #: venv/lib/python3.11/site-packages/django_ledger/models/purchase_order.py:194 @@ -370,68 +372,68 @@ msgstr "مسودة" msgid "Approved" msgstr "تمت الموافقة" -#: inventory/models.py:280 inventory/models.py:944 +#: inventory/models.py:263 inventory/models.py:956 #: templates/crm/leads/lead_detail.html:46 #: templates/crm/leads/lead_list.html:125 msgid "Pending" msgstr "قيد الانتظار" -#: inventory/models.py:281 +#: inventory/models.py:264 msgid "Accepted" msgstr "تم القبول" -#: inventory/models.py:282 templates/administration/staff_index.html:83 +#: inventory/models.py:265 templates/administration/staff_index.html:83 #: venv/lib/python3.11/site-packages/appointment/templates/administration/staff_index.html:329 msgid "Success" msgstr "ناجحة" -#: inventory/models.py:283 templates/sales/estimates/estimate_preview.html:243 +#: inventory/models.py:266 templates/sales/estimates/estimate_preview.html:243 msgid "Reject" msgstr "رفض" -#: inventory/models.py:284 +#: inventory/models.py:267 msgid "Cancelled" msgstr "ملغى" -#: inventory/models.py:288 templates/inventory/car_inventory.html:99 +#: inventory/models.py:271 templates/inventory/car_inventory.html:99 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/tags/invoice_item_formset.html:21 msgid "Available" msgstr "متاح" -#: inventory/models.py:289 templates/inventory/car_inventory.html:101 +#: inventory/models.py:272 templates/inventory/car_inventory.html:101 msgid "Sold" msgstr "تم البيع" -#: inventory/models.py:290 templates/inventory/car_inventory.html:103 +#: inventory/models.py:273 templates/inventory/car_inventory.html:103 msgid "Hold" msgstr "في الانتظار" -#: inventory/models.py:291 templates/inventory/car_inventory.html:107 +#: inventory/models.py:274 templates/inventory/car_inventory.html:107 msgid "Damaged" msgstr "تالف" -#: inventory/models.py:292 templates/index.html:22 +#: inventory/models.py:275 templates/index.html:22 #: templates/inventory/car_inventory.html:105 msgid "Reserved" msgstr "محجوزة" -#: inventory/models.py:293 templates/inventory/car_location_form.html:8 +#: inventory/models.py:276 templates/inventory/car_location_form.html:8 #: templates/inventory/transfer_preview.html:213 msgid "Transfer" msgstr "نقل" -#: inventory/models.py:296 inventory/models.py:943 +#: inventory/models.py:279 inventory/models.py:955 #: templates/crm/leads/lead_detail.html:44 #: templates/crm/leads/lead_list.html:123 #: templates/inventory/car_inventory.html:68 msgid "New" msgstr "جديد" -#: inventory/models.py:297 templates/inventory/car_inventory.html:70 +#: inventory/models.py:280 templates/inventory/car_inventory.html:70 msgid "Used" msgstr "مستعمل" -#: inventory/models.py:303 inventory/models.py:673 +#: inventory/models.py:286 inventory/models.py:685 #: templates/administration/manage_day_off.html:63 #: templates/administration/manage_service.html:33 #: templates/administration/user_profile.html:93 @@ -447,15 +449,17 @@ msgstr "مستعمل" #: venv/lib/python3.11/site-packages/django_ledger/forms/chart_of_accounts.py:73 #: venv/lib/python3.11/site-packages/django_ledger/models/data_import.py:78 #: venv/lib/python3.11/site-packages/django_ledger/models/items.py:1144 -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:314 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:374 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html:9 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:11 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:14 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:46 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:49 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/transactions/tags/txs_table.html:14 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/transactions/tags/txs_table.html:49 msgid "Description" msgstr "الوصف" -#: inventory/models.py:305 templates/administration/manage_service.html:55 +#: inventory/models.py:288 templates/administration/manage_service.html:55 #: templates/administration/service_list.html:25 #: templates/administration/user_profile.html:229 #: templates/inventory/transfer_details.html:72 @@ -464,19 +468,19 @@ msgstr "الوصف" msgid "Price" msgstr "السعر" -#: inventory/models.py:307 +#: inventory/models.py:290 msgid "taxable" msgstr "خاضع للضريبة" -#: inventory/models.py:311 +#: inventory/models.py:294 msgid "Unit of Measurement" msgstr "وحدة القياس" -#: inventory/models.py:314 inventory/models.py:347 inventory/models.py:853 +#: inventory/models.py:297 inventory/models.py:330 inventory/models.py:865 msgid "Dealer" msgstr "المعرض" -#: inventory/models.py:319 templates/inventory/transfer_preview.html:229 +#: inventory/models.py:302 templates/inventory/transfer_preview.html:229 #: templates/ledger/bills/bill_detail.html:213 #: templates/sales/estimates/estimate_preview.html:273 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_detail.html:94 @@ -495,56 +499,60 @@ msgstr "المعرض" msgid "Item" msgstr "العنصر" -#: inventory/models.py:337 inventory/models.py:338 -#: templates/sales/estimates/estimate_detail.html:157 +#: inventory/models.py:320 inventory/models.py:321 +#: templates/sales/estimates/estimate_detail.html:159 #: templates/sales/estimates/estimate_preview.html:295 #: templates/sales/estimates/sale_order_preview.html:266 -#: templates/sales/invoices/invoice_detail.html:248 +#: templates/sales/invoices/invoice_detail.html:250 msgid "Additional Services" msgstr "الخدمات الإضافية" -#: inventory/models.py:356 inventory/models.py:1386 -#: templates/inventory/car_detail.html:60 templates/inventory/car_form.html:137 +#: inventory/models.py:339 inventory/models.py:1404 +#: templates/inventory/car_detail.html:60 templates/inventory/car_form.html:135 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:166 #: templates/ledger/bills/bill_list.html:46 -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:359 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:364 #: venv/lib/python3.11/site-packages/django_ledger/models/vendor.py:191 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/tags/bill_table.html:12 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/vendor/tags/vendor_table.html:10 msgid "Vendor" msgstr "المورد" -#: inventory/models.py:364 templates/sales/estimates/estimate_detail.html:123 +#: inventory/models.py:347 inventory/models.py:1121 +#: templates/sales/estimates/estimate_detail.html:123 #: templates/sales/estimates/sale_order_preview.html:239 #: templates/sales/invoices/invoice_detail.html:215 msgid "Make" msgstr "الصانع" -#: inventory/models.py:372 templates/sales/estimates/estimate_detail.html:124 +#: inventory/models.py:355 inventory/models.py:1128 +#: templates/sales/estimates/estimate_detail.html:124 #: templates/sales/estimates/sale_order_preview.html:240 #: templates/sales/invoices/invoice_detail.html:216 msgid "Model" msgstr "الموديل" -#: inventory/models.py:374 templates/inventory/car_form.html:59 +#: inventory/models.py:357 inventory/models.py:1131 +#: templates/inventory/car_form.html:56 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:61 #: templates/inventory/car_inventory.html:54 +#: templates/ledger/reports/components/period_navigator.html:21 #: templates/sales/estimates/estimate_detail.html:125 #: templates/sales/estimates/sale_order_preview.html:241 #: templates/sales/invoices/invoice_detail.html:217 msgid "Year" msgstr "السنة" -#: inventory/models.py:381 templates/inventory/car_form.html:69 +#: inventory/models.py:364 templates/inventory/car_form.html:66 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:121 msgid "Series" msgstr "السلسلة" -#: inventory/models.py:389 +#: inventory/models.py:372 msgid "Trim" msgstr "الفئة" -#: inventory/models.py:395 inventory/models.py:1144 inventory/models.py:1282 +#: inventory/models.py:378 inventory/models.py:1157 inventory/models.py:1300 #: templates/crm/leads/lead_detail.html:42 #: templates/inventory/car_detail.html:43 #: templates/inventory/car_detail.html:306 @@ -562,56 +570,60 @@ msgstr "الفئة" msgid "Status" msgstr "الحالة" -#: inventory/models.py:401 templates/inventory/car_detail.html:47 -#: templates/inventory/car_form.html:150 +#: inventory/models.py:384 templates/inventory/car_detail.html:47 +#: templates/inventory/car_form.html:148 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:183 #: templates/inventory/car_list.html:177 msgid "Stock Type" msgstr "نوع المخزون" -#: inventory/models.py:403 inventory/models.py:466 -#: templates/inventory/car_detail.html:65 templates/inventory/car_form.html:190 +#: inventory/models.py:386 inventory/models.py:478 +#: templates/inventory/car_detail.html:65 templates/inventory/car_form.html:186 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:232 #: templates/inventory/car_list.html:200 msgid "Remarks" msgstr "ملاحظات" -#: inventory/models.py:404 templates/inventory/car_detail.html:51 -#: templates/inventory/car_form.html:162 +#: inventory/models.py:387 templates/inventory/car_detail.html:51 +#: templates/inventory/car_form.html:160 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:198 #: templates/inventory/car_list.html:191 templates/inventory/car_list.html:192 msgid "Mileage" msgstr "عدد الكيلومترات" -#: inventory/models.py:405 templates/inventory/car_detail.html:55 -#: templates/inventory/car_form.html:176 +#: inventory/models.py:388 templates/inventory/car_detail.html:55 +#: templates/inventory/car_form.html:173 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:215 msgid "Receiving Date" msgstr "تاريخ الاستلام" -#: inventory/models.py:409 templates/customers/view_customer.html:137 +#: inventory/models.py:389 +msgid "Hash" +msgstr "رمز" + +#: inventory/models.py:397 templates/customers/view_customer.html:137 #: templates/header.html:72 templates/sales/estimates/estimate_form.html:16 msgid "Cars" msgstr "السيارات" -#: inventory/models.py:454 +#: inventory/models.py:466 msgid "From Dealer" msgstr "من معرض" -#: inventory/models.py:460 +#: inventory/models.py:472 msgid "To Dealer" msgstr "الى معرض" -#: inventory/models.py:463 +#: inventory/models.py:475 msgid "Transfer Date" msgstr "تاريخ النقل" -#: inventory/models.py:465 templates/inventory/transfer_preview.html:230 +#: inventory/models.py:477 templates/inventory/transfer_preview.html:230 #: templates/ledger/bills/bill_detail.html:214 -#: templates/sales/estimates/estimate_detail.html:126 +#: templates/sales/estimates/estimate_detail.html:127 #: templates/sales/estimates/estimate_preview.html:274 #: templates/sales/estimates/sale_order_preview.html:242 -#: templates/sales/invoices/invoice_detail.html:218 +#: templates/sales/invoices/invoice_detail.html:219 #: venv/lib/python3.11/site-packages/django_ledger/models/items.py:1068 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_detail.html:97 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/tags/bill_item_formset.html:21 @@ -624,160 +636,160 @@ msgstr "تاريخ النقل" msgid "Quantity" msgstr "الكمية" -#: inventory/models.py:474 inventory/models.py:676 inventory/models.py:1383 +#: inventory/models.py:486 inventory/models.py:688 inventory/models.py:1401 msgid "Created At" msgstr "تاريخ الإنشاء" -#: inventory/models.py:475 inventory/models.py:830 +#: inventory/models.py:487 inventory/models.py:842 msgid "Updated At" msgstr "تم التحديث" -#: inventory/models.py:481 +#: inventory/models.py:493 msgid "Car Transfer Log" msgstr "سجل نقل السيارة" -#: inventory/models.py:482 +#: inventory/models.py:494 msgid "Car Transfer Logs" msgstr "سجلات نقل السيارات" -#: inventory/models.py:499 templates/inventory/car_detail.html:252 +#: inventory/models.py:511 templates/inventory/car_detail.html:252 msgid "Reserved By" msgstr "محجوز بواسطة" -#: inventory/models.py:501 +#: inventory/models.py:513 msgid "Reserved At" msgstr "تاريخ الحجز" -#: inventory/models.py:502 +#: inventory/models.py:514 msgid "Reserved Until" msgstr "محجوز حتى" -#: inventory/models.py:511 templates/inventory/car_detail.html:386 +#: inventory/models.py:523 templates/inventory/car_detail.html:386 msgid "Car Reservation" msgstr "حجز السيارة" -#: inventory/models.py:512 +#: inventory/models.py:524 msgid "Car Reservations" msgstr "حجوزات السيارات" -#: inventory/models.py:522 templates/inventory/car_detail.html:151 +#: inventory/models.py:534 templates/inventory/car_detail.html:151 msgid "Cost Price" msgstr "سعر التكلفة" -#: inventory/models.py:525 templates/inventory/car_detail.html:155 +#: inventory/models.py:537 templates/inventory/car_detail.html:155 msgid "Selling Price" msgstr "سعر البيع" -#: inventory/models.py:530 templates/inventory/car_detail.html:159 -#: templates/sales/estimates/estimate_detail.html:151 -#: templates/sales/invoices/invoice_detail.html:236 +#: inventory/models.py:542 templates/inventory/car_detail.html:159 +#: templates/sales/estimates/estimate_detail.html:153 +#: templates/sales/invoices/invoice_detail.html:238 msgid "Discount Amount" msgstr "مبلغ الخصم" -#: inventory/models.py:586 inventory/models.py:587 +#: inventory/models.py:598 inventory/models.py:599 msgid "Car Financial Details" msgstr "تفاصيل المالية للسيارة" -#: inventory/models.py:593 inventory/models.py:606 +#: inventory/models.py:605 inventory/models.py:618 msgid "RGB" msgstr "آر جي بي" -#: inventory/models.py:596 inventory/models.py:597 +#: inventory/models.py:608 inventory/models.py:609 #: templates/inventory/add_colors.html:13 msgid "Exterior Colors" msgstr "الألوان الخارجية" -#: inventory/models.py:609 inventory/models.py:610 +#: inventory/models.py:621 inventory/models.py:622 #: templates/inventory/add_colors.html:32 msgid "Interior Colors" msgstr "الألوان الداخلية" -#: inventory/models.py:626 +#: inventory/models.py:638 msgid "Color" msgstr "اللون" -#: inventory/models.py:627 +#: inventory/models.py:639 msgid "Colors" msgstr "الألوان" -#: inventory/models.py:641 templates/inventory/car_detail.html:78 +#: inventory/models.py:653 templates/inventory/car_detail.html:78 msgid "Custom Number" msgstr "رقم البطاقة الجمركية" -#: inventory/models.py:645 templates/inventory/car_detail.html:87 +#: inventory/models.py:657 templates/inventory/car_detail.html:87 #: templates/inventory/car_detail.html:356 msgid "Custom Card" msgstr "البطاقة الجمركية" -#: inventory/models.py:646 +#: inventory/models.py:658 msgid "Custom Cards" msgstr "البطاقات الجمركية" -#: inventory/models.py:660 inventory/models.py:1290 +#: inventory/models.py:672 inventory/models.py:1308 msgid "Owner" msgstr "المالك" -#: inventory/models.py:661 +#: inventory/models.py:673 msgid "Dealer who owns the car." msgstr "التاجر الذي يمتلك السيارة." -#: inventory/models.py:667 inventory/models.py:923 +#: inventory/models.py:679 inventory/models.py:935 msgid "Showroom" msgstr "صالة العرض" -#: inventory/models.py:668 +#: inventory/models.py:680 msgid "Dealer where the car is displayed (can be the owner)." msgstr "التاجر الذي تُعرض السيارة في صالته (يمكن أن يكون المالك)." -#: inventory/models.py:674 +#: inventory/models.py:686 msgid "Optional description about the showroom placement." msgstr "وصف اختياري حول وضع السيارة في صالة العرض." -#: inventory/models.py:677 +#: inventory/models.py:689 msgid "Last Updated" msgstr "آخر تحديث" -#: inventory/models.py:680 +#: inventory/models.py:692 msgid "Car Location" msgstr "موقع السيارة" -#: inventory/models.py:681 +#: inventory/models.py:693 msgid "Car Locations" msgstr "مواقف السيارات" -#: inventory/models.py:700 +#: inventory/models.py:712 msgid "Plate Number" msgstr "رقم اللوحة" -#: inventory/models.py:701 +#: inventory/models.py:713 msgid "Text 1" msgstr "النص 1" -#: inventory/models.py:702 +#: inventory/models.py:714 msgid "Text 2" msgstr "النص 2" -#: inventory/models.py:703 +#: inventory/models.py:715 msgid "Text 3" msgstr "النص 3" -#: inventory/models.py:704 templates/inventory/car_detail.html:103 +#: inventory/models.py:716 templates/inventory/car_detail.html:103 msgid "Registration Date" msgstr "تاريخ التسجيل" -#: inventory/models.py:707 templates/inventory/car_detail.html:97 +#: inventory/models.py:719 templates/inventory/car_detail.html:97 #: templates/inventory/car_detail.html:109 #: templates/inventory/car_detail.html:371 msgid "Registration" msgstr "التسجيل" -#: inventory/models.py:708 +#: inventory/models.py:720 msgid "Registrations" msgstr "تسجيل السيارات" -#: inventory/models.py:716 inventory/models.py:906 inventory/models.py:1022 -#: inventory/models.py:1055 inventory/models.py:1149 inventory/models.py:1294 -#: inventory/models.py:1314 inventory/models.py:1336 inventory/models.py:1353 +#: inventory/models.py:728 inventory/models.py:918 inventory/models.py:1035 +#: inventory/models.py:1068 inventory/models.py:1162 inventory/models.py:1312 +#: inventory/models.py:1332 inventory/models.py:1354 inventory/models.py:1371 #: templates/crm/leads/lead_detail.html:91 #: templates/sales/estimates/estimate_list.html:18 #: templates/sales/invoices/invoice_list.html:19 @@ -788,71 +800,71 @@ msgstr "تسجيل السيارات" msgid "Created" msgstr "تاريخ الإنشاء" -#: inventory/models.py:717 inventory/models.py:907 inventory/models.py:1023 -#: inventory/models.py:1056 inventory/models.py:1151 inventory/models.py:1295 -#: inventory/models.py:1315 inventory/models.py:1337 +#: inventory/models.py:729 inventory/models.py:919 inventory/models.py:1036 +#: inventory/models.py:1069 inventory/models.py:1164 inventory/models.py:1313 +#: inventory/models.py:1333 inventory/models.py:1355 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/chart_of_accounts/includes/coa_card.html:41 msgid "Updated" msgstr "تم التحديث" -#: inventory/models.py:747 templates/dealers/dealer_detail.html:63 +#: inventory/models.py:759 templates/dealers/dealer_detail.html:63 msgid "Subscription" msgstr "الاشتراك" -#: inventory/models.py:748 templates/welcome.html:73 templates/welcome.html:141 +#: inventory/models.py:760 templates/welcome.html:73 templates/welcome.html:141 msgid "Subscriptions" msgstr "الاشتراكات" -#: inventory/models.py:763 +#: inventory/models.py:775 msgid "Subscription User" msgstr "مستخدم الاشتراك" -#: inventory/models.py:764 +#: inventory/models.py:776 msgid "Subscription Users" msgstr "مستخدمو الاشتراك" -#: inventory/models.py:772 +#: inventory/models.py:784 msgid "Name of the subscription plan" msgstr "اسم خطة الاشتراك" -#: inventory/models.py:777 +#: inventory/models.py:789 msgid "Maximum number of users allowed" msgstr "الحد الأقصى لعدد المستخدمين المسموح به" -#: inventory/models.py:780 +#: inventory/models.py:792 msgid "Maximum number of cars in inventory" msgstr "الحد الأقصى لعدد السيارات في المخزون" -#: inventory/models.py:793 +#: inventory/models.py:805 msgid "Additional features specific to this plan" msgstr "ميزات إضافية خاصة بهذه الخطة" -#: inventory/models.py:799 +#: inventory/models.py:811 msgid "Subscription Plan" msgstr "خطة الاشتراك" -#: inventory/models.py:800 +#: inventory/models.py:812 msgid "Subscription Plans" msgstr "خطط الاشتراك" -#: inventory/models.py:824 inventory/models.py:1053 inventory/models.py:1381 +#: inventory/models.py:836 inventory/models.py:1066 inventory/models.py:1399 msgid "Logo" msgstr "الشعار" -#: inventory/models.py:829 +#: inventory/models.py:841 msgid "Joined At" msgstr "انضم في" -#: inventory/models.py:854 +#: inventory/models.py:866 msgid "Dealers" msgstr "المعارض" -#: inventory/models.py:888 +#: inventory/models.py:900 #: venv/lib/python3.11/site-packages/django_ledger/models/entity.py:3214 msgid "Manager" msgstr "مدير" -#: inventory/models.py:889 inventory/signals.py:132 templates/header.html:28 +#: inventory/models.py:901 inventory/signals.py:132 templates/header.html:28 #: templates/header.html:55 templates/header.html:60 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:440 #: venv/lib/python3.11/site-packages/django_ledger/io/roles.py:526 @@ -861,95 +873,95 @@ msgstr "مدير" msgid "Inventory" msgstr "المخزن" -#: inventory/models.py:890 +#: inventory/models.py:902 msgid "Accountant" msgstr "محاسب" -#: inventory/models.py:891 templates/header.html:33 +#: inventory/models.py:903 templates/header.html:33 msgid "Sales" msgstr "المبيعات" -#: inventory/models.py:892 +#: inventory/models.py:904 msgid "Coordinator" msgstr "المنسق" -#: inventory/models.py:893 +#: inventory/models.py:905 msgid "Receptionist" msgstr "موظف الاستقبال" -#: inventory/models.py:894 +#: inventory/models.py:906 msgid "Agent" msgstr "عميل" -#: inventory/models.py:904 +#: inventory/models.py:916 msgid "Staff Type" msgstr "نوع الموظف" -#: inventory/models.py:912 inventory/models.py:913 +#: inventory/models.py:924 inventory/models.py:925 #: templates/crm/opportunities/opportunity_detail.html:262 #: templates/crm/opportunities/opportunity_form.html:70 -#: templates/header.html:423 templates/users/user_form.html:4 +#: templates/header.html:435 templates/users/user_form.html:4 #: templates/users/user_list.html:5 msgid "Staff" msgstr "الموظفون" -#: inventory/models.py:921 +#: inventory/models.py:933 msgid "Referrals" msgstr "إحالات" -#: inventory/models.py:922 inventory/models.py:967 +#: inventory/models.py:934 inventory/models.py:979 msgid "WhatsApp" msgstr "واتساب" -#: inventory/models.py:924 +#: inventory/models.py:936 msgid "TikTok" msgstr "تيك توك" -#: inventory/models.py:925 +#: inventory/models.py:937 msgid "Instagram" msgstr "إنستغرام" -#: inventory/models.py:926 +#: inventory/models.py:938 msgid "X" msgstr "إكس" -#: inventory/models.py:927 +#: inventory/models.py:939 msgid "Facebook" msgstr "فيسبوك" -#: inventory/models.py:928 +#: inventory/models.py:940 msgid "Motory" msgstr "موتري" -#: inventory/models.py:929 +#: inventory/models.py:941 msgid "Influencers" msgstr "المؤثرون" -#: inventory/models.py:930 +#: inventory/models.py:942 msgid "Youtube" msgstr "يوتيوب" -#: inventory/models.py:931 +#: inventory/models.py:943 msgid "Campaign" msgstr "حملة" -#: inventory/models.py:935 +#: inventory/models.py:947 msgid "Walk In" msgstr "زيارة مباشرة" -#: inventory/models.py:936 +#: inventory/models.py:948 msgid "Toll Free" msgstr "رقم مجاني" -#: inventory/models.py:937 +#: inventory/models.py:949 #: venv/lib/python3.11/site-packages/django_ledger/models/mixins.py:112 msgid "Website" msgstr "الموقع الإلكتروني" -#: inventory/models.py:938 inventory/models.py:966 inventory/models.py:1012 -#: inventory/models.py:1094 templates/account/login.html:28 +#: inventory/models.py:950 inventory/models.py:978 inventory/models.py:1025 +#: inventory/models.py:1107 templates/account/login.html:28 #: templates/account/login.html:30 -#: templates/administration/display_appointment.html:45 +#: templates/administration/display_appointment.html:49 #: templates/administration/manage_staff_personal_info.html:29 #: templates/administration/staff_list.html:35 #: templates/administration/user_profile.html:25 @@ -970,25 +982,25 @@ msgstr "الموقع الإلكتروني" msgid "Email" msgstr "البريد الإلكتروني" -#: inventory/models.py:939 +#: inventory/models.py:951 msgid "Form" msgstr "نموذج" -#: inventory/models.py:945 templates/crm/leads/lead_detail.html:48 +#: inventory/models.py:957 templates/crm/leads/lead_detail.html:48 #: templates/crm/leads/lead_list.html:127 msgid "In Progress" msgstr "قيد التنفيذ" -#: inventory/models.py:946 templates/crm/leads/lead_detail.html:50 +#: inventory/models.py:958 templates/crm/leads/lead_detail.html:50 #: templates/crm/leads/lead_list.html:129 msgid "Qualified" msgstr "مؤهل" -#: inventory/models.py:947 templates/crm/leads/lead_detail.html:52 +#: inventory/models.py:959 templates/crm/leads/lead_detail.html:52 #: templates/crm/leads/lead_list.html:131 #: templates/sales/estimates/estimate_list.html:37 #: templates/sales/invoices/invoice_list.html:34 -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:342 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:347 #: venv/lib/python3.11/site-packages/django_ledger/models/estimate.py:228 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:305 #: venv/lib/python3.11/site-packages/django_ledger/models/items.py:1042 @@ -996,257 +1008,257 @@ msgstr "مؤهل" msgid "Canceled" msgstr "ملغى" -#: inventory/models.py:951 +#: inventory/models.py:963 msgid "Mr" msgstr "السيد" -#: inventory/models.py:952 +#: inventory/models.py:964 msgid "Mrs" msgstr "السيدة" -#: inventory/models.py:953 +#: inventory/models.py:965 msgid "Ms" msgstr "الآنسة" -#: inventory/models.py:954 +#: inventory/models.py:966 msgid "Miss" msgstr "الآنسة" -#: inventory/models.py:955 +#: inventory/models.py:967 msgid "Dr" msgstr "الدكتور" -#: inventory/models.py:956 +#: inventory/models.py:968 msgid "Prof" msgstr "الأستاذ" -#: inventory/models.py:957 +#: inventory/models.py:969 msgid "Prince" msgstr "الأمير" -#: inventory/models.py:958 +#: inventory/models.py:970 msgid "Princess" msgstr "الأميرة" -#: inventory/models.py:959 +#: inventory/models.py:971 msgid "Company" msgstr "الشركة" -#: inventory/models.py:960 +#: inventory/models.py:972 msgid "N/A" msgstr "غير متوفر" -#: inventory/models.py:964 +#: inventory/models.py:976 msgid "Call" msgstr "مكالمة" -#: inventory/models.py:965 +#: inventory/models.py:977 msgid "SMS" msgstr "رسالة نصية" -#: inventory/models.py:968 +#: inventory/models.py:980 msgid "Visit" msgstr "زيارة" -#: inventory/models.py:969 templates/inventory/car_form.html:23 +#: inventory/models.py:981 templates/inventory/car_form.html:23 msgid "Add Car" msgstr "إضافة سيارة" -#: inventory/models.py:970 templates/inventory/reserve_car.html:6 +#: inventory/models.py:982 templates/inventory/reserve_car.html:6 #: templates/inventory/reserve_car.html:9 msgid "Reserve Car" msgstr "حجز السيارة" -#: inventory/models.py:971 +#: inventory/models.py:983 msgid "Remove Car" msgstr "إزالة السيارة" -#: inventory/models.py:972 templates/sales/estimates/estimate_form.html:5 +#: inventory/models.py:984 templates/sales/estimates/estimate_form.html:5 #: templates/sales/estimates/estimate_form.html:9 msgid "Create Quotation" msgstr "إنشاء عرض" -#: inventory/models.py:973 +#: inventory/models.py:985 msgid "Cancel Quotation" msgstr "إلغاء العرض" -#: inventory/models.py:974 +#: inventory/models.py:986 msgid "Create Order" msgstr "إنشاء طلب" -#: inventory/models.py:975 +#: inventory/models.py:987 msgid "Cancel Order" msgstr "إلغاء الطلب" -#: inventory/models.py:976 templates/sales/estimates/estimate_detail.html:46 +#: inventory/models.py:988 templates/sales/estimates/estimate_detail.html:46 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_create.html:24 #: venv/lib/python3.11/site-packages/django_ledger/views/invoice.py:68 msgid "Create Invoice" msgstr "إنشاء فاتورة" -#: inventory/models.py:977 +#: inventory/models.py:989 msgid "Cancel Invoice" msgstr "إلغاء الفاتورة" -#: inventory/models.py:981 +#: inventory/models.py:993 msgid "Prospect" msgstr "العميل المحتمل" -#: inventory/models.py:982 +#: inventory/models.py:994 msgid "Proposal" msgstr "عرض" -#: inventory/models.py:983 +#: inventory/models.py:995 msgid "Negotiation" msgstr "مفاوضات" -#: inventory/models.py:984 +#: inventory/models.py:996 msgid "Closed Won" msgstr "مغلقة - ناجحة" -#: inventory/models.py:985 +#: inventory/models.py:997 msgid "Closed Lost" msgstr "مغلقة - خسارة" -#: inventory/models.py:989 +#: inventory/models.py:1001 msgid "Low" msgstr "منخفض" -#: inventory/models.py:990 +#: inventory/models.py:1002 msgid "Medium" msgstr "متوسط" -#: inventory/models.py:991 +#: inventory/models.py:1003 msgid "High" msgstr "مرتفع" -#: inventory/models.py:1001 inventory/models.py:1092 +#: inventory/models.py:1014 inventory/models.py:1105 #: templates/administration/manage_staff_personal_info.html:18 msgid "First Name" msgstr "الاسم الأول" -#: inventory/models.py:1003 +#: inventory/models.py:1016 msgid "Middle Name" msgstr "اسم الأب" -#: inventory/models.py:1005 inventory/models.py:1093 +#: inventory/models.py:1018 inventory/models.py:1106 #: templates/administration/manage_staff_personal_info.html:24 msgid "Last Name" msgstr "اسم العائلة" -#: inventory/models.py:1007 +#: inventory/models.py:1020 msgid "Male" msgstr "ذكر" -#: inventory/models.py:1007 +#: inventory/models.py:1020 msgid "Female" msgstr "أنثى" -#: inventory/models.py:1009 +#: inventory/models.py:1022 msgid "Gender" msgstr "الجنس" -#: inventory/models.py:1011 +#: inventory/models.py:1024 msgid "Date of Birth" msgstr "تاريخ الميلاد" -#: inventory/models.py:1014 templates/customers/customer_list.html:55 +#: inventory/models.py:1027 templates/customers/customer_list.html:55 msgid "National ID" msgstr "رقم الهوية الوطنية" -#: inventory/models.py:1027 templates/customers/customer_form.html:4 +#: inventory/models.py:1040 templates/customers/customer_form.html:4 #: templates/customers/customer_list.html:4 #: templates/customers/customer_list.html:5 #: templates/customers/customer_list.html:9 msgid "Customers" msgstr "العملاء" -#: inventory/models.py:1059 +#: inventory/models.py:1072 msgid "Organization" msgstr "شركة" -#: inventory/models.py:1060 templates/header.html:161 +#: inventory/models.py:1073 templates/header.html:169 #: templates/organizations/organization_list.html:4 #: templates/organizations/organization_list.html:5 #: templates/organizations/organization_list.html:12 msgid "Organizations" msgstr "الشركات" -#: inventory/models.py:1073 +#: inventory/models.py:1086 #: templates/representatives/representative_detail.html:8 #: templates/representatives/representative_list.html:18 msgid "ID Number" msgstr "رقم الهوية" -#: inventory/models.py:1083 +#: inventory/models.py:1096 msgid "Representative" msgstr "ممثل شركة" -#: inventory/models.py:1084 templates/header.html:169 +#: inventory/models.py:1097 templates/header.html:177 #: templates/representatives/representative_list.html:3 #: templates/representatives/representative_list.html:6 msgid "Representatives" msgstr "ممثلي الشركات" -#: inventory/models.py:1121 templates/crm/leads/lead_list.html:73 +#: inventory/models.py:1134 templates/crm/leads/lead_list.html:73 msgid "Source" msgstr "المصدر" -#: inventory/models.py:1124 templates/crm/leads/lead_list.html:79 +#: inventory/models.py:1137 templates/crm/leads/lead_list.html:79 msgid "Channel" msgstr "القناة" -#: inventory/models.py:1126 +#: inventory/models.py:1139 msgid "address" msgstr "العنوان" -#: inventory/models.py:1133 +#: inventory/models.py:1146 msgid "Assigned" msgstr "مُعين" -#: inventory/models.py:1139 +#: inventory/models.py:1152 msgid "Priority" msgstr "الأولوية" -#: inventory/models.py:1154 +#: inventory/models.py:1167 msgid "Lead" msgstr "فرصة" -#: inventory/models.py:1155 templates/crm/leads/lead_list.html:3 +#: inventory/models.py:1168 templates/crm/leads/lead_list.html:3 #: templates/crm/leads/lead_list.html:7 templates/crm/leads/lead_send.html:5 msgid "Leads" msgstr "الفرص" -#: inventory/models.py:1243 +#: inventory/models.py:1261 msgid "Old Status" msgstr "الحالة القديمة" -#: inventory/models.py:1246 +#: inventory/models.py:1264 msgid "New Status" msgstr "الحالة الجديدة" -#: inventory/models.py:1251 +#: inventory/models.py:1269 msgid "Changed At" msgstr "تم التغيير في" -#: inventory/models.py:1254 +#: inventory/models.py:1272 msgid "Lead Status History" msgstr "تاريخ حالة العميل المحتمل" -#: inventory/models.py:1255 +#: inventory/models.py:1273 msgid "Lead Status Histories" msgstr "تواريخ حالات العملاء المحتملين" -#: inventory/models.py:1263 +#: inventory/models.py:1281 msgid "Probability must be between 0 and 100." msgstr "يجب أن تكون الاحتمالية بين 0 و 100." -#: inventory/models.py:1277 +#: inventory/models.py:1295 #: templates/crm/opportunities/opportunity_form.html:48 msgid "Stage" msgstr "المرحلة" -#: inventory/models.py:1293 +#: inventory/models.py:1311 #: templates/crm/opportunities/opportunity_detail.html:295 #: templates/crm/opportunities/opportunity_form.html:79 #: ⁨templates/crm/opportunities/opportunity_list copy.html⁩:100 @@ -1255,122 +1267,122 @@ msgstr "المرحلة" msgid "Closing Date" msgstr "تاريخ الإغلاق" -#: inventory/models.py:1296 +#: inventory/models.py:1314 msgid "Closed" msgstr "مغلقة" -#: inventory/models.py:1299 +#: inventory/models.py:1317 msgid "Opportunity" msgstr "فرصة" -#: inventory/models.py:1300 +#: inventory/models.py:1318 #: ⁨templates/crm/opportunities/opportunity_list copy.html⁩:8 #: templates/crm/opportunities/opportunity_list.html:8 -#: templates/header.html:177 +#: templates/header.html:185 msgid "Opportunities" msgstr "الفرص" -#: inventory/models.py:1310 inventory/models.py:1318 +#: inventory/models.py:1328 inventory/models.py:1336 #: templates/account/snippets/already_logged_in.html:8 #: templates/crm/leads/lead_detail.html:194 msgid "Note" msgstr "ملاحظة" -#: inventory/models.py:1319 inventory/models.py:1332 +#: inventory/models.py:1337 inventory/models.py:1350 #: templates/crm/leads/lead_detail.html:128 #: templates/crm/leads/lead_detail.html:181 -#: templates/crm/leads/lead_detail.html:598 +#: templates/crm/leads/lead_detail.html:595 #: templates/customers/view_customer.html:119 #: venv/lib/python3.11/site-packages/django_ledger/forms/bill.py:154 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/includes/card_markdown.html:9 msgid "Notes" msgstr "ملاحظات" -#: inventory/models.py:1330 +#: inventory/models.py:1348 msgid "Activity Type" msgstr "نوع النشاط" -#: inventory/models.py:1340 templates/crm/leads/lead_detail.html:127 -#: templates/dealers/activity_log.html:11 templates/header.html:426 -#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:382 -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:325 +#: inventory/models.py:1358 templates/crm/leads/lead_detail.html:127 +#: templates/dealers/activity_log.html:11 templates/header.html:438 +#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:384 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:388 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/tags/closing_entry_txs_table.html:10 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/includes/card_journal_entry.html:33 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:10 msgid "Activity" msgstr "النشاط" -#: inventory/models.py:1341 templates/crm/leads/lead_detail.html:134 +#: inventory/models.py:1359 templates/crm/leads/lead_detail.html:134 msgid "Activities" msgstr "الأنشطة" -#: inventory/models.py:1351 +#: inventory/models.py:1369 msgid "Message" msgstr "رسالة" -#: inventory/models.py:1352 +#: inventory/models.py:1370 msgid "Is Read" msgstr "تمت قراءته" -#: inventory/models.py:1356 +#: inventory/models.py:1374 msgid "Notification" msgstr "إشعار" -#: inventory/models.py:1357 templates/crm/notifications_history.html:6 +#: inventory/models.py:1375 templates/crm/notifications_history.html:6 msgid "Notifications" msgstr "الإشعارات" -#: inventory/models.py:1374 templates/vendors/view_vendor.html:49 +#: inventory/models.py:1392 templates/vendors/view_vendor.html:49 msgid "Contact Person" msgstr "الشخص المسؤول" -#: inventory/models.py:1387 templates/vendors/vendor_form.html:4 +#: inventory/models.py:1405 templates/vendors/vendor_form.html:4 #: templates/vendors/vendors_list.html:4 templates/vendors/vendors_list.html:5 #: templates/vendors/vendors_list.html:12 msgid "Vendors" msgstr "الموردين" -#: inventory/models.py:1586 inventory/models.py:1616 +#: inventory/models.py:1604 inventory/models.py:1634 msgid "amount" msgstr "المبلغ" -#: inventory/models.py:1589 +#: inventory/models.py:1607 msgid "method" msgstr "طريقة" -#: inventory/models.py:1592 +#: inventory/models.py:1610 msgid "reference number" msgstr "رقم المرجع" -#: inventory/models.py:1594 +#: inventory/models.py:1612 msgid "date" msgstr "التاريخ" -#: inventory/models.py:1604 +#: inventory/models.py:1622 msgid "payment" msgstr "الدفعة" -#: inventory/models.py:1605 templates/header.html:126 +#: inventory/models.py:1623 templates/header.html:134 msgid "payments" msgstr "المدفوعات" -#: inventory/models.py:1618 +#: inventory/models.py:1636 msgid "reason" msgstr "السبب" -#: inventory/models.py:1619 +#: inventory/models.py:1637 msgid "refund date" msgstr "تاريخ الاسترداد" -#: inventory/models.py:1622 +#: inventory/models.py:1640 msgid "refund" msgstr "استرداد" -#: inventory/models.py:1623 +#: inventory/models.py:1641 msgid "refunds" msgstr "استردادات" -#: inventory/models.py:1647 templates/sales/estimates/estimate_detail.html:37 +#: inventory/models.py:1665 templates/sales/estimates/estimate_detail.html:37 #: templates/sales/estimates/estimate_preview.html:255 #: venv/lib/python3.11/site-packages/django_ledger/models/entity.py:3145 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/includes/card_estimate.html:9 @@ -1378,7 +1390,7 @@ msgstr "استردادات" msgid "Estimate" msgstr "تقدير" -#: inventory/models.py:1653 templates/plans/create_order.html:29 +#: inventory/models.py:1671 templates/plans/create_order.html:29 #: templates/sales/invoices/invoice_create.html:5 #: templates/sales/invoices/invoice_detail.html:61 #: templates/sales/payments/payment_list.html:21 @@ -1638,7 +1650,7 @@ msgstr "مصروفات الفائدة" msgid "success" msgstr "ناجحة" -#: inventory/utils.py:51 templates/inventory/car_form.html:378 +#: inventory/utils.py:51 templates/inventory/car_form.html:374 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:427 msgid "error" msgstr "خطأ" @@ -1652,177 +1664,169 @@ msgstr "نسيت كلمة المرور؟" msgid "Car reserved successfully." msgstr "تم حجز السيارة بنجاح." -#: inventory/views.py:227 -msgid "OTP verified successfully!" -msgstr "تم التحقق من رمز التحقق بنجاح!" - -#: inventory/views.py:230 -msgid "Invalid OTP. Please try again." -msgstr "رمز التحقق غير صالح. يرجى المحاولة مرة أخرى." - -#: inventory/views.py:383 +#: inventory/views.py:387 msgid "VIN number exists" msgstr "رقم الهيكل موجود مسبقاً" -#: inventory/views.py:575 templates/dashboards/accounting.html:21 +#: inventory/views.py:582 templates/dashboards/accounting.html:21 #: templates/inventory/car_inventory.html:5 #: templates/inventory/inventory_stats.html:5 msgid "inventory" msgstr "المخزون" -#: inventory/views.py:732 +#: inventory/views.py:767 msgid "Car finance details saved successfully." msgstr "تم حفظ تفاصيل المالية للسيارة بنجاح." -#: inventory/views.py:764 +#: inventory/views.py:799 msgid "Car finance details updated successfully." msgstr "تم تحديث تفاصيل المالية للسيارة بنجاح." -#: inventory/views.py:793 +#: inventory/views.py:828 msgid "Car updated successfully." msgstr "تم تحديث السيارة بنجاح" -#: inventory/views.py:805 +#: inventory/views.py:840 msgid "Car deleted successfully." msgstr "تم حذف السيارة بنجاح." -#: inventory/views.py:884 +#: inventory/views.py:919 msgid "Car transfer canceled successfully." msgstr "تم إلغاء نقل السيارة بنجاح." -#: inventory/views.py:901 +#: inventory/views.py:936 msgid "Car transfer approved successfully." msgstr "تمت الموافقة على نقل السيارة بنجاح." -#: inventory/views.py:912 +#: inventory/views.py:947 msgid "Car transfer rejected successfully." msgstr "تم رفض نقل السيارة بنجاح." -#: inventory/views.py:925 +#: inventory/views.py:960 msgid "Car Transfer Completed successfully." msgstr "تم إكمال نقل السيارة بنجاح." -#: inventory/views.py:996 +#: inventory/views.py:1031 msgid "Custom Card added successfully." msgstr "تم إضافة البطاقة الجمركية بنجاح." -#: inventory/views.py:1016 +#: inventory/views.py:1051 msgid "Registration added successfully." msgstr "تم إلغاء الحجز بنجاح." -#: inventory/views.py:1025 +#: inventory/views.py:1060 msgid "This car is already reserved." msgstr "هذه السيارة محجوزة بالفعل." -#: inventory/views.py:1045 +#: inventory/views.py:1080 msgid "Reservation renewed successfully." msgstr "تم تجديد الحجز بنجاح" -#: inventory/views.py:1053 +#: inventory/views.py:1088 msgid "Reservation canceled successfully." msgstr "تم إلغاء الحجز بنجاح." -#: inventory/views.py:1058 +#: inventory/views.py:1093 msgid "Invalid action." msgstr "إجراء غير صالح." -#: inventory/views.py:1062 +#: inventory/views.py:1097 msgid "Invalid request method." msgstr "طريقة الطلب غير صالحة" -#: inventory/views.py:1084 +#: inventory/views.py:1119 msgid "Dealer updated successfully." msgstr "تم تحديث المعرض بنجاح." -#: inventory/views.py:1104 templates/header.html:154 +#: inventory/views.py:1139 templates/header.html:162 msgid "customers" msgstr "العملاء" -#: inventory/views.py:1214 +#: inventory/views.py:1249 msgid "Customer created successfully." msgstr "تم إنشاء العميل بنجاح." -#: inventory/views.py:1246 +#: inventory/views.py:1281 msgid "Customer updated successfully." msgstr "تم تحديث العميل بنجاح." -#: inventory/views.py:1261 +#: inventory/views.py:1296 msgid "Customer deleted successfully." msgstr "تم حذف العميل بنجاح." -#: inventory/views.py:1296 +#: inventory/views.py:1331 msgid "Vendor created successfully." msgstr "تم إنشاء المورد بنجاح." -#: inventory/views.py:1316 +#: inventory/views.py:1351 msgid "Vendor updated successfully." msgstr "تم تحديث المورد بنجاح" -#: inventory/views.py:1324 +#: inventory/views.py:1359 msgid "Vendor deleted successfully." msgstr "تم حذف المورد بنجاح." -#: inventory/views.py:1732 +#: inventory/views.py:1767 msgid "User created successfully." msgstr "تم إنشاء المستخدم بنجاح." -#: inventory/views.py:1757 +#: inventory/views.py:1792 msgid "User updated successfully." msgstr "تم تحديث المستخدم بنجاح" -#: inventory/views.py:1768 +#: inventory/views.py:1803 msgid "User deleted successfully." msgstr "تم حذف المستخدم بنجاح." -#: inventory/views.py:1838 inventory/views.py:1868 +#: inventory/views.py:1873 inventory/views.py:1903 msgid "Organization created successfully." msgstr "تم إنشاء المنظمة بنجاح." -#: inventory/views.py:3026 +#: inventory/views.py:3096 msgid "Note deleted successfully." msgstr "تم حذف الملاحظة بنجاح." -#: inventory/views.py:3185 +#: inventory/views.py:3282 msgid "Opportunity deleted successfully." msgstr "تم حذف الفرصة بنجاح." -#: inventory/views.py:3222 +#: inventory/views.py:3319 msgid "Notification marked as read." msgstr "تم تمييز الإشعار كمقروء." -#: inventory/views.py:3248 +#: inventory/views.py:3345 msgid "Service created successfully." msgstr "تم إنشاء الخدمة بنجاح." -#: inventory/views.py:3264 +#: inventory/views.py:3361 msgid "Service updated successfully." msgstr "تم تحديث الخدمة بنجاح." -#: inventory/views.py:3381 inventory/views.py:3406 +#: inventory/views.py:3478 inventory/views.py:3503 msgid "Bill updated successfully." msgstr "تم تحديث الفاتورة بنجاح." -#: inventory/views.py:3432 +#: inventory/views.py:3529 msgid "Bill is already approved." msgstr "تمت الموافقة على الفاتورة مسبقًا." -#: inventory/views.py:3436 +#: inventory/views.py:3533 msgid "Bill marked as approved successfully." msgstr "تم تحديد الفاتورة كموافقة بنجاح." -#: inventory/views.py:3445 +#: inventory/views.py:3542 msgid "Bill is already paid." msgstr "تم دفع الفاتورة مسبقًا." -#: inventory/views.py:3454 +#: inventory/views.py:3551 msgid "Bill marked as paid successfully." msgstr "تم تحديد الفاتورة كمدفوعة بنجاح." -#: inventory/views.py:3456 +#: inventory/views.py:3553 msgid "Amount paid is not equal to amount due." msgstr "المبلغ المدفوع لا يساوي المبلغ المستحق." -#: inventory/views.py:3866 templates/header.html:259 +#: inventory/views.py:3963 templates/header.html:267 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/unit/unit_detail.html:23 #: venv/lib/python3.11/site-packages/django_ledger/views/entity.py:210 msgid "Dashboard" @@ -1874,7 +1878,6 @@ msgstr "تأكيد" #: templates/account/confirm_email_verification_code.html:31 #: templates/account/confirm_email_verification_code.html:35 #: templates/account/confirm_login_code..html:38 -#: templates/crm/leads/lead_detail.html:217 #: templates/crm/leads/lead_form.html:18 #: templates/crm/leads/schedule_lead.html:18 #: templates/crm/opportunities/opportunity_form.html:89 @@ -1892,7 +1895,7 @@ msgstr "تأكيد" #: templates/ledger/bills/bill_form.html:42 #: templates/ledger/bills/bill_update_form.html:18 #: templates/ledger/coa_accounts/account_form.html:32 -#: templates/modal/event_details_modal.html:22 +#: templates/modal/event_details_modal.html:24 #: templates/representatives/representative_form.html:12 #: templates/sales/estimates/estimate_form.html:42 #: templates/sales/estimates/estimate_preview.html:223 @@ -1914,7 +1917,7 @@ msgstr "إلغاء" #: templates/account/confirm_login_code..html:35 templates/account/login.html:6 #: templates/account/login.html:21 templates/account/login.html:45 #: templates/account/request_login_code.html:5 templates/account/signup.html:80 -#: templates/header.html:452 templates/welcome.html:77 +#: templates/header.html:464 templates/welcome.html:77 msgid "Sign In" msgstr "تسجيل الدخول" @@ -2269,7 +2272,7 @@ msgstr "إذا لم تقم بإنشاء حساب بعد، يرجى التسجي #: templates/account/login.html:52 templates/account/signup-wizard.html:16 #: templates/account/signup.html:5 templates/account/signup.html:79 -#: templates/header.html:455 templates/welcome.html:78 +#: templates/header.html:467 templates/welcome.html:78 msgid "Sign Up" msgstr "إنشاء حساب" @@ -2282,7 +2285,7 @@ msgid "Mail me a sign-in code" msgstr "أرسل لي رمز تسجيل الدخول عبر البريد الإلكتروني" #: templates/account/logout.html:3 templates/account/logout.html:11 -#: templates/account/logout.html:20 templates/header.html:445 +#: templates/account/logout.html:20 templates/header.html:457 msgid "Sign Out" msgstr "تسجيل الخروج" @@ -2448,11 +2451,13 @@ msgstr "الوصول" #: templates/account/signup-wizard.html:27 #: templates/items/service/service_list.html:23 templates/plans/current.html:15 #: venv/lib/python3.11/site-packages/django_ledger/models/accounts.py:443 -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:487 +#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:439 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bank_account/bank_account_update.html:13 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/tags/closing_entry_txs_table.html:8 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:9 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:42 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:45 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/transactions/tags/txs_table.html:9 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/transactions/tags/txs_table.html:45 msgid "Account" msgstr "الحساب" @@ -2485,7 +2490,7 @@ msgstr "في أي مكان" #: templates/administration/email_change_verification_code.html:25 #: templates/administration/manage_day_off.html:69 #: templates/appointment/enter_verification_code.html:24 -#: templates/modal/event_details_modal.html:27 +#: templates/modal/event_details_modal.html:29 #: venv/lib/python3.11/site-packages/appointment/templates/administration/email_change_verification_code.html:25 #: venv/lib/python3.11/site-packages/appointment/templates/administration/manage_day_off.html:69 #: venv/lib/python3.11/site-packages/appointment/templates/appointment/enter_verification_code.html:24 @@ -2508,13 +2513,13 @@ msgid "Next" msgstr "التالي" #: templates/account/signup-wizard.html:140 -#: templates/inventory/car_form.html:606 +#: templates/inventory/car_form.html:605 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:654 msgid "Please Wait" msgstr "الرجاء الإنتظار" #: templates/account/signup-wizard.html:141 -#: templates/inventory/car_form.html:607 +#: templates/inventory/car_form.html:606 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:655 msgid "Loading" msgstr "تحميل" @@ -2599,7 +2604,7 @@ msgstr "" "ملاحظة: لا يزال بإمكانك تغيير " "عنوان بريدك الإلكتروني." -#: templates/administration/display_appointment.html:25 +#: templates/administration/display_appointment.html:19 #: templates/email_sender/reminder_email.html:80 #: templates/email_sender/reschedule_email.html:64 #: templates/email_sender/reschedule_email.html:69 @@ -2617,7 +2622,7 @@ msgstr "" msgid "Date" msgstr "التاريخ" -#: templates/administration/display_appointment.html:29 +#: templates/administration/display_appointment.html:25 #: templates/administration/manage_working_hours.html:36 #: templates/administration/staff_index.html:134 #: templates/administration/user_profile.html:160 @@ -2628,7 +2633,7 @@ msgstr "التاريخ" msgid "Start time" msgstr "وقت البدء" -#: templates/administration/display_appointment.html:33 +#: templates/administration/display_appointment.html:31 #: templates/administration/manage_working_hours.html:47 #: templates/administration/staff_index.html:146 #: templates/administration/user_profile.html:161 @@ -2651,26 +2656,26 @@ msgstr "وقت الانتهاء" msgid "Service" msgstr "الخدمة" -#: templates/administration/display_appointment.html:41 +#: templates/administration/display_appointment.html:43 #: venv/lib/python3.11/site-packages/appointment/templates/administration/display_appointment.html:41 msgid "Client" msgstr "العميل" -#: templates/administration/display_appointment.html:53 +#: templates/administration/display_appointment.html:61 #: templates/administration/staff_index.html:128 #: venv/lib/python3.11/site-packages/appointment/templates/administration/display_appointment.html:53 #: venv/lib/python3.11/site-packages/appointment/templates/administration/staff_index.html:374 msgid "Wants reminder" msgstr "يريد تذكيرًا" -#: templates/administration/display_appointment.html:57 +#: templates/administration/display_appointment.html:67 #: templates/administration/staff_index.html:125 #: venv/lib/python3.11/site-packages/appointment/templates/administration/display_appointment.html:57 #: venv/lib/python3.11/site-packages/appointment/templates/administration/staff_index.html:371 msgid "Client address" msgstr "عنوان العميل" -#: templates/administration/display_appointment.html:61 +#: templates/administration/display_appointment.html:73 #: templates/administration/staff_index.html:131 #: templates/appointment/appointment_client_information.html:69 #: venv/lib/python3.11/site-packages/appointment/templates/administration/display_appointment.html:61 @@ -2679,12 +2684,12 @@ msgstr "عنوان العميل" msgid "Additional Information" msgstr "معلومات إضافية" -#: templates/administration/display_appointment.html:65 +#: templates/administration/display_appointment.html:79 #: venv/lib/python3.11/site-packages/appointment/templates/administration/display_appointment.html:65 msgid "Is paid" msgstr "مدفوع" -#: templates/administration/display_appointment.html:69 +#: templates/administration/display_appointment.html:85 #: venv/lib/python3.11/site-packages/appointment/templates/administration/display_appointment.html:69 msgid "Service price" msgstr "سعر الخدمة" @@ -2761,8 +2766,8 @@ msgstr "تأكيد الحذف" #: templates/administration/staff_index.html:79 #: templates/administration/user_profile.html:18 #: templates/crm/leads/lead_detail.html:206 -#: templates/crm/leads/lead_detail.html:215 -#: templates/crm/leads/lead_list.html:178 +#: templates/crm/leads/lead_detail.html:214 +#: templates/crm/leads/lead_list.html:180 #: ⁨templates/crm/opportunities/opportunity_list copy.html⁩:28 #: templates/customers/customer_list.html:127 #: templates/customers/view_customer.html:51 @@ -2770,7 +2775,7 @@ msgstr "تأكيد الحذف" #: templates/ledger/bills/bill_list.html:98 #: templates/ledger/coa_accounts/account_detail.html:118 #: templates/ledger/coa_accounts/account_list.html:110 -#: templates/modal/event_details_modal.html:31 +#: templates/modal/event_details_modal.html:33 #: templates/organizations/organization_detail.html:17 #: templates/organizations/organization_list.html:130 #: templates/plans/billing_info_create_or_update.html:14 @@ -2793,10 +2798,10 @@ msgstr "تأكيد الحذف" #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/tags/ce_item_formset.html:25 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_delete.html:24 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/tags/invoice_item_formset.html:23 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_delete.html:19 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_delete.html:18 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:88 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/ledger_delete.html:19 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:130 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:131 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/product/product_delete.html:20 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/product/tags/product_table.html:44 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/includes/card_po.html:103 @@ -2836,6 +2841,7 @@ msgstr "الصورة" msgid "Currency" msgstr "العملة" +#: templates/administration/manage_service.html:101 msgid "Background Color" msgstr "لون الخلفية" @@ -3067,7 +3073,7 @@ msgstr "إضافة" #: templates/administration/staff_list.html:36 #: ⁨templates/crm/opportunities/opportunity_list copy.html⁩:71 #: templates/crm/opportunities/opportunity_list.html:65 -#: templates/inventory/car_form.html:224 +#: templates/inventory/car_form.html:219 #: templates/inventory/inventory_stats.html:63 #: venv/lib/python3.11/site-packages/appointment/templates/administration/staff_list.html:40 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/tags/closing_entry_table.html:43 @@ -3108,9 +3114,8 @@ msgid "Last name" msgstr "اسم العائلة" #: templates/administration/user_profile.html:37 -#: venv/lib/python3.11/site-packages/appointment/templates/administration/user_profile.html:50 -msgid "Appointment Information" -msgstr "معلومات الموعد" +msgid "Appointments Information" +msgstr "معلومات المواعيد" #: templates/administration/user_profile.html:44 #: venv/lib/python3.11/site-packages/appointment/templates/administration/user_profile.html:57 @@ -3299,10 +3304,10 @@ msgstr "تفاصيل الدفع" #: templates/ledger/coa_accounts/account_detail.html:100 #: templates/ledger/reports/tags/balance_sheet_statement.html:55 #: templates/plans/order_detail_table.html:12 -#: templates/sales/estimates/estimate_detail.html:128 +#: templates/sales/estimates/estimate_detail.html:129 #: templates/sales/estimates/estimate_preview.html:276 #: templates/sales/estimates/sale_order_preview.html:244 -#: templates/sales/invoices/invoice_detail.html:220 +#: templates/sales/invoices/invoice_detail.html:221 #: venv/lib/python3.11/site-packages/appointment/templates/appointment/appointment_client_information.html:103 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_detail.html:98 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_detail.html:127 @@ -3316,8 +3321,9 @@ msgstr "تفاصيل الدفع" #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_detail.html:115 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/tags/invoice_item_formset.html:22 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/tags/invoice_item_formset.html:58 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:59 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:62 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/includes/po_item_formset.html:85 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/transactions/tags/txs_table.html:62 msgid "Total" msgstr "الإجمالي" @@ -3466,6 +3472,7 @@ msgid "HAIKAL" msgstr "هيكل" #: templates/components/date_picker.html:5 +#: templates/ledger/reports/components/date_picker.html:5 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/components/date_picker.html:5 msgid "Select Date" msgstr "اختر التاريخ" @@ -3507,7 +3514,7 @@ msgid "City" msgstr "المدينة" #: templates/crm/leads/lead_detail.html:129 -#: templates/crm/leads/lead_detail.html:250 +#: templates/crm/leads/lead_detail.html:247 msgid "Emails" msgstr "رسائل البريد الإلكتروني" @@ -3520,16 +3527,19 @@ msgstr "بواسطة" msgid "Add Note" msgstr "إضافة ملاحظة" +#: templates/crm/leads/lead_detail.html:195 msgid "Created By" msgstr "تم الإنشاء بواسطة" +#: templates/crm/leads/lead_detail.html:196 msgid "Created On" msgstr "تم الإنشاء في" +#: templates/crm/leads/lead_detail.html:210 msgid "Are you sure you want to delete this note?" msgstr "هل أنت متأكد أنك تريد حذف هذه الملاحظة؟" -#: templates/crm/leads/lead_detail.html:233 +#: templates/crm/leads/lead_detail.html:230 #: templates/crm/leads/schedule_lead.html:5 templates/crm/note_form.html:13 #: templates/customers/view_customer.html:54 #: templates/items/expenses/expenses_list.html:34 @@ -3579,6 +3589,11 @@ msgstr "هل أنت متأكد أنك تريد حذف هذه الملاحظة؟" msgid "Update" msgstr "تحديث" +#: templates/crm/leads/lead_detail.html:625 +#: templates/inventory/car_detail.html:473 +msgid "Error loading form. Please try again later" +msgstr "حدث خطأ أثناء تحميل النموذج. يرجى المحاولة مرة أخرى لاحقًا." + #: templates/crm/leads/lead_list.html:12 msgid "Add Lead" msgstr "إضافة عميل محتمل" @@ -3587,12 +3602,15 @@ msgstr "إضافة عميل محتمل" msgid "Enter lead name" msgstr "أدخل اسم العميل المحتمل" +#: templates/crm/leads/lead_list.html:39 msgid "Lead Name" msgstr "اسم العميل المحتمل" +#: templates/crm/leads/lead_list.html:61 msgid "Schedule" msgstr "الجدولة" +#: templates/crm/leads/lead_list.html:67 msgid "Assigned To" msgstr "مُعين إلى" @@ -3662,7 +3680,7 @@ msgstr "لا" msgid "Yes" msgstr "نعم" -#: templates/crm/leads/lead_list.html:171 +#: templates/crm/leads/lead_list.html:173 #: ⁨templates/crm/opportunities/opportunity_list copy.html⁩:27 #: templates/customers/customer_list.html:126 #: templates/dealers/dealer_detail.html:24 @@ -3670,7 +3688,7 @@ msgstr "نعم" #: templates/inventory/car_detail.html:185 #: templates/ledger/bank_accounts/bank_account_detail.html:57 #: templates/ledger/coa_accounts/account_detail.html:114 -#: templates/modal/event_details_modal.html:25 +#: templates/modal/event_details_modal.html:27 #: templates/organizations/organization_detail.html:14 #: templates/organizations/organization_list.html:128 #: templates/representatives/representative_detail.html:13 @@ -3679,18 +3697,20 @@ msgstr "نعم" #: venv/lib/python3.11/site-packages/appointment/templates/modal/event_details_modal.html:25 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/customer/includes/card_customer.html:28 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:83 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:101 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:102 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/vendor/includes/card_vendor.html:28 msgid "Edit" msgstr "تحديث" -#: templates/crm/leads/lead_list.html:172 +#: templates/crm/leads/lead_list.html:174 msgid "Send Email" msgstr "إرسال البريد الإلكتروني" +#: templates/crm/leads/lead_list.html:175 msgid "Set Schedule" msgstr "تحديد الجدولة" +#: templates/crm/leads/lead_list.html:177 msgid "Convert To Customer" msgstr "تحويل إلى عميل" @@ -3725,7 +3745,7 @@ msgstr "تفاصيل الفرصة" #: templates/crm/opportunities/opportunity_detail.html:149 #: templates/ledger/bank_accounts/bank_account_detail.html:50 -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:493 +#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:447 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/includes/po_item_formset.html:22 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/tags/po_item_table.html:11 msgid "Amount" @@ -4184,6 +4204,7 @@ msgid "Account Information" msgstr "معلومات الحساب" #: templates/email_sender/thank_you_email.html:214 +#: templates/modal/event_details_modal.html:8 #: venv/lib/python3.11/site-packages/appointment/templates/email_sender/reminder_email.html:128 #: venv/lib/python3.11/site-packages/appointment/templates/email_sender/thank_you_email.html:214 msgid "Appointment Details" @@ -4266,7 +4287,7 @@ msgstr "طلب غير صالح" #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/cash_flow.html:51 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/cash_flow.html:54 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_delete.html:23 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_delete.html:18 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_delete.html:17 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/ledger_delete.html:18 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/product/product_delete.html:19 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/po_delete.html:23 @@ -4322,57 +4343,61 @@ msgstr "إدارة علاقات العملاء" msgid "add car" msgstr "إضافة سيارة" -#: templates/header.html:85 templates/header.html:90 +#: templates/header.html:80 +msgid "Cars List" +msgstr "قائمة السيارات" + +#: templates/header.html:93 templates/header.html:98 msgid "sales" msgstr "المبيعات" -#: templates/header.html:94 +#: templates/header.html:102 msgid "create quotation" msgstr "إنشاء عرض" -#: templates/header.html:102 +#: templates/header.html:110 msgid "quotations" msgstr "العروض" -#: templates/header.html:110 +#: templates/header.html:118 msgid "orders" msgstr "الطلبات" -#: templates/header.html:118 +#: templates/header.html:126 msgid "invoices" msgstr "الفواتير" -#: templates/header.html:138 templates/header.html:143 +#: templates/header.html:146 templates/header.html:151 msgid "crm" msgstr "إدارة علاقات العملاء" -#: templates/header.html:147 +#: templates/header.html:155 msgid "leads" msgstr "الفرص" -#: templates/header.html:190 templates/header.html:195 +#: templates/header.html:198 templates/header.html:203 msgid "Financials" msgstr "البيانات المالية" -#: templates/header.html:199 +#: templates/header.html:207 #: venv/lib/python3.11/site-packages/django_ledger/models/accounts.py:436 #: venv/lib/python3.11/site-packages/django_ledger/models/chart_of_accounts.py:192 msgid "Chart of Accounts" msgstr "قائمة الحسابات" -#: templates/header.html:206 +#: templates/header.html:214 #: templates/ledger/bank_accounts/bank_account_list.html:4 #: templates/ledger/bank_accounts/bank_account_list.html:10 #: venv/lib/python3.11/site-packages/django_ledger/views/bank_account.py:33 msgid "Bank Accounts" msgstr "الحسابات المصرفية" -#: templates/header.html:213 templates/items/service/service_list.html:10 +#: templates/header.html:221 templates/items/service/service_list.html:10 #: venv/lib/python3.11/site-packages/django_ledger/views/item.py:297 msgid "Services" msgstr "الخدمات" -#: templates/header.html:221 templates/items/expenses/expense_create.html:5 +#: templates/header.html:229 templates/items/expenses/expense_create.html:5 #: templates/items/expenses/expense_update.html:5 #: templates/items/expenses/expenses_list.html:4 #: templates/items/expenses/expenses_list.html:10 @@ -4382,48 +4407,48 @@ msgstr "الخدمات" msgid "Expenses" msgstr "المصروفات" -#: templates/header.html:229 +#: templates/header.html:237 msgid "vendors" msgstr "الموردين" -#: templates/header.html:236 +#: templates/header.html:244 msgid "bills" msgstr "الفواتير" -#: templates/header.html:247 +#: templates/header.html:255 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:11 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:41 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:42 msgid "Reports" msgstr "التقارير" -#: templates/header.html:268 +#: templates/header.html:276 msgid "Cash Flow" msgstr "التدفق النقدي" -#: templates/header.html:277 templates/ledger/reports/income_statement.html:31 +#: templates/header.html:285 templates/ledger/reports/income_statement.html:31 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_detail.html:146 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_update.html:71 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/income_statement.html:31 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_detail.html:133 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_update.html:70 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:51 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:52 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/unit/unit_detail.html:27 msgid "Income Statement" msgstr "بيان الدخل" -#: templates/header.html:286 templates/ledger/reports/balance_sheet.html:36 +#: templates/header.html:294 templates/ledger/reports/balance_sheet.html:36 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_detail.html:144 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_update.html:66 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/balance_sheet.html:30 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_detail.html:131 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_update.html:65 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:48 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:49 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/unit/unit_detail.html:25 #: venv/lib/python3.11/site-packages/django_ledger/views/financial_statement.py:59 msgid "Balance Sheet" msgstr "الميزانية العمومية" -#: templates/header.html:415 templates/header.html:419 +#: templates/header.html:427 templates/header.html:431 msgid "profile" msgstr "الملف الشخصي" @@ -4455,13 +4480,13 @@ msgstr "تفاصيل السيارة" msgid "year" msgstr "السنة" -#: templates/inventory/car_detail.html:27 templates/inventory/car_form.html:78 +#: templates/inventory/car_detail.html:27 templates/inventory/car_form.html:75 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:82 #: templates/inventory/car_list.html:79 msgid "make" msgstr "الصانع" -#: templates/inventory/car_detail.html:31 templates/inventory/car_form.html:101 +#: templates/inventory/car_detail.html:31 templates/inventory/car_form.html:98 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:99 #: templates/inventory/car_list.html:97 msgid "model" @@ -4471,7 +4496,7 @@ msgstr "الموديل" msgid "series" msgstr "السلسلة" -#: templates/inventory/car_detail.html:39 templates/inventory/car_form.html:88 +#: templates/inventory/car_detail.html:39 templates/inventory/car_form.html:85 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:143 #: templates/inventory/car_list.html:141 msgid "trim" @@ -4479,7 +4504,7 @@ msgstr "الفئة" #: templates/inventory/car_detail.html:69 #: templates/inventory/car_detail.html:421 -#: templates/inventory/car_form.html:111 templates/inventory/car_form.html:224 +#: templates/inventory/car_form.html:109 templates/inventory/car_form.html:219 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:252 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:279 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:299 @@ -4488,7 +4513,7 @@ msgid "specifications" msgstr "المواصفات" #: templates/inventory/car_detail.html:72 -#: templates/inventory/car_inventory.html:116 +#: templates/inventory/car_inventory.html:114 #: templates/ledger/coa_accounts/account_detail.html:92 #: templates/representatives/representative_list.html:30 #: templates/sales/estimates/estimate_list.html:49 @@ -4580,7 +4605,7 @@ msgstr "ينتهي في" #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/tags/invoice_table.html:39 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:16 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:16 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:94 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:95 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/product/tags/product_table.html:15 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/service/tags/services_table.html:15 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/uom/tags/uom_table.html:11 @@ -4615,10 +4640,6 @@ msgstr "إلى صالة العرض" msgid "Are you sure you want to reserve this car?" msgstr "هل أنت متأكد أنك تريد حجز هذه السيارة؟" -#: templates/inventory/car_detail.html:473 -msgid "Error loading form. Please try again later" -msgstr "حدث خطأ أثناء تحميل النموذج. يرجى المحاولة مرة أخرى لاحقًا." - #: templates/inventory/car_detail.html:511 #: templates/inventory/car_list.html:542 #: templates/partials/specifications_modal.html:11 @@ -4642,18 +4663,11 @@ msgstr "التفاصيل المالية السيارة" msgid "Finance Details for" msgstr "التفاصيل المالية لـ" -#: templates/inventory/car_form.html:47 -#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:45 -#: templates/representatives/representative_list.html:9 -#: templates/representatives/representative_list.html:10 -msgid "Search" -msgstr "بحث" - -#: templates/inventory/car_form.html:67 templates/inventory/car_form.html:86 -#: templates/inventory/car_form.html:99 templates/inventory/car_form.html:265 -#: templates/inventory/car_form.html:448 templates/inventory/car_form.html:465 -#: templates/inventory/car_form.html:466 templates/inventory/car_form.html:486 -#: templates/inventory/car_form.html:505 +#: templates/inventory/car_form.html:64 templates/inventory/car_form.html:83 +#: templates/inventory/car_form.html:96 templates/inventory/car_form.html:260 +#: templates/inventory/car_form.html:445 templates/inventory/car_form.html:462 +#: templates/inventory/car_form.html:463 templates/inventory/car_form.html:485 +#: templates/inventory/car_form.html:504 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:105 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:126 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:148 @@ -4667,24 +4681,24 @@ msgstr "بحث" msgid "Select" msgstr "اختيار" -#: templates/inventory/car_form.html:118 +#: templates/inventory/car_form.html:116 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:259 #: templates/inventory/car_list.html:27 templates/inventory/car_list.html:214 msgid "options" msgstr "الخيارات" -#: templates/inventory/car_form.html:200 +#: templates/inventory/car_form.html:196 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:262 msgid "Save and Add Another" msgstr "حفظ وإضافة آخر" -#: templates/inventory/car_form.html:203 +#: templates/inventory/car_form.html:199 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:265 msgid "Save and Go to Inventory" msgstr "حفظ والانتقال إلى المخزون" -#: templates/inventory/car_form.html:234 templates/inventory/car_form.html:253 -#: templates/inventory/car_form.html:273 templates/inventory/car_form.html:285 +#: templates/inventory/car_form.html:229 templates/inventory/car_form.html:248 +#: templates/inventory/car_form.html:268 templates/inventory/car_form.html:280 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:281 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:287 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:301 @@ -4692,7 +4706,7 @@ msgstr "حفظ والانتقال إلى المخزون" #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:333 #: templates/modal/confirm_modal.html:11 templates/modal/confirm_modal.html:20 #: templates/modal/error_modal.html:17 -#: templates/modal/event_details_modal.html:19 +#: templates/modal/event_details_modal.html:21 #: templates/partials/scanner_modal.html:6 #: templates/partials/specifications_modal.html:8 #: venv/lib/python3.11/site-packages/appointment/templates/modal/confirm_modal.html:18 @@ -4701,45 +4715,51 @@ msgstr "حفظ والانتقال إلى المخزون" msgid "Close" msgstr "إغلاق" -#: templates/inventory/car_form.html:251 +#: templates/inventory/car_form.html:246 #: venv/lib/python3.11/site-packages/click/core.py:1396 msgid "Options" msgstr "الخيارات" -#: templates/inventory/car_form.html:260 +#: templates/inventory/car_form.html:255 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:308 #: templates/inventory/car_list.html:152 msgid "equipment" msgstr "التجهيزات" -#: templates/inventory/car_form.html:284 +#: templates/inventory/car_form.html:279 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:332 msgid "scanner" msgstr "الماسح الضوئي" -#: templates/inventory/car_form.html:289 +#: templates/inventory/car_form.html:284 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:337 #: templates/partials/scanner_modal.html:10 msgid "VIN will appear here." msgstr "رقم الهيكل سيظهر هنا." -#: templates/inventory/car_form.html:290 +#: templates/inventory/car_form.html:285 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:338 #: templates/partials/scanner_modal.html:11 msgid "Use OCR Fallback" msgstr "التعرف الآلي على الحروف" -#: templates/inventory/car_form.html:360 templates/inventory/car_form.html:361 +#: templates/inventory/car_form.html:356 templates/inventory/car_form.html:357 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:409 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:410 msgid "Please enter a valid VIN." msgstr "الرجاء إدخال رقم هيكل صالح مكون من 17 حرفًا." -#: templates/inventory/car_form.html:383 +#: templates/inventory/car_form.html:379 #: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:432 msgid "An error occurred while decoding the VIN." msgstr "حدث خطأ أثناء فك تشفير الهيكل" +#: ⁨templates/inventory/car_form_qabl alfalsafa.html⁩:45 +#: templates/representatives/representative_list.html:9 +#: templates/representatives/representative_list.html:10 +msgid "Search" +msgstr "بحث" + #: templates/inventory/car_inventory.html:52 msgid "Stock" msgstr "المخزون" @@ -4765,11 +4785,11 @@ msgstr "العمر" msgid "No Color" msgstr "بدون لون" -#: templates/inventory/car_inventory.html:125 +#: templates/inventory/car_inventory.html:120 msgid "No cars available." msgstr "لا توجد سيارات متاحة." -#: templates/inventory/car_inventory.html:126 +#: templates/inventory/car_inventory.html:121 msgid "Add a Car" msgstr "إضافة سيارة" @@ -4919,7 +4939,7 @@ msgstr "إلى" #: templates/plans/order_detail_table.html:10 #: templates/sales/estimates/estimate_preview.html:294 #: templates/sales/estimates/sale_order_preview.html:265 -#: templates/sales/invoices/invoice_detail.html:242 +#: templates/sales/invoices/invoice_detail.html:244 msgid "VAT" msgstr "ضريبة القيمة المضافة" @@ -4974,10 +4994,10 @@ msgstr "شكرًا لاختيارك لنا. نحن نقدر عملك معنا." #: templates/inventory/transfer_preview.html:231 #: templates/ledger/bills/bill_detail.html:215 -#: templates/sales/estimates/estimate_detail.html:127 +#: templates/sales/estimates/estimate_detail.html:128 #: templates/sales/estimates/estimate_preview.html:275 #: templates/sales/estimates/sale_order_preview.html:243 -#: templates/sales/invoices/invoice_detail.html:219 +#: templates/sales/invoices/invoice_detail.html:220 msgid "Unit Price" msgstr "سعر الوحدة" @@ -5109,7 +5129,7 @@ msgstr "عرض الفاتورة" #: templates/ledger/bills/bill_detail.html:61 #: templates/ledger/bills/bill_update_form.html:4 #: templates/ledger/bills/bill_update_form.html:7 -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:387 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:392 #: venv/lib/python3.11/site-packages/django_ledger/models/entity.py:3143 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/includes/card_bill.html:11 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/includes/card_bill.html:61 @@ -5168,7 +5188,7 @@ msgstr "المبلغ الكلي" #: templates/ledger/bills/bill_detail.html:158 #: templates/ledger/bills/bill_list.html:40 -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:351 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:356 msgid "Bill Number" msgstr "رقم الفاتورة" @@ -5190,7 +5210,7 @@ msgstr "حالة الفاتورة" #: templates/sales/estimates/estimate_list.html:31 #: templates/sales/invoices/invoice_detail.html:195 #: templates/sales/invoices/invoice_list.html:38 -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:339 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:344 #: venv/lib/python3.11/site-packages/django_ledger/models/estimate.py:224 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:301 #: venv/lib/python3.11/site-packages/django_ledger/models/purchase_order.py:193 @@ -5206,7 +5226,7 @@ msgstr "مرفوض" #: templates/ledger/bills/bill_detail.html:199 #: templates/sales/invoices/invoice_detail.html:201 #: templates/sales/invoices/invoice_list.html:40 -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:341 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:346 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:303 msgid "Paid" msgstr "مدفوع" @@ -5216,8 +5236,8 @@ msgid "Vat Amount" msgstr "مبلغ ضريبة القيمة المضافة" #: templates/ledger/bills/bill_detail.html:236 -#: templates/sales/estimates/estimate_detail.html:165 -#: templates/sales/invoices/invoice_detail.html:256 +#: templates/sales/estimates/estimate_detail.html:167 +#: templates/sales/invoices/invoice_detail.html:258 msgid "Grand Total" msgstr "الإجمالي" @@ -5231,7 +5251,7 @@ msgstr "إنشاء فاتورة" #: templates/ledger/bills/bill_list.html:4 #: templates/ledger/bills/bill_list.html:8 -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:388 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:393 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/estimate_detail.html:84 msgid "Bills" msgstr "الفواتير" @@ -5241,7 +5261,7 @@ msgid "Search bills..." msgstr "ابحث عن الفواتير ..." #: templates/ledger/bills/bill_list.html:43 -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:355 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:360 msgid "Bill Status" msgstr "حالة الفاتورة" @@ -5284,7 +5304,9 @@ msgstr "هل أنت متأكد أنك تريد حذف هذا الحساب؟" #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/account/tags/accounts_table.html:24 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/tags/balance_sheet_statement.html:21 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:10 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:43 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:46 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/transactions/tags/txs_table.html:10 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/transactions/tags/txs_table.html:46 msgid "Account Name" msgstr "اسم الحساب" @@ -5312,9 +5334,11 @@ msgstr "نوع الرصيد" #: templates/ledger/coa_accounts/account_list.html:92 #: templates/sales/payments/payment_details.html:18 #: venv/lib/python3.11/site-packages/django_ledger/models/accounts.py:423 -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:476 +#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:424 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:13 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:45 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:48 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/transactions/tags/txs_table.html:13 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/transactions/tags/txs_table.html:48 msgid "Debit" msgstr "مدين" @@ -5323,9 +5347,11 @@ msgstr "مدين" #: templates/ledger/coa_accounts/account_list.html:94 #: templates/sales/payments/payment_details.html:19 #: venv/lib/python3.11/site-packages/django_ledger/models/accounts.py:422 -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:475 +#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:423 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:12 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:44 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:47 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/transactions/tags/txs_table.html:12 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/transactions/tags/txs_table.html:47 msgid "Credit" msgstr "دائن" @@ -5385,12 +5411,14 @@ msgstr "لم يتم العثور على حساب." #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:14 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:11 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/includes/po_item_formset.html:21 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/transactions/tags/txs_table.html:11 msgid "Unit" msgstr "الوحدة" #: templates/ledger/reports/balance_sheet.html:43 #: templates/ledger/reports/cash_flow_statement.html:38 -#: templates/ledger/reports/components/period_navigator.html:9 +#: templates/ledger/reports/components/period_navigator.html:10 +#: templates/ledger/reports/income_statement.html:35 #: venv/lib/python3.11/site-packages/django_ledger/models/entity.py:3158 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/balance_sheet.html:37 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/cash_flow.html:38 @@ -5401,7 +5429,7 @@ msgstr "السنة المالية" #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_detail.html:148 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/financial_statements/cash_flow.html:31 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_detail.html:135 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:54 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:55 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/unit/unit_detail.html:29 msgid "Cash Flow Statement" msgstr "بيان التدفقات النقدية" @@ -5414,22 +5442,22 @@ msgstr "بيان التدفقات النقدية" msgid "Download PDF" msgstr "تنزيل PDF" -#: templates/ledger/reports/components/period_navigator.html:36 +#: templates/ledger/reports/components/period_navigator.html:37 msgid "Quarter" msgstr "ربع السنة" -#: templates/ledger/reports/components/period_navigator.html:47 +#: templates/ledger/reports/components/period_navigator.html:48 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/components/period_navigator.html:26 msgid "Month" msgstr "الشهر" -#: templates/ledger/reports/components/period_navigator.html:62 +#: templates/ledger/reports/components/period_navigator.html:63 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/components/period_navigator.html:37 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/includes/widget_ic.html:17 msgid "thru" msgstr "عبر" -#: templates/ledger/reports/components/period_navigator.html:71 +#: templates/ledger/reports/components/period_navigator.html:72 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/components/period_navigator.html:41 msgid "Go To Current Month" msgstr "الذهاب إلى الشهر الحالي" @@ -5762,12 +5790,7 @@ msgstr[3] "سينتهي حسابك %(user)s خلال %(days)s أيام." msgstr[4] "سينتهي حسابك %(user)s خلال %(days)s أيام." msgstr[5] "سينتهي حسابك %(user)s خلال %(days)s أيام." -#: templates/modal/event_details_modal.html:8 -#: venv/lib/python3.11/site-packages/appointment/templates/modal/event_details_modal.html:8 -msgid "Event Details" -msgstr "تفاصيل الحدث" - -#: templates/modal/event_details_modal.html:17 +#: templates/modal/event_details_modal.html:19 #: venv/lib/python3.11/site-packages/appointment/templates/modal/event_details_modal.html:17 msgid "Go" msgstr "اذهب" @@ -6261,7 +6284,7 @@ msgstr "مكتمل" msgid "canceled" msgstr "ملغى" -#: templates/sales/estimates/estimate_detail.html:145 +#: templates/sales/estimates/estimate_detail.html:147 msgid "Vat" msgstr "الضريبة" @@ -6283,7 +6306,7 @@ msgid "Completed" msgstr "مكتمل" #: templates/sales/estimates/estimate_list.html:41 -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:343 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:348 #: venv/lib/python3.11/site-packages/django_ledger/models/estimate.py:227 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:304 #: venv/lib/python3.11/site-packages/django_ledger/models/purchase_order.py:197 @@ -6416,7 +6439,7 @@ msgstr "إجراء الدفع" #: templates/sales/payments/payment_details.html:4 #: templates/sales/payments/payment_details.html:8 -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:511 +#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:466 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:91 msgid "Transactions" msgstr "المعاملات" @@ -6427,9 +6450,10 @@ msgstr "#" #: templates/sales/payments/payment_details.html:15 #: templates/sales/payments/payment_list.html:22 -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:313 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:373 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:9 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html:8 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/transactions/tags/txs_table.html:8 msgid "Timestamp" msgstr "الطابع الزمني" @@ -7311,19 +7335,27 @@ msgstr "تذكير: موعد قادم" msgid "Admin Reminder: Upcoming Appointment" msgstr "تذكير للإدارة: موعد قادم" +#: venv/lib/python3.11/site-packages/appointment/templates/administration/user_profile.html:50 +msgid "Appointment Information" +msgstr "معلومات الموعد" + #: venv/lib/python3.11/site-packages/appointment/templates/base_templates/base.html:7 msgid "Appointment application" msgstr "تطبيق المواعيد" +#: venv/lib/python3.11/site-packages/appointment/templates/email_sender/admin_new_appointment_email.html:58 msgid "A new appointment request has been received for" msgstr "تم استلام طلب موعد جديد لـ" +#: venv/lib/python3.11/site-packages/appointment/templates/email_sender/admin_new_appointment_email.html:58 msgid "Here are the details:" msgstr "فيما يلي التفاصيل:" +#: venv/lib/python3.11/site-packages/appointment/templates/email_sender/admin_new_appointment_email.html:75 msgid "Please ensure that" msgstr "يرجى التأكد من أن" +#: venv/lib/python3.11/site-packages/appointment/templates/email_sender/admin_new_appointment_email.html:75 msgid "reviews this appointment request and takes the necessary action." msgstr "يقوم بمراجعة طلب الموعد هذا واتخاذ الإجراءات اللازمة." @@ -7381,6 +7413,10 @@ msgstr "أوه! حدث خطأ ما." msgid "Go home" msgstr "الذهاب إلى الصفحة الرئيسية" +#: venv/lib/python3.11/site-packages/appointment/templates/modal/event_details_modal.html:8 +msgid "Event Details" +msgstr "تفاصيل الحدث" + #: venv/lib/python3.11/site-packages/appointment/tests/models/test_working_hours.py:37 #: venv/lib/python3.11/site-packages/django/utils/dates.py:7 msgid "Monday" @@ -7470,18 +7506,27 @@ msgid "Not set." msgstr "غير محدد" #: venv/lib/python3.11/site-packages/appointment/utils/date_time.py:84 +#, fuzzy, python-format +#| msgid "%(count)d day" +#| msgid_plural "%(count)d days" msgid "%(count)d day" msgid_plural "%(count)d days" msgstr[0] "%(num)d يوم" msgstr[1] "%(num)d أيام" #: venv/lib/python3.11/site-packages/appointment/utils/date_time.py:88 +#, fuzzy, python-format +#| msgid "%(count)d hour" +#| msgid_plural "%(count)d hours" msgid "%(count)d hour" msgid_plural "%(count)d hours" msgstr[0] "%(num)d ساعة" msgstr[1] "%(num)d ساعات" #: venv/lib/python3.11/site-packages/appointment/utils/date_time.py:92 +#, fuzzy, python-format +#| msgid "%(count)d minute" +#| msgid_plural "%(count)d minutes" msgid "%(count)d minute" msgid_plural "%(count)d minutes" msgstr[0] "%(num)d دقيقة" @@ -9345,7 +9390,7 @@ msgstr "اجعل نشطاً" #: venv/lib/python3.11/site-packages/django_ledger/forms/bill.py:49 #: venv/lib/python3.11/site-packages/django_ledger/forms/invoice.py:64 -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:375 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:380 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:349 #: venv/lib/python3.11/site-packages/django_ledger/models/purchase_order.py:219 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/includes/card_po.html:26 @@ -9580,11 +9625,11 @@ msgstr "اسم المصروف" msgid "Inventory Name" msgstr "اسم المخزون" -#: venv/lib/python3.11/site-packages/django_ledger/forms/journal_entry.py:30 +#: venv/lib/python3.11/site-packages/django_ledger/forms/journal_entry.py:37 msgid "Cannot create new Journal Entries on a locked Ledger." msgstr "لا يمكن إنشاء إدخالات يومية جديدة على دفتر حسابات مقفل." -#: venv/lib/python3.11/site-packages/django_ledger/forms/journal_entry.py:56 +#: venv/lib/python3.11/site-packages/django_ledger/forms/journal_entry.py:63 #: venv/lib/python3.11/site-packages/django_ledger/models/entity.py:3154 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_detail.html:95 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/includes/estimate_item_table.html:9 @@ -9592,7 +9637,7 @@ msgid "Entity Unit" msgstr "وحدة الكيان" #: venv/lib/python3.11/site-packages/django_ledger/forms/ledger.py:43 -#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:192 +#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:193 msgid "Ledger External ID" msgstr "معرف دفتر الحسابات الخارجي" @@ -9616,7 +9661,7 @@ msgstr "تمييز كمنفذ" msgid "PO Notes" msgstr "ملاحظات طلب الشراء" -#: venv/lib/python3.11/site-packages/django_ledger/forms/transactions.py:81 +#: venv/lib/python3.11/site-packages/django_ledger/forms/transactions.py:77 msgid "Credits and Debits do not balance." msgstr "الأرصدة والخصوم غير متوازنة." @@ -9628,14 +9673,14 @@ msgstr "يجب أن يتكون اسم الوحدة من 10 أحرف على ال msgid "Must provide all City/State/Zip/Country" msgstr "يجب توفير جميع المعلومات: المدينة/الولاية/الرمز البريدي/الدولة" -#: venv/lib/python3.11/site-packages/django_ledger/io/io_core.py:844 +#: venv/lib/python3.11/site-packages/django_ledger/io/io_core.py:847 msgid "Cannot commit on locked ledger" msgstr "لا يمكن تأكيد المعاملات على دفتر حسابات مقفل" -#: venv/lib/python3.11/site-packages/django_ledger/io/io_core.py:958 -#: venv/lib/python3.11/site-packages/django_ledger/io/io_core.py:1013 -#: venv/lib/python3.11/site-packages/django_ledger/io/io_core.py:1068 -#: venv/lib/python3.11/site-packages/django_ledger/io/io_core.py:1122 +#: venv/lib/python3.11/site-packages/django_ledger/io/io_core.py:961 +#: venv/lib/python3.11/site-packages/django_ledger/io/io_core.py:1016 +#: venv/lib/python3.11/site-packages/django_ledger/io/io_core.py:1071 +#: venv/lib/python3.11/site-packages/django_ledger/io/io_core.py:1125 msgid "PDF support not enabled. Install PDF support from Pipfile." msgstr "دعم PDF غير ممكّن. قم بتثبيت دعم PDF من Pipfile." @@ -9861,7 +9906,7 @@ msgid "Account Balance Type" msgstr "نوع رصيد الحساب" #: venv/lib/python3.11/site-packages/django_ledger/models/accounts.py:432 -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:328 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:392 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/account/tags/accounts_table.html:28 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/includes/card_journal_entry.html:25 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:13 @@ -9879,14 +9924,14 @@ msgstr "يُسمح بحساب افتراضي واحد فقط للدور." #: venv/lib/python3.11/site-packages/django_ledger/models/bank_account.py:126 #: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:69 -#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:376 +#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:378 #: venv/lib/python3.11/site-packages/django_ledger/models/entity.py:3151 #: venv/lib/python3.11/site-packages/django_ledger/models/estimate.py:251 msgid "Entity Model" msgstr "نموذج الكيان" #: venv/lib/python3.11/site-packages/django_ledger/models/bank_account.py:143 -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:459 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:464 #: venv/lib/python3.11/site-packages/django_ledger/models/estimate.py:376 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:429 #: venv/lib/python3.11/site-packages/django_ledger/models/purchase_order.py:303 @@ -9897,84 +9942,84 @@ msgstr "يجب تمرير user_model عند استخدام entity_slug." msgid "Bank Account" msgstr "الحساب المصرفي" -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:356 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:361 msgid "External Reference Number" msgstr "رقم المرجع الخارجي" -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:363 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:368 msgid "Bill Additional Info" msgstr "معلومات إضافية عن الفاتورة" -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:367 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:372 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_detail.html:85 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/tags/bill_item_formset.html:8 msgid "Bill Items" msgstr "بنود الفاتورة" -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:373 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:378 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:347 #: venv/lib/python3.11/site-packages/django_ledger/models/purchase_order.py:235 msgid "Associated Customer Job/Estimate" msgstr "الوظيفة/التقدير المرتبط بالعميل" -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:376 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:381 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:350 #: venv/lib/python3.11/site-packages/django_ledger/models/purchase_order.py:220 msgid "In Review Date" msgstr "تاريخ المراجعة" -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:377 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:382 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:351 #: venv/lib/python3.11/site-packages/django_ledger/models/purchase_order.py:221 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/includes/card_po.html:38 msgid "Approved Date" msgstr "تاريخ الموافقة" -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:378 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:383 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:352 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/includes/card_bill.html:138 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/includes/card_invoice.html:126 msgid "Paid Date" msgstr "تاريخ الدفع" -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:379 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:384 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:353 #: venv/lib/python3.11/site-packages/django_ledger/models/purchase_order.py:222 msgid "Void Date" msgstr "تاريخ الإبطال" -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:380 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:385 #: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:354 #: venv/lib/python3.11/site-packages/django_ledger/models/purchase_order.py:224 msgid "Canceled Date" msgstr "تاريخ الإلغاء" -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:1124 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:1139 #, python-format msgid "Do you want to mark Bill %s as Draft?" msgstr "هل تريد وضع الفاتورة %s كمسودة؟" -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:1232 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:1247 #, python-format msgid "Do you want to mark Bill %s as In Review?" msgstr "هل تريد وضع الفاتورة %s قيد المراجعة؟" -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:1342 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:1357 #, python-format msgid "Do you want to mark Bill %s as Approved?" msgstr "هل تريد وضع الفاتورة %s على أنها موافق عليها؟" -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:1468 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:1483 #, python-format msgid "Do you want to mark Bill %s as Paid?" msgstr "هل تريد وضع الفاتورة %s على أنها مدفوعة؟" -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:1571 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:1586 #, python-format msgid "Do you want to void Bill %s?" msgstr "هل تريد إبطال الفاتورة %s؟" -#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:1644 +#: venv/lib/python3.11/site-packages/django_ledger/models/bill.py:1659 #, python-format msgid "Do you want to mark Bill %s as Canceled?" msgstr "هل تريد وضع الفاتورة %s كملغاة؟" @@ -9989,7 +10034,7 @@ msgstr "الكيان" #: venv/lib/python3.11/site-packages/django_ledger/models/chart_of_accounts.py:184 #: venv/lib/python3.11/site-packages/django_ledger/models/items.py:128 #: venv/lib/python3.11/site-packages/django_ledger/models/items.py:541 -#: venv/lib/python3.11/site-packages/django_ledger/models/unit.py:131 +#: venv/lib/python3.11/site-packages/django_ledger/models/unit.py:135 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/chart_of_accounts/includes/coa_card.html:23 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/expense/tags/expense_item_table.html:12 msgid "Is Active" @@ -10003,15 +10048,15 @@ msgstr "وصف قائمة الحسابات" msgid "Chart of Account" msgstr "قائمة الحسابات" -#: venv/lib/python3.11/site-packages/django_ledger/models/chart_of_accounts.py:674 +#: venv/lib/python3.11/site-packages/django_ledger/models/chart_of_accounts.py:678 msgid "The Chart of Accounts is currently active." msgstr "قائمة الحسابات نشطة حاليًا." -#: venv/lib/python3.11/site-packages/django_ledger/models/chart_of_accounts.py:701 +#: venv/lib/python3.11/site-packages/django_ledger/models/chart_of_accounts.py:705 msgid "The Chart of Accounts is currently not active." msgstr "قائمة الحسابات غير نشطة حاليًا." -#: venv/lib/python3.11/site-packages/django_ledger/models/chart_of_accounts.py:848 +#: venv/lib/python3.11/site-packages/django_ledger/models/chart_of_accounts.py:852 msgid "Default Chart of Accounts cannot be deactivated." msgstr "لا يمكن إلغاء تنشيط قائمة الحسابات الافتراضية." @@ -10024,37 +10069,38 @@ msgstr "تم النشر" msgid "Only one Closing Entry for Date Allowed." msgstr "مسموح بإدخال إغلاق واحد فقط لكل تاريخ." -#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:272 +#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:273 msgid "Cannot update transactions of a posted Closing Entry." msgstr "لا يمكن تحديث المعاملات لإدخال إغلاق تم نشره." -#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:286 +#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:287 msgid "" "This action will delete existing closing entry transactions and create new " "ones." msgstr "سيؤدي هذا الإجراء إلى حذف قيود الإغلاق الحالية وإنشاء قيود جديدة." -#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:304 +#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:305 msgid "Cannot delete a posted Closing Entry" msgstr "لا يمكن حذف إدخال إغلاق تم نشره" -#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:317 +#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:319 msgid "This action cannot be undone." msgstr "لا يمكن التراجع عن هذا الإجراء." -#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:371 +#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:373 msgid "Account Model" msgstr "نموذج الحساب" -#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:385 +#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:387 +#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:428 msgid "Transaction Type" msgstr "نوع المعاملة" -#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:386 +#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:388 msgid "Closing Entry Balance" msgstr "رصيد إدخال الإغلاق" -#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:396 +#: venv/lib/python3.11/site-packages/django_ledger/models/closing_entry.py:398 msgid "Closing Entry Model" msgstr "نموذج إدخال الإغلاق" @@ -10100,7 +10146,7 @@ msgid "Proposed Activity" msgstr "النشاط المقترح" #: venv/lib/python3.11/site-packages/django_ledger/models/data_import.py:253 -#: venv/lib/python3.11/site-packages/django_ledger/models/unit.py:140 +#: venv/lib/python3.11/site-packages/django_ledger/models/unit.py:144 msgid "Entity Unit Model" msgstr "نموذج وحدة الكيان" @@ -10171,8 +10217,8 @@ msgstr "" "يجب استدعاء إغلاق الدفاتر إما بتحديد تاريخ الإغلاق أو نموذج إدخال الإغلاق." #: venv/lib/python3.11/site-packages/django_ledger/models/entity.py:3141 -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:342 -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:483 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:407 +#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:433 msgid "Journal Entry" msgstr "إدخال دفتر اليومية" @@ -10353,32 +10399,32 @@ msgstr "معلومات إضافية عن الفاتورة" msgid "Invoice Items" msgstr "عناصر الفاتورة" -#: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:1062 +#: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:1070 #, python-format msgid "Do you want to mark Invoice %s as Draft?" msgstr "هل تريد وضع الفاتورة %s كمسودة؟" -#: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:1153 +#: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:1161 #, python-format msgid "Do you want to mark Invoice %s as In Review?" msgstr "هل تريد وضع الفاتورة %s قيد المراجعة؟" -#: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:1258 +#: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:1266 #, python-format msgid "Do you want to mark Invoice %s as Approved?" msgstr "هل تريد وضع الفاتورة %s على أنها معتمدة؟" -#: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:1367 +#: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:1375 #, python-format msgid "Do you want to mark Invoice %s as Paid?" msgstr "هل تريد وضع الفاتورة %s على أنها مدفوعة؟" -#: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:1474 +#: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:1482 #, python-format msgid "Do you want to mark Invoice %s as Void?" msgstr "هل تريد إبطال الفاتورة %s؟" -#: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:1549 +#: venv/lib/python3.11/site-packages/django_ledger/models/invoice.py:1557 #, python-format msgid "Do you want to mark Invoice %s as Canceled?" msgstr "هل تريد إلغاء الفاتورة %s؟" @@ -10551,7 +10597,7 @@ msgid "Received" msgstr "تم الاستلام" #: venv/lib/python3.11/site-packages/django_ledger/models/items.py:1050 -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:319 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:380 msgid "Associated Entity Unit" msgstr "وحدة الكيان المرتبطة" @@ -10631,110 +10677,110 @@ msgstr "إيرادات التقدير/العقد لكل وحدة." msgid "Total Estimate/Contract Revenue." msgstr "إجمالي إيرادات التقدير/العقد." -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:290 -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:291 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:348 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:349 msgid "Operating" msgstr "تشغيلية" -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:293 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:351 msgid "Investing" msgstr "استثمارية" -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:294 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:352 msgid "Purchase/Disposition of PPE" msgstr "شراء/التخلص من الممتلكات والمعدات" -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:295 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:353 msgid "Purchase/Disposition of Securities" msgstr "شراء/التخلص من الأوراق المالية" -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:296 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:354 msgid "Investing Activity Other" msgstr "نشاط استثماري آخر" -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:298 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:356 msgid "Financing" msgstr "تمويل" -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:299 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:357 msgid "Payoff of Short Term Debt" msgstr "سداد الدين قصير الأجل" -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:300 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:358 msgid "Payoff of Long Term Debt" msgstr "سداد الدين طويل الأجل" -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:301 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:359 msgid "Issuance of Common Stock, Preferred Stock or Capital Contribution" msgstr "إصدار أسهم عادية، أسهم مفضلة أو مساهمة رأسمالية" -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:302 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:360 msgid "Dividends or Distributions to Shareholders" msgstr "الأرباح أو التوزيعات للمساهمين" -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:303 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:361 msgid "Financing Activity Other" msgstr "نشاط تمويلي آخر" -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:312 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:372 msgid "Journal Entry Number" msgstr "رقم إدخال دفتر اليومية" -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:326 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:390 msgid "Origin" msgstr "الأصل" -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:327 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:391 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/includes/card_journal_entry.html:18 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:12 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:13 msgid "Posted" msgstr "تم النشر" -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:333 -#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:212 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:396 +#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:213 #: venv/lib/python3.11/site-packages/django_ledger/models/mixins.py:216 msgid "Ledger" msgstr "دفتر الأستاذ" -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:343 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:21 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:408 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:19 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:10 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:31 -#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:96 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:32 +#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:91 msgid "Journal Entries" msgstr "إدخالات دفتر اليومية" -#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:635 +#: venv/lib/python3.11/site-packages/django_ledger/models/journal_entry.py:801 msgid "Cannot post an empty Journal Entry." msgstr "لا يمكن نشر إدخال دفتر يومية فارغ." -#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:193 +#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:194 msgid "User Defined Ledger ID" msgstr "معرف دفتر الأستاذ المعرّف بواسطة المستخدم" -#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:194 +#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:195 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:9 msgid "Ledger Name" msgstr "اسم دفتر الأستاذ" -#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:198 +#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:199 msgid "Ledger Entity" msgstr "كيان دفتر الأستاذ" -#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:199 +#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:200 msgid "Posted Ledger" msgstr "دفتر الأستاذ المنشور" -#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:200 +#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:201 msgid "Locked Ledger" msgstr "دفتر الأستاذ المقفل" -#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:201 +#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:202 msgid "Hidden Ledger" msgstr "دفتر الأستاذ المخفي" -#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:213 +#: venv/lib/python3.11/site-packages/django_ledger/models/ledger.py:214 msgid "Ledgers" msgstr "دفاتر الأستاذ" @@ -10901,55 +10947,48 @@ msgstr "هل تريد وضع أمر الشراء %s على أنه تم التن msgid "Do you want to mark Purchase Order %s as Void?" msgstr "هل تريد إبطال أمر الشراء %s؟" -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:480 -msgid "Tx Type" -msgstr "نوع المعاملة" - -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:484 +#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:434 msgid "Journal Entry to be associated with this transaction." msgstr "إدخال دفتر اليومية المرتبط بهذه المعاملة." -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:488 +#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:440 msgid "Account from Chart of Accounts to be associated with this transaction." msgstr "الحساب من مخطط الحسابات المرتبط بهذه المعاملة." -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:494 -msgid "Account of the transaction." -msgstr "حساب المعاملة." +msgid "Amount of the transaction." +msgstr "مبلغ المعاملة." -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:499 -msgid "Tx Description" +msgid "Transaction Description" msgstr "وصف المعاملة" -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:500 -msgid "A description to be included with this individual transaction" -msgstr "وصف يتم تضمينه مع هذه المعاملة الفردية" +msgid "A description to be included with this individual transaction." +msgstr "وصف يتم تضمينه مع هذه المعاملة الفردية." -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:502 +#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:458 msgid "Cleared" msgstr "تمت التسوية" -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:503 +#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:459 msgid "Reconciled" msgstr "تمت المطابقة" -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:510 +#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:465 msgid "Transaction" msgstr "معاملة" -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:541 -msgid "Cannot transact on root accounts" -msgstr "لا يمكن إجراء المعاملات على الحسابات الجذرية" +#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:574 +msgid "Transactions cannot be linked to root accounts." +msgstr "لا يمكن ربط المعاملات بالحسابات الجذرية." -#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:588 +#: venv/lib/python3.11/site-packages/django_ledger/models/transactions.py:586 msgid "Cannot modify transactions on locked journal entries." msgstr "لا يمكن تعديل المعاملات على إدخالات دفتر اليومية المقفلة." -#: venv/lib/python3.11/site-packages/django_ledger/models/unit.py:129 +#: venv/lib/python3.11/site-packages/django_ledger/models/unit.py:133 msgid "Unit Entity" msgstr "كيان الوحدة" -#: venv/lib/python3.11/site-packages/django_ledger/models/unit.py:132 +#: venv/lib/python3.11/site-packages/django_ledger/models/unit.py:136 msgid "Is Hidden" msgstr "مخفي" @@ -10995,11 +11034,8 @@ msgstr "إلغاء التفعيل" #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/account/tags/accounts_table.html:113 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/includes/card_journal_entry.html:43 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_detail_txs.html:64 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_detail_txs.html:70 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_detail_txs.html:76 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_detail_txs.html:82 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:76 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:104 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:105 msgid "Lock" msgstr "قفل" @@ -11095,7 +11131,7 @@ msgstr "أحدث الفواتير" #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_list.html:95 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/closing_entry_list.html:73 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/estimate_list.html:95 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:94 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:97 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/ledger_list.html:98 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/po_list.html:96 msgid "Go to month:" @@ -11109,8 +11145,8 @@ msgstr "الذهاب إلى الشهر:" #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/estimate_list.html:110 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_list.html:94 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/invoice/invoice_list.html:106 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:97 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:109 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:100 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:112 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/ledger_list.html:101 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/ledger_list.html:113 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/po_list.html:99 @@ -11121,7 +11157,7 @@ msgstr "الكل" #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/bills/bill_list.html:107 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/closing_entry_list.html:85 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/estimate/estimate_list.html:107 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:106 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:109 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/ledger_list.html:110 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/purchase_order/po_list.html:108 msgid "Go to year:" @@ -11346,8 +11382,9 @@ msgstr "اذهب إلى" #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/includes/card_closing_entry.html:28 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/includes/card_journal_entry.html:51 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_detail_txs.html:76 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:67 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:112 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:113 msgid "Post" msgstr "نشر" @@ -11357,8 +11394,9 @@ msgstr "تحديث المعاملات" #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/closing_entry/includes/card_closing_entry.html:46 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/includes/card_journal_entry.html:55 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_detail_txs.html:82 #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html:71 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:116 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:117 msgid "UnPost" msgstr "إلغاء النشر" @@ -11761,17 +11799,18 @@ msgid "Invoice Configuration" msgstr "تكوين الفاتورة" #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/includes/card_journal_entry.html:6 -#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:163 +#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:153 msgid "Journal Entry Detail" msgstr "تفاصيل إدخال اليومية" #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/includes/card_journal_entry.html:47 -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:108 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_detail_txs.html:70 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:109 msgid "UnLock" msgstr "إلغاء القفل" #: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_create.html:8 -#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:44 +#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:54 msgid "Create Journal Entry" msgstr "إنشاء إدخال يومية" @@ -11787,15 +11826,15 @@ msgstr "تعديل المعاملات" msgid "Ledger List" msgstr "قائمة دفاتر الأستاذ" -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:123 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:126 msgid "Back to Ledger List" msgstr "العودة إلى قائمة دفاتر الأستاذ" -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:128 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:131 msgid "Lock All" msgstr "قفل الكل" -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:133 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/journal_entry/je_list.html:136 msgid "Post All" msgstr "نشر الكل" @@ -11827,11 +11866,11 @@ msgstr "أقدم تاريخ إدخال اليومية" msgid "Locked by Closing Entry" msgstr "مقفل بإدخال الإغلاق" -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:121 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:122 msgid "Hide" msgstr "إخفاء" -#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:125 +#: venv/lib/python3.11/site-packages/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html:126 msgid "UnHide" msgstr "إلغاء الإخفاء" @@ -12134,47 +12173,51 @@ msgstr "إنشاء عنصر مخزون جديد" msgid "Update Inventory Item" msgstr "تحديث عنصر المخزون" -#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:125 +#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:110 +msgid "Locked Journal Entry. Must unlock ledger to add new Journal Entries." +msgstr "إدخال دفتر اليومية مقفل. يجب إلغاء قفل دفتر الأستاذ لإضافة إدخالات جديدة في دفتر اليومية." + +#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:131 msgid "Update Journal Entry" msgstr "تحديث إدخال اليومية" -#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:194 +#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:175 msgid "Edit Transactions" msgstr "تحرير المعاملات" -#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:211 +#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:192 msgid "Locked Journal Entry. Must unlock to Edit." msgstr "إدخال اليومية مقفل. يجب إلغاء القفل لتحريره." -#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:244 +#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:220 msgid "Cannot update a Locked Journal Entry." msgstr "لا يمكن تحديث إدخال اليومية المقفل." -#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:251 +#: venv/lib/python3.11/site-packages/django_ledger/views/journal_entry.py:227 msgid "Journal Entry has not been posted." msgstr "إدخال اليومية لم يتم نشره." -#: venv/lib/python3.11/site-packages/django_ledger/views/ledger.py:44 +#: venv/lib/python3.11/site-packages/django_ledger/views/ledger.py:43 msgid "Entity Ledgers" msgstr "دفاتر الأستاذ للكيان" -#: venv/lib/python3.11/site-packages/django_ledger/views/ledger.py:96 +#: venv/lib/python3.11/site-packages/django_ledger/views/ledger.py:95 msgid "Create Ledger" msgstr "إنشاء دفتر الأستاذ" -#: venv/lib/python3.11/site-packages/django_ledger/views/ledger.py:145 +#: venv/lib/python3.11/site-packages/django_ledger/views/ledger.py:144 msgid "Update Ledger: " msgstr "تحديث دفتر الأستاذ:" -#: venv/lib/python3.11/site-packages/django_ledger/views/ledger.py:228 +#: venv/lib/python3.11/site-packages/django_ledger/views/ledger.py:225 msgid "Ledger Balance Sheet: " msgstr "الميزانية العمومية لدفتر الأستاذ:" -#: venv/lib/python3.11/site-packages/django_ledger/views/ledger.py:277 +#: venv/lib/python3.11/site-packages/django_ledger/views/ledger.py:273 msgid "Ledger Income Statement: " msgstr "بيان الدخل لدفتر الأستاذ:" -#: venv/lib/python3.11/site-packages/django_ledger/views/ledger.py:331 +#: venv/lib/python3.11/site-packages/django_ledger/views/ledger.py:326 msgid "Ledger Cash Flow Statement: " msgstr "بيان التدفق النقدي لدفتر الأستاذ:" @@ -12186,7 +12229,7 @@ msgstr "رقم ربع غير صالح" msgid "No quarter specified" msgstr "لم يتم تحديد ربع" -#: venv/lib/python3.11/site-packages/django_ledger/views/mixins.py:328 +#: venv/lib/python3.11/site-packages/django_ledger/views/mixins.py:327 msgid "ENTITY_SLUG_URL_KWARG must be provided." msgstr "يجب توفير ENTITY_SLUG_URL_KWARG." @@ -12247,3 +12290,15 @@ msgstr "س" #: venv/lib/python3.11/site-packages/sympy/solvers/simplex.py:565 msgid "y" msgstr "ص" + +#~ msgid "OTP verified successfully!" +#~ msgstr "تم التحقق من رمز التحقق بنجاح!" + +#~ msgid "Invalid OTP. Please try again." +#~ msgstr "رمز التحقق غير صالح. يرجى المحاولة مرة أخرى." + +#~ msgid "Tx Type" +#~ msgstr "نوع المعاملة" + +#~ msgid "Cannot transact on root accounts" +#~ msgstr "لا يمكن إجراء المعاملات على الحسابات الجذرية" diff --git a/requirements.txt b/requirements.txt index c2d803d0..1c1a21b0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -52,7 +52,7 @@ django-debug-toolbar==5.0.1 django-extensions==3.2.3 django-filter==24.3 django-formtools==2.5.1 -django-ledger==0.7.3 +django-ledger==0.7.4.1 django-money==3.5.3 django-next-url-mixin==0.4.0 django-nine==0.2.7 @@ -85,7 +85,6 @@ filelock==3.17.0 fire==0.7.0 Flask==3.1.0 fonttools==4.55.7 -fpdf==1.7.2 fpdf2==2.8.2 frozenlist==1.5.0 fsspec==2024.12.0 diff --git a/static/.DS_Store b/static/.DS_Store index 71c17b68b5d69ac2da8e6d6857274a29accf4881..a0368c9d7c730ac5fc8643875f63ec6de0007229 100644 GIT binary patch delta 225 zcmZo^U~Fk%oZ!!Bw=rNhKcmEE9sy%^es+dJh9ZV|hGd3(h7^X>$pv~1lT}sR>(Rt> z(hY-?^K%Or5CBa@ZoZ34QcivnPyt7_%F2l=)*f>NvN2Sp5TU9dLxGTWn+?Rn**9}5 QIPy#A{EVWTc?70%s&X(CGo&&UF_bZ6G9&|8#hy9&$w@i+Nem1O b0t^g{vOxT9@-0b&&Br7~**0@4{4@su^m!CF delta 38 ucmZqKz}T{Zae_Z%#KwT#{EQ--c?70%PBxZR-TX~blx<>z!DeoSpXLAp%MBy| diff --git a/static/images/logos/logo-d-pdf.png b/static/images/logos/logo-d-pdf.png new file mode 100644 index 0000000000000000000000000000000000000000..742af00194b2a0ed80be0f35ff1d4bf23aff3e31 GIT binary patch literal 12210 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 literal 0 HcmV?d00001 diff --git a/static/js/app_admin/staff_index.js b/static/js/app_admin/staff_index.js index 70b6af40..a76392ea 100644 --- a/static/js/app_admin/staff_index.js +++ b/static/js/app_admin/staff_index.js @@ -217,7 +217,7 @@ function displayEventList(events, date) { eventListHtml += `
` + noEventTxt + `
`; } - eventListHtml += ``; + eventListHtml += ``; const eventListContainer = document.getElementById('event-list-container'); eventListContainer.innerHTML = eventListHtml; @@ -580,10 +580,12 @@ async function showCreateAppointmentModal(defaultStartTime, formattedDate) { if (isUserSuperUser) { staffDropdown = await populateStaffMembers(null, false); staffDropdown.id = "staffSelect"; + staffDropdown.classList.add('form-select') staffDropdown.disabled = false; // Enable dropdown attachEventListenersToDropdown(); // Attach event listener } servicesDropdown.id = "serviceSelect"; + servicesDropdown.classList.add('form-select') servicesDropdown.disabled = false; // Enable dropdown document.getElementById('eventModalBody').innerHTML = prepareCreateAppointmentModalContent(servicesDropdown, staffDropdown, defaultStartTime, formattedDate); @@ -635,6 +637,8 @@ async function getAppointmentData(eventId, isCreatingMode, defaultStartTime) { async function getServiceDropdown(serviceId, isEditMode) { const servicesDropdown = await populateServices(serviceId, !isEditMode); servicesDropdown.id = "serviceSelect"; + servicesDropdown.classList.add('form-select'); + servicesDropdown.classList.add('form-select-sm'); servicesDropdown.disabled = !isEditMode; return servicesDropdown; } @@ -643,6 +647,8 @@ async function getServiceDropdown(serviceId, isEditMode) { async function getStaffDropdown(staffId, isEditMode) { const staffDropdown = await populateStaffMembers(staffId, !isEditMode); staffDropdown.id = "staffSelect"; + staffDropdown.classList.add('form-select'); + staffDropdown.classList.add('form-select-sm'); staffDropdown.disabled = !isEditMode; return staffDropdown; } diff --git a/static/js/appointments.js b/static/js/appointments.js index 1df6b5d3..d554f46e 100644 --- a/static/js/appointments.js +++ b/static/js/appointments.js @@ -15,7 +15,7 @@ const calendar = new FullCalendar.Calendar(calendarEl, { left: 'title', right: 'prev,today,next', }, - height: '400px', + themeSystem: 'bootstrap', nowIndicator: true, bootstrapFontAwesome: { diff --git a/static/js/html2pdf.bundle.min.js b/static/js/html2pdf.bundle.min.js new file mode 100644 index 00000000..9538d6ce --- /dev/null +++ b/static/js/html2pdf.bundle.min.js @@ -0,0 +1,3 @@ +/*! For license information please see html2pdf.bundle.min.js.LICENSE.txt */ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("html2pdf",[],t):"object"==typeof exports?exports.html2pdf=t():e.html2pdf=t()}(self,(function(){return function(){var e,t,r={"./node_modules/@babel/runtime-corejs3/core-js-stable/array/from.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/array/from.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/array/is-array.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/array/is-array.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/date/now.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/date/now.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/instance/bind.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/instance/bind.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/instance/concat.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/instance/concat.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/instance/every.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/instance/every.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/instance/fill.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/instance/fill.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/instance/filter.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/instance/filter.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/instance/for-each.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/instance/for-each.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/instance/includes.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/instance/includes.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/instance/index-of.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/instance/index-of.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/instance/map.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/instance/map.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/instance/reduce.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/instance/reduce.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/instance/reverse.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/instance/reverse.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/instance/slice.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/instance/slice.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/instance/some.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/instance/some.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/instance/starts-with.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/instance/starts-with.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/instance/trim.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/instance/trim.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/instance/values.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/instance/values.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/map.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/map/index.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/object/define-properties.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/object/define-properties.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/object/define-property.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/object/define-property.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/object/get-own-property-descriptor.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/object/get-own-property-descriptors.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/object/get-own-property-symbols.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/object/keys.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/object/keys.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/parse-float.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/parse-float.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/parse-int.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/parse-int.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/promise.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/promise/index.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/reflect/apply.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/reflect/apply.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/reflect/construct.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/reflect/construct.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/reflect/delete-property.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/reflect/delete-property.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/reflect/get-prototype-of.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/reflect/get-prototype-of.js")},"./node_modules/@babel/runtime-corejs3/core-js-stable/symbol.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/stable/symbol/index.js")},"./node_modules/@babel/runtime-corejs3/core-js/array/from.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/features/array/from.js")},"./node_modules/@babel/runtime-corejs3/core-js/array/is-array.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/features/array/is-array.js")},"./node_modules/@babel/runtime-corejs3/core-js/get-iterator-method.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/features/get-iterator-method.js")},"./node_modules/@babel/runtime-corejs3/core-js/get-iterator.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/features/get-iterator.js")},"./node_modules/@babel/runtime-corejs3/core-js/instance/slice.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/features/instance/slice.js")},"./node_modules/@babel/runtime-corejs3/core-js/object/create.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/features/object/create.js")},"./node_modules/@babel/runtime-corejs3/core-js/object/define-property.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/features/object/define-property.js")},"./node_modules/@babel/runtime-corejs3/core-js/object/get-own-property-descriptor.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/features/object/get-own-property-descriptor.js")},"./node_modules/@babel/runtime-corejs3/core-js/object/get-prototype-of.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/features/object/get-prototype-of.js")},"./node_modules/@babel/runtime-corejs3/core-js/object/set-prototype-of.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/features/object/set-prototype-of.js")},"./node_modules/@babel/runtime-corejs3/core-js/promise.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/features/promise/index.js")},"./node_modules/@babel/runtime-corejs3/core-js/reflect/get.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/features/reflect/get.js")},"./node_modules/@babel/runtime-corejs3/core-js/symbol.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/features/symbol/index.js")},"./node_modules/@babel/runtime-corejs3/core-js/symbol/iterator.js":function(e,t,r){e.exports=r("./node_modules/core-js-pure/features/symbol/iterator.js")},"./node_modules/@babel/runtime-corejs3/helpers/esm/arrayLikeToArray.js":function(e,t,r){"use strict";function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);rA){var c=u;u=A,A=c}}else{if("l"!==e&&"landscape"!==e)throw"Invalid orientation: "+e;e="l",A>u&&(c=u,u=A,A=c)}return{width:u,height:A,unit:t,k:a}},t.default=n.jsPDF},"./src/plugin/pagebreaks.js":function(e,t,r){"use strict";r.r(t),r("./node_modules/core-js/modules/es.array.concat.js"),r("./node_modules/core-js/modules/es.array.slice.js"),r("./node_modules/core-js/modules/es.array.join.js"),r("./node_modules/core-js/modules/web.dom-collections.for-each.js"),r("./node_modules/core-js/modules/es.object.keys.js");var n=r("./src/worker.js"),o=r("./src/utils.js"),s={toContainer:n.default.prototype.toContainer};n.default.template.opt.pagebreak={mode:["css","legacy"],before:[],after:[],avoid:[]},n.default.prototype.toContainer=function(){return s.toContainer.call(this).then((function(){var e=this.prop.container,t=this.prop.pageSize.inner.px.height,r=[].concat(this.opt.pagebreak.mode),n={avoidAll:-1!==r.indexOf("avoid-all"),css:-1!==r.indexOf("css"),legacy:-1!==r.indexOf("legacy")},s={},i=this;["before","after","avoid"].forEach((function(t){var r=n.avoidAll&&"avoid"===t;s[t]=r?[]:[].concat(i.opt.pagebreak[t]||[]),s[t].length>0&&(s[t]=Array.prototype.slice.call(e.querySelectorAll(s[t].join(", "))))}));var a=e.querySelectorAll(".html2pdf__page-break");a=Array.prototype.slice.call(a);var A=e.querySelectorAll("*");Array.prototype.forEach.call(A,(function(e){var r={before:!1,after:n.legacy&&-1!==a.indexOf(e),avoid:n.avoidAll};if(n.css){var i=window.getComputedStyle(e),A=["always","page","left","right"];r={before:r.before||-1!==A.indexOf(i.breakBefore||i.pageBreakBefore),after:r.after||-1!==A.indexOf(i.breakAfter||i.pageBreakAfter),avoid:r.avoid||-1!==["avoid","avoid-page"].indexOf(i.breakInside||i.pageBreakInside)}}Object.keys(r).forEach((function(t){r[t]=r[t]||-1!==s[t].indexOf(e)}));var u=e.getBoundingClientRect();if(r.avoid&&!r.before){var c=Math.floor(u.top/t),l=Math.floor(u.bottom/t),d=Math.abs(u.bottom-u.top)/t;l!==c&&d<=1&&(r.before=!0)}if(r.before){var f=(0,o.createElement)("div",{style:{display:"block",height:t-u.top%t+"px"}});e.parentNode.insertBefore(f,e)}r.after&&(f=(0,o.createElement)("div",{style:{display:"block",height:t-u.bottom%t+"px"}}),e.parentNode.insertBefore(f,e.nextSibling))}))}))}},"./src/utils.js":function(e,t,r){"use strict";function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}r.r(t),r.d(t,{objType:function(){return o},createElement:function(){return s},cloneNode:function(){return i},unitConvert:function(){return a},toPx:function(){return A}}),r("./node_modules/core-js/modules/es.number.constructor.js"),r("./node_modules/core-js/modules/es.symbol.js"),r("./node_modules/core-js/modules/es.symbol.description.js"),r("./node_modules/core-js/modules/es.object.to-string.js"),r("./node_modules/core-js/modules/es.symbol.iterator.js"),r("./node_modules/core-js/modules/es.array.iterator.js"),r("./node_modules/core-js/modules/es.string.iterator.js"),r("./node_modules/core-js/modules/web.dom-collections.iterator.js");var o=function(e){var t=n(e);return"undefined"===t?"undefined":"string"===t||e instanceof String?"string":"number"===t||e instanceof Number?"number":"function"===t||e instanceof Function?"function":e&&e.constructor===Array?"array":e&&1===e.nodeType?"element":"object"===t?"object":"unknown"},s=function(e,t){var r=document.createElement(e);if(t.className&&(r.className=t.className),t.innerHTML){r.innerHTML=t.innerHTML;for(var n=r.getElementsByTagName("script"),o=n.length;o-- >0;null)n[o].parentNode.removeChild(n[o])}for(var s in t.style)r.style[s]=t.style[s];return r},i=function e(t,r){for(var n=3===t.nodeType?document.createTextNode(t.nodeValue):t.cloneNode(!1),o=t.firstChild;o;o=o.nextSibling)!0!==r&&1===o.nodeType&&"SCRIPT"===o.nodeName||n.appendChild(e(o,r));return 1===t.nodeType&&("CANVAS"===t.nodeName?(n.width=t.width,n.height=t.height,n.getContext("2d").drawImage(t,0,0)):"TEXTAREA"!==t.nodeName&&"SELECT"!==t.nodeName||(n.value=t.value),n.addEventListener("load",(function(){n.scrollTop=t.scrollTop,n.scrollLeft=t.scrollLeft}),!0)),n},a=function(e,t){if("number"===o(e))return 72*e/96/t;var r={};for(var n in e)r[n]=72*e[n]/96/t;return r},A=function(e,t){return Math.floor(e*t/72*96)}},"./src/worker.js":function(e,t,r){"use strict";r.r(t),r("./node_modules/core-js/modules/es.object.assign.js"),r("./node_modules/core-js/modules/es.array.map.js"),r("./node_modules/core-js/modules/es.object.keys.js"),r("./node_modules/core-js/modules/es.array.concat.js"),r("./node_modules/core-js/modules/es.object.to-string.js"),r("./node_modules/core-js/modules/es.regexp.to-string.js"),r("./node_modules/core-js/modules/es.function.name.js"),r("./node_modules/core-js/modules/web.dom-collections.for-each.js");var n=r("./node_modules/jspdf/dist/jspdf.es.min.js"),o=r("./node_modules/html2canvas/dist/html2canvas.js"),s=r("./src/utils.js"),i=r("./node_modules/es6-promise/dist/es6-promise.js"),a=r.n(i)().Promise,A=function e(t){var r=Object.assign(e.convert(a.resolve()),JSON.parse(JSON.stringify(e.template))),n=e.convert(a.resolve(),r);return(n=n.setProgress(1,e,1,[e])).set(t)};(A.prototype=Object.create(a.prototype)).constructor=A,A.convert=function(e,t){return e.__proto__=t||A.prototype,e},A.template={prop:{src:null,container:null,overlay:null,canvas:null,img:null,pdf:null,pageSize:null},progress:{val:0,state:null,n:0,stack:[]},opt:{filename:"file.pdf",margin:[0,0,0,0],image:{type:"jpeg",quality:.95},enableLinks:!0,html2canvas:{},jsPDF:{}}},A.prototype.from=function(e,t){return this.then((function(){switch(t=t||function(e){switch((0,s.objType)(e)){case"string":return"string";case"element":return"canvas"===e.nodeName.toLowerCase?"canvas":"element";default:return"unknown"}}(e)){case"string":return this.set({src:(0,s.createElement)("div",{innerHTML:e})});case"element":return this.set({src:e});case"canvas":return this.set({canvas:e});case"img":return this.set({img:e});default:return this.error("Unknown source type.")}}))},A.prototype.to=function(e){switch(e){case"container":return this.toContainer();case"canvas":return this.toCanvas();case"img":return this.toImg();case"pdf":return this.toPdf();default:return this.error("Invalid target.")}},A.prototype.toContainer=function(){return this.thenList([function(){return this.prop.src||this.error("Cannot duplicate - no source HTML.")},function(){return this.prop.pageSize||this.setPageSize()}]).then((function(){var e={position:"fixed",overflow:"hidden",zIndex:1e3,left:0,right:0,bottom:0,top:0,backgroundColor:"rgba(0,0,0,0.8)"},t={position:"absolute",width:this.prop.pageSize.inner.width+this.prop.pageSize.unit,left:0,right:0,top:0,height:"auto",margin:"auto",backgroundColor:"white"};e.opacity=0;var r=(0,s.cloneNode)(this.prop.src,this.opt.html2canvas.javascriptEnabled);this.prop.overlay=(0,s.createElement)("div",{className:"html2pdf__overlay",style:e}),this.prop.container=(0,s.createElement)("div",{className:"html2pdf__container",style:t}),this.prop.container.appendChild(r),this.prop.overlay.appendChild(this.prop.container),document.body.appendChild(this.prop.overlay)}))},A.prototype.toCanvas=function(){var e=[function(){return document.body.contains(this.prop.container)||this.toContainer()}];return this.thenList(e).then((function(){var e=Object.assign({},this.opt.html2canvas);return delete e.onrendered,o(this.prop.container,e)})).then((function(e){(this.opt.html2canvas.onrendered||function(){})(e),this.prop.canvas=e,document.body.removeChild(this.prop.overlay)}))},A.prototype.toImg=function(){return this.thenList([function(){return this.prop.canvas||this.toCanvas()}]).then((function(){var e=this.prop.canvas.toDataURL("image/"+this.opt.image.type,this.opt.image.quality);this.prop.img=document.createElement("img"),this.prop.img.src=e}))},A.prototype.toPdf=function(){return this.thenList([function(){return this.prop.canvas||this.toCanvas()}]).then((function(){var e=this.prop.canvas,t=this.opt,r=e.height,o=Math.floor(e.width*this.prop.pageSize.inner.ratio),s=Math.ceil(r/o),i=this.prop.pageSize.inner.height,a=document.createElement("canvas"),A=a.getContext("2d");a.width=e.width,a.height=o,this.prop.pdf=this.prop.pdf||new n.jsPDF(t.jsPDF);for(var u=0;u~\.\[:]+)/g,Je=/(\.[^\s\+>~\.\[:]+)/g,Ye=/(::[^\s\+>~\.\[:]+|:first-line|:first-letter|:before|:after)/gi,Ze=/(:[\w-]+\([^\)]*\))/gi,$e=/(:[^\s\+>~\.\[:]+)/g,et=/([^\s\+>~\.\[:]+)/g;function tt(e,t){var r=e.match(t);return r?[e.replace(t," "),r.length]:[e,0]}function rt(e){var t=[0,0,0],r=e.replace(/:not\(([^\)]*)\)/g," $1 ").replace(/{[\s\S]*/gm," "),n=0,o=tt(r,Xe),s=(0,u.default)(o,2);r=s[0],n=s[1],t[1]+=n;var i=tt(r,We),a=(0,u.default)(i,2);r=a[0],n=a[1],t[0]+=n;var A=tt(r,Je),c=(0,u.default)(A,2);r=c[0],n=c[1],t[1]+=n;var l=tt(r,Ye),d=(0,u.default)(l,2);r=d[0],n=d[1],t[2]+=n;var f=tt(r,Ze),h=(0,u.default)(f,2);r=h[0],n=h[1],t[1]+=n;var p=tt(r,$e),m=(0,u.default)(p,2);r=m[0],n=m[1],t[1]+=n;var g=tt(r=r.replace(/[\*\s\+>~]/g," ").replace(/[#\.]/g," "),et),y=(0,u.default)(g,2);return r=y[0],n=y[1],t[2]+=n,t.join("")}var nt=1e-8;function ot(e){return Math.sqrt(Math.pow(e[0],2)+Math.pow(e[1],2))}function st(e,t){return(e[0]*t[0]+e[1]*t[1])/(ot(e)*ot(t))}function it(e,t){return(e[0]*t[1]0&&void 0!==arguments[0]?arguments[0]:" ",o=this.document,s=this.name;return A()(t=G()(r=Re(this.getString())).call(r).split(n)).call(t,(function(t){return new e(o,s,t)}))}},{key:"hasValue",value:function(e){var t=this.value;return null!==t&&""!==t&&(e||0!==t)&&void 0!==t}},{key:"isString",value:function(e){var t=this.value,r="string"==typeof t;return r&&e?e.test(t):r}},{key:"isUrlDefinition",value:function(){return this.isString(/^url\(/)}},{key:"isPixels",value:function(){if(!this.hasValue())return!1;var e=this.getString();switch(!0){case/px$/.test(e):case/^[0-9]+$/.test(e):return!0;default:return!1}}},{key:"setValue",value:function(e){return this.value=e,this}},{key:"getValue",value:function(e){return void 0===e||this.hasValue()?this.value:e}},{key:"getNumber",value:function(e){if(!this.hasValue())return void 0===e?0:i()(e);var t=this.value,r=i()(t);return this.isString(/%$/)&&(r/=100),r}},{key:"getString",value:function(e){return void 0===e||this.hasValue()?void 0===this.value?"":String(this.value):String(e)}},{key:"getColor",value:function(e){var t=this.getString(e);return this.isNormalizedColor||(this.isNormalizedColor=!0,t=Ge(t),this.value=t),t}},{key:"getDpi",value:function(){return 96}},{key:"getRem",value:function(){return this.document.rootEmSize}},{key:"getEm",value:function(){return this.document.emSize}},{key:"getUnits",value:function(){return this.getString().replace(/[0-9\.\-]/g,"")}},{key:"getPixels",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!this.hasValue())return 0;var r="boolean"==typeof e?[void 0,e]:[e],n=(0,u.default)(r,2),o=n[0],s=n[1],i=this.document.screen.viewPort;switch(!0){case this.isString(/vmin$/):return this.getNumber()/100*Math.min(i.computeSize("x"),i.computeSize("y"));case this.isString(/vmax$/):return this.getNumber()/100*Math.max(i.computeSize("x"),i.computeSize("y"));case this.isString(/vw$/):return this.getNumber()/100*i.computeSize("x");case this.isString(/vh$/):return this.getNumber()/100*i.computeSize("y");case this.isString(/rem$/):return this.getNumber()*this.getRem();case this.isString(/em$/):return this.getNumber()*this.getEm();case this.isString(/ex$/):return this.getNumber()*this.getEm()/2;case this.isString(/px$/):return this.getNumber();case this.isString(/pt$/):return this.getNumber()*this.getDpi()*(1/72);case this.isString(/pc$/):return 15*this.getNumber();case this.isString(/cm$/):return this.getNumber()*this.getDpi()/2.54;case this.isString(/mm$/):return this.getNumber()*this.getDpi()/25.4;case this.isString(/in$/):return this.getNumber()*this.getDpi();case this.isString(/%$/)&&s:return this.getNumber()*this.getEm();case this.isString(/%$/):return this.getNumber()*i.computeSize(o);default:var a=this.getNumber();return t&&a<1?a*i.computeSize(o):a}}},{key:"getMilliseconds",value:function(){return this.hasValue()?this.isString(/ms$/)?this.getNumber():1e3*this.getNumber():0}},{key:"getRadians",value:function(){if(!this.hasValue())return 0;switch(!0){case this.isString(/deg$/):return this.getNumber()*(Math.PI/180);case this.isString(/grad$/):return this.getNumber()*(Math.PI/200);case this.isString(/rad$/):return this.getNumber();default:return this.getNumber()*(Math.PI/180)}}},{key:"getDefinition",value:function(){var e=this.getString(),t=e.match(/#([^\)'"]+)/);return t&&(t=t[1]),t||(t=e),this.document.definitions[t]}},{key:"getFillStyleDefinition",value:function(e,t){var r=this.getDefinition();if(!r)return null;if("function"==typeof r.createGradient)return r.createGradient(this.document.ctx,e,t);if("function"==typeof r.createPattern){if(r.getHrefAttribute().hasValue()){var n=r.getAttribute("patternTransform");r=r.getHrefAttribute().getDefinition(),n.hasValue()&&r.getAttribute("patternTransform",!0).setValue(n.value)}return r.createPattern(this.document.ctx,e,t)}return null}},{key:"getTextBaseline",value:function(){return this.hasValue()?e.textBaselineMapping[this.getString()]:null}},{key:"addOpacity",value:function(t){for(var r=this.getColor(),n=r.length,o=0,s=0;s1&&void 0!==arguments[1]?arguments[1]:0,n=Ke(t),o=(0,u.default)(n,2),s=o[0],i=void 0===s?r:s,a=o[1],A=void 0===a?r:a;return new e(i,A)}},{key:"parseScale",value:function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=Ke(t),o=(0,u.default)(n,2),s=o[0],i=void 0===s?r:s,a=o[1],A=void 0===a?i:a;return new e(i,A)}},{key:"parsePath",value:function(t){for(var r=Ke(t),n=r.length,o=[],s=0;s0}},{key:"runEvents",value:function(){if(this.working){var e=this.screen,t=this.events,r=this.eventElements,n=e.ctx.canvas.style;n&&(n.cursor=""),g()(t).call(t,(function(e,t){for(var n=e.run,o=r[t];o;)n(o),o=o.parent})),this.events=[],this.eventElements=[]}}},{key:"checkPath",value:function(e,t){if(this.working&&t){var r=this.events,n=this.eventElements;g()(r).call(r,(function(r,o){var s=r.x,i=r.y;!n[o]&&t.isPointInPath&&t.isPointInPath(s,i)&&(n[o]=e)}))}}},{key:"checkBoundingBox",value:function(e,t){if(this.working&&t){var r=this.events,n=this.eventElements;g()(r).call(r,(function(r,o){var s=r.x,i=r.y;!n[o]&&t.isPointInBox(s,i)&&(n[o]=e)}))}}},{key:"mapXY",value:function(e,t){for(var r=this.screen,n=r.window,o=r.ctx,s=new mt(e,t),i=o.canvas;i;)s.x-=i.offsetLeft,s.y-=i.offsetTop,i=i.offsetParent;return n.scrollX&&(s.x+=n.scrollX),n.scrollY&&(s.y+=n.scrollY),s}},{key:"onClick",value:function(e){var t=this.mapXY((e||event).clientX,(e||event).clientY),r=t.x,n=t.y;this.events.push({type:"onclick",x:r,y:n,run:function(e){e.onClick&&e.onClick()}})}},{key:"onMouseMove",value:function(e){var t=this.mapXY((e||event).clientX,(e||event).clientY),r=t.x,n=t.y;this.events.push({type:"onmousemove",x:r,y:n,run:function(e){e.onMouseMove&&e.onMouseMove()}})}}]),e}(),yt="undefined"!=typeof window?window:null,vt="undefined"!=typeof fetch?K()(fetch).call(fetch,void 0):null,wt=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=r.fetch,o=void 0===n?vt:n,s=r.window,i=void 0===s?yt:s;(0,F.default)(this,e),this.ctx=t,this.FRAMERATE=30,this.MAX_VIRTUAL_PIXELS=3e4,this.CLIENT_WIDTH=800,this.CLIENT_HEIGHT=600,this.viewPort=new pt,this.mouse=new gt(this),this.animations=[],this.waits=[],this.frameDuration=0,this.isReadyLock=!1,this.isFirstRender=!0,this.intervalId=null,this.window=i,this.fetch=o}return(0,U.default)(e,[{key:"wait",value:function(e){this.waits.push(e)}},{key:"ready",value:function(){return this.readyPromise?this.readyPromise:M().resolve()}},{key:"isReady",value:function(){var e;if(this.isReadyLock)return!0;var t=k()(e=this.waits).call(e,(function(e){return e()}));return t&&(this.waits=[],this.resolveReady&&this.resolveReady()),this.isReadyLock=t,t}},{key:"setDefaults",value:function(e){e.strokeStyle="rgba(0,0,0,0)",e.lineCap="butt",e.lineJoin="miter",e.miterLimit=4}},{key:"setViewBox",value:function(e){var t=e.document,r=e.ctx,n=e.aspectRatio,o=e.width,s=e.desiredWidth,i=e.height,a=e.desiredHeight,A=e.minX,c=void 0===A?0:A,l=e.minY,d=void 0===l?0:l,f=e.refX,h=e.refY,p=e.clip,m=void 0!==p&&p,g=e.clipX,y=void 0===g?0:g,v=e.clipY,w=void 0===v?0:v,b=Re(n).replace(/^defer\s/,"").split(" "),B=(0,u.default)(b,2),j=B[0]||"xMidYMid",_=B[1]||"meet",C=o/s,x=i/a,E=Math.min(C,x),N=Math.max(C,x),Q=s,F=a;"meet"===_&&(Q*=E,F*=E),"slice"===_&&(Q*=N,F*=N);var U=new ht(t,"refX",f),S=new ht(t,"refY",h),L=U.hasValue()&&S.hasValue();if(L&&r.translate(-E*U.getPixels("x"),-E*S.getPixels("y")),m){var T=E*y,H=E*w;r.beginPath(),r.moveTo(T,H),r.lineTo(o,H),r.lineTo(o,i),r.lineTo(T,i),r.closePath(),r.clip()}if(!L){var I="meet"===_&&E===x,P="slice"===_&&N===x,O="meet"===_&&E===C,k="slice"===_&&N===C;/^xMid/.test(j)&&(I||P)&&r.translate(o/2-Q/2,0),/YMid$/.test(j)&&(O||k)&&r.translate(0,i/2-F/2),/^xMax/.test(j)&&(I||P)&&r.translate(o-Q,0),/YMax$/.test(j)&&(O||k)&&r.translate(0,i-F)}switch(!0){case"none"===j:r.scale(C,x);break;case"meet"===_:r.scale(E,E);break;case"slice"===_:r.scale(N,N)}r.translate(-c,-d)}},{key:"start",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=r.enableRedraw,o=void 0!==n&&n,s=r.ignoreMouse,i=void 0!==s&&s,a=r.ignoreAnimation,A=void 0!==a&&a,u=r.ignoreDimensions,c=void 0!==u&&u,l=r.ignoreClear,d=void 0!==l&&l,f=r.forceRedraw,h=r.scaleWidth,p=r.scaleHeight,m=r.offsetX,g=r.offsetY,y=this.FRAMERATE,v=this.mouse,w=1e3/y;if(this.frameDuration=w,this.readyPromise=new(M())((function(e){t.resolveReady=e})),this.isReady()&&this.render(e,c,d,h,p,m,g),o){var b=P()(),B=b,j=0,_=function r(){b=P()(),(j=b-B)>=w&&(B=b-j%w,t.shouldUpdate(A,f)&&(t.render(e,c,d,h,p,m,g),v.runEvents())),t.intervalId=V()(r)};i||v.start(),this.intervalId=V()(_)}}},{key:"stop",value:function(){this.intervalId&&(V().cancel(this.intervalId),this.intervalId=null),this.mouse.stop()}},{key:"shouldUpdate",value:function(e,t){if(!e){var r,n=this.frameDuration;if(H()(r=this.animations).call(r,(function(e,t){return t.update(n)||e}),!1))return!0}return!("function"!=typeof t||!t())||!(this.isReadyLock||!this.isReady())||!!this.mouse.hasEvents()}},{key:"render",value:function(e,t,r,n,o,s,i){var a=this.CLIENT_WIDTH,A=this.CLIENT_HEIGHT,u=this.viewPort,c=this.ctx,l=this.isFirstRender,d=c.canvas;u.clear(),d.width&&d.height?u.setCurrent(d.width,d.height):u.setCurrent(a,A);var f=e.getStyle("width"),h=e.getStyle("height");!t&&(l||"number"!=typeof n&&"number"!=typeof o)&&(f.hasValue()&&(d.width=f.getPixels("x"),d.style&&(d.style.width="".concat(d.width,"px"))),h.hasValue()&&(d.height=h.getPixels("y"),d.style&&(d.style.height="".concat(d.height,"px"))));var p=d.clientWidth||d.width,m=d.clientHeight||d.height;if(t&&f.hasValue()&&h.hasValue()&&(p=f.getPixels("x"),m=h.getPixels("y")),u.setCurrent(p,m),"number"==typeof s&&e.getAttribute("x",!0).setValue(s),"number"==typeof i&&e.getAttribute("y",!0).setValue(i),"number"==typeof n||"number"==typeof o){var g,y,v=Ke(e.getAttribute("viewBox").getString()),w=0,b=0;if("number"==typeof n){var B=e.getStyle("width");B.hasValue()?w=B.getPixels("x")/n:isNaN(v[2])||(w=v[2]/n)}if("number"==typeof o){var j=e.getStyle("height");j.hasValue()?b=j.getPixels("y")/o:isNaN(v[3])||(b=v[3]/o)}w||(w=b),b||(b=w),e.getAttribute("width",!0).setValue(n),e.getAttribute("height",!0).setValue(o);var _=e.getStyle("transform",!0,!0);_.setValue(L()(g=L()(y="".concat(_.getString()," scale(")).call(y,1/w,", ")).call(g,1/b,")"))}r||c.clearRect(0,0,p,m),e.render(c),l&&(this.isFirstRender=!1)}}]),e}();wt.defaultWindow=yt,wt.defaultFetch=vt;var bt=wt.defaultFetch,Bt="undefined"!=typeof DOMParser?DOMParser:null,jt=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.fetch,n=void 0===r?bt:r,o=t.DOMParser,s=void 0===o?Bt:o;(0,F.default)(this,e),this.fetch=n,this.DOMParser=s}var t,r;return(0,U.default)(e,[{key:"parse",value:(r=(0,N.default)(E().mark((function e(t){return E().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!/^=0;r--)t[r].unapply(e)}},{key:"applyToPoint",value:function(e){for(var t=this.transforms,r=t.length,n=0;n2&&void 0!==arguments[2]&&arguments[2];if((0,F.default)(this,e),this.document=t,this.node=r,this.captureTextNodes=i,this.attributes={},this.styles={},this.stylesSpecificity={},this.animationFrozen=!1,this.animationFrozenValue="",this.parent=null,this.children=[],r&&1===r.nodeType){if(g()(n=ae()(r.attributes)).call(n,(function(e){var r=Ve(e.nodeName);s.attributes[r]=new ht(t,r,e.value)})),this.addStylesFromStyleDefinition(),this.getAttribute("style").hasValue()){var a,c=A()(a=this.getAttribute("style").getString().split(";")).call(a,(function(e){return G()(e).call(e)}));g()(c).call(c,(function(e){var r;if(e){var n=A()(r=e.split(":")).call(r,(function(e){return G()(e).call(e)})),o=(0,u.default)(n,2),i=o[0],a=o[1];s.styles[i]=new ht(t,i,a)}}))}var l=t.definitions,d=this.getAttribute("id");d.hasValue()&&(l[d.getValue()]||(l[d.getValue()]=this)),g()(o=ae()(r.childNodes)).call(o,(function(e){if(1===e.nodeType)s.addChild(e);else if(i&&(3===e.nodeType||4===e.nodeType)){var r=t.createTextNode(e);r.getText().length>0&&s.addChild(r)}}))}}return(0,U.default)(e,[{key:"getAttribute",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=this.attributes[e];if(!r&&t){var n=new ht(this.document,e,"");return this.attributes[e]=n,n}return r||ht.empty(this.document)}},{key:"getHrefAttribute",value:function(){for(var e in this.attributes)if("href"===e||/:href$/.test(e))return this.attributes[e];return ht.empty(this.document)}},{key:"getStyle",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=this.styles[e];if(n)return n;var o=this.getAttribute(e);if(o&&o.hasValue())return this.styles[e]=o,o;if(!r){var s=this.parent;if(s){var i=s.getStyle(e);if(i&&i.hasValue())return i}}if(t){var a=new ht(this.document,e,"");return this.styles[e]=a,a}return n||ht.empty(this.document)}},{key:"render",value:function(e){if("none"!==this.getStyle("display").getString()&&"hidden"!==this.getStyle("visibility").getString()){if(e.save(),this.getStyle("mask").hasValue()){var t=this.getStyle("mask").getDefinition();t&&(this.applyEffects(e),t.apply(e,this))}else if("none"!==this.getStyle("filter").getValue("none")){var r=this.getStyle("filter").getDefinition();r&&(this.applyEffects(e),r.apply(e,this))}else this.setContext(e),this.renderChildren(e),this.clearContext(e);e.restore()}}},{key:"setContext",value:function(e){}},{key:"applyEffects",value:function(e){var t=Ut.fromElement(this.document,this);t&&t.apply(e);var r=this.getStyle("clip-path",!1,!0);if(r.hasValue()){var n=r.getDefinition();n&&n.apply(e)}}},{key:"clearContext",value:function(e){}},{key:"renderChildren",value:function(e){var t;g()(t=this.children).call(t,(function(t){t.render(e)}))}},{key:"addChild",value:function(t){var r,n=t instanceof e?t:this.document.createElement(t);n.parent=this,se()(r=e.ignoreChildTypes).call(r,n.type)||this.children.push(n)}},{key:"matchesSelector",value:function(e){var t,r=this.node;if("function"==typeof r.matches)return r.matches(e);var n=r.getAttribute("class");return!(!n||""===n)&&ne()(t=n.split(" ")).call(t,(function(t){if(".".concat(t)===e)return!0}))}},{key:"addStylesFromStyleDefinition",value:function(){var e=this.document,t=e.styles,r=e.stylesSpecificity;for(var n in t)if("@"!==n[0]&&this.matchesSelector(n)){var o=t[n],s=r[n];if(o)for(var i in o){var a=this.stylesSpecificity[i];void 0===a&&(a="000"),s>=a&&(this.styles[i]=o[i],this.stylesSpecificity[i]=s)}}}},{key:"removeStyles",value:function(e,t){return H()(t).call(t,(function(t,r){var n,o=e.getStyle(r);if(!o.hasValue())return t;var s=o.getString();return o.setValue(""),L()(n=[]).call(n,(0,te.default)(t),[[r,s]])}),[])}},{key:"restoreStyles",value:function(e,t){g()(t).call(t,(function(t){var r=(0,u.default)(t,2),n=r[0],o=r[1];e.getStyle(n,!0).setValue(o)}))}}]),e}();St.ignoreChildTypes=["title"];var Lt=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(e,t,r){return(0,F.default)(this,o),n.call(this,e,t,r)}return o}(St);function Tt(e){var t=G()(e).call(e);return/^('|")/.test(t)?t:'"'.concat(t,'"')}function Ht(e){if(!e)return"";var t=G()(e).call(e).toLowerCase();switch(t){case"normal":case"italic":case"oblique":case"inherit":case"initial":case"unset":return t;default:return/^oblique\s+(-|)\d+deg$/.test(t)?t:""}}function It(e){if(!e)return"";var t=G()(e).call(e).toLowerCase();switch(t){case"normal":case"bold":case"lighter":case"bolder":case"inherit":case"initial":case"unset":return t;default:return/^[\d.]+$/.test(t)?t:""}}var Pt=function(){function e(t,r,n,o,s,i){(0,F.default)(this,e);var a=i?"string"==typeof i?e.parse(i):i:{};this.fontFamily=s||a.fontFamily,this.fontSize=o||a.fontSize,this.fontStyle=t||a.fontStyle,this.fontWeight=n||a.fontWeight,this.fontVariant=r||a.fontVariant}return(0,U.default)(e,[{key:"toString",value:function(){var e,t,r;return G()(e=[Ht(this.fontStyle),this.fontVariant,It(this.fontWeight),this.fontSize,(t=this.fontFamily,"undefined"==typeof process?t:A()(r=G()(t).call(t).split(",")).call(r,Tt).join(","))].join(" ")).call(e)}}],[{key:"parse",value:function(){var t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=arguments.length>1?arguments[1]:void 0,o="",s="",i="",a="",A="",c=G()(t=Re(r)).call(t).split(" "),l={fontSize:!1,fontStyle:!1,fontWeight:!1,fontVariant:!1};return g()(c).call(c,(function(t){var r,n,c;switch(!0){case!l.fontStyle&&se()(r=e.styles).call(r,t):"inherit"!==t&&(o=t),l.fontStyle=!0;break;case!l.fontVariant&&se()(n=e.variants).call(n,t):"inherit"!==t&&(s=t),l.fontStyle=!0,l.fontVariant=!0;break;case!l.fontWeight&&se()(c=e.weights).call(c,t):"inherit"!==t&&(i=t),l.fontStyle=!0,l.fontVariant=!0,l.fontWeight=!0;break;case!l.fontSize:if("inherit"!==t){var d=t.split("/"),f=(0,u.default)(d,1);a=f[0]}l.fontStyle=!0,l.fontVariant=!0,l.fontWeight=!0,l.fontSize=!0;break;default:"inherit"!==t&&(A+=t)}})),new e(o,s,i,a,A,n)}}]),e}();Pt.styles="normal|italic|oblique|inherit",Pt.variants="normal|small-caps|inherit",Pt.weights="normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit";var Ot=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Number.NaN,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.NaN,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.NaN,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Number.NaN;(0,F.default)(this,e),this.x1=t,this.y1=r,this.x2=n,this.y2=o,this.addPoint(t,r),this.addPoint(n,o)}return(0,U.default)(e,[{key:"addPoint",value:function(e,t){void 0!==e&&((isNaN(this.x1)||isNaN(this.x2))&&(this.x1=e,this.x2=e),ethis.x2&&(this.x2=e)),void 0!==t&&((isNaN(this.y1)||isNaN(this.y2))&&(this.y1=t,this.y2=t),tthis.y2&&(this.y2=t))}},{key:"addX",value:function(e){this.addPoint(e,null)}},{key:"addY",value:function(e){this.addPoint(null,e)}},{key:"addBoundingBox",value:function(e){if(e){var t=e.x1,r=e.y1,n=e.x2,o=e.y2;this.addPoint(t,r),this.addPoint(n,o)}}},{key:"sumCubic",value:function(e,t,r,n,o){return Math.pow(1-e,3)*t+3*Math.pow(1-e,2)*e*r+3*(1-e)*Math.pow(e,2)*n+Math.pow(e,3)*o}},{key:"bezierCurveAdd",value:function(e,t,r,n,o){var s=6*t-12*r+6*n,i=-3*t+9*r-9*n+3*o,a=3*r-3*t;if(0!==i){var A=Math.pow(s,2)-4*a*i;if(!(A<0)){var u=(-s+Math.sqrt(A))/(2*i);01&&void 0!==arguments[1]&&arguments[1];if(!t){var r=this.getStyle("fill"),n=this.getStyle("fill-opacity"),o=this.getStyle("stroke"),s=this.getStyle("stroke-opacity");if(r.isUrlDefinition()){var i=r.getFillStyleDefinition(this,n);i&&(e.fillStyle=i)}else if(r.hasValue()){"currentColor"===r.getString()&&r.setValue(this.getStyle("color").getColor());var a=r.getColor();"inherit"!==a&&(e.fillStyle="none"===a?"rgba(0,0,0,0)":a)}if(n.hasValue()){var A=new ht(this.document,"fill",e.fillStyle).addOpacity(n).getColor();e.fillStyle=A}if(o.isUrlDefinition()){var u=o.getFillStyleDefinition(this,s);u&&(e.strokeStyle=u)}else if(o.hasValue()){"currentColor"===o.getString()&&o.setValue(this.getStyle("color").getColor());var c=o.getString();"inherit"!==c&&(e.strokeStyle="none"===c?"rgba(0,0,0,0)":c)}if(s.hasValue()){var l=new ht(this.document,"stroke",e.strokeStyle).addOpacity(s).getString();e.strokeStyle=l}var d=this.getStyle("stroke-width");if(d.hasValue()){var f=d.getPixels();e.lineWidth=f||nt}var h=this.getStyle("stroke-linecap"),p=this.getStyle("stroke-linejoin"),m=this.getStyle("stroke-miterlimit"),g=this.getStyle("paint-order"),y=this.getStyle("stroke-dasharray"),v=this.getStyle("stroke-dashoffset");if(h.hasValue()&&(e.lineCap=h.getString()),p.hasValue()&&(e.lineJoin=p.getString()),m.hasValue()&&(e.miterLimit=m.getNumber()),g.hasValue()&&(e.paintOrder=g.getValue()),y.hasValue()&&"none"!==y.getString()){var w=Ke(y.getString());void 0!==e.setLineDash?e.setLineDash(w):void 0!==e.webkitLineDash?e.webkitLineDash=w:void 0===e.mozDash||1===w.length&&0===w[0]||(e.mozDash=w);var b=v.getPixels();void 0!==e.lineDashOffset?e.lineDashOffset=b:void 0!==e.webkitLineDashOffset?e.webkitLineDashOffset=b:void 0!==e.mozDashOffset&&(e.mozDashOffset=b)}}if(this.modifiedEmSizeStack=!1,void 0!==e.font){var B=this.getStyle("font"),j=this.getStyle("font-style"),_=this.getStyle("font-variant"),C=this.getStyle("font-weight"),x=this.getStyle("font-size"),E=this.getStyle("font-family"),N=new Pt(j.getString(),_.getString(),C.getString(),x.hasValue()?"".concat(x.getPixels(!0),"px"):"",E.getString(),Pt.parse(B.getString(),e.font));j.setValue(N.fontStyle),_.setValue(N.fontVariant),C.setValue(N.fontWeight),x.setValue(N.fontSize),E.setValue(N.fontFamily),e.font=N.toString(),x.isPixels()&&(this.document.emSize=x.getPixels(),this.modifiedEmSizeStack=!0)}t||(this.applyEffects(e),e.globalAlpha=this.calculateOpacity())}},{key:"clearContext",value:function(e){(0,de.default)((0,ee.default)(o.prototype),"clearContext",this).call(this,e),this.modifiedEmSizeStack&&this.document.popEmSize()}}]),o}(St);var Rt=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(e,t,r){var s;return(0,F.default)(this,o),(s=n.call(this,e,t,(this instanceof o?this.constructor:void 0)===o||r)).type="text",s.x=0,s.y=0,s.measureCache=-1,s}return(0,U.default)(o,[{key:"setContext",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];(0,de.default)((0,ee.default)(o.prototype),"setContext",this).call(this,e,t);var r=this.getStyle("dominant-baseline").getTextBaseline()||this.getStyle("alignment-baseline").getTextBaseline();r&&(e.textBaseline=r)}},{key:"initializeCoordinates",value:function(e){this.x=this.getAttribute("x").getPixels("x"),this.y=this.getAttribute("y").getPixels("y");var t=this.getAttribute("dx"),r=this.getAttribute("dy");t.hasValue()&&(this.x+=t.getPixels("x")),r.hasValue()&&(this.y+=r.getPixels("y")),this.x+=this.getAnchorDelta(e,this,0)}},{key:"getBoundingBox",value:function(e){var t,r=this;if("text"!==this.type)return this.getTElementBoundingBox(e);this.initializeCoordinates(e);var n=null;return g()(t=this.children).call(t,(function(t,o){var s=r.getChildBoundingBox(e,r,r,o);n?n.addBoundingBox(s):n=s})),n}},{key:"getFontSize",value:function(){var e=this.document,t=this.parent,r=Pt.parse(e.ctx.font).fontSize;return t.getStyle("font-size").getNumber(r)}},{key:"getTElementBoundingBox",value:function(e){var t=this.getFontSize();return new Ot(this.x,this.y-t,this.x+this.measureText(e),this.y)}},{key:"getGlyph",value:function(e,t,r){var n=t[r],o=null;if(e.isArabic){var s=t.length,i=t[r-1],a=t[r+1],A="isolated";(0===r||" "===i)&&r0&&" "!==i&&r0&&" "!==i&&(r===s-1||" "===a)&&(A="initial"),void 0!==e.glyphs[n]&&((o=e.glyphs[n][A])||"glyph"!==e.glyphs[n].type||(o=e.glyphs[n]))}else o=e.glyphs[n];return o||(o=e.missingGlyph),o}},{key:"getText",value:function(){return""}},{key:"getTextFromNode",value:function(e){var t=e||this.node,r=ae()(t.parentNode.childNodes),n=le()(r).call(r,t),o=r.length-1,s=Re(t.value||t.text||t.textContent||"");return 0===n&&(s=Me(s)),n===o&&(s=De(s)),s}},{key:"renderChildren",value:function(e){var t,r=this;if("text"===this.type){this.initializeCoordinates(e),g()(t=this.children).call(t,(function(t,n){r.renderChild(e,r,r,n)}));var n=this.document.screen.mouse;n.isWorking()&&n.checkBoundingBox(this,this.getBoundingBox(e))}else this.renderTElementChildren(e)}},{key:"renderTElementChildren",value:function(e){var t=this.document,r=this.parent,n=this.getText(),o=r.getStyle("font-family").getDefinition();if(o)for(var s,i=o.fontFace.unitsPerEm,a=Pt.parse(t.ctx.font),A=r.getStyle("font-size").getNumber(a.fontSize),u=r.getStyle("font-style").getString(a.fontStyle),c=A/i,l=o.isRTL?ue()(s=n.split("")).call(s).join(""):n,d=Ke(r.getAttribute("dx").getString()),f=l.length,h=0;hr&&i.getAttribute("x").hasValue()||i.getAttribute("text-anchor").hasValue()));A++)a+=i.measureTextRecursive(e);return-1*("end"===n?a:a/2)}return 0}},{key:"adjustChildCoordinates",value:function(e,t,r,n){var o=r.children[n];if("function"!=typeof o.measureText)return o;e.save(),o.setContext(e,!0);var s=o.getAttribute("x"),i=o.getAttribute("y"),a=o.getAttribute("dx"),A=o.getAttribute("dy"),u=o.getAttribute("text-anchor").getString("start");if(0===n&&"textNode"!==o.type&&(s.hasValue()||s.setValue(t.getAttribute("x").getValue("0")),i.hasValue()||i.setValue(t.getAttribute("y").getValue("0")),a.hasValue()||a.setValue(t.getAttribute("dx").getValue("0")),A.hasValue()||A.setValue(t.getAttribute("dy").getValue("0"))),s.hasValue()){if(o.x=s.getPixels("x")+t.getAnchorDelta(e,r,n),"start"!==u){var c=o.measureTextRecursive(e);o.x+=-1*("end"===u?c:c/2)}a.hasValue()&&(o.x+=a.getPixels("x"))}else{if("start"!==u){var l=o.measureTextRecursive(e);t.x+=-1*("end"===u?l:l/2)}a.hasValue()&&(t.x+=a.getPixels("x")),o.x=t.x}return t.x=o.x+o.measureText(e),i.hasValue()?(o.y=i.getPixels("y"),A.hasValue()&&(o.y+=A.getPixels("y"))):(A.hasValue()&&(t.y+=A.getPixels("y")),o.y=t.y),t.y=o.y,o.clearContext(e),e.restore(),o}},{key:"getChildBoundingBox",value:function(e,t,r,n){var o,s=this.adjustChildCoordinates(e,t,r,n);if("function"!=typeof s.getBoundingBox)return null;var i=s.getBoundingBox(e);return i?(g()(o=s.children).call(o,(function(r,n){var o=t.getChildBoundingBox(e,t,s,n);i.addBoundingBox(o)})),i):null}},{key:"renderChild",value:function(e,t,r,n){var o,s=this.adjustChildCoordinates(e,t,r,n);s.render(e),g()(o=s.children).call(o,(function(r,n){t.renderChild(e,t,s,n)}))}},{key:"measureTextRecursive",value:function(e){var t;return H()(t=this.children).call(t,(function(t,r){return t+r.measureTextRecursive(e)}),this.measureText(e))}},{key:"measureText",value:function(e){var t=this.measureCache;if(~t)return t;var r=this.getText(),n=this.measureTargetText(e,r);return this.measureCache=n,n}},{key:"measureTargetText",value:function(e,t){if(!t.length)return 0;var r=this.parent,n=r.getStyle("font-family").getDefinition();if(n){for(var o,s=this.getFontSize(),i=n.isRTL?ue()(o=t.split("")).call(o).join(""):t,a=Ke(r.getAttribute("dx").getString()),A=i.length,u=0,c=0;c0?"":s.getTextFromNode(),s}return(0,U.default)(o,[{key:"getText",value:function(){return this.text}}]),o}(Rt);var Dt=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(){var e;return(0,F.default)(this,o),(e=n.apply(this,arguments)).type="textNode",e}return o}(Mt);var Kt=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(e){var t;return(0,F.default)(this,o),(t=n.call(this,e.replace(/[+-.]\s+/g,"-").replace(/[^MmZzLlHhVvCcSsQqTtAae\d\s.,+-].*/g,""))).control=null,t.start=null,t.current=null,t.command=null,t.commands=t.commands,t.i=-1,t.previousCommand=null,t.points=[],t.angles=[],t}return(0,U.default)(o,[{key:"reset",value:function(){this.i=-1,this.command=null,this.previousCommand=null,this.start=new mt(0,0),this.control=new mt(0,0),this.current=new mt(0,0),this.points=[],this.angles=[]}},{key:"isEnd",value:function(){return this.i>=this.commands.length-1}},{key:"next",value:function(){var e=this.commands[++this.i];return this.previousCommand=this.command,this.command=e,e}},{key:"getPoint",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"x",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"y",r=new mt(this.command[e],this.command[t]);return this.makeAbsolute(r)}},{key:"getAsControlPoint",value:function(e,t){var r=this.getPoint(e,t);return this.control=r,r}},{key:"getAsCurrentPoint",value:function(e,t){var r=this.getPoint(e,t);return this.current=r,r}},{key:"getReflectedControlPoint",value:function(){var e=this.previousCommand.type;if(e!==pe.SVGPathData.CURVE_TO&&e!==pe.SVGPathData.SMOOTH_CURVE_TO&&e!==pe.SVGPathData.QUAD_TO&&e!==pe.SVGPathData.SMOOTH_QUAD_TO)return this.current;var t=this.current,r=t.x,n=t.y,o=this.control,s=o.x,i=o.y;return new mt(2*r-s,2*n-i)}},{key:"makeAbsolute",value:function(e){if(this.command.relative){var t=this.current,r=t.x,n=t.y;e.x+=r,e.y+=n}return e}},{key:"addMarker",value:function(e,t,r){var n=this.points,o=this.angles;r&&o.length>0&&!o[o.length-1]&&(o[o.length-1]=n[n.length-1].angleTo(r)),this.addMarkerAngle(e,t?t.angleTo(e):null)}},{key:"addMarkerAngle",value:function(e,t){this.points.push(e),this.angles.push(t)}},{key:"getMarkerPoints",value:function(){return this.points}},{key:"getMarkerAngles",value:function(){for(var e=this.angles,t=e.length,r=0;ra?i:a,g=i>a?1:i/a,y=i>a?a/i:1;e.translate(c.x,c.y),e.rotate(u),e.scale(g,y),e.arc(0,0,m,l,l+d,Boolean(1-A)),e.scale(1/g,1/y),e.rotate(-u),e.translate(-c.x,-c.y)}}},{key:"pathZ",value:function(e,t){o.pathZ(this.pathParser),e&&t.x1!==t.x2&&t.y1!==t.y2&&e.closePath()}}],[{key:"pathM",value:function(e){var t=e.getAsCurrentPoint();return e.start=e.current,{point:t}}},{key:"pathL",value:function(e){return{current:e.current,point:e.getAsCurrentPoint()}}},{key:"pathH",value:function(e){var t=e.current,r=e.command,n=new mt((r.relative?t.x:0)+r.x,t.y);return e.current=n,{current:t,point:n}}},{key:"pathV",value:function(e){var t=e.current,r=e.command,n=new mt(t.x,(r.relative?t.y:0)+r.y);return e.current=n,{current:t,point:n}}},{key:"pathC",value:function(e){return{current:e.current,point:e.getPoint("x1","y1"),controlPoint:e.getAsControlPoint("x2","y2"),currentPoint:e.getAsCurrentPoint()}}},{key:"pathS",value:function(e){return{current:e.current,point:e.getReflectedControlPoint(),controlPoint:e.getAsControlPoint("x2","y2"),currentPoint:e.getAsCurrentPoint()}}},{key:"pathQ",value:function(e){return{current:e.current,controlPoint:e.getAsControlPoint("x1","y1"),currentPoint:e.getAsCurrentPoint()}}},{key:"pathT",value:function(e){var t=e.current,r=e.getReflectedControlPoint();return e.control=r,{current:t,controlPoint:r,currentPoint:e.getAsCurrentPoint()}}},{key:"pathA",value:function(e){var t=e.current,r=e.command,n=r.rX,o=r.rY,s=r.xRot,i=r.lArcFlag,a=r.sweepFlag,A=s*(Math.PI/180),u=e.getAsCurrentPoint(),c=new mt(Math.cos(A)*(t.x-u.x)/2+Math.sin(A)*(t.y-u.y)/2,-Math.sin(A)*(t.x-u.x)/2+Math.cos(A)*(t.y-u.y)/2),l=Math.pow(c.x,2)/Math.pow(n,2)+Math.pow(c.y,2)/Math.pow(o,2);l>1&&(n*=Math.sqrt(l),o*=Math.sqrt(l));var d=(i===a?-1:1)*Math.sqrt((Math.pow(n,2)*Math.pow(o,2)-Math.pow(n,2)*Math.pow(c.y,2)-Math.pow(o,2)*Math.pow(c.x,2))/(Math.pow(n,2)*Math.pow(c.y,2)+Math.pow(o,2)*Math.pow(c.x,2)));isNaN(d)&&(d=0);var f=new mt(d*n*c.y/o,d*-o*c.x/n),h=new mt((t.x+u.x)/2+Math.cos(A)*f.x-Math.sin(A)*f.y,(t.y+u.y)/2+Math.sin(A)*f.x+Math.cos(A)*f.y),p=it([1,0],[(c.x-f.x)/n,(c.y-f.y)/o]),m=[(c.x-f.x)/n,(c.y-f.y)/o],g=[(-c.x-f.x)/n,(-c.y-f.y)/o],y=it(m,g);return st(m,g)<=-1&&(y=Math.PI),st(m,g)>=1&&(y=0),{currentPoint:u,rX:n,rY:o,sweepFlag:a,xAxisRotation:A,centp:h,a1:p,ad:y}}},{key:"pathZ",value:function(e){e.current=e.start}}]),o}(kt);var Vt=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(){var e;return(0,F.default)(this,o),(e=n.apply(this,arguments)).type="svg",e.root=!1,e}return(0,U.default)(o,[{key:"setContext",value:function(e){var t=this.document,r=t.screen,n=t.window,s=e.canvas;if(r.setDefaults(e),s.style&&void 0!==e.font&&n&&void 0!==n.getComputedStyle){e.font=n.getComputedStyle(s).getPropertyValue("font");var i=new ht(t,"fontSize",Pt.parse(e.font).fontSize);i.hasValue()&&(t.rootEmSize=i.getPixels("y"),t.emSize=t.rootEmSize)}this.getAttribute("x").hasValue()||this.getAttribute("x",!0).setValue(0),this.getAttribute("y").hasValue()||this.getAttribute("y",!0).setValue(0);var a=r.viewPort,A=a.width,u=a.height;this.getStyle("width").hasValue()||this.getStyle("width",!0).setValue("100%"),this.getStyle("height").hasValue()||this.getStyle("height",!0).setValue("100%"),this.getStyle("color").hasValue()||this.getStyle("color",!0).setValue("black");var c=this.getAttribute("refX"),l=this.getAttribute("refY"),d=this.getAttribute("viewBox"),f=d.hasValue()?Ke(d.getString()):null,h=!this.root&&"visible"!==this.getStyle("overflow").getValue("hidden"),p=0,m=0,g=0,y=0;f&&(p=f[0],m=f[1]),this.root||(A=this.getStyle("width").getPixels("x"),u=this.getStyle("height").getPixels("y"),"marker"===this.type&&(g=p,y=m,p=0,m=0)),r.viewPort.setCurrent(A,u),this.node&&this.getStyle("transform",!1,!0).hasValue()&&!this.getStyle("transform-origin",!1,!0).hasValue()&&this.getStyle("transform-origin",!0,!0).setValue("50% 50%"),(0,de.default)((0,ee.default)(o.prototype),"setContext",this).call(this,e),e.translate(this.getAttribute("x").getPixels("x"),this.getAttribute("y").getPixels("y")),f&&(A=f[2],u=f[3]),t.setViewBox({ctx:e,aspectRatio:this.getAttribute("preserveAspectRatio").getString(),width:r.viewPort.width,desiredWidth:A,height:r.viewPort.height,desiredHeight:u,minX:p,minY:m,refX:c.getValue(),refY:l.getValue(),clip:h,clipX:g,clipY:y}),f&&(r.viewPort.removeCurrent(),r.viewPort.setCurrent(A,u))}},{key:"clearContext",value:function(e){(0,de.default)((0,ee.default)(o.prototype),"clearContext",this).call(this,e),this.document.screen.viewPort.removeCurrent()}},{key:"resize",value:function(e){var t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=this.getAttribute("width",!0),s=this.getAttribute("height",!0),i=this.getAttribute("viewBox"),a=this.getAttribute("style"),A=o.getNumber(0),u=s.getNumber(0);if(n)if("string"==typeof n)this.getAttribute("preserveAspectRatio",!0).setValue(n);else{var c=this.getAttribute("preserveAspectRatio");c.hasValue()&&c.setValue(c.getString().replace(/^\s*(\S.*\S)\s*$/,"$1"))}if(o.setValue(e),s.setValue(r),i.hasValue()||i.setValue(L()(t="0 0 ".concat(A||e," ")).call(t,u||r)),a.hasValue()){var l=this.getStyle("width"),d=this.getStyle("height");l.hasValue()&&l.setValue("".concat(e,"px")),d.hasValue()&&d.setValue("".concat(r,"px"))}}}]),o}(kt);var qt=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(){var e;return(0,F.default)(this,o),(e=n.apply(this,arguments)).type="rect",e}return(0,U.default)(o,[{key:"path",value:function(e){var t=this.getAttribute("x").getPixels("x"),r=this.getAttribute("y").getPixels("y"),n=this.getStyle("width",!1,!0).getPixels("x"),o=this.getStyle("height",!1,!0).getPixels("y"),s=this.getAttribute("rx"),i=this.getAttribute("ry"),a=s.getPixels("x"),A=i.getPixels("y");if(s.hasValue()&&!i.hasValue()&&(A=a),i.hasValue()&&!s.hasValue()&&(a=A),a=Math.min(a,n/2),A=Math.min(A,o/2),e){var u=(Math.sqrt(2)-1)/3*4;e.beginPath(),o>0&&n>0&&(e.moveTo(t+a,r),e.lineTo(t+n-a,r),e.bezierCurveTo(t+n-a+u*a,r,t+n,r+A-u*A,t+n,r+A),e.lineTo(t+n,r+o-A),e.bezierCurveTo(t+n,r+o-A+u*A,t+n-a+u*a,r+o,t+n-a,r+o),e.lineTo(t+a,r+o),e.bezierCurveTo(t+a-u*a,r+o,t,r+o-A+u*A,t,r+o-A),e.lineTo(t,r+A),e.bezierCurveTo(t,r+A-u*A,t+a-u*a,r,t+a,r),e.closePath())}return new Ot(t,r,t+n,r+o)}},{key:"getMarkers",value:function(){return null}}]),o}(zt);var Gt=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(){var e;return(0,F.default)(this,o),(e=n.apply(this,arguments)).type="circle",e}return(0,U.default)(o,[{key:"path",value:function(e){var t=this.getAttribute("cx").getPixels("x"),r=this.getAttribute("cy").getPixels("y"),n=this.getAttribute("r").getPixels();return e&&n>0&&(e.beginPath(),e.arc(t,r,n,0,2*Math.PI,!1),e.closePath()),new Ot(t-n,r-n,t+n,r+n)}},{key:"getMarkers",value:function(){return null}}]),o}(zt);var Xt=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(){var e;return(0,F.default)(this,o),(e=n.apply(this,arguments)).type="ellipse",e}return(0,U.default)(o,[{key:"path",value:function(e){var t=(Math.sqrt(2)-1)/3*4,r=this.getAttribute("rx").getPixels("x"),n=this.getAttribute("ry").getPixels("y"),o=this.getAttribute("cx").getPixels("x"),s=this.getAttribute("cy").getPixels("y");return e&&r>0&&n>0&&(e.beginPath(),e.moveTo(o+r,s),e.bezierCurveTo(o+r,s+t*n,o+t*r,s+n,o,s+n),e.bezierCurveTo(o-t*r,s+n,o-r,s+t*n,o-r,s),e.bezierCurveTo(o-r,s-t*n,o-t*r,s-n,o,s-n),e.bezierCurveTo(o+t*r,s-n,o+r,s-t*n,o+r,s),e.closePath()),new Ot(o-r,s-n,o+r,s+n)}},{key:"getMarkers",value:function(){return null}}]),o}(zt);var Wt=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(){var e;return(0,F.default)(this,o),(e=n.apply(this,arguments)).type="line",e}return(0,U.default)(o,[{key:"getPoints",value:function(){return[new mt(this.getAttribute("x1").getPixels("x"),this.getAttribute("y1").getPixels("y")),new mt(this.getAttribute("x2").getPixels("x"),this.getAttribute("y2").getPixels("y"))]}},{key:"path",value:function(e){var t=this.getPoints(),r=(0,u.default)(t,2),n=r[0],o=n.x,s=n.y,i=r[1],a=i.x,A=i.y;return e&&(e.beginPath(),e.moveTo(o,s),e.lineTo(a,A)),new Ot(o,s,a,A)}},{key:"getMarkers",value:function(){var e=this.getPoints(),t=(0,u.default)(e,2),r=t[0],n=t[1],o=r.angleTo(n);return[[r,o],[n,o]]}}]),o}(zt);var Jt=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(e,t,r){var s;return(0,F.default)(this,o),(s=n.call(this,e,t,r)).type="polyline",s.points=[],s.points=mt.parsePath(s.getAttribute("points").getString()),s}return(0,U.default)(o,[{key:"path",value:function(e){var t=this.points,r=(0,u.default)(t,1)[0],n=r.x,o=r.y,s=new Ot(n,o);return e&&(e.beginPath(),e.moveTo(n,o)),g()(t).call(t,(function(t){var r=t.x,n=t.y;s.addPoint(r,n),e&&e.lineTo(r,n)})),s}},{key:"getMarkers",value:function(){var e=this.points,t=e.length-1,r=[];return g()(e).call(e,(function(n,o){o!==t&&r.push([n,n.angleTo(e[o+1])])})),r.length>0&&r.push([e[e.length-1],r[r.length-1][1]]),r}}]),o}(zt);var Yt=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(){var e;return(0,F.default)(this,o),(e=n.apply(this,arguments)).type="polygon",e}return(0,U.default)(o,[{key:"path",value:function(e){var t=(0,de.default)((0,ee.default)(o.prototype),"path",this).call(this,e),r=(0,u.default)(this.points,1)[0],n=r.x,s=r.y;return e&&(e.lineTo(n,s),e.closePath()),t}}]),o}(Jt);var Zt=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(){var e;return(0,F.default)(this,o),(e=n.apply(this,arguments)).type="pattern",e}return(0,U.default)(o,[{key:"createPattern",value:function(e,t,r){var n=this.getStyle("width").getPixels("x",!0),o=this.getStyle("height").getPixels("y",!0),s=new Vt(this.document,null);s.attributes.viewBox=new ht(this.document,"viewBox",this.getAttribute("viewBox").getValue()),s.attributes.width=new ht(this.document,"width","".concat(n,"px")),s.attributes.height=new ht(this.document,"height","".concat(o,"px")),s.attributes.transform=new ht(this.document,"transform",this.getAttribute("patternTransform").getValue()),s.children=this.children;var i=this.document.createCanvas(n,o),a=i.getContext("2d"),A=this.getAttribute("x"),u=this.getAttribute("y");A.hasValue()&&u.hasValue()&&a.translate(A.getPixels("x",!0),u.getPixels("y",!0)),r.hasValue()?this.styles["fill-opacity"]=r:ge()(this.styles,"fill-opacity");for(var c=-1;c<=1;c++)for(var l=-1;l<=1;l++)a.save(),s.attributes.x=new ht(this.document,"x",c*i.width),s.attributes.y=new ht(this.document,"y",l*i.height),s.render(a),a.restore();return e.createPattern(i,"repeat")}}]),o}(St);var $t=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(){var e;return(0,F.default)(this,o),(e=n.apply(this,arguments)).type="marker",e}return(0,U.default)(o,[{key:"render",value:function(e,t,r){if(t){var n=t.x,o=t.y,s=this.getAttribute("orient").getValue("auto"),i=this.getAttribute("markerUnits").getValue("strokeWidth");e.translate(n,o),"auto"===s&&e.rotate(r),"strokeWidth"===i&&e.scale(e.lineWidth,e.lineWidth),e.save();var a=new Vt(this.document,null);a.type=this.type,a.attributes.viewBox=new ht(this.document,"viewBox",this.getAttribute("viewBox").getValue()),a.attributes.refX=new ht(this.document,"refX",this.getAttribute("refX").getValue()),a.attributes.refY=new ht(this.document,"refY",this.getAttribute("refY").getValue()),a.attributes.width=new ht(this.document,"width",this.getAttribute("markerWidth").getValue()),a.attributes.height=new ht(this.document,"height",this.getAttribute("markerHeight").getValue()),a.attributes.overflow=new ht(this.document,"overflow",this.getAttribute("overflow").getValue()),a.attributes.fill=new ht(this.document,"fill",this.getAttribute("fill").getColor("black")),a.attributes.stroke=new ht(this.document,"stroke",this.getAttribute("stroke").getValue("none")),a.children=this.children,a.render(e),e.restore(),"strokeWidth"===i&&e.scale(1/e.lineWidth,1/e.lineWidth),"auto"===s&&e.rotate(-r),e.translate(-n,-o)}}}]),o}(St);var er=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(){var e;return(0,F.default)(this,o),(e=n.apply(this,arguments)).type="defs",e}return(0,U.default)(o,[{key:"render",value:function(){}}]),o}(St);var tr=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(){var e;return(0,F.default)(this,o),(e=n.apply(this,arguments)).type="g",e}return(0,U.default)(o,[{key:"getBoundingBox",value:function(e){var t,r=new Ot;return g()(t=this.children).call(t,(function(t){r.addBoundingBox(t.getBoundingBox(e))})),r}}]),o}(kt);var rr=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(e,t,r){var s;(0,F.default)(this,o),(s=n.call(this,e,t,r)).attributesToInherit=["gradientUnits"],s.stops=[];var i=(0,ye.default)(s),a=i.stops,A=i.children;return g()(A).call(A,(function(e){"stop"===e.type&&a.push(e)})),s}return(0,U.default)(o,[{key:"getGradientUnits",value:function(){return this.getAttribute("gradientUnits").getString("objectBoundingBox")}},{key:"createGradient",value:function(e,t,r){var n=this,o=this;this.getHrefAttribute().hasValue()&&(o=this.getHrefAttribute().getDefinition(),this.inheritStopContainer(o));var s=o.stops,i=this.getGradient(e,t);if(!i)return this.addParentOpacity(r,s[s.length-1].color);if(g()(s).call(s,(function(e){i.addColorStop(e.offset,n.addParentOpacity(r,e.color))})),this.getAttribute("gradientTransform").hasValue()){var a=this.document,A=a.screen,c=A.MAX_VIRTUAL_PIXELS,l=A.viewPort,d=(0,u.default)(l.viewPorts,1)[0],f=new qt(a,null);f.attributes.x=new ht(a,"x",-c/3),f.attributes.y=new ht(a,"y",-c/3),f.attributes.width=new ht(a,"width",c),f.attributes.height=new ht(a,"height",c);var h=new tr(a,null);h.attributes.transform=new ht(a,"transform",this.getAttribute("gradientTransform").getValue()),h.children=[f];var p=new Vt(a,null);p.attributes.x=new ht(a,"x",0),p.attributes.y=new ht(a,"y",0),p.attributes.width=new ht(a,"width",d.width),p.attributes.height=new ht(a,"height",d.height),p.children=[h];var m=a.createCanvas(d.width,d.height),y=m.getContext("2d");return y.fillStyle=i,p.render(y),y.createPattern(m,"no-repeat")}return i}},{key:"inheritStopContainer",value:function(e){var t,r=this;g()(t=this.attributesToInherit).call(t,(function(t){!r.getAttribute(t).hasValue()&&e.getAttribute(t).hasValue()&&r.getAttribute(t,!0).setValue(e.getAttribute(t).getValue())}))}},{key:"addParentOpacity",value:function(e,t){return e.hasValue()?new ht(this.document,"color",t).addOpacity(e).getColor():t}}]),o}(St);var nr=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(e,t,r){var s;return(0,F.default)(this,o),(s=n.call(this,e,t,r)).type="linearGradient",s.attributesToInherit.push("x1","y1","x2","y2"),s}return(0,U.default)(o,[{key:"getGradient",value:function(e,t){var r="objectBoundingBox"===this.getGradientUnits(),n=r?t.getBoundingBox(e):null;if(r&&!n)return null;this.getAttribute("x1").hasValue()||this.getAttribute("y1").hasValue()||this.getAttribute("x2").hasValue()||this.getAttribute("y2").hasValue()||(this.getAttribute("x1",!0).setValue(0),this.getAttribute("y1",!0).setValue(0),this.getAttribute("x2",!0).setValue(1),this.getAttribute("y2",!0).setValue(0));var o=r?n.x+n.width*this.getAttribute("x1").getNumber():this.getAttribute("x1").getPixels("x"),s=r?n.y+n.height*this.getAttribute("y1").getNumber():this.getAttribute("y1").getPixels("y"),i=r?n.x+n.width*this.getAttribute("x2").getNumber():this.getAttribute("x2").getPixels("x"),a=r?n.y+n.height*this.getAttribute("y2").getNumber():this.getAttribute("y2").getPixels("y");return o===i&&s===a?null:e.createLinearGradient(o,s,i,a)}}]),o}(rr);var or=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(e,t,r){var s;return(0,F.default)(this,o),(s=n.call(this,e,t,r)).type="radialGradient",s.attributesToInherit.push("cx","cy","r","fx","fy","fr"),s}return(0,U.default)(o,[{key:"getGradient",value:function(e,t){var r="objectBoundingBox"===this.getGradientUnits(),n=t.getBoundingBox(e);if(r&&!n)return null;this.getAttribute("cx").hasValue()||this.getAttribute("cx",!0).setValue("50%"),this.getAttribute("cy").hasValue()||this.getAttribute("cy",!0).setValue("50%"),this.getAttribute("r").hasValue()||this.getAttribute("r",!0).setValue("50%");var o=r?n.x+n.width*this.getAttribute("cx").getNumber():this.getAttribute("cx").getPixels("x"),s=r?n.y+n.height*this.getAttribute("cy").getNumber():this.getAttribute("cy").getPixels("y"),i=o,a=s;this.getAttribute("fx").hasValue()&&(i=r?n.x+n.width*this.getAttribute("fx").getNumber():this.getAttribute("fx").getPixels("x")),this.getAttribute("fy").hasValue()&&(a=r?n.y+n.height*this.getAttribute("fy").getNumber():this.getAttribute("fy").getPixels("y"));var A=r?(n.width+n.height)/2*this.getAttribute("r").getNumber():this.getAttribute("r").getPixels(),u=this.getAttribute("fr").getPixels();return e.createRadialGradient(i,a,u,o,s,A)}}]),o}(rr);var sr=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(e,t,r){var s;(0,F.default)(this,o),(s=n.call(this,e,t,r)).type="stop";var i=Math.max(0,Math.min(1,s.getAttribute("offset").getNumber())),a=s.getStyle("stop-opacity"),A=s.getStyle("stop-color",!0);return""===A.getString()&&A.setValue("#000"),a.hasValue()&&(A=A.addOpacity(a)),s.offset=i,s.color=A.getColor(),s}return o}(St);var ir=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(e,t,r){var s;return(0,F.default)(this,o),(s=n.call(this,e,t,r)).type="animate",s.duration=0,s.initialValue=null,s.initialUnits="",s.removed=!1,s.frozen=!1,e.screen.animations.push((0,ye.default)(s)),s.begin=s.getAttribute("begin").getMilliseconds(),s.maxDuration=s.begin+s.getAttribute("dur").getMilliseconds(),s.from=s.getAttribute("from"),s.to=s.getAttribute("to"),s.values=s.getAttribute("values"),we()(s).hasValue()&&we()(s).setValue(we()(s).getString().split(";")),s}return(0,U.default)(o,[{key:"getProperty",value:function(){var e=this.getAttribute("attributeType").getString(),t=this.getAttribute("attributeName").getString();return"CSS"===e?this.parent.getStyle(t,!0):this.parent.getAttribute(t,!0)}},{key:"calcValue",value:function(){var e,t=this.initialUnits,r=this.getProgress(),n=r.progress,o=r.from,s=r.to,i=o.getNumber()+(s.getNumber()-o.getNumber())*n;return"%"===t&&(i*=100),L()(e="".concat(i)).call(e,t)}},{key:"update",value:function(e){var t=this.parent,r=this.getProperty();if(this.initialValue||(this.initialValue=r.getString(),this.initialUnits=r.getUnits()),this.duration>this.maxDuration){var n=this.getAttribute("fill").getString("remove");if("indefinite"===this.getAttribute("repeatCount").getString()||"indefinite"===this.getAttribute("repeatDur").getString())this.duration=0;else if("freeze"!==n||this.frozen){if("remove"===n&&!this.removed)return this.removed=!0,r.setValue(t.animationFrozen?t.animationFrozenValue:this.initialValue),!0}else this.frozen=!0,t.animationFrozen=!0,t.animationFrozenValue=r.getString();return!1}this.duration+=e;var o=!1;if(this.begine.length)&&(t=e.length);for(var r=0,n=new Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s,i=!0,a=!1;return{s:function(){r=_e()(e)},n:function(){var e=r.next();return i=e.done,e},e:function(e){a=!0,s=e},f:function(){try{i||null==r.return||r.return()}finally{if(a)throw s}}}}((0,ye.default)(s).children);try{for(A.s();!(i=A.n()).done;){var u=i.value;switch(u.type){case"font-face":s.fontFace=u;var c=u.getStyle("font-family");c.hasValue()&&(a[c.getString()]=(0,ye.default)(s));break;case"missing-glyph":s.missingGlyph=u;break;case"glyph":var l=u;l.arabicForm?(s.isRTL=!0,s.isArabic=!0,void 0===s.glyphs[l.unicode]&&(s.glyphs[l.unicode]={}),s.glyphs[l.unicode][l.arabicForm]=l):s.glyphs[l.unicode]=l}}}catch(e){A.e(e)}finally{A.f()}return s}return(0,U.default)(o,[{key:"render",value:function(){}}]),o}(St);var lr=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(e,t,r){var s;return(0,F.default)(this,o),(s=n.call(this,e,t,r)).type="font-face",s.ascent=s.getAttribute("ascent").getNumber(),s.descent=s.getAttribute("descent").getNumber(),s.unitsPerEm=s.getAttribute("units-per-em").getNumber(),s}return o}(St);var dr=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(){var e;return(0,F.default)(this,o),(e=n.apply(this,arguments)).type="missing-glyph",e.horizAdvX=0,e}return o}(zt);var fr=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(e,t,r){var s;return(0,F.default)(this,o),(s=n.call(this,e,t,r)).type="glyph",s.horizAdvX=s.getAttribute("horiz-adv-x").getNumber(),s.unicode=s.getAttribute("unicode").getString(),s.arabicForm=s.getAttribute("arabic-form").getString(),s}return o}(zt);var hr=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(){var e;return(0,F.default)(this,o),(e=n.apply(this,arguments)).type="tref",e}return(0,U.default)(o,[{key:"getText",value:function(){var e=this.getHrefAttribute().getDefinition();if(e){var t=e.children[0];if(t)return t.getText()}return""}}]),o}(Rt);var pr=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(e,t,r){var s,i;(0,F.default)(this,o),(i=n.call(this,e,t,r)).type="a";var a=t.childNodes,A=a[0],u=a.length>0&&k()(s=ae()(a)).call(s,(function(e){return 3===e.nodeType}));return i.hasText=u,i.text=u?i.getTextFromNode(A):"",i}return(0,U.default)(o,[{key:"getText",value:function(){return this.text}},{key:"renderChildren",value:function(e){if(this.hasText){(0,de.default)((0,ee.default)(o.prototype),"renderChildren",this).call(this,e);var t=this.document,r=this.x,n=this.y,s=t.screen.mouse,i=new ht(t,"fontSize",Pt.parse(t.ctx.font).fontSize);s.isWorking()&&s.checkBoundingBox(this,new Ot(r,n-i.getPixels("y"),r+this.measureText(e),n))}else if(this.children.length>0){var a=new tr(this.document,null);a.children=this.children,a.parent=this,a.render(e)}}},{key:"onClick",value:function(){var e=this.document.window;e&&e.open(this.getHrefAttribute().getString())}},{key:"onMouseMove",value:function(){this.document.ctx.canvas.style.cursor="pointer"}}]),o}(Rt);function mr(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);rA?a:A,p=a>A?1:a/A,m=a>A?A/a:1;e&&(e.translate(s,i),e.rotate(d),e.scale(p,m),e.arc(0,0,h,c,c+l,Boolean(1-f)),e.scale(1/p,1/m),e.rotate(-d),e.translate(-s,-i));break;case Kt.CLOSE_PATH:e&&e.closePath()}}))}},{key:"renderChildren",value:function(e){this.setTextData(e),e.save();var t=this.parent.getStyle("text-decoration").getString(),r=this.getFontSize(),n=this.glyphInfo,o=e.fillStyle;"underline"===t&&e.beginPath(),g()(n).call(n,(function(n,o){var s=n.p0,i=n.p1,a=n.rotation,A=n.text;e.save(),e.translate(s.x,s.y),e.rotate(a),e.fillStyle&&e.fillText(A,0,0),e.strokeStyle&&e.strokeText(A,0,0),e.restore(),"underline"===t&&(0===o&&e.moveTo(s.x,s.y+r/8),e.lineTo(i.x,i.y+r/5))})),"underline"===t&&(e.lineWidth=r/20,e.strokeStyle=o,e.stroke(),e.closePath()),e.restore()}},{key:"getLetterSpacingAt",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.letterSpacingCache[e]||0}},{key:"findSegmentToFitChar",value:function(e,t,r,n,o,s,i,a,A){var u=s,c=this.measureText(e,a);" "===a&&"justify"===t&&r-1&&(u+=this.getLetterSpacingAt(A));var l=this.textHeight/20,d=this.getEquidistantPointOnPath(u,l,0),f=this.getEquidistantPointOnPath(u+c,l,0),h={p0:d,p1:f},p=d&&f?Math.atan2(f.y-d.y,f.x-d.x):0;if(i){var m=Math.cos(Math.PI/2+p)*i,g=Math.cos(-p)*i;h.p0=yr(yr({},d),{},{x:d.x+m,y:d.y+g}),h.p1=yr(yr({},f),{},{x:f.x+m,y:f.y+g})}return{offset:u+=c,segment:h,rotation:p}}},{key:"measureText",value:function(e,t){var r=this.measuresCache,n=t||this.getText();if(r.has(n))return r.get(n);var o=this.measureTargetText(e,n);return r.set(n,o),o}},{key:"setTextData",value:function(e){var t,r=this;if(!this.glyphInfo){var n=this.getText(),o=n.split(""),s=n.split(" ").length-1,i=A()(t=this.parent.getAttribute("dx").split()).call(t,(function(e){return e.getPixels("x")})),a=this.parent.getAttribute("dy").getPixels("y"),u=this.parent.getStyle("text-anchor").getString("start"),c=this.getStyle("letter-spacing"),l=this.parent.getStyle("letter-spacing"),d=0;c.hasValue()&&"inherit"!==c.getValue()?c.hasValue()&&"initial"!==c.getValue()&&"unset"!==c.getValue()&&(d=c.getPixels()):d=l.getPixels();var f=[],h=n.length;this.letterSpacingCache=f;for(var p=0;p0&&(A-=2*Math.PI),1===o&&A<0&&(A+=2*Math.PI),[i.x,i.y,r,n,a,A,s,o]}},{key:"calcLength",value:function(e,t,r,n){var o=0,s=null,i=null,a=0;switch(r){case Kt.LINE_TO:return this.getLineLength(e,t,n[0],n[1]);case Kt.CURVE_TO:for(o=0,s=this.getPointOnCubicBezier(0,e,t,n[0],n[1],n[2],n[3],n[4],n[5]),a=.01;a<=1;a+=.01)i=this.getPointOnCubicBezier(a,e,t,n[0],n[1],n[2],n[3],n[4],n[5]),o+=this.getLineLength(s.x,s.y,i.x,i.y),s=i;return o;case Kt.QUAD_TO:for(o=0,s=this.getPointOnQuadraticBezier(0,e,t,n[0],n[1],n[2],n[3]),a=.01;a<=1;a+=.01)i=this.getPointOnQuadraticBezier(a,e,t,n[0],n[1],n[2],n[3]),o+=this.getLineLength(s.x,s.y,i.x,i.y),s=i;return o;case Kt.ARC:o=0;var A=n[4],u=n[5],c=n[4]+u,l=Math.PI/180;if(Math.abs(A-c)c;a-=l)i=this.getPointOnEllipticalArc(n[0],n[1],n[2],n[3],a,0),o+=this.getLineLength(s.x,s.y,i.x,i.y),s=i;else for(a=A+l;a5&&void 0!==arguments[5]?arguments[5]:t,i=arguments.length>6&&void 0!==arguments[6]?arguments[6]:r,a=(o-r)/(n-t+nt),A=Math.sqrt(e*e/(1+a*a));nt)return null;var o,s=function(e,t){var r;if(void 0===Fe()||null==Ne()(e)){if(xe()(e)||(r=function(e,t){var r;if(e){if("string"==typeof e)return mr(e,t);var n=Se()(r=Object.prototype.toString.call(e)).call(r,8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?ae()(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?mr(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s,i=!0,a=!1;return{s:function(){r=_e()(e)},n:function(){var e=r.next();return i=e.done,e},e:function(e){a=!0,s=e},f:function(){try{i||null==r.return||r.return()}finally{if(a)throw s}}}}(this.dataArray);try{for(s.s();!(o=s.n()).done;){var i=o.value;if(!i||!(i.pathLength<5e-5||r+i.pathLength+5e-5=0&&A>l)break;n=this.getPointOnEllipticalArc(i.points[0],i.points[1],i.points[2],i.points[3],A,i.points[6]);break;case Kt.CURVE_TO:(A=a/i.pathLength)>1&&(A=1),n=this.getPointOnCubicBezier(A,i.start.x,i.start.y,i.points[0],i.points[1],i.points[2],i.points[3],i.points[4],i.points[5]);break;case Kt.QUAD_TO:(A=a/i.pathLength)>1&&(A=1),n=this.getPointOnQuadraticBezier(A,i.start.x,i.start.y,i.points[0],i.points[1],i.points[2],i.points[3])}if(n)return n;break}r+=i.pathLength}}catch(e){s.e(e)}finally{s.f()}return null}},{key:"getLineLength",value:function(e,t,r,n){return Math.sqrt((r-e)*(r-e)+(n-t)*(n-t))}},{key:"getPathLength",value:function(){var e;return-1===this.pathLength&&(this.pathLength=H()(e=this.dataArray).call(e,(function(e,t){return t.pathLength>0?e+t.pathLength:e}),0)),this.pathLength}},{key:"getPointOnCubicBezier",value:function(e,t,r,n,o,s,i,a,A){return{x:a*at(e)+s*At(e)+n*ut(e)+t*ct(e),y:A*at(e)+i*At(e)+o*ut(e)+r*ct(e)}}},{key:"getPointOnQuadraticBezier",value:function(e,t,r,n,o,s,i){return{x:s*lt(e)+n*dt(e)+t*ft(e),y:i*lt(e)+o*dt(e)+r*ft(e)}}},{key:"getPointOnEllipticalArc",value:function(e,t,r,n,o,s){var i=Math.cos(s),a=Math.sin(s),A=r*Math.cos(o),u=n*Math.sin(o);return{x:e+(A*i-u*a),y:t+(A*a+u*i)}}},{key:"buildEquidistantCache",value:function(e,t){var r=this.getPathLength(),n=t||.25,o=e||r/100;if(!this.equidistantCache||this.equidistantCache.step!==o||this.equidistantCache.precision!==n){this.equidistantCache={step:o,precision:n,points:[]};for(var s=0,i=0;i<=r;i+=n){var a=this.getPointOnPath(i),A=this.getPointOnPath(i+n);a&&A&&(s+=this.getLineLength(a.x,a.y,A.x,A.y))>=o&&(this.equidistantCache.points.push({x:a.x,y:a.y,distance:i}),s-=o)}}}},{key:"getEquidistantPointOnPath",value:function(e,t,r){if(this.buildEquidistantCache(t,r),e<0||e-this.getPathLength()>5e-5)return null;var n=Math.round(e/this.getPathLength()*(this.equidistantCache.points.length-1));return this.equidistantCache.points[n]||null}}]),o}(Rt);var wr=function(e){(0,Z.default)(i,e);var t,r,n,o,s=(n=i,o=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=(0,ee.default)(n);if(o){var r=(0,ee.default)(this).constructor;e=Y()(t,arguments,r)}else e=t.apply(this,arguments);return(0,$.default)(this,e)});function i(e,t,r){var n;(0,F.default)(this,i),(n=s.call(this,e,t,r)).type="image",n.loaded=!1;var o=n.getHrefAttribute().getString();if(!o)return(0,$.default)(n);var a=/\.svg$/.test(o);return e.images.push((0,ye.default)(n)),a?n.loadSvg(o):n.loadImage(o),n.isSvg=a,n}return(0,U.default)(i,[{key:"loadImage",value:(r=(0,N.default)(E().mark((function e(t){var r;return E().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,this.document.createImage(t);case 3:r=e.sent,this.image=r,e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),console.error('Error while loading image "'.concat(t,'":'),e.t0);case 10:this.loaded=!0;case 11:case"end":return e.stop()}}),e,this,[[0,7]])}))),function(e){return r.apply(this,arguments)})},{key:"loadSvg",value:(t=(0,N.default)(E().mark((function e(t){var r,n;return E().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,this.document.fetch(t);case 3:return r=e.sent,e.next=6,r.text();case 6:n=e.sent,this.image=n,e.next=13;break;case 10:e.prev=10,e.t0=e.catch(0),console.error('Error while loading image "'.concat(t,'":'),e.t0);case 13:this.loaded=!0;case 14:case"end":return e.stop()}}),e,this,[[0,10]])}))),function(e){return t.apply(this,arguments)})},{key:"renderChildren",value:function(e){var t=this.document,r=this.image,n=this.loaded,o=this.getAttribute("x").getPixels("x"),s=this.getAttribute("y").getPixels("y"),i=this.getStyle("width").getPixels("x"),a=this.getStyle("height").getPixels("y");if(n&&r&&i&&a){if(e.save(),this.isSvg)t.canvg.forkString(e,this.image,{ignoreMouse:!0,ignoreAnimation:!0,ignoreDimensions:!0,ignoreClear:!0,offsetX:o,offsetY:s,scaleWidth:i,scaleHeight:a}).render();else{var A=this.image;e.translate(o,s),t.setViewBox({ctx:e,aspectRatio:this.getAttribute("preserveAspectRatio").getString(),width:i,desiredWidth:A.width,height:a,desiredHeight:A.height}),this.loaded&&(void 0===A.complete||A.complete)&&e.drawImage(A,0,0)}e.restore()}}},{key:"getBoundingBox",value:function(){var e=this.getAttribute("x").getPixels("x"),t=this.getAttribute("y").getPixels("y"),r=this.getStyle("width").getPixels("x"),n=this.getStyle("height").getPixels("y");return new Ot(e,t,e+r,t+n)}}]),i}(kt);var br=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(){var e;return(0,F.default)(this,o),(e=n.apply(this,arguments)).type="symbol",e}return(0,U.default)(o,[{key:"render",value:function(e){}}]),o}(kt),Br=function(){function e(t){(0,F.default)(this,e),this.document=t,this.loaded=!1,t.fonts.push(this)}var t;return(0,U.default)(e,[{key:"load",value:(t=(0,N.default)(E().mark((function e(t,r){var n,o,s,i;return E().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,o=this.document,e.next=4,o.canvg.parser.load(r);case 4:s=e.sent,i=s.getElementsByTagName("font"),g()(n=ae()(i)).call(n,(function(e){var r=o.createElement(e);o.definitions[t]=r})),e.next=12;break;case 9:e.prev=9,e.t0=e.catch(0),console.error('Error while loading font "'.concat(r,'":'),e.t0);case 12:this.loaded=!0;case 13:case"end":return e.stop()}}),e,this,[[0,9]])}))),function(e,r){return t.apply(this,arguments)})}]),e}();var jr=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(e,t,r){var s,i;(0,F.default)(this,o),(i=n.call(this,e,t,r)).type="style";var a=Re(A()(s=ae()(t.childNodes)).call(s,(function(e){return e.data})).join("").replace(/(\/\*([^*]|[\r\n]|(\*+([^*\/]|[\r\n])))*\*+\/)|(^[\s]*\/\/.*)/gm,"").replace(/@import.*;/g,"")).split("}");return g()(a).call(a,(function(t){var r=G()(t).call(t);if(r){var n=r.split("{"),o=n[0].split(","),s=n[1].split(";");g()(o).call(o,(function(t){var r=G()(t).call(t);if(r){var n=e.styles[r]||{};if(g()(s).call(s,(function(t){var r,o,s=le()(t).call(t,":"),i=G()(r=t.substr(0,s)).call(r),a=G()(o=t.substr(s+1,t.length-s)).call(o);i&&a&&(n[i]=new ht(e,i,a))})),e.styles[r]=n,e.stylesSpecificity[r]=rt(r),"@font-face"===r){var o=n["font-family"].getString().replace(/"|'/g,""),i=n.src.getString().split(",");g()(i).call(i,(function(t){if(le()(t).call(t,'format("svg")')>0){var r=qe(t);r&&new Br(e).load(o,r)}}))}}}))}})),i}return o}(St);jr.parseExternalUrl=qe;var _r=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(){var e;return(0,F.default)(this,o),(e=n.apply(this,arguments)).type="use",e}return(0,U.default)(o,[{key:"setContext",value:function(e){(0,de.default)((0,ee.default)(o.prototype),"setContext",this).call(this,e);var t=this.getAttribute("x"),r=this.getAttribute("y");t.hasValue()&&e.translate(t.getPixels("x"),0),r.hasValue()&&e.translate(0,r.getPixels("y"))}},{key:"path",value:function(e){var t=this.element;t&&t.path(e)}},{key:"renderChildren",value:function(e){var t=this.document,r=this.element;if(r){var n=r;if("symbol"===r.type&&((n=new Vt(t,null)).attributes.viewBox=new ht(t,"viewBox",r.getAttribute("viewBox").getString()),n.attributes.preserveAspectRatio=new ht(t,"preserveAspectRatio",r.getAttribute("preserveAspectRatio").getString()),n.attributes.overflow=new ht(t,"overflow",r.getAttribute("overflow").getString()),n.children=r.children,r.styles.opacity=new ht(t,"opacity",this.calculateOpacity())),"svg"===n.type){var o=this.getStyle("width",!1,!0),s=this.getStyle("height",!1,!0);o.hasValue()&&(n.attributes.width=new ht(t,"width",o.getString())),s.hasValue()&&(n.attributes.height=new ht(t,"height",s.getString()))}var i=n.parent;n.parent=this,n.render(e),n.parent=i}}},{key:"getBoundingBox",value:function(e){var t=this.element;return t?t.getBoundingBox(e):null}},{key:"elementTransform",value:function(){var e=this.document,t=this.element;return Ut.fromElement(e,t)}},{key:"element",get:function(){return this._element||(this._element=this.getHrefAttribute().getDefinition()),this._element}}]),o}(kt);function Cr(e,t,r,n,o,s){return e[r*n*4+4*t+s]}function xr(e,t,r,n,o,s,i){e[r*n*4+4*t+s]=i}function Er(e,t,r){return e[t]*r}function Nr(e,t,r,n){return t+Math.cos(e)*r+Math.sin(e)*n}var Qr=function(e){(0,Z.default)(o,e);var t,r,n=(t=o,r=function(){if("undefined"==typeof Reflect||!Y())return!1;if(Y().sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Y()(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=(0,ee.default)(t);if(r){var o=(0,ee.default)(this).constructor;e=Y()(n,arguments,o)}else e=n.apply(this,arguments);return(0,$.default)(this,e)});function o(e,t,r){var s;(0,F.default)(this,o),(s=n.call(this,e,t,r)).type="feColorMatrix";var i=Ke(s.getAttribute("values").getString());switch(s.getAttribute("type").getString("matrix")){case"saturate":var a=i[0];i=[.213+.787*a,.715-.715*a,.072-.072*a,0,0,.213-.213*a,.715+.285*a,.072-.072*a,0,0,.213-.213*a,.715-.715*a,.072+.928*a,0,0,0,0,0,1,0,0,0,0,0,1];break;case"hueRotate":var A=i[0]*Math.PI/180;i=[Nr(A,.213,.787,-.213),Nr(A,.715,-.715,-.715),Nr(A,.072,-.072,.928),0,0,Nr(A,.213,-.213,.143),Nr(A,.715,.285,.14),Nr(A,.072,-.072,-.283),0,0,Nr(A,.213,-.213,-.787),Nr(A,.715,-.715,.715),Nr(A,.072,.928,.072),0,0,0,0,0,1,0,0,0,0,0,1];break;case"luminanceToAlpha":i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,.2125,.7154,.0721,0,0,0,0,0,0,1]}return s.matrix=i,s.includeOpacity=s.getAttribute("includeOpacity").hasValue(),s}return(0,U.default)(o,[{key:"apply",value:function(e,t,r,n,o){for(var s=this.includeOpacity,i=this.matrix,a=e.getImageData(0,0,n,o),A=0;A1&&void 0!==o[1]&&o[1],n=document.createElement("img"),r&&(n.crossOrigin="Anonymous"),e.abrupt("return",new(M())((function(e,r){n.onload=function(){e(n)},n.onerror=function(){r()},n.src=t})));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var Kr=function(){function e(t){var r,n,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=o.rootEmSize,i=void 0===s?12:s,a=o.emSize,A=void 0===a?12:a,u=o.createCanvas,c=void 0===u?e.createCanvas:u,l=o.createImage,d=void 0===l?e.createImage:l,f=o.anonymousCrossOrigin;(0,F.default)(this,e),this.canvg=t,this.definitions={},this.styles={},this.stylesSpecificity={},this.images=[],this.fonts=[],this.emSizeStack=[],this.uniqueId=0,this.screen=t.screen,this.rootEmSize=i,this.emSize=A,this.createCanvas=c,this.createImage=this.bindCreateImage(d,f),this.screen.wait(K()(r=this.isImagesLoaded).call(r,this)),this.screen.wait(K()(n=this.isFontsLoaded).call(n,this))}return(0,U.default)(e,[{key:"bindCreateImage",value:function(e,t){return"boolean"==typeof t?function(r,n){return e(r,"boolean"==typeof n?n:t)}:e}},{key:"popEmSize",value:function(){this.emSizeStack.pop()}},{key:"getUniqueId",value:function(){return"canvg".concat(++this.uniqueId)}},{key:"isImagesLoaded",value:function(){var e;return k()(e=this.images).call(e,(function(e){return e.loaded}))}},{key:"isFontsLoaded",value:function(){var e;return k()(e=this.fonts).call(e,(function(e){return e.loaded}))}},{key:"createDocumentElement",value:function(e){var t=this.createElement(e.documentElement);return t.root=!0,t.addStylesFromStyleDefinition(),this.documentElement=t,t}},{key:"createElement",value:function(t){var r=t.nodeName.replace(/^[^:]+:/,""),n=e.elementTypes[r];return void 0!==n?new n(this,t):new Lt(this,t)}},{key:"createTextNode",value:function(e){return new Dt(this,e)}},{key:"setViewBox",value:function(e){this.screen.setViewBox(function(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};(0,F.default)(this,e),this.parser=new jt(n),this.screen=new wt(t,n),this.options=n;var o=new Kr(this,n),s=o.createDocumentElement(r);this.document=o,this.documentElement=s}var t,r;return(0,U.default)(e,[{key:"fork",value:function(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e.from(t,r,Vr(Vr({},this.options),n))}},{key:"forkString",value:function(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e.fromString(t,r,Vr(Vr({},this.options),n))}},{key:"ready",value:function(){return this.screen.ready()}},{key:"isReady",value:function(){return this.screen.isReady()}},{key:"render",value:(r=(0,N.default)(E().mark((function e(){var t,r=arguments;return E().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=r.length>0&&void 0!==r[0]?r[0]:{},this.start(Vr({enableRedraw:!0,ignoreAnimation:!0,ignoreMouse:!0},t)),e.next=4,this.ready();case 4:this.stop();case 5:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})},{key:"start",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this.documentElement,r=this.screen,n=this.options;r.start(t,Vr(Vr({enableRedraw:!0},n),e))}},{key:"stop",value:function(){this.screen.stop()}},{key:"resize",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];this.documentElement.resize(e,t,r)}}],[{key:"from",value:(t=(0,N.default)(E().mark((function t(r,n){var o,s,i,a=arguments;return E().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return o=a.length>2&&void 0!==a[2]?a[2]:{},s=new jt(o),t.next=4,s.parse(n);case 4:return i=t.sent,t.abrupt("return",new e(r,i,o));case 6:case"end":return t.stop()}}),t)}))),function(e,r){return t.apply(this,arguments)})},{key:"fromString",value:function(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=new jt(n),s=o.parseFromString(r);return new e(t,s,n)}}]),e}(),Gr=Object.freeze({__proto__:null,offscreen:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.DOMParser,r={window:null,ignoreAnimation:!0,ignoreMouse:!0,DOMParser:t,createCanvas:function(e,t){return new OffscreenCanvas(e,t)},createImage:function(e){return(0,N.default)(E().mark((function t(){var r,n,o;return E().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,fetch(e);case 2:return r=t.sent,t.next=5,r.blob();case 5:return n=t.sent,t.next=8,createImageBitmap(n);case 8:return o=t.sent,t.abrupt("return",o);case 10:case"end":return t.stop()}}),t)})))()}};return"undefined"==typeof DOMParser&&void 0!==t||ge()(r,"DOMParser"),r},node:function(e){var t=e.DOMParser,r=e.canvas;return{window:null,ignoreAnimation:!0,ignoreMouse:!0,DOMParser:t,fetch:e.fetch,createCanvas:r.createCanvas,createImage:r.loadImage}}});t.default=qr},"./node_modules/core-js-pure/es/array/from.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.string.iterator.js"),r("./node_modules/core-js-pure/modules/es.array.from.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.Array.from},"./node_modules/core-js-pure/es/array/is-array.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.array.is-array.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.Array.isArray},"./node_modules/core-js-pure/es/array/virtual/concat.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.array.concat.js");var n=r("./node_modules/core-js-pure/internals/entry-virtual.js");e.exports=n("Array").concat},"./node_modules/core-js-pure/es/array/virtual/every.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.array.every.js");var n=r("./node_modules/core-js-pure/internals/entry-virtual.js");e.exports=n("Array").every},"./node_modules/core-js-pure/es/array/virtual/fill.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.array.fill.js");var n=r("./node_modules/core-js-pure/internals/entry-virtual.js");e.exports=n("Array").fill},"./node_modules/core-js-pure/es/array/virtual/filter.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.array.filter.js");var n=r("./node_modules/core-js-pure/internals/entry-virtual.js");e.exports=n("Array").filter},"./node_modules/core-js-pure/es/array/virtual/for-each.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.array.for-each.js");var n=r("./node_modules/core-js-pure/internals/entry-virtual.js");e.exports=n("Array").forEach},"./node_modules/core-js-pure/es/array/virtual/includes.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.array.includes.js");var n=r("./node_modules/core-js-pure/internals/entry-virtual.js");e.exports=n("Array").includes},"./node_modules/core-js-pure/es/array/virtual/index-of.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.array.index-of.js");var n=r("./node_modules/core-js-pure/internals/entry-virtual.js");e.exports=n("Array").indexOf},"./node_modules/core-js-pure/es/array/virtual/map.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.array.map.js");var n=r("./node_modules/core-js-pure/internals/entry-virtual.js");e.exports=n("Array").map},"./node_modules/core-js-pure/es/array/virtual/reduce.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.array.reduce.js");var n=r("./node_modules/core-js-pure/internals/entry-virtual.js");e.exports=n("Array").reduce},"./node_modules/core-js-pure/es/array/virtual/reverse.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.array.reverse.js");var n=r("./node_modules/core-js-pure/internals/entry-virtual.js");e.exports=n("Array").reverse},"./node_modules/core-js-pure/es/array/virtual/slice.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.array.slice.js");var n=r("./node_modules/core-js-pure/internals/entry-virtual.js");e.exports=n("Array").slice},"./node_modules/core-js-pure/es/array/virtual/some.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.array.some.js");var n=r("./node_modules/core-js-pure/internals/entry-virtual.js");e.exports=n("Array").some},"./node_modules/core-js-pure/es/array/virtual/values.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.array.iterator.js");var n=r("./node_modules/core-js-pure/internals/entry-virtual.js");e.exports=n("Array").values},"./node_modules/core-js-pure/es/date/now.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.date.now.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.Date.now},"./node_modules/core-js-pure/es/function/virtual/bind.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.function.bind.js");var n=r("./node_modules/core-js-pure/internals/entry-virtual.js");e.exports=n("Function").bind},"./node_modules/core-js-pure/es/instance/bind.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/function/virtual/bind.js"),o=Function.prototype;e.exports=function(e){var t=e.bind;return e===o||e instanceof Function&&t===o.bind?n:t}},"./node_modules/core-js-pure/es/instance/concat.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/array/virtual/concat.js"),o=Array.prototype;e.exports=function(e){var t=e.concat;return e===o||e instanceof Array&&t===o.concat?n:t}},"./node_modules/core-js-pure/es/instance/every.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/array/virtual/every.js"),o=Array.prototype;e.exports=function(e){var t=e.every;return e===o||e instanceof Array&&t===o.every?n:t}},"./node_modules/core-js-pure/es/instance/fill.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/array/virtual/fill.js"),o=Array.prototype;e.exports=function(e){var t=e.fill;return e===o||e instanceof Array&&t===o.fill?n:t}},"./node_modules/core-js-pure/es/instance/filter.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/array/virtual/filter.js"),o=Array.prototype;e.exports=function(e){var t=e.filter;return e===o||e instanceof Array&&t===o.filter?n:t}},"./node_modules/core-js-pure/es/instance/includes.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/array/virtual/includes.js"),o=r("./node_modules/core-js-pure/es/string/virtual/includes.js"),s=Array.prototype,i=String.prototype;e.exports=function(e){var t=e.includes;return e===s||e instanceof Array&&t===s.includes?n:"string"==typeof e||e===i||e instanceof String&&t===i.includes?o:t}},"./node_modules/core-js-pure/es/instance/index-of.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/array/virtual/index-of.js"),o=Array.prototype;e.exports=function(e){var t=e.indexOf;return e===o||e instanceof Array&&t===o.indexOf?n:t}},"./node_modules/core-js-pure/es/instance/map.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/array/virtual/map.js"),o=Array.prototype;e.exports=function(e){var t=e.map;return e===o||e instanceof Array&&t===o.map?n:t}},"./node_modules/core-js-pure/es/instance/reduce.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/array/virtual/reduce.js"),o=Array.prototype;e.exports=function(e){var t=e.reduce;return e===o||e instanceof Array&&t===o.reduce?n:t}},"./node_modules/core-js-pure/es/instance/reverse.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/array/virtual/reverse.js"),o=Array.prototype;e.exports=function(e){var t=e.reverse;return e===o||e instanceof Array&&t===o.reverse?n:t}},"./node_modules/core-js-pure/es/instance/slice.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/array/virtual/slice.js"),o=Array.prototype;e.exports=function(e){var t=e.slice;return e===o||e instanceof Array&&t===o.slice?n:t}},"./node_modules/core-js-pure/es/instance/some.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/array/virtual/some.js"),o=Array.prototype;e.exports=function(e){var t=e.some;return e===o||e instanceof Array&&t===o.some?n:t}},"./node_modules/core-js-pure/es/instance/starts-with.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/string/virtual/starts-with.js"),o=String.prototype;e.exports=function(e){var t=e.startsWith;return"string"==typeof e||e===o||e instanceof String&&t===o.startsWith?n:t}},"./node_modules/core-js-pure/es/instance/trim.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/string/virtual/trim.js"),o=String.prototype;e.exports=function(e){var t=e.trim;return"string"==typeof e||e===o||e instanceof String&&t===o.trim?n:t}},"./node_modules/core-js-pure/es/map/index.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.map.js"),r("./node_modules/core-js-pure/modules/es.object.to-string.js"),r("./node_modules/core-js-pure/modules/es.string.iterator.js"),r("./node_modules/core-js-pure/modules/web.dom-collections.iterator.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.Map},"./node_modules/core-js-pure/es/object/create.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.object.create.js");var n=r("./node_modules/core-js-pure/internals/path.js").Object;e.exports=function(e,t){return n.create(e,t)}},"./node_modules/core-js-pure/es/object/define-properties.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.object.define-properties.js");var n=r("./node_modules/core-js-pure/internals/path.js").Object,o=e.exports=function(e,t){return n.defineProperties(e,t)};n.defineProperties.sham&&(o.sham=!0)},"./node_modules/core-js-pure/es/object/define-property.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.object.define-property.js");var n=r("./node_modules/core-js-pure/internals/path.js").Object,o=e.exports=function(e,t,r){return n.defineProperty(e,t,r)};n.defineProperty.sham&&(o.sham=!0)},"./node_modules/core-js-pure/es/object/get-own-property-descriptor.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.object.get-own-property-descriptor.js");var n=r("./node_modules/core-js-pure/internals/path.js").Object,o=e.exports=function(e,t){return n.getOwnPropertyDescriptor(e,t)};n.getOwnPropertyDescriptor.sham&&(o.sham=!0)},"./node_modules/core-js-pure/es/object/get-own-property-descriptors.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.object.get-own-property-descriptors.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.Object.getOwnPropertyDescriptors},"./node_modules/core-js-pure/es/object/get-own-property-symbols.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.symbol.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.Object.getOwnPropertySymbols},"./node_modules/core-js-pure/es/object/get-prototype-of.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.object.get-prototype-of.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.Object.getPrototypeOf},"./node_modules/core-js-pure/es/object/keys.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.object.keys.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.Object.keys},"./node_modules/core-js-pure/es/object/set-prototype-of.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.object.set-prototype-of.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.Object.setPrototypeOf},"./node_modules/core-js-pure/es/parse-float.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.parse-float.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.parseFloat},"./node_modules/core-js-pure/es/parse-int.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.parse-int.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.parseInt},"./node_modules/core-js-pure/es/promise/index.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.aggregate-error.js"),r("./node_modules/core-js-pure/modules/es.object.to-string.js"),r("./node_modules/core-js-pure/modules/es.promise.js"),r("./node_modules/core-js-pure/modules/es.promise.all-settled.js"),r("./node_modules/core-js-pure/modules/es.promise.any.js"),r("./node_modules/core-js-pure/modules/es.promise.finally.js"),r("./node_modules/core-js-pure/modules/es.string.iterator.js"),r("./node_modules/core-js-pure/modules/web.dom-collections.iterator.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.Promise},"./node_modules/core-js-pure/es/reflect/apply.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.reflect.apply.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.Reflect.apply},"./node_modules/core-js-pure/es/reflect/construct.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.reflect.construct.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.Reflect.construct},"./node_modules/core-js-pure/es/reflect/delete-property.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.reflect.delete-property.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.Reflect.deleteProperty},"./node_modules/core-js-pure/es/reflect/get-prototype-of.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.reflect.get-prototype-of.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.Reflect.getPrototypeOf},"./node_modules/core-js-pure/es/reflect/get.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.reflect.get.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.Reflect.get},"./node_modules/core-js-pure/es/string/virtual/includes.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.string.includes.js");var n=r("./node_modules/core-js-pure/internals/entry-virtual.js");e.exports=n("String").includes},"./node_modules/core-js-pure/es/string/virtual/starts-with.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.string.starts-with.js");var n=r("./node_modules/core-js-pure/internals/entry-virtual.js");e.exports=n("String").startsWith},"./node_modules/core-js-pure/es/string/virtual/trim.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.string.trim.js");var n=r("./node_modules/core-js-pure/internals/entry-virtual.js");e.exports=n("String").trim},"./node_modules/core-js-pure/es/symbol/index.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.array.concat.js"),r("./node_modules/core-js-pure/modules/es.object.to-string.js"),r("./node_modules/core-js-pure/modules/es.symbol.js"),r("./node_modules/core-js-pure/modules/es.symbol.async-iterator.js"),r("./node_modules/core-js-pure/modules/es.symbol.description.js"),r("./node_modules/core-js-pure/modules/es.symbol.has-instance.js"),r("./node_modules/core-js-pure/modules/es.symbol.is-concat-spreadable.js"),r("./node_modules/core-js-pure/modules/es.symbol.iterator.js"),r("./node_modules/core-js-pure/modules/es.symbol.match.js"),r("./node_modules/core-js-pure/modules/es.symbol.match-all.js"),r("./node_modules/core-js-pure/modules/es.symbol.replace.js"),r("./node_modules/core-js-pure/modules/es.symbol.search.js"),r("./node_modules/core-js-pure/modules/es.symbol.species.js"),r("./node_modules/core-js-pure/modules/es.symbol.split.js"),r("./node_modules/core-js-pure/modules/es.symbol.to-primitive.js"),r("./node_modules/core-js-pure/modules/es.symbol.to-string-tag.js"),r("./node_modules/core-js-pure/modules/es.symbol.unscopables.js"),r("./node_modules/core-js-pure/modules/es.json.to-string-tag.js"),r("./node_modules/core-js-pure/modules/es.math.to-string-tag.js"),r("./node_modules/core-js-pure/modules/es.reflect.to-string-tag.js");var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=n.Symbol},"./node_modules/core-js-pure/es/symbol/iterator.js":function(e,t,r){r("./node_modules/core-js-pure/modules/es.symbol.iterator.js"),r("./node_modules/core-js-pure/modules/es.string.iterator.js"),r("./node_modules/core-js-pure/modules/web.dom-collections.iterator.js");var n=r("./node_modules/core-js-pure/internals/well-known-symbol-wrapped.js");e.exports=n.f("iterator")},"./node_modules/core-js-pure/features/array/from.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/array/from.js");e.exports=n},"./node_modules/core-js-pure/features/array/is-array.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/array/is-array.js");e.exports=n},"./node_modules/core-js-pure/features/get-iterator-method.js":function(e,t,r){r("./node_modules/core-js-pure/modules/web.dom-collections.iterator.js"),r("./node_modules/core-js-pure/modules/es.string.iterator.js");var n=r("./node_modules/core-js-pure/internals/get-iterator-method.js");e.exports=n},"./node_modules/core-js-pure/features/get-iterator.js":function(e,t,r){r("./node_modules/core-js-pure/modules/web.dom-collections.iterator.js"),r("./node_modules/core-js-pure/modules/es.string.iterator.js");var n=r("./node_modules/core-js-pure/internals/get-iterator.js");e.exports=n},"./node_modules/core-js-pure/features/instance/slice.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/instance/slice.js");e.exports=n},"./node_modules/core-js-pure/features/object/create.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/object/create.js");e.exports=n},"./node_modules/core-js-pure/features/object/define-property.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/object/define-property.js");e.exports=n},"./node_modules/core-js-pure/features/object/get-own-property-descriptor.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/object/get-own-property-descriptor.js");e.exports=n},"./node_modules/core-js-pure/features/object/get-prototype-of.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/object/get-prototype-of.js");e.exports=n},"./node_modules/core-js-pure/features/object/set-prototype-of.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/object/set-prototype-of.js");e.exports=n},"./node_modules/core-js-pure/features/promise/index.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/promise/index.js");r("./node_modules/core-js-pure/modules/esnext.aggregate-error.js"),r("./node_modules/core-js-pure/modules/esnext.promise.all-settled.js"),r("./node_modules/core-js-pure/modules/esnext.promise.try.js"),r("./node_modules/core-js-pure/modules/esnext.promise.any.js"),e.exports=n},"./node_modules/core-js-pure/features/reflect/get.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/reflect/get.js");e.exports=n},"./node_modules/core-js-pure/features/symbol/index.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/symbol/index.js");r("./node_modules/core-js-pure/modules/esnext.symbol.async-dispose.js"),r("./node_modules/core-js-pure/modules/esnext.symbol.dispose.js"),r("./node_modules/core-js-pure/modules/esnext.symbol.matcher.js"),r("./node_modules/core-js-pure/modules/esnext.symbol.metadata.js"),r("./node_modules/core-js-pure/modules/esnext.symbol.observable.js"),r("./node_modules/core-js-pure/modules/esnext.symbol.pattern-match.js"),r("./node_modules/core-js-pure/modules/esnext.symbol.replace-all.js"),e.exports=n},"./node_modules/core-js-pure/features/symbol/iterator.js":function(e,t,r){var n=r("./node_modules/core-js-pure/es/symbol/iterator.js");e.exports=n},"./node_modules/core-js-pure/internals/a-function.js":function(e){e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},"./node_modules/core-js-pure/internals/a-possible-prototype.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/is-object.js");e.exports=function(e){if(!n(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e}},"./node_modules/core-js-pure/internals/add-to-unscopables.js":function(e){e.exports=function(){}},"./node_modules/core-js-pure/internals/an-instance.js":function(e){e.exports=function(e,t,r){if(!(e instanceof t))throw TypeError("Incorrect "+(r?r+" ":"")+"invocation");return e}},"./node_modules/core-js-pure/internals/an-object.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/is-object.js");e.exports=function(e){if(!n(e))throw TypeError(String(e)+" is not an object");return e}},"./node_modules/core-js-pure/internals/array-fill.js":function(e,t,r){"use strict";var n=r("./node_modules/core-js-pure/internals/to-object.js"),o=r("./node_modules/core-js-pure/internals/to-absolute-index.js"),s=r("./node_modules/core-js-pure/internals/to-length.js");e.exports=function(e){for(var t=n(this),r=s(t.length),i=arguments.length,a=o(i>1?arguments[1]:void 0,r),A=i>2?arguments[2]:void 0,u=void 0===A?r:o(A,r);u>a;)t[a++]=e;return t}},"./node_modules/core-js-pure/internals/array-for-each.js":function(e,t,r){"use strict";var n=r("./node_modules/core-js-pure/internals/array-iteration.js").forEach,o=r("./node_modules/core-js-pure/internals/array-method-is-strict.js")("forEach");e.exports=o?[].forEach:function(e){return n(this,e,arguments.length>1?arguments[1]:void 0)}},"./node_modules/core-js-pure/internals/array-from.js":function(e,t,r){"use strict";var n=r("./node_modules/core-js-pure/internals/function-bind-context.js"),o=r("./node_modules/core-js-pure/internals/to-object.js"),s=r("./node_modules/core-js-pure/internals/call-with-safe-iteration-closing.js"),i=r("./node_modules/core-js-pure/internals/is-array-iterator-method.js"),a=r("./node_modules/core-js-pure/internals/to-length.js"),A=r("./node_modules/core-js-pure/internals/create-property.js"),u=r("./node_modules/core-js-pure/internals/get-iterator-method.js");e.exports=function(e){var t,r,c,l,d,f,h=o(e),p="function"==typeof this?this:Array,m=arguments.length,g=m>1?arguments[1]:void 0,y=void 0!==g,v=u(h),w=0;if(y&&(g=n(g,m>2?arguments[2]:void 0,2)),null==v||p==Array&&i(v))for(r=new p(t=a(h.length));t>w;w++)f=y?g(h[w],w):h[w],A(r,w,f);else for(d=(l=v.call(h)).next,r=new p;!(c=d.call(l)).done;w++)f=y?s(l,g,[c.value,w],!0):c.value,A(r,w,f);return r.length=w,r}},"./node_modules/core-js-pure/internals/array-includes.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/to-indexed-object.js"),o=r("./node_modules/core-js-pure/internals/to-length.js"),s=r("./node_modules/core-js-pure/internals/to-absolute-index.js"),i=function(e){return function(t,r,i){var a,A=n(t),u=o(A.length),c=s(i,u);if(e&&r!=r){for(;u>c;)if((a=A[c++])!=a)return!0}else for(;u>c;c++)if((e||c in A)&&A[c]===r)return e||c||0;return!e&&-1}};e.exports={includes:i(!0),indexOf:i(!1)}},"./node_modules/core-js-pure/internals/array-iteration.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/function-bind-context.js"),o=r("./node_modules/core-js-pure/internals/indexed-object.js"),s=r("./node_modules/core-js-pure/internals/to-object.js"),i=r("./node_modules/core-js-pure/internals/to-length.js"),a=r("./node_modules/core-js-pure/internals/array-species-create.js"),A=[].push,u=function(e){var t=1==e,r=2==e,u=3==e,c=4==e,l=6==e,d=7==e,f=5==e||l;return function(h,p,m,g){for(var y,v,w=s(h),b=o(w),B=n(p,m,3),j=i(b.length),_=0,C=g||a,x=t?C(h,j):r||d?C(h,0):void 0;j>_;_++)if((f||_ in b)&&(v=B(y=b[_],_,w),e))if(t)x[_]=v;else if(v)switch(e){case 3:return!0;case 5:return y;case 6:return _;case 2:A.call(x,y)}else switch(e){case 4:return!1;case 7:A.call(x,y)}return l?-1:u||c?c:x}};e.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6),filterOut:u(7)}},"./node_modules/core-js-pure/internals/array-method-has-species-support.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/fails.js"),o=r("./node_modules/core-js-pure/internals/well-known-symbol.js"),s=r("./node_modules/core-js-pure/internals/engine-v8-version.js"),i=o("species");e.exports=function(e){return s>=51||!n((function(){var t=[];return(t.constructor={})[i]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},"./node_modules/core-js-pure/internals/array-method-is-strict.js":function(e,t,r){"use strict";var n=r("./node_modules/core-js-pure/internals/fails.js");e.exports=function(e,t){var r=[][e];return!!r&&n((function(){r.call(null,t||function(){throw 1},1)}))}},"./node_modules/core-js-pure/internals/array-reduce.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/a-function.js"),o=r("./node_modules/core-js-pure/internals/to-object.js"),s=r("./node_modules/core-js-pure/internals/indexed-object.js"),i=r("./node_modules/core-js-pure/internals/to-length.js"),a=function(e){return function(t,r,a,A){n(r);var u=o(t),c=s(u),l=i(u.length),d=e?l-1:0,f=e?-1:1;if(a<2)for(;;){if(d in c){A=c[d],d+=f;break}if(d+=f,e?d<0:l<=d)throw TypeError("Reduce of empty array with no initial value")}for(;e?d>=0:l>d;d+=f)d in c&&(A=r(A,c[d],d,u));return A}};e.exports={left:a(!1),right:a(!0)}},"./node_modules/core-js-pure/internals/array-species-create.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/is-object.js"),o=r("./node_modules/core-js-pure/internals/is-array.js"),s=r("./node_modules/core-js-pure/internals/well-known-symbol.js")("species");e.exports=function(e,t){var r;return o(e)&&("function"!=typeof(r=e.constructor)||r!==Array&&!o(r.prototype)?n(r)&&null===(r=r[s])&&(r=void 0):r=void 0),new(void 0===r?Array:r)(0===t?0:t)}},"./node_modules/core-js-pure/internals/call-with-safe-iteration-closing.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/an-object.js"),o=r("./node_modules/core-js-pure/internals/iterator-close.js");e.exports=function(e,t,r,s){try{return s?t(n(r)[0],r[1]):t(r)}catch(t){throw o(e),t}}},"./node_modules/core-js-pure/internals/check-correctness-of-iteration.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/well-known-symbol.js")("iterator"),o=!1;try{var s=0,i={next:function(){return{done:!!s++}},return:function(){o=!0}};i[n]=function(){return this},Array.from(i,(function(){throw 2}))}catch(e){}e.exports=function(e,t){if(!t&&!o)return!1;var r=!1;try{var s={};s[n]=function(){return{next:function(){return{done:r=!0}}}},e(s)}catch(e){}return r}},"./node_modules/core-js-pure/internals/classof-raw.js":function(e){var t={}.toString;e.exports=function(e){return t.call(e).slice(8,-1)}},"./node_modules/core-js-pure/internals/classof.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/to-string-tag-support.js"),o=r("./node_modules/core-js-pure/internals/classof-raw.js"),s=r("./node_modules/core-js-pure/internals/well-known-symbol.js")("toStringTag"),i="Arguments"==o(function(){return arguments}());e.exports=n?o:function(e){var t,r,n;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(r=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),s))?r:i?o(t):"Object"==(n=o(t))&&"function"==typeof t.callee?"Arguments":n}},"./node_modules/core-js-pure/internals/collection-strong.js":function(e,t,r){"use strict";var n=r("./node_modules/core-js-pure/internals/object-define-property.js").f,o=r("./node_modules/core-js-pure/internals/object-create.js"),s=r("./node_modules/core-js-pure/internals/redefine-all.js"),i=r("./node_modules/core-js-pure/internals/function-bind-context.js"),a=r("./node_modules/core-js-pure/internals/an-instance.js"),A=r("./node_modules/core-js-pure/internals/iterate.js"),u=r("./node_modules/core-js-pure/internals/define-iterator.js"),c=r("./node_modules/core-js-pure/internals/set-species.js"),l=r("./node_modules/core-js-pure/internals/descriptors.js"),d=r("./node_modules/core-js-pure/internals/internal-metadata.js").fastKey,f=r("./node_modules/core-js-pure/internals/internal-state.js"),h=f.set,p=f.getterFor;e.exports={getConstructor:function(e,t,r,u){var c=e((function(e,n){a(e,c,t),h(e,{type:t,index:o(null),first:void 0,last:void 0,size:0}),l||(e.size=0),null!=n&&A(n,e[u],{that:e,AS_ENTRIES:r})})),f=p(t),m=function(e,t,r){var n,o,s=f(e),i=g(e,t);return i?i.value=r:(s.last=i={index:o=d(t,!0),key:t,value:r,previous:n=s.last,next:void 0,removed:!1},s.first||(s.first=i),n&&(n.next=i),l?s.size++:e.size++,"F"!==o&&(s.index[o]=i)),e},g=function(e,t){var r,n=f(e),o=d(t);if("F"!==o)return n.index[o];for(r=n.first;r;r=r.next)if(r.key==t)return r};return s(c.prototype,{clear:function(){for(var e=f(this),t=e.index,r=e.first;r;)r.removed=!0,r.previous&&(r.previous=r.previous.next=void 0),delete t[r.index],r=r.next;e.first=e.last=void 0,l?e.size=0:this.size=0},delete:function(e){var t=this,r=f(t),n=g(t,e);if(n){var o=n.next,s=n.previous;delete r.index[n.index],n.removed=!0,s&&(s.next=o),o&&(o.previous=s),r.first==n&&(r.first=o),r.last==n&&(r.last=s),l?r.size--:t.size--}return!!n},forEach:function(e){for(var t,r=f(this),n=i(e,arguments.length>1?arguments[1]:void 0,3);t=t?t.next:r.first;)for(n(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!g(this,e)}}),s(c.prototype,r?{get:function(e){var t=g(this,e);return t&&t.value},set:function(e,t){return m(this,0===e?0:e,t)}}:{add:function(e){return m(this,e=0===e?0:e,e)}}),l&&n(c.prototype,"size",{get:function(){return f(this).size}}),c},setStrong:function(e,t,r){var n=t+" Iterator",o=p(t),s=p(n);u(e,t,(function(e,t){h(this,{type:n,target:e,state:o(e),kind:t,last:void 0})}),(function(){for(var e=s(this),t=e.kind,r=e.last;r&&r.removed;)r=r.previous;return e.target&&(e.last=r=r?r.next:e.state.first)?"keys"==t?{value:r.key,done:!1}:"values"==t?{value:r.value,done:!1}:{value:[r.key,r.value],done:!1}:(e.target=void 0,{value:void 0,done:!0})}),r?"entries":"values",!r,!0),c(t)}}},"./node_modules/core-js-pure/internals/collection.js":function(e,t,r){"use strict";var n=r("./node_modules/core-js-pure/internals/export.js"),o=r("./node_modules/core-js-pure/internals/global.js"),s=r("./node_modules/core-js-pure/internals/internal-metadata.js"),i=r("./node_modules/core-js-pure/internals/fails.js"),a=r("./node_modules/core-js-pure/internals/create-non-enumerable-property.js"),A=r("./node_modules/core-js-pure/internals/iterate.js"),u=r("./node_modules/core-js-pure/internals/an-instance.js"),c=r("./node_modules/core-js-pure/internals/is-object.js"),l=r("./node_modules/core-js-pure/internals/set-to-string-tag.js"),d=r("./node_modules/core-js-pure/internals/object-define-property.js").f,f=r("./node_modules/core-js-pure/internals/array-iteration.js").forEach,h=r("./node_modules/core-js-pure/internals/descriptors.js"),p=r("./node_modules/core-js-pure/internals/internal-state.js"),m=p.set,g=p.getterFor;e.exports=function(e,t,r){var p,y=-1!==e.indexOf("Map"),v=-1!==e.indexOf("Weak"),w=y?"set":"add",b=o[e],B=b&&b.prototype,j={};if(h&&"function"==typeof b&&(v||B.forEach&&!i((function(){(new b).entries().next()})))){p=t((function(t,r){m(u(t,p,e),{type:e,collection:new b}),null!=r&&A(r,t[w],{that:t,AS_ENTRIES:y})}));var _=g(e);f(["add","clear","delete","forEach","get","has","set","keys","values","entries"],(function(e){var t="add"==e||"set"==e;!(e in B)||v&&"clear"==e||a(p.prototype,e,(function(r,n){var o=_(this).collection;if(!t&&v&&!c(r))return"get"==e&&void 0;var s=o[e](0===r?0:r,n);return t?this:s}))})),v||d(p.prototype,"size",{configurable:!0,get:function(){return _(this).collection.size}})}else p=r.getConstructor(t,e,y,w),s.REQUIRED=!0;return l(p,e,!1,!0),j[e]=p,n({global:!0,forced:!0},j),v||r.setStrong(p,e,y),p}},"./node_modules/core-js-pure/internals/correct-is-regexp-logic.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/well-known-symbol.js")("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(r){try{return t[n]=!1,"/./"[e](t)}catch(e){}}return!1}},"./node_modules/core-js-pure/internals/correct-prototype-getter.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/fails.js");e.exports=!n((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))},"./node_modules/core-js-pure/internals/create-iterator-constructor.js":function(e,t,r){"use strict";var n=r("./node_modules/core-js-pure/internals/iterators-core.js").IteratorPrototype,o=r("./node_modules/core-js-pure/internals/object-create.js"),s=r("./node_modules/core-js-pure/internals/create-property-descriptor.js"),i=r("./node_modules/core-js-pure/internals/set-to-string-tag.js"),a=r("./node_modules/core-js-pure/internals/iterators.js"),A=function(){return this};e.exports=function(e,t,r){var u=t+" Iterator";return e.prototype=o(n,{next:s(1,r)}),i(e,u,!1,!0),a[u]=A,e}},"./node_modules/core-js-pure/internals/create-non-enumerable-property.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/descriptors.js"),o=r("./node_modules/core-js-pure/internals/object-define-property.js"),s=r("./node_modules/core-js-pure/internals/create-property-descriptor.js");e.exports=n?function(e,t,r){return o.f(e,t,s(1,r))}:function(e,t,r){return e[t]=r,e}},"./node_modules/core-js-pure/internals/create-property-descriptor.js":function(e){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},"./node_modules/core-js-pure/internals/create-property.js":function(e,t,r){"use strict";var n=r("./node_modules/core-js-pure/internals/to-primitive.js"),o=r("./node_modules/core-js-pure/internals/object-define-property.js"),s=r("./node_modules/core-js-pure/internals/create-property-descriptor.js");e.exports=function(e,t,r){var i=n(t);i in e?o.f(e,i,s(0,r)):e[i]=r}},"./node_modules/core-js-pure/internals/define-iterator.js":function(e,t,r){"use strict";var n=r("./node_modules/core-js-pure/internals/export.js"),o=r("./node_modules/core-js-pure/internals/create-iterator-constructor.js"),s=r("./node_modules/core-js-pure/internals/object-get-prototype-of.js"),i=r("./node_modules/core-js-pure/internals/object-set-prototype-of.js"),a=r("./node_modules/core-js-pure/internals/set-to-string-tag.js"),A=r("./node_modules/core-js-pure/internals/create-non-enumerable-property.js"),u=r("./node_modules/core-js-pure/internals/redefine.js"),c=r("./node_modules/core-js-pure/internals/well-known-symbol.js"),l=r("./node_modules/core-js-pure/internals/is-pure.js"),d=r("./node_modules/core-js-pure/internals/iterators.js"),f=r("./node_modules/core-js-pure/internals/iterators-core.js"),h=f.IteratorPrototype,p=f.BUGGY_SAFARI_ITERATORS,m=c("iterator"),g="keys",y="values",v="entries",w=function(){return this};e.exports=function(e,t,r,c,f,b,B){o(r,t,c);var j,_,C,x=function(e){if(e===f&&U)return U;if(!p&&e in Q)return Q[e];switch(e){case g:case y:case v:return function(){return new r(this,e)}}return function(){return new r(this)}},E=t+" Iterator",N=!1,Q=e.prototype,F=Q[m]||Q["@@iterator"]||f&&Q[f],U=!p&&F||x(f),S="Array"==t&&Q.entries||F;if(S&&(j=s(S.call(new e)),h!==Object.prototype&&j.next&&(l||s(j)===h||(i?i(j,h):"function"!=typeof j[m]&&A(j,m,w)),a(j,E,!0,!0),l&&(d[E]=w))),f==y&&F&&F.name!==y&&(N=!0,U=function(){return F.call(this)}),l&&!B||Q[m]===U||A(Q,m,U),d[t]=U,f)if(_={values:x(y),keys:b?U:x(g),entries:x(v)},B)for(C in _)(p||N||!(C in Q))&&u(Q,C,_[C]);else n({target:t,proto:!0,forced:p||N},_);return _}},"./node_modules/core-js-pure/internals/define-well-known-symbol.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/path.js"),o=r("./node_modules/core-js-pure/internals/has.js"),s=r("./node_modules/core-js-pure/internals/well-known-symbol-wrapped.js"),i=r("./node_modules/core-js-pure/internals/object-define-property.js").f;e.exports=function(e){var t=n.Symbol||(n.Symbol={});o(t,e)||i(t,e,{value:s.f(e)})}},"./node_modules/core-js-pure/internals/descriptors.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/fails.js");e.exports=!n((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},"./node_modules/core-js-pure/internals/document-create-element.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/global.js"),o=r("./node_modules/core-js-pure/internals/is-object.js"),s=n.document,i=o(s)&&o(s.createElement);e.exports=function(e){return i?s.createElement(e):{}}},"./node_modules/core-js-pure/internals/dom-iterables.js":function(e){e.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},"./node_modules/core-js-pure/internals/engine-is-browser.js":function(e){e.exports="object"==typeof window},"./node_modules/core-js-pure/internals/engine-is-ios.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/engine-user-agent.js");e.exports=/(?:iphone|ipod|ipad).*applewebkit/i.test(n)},"./node_modules/core-js-pure/internals/engine-is-node.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/classof-raw.js"),o=r("./node_modules/core-js-pure/internals/global.js");e.exports="process"==n(o.process)},"./node_modules/core-js-pure/internals/engine-is-webos-webkit.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/engine-user-agent.js");e.exports=/web0s(?!.*chrome)/i.test(n)},"./node_modules/core-js-pure/internals/engine-user-agent.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/get-built-in.js");e.exports=n("navigator","userAgent")||""},"./node_modules/core-js-pure/internals/engine-v8-version.js":function(e,t,r){var n,o,s=r("./node_modules/core-js-pure/internals/global.js"),i=r("./node_modules/core-js-pure/internals/engine-user-agent.js"),a=s.process,A=a&&a.versions,u=A&&A.v8;u?o=(n=u.split("."))[0]<4?1:n[0]+n[1]:i&&(!(n=i.match(/Edge\/(\d+)/))||n[1]>=74)&&(n=i.match(/Chrome\/(\d+)/))&&(o=n[1]),e.exports=o&&+o},"./node_modules/core-js-pure/internals/entry-virtual.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/path.js");e.exports=function(e){return n[e+"Prototype"]}},"./node_modules/core-js-pure/internals/enum-bug-keys.js":function(e){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},"./node_modules/core-js-pure/internals/export.js":function(e,t,r){"use strict";var n=r("./node_modules/core-js-pure/internals/global.js"),o=r("./node_modules/core-js-pure/internals/object-get-own-property-descriptor.js").f,s=r("./node_modules/core-js-pure/internals/is-forced.js"),i=r("./node_modules/core-js-pure/internals/path.js"),a=r("./node_modules/core-js-pure/internals/function-bind-context.js"),A=r("./node_modules/core-js-pure/internals/create-non-enumerable-property.js"),u=r("./node_modules/core-js-pure/internals/has.js"),c=function(e){var t=function(t,r,n){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,r)}return new e(t,r,n)}return e.apply(this,arguments)};return t.prototype=e.prototype,t};e.exports=function(e,t){var r,l,d,f,h,p,m,g,y=e.target,v=e.global,w=e.stat,b=e.proto,B=v?n:w?n[y]:(n[y]||{}).prototype,j=v?i:i[y]||(i[y]={}),_=j.prototype;for(d in t)r=!s(v?d:y+(w?".":"#")+d,e.forced)&&B&&u(B,d),h=j[d],r&&(p=e.noTargetGet?(g=o(B,d))&&g.value:B[d]),f=r&&p?p:t[d],r&&typeof h==typeof f||(m=e.bind&&r?a(f,n):e.wrap&&r?c(f):b&&"function"==typeof f?a(Function.call,f):f,(e.sham||f&&f.sham||h&&h.sham)&&A(m,"sham",!0),j[d]=m,b&&(u(i,l=y+"Prototype")||A(i,l,{}),i[l][d]=f,e.real&&_&&!_[d]&&A(_,d,f)))}},"./node_modules/core-js-pure/internals/fails.js":function(e){e.exports=function(e){try{return!!e()}catch(e){return!0}}},"./node_modules/core-js-pure/internals/freezing.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/fails.js");e.exports=!n((function(){return Object.isExtensible(Object.preventExtensions({}))}))},"./node_modules/core-js-pure/internals/function-bind-context.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/a-function.js");e.exports=function(e,t,r){if(n(e),void 0===t)return e;switch(r){case 0:return function(){return e.call(t)};case 1:return function(r){return e.call(t,r)};case 2:return function(r,n){return e.call(t,r,n)};case 3:return function(r,n,o){return e.call(t,r,n,o)}}return function(){return e.apply(t,arguments)}}},"./node_modules/core-js-pure/internals/function-bind.js":function(e,t,r){"use strict";var n=r("./node_modules/core-js-pure/internals/a-function.js"),o=r("./node_modules/core-js-pure/internals/is-object.js"),s=[].slice,i={},a=function(e,t,r){if(!(t in i)){for(var n=[],o=0;od;d++)if((h=j(e[d]))&&h instanceof u)return h;return new u(!1)}c=l.call(e)}for(p=c.next;!(m=p.call(c)).done;){try{h=j(m.value)}catch(e){throw A(c),e}if("object"==typeof h&&h&&h instanceof u)return h}return new u(!1)}},"./node_modules/core-js-pure/internals/iterator-close.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/an-object.js");e.exports=function(e){var t=e.return;if(void 0!==t)return n(t.call(e)).value}},"./node_modules/core-js-pure/internals/iterators-core.js":function(e,t,r){"use strict";var n,o,s,i=r("./node_modules/core-js-pure/internals/fails.js"),a=r("./node_modules/core-js-pure/internals/object-get-prototype-of.js"),A=r("./node_modules/core-js-pure/internals/create-non-enumerable-property.js"),u=r("./node_modules/core-js-pure/internals/has.js"),c=r("./node_modules/core-js-pure/internals/well-known-symbol.js"),l=r("./node_modules/core-js-pure/internals/is-pure.js"),d=c("iterator"),f=!1;[].keys&&("next"in(s=[].keys())?(o=a(a(s)))!==Object.prototype&&(n=o):f=!0);var h=null==n||i((function(){var e={};return n[d].call(e)!==e}));h&&(n={}),l&&!h||u(n,d)||A(n,d,(function(){return this})),e.exports={IteratorPrototype:n,BUGGY_SAFARI_ITERATORS:f}},"./node_modules/core-js-pure/internals/iterators.js":function(e){e.exports={}},"./node_modules/core-js-pure/internals/microtask.js":function(e,t,r){var n,o,s,i,a,A,u,c,l=r("./node_modules/core-js-pure/internals/global.js"),d=r("./node_modules/core-js-pure/internals/object-get-own-property-descriptor.js").f,f=r("./node_modules/core-js-pure/internals/task.js").set,h=r("./node_modules/core-js-pure/internals/engine-is-ios.js"),p=r("./node_modules/core-js-pure/internals/engine-is-webos-webkit.js"),m=r("./node_modules/core-js-pure/internals/engine-is-node.js"),g=l.MutationObserver||l.WebKitMutationObserver,y=l.document,v=l.process,w=l.Promise,b=d(l,"queueMicrotask"),B=b&&b.value;B||(n=function(){var e,t;for(m&&(e=v.domain)&&e.exit();o;){t=o.fn,o=o.next;try{t()}catch(e){throw o?i():s=void 0,e}}s=void 0,e&&e.enter()},h||m||p||!g||!y?w&&w.resolve?((u=w.resolve(void 0)).constructor=w,c=u.then,i=function(){c.call(u,n)}):i=m?function(){v.nextTick(n)}:function(){f.call(l,n)}:(a=!0,A=y.createTextNode(""),new g(n).observe(A,{characterData:!0}),i=function(){A.data=a=!a})),e.exports=B||function(e){var t={fn:e,next:void 0};s&&(s.next=t),o||(o=t,i()),s=t}},"./node_modules/core-js-pure/internals/native-promise-constructor.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/global.js");e.exports=n.Promise},"./node_modules/core-js-pure/internals/native-symbol.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/engine-v8-version.js"),o=r("./node_modules/core-js-pure/internals/fails.js");e.exports=!!Object.getOwnPropertySymbols&&!o((function(){var e=Symbol();return!String(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&n&&n<41}))},"./node_modules/core-js-pure/internals/native-weak-map.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/global.js"),o=r("./node_modules/core-js-pure/internals/inspect-source.js"),s=n.WeakMap;e.exports="function"==typeof s&&/native code/.test(o(s))},"./node_modules/core-js-pure/internals/new-promise-capability.js":function(e,t,r){"use strict";var n=r("./node_modules/core-js-pure/internals/a-function.js"),o=function(e){var t,r;this.promise=new e((function(e,n){if(void 0!==t||void 0!==r)throw TypeError("Bad Promise constructor");t=e,r=n})),this.resolve=n(t),this.reject=n(r)};e.exports.f=function(e){return new o(e)}},"./node_modules/core-js-pure/internals/not-a-regexp.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/is-regexp.js");e.exports=function(e){if(n(e))throw TypeError("The method doesn't accept regular expressions");return e}},"./node_modules/core-js-pure/internals/number-parse-float.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/global.js"),o=r("./node_modules/core-js-pure/internals/string-trim.js").trim,s=r("./node_modules/core-js-pure/internals/whitespaces.js"),i=n.parseFloat,a=1/i(s+"-0")!=-1/0;e.exports=a?function(e){var t=o(String(e)),r=i(t);return 0===r&&"-"==t.charAt(0)?-0:r}:i},"./node_modules/core-js-pure/internals/number-parse-int.js":function(e,t,r){var n=r("./node_modules/core-js-pure/internals/global.js"),o=r("./node_modules/core-js-pure/internals/string-trim.js").trim,s=r("./node_modules/core-js-pure/internals/whitespaces.js"),i=n.parseInt,a=/^[+-]?0[Xx]/,A=8!==i(s+"08")||22!==i(s+"0x16");e.exports=A?function(e,t){var r=o(String(e));return i(r,t>>>0||(a.test(r)?16:10))}:i},"./node_modules/core-js-pure/internals/object-create.js":function(e,t,r){var n,o=r("./node_modules/core-js-pure/internals/an-object.js"),s=r("./node_modules/core-js-pure/internals/object-define-properties.js"),i=r("./node_modules/core-js-pure/internals/enum-bug-keys.js"),a=r("./node_modules/core-js-pure/internals/hidden-keys.js"),A=r("./node_modules/core-js-pure/internals/html.js"),u=r("./node_modules/core-js-pure/internals/document-create-element.js"),c=r("./node_modules/core-js-pure/internals/shared-key.js")("IE_PROTO"),l=function(){},d=function(e){return" - - - +{% block extra_js %} + + + {% endblock %} diff --git a/templates/administration/staff_index.html b/templates/administration/staff_index.html index 9ff00980..779d0c20 100644 --- a/templates/administration/staff_index.html +++ b/templates/administration/staff_index.html @@ -35,9 +35,9 @@ {% include 'modal/confirm_modal.html' %} @@ -103,7 +103,7 @@ if (isUserSuperUser) { superuserInputField = `
- + ${staffDropdown.outerHTML}
`; @@ -112,27 +112,27 @@ return ` ${superuserInputField}
- + ${servicesDropdown.outerHTML}
- - - - + + + + - - - - + + + +
- - + +
- - + +
- - + +
`; } @@ -143,8 +143,8 @@ return ` ${commonInputs}
- - + +
`; } @@ -156,7 +156,7 @@ return ` ${commonInputs} - + `; } diff --git a/templates/administration/user_profile.html b/templates/administration/user_profile.html index f7f2dbc4..00b74e10 100644 --- a/templates/administration/user_profile.html +++ b/templates/administration/user_profile.html @@ -34,7 +34,7 @@
+ {% include 'modal/delete_modal.html' %}
diff --git a/templates/modal/delete_modal.html b/templates/modal/delete_modal.html new file mode 100644 index 00000000..1458d410 --- /dev/null +++ b/templates/modal/delete_modal.html @@ -0,0 +1,48 @@ +{% load i18n %} + + \ No newline at end of file diff --git a/templates/modal/event_details_modal.html b/templates/modal/event_details_modal.html index cc41bcfe..6e67c15a 100644 --- a/templates/modal/event_details_modal.html +++ b/templates/modal/event_details_modal.html @@ -4,33 +4,35 @@ aria-hidden="true">
-

{% trans 'Appointment Information' %}

+

{% trans 'Appointments Information' %}

{{ service_msg }} diff --git a/templates/crm/employee_calendar.html b/templates/crm/employee_calendar.html new file mode 100644 index 00000000..614afadf --- /dev/null +++ b/templates/crm/employee_calendar.html @@ -0,0 +1,22 @@ + +

Upcoming Test Drives

+ + + + + + + + + + + {% for appointment in appointments %} + + + + + + + {% endfor %} + +
CustomerVehicleDate/TimeStaff
{{ appointment.client.name }}{{ appointment.service.name }}{{ appointment.start_time|date:"M j, Y H:i" }}{{ appointment.staff.user.get_full_name }}
\ No newline at end of file diff --git a/templates/crm/leads/lead_detail.html b/templates/crm/leads/lead_detail.html index 51894d86..cf2239e7 100644 --- a/templates/crm/leads/lead_detail.html +++ b/templates/crm/leads/lead_detail.html @@ -199,24 +199,7 @@ {% for note in notes %} - + {{note.note}} {% if note.created_by.staff %} @@ -230,9 +213,13 @@
"> - + + {% endif %} @@ -587,6 +574,7 @@