From 5fa81533d9d9a609804de5851e2f7deea50874c0 Mon Sep 17 00:00:00 2001 From: Corentin Thomasset Date: Sun, 14 Mar 2021 20:11:39 +0100 Subject: [PATCH] feat: added components --- CHANGELOG.md | 68 + assets/variables.scss | 1 + components/SearchBar.vue | 51 +- components/ToolWrapper.vue | 9 +- layouts/default.vue | 86 +- mixins/{copyable.ts => copyable.mixin.ts} | 2 +- .../{tool-routes.ts => tool-routes.mixin.ts} | 21 +- package-lock.json | 3514 ++++++++--------- package.json | 9 +- pages/about.vue | 20 + pages/how-to-report-bug-or-request.vue | 20 + pages/index.vue | 46 +- pages/tools/crypto/cypher-uncyfer-text.vue | 106 + pages/tools/crypto/hash-text.vue | 78 + pages/tools/crypto/token-generator.vue | 8 +- pages/tools/crypto/uuid-generator.vue | 92 + static/android-chrome-192x192.png | Bin 0 -> 7845 bytes static/android-chrome-512x512.png | Bin 0 -> 24093 bytes static/apple-touch-icon.png | Bin 0 -> 7323 bytes static/browserconfig.xml | 9 + static/favicon-16x16.png | Bin 0 -> 1114 bytes static/favicon-32x32.png | Bin 0 -> 1923 bytes static/favicon.ico | Bin 1393 -> 15086 bytes static/icon.png | Bin 12699 -> 0 bytes static/mstile-150x150.png | Bin 0 -> 4116 bytes static/safari-pinned-tab.svg | 83 + static/site.webmanifest | 19 + tsconfig.json | 3 +- types/ToolConfig.ts | 5 +- utils/string.ts | 8 +- 30 files changed, 2405 insertions(+), 1853 deletions(-) create mode 100644 CHANGELOG.md rename mixins/{copyable.ts => copyable.mixin.ts} (92%) rename mixins/{tool-routes.ts => tool-routes.mixin.ts} (59%) create mode 100644 pages/about.vue create mode 100644 pages/how-to-report-bug-or-request.vue create mode 100644 pages/tools/crypto/cypher-uncyfer-text.vue create mode 100644 pages/tools/crypto/hash-text.vue create mode 100644 pages/tools/crypto/uuid-generator.vue create mode 100644 static/android-chrome-192x192.png create mode 100644 static/android-chrome-512x512.png create mode 100644 static/apple-touch-icon.png create mode 100644 static/browserconfig.xml create mode 100644 static/favicon-16x16.png create mode 100644 static/favicon-32x32.png delete mode 100644 static/icon.png create mode 100644 static/mstile-150x150.png create mode 100644 static/safari-pinned-tab.svg create mode 100644 static/site.webmanifest diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..4496cc10 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,68 @@ +# Changelog +All notable changes to this project will be documented in this file. +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## Next +### Changed +- Switched to [Nuxt.js](//nuxtjs.org) + - Server-Side rendered static app + - Better SEO +- Switched to Typescript using class components decorators from [nuxt-property-decorator](https://github.com/nuxt-community/nuxt-property-decorator) +- UI and theme reworked +- URL path changed + - `/hash` -> [`/hash-text`](https://it-tools.tech/hash-text) + - `/cypher` -> [`/cypher-uncyfer-text`](https://it-tools.tech/cypher-uncyfer-text) + +### Added +- Added [/how-to-report-bug-or-request](/how-to-report-bug-or-request) route to explain how to report bug and request features + +## 1.7.0 +- [feat] [Crontab friendly generator](https://it-tools.tech/crontab-generator) + +## 1.6.0 +- [feat] [BIP39 generator](https://it-tools.tech/bip39-generator) +- [feat] [Base 64 converter](https://it-tools.tech/base64-string-converter) + +## 1.5.2 +- [feat] [humans.txt](https://it-tools.tech/humans.txt) +- [feat] pwa auto update on new changes + +## 1.5.1 +- [feat] switched back to history mode (no more '#' in url) + +## 1.5.0 +- [feat] added [qr-code generator](https://it-tools.tech/qrcode-generator) + +## 1.4.0 +- [ui] condensed + colored sidenav +- [feat] added [git memo](https://it-tools.tech/git-memo) +- [refactor] changed app title + +## 1.3.0 +- [fix] [GithubContributors] ordered contributors by contribution count +- [refactor] used vue-typecasting for number inputs +- [feat] lazy loading tools routes +- [feat] added [markdown editor](https://it-tools.tech/markdown-editor) +- [feat] added [lorem ipsum generator](https://it-tools.tech/lorem-ipsum-generator) + +## 1.2.1 +- [fix] [UuidGenerator] added quantity validation rules +- [refactor] better isInt checker + +## 1.2.0 +- [feat] [UuidGenerator] can generate multiple uuids + +## 1.1.0 +- [feat] 404 route + page +- [feat] changelog in the About page +- [feat] contributors list in the About page +- [fix] [ColorConverter] color picker now updates fields + +## 1.0.1 +- [chore] added changelog +- [fix] [BaseConverter] prevented non-integer bases +- [fix] remove history move (incompatible with vercel.com) + +## 1.0.0 +- First release diff --git a/assets/variables.scss b/assets/variables.scss index a76dcbf1..f1d0220e 100644 --- a/assets/variables.scss +++ b/assets/variables.scss @@ -3,3 +3,4 @@ // The variables you want to modify // $font-size-root: 20px; +$test: linear-gradient(90deg, rgba(37, 99, 108, 1) 0%, rgba(59, 149, 111, 1) 60%, rgba(71, 177, 113, 1) 100%) diff --git a/components/SearchBar.vue b/components/SearchBar.vue index 9276ad1a..73f25ffe 100644 --- a/components/SearchBar.vue +++ b/components/SearchBar.vue @@ -2,14 +2,15 @@ - diff --git a/components/ToolWrapper.vue b/components/ToolWrapper.vue index e8046a47..eb3a8eb5 100644 --- a/components/ToolWrapper.vue +++ b/components/ToolWrapper.vue @@ -1,7 +1,7 @@ + + diff --git a/pages/how-to-report-bug-or-request.vue b/pages/how-to-report-bug-or-request.vue new file mode 100644 index 00000000..cf9f410a --- /dev/null +++ b/pages/how-to-report-bug-or-request.vue @@ -0,0 +1,20 @@ + + + + + diff --git a/pages/index.vue b/pages/index.vue index f6296e1b..04a40101 100644 --- a/pages/index.vue +++ b/pages/index.vue @@ -2,17 +2,57 @@

Yolo

+ + + {{ section }} + + + + + {{ item.config.icon }} + + + + + + + +
- diff --git a/pages/tools/crypto/cypher-uncyfer-text.vue b/pages/tools/crypto/cypher-uncyfer-text.vue new file mode 100644 index 00000000..a19b36ca --- /dev/null +++ b/pages/tools/crypto/cypher-uncyfer-text.vue @@ -0,0 +1,106 @@ + + + + + diff --git a/pages/tools/crypto/hash-text.vue b/pages/tools/crypto/hash-text.vue new file mode 100644 index 00000000..0ecad9ff --- /dev/null +++ b/pages/tools/crypto/hash-text.vue @@ -0,0 +1,78 @@ + + + + + diff --git a/pages/tools/crypto/token-generator.vue b/pages/tools/crypto/token-generator.vue index 98a567b6..dcef6784 100644 --- a/pages/tools/crypto/token-generator.vue +++ b/pages/tools/crypto/token-generator.vue @@ -11,7 +11,7 @@ - + @@ -30,16 +30,16 @@ import {Component} from 'nuxt-property-decorator' import Tool from '~/components/Tool.vue' import {ToolConfig} from '~/types/ToolConfig' -import {Copyable} from '~/mixins/copyable' +import {CopyableMixin} from '~/mixins/copyable.mixin' +import {shuffle} from '~/utils/string' -const shuffle = (s: string) => s.split('').sort(() => 0.5 - Math.random()).join('') const lowercase = 'abcdefghijklmopqrstuvwxyz' const uppercase = 'ABCDEFGHIJKLMOPQRSTUVWXYZ' const numbers = '0123456789' const specials = '.,;:!?./-"\'#{([-|\\@)]=}*+' @Component({ - mixins: [Copyable] + mixins: [CopyableMixin] }) export default class TokenGenerator extends Tool { config(): ToolConfig { diff --git a/pages/tools/crypto/uuid-generator.vue b/pages/tools/crypto/uuid-generator.vue new file mode 100644 index 00000000..ef056a25 --- /dev/null +++ b/pages/tools/crypto/uuid-generator.vue @@ -0,0 +1,92 @@ + + + + + diff --git a/static/android-chrome-192x192.png b/static/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..25d43972ec32e48d11635086f2f18ca0e026d654 GIT binary patch literal 7845 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 G;r|0#_VKp> literal 0 HcmV?d00001 diff --git a/static/android-chrome-512x512.png b/static/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..84f1f340c700d98d158a1b163e1137811cf4260b GIT binary patch literal 24093 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

hN=P93_2h{ifNYK&$2UtCIiUL{%t z{hWqd!6<}Dj|nW{!J2bCh=z_R zLsqXdG(t*D3oi>bgll&5KzW9UgWsbL<394*19ZQW#5)6;b9aun|X@dwQW3xAUyph?aiZGvf#J;n6U0j%Oq&Q*=vu+?)?_tqT}1 zIT*J)8(k3>yvBiuwm=8q4G_t|U0uvxj>_0)s&%38()j~$*6O{*CLY>W%t#f#5tv>a z6;ii0ySJ}uRY==)b_^xV z(BNYzot>SfOLpLc(Y9)}l3k$}mV%Ocp8g)?vDI@|Ps_YE^V@BLVP<1Xp!*(5S5{Vp zY=V8@tLJg9^OurS&H=CL@k@?R=yz4+(3jFS61ORW*zx@?5sb7;Q}&<^b>Air4IO$A zkBZ6R-mAh?tZoB25?6@NOe<;9P;ZfDYowC>epH~M_ixXZY;pMSD2$qTGxF2Z!vpl+ zjMP*LmfH@z9<#q&#J1rDXKZ2;K@Csf&d@B(Rf3RKIxE=GZouSUidz8HO-Hk*VizGj z`Xs_3%H0B!)G+_^+FGDo${EA(PREVWRnls>*k+w))w3bhzf6M8Luv~J z>q)evcYf)p`>R)a;uE}v$*l+BEWaTdMN2OF-J@Knh1=e4wf$(3@%Q{pL`u1InKe$M z1*o7`jRDgReUsczGki3G8tdASjg^;Aajvj<`mp)hYmoo(<)aXIXl5@_FAv3Y5f z5?v_oHf$$Y#X0!65Uxh^M^@(MSf6iA8w<5#BO__&a|5g2v|WcOfm`Z5cXNKwP9fD` ztgsp*dXiU^dVRC$5+47kEk|x@j2C;^Bkx@aZb5m~k!T!HiX=*RB4}F+^3-3eH{KL5 zIf4&$30E^TKbyt{{y+EnF&ddXGQIBe5PJyHYD)uu>p5nfbicXu zvSS&^)BqkB_hdPo{($e4;zP&u#UtfQ^WFSpP5|SDER`q!Az@432hVB3u zrhr6&hD3QepEfRn(D+72Wmrs2oDYCACq! zVg4zBvah7nPbLq$D?fSE#b9EX=ui%?r+?|Dlb2X>Qk^5)6hw_;G9&0QvMQEyJ;Q2L z4ltn@E|B~7m``(Ro!4eS5M;ctsb&`wf)Gr?;jjOX!v4Qp0qQoxv~9kJ!jYrLj1?4A6pyPY9Y2gYs)E5t=O~T;j{`isuDdt} z{qF~uZpU4P1I%#7=6;5DH^segcsaVbJBa%Qc{_-^c>CESNMQQJA1*c@Q#86=zvH9s zq#?q1fK$$%lm7t!g(Lw+esL{=V&iqj0~N;N9fO}+n?5#)HnDaPbh6INA+tg|{r+ew RCBsJ`x@YyYUTNBf{TEkyXu1FZ literal 0 HcmV?d00001 diff --git a/static/apple-touch-icon.png b/static/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3f15b9d16c54613f496b79fe8fb9620a20bf790f GIT binary patch literal 7323 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 + + + + + #2b5797 + + + diff --git a/static/favicon-16x16.png b/static/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..3c881bdf9d46f81c6b0318edc6d37c1128b7795f GIT binary patch literal 1114 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>@Ck7RDu~;frERLC zp{@Z0@!PW%#T9@e6rpX|@jG+kcjTZM0yNw<&QTo*)YN_2LgKc8Yyk?YDXBti2RZ;K zg`#U)wtcb-TvkO+*|#$kSpm=@4NZ{Ckpa-^gq=A+qmTuGY@lM0-fdY?t5YGe3A=J4 zSEi_|szFq$DX9V715_i+Ck;^mB-K?x=GY}W1H~cAqSvGWHO6fNsf36Cl>yBG8NM}3 zfi*vM8&eB+0`ueMmd zJ3f8-iT6CaUuI}~yGdmH&U8NicZXo6iO+(Qx@XU72}+$@r`uZJCS5OGZxF*S5K z>ZD|5a4jN0vO_d*&Bml;5m9ZkH($?Ow~oB&U;cLbZhl3%EpCC?njiC5v3}iEwLo!+ zxmloBMzQw|14YB$g4JrSOLzlrTU+f8QIMLVbd7iQ^6l&E6D~9@^cLLoX5qt$7k@+? z-I41TFe$-fnT(-jsHLrO_fC_U>_*((O41QgagnSd{%h9mPEy{zbL-y6ow3ty-?kSJ zQlHA=Jz>@1#Wv!{*S(%2lJk1Xq*t4Z^}58ThhJwEHvjZCx08F`{@v$oYb- zZoOn~VP#?O$s)|c3N8&Mhf|o9H-{*kzH#NmkuyhRj!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+081JkAepAc7|g1D_&S*I)F zwr0m}&(yax(6cn~tP9Z4(6CK#vIw#Xm>B6&XEyTY+!YRkYwb0{xB#kdQFKB$>L@BP6~N6wlR^^*a*-9lWr2*uy?JtcGC)~mK?oZtr63{) z(Fk-oL{LE(ECO?wlB6O;0Ynzr79d+iUIiq+En8ktHeq)zL=A*g6q8RnkPjCDDu%Ox z3>r-9p<9|=uYwx<6{`qU!{JS&oY+JC+ua6-Qb45jS?pHNkWHl|FF*BX(Jfr#} z*=cVdC_gBa+3_)xxs-)>+XYGHDdOjL@~_|5WBlq*IjahHN8HQE{3k3qPt(G_J579J z@@cC5SLaQYFLM9=E_}P@TMavNefQdEo-NgEET1P!Y)@y|CSAkkUqc(d&o*~O+ z31&{0OSjFLS${M*KHFNL8uVk=7VWLSp1+CNShRmW(2tBs-tI2q+}CFG13By^p1!W^ zPnmed^eq&ezQ_VIbB(8qV~EA+H#f3JsBue)|lZjQWjBzPaaX0)IwSM}(EhJ-u&Y99B^ll1sxUEcYu zVNtrd$);~PcetnC-!72y@5KrHegl85MC7$Q4*9`u24{vpO%@Es!&o{kgAYbP?F5R zP%-E6CmxQ%Fb$1U{-@7)J`G}ER_4}A<`z~K_MR-lEUe(tU~)KxS$T7a!s#1VP8>ON jMCJ(l=?0GlUV03##05(}IhjrcTEXDy>gTe~DWM4f!#nKm literal 0 HcmV?d00001 diff --git a/static/favicon.ico b/static/favicon.ico index 3632d0c89129045dc4103e84e59e426c57b8f51a..df3813f4597d202298a41731bdbe82cae8bd3495 100644 GIT binary patch literal 15086 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 literal 1393 zcmV-%1&;cOP)Px)D@jB_R9Fe^ReNldMG&9eyIx;VxmMIdgjhwCKeVN$X=xNR5F_{iAD9pW6t#*F zgsb$5TDXc(+R_KbHns{HwTUSSMxqkbMAXm+Qmqd}qLq*w23kw2)Y7}&?)uyB`r&ui zgSLtP7@6d5XJ%(+e>;!;h%VEAG6Suz+(=E0vHu2kKIR~YDr+g=KThO5N?%t`9J7Cz z!`J{cS7sBbmBg4LMc2`Q*c=vb%;M+)D8)#rilGypCSqLx@dPzj-aO`0Ee@jx&{DMo z2WG&xg=Vd*Cq_lch7F)fE%7L^BtJ8$xL~eTcPV~!0CdAiRcr*Z+1D9sR%#uxa2%lS zMHc30U1D*;LsF_{LE;nVHg~>ZH^SfO0I1*c5a(Lr^e$ztX)$85I|Ia7@DN4Y6RSN5 zisVjYMleQy5y_2LmgG+w;e3P~i4NCXgH*d=HbBx*5MrLSb{`J>9A!vneqSRxGno<9 zE23>mQG7tr%OUm=gpmORdJXM@drwr%R(lc%Hl26;kf|LIe!i@Uup z*Llp$^8n6C$?f4TR{7EZgs8wRV8aUOrpM1&9Zf!U!LkK0XZn-1d__lJO8SGj2H%rk z@(%pkpq}e2T|eKn4__}1pt<5c)b=i<{s+pMyer&M%jvnfQA(ANZUt|F4GdoFEX4rC-M{KbO^D{(o%D)QCbo>s)CXAnlwG$1v zG;RKh+q6M%LCF^=-+R!_`1Hh)C$%n|A_Hh?Ux_qOl*A&ww!d(JcrU;Vzm zBG@?@XRm(q{u@8){e>ARy8+@`9F{%vo}5Rut}DOnXHL8pwpR&B8???!!vXa93sL(d z7}ev^F#=m1G@tfB&J5T*g`4%n#MuEhNFI+z66b5RB$+6gvwV4s=Hnc(FX2KxVAtV= zoT7Cmg#u`*xdEwPjlh3UtnETz)7V_4UsRy3cBH?kdC#u1re3e@AG~=G{(JEdP3`SM z|A4$M&soglW;|3e0KQf0ObP`+zET)O5%DcFb4{0NWL@>xLB1RP@zaEilp5=v$vc>R zJ#Os7gltH=e}(ZJCtn{ATlR}$Y6*J5Xi{ze4}hlX*{IVZpg%zqd9@kLx?0B$wa+`~ z@dT{8k1qE3ZMq>boI;T?y4pSnK!58AkB&jyP1Dx+f_&(| z@D4l!jWKpe^+%z*p;ELnVGFW!2Bo?%mfh~sy^PqGXwo~9O7a(Kk05}S%B4vCOgJ2( zS!?%%h6+l?*b!|q$1akMRcDMPsTZLO8B1irg)A#%p)|d&4pVxhE)Ffb6^8??E%{@J9`p7P#__uNTS#9TpzPzVuwC5DwQPdixgxK z$6~Dd^w&+2dJAv+m`Oz2ol=McA&%%hWCL`l@?rdE;fE27OwMDy=O^#?a$EmkbYzQ* zYh|omoW8~B2*hv;bbiiZi+cUyUYB?NFB$k7NQU1u0aJ3K00000NkvXXu0mjfj6#%2 diff --git a/static/icon.png b/static/icon.png deleted file mode 100644 index e076dd8cd57ce1bc7d62808744c1da1b70c37ee2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12699 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 X#}T@BL*@C!5C9WHO9R{u*SP-zav!)% literal 0 HcmV?d00001 diff --git a/static/safari-pinned-tab.svg b/static/safari-pinned-tab.svg new file mode 100644 index 00000000..72240c63 --- /dev/null +++ b/static/safari-pinned-tab.svg @@ -0,0 +1,83 @@ + + + + +Created by potrace 1.11, written by Peter Selinger 2001-2013 + + + + + + diff --git a/static/site.webmanifest b/static/site.webmanifest new file mode 100644 index 00000000..50f00cfd --- /dev/null +++ b/static/site.webmanifest @@ -0,0 +1,19 @@ +{ + "name": "IT - Tools", + "short_name": "IT Tools", + "icons": [ + { + "src": "/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} diff --git a/tsconfig.json b/tsconfig.json index 88c81350..0f134056 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -28,7 +28,8 @@ "@types/node", "@nuxtjs/toast", "@nuxt/types", - "~/types/custom.d.ts" + "~/types/custom.d.ts", + "vuetify" ] }, "exclude": [ diff --git a/types/ToolConfig.ts b/types/ToolConfig.ts index 8d6cc1b8..a38c5fc1 100644 --- a/types/ToolConfig.ts +++ b/types/ToolConfig.ts @@ -1,3 +1,5 @@ +import {RouteConfig} from '@nuxt/types/config/router'; + interface ToolConfig { title: string; description: string; @@ -6,5 +8,6 @@ interface ToolConfig { } type ToolConfigMethod = () => ToolConfig; +type ToolRouteConfig = RouteConfig & {config: ToolConfig} -export {ToolConfig, ToolConfigMethod} +export {ToolConfig, ToolConfigMethod, ToolRouteConfig} diff --git a/utils/string.ts b/utils/string.ts index 0cdfe693..ae315aa0 100644 --- a/utils/string.ts +++ b/utils/string.ts @@ -1,5 +1,5 @@ -function capitalise(s: string) { - return s.charAt(0).toUpperCase() + s.slice(1) -} +const capitalise = (s: string) => s.charAt(0).toUpperCase() + s.slice(1) -export {capitalise} +const shuffle = (s: string) => s.split('').sort(() => 0.5 - Math.random()).join('') + +export {capitalise, shuffle}