From 2b9e748f2b26d4904be4b1115bb548f55963b7bb Mon Sep 17 00:00:00 2001 From: p32929 Date: Thu, 22 Feb 2024 23:13:51 +0400 Subject: [PATCH] Updates --- asset-manifest.json | 6 +++--- index.html | 2 +- .../js/{main.c28d4232.chunk.js => main.5d028fba.chunk.js} | 4 ++-- static/js/main.5d028fba.chunk.js.map | 1 + static/js/main.c28d4232.chunk.js.map | 1 - 5 files changed, 7 insertions(+), 7 deletions(-) rename static/js/{main.c28d4232.chunk.js => main.5d028fba.chunk.js} (55%) create mode 100644 static/js/main.5d028fba.chunk.js.map delete mode 100644 static/js/main.c28d4232.chunk.js.map diff --git a/asset-manifest.json b/asset-manifest.json index 20d89e2..c0cd103 100644 --- a/asset-manifest.json +++ b/asset-manifest.json @@ -1,8 +1,8 @@ { "files": { "main.css": "/static/css/main.331401d0.chunk.css", - "main.js": "/static/js/main.c28d4232.chunk.js", - "main.js.map": "/static/js/main.c28d4232.chunk.js.map", + "main.js": "/static/js/main.5d028fba.chunk.js", + "main.js.map": "/static/js/main.5d028fba.chunk.js.map", "runtime-main.js": "/static/js/runtime-main.2cb20680.js", "runtime-main.js.map": "/static/js/runtime-main.2cb20680.js.map", "static/js/2.14b3954f.chunk.js": "/static/js/2.14b3954f.chunk.js", @@ -17,6 +17,6 @@ "static/js/runtime-main.2cb20680.js", "static/js/2.14b3954f.chunk.js", "static/css/main.331401d0.chunk.css", - "static/js/main.c28d4232.chunk.js" + "static/js/main.5d028fba.chunk.js" ] } \ No newline at end of file diff --git a/index.html b/index.html index 2a48aaa..7cad795 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -Fayaz Bin Salam - p32929
\ No newline at end of file +Fayaz Bin Salam - p32929
\ No newline at end of file diff --git a/static/js/main.c28d4232.chunk.js b/static/js/main.5d028fba.chunk.js similarity index 55% rename from static/js/main.c28d4232.chunk.js rename to static/js/main.5d028fba.chunk.js index 7cc110b..8ef5489 100644 --- a/static/js/main.c28d4232.chunk.js +++ b/static/js/main.5d028fba.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonpp32929-fayaz-bin-salam"]=this["webpackJsonpp32929-fayaz-bin-salam"]||[]).push([[0],{149:function(t,e,o){},261:function(t,e,o){"use strict";o.r(e);var i={};o.r(i),o.d(i,"setPrimaryColor",(function(){return w})),o.d(i,"showLeftPart",(function(){return f})),o.d(i,"showColorPickerDialog",(function(){return v})),o.d(i,"setMenuClicked",(function(){return C}));var s=o(0),a=o.n(s),n=o(17),l=o.n(n);o(149);var r=t=>{t&&t instanceof Function&&o.e(3).then(o.bind(null,298)).then((e=>{let{getCLS:o,getFID:i,getFCP:s,getLCP:a,getTTFB:n}=e;o(t),i(t),s(t),a(t),n(t)}))},c=o(54),g=o(294),p=o(32);class d{}d.githubIcon="M12,2A10,10 0 0,0 2,12C2,16.42 4.87,20.17 8.84,21.5C9.34,21.58 9.5,21.27 9.5,21C9.5,20.77 9.5,20.14 9.5,19.31C6.73,19.91 6.14,17.97 6.14,17.97C5.68,16.81 5.03,16.5 5.03,16.5C4.12,15.88 5.1,15.9 5.1,15.9C6.1,15.97 6.63,16.93 6.63,16.93C7.5,18.45 8.97,18 9.54,17.76C9.63,17.11 9.89,16.67 10.17,16.42C7.95,16.17 5.62,15.31 5.62,11.5C5.62,10.39 6,9.5 6.65,8.79C6.55,8.54 6.2,7.5 6.75,6.15C6.75,6.15 7.59,5.88 9.5,7.17C10.29,6.95 11.15,6.84 12,6.84C12.85,6.84 13.71,6.95 14.5,7.17C16.41,5.88 17.25,6.15 17.25,6.15C17.8,7.5 17.45,8.54 17.35,8.79C18,9.5 18.38,10.39 18.38,11.5C18.38,15.32 16.04,16.16 13.81,16.41C14.17,16.72 14.5,17.33 14.5,18.26C14.5,19.6 14.5,20.68 14.5,21C14.5,21.27 14.66,21.59 15.17,21.5C19.14,20.16 22,16.42 22,12A10,10 0 0,0 12,2Z",d.facebookIcon="M12 2.04C6.5 2.04 2 6.53 2 12.06C2 17.06 5.66 21.21 10.44 21.96V14.96H7.9V12.06H10.44V9.85C10.44 7.34 11.93 5.96 14.22 5.96C15.31 5.96 16.45 6.15 16.45 6.15V8.62H15.19C13.95 8.62 13.56 9.39 13.56 10.18V12.06H16.34L15.89 14.96H13.56V21.96A10 10 0 0 0 22 12.06C22 6.53 17.5 2.04 12 2.04Z",d.whatsappIcon="M12.04 2C6.58 2 2.13 6.45 2.13 11.91C2.13 13.66 2.59 15.36 3.45 16.86L2.05 22L7.3 20.62C8.75 21.41 10.38 21.83 12.04 21.83C17.5 21.83 21.95 17.38 21.95 11.92C21.95 9.27 20.92 6.78 19.05 4.91C17.18 3.03 14.69 2 12.04 2M12.05 3.67C14.25 3.67 16.31 4.53 17.87 6.09C19.42 7.65 20.28 9.72 20.28 11.92C20.28 16.46 16.58 20.15 12.04 20.15C10.56 20.15 9.11 19.76 7.85 19L7.55 18.83L4.43 19.65L5.26 16.61L5.06 16.29C4.24 15 3.8 13.47 3.8 11.91C3.81 7.37 7.5 3.67 12.05 3.67M8.53 7.33C8.37 7.33 8.1 7.39 7.87 7.64C7.65 7.89 7 8.5 7 9.71C7 10.93 7.89 12.1 8 12.27C8.14 12.44 9.76 14.94 12.25 16C12.84 16.27 13.3 16.42 13.66 16.53C14.25 16.72 14.79 16.69 15.22 16.63C15.7 16.56 16.68 16.03 16.89 15.45C17.1 14.87 17.1 14.38 17.04 14.27C16.97 14.17 16.81 14.11 16.56 14C16.31 13.86 15.09 13.26 14.87 13.18C14.64 13.1 14.5 13.06 14.31 13.3C14.15 13.55 13.67 14.11 13.53 14.27C13.38 14.44 13.24 14.46 13 14.34C12.74 14.21 11.94 13.95 11 13.11C10.26 12.45 9.77 11.64 9.62 11.39C9.5 11.15 9.61 11 9.73 10.89C9.84 10.78 10 10.6 10.1 10.45C10.23 10.31 10.27 10.2 10.35 10.04C10.43 9.87 10.39 9.73 10.33 9.61C10.27 9.5 9.77 8.26 9.56 7.77C9.36 7.29 9.16 7.35 9 7.34C8.86 7.34 8.7 7.33 8.53 7.33Z",d.wordpressIcon="M3.42,12C3.42,10.76 3.69,9.58 4.16,8.5L8.26,19.72C5.39,18.33 3.42,15.4 3.42,12M17.79,11.57C17.79,12.3 17.5,13.15 17.14,14.34L16.28,17.2L13.18,8L14.16,7.9C14.63,7.84 14.57,7.16 14.11,7.19C14.11,7.19 12.72,7.3 11.82,7.3L9.56,7.19C9.1,7.16 9.05,7.87 9.5,7.9L10.41,8L11.75,11.64L9.87,17.27L6.74,8L7.73,7.9C8.19,7.84 8.13,7.16 7.67,7.19C7.67,7.19 6.28,7.3 5.38,7.3L4.83,7.29C6.37,4.96 9,3.42 12,3.42C14.23,3.42 16.27,4.28 17.79,5.67H17.68C16.84,5.67 16.24,6.4 16.24,7.19C16.24,7.9 16.65,8.5 17.08,9.2C17.41,9.77 17.79,10.5 17.79,11.57M12.15,12.75L14.79,19.97L14.85,20.09C13.96,20.41 13,20.58 12,20.58C11.16,20.58 10.35,20.46 9.58,20.23L12.15,12.75M19.53,7.88C20.2,9.11 20.58,10.5 20.58,12C20.58,15.16 18.86,17.93 16.31,19.41L18.93,11.84C19.42,10.62 19.59,9.64 19.59,8.77L19.53,7.88M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,21.54C17.26,21.54 21.54,17.26 21.54,12C21.54,6.74 17.26,2.46 12,2.46C6.74,2.46 2.46,6.74 2.46,12C2.46,17.26 6.74,21.54 12,21.54Z",d.skypeIcon="M18,6C20.07,8.04 20.85,10.89 20.36,13.55C20.77,14.27 21,15.11 21,16A5,5 0 0,1 16,21C15.11,21 14.27,20.77 13.55,20.36C10.89,20.85 8.04,20.07 6,18C3.93,15.96 3.15,13.11 3.64,10.45C3.23,9.73 3,8.89 3,8A5,5 0 0,1 8,3C8.89,3 9.73,3.23 10.45,3.64C13.11,3.15 15.96,3.93 18,6M12.04,17.16C14.91,17.16 16.34,15.78 16.34,13.92C16.34,12.73 15.78,11.46 13.61,10.97L11.62,10.53C10.86,10.36 10,10.13 10,9.42C10,8.7 10.6,8.2 11.7,8.2C13.93,8.2 13.72,9.73 14.83,9.73C15.41,9.73 15.91,9.39 15.91,8.8C15.91,7.43 13.72,6.4 11.86,6.4C9.85,6.4 7.7,7.26 7.7,9.54C7.7,10.64 8.09,11.81 10.25,12.35L12.94,13.03C13.75,13.23 13.95,13.68 13.95,14.1C13.95,14.78 13.27,15.45 12.04,15.45C9.63,15.45 9.96,13.6 8.67,13.6C8.09,13.6 7.67,14 7.67,14.57C7.67,15.68 9,17.16 12.04,17.16Z",d.emailIcon="M12,15C12.81,15 13.5,14.7 14.11,14.11C14.7,13.5 15,12.81 15,12C15,11.19 14.7,10.5 14.11,9.89C13.5,9.3 12.81,9 12,9C11.19,9 10.5,9.3 9.89,9.89C9.3,10.5 9,11.19 9,12C9,12.81 9.3,13.5 9.89,14.11C10.5,14.7 11.19,15 12,15M12,2C14.75,2 17.1,3 19.05,4.95C21,6.9 22,9.25 22,12V13.45C22,14.45 21.65,15.3 21,16C20.3,16.67 19.5,17 18.5,17C17.3,17 16.31,16.5 15.56,15.5C14.56,16.5 13.38,17 12,17C10.63,17 9.45,16.5 8.46,15.54C7.5,14.55 7,13.38 7,12C7,10.63 7.5,9.45 8.46,8.46C9.45,7.5 10.63,7 12,7C13.38,7 14.55,7.5 15.54,8.46C16.5,9.45 17,10.63 17,12V13.45C17,13.86 17.16,14.22 17.46,14.53C17.76,14.84 18.11,15 18.5,15C18.92,15 19.27,14.84 19.57,14.53C19.87,14.22 20,13.86 20,13.45V12C20,9.81 19.23,7.93 17.65,6.35C16.07,4.77 14.19,4 12,4C9.81,4 7.93,4.77 6.35,6.35C4.77,7.93 4,9.81 4,12C4,14.19 4.77,16.07 6.35,17.65C7.93,19.23 9.81,20 12,20H17V22H12C9.25,22 6.9,21 4.95,19.05C3,17.1 2,14.75 2,12C2,9.25 3,6.9 4.95,4.95C6.9,3 9.25,2 12,2Z",d.downloadIcon="M14,2L20,8V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2H14M18,20V9H13V4H6V20H18M12,19L8,15H10.5V12H13.5V15H16L12,19Z",d.buymeacoffee="M20.216 6.415l-.132-.666c-.119-.598-.388-1.163-1.001-1.379-.197-.069-.42-.098-.57-.241-.152-.143-.196-.366-.231-.572-.065-.378-.125-.756-.192-1.133-.057-.325-.102-.69-.25-.987-.195-.4-.597-.634-.996-.788a5.723 5.723 0 00-.626-.194c-1-.263-2.05-.36-3.077-.416a25.834 25.834 0 00-3.7.062c-.915.083-1.88.184-2.75.5-.318.116-.646.256-.888.501-.297.302-.393.77-.177 1.146.154.267.415.456.692.58.36.162.737.284 1.123.366 1.075.238 2.189.331 3.287.37 1.218.05 2.437.01 3.65-.118.299-.033.598-.073.896-.119.352-.054.578-.513.474-.834-.124-.383-.457-.531-.834-.473-.466.074-.96.108-1.382.146-1.177.08-2.358.082-3.536.006a22.228 22.228 0 01-1.157-.107c-.086-.01-.18-.025-.258-.036-.243-.036-.484-.08-.724-.13-.111-.027-.111-.185 0-.212h.005c.277-.06.557-.108.838-.147h.002c.131-.009.263-.032.394-.048a25.076 25.076 0 013.426-.12c.674.019 1.347.067 2.017.144l.228.031c.267.04.533.088.798.145.392.085.895.113 1.07.542.055.137.08.288.111.431l.319 1.484a.237.237 0 01-.199.284h-.003c-.037.006-.075.01-.112.015a36.704 36.704 0 01-4.743.295 37.059 37.059 0 01-4.699-.304c-.14-.017-.293-.042-.417-.06-.326-.048-.649-.108-.973-.161-.393-.065-.768-.032-1.123.161-.29.16-.527.404-.675.701-.154.316-.199.66-.267 1-.069.34-.176.707-.135 1.056.087.753.613 1.365 1.37 1.502a39.69 39.69 0 0011.343.376.483.483 0 01.535.53l-.071.697-1.018 9.907c-.041.41-.047.832-.125 1.237-.122.637-.553 1.028-1.182 1.171-.577.131-1.165.2-1.756.205-.656.004-1.31-.025-1.966-.022-.699.004-1.556-.06-2.095-.58-.475-.458-.54-1.174-.605-1.793l-.731-7.013-.322-3.094c-.037-.351-.286-.695-.678-.678-.336.015-.718.3-.678.679l.228 2.185.949 9.112c.147 1.344 1.174 2.068 2.446 2.272.742.12 1.503.144 2.257.156.966.016 1.942.053 2.892-.122 1.408-.258 2.465-1.198 2.616-2.657.34-3.332.683-6.663 1.024-9.995l.215-2.087a.484.484 0 01.39-.426c.402-.078.787-.212 1.074-.518.455-.488.546-1.124.385-1.766zm-1.478.772c-.145.137-.363.201-.578.233-2.416.359-4.866.54-7.308.46-1.748-.06-3.477-.254-5.207-.498-.17-.024-.353-.055-.47-.18-.22-.236-.111-.71-.054-.995.052-.26.152-.609.463-.646.484-.057 1.046.148 1.526.22.577.088 1.156.159 1.737.212 2.48.226 5.002.19 7.472-.14.45-.06.899-.13 1.345-.21.399-.072.84-.206 1.08.206.166.281.188.657.162.974a.544.544 0 01-.169.364zm-6.159 3.9c-.862.37-1.84.788-3.109.788a5.884 5.884 0 01-1.569-.217l.877 9.004c.065.78.717 1.38 1.5 1.38 0 0 1.243.065 1.658.065.447 0 1.786-.065 1.786-.065.783 0 1.434-.6 1.499-1.38l.94-9.95a3.996 3.996 0 00-1.322-.238c-.826 0-1.491.284-2.26.613z",d.linkIcon="M10.59,13.41C11,13.8 11,14.44 10.59,14.83C10.2,15.22 9.56,15.22 9.17,14.83C7.22,12.88 7.22,9.71 9.17,7.76V7.76L12.71,4.22C14.66,2.27 17.83,2.27 19.78,4.22C21.73,6.17 21.73,9.34 19.78,11.29L18.29,12.78C18.3,11.96 18.17,11.14 17.89,10.36L18.36,9.88C19.54,8.71 19.54,6.81 18.36,5.64C17.19,4.46 15.29,4.46 14.12,5.64L10.59,9.17C9.41,10.34 9.41,12.24 10.59,13.41M13.41,9.17C13.8,8.78 14.44,8.78 14.83,9.17C16.78,11.12 16.78,14.29 14.83,16.24V16.24L11.29,19.78C9.34,21.73 6.17,21.73 4.22,19.78C2.27,17.83 2.27,14.66 4.22,12.71L5.71,11.22C5.7,12.04 5.83,12.86 6.11,13.65L5.64,14.12C4.46,15.29 4.46,17.19 5.64,18.36C6.81,19.54 8.71,19.54 9.88,18.36L13.41,14.83C14.59,13.66 14.59,11.76 13.41,10.59C13,10.2 13,9.56 13.41,9.17Z",d.close="M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z",d.fork="M6,2A3,3 0 0,1 9,5C9,6.28 8.19,7.38 7.06,7.81C7.15,8.27 7.39,8.83 8,9.63C9,10.92 11,12.83 12,14.17C13,12.83 15,10.92 16,9.63C16.61,8.83 16.85,8.27 16.94,7.81C15.81,7.38 15,6.28 15,5A3,3 0 0,1 18,2A3,3 0 0,1 21,5C21,6.32 20.14,7.45 18.95,7.85C18.87,8.37 18.64,9 18,9.83C17,11.17 15,13.08 14,14.38C13.39,15.17 13.15,15.73 13.06,16.19C14.19,16.62 15,17.72 15,19A3,3 0 0,1 12,22A3,3 0 0,1 9,19C9,17.72 9.81,16.62 10.94,16.19C10.85,15.73 10.61,15.17 10,14.38C9,13.08 7,11.17 6,9.83C5.36,9 5.13,8.37 5.05,7.85C3.86,7.45 3,6.32 3,5A3,3 0 0,1 6,2M6,4A1,1 0 0,0 5,5A1,1 0 0,0 6,6A1,1 0 0,0 7,5A1,1 0 0,0 6,4M18,4A1,1 0 0,0 17,5A1,1 0 0,0 18,6A1,1 0 0,0 19,5A1,1 0 0,0 18,4M12,18A1,1 0 0,0 11,19A1,1 0 0,0 12,20A1,1 0 0,0 13,19A1,1 0 0,0 12,18Z",d.menu="M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z",d.star="M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z",d.palette="M17.5,12A1.5,1.5 0 0,1 16,10.5A1.5,1.5 0 0,1 17.5,9A1.5,1.5 0 0,1 19,10.5A1.5,1.5 0 0,1 17.5,12M14.5,8A1.5,1.5 0 0,1 13,6.5A1.5,1.5 0 0,1 14.5,5A1.5,1.5 0 0,1 16,6.5A1.5,1.5 0 0,1 14.5,8M9.5,8A1.5,1.5 0 0,1 8,6.5A1.5,1.5 0 0,1 9.5,5A1.5,1.5 0 0,1 11,6.5A1.5,1.5 0 0,1 9.5,8M6.5,12A1.5,1.5 0 0,1 5,10.5A1.5,1.5 0 0,1 6.5,9A1.5,1.5 0 0,1 8,10.5A1.5,1.5 0 0,1 6.5,12M12,3A9,9 0 0,0 3,12A9,9 0 0,0 12,21A1.5,1.5 0 0,0 13.5,19.5C13.5,19.11 13.35,18.76 13.11,18.5C12.88,18.23 12.73,17.88 12.73,17.5A1.5,1.5 0 0,1 14.23,16H16A5,5 0 0,0 21,11C21,6.58 16.97,3 12,3Z",d.circle="M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z";class m{}m.avatar="/avatar.png",m.avatar_with_laptop="/avatar2.png";class h{}h.giftIcon="https://user-images.githubusercontent.com/6418354/155841091-9bdc3b05-fabd-4e58-a0fd-fe90b08275e4.png",h.flutterIcon="https://www.vectorlogo.zone/logos/flutterio/flutterio-icon.svg";class u{}u.primaryColor="#00C853",u.otherColors=["#D50000","#C51162","#AA00FF","#6200EA","#304FFE","#2962FF","#0091EA","#00B8D4","#00BFA5","#00C853","#64DD17","#AEEA00","#FFD600","#FFAB00","#FF6D00","#DD2C00"],u.myName="Fayaz Bin Salam",u.myOccupation="Software Engineer",u.myDetails="Hark! I am Fayaz Bin Salam, an artful craftsman of software, weaving together intricate webs of code for mobile, web, and desktop. To me, the machines of silicon and plastic are naught but hollow shells, until they hear and heed the whispers of my command. Since 2009, I have honed my skills in the arcane art of programming, penning my first lines of code in Batch and VBScript. Through the years, I have delved deeper into the mysteries of C, C++, Java, Python, and the like, working my magic with libraries and frameworks such as ReactJS and Angular2+. The beauty of my work lies not just in its function, but in its constant evolution and growth. Indeed, I strive to kindle the spark of progress in all that surrounds me, illuminating the way towards a brighter future.",u.myLeftAvatarImage=null,u.myRightAvatarImage=null,u.helperTexts="We have a form available for you to write down any queries you may have, which will be sent directly to me. Would you like to view the form now?",u.helperFormLink="",u.bottomLinks=[{svgPath:d.whatsappIcon,link:"https://api.whatsapp.com/send?phone=8801796306262"},{svgPath:d.emailIcon,link:"mailto:p32929.ceo@gmail.com"},{svgPath:d.downloadIcon,link:"https://docs.google.com/document/d/1W5U6FuZVPI6kfSDzjc5mJ0vEfey8tvxnb48tEku17lI/edit?usp=sharing"}],u.skills=[{text:"Programming / Markup Languages",arr:[{title:"C",logo:"https://seeklogo.com/images/C/c-logo-672525892C-seeklogo.com.png"},{title:"C++",logo:"https://seeklogo.com/images/C/c-logo-1B1817C041-seeklogo.com.png"},{title:"Java",logo:"https://www.vectorlogo.zone/logos/java/java-icon.svg"},{title:"Python",logo:"https://www.vectorlogo.zone/logos/python/python-icon.svg"},{title:"JavaScript",logo:"https://www.vectorlogo.zone/logos/javascript/javascript-icon.svg"},{title:"Rust",logo:"https://www.rust-lang.org/static/images/rust-logo-blk.svg"},{title:"HTML",logo:"https://www.vectorlogo.zone/logos/w3_html5/w3_html5-icon.svg"},{title:"CSS",logo:"https://seeklogo.com/images/C/css3-logo-F1923C8D0E-seeklogo.com.png"},{title:"TypeScript",logo:"https://www.vectorlogo.zone/logos/typescriptlang/typescriptlang-icon.svg"},{title:"Kotlin",logo:"https://www.vectorlogo.zone/logos/kotlinlang/kotlinlang-icon.svg"},{title:"Dart",logo:"https://www.vectorlogo.zone/logos/dartlang/dartlang-icon.svg"},{title:"Go",logo:"https://go.dev/blog/go-brand/Go-Logo/SVG/Go-Logo_Blue.svg"}]},{text:"Databases",arr:[{title:"MongoDB",logo:"https://cdn.iconscout.com/icon/free/png-128/mongodb-3521676-2945120.png"},{title:"SQL",logo:"https://w7.pngwing.com/pngs/28/601/png-transparent-sql-logo-illustration-microsoft-azure-sql-database-microsoft-sql-server-database-blue-text-logo-thumbnail.png"},{title:"DynamoDB",logo:"https://cdn.worldvectorlogo.com/logos/aws-dynamodb.svg"},{title:"PostgreSQL",logo:"https://wiki.postgresql.org/images/thumb/a/a4/PostgreSQL_logo.3colors.svg/540px-PostgreSQL_logo.3colors.svg.png"}]},{text:"UI Component Libraries",arr:[{title:"Ant Design",logo:"https://gw.alipayobjects.com/zos/rmsportal/KDpgvguMpGfqaHPjicRK.svg"},{title:"Material-UI",logo:"https://mui.com/static/logo.png"},{title:"Shadcn",logo:"https://ui.shadcn.com/favicon.ico"},{title:"Tailwind CSS",logo:"https://upload.wikimedia.org/wikipedia/commons/thumb/d/d5/Tailwind_CSS_Logo.svg/512px-Tailwind_CSS_Logo.svg.png?20230715030042"},{title:"Bootstrap",logo:"https://upload.wikimedia.org/wikipedia/commons/thumb/b/b2/Bootstrap_logo.svg/512px-Bootstrap_logo.svg.png"}]},{text:"Libraries / Frameworks / Techs",arr:[{title:"Android App Development",logo:"https://www.vectorlogo.zone/logos/android/android-icon.svg"},{title:"NodeJS",logo:"https://www.vectorlogo.zone/logos/nodejs/nodejs-icon.svg"},{title:"ExpressJS",logo:"https://www.vectorlogo.zone/logos/expressjs/expressjs-icon.svg"},{title:"ReactJS",logo:"https://www.vectorlogo.zone/logos/reactjs/reactjs-icon.svg"},{title:"Redux",logo:"https://w7.pngwing.com/pngs/669/447/png-transparent-redux-react-javascript-freecodecamp-npm-others-miscellaneous-purple-violet-thumbnail.png"},{title:"React Native",logo:"https://d33wubrfki0l68.cloudfront.net/554c3b0e09cf167f0281fda839a5433f2040b349/ecfc9/img/header_logo.svg"},{title:"ElectronJS",logo:"https://www.vectorlogo.zone/logos/electronjs/electronjs-icon.svg"},{title:"Angular2+",logo:"https://angular.io/assets/images/logos/angular/angular.svg"},{title:"Mongoose",logo:"https://avatars.githubusercontent.com/u/7552965?s=200&v=4"},{title:"NextJS",logo:"https://upload.wikimedia.org/wikipedia/commons/thumb/8/8e/Nextjs-logo.svg/207px-Nextjs-logo.svg.png"},{title:"OpenCV",logo:"https://www.vectorlogo.zone/logos/opencv/opencv-icon.svg"},{title:"Firebase",logo:"https://www.vectorlogo.zone/logos/firebase/firebase-icon.svg"},{title:"Flutter",logo:"https://www.vectorlogo.zone/logos/flutterio/flutterio-icon.svg"},{title:"Beautiful soup",logo:"https://github.com/3r4y/react-portfolio-template/assets/6418354/c9199eab-529b-4314-a990-c46deba899e9"},{title:"Numpy",logo:"https://numpy.org/images/logo.svg"},{title:"Tauri",logo:"https://raw.githubusercontent.com/tauri-apps/tauri/HEAD/app-icon.png"},{title:"VueJS",logo:"https://vuejs.org/images/logo.png"},{title:"Pandas",logo:"https://pandas.pydata.org/static/img/pandas.svg"},{title:"Matplotlib",logo:"https://matplotlib.org/3.1.0/_images/sphx_glr_logos2_001.png"},{title:"Socket.io",logo:"https://socket.io/images/logo.svg"},{title:"Flask",logo:"https://static.javatpoint.com/tutorial/flask/images/flask-tutorial.png"},{title:"Docker",logo:"https://cdn.iconscout.com/icon/free/png-128/docker-226091.png"},{title:"Git",logo:"https://www.vectorlogo.zone/logos/git-scm/git-scm-icon.svg"},{title:"Expo",logo:"https://www.vectorlogo.zone/logos/expoio/expoio-icon.svg"},{title:"NgInx",logo:"https://www.vectorlogo.zone/logos/nginx/nginx-icon.svg"},{title:"NestJS",logo:"https://d33wubrfki0l68.cloudfront.net/e937e774cbbe23635999615ad5d7732decad182a/26072/logo-small.ede75a6b.svg"}]},{text:"Others",arr:[{title:"Vim",logo:"https://upload.wikimedia.org/wikipedia/commons/thumb/9/9f/Vimlogo.svg/544px-Vimlogo.svg.png?20150726190850"},{title:"Android Studio",logo:"https://upload.wikimedia.org/wikipedia/commons/thumb/9/95/Android_Studio_Icon_3.6.svg/512px-Android_Studio_Icon_3.6.svg.png?20210301045217"},{title:"VS Code",logo:"https://cdn.icon-icons.com/icons2/2107/PNG/512/file_type_vscode_icon_130084.png"},{title:"Jira",logo:"https://cdn.iconscout.com/icon/free/png-128/jira-3628861-3030001.png"},{title:"AWS",logo:"https://cdn.iconscout.com/icon/free/png-128/aws-1869025-1583149.png"},{title:"DigitalOcean",logo:"https://res.cloudinary.com/crunchbase-production/image/upload/c_lpad,h_170,w_170,f_auto,b_white,q_auto:eco,dpr_1/v1478792253/gnlwek2zwhq369yryrzv.jpg"},{title:"Figma",logo:"https://www.vectorlogo.zone/logos/figma/figma-icon.svg"},{title:"Heroku",logo:"https://www.vectorlogo.zone/logos/heroku/heroku-icon.svg"},{title:"Yarn",logo:"https://www.vectorlogo.zone/logos/yarnpkg/yarnpkg-icon.svg"},{title:"npm",logo:"https://www.vectorlogo.zone/logos/npmjs/npmjs-icon.svg"},{title:"Tampermonkey",logo:"https://lh3.googleusercontent.com/zoY8FwoOqPlBgFxcmFdNSK2Q4CcLmv-gw7vTjF2KMR9cEabwBsGNrHBTEMitn0Ba6OmCVJ0NcLnFGu3N97BP8Phu0g=w128-h128-e365-rj-sc0x00ffffff"},{title:"Greasemonkey",logo:"https://addons.mozilla.org/user-media/addon_icons/0/748-64.png?modified=1531822767"},{title:"Linux",logo:"https://www.freepnglogos.com/uploads/linux-png/file-icons-flat-linux-svg-wikimedia-commons-6.png"},{title:"Adobe Photoshop",logo:"https://www.adobe.com/content/dam/cc/icons/photoshop-mobile.svg"}]}],u.works=[{text:"Web Apps",arr:[{title:"Duas",link:"https://p32929.github.io/duas/",logo:"https://p32929.github.io/duas/favicon.png",desc:"A collection of duas I try to regularly recite - created using flutter web",featured:!0},{title:"dobd.xyz",link:"https://www.dobd.xyz/",logo:"https://www.dobd.xyz/android-chrome-512x512.png",desc:"Best online downloader for YouTube, Facebook, Instagram, Tiktok and more",featured:!0},{title:"StartPage",logo:"https://cdn.iconscout.com/icon/premium/png-128-thumb/homepage-2580329-2151669.png",desc:"A minimalistic custom browser startpage that can be configured to your needs. ",link:"https://p32929.github.io/startpage/"},{title:"s3cr3tm3",link:"https://s3cr3tm3.netlify.app/",logo:"https://user-images.githubusercontent.com/6418354/173877444-59dbdd3d-1b5d-4b92-ad53-30fada9362d2.png",desc:"Share secret messages secretely",featured:!0},{title:"OrderZesty",logo:"https://orderzesty.com/wp-content/uploads/2021/10/Zesty-icon@3x-300x300.png",desc:"Personal chef service delivering fresh signature meals.",link:"https://orderzesty.com/",featured:!0},{title:"DramaDB",logo:"https://dramadb.vercel.app/apple-icon.png",desc:"A serverless hobby project that lets you filter Asian drama by country, genre, status, year and popularity",link:"https://dramadb.vercel.app/"},{title:"Sh0Sh0",logo:"https://github.com/3r4y/react-portfolio-template/assets/6418354/a159e1d8-fabc-4f58-9391-0c3be4d14d7e",desc:"A beautifully created Absolutely FREE URL shortener for everyone made using React Shadcn Firebase. ",link:"https://sh0sh0.netlify.app/"},{title:"TheRealWorldFree",logo:"https://www.therlworld.com/images/Group-427319400-1.webp",desc:"Enjoy the real world for free :)",link:"https://trwfree.vercel.app/"},{title:"BreakingMars",logo:"https://images.crunchbase.com/image/upload/c_pad,h_170,w_170,f_auto,b_white,q_auto:eco,dpr_1/lg6nxfb2dttgtng5kobb",desc:"#1 Leading & Effortless Prospect Perceiving Platform",link:"https://web.archive.org/web/20220413085335/https://www.breakingmars.com/"},{title:"Voomnow",desc:"Next generation audio recorder",logo:"https://user-images.githubusercontent.com/6418354/173876916-e27cb77f-49f1-4190-be54-4c1ddaa2973d.svg",link:"https://web.archive.org/web/20220326215025/https://www.voomnow.com/"},{title:"Shajao",logo:"https://sdn.signalhire.co/storage/company/1dfc/9704/f9d3/ff49/cdce/31bb/c4d7/0628.webp",desc:"Framing Happiness",link:"https://web.archive.org/web/20191222090655/https://shajao.com/"},{title:"ChargeOnSite",logo:"https://static.wixstatic.com/media/182a81_c4e4ee2bac6d4389a866239475519bdf~mv2.png/v1/fill/w_192%2Ch_192%2Clg_1%2Cusm_0.66_1.00_0.01/182a81_c4e4ee2bac6d4389a866239475519bdf~mv2.png",desc:"Charge OnSite",link:"https://www.chargeonsite.com/"}]},{text:"iOS Apps",arr:[{title:"Adblock for YT",link:"https://apps.apple.com/au/app/adblock-for-youtube/id1592568016",logo:"https://is2-ssl.mzstatic.com/image/thumb/Purple126/v4/65/7e/a8/657ea8d9-c3aa-6951-38c8-948c05cd96c3/AppIcon-0-0-85-220-0-0-0-0-4-0-0-0-2x-sRGB-0-0-0-0-0.png/246x0w.webp",desc:"Removes ads from YT videos, embedded videos on third party websites and streams.",featured:!0},{title:"Al Quran by Quran Touch",link:"https://apps.apple.com/gb/app/al-quran-by-quran-touch/id585240351",logo:"https://is3-ssl.mzstatic.com/image/thumb/Purple112/v4/9d/7e/ed/9d7eedd6-e567-5251-bed6-dce7e868bb57/AppIcon-0-1x_U007emarketing-0-10-0-85-220.png/246x0w.webp",desc:"The most comprehensive Muslim App!",featured:!0}]},{text:"Android Apps",arr:[{title:"Al Quran by Quran Touch",link:"https://www.apkmonk.com/app/com.qurantouch.qurantouchhd.app/",logo:"https://is3-ssl.mzstatic.com/image/thumb/Purple112/v4/9d/7e/ed/9d7eedd6-e567-5251-bed6-dce7e868bb57/AppIcon-0-1x_U007emarketing-0-10-0-85-220.png/246x0w.webp",desc:"The most comprehensive Muslim App!"},{title:"Thamao",logo:"https://cdn.apkmonk.com/logos/com.thamao_150x150.png",desc:"\u09ac\u09be\u0982\u09b2\u09be\u09a6\u09c7\u09b6\u09c7 \u09b8\u09cd\u09ae\u09be\u09b0\u09cd\u099f\u09ab\u09cb\u09a8\u09c7\u09b0 \u099a\u09c1\u09b0\u09bf \u098f\u09ac\u09be\u09b0 \u0985\u09b8\u09ae\u09cd\u09ad\u09ac",link:"https://www.apkmonk.com/app/com.thamao/",featured:!0},{title:"Desplash",logo:"https://lh3.googleusercontent.com/ILrto9KguXlr-clbhYKUonpnHszgNp_N5Qvc8_u9QaM71oaqNKcYql2sV3sqZ7nqzsc=s180",desc:"Automatic Free High Quality Wallpapers powered by Unsplash.com",link:"https://www.xda-developers.com/desplash-wallpaper-app-unsplash/",featured:!0},{title:"The Great Postman",logo:"https://lh3.googleusercontent.com/ni-lk3b2nTMZyC7r1wYBW6cm9eYqGAN-t6fXV-kD0lSyw1lO3kenC1We71fZjSryvFII=s180",desc:"Powerful, Lightweight REST API client for Android",link:"https://apkcombo.com/es/rest-api-client-the-great-postman/p32929.greatpostman/"},{title:"Sleepy - Addiction Remover",logo:"https://user-images.githubusercontent.com/6418354/192146268-29e1bac2-e477-4010-ae03-96adecbf07e6.png",desc:"The one and only EFFECTIVE addiction remover on Google Play store",link:"https://apkcombo.com/es/sleepy-phone-addiction-controller/p32929.lazyphone/"},{title:"Best CGPA Calculator",logo:"https://user-images.githubusercontent.com/6418354/192146303-6e04c9ac-ffb2-4931-bb10-ef54ff7af382.png",desc:"A simple yet effective CGPA Calculator for University students",link:"https://apkcombo.com/es/cgpa-calculator-for-update-see-the-description/p32929.cgpa_calculator/",featured:!0},{title:"Buy Sell BD",logo:"https://image.winudf.com/v2/image1/cDMyOTI5LmJ1eXNlbGxiZF9pY29uXzE1NTkyOTQ5NjVfMDYz/icon.png?w=170&fakeurl=1",desc:"A better & more reliable alternative for Bikroy.com - A marketplace app for buying-selling new/used goods",link:"https://apkcombo.com/es/buy-sell-bd-buy-sell-everything-easily-in-bd/p32929.buysellbd/"},{title:"ExIn",logo:"https://lh3.googleusercontent.com/X8mRJd7JajvDXoW7NaluKt2IvC3osH6czkTPoWeSYJ96U2LWLKT4xiFgvNouwf-UvEk=s180",desc:"A Simple & user friendly income-expense tracker ",link:"https://apkcombo.com/es/exin-discontinued/p32929.exin/"},{title:"I am free",logo:"https://image.winudf.com/v2/image1/cDMyOTI5LmltZnJlZV9pY29uXzE1NzY4ODAwNzVfMDU3/icon.png?w=170&fakeurl=1",desc:"\u09ac\u09c7\u0995\u09be\u09b0 \u09ae\u09c1\u0995\u09cd\u09a4 \u09ac\u09be\u0982\u09b2\u09be\u09a6\u09c7\u09b6 \u0997\u09dc\u09be\u09b0 \u09b2\u0995\u09cd\u09b7\u09cd\u09af\u09c7 - I am FREE",link:"https://apkcombo.com/es/i-am-free/p32929.imfree/"},{title:"Awesome NCTB",logo:"https://image.winudf.com/v2/image1/b3JnLnJpY2hpdC5uY3RiX2ljb25fMTU3NjU3MjcwNF8wMjI/icon.png?fakeurl=1",desc:"Download NCTB Books easily and Free",link:"https://apkcombo.com/es/awesome-nctb/org.richit.nctb/"},{title:"\u09ac\u09c3\u0995\u09cd\u09b7 ( Brikkho )",logo:"https://image.winudf.com/v2/image1/b3JnLnJpY2hpdC5icmlra2hvX2ljb25fMTU3MDEyMTU0Ml8wODA/icon.png?fakeurl=1",desc:"Learn about trees in your fingertips",link:"https://apkcombo.com/es/%E0%A6%AC%E0%A7%83%E0%A6%95%E0%A7%8D%E0%A6%B7-brikkho/org.richit.brikkho/"},{title:"IQQuiz",logo:"https://image.winudf.com/v2/image1/b3JnLnJpY2hpdC5pcXF1aXphcHBfaWNvbl8xNTcxMDE0NzcxXzA2Mg/icon.png?fakeurl=1",desc:"A simple IQ game",link:"https://apkcombo.com/es/iqquiz/org.richit.iqquizapp/"},{title:"BirdsLover",logo:"https://image.winudf.com/v2/image1/b3JnLnJpY2hpdC5iaXJkc2xvdmVyX2ljb25fMTU3MjAwNDIxNl8wOTE/icon.png?fakeurl=1",desc:"Learn about birds in your fingertips",link:"https://apkcombo.com/es/birdslover/org.richit.birdslover/"},{title:"Animal Lover",logo:"https://image.winudf.com/v2/image1/b3JnLnJpY2hpdC5hbmltYWxfaWNvbl8xNTc3MjkyMzIzXzAyMw/icon.png?fakeurl=1",desc:"Learn about birds in your fingertips",link:"https://apkcombo.com/es/animal-lover/org.richit.animal/"},{title:"Jibanananda Recitation (Abritti)",logo:"https://image.winudf.com/v2/image1/b3JnLnJpY2hpdC5qaWJvbmFuZG9rb2JpdGFzb21vZ3JvX2ljb25fMTU3MDEwNDExNF8wNDc/icon.png?fakeurl=1",desc:"50+ poems of Jibanananda Das with audio recitation",link:"https://apkcombo.com/es/jibanananda-recitation-abritti/org.richit.jibonandokobitasomogro/"},{title:"MathLover (Simple, Infinite, Math game)",logo:"https://lh3.googleusercontent.com/GaisH_-MeK2c_ct4kp5qbqxbJPE-q4isTdZswR4CocgB8sLNCFk4beXdlmaaFuveKUwd",desc:"MathLover is a simple, infinite mathematical problem solving game for everyone.",link:"https://apkcombo.com/es/mathlover-simple-infinite-math-game/org.richit.mathblitz/",featured:!0},{title:"Hospitals BD",logo:"https://lh3.googleusercontent.com/MMfY8vG1YfAFh1w6iHEp8NXCwl-NSCUDmfPkUAWmqhSGfO3JR7vBvw_XZzV8JxrDag",desc:"Get nearest Hospital Information in Bangladesh in your fingertips",link:"https://apkcombo.com/es/hospitals-bd/org.richit.contacthospitals/"},{title:"BirthdayBot",logo:h.giftIcon,desc:"Birthday wishing apps, made for individual people...",link:"https://github.com/p32929/my_android_apps/releases/tag/all"}]},{text:"Desktop Apps",arr:[{title:"PotatoTimer",logo:"https://raw.githubusercontent.com/p32929/PotatoTimer/master/resources/icon.ico",desc:"A pomotodo app that forces you to take a break - created using ElectronJS",link:"https://github.com/p32929/Electron-Pomotodo"},{title:"Pomota",logo:"https://github.com/p32929/pomota/blob/master/src-tauri/icons/128x128.png?raw=true",desc:"A simple user-friendly cross-platform tauri based pomodoro timer app that forces you to take a break",link:"https://github.com/p32929/pomota",featured:!0},{title:"google-calender-widget",logo:"https://duckduckgo.com/i/e2d8001c.png",desc:"An unofficial google calendar desktop widget for Windows, Mac and Linux ",link:"https://github.com/p32929/google-calender-widget",featured:!0}]},{text:"Command Line Interfaces ( CLIs )",arr:[{title:"Shortcut-Virus-Remover",logo:"https://cdn-icons-png.flaticon.com/128/3223/3223766.png",desc:"Shortcut virus remover script for Windows",link:"https://github.com/p32929/Shortcut-Virus-Remover",featured:!0},{title:"Fay",logo:"https://crates.io/assets/cargo.png",desc:"A simple cross platform CLI app written in Rust to automate multiple shell ( bash or cmd ) commands",link:"https://crates.io/crates/fay"},{title:"SIIN",logo:"https://crates.io/assets/cargo.png",desc:"A batch installer that downloads and installs a list of apps, written in Rust ( Kinda like Ninite )",link:"https://crates.io/crates/siin"}]},{text:"Libraries / Packages / Crates",arr:[{title:"AndroidEasySQL-Library",logo:"https://www.vectorlogo.zone/logos/android/android-icon.svg",desc:"An Easier & Lazier approach to SQL database for Android",link:"https://github.com/p32929/AndroidEasySQL-Library"},{title:"AndroidAppLockscreen",logo:"https://www.vectorlogo.zone/logos/android/android-icon.svg",desc:"An Easier & Lazier approach to getting runtime permission in Android ",link:"https://github.com/p32929/AndroidAppLockscreen"},{title:"ManufacturerBatteryOptimization",logo:"https://www.vectorlogo.zone/logos/android/android-icon.svg",desc:"Simple helper class for Android Battery Optimization ignoring in some devices",link:"https://gist.github.com/p32929/41e7af650f6a2c11e9306ab600fb9b03"},{title:"MyHouseAdsAndroid",logo:"https://www.vectorlogo.zone/logos/android/android-icon.svg",desc:"A library for cross promoting own apps within own apps - for Android",link:"https://github.com/p32929/MyHouseAdsAndroid"},{title:"HouseAds2",logo:"https://www.vectorlogo.zone/logos/android/android-icon.svg",desc:"A library ( V2 ) for cross promoting own apps within own apps - for Android",link:"https://github.com/p32929/HouseAds2"},{title:"AndroidAppUpdater",logo:"https://www.vectorlogo.zone/logos/android/android-icon.svg",desc:"A simple, Lightweight App Updater Library for Android",link:"https://github.com/p32929/AndroidAppUpdater"},{title:"OfficeAbout",logo:"https://www.vectorlogo.zone/logos/android/android-icon.svg",desc:"A simple about screen library for Android for a Team of people",link:"https://github.com/p32929/OfficeAbout"},{title:"JsonViewerAndroid",logo:"https://www.vectorlogo.zone/logos/android/android-icon.svg",desc:"A simple JSON Viewer for Android"},{title:"Android-Receivers-Library",logo:"https://www.vectorlogo.zone/logos/android/android-icon.svg",desc:"A library for simpler BroadcastReceiver implementations"},{title:"Fay",logo:"https://crates.io/assets/cargo.png",desc:"A simple cross platform CLI app written in Rust to automate multiple shell ( bash or cmd ) commands",link:"https://crates.io/crates/fay"},{title:"fayfetch",logo:"https://avatars.githubusercontent.com/u/6078720?s=200&v=4",desc:"A simple wrapper for Fetch",link:"https://www.npmjs.com/package/fayfetch"},{title:"fjsondb",logo:"https://avatars.githubusercontent.com/u/6078720?s=200&v=4",desc:"A fast and simple JSON database for NodeJS",link:"https://www.npmjs.com/package/fjsondb"},{title:"str_template",logo:"https://avatars.githubusercontent.com/u/6078720?s=200&v=4",desc:"A fast and simple string templating library, written in TypeScript ( Supports both Client side and Server side JavaScript / TypeScript )",link:"https://www.npmjs.com/package/str-template-ts"},{title:"EasiestDB",logo:h.flutterIcon,desc:"The Easiest and the Laziest approach to Flutter SQL Database.",link:"https://pub.dev/packages/easiestdb"},{title:"Simply Wifi",logo:h.flutterIcon,desc:"A simplified version of the wifi_iot package",link:"https://pub.dev/packages/simply_wifi"},{title:"audio_duration",logo:h.flutterIcon,desc:"Just a simple flutter package to get the duration of any audio file ( like: mp3 ) in milliseconds",link:"https://pub.dev/packages/audio_duration"}]},{text:"Extensions / Plugins / Addons",arr:[{title:"vscode-nvim-leave-insertmode",logo:"https://code.visualstudio.com/assets/images/code-stable.png",desc:"This basic VSCode extension ensures that neovim is in normal mode switching between text editor panels.",link:"https://marketplace.visualstudio.com/items?itemName=p32929.vscode-nvim-leave-insertmode"},{title:"one-console-log",logo:"https://code.visualstudio.com/assets/images/code-stable.png",desc:"A modified version of the turbo-console-log that adds only one line of console instead of multiples.",link:"https://marketplace.visualstudio.com/items?itemName=p32929.one-console-log",featured:!0}]}],u.contacts=[{text:"Contact me",arr:[{title:"WhatsApp ( Recommended )",logo:"https://user-images.githubusercontent.com/6418354/155842184-b064bf36-de8e-4317-8f8e-cb7755eed995.png",link:"https://api.whatsapp.com/send?phone=8801796306262",desc:"+8801796306262"},{title:"Facebook",logo:"https://user-images.githubusercontent.com/6418354/155840898-9e2327aa-a280-45e3-8266-8268242abda4.png",link:"https://www.facebook.com/p32929"},{title:"Email",logo:"https://cdn3d.iconscout.com/3d/premium/thumb/email-address-4437044-3684811.png",desc:"p32929.ceo@gmail.com",link:"mailto:p32929.ceo@gmail.com"},{title:"Download Resume",logo:"https://cdn3d.iconscout.com/3d/premium/thumb/cv-6617242-5501765.png?f=webp",link:"https://docs.google.com/document/d/1W5U6FuZVPI6kfSDzjc5mJ0vEfey8tvxnb48tEku17lI/edit?usp=sharing"}]},{text:"Others",arr:[{title:"Anywhere on the internet",logo:"https://user-images.githubusercontent.com/6418354/155840900-91ac076a-8d2b-45dc-b346-66f72d376d4b.png",desc:"@p32929"},{title:"GitHub",logo:"https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png",link:"https://github.com/p32929/"},{title:"LinkedIn",logo:"https://user-images.githubusercontent.com/6418354/155841027-8698cb12-7ddd-4604-a4ea-c618ddbc1cd8.png",link:"https://www.linkedin.com/in/p32929/"},{title:"Twitter",logo:"https://user-images.githubusercontent.com/6418354/155841031-532d5d6e-797a-4da1-8064-48d266b69ab2.png",link:"https://twitter.com/p32929"},{title:"Instagram",logo:"https://user-images.githubusercontent.com/6418354/155841023-0b842621-56a3-42ec-81f1-3944034b09c7.png",link:"https://www.instagram.com/p32929/"},{title:"Fiverr",logo:"https://99designs-blog.imgix.net/blog/wp-content/uploads/2018/09/fiverr-2018.png?auto=format&q=60&fit=max&w=200",link:"https://www.fiverr.com/users/fayazbinsalam/"},{title:"Upwork",logo:"https://cdn.worldvectorlogo.com/logos/upwork.svg",link:"https://www.upwork.com/freelancers/~017dbf657b99b0c1c1"},{title:"Medium",logo:"https://seeklogo.com/images/M/medium-logo-93CDCF6451-seeklogo.com.png",link:"https://medium.com/@p32929_77176"},{title:"xda",logo:"https://www.svgrepo.com/show/331651/xda-developers.svg",link:"https://forum.xda-developers.com/m/p32929.5346826/"},{title:"Product Hunt",logo:"https://seeklogo.com/images/P/product-hunt-logo-A144953C4C-seeklogo.com.png?v=637846885100000000",link:"https://www.producthunt.com/@p32929"},{title:"UVA Online Judge",logo:"https://uhunt.onlinejudge.org/images/uva.png",link:"https://uhunt.onlinejudge.org/id/590978"},{title:"URI Online Judge",logo:"https://user-images.githubusercontent.com/26368939/110052090-be0a0b00-7d35-11eb-8827-993190a9568e.png",link:"https://www.beecrowd.com.br/judge/en/profile/76542"},{title:"Buy Me a Coffee",logo:"https://www.buymeacoffee.com/assets/img/guidelines/logo-mark-1.svg",link:"https://www.buymeacoffee.com/p32929"},{title:"Skype",logo:"https://user-images.githubusercontent.com/6418354/155840899-62c1fe8e-66a6-4492-9acc-5bd504ac21ef.png",desc:"p32929",link:"skype:p32929?chat"}]},{text:"Thank you for visiting my portfolio",arr:[{title:"Click on the link button",desc:"To create your own portfolio. It will only take around 3 minutes",logo:h.giftIcon,link:"https://github.com/p32929/p32929.github.io/"}]}];const b={primaryColor:u.primaryColor,isLeftShowing:!0,isColorPickerDialogShowing:!1,isMenuClicked:!1},w=(t,e)=>{let{state:o}=t;o.primaryColor=e},f=(t,e)=>{let{state:o}=t;o.isLeftShowing=e},v=(t,e)=>{let{state:o}=t;o.isColorPickerDialogShowing=e},C=(t,e)=>{let{state:o}=t;o.isMenuClicked=e},k={state:b,actions:i},j=Object(c.c)(),x=Object(c.b)();var y=o(138),A=o(74);const O=Object(y.a)({palette:{primary:{main:"#556cd6"},secondary:{main:"#19857b"},error:{main:A.a.A400},background:{default:"#fff"},action:{disabled:"#212121"}},overrides:{MuiAvatar:{img:{objectFit:"contain"}}}});var L=o(285),z=o(286),S=o(292),M=o(296),I=o(287),N=o(3);const _=Object(L.a)((t=>({avatar:{height:125,width:125},title:{color:"#212121",marginTop:24,fontSize:14,fontWeight:600},subtitle:{fontSize:12,color:"#212121",fontWeight:600}})));var T=t=>{var e;const{}=x(),{}=j(),o=_();return Object(N.jsxs)(z.a,{item:!0,xs:!0,container:!0,direction:"column",justifyContent:"center",alignItems:"center",children:[Object(N.jsx)(M.a,{alt:u.myName+" - "+u.myOccupation,src:null!==(e=u.myLeftAvatarImage)&&void 0!==e?e:m.avatar,className:o.avatar}),Object(N.jsx)(I.a,{className:o.title,children:u.myName.toUpperCase()}),Object(N.jsx)(I.a,{className:o.subtitle,children:u.myOccupation})]})},F=o(297),B=o(289),D=o(290),E=o(291),P=o(53);const H=Object(L.a)((t=>({})));var J=t=>{const{}=x(),{primaryColor:e}=j(),{path:o,size:i,styles:s}=(H(),t);return Object(N.jsx)("svg",{style:{width:i,height:i,...s},viewBox:"0 0 24 24",children:Object(N.jsx)("path",{fill:e,d:o})})},V=o(36),R=o(288);class W{}W.routes=["About","Skills","Works","Contact"];const U=Object(L.a)((t=>({link:{marginLeft:8,marginRight:8,textDecoration:"none"},divider:{height:1,margin:16,width:90,alignSelf:"center"}})));var q=t=>{const{showLeftPart:e}=x(),{primaryColor:o}=j(),i=U(),s=Object(V.a)(),a=Object(R.a)(s.breakpoints.down("sm"));return Object(N.jsxs)(z.a,{container:!0,item:!0,xs:!0,direction:"column",justifyContent:"center",alignContent:"stretch",children:[Object(N.jsx)(F.a,{mdUp:!0,children:Object(N.jsx)(B.a,{size:"small",onClick:()=>{e(!1)},children:Object(N.jsx)(J,{size:18,path:d.close})})}),Object(N.jsx)(D.a,{style:{backgroundColor:o},className:i.divider,orientation:"horizontal",flexItem:!0}),W.routes.map(((t,s)=>Object(N.jsx)(E.a,{activeStyle:{backgroundColor:o,color:"white"},className:i.link,onClick:()=>{a&&e(!1)},size:"small",component:P.a,to:t.toLowerCase(),children:t},s))),Object(N.jsx)(D.a,{style:{backgroundColor:o},className:i.divider,orientation:"horizontal",flexItem:!0})]})};const Z=Object(L.a)((t=>({root:{paddingBottom:8,width:"100%"},iconButton:{margin:3}})));var G=t=>{const{}=x(),{}=j(),e=Z();return Object(N.jsx)(z.a,{container:!0,className:e.root,direction:"row",justifyContent:"center",alignItems:"center",alignContent:"center",children:u.bottomLinks.map(((t,o)=>Object(N.jsx)(B.a,{className:e.iconButton,size:"small",target:"_blank",href:t.link,children:Object(N.jsx)(J,{path:t.svgPath,size:18})},o)))})};const Y=Object(L.a)((t=>({root:{height:"100%",width:"100%",margin:0,padding:0}})));var Q=t=>{const{}=x(),{}=j(),e=Y();return Object(N.jsx)(z.a,{container:!0,direction:"column",item:!0,xs:11,sm:11,md:3,lg:3,xl:2,children:Object(N.jsx)(S.a,{elevation:12,className:e.root,children:Object(N.jsxs)(z.a,{className:e.root,container:!0,direction:"column",justifyContent:"space-around",alignContent:"center",alignItems:"center",children:[Object(N.jsx)(T,{}),Object(N.jsx)(q,{}),Object(N.jsx)(G,{})]})})})};class X{}X.getHeightWidthWeb=()=>(console.debug("Web"),{width:"calc(100% - 316px)",height:"calc(100% - 168px)"}),X.getHeightWidthMobile=()=>(console.debug("Mobile"),{width:"calc(100% - 48px)",height:"calc(100% - 48px)"});var K=o(14);const $=Object(L.a)((t=>(t=>({root:{padding:16},divider:{height:1,marginTop:8,[t.breakpoints.down("sm")]:{width:160},[t.breakpoints.up("md")]:{width:200}},currentRoute:{fontSize:14,fontWeight:600,cursor:"none"}}))(t)));var tt=t=>{const{showLeftPart:e,setMenuClicked:o}=x();let i=Object(K.h)();const{primaryColor:s,isMenuClicked:a}=j(),n=$();return Object(N.jsxs)(z.a,{item:!0,xs:8,direction:"column",container:!0,justifyContent:"center",children:[Object(N.jsxs)(z.a,{item:!0,xs:!0,children:[Object(N.jsx)(F.a,{mdUp:!0,children:Object(N.jsx)(B.a,{size:"small",onClick:()=>{e(!0),o(!0)},children:Object(N.jsx)("div",{className:!0===a?"":"bounce",children:Object(N.jsx)(J,{path:d.menu,styles:{padding:8},size:20})})})}),Object(N.jsx)(E.a,{variant:"text",disabled:!0,className:n.currentRoute,children:i.pathname.replace("/","")})]}),Object(N.jsx)(z.a,{item:!0,xs:!0,children:Object(N.jsx)(D.a,{style:{backgroundColor:s},className:n.divider,orientation:"horizontal",flexItem:!0})})]})};const et=Object(L.a)((t=>({iconButton:{padding:8}})));var ot=t=>{const{setPrimaryColor:e,showColorPickerDialog:o}=x(),{}=j();et();return Object(N.jsxs)(z.a,{container:!0,direction:"row",justifyContent:"flex-end",item:!0,xs:4,children:[Object(N.jsx)(B.a,{size:"small",target:"_blank",href:"https://github.com/p32929/p32929.github.io/",children:Object(N.jsx)(J,{styles:{padding:8},path:d.githubIcon,size:20})}),Object(N.jsx)(B.a,{size:"small",onClick:()=>{o(!0)},children:Object(N.jsx)(J,{styles:{padding:8},path:d.palette,size:20})})]})};const it=Object(L.a)((t=>({root:{marginLeft:8},text:{marginLeft:8,marginRight:8,fontSize:12,fontWeight:600,color:"#757575"}})));var st=t=>{const{}=x(),{}=j(),{title:e,fontStyle:o}=t,i=it();return Object(N.jsxs)(z.a,{container:!0,direction:"row",alignItems:"center",alignContent:"center",className:i.root,children:[Object(N.jsx)(J,{size:20,path:d.star}),Object(N.jsx)(I.a,{variant:"body2",style:o,className:i.text,children:e})]})};const at=t=>{const{}=x(),{url:e}=t;return e&&(()=>{const e=["http","skype:","mailto:"];for(var o=0;o{t.stopPropagation()},target:"_blank",href:e,size:"small",children:Object(N.jsx)(J,{path:d.linkIcon,styles:{padding:8},size:22})})}):Object(N.jsx)(N.Fragment,{})},nt=Object(L.a)((t=>({root:{padding:2},textContainer:{paddingTop:16,paddingBottom:16,overflow:"hidden",alignSelf:"center"},avatar:{margin:16},title:{color:"#212121",lineHeight:1.25},desc:{color:"#757575",lineHeight:1.25,overflow:"hidden"}})));var lt=t=>{const{}=x(),{}=j(),e=nt(),{item:o}=t,{logo:i,title:s,desc:a,link:n}=o;return Object(N.jsx)(z.a,{container:!0,item:!0,xs:12,sm:12,md:6,lg:6,xl:4,className:e.root,children:Object(N.jsx)(S.a,{elevation:4,style:{width:"100%"},onClick:()=>{},children:Object(N.jsxs)(z.a,{container:!0,direction:"row",children:[Object(N.jsx)(M.a,{variant:"square",className:e.avatar,src:i}),Object(N.jsxs)(z.a,{container:!0,direction:"column",item:!0,xs:!0,className:e.textContainer,children:[Object(N.jsx)(I.a,{variant:"body1",className:e.title,children:s}),(a||n)&&Object(N.jsx)(I.a,{variant:"body2",className:e.desc,children:a||n})]}),Object(N.jsx)(at,{url:n})]})})})};const rt=Object(L.a)((t=>({root:{marginTop:4,marginLeft:8,marginBottom:16},itemRoot:{marginTop:8}})));var ct=t=>{const{}=x(),{}=j(),{item:e}=t,{text:o,arr:i}=e,s=rt();return Object(N.jsxs)(z.a,{container:!0,direction:"column",className:s.root,children:[Object(N.jsx)(st,{title:o}),Object(N.jsx)(z.a,{container:!0,direction:"row",className:s.itemRoot,children:i.sort(((t,e)=>t.title.localeCompare(e.title))).map(((t,e)=>Object(N.jsx)(lt,{item:t},e)))})]})};const gt=Object(L.a)((t=>({})));var pt=t=>{const{}=x(),{}=j(),[e,o]=Object(s.useState)([]);gt();Object(s.useEffect)((()=>{(()=>{const t={text:"Featured",arr:[]};for(var e=0;ee.length>0?e:u.works;return Object(N.jsx)(z.a,{container:!0,xs:12,item:!0,direction:"column",children:i().map(((t,e)=>Object(N.jsx)(ct,{item:t},e)))})};const dt=Object(L.a)((t=>({})));var mt=t=>{const{}=x(),{}=j();dt();return Object(N.jsx)(z.a,{container:!0,xs:12,item:!0,direction:"column",children:u.contacts.map(((t,e)=>Object(N.jsx)(ct,{item:t},e)))})};const ht=Object(L.a)((t=>({})));var ut=t=>{const{}=x(),{}=j();ht();return Object(N.jsx)(z.a,{container:!0,xs:12,item:!0,direction:"column",children:u.skills.map(((t,e)=>Object(N.jsx)(ct,{item:t},e)))})};const bt={height:"95%"},wt={height:"75%"},ft=Object(L.a)((t=>(t=>({root:{padding:8},text:{paddingLeft:8,paddingBottom:8,lineHeight:1.3,fontWeight:400,[t.breakpoints.up("xl")]:{fontSize:18},[t.breakpoints.down("sm")]:{fontSize:14}}}))(t)));const vt=[t=>{var e;const{}=x(),{}=j(),o=ft(),i=Object(V.a)(),s=Object(R.a)(i.breakpoints.down("sm"));return Object(N.jsxs)(z.a,{className:o.root,container:!0,item:!0,xs:12,direction:"column",justifyContent:"flex-end",alignItems:"center",alignContent:"center",children:[Object(N.jsx)(z.a,{style:{height:0,padding:4},id:"avatarImageGrid",item:!0,xs:!0,container:!0,justifyContent:"center",alignItems:"center",alignContent:"center",children:Object(N.jsx)("img",{style:s?wt:bt,src:null!==(e=u.myRightAvatarImage)&&void 0!==e?e:m.avatar_with_laptop})}),Object(N.jsxs)(z.a,{item:!0,container:!0,direction:"column",children:[Object(N.jsx)(st,{title:"About me",fontStyle:{fontSize:20,fontWeight:"bold",color:"#212121"}}),Object(N.jsx)(I.a,{className:o.text,children:u.myDetails})]})]})},ut,pt,mt],Ct=Object(L.a)((t=>({root:{padding:16},content:{paddingRight:8,maxHeight:"100vh",maxWidth:"100%"}})));var kt=t=>{const{}=x(),{isLeftShowing:e}=j(),o=Ct(),[i,a]=Object(s.useState)(0),n=Object(V.a)(),l=Object(R.a)(n.breakpoints.down("sm"));let r=Object(K.h)();return Object(s.useEffect)((()=>{const t=document.getElementById("container"),e=document.getElementById("right-top");document.getElementById("right-bottom");if(t&&e){const o=(null===t||void 0===t?void 0:t.offsetHeight)-(null===e||void 0===e?void 0:e.offsetHeight);console.log("Height: "+o),a(o)}}),[e,l]),Object(s.useEffect)((()=>{var t,e;null===(t=document)||void 0===t||null===(e=t.getElementById("right-bottom"))||void 0===e||e.scroll(0,0)}),[r]),Object(N.jsxs)(z.a,{id:"right-container",container:!0,xs:!0,item:!0,direction:"row",alignContent:"flex-start",children:[Object(N.jsxs)(z.a,{id:"right-top",container:!0,direction:"row",className:o.root,justifyContent:"space-between",alignItems:"flex-start",alignContent:"flex-start",children:[Object(N.jsx)(tt,{}),Object(N.jsx)(ot,{})]}),Object(N.jsx)(z.a,{id:"right-bottom",style:{height:i,maxHeight:i,overflowY:"scroll",overflowX:"hidden"},item:!0,xs:12,container:!0,className:o.content,children:Object(N.jsx)(K.e,{children:W.routes.map(((t,e)=>Object(N.jsx)(K.c,{exact:!0,path:"/".concat(t.toLowerCase()),component:vt[e]},e)))})})]})},jt=o(295),xt=o(293),yt=o(137);const At=Object(L.a)((t=>({})));var Ot=t=>{const{setPrimaryColor:e,showColorPickerDialog:o}=x(),{primaryColor:i,isColorPickerDialogShowing:s}=j();At();return Object(N.jsx)(jt.a,{open:s,onClose:()=>{o(!1)},children:Object(N.jsx)(xt.a,{children:Object(N.jsx)(yt.a,{color:i,onChange:(t,i)=>{e(t.hex),o(!1)},colors:u.otherColors})})})};const Lt=Object(L.a)((t=>(t=>({root:{height:"100vh",maxHeight:"100vh"},content:{height:"100%",width:"100%"},paper:{[t.breakpoints.down("sm")]:X.getHeightWidthMobile(),[t.breakpoints.up("md")]:X.getHeightWidthWeb()}}))(t)));var zt=!1;var St=t=>{const{showLeftPart:e}=x(),{primaryColor:o,isLeftShowing:i}=j(),s=Lt(),a=Object(V.a)(),n=Object(R.a)(a.breakpoints.down("sm"));n&&(zt||setTimeout((()=>{e(!1),zt=!0}),700));return Object(N.jsxs)(z.a,{container:!0,className:s.root,justifyContent:"center",alignContent:"center",alignItems:"center",direction:"column",style:{backgroundColor:o},children:[Object(N.jsx)(Ot,{}),Object(N.jsx)(S.a,{id:"container",className:s.paper,elevation:16,children:Object(N.jsxs)(K.a,{children:[Object(N.jsx)(K.c,{exact:!0,path:"/",children:Object(N.jsx)(K.b,{to:"/about"})}),Object(N.jsxs)(z.a,{container:!0,direction:"row",className:s.content,children:[n?i?Object(N.jsx)(Q,{}):void 0:Object(N.jsx)(Q,{}),n&&i?void 0:Object(N.jsx)(kt,{})]})]})})]})};const Mt=Object(p.d)(k);l.a.render(Object(N.jsx)(a.a.StrictMode,{children:Object(N.jsx)(c.a,{value:Mt,children:Object(N.jsx)(g.a,{theme:O,children:Object(N.jsx)(St,{})})})}),document.getElementById("root")),r(),document.title=u.myName}},[[261,1,2]]]); -//# sourceMappingURL=main.c28d4232.chunk.js.map \ No newline at end of file +(this["webpackJsonpp32929-fayaz-bin-salam"]=this["webpackJsonpp32929-fayaz-bin-salam"]||[]).push([[0],{149:function(t,e,o){},261:function(t,e,o){"use strict";o.r(e);var i={};o.r(i),o.d(i,"setPrimaryColor",(function(){return w})),o.d(i,"showLeftPart",(function(){return f})),o.d(i,"showColorPickerDialog",(function(){return v})),o.d(i,"setMenuClicked",(function(){return C}));var s=o(0),a=o.n(s),n=o(17),l=o.n(n);o(149);var c=t=>{t&&t instanceof Function&&o.e(3).then(o.bind(null,298)).then((e=>{let{getCLS:o,getFID:i,getFCP:s,getLCP:a,getTTFB:n}=e;o(t),i(t),s(t),a(t),n(t)}))},r=o(54),g=o(294),p=o(32);class d{}d.githubIcon="M12,2A10,10 0 0,0 2,12C2,16.42 4.87,20.17 8.84,21.5C9.34,21.58 9.5,21.27 9.5,21C9.5,20.77 9.5,20.14 9.5,19.31C6.73,19.91 6.14,17.97 6.14,17.97C5.68,16.81 5.03,16.5 5.03,16.5C4.12,15.88 5.1,15.9 5.1,15.9C6.1,15.97 6.63,16.93 6.63,16.93C7.5,18.45 8.97,18 9.54,17.76C9.63,17.11 9.89,16.67 10.17,16.42C7.95,16.17 5.62,15.31 5.62,11.5C5.62,10.39 6,9.5 6.65,8.79C6.55,8.54 6.2,7.5 6.75,6.15C6.75,6.15 7.59,5.88 9.5,7.17C10.29,6.95 11.15,6.84 12,6.84C12.85,6.84 13.71,6.95 14.5,7.17C16.41,5.88 17.25,6.15 17.25,6.15C17.8,7.5 17.45,8.54 17.35,8.79C18,9.5 18.38,10.39 18.38,11.5C18.38,15.32 16.04,16.16 13.81,16.41C14.17,16.72 14.5,17.33 14.5,18.26C14.5,19.6 14.5,20.68 14.5,21C14.5,21.27 14.66,21.59 15.17,21.5C19.14,20.16 22,16.42 22,12A10,10 0 0,0 12,2Z",d.facebookIcon="M12 2.04C6.5 2.04 2 6.53 2 12.06C2 17.06 5.66 21.21 10.44 21.96V14.96H7.9V12.06H10.44V9.85C10.44 7.34 11.93 5.96 14.22 5.96C15.31 5.96 16.45 6.15 16.45 6.15V8.62H15.19C13.95 8.62 13.56 9.39 13.56 10.18V12.06H16.34L15.89 14.96H13.56V21.96A10 10 0 0 0 22 12.06C22 6.53 17.5 2.04 12 2.04Z",d.whatsappIcon="M12.04 2C6.58 2 2.13 6.45 2.13 11.91C2.13 13.66 2.59 15.36 3.45 16.86L2.05 22L7.3 20.62C8.75 21.41 10.38 21.83 12.04 21.83C17.5 21.83 21.95 17.38 21.95 11.92C21.95 9.27 20.92 6.78 19.05 4.91C17.18 3.03 14.69 2 12.04 2M12.05 3.67C14.25 3.67 16.31 4.53 17.87 6.09C19.42 7.65 20.28 9.72 20.28 11.92C20.28 16.46 16.58 20.15 12.04 20.15C10.56 20.15 9.11 19.76 7.85 19L7.55 18.83L4.43 19.65L5.26 16.61L5.06 16.29C4.24 15 3.8 13.47 3.8 11.91C3.81 7.37 7.5 3.67 12.05 3.67M8.53 7.33C8.37 7.33 8.1 7.39 7.87 7.64C7.65 7.89 7 8.5 7 9.71C7 10.93 7.89 12.1 8 12.27C8.14 12.44 9.76 14.94 12.25 16C12.84 16.27 13.3 16.42 13.66 16.53C14.25 16.72 14.79 16.69 15.22 16.63C15.7 16.56 16.68 16.03 16.89 15.45C17.1 14.87 17.1 14.38 17.04 14.27C16.97 14.17 16.81 14.11 16.56 14C16.31 13.86 15.09 13.26 14.87 13.18C14.64 13.1 14.5 13.06 14.31 13.3C14.15 13.55 13.67 14.11 13.53 14.27C13.38 14.44 13.24 14.46 13 14.34C12.74 14.21 11.94 13.95 11 13.11C10.26 12.45 9.77 11.64 9.62 11.39C9.5 11.15 9.61 11 9.73 10.89C9.84 10.78 10 10.6 10.1 10.45C10.23 10.31 10.27 10.2 10.35 10.04C10.43 9.87 10.39 9.73 10.33 9.61C10.27 9.5 9.77 8.26 9.56 7.77C9.36 7.29 9.16 7.35 9 7.34C8.86 7.34 8.7 7.33 8.53 7.33Z",d.wordpressIcon="M3.42,12C3.42,10.76 3.69,9.58 4.16,8.5L8.26,19.72C5.39,18.33 3.42,15.4 3.42,12M17.79,11.57C17.79,12.3 17.5,13.15 17.14,14.34L16.28,17.2L13.18,8L14.16,7.9C14.63,7.84 14.57,7.16 14.11,7.19C14.11,7.19 12.72,7.3 11.82,7.3L9.56,7.19C9.1,7.16 9.05,7.87 9.5,7.9L10.41,8L11.75,11.64L9.87,17.27L6.74,8L7.73,7.9C8.19,7.84 8.13,7.16 7.67,7.19C7.67,7.19 6.28,7.3 5.38,7.3L4.83,7.29C6.37,4.96 9,3.42 12,3.42C14.23,3.42 16.27,4.28 17.79,5.67H17.68C16.84,5.67 16.24,6.4 16.24,7.19C16.24,7.9 16.65,8.5 17.08,9.2C17.41,9.77 17.79,10.5 17.79,11.57M12.15,12.75L14.79,19.97L14.85,20.09C13.96,20.41 13,20.58 12,20.58C11.16,20.58 10.35,20.46 9.58,20.23L12.15,12.75M19.53,7.88C20.2,9.11 20.58,10.5 20.58,12C20.58,15.16 18.86,17.93 16.31,19.41L18.93,11.84C19.42,10.62 19.59,9.64 19.59,8.77L19.53,7.88M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,21.54C17.26,21.54 21.54,17.26 21.54,12C21.54,6.74 17.26,2.46 12,2.46C6.74,2.46 2.46,6.74 2.46,12C2.46,17.26 6.74,21.54 12,21.54Z",d.skypeIcon="M18,6C20.07,8.04 20.85,10.89 20.36,13.55C20.77,14.27 21,15.11 21,16A5,5 0 0,1 16,21C15.11,21 14.27,20.77 13.55,20.36C10.89,20.85 8.04,20.07 6,18C3.93,15.96 3.15,13.11 3.64,10.45C3.23,9.73 3,8.89 3,8A5,5 0 0,1 8,3C8.89,3 9.73,3.23 10.45,3.64C13.11,3.15 15.96,3.93 18,6M12.04,17.16C14.91,17.16 16.34,15.78 16.34,13.92C16.34,12.73 15.78,11.46 13.61,10.97L11.62,10.53C10.86,10.36 10,10.13 10,9.42C10,8.7 10.6,8.2 11.7,8.2C13.93,8.2 13.72,9.73 14.83,9.73C15.41,9.73 15.91,9.39 15.91,8.8C15.91,7.43 13.72,6.4 11.86,6.4C9.85,6.4 7.7,7.26 7.7,9.54C7.7,10.64 8.09,11.81 10.25,12.35L12.94,13.03C13.75,13.23 13.95,13.68 13.95,14.1C13.95,14.78 13.27,15.45 12.04,15.45C9.63,15.45 9.96,13.6 8.67,13.6C8.09,13.6 7.67,14 7.67,14.57C7.67,15.68 9,17.16 12.04,17.16Z",d.emailIcon="M12,15C12.81,15 13.5,14.7 14.11,14.11C14.7,13.5 15,12.81 15,12C15,11.19 14.7,10.5 14.11,9.89C13.5,9.3 12.81,9 12,9C11.19,9 10.5,9.3 9.89,9.89C9.3,10.5 9,11.19 9,12C9,12.81 9.3,13.5 9.89,14.11C10.5,14.7 11.19,15 12,15M12,2C14.75,2 17.1,3 19.05,4.95C21,6.9 22,9.25 22,12V13.45C22,14.45 21.65,15.3 21,16C20.3,16.67 19.5,17 18.5,17C17.3,17 16.31,16.5 15.56,15.5C14.56,16.5 13.38,17 12,17C10.63,17 9.45,16.5 8.46,15.54C7.5,14.55 7,13.38 7,12C7,10.63 7.5,9.45 8.46,8.46C9.45,7.5 10.63,7 12,7C13.38,7 14.55,7.5 15.54,8.46C16.5,9.45 17,10.63 17,12V13.45C17,13.86 17.16,14.22 17.46,14.53C17.76,14.84 18.11,15 18.5,15C18.92,15 19.27,14.84 19.57,14.53C19.87,14.22 20,13.86 20,13.45V12C20,9.81 19.23,7.93 17.65,6.35C16.07,4.77 14.19,4 12,4C9.81,4 7.93,4.77 6.35,6.35C4.77,7.93 4,9.81 4,12C4,14.19 4.77,16.07 6.35,17.65C7.93,19.23 9.81,20 12,20H17V22H12C9.25,22 6.9,21 4.95,19.05C3,17.1 2,14.75 2,12C2,9.25 3,6.9 4.95,4.95C6.9,3 9.25,2 12,2Z",d.downloadIcon="M14,2L20,8V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2H14M18,20V9H13V4H6V20H18M12,19L8,15H10.5V12H13.5V15H16L12,19Z",d.buymeacoffee="M20.216 6.415l-.132-.666c-.119-.598-.388-1.163-1.001-1.379-.197-.069-.42-.098-.57-.241-.152-.143-.196-.366-.231-.572-.065-.378-.125-.756-.192-1.133-.057-.325-.102-.69-.25-.987-.195-.4-.597-.634-.996-.788a5.723 5.723 0 00-.626-.194c-1-.263-2.05-.36-3.077-.416a25.834 25.834 0 00-3.7.062c-.915.083-1.88.184-2.75.5-.318.116-.646.256-.888.501-.297.302-.393.77-.177 1.146.154.267.415.456.692.58.36.162.737.284 1.123.366 1.075.238 2.189.331 3.287.37 1.218.05 2.437.01 3.65-.118.299-.033.598-.073.896-.119.352-.054.578-.513.474-.834-.124-.383-.457-.531-.834-.473-.466.074-.96.108-1.382.146-1.177.08-2.358.082-3.536.006a22.228 22.228 0 01-1.157-.107c-.086-.01-.18-.025-.258-.036-.243-.036-.484-.08-.724-.13-.111-.027-.111-.185 0-.212h.005c.277-.06.557-.108.838-.147h.002c.131-.009.263-.032.394-.048a25.076 25.076 0 013.426-.12c.674.019 1.347.067 2.017.144l.228.031c.267.04.533.088.798.145.392.085.895.113 1.07.542.055.137.08.288.111.431l.319 1.484a.237.237 0 01-.199.284h-.003c-.037.006-.075.01-.112.015a36.704 36.704 0 01-4.743.295 37.059 37.059 0 01-4.699-.304c-.14-.017-.293-.042-.417-.06-.326-.048-.649-.108-.973-.161-.393-.065-.768-.032-1.123.161-.29.16-.527.404-.675.701-.154.316-.199.66-.267 1-.069.34-.176.707-.135 1.056.087.753.613 1.365 1.37 1.502a39.69 39.69 0 0011.343.376.483.483 0 01.535.53l-.071.697-1.018 9.907c-.041.41-.047.832-.125 1.237-.122.637-.553 1.028-1.182 1.171-.577.131-1.165.2-1.756.205-.656.004-1.31-.025-1.966-.022-.699.004-1.556-.06-2.095-.58-.475-.458-.54-1.174-.605-1.793l-.731-7.013-.322-3.094c-.037-.351-.286-.695-.678-.678-.336.015-.718.3-.678.679l.228 2.185.949 9.112c.147 1.344 1.174 2.068 2.446 2.272.742.12 1.503.144 2.257.156.966.016 1.942.053 2.892-.122 1.408-.258 2.465-1.198 2.616-2.657.34-3.332.683-6.663 1.024-9.995l.215-2.087a.484.484 0 01.39-.426c.402-.078.787-.212 1.074-.518.455-.488.546-1.124.385-1.766zm-1.478.772c-.145.137-.363.201-.578.233-2.416.359-4.866.54-7.308.46-1.748-.06-3.477-.254-5.207-.498-.17-.024-.353-.055-.47-.18-.22-.236-.111-.71-.054-.995.052-.26.152-.609.463-.646.484-.057 1.046.148 1.526.22.577.088 1.156.159 1.737.212 2.48.226 5.002.19 7.472-.14.45-.06.899-.13 1.345-.21.399-.072.84-.206 1.08.206.166.281.188.657.162.974a.544.544 0 01-.169.364zm-6.159 3.9c-.862.37-1.84.788-3.109.788a5.884 5.884 0 01-1.569-.217l.877 9.004c.065.78.717 1.38 1.5 1.38 0 0 1.243.065 1.658.065.447 0 1.786-.065 1.786-.065.783 0 1.434-.6 1.499-1.38l.94-9.95a3.996 3.996 0 00-1.322-.238c-.826 0-1.491.284-2.26.613z",d.linkIcon="M10.59,13.41C11,13.8 11,14.44 10.59,14.83C10.2,15.22 9.56,15.22 9.17,14.83C7.22,12.88 7.22,9.71 9.17,7.76V7.76L12.71,4.22C14.66,2.27 17.83,2.27 19.78,4.22C21.73,6.17 21.73,9.34 19.78,11.29L18.29,12.78C18.3,11.96 18.17,11.14 17.89,10.36L18.36,9.88C19.54,8.71 19.54,6.81 18.36,5.64C17.19,4.46 15.29,4.46 14.12,5.64L10.59,9.17C9.41,10.34 9.41,12.24 10.59,13.41M13.41,9.17C13.8,8.78 14.44,8.78 14.83,9.17C16.78,11.12 16.78,14.29 14.83,16.24V16.24L11.29,19.78C9.34,21.73 6.17,21.73 4.22,19.78C2.27,17.83 2.27,14.66 4.22,12.71L5.71,11.22C5.7,12.04 5.83,12.86 6.11,13.65L5.64,14.12C4.46,15.29 4.46,17.19 5.64,18.36C6.81,19.54 8.71,19.54 9.88,18.36L13.41,14.83C14.59,13.66 14.59,11.76 13.41,10.59C13,10.2 13,9.56 13.41,9.17Z",d.close="M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z",d.fork="M6,2A3,3 0 0,1 9,5C9,6.28 8.19,7.38 7.06,7.81C7.15,8.27 7.39,8.83 8,9.63C9,10.92 11,12.83 12,14.17C13,12.83 15,10.92 16,9.63C16.61,8.83 16.85,8.27 16.94,7.81C15.81,7.38 15,6.28 15,5A3,3 0 0,1 18,2A3,3 0 0,1 21,5C21,6.32 20.14,7.45 18.95,7.85C18.87,8.37 18.64,9 18,9.83C17,11.17 15,13.08 14,14.38C13.39,15.17 13.15,15.73 13.06,16.19C14.19,16.62 15,17.72 15,19A3,3 0 0,1 12,22A3,3 0 0,1 9,19C9,17.72 9.81,16.62 10.94,16.19C10.85,15.73 10.61,15.17 10,14.38C9,13.08 7,11.17 6,9.83C5.36,9 5.13,8.37 5.05,7.85C3.86,7.45 3,6.32 3,5A3,3 0 0,1 6,2M6,4A1,1 0 0,0 5,5A1,1 0 0,0 6,6A1,1 0 0,0 7,5A1,1 0 0,0 6,4M18,4A1,1 0 0,0 17,5A1,1 0 0,0 18,6A1,1 0 0,0 19,5A1,1 0 0,0 18,4M12,18A1,1 0 0,0 11,19A1,1 0 0,0 12,20A1,1 0 0,0 13,19A1,1 0 0,0 12,18Z",d.menu="M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z",d.star="M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z",d.palette="M17.5,12A1.5,1.5 0 0,1 16,10.5A1.5,1.5 0 0,1 17.5,9A1.5,1.5 0 0,1 19,10.5A1.5,1.5 0 0,1 17.5,12M14.5,8A1.5,1.5 0 0,1 13,6.5A1.5,1.5 0 0,1 14.5,5A1.5,1.5 0 0,1 16,6.5A1.5,1.5 0 0,1 14.5,8M9.5,8A1.5,1.5 0 0,1 8,6.5A1.5,1.5 0 0,1 9.5,5A1.5,1.5 0 0,1 11,6.5A1.5,1.5 0 0,1 9.5,8M6.5,12A1.5,1.5 0 0,1 5,10.5A1.5,1.5 0 0,1 6.5,9A1.5,1.5 0 0,1 8,10.5A1.5,1.5 0 0,1 6.5,12M12,3A9,9 0 0,0 3,12A9,9 0 0,0 12,21A1.5,1.5 0 0,0 13.5,19.5C13.5,19.11 13.35,18.76 13.11,18.5C12.88,18.23 12.73,17.88 12.73,17.5A1.5,1.5 0 0,1 14.23,16H16A5,5 0 0,0 21,11C21,6.58 16.97,3 12,3Z",d.circle="M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z";class m{}m.avatar="/avatar.png",m.avatar_with_laptop="/avatar2.png";class h{}h.giftIcon="https://user-images.githubusercontent.com/6418354/155841091-9bdc3b05-fabd-4e58-a0fd-fe90b08275e4.png",h.flutterIcon="https://www.vectorlogo.zone/logos/flutterio/flutterio-icon.svg";class u{}u.primaryColor="#00C853",u.otherColors=["#D50000","#C51162","#AA00FF","#6200EA","#304FFE","#2962FF","#0091EA","#00B8D4","#00BFA5","#00C853","#64DD17","#AEEA00","#FFD600","#FFAB00","#FF6D00","#DD2C00"],u.myName="Fayaz Bin Salam",u.myOccupation="Software Engineer",u.myDetails="Hark! I am Fayaz Bin Salam, an artful craftsman of software, weaving together intricate webs of code for mobile, web, and desktop. To me, the machines of silicon and plastic are naught but hollow shells, until they hear and heed the whispers of my command. Since 2009, I have honed my skills in the arcane art of programming, penning my first lines of code in Batch and VBScript. Through the years, I have delved deeper into the mysteries of C, C++, Java, Python, and the like, working my magic with libraries and frameworks such as ReactJS and Angular2+. The beauty of my work lies not just in its function, but in its constant evolution and growth. Indeed, I strive to kindle the spark of progress in all that surrounds me, illuminating the way towards a brighter future.",u.myLeftAvatarImage=null,u.myRightAvatarImage=null,u.helperTexts="We have a form available for you to write down any queries you may have, which will be sent directly to me. Would you like to view the form now?",u.helperFormLink="",u.bottomLinks=[{svgPath:d.whatsappIcon,link:"https://api.whatsapp.com/send?phone=8801796306262"},{svgPath:d.emailIcon,link:"mailto:p32929.ceo@gmail.com"},{svgPath:d.downloadIcon,link:"https://docs.google.com/document/d/1W5U6FuZVPI6kfSDzjc5mJ0vEfey8tvxnb48tEku17lI/edit?usp=sharing"}],u.skills=[{text:"Programming / Markup Languages",arr:[{title:"C",logo:"https://seeklogo.com/images/C/c-logo-672525892C-seeklogo.com.png"},{title:"C++",logo:"https://seeklogo.com/images/C/c-logo-1B1817C041-seeklogo.com.png"},{title:"Java",logo:"https://www.vectorlogo.zone/logos/java/java-icon.svg"},{title:"Python",logo:"https://www.vectorlogo.zone/logos/python/python-icon.svg"},{title:"JavaScript",logo:"https://www.vectorlogo.zone/logos/javascript/javascript-icon.svg"},{title:"Rust",logo:"https://www.rust-lang.org/static/images/rust-logo-blk.svg"},{title:"HTML",logo:"https://www.vectorlogo.zone/logos/w3_html5/w3_html5-icon.svg"},{title:"CSS",logo:"https://seeklogo.com/images/C/css3-logo-F1923C8D0E-seeklogo.com.png"},{title:"TypeScript",logo:"https://www.vectorlogo.zone/logos/typescriptlang/typescriptlang-icon.svg"},{title:"Kotlin",logo:"https://www.vectorlogo.zone/logos/kotlinlang/kotlinlang-icon.svg"},{title:"Dart",logo:"https://www.vectorlogo.zone/logos/dartlang/dartlang-icon.svg"},{title:"Go",logo:"https://go.dev/blog/go-brand/Go-Logo/SVG/Go-Logo_Blue.svg"}]},{text:"Databases",arr:[{title:"MongoDB",logo:"https://cdn.iconscout.com/icon/free/png-128/mongodb-3521676-2945120.png"},{title:"SQL",logo:"https://w7.pngwing.com/pngs/28/601/png-transparent-sql-logo-illustration-microsoft-azure-sql-database-microsoft-sql-server-database-blue-text-logo-thumbnail.png"},{title:"DynamoDB",logo:"https://cdn.worldvectorlogo.com/logos/aws-dynamodb.svg"},{title:"PostgreSQL",logo:"https://wiki.postgresql.org/images/thumb/a/a4/PostgreSQL_logo.3colors.svg/540px-PostgreSQL_logo.3colors.svg.png"}]},{text:"UI Component Libraries",arr:[{title:"Ant Design",logo:"https://gw.alipayobjects.com/zos/rmsportal/KDpgvguMpGfqaHPjicRK.svg"},{title:"Material-UI",logo:"https://mui.com/static/logo.png"},{title:"Shadcn",logo:"https://ui.shadcn.com/favicon.ico"},{title:"Tailwind CSS",logo:"https://upload.wikimedia.org/wikipedia/commons/thumb/d/d5/Tailwind_CSS_Logo.svg/512px-Tailwind_CSS_Logo.svg.png?20230715030042"},{title:"Bootstrap",logo:"https://upload.wikimedia.org/wikipedia/commons/thumb/b/b2/Bootstrap_logo.svg/512px-Bootstrap_logo.svg.png"}]},{text:"Libraries / Frameworks / Techs",arr:[{title:"Android App Development",logo:"https://www.vectorlogo.zone/logos/android/android-icon.svg"},{title:"NodeJS",logo:"https://www.vectorlogo.zone/logos/nodejs/nodejs-icon.svg"},{title:"ExpressJS",logo:"https://www.vectorlogo.zone/logos/expressjs/expressjs-icon.svg"},{title:"ReactJS",logo:"https://www.vectorlogo.zone/logos/reactjs/reactjs-icon.svg"},{title:"Redux",logo:"https://w7.pngwing.com/pngs/669/447/png-transparent-redux-react-javascript-freecodecamp-npm-others-miscellaneous-purple-violet-thumbnail.png"},{title:"React Native",logo:"https://d33wubrfki0l68.cloudfront.net/554c3b0e09cf167f0281fda839a5433f2040b349/ecfc9/img/header_logo.svg"},{title:"ElectronJS",logo:"https://www.vectorlogo.zone/logos/electronjs/electronjs-icon.svg"},{title:"Angular2+",logo:"https://angular.io/assets/images/logos/angular/angular.svg"},{title:"Mongoose",logo:"https://avatars.githubusercontent.com/u/7552965?s=200&v=4"},{title:"NextJS",logo:"https://upload.wikimedia.org/wikipedia/commons/thumb/8/8e/Nextjs-logo.svg/207px-Nextjs-logo.svg.png"},{title:"OpenCV",logo:"https://www.vectorlogo.zone/logos/opencv/opencv-icon.svg"},{title:"Firebase",logo:"https://www.vectorlogo.zone/logos/firebase/firebase-icon.svg"},{title:"Flutter",logo:"https://www.vectorlogo.zone/logos/flutterio/flutterio-icon.svg"},{title:"Beautiful soup",logo:"https://github.com/3r4y/react-portfolio-template/assets/6418354/c9199eab-529b-4314-a990-c46deba899e9"},{title:"Numpy",logo:"https://numpy.org/images/logo.svg"},{title:"Tauri",logo:"https://raw.githubusercontent.com/tauri-apps/tauri/HEAD/app-icon.png"},{title:"VueJS",logo:"https://vuejs.org/images/logo.png"},{title:"Pandas",logo:"https://pandas.pydata.org/static/img/pandas.svg"},{title:"Matplotlib",logo:"https://matplotlib.org/3.1.0/_images/sphx_glr_logos2_001.png"},{title:"Socket.io",logo:"https://socket.io/images/logo.svg"},{title:"Flask",logo:"https://static.javatpoint.com/tutorial/flask/images/flask-tutorial.png"},{title:"Docker",logo:"https://cdn.iconscout.com/icon/free/png-128/docker-226091.png"},{title:"Git",logo:"https://www.vectorlogo.zone/logos/git-scm/git-scm-icon.svg"},{title:"Expo",logo:"https://www.vectorlogo.zone/logos/expoio/expoio-icon.svg"},{title:"NgInx",logo:"https://www.vectorlogo.zone/logos/nginx/nginx-icon.svg"},{title:"NestJS",logo:"https://d33wubrfki0l68.cloudfront.net/e937e774cbbe23635999615ad5d7732decad182a/26072/logo-small.ede75a6b.svg"}]},{text:"Others",arr:[{title:"Vim",logo:"https://upload.wikimedia.org/wikipedia/commons/thumb/9/9f/Vimlogo.svg/544px-Vimlogo.svg.png?20150726190850"},{title:"Android Studio",logo:"https://upload.wikimedia.org/wikipedia/commons/thumb/9/95/Android_Studio_Icon_3.6.svg/512px-Android_Studio_Icon_3.6.svg.png?20210301045217"},{title:"VS Code",logo:"https://cdn.icon-icons.com/icons2/2107/PNG/512/file_type_vscode_icon_130084.png"},{title:"Jira",logo:"https://cdn.iconscout.com/icon/free/png-128/jira-3628861-3030001.png"},{title:"AWS",logo:"https://cdn.iconscout.com/icon/free/png-128/aws-1869025-1583149.png"},{title:"DigitalOcean",logo:"https://res.cloudinary.com/crunchbase-production/image/upload/c_lpad,h_170,w_170,f_auto,b_white,q_auto:eco,dpr_1/v1478792253/gnlwek2zwhq369yryrzv.jpg"},{title:"Figma",logo:"https://www.vectorlogo.zone/logos/figma/figma-icon.svg"},{title:"Heroku",logo:"https://www.vectorlogo.zone/logos/heroku/heroku-icon.svg"},{title:"Yarn",logo:"https://www.vectorlogo.zone/logos/yarnpkg/yarnpkg-icon.svg"},{title:"npm",logo:"https://www.vectorlogo.zone/logos/npmjs/npmjs-icon.svg"},{title:"Tampermonkey",logo:"https://lh3.googleusercontent.com/zoY8FwoOqPlBgFxcmFdNSK2Q4CcLmv-gw7vTjF2KMR9cEabwBsGNrHBTEMitn0Ba6OmCVJ0NcLnFGu3N97BP8Phu0g=w128-h128-e365-rj-sc0x00ffffff"},{title:"Greasemonkey",logo:"https://addons.mozilla.org/user-media/addon_icons/0/748-64.png?modified=1531822767"},{title:"Linux",logo:"https://www.freepnglogos.com/uploads/linux-png/file-icons-flat-linux-svg-wikimedia-commons-6.png"},{title:"Adobe Photoshop",logo:"https://www.adobe.com/content/dam/cc/icons/photoshop-mobile.svg"}]}],u.works=[{text:"Web Apps",arr:[{title:"Duas",link:"https://p32929.github.io/duas/",logo:"https://p32929.github.io/duas/favicon.png",desc:"A collection of duas I try to regularly recite - created using flutter web",featured:!0},{title:"dobd.xyz",link:"https://www.dobd.xyz/",logo:"https://www.dobd.xyz/android-chrome-512x512.png",desc:"Best online downloader for YouTube, Facebook, Instagram, Tiktok and more",featured:!0},{title:"StartPage",logo:"https://cdn.iconscout.com/icon/premium/png-128-thumb/homepage-2580329-2151669.png",desc:"A minimalistic custom browser startpage that can be configured to your needs. ",link:"https://p32929.github.io/startpage/"},{title:"s3cr3tm3",link:"https://s3cr3tm3.netlify.app/",logo:"https://user-images.githubusercontent.com/6418354/173877444-59dbdd3d-1b5d-4b92-ad53-30fada9362d2.png",desc:"Share secret messages secretely",featured:!0},{title:"OrderZesty",logo:"https://orderzesty.com/wp-content/uploads/2021/10/Zesty-icon@3x-300x300.png",desc:"Personal chef service delivering fresh signature meals.",link:"https://orderzesty.com/",featured:!0},{title:"DramaDB",logo:"https://dramadb.vercel.app/apple-icon.png",desc:"A serverless hobby project that lets you filter Asian drama by country, genre, status, year and popularity",link:"https://dramadb.vercel.app/"},{title:"Sh0Sh0",logo:"https://github.com/3r4y/react-portfolio-template/assets/6418354/a159e1d8-fabc-4f58-9391-0c3be4d14d7e",desc:"A beautifully created Absolutely FREE URL shortener for everyone made using React Shadcn Firebase. ",link:"https://sh0sh0.netlify.app/"},{title:"TheRealWorldFree",logo:"https://www.therlworld.com/images/Group-427319400-1.webp",desc:"Enjoy the real world for free :)",link:"https://trwfree.vercel.app/"},{title:"BreakingMars",logo:"https://images.crunchbase.com/image/upload/c_pad,h_170,w_170,f_auto,b_white,q_auto:eco,dpr_1/lg6nxfb2dttgtng5kobb",desc:"#1 Leading & Effortless Prospect Perceiving Platform",link:"https://web.archive.org/web/20220413085335/https://www.breakingmars.com/"},{title:"Voomnow",desc:"Next generation audio recorder",logo:"https://user-images.githubusercontent.com/6418354/173876916-e27cb77f-49f1-4190-be54-4c1ddaa2973d.svg",link:"https://web.archive.org/web/20220326215025/https://www.voomnow.com/"},{title:"Shajao",logo:"https://sdn.signalhire.co/storage/company/1dfc/9704/f9d3/ff49/cdce/31bb/c4d7/0628.webp",desc:"Framing Happiness",link:"https://web.archive.org/web/20191222090655/https://shajao.com/"},{title:"ChargeOnSite",logo:"https://static.wixstatic.com/media/182a81_c4e4ee2bac6d4389a866239475519bdf~mv2.png/v1/fill/w_192%2Ch_192%2Clg_1%2Cusm_0.66_1.00_0.01/182a81_c4e4ee2bac6d4389a866239475519bdf~mv2.png",desc:"Charge OnSite",link:"https://www.chargeonsite.com/"},{title:"MathFinity",logo:"https://p32929.github.io/mathfinity/icons/Icon-192.png",desc:"Simple, infinite & fun math game for everyone",link:"https://p32929.github.io/mathfinity/",featured:!0}]},{text:"iOS Apps",arr:[{title:"Adblock for YT",link:"https://apps.apple.com/au/app/adblock-for-youtube/id1592568016",logo:"https://is2-ssl.mzstatic.com/image/thumb/Purple126/v4/65/7e/a8/657ea8d9-c3aa-6951-38c8-948c05cd96c3/AppIcon-0-0-85-220-0-0-0-0-4-0-0-0-2x-sRGB-0-0-0-0-0.png/246x0w.webp",desc:"Removes ads from YT videos, embedded videos on third party websites and streams.",featured:!0},{title:"Al Quran by Quran Touch",link:"https://apps.apple.com/gb/app/al-quran-by-quran-touch/id585240351",logo:"https://is3-ssl.mzstatic.com/image/thumb/Purple112/v4/9d/7e/ed/9d7eedd6-e567-5251-bed6-dce7e868bb57/AppIcon-0-1x_U007emarketing-0-10-0-85-220.png/246x0w.webp",desc:"The most comprehensive Muslim App!",featured:!0}]},{text:"Android Apps",arr:[{title:"Al Quran by Quran Touch",link:"https://www.apkmonk.com/app/com.qurantouch.qurantouchhd.app/",logo:"https://is3-ssl.mzstatic.com/image/thumb/Purple112/v4/9d/7e/ed/9d7eedd6-e567-5251-bed6-dce7e868bb57/AppIcon-0-1x_U007emarketing-0-10-0-85-220.png/246x0w.webp",desc:"The most comprehensive Muslim App!"},{title:"Thamao",logo:"https://cdn.apkmonk.com/logos/com.thamao_150x150.png",desc:"\u09ac\u09be\u0982\u09b2\u09be\u09a6\u09c7\u09b6\u09c7 \u09b8\u09cd\u09ae\u09be\u09b0\u09cd\u099f\u09ab\u09cb\u09a8\u09c7\u09b0 \u099a\u09c1\u09b0\u09bf \u098f\u09ac\u09be\u09b0 \u0985\u09b8\u09ae\u09cd\u09ad\u09ac",link:"https://www.apkmonk.com/app/com.thamao/",featured:!0},{title:"Desplash",logo:"https://lh3.googleusercontent.com/ILrto9KguXlr-clbhYKUonpnHszgNp_N5Qvc8_u9QaM71oaqNKcYql2sV3sqZ7nqzsc=s180",desc:"Automatic Free High Quality Wallpapers powered by Unsplash.com",link:"https://www.xda-developers.com/desplash-wallpaper-app-unsplash/",featured:!0},{title:"The Great Postman",logo:"https://lh3.googleusercontent.com/ni-lk3b2nTMZyC7r1wYBW6cm9eYqGAN-t6fXV-kD0lSyw1lO3kenC1We71fZjSryvFII=s180",desc:"Powerful, Lightweight REST API client for Android",link:"https://apkcombo.com/es/rest-api-client-the-great-postman/p32929.greatpostman/"},{title:"Sleepy - Addiction Remover",logo:"https://user-images.githubusercontent.com/6418354/192146268-29e1bac2-e477-4010-ae03-96adecbf07e6.png",desc:"The one and only EFFECTIVE addiction remover on Google Play store",link:"https://apkcombo.com/es/sleepy-phone-addiction-controller/p32929.lazyphone/"},{title:"Best CGPA Calculator",logo:"https://user-images.githubusercontent.com/6418354/192146303-6e04c9ac-ffb2-4931-bb10-ef54ff7af382.png",desc:"A simple yet effective CGPA Calculator for University students",link:"https://apkcombo.com/es/cgpa-calculator-for-update-see-the-description/p32929.cgpa_calculator/",featured:!0},{title:"Buy Sell BD",logo:"https://image.winudf.com/v2/image1/cDMyOTI5LmJ1eXNlbGxiZF9pY29uXzE1NTkyOTQ5NjVfMDYz/icon.png?w=170&fakeurl=1",desc:"A better & more reliable alternative for Bikroy.com - A marketplace app for buying-selling new/used goods",link:"https://apkcombo.com/es/buy-sell-bd-buy-sell-everything-easily-in-bd/p32929.buysellbd/"},{title:"ExIn",logo:"https://lh3.googleusercontent.com/X8mRJd7JajvDXoW7NaluKt2IvC3osH6czkTPoWeSYJ96U2LWLKT4xiFgvNouwf-UvEk=s180",desc:"A Simple & user friendly income-expense tracker ",link:"https://apkcombo.com/es/exin-discontinued/p32929.exin/"},{title:"I am free",logo:"https://image.winudf.com/v2/image1/cDMyOTI5LmltZnJlZV9pY29uXzE1NzY4ODAwNzVfMDU3/icon.png?w=170&fakeurl=1",desc:"\u09ac\u09c7\u0995\u09be\u09b0 \u09ae\u09c1\u0995\u09cd\u09a4 \u09ac\u09be\u0982\u09b2\u09be\u09a6\u09c7\u09b6 \u0997\u09dc\u09be\u09b0 \u09b2\u0995\u09cd\u09b7\u09cd\u09af\u09c7 - I am FREE",link:"https://apkcombo.com/es/i-am-free/p32929.imfree/"},{title:"Awesome NCTB",logo:"https://image.winudf.com/v2/image1/b3JnLnJpY2hpdC5uY3RiX2ljb25fMTU3NjU3MjcwNF8wMjI/icon.png?fakeurl=1",desc:"Download NCTB Books easily and Free",link:"https://apkcombo.com/es/awesome-nctb/org.richit.nctb/"},{title:"\u09ac\u09c3\u0995\u09cd\u09b7 ( Brikkho )",logo:"https://image.winudf.com/v2/image1/b3JnLnJpY2hpdC5icmlra2hvX2ljb25fMTU3MDEyMTU0Ml8wODA/icon.png?fakeurl=1",desc:"Learn about trees in your fingertips",link:"https://apkcombo.com/es/%E0%A6%AC%E0%A7%83%E0%A6%95%E0%A7%8D%E0%A6%B7-brikkho/org.richit.brikkho/"},{title:"IQQuiz",logo:"https://image.winudf.com/v2/image1/b3JnLnJpY2hpdC5pcXF1aXphcHBfaWNvbl8xNTcxMDE0NzcxXzA2Mg/icon.png?fakeurl=1",desc:"A simple IQ game",link:"https://apkcombo.com/es/iqquiz/org.richit.iqquizapp/"},{title:"BirdsLover",logo:"https://image.winudf.com/v2/image1/b3JnLnJpY2hpdC5iaXJkc2xvdmVyX2ljb25fMTU3MjAwNDIxNl8wOTE/icon.png?fakeurl=1",desc:"Learn about birds in your fingertips",link:"https://apkcombo.com/es/birdslover/org.richit.birdslover/"},{title:"Animal Lover",logo:"https://image.winudf.com/v2/image1/b3JnLnJpY2hpdC5hbmltYWxfaWNvbl8xNTc3MjkyMzIzXzAyMw/icon.png?fakeurl=1",desc:"Learn about birds in your fingertips",link:"https://apkcombo.com/es/animal-lover/org.richit.animal/"},{title:"Jibanananda Recitation (Abritti)",logo:"https://image.winudf.com/v2/image1/b3JnLnJpY2hpdC5qaWJvbmFuZG9rb2JpdGFzb21vZ3JvX2ljb25fMTU3MDEwNDExNF8wNDc/icon.png?fakeurl=1",desc:"50+ poems of Jibanananda Das with audio recitation",link:"https://apkcombo.com/es/jibanananda-recitation-abritti/org.richit.jibonandokobitasomogro/"},{title:"MathLover (Simple, Infinite, Math game)",logo:"https://lh3.googleusercontent.com/GaisH_-MeK2c_ct4kp5qbqxbJPE-q4isTdZswR4CocgB8sLNCFk4beXdlmaaFuveKUwd",desc:"MathLover is a simple, infinite mathematical problem solving game for everyone.",link:"https://apkcombo.com/es/mathlover-simple-infinite-math-game/org.richit.mathblitz/"},{title:"Hospitals BD",logo:"https://lh3.googleusercontent.com/MMfY8vG1YfAFh1w6iHEp8NXCwl-NSCUDmfPkUAWmqhSGfO3JR7vBvw_XZzV8JxrDag",desc:"Get nearest Hospital Information in Bangladesh in your fingertips",link:"https://apkcombo.com/es/hospitals-bd/org.richit.contacthospitals/"},{title:"BirthdayBot",logo:h.giftIcon,desc:"Birthday wishing apps, made for individual people...",link:"https://github.com/p32929/my_android_apps/releases/tag/all"}]},{text:"Desktop Apps",arr:[{title:"PotatoTimer",logo:"https://raw.githubusercontent.com/p32929/PotatoTimer/master/resources/icon.ico",desc:"A pomotodo app that forces you to take a break - created using ElectronJS",link:"https://github.com/p32929/Electron-Pomotodo"},{title:"Pomota",logo:"https://github.com/p32929/pomota/blob/master/src-tauri/icons/128x128.png?raw=true",desc:"A simple user-friendly cross-platform tauri based pomodoro timer app that forces you to take a break",link:"https://github.com/p32929/pomota",featured:!0},{title:"google-calender-widget",logo:"https://duckduckgo.com/i/e2d8001c.png",desc:"An unofficial google calendar desktop widget for Windows, Mac and Linux ",link:"https://github.com/p32929/google-calender-widget",featured:!0}]},{text:"Command Line Interfaces ( CLIs )",arr:[{title:"Shortcut-Virus-Remover",logo:"https://cdn-icons-png.flaticon.com/128/3223/3223766.png",desc:"Shortcut virus remover script for Windows",link:"https://github.com/p32929/Shortcut-Virus-Remover",featured:!0},{title:"Fay",logo:"https://crates.io/assets/cargo.png",desc:"A simple cross platform CLI app written in Rust to automate multiple shell ( bash or cmd ) commands",link:"https://crates.io/crates/fay"},{title:"SIIN",logo:"https://crates.io/assets/cargo.png",desc:"A batch installer that downloads and installs a list of apps, written in Rust ( Kinda like Ninite )",link:"https://crates.io/crates/siin"}]},{text:"Libraries / Packages / Crates",arr:[{title:"AndroidEasySQL-Library",logo:"https://www.vectorlogo.zone/logos/android/android-icon.svg",desc:"An Easier & Lazier approach to SQL database for Android",link:"https://github.com/p32929/AndroidEasySQL-Library"},{title:"AndroidAppLockscreen",logo:"https://www.vectorlogo.zone/logos/android/android-icon.svg",desc:"An Easier & Lazier approach to getting runtime permission in Android ",link:"https://github.com/p32929/AndroidAppLockscreen"},{title:"ManufacturerBatteryOptimization",logo:"https://www.vectorlogo.zone/logos/android/android-icon.svg",desc:"Simple helper class for Android Battery Optimization ignoring in some devices",link:"https://gist.github.com/p32929/41e7af650f6a2c11e9306ab600fb9b03"},{title:"MyHouseAdsAndroid",logo:"https://www.vectorlogo.zone/logos/android/android-icon.svg",desc:"A library for cross promoting own apps within own apps - for Android",link:"https://github.com/p32929/MyHouseAdsAndroid"},{title:"HouseAds2",logo:"https://www.vectorlogo.zone/logos/android/android-icon.svg",desc:"A library ( V2 ) for cross promoting own apps within own apps - for Android",link:"https://github.com/p32929/HouseAds2"},{title:"AndroidAppUpdater",logo:"https://www.vectorlogo.zone/logos/android/android-icon.svg",desc:"A simple, Lightweight App Updater Library for Android",link:"https://github.com/p32929/AndroidAppUpdater"},{title:"OfficeAbout",logo:"https://www.vectorlogo.zone/logos/android/android-icon.svg",desc:"A simple about screen library for Android for a Team of people",link:"https://github.com/p32929/OfficeAbout"},{title:"JsonViewerAndroid",logo:"https://www.vectorlogo.zone/logos/android/android-icon.svg",desc:"A simple JSON Viewer for Android"},{title:"Android-Receivers-Library",logo:"https://www.vectorlogo.zone/logos/android/android-icon.svg",desc:"A library for simpler BroadcastReceiver implementations"},{title:"Fay",logo:"https://crates.io/assets/cargo.png",desc:"A simple cross platform CLI app written in Rust to automate multiple shell ( bash or cmd ) commands",link:"https://crates.io/crates/fay"},{title:"fayfetch",logo:"https://avatars.githubusercontent.com/u/6078720?s=200&v=4",desc:"A simple wrapper for Fetch",link:"https://www.npmjs.com/package/fayfetch"},{title:"fjsondb",logo:"https://avatars.githubusercontent.com/u/6078720?s=200&v=4",desc:"A fast and simple JSON database for NodeJS",link:"https://www.npmjs.com/package/fjsondb"},{title:"str_template",logo:"https://avatars.githubusercontent.com/u/6078720?s=200&v=4",desc:"A fast and simple string templating library, written in TypeScript ( Supports both Client side and Server side JavaScript / TypeScript )",link:"https://www.npmjs.com/package/str-template-ts"},{title:"EasiestDB",logo:h.flutterIcon,desc:"The Easiest and the Laziest approach to Flutter SQL Database.",link:"https://pub.dev/packages/easiestdb"},{title:"Simply Wifi",logo:h.flutterIcon,desc:"A simplified version of the wifi_iot package",link:"https://pub.dev/packages/simply_wifi"},{title:"audio_duration",logo:h.flutterIcon,desc:"Just a simple flutter package to get the duration of any audio file ( like: mp3 ) in milliseconds",link:"https://pub.dev/packages/audio_duration"}]},{text:"Extensions / Plugins / Addons",arr:[{title:"vscode-nvim-leave-insertmode",logo:"https://code.visualstudio.com/assets/images/code-stable.png",desc:"This basic VSCode extension ensures that neovim is in normal mode switching between text editor panels.",link:"https://marketplace.visualstudio.com/items?itemName=p32929.vscode-nvim-leave-insertmode"},{title:"one-console-log",logo:"https://code.visualstudio.com/assets/images/code-stable.png",desc:"A modified version of the turbo-console-log that adds only one line of console instead of multiples.",link:"https://marketplace.visualstudio.com/items?itemName=p32929.one-console-log",featured:!0}]}],u.contacts=[{text:"Contact me",arr:[{title:"WhatsApp ( Recommended )",logo:"https://user-images.githubusercontent.com/6418354/155842184-b064bf36-de8e-4317-8f8e-cb7755eed995.png",link:"https://api.whatsapp.com/send?phone=8801796306262",desc:"+8801796306262"},{title:"Facebook",logo:"https://user-images.githubusercontent.com/6418354/155840898-9e2327aa-a280-45e3-8266-8268242abda4.png",link:"https://www.facebook.com/p32929"},{title:"Email",logo:"https://cdn3d.iconscout.com/3d/premium/thumb/email-address-4437044-3684811.png",desc:"p32929.ceo@gmail.com",link:"mailto:p32929.ceo@gmail.com"},{title:"Download Resume",logo:"https://cdn3d.iconscout.com/3d/premium/thumb/cv-6617242-5501765.png?f=webp",link:"https://docs.google.com/document/d/1W5U6FuZVPI6kfSDzjc5mJ0vEfey8tvxnb48tEku17lI/edit?usp=sharing"}]},{text:"Others",arr:[{title:"Anywhere on the internet",logo:"https://user-images.githubusercontent.com/6418354/155840900-91ac076a-8d2b-45dc-b346-66f72d376d4b.png",desc:"@p32929"},{title:"GitHub",logo:"https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png",link:"https://github.com/p32929/"},{title:"LinkedIn",logo:"https://user-images.githubusercontent.com/6418354/155841027-8698cb12-7ddd-4604-a4ea-c618ddbc1cd8.png",link:"https://www.linkedin.com/in/p32929/"},{title:"Twitter",logo:"https://user-images.githubusercontent.com/6418354/155841031-532d5d6e-797a-4da1-8064-48d266b69ab2.png",link:"https://twitter.com/p32929"},{title:"Instagram",logo:"https://user-images.githubusercontent.com/6418354/155841023-0b842621-56a3-42ec-81f1-3944034b09c7.png",link:"https://www.instagram.com/p32929/"},{title:"Fiverr",logo:"https://99designs-blog.imgix.net/blog/wp-content/uploads/2018/09/fiverr-2018.png?auto=format&q=60&fit=max&w=200",link:"https://www.fiverr.com/users/fayazbinsalam/"},{title:"Upwork",logo:"https://cdn.worldvectorlogo.com/logos/upwork.svg",link:"https://www.upwork.com/freelancers/~017dbf657b99b0c1c1"},{title:"Medium",logo:"https://seeklogo.com/images/M/medium-logo-93CDCF6451-seeklogo.com.png",link:"https://medium.com/@p32929_77176"},{title:"xda",logo:"https://www.svgrepo.com/show/331651/xda-developers.svg",link:"https://forum.xda-developers.com/m/p32929.5346826/"},{title:"Product Hunt",logo:"https://seeklogo.com/images/P/product-hunt-logo-A144953C4C-seeklogo.com.png?v=637846885100000000",link:"https://www.producthunt.com/@p32929"},{title:"UVA Online Judge",logo:"https://uhunt.onlinejudge.org/images/uva.png",link:"https://uhunt.onlinejudge.org/id/590978"},{title:"URI Online Judge",logo:"https://user-images.githubusercontent.com/26368939/110052090-be0a0b00-7d35-11eb-8827-993190a9568e.png",link:"https://www.beecrowd.com.br/judge/en/profile/76542"},{title:"Buy Me a Coffee",logo:"https://www.buymeacoffee.com/assets/img/guidelines/logo-mark-1.svg",link:"https://www.buymeacoffee.com/p32929"},{title:"Skype",logo:"https://user-images.githubusercontent.com/6418354/155840899-62c1fe8e-66a6-4492-9acc-5bd504ac21ef.png",desc:"p32929",link:"skype:p32929?chat"}]},{text:"Thank you for visiting my portfolio",arr:[{title:"Click on the link button",desc:"To create your own portfolio. It will only take around 3 minutes",logo:h.giftIcon,link:"https://github.com/p32929/p32929.github.io/"}]}];const b={primaryColor:u.primaryColor,isLeftShowing:!0,isColorPickerDialogShowing:!1,isMenuClicked:!1},w=(t,e)=>{let{state:o}=t;o.primaryColor=e},f=(t,e)=>{let{state:o}=t;o.isLeftShowing=e},v=(t,e)=>{let{state:o}=t;o.isColorPickerDialogShowing=e},C=(t,e)=>{let{state:o}=t;o.isMenuClicked=e},k={state:b,actions:i},j=Object(r.c)(),x=Object(r.b)();var y=o(138),A=o(74);const O=Object(y.a)({palette:{primary:{main:"#556cd6"},secondary:{main:"#19857b"},error:{main:A.a.A400},background:{default:"#fff"},action:{disabled:"#212121"}},overrides:{MuiAvatar:{img:{objectFit:"contain"}}}});var L=o(285),z=o(286),S=o(292),M=o(296),I=o(287),N=o(3);const _=Object(L.a)((t=>({avatar:{height:125,width:125},title:{color:"#212121",marginTop:24,fontSize:14,fontWeight:600},subtitle:{fontSize:12,color:"#212121",fontWeight:600}})));var F=t=>{var e;const{}=x(),{}=j(),o=_();return Object(N.jsxs)(z.a,{item:!0,xs:!0,container:!0,direction:"column",justifyContent:"center",alignItems:"center",children:[Object(N.jsx)(M.a,{alt:u.myName+" - "+u.myOccupation,src:null!==(e=u.myLeftAvatarImage)&&void 0!==e?e:m.avatar,className:o.avatar}),Object(N.jsx)(I.a,{className:o.title,children:u.myName.toUpperCase()}),Object(N.jsx)(I.a,{className:o.subtitle,children:u.myOccupation})]})},T=o(297),B=o(289),D=o(290),E=o(291),P=o(53);const H=Object(L.a)((t=>({})));var J=t=>{const{}=x(),{primaryColor:e}=j(),{path:o,size:i,styles:s}=(H(),t);return Object(N.jsx)("svg",{style:{width:i,height:i,...s},viewBox:"0 0 24 24",children:Object(N.jsx)("path",{fill:e,d:o})})},V=o(36),R=o(288);class W{}W.routes=["About","Skills","Works","Contact"];const U=Object(L.a)((t=>({link:{marginLeft:8,marginRight:8,textDecoration:"none"},divider:{height:1,margin:16,width:90,alignSelf:"center"}})));var q=t=>{const{showLeftPart:e}=x(),{primaryColor:o}=j(),i=U(),s=Object(V.a)(),a=Object(R.a)(s.breakpoints.down("sm"));return Object(N.jsxs)(z.a,{container:!0,item:!0,xs:!0,direction:"column",justifyContent:"center",alignContent:"stretch",children:[Object(N.jsx)(T.a,{mdUp:!0,children:Object(N.jsx)(B.a,{size:"small",onClick:()=>{e(!1)},children:Object(N.jsx)(J,{size:18,path:d.close})})}),Object(N.jsx)(D.a,{style:{backgroundColor:o},className:i.divider,orientation:"horizontal",flexItem:!0}),W.routes.map(((t,s)=>Object(N.jsx)(E.a,{activeStyle:{backgroundColor:o,color:"white"},className:i.link,onClick:()=>{a&&e(!1)},size:"small",component:P.a,to:t.toLowerCase(),children:t},s))),Object(N.jsx)(D.a,{style:{backgroundColor:o},className:i.divider,orientation:"horizontal",flexItem:!0})]})};const Z=Object(L.a)((t=>({root:{paddingBottom:8,width:"100%"},iconButton:{margin:3}})));var G=t=>{const{}=x(),{}=j(),e=Z();return Object(N.jsx)(z.a,{container:!0,className:e.root,direction:"row",justifyContent:"center",alignItems:"center",alignContent:"center",children:u.bottomLinks.map(((t,o)=>Object(N.jsx)(B.a,{className:e.iconButton,size:"small",target:"_blank",href:t.link,children:Object(N.jsx)(J,{path:t.svgPath,size:18})},o)))})};const Y=Object(L.a)((t=>({root:{height:"100%",width:"100%",margin:0,padding:0}})));var Q=t=>{const{}=x(),{}=j(),e=Y();return Object(N.jsx)(z.a,{container:!0,direction:"column",item:!0,xs:11,sm:11,md:3,lg:3,xl:2,children:Object(N.jsx)(S.a,{elevation:12,className:e.root,children:Object(N.jsxs)(z.a,{className:e.root,container:!0,direction:"column",justifyContent:"space-around",alignContent:"center",alignItems:"center",children:[Object(N.jsx)(F,{}),Object(N.jsx)(q,{}),Object(N.jsx)(G,{})]})})})};class X{}X.getHeightWidthWeb=()=>(console.debug("Web"),{width:"calc(100% - 316px)",height:"calc(100% - 168px)"}),X.getHeightWidthMobile=()=>(console.debug("Mobile"),{width:"calc(100% - 48px)",height:"calc(100% - 48px)"});var K=o(14);const $=Object(L.a)((t=>(t=>({root:{padding:16},divider:{height:1,marginTop:8,[t.breakpoints.down("sm")]:{width:160},[t.breakpoints.up("md")]:{width:200}},currentRoute:{fontSize:14,fontWeight:600,cursor:"none"}}))(t)));var tt=t=>{const{showLeftPart:e,setMenuClicked:o}=x();let i=Object(K.h)();const{primaryColor:s,isMenuClicked:a}=j(),n=$();return Object(N.jsxs)(z.a,{item:!0,xs:8,direction:"column",container:!0,justifyContent:"center",children:[Object(N.jsxs)(z.a,{item:!0,xs:!0,children:[Object(N.jsx)(T.a,{mdUp:!0,children:Object(N.jsx)(B.a,{size:"small",onClick:()=>{e(!0),o(!0)},children:Object(N.jsx)("div",{className:!0===a?"":"bounce",children:Object(N.jsx)(J,{path:d.menu,styles:{padding:8},size:20})})})}),Object(N.jsx)(E.a,{variant:"text",disabled:!0,className:n.currentRoute,children:i.pathname.replace("/","")})]}),Object(N.jsx)(z.a,{item:!0,xs:!0,children:Object(N.jsx)(D.a,{style:{backgroundColor:s},className:n.divider,orientation:"horizontal",flexItem:!0})})]})};const et=Object(L.a)((t=>({iconButton:{padding:8}})));var ot=t=>{const{setPrimaryColor:e,showColorPickerDialog:o}=x(),{}=j();et();return Object(N.jsxs)(z.a,{container:!0,direction:"row",justifyContent:"flex-end",item:!0,xs:4,children:[Object(N.jsx)(B.a,{size:"small",target:"_blank",href:"https://github.com/p32929/p32929.github.io/",children:Object(N.jsx)(J,{styles:{padding:8},path:d.githubIcon,size:20})}),Object(N.jsx)(B.a,{size:"small",onClick:()=>{o(!0)},children:Object(N.jsx)(J,{styles:{padding:8},path:d.palette,size:20})})]})};const it=Object(L.a)((t=>({root:{marginLeft:8},text:{marginLeft:8,marginRight:8,fontSize:12,fontWeight:600,color:"#757575"}})));var st=t=>{const{}=x(),{}=j(),{title:e,fontStyle:o}=t,i=it();return Object(N.jsxs)(z.a,{container:!0,direction:"row",alignItems:"center",alignContent:"center",className:i.root,children:[Object(N.jsx)(J,{size:20,path:d.star}),Object(N.jsx)(I.a,{variant:"body2",style:o,className:i.text,children:e})]})};const at=t=>{const{}=x(),{url:e}=t;return e&&(()=>{const e=["http","skype:","mailto:"];for(var o=0;o{t.stopPropagation()},target:"_blank",href:e,size:"small",children:Object(N.jsx)(J,{path:d.linkIcon,styles:{padding:8},size:22})})}):Object(N.jsx)(N.Fragment,{})},nt=Object(L.a)((t=>({root:{padding:2},textContainer:{paddingTop:16,paddingBottom:16,overflow:"hidden",alignSelf:"center"},avatar:{margin:16},title:{color:"#212121",lineHeight:1.25},desc:{color:"#757575",lineHeight:1.25,overflow:"hidden"}})));var lt=t=>{const{}=x(),{}=j(),e=nt(),{item:o}=t,{logo:i,title:s,desc:a,link:n}=o;return Object(N.jsx)(z.a,{container:!0,item:!0,xs:12,sm:12,md:6,lg:6,xl:4,className:e.root,children:Object(N.jsx)(S.a,{elevation:4,style:{width:"100%"},onClick:()=>{},children:Object(N.jsxs)(z.a,{container:!0,direction:"row",children:[Object(N.jsx)(M.a,{variant:"square",className:e.avatar,src:i}),Object(N.jsxs)(z.a,{container:!0,direction:"column",item:!0,xs:!0,className:e.textContainer,children:[Object(N.jsx)(I.a,{variant:"body1",className:e.title,children:s}),(a||n)&&Object(N.jsx)(I.a,{variant:"body2",className:e.desc,children:a||n})]}),Object(N.jsx)(at,{url:n})]})})})};const ct=Object(L.a)((t=>({root:{marginTop:4,marginLeft:8,marginBottom:16},itemRoot:{marginTop:8}})));var rt=t=>{const{}=x(),{}=j(),{item:e}=t,{text:o,arr:i}=e,s=ct();return Object(N.jsxs)(z.a,{container:!0,direction:"column",className:s.root,children:[Object(N.jsx)(st,{title:o}),Object(N.jsx)(z.a,{container:!0,direction:"row",className:s.itemRoot,children:i.sort(((t,e)=>t.title.localeCompare(e.title))).map(((t,e)=>Object(N.jsx)(lt,{item:t},e)))})]})};const gt=Object(L.a)((t=>({})));var pt=t=>{const{}=x(),{}=j(),[e,o]=Object(s.useState)([]);gt();Object(s.useEffect)((()=>{(()=>{const t={text:"Featured",arr:[]};for(var e=0;ee.length>0?e:u.works;return Object(N.jsx)(z.a,{container:!0,xs:12,item:!0,direction:"column",children:i().map(((t,e)=>Object(N.jsx)(rt,{item:t},e)))})};const dt=Object(L.a)((t=>({})));var mt=t=>{const{}=x(),{}=j();dt();return Object(N.jsx)(z.a,{container:!0,xs:12,item:!0,direction:"column",children:u.contacts.map(((t,e)=>Object(N.jsx)(rt,{item:t},e)))})};const ht=Object(L.a)((t=>({})));var ut=t=>{const{}=x(),{}=j();ht();return Object(N.jsx)(z.a,{container:!0,xs:12,item:!0,direction:"column",children:u.skills.map(((t,e)=>Object(N.jsx)(rt,{item:t},e)))})};const bt={height:"95%"},wt={height:"75%"},ft=Object(L.a)((t=>(t=>({root:{padding:8},text:{paddingLeft:8,paddingBottom:8,lineHeight:1.3,fontWeight:400,[t.breakpoints.up("xl")]:{fontSize:18},[t.breakpoints.down("sm")]:{fontSize:14}}}))(t)));const vt=[t=>{var e;const{}=x(),{}=j(),o=ft(),i=Object(V.a)(),s=Object(R.a)(i.breakpoints.down("sm"));return Object(N.jsxs)(z.a,{className:o.root,container:!0,item:!0,xs:12,direction:"column",justifyContent:"flex-end",alignItems:"center",alignContent:"center",children:[Object(N.jsx)(z.a,{style:{height:0,padding:4},id:"avatarImageGrid",item:!0,xs:!0,container:!0,justifyContent:"center",alignItems:"center",alignContent:"center",children:Object(N.jsx)("img",{style:s?wt:bt,src:null!==(e=u.myRightAvatarImage)&&void 0!==e?e:m.avatar_with_laptop})}),Object(N.jsxs)(z.a,{item:!0,container:!0,direction:"column",children:[Object(N.jsx)(st,{title:"About me",fontStyle:{fontSize:20,fontWeight:"bold",color:"#212121"}}),Object(N.jsx)(I.a,{className:o.text,children:u.myDetails})]})]})},ut,pt,mt],Ct=Object(L.a)((t=>({root:{padding:16},content:{paddingRight:8,maxHeight:"100vh",maxWidth:"100%"}})));var kt=t=>{const{}=x(),{isLeftShowing:e}=j(),o=Ct(),[i,a]=Object(s.useState)(0),n=Object(V.a)(),l=Object(R.a)(n.breakpoints.down("sm"));let c=Object(K.h)();return Object(s.useEffect)((()=>{const t=document.getElementById("container"),e=document.getElementById("right-top");document.getElementById("right-bottom");if(t&&e){const o=(null===t||void 0===t?void 0:t.offsetHeight)-(null===e||void 0===e?void 0:e.offsetHeight);console.log("Height: "+o),a(o)}}),[e,l]),Object(s.useEffect)((()=>{var t,e;null===(t=document)||void 0===t||null===(e=t.getElementById("right-bottom"))||void 0===e||e.scroll(0,0)}),[c]),Object(N.jsxs)(z.a,{id:"right-container",container:!0,xs:!0,item:!0,direction:"row",alignContent:"flex-start",children:[Object(N.jsxs)(z.a,{id:"right-top",container:!0,direction:"row",className:o.root,justifyContent:"space-between",alignItems:"flex-start",alignContent:"flex-start",children:[Object(N.jsx)(tt,{}),Object(N.jsx)(ot,{})]}),Object(N.jsx)(z.a,{id:"right-bottom",style:{height:i,maxHeight:i,overflowY:"scroll",overflowX:"hidden"},item:!0,xs:12,container:!0,className:o.content,children:Object(N.jsx)(K.e,{children:W.routes.map(((t,e)=>Object(N.jsx)(K.c,{exact:!0,path:"/".concat(t.toLowerCase()),component:vt[e]},e)))})})]})},jt=o(295),xt=o(293),yt=o(137);const At=Object(L.a)((t=>({})));var Ot=t=>{const{setPrimaryColor:e,showColorPickerDialog:o}=x(),{primaryColor:i,isColorPickerDialogShowing:s}=j();At();return Object(N.jsx)(jt.a,{open:s,onClose:()=>{o(!1)},children:Object(N.jsx)(xt.a,{children:Object(N.jsx)(yt.a,{color:i,onChange:(t,i)=>{e(t.hex),o(!1)},colors:u.otherColors})})})};const Lt=Object(L.a)((t=>(t=>({root:{height:"100vh",maxHeight:"100vh"},content:{height:"100%",width:"100%"},paper:{[t.breakpoints.down("sm")]:X.getHeightWidthMobile(),[t.breakpoints.up("md")]:X.getHeightWidthWeb()}}))(t)));var zt=!1;var St=t=>{const{showLeftPart:e}=x(),{primaryColor:o,isLeftShowing:i}=j(),s=Lt(),a=Object(V.a)(),n=Object(R.a)(a.breakpoints.down("sm"));n&&(zt||setTimeout((()=>{e(!1),zt=!0}),700));return Object(N.jsxs)(z.a,{container:!0,className:s.root,justifyContent:"center",alignContent:"center",alignItems:"center",direction:"column",style:{backgroundColor:o},children:[Object(N.jsx)(Ot,{}),Object(N.jsx)(S.a,{id:"container",className:s.paper,elevation:16,children:Object(N.jsxs)(K.a,{children:[Object(N.jsx)(K.c,{exact:!0,path:"/",children:Object(N.jsx)(K.b,{to:"/about"})}),Object(N.jsxs)(z.a,{container:!0,direction:"row",className:s.content,children:[n?i?Object(N.jsx)(Q,{}):void 0:Object(N.jsx)(Q,{}),n&&i?void 0:Object(N.jsx)(kt,{})]})]})})]})};const Mt=Object(p.d)(k);l.a.render(Object(N.jsx)(a.a.StrictMode,{children:Object(N.jsx)(r.a,{value:Mt,children:Object(N.jsx)(g.a,{theme:O,children:Object(N.jsx)(St,{})})})}),document.getElementById("root")),c(),document.title=u.myName}},[[261,1,2]]]); +//# sourceMappingURL=main.5d028fba.chunk.js.map \ No newline at end of file diff --git a/static/js/main.5d028fba.chunk.js.map b/static/js/main.5d028fba.chunk.js.map new file mode 100644 index 0000000..3e488ce --- /dev/null +++ b/static/js/main.5d028fba.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["reportWebVitals.ts","Others/OurIcons.ts","Others/Images.ts","Others/GlobalVars.ts","Overmind/OvermindState.ts","Overmind/OvermindActions.ts","Overmind/OvermindHelper.ts","Others/Theme.ts","Components/Left/AvatarText.tsx","Helpers/SvgHelper.tsx","Others/Constants.ts","Components/Left/NavigationLinks.tsx","Components/Left/BottomNavigationLinks.tsx","Components/LeftPart.tsx","Others/GlobalMethods.ts","Components/Right/Top/RouteLocation.tsx","Components/Right/Top/TopRightButtons.tsx","Components/Items/ListTitle.tsx","Components/Items/OurListItem.tsx","Components/Items/ListItemWithIcon.tsx","Components/Right/Routes/WorksRoute.tsx","Components/Right/Routes/ContactRoute.tsx","Components/Right/Routes/SkillsRoute.tsx","Components/Right/Routes/AboutRoute.tsx","Components/RightPart.tsx","Components/Dialogs/ColorPickerDialog.tsx","App.tsx","index.tsx"],"names":["reportWebVitals","onPerfEntry","Function","then","_ref","getCLS","getFID","getFCP","getLCP","getTTFB","OurIcons","githubIcon","facebookIcon","whatsappIcon","wordpressIcon","skypeIcon","emailIcon","downloadIcon","buymeacoffee","linkIcon","close","fork","menu","star","palette","circle","LocalImages","avatar","avatar_with_laptop","WebImages","giftIcon","flutterIcon","GlobalVars","primaryColor","otherColors","myName","myOccupation","myDetails","myLeftAvatarImage","myRightAvatarImage","helperTexts","helperFormLink","bottomLinks","svgPath","link","skills","text","arr","title","logo","works","desc","featured","contacts","state","isLeftShowing","isColorPickerDialogShowing","isMenuClicked","setPrimaryColor","value","showLeftPart","_ref2","showColorPickerDialog","_ref3","setMenuClicked","_ref4","config","actions","useAppState","createStateHook","useActions","createActionsHook","theme","createTheme","primary","main","secondary","error","red","A400","background","default","action","disabled","overrides","MuiAvatar","img","objectFit","useStyles","makeStyles","height","width","color","marginTop","fontSize","fontWeight","subtitle","AvatarText","props","_GlobalVars$myLeftAva","classes","_jsxs","Grid","item","xs","container","direction","justifyContent","alignItems","children","_jsx","Avatar","alt","src","className","Typography","toUpperCase","SvgHelper","path","size","styles","style","viewBox","fill","d","Constants","routes","marginLeft","marginRight","textDecoration","divider","margin","alignSelf","NavigationLinks","useTheme","belowSm","useMediaQuery","breakpoints","down","alignContent","Hidden","mdUp","IconButton","onClick","Divider","backgroundColor","orientation","flexItem","map","index","Button","activeStyle","component","NavLink","to","toLowerCase","root","paddingBottom","iconButton","BottomNavigationLinks","target","href","padding","LeftPart","sm","md","lg","xl","Paper","elevation","GlobalMethods","getHeightWidthWeb","console","debug","getHeightWidthMobile","up","currentRoute","cursor","getThemeObj","RouteLocation","location","useLocation","variant","pathname","replace","TopRightButtons","ListTitle","fontStyle","LinkIcon","url","isLinkString","linkStrings","i","length","_props$url","toString","includes","paddingTop","e","stopPropagation","_Fragment","textContainer","overflow","lineHeight","OurListItem","marginBottom","itemRoot","ListItemWithIcon","sort","a","b","localeCompare","arrItem","WorksRoute","setWorks","useState","useEffect","addFeaturedItems","featuredItems","getWorks","j","_getWorks$i$arr$j","push","newWorks","ContactRoute","SkillsRoute","aboveSmAvatarSize","belowSmAvatarSize","paddingLeft","_GlobalVars$myRightAv","id","content","paddingRight","maxHeight","maxWidth","RightPart","contentHeight","setContentHeight","rc","document","getElementById","rt","offsetHeight","log","_document","_document$getElementB","scroll","overflowY","overflowX","Switch","Route","exact","concat","ColorPickerDialog","Dialog","open","onClose","DialogContent","BlockPicker","onChange","event","hex","colors","paper","hiddenLeftFirstTime","App","setTimeout","MemoryRouter","Redirect","overmind","createOvermind","ReactDOM","render","React","StrictMode","Provider","ThemeProvider"],"mappings":"maAceA,MAZUC,IACnBA,GAAeA,aAAuBC,UACxC,8BAAqBC,MAAKC,IAAkD,IAAjD,OAAEC,EAAM,OAAEC,EAAM,OAAEC,EAAM,OAAEC,EAAM,QAAEC,GAASL,EACpEC,EAAOJ,GACPK,EAAOL,GACPM,EAAON,GACPO,EAAOP,GACPQ,EAAQR,EAAY,GAExB,E,yBCTK,MAAMS,KAEFC,WAAa,8uBAFXD,EAGFE,aAAe,gSAHbF,EAIFG,aAAe,0pCAJbH,EAKFI,cAAgB,09BALdJ,EAMFK,UAAY,8uBANVL,EAOFM,UAAY,m6BAPVN,EAQFO,aAAe,8HARbP,EAWFQ,aAAe,25EAXbR,EAYFS,SAAW,+sBAZTT,EAaFU,MAAQ,2MAbNV,EAcFW,KAAO,iuBAdLX,EAeFY,KAAO,iDAfLZ,EAgBFa,KAAO,uGAhBLb,EAiBFc,QAAU,+iBAjBRd,EAoBFe,OAAS,+ECtBb,MAAMC,KACFC,OAAS,cADPD,EAEFE,mBAAqB,eAGzB,MAAMC,KACFC,SAAW,uGADTD,EAEFE,YAAc,iECHlB,MAAMC,KAGFC,aAAe,UAHbD,EAIFE,YAA6B,CAChC,UAAW,UAAW,UAAW,UAAW,UAC5C,UAAW,UAAW,UAAW,UAAW,UAC5C,UAAW,UAAW,UAAW,UAAW,UAC5C,WARKF,EAYFG,OAAS,kBAZPH,EAaFI,aAAe,oBAbbJ,EAcFK,UAAY,wwBAdVL,EAeFM,kBAAoB,KAflBN,EAgBFO,mBAAqB,KAhBnBP,EAiBFQ,YAAc,mJAjBZR,EAkBFS,eAAiB,GAlBfT,EAoBFU,YAA8C,CACjD,CACIC,QAASjC,EAASG,aAClB+B,KAAM,qDAEV,CACID,QAASjC,EAASM,UAClB4B,KAAM,+BAEV,CACID,QAASjC,EAASO,aAClB2B,KAAM,qGA/BLZ,EAmCFa,OAAyC,CAC5C,CACIC,KAAM,iCACNC,IAAK,CACD,CACIC,MAAO,IACPC,KAAM,oEAEV,CACID,MAAO,MACPC,KAAM,oEAEV,CACID,MAAO,OACPC,KAAM,wDAEV,CACID,MAAO,SACPC,KAAM,4DAEV,CACID,MAAO,aACPC,KAAM,oEAEV,CACID,MAAO,OACPC,KAAM,6DAEV,CACID,MAAO,OACPC,KAAM,gEAEV,CACID,MAAO,MACPC,KAAM,uEAEV,CACID,MAAO,aACPC,KAAM,4EAEV,CACID,MAAO,SACPC,KAAM,oEAEV,CACID,MAAO,OACPC,KAAM,gEAEV,CACID,MAAO,KACPC,KAAM,+DAIlB,CACIH,KAAM,YACNC,IAAK,CACD,CACIC,MAAO,UACPC,KAAM,2EAEV,CACID,MAAO,MACPC,KAAM,oKAEV,CACID,MAAO,WACPC,KAAM,0DAEV,CACID,MAAO,aACPC,KAAM,qHAIlB,CACIH,KAAM,yBACNC,IAAK,CACD,CACIC,MAAO,aACPC,KAAM,uEAEV,CACID,MAAO,cACPC,KAAM,mCAEV,CACID,MAAO,SACPC,KAAM,qCAEV,CACID,MAAO,eACPC,KAAM,kIAEV,CACID,MAAO,YACPC,KAAM,+GAIlB,CACIH,KAAM,iCACNC,IAAK,CACD,CACIC,MAAO,0BACPC,KAAM,8DAEV,CACID,MAAO,SACPC,KAAM,4DAEV,CACID,MAAO,YACPC,KAAM,kEAEV,CACID,MAAO,UACPC,KAAM,8DAEV,CACID,MAAO,QACPC,KAAM,gJAEV,CACID,MAAO,eACPC,KAAM,4GAEV,CACID,MAAO,aACPC,KAAM,oEAEV,CACID,MAAO,YACPC,KAAM,8DAEV,CACID,MAAO,WACPC,KAAM,6DAEV,CACID,MAAO,SACPC,KAAM,uGAEV,CACID,MAAO,SACPC,KAAM,4DAEV,CACID,MAAO,WACPC,KAAM,gEAEV,CACID,MAAO,UACPC,KAAM,kEAEV,CACID,MAAO,iBACPC,KAAM,wGAEV,CACID,MAAO,QACPC,KAAM,qCAEV,CACID,MAAO,QACPC,KAAM,wEAEV,CACID,MAAO,QACPC,KAAM,qCAEV,CACID,MAAO,SACPC,KAAM,mDAEV,CACID,MAAO,aACPC,KAAM,gEAEV,CACID,MAAO,YACPC,KAAM,qCAEV,CACID,MAAO,QACPC,KAAM,0EAEV,CACID,MAAO,SACPC,KAAM,iEAEV,CACID,MAAO,MACPC,KAAM,8DAEV,CACID,MAAO,OACPC,KAAM,4DAEV,CACID,MAAO,QACPC,KAAM,0DAEV,CACI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","file":"static/js/main.5d028fba.chunk.js","sourcesContent":["import { ReportHandler } from 'web-vitals';\r\n\r\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","// These are all svg icon paths copied from https://materialdesignicons.com/\r\n\r\nexport class OurIcons {\r\n // websites\r\n static githubIcon = 'M12,2A10,10 0 0,0 2,12C2,16.42 4.87,20.17 8.84,21.5C9.34,21.58 9.5,21.27 9.5,21C9.5,20.77 9.5,20.14 9.5,19.31C6.73,19.91 6.14,17.97 6.14,17.97C5.68,16.81 5.03,16.5 5.03,16.5C4.12,15.88 5.1,15.9 5.1,15.9C6.1,15.97 6.63,16.93 6.63,16.93C7.5,18.45 8.97,18 9.54,17.76C9.63,17.11 9.89,16.67 10.17,16.42C7.95,16.17 5.62,15.31 5.62,11.5C5.62,10.39 6,9.5 6.65,8.79C6.55,8.54 6.2,7.5 6.75,6.15C6.75,6.15 7.59,5.88 9.5,7.17C10.29,6.95 11.15,6.84 12,6.84C12.85,6.84 13.71,6.95 14.5,7.17C16.41,5.88 17.25,6.15 17.25,6.15C17.8,7.5 17.45,8.54 17.35,8.79C18,9.5 18.38,10.39 18.38,11.5C18.38,15.32 16.04,16.16 13.81,16.41C14.17,16.72 14.5,17.33 14.5,18.26C14.5,19.6 14.5,20.68 14.5,21C14.5,21.27 14.66,21.59 15.17,21.5C19.14,20.16 22,16.42 22,12A10,10 0 0,0 12,2Z';\r\n static facebookIcon = 'M12 2.04C6.5 2.04 2 6.53 2 12.06C2 17.06 5.66 21.21 10.44 21.96V14.96H7.9V12.06H10.44V9.85C10.44 7.34 11.93 5.96 14.22 5.96C15.31 5.96 16.45 6.15 16.45 6.15V8.62H15.19C13.95 8.62 13.56 9.39 13.56 10.18V12.06H16.34L15.89 14.96H13.56V21.96A10 10 0 0 0 22 12.06C22 6.53 17.5 2.04 12 2.04Z';\r\n static whatsappIcon = 'M12.04 2C6.58 2 2.13 6.45 2.13 11.91C2.13 13.66 2.59 15.36 3.45 16.86L2.05 22L7.3 20.62C8.75 21.41 10.38 21.83 12.04 21.83C17.5 21.83 21.95 17.38 21.95 11.92C21.95 9.27 20.92 6.78 19.05 4.91C17.18 3.03 14.69 2 12.04 2M12.05 3.67C14.25 3.67 16.31 4.53 17.87 6.09C19.42 7.65 20.28 9.72 20.28 11.92C20.28 16.46 16.58 20.15 12.04 20.15C10.56 20.15 9.11 19.76 7.85 19L7.55 18.83L4.43 19.65L5.26 16.61L5.06 16.29C4.24 15 3.8 13.47 3.8 11.91C3.81 7.37 7.5 3.67 12.05 3.67M8.53 7.33C8.37 7.33 8.1 7.39 7.87 7.64C7.65 7.89 7 8.5 7 9.71C7 10.93 7.89 12.1 8 12.27C8.14 12.44 9.76 14.94 12.25 16C12.84 16.27 13.3 16.42 13.66 16.53C14.25 16.72 14.79 16.69 15.22 16.63C15.7 16.56 16.68 16.03 16.89 15.45C17.1 14.87 17.1 14.38 17.04 14.27C16.97 14.17 16.81 14.11 16.56 14C16.31 13.86 15.09 13.26 14.87 13.18C14.64 13.1 14.5 13.06 14.31 13.3C14.15 13.55 13.67 14.11 13.53 14.27C13.38 14.44 13.24 14.46 13 14.34C12.74 14.21 11.94 13.95 11 13.11C10.26 12.45 9.77 11.64 9.62 11.39C9.5 11.15 9.61 11 9.73 10.89C9.84 10.78 10 10.6 10.1 10.45C10.23 10.31 10.27 10.2 10.35 10.04C10.43 9.87 10.39 9.73 10.33 9.61C10.27 9.5 9.77 8.26 9.56 7.77C9.36 7.29 9.16 7.35 9 7.34C8.86 7.34 8.7 7.33 8.53 7.33Z';\r\n static wordpressIcon = \"M3.42,12C3.42,10.76 3.69,9.58 4.16,8.5L8.26,19.72C5.39,18.33 3.42,15.4 3.42,12M17.79,11.57C17.79,12.3 17.5,13.15 17.14,14.34L16.28,17.2L13.18,8L14.16,7.9C14.63,7.84 14.57,7.16 14.11,7.19C14.11,7.19 12.72,7.3 11.82,7.3L9.56,7.19C9.1,7.16 9.05,7.87 9.5,7.9L10.41,8L11.75,11.64L9.87,17.27L6.74,8L7.73,7.9C8.19,7.84 8.13,7.16 7.67,7.19C7.67,7.19 6.28,7.3 5.38,7.3L4.83,7.29C6.37,4.96 9,3.42 12,3.42C14.23,3.42 16.27,4.28 17.79,5.67H17.68C16.84,5.67 16.24,6.4 16.24,7.19C16.24,7.9 16.65,8.5 17.08,9.2C17.41,9.77 17.79,10.5 17.79,11.57M12.15,12.75L14.79,19.97L14.85,20.09C13.96,20.41 13,20.58 12,20.58C11.16,20.58 10.35,20.46 9.58,20.23L12.15,12.75M19.53,7.88C20.2,9.11 20.58,10.5 20.58,12C20.58,15.16 18.86,17.93 16.31,19.41L18.93,11.84C19.42,10.62 19.59,9.64 19.59,8.77L19.53,7.88M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,21.54C17.26,21.54 21.54,17.26 21.54,12C21.54,6.74 17.26,2.46 12,2.46C6.74,2.46 2.46,6.74 2.46,12C2.46,17.26 6.74,21.54 12,21.54Z\";\r\n static skypeIcon = \"M18,6C20.07,8.04 20.85,10.89 20.36,13.55C20.77,14.27 21,15.11 21,16A5,5 0 0,1 16,21C15.11,21 14.27,20.77 13.55,20.36C10.89,20.85 8.04,20.07 6,18C3.93,15.96 3.15,13.11 3.64,10.45C3.23,9.73 3,8.89 3,8A5,5 0 0,1 8,3C8.89,3 9.73,3.23 10.45,3.64C13.11,3.15 15.96,3.93 18,6M12.04,17.16C14.91,17.16 16.34,15.78 16.34,13.92C16.34,12.73 15.78,11.46 13.61,10.97L11.62,10.53C10.86,10.36 10,10.13 10,9.42C10,8.7 10.6,8.2 11.7,8.2C13.93,8.2 13.72,9.73 14.83,9.73C15.41,9.73 15.91,9.39 15.91,8.8C15.91,7.43 13.72,6.4 11.86,6.4C9.85,6.4 7.7,7.26 7.7,9.54C7.7,10.64 8.09,11.81 10.25,12.35L12.94,13.03C13.75,13.23 13.95,13.68 13.95,14.1C13.95,14.78 13.27,15.45 12.04,15.45C9.63,15.45 9.96,13.6 8.67,13.6C8.09,13.6 7.67,14 7.67,14.57C7.67,15.68 9,17.16 12.04,17.16Z\"\r\n static emailIcon = 'M12,15C12.81,15 13.5,14.7 14.11,14.11C14.7,13.5 15,12.81 15,12C15,11.19 14.7,10.5 14.11,9.89C13.5,9.3 12.81,9 12,9C11.19,9 10.5,9.3 9.89,9.89C9.3,10.5 9,11.19 9,12C9,12.81 9.3,13.5 9.89,14.11C10.5,14.7 11.19,15 12,15M12,2C14.75,2 17.1,3 19.05,4.95C21,6.9 22,9.25 22,12V13.45C22,14.45 21.65,15.3 21,16C20.3,16.67 19.5,17 18.5,17C17.3,17 16.31,16.5 15.56,15.5C14.56,16.5 13.38,17 12,17C10.63,17 9.45,16.5 8.46,15.54C7.5,14.55 7,13.38 7,12C7,10.63 7.5,9.45 8.46,8.46C9.45,7.5 10.63,7 12,7C13.38,7 14.55,7.5 15.54,8.46C16.5,9.45 17,10.63 17,12V13.45C17,13.86 17.16,14.22 17.46,14.53C17.76,14.84 18.11,15 18.5,15C18.92,15 19.27,14.84 19.57,14.53C19.87,14.22 20,13.86 20,13.45V12C20,9.81 19.23,7.93 17.65,6.35C16.07,4.77 14.19,4 12,4C9.81,4 7.93,4.77 6.35,6.35C4.77,7.93 4,9.81 4,12C4,14.19 4.77,16.07 6.35,17.65C7.93,19.23 9.81,20 12,20H17V22H12C9.25,22 6.9,21 4.95,19.05C3,17.1 2,14.75 2,12C2,9.25 3,6.9 4.95,4.95C6.9,3 9.25,2 12,2Z'\r\n static downloadIcon = 'M14,2L20,8V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2H14M18,20V9H13V4H6V20H18M12,19L8,15H10.5V12H13.5V15H16L12,19Z'\r\n\r\n // Common icons\r\n static buymeacoffee = 'M20.216 6.415l-.132-.666c-.119-.598-.388-1.163-1.001-1.379-.197-.069-.42-.098-.57-.241-.152-.143-.196-.366-.231-.572-.065-.378-.125-.756-.192-1.133-.057-.325-.102-.69-.25-.987-.195-.4-.597-.634-.996-.788a5.723 5.723 0 00-.626-.194c-1-.263-2.05-.36-3.077-.416a25.834 25.834 0 00-3.7.062c-.915.083-1.88.184-2.75.5-.318.116-.646.256-.888.501-.297.302-.393.77-.177 1.146.154.267.415.456.692.58.36.162.737.284 1.123.366 1.075.238 2.189.331 3.287.37 1.218.05 2.437.01 3.65-.118.299-.033.598-.073.896-.119.352-.054.578-.513.474-.834-.124-.383-.457-.531-.834-.473-.466.074-.96.108-1.382.146-1.177.08-2.358.082-3.536.006a22.228 22.228 0 01-1.157-.107c-.086-.01-.18-.025-.258-.036-.243-.036-.484-.08-.724-.13-.111-.027-.111-.185 0-.212h.005c.277-.06.557-.108.838-.147h.002c.131-.009.263-.032.394-.048a25.076 25.076 0 013.426-.12c.674.019 1.347.067 2.017.144l.228.031c.267.04.533.088.798.145.392.085.895.113 1.07.542.055.137.08.288.111.431l.319 1.484a.237.237 0 01-.199.284h-.003c-.037.006-.075.01-.112.015a36.704 36.704 0 01-4.743.295 37.059 37.059 0 01-4.699-.304c-.14-.017-.293-.042-.417-.06-.326-.048-.649-.108-.973-.161-.393-.065-.768-.032-1.123.161-.29.16-.527.404-.675.701-.154.316-.199.66-.267 1-.069.34-.176.707-.135 1.056.087.753.613 1.365 1.37 1.502a39.69 39.69 0 0011.343.376.483.483 0 01.535.53l-.071.697-1.018 9.907c-.041.41-.047.832-.125 1.237-.122.637-.553 1.028-1.182 1.171-.577.131-1.165.2-1.756.205-.656.004-1.31-.025-1.966-.022-.699.004-1.556-.06-2.095-.58-.475-.458-.54-1.174-.605-1.793l-.731-7.013-.322-3.094c-.037-.351-.286-.695-.678-.678-.336.015-.718.3-.678.679l.228 2.185.949 9.112c.147 1.344 1.174 2.068 2.446 2.272.742.12 1.503.144 2.257.156.966.016 1.942.053 2.892-.122 1.408-.258 2.465-1.198 2.616-2.657.34-3.332.683-6.663 1.024-9.995l.215-2.087a.484.484 0 01.39-.426c.402-.078.787-.212 1.074-.518.455-.488.546-1.124.385-1.766zm-1.478.772c-.145.137-.363.201-.578.233-2.416.359-4.866.54-7.308.46-1.748-.06-3.477-.254-5.207-.498-.17-.024-.353-.055-.47-.18-.22-.236-.111-.71-.054-.995.052-.26.152-.609.463-.646.484-.057 1.046.148 1.526.22.577.088 1.156.159 1.737.212 2.48.226 5.002.19 7.472-.14.45-.06.899-.13 1.345-.21.399-.072.84-.206 1.08.206.166.281.188.657.162.974a.544.544 0 01-.169.364zm-6.159 3.9c-.862.37-1.84.788-3.109.788a5.884 5.884 0 01-1.569-.217l.877 9.004c.065.78.717 1.38 1.5 1.38 0 0 1.243.065 1.658.065.447 0 1.786-.065 1.786-.065.783 0 1.434-.6 1.499-1.38l.94-9.95a3.996 3.996 0 00-1.322-.238c-.826 0-1.491.284-2.26.613z'\r\n static linkIcon = 'M10.59,13.41C11,13.8 11,14.44 10.59,14.83C10.2,15.22 9.56,15.22 9.17,14.83C7.22,12.88 7.22,9.71 9.17,7.76V7.76L12.71,4.22C14.66,2.27 17.83,2.27 19.78,4.22C21.73,6.17 21.73,9.34 19.78,11.29L18.29,12.78C18.3,11.96 18.17,11.14 17.89,10.36L18.36,9.88C19.54,8.71 19.54,6.81 18.36,5.64C17.19,4.46 15.29,4.46 14.12,5.64L10.59,9.17C9.41,10.34 9.41,12.24 10.59,13.41M13.41,9.17C13.8,8.78 14.44,8.78 14.83,9.17C16.78,11.12 16.78,14.29 14.83,16.24V16.24L11.29,19.78C9.34,21.73 6.17,21.73 4.22,19.78C2.27,17.83 2.27,14.66 4.22,12.71L5.71,11.22C5.7,12.04 5.83,12.86 6.11,13.65L5.64,14.12C4.46,15.29 4.46,17.19 5.64,18.36C6.81,19.54 8.71,19.54 9.88,18.36L13.41,14.83C14.59,13.66 14.59,11.76 13.41,10.59C13,10.2 13,9.56 13.41,9.17Z'\r\n static close = 'M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z'\r\n static fork = 'M6,2A3,3 0 0,1 9,5C9,6.28 8.19,7.38 7.06,7.81C7.15,8.27 7.39,8.83 8,9.63C9,10.92 11,12.83 12,14.17C13,12.83 15,10.92 16,9.63C16.61,8.83 16.85,8.27 16.94,7.81C15.81,7.38 15,6.28 15,5A3,3 0 0,1 18,2A3,3 0 0,1 21,5C21,6.32 20.14,7.45 18.95,7.85C18.87,8.37 18.64,9 18,9.83C17,11.17 15,13.08 14,14.38C13.39,15.17 13.15,15.73 13.06,16.19C14.19,16.62 15,17.72 15,19A3,3 0 0,1 12,22A3,3 0 0,1 9,19C9,17.72 9.81,16.62 10.94,16.19C10.85,15.73 10.61,15.17 10,14.38C9,13.08 7,11.17 6,9.83C5.36,9 5.13,8.37 5.05,7.85C3.86,7.45 3,6.32 3,5A3,3 0 0,1 6,2M6,4A1,1 0 0,0 5,5A1,1 0 0,0 6,6A1,1 0 0,0 7,5A1,1 0 0,0 6,4M18,4A1,1 0 0,0 17,5A1,1 0 0,0 18,6A1,1 0 0,0 19,5A1,1 0 0,0 18,4M12,18A1,1 0 0,0 11,19A1,1 0 0,0 12,20A1,1 0 0,0 13,19A1,1 0 0,0 12,18Z'\r\n static menu = 'M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z'\r\n static star = 'M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z'\r\n static palette = \"M17.5,12A1.5,1.5 0 0,1 16,10.5A1.5,1.5 0 0,1 17.5,9A1.5,1.5 0 0,1 19,10.5A1.5,1.5 0 0,1 17.5,12M14.5,8A1.5,1.5 0 0,1 13,6.5A1.5,1.5 0 0,1 14.5,5A1.5,1.5 0 0,1 16,6.5A1.5,1.5 0 0,1 14.5,8M9.5,8A1.5,1.5 0 0,1 8,6.5A1.5,1.5 0 0,1 9.5,5A1.5,1.5 0 0,1 11,6.5A1.5,1.5 0 0,1 9.5,8M6.5,12A1.5,1.5 0 0,1 5,10.5A1.5,1.5 0 0,1 6.5,9A1.5,1.5 0 0,1 8,10.5A1.5,1.5 0 0,1 6.5,12M12,3A9,9 0 0,0 3,12A9,9 0 0,0 12,21A1.5,1.5 0 0,0 13.5,19.5C13.5,19.11 13.35,18.76 13.11,18.5C12.88,18.23 12.73,17.88 12.73,17.5A1.5,1.5 0 0,1 14.23,16H16A5,5 0 0,0 21,11C21,6.58 16.97,3 12,3Z\"\r\n\r\n // not used anymore\r\n static circle = 'M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z'\r\n}","export class LocalImages {\r\n static avatar = '/avatar.png'\r\n static avatar_with_laptop = \"/avatar2.png\"\r\n}\r\n\r\nexport class WebImages {\r\n static giftIcon = 'https://user-images.githubusercontent.com/6418354/155841091-9bdc3b05-fabd-4e58-a0fd-fe90b08275e4.png'\r\n static flutterIcon = 'https://www.vectorlogo.zone/logos/flutterio/flutterio-icon.svg'\r\n}","import { OurIcons } from \"./OurIcons\"\r\nimport { NavBottomLinksInterface, TitledListItemInterface } from \"./Interfaces\"\r\nimport { WebImages } from \"./Images\"\r\n\r\nexport class GlobalVars {\r\n\r\n //\r\n static primaryColor = \"#00C853\"\r\n static otherColors: Array = [\r\n '#D50000', '#C51162', '#AA00FF', '#6200EA', '#304FFE',\r\n '#2962FF', '#0091EA', '#00B8D4', '#00BFA5', '#00C853',\r\n '#64DD17', '#AEEA00', '#FFD600', '#FFAB00', '#FF6D00',\r\n '#DD2C00'\r\n ]\r\n\r\n //\r\n static myName = 'Fayaz Bin Salam'\r\n static myOccupation = 'Software Engineer'\r\n static myDetails = 'Hark! I am Fayaz Bin Salam, an artful craftsman of software, weaving together intricate webs of code for mobile, web, and desktop. To me, the machines of silicon and plastic are naught but hollow shells, until they hear and heed the whispers of my command. Since 2009, I have honed my skills in the arcane art of programming, penning my first lines of code in Batch and VBScript. Through the years, I have delved deeper into the mysteries of C, C++, Java, Python, and the like, working my magic with libraries and frameworks such as ReactJS and Angular2+. The beauty of my work lies not just in its function, but in its constant evolution and growth. Indeed, I strive to kindle the spark of progress in all that surrounds me, illuminating the way towards a brighter future.'\r\n static myLeftAvatarImage = null\r\n static myRightAvatarImage = null\r\n static helperTexts = \"We have a form available for you to write down any queries you may have, which will be sent directly to me. Would you like to view the form now?\"\r\n static helperFormLink = \"\"\r\n\r\n static bottomLinks: Array = [\r\n {\r\n svgPath: OurIcons.whatsappIcon,\r\n link: 'https://api.whatsapp.com/send?phone=8801796306262'\r\n },\r\n {\r\n svgPath: OurIcons.emailIcon,\r\n link: 'mailto:p32929.ceo@gmail.com'\r\n },\r\n {\r\n svgPath: OurIcons.downloadIcon,\r\n link: 'https://docs.google.com/document/d/1W5U6FuZVPI6kfSDzjc5mJ0vEfey8tvxnb48tEku17lI/edit?usp=sharing'\r\n }\r\n ]\r\n\r\n static skills: Array = [\r\n {\r\n text: \"Programming / Markup Languages\",\r\n arr: [\r\n {\r\n title: 'C',\r\n logo: 'https://seeklogo.com/images/C/c-logo-672525892C-seeklogo.com.png',\r\n },\r\n {\r\n title: 'C++',\r\n logo: 'https://seeklogo.com/images/C/c-logo-1B1817C041-seeklogo.com.png',\r\n },\r\n {\r\n title: 'Java',\r\n logo: 'https://www.vectorlogo.zone/logos/java/java-icon.svg',\r\n },\r\n {\r\n title: 'Python',\r\n logo: 'https://www.vectorlogo.zone/logos/python/python-icon.svg',\r\n },\r\n {\r\n title: 'JavaScript',\r\n logo: 'https://www.vectorlogo.zone/logos/javascript/javascript-icon.svg',\r\n },\r\n {\r\n title: 'Rust',\r\n logo: 'https://www.rust-lang.org/static/images/rust-logo-blk.svg',\r\n },\r\n {\r\n title: 'HTML',\r\n logo: 'https://www.vectorlogo.zone/logos/w3_html5/w3_html5-icon.svg',\r\n },\r\n {\r\n title: 'CSS',\r\n logo: 'https://seeklogo.com/images/C/css3-logo-F1923C8D0E-seeklogo.com.png',\r\n },\r\n {\r\n title: 'TypeScript',\r\n logo: 'https://www.vectorlogo.zone/logos/typescriptlang/typescriptlang-icon.svg',\r\n },\r\n {\r\n title: 'Kotlin',\r\n logo: 'https://www.vectorlogo.zone/logos/kotlinlang/kotlinlang-icon.svg',\r\n },\r\n {\r\n title: 'Dart',\r\n logo: 'https://www.vectorlogo.zone/logos/dartlang/dartlang-icon.svg',\r\n },\r\n {\r\n title: 'Go',\r\n logo: 'https://go.dev/blog/go-brand/Go-Logo/SVG/Go-Logo_Blue.svg',\r\n },\r\n ]\r\n },\r\n {\r\n text: \"Databases\",\r\n arr: [\r\n {\r\n title: 'MongoDB',\r\n logo: 'https://cdn.iconscout.com/icon/free/png-128/mongodb-3521676-2945120.png'\r\n },\r\n {\r\n title: 'SQL',\r\n logo: 'https://w7.pngwing.com/pngs/28/601/png-transparent-sql-logo-illustration-microsoft-azure-sql-database-microsoft-sql-server-database-blue-text-logo-thumbnail.png',\r\n },\r\n {\r\n title: \"DynamoDB\",\r\n logo: 'https://cdn.worldvectorlogo.com/logos/aws-dynamodb.svg'\r\n },\r\n {\r\n title: \"PostgreSQL\",\r\n logo: 'https://wiki.postgresql.org/images/thumb/a/a4/PostgreSQL_logo.3colors.svg/540px-PostgreSQL_logo.3colors.svg.png'\r\n },\r\n ]\r\n },\r\n {\r\n text: \"UI Component Libraries\",\r\n arr: [\r\n {\r\n title: 'Ant Design',\r\n logo: 'https://gw.alipayobjects.com/zos/rmsportal/KDpgvguMpGfqaHPjicRK.svg'\r\n },\r\n {\r\n title: 'Material-UI',\r\n logo: 'https://mui.com/static/logo.png'\r\n },\r\n {\r\n title: 'Shadcn',\r\n logo: 'https://ui.shadcn.com/favicon.ico'\r\n },\r\n {\r\n title: 'Tailwind CSS',\r\n logo: 'https://upload.wikimedia.org/wikipedia/commons/thumb/d/d5/Tailwind_CSS_Logo.svg/512px-Tailwind_CSS_Logo.svg.png?20230715030042'\r\n },\r\n {\r\n title: 'Bootstrap',\r\n logo: 'https://upload.wikimedia.org/wikipedia/commons/thumb/b/b2/Bootstrap_logo.svg/512px-Bootstrap_logo.svg.png'\r\n },\r\n ]\r\n },\r\n {\r\n text: \"Libraries / Frameworks / Techs\",\r\n arr: [\r\n {\r\n title: 'Android App Development',\r\n logo: 'https://www.vectorlogo.zone/logos/android/android-icon.svg'\r\n },\r\n {\r\n title: 'NodeJS',\r\n logo: 'https://www.vectorlogo.zone/logos/nodejs/nodejs-icon.svg'\r\n },\r\n {\r\n title: 'ExpressJS',\r\n logo: 'https://www.vectorlogo.zone/logos/expressjs/expressjs-icon.svg'\r\n },\r\n {\r\n title: 'ReactJS',\r\n logo: 'https://www.vectorlogo.zone/logos/reactjs/reactjs-icon.svg'\r\n },\r\n {\r\n title: 'Redux',\r\n logo: 'https://w7.pngwing.com/pngs/669/447/png-transparent-redux-react-javascript-freecodecamp-npm-others-miscellaneous-purple-violet-thumbnail.png'\r\n },\r\n {\r\n title: 'React Native',\r\n logo: 'https://d33wubrfki0l68.cloudfront.net/554c3b0e09cf167f0281fda839a5433f2040b349/ecfc9/img/header_logo.svg'\r\n },\r\n {\r\n title: 'ElectronJS',\r\n logo: 'https://www.vectorlogo.zone/logos/electronjs/electronjs-icon.svg'\r\n },\r\n {\r\n title: 'Angular2+',\r\n logo: 'https://angular.io/assets/images/logos/angular/angular.svg'\r\n },\r\n {\r\n title: 'Mongoose',\r\n logo: 'https://avatars.githubusercontent.com/u/7552965?s=200&v=4'\r\n },\r\n {\r\n title: 'NextJS',\r\n logo: 'https://upload.wikimedia.org/wikipedia/commons/thumb/8/8e/Nextjs-logo.svg/207px-Nextjs-logo.svg.png'\r\n },\r\n {\r\n title: 'OpenCV',\r\n logo: 'https://www.vectorlogo.zone/logos/opencv/opencv-icon.svg'\r\n },\r\n {\r\n title: 'Firebase',\r\n logo: 'https://www.vectorlogo.zone/logos/firebase/firebase-icon.svg'\r\n },\r\n {\r\n title: 'Flutter',\r\n logo: 'https://www.vectorlogo.zone/logos/flutterio/flutterio-icon.svg'\r\n },\r\n {\r\n title: 'Beautiful soup',\r\n logo: 'https://github.com/3r4y/react-portfolio-template/assets/6418354/c9199eab-529b-4314-a990-c46deba899e9'\r\n },\r\n {\r\n title: 'Numpy',\r\n logo: 'https://numpy.org/images/logo.svg'\r\n },\r\n {\r\n title: 'Tauri',\r\n logo: 'https://raw.githubusercontent.com/tauri-apps/tauri/HEAD/app-icon.png'\r\n },\r\n {\r\n title: 'VueJS',\r\n logo: 'https://vuejs.org/images/logo.png'\r\n },\r\n {\r\n title: 'Pandas',\r\n logo: 'https://pandas.pydata.org/static/img/pandas.svg'\r\n },\r\n {\r\n title: 'Matplotlib',\r\n logo: 'https://matplotlib.org/3.1.0/_images/sphx_glr_logos2_001.png'\r\n },\r\n {\r\n title: 'Socket.io',\r\n logo: 'https://socket.io/images/logo.svg'\r\n },\r\n {\r\n title: 'Flask',\r\n logo: 'https://static.javatpoint.com/tutorial/flask/images/flask-tutorial.png'\r\n },\r\n {\r\n title: 'Docker',\r\n logo: 'https://cdn.iconscout.com/icon/free/png-128/docker-226091.png'\r\n },\r\n {\r\n title: 'Git',\r\n logo: 'https://www.vectorlogo.zone/logos/git-scm/git-scm-icon.svg'\r\n },\r\n {\r\n title: 'Expo',\r\n logo: 'https://www.vectorlogo.zone/logos/expoio/expoio-icon.svg'\r\n },\r\n {\r\n title: 'NgInx',\r\n logo: 'https://www.vectorlogo.zone/logos/nginx/nginx-icon.svg'\r\n },\r\n {\r\n title: 'NestJS',\r\n logo: 'https://d33wubrfki0l68.cloudfront.net/e937e774cbbe23635999615ad5d7732decad182a/26072/logo-small.ede75a6b.svg'\r\n },\r\n\r\n ]\r\n },\r\n {\r\n text: \"Others\",\r\n arr: [\r\n {\r\n title: 'Vim',\r\n logo: 'https://upload.wikimedia.org/wikipedia/commons/thumb/9/9f/Vimlogo.svg/544px-Vimlogo.svg.png?20150726190850'\r\n },\r\n {\r\n title: 'Android Studio',\r\n logo: 'https://upload.wikimedia.org/wikipedia/commons/thumb/9/95/Android_Studio_Icon_3.6.svg/512px-Android_Studio_Icon_3.6.svg.png?20210301045217'\r\n },\r\n {\r\n title: 'VS Code',\r\n logo: 'https://cdn.icon-icons.com/icons2/2107/PNG/512/file_type_vscode_icon_130084.png'\r\n },\r\n {\r\n title: 'Jira',\r\n logo: 'https://cdn.iconscout.com/icon/free/png-128/jira-3628861-3030001.png'\r\n },\r\n {\r\n title: 'AWS',\r\n logo: 'https://cdn.iconscout.com/icon/free/png-128/aws-1869025-1583149.png'\r\n },\r\n {\r\n title: 'DigitalOcean',\r\n logo: 'https://res.cloudinary.com/crunchbase-production/image/upload/c_lpad,h_170,w_170,f_auto,b_white,q_auto:eco,dpr_1/v1478792253/gnlwek2zwhq369yryrzv.jpg'\r\n },\r\n {\r\n title: 'Figma',\r\n logo: 'https://www.vectorlogo.zone/logos/figma/figma-icon.svg'\r\n },\r\n {\r\n title: 'Heroku',\r\n logo: 'https://www.vectorlogo.zone/logos/heroku/heroku-icon.svg'\r\n },\r\n {\r\n title: 'Yarn',\r\n logo: 'https://www.vectorlogo.zone/logos/yarnpkg/yarnpkg-icon.svg'\r\n },\r\n {\r\n title: 'npm',\r\n logo: 'https://www.vectorlogo.zone/logos/npmjs/npmjs-icon.svg'\r\n },\r\n {\r\n title: 'Tampermonkey',\r\n logo: 'https://lh3.googleusercontent.com/zoY8FwoOqPlBgFxcmFdNSK2Q4CcLmv-gw7vTjF2KMR9cEabwBsGNrHBTEMitn0Ba6OmCVJ0NcLnFGu3N97BP8Phu0g=w128-h128-e365-rj-sc0x00ffffff'\r\n },\r\n {\r\n title: 'Greasemonkey',\r\n logo: 'https://addons.mozilla.org/user-media/addon_icons/0/748-64.png?modified=1531822767'\r\n },\r\n {\r\n title: 'Linux',\r\n logo: 'https://www.freepnglogos.com/uploads/linux-png/file-icons-flat-linux-svg-wikimedia-commons-6.png'\r\n },\r\n {\r\n title: 'Adobe Photoshop',\r\n logo: 'https://www.adobe.com/content/dam/cc/icons/photoshop-mobile.svg'\r\n },\r\n ]\r\n },\r\n ]\r\n\r\n static works: Array = [\r\n {\r\n text: \"Web Apps\",\r\n arr: [\r\n {\r\n title: \"Duas\",\r\n link: \"https://p32929.github.io/duas/\",\r\n logo: \"https://p32929.github.io/duas/favicon.png\",\r\n desc: \"A collection of duas I try to regularly recite - created using flutter web\",\r\n featured: true,\r\n },\r\n {\r\n title: \"dobd.xyz\",\r\n link: \"https://www.dobd.xyz/\",\r\n logo: \"https://www.dobd.xyz/android-chrome-512x512.png\",\r\n desc: \"Best online downloader for YouTube, Facebook, Instagram, Tiktok and more\",\r\n featured: true,\r\n },\r\n {\r\n title: 'StartPage',\r\n logo: 'https://cdn.iconscout.com/icon/premium/png-128-thumb/homepage-2580329-2151669.png',\r\n desc: 'A minimalistic custom browser startpage that can be configured to your needs. ',\r\n link: 'https://p32929.github.io/startpage/'\r\n },\r\n {\r\n title: \"s3cr3tm3\",\r\n link: \"https://s3cr3tm3.netlify.app/\",\r\n logo: \"https://user-images.githubusercontent.com/6418354/173877444-59dbdd3d-1b5d-4b92-ad53-30fada9362d2.png\",\r\n desc: \"Share secret messages secretely\",\r\n featured: true,\r\n },\r\n {\r\n title: 'OrderZesty',\r\n logo: 'https://orderzesty.com/wp-content/uploads/2021/10/Zesty-icon@3x-300x300.png',\r\n desc: 'Personal chef service delivering fresh signature meals.',\r\n link: 'https://orderzesty.com/',\r\n featured: true,\r\n },\r\n {\r\n title: 'DramaDB',\r\n logo: 'https://dramadb.vercel.app/apple-icon.png',\r\n desc: 'A serverless hobby project that lets you filter Asian drama by country, genre, status, year and popularity',\r\n link: 'https://dramadb.vercel.app/'\r\n },\r\n {\r\n title: 'Sh0Sh0',\r\n logo: 'https://github.com/3r4y/react-portfolio-template/assets/6418354/a159e1d8-fabc-4f58-9391-0c3be4d14d7e',\r\n desc: 'A beautifully created Absolutely FREE URL shortener for everyone made using React Shadcn Firebase. ',\r\n link: 'https://sh0sh0.netlify.app/',\r\n },\r\n {\r\n title: \"TheRealWorldFree\",\r\n logo: \"https://www.therlworld.com/images/Group-427319400-1.webp\",\r\n desc: \"Enjoy the real world for free :)\",\r\n link: \"https://trwfree.vercel.app/\"\r\n },\r\n {\r\n title: \"BreakingMars\",\r\n logo: \"https://images.crunchbase.com/image/upload/c_pad,h_170,w_170,f_auto,b_white,q_auto:eco,dpr_1/lg6nxfb2dttgtng5kobb\",\r\n desc: '#1 Leading & Effortless Prospect Perceiving Platform',\r\n link: \"https://web.archive.org/web/20220413085335/https://www.breakingmars.com/\"\r\n },\r\n {\r\n title: \"Voomnow\",\r\n desc: \"Next generation audio recorder\",\r\n logo: \"https://user-images.githubusercontent.com/6418354/173876916-e27cb77f-49f1-4190-be54-4c1ddaa2973d.svg\",\r\n link: \"https://web.archive.org/web/20220326215025/https://www.voomnow.com/\"\r\n },\r\n {\r\n title: 'Shajao',\r\n logo: 'https://sdn.signalhire.co/storage/company/1dfc/9704/f9d3/ff49/cdce/31bb/c4d7/0628.webp',\r\n desc: 'Framing Happiness',\r\n link: \"https://web.archive.org/web/20191222090655/https://shajao.com/\"\r\n },\r\n {\r\n title: 'ChargeOnSite',\r\n logo: 'https://static.wixstatic.com/media/182a81_c4e4ee2bac6d4389a866239475519bdf~mv2.png/v1/fill/w_192%2Ch_192%2Clg_1%2Cusm_0.66_1.00_0.01/182a81_c4e4ee2bac6d4389a866239475519bdf~mv2.png',\r\n desc: 'Charge OnSite',\r\n link: \"https://www.chargeonsite.com/\",\r\n },\r\n {\r\n title: 'MathFinity',\r\n logo: 'https://p32929.github.io/mathfinity/icons/Icon-192.png',\r\n desc: 'Simple, infinite & fun math game for everyone',\r\n link: \"https://p32929.github.io/mathfinity/\",\r\n featured: true,\r\n },\r\n\r\n ]\r\n },\r\n {\r\n text: \"iOS Apps\",\r\n arr: [\r\n {\r\n title: \"Adblock for YT\",\r\n link: \"https://apps.apple.com/au/app/adblock-for-youtube/id1592568016\",\r\n logo: \"https://is2-ssl.mzstatic.com/image/thumb/Purple126/v4/65/7e/a8/657ea8d9-c3aa-6951-38c8-948c05cd96c3/AppIcon-0-0-85-220-0-0-0-0-4-0-0-0-2x-sRGB-0-0-0-0-0.png/246x0w.webp\",\r\n desc: \"Removes ads from YT videos, embedded videos on third party websites and streams.\",\r\n featured: true\r\n },\r\n {\r\n title: \"Al Quran by Quran Touch\",\r\n link: \"https://apps.apple.com/gb/app/al-quran-by-quran-touch/id585240351\",\r\n logo: \"https://is3-ssl.mzstatic.com/image/thumb/Purple112/v4/9d/7e/ed/9d7eedd6-e567-5251-bed6-dce7e868bb57/AppIcon-0-1x_U007emarketing-0-10-0-85-220.png/246x0w.webp\",\r\n desc: \"The most comprehensive Muslim App!\",\r\n featured: true\r\n },\r\n ]\r\n },\r\n {\r\n text: \"Android Apps\",\r\n arr: [\r\n {\r\n title: \"Al Quran by Quran Touch\",\r\n link: \"https://www.apkmonk.com/app/com.qurantouch.qurantouchhd.app/\",\r\n logo: \"https://is3-ssl.mzstatic.com/image/thumb/Purple112/v4/9d/7e/ed/9d7eedd6-e567-5251-bed6-dce7e868bb57/AppIcon-0-1x_U007emarketing-0-10-0-85-220.png/246x0w.webp\",\r\n desc: \"The most comprehensive Muslim App!\"\r\n },\r\n {\r\n title: 'Thamao',\r\n logo: 'https://cdn.apkmonk.com/logos/com.thamao_150x150.png',\r\n desc: 'বাংলাদেশে স্মার্টফোনের চুরি এবার অসম্ভব',\r\n link: 'https://www.apkmonk.com/app/com.thamao/',\r\n featured: true,\r\n },\r\n {\r\n title: 'Desplash',\r\n logo: 'https://lh3.googleusercontent.com/ILrto9KguXlr-clbhYKUonpnHszgNp_N5Qvc8_u9QaM71oaqNKcYql2sV3sqZ7nqzsc=s180',\r\n desc: 'Automatic Free High Quality Wallpapers powered by Unsplash.com',\r\n link: 'https://www.xda-developers.com/desplash-wallpaper-app-unsplash/',\r\n featured: true,\r\n },\r\n {\r\n title: 'The Great Postman',\r\n logo: 'https://lh3.googleusercontent.com/ni-lk3b2nTMZyC7r1wYBW6cm9eYqGAN-t6fXV-kD0lSyw1lO3kenC1We71fZjSryvFII=s180',\r\n desc: 'Powerful, Lightweight REST API client for Android',\r\n link: 'https://apkcombo.com/es/rest-api-client-the-great-postman/p32929.greatpostman/'\r\n },\r\n {\r\n title: 'Sleepy - Addiction Remover',\r\n logo: 'https://user-images.githubusercontent.com/6418354/192146268-29e1bac2-e477-4010-ae03-96adecbf07e6.png',\r\n desc: 'The one and only EFFECTIVE addiction remover on Google Play store',\r\n link: 'https://apkcombo.com/es/sleepy-phone-addiction-controller/p32929.lazyphone/'\r\n },\r\n {\r\n title: 'Best CGPA Calculator',\r\n logo: 'https://user-images.githubusercontent.com/6418354/192146303-6e04c9ac-ffb2-4931-bb10-ef54ff7af382.png',\r\n desc: 'A simple yet effective CGPA Calculator for University students',\r\n link: 'https://apkcombo.com/es/cgpa-calculator-for-update-see-the-description/p32929.cgpa_calculator/',\r\n featured: true,\r\n },\r\n {\r\n title: 'Buy Sell BD',\r\n logo: 'https://image.winudf.com/v2/image1/cDMyOTI5LmJ1eXNlbGxiZF9pY29uXzE1NTkyOTQ5NjVfMDYz/icon.png?w=170&fakeurl=1',\r\n desc: 'A better & more reliable alternative for Bikroy.com - A marketplace app for buying-selling new/used goods',\r\n link: 'https://apkcombo.com/es/buy-sell-bd-buy-sell-everything-easily-in-bd/p32929.buysellbd/'\r\n },\r\n {\r\n title: 'ExIn',\r\n logo: 'https://lh3.googleusercontent.com/X8mRJd7JajvDXoW7NaluKt2IvC3osH6czkTPoWeSYJ96U2LWLKT4xiFgvNouwf-UvEk=s180',\r\n desc: 'A Simple & user friendly income-expense tracker ',\r\n link: \"https://apkcombo.com/es/exin-discontinued/p32929.exin/\",\r\n },\r\n {\r\n title: 'I am free',\r\n logo: 'https://image.winudf.com/v2/image1/cDMyOTI5LmltZnJlZV9pY29uXzE1NzY4ODAwNzVfMDU3/icon.png?w=170&fakeurl=1',\r\n desc: 'বেকার মুক্ত বাংলাদেশ গড়ার লক্ষ্যে - I am FREE',\r\n link: 'https://apkcombo.com/es/i-am-free/p32929.imfree/'\r\n },\r\n {\r\n title: 'Awesome NCTB',\r\n logo: 'https://image.winudf.com/v2/image1/b3JnLnJpY2hpdC5uY3RiX2ljb25fMTU3NjU3MjcwNF8wMjI/icon.png?fakeurl=1',\r\n desc: 'Download NCTB Books easily and Free',\r\n link: 'https://apkcombo.com/es/awesome-nctb/org.richit.nctb/'\r\n },\r\n {\r\n title: 'বৃক্ষ ( Brikkho )',\r\n logo: 'https://image.winudf.com/v2/image1/b3JnLnJpY2hpdC5icmlra2hvX2ljb25fMTU3MDEyMTU0Ml8wODA/icon.png?fakeurl=1',\r\n desc: 'Learn about trees in your fingertips',\r\n link: 'https://apkcombo.com/es/%E0%A6%AC%E0%A7%83%E0%A6%95%E0%A7%8D%E0%A6%B7-brikkho/org.richit.brikkho/'\r\n },\r\n {\r\n title: 'IQQuiz',\r\n logo: 'https://image.winudf.com/v2/image1/b3JnLnJpY2hpdC5pcXF1aXphcHBfaWNvbl8xNTcxMDE0NzcxXzA2Mg/icon.png?fakeurl=1',\r\n desc: 'A simple IQ game',\r\n link: 'https://apkcombo.com/es/iqquiz/org.richit.iqquizapp/'\r\n },\r\n {\r\n title: 'BirdsLover',\r\n logo: 'https://image.winudf.com/v2/image1/b3JnLnJpY2hpdC5iaXJkc2xvdmVyX2ljb25fMTU3MjAwNDIxNl8wOTE/icon.png?fakeurl=1',\r\n desc: 'Learn about birds in your fingertips',\r\n link: 'https://apkcombo.com/es/birdslover/org.richit.birdslover/'\r\n },\r\n {\r\n title: 'Animal Lover',\r\n logo: 'https://image.winudf.com/v2/image1/b3JnLnJpY2hpdC5hbmltYWxfaWNvbl8xNTc3MjkyMzIzXzAyMw/icon.png?fakeurl=1',\r\n desc: 'Learn about birds in your fingertips',\r\n link: 'https://apkcombo.com/es/animal-lover/org.richit.animal/'\r\n },\r\n {\r\n title: 'Jibanananda Recitation (Abritti)',\r\n logo: 'https://image.winudf.com/v2/image1/b3JnLnJpY2hpdC5qaWJvbmFuZG9rb2JpdGFzb21vZ3JvX2ljb25fMTU3MDEwNDExNF8wNDc/icon.png?fakeurl=1',\r\n desc: '50+ poems of Jibanananda Das with audio recitation',\r\n link: 'https://apkcombo.com/es/jibanananda-recitation-abritti/org.richit.jibonandokobitasomogro/'\r\n },\r\n {\r\n title: 'MathLover (Simple, Infinite, Math game)',\r\n logo: 'https://lh3.googleusercontent.com/GaisH_-MeK2c_ct4kp5qbqxbJPE-q4isTdZswR4CocgB8sLNCFk4beXdlmaaFuveKUwd',\r\n desc: 'MathLover is a simple, infinite mathematical problem solving game for everyone.',\r\n link: 'https://apkcombo.com/es/mathlover-simple-infinite-math-game/org.richit.mathblitz/',\r\n },\r\n {\r\n title: 'Hospitals BD',\r\n logo: 'https://lh3.googleusercontent.com/MMfY8vG1YfAFh1w6iHEp8NXCwl-NSCUDmfPkUAWmqhSGfO3JR7vBvw_XZzV8JxrDag',\r\n desc: 'Get nearest Hospital Information in Bangladesh in your fingertips',\r\n link: 'https://apkcombo.com/es/hospitals-bd/org.richit.contacthospitals/'\r\n },\r\n {\r\n title: 'BirthdayBot',\r\n logo: WebImages.giftIcon,\r\n desc: 'Birthday wishing apps, made for individual people...',\r\n link: 'https://github.com/p32929/my_android_apps/releases/tag/all'\r\n },\r\n ]\r\n },\r\n {\r\n text: \"Desktop Apps\",\r\n arr: [\r\n {\r\n title: 'PotatoTimer',\r\n logo: 'https://raw.githubusercontent.com/p32929/PotatoTimer/master/resources/icon.ico',\r\n desc: 'A pomotodo app that forces you to take a break - created using ElectronJS',\r\n link: 'https://github.com/p32929/Electron-Pomotodo'\r\n },\r\n {\r\n title: 'Pomota',\r\n logo: 'https://github.com/p32929/pomota/blob/master/src-tauri/icons/128x128.png?raw=true',\r\n desc: 'A simple user-friendly cross-platform tauri based pomodoro timer app that forces you to take a break',\r\n link: 'https://github.com/p32929/pomota',\r\n featured: true,\r\n },\r\n {\r\n title: 'google-calender-widget',\r\n logo: 'https://duckduckgo.com/i/e2d8001c.png',\r\n desc: 'An unofficial google calendar desktop widget for Windows, Mac and Linux ',\r\n link: 'https://github.com/p32929/google-calender-widget',\r\n featured: true,\r\n },\r\n ]\r\n },\r\n {\r\n text: \"Command Line Interfaces ( CLIs )\",\r\n arr: [\r\n {\r\n title: 'Shortcut-Virus-Remover',\r\n logo: 'https://cdn-icons-png.flaticon.com/128/3223/3223766.png',\r\n desc: 'Shortcut virus remover script for Windows',\r\n link: 'https://github.com/p32929/Shortcut-Virus-Remover',\r\n featured: true,\r\n },\r\n {\r\n title: 'Fay',\r\n logo: 'https://crates.io/assets/cargo.png',\r\n desc: 'A simple cross platform CLI app written in Rust to automate multiple shell ( bash or cmd ) commands',\r\n link: 'https://crates.io/crates/fay'\r\n },\r\n {\r\n title: 'SIIN',\r\n logo: 'https://crates.io/assets/cargo.png',\r\n desc: 'A batch installer that downloads and installs a list of apps, written in Rust ( Kinda like Ninite )',\r\n link: 'https://crates.io/crates/siin'\r\n },\r\n\r\n ]\r\n },\r\n {\r\n text: \"Libraries / Packages / Crates\",\r\n arr: [\r\n {\r\n title: 'AndroidEasySQL-Library',\r\n logo: 'https://www.vectorlogo.zone/logos/android/android-icon.svg',\r\n desc: 'An Easier & Lazier approach to SQL database for Android',\r\n link: 'https://github.com/p32929/AndroidEasySQL-Library'\r\n },\r\n {\r\n title: 'AndroidAppLockscreen',\r\n logo: 'https://www.vectorlogo.zone/logos/android/android-icon.svg',\r\n desc: 'An Easier & Lazier approach to getting runtime permission in Android ',\r\n link: 'https://github.com/p32929/AndroidAppLockscreen'\r\n },\r\n {\r\n title: 'ManufacturerBatteryOptimization',\r\n logo: 'https://www.vectorlogo.zone/logos/android/android-icon.svg',\r\n desc: 'Simple helper class for Android Battery Optimization ignoring in some devices',\r\n link: 'https://gist.github.com/p32929/41e7af650f6a2c11e9306ab600fb9b03'\r\n },\r\n {\r\n title: 'MyHouseAdsAndroid',\r\n logo: 'https://www.vectorlogo.zone/logos/android/android-icon.svg',\r\n desc: 'A library for cross promoting own apps within own apps - for Android',\r\n link: 'https://github.com/p32929/MyHouseAdsAndroid'\r\n },\r\n {\r\n title: 'HouseAds2',\r\n logo: 'https://www.vectorlogo.zone/logos/android/android-icon.svg',\r\n desc: 'A library ( V2 ) for cross promoting own apps within own apps - for Android',\r\n link: 'https://github.com/p32929/HouseAds2'\r\n },\r\n {\r\n title: 'AndroidAppUpdater',\r\n logo: 'https://www.vectorlogo.zone/logos/android/android-icon.svg',\r\n desc: 'A simple, Lightweight App Updater Library for Android',\r\n link: 'https://github.com/p32929/AndroidAppUpdater'\r\n },\r\n {\r\n title: 'OfficeAbout',\r\n logo: 'https://www.vectorlogo.zone/logos/android/android-icon.svg',\r\n desc: 'A simple about screen library for Android for a Team of people',\r\n link: 'https://github.com/p32929/OfficeAbout'\r\n },\r\n {\r\n title: 'JsonViewerAndroid',\r\n logo: 'https://www.vectorlogo.zone/logos/android/android-icon.svg',\r\n desc: 'A simple JSON Viewer for Android',\r\n },\r\n {\r\n title: 'Android-Receivers-Library',\r\n logo: 'https://www.vectorlogo.zone/logos/android/android-icon.svg',\r\n desc: 'A library for simpler BroadcastReceiver implementations',\r\n },\r\n {\r\n title: 'Fay',\r\n logo: 'https://crates.io/assets/cargo.png',\r\n desc: 'A simple cross platform CLI app written in Rust to automate multiple shell ( bash or cmd ) commands',\r\n link: 'https://crates.io/crates/fay'\r\n },\r\n {\r\n title: 'fayfetch',\r\n logo: 'https://avatars.githubusercontent.com/u/6078720?s=200&v=4',\r\n desc: 'A simple wrapper for Fetch',\r\n link: 'https://www.npmjs.com/package/fayfetch'\r\n },\r\n {\r\n title: 'fjsondb',\r\n logo: 'https://avatars.githubusercontent.com/u/6078720?s=200&v=4',\r\n desc: 'A fast and simple JSON database for NodeJS',\r\n link: 'https://www.npmjs.com/package/fjsondb'\r\n },\r\n {\r\n title: 'str_template',\r\n logo: 'https://avatars.githubusercontent.com/u/6078720?s=200&v=4',\r\n desc: 'A fast and simple string templating library, written in TypeScript ( Supports both Client side and Server side JavaScript / TypeScript )',\r\n link: 'https://www.npmjs.com/package/str-template-ts'\r\n },\r\n {\r\n title: 'EasiestDB',\r\n logo: WebImages.flutterIcon,\r\n desc: 'The Easiest and the Laziest approach to Flutter SQL Database.',\r\n link: 'https://pub.dev/packages/easiestdb'\r\n },\r\n {\r\n title: \"Simply Wifi\",\r\n logo: WebImages.flutterIcon,\r\n desc: \"A simplified version of the wifi_iot package\",\r\n link: \"https://pub.dev/packages/simply_wifi\"\r\n },\r\n {\r\n title: \"audio_duration\",\r\n logo: WebImages.flutterIcon,\r\n desc: \"Just a simple flutter package to get the duration of any audio file ( like: mp3 ) in milliseconds\",\r\n link: \"https://pub.dev/packages/audio_duration\",\r\n }\r\n ]\r\n },\r\n {\r\n text: \"Extensions / Plugins / Addons\",\r\n arr: [\r\n {\r\n title: 'vscode-nvim-leave-insertmode',\r\n logo: 'https://code.visualstudio.com/assets/images/code-stable.png',\r\n desc: 'This basic VSCode extension ensures that neovim is in normal mode switching between text editor panels.',\r\n link: 'https://marketplace.visualstudio.com/items?itemName=p32929.vscode-nvim-leave-insertmode'\r\n },\r\n {\r\n title: 'one-console-log',\r\n logo: 'https://code.visualstudio.com/assets/images/code-stable.png',\r\n desc: 'A modified version of the turbo-console-log that adds only one line of console instead of multiples.',\r\n link: 'https://marketplace.visualstudio.com/items?itemName=p32929.one-console-log',\r\n featured: true,\r\n }\r\n ]\r\n },\r\n ]\r\n\r\n static contacts: Array = [\r\n {\r\n text: \"Contact me\",\r\n arr: [\r\n {\r\n title: 'WhatsApp ( Recommended )',\r\n logo: 'https://user-images.githubusercontent.com/6418354/155842184-b064bf36-de8e-4317-8f8e-cb7755eed995.png',\r\n link: 'https://api.whatsapp.com/send?phone=8801796306262',\r\n desc: \"+8801796306262\"\r\n },\r\n {\r\n title: 'Facebook',\r\n logo: 'https://user-images.githubusercontent.com/6418354/155840898-9e2327aa-a280-45e3-8266-8268242abda4.png',\r\n link: 'https://www.facebook.com/p32929'\r\n },\r\n {\r\n title: 'Email',\r\n logo: 'https://cdn3d.iconscout.com/3d/premium/thumb/email-address-4437044-3684811.png',\r\n desc: 'p32929.ceo@gmail.com',\r\n link: 'mailto:p32929.ceo@gmail.com'\r\n },\r\n {\r\n title: 'Download Resume',\r\n logo: 'https://cdn3d.iconscout.com/3d/premium/thumb/cv-6617242-5501765.png?f=webp',\r\n link: 'https://docs.google.com/document/d/1W5U6FuZVPI6kfSDzjc5mJ0vEfey8tvxnb48tEku17lI/edit?usp=sharing'\r\n },\r\n ]\r\n },\r\n {\r\n text: \"Others\",\r\n arr: [\r\n {\r\n title: 'Anywhere on the internet',\r\n logo: 'https://user-images.githubusercontent.com/6418354/155840900-91ac076a-8d2b-45dc-b346-66f72d376d4b.png',\r\n desc: \"@p32929\"\r\n },\r\n {\r\n title: 'GitHub',\r\n logo: 'https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png',\r\n link: 'https://github.com/p32929/'\r\n },\r\n {\r\n title: 'LinkedIn',\r\n logo: 'https://user-images.githubusercontent.com/6418354/155841027-8698cb12-7ddd-4604-a4ea-c618ddbc1cd8.png',\r\n link: 'https://www.linkedin.com/in/p32929/'\r\n },\r\n {\r\n title: 'Twitter',\r\n logo: 'https://user-images.githubusercontent.com/6418354/155841031-532d5d6e-797a-4da1-8064-48d266b69ab2.png',\r\n link: 'https://twitter.com/p32929'\r\n },\r\n {\r\n title: 'Instagram',\r\n logo: 'https://user-images.githubusercontent.com/6418354/155841023-0b842621-56a3-42ec-81f1-3944034b09c7.png',\r\n link: 'https://www.instagram.com/p32929/'\r\n },\r\n {\r\n title: 'Fiverr',\r\n logo: 'https://99designs-blog.imgix.net/blog/wp-content/uploads/2018/09/fiverr-2018.png?auto=format&q=60&fit=max&w=200',\r\n link: 'https://www.fiverr.com/users/fayazbinsalam/'\r\n },\r\n {\r\n title: \"Upwork\",\r\n logo: \"https://cdn.worldvectorlogo.com/logos/upwork.svg\",\r\n link: \"https://www.upwork.com/freelancers/~017dbf657b99b0c1c1\"\r\n },\r\n {\r\n title: \"Medium\",\r\n logo: \"https://seeklogo.com/images/M/medium-logo-93CDCF6451-seeklogo.com.png\",\r\n link: \"https://medium.com/@p32929_77176\"\r\n },\r\n {\r\n title: \"xda\",\r\n logo: \"https://www.svgrepo.com/show/331651/xda-developers.svg\",\r\n link: \"https://forum.xda-developers.com/m/p32929.5346826/\"\r\n },\r\n {\r\n title: \"Product Hunt\",\r\n logo: \"https://seeklogo.com/images/P/product-hunt-logo-A144953C4C-seeklogo.com.png?v=637846885100000000\",\r\n link: \"https://www.producthunt.com/@p32929\"\r\n },\r\n {\r\n title: \"UVA Online Judge\",\r\n logo: \"https://uhunt.onlinejudge.org/images/uva.png\",\r\n link: \"https://uhunt.onlinejudge.org/id/590978\"\r\n },\r\n {\r\n title: \"URI Online Judge\",\r\n logo: \"https://user-images.githubusercontent.com/26368939/110052090-be0a0b00-7d35-11eb-8827-993190a9568e.png\",\r\n link: \"https://www.beecrowd.com.br/judge/en/profile/76542\"\r\n },\r\n {\r\n title: \"Buy Me a Coffee\",\r\n logo: \"https://www.buymeacoffee.com/assets/img/guidelines/logo-mark-1.svg\",\r\n link: \"https://www.buymeacoffee.com/p32929\"\r\n },\r\n {\r\n title: 'Skype',\r\n logo: 'https://user-images.githubusercontent.com/6418354/155840899-62c1fe8e-66a6-4492-9acc-5bd504ac21ef.png',\r\n desc: 'p32929',\r\n link: 'skype:p32929?chat'\r\n },\r\n ]\r\n },\r\n {\r\n text: \"Thank you for visiting my portfolio\",\r\n arr: [\r\n {\r\n title: \"Click on the link button\",\r\n desc: 'To create your own portfolio. It will only take around 3 minutes',\r\n logo: WebImages.giftIcon,\r\n link: 'https://github.com/p32929/p32929.github.io/'\r\n }\r\n ]\r\n }\r\n ]\r\n}\r\n\r\n\r\n","import { GlobalVars } from \"../Others/GlobalVars\";\r\n\r\nexport interface State {\r\n primaryColor: string,\r\n isLeftShowing: boolean,\r\n isColorPickerDialogShowing: boolean,\r\n isMenuClicked: boolean,\r\n}\r\n\r\nexport const state: State = {\r\n primaryColor: GlobalVars.primaryColor,\r\n isLeftShowing: true,\r\n isColorPickerDialogShowing: false,\r\n isMenuClicked: false,\r\n}\r\n","import { Context } from './OvermindHelper'\r\n\r\n// export const increaseCounter = ({state}: Context, value: number) => {\r\n// state.counter += value;\r\n// }\r\n\r\nexport const setPrimaryColor = ({ state }: Context, value: string) => {\r\n state.primaryColor = value;\r\n}\r\n\r\nexport const showLeftPart = ({ state }: Context, value: boolean) => {\r\n state.isLeftShowing = value;\r\n}\r\n\r\nexport const showColorPickerDialog = ({ state }: Context, value: boolean) => {\r\n state.isColorPickerDialogShowing = value;\r\n}\r\n\r\nexport const setMenuClicked = ({ state }: Context, value: boolean) => {\r\n state.isMenuClicked = value;\r\n}\r\n\r\n","import {IContext} from 'overmind'\r\nimport {state} from './OvermindState'\r\nimport * as actions from './OvermindActions'\r\nimport {createActionsHook, createStateHook} from 'overmind-react'\r\n\r\nexport const config = {\r\n state,\r\n actions\r\n};\r\n\r\nexport type Context = IContext<{\r\n state: typeof config.state\r\n actions: typeof config.actions\r\n}>\r\n\r\n\r\nexport const useAppState = createStateHook()\r\nexport const useActions = createActionsHook()\r\n","import {createTheme} from '@material-ui/core/styles';\r\nimport {red} from '@material-ui/core/colors';\r\n\r\n// Create a theme instance.\r\nexport const theme = createTheme({\r\n palette: {\r\n primary: {\r\n main: '#556cd6',\r\n },\r\n secondary: {\r\n main: '#19857b',\r\n },\r\n error: {\r\n main: red.A400,\r\n },\r\n background: {\r\n default: '#fff',\r\n },\r\n action: {\r\n disabled: \"#212121\"\r\n }\r\n },\r\n overrides: {\r\n MuiAvatar: {\r\n img: {\r\n objectFit: 'contain',\r\n }\r\n }\r\n }\r\n});\r\n","import React from 'react'\r\nimport {makeStyles} from '@material-ui/core/styles';\r\nimport {Avatar, Grid, Theme, Typography} from \"@material-ui/core\";\r\nimport {useActions, useAppState} from '../../Overmind/OvermindHelper';\r\nimport {GlobalVars} from '../../Others/GlobalVars';\r\nimport {LocalImages} from '../../Others/Images';\r\n\r\ninterface Props {\r\n\r\n}\r\n\r\nconst getThemeObj = (theme: Theme) => {\r\n return {\r\n avatar: {\r\n height: 125,\r\n width: 125,\r\n },\r\n title: {\r\n color: \"#212121\",\r\n marginTop: 24,\r\n fontSize: 14,\r\n fontWeight: 600\r\n },\r\n subtitle: {\r\n fontSize: 12,\r\n color: \"#212121\",\r\n fontWeight: 600\r\n },\r\n }\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => (getThemeObj(theme)))\r\n\r\nconst AvatarText: React.FC = (props) => {\r\n const {} = useActions()\r\n const {} = useAppState()\r\n\r\n const classes = useStyles();\r\n\r\n return \r\n \r\n {GlobalVars.myName.toUpperCase()}\r\n {GlobalVars.myOccupation}\r\n \r\n}\r\n\r\nexport default AvatarText;","import React from 'react'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Grid, Theme } from \"@material-ui/core\";\r\nimport { useActions, useAppState } from '../Overmind/OvermindHelper';\r\n\r\ninterface Props {\r\n size: number,\r\n path: string,\r\n styles?: any,\r\n}\r\n\r\nconst getThemeObj = (theme: Theme) => {\r\n return {}\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => (getThemeObj(theme)))\r\n\r\nconst SvgHelper: React.FC = (props) => {\r\n const { } = useActions()\r\n const { primaryColor } = useAppState()\r\n\r\n const classes = useStyles();\r\n const { path, size, styles } = props\r\n\r\n return \r\n \r\n \r\n}\r\n\r\nexport default SvgHelper;","export class Constants {\r\n static routes: Array = [\r\n \"About\",\r\n \"Skills\",\r\n \"Works\",\r\n \"Contact\",\r\n ]\r\n}","import React from 'react'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Button, Divider, Grid, Hidden, IconButton, Theme } from \"@material-ui/core\";\r\nimport { useActions, useAppState } from '../../Overmind/OvermindHelper';\r\nimport { GlobalVars } from '../../Others/GlobalVars';\r\nimport { NavLink } from \"react-router-dom\";\r\nimport SvgHelper from '../../Helpers/SvgHelper';\r\nimport { OurIcons } from '../../Others/OurIcons';\r\nimport { useTheme } from \"@material-ui/core/styles\";\r\nimport useMediaQuery from \"@material-ui/core/useMediaQuery\";\r\nimport { Constants } from '../../Others/Constants';\r\n\r\ninterface Props {\r\n\r\n}\r\n\r\nconst getThemeObj = (theme: Theme) => {\r\n return {\r\n link: {\r\n marginLeft: 8,\r\n marginRight: 8,\r\n textDecoration: 'none'\r\n },\r\n divider: {\r\n height: 1,\r\n margin: 16,\r\n width: 90,\r\n alignSelf: 'center'\r\n },\r\n }\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => (getThemeObj(theme)))\r\n\r\nconst NavigationLinks: React.FC = (props) => {\r\n const { showLeftPart } = useActions()\r\n const { primaryColor } = useAppState()\r\n const classes = useStyles();\r\n\r\n const theme = useTheme()\r\n const belowSm = useMediaQuery(theme.breakpoints.down('sm'))\r\n\r\n return \r\n\r\n {/* @ts-ignore */}\r\n \r\n {\r\n showLeftPart(false)\r\n }}>\r\n \r\n \r\n \r\n\r\n \r\n\r\n {\r\n Constants.routes.map((item, index) => {\r\n return {\r\n if (belowSm) {\r\n showLeftPart(false)\r\n }\r\n }}\r\n size='small'\r\n component={NavLink}\r\n to={item.toLowerCase()}\r\n >{item}\r\n\r\n })\r\n }\r\n\r\n \r\n\r\n \r\n}\r\n\r\nexport default NavigationLinks;","import React from 'react'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Grid, IconButton, Theme } from \"@material-ui/core\";\r\nimport { useActions, useAppState } from '../../Overmind/OvermindHelper';\r\nimport { GlobalVars } from '../../Others/GlobalVars';\r\nimport SvgHelper from '../../Helpers/SvgHelper';\r\n\r\ninterface Props {\r\n\r\n}\r\n\r\nconst getThemeObj = (theme: Theme) => {\r\n return {\r\n root: { paddingBottom: 8, width: '100%' },\r\n iconButton: { margin: 3 }\r\n }\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => (getThemeObj(theme)))\r\n\r\nconst BottomNavigationLinks: React.FC = (props) => {\r\n const { } = useActions()\r\n const { } = useAppState()\r\n\r\n const classes = useStyles();\r\n\r\n return \r\n {\r\n GlobalVars.bottomLinks.map((item, index) => {\r\n return \r\n \r\n \r\n })\r\n }\r\n \r\n}\r\n\r\nexport default BottomNavigationLinks;","import React from 'react'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Theme, Grid, Paper } from \"@material-ui/core\";\r\nimport { useActions, useAppState } from '../Overmind/OvermindHelper';\r\nimport AvatarText from './Left/AvatarText';\r\nimport NavigationLinks from './Left/NavigationLinks';\r\nimport BottomNavigationLinks from './Left/BottomNavigationLinks';\r\n\r\ninterface Props {\r\n\r\n}\r\n\r\nconst getThemeObj = (theme: Theme) => {\r\n return {\r\n root: {\r\n height: '100%',\r\n width: '100%',\r\n margin: 0,\r\n padding: 0\r\n }\r\n }\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => (getThemeObj(theme)))\r\n\r\nconst LeftPart: React.FC = (props) => {\r\n const { } = useActions()\r\n const { } = useAppState()\r\n\r\n const classes = useStyles();\r\n\r\n return \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n}\r\n\r\nexport default LeftPart;","export class GlobalMethods {\r\n static getHeightWidthWeb = () => {\r\n console.debug(\"Web\");\r\n\r\n return {\r\n width: `calc(100% - 316px)`,\r\n height: `calc(100% - 168px)`\r\n }\r\n }\r\n\r\n static getHeightWidthMobile = () => {\r\n console.debug(\"Mobile\");\r\n\r\n return {\r\n width: `calc(100% - 48px)`,\r\n height: `calc(100% - 48px)`\r\n }\r\n }\r\n}","import React, { useState } from 'react'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Button, Divider, Grid, Hidden, IconButton, Theme } from \"@material-ui/core\";\r\nimport { useActions, useAppState } from '../../../Overmind/OvermindHelper';\r\nimport SvgHelper from '../../../Helpers/SvgHelper';\r\nimport { OurIcons } from '../../../Others/OurIcons';\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\ninterface Props {\r\n\r\n}\r\n\r\nconst getThemeObj = (theme: Theme) => {\r\n return {\r\n root: {\r\n padding: 16\r\n },\r\n divider: {\r\n height: 1,\r\n marginTop: 8,\r\n [theme.breakpoints.down('sm')]: {\r\n width: 160\r\n },\r\n [theme.breakpoints.up('md')]: {\r\n width: 200\r\n },\r\n },\r\n currentRoute: {\r\n fontSize: 14,\r\n fontWeight: 600,\r\n cursor: 'none',\r\n }\r\n }\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => (getThemeObj(theme)))\r\n\r\nconst RouteLocation: React.FC = (props) => {\r\n const { showLeftPart, setMenuClicked } = useActions()\r\n let location = useLocation();\r\n const { primaryColor, isMenuClicked } = useAppState()\r\n\r\n const classes = useStyles();\r\n\r\n return \r\n \r\n {/* @ts-ignore */}\r\n \r\n {\r\n showLeftPart(true)\r\n setMenuClicked(true)\r\n }}>\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n
\r\n\r\n}\r\n\r\nexport default RouteLocation;","import React from 'react'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Button, Divider, Grid, IconButton, Theme } from \"@material-ui/core\";\r\nimport { useActions, useAppState } from '../../../Overmind/OvermindHelper';\r\nimport SvgHelper from '../../../Helpers/SvgHelper';\r\nimport { OurIcons } from '../../../Others/OurIcons';\r\n\r\ninterface Props {\r\n\r\n}\r\n\r\nconst getThemeObj = (theme: Theme) => {\r\n return {\r\n iconButton: {\r\n padding: 8\r\n }\r\n }\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => (getThemeObj(theme)))\r\n\r\nconst TopRightButtons: React.FC = (props) => {\r\n const { setPrimaryColor, showColorPickerDialog } = useActions()\r\n const { } = useAppState()\r\n\r\n const classes = useStyles();\r\n\r\n return \r\n {/*\r\n PLEASE, DON'T CHANGE THIS GITHUB URL.\r\n ( https://github.com/p32929/p32929.github.io/ )\r\n */}\r\n \r\n \r\n \r\n\r\n {/*\r\n YOU MAY USE THE SOURCE CODE HOWEVER YOU WANT, BUT PLEASE,\r\n KEEP THE GITHUB-ICON & the GITHUB-URL under the icon UNCHANGED,\r\n SO THAT OTHERS CAN ALSO BENIFIT FROM THE ORIGINAL REPOSITORY.\r\n THANKS... :)\r\n */}\r\n\r\n {\r\n showColorPickerDialog(true)\r\n }}>\r\n \r\n \r\n \r\n\r\n}\r\n\r\nexport default TopRightButtons;","import React from 'react'\r\nimport {makeStyles} from '@material-ui/core/styles';\r\nimport {Grid, Theme, Typography} from \"@material-ui/core\";\r\nimport {useActions, useAppState} from '../../Overmind/OvermindHelper';\r\nimport SvgHelper from '../../Helpers/SvgHelper';\r\nimport {OurIcons} from '../../Others/OurIcons';\r\n\r\ninterface Props {\r\n title: string,\r\n fontStyle?: any\r\n}\r\n\r\nconst getThemeObj = (theme: Theme) => {\r\n return {\r\n root: {\r\n marginLeft: 8,\r\n },\r\n text: {\r\n marginLeft: 8,\r\n marginRight: 8,\r\n fontSize: 12,\r\n fontWeight: 600,\r\n color: \"#757575\"\r\n }\r\n }\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => (getThemeObj(theme)))\r\n\r\nconst ListTitle: React.FC = (props) => {\r\n const {} = useActions()\r\n const {} = useAppState()\r\n const {title, fontStyle} = props\r\n const classes = useStyles();\r\n\r\n return \r\n \r\n {title}\r\n \r\n\r\n}\r\n\r\nexport default ListTitle;","import React from 'react'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Avatar, Grid, IconButton, Paper, Theme, Typography } from \"@material-ui/core\";\r\nimport { useActions, useAppState } from '../../Overmind/OvermindHelper';\r\nimport { ListItemInterface } from '../../Others/Interfaces';\r\nimport SvgHelper from '../../Helpers/SvgHelper';\r\nimport { OurIcons } from '../../Others/OurIcons';\r\n\r\ninterface Props {\r\n item: ListItemInterface\r\n}\r\n\r\nconst getThemeObj = (theme: Theme) => {\r\n return {\r\n root: {\r\n padding: 2,\r\n },\r\n textContainer: {\r\n paddingTop: 16,\r\n paddingBottom: 16,\r\n overflow: 'hidden',\r\n alignSelf: 'center'\r\n },\r\n avatar: {\r\n margin: 16,\r\n },\r\n title: {\r\n color: \"#212121\",\r\n lineHeight: 1.25\r\n },\r\n desc: {\r\n color: \"#757575\",\r\n lineHeight: 1.25,\r\n overflow: 'hidden',\r\n }\r\n }\r\n}\r\n\r\n// const getLinkIcon = (url: string | undefined) => {\r\n// if (url) {\r\n// if (url.toString().includes('http') || url.toString().includes('skype:')) {\r\n// return \r\n// {\r\n// setTimeout(() => {\r\n\r\n// }, 500)\r\n// }}\r\n// target=\"_blank\"\r\n// href={url}\r\n// size='small'>\r\n// \r\n// \r\n// \r\n// }\r\n// }\r\n// }\r\n\r\ninterface LinkIconProps {\r\n url: string | undefined;\r\n}\r\n\r\nconst LinkIcon: React.FC = (props) => {\r\n const { } = useActions()\r\n const { url } = props\r\n\r\n const isLinkString = () => {\r\n const linkStrings = [\r\n 'http',\r\n 'skype:',\r\n 'mailto:'\r\n ]\r\n\r\n for (var i = 0; i < linkStrings.length; i++) {\r\n if ((props?.url ?? \"\").toString().toLowerCase().includes(linkStrings[i])) {\r\n return true\r\n }\r\n }\r\n\r\n return false\r\n }\r\n\r\n if (url) {\r\n if (isLinkString()) {\r\n return \r\n {\r\n e.stopPropagation()\r\n }}\r\n target=\"_blank\"\r\n href={url}\r\n size='small'>\r\n \r\n \r\n \r\n }\r\n }\r\n\r\n return <>\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => (getThemeObj(theme)))\r\n\r\nconst OurListItem: React.FC = (props) => {\r\n const { } = useActions()\r\n const { } = useAppState()\r\n\r\n const classes = useStyles();\r\n const { item } = props\r\n const { logo, title, desc, link } = item\r\n\r\n return \r\n {\r\n if (!link) {\r\n //\r\n }\r\n }}>\r\n \r\n \r\n\r\n \r\n {title}\r\n {\r\n (desc || link) &&\r\n {desc || link}\r\n }\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n}\r\n\r\nexport default OurListItem;","import React from 'react'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Button, Divider, Grid, Theme } from \"@material-ui/core\";\r\nimport { useActions, useAppState } from '../../Overmind/OvermindHelper';\r\nimport { TitledListItemInterface } from '../../Others/Interfaces';\r\nimport ListTitle from './ListTitle';\r\nimport OurListItem from './OurListItem';\r\n\r\ninterface Props {\r\n item: TitledListItemInterface\r\n}\r\n\r\nconst getThemeObj = (theme: Theme) => {\r\n return {\r\n root: {\r\n marginTop: 4,\r\n marginLeft: 8,\r\n marginBottom: 16,\r\n },\r\n itemRoot: {\r\n marginTop: 8\r\n }\r\n }\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => (getThemeObj(theme)))\r\n\r\nconst ListItemWithIcon: React.FC = (props) => {\r\n const { } = useActions()\r\n const { } = useAppState()\r\n const { item } = props\r\n const { text, arr } = item\r\n\r\n const classes = useStyles();\r\n\r\n return \r\n \r\n \r\n {\r\n arr.sort((a, b) => a.title.localeCompare(b.title)).map((arrItem, index) => {\r\n return \r\n })\r\n }\r\n \r\n \r\n\r\n}\r\n\r\nexport default ListItemWithIcon;","import React, { useEffect, useState } from 'react'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Button, Divider, Grid, Theme } from \"@material-ui/core\";\r\nimport { useActions, useAppState } from '../../../Overmind/OvermindHelper';\r\nimport { GlobalVars } from '../../../Others/GlobalVars';\r\nimport ListItemWithIcon from '../../Items/ListItemWithIcon';\r\nimport { OurIcons } from \"../../../Others/OurIcons\";\r\nimport { WebImages } from \"../../../Others/Images\";\r\nimport { TitledListItemInterface } from \"../../../Others/Interfaces\";\r\n\r\ninterface Props {\r\n\r\n}\r\n\r\nconst getThemeObj = (theme: Theme) => {\r\n return {}\r\n}\r\n\r\ninterface GithubResp {\r\n name: string;\r\n html_url: string;\r\n description: string;\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => (getThemeObj(theme)))\r\n\r\nconst WorksRoute: React.FC = (props) => {\r\n const { } = useActions()\r\n const { } = useAppState()\r\n const [works, setWorks] = useState>([])\r\n const classes = useStyles();\r\n\r\n // const getGithubRepos = async () => {\r\n // console.debug(`getGithubRepos`)\r\n // const data = await fetch(`https://api.github.com/users/${GlobalVars.myGithubUsername}/repos?per_page=999`)\r\n // const jsonFromFetch = await data.json()\r\n // const json: Array = jsonFromFetch\r\n\r\n // var newWorks: Array = [\r\n // ...getWorks()\r\n // ]\r\n // var newWOrkObj: TitledListItemInterface = {\r\n // text: \"Others\",\r\n // arr: []\r\n // }\r\n\r\n // for (var i = 0; i < json.length; i++) {\r\n // const obj = json[i]\r\n // newWOrkObj?.arr?.push({\r\n // title: obj.name,\r\n // logo: WebImages.giftIcon,\r\n // desc: obj.description,\r\n // link: obj.html_url\r\n // })\r\n // }\r\n // newWorks.push(newWOrkObj)\r\n // setWorks(newWorks)\r\n // }\r\n\r\n const addFeaturedItems = () => {\r\n const featuredItems: TitledListItemInterface = {\r\n text: \"Featured\",\r\n arr: [],\r\n }\r\n for (var i = 0; i < getWorks().length; i++) {\r\n for (var j = 0; j < getWorks()[i].arr.length; j++) {\r\n if (getWorks()[i].arr[j]?.featured) {\r\n featuredItems.arr.push(getWorks()[i].arr[j])\r\n }\r\n }\r\n }\r\n var newWorks: Array = [\r\n featuredItems,\r\n ...getWorks(),\r\n ]\r\n setWorks(newWorks)\r\n }\r\n\r\n useEffect(() => {\r\n addFeaturedItems()\r\n }, [])\r\n\r\n const getWorks = () => {\r\n if (works.length > 0) {\r\n return works\r\n } else {\r\n return GlobalVars.works\r\n }\r\n }\r\n\r\n return \r\n {\r\n getWorks().map((item, index) => {\r\n return \r\n })\r\n }\r\n \r\n\r\n}\r\n\r\nexport default WorksRoute;","import React from 'react'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Button, Divider, Grid, Theme } from \"@material-ui/core\";\r\nimport { useActions, useAppState } from '../../../Overmind/OvermindHelper';\r\nimport { GlobalVars } from '../../../Others/GlobalVars';\r\nimport ListItemWithIcon from '../../Items/ListItemWithIcon';\r\n\r\ninterface Props {\r\n\r\n}\r\n\r\nconst getThemeObj = (theme: Theme) => {\r\n return {}\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => (getThemeObj(theme)))\r\n\r\nconst ContactRoute: React.FC = (props) => {\r\n const { } = useActions()\r\n const { } = useAppState()\r\n\r\n const classes = useStyles();\r\n\r\n return \r\n {\r\n GlobalVars.contacts.map((item, index) => {\r\n return \r\n })\r\n }\r\n \r\n\r\n}\r\n\r\nexport default ContactRoute;","import React from 'react'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Button, Divider, Grid, Theme } from \"@material-ui/core\";\r\nimport { useActions, useAppState } from '../../../Overmind/OvermindHelper';\r\nimport { GlobalVars } from '../../../Others/GlobalVars';\r\nimport ListItemWithIcon from '../../Items/ListItemWithIcon';\r\n\r\ninterface Props {\r\n\r\n}\r\n\r\nconst getThemeObj = (theme: Theme) => {\r\n return {}\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => (getThemeObj(theme)))\r\n\r\nconst SkillsRoute: React.FC = (props) => {\r\n const { } = useActions()\r\n const { } = useAppState()\r\n\r\n const classes = useStyles();\r\n\r\n return \r\n {\r\n GlobalVars.skills.map((item, index) => {\r\n return \r\n })\r\n }\r\n \r\n\r\n}\r\n\r\nexport default SkillsRoute;","import React from 'react'\r\nimport {makeStyles, useTheme} from '@material-ui/core/styles';\r\nimport {Grid, Theme, Typography} from \"@material-ui/core\";\r\nimport {useActions, useAppState} from '../../../Overmind/OvermindHelper';\r\nimport {LocalImages} from '../../../Others/Images';\r\nimport useMediaQuery from \"@material-ui/core/useMediaQuery\";\r\nimport ListTitle from '../../Items/ListTitle';\r\nimport {GlobalVars} from '../../../Others/GlobalVars';\r\n\r\ninterface Props {\r\n\r\n}\r\n\r\nconst aboveSmAvatarSize = {height: '95%'}\r\nconst belowSmAvatarSize = {height: '75%'}\r\n\r\nconst getThemeObj = (theme: Theme) => {\r\n return {\r\n root: {\r\n padding: 8\r\n },\r\n text: {\r\n paddingLeft: 8,\r\n paddingBottom: 8,\r\n lineHeight: 1.3,\r\n fontWeight: 400,\r\n [theme.breakpoints.up('xl')]: {\r\n fontSize: 18,\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n fontSize: 14,\r\n },\r\n }\r\n }\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => (getThemeObj(theme)))\r\n\r\nconst AboutRoute: React.FC = (props) => {\r\n const {} = useActions()\r\n const {} = useAppState()\r\n\r\n const classes = useStyles();\r\n\r\n const theme = useTheme()\r\n const belowSm = useMediaQuery(theme.breakpoints.down('sm'))\r\n\r\n return \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {GlobalVars.myDetails}\r\n \r\n \r\n\r\n \r\n\r\n}\r\n\r\nexport default AboutRoute;","import React, { useEffect, useState } from 'react'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Theme, Grid, useMediaQuery, useTheme } from \"@material-ui/core\";\r\nimport { useActions, useAppState } from '../Overmind/OvermindHelper';\r\nimport RouteLocation from './Right/Top/RouteLocation';\r\nimport TopRightButtons from './Right/Top/TopRightButtons';\r\nimport WorksRoute from './Right/Routes/WorksRoute';\r\nimport ContactRoute from './Right/Routes/ContactRoute';\r\nimport SkillsRoute from './Right/Routes/SkillsRoute';\r\nimport AboutRoute from './Right/Routes/AboutRoute';\r\nimport { GlobalVars } from '../Others/GlobalVars';\r\nimport {\r\n BrowserRouter as Router,\r\n Switch,\r\n Route,\r\n Link,\r\n useLocation\r\n} from \"react-router-dom\";\r\nimport { Constants } from '../Others/Constants';\r\n\r\ninterface Props {\r\n\r\n}\r\n\r\nconst getThemeObj = (theme: Theme) => {\r\n return {\r\n root: {\r\n padding: 16,\r\n },\r\n content: {\r\n paddingRight: 8,\r\n maxHeight: '100vh',\r\n maxWidth: '100%',\r\n }\r\n }\r\n}\r\n\r\nconst routes = [\r\n AboutRoute,\r\n SkillsRoute,\r\n WorksRoute,\r\n ContactRoute,\r\n]\r\n\r\nconst useStyles = makeStyles((theme: Theme) => (getThemeObj(theme)))\r\n\r\nconst RightPart: React.FC = (props) => {\r\n const { } = useActions()\r\n const { isLeftShowing } = useAppState()\r\n const classes = useStyles();\r\n const [contentHeight, setContentHeight] = useState(0)\r\n\r\n const theme = useTheme()\r\n const belowSm = useMediaQuery(theme.breakpoints.down('sm'))\r\n let location = useLocation();\r\n\r\n useEffect(() => {\r\n const rc = document.getElementById('container')\r\n const rt = document.getElementById('right-top')\r\n const rb = document.getElementById('right-bottom')\r\n\r\n if (rc && rt) {\r\n const height = rc?.offsetHeight - rt?.offsetHeight\r\n console.log(\"Height: \" + height);\r\n\r\n setContentHeight(height)\r\n }\r\n }, [isLeftShowing, belowSm])\r\n\r\n useEffect(() => {\r\n document?.getElementById('right-bottom')?.scroll(0, 0)\r\n }, [location])\r\n\r\n return \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n Constants.routes.map((item, index) => {\r\n return \r\n })\r\n }\r\n \r\n \r\n \r\n}\r\n\r\nexport default RightPart;","import React from 'react'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Button, Dialog, DialogContent, Divider, Grid, Theme } from \"@material-ui/core\";\r\nimport { useActions, useAppState } from '../../Overmind/OvermindHelper';\r\nimport { BlockPicker } from 'react-color'\r\nimport { GlobalVars } from '../../Others/GlobalVars';\r\n\r\ninterface Props {\r\n\r\n}\r\n\r\nconst getThemeObj = (theme: Theme) => {\r\n return {}\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => (getThemeObj(theme)))\r\n\r\nconst ColorPickerDialog: React.FC = (props) => {\r\n const { setPrimaryColor, showColorPickerDialog } = useActions()\r\n const { primaryColor, isColorPickerDialogShowing } = useAppState()\r\n\r\n const classes = useStyles();\r\n\r\n return {\r\n showColorPickerDialog(false)\r\n }}>\r\n \r\n {\r\n setPrimaryColor(color.hex)\r\n showColorPickerDialog(false)\r\n }}\r\n colors={GlobalVars.otherColors}\r\n />\r\n \r\n \r\n}\r\n\r\nexport default ColorPickerDialog;","import React from 'react'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Theme, Grid, Paper } from \"@material-ui/core\";\r\nimport { useActions, useAppState } from './Overmind/OvermindHelper';\r\nimport LeftPart from './Components/LeftPart';\r\nimport { GlobalMethods } from './Others/GlobalMethods';\r\nimport RightPart from './Components/RightPart';\r\nimport { useTheme } from \"@material-ui/core/styles\";\r\nimport useMediaQuery from \"@material-ui/core/useMediaQuery\";\r\nimport { MemoryRouter, Route, Redirect } from 'react-router-dom';\r\nimport ColorPickerDialog from './Components/Dialogs/ColorPickerDialog';\r\n\r\ninterface Props {\r\n\r\n}\r\n\r\nconst getThemeObj = (theme: Theme) => {\r\n return {\r\n root: {\r\n height: '100vh',\r\n maxHeight: '100vh',\r\n },\r\n content: {\r\n height: '100%',\r\n width: '100%'\r\n },\r\n paper: {\r\n [theme.breakpoints.down('sm')]: GlobalMethods.getHeightWidthMobile(),\r\n [theme.breakpoints.up('md')]: GlobalMethods.getHeightWidthWeb(),\r\n }\r\n }\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => (getThemeObj(theme)))\r\nvar hiddenLeftFirstTime = false\r\n\r\nconst App: React.FC = (props) => {\r\n const { showLeftPart } = useActions()\r\n const { primaryColor, isLeftShowing } = useAppState()\r\n const classes = useStyles();\r\n\r\n const theme = useTheme()\r\n const belowSm = useMediaQuery(theme.breakpoints.down('sm'))\r\n\r\n if (belowSm) {\r\n if (!hiddenLeftFirstTime) {\r\n setTimeout(() => {\r\n showLeftPart(false)\r\n hiddenLeftFirstTime = true\r\n }, 700)\r\n }\r\n }\r\n\r\n const getLeftPart = () => {\r\n if (belowSm) {\r\n if (isLeftShowing) {\r\n return \r\n }\r\n } else {\r\n return \r\n }\r\n }\r\n\r\n const getRightPart = () => {\r\n if (belowSm) {\r\n if (!isLeftShowing) {\r\n return \r\n }\r\n } else {\r\n return \r\n }\r\n }\r\n\r\n return \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n\r\n \r\n {\r\n getLeftPart()\r\n }\r\n\r\n {\r\n getRightPart()\r\n }\r\n \r\n \r\n \r\n \r\n}\r\n\r\nexport default App;","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport reportWebVitals from './reportWebVitals';\r\nimport { Provider } from \"overmind-react\";\r\nimport { ThemeProvider } from '@material-ui/core';\r\nimport { createOvermind } from 'overmind'\r\nimport { config } from './Overmind/OvermindHelper'\r\nimport { theme } from \"./Others/Theme\";\r\nimport App from './App';\r\nimport { GlobalVars } from './Others/GlobalVars';\r\n\r\nconst overmind = createOvermind(config)\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\ndocument.title = GlobalVars.myName;\r\n"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/main.c28d4232.chunk.js.map b/static/js/main.c28d4232.chunk.js.map deleted file mode 100644 index 821f6be..0000000 --- a/static/js/main.c28d4232.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["reportWebVitals.ts","Others/OurIcons.ts","Others/Images.ts","Others/GlobalVars.ts","Overmind/OvermindState.ts","Overmind/OvermindActions.ts","Overmind/OvermindHelper.ts","Others/Theme.ts","Components/Left/AvatarText.tsx","Helpers/SvgHelper.tsx","Others/Constants.ts","Components/Left/NavigationLinks.tsx","Components/Left/BottomNavigationLinks.tsx","Components/LeftPart.tsx","Others/GlobalMethods.ts","Components/Right/Top/RouteLocation.tsx","Components/Right/Top/TopRightButtons.tsx","Components/Items/ListTitle.tsx","Components/Items/OurListItem.tsx","Components/Items/ListItemWithIcon.tsx","Components/Right/Routes/WorksRoute.tsx","Components/Right/Routes/ContactRoute.tsx","Components/Right/Routes/SkillsRoute.tsx","Components/Right/Routes/AboutRoute.tsx","Components/RightPart.tsx","Components/Dialogs/ColorPickerDialog.tsx","App.tsx","index.tsx"],"names":["reportWebVitals","onPerfEntry","Function","then","_ref","getCLS","getFID","getFCP","getLCP","getTTFB","OurIcons","githubIcon","facebookIcon","whatsappIcon","wordpressIcon","skypeIcon","emailIcon","downloadIcon","buymeacoffee","linkIcon","close","fork","menu","star","palette","circle","LocalImages","avatar","avatar_with_laptop","WebImages","giftIcon","flutterIcon","GlobalVars","primaryColor","otherColors","myName","myOccupation","myDetails","myLeftAvatarImage","myRightAvatarImage","helperTexts","helperFormLink","bottomLinks","svgPath","link","skills","text","arr","title","logo","works","desc","featured","contacts","state","isLeftShowing","isColorPickerDialogShowing","isMenuClicked","setPrimaryColor","value","showLeftPart","_ref2","showColorPickerDialog","_ref3","setMenuClicked","_ref4","config","actions","useAppState","createStateHook","useActions","createActionsHook","theme","createTheme","primary","main","secondary","error","red","A400","background","default","action","disabled","overrides","MuiAvatar","img","objectFit","useStyles","makeStyles","height","width","color","marginTop","fontSize","fontWeight","subtitle","AvatarText","props","_GlobalVars$myLeftAva","classes","_jsxs","Grid","item","xs","container","direction","justifyContent","alignItems","children","_jsx","Avatar","alt","src","className","Typography","toUpperCase","SvgHelper","path","size","styles","style","viewBox","fill","d","Constants","routes","marginLeft","marginRight","textDecoration","divider","margin","alignSelf","NavigationLinks","useTheme","belowSm","useMediaQuery","breakpoints","down","alignContent","Hidden","mdUp","IconButton","onClick","Divider","backgroundColor","orientation","flexItem","map","index","Button","activeStyle","component","NavLink","to","toLowerCase","root","paddingBottom","iconButton","BottomNavigationLinks","target","href","padding","LeftPart","sm","md","lg","xl","Paper","elevation","GlobalMethods","getHeightWidthWeb","console","debug","getHeightWidthMobile","up","currentRoute","cursor","getThemeObj","RouteLocation","location","useLocation","variant","pathname","replace","TopRightButtons","ListTitle","fontStyle","LinkIcon","url","isLinkString","linkStrings","i","length","_props$url","toString","includes","paddingTop","e","stopPropagation","_Fragment","textContainer","overflow","lineHeight","OurListItem","marginBottom","itemRoot","ListItemWithIcon","sort","a","b","localeCompare","arrItem","WorksRoute","setWorks","useState","useEffect","addFeaturedItems","featuredItems","getWorks","j","_getWorks$i$arr$j","push","newWorks","ContactRoute","SkillsRoute","aboveSmAvatarSize","belowSmAvatarSize","paddingLeft","_GlobalVars$myRightAv","id","content","paddingRight","maxHeight","maxWidth","RightPart","contentHeight","setContentHeight","rc","document","getElementById","rt","offsetHeight","log","_document","_document$getElementB","scroll","overflowY","overflowX","Switch","Route","exact","concat","ColorPickerDialog","Dialog","open","onClose","DialogContent","BlockPicker","onChange","event","hex","colors","paper","hiddenLeftFirstTime","App","setTimeout","MemoryRouter","Redirect","overmind","createOvermind","ReactDOM","render","React","StrictMode","Provider","ThemeProvider"],"mappings":"maAceA,MAZUC,IACnBA,GAAeA,aAAuBC,UACxC,8BAAqBC,MAAKC,IAAkD,IAAjD,OAAEC,EAAM,OAAEC,EAAM,OAAEC,EAAM,OAAEC,EAAM,QAAEC,GAASL,EACpEC,EAAOJ,GACPK,EAAOL,GACPM,EAAON,GACPO,EAAOP,GACPQ,EAAQR,EAAY,GAExB,E,yBCTK,MAAMS,KAEFC,WAAa,8uBAFXD,EAGFE,aAAe,gSAHbF,EAIFG,aAAe,0pCAJbH,EAKFI,cAAgB,09BALdJ,EAMFK,UAAY,8uBANVL,EAOFM,UAAY,m6BAPVN,EAQFO,aAAe,8HARbP,EAWFQ,aAAe,25EAXbR,EAYFS,SAAW,+sBAZTT,EAaFU,MAAQ,2MAbNV,EAcFW,KAAO,iuBAdLX,EAeFY,KAAO,iDAfLZ,EAgBFa,KAAO,uGAhBLb,EAiBFc,QAAU,+iBAjBRd,EAoBFe,OAAS,+ECtBb,MAAMC,KACFC,OAAS,cADPD,EAEFE,mBAAqB,eAGzB,MAAMC,KACFC,SAAW,uGADTD,EAEFE,YAAc,iECHlB,MAAMC,KAGFC,aAAe,UAHbD,EAIFE,YAA6B,CAChC,UAAW,UAAW,UAAW,UAAW,UAC5C,UAAW,UAAW,UAAW,UAAW,UAC5C,UAAW,UAAW,UAAW,UAAW,UAC5C,WARKF,EAYFG,OAAS,kBAZPH,EAaFI,aAAe,oBAbbJ,EAcFK,UAAY,wwBAdVL,EAeFM,kBAAoB,KAflBN,EAgBFO,mBAAqB,KAhBnBP,EAiBFQ,YAAc,mJAjBZR,EAkBFS,eAAiB,GAlBfT,EAoBFU,YAA8C,CACjD,CACIC,QAASjC,EAASG,aAClB+B,KAAM,qDAEV,CACID,QAASjC,EAASM,UAClB4B,KAAM,+BAEV,CACID,QAASjC,EAASO,aAClB2B,KAAM,qGA/BLZ,EAmCFa,OAAyC,CAC5C,CACIC,KAAM,iCACNC,IAAK,CACD,CACIC,MAAO,IACPC,KAAM,oEAEV,CACID,MAAO,MACPC,KAAM,oEAEV,CACID,MAAO,OACPC,KAAM,wDAEV,CACID,MAAO,SACPC,KAAM,4DAEV,CACID,MAAO,aACPC,KAAM,oEAEV,CACID,MAAO,OACPC,KAAM,6DAEV,CACID,MAAO,OACPC,KAAM,gEAEV,CACID,MAAO,MACPC,KAAM,uEAEV,CACID,MAAO,aACPC,KAAM,4EAEV,CACID,MAAO,SACPC,KAAM,oEAEV,CACID,MAAO,OACPC,KAAM,gEAEV,CACID,MAAO,KACPC,KAAM,+DAIlB,CACIH,KAAM,YACNC,IAAK,CACD,CACIC,MAAO,UACPC,KAAM,2EAEV,CACID,MAAO,MACPC,KAAM,oKAEV,CACID,MAAO,WACPC,KAAM,0DAEV,CACID,MAAO,aACPC,KAAM,qHAIlB,CACIH,KAAM,yBACNC,IAAK,CACD,CACIC,MAAO,aACPC,KAAM,uEAEV,CACID,MAAO,cACPC,KAAM,mCAEV,CACID,MAAO,SACPC,KAAM,qCAEV,CACID,MAAO,eACPC,KAAM,kIAEV,CACID,MAAO,YACPC,KAAM,+GAIlB,CACIH,KAAM,iCACNC,IAAK,CACD,CACIC,MAAO,0BACPC,KAAM,8DAEV,CACID,MAAO,SACPC,KAAM,4DAEV,CACID,MAAO,YACPC,KAAM,kEAEV,CACID,MAAO,UACPC,KAAM,8DAEV,CACID,MAAO,QACPC,KAAM,gJAEV,CACID,MAAO,eACPC,KAAM,4GAEV,CACID,MAAO,aACPC,KAAM,oEAEV,CACID,MAAO,YACPC,KAAM,8DAEV,CACID,MAAO,WACPC,KAAM,6DAEV,CACID,MAAO,SACPC,KAAM,uGAEV,CACID,MAAO,SACPC,KAAM,4DAEV,CACID,MAAO,WACPC,KAAM,gEAEV,CACID,MAAO,UACPC,KAAM,kEAEV,CACID,MAAO,iBACPC,KAAM,wGAEV,CACID,MAAO,QACPC,KAAM,qCAEV,CACID,MAAO,QACPC,KAAM,wEAEV,CACID,MAAO,QACPC,KAAM,qCAEV,CACID,MAAO,SACPC,KAAM,mDAEV,CACID,MAAO,aACPC,KAAM,gEAEV,CACID,MAAO,YACPC,KAAM,qCAEV,CACID,MAAO,QACPC,KAAM,0EAEV,CACID,MAAO,SACPC,KAAM,iEAEV,CACID,MAAO,MACPC,KAAM,8DAEV,CACID,MAAO,OACPC,KAAM,4DAEV,CACID,MAAO,QACPC,KAAM,0DAEV,CACI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","file":"static/js/main.c28d4232.chunk.js","sourcesContent":["import { ReportHandler } from 'web-vitals';\r\n\r\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","// These are all svg icon paths copied from https://materialdesignicons.com/\r\n\r\nexport class OurIcons {\r\n // websites\r\n static githubIcon = 'M12,2A10,10 0 0,0 2,12C2,16.42 4.87,20.17 8.84,21.5C9.34,21.58 9.5,21.27 9.5,21C9.5,20.77 9.5,20.14 9.5,19.31C6.73,19.91 6.14,17.97 6.14,17.97C5.68,16.81 5.03,16.5 5.03,16.5C4.12,15.88 5.1,15.9 5.1,15.9C6.1,15.97 6.63,16.93 6.63,16.93C7.5,18.45 8.97,18 9.54,17.76C9.63,17.11 9.89,16.67 10.17,16.42C7.95,16.17 5.62,15.31 5.62,11.5C5.62,10.39 6,9.5 6.65,8.79C6.55,8.54 6.2,7.5 6.75,6.15C6.75,6.15 7.59,5.88 9.5,7.17C10.29,6.95 11.15,6.84 12,6.84C12.85,6.84 13.71,6.95 14.5,7.17C16.41,5.88 17.25,6.15 17.25,6.15C17.8,7.5 17.45,8.54 17.35,8.79C18,9.5 18.38,10.39 18.38,11.5C18.38,15.32 16.04,16.16 13.81,16.41C14.17,16.72 14.5,17.33 14.5,18.26C14.5,19.6 14.5,20.68 14.5,21C14.5,21.27 14.66,21.59 15.17,21.5C19.14,20.16 22,16.42 22,12A10,10 0 0,0 12,2Z';\r\n static facebookIcon = 'M12 2.04C6.5 2.04 2 6.53 2 12.06C2 17.06 5.66 21.21 10.44 21.96V14.96H7.9V12.06H10.44V9.85C10.44 7.34 11.93 5.96 14.22 5.96C15.31 5.96 16.45 6.15 16.45 6.15V8.62H15.19C13.95 8.62 13.56 9.39 13.56 10.18V12.06H16.34L15.89 14.96H13.56V21.96A10 10 0 0 0 22 12.06C22 6.53 17.5 2.04 12 2.04Z';\r\n static whatsappIcon = 'M12.04 2C6.58 2 2.13 6.45 2.13 11.91C2.13 13.66 2.59 15.36 3.45 16.86L2.05 22L7.3 20.62C8.75 21.41 10.38 21.83 12.04 21.83C17.5 21.83 21.95 17.38 21.95 11.92C21.95 9.27 20.92 6.78 19.05 4.91C17.18 3.03 14.69 2 12.04 2M12.05 3.67C14.25 3.67 16.31 4.53 17.87 6.09C19.42 7.65 20.28 9.72 20.28 11.92C20.28 16.46 16.58 20.15 12.04 20.15C10.56 20.15 9.11 19.76 7.85 19L7.55 18.83L4.43 19.65L5.26 16.61L5.06 16.29C4.24 15 3.8 13.47 3.8 11.91C3.81 7.37 7.5 3.67 12.05 3.67M8.53 7.33C8.37 7.33 8.1 7.39 7.87 7.64C7.65 7.89 7 8.5 7 9.71C7 10.93 7.89 12.1 8 12.27C8.14 12.44 9.76 14.94 12.25 16C12.84 16.27 13.3 16.42 13.66 16.53C14.25 16.72 14.79 16.69 15.22 16.63C15.7 16.56 16.68 16.03 16.89 15.45C17.1 14.87 17.1 14.38 17.04 14.27C16.97 14.17 16.81 14.11 16.56 14C16.31 13.86 15.09 13.26 14.87 13.18C14.64 13.1 14.5 13.06 14.31 13.3C14.15 13.55 13.67 14.11 13.53 14.27C13.38 14.44 13.24 14.46 13 14.34C12.74 14.21 11.94 13.95 11 13.11C10.26 12.45 9.77 11.64 9.62 11.39C9.5 11.15 9.61 11 9.73 10.89C9.84 10.78 10 10.6 10.1 10.45C10.23 10.31 10.27 10.2 10.35 10.04C10.43 9.87 10.39 9.73 10.33 9.61C10.27 9.5 9.77 8.26 9.56 7.77C9.36 7.29 9.16 7.35 9 7.34C8.86 7.34 8.7 7.33 8.53 7.33Z';\r\n static wordpressIcon = \"M3.42,12C3.42,10.76 3.69,9.58 4.16,8.5L8.26,19.72C5.39,18.33 3.42,15.4 3.42,12M17.79,11.57C17.79,12.3 17.5,13.15 17.14,14.34L16.28,17.2L13.18,8L14.16,7.9C14.63,7.84 14.57,7.16 14.11,7.19C14.11,7.19 12.72,7.3 11.82,7.3L9.56,7.19C9.1,7.16 9.05,7.87 9.5,7.9L10.41,8L11.75,11.64L9.87,17.27L6.74,8L7.73,7.9C8.19,7.84 8.13,7.16 7.67,7.19C7.67,7.19 6.28,7.3 5.38,7.3L4.83,7.29C6.37,4.96 9,3.42 12,3.42C14.23,3.42 16.27,4.28 17.79,5.67H17.68C16.84,5.67 16.24,6.4 16.24,7.19C16.24,7.9 16.65,8.5 17.08,9.2C17.41,9.77 17.79,10.5 17.79,11.57M12.15,12.75L14.79,19.97L14.85,20.09C13.96,20.41 13,20.58 12,20.58C11.16,20.58 10.35,20.46 9.58,20.23L12.15,12.75M19.53,7.88C20.2,9.11 20.58,10.5 20.58,12C20.58,15.16 18.86,17.93 16.31,19.41L18.93,11.84C19.42,10.62 19.59,9.64 19.59,8.77L19.53,7.88M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,21.54C17.26,21.54 21.54,17.26 21.54,12C21.54,6.74 17.26,2.46 12,2.46C6.74,2.46 2.46,6.74 2.46,12C2.46,17.26 6.74,21.54 12,21.54Z\";\r\n static skypeIcon = \"M18,6C20.07,8.04 20.85,10.89 20.36,13.55C20.77,14.27 21,15.11 21,16A5,5 0 0,1 16,21C15.11,21 14.27,20.77 13.55,20.36C10.89,20.85 8.04,20.07 6,18C3.93,15.96 3.15,13.11 3.64,10.45C3.23,9.73 3,8.89 3,8A5,5 0 0,1 8,3C8.89,3 9.73,3.23 10.45,3.64C13.11,3.15 15.96,3.93 18,6M12.04,17.16C14.91,17.16 16.34,15.78 16.34,13.92C16.34,12.73 15.78,11.46 13.61,10.97L11.62,10.53C10.86,10.36 10,10.13 10,9.42C10,8.7 10.6,8.2 11.7,8.2C13.93,8.2 13.72,9.73 14.83,9.73C15.41,9.73 15.91,9.39 15.91,8.8C15.91,7.43 13.72,6.4 11.86,6.4C9.85,6.4 7.7,7.26 7.7,9.54C7.7,10.64 8.09,11.81 10.25,12.35L12.94,13.03C13.75,13.23 13.95,13.68 13.95,14.1C13.95,14.78 13.27,15.45 12.04,15.45C9.63,15.45 9.96,13.6 8.67,13.6C8.09,13.6 7.67,14 7.67,14.57C7.67,15.68 9,17.16 12.04,17.16Z\"\r\n static emailIcon = 'M12,15C12.81,15 13.5,14.7 14.11,14.11C14.7,13.5 15,12.81 15,12C15,11.19 14.7,10.5 14.11,9.89C13.5,9.3 12.81,9 12,9C11.19,9 10.5,9.3 9.89,9.89C9.3,10.5 9,11.19 9,12C9,12.81 9.3,13.5 9.89,14.11C10.5,14.7 11.19,15 12,15M12,2C14.75,2 17.1,3 19.05,4.95C21,6.9 22,9.25 22,12V13.45C22,14.45 21.65,15.3 21,16C20.3,16.67 19.5,17 18.5,17C17.3,17 16.31,16.5 15.56,15.5C14.56,16.5 13.38,17 12,17C10.63,17 9.45,16.5 8.46,15.54C7.5,14.55 7,13.38 7,12C7,10.63 7.5,9.45 8.46,8.46C9.45,7.5 10.63,7 12,7C13.38,7 14.55,7.5 15.54,8.46C16.5,9.45 17,10.63 17,12V13.45C17,13.86 17.16,14.22 17.46,14.53C17.76,14.84 18.11,15 18.5,15C18.92,15 19.27,14.84 19.57,14.53C19.87,14.22 20,13.86 20,13.45V12C20,9.81 19.23,7.93 17.65,6.35C16.07,4.77 14.19,4 12,4C9.81,4 7.93,4.77 6.35,6.35C4.77,7.93 4,9.81 4,12C4,14.19 4.77,16.07 6.35,17.65C7.93,19.23 9.81,20 12,20H17V22H12C9.25,22 6.9,21 4.95,19.05C3,17.1 2,14.75 2,12C2,9.25 3,6.9 4.95,4.95C6.9,3 9.25,2 12,2Z'\r\n static downloadIcon = 'M14,2L20,8V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2H14M18,20V9H13V4H6V20H18M12,19L8,15H10.5V12H13.5V15H16L12,19Z'\r\n\r\n // Common icons\r\n static buymeacoffee = 'M20.216 6.415l-.132-.666c-.119-.598-.388-1.163-1.001-1.379-.197-.069-.42-.098-.57-.241-.152-.143-.196-.366-.231-.572-.065-.378-.125-.756-.192-1.133-.057-.325-.102-.69-.25-.987-.195-.4-.597-.634-.996-.788a5.723 5.723 0 00-.626-.194c-1-.263-2.05-.36-3.077-.416a25.834 25.834 0 00-3.7.062c-.915.083-1.88.184-2.75.5-.318.116-.646.256-.888.501-.297.302-.393.77-.177 1.146.154.267.415.456.692.58.36.162.737.284 1.123.366 1.075.238 2.189.331 3.287.37 1.218.05 2.437.01 3.65-.118.299-.033.598-.073.896-.119.352-.054.578-.513.474-.834-.124-.383-.457-.531-.834-.473-.466.074-.96.108-1.382.146-1.177.08-2.358.082-3.536.006a22.228 22.228 0 01-1.157-.107c-.086-.01-.18-.025-.258-.036-.243-.036-.484-.08-.724-.13-.111-.027-.111-.185 0-.212h.005c.277-.06.557-.108.838-.147h.002c.131-.009.263-.032.394-.048a25.076 25.076 0 013.426-.12c.674.019 1.347.067 2.017.144l.228.031c.267.04.533.088.798.145.392.085.895.113 1.07.542.055.137.08.288.111.431l.319 1.484a.237.237 0 01-.199.284h-.003c-.037.006-.075.01-.112.015a36.704 36.704 0 01-4.743.295 37.059 37.059 0 01-4.699-.304c-.14-.017-.293-.042-.417-.06-.326-.048-.649-.108-.973-.161-.393-.065-.768-.032-1.123.161-.29.16-.527.404-.675.701-.154.316-.199.66-.267 1-.069.34-.176.707-.135 1.056.087.753.613 1.365 1.37 1.502a39.69 39.69 0 0011.343.376.483.483 0 01.535.53l-.071.697-1.018 9.907c-.041.41-.047.832-.125 1.237-.122.637-.553 1.028-1.182 1.171-.577.131-1.165.2-1.756.205-.656.004-1.31-.025-1.966-.022-.699.004-1.556-.06-2.095-.58-.475-.458-.54-1.174-.605-1.793l-.731-7.013-.322-3.094c-.037-.351-.286-.695-.678-.678-.336.015-.718.3-.678.679l.228 2.185.949 9.112c.147 1.344 1.174 2.068 2.446 2.272.742.12 1.503.144 2.257.156.966.016 1.942.053 2.892-.122 1.408-.258 2.465-1.198 2.616-2.657.34-3.332.683-6.663 1.024-9.995l.215-2.087a.484.484 0 01.39-.426c.402-.078.787-.212 1.074-.518.455-.488.546-1.124.385-1.766zm-1.478.772c-.145.137-.363.201-.578.233-2.416.359-4.866.54-7.308.46-1.748-.06-3.477-.254-5.207-.498-.17-.024-.353-.055-.47-.18-.22-.236-.111-.71-.054-.995.052-.26.152-.609.463-.646.484-.057 1.046.148 1.526.22.577.088 1.156.159 1.737.212 2.48.226 5.002.19 7.472-.14.45-.06.899-.13 1.345-.21.399-.072.84-.206 1.08.206.166.281.188.657.162.974a.544.544 0 01-.169.364zm-6.159 3.9c-.862.37-1.84.788-3.109.788a5.884 5.884 0 01-1.569-.217l.877 9.004c.065.78.717 1.38 1.5 1.38 0 0 1.243.065 1.658.065.447 0 1.786-.065 1.786-.065.783 0 1.434-.6 1.499-1.38l.94-9.95a3.996 3.996 0 00-1.322-.238c-.826 0-1.491.284-2.26.613z'\r\n static linkIcon = 'M10.59,13.41C11,13.8 11,14.44 10.59,14.83C10.2,15.22 9.56,15.22 9.17,14.83C7.22,12.88 7.22,9.71 9.17,7.76V7.76L12.71,4.22C14.66,2.27 17.83,2.27 19.78,4.22C21.73,6.17 21.73,9.34 19.78,11.29L18.29,12.78C18.3,11.96 18.17,11.14 17.89,10.36L18.36,9.88C19.54,8.71 19.54,6.81 18.36,5.64C17.19,4.46 15.29,4.46 14.12,5.64L10.59,9.17C9.41,10.34 9.41,12.24 10.59,13.41M13.41,9.17C13.8,8.78 14.44,8.78 14.83,9.17C16.78,11.12 16.78,14.29 14.83,16.24V16.24L11.29,19.78C9.34,21.73 6.17,21.73 4.22,19.78C2.27,17.83 2.27,14.66 4.22,12.71L5.71,11.22C5.7,12.04 5.83,12.86 6.11,13.65L5.64,14.12C4.46,15.29 4.46,17.19 5.64,18.36C6.81,19.54 8.71,19.54 9.88,18.36L13.41,14.83C14.59,13.66 14.59,11.76 13.41,10.59C13,10.2 13,9.56 13.41,9.17Z'\r\n static close = 'M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z'\r\n static fork = 'M6,2A3,3 0 0,1 9,5C9,6.28 8.19,7.38 7.06,7.81C7.15,8.27 7.39,8.83 8,9.63C9,10.92 11,12.83 12,14.17C13,12.83 15,10.92 16,9.63C16.61,8.83 16.85,8.27 16.94,7.81C15.81,7.38 15,6.28 15,5A3,3 0 0,1 18,2A3,3 0 0,1 21,5C21,6.32 20.14,7.45 18.95,7.85C18.87,8.37 18.64,9 18,9.83C17,11.17 15,13.08 14,14.38C13.39,15.17 13.15,15.73 13.06,16.19C14.19,16.62 15,17.72 15,19A3,3 0 0,1 12,22A3,3 0 0,1 9,19C9,17.72 9.81,16.62 10.94,16.19C10.85,15.73 10.61,15.17 10,14.38C9,13.08 7,11.17 6,9.83C5.36,9 5.13,8.37 5.05,7.85C3.86,7.45 3,6.32 3,5A3,3 0 0,1 6,2M6,4A1,1 0 0,0 5,5A1,1 0 0,0 6,6A1,1 0 0,0 7,5A1,1 0 0,0 6,4M18,4A1,1 0 0,0 17,5A1,1 0 0,0 18,6A1,1 0 0,0 19,5A1,1 0 0,0 18,4M12,18A1,1 0 0,0 11,19A1,1 0 0,0 12,20A1,1 0 0,0 13,19A1,1 0 0,0 12,18Z'\r\n static menu = 'M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z'\r\n static star = 'M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z'\r\n static palette = \"M17.5,12A1.5,1.5 0 0,1 16,10.5A1.5,1.5 0 0,1 17.5,9A1.5,1.5 0 0,1 19,10.5A1.5,1.5 0 0,1 17.5,12M14.5,8A1.5,1.5 0 0,1 13,6.5A1.5,1.5 0 0,1 14.5,5A1.5,1.5 0 0,1 16,6.5A1.5,1.5 0 0,1 14.5,8M9.5,8A1.5,1.5 0 0,1 8,6.5A1.5,1.5 0 0,1 9.5,5A1.5,1.5 0 0,1 11,6.5A1.5,1.5 0 0,1 9.5,8M6.5,12A1.5,1.5 0 0,1 5,10.5A1.5,1.5 0 0,1 6.5,9A1.5,1.5 0 0,1 8,10.5A1.5,1.5 0 0,1 6.5,12M12,3A9,9 0 0,0 3,12A9,9 0 0,0 12,21A1.5,1.5 0 0,0 13.5,19.5C13.5,19.11 13.35,18.76 13.11,18.5C12.88,18.23 12.73,17.88 12.73,17.5A1.5,1.5 0 0,1 14.23,16H16A5,5 0 0,0 21,11C21,6.58 16.97,3 12,3Z\"\r\n\r\n // not used anymore\r\n static circle = 'M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z'\r\n}","export class LocalImages {\r\n static avatar = '/avatar.png'\r\n static avatar_with_laptop = \"/avatar2.png\"\r\n}\r\n\r\nexport class WebImages {\r\n static giftIcon = 'https://user-images.githubusercontent.com/6418354/155841091-9bdc3b05-fabd-4e58-a0fd-fe90b08275e4.png'\r\n static flutterIcon = 'https://www.vectorlogo.zone/logos/flutterio/flutterio-icon.svg'\r\n}","import { OurIcons } from \"./OurIcons\"\r\nimport { NavBottomLinksInterface, TitledListItemInterface } from \"./Interfaces\"\r\nimport { WebImages } from \"./Images\"\r\n\r\nexport class GlobalVars {\r\n\r\n //\r\n static primaryColor = \"#00C853\"\r\n static otherColors: Array = [\r\n '#D50000', '#C51162', '#AA00FF', '#6200EA', '#304FFE',\r\n '#2962FF', '#0091EA', '#00B8D4', '#00BFA5', '#00C853',\r\n '#64DD17', '#AEEA00', '#FFD600', '#FFAB00', '#FF6D00',\r\n '#DD2C00'\r\n ]\r\n\r\n //\r\n static myName = 'Fayaz Bin Salam'\r\n static myOccupation = 'Software Engineer'\r\n static myDetails = 'Hark! I am Fayaz Bin Salam, an artful craftsman of software, weaving together intricate webs of code for mobile, web, and desktop. To me, the machines of silicon and plastic are naught but hollow shells, until they hear and heed the whispers of my command. Since 2009, I have honed my skills in the arcane art of programming, penning my first lines of code in Batch and VBScript. Through the years, I have delved deeper into the mysteries of C, C++, Java, Python, and the like, working my magic with libraries and frameworks such as ReactJS and Angular2+. The beauty of my work lies not just in its function, but in its constant evolution and growth. Indeed, I strive to kindle the spark of progress in all that surrounds me, illuminating the way towards a brighter future.'\r\n static myLeftAvatarImage = null\r\n static myRightAvatarImage = null\r\n static helperTexts = \"We have a form available for you to write down any queries you may have, which will be sent directly to me. Would you like to view the form now?\"\r\n static helperFormLink = \"\"\r\n\r\n static bottomLinks: Array = [\r\n {\r\n svgPath: OurIcons.whatsappIcon,\r\n link: 'https://api.whatsapp.com/send?phone=8801796306262'\r\n },\r\n {\r\n svgPath: OurIcons.emailIcon,\r\n link: 'mailto:p32929.ceo@gmail.com'\r\n },\r\n {\r\n svgPath: OurIcons.downloadIcon,\r\n link: 'https://docs.google.com/document/d/1W5U6FuZVPI6kfSDzjc5mJ0vEfey8tvxnb48tEku17lI/edit?usp=sharing'\r\n }\r\n ]\r\n\r\n static skills: Array = [\r\n {\r\n text: \"Programming / Markup Languages\",\r\n arr: [\r\n {\r\n title: 'C',\r\n logo: 'https://seeklogo.com/images/C/c-logo-672525892C-seeklogo.com.png',\r\n },\r\n {\r\n title: 'C++',\r\n logo: 'https://seeklogo.com/images/C/c-logo-1B1817C041-seeklogo.com.png',\r\n },\r\n {\r\n title: 'Java',\r\n logo: 'https://www.vectorlogo.zone/logos/java/java-icon.svg',\r\n },\r\n {\r\n title: 'Python',\r\n logo: 'https://www.vectorlogo.zone/logos/python/python-icon.svg',\r\n },\r\n {\r\n title: 'JavaScript',\r\n logo: 'https://www.vectorlogo.zone/logos/javascript/javascript-icon.svg',\r\n },\r\n {\r\n title: 'Rust',\r\n logo: 'https://www.rust-lang.org/static/images/rust-logo-blk.svg',\r\n },\r\n {\r\n title: 'HTML',\r\n logo: 'https://www.vectorlogo.zone/logos/w3_html5/w3_html5-icon.svg',\r\n },\r\n {\r\n title: 'CSS',\r\n logo: 'https://seeklogo.com/images/C/css3-logo-F1923C8D0E-seeklogo.com.png',\r\n },\r\n {\r\n title: 'TypeScript',\r\n logo: 'https://www.vectorlogo.zone/logos/typescriptlang/typescriptlang-icon.svg',\r\n },\r\n {\r\n title: 'Kotlin',\r\n logo: 'https://www.vectorlogo.zone/logos/kotlinlang/kotlinlang-icon.svg',\r\n },\r\n {\r\n title: 'Dart',\r\n logo: 'https://www.vectorlogo.zone/logos/dartlang/dartlang-icon.svg',\r\n },\r\n {\r\n title: 'Go',\r\n logo: 'https://go.dev/blog/go-brand/Go-Logo/SVG/Go-Logo_Blue.svg',\r\n },\r\n ]\r\n },\r\n {\r\n text: \"Databases\",\r\n arr: [\r\n {\r\n title: 'MongoDB',\r\n logo: 'https://cdn.iconscout.com/icon/free/png-128/mongodb-3521676-2945120.png'\r\n },\r\n {\r\n title: 'SQL',\r\n logo: 'https://w7.pngwing.com/pngs/28/601/png-transparent-sql-logo-illustration-microsoft-azure-sql-database-microsoft-sql-server-database-blue-text-logo-thumbnail.png',\r\n },\r\n {\r\n title: \"DynamoDB\",\r\n logo: 'https://cdn.worldvectorlogo.com/logos/aws-dynamodb.svg'\r\n },\r\n {\r\n title: \"PostgreSQL\",\r\n logo: 'https://wiki.postgresql.org/images/thumb/a/a4/PostgreSQL_logo.3colors.svg/540px-PostgreSQL_logo.3colors.svg.png'\r\n },\r\n ]\r\n },\r\n {\r\n text: \"UI Component Libraries\",\r\n arr: [\r\n {\r\n title: 'Ant Design',\r\n logo: 'https://gw.alipayobjects.com/zos/rmsportal/KDpgvguMpGfqaHPjicRK.svg'\r\n },\r\n {\r\n title: 'Material-UI',\r\n logo: 'https://mui.com/static/logo.png'\r\n },\r\n {\r\n title: 'Shadcn',\r\n logo: 'https://ui.shadcn.com/favicon.ico'\r\n },\r\n {\r\n title: 'Tailwind CSS',\r\n logo: 'https://upload.wikimedia.org/wikipedia/commons/thumb/d/d5/Tailwind_CSS_Logo.svg/512px-Tailwind_CSS_Logo.svg.png?20230715030042'\r\n },\r\n {\r\n title: 'Bootstrap',\r\n logo: 'https://upload.wikimedia.org/wikipedia/commons/thumb/b/b2/Bootstrap_logo.svg/512px-Bootstrap_logo.svg.png'\r\n },\r\n ]\r\n },\r\n {\r\n text: \"Libraries / Frameworks / Techs\",\r\n arr: [\r\n {\r\n title: 'Android App Development',\r\n logo: 'https://www.vectorlogo.zone/logos/android/android-icon.svg'\r\n },\r\n {\r\n title: 'NodeJS',\r\n logo: 'https://www.vectorlogo.zone/logos/nodejs/nodejs-icon.svg'\r\n },\r\n {\r\n title: 'ExpressJS',\r\n logo: 'https://www.vectorlogo.zone/logos/expressjs/expressjs-icon.svg'\r\n },\r\n {\r\n title: 'ReactJS',\r\n logo: 'https://www.vectorlogo.zone/logos/reactjs/reactjs-icon.svg'\r\n },\r\n {\r\n title: 'Redux',\r\n logo: 'https://w7.pngwing.com/pngs/669/447/png-transparent-redux-react-javascript-freecodecamp-npm-others-miscellaneous-purple-violet-thumbnail.png'\r\n },\r\n {\r\n title: 'React Native',\r\n logo: 'https://d33wubrfki0l68.cloudfront.net/554c3b0e09cf167f0281fda839a5433f2040b349/ecfc9/img/header_logo.svg'\r\n },\r\n {\r\n title: 'ElectronJS',\r\n logo: 'https://www.vectorlogo.zone/logos/electronjs/electronjs-icon.svg'\r\n },\r\n {\r\n title: 'Angular2+',\r\n logo: 'https://angular.io/assets/images/logos/angular/angular.svg'\r\n },\r\n {\r\n title: 'Mongoose',\r\n logo: 'https://avatars.githubusercontent.com/u/7552965?s=200&v=4'\r\n },\r\n {\r\n title: 'NextJS',\r\n logo: 'https://upload.wikimedia.org/wikipedia/commons/thumb/8/8e/Nextjs-logo.svg/207px-Nextjs-logo.svg.png'\r\n },\r\n {\r\n title: 'OpenCV',\r\n logo: 'https://www.vectorlogo.zone/logos/opencv/opencv-icon.svg'\r\n },\r\n {\r\n title: 'Firebase',\r\n logo: 'https://www.vectorlogo.zone/logos/firebase/firebase-icon.svg'\r\n },\r\n {\r\n title: 'Flutter',\r\n logo: 'https://www.vectorlogo.zone/logos/flutterio/flutterio-icon.svg'\r\n },\r\n {\r\n title: 'Beautiful soup',\r\n logo: 'https://github.com/3r4y/react-portfolio-template/assets/6418354/c9199eab-529b-4314-a990-c46deba899e9'\r\n },\r\n {\r\n title: 'Numpy',\r\n logo: 'https://numpy.org/images/logo.svg'\r\n },\r\n {\r\n title: 'Tauri',\r\n logo: 'https://raw.githubusercontent.com/tauri-apps/tauri/HEAD/app-icon.png'\r\n },\r\n {\r\n title: 'VueJS',\r\n logo: 'https://vuejs.org/images/logo.png'\r\n },\r\n {\r\n title: 'Pandas',\r\n logo: 'https://pandas.pydata.org/static/img/pandas.svg'\r\n },\r\n {\r\n title: 'Matplotlib',\r\n logo: 'https://matplotlib.org/3.1.0/_images/sphx_glr_logos2_001.png'\r\n },\r\n {\r\n title: 'Socket.io',\r\n logo: 'https://socket.io/images/logo.svg'\r\n },\r\n {\r\n title: 'Flask',\r\n logo: 'https://static.javatpoint.com/tutorial/flask/images/flask-tutorial.png'\r\n },\r\n {\r\n title: 'Docker',\r\n logo: 'https://cdn.iconscout.com/icon/free/png-128/docker-226091.png'\r\n },\r\n {\r\n title: 'Git',\r\n logo: 'https://www.vectorlogo.zone/logos/git-scm/git-scm-icon.svg'\r\n },\r\n {\r\n title: 'Expo',\r\n logo: 'https://www.vectorlogo.zone/logos/expoio/expoio-icon.svg'\r\n },\r\n {\r\n title: 'NgInx',\r\n logo: 'https://www.vectorlogo.zone/logos/nginx/nginx-icon.svg'\r\n },\r\n {\r\n title: 'NestJS',\r\n logo: 'https://d33wubrfki0l68.cloudfront.net/e937e774cbbe23635999615ad5d7732decad182a/26072/logo-small.ede75a6b.svg'\r\n },\r\n\r\n ]\r\n },\r\n {\r\n text: \"Others\",\r\n arr: [\r\n {\r\n title: 'Vim',\r\n logo: 'https://upload.wikimedia.org/wikipedia/commons/thumb/9/9f/Vimlogo.svg/544px-Vimlogo.svg.png?20150726190850'\r\n },\r\n {\r\n title: 'Android Studio',\r\n logo: 'https://upload.wikimedia.org/wikipedia/commons/thumb/9/95/Android_Studio_Icon_3.6.svg/512px-Android_Studio_Icon_3.6.svg.png?20210301045217'\r\n },\r\n {\r\n title: 'VS Code',\r\n logo: 'https://cdn.icon-icons.com/icons2/2107/PNG/512/file_type_vscode_icon_130084.png'\r\n },\r\n {\r\n title: 'Jira',\r\n logo: 'https://cdn.iconscout.com/icon/free/png-128/jira-3628861-3030001.png'\r\n },\r\n {\r\n title: 'AWS',\r\n logo: 'https://cdn.iconscout.com/icon/free/png-128/aws-1869025-1583149.png'\r\n },\r\n {\r\n title: 'DigitalOcean',\r\n logo: 'https://res.cloudinary.com/crunchbase-production/image/upload/c_lpad,h_170,w_170,f_auto,b_white,q_auto:eco,dpr_1/v1478792253/gnlwek2zwhq369yryrzv.jpg'\r\n },\r\n {\r\n title: 'Figma',\r\n logo: 'https://www.vectorlogo.zone/logos/figma/figma-icon.svg'\r\n },\r\n {\r\n title: 'Heroku',\r\n logo: 'https://www.vectorlogo.zone/logos/heroku/heroku-icon.svg'\r\n },\r\n {\r\n title: 'Yarn',\r\n logo: 'https://www.vectorlogo.zone/logos/yarnpkg/yarnpkg-icon.svg'\r\n },\r\n {\r\n title: 'npm',\r\n logo: 'https://www.vectorlogo.zone/logos/npmjs/npmjs-icon.svg'\r\n },\r\n {\r\n title: 'Tampermonkey',\r\n logo: 'https://lh3.googleusercontent.com/zoY8FwoOqPlBgFxcmFdNSK2Q4CcLmv-gw7vTjF2KMR9cEabwBsGNrHBTEMitn0Ba6OmCVJ0NcLnFGu3N97BP8Phu0g=w128-h128-e365-rj-sc0x00ffffff'\r\n },\r\n {\r\n title: 'Greasemonkey',\r\n logo: 'https://addons.mozilla.org/user-media/addon_icons/0/748-64.png?modified=1531822767'\r\n },\r\n {\r\n title: 'Linux',\r\n logo: 'https://www.freepnglogos.com/uploads/linux-png/file-icons-flat-linux-svg-wikimedia-commons-6.png'\r\n },\r\n {\r\n title: 'Adobe Photoshop',\r\n logo: 'https://www.adobe.com/content/dam/cc/icons/photoshop-mobile.svg'\r\n },\r\n ]\r\n },\r\n ]\r\n\r\n static works: Array = [\r\n {\r\n text: \"Web Apps\",\r\n arr: [\r\n {\r\n title: \"Duas\",\r\n link: \"https://p32929.github.io/duas/\",\r\n logo: \"https://p32929.github.io/duas/favicon.png\",\r\n desc: \"A collection of duas I try to regularly recite - created using flutter web\",\r\n featured: true,\r\n },\r\n {\r\n title: \"dobd.xyz\",\r\n link: \"https://www.dobd.xyz/\",\r\n logo: \"https://www.dobd.xyz/android-chrome-512x512.png\",\r\n desc: \"Best online downloader for YouTube, Facebook, Instagram, Tiktok and more\",\r\n featured: true,\r\n },\r\n {\r\n title: 'StartPage',\r\n logo: 'https://cdn.iconscout.com/icon/premium/png-128-thumb/homepage-2580329-2151669.png',\r\n desc: 'A minimalistic custom browser startpage that can be configured to your needs. ',\r\n link: 'https://p32929.github.io/startpage/'\r\n },\r\n {\r\n title: \"s3cr3tm3\",\r\n link: \"https://s3cr3tm3.netlify.app/\",\r\n logo: \"https://user-images.githubusercontent.com/6418354/173877444-59dbdd3d-1b5d-4b92-ad53-30fada9362d2.png\",\r\n desc: \"Share secret messages secretely\",\r\n featured: true,\r\n },\r\n {\r\n title: 'OrderZesty',\r\n logo: 'https://orderzesty.com/wp-content/uploads/2021/10/Zesty-icon@3x-300x300.png',\r\n desc: 'Personal chef service delivering fresh signature meals.',\r\n link: 'https://orderzesty.com/',\r\n featured: true,\r\n },\r\n {\r\n title: 'DramaDB',\r\n logo: 'https://dramadb.vercel.app/apple-icon.png',\r\n desc: 'A serverless hobby project that lets you filter Asian drama by country, genre, status, year and popularity',\r\n link: 'https://dramadb.vercel.app/'\r\n },\r\n {\r\n title: 'Sh0Sh0',\r\n logo: 'https://github.com/3r4y/react-portfolio-template/assets/6418354/a159e1d8-fabc-4f58-9391-0c3be4d14d7e',\r\n desc: 'A beautifully created Absolutely FREE URL shortener for everyone made using React Shadcn Firebase. ',\r\n link: 'https://sh0sh0.netlify.app/',\r\n },\r\n {\r\n title: \"TheRealWorldFree\",\r\n logo: \"https://www.therlworld.com/images/Group-427319400-1.webp\",\r\n desc: \"Enjoy the real world for free :)\",\r\n link: \"https://trwfree.vercel.app/\"\r\n },\r\n {\r\n title: \"BreakingMars\",\r\n logo: \"https://images.crunchbase.com/image/upload/c_pad,h_170,w_170,f_auto,b_white,q_auto:eco,dpr_1/lg6nxfb2dttgtng5kobb\",\r\n desc: '#1 Leading & Effortless Prospect Perceiving Platform',\r\n link: \"https://web.archive.org/web/20220413085335/https://www.breakingmars.com/\"\r\n },\r\n {\r\n title: \"Voomnow\",\r\n desc: \"Next generation audio recorder\",\r\n logo: \"https://user-images.githubusercontent.com/6418354/173876916-e27cb77f-49f1-4190-be54-4c1ddaa2973d.svg\",\r\n link: \"https://web.archive.org/web/20220326215025/https://www.voomnow.com/\"\r\n },\r\n {\r\n title: 'Shajao',\r\n logo: 'https://sdn.signalhire.co/storage/company/1dfc/9704/f9d3/ff49/cdce/31bb/c4d7/0628.webp',\r\n desc: 'Framing Happiness',\r\n link: \"https://web.archive.org/web/20191222090655/https://shajao.com/\"\r\n },\r\n {\r\n title: 'ChargeOnSite',\r\n logo: 'https://static.wixstatic.com/media/182a81_c4e4ee2bac6d4389a866239475519bdf~mv2.png/v1/fill/w_192%2Ch_192%2Clg_1%2Cusm_0.66_1.00_0.01/182a81_c4e4ee2bac6d4389a866239475519bdf~mv2.png',\r\n desc: 'Charge OnSite',\r\n link: \"https://www.chargeonsite.com/\",\r\n },\r\n ]\r\n },\r\n {\r\n text: \"iOS Apps\",\r\n arr: [\r\n {\r\n title: \"Adblock for YT\",\r\n link: \"https://apps.apple.com/au/app/adblock-for-youtube/id1592568016\",\r\n logo: \"https://is2-ssl.mzstatic.com/image/thumb/Purple126/v4/65/7e/a8/657ea8d9-c3aa-6951-38c8-948c05cd96c3/AppIcon-0-0-85-220-0-0-0-0-4-0-0-0-2x-sRGB-0-0-0-0-0.png/246x0w.webp\",\r\n desc: \"Removes ads from YT videos, embedded videos on third party websites and streams.\",\r\n featured: true\r\n },\r\n {\r\n title: \"Al Quran by Quran Touch\",\r\n link: \"https://apps.apple.com/gb/app/al-quran-by-quran-touch/id585240351\",\r\n logo: \"https://is3-ssl.mzstatic.com/image/thumb/Purple112/v4/9d/7e/ed/9d7eedd6-e567-5251-bed6-dce7e868bb57/AppIcon-0-1x_U007emarketing-0-10-0-85-220.png/246x0w.webp\",\r\n desc: \"The most comprehensive Muslim App!\",\r\n featured: true\r\n },\r\n ]\r\n },\r\n {\r\n text: \"Android Apps\",\r\n arr: [\r\n {\r\n title: \"Al Quran by Quran Touch\",\r\n link: \"https://www.apkmonk.com/app/com.qurantouch.qurantouchhd.app/\",\r\n logo: \"https://is3-ssl.mzstatic.com/image/thumb/Purple112/v4/9d/7e/ed/9d7eedd6-e567-5251-bed6-dce7e868bb57/AppIcon-0-1x_U007emarketing-0-10-0-85-220.png/246x0w.webp\",\r\n desc: \"The most comprehensive Muslim App!\"\r\n },\r\n {\r\n title: 'Thamao',\r\n logo: 'https://cdn.apkmonk.com/logos/com.thamao_150x150.png',\r\n desc: 'বাংলাদেশে স্মার্টফোনের চুরি এবার অসম্ভব',\r\n link: 'https://www.apkmonk.com/app/com.thamao/',\r\n featured: true,\r\n },\r\n {\r\n title: 'Desplash',\r\n logo: 'https://lh3.googleusercontent.com/ILrto9KguXlr-clbhYKUonpnHszgNp_N5Qvc8_u9QaM71oaqNKcYql2sV3sqZ7nqzsc=s180',\r\n desc: 'Automatic Free High Quality Wallpapers powered by Unsplash.com',\r\n link: 'https://www.xda-developers.com/desplash-wallpaper-app-unsplash/',\r\n featured: true,\r\n },\r\n {\r\n title: 'The Great Postman',\r\n logo: 'https://lh3.googleusercontent.com/ni-lk3b2nTMZyC7r1wYBW6cm9eYqGAN-t6fXV-kD0lSyw1lO3kenC1We71fZjSryvFII=s180',\r\n desc: 'Powerful, Lightweight REST API client for Android',\r\n link: 'https://apkcombo.com/es/rest-api-client-the-great-postman/p32929.greatpostman/'\r\n },\r\n {\r\n title: 'Sleepy - Addiction Remover',\r\n logo: 'https://user-images.githubusercontent.com/6418354/192146268-29e1bac2-e477-4010-ae03-96adecbf07e6.png',\r\n desc: 'The one and only EFFECTIVE addiction remover on Google Play store',\r\n link: 'https://apkcombo.com/es/sleepy-phone-addiction-controller/p32929.lazyphone/'\r\n },\r\n {\r\n title: 'Best CGPA Calculator',\r\n logo: 'https://user-images.githubusercontent.com/6418354/192146303-6e04c9ac-ffb2-4931-bb10-ef54ff7af382.png',\r\n desc: 'A simple yet effective CGPA Calculator for University students',\r\n link: 'https://apkcombo.com/es/cgpa-calculator-for-update-see-the-description/p32929.cgpa_calculator/',\r\n featured: true,\r\n },\r\n {\r\n title: 'Buy Sell BD',\r\n logo: 'https://image.winudf.com/v2/image1/cDMyOTI5LmJ1eXNlbGxiZF9pY29uXzE1NTkyOTQ5NjVfMDYz/icon.png?w=170&fakeurl=1',\r\n desc: 'A better & more reliable alternative for Bikroy.com - A marketplace app for buying-selling new/used goods',\r\n link: 'https://apkcombo.com/es/buy-sell-bd-buy-sell-everything-easily-in-bd/p32929.buysellbd/'\r\n },\r\n {\r\n title: 'ExIn',\r\n logo: 'https://lh3.googleusercontent.com/X8mRJd7JajvDXoW7NaluKt2IvC3osH6czkTPoWeSYJ96U2LWLKT4xiFgvNouwf-UvEk=s180',\r\n desc: 'A Simple & user friendly income-expense tracker ',\r\n link: \"https://apkcombo.com/es/exin-discontinued/p32929.exin/\",\r\n },\r\n {\r\n title: 'I am free',\r\n logo: 'https://image.winudf.com/v2/image1/cDMyOTI5LmltZnJlZV9pY29uXzE1NzY4ODAwNzVfMDU3/icon.png?w=170&fakeurl=1',\r\n desc: 'বেকার মুক্ত বাংলাদেশ গড়ার লক্ষ্যে - I am FREE',\r\n link: 'https://apkcombo.com/es/i-am-free/p32929.imfree/'\r\n },\r\n {\r\n title: 'Awesome NCTB',\r\n logo: 'https://image.winudf.com/v2/image1/b3JnLnJpY2hpdC5uY3RiX2ljb25fMTU3NjU3MjcwNF8wMjI/icon.png?fakeurl=1',\r\n desc: 'Download NCTB Books easily and Free',\r\n link: 'https://apkcombo.com/es/awesome-nctb/org.richit.nctb/'\r\n },\r\n {\r\n title: 'বৃক্ষ ( Brikkho )',\r\n logo: 'https://image.winudf.com/v2/image1/b3JnLnJpY2hpdC5icmlra2hvX2ljb25fMTU3MDEyMTU0Ml8wODA/icon.png?fakeurl=1',\r\n desc: 'Learn about trees in your fingertips',\r\n link: 'https://apkcombo.com/es/%E0%A6%AC%E0%A7%83%E0%A6%95%E0%A7%8D%E0%A6%B7-brikkho/org.richit.brikkho/'\r\n },\r\n {\r\n title: 'IQQuiz',\r\n logo: 'https://image.winudf.com/v2/image1/b3JnLnJpY2hpdC5pcXF1aXphcHBfaWNvbl8xNTcxMDE0NzcxXzA2Mg/icon.png?fakeurl=1',\r\n desc: 'A simple IQ game',\r\n link: 'https://apkcombo.com/es/iqquiz/org.richit.iqquizapp/'\r\n },\r\n {\r\n title: 'BirdsLover',\r\n logo: 'https://image.winudf.com/v2/image1/b3JnLnJpY2hpdC5iaXJkc2xvdmVyX2ljb25fMTU3MjAwNDIxNl8wOTE/icon.png?fakeurl=1',\r\n desc: 'Learn about birds in your fingertips',\r\n link: 'https://apkcombo.com/es/birdslover/org.richit.birdslover/'\r\n },\r\n {\r\n title: 'Animal Lover',\r\n logo: 'https://image.winudf.com/v2/image1/b3JnLnJpY2hpdC5hbmltYWxfaWNvbl8xNTc3MjkyMzIzXzAyMw/icon.png?fakeurl=1',\r\n desc: 'Learn about birds in your fingertips',\r\n link: 'https://apkcombo.com/es/animal-lover/org.richit.animal/'\r\n },\r\n {\r\n title: 'Jibanananda Recitation (Abritti)',\r\n logo: 'https://image.winudf.com/v2/image1/b3JnLnJpY2hpdC5qaWJvbmFuZG9rb2JpdGFzb21vZ3JvX2ljb25fMTU3MDEwNDExNF8wNDc/icon.png?fakeurl=1',\r\n desc: '50+ poems of Jibanananda Das with audio recitation',\r\n link: 'https://apkcombo.com/es/jibanananda-recitation-abritti/org.richit.jibonandokobitasomogro/'\r\n },\r\n {\r\n title: 'MathLover (Simple, Infinite, Math game)',\r\n logo: 'https://lh3.googleusercontent.com/GaisH_-MeK2c_ct4kp5qbqxbJPE-q4isTdZswR4CocgB8sLNCFk4beXdlmaaFuveKUwd',\r\n desc: 'MathLover is a simple, infinite mathematical problem solving game for everyone.',\r\n link: 'https://apkcombo.com/es/mathlover-simple-infinite-math-game/org.richit.mathblitz/',\r\n featured: true,\r\n },\r\n {\r\n title: 'Hospitals BD',\r\n logo: 'https://lh3.googleusercontent.com/MMfY8vG1YfAFh1w6iHEp8NXCwl-NSCUDmfPkUAWmqhSGfO3JR7vBvw_XZzV8JxrDag',\r\n desc: 'Get nearest Hospital Information in Bangladesh in your fingertips',\r\n link: 'https://apkcombo.com/es/hospitals-bd/org.richit.contacthospitals/'\r\n },\r\n {\r\n title: 'BirthdayBot',\r\n logo: WebImages.giftIcon,\r\n desc: 'Birthday wishing apps, made for individual people...',\r\n link: 'https://github.com/p32929/my_android_apps/releases/tag/all'\r\n },\r\n ]\r\n },\r\n {\r\n text: \"Desktop Apps\",\r\n arr: [\r\n {\r\n title: 'PotatoTimer',\r\n logo: 'https://raw.githubusercontent.com/p32929/PotatoTimer/master/resources/icon.ico',\r\n desc: 'A pomotodo app that forces you to take a break - created using ElectronJS',\r\n link: 'https://github.com/p32929/Electron-Pomotodo'\r\n },\r\n {\r\n title: 'Pomota',\r\n logo: 'https://github.com/p32929/pomota/blob/master/src-tauri/icons/128x128.png?raw=true',\r\n desc: 'A simple user-friendly cross-platform tauri based pomodoro timer app that forces you to take a break',\r\n link: 'https://github.com/p32929/pomota',\r\n featured: true,\r\n },\r\n {\r\n title: 'google-calender-widget',\r\n logo: 'https://duckduckgo.com/i/e2d8001c.png',\r\n desc: 'An unofficial google calendar desktop widget for Windows, Mac and Linux ',\r\n link: 'https://github.com/p32929/google-calender-widget',\r\n featured: true,\r\n },\r\n ]\r\n },\r\n {\r\n text: \"Command Line Interfaces ( CLIs )\",\r\n arr: [\r\n {\r\n title: 'Shortcut-Virus-Remover',\r\n logo: 'https://cdn-icons-png.flaticon.com/128/3223/3223766.png',\r\n desc: 'Shortcut virus remover script for Windows',\r\n link: 'https://github.com/p32929/Shortcut-Virus-Remover',\r\n featured: true,\r\n },\r\n {\r\n title: 'Fay',\r\n logo: 'https://crates.io/assets/cargo.png',\r\n desc: 'A simple cross platform CLI app written in Rust to automate multiple shell ( bash or cmd ) commands',\r\n link: 'https://crates.io/crates/fay'\r\n },\r\n {\r\n title: 'SIIN',\r\n logo: 'https://crates.io/assets/cargo.png',\r\n desc: 'A batch installer that downloads and installs a list of apps, written in Rust ( Kinda like Ninite )',\r\n link: 'https://crates.io/crates/siin'\r\n },\r\n\r\n ]\r\n },\r\n {\r\n text: \"Libraries / Packages / Crates\",\r\n arr: [\r\n {\r\n title: 'AndroidEasySQL-Library',\r\n logo: 'https://www.vectorlogo.zone/logos/android/android-icon.svg',\r\n desc: 'An Easier & Lazier approach to SQL database for Android',\r\n link: 'https://github.com/p32929/AndroidEasySQL-Library'\r\n },\r\n {\r\n title: 'AndroidAppLockscreen',\r\n logo: 'https://www.vectorlogo.zone/logos/android/android-icon.svg',\r\n desc: 'An Easier & Lazier approach to getting runtime permission in Android ',\r\n link: 'https://github.com/p32929/AndroidAppLockscreen'\r\n },\r\n {\r\n title: 'ManufacturerBatteryOptimization',\r\n logo: 'https://www.vectorlogo.zone/logos/android/android-icon.svg',\r\n desc: 'Simple helper class for Android Battery Optimization ignoring in some devices',\r\n link: 'https://gist.github.com/p32929/41e7af650f6a2c11e9306ab600fb9b03'\r\n },\r\n {\r\n title: 'MyHouseAdsAndroid',\r\n logo: 'https://www.vectorlogo.zone/logos/android/android-icon.svg',\r\n desc: 'A library for cross promoting own apps within own apps - for Android',\r\n link: 'https://github.com/p32929/MyHouseAdsAndroid'\r\n },\r\n {\r\n title: 'HouseAds2',\r\n logo: 'https://www.vectorlogo.zone/logos/android/android-icon.svg',\r\n desc: 'A library ( V2 ) for cross promoting own apps within own apps - for Android',\r\n link: 'https://github.com/p32929/HouseAds2'\r\n },\r\n {\r\n title: 'AndroidAppUpdater',\r\n logo: 'https://www.vectorlogo.zone/logos/android/android-icon.svg',\r\n desc: 'A simple, Lightweight App Updater Library for Android',\r\n link: 'https://github.com/p32929/AndroidAppUpdater'\r\n },\r\n {\r\n title: 'OfficeAbout',\r\n logo: 'https://www.vectorlogo.zone/logos/android/android-icon.svg',\r\n desc: 'A simple about screen library for Android for a Team of people',\r\n link: 'https://github.com/p32929/OfficeAbout'\r\n },\r\n {\r\n title: 'JsonViewerAndroid',\r\n logo: 'https://www.vectorlogo.zone/logos/android/android-icon.svg',\r\n desc: 'A simple JSON Viewer for Android',\r\n },\r\n {\r\n title: 'Android-Receivers-Library',\r\n logo: 'https://www.vectorlogo.zone/logos/android/android-icon.svg',\r\n desc: 'A library for simpler BroadcastReceiver implementations',\r\n },\r\n {\r\n title: 'Fay',\r\n logo: 'https://crates.io/assets/cargo.png',\r\n desc: 'A simple cross platform CLI app written in Rust to automate multiple shell ( bash or cmd ) commands',\r\n link: 'https://crates.io/crates/fay'\r\n },\r\n {\r\n title: 'fayfetch',\r\n logo: 'https://avatars.githubusercontent.com/u/6078720?s=200&v=4',\r\n desc: 'A simple wrapper for Fetch',\r\n link: 'https://www.npmjs.com/package/fayfetch'\r\n },\r\n {\r\n title: 'fjsondb',\r\n logo: 'https://avatars.githubusercontent.com/u/6078720?s=200&v=4',\r\n desc: 'A fast and simple JSON database for NodeJS',\r\n link: 'https://www.npmjs.com/package/fjsondb'\r\n },\r\n {\r\n title: 'str_template',\r\n logo: 'https://avatars.githubusercontent.com/u/6078720?s=200&v=4',\r\n desc: 'A fast and simple string templating library, written in TypeScript ( Supports both Client side and Server side JavaScript / TypeScript )',\r\n link: 'https://www.npmjs.com/package/str-template-ts'\r\n },\r\n {\r\n title: 'EasiestDB',\r\n logo: WebImages.flutterIcon,\r\n desc: 'The Easiest and the Laziest approach to Flutter SQL Database.',\r\n link: 'https://pub.dev/packages/easiestdb'\r\n },\r\n {\r\n title: \"Simply Wifi\",\r\n logo: WebImages.flutterIcon,\r\n desc: \"A simplified version of the wifi_iot package\",\r\n link: \"https://pub.dev/packages/simply_wifi\"\r\n },\r\n {\r\n title: \"audio_duration\",\r\n logo: WebImages.flutterIcon,\r\n desc: \"Just a simple flutter package to get the duration of any audio file ( like: mp3 ) in milliseconds\",\r\n link: \"https://pub.dev/packages/audio_duration\",\r\n }\r\n ]\r\n },\r\n {\r\n text: \"Extensions / Plugins / Addons\",\r\n arr: [\r\n {\r\n title: 'vscode-nvim-leave-insertmode',\r\n logo: 'https://code.visualstudio.com/assets/images/code-stable.png',\r\n desc: 'This basic VSCode extension ensures that neovim is in normal mode switching between text editor panels.',\r\n link: 'https://marketplace.visualstudio.com/items?itemName=p32929.vscode-nvim-leave-insertmode'\r\n },\r\n {\r\n title: 'one-console-log',\r\n logo: 'https://code.visualstudio.com/assets/images/code-stable.png',\r\n desc: 'A modified version of the turbo-console-log that adds only one line of console instead of multiples.',\r\n link: 'https://marketplace.visualstudio.com/items?itemName=p32929.one-console-log',\r\n featured: true,\r\n }\r\n ]\r\n },\r\n ]\r\n\r\n static contacts: Array = [\r\n {\r\n text: \"Contact me\",\r\n arr: [\r\n {\r\n title: 'WhatsApp ( Recommended )',\r\n logo: 'https://user-images.githubusercontent.com/6418354/155842184-b064bf36-de8e-4317-8f8e-cb7755eed995.png',\r\n link: 'https://api.whatsapp.com/send?phone=8801796306262',\r\n desc: \"+8801796306262\"\r\n },\r\n {\r\n title: 'Facebook',\r\n logo: 'https://user-images.githubusercontent.com/6418354/155840898-9e2327aa-a280-45e3-8266-8268242abda4.png',\r\n link: 'https://www.facebook.com/p32929'\r\n },\r\n {\r\n title: 'Email',\r\n logo: 'https://cdn3d.iconscout.com/3d/premium/thumb/email-address-4437044-3684811.png',\r\n desc: 'p32929.ceo@gmail.com',\r\n link: 'mailto:p32929.ceo@gmail.com'\r\n },\r\n {\r\n title: 'Download Resume',\r\n logo: 'https://cdn3d.iconscout.com/3d/premium/thumb/cv-6617242-5501765.png?f=webp',\r\n link: 'https://docs.google.com/document/d/1W5U6FuZVPI6kfSDzjc5mJ0vEfey8tvxnb48tEku17lI/edit?usp=sharing'\r\n },\r\n ]\r\n },\r\n {\r\n text: \"Others\",\r\n arr: [\r\n {\r\n title: 'Anywhere on the internet',\r\n logo: 'https://user-images.githubusercontent.com/6418354/155840900-91ac076a-8d2b-45dc-b346-66f72d376d4b.png',\r\n desc: \"@p32929\"\r\n },\r\n {\r\n title: 'GitHub',\r\n logo: 'https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png',\r\n link: 'https://github.com/p32929/'\r\n },\r\n {\r\n title: 'LinkedIn',\r\n logo: 'https://user-images.githubusercontent.com/6418354/155841027-8698cb12-7ddd-4604-a4ea-c618ddbc1cd8.png',\r\n link: 'https://www.linkedin.com/in/p32929/'\r\n },\r\n {\r\n title: 'Twitter',\r\n logo: 'https://user-images.githubusercontent.com/6418354/155841031-532d5d6e-797a-4da1-8064-48d266b69ab2.png',\r\n link: 'https://twitter.com/p32929'\r\n },\r\n {\r\n title: 'Instagram',\r\n logo: 'https://user-images.githubusercontent.com/6418354/155841023-0b842621-56a3-42ec-81f1-3944034b09c7.png',\r\n link: 'https://www.instagram.com/p32929/'\r\n },\r\n {\r\n title: 'Fiverr',\r\n logo: 'https://99designs-blog.imgix.net/blog/wp-content/uploads/2018/09/fiverr-2018.png?auto=format&q=60&fit=max&w=200',\r\n link: 'https://www.fiverr.com/users/fayazbinsalam/'\r\n },\r\n {\r\n title: \"Upwork\",\r\n logo: \"https://cdn.worldvectorlogo.com/logos/upwork.svg\",\r\n link: \"https://www.upwork.com/freelancers/~017dbf657b99b0c1c1\"\r\n },\r\n {\r\n title: \"Medium\",\r\n logo: \"https://seeklogo.com/images/M/medium-logo-93CDCF6451-seeklogo.com.png\",\r\n link: \"https://medium.com/@p32929_77176\"\r\n },\r\n {\r\n title: \"xda\",\r\n logo: \"https://www.svgrepo.com/show/331651/xda-developers.svg\",\r\n link: \"https://forum.xda-developers.com/m/p32929.5346826/\"\r\n },\r\n {\r\n title: \"Product Hunt\",\r\n logo: \"https://seeklogo.com/images/P/product-hunt-logo-A144953C4C-seeklogo.com.png?v=637846885100000000\",\r\n link: \"https://www.producthunt.com/@p32929\"\r\n },\r\n {\r\n title: \"UVA Online Judge\",\r\n logo: \"https://uhunt.onlinejudge.org/images/uva.png\",\r\n link: \"https://uhunt.onlinejudge.org/id/590978\"\r\n },\r\n {\r\n title: \"URI Online Judge\",\r\n logo: \"https://user-images.githubusercontent.com/26368939/110052090-be0a0b00-7d35-11eb-8827-993190a9568e.png\",\r\n link: \"https://www.beecrowd.com.br/judge/en/profile/76542\"\r\n },\r\n {\r\n title: \"Buy Me a Coffee\",\r\n logo: \"https://www.buymeacoffee.com/assets/img/guidelines/logo-mark-1.svg\",\r\n link: \"https://www.buymeacoffee.com/p32929\"\r\n },\r\n {\r\n title: 'Skype',\r\n logo: 'https://user-images.githubusercontent.com/6418354/155840899-62c1fe8e-66a6-4492-9acc-5bd504ac21ef.png',\r\n desc: 'p32929',\r\n link: 'skype:p32929?chat'\r\n },\r\n ]\r\n },\r\n {\r\n text: \"Thank you for visiting my portfolio\",\r\n arr: [\r\n {\r\n title: \"Click on the link button\",\r\n desc: 'To create your own portfolio. It will only take around 3 minutes',\r\n logo: WebImages.giftIcon,\r\n link: 'https://github.com/p32929/p32929.github.io/'\r\n }\r\n ]\r\n }\r\n ]\r\n}\r\n\r\n\r\n","import { GlobalVars } from \"../Others/GlobalVars\";\r\n\r\nexport interface State {\r\n primaryColor: string,\r\n isLeftShowing: boolean,\r\n isColorPickerDialogShowing: boolean,\r\n isMenuClicked: boolean,\r\n}\r\n\r\nexport const state: State = {\r\n primaryColor: GlobalVars.primaryColor,\r\n isLeftShowing: true,\r\n isColorPickerDialogShowing: false,\r\n isMenuClicked: false,\r\n}\r\n","import { Context } from './OvermindHelper'\r\n\r\n// export const increaseCounter = ({state}: Context, value: number) => {\r\n// state.counter += value;\r\n// }\r\n\r\nexport const setPrimaryColor = ({ state }: Context, value: string) => {\r\n state.primaryColor = value;\r\n}\r\n\r\nexport const showLeftPart = ({ state }: Context, value: boolean) => {\r\n state.isLeftShowing = value;\r\n}\r\n\r\nexport const showColorPickerDialog = ({ state }: Context, value: boolean) => {\r\n state.isColorPickerDialogShowing = value;\r\n}\r\n\r\nexport const setMenuClicked = ({ state }: Context, value: boolean) => {\r\n state.isMenuClicked = value;\r\n}\r\n\r\n","import {IContext} from 'overmind'\r\nimport {state} from './OvermindState'\r\nimport * as actions from './OvermindActions'\r\nimport {createActionsHook, createStateHook} from 'overmind-react'\r\n\r\nexport const config = {\r\n state,\r\n actions\r\n};\r\n\r\nexport type Context = IContext<{\r\n state: typeof config.state\r\n actions: typeof config.actions\r\n}>\r\n\r\n\r\nexport const useAppState = createStateHook()\r\nexport const useActions = createActionsHook()\r\n","import {createTheme} from '@material-ui/core/styles';\r\nimport {red} from '@material-ui/core/colors';\r\n\r\n// Create a theme instance.\r\nexport const theme = createTheme({\r\n palette: {\r\n primary: {\r\n main: '#556cd6',\r\n },\r\n secondary: {\r\n main: '#19857b',\r\n },\r\n error: {\r\n main: red.A400,\r\n },\r\n background: {\r\n default: '#fff',\r\n },\r\n action: {\r\n disabled: \"#212121\"\r\n }\r\n },\r\n overrides: {\r\n MuiAvatar: {\r\n img: {\r\n objectFit: 'contain',\r\n }\r\n }\r\n }\r\n});\r\n","import React from 'react'\r\nimport {makeStyles} from '@material-ui/core/styles';\r\nimport {Avatar, Grid, Theme, Typography} from \"@material-ui/core\";\r\nimport {useActions, useAppState} from '../../Overmind/OvermindHelper';\r\nimport {GlobalVars} from '../../Others/GlobalVars';\r\nimport {LocalImages} from '../../Others/Images';\r\n\r\ninterface Props {\r\n\r\n}\r\n\r\nconst getThemeObj = (theme: Theme) => {\r\n return {\r\n avatar: {\r\n height: 125,\r\n width: 125,\r\n },\r\n title: {\r\n color: \"#212121\",\r\n marginTop: 24,\r\n fontSize: 14,\r\n fontWeight: 600\r\n },\r\n subtitle: {\r\n fontSize: 12,\r\n color: \"#212121\",\r\n fontWeight: 600\r\n },\r\n }\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => (getThemeObj(theme)))\r\n\r\nconst AvatarText: React.FC = (props) => {\r\n const {} = useActions()\r\n const {} = useAppState()\r\n\r\n const classes = useStyles();\r\n\r\n return \r\n \r\n {GlobalVars.myName.toUpperCase()}\r\n {GlobalVars.myOccupation}\r\n \r\n}\r\n\r\nexport default AvatarText;","import React from 'react'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Grid, Theme } from \"@material-ui/core\";\r\nimport { useActions, useAppState } from '../Overmind/OvermindHelper';\r\n\r\ninterface Props {\r\n size: number,\r\n path: string,\r\n styles?: any,\r\n}\r\n\r\nconst getThemeObj = (theme: Theme) => {\r\n return {}\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => (getThemeObj(theme)))\r\n\r\nconst SvgHelper: React.FC = (props) => {\r\n const { } = useActions()\r\n const { primaryColor } = useAppState()\r\n\r\n const classes = useStyles();\r\n const { path, size, styles } = props\r\n\r\n return \r\n \r\n \r\n}\r\n\r\nexport default SvgHelper;","export class Constants {\r\n static routes: Array = [\r\n \"About\",\r\n \"Skills\",\r\n \"Works\",\r\n \"Contact\",\r\n ]\r\n}","import React from 'react'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Button, Divider, Grid, Hidden, IconButton, Theme } from \"@material-ui/core\";\r\nimport { useActions, useAppState } from '../../Overmind/OvermindHelper';\r\nimport { GlobalVars } from '../../Others/GlobalVars';\r\nimport { NavLink } from \"react-router-dom\";\r\nimport SvgHelper from '../../Helpers/SvgHelper';\r\nimport { OurIcons } from '../../Others/OurIcons';\r\nimport { useTheme } from \"@material-ui/core/styles\";\r\nimport useMediaQuery from \"@material-ui/core/useMediaQuery\";\r\nimport { Constants } from '../../Others/Constants';\r\n\r\ninterface Props {\r\n\r\n}\r\n\r\nconst getThemeObj = (theme: Theme) => {\r\n return {\r\n link: {\r\n marginLeft: 8,\r\n marginRight: 8,\r\n textDecoration: 'none'\r\n },\r\n divider: {\r\n height: 1,\r\n margin: 16,\r\n width: 90,\r\n alignSelf: 'center'\r\n },\r\n }\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => (getThemeObj(theme)))\r\n\r\nconst NavigationLinks: React.FC = (props) => {\r\n const { showLeftPart } = useActions()\r\n const { primaryColor } = useAppState()\r\n const classes = useStyles();\r\n\r\n const theme = useTheme()\r\n const belowSm = useMediaQuery(theme.breakpoints.down('sm'))\r\n\r\n return \r\n\r\n {/* @ts-ignore */}\r\n \r\n {\r\n showLeftPart(false)\r\n }}>\r\n \r\n \r\n \r\n\r\n \r\n\r\n {\r\n Constants.routes.map((item, index) => {\r\n return {\r\n if (belowSm) {\r\n showLeftPart(false)\r\n }\r\n }}\r\n size='small'\r\n component={NavLink}\r\n to={item.toLowerCase()}\r\n >{item}\r\n\r\n })\r\n }\r\n\r\n \r\n\r\n \r\n}\r\n\r\nexport default NavigationLinks;","import React from 'react'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Grid, IconButton, Theme } from \"@material-ui/core\";\r\nimport { useActions, useAppState } from '../../Overmind/OvermindHelper';\r\nimport { GlobalVars } from '../../Others/GlobalVars';\r\nimport SvgHelper from '../../Helpers/SvgHelper';\r\n\r\ninterface Props {\r\n\r\n}\r\n\r\nconst getThemeObj = (theme: Theme) => {\r\n return {\r\n root: { paddingBottom: 8, width: '100%' },\r\n iconButton: { margin: 3 }\r\n }\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => (getThemeObj(theme)))\r\n\r\nconst BottomNavigationLinks: React.FC = (props) => {\r\n const { } = useActions()\r\n const { } = useAppState()\r\n\r\n const classes = useStyles();\r\n\r\n return \r\n {\r\n GlobalVars.bottomLinks.map((item, index) => {\r\n return \r\n \r\n \r\n })\r\n }\r\n \r\n}\r\n\r\nexport default BottomNavigationLinks;","import React from 'react'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Theme, Grid, Paper } from \"@material-ui/core\";\r\nimport { useActions, useAppState } from '../Overmind/OvermindHelper';\r\nimport AvatarText from './Left/AvatarText';\r\nimport NavigationLinks from './Left/NavigationLinks';\r\nimport BottomNavigationLinks from './Left/BottomNavigationLinks';\r\n\r\ninterface Props {\r\n\r\n}\r\n\r\nconst getThemeObj = (theme: Theme) => {\r\n return {\r\n root: {\r\n height: '100%',\r\n width: '100%',\r\n margin: 0,\r\n padding: 0\r\n }\r\n }\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => (getThemeObj(theme)))\r\n\r\nconst LeftPart: React.FC = (props) => {\r\n const { } = useActions()\r\n const { } = useAppState()\r\n\r\n const classes = useStyles();\r\n\r\n return \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n}\r\n\r\nexport default LeftPart;","export class GlobalMethods {\r\n static getHeightWidthWeb = () => {\r\n console.debug(\"Web\");\r\n\r\n return {\r\n width: `calc(100% - 316px)`,\r\n height: `calc(100% - 168px)`\r\n }\r\n }\r\n\r\n static getHeightWidthMobile = () => {\r\n console.debug(\"Mobile\");\r\n\r\n return {\r\n width: `calc(100% - 48px)`,\r\n height: `calc(100% - 48px)`\r\n }\r\n }\r\n}","import React, { useState } from 'react'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Button, Divider, Grid, Hidden, IconButton, Theme } from \"@material-ui/core\";\r\nimport { useActions, useAppState } from '../../../Overmind/OvermindHelper';\r\nimport SvgHelper from '../../../Helpers/SvgHelper';\r\nimport { OurIcons } from '../../../Others/OurIcons';\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\ninterface Props {\r\n\r\n}\r\n\r\nconst getThemeObj = (theme: Theme) => {\r\n return {\r\n root: {\r\n padding: 16\r\n },\r\n divider: {\r\n height: 1,\r\n marginTop: 8,\r\n [theme.breakpoints.down('sm')]: {\r\n width: 160\r\n },\r\n [theme.breakpoints.up('md')]: {\r\n width: 200\r\n },\r\n },\r\n currentRoute: {\r\n fontSize: 14,\r\n fontWeight: 600,\r\n cursor: 'none',\r\n }\r\n }\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => (getThemeObj(theme)))\r\n\r\nconst RouteLocation: React.FC = (props) => {\r\n const { showLeftPart, setMenuClicked } = useActions()\r\n let location = useLocation();\r\n const { primaryColor, isMenuClicked } = useAppState()\r\n\r\n const classes = useStyles();\r\n\r\n return \r\n \r\n {/* @ts-ignore */}\r\n \r\n {\r\n showLeftPart(true)\r\n setMenuClicked(true)\r\n }}>\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n
\r\n\r\n}\r\n\r\nexport default RouteLocation;","import React from 'react'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Button, Divider, Grid, IconButton, Theme } from \"@material-ui/core\";\r\nimport { useActions, useAppState } from '../../../Overmind/OvermindHelper';\r\nimport SvgHelper from '../../../Helpers/SvgHelper';\r\nimport { OurIcons } from '../../../Others/OurIcons';\r\n\r\ninterface Props {\r\n\r\n}\r\n\r\nconst getThemeObj = (theme: Theme) => {\r\n return {\r\n iconButton: {\r\n padding: 8\r\n }\r\n }\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => (getThemeObj(theme)))\r\n\r\nconst TopRightButtons: React.FC = (props) => {\r\n const { setPrimaryColor, showColorPickerDialog } = useActions()\r\n const { } = useAppState()\r\n\r\n const classes = useStyles();\r\n\r\n return \r\n {/*\r\n PLEASE, DON'T CHANGE THIS GITHUB URL.\r\n ( https://github.com/p32929/p32929.github.io/ )\r\n */}\r\n \r\n \r\n \r\n\r\n {/*\r\n YOU MAY USE THE SOURCE CODE HOWEVER YOU WANT, BUT PLEASE,\r\n KEEP THE GITHUB-ICON & the GITHUB-URL under the icon UNCHANGED,\r\n SO THAT OTHERS CAN ALSO BENIFIT FROM THE ORIGINAL REPOSITORY.\r\n THANKS... :)\r\n */}\r\n\r\n {\r\n showColorPickerDialog(true)\r\n }}>\r\n \r\n \r\n \r\n\r\n}\r\n\r\nexport default TopRightButtons;","import React from 'react'\r\nimport {makeStyles} from '@material-ui/core/styles';\r\nimport {Grid, Theme, Typography} from \"@material-ui/core\";\r\nimport {useActions, useAppState} from '../../Overmind/OvermindHelper';\r\nimport SvgHelper from '../../Helpers/SvgHelper';\r\nimport {OurIcons} from '../../Others/OurIcons';\r\n\r\ninterface Props {\r\n title: string,\r\n fontStyle?: any\r\n}\r\n\r\nconst getThemeObj = (theme: Theme) => {\r\n return {\r\n root: {\r\n marginLeft: 8,\r\n },\r\n text: {\r\n marginLeft: 8,\r\n marginRight: 8,\r\n fontSize: 12,\r\n fontWeight: 600,\r\n color: \"#757575\"\r\n }\r\n }\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => (getThemeObj(theme)))\r\n\r\nconst ListTitle: React.FC = (props) => {\r\n const {} = useActions()\r\n const {} = useAppState()\r\n const {title, fontStyle} = props\r\n const classes = useStyles();\r\n\r\n return \r\n \r\n {title}\r\n \r\n\r\n}\r\n\r\nexport default ListTitle;","import React from 'react'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Avatar, Grid, IconButton, Paper, Theme, Typography } from \"@material-ui/core\";\r\nimport { useActions, useAppState } from '../../Overmind/OvermindHelper';\r\nimport { ListItemInterface } from '../../Others/Interfaces';\r\nimport SvgHelper from '../../Helpers/SvgHelper';\r\nimport { OurIcons } from '../../Others/OurIcons';\r\n\r\ninterface Props {\r\n item: ListItemInterface\r\n}\r\n\r\nconst getThemeObj = (theme: Theme) => {\r\n return {\r\n root: {\r\n padding: 2,\r\n },\r\n textContainer: {\r\n paddingTop: 16,\r\n paddingBottom: 16,\r\n overflow: 'hidden',\r\n alignSelf: 'center'\r\n },\r\n avatar: {\r\n margin: 16,\r\n },\r\n title: {\r\n color: \"#212121\",\r\n lineHeight: 1.25\r\n },\r\n desc: {\r\n color: \"#757575\",\r\n lineHeight: 1.25,\r\n overflow: 'hidden',\r\n }\r\n }\r\n}\r\n\r\n// const getLinkIcon = (url: string | undefined) => {\r\n// if (url) {\r\n// if (url.toString().includes('http') || url.toString().includes('skype:')) {\r\n// return \r\n// {\r\n// setTimeout(() => {\r\n\r\n// }, 500)\r\n// }}\r\n// target=\"_blank\"\r\n// href={url}\r\n// size='small'>\r\n// \r\n// \r\n// \r\n// }\r\n// }\r\n// }\r\n\r\ninterface LinkIconProps {\r\n url: string | undefined;\r\n}\r\n\r\nconst LinkIcon: React.FC = (props) => {\r\n const { } = useActions()\r\n const { url } = props\r\n\r\n const isLinkString = () => {\r\n const linkStrings = [\r\n 'http',\r\n 'skype:',\r\n 'mailto:'\r\n ]\r\n\r\n for (var i = 0; i < linkStrings.length; i++) {\r\n if ((props?.url ?? \"\").toString().toLowerCase().includes(linkStrings[i])) {\r\n return true\r\n }\r\n }\r\n\r\n return false\r\n }\r\n\r\n if (url) {\r\n if (isLinkString()) {\r\n return \r\n {\r\n e.stopPropagation()\r\n }}\r\n target=\"_blank\"\r\n href={url}\r\n size='small'>\r\n \r\n \r\n \r\n }\r\n }\r\n\r\n return <>\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => (getThemeObj(theme)))\r\n\r\nconst OurListItem: React.FC = (props) => {\r\n const { } = useActions()\r\n const { } = useAppState()\r\n\r\n const classes = useStyles();\r\n const { item } = props\r\n const { logo, title, desc, link } = item\r\n\r\n return \r\n {\r\n if (!link) {\r\n //\r\n }\r\n }}>\r\n \r\n \r\n\r\n \r\n {title}\r\n {\r\n (desc || link) &&\r\n {desc || link}\r\n }\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n}\r\n\r\nexport default OurListItem;","import React from 'react'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Button, Divider, Grid, Theme } from \"@material-ui/core\";\r\nimport { useActions, useAppState } from '../../Overmind/OvermindHelper';\r\nimport { TitledListItemInterface } from '../../Others/Interfaces';\r\nimport ListTitle from './ListTitle';\r\nimport OurListItem from './OurListItem';\r\n\r\ninterface Props {\r\n item: TitledListItemInterface\r\n}\r\n\r\nconst getThemeObj = (theme: Theme) => {\r\n return {\r\n root: {\r\n marginTop: 4,\r\n marginLeft: 8,\r\n marginBottom: 16,\r\n },\r\n itemRoot: {\r\n marginTop: 8\r\n }\r\n }\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => (getThemeObj(theme)))\r\n\r\nconst ListItemWithIcon: React.FC = (props) => {\r\n const { } = useActions()\r\n const { } = useAppState()\r\n const { item } = props\r\n const { text, arr } = item\r\n\r\n const classes = useStyles();\r\n\r\n return \r\n \r\n \r\n {\r\n arr.sort((a, b) => a.title.localeCompare(b.title)).map((arrItem, index) => {\r\n return \r\n })\r\n }\r\n \r\n \r\n\r\n}\r\n\r\nexport default ListItemWithIcon;","import React, { useEffect, useState } from 'react'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Button, Divider, Grid, Theme } from \"@material-ui/core\";\r\nimport { useActions, useAppState } from '../../../Overmind/OvermindHelper';\r\nimport { GlobalVars } from '../../../Others/GlobalVars';\r\nimport ListItemWithIcon from '../../Items/ListItemWithIcon';\r\nimport { OurIcons } from \"../../../Others/OurIcons\";\r\nimport { WebImages } from \"../../../Others/Images\";\r\nimport { TitledListItemInterface } from \"../../../Others/Interfaces\";\r\n\r\ninterface Props {\r\n\r\n}\r\n\r\nconst getThemeObj = (theme: Theme) => {\r\n return {}\r\n}\r\n\r\ninterface GithubResp {\r\n name: string;\r\n html_url: string;\r\n description: string;\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => (getThemeObj(theme)))\r\n\r\nconst WorksRoute: React.FC = (props) => {\r\n const { } = useActions()\r\n const { } = useAppState()\r\n const [works, setWorks] = useState>([])\r\n const classes = useStyles();\r\n\r\n // const getGithubRepos = async () => {\r\n // console.debug(`getGithubRepos`)\r\n // const data = await fetch(`https://api.github.com/users/${GlobalVars.myGithubUsername}/repos?per_page=999`)\r\n // const jsonFromFetch = await data.json()\r\n // const json: Array = jsonFromFetch\r\n\r\n // var newWorks: Array = [\r\n // ...getWorks()\r\n // ]\r\n // var newWOrkObj: TitledListItemInterface = {\r\n // text: \"Others\",\r\n // arr: []\r\n // }\r\n\r\n // for (var i = 0; i < json.length; i++) {\r\n // const obj = json[i]\r\n // newWOrkObj?.arr?.push({\r\n // title: obj.name,\r\n // logo: WebImages.giftIcon,\r\n // desc: obj.description,\r\n // link: obj.html_url\r\n // })\r\n // }\r\n // newWorks.push(newWOrkObj)\r\n // setWorks(newWorks)\r\n // }\r\n\r\n const addFeaturedItems = () => {\r\n const featuredItems: TitledListItemInterface = {\r\n text: \"Featured\",\r\n arr: [],\r\n }\r\n for (var i = 0; i < getWorks().length; i++) {\r\n for (var j = 0; j < getWorks()[i].arr.length; j++) {\r\n if (getWorks()[i].arr[j]?.featured) {\r\n featuredItems.arr.push(getWorks()[i].arr[j])\r\n }\r\n }\r\n }\r\n var newWorks: Array = [\r\n featuredItems,\r\n ...getWorks(),\r\n ]\r\n setWorks(newWorks)\r\n }\r\n\r\n useEffect(() => {\r\n addFeaturedItems()\r\n }, [])\r\n\r\n const getWorks = () => {\r\n if (works.length > 0) {\r\n return works\r\n } else {\r\n return GlobalVars.works\r\n }\r\n }\r\n\r\n return \r\n {\r\n getWorks().map((item, index) => {\r\n return \r\n })\r\n }\r\n \r\n\r\n}\r\n\r\nexport default WorksRoute;","import React from 'react'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Button, Divider, Grid, Theme } from \"@material-ui/core\";\r\nimport { useActions, useAppState } from '../../../Overmind/OvermindHelper';\r\nimport { GlobalVars } from '../../../Others/GlobalVars';\r\nimport ListItemWithIcon from '../../Items/ListItemWithIcon';\r\n\r\ninterface Props {\r\n\r\n}\r\n\r\nconst getThemeObj = (theme: Theme) => {\r\n return {}\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => (getThemeObj(theme)))\r\n\r\nconst ContactRoute: React.FC = (props) => {\r\n const { } = useActions()\r\n const { } = useAppState()\r\n\r\n const classes = useStyles();\r\n\r\n return \r\n {\r\n GlobalVars.contacts.map((item, index) => {\r\n return \r\n })\r\n }\r\n \r\n\r\n}\r\n\r\nexport default ContactRoute;","import React from 'react'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Button, Divider, Grid, Theme } from \"@material-ui/core\";\r\nimport { useActions, useAppState } from '../../../Overmind/OvermindHelper';\r\nimport { GlobalVars } from '../../../Others/GlobalVars';\r\nimport ListItemWithIcon from '../../Items/ListItemWithIcon';\r\n\r\ninterface Props {\r\n\r\n}\r\n\r\nconst getThemeObj = (theme: Theme) => {\r\n return {}\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => (getThemeObj(theme)))\r\n\r\nconst SkillsRoute: React.FC = (props) => {\r\n const { } = useActions()\r\n const { } = useAppState()\r\n\r\n const classes = useStyles();\r\n\r\n return \r\n {\r\n GlobalVars.skills.map((item, index) => {\r\n return \r\n })\r\n }\r\n \r\n\r\n}\r\n\r\nexport default SkillsRoute;","import React from 'react'\r\nimport {makeStyles, useTheme} from '@material-ui/core/styles';\r\nimport {Grid, Theme, Typography} from \"@material-ui/core\";\r\nimport {useActions, useAppState} from '../../../Overmind/OvermindHelper';\r\nimport {LocalImages} from '../../../Others/Images';\r\nimport useMediaQuery from \"@material-ui/core/useMediaQuery\";\r\nimport ListTitle from '../../Items/ListTitle';\r\nimport {GlobalVars} from '../../../Others/GlobalVars';\r\n\r\ninterface Props {\r\n\r\n}\r\n\r\nconst aboveSmAvatarSize = {height: '95%'}\r\nconst belowSmAvatarSize = {height: '75%'}\r\n\r\nconst getThemeObj = (theme: Theme) => {\r\n return {\r\n root: {\r\n padding: 8\r\n },\r\n text: {\r\n paddingLeft: 8,\r\n paddingBottom: 8,\r\n lineHeight: 1.3,\r\n fontWeight: 400,\r\n [theme.breakpoints.up('xl')]: {\r\n fontSize: 18,\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n fontSize: 14,\r\n },\r\n }\r\n }\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => (getThemeObj(theme)))\r\n\r\nconst AboutRoute: React.FC = (props) => {\r\n const {} = useActions()\r\n const {} = useAppState()\r\n\r\n const classes = useStyles();\r\n\r\n const theme = useTheme()\r\n const belowSm = useMediaQuery(theme.breakpoints.down('sm'))\r\n\r\n return \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {GlobalVars.myDetails}\r\n \r\n \r\n\r\n \r\n\r\n}\r\n\r\nexport default AboutRoute;","import React, { useEffect, useState } from 'react'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Theme, Grid, useMediaQuery, useTheme } from \"@material-ui/core\";\r\nimport { useActions, useAppState } from '../Overmind/OvermindHelper';\r\nimport RouteLocation from './Right/Top/RouteLocation';\r\nimport TopRightButtons from './Right/Top/TopRightButtons';\r\nimport WorksRoute from './Right/Routes/WorksRoute';\r\nimport ContactRoute from './Right/Routes/ContactRoute';\r\nimport SkillsRoute from './Right/Routes/SkillsRoute';\r\nimport AboutRoute from './Right/Routes/AboutRoute';\r\nimport { GlobalVars } from '../Others/GlobalVars';\r\nimport {\r\n BrowserRouter as Router,\r\n Switch,\r\n Route,\r\n Link,\r\n useLocation\r\n} from \"react-router-dom\";\r\nimport { Constants } from '../Others/Constants';\r\n\r\ninterface Props {\r\n\r\n}\r\n\r\nconst getThemeObj = (theme: Theme) => {\r\n return {\r\n root: {\r\n padding: 16,\r\n },\r\n content: {\r\n paddingRight: 8,\r\n maxHeight: '100vh',\r\n maxWidth: '100%',\r\n }\r\n }\r\n}\r\n\r\nconst routes = [\r\n AboutRoute,\r\n SkillsRoute,\r\n WorksRoute,\r\n ContactRoute,\r\n]\r\n\r\nconst useStyles = makeStyles((theme: Theme) => (getThemeObj(theme)))\r\n\r\nconst RightPart: React.FC = (props) => {\r\n const { } = useActions()\r\n const { isLeftShowing } = useAppState()\r\n const classes = useStyles();\r\n const [contentHeight, setContentHeight] = useState(0)\r\n\r\n const theme = useTheme()\r\n const belowSm = useMediaQuery(theme.breakpoints.down('sm'))\r\n let location = useLocation();\r\n\r\n useEffect(() => {\r\n const rc = document.getElementById('container')\r\n const rt = document.getElementById('right-top')\r\n const rb = document.getElementById('right-bottom')\r\n\r\n if (rc && rt) {\r\n const height = rc?.offsetHeight - rt?.offsetHeight\r\n console.log(\"Height: \" + height);\r\n\r\n setContentHeight(height)\r\n }\r\n }, [isLeftShowing, belowSm])\r\n\r\n useEffect(() => {\r\n document?.getElementById('right-bottom')?.scroll(0, 0)\r\n }, [location])\r\n\r\n return \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n Constants.routes.map((item, index) => {\r\n return \r\n })\r\n }\r\n \r\n \r\n \r\n}\r\n\r\nexport default RightPart;","import React from 'react'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Button, Dialog, DialogContent, Divider, Grid, Theme } from \"@material-ui/core\";\r\nimport { useActions, useAppState } from '../../Overmind/OvermindHelper';\r\nimport { BlockPicker } from 'react-color'\r\nimport { GlobalVars } from '../../Others/GlobalVars';\r\n\r\ninterface Props {\r\n\r\n}\r\n\r\nconst getThemeObj = (theme: Theme) => {\r\n return {}\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => (getThemeObj(theme)))\r\n\r\nconst ColorPickerDialog: React.FC = (props) => {\r\n const { setPrimaryColor, showColorPickerDialog } = useActions()\r\n const { primaryColor, isColorPickerDialogShowing } = useAppState()\r\n\r\n const classes = useStyles();\r\n\r\n return {\r\n showColorPickerDialog(false)\r\n }}>\r\n \r\n {\r\n setPrimaryColor(color.hex)\r\n showColorPickerDialog(false)\r\n }}\r\n colors={GlobalVars.otherColors}\r\n />\r\n \r\n \r\n}\r\n\r\nexport default ColorPickerDialog;","import React from 'react'\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Theme, Grid, Paper } from \"@material-ui/core\";\r\nimport { useActions, useAppState } from './Overmind/OvermindHelper';\r\nimport LeftPart from './Components/LeftPart';\r\nimport { GlobalMethods } from './Others/GlobalMethods';\r\nimport RightPart from './Components/RightPart';\r\nimport { useTheme } from \"@material-ui/core/styles\";\r\nimport useMediaQuery from \"@material-ui/core/useMediaQuery\";\r\nimport { MemoryRouter, Route, Redirect } from 'react-router-dom';\r\nimport ColorPickerDialog from './Components/Dialogs/ColorPickerDialog';\r\n\r\ninterface Props {\r\n\r\n}\r\n\r\nconst getThemeObj = (theme: Theme) => {\r\n return {\r\n root: {\r\n height: '100vh',\r\n maxHeight: '100vh',\r\n },\r\n content: {\r\n height: '100%',\r\n width: '100%'\r\n },\r\n paper: {\r\n [theme.breakpoints.down('sm')]: GlobalMethods.getHeightWidthMobile(),\r\n [theme.breakpoints.up('md')]: GlobalMethods.getHeightWidthWeb(),\r\n }\r\n }\r\n}\r\n\r\nconst useStyles = makeStyles((theme: Theme) => (getThemeObj(theme)))\r\nvar hiddenLeftFirstTime = false\r\n\r\nconst App: React.FC = (props) => {\r\n const { showLeftPart } = useActions()\r\n const { primaryColor, isLeftShowing } = useAppState()\r\n const classes = useStyles();\r\n\r\n const theme = useTheme()\r\n const belowSm = useMediaQuery(theme.breakpoints.down('sm'))\r\n\r\n if (belowSm) {\r\n if (!hiddenLeftFirstTime) {\r\n setTimeout(() => {\r\n showLeftPart(false)\r\n hiddenLeftFirstTime = true\r\n }, 700)\r\n }\r\n }\r\n\r\n const getLeftPart = () => {\r\n if (belowSm) {\r\n if (isLeftShowing) {\r\n return \r\n }\r\n } else {\r\n return \r\n }\r\n }\r\n\r\n const getRightPart = () => {\r\n if (belowSm) {\r\n if (!isLeftShowing) {\r\n return \r\n }\r\n } else {\r\n return \r\n }\r\n }\r\n\r\n return \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n\r\n \r\n {\r\n getLeftPart()\r\n }\r\n\r\n {\r\n getRightPart()\r\n }\r\n \r\n \r\n \r\n \r\n}\r\n\r\nexport default App;","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport reportWebVitals from './reportWebVitals';\r\nimport { Provider } from \"overmind-react\";\r\nimport { ThemeProvider } from '@material-ui/core';\r\nimport { createOvermind } from 'overmind'\r\nimport { config } from './Overmind/OvermindHelper'\r\nimport { theme } from \"./Others/Theme\";\r\nimport App from './App';\r\nimport { GlobalVars } from './Others/GlobalVars';\r\n\r\nconst overmind = createOvermind(config)\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\ndocument.title = GlobalVars.myName;\r\n"],"sourceRoot":""} \ No newline at end of file