From 6dc20f92e769210c076600c7fcfacd4ed528f085 Mon Sep 17 00:00:00 2001 From: Eugene Date: Thu, 27 Jul 2023 12:22:15 +0300 Subject: [PATCH] Updated styles Updated README --- README.md | 12 ++++++++---- repo_assets/spreadsheet_preview.png | Bin 0 -> 37356 bytes src/components/columnsBar.ts | 2 +- src/components/rowsBar.ts | 2 +- src/components/sheet.ts | 5 ++++- src/index.ts | 5 ++++- 6 files changed, 18 insertions(+), 8 deletions(-) create mode 100644 repo_assets/spreadsheet_preview.png diff --git a/README.md b/README.md index d89c694..21eeba1 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,13 @@ # Modern Spreadsheet +## Features: - High performance spreadsheet based on CanvasAPI. - TypeScript supported +- Native scrolling +- Customizable +- Copy & Paste support -## Basic usage +### Basic usage ```ts import Spreadsheet from "modern_spreadsheet"; @@ -14,7 +18,7 @@ const sheet = new Spreadsheet(target); //... ``` -## Save and load data +### Save and load data ```ts function saveData() { @@ -30,7 +34,7 @@ function loadData() { } ``` -## Supported events +#### Supported events - onCellClick - onSelectionChange - onCellChange @@ -58,7 +62,7 @@ const options: SpreadsheetConstructorProperties = { const sheet = new Spreadsheet("#spreadsheet", options); ``` -## Roadmap +### Roadmap - ~~Rows number and columns heading render~~ - ~~Custom event functions (ex.: onSelectionChange, onCellEdit...). Full list of supported events will available on this page~~ diff --git a/repo_assets/spreadsheet_preview.png b/repo_assets/spreadsheet_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..90245767a6ded0c6e64e2766c36e166a37d9c342 GIT binary patch literal 37356 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%0A&+F>t^z$HU@LP|(@Z za>*`8o~5a^m7AU2DR9th-g>gP6s&_nxZqeW!TR>;lb3GD`2->&q5|2im)iJ^Z{EC# zbITjX6M`H!qIK$&IbFPfpdc!5l%%`F(W8bi?Lbu%FZZO$c4Ua(OHKVsD~Ahu{7m7y zt4+V%7FDko^983meIlkC&C&y=Or2Y4o`!}JIII&VGM64O?%O99U67FecDymcZ#hjh znYvZa%mZN4vUu(G_YYn*iKl?vaY(6db_UO9Ga!HC#sI89j-(_O^+}~qpFV|l9w_&7 zbaZrLqRv3xcu#oWLFRZ!zQTl~t-XB-a#ulxCru^+j3KC(7Z)Rht)$VLe@#*W>km!2 z_awKT5f%N&Xe-ARY8v{DL*#Fa8{(ksKV*_DDpcKE2kQ&3as5HyH-bwM`~}FtI>`+} zs{j^jqF%q`$yqWd2L~Bh*}CTf#{rkBxQl-c5zJG4`hWFkd{AQ74_G^5gY|``gYWQR z1Mn~4UdG4A?dOiF z)l1p=!0}_nGYzMH>-p}dWgm-+K6|Vpcv1CI{B{SQHw4|U!J!Ll0eqe6`5*!+uk+3w z-ve=fWOOt-UzvK*9(SrDfXUm_vpy9HcCtDsIV&uXk=CX=EsaT~AXqA(DtdZ8JaF>) zLVU?XLl0DbLX-3@C*9wltS|v9$MZ1|8|h8yiFO;l4U0t4sCq zt%hJ*C!iS#Ggg5MY)DK7KYXfP_x1}_h|RHher;x-E&K6J=t9rBaqwAkkQ`sgB^FO* zFOTK)-2C>A6E?P`!K<)0H8nN8c=2MGTrBZV^{8MdU^Dj(Ja_=1lx7g4hDJvC(h8i( zmX}-R;r-CnEkcHii8)yPK-0_6<65S$gv2`h6wz2Lh5cC9o{#bRR2a>314jl>oEIha z=0M8GKj$}@=q?o2IV2oHhHe7S^jlLCfq$M20rr;ud}s64MfnST2J#W}^FK^1Hyk%R zYnO?+jxknjh{-e&!wccP{3#r(@>*tFLqnjh!f(Clg&wQd{rjRKB5s{jh+0)hvhqRn-A&3UKv zRYwMXu#_9EPu9h*1KXs$mSThCTTH_W@gMvm6tPdAKEV#aC~72nDjg8sXS3TzQ!C-=^ljer=Ykjs!DJ2}e%UO~uki?Jo z5be6BW|Zd4VedkSH^ujkDF4>?Be z7Dr_kA0uVHvE#|cx&sWon}!Y~W+!_-W;d`lCV5m)&#W1}^-~0sP`Y&A(i4xXm$Zql z)Kf-ncjt zd;3@0@4*70W^9TwK9EW|v zl>o%>WqP0(V`INVBNhdc5SgwwBVT{wvs`~tu~?cTkhYSTTMq`qkg?t=(TN0(A$ zSaN4G!SC)pXm&RAKC74X_rAUvn66Ua!GXfxla`TDUsZMd;K74}g74zvkMQ$n#l|vo zaXqStFZl)b7F71!{QM=06GB3kMOx^-;7d?cd=wbCCtx_nf`h)gt}ejGXKHft8KM>E zVE?O4<;oR8t~F5AFMm^t_oJgX0UCmV1}$_utS9IPk;EM3cT{T}ApX;xGL?IW^Y7g$ zGlA**8R@AY56k+~H80;pSws&TE@b(V?MqF~7{PE`xX=w#iM)b>qYo*k)9g?n=#v*O z3`X^($ z(2X6)=4XS-pa27+E`SkKBs-L2$A?6(GR$uQa4@+o#*VPSe3_tnMN6wnR>pX5718C_ z+R4wSNtt0+iDL^SX??RZpx^2-yuF53ubx25stbaFgWlXwC~C@9P(@`;|68C9(zEW6 z6t!=NZWV#Nud4E+P=)DLSNEowS!&)nmZ0I$QN&T%^u&PXwZuql^Cr=RK8lY@+d8N(T7>G^&FuKCDvTeXQ z?ZcbWOSk*>!+`toxv2?l5UmS^m-G}2$$5Esx&;mm9UV?6$6z&HZ1ki1$8qEj4@*@3 zS55Zd#&1#@0S8XPx{YeU&B-ai$LBnj-3o>A2qh_V8R(;$8igT%*xh8voGg5NHd8-7 z6?ktaq7!%qKSx9a2c?gTtLxg@+IHVvb^108M?8`JVS&UUCMJezs9XPeau*>6|M0^` zgXI_+9SxupV8`0PGg>7cm@xm*5zx&k?D`=t)lTkb3Wh>GuiVZxrc)fdPot=M@!SCnYHtKcUUq?@go>Ex|}j zD+Cew`$zAY{ZOkrV!XY*Jv=^QL93~%!sFnrcd;~6a(8(}1wQwHsIA;%xWD{a!oZo; zf~6R4On_CXDwG>EZ(Uv8;D!f>%R?VPvJD1FyV=EK$BPvu0&}^oYoAUi>5iBlZW@x3 zIizy&VzB94cB?K3OGK!i>s&CQ{N{r|WRB0v(_CxcyJNdV@gZT~xUcS1zsAM@s?az@ zh}cYCJSHmDL=?avLdnD=X;A)fs;^>Z-*4YBFgXs?ukqIOo+n2yoW(<)If4Fn)+V%pxP$@Q^H03}L`sUt0mbJ0N`Pl-=eNmW%JNOMw?(XKiTiQd8nM zATpjNrI;R3XXZ`*bk}}fPYTsbmtGb%eEuxQ5|pgxqoJy*s;4*6J1HG{Mp_m=O>$;} ze-HC8k2Fmtv5-MupaXukCwspE0mA|H72A!5m|g(HA!SArae?OmF&`fvRyf+-GI(-1 zUUG|M|6$1$JR$hmG3QZ9#k0kv@$X)IiR!6jb92{xfO3|g;K9gxYwE|DW&$jN<~`6u zJMss+rOrOwoR!6&tS)-3j6|_LwyU$i(FWiea#ji_l5)P>kvH!K7Ax%u3Iy&=y(Rn*Redq(>6TZoeqY)^9I<%*LgF3k z$aZ19Z45%O|#mp0aVHsDZpa&~Tt&abYl6mea)b#MUD2?}uU-o2h! z`^+?c+}iI?kpxy=e{X$C;}?Brrhzx8H`w8Z$BjYQ#;22Rj?FNC9G3+C>=!(WWo17T zLUr@pH`ehf{nn1*J?}^u{rj!z0T|cxs>;jHNS}y^2zA1fD;X6orj!e?9C*da;E3g#!ouCKVN(iW_VeFNe0ycUI1V}oh)M& zL&F4Zt_=uC-HwBd%Ps#s{u6|ALrq=%Yfg__zF}3!^XGIx@8BV=`qo!@nvf(gF+uAj z!pAoQc~Z5@3JSUBW1!i*{QMavdUXJHl$XnwWoZ+qVFm5=;P`N@rx#Liys8O|4w{DiMf&Nk?|!`HJ6+DNO!qs2HGOzI^!taLA(YJPT5(RMEEws)Zt{rT;%T{C^1? zVyKDW5`d${4qPvY3`EOKV`KeJG;vjEC%`n7m$Mu?6qlJ9I2cj?1QZ#JwdP=h(5Rl5 zmv@1^;(~LOxTAIX!~O8hA0yCr9Q5MO^X6cWV5|qL6#n>ej53=;Eh#5BdsGa9%L8*P z_-KR|9IBHLHa<-M#)Z_raftgRA7YDZP5Ro}409aL&d%#ED5cBpi60jNC3MTi1~WpP z_!NRB0jvRK5Hp?2xm|Do78Vq2*|G)pC-lsyZS-_>KYsk!R=H~gHqcN`t$7%L2)$;G zWzYKZX!_jjEdDy`TN*MD4p!C*WM@K|3LzU99IPlS1HoJ!Au@w%hJGyxuE>WEsgLj_ z8T>XmV|s<(ZbTiR7*d&ePth8LGt5TayG~@s5#Yg2Onv|;ub&SDfuY9^FPNb)0HBkd zfGNmTmbD-*e;>Fy-eqT_%Zy_i0kT74cSZv~(}mN=B!D0k5|yVQ_CSBa%v^}2N$^-l z@Bg}n9t~Y8pyYwI51*^6A5O_kKtv!gVK7m+tj)EqdV5|14ntl-m$;LLBjz%|TQM#f zRfK-uzDZ2=z)cqIzTW=v<3|8u3a~OUc+IlAUea414x4(`<-L zqvKdwTui!+R^)YhdR#J&P z1owe^FdYFBpq;?=T~w1`miY_S*LLQ-`#C&=EO=CR?)1ap>2xF{(>JBaZQuyy%Z#RG z&5A8*zH~e%Uf~LYHC!jsq!o~R#vg0 z3982w#Y~vz$)1OYYiVkxj62N#x&p7#9Opq2h_nEv;4fiDiT*1vWmf&Tks-dj5hVY$s)df+p=`yUUZ$Wcg#a9o+5$GXP6 z3j8JyFqmj;{J_VD*>f9+Ng^Uj>7mhAgdr_Ay<~OY(e&+?b#xR+&YeF$Jv%!)KTnX1 z&>2l(`R?btK_LxOJr2)WlCobJ?#NT=8>OYIK~1{BOPmY$n#s&Bl1g2zY}H%j~zoHa^6^5SW?_ocg>yQ zVL$-j`bpcN$AnovIt5;EW|0^Mfc6D9T?n@xh{mYs=(-K!D~rP7$4w8w$t>=q5$-Y) zFv(3R5jCObxDxV`{F=GBJc%P_I^eq|XVSfV8IVWdH~;wAU5~#B7#uz-0$5#UJU%zN z8D{)N$d7=>J7{;$RR=8e)fg@$)mFk8MfYD10{2l`r&%a@%jk^S7?_ zLmyMCtz&~C&+2f$D6kjP10QSN;Lb>9q}uAU(U3NL0`hEo;$a&&|>gah66`fSzB4dqI{fR7_NK2P2aPBQcsZ#^(Ca{SXBz`>pRb zZOtbdrdma_g1TH?RfW>KgM?(?UnofO>ZTRfnNaunO0kW327Qy8%@&{TGu{Z%5fT54 zAvVHn$Ms4|a`FHKr`z&yVoHD#dg~J>Pe$q<;L$HZkA?Oek1_4lD-`spL8dIv$Vi>* z*RP{Uz}W%KcXe&e)#aZ;RkQyLRZ%$6Yy2INxea9yP#wlYq&;*#P}Q-fV3VL~^)}v$ z8d$H%LH}PtRf+L)$=wmnz3>H-RHoK1K4RGQ_Qw;7EKj4&%%0DVeV*>#!n(P(Jb)=c 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 Th3I!emukNUD<6FkMqM>deW?y%$2Tb)q}=3VE; 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 { @@ -17,6 +17,9 @@ const options: SpreadsheetConstructorProperties = { const sheet = new Spreadsheet("#spreadsheet", options); +const data = createSampleData(600, 800, true) +sheet.loadData(data) + function saveDataToLS() { const serializableData = sheet.serializeData(); localStorage.setItem("sheet", JSON.stringify(serializableData));