diff --git a/.next/BUILD_ID b/.next/BUILD_ID index dfdb8dc..a618132 100644 --- a/.next/BUILD_ID +++ b/.next/BUILD_ID @@ -1 +1 @@ -TVc_RPf4TlgN8QRU8HbD5 \ No newline at end of file +fgsEgMRggyjH8-gXT_nXO \ No newline at end of file diff --git a/.next/build-manifest.json b/.next/build-manifest.json index 0780c39..c64313b 100644 --- a/.next/build-manifest.json +++ b/.next/build-manifest.json @@ -5,39 +5,39 @@ "devFiles": [], "ampDevFiles": [], "lowPriorityFiles": [ - "static/TVc_RPf4TlgN8QRU8HbD5/_buildManifest.js", - "static/TVc_RPf4TlgN8QRU8HbD5/_ssgManifest.js" + "static/fgsEgMRggyjH8-gXT_nXO/_buildManifest.js", + "static/fgsEgMRggyjH8-gXT_nXO/_ssgManifest.js" ], "pages": { "/": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", - "static/chunks/1367-521f29bb69f83dd91508.js", + "static/chunks/1367-fc426d51dace2ca85fe9.js", "static/chunks/pages/index-7c721161e51be37b0447.js" ], "/404": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/pages/404-5b4e08a3c113aae79e95.js" ], "/_app": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", - "static/css/1ef0682f5f3b9e1f2908.css", + "static/css/f9fb1544d6b8acde04c8.css", "static/chunks/pages/_app-6bcce082281271e8e187.js" ], "/_error": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/pages/_error-7df0d413be6e94978da3.js" ], "/about-1": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -47,7 +47,7 @@ "static/chunks/pages/about-1-c72e8f1016a7e4a629e7.js" ], "/about-2": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/617777a1-c16be889830ea87de181.js", @@ -58,7 +58,7 @@ "static/chunks/pages/about-2-e7b6731793f0f2628479.js" ], "/about-3": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/617777a1-c16be889830ea87de181.js", @@ -69,7 +69,7 @@ "static/chunks/pages/about-3-c956ae35b2782acdd669.js" ], "/bigdata-analytics": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -83,7 +83,7 @@ "static/chunks/pages/bigdata-analytics-0cbdc0c8bba5076f7e11.js" ], "/blog-1": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -91,7 +91,7 @@ "static/chunks/pages/blog-1-017821ddacc4786dd0b1.js" ], "/blog-2": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -99,7 +99,7 @@ "static/chunks/pages/blog-2-37d51d7a37426809fe0b.js" ], "/blog-3": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -107,7 +107,7 @@ "static/chunks/pages/blog-3-d10f2ee459efb66e2752.js" ], "/blog-4": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -115,7 +115,7 @@ "static/chunks/pages/blog-4-894d75205d1fdb84f2de.js" ], "/blog-5": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -123,7 +123,7 @@ "static/chunks/pages/blog-5-1afb019f62172fa8366d.js" ], "/blog-6": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -131,7 +131,7 @@ "static/chunks/pages/blog-6-1772794f660da5f846a8.js" ], "/blog-details": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -139,7 +139,7 @@ "static/chunks/pages/blog-details-5dd1083bd5dfb1c16590.js" ], "/cart": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -147,7 +147,7 @@ "static/chunks/pages/cart-6b1169b684bc471e6256.js" ], "/checkout": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -155,13 +155,13 @@ "static/chunks/pages/checkout-6c25a49f0db0d25d303d.js" ], "/coming-soon": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/pages/coming-soon-62c861c337a1f628d4d4.js" ], "/contact": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -170,7 +170,7 @@ "static/chunks/pages/contact-f6294171702ffbee8f5b.js" ], "/digital-agency": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -178,7 +178,7 @@ "static/chunks/pages/digital-agency-b85ebcd34886ccf5f596.js" ], "/digital-agency-portfolio": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -187,7 +187,7 @@ "static/chunks/pages/digital-agency-portfolio-09d30242cb71b7631693.js" ], "/faq": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -196,7 +196,7 @@ "static/chunks/pages/faq-a007929a04890fa71c1c.js" ], "/feature-details": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -205,7 +205,7 @@ "static/chunks/pages/feature-details-883addc4e50f90d673b3.js" ], "/features": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -214,7 +214,7 @@ "static/chunks/pages/features-59847a5d933d5368aff1.js" ], "/feedback": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/617777a1-c16be889830ea87de181.js", @@ -225,7 +225,7 @@ "static/chunks/pages/feedback-3b32e369d1192e91958d.js" ], "/forgot-password": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -233,7 +233,7 @@ "static/chunks/pages/forgot-password-20db41a8b4704cdc9f38.js" ], "/hosting": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -241,7 +241,7 @@ "static/chunks/pages/hosting-20592785bc172e3c46eb.js" ], "/iot": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -251,7 +251,7 @@ "static/chunks/pages/iot-fe8da860641d2f04744b.js" ], "/it-startup": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -265,7 +265,7 @@ "static/chunks/pages/it-startup-686a157c0bb09fb4a9d0.js" ], "/it-startup-2": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -279,7 +279,7 @@ "static/chunks/pages/it-startup-2-3a013d4f5a8c60c187f9.js" ], "/login": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -287,7 +287,7 @@ "static/chunks/pages/login-6dfc7e50174db6f4dd61.js" ], "/machine-learning": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/617777a1-c16be889830ea87de181.js", @@ -298,7 +298,7 @@ "static/chunks/pages/machine-learning-341d13f4c239e8b8bb83.js" ], "/machine-learning-2": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/617777a1-c16be889830ea87de181.js", @@ -308,7 +308,7 @@ "static/chunks/pages/machine-learning-2-13642ae7f4efeb1f1efe.js" ], "/pc-repair": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -318,7 +318,7 @@ "static/chunks/pages/pc-repair-d7dd5358587897031479.js" ], "/pricing": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -327,7 +327,7 @@ "static/chunks/pages/pricing-1e876dedc7ca71d3df35.js" ], "/privacy-policy": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -335,16 +335,17 @@ "static/chunks/pages/privacy-policy-d650fc2312ba9c7cad5e.js" ], "/products/[id]": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", - "static/chunks/199-0252964299f55226f07e.js", + "static/chunks/2544-e19bae728a879be227e8.js", + "static/chunks/7610-91215d37ee1ab33bd0ab.js", "static/chunks/8206-26af38c42565c8d3ec6f.js", - "static/chunks/pages/products/[id]-b2c95cab851713134609.js" + "static/chunks/pages/products/[id]-dbf18ce35a18fdac2c46.js" ], "/project-details": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -352,7 +353,7 @@ "static/chunks/pages/project-details-d941c0134e1a02bd3ee2.js" ], "/projects-1": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -360,7 +361,7 @@ "static/chunks/pages/projects-1-2d3f944955ae0af62e73.js" ], "/projects-2": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -368,7 +369,7 @@ "static/chunks/pages/projects-2-38ede8a91aa251d0d3c9.js" ], "/service-details": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -377,7 +378,7 @@ "static/chunks/pages/service-details-d37a7969d940f2691f3d.js" ], "/services-1": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -385,7 +386,7 @@ "static/chunks/pages/services-1-06f87071936a8446ccdd.js" ], "/services-2": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -393,7 +394,7 @@ "static/chunks/pages/services-2-62a523e1916226c685f9.js" ], "/services-3": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -401,7 +402,7 @@ "static/chunks/pages/services-3-ecfb5596c6d51c80bd6a.js" ], "/services-4": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -409,7 +410,7 @@ "static/chunks/pages/services-4-573e55761948d8ebd1d5.js" ], "/services-5": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -417,7 +418,7 @@ "static/chunks/pages/services-5-b9939b8dfc1d2bcdb722.js" ], "/shop": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -425,7 +426,7 @@ "static/chunks/pages/shop-d9b0999c562eb19688d0.js" ], "/sign-up": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -433,7 +434,7 @@ "static/chunks/pages/sign-up-e28a3161975493b737eb.js" ], "/team": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -441,7 +442,7 @@ "static/chunks/pages/team-197ec7d06ba65619176f.js" ], "/term-condition": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -449,17 +450,17 @@ "static/chunks/pages/term-condition-a5aa9bdb1f999de4d17c.js" ], "/yamaha": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", "static/chunks/7853-d98eefe1f629cc9d2afb.js", "static/chunks/6190-33d37dc3ad841d5d5075.js", "static/chunks/7798-7081fdc5536a6db6ca82.js", - "static/chunks/pages/yamaha-cdc571916b5cbe78659f.js" + "static/chunks/pages/yamaha-58ea50e42059a87871cf.js" ], "/yamaha/AboutUs": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -467,7 +468,7 @@ "static/chunks/pages/yamaha/AboutUs-943fa41a65bb59284d9c.js" ], "/yamaha/ContactUs": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -475,13 +476,13 @@ "static/chunks/pages/yamaha/ContactUs-cea426ff52659255e113.js" ], "/yamaha/ForgotPassword": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/pages/yamaha/ForgotPassword-1036b5f1552bf891d868.js" ], "/yamaha/LatestNews": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -489,7 +490,7 @@ "static/chunks/pages/yamaha/LatestNews-a180250b87b3928cc05d.js" ], "/yamaha/LatestNews/LatestNewsDetail": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -499,7 +500,7 @@ "static/chunks/pages/yamaha/LatestNews/LatestNewsDetail-299b36ccf9ba05d53b85.js" ], "/yamaha/Product/Motor": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -508,49 +509,51 @@ "static/chunks/pages/yamaha/Product/Motor-4fdcf57436e2ccdae17e.js" ], "/yamaha/Product/Motor_Detail": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", "static/chunks/6326-7971c57f8ced24a21de7.js", "static/chunks/7333-a5a3eac91b793e5358a6.js", - "static/chunks/653-c66b3db73f036c4c1318.js", - "static/chunks/199-0252964299f55226f07e.js", "static/chunks/6737-6ca4711455e02316b7e0.js", + "static/chunks/2544-e19bae728a879be227e8.js", + "static/chunks/653-c66b3db73f036c4c1318.js", + "static/chunks/5763-9a71fcde8dae336e6120.js", "static/chunks/7798-7081fdc5536a6db6ca82.js", - "static/chunks/pages/yamaha/Product/Motor_Detail-b6e63b07ac134ce93af8.js" + "static/chunks/pages/yamaha/Product/Motor_Detail-6ac32a78a22602efc6de.js" ], "/yamaha/Product/Sparepart": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", "static/chunks/6326-7971c57f8ced24a21de7.js", "static/chunks/7333-a5a3eac91b793e5358a6.js", + "static/chunks/2544-e19bae728a879be227e8.js", "static/chunks/8933-010b8a2257c466233ad6.js", "static/chunks/7798-7081fdc5536a6db6ca82.js", - "static/chunks/pages/yamaha/Product/Sparepart-1687b4a3e769b9660353.js" + "static/chunks/pages/yamaha/Product/Sparepart-20a19d5d618115b56abc.js" ], "/yamaha/Register": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/pages/yamaha/Register-4206210c590e4c978c80.js" ], "/yamaha/Shop/Cart": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", "static/chunks/6326-7971c57f8ced24a21de7.js", "static/chunks/7333-a5a3eac91b793e5358a6.js", - "static/chunks/8933-010b8a2257c466233ad6.js", "static/chunks/6737-6ca4711455e02316b7e0.js", + "static/chunks/8933-010b8a2257c466233ad6.js", "static/chunks/7798-7081fdc5536a6db6ca82.js", - "static/chunks/pages/yamaha/Shop/Cart-46cc78230a0fe97b1c70.js" + "static/chunks/pages/yamaha/Shop/Cart-3ee5fd6102b0b9d481e4.js" ], "/yamaha/Shop/Checkout": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", "static/chunks/3023-9780ddb35aeb02f18988.js", @@ -558,10 +561,11 @@ "static/chunks/pages/yamaha/Shop/Checkout-af2702b3fa6097dc14ee.js" ], "/yamaha/login": [ - "static/chunks/webpack-b0e8dfd80e34ca7dd145.js", + "static/chunks/webpack-91af950fded96d9076ca.js", "static/chunks/framework-ee7f4db754ed3f3ec0b7.js", "static/chunks/main-e7cf26dc5b7b25dfa74f.js", - "static/chunks/pages/yamaha/login-ec74f18738134d53613b.js" + "static/chunks/6737-6ca4711455e02316b7e0.js", + "static/chunks/pages/yamaha/login-c4734412755672a209a6.js" ] }, "ampFirstPages": [] diff --git a/.next/cache/webpack/client-production/0.pack b/.next/cache/webpack/client-production/0.pack index c538cb8..0854540 100644 Binary files a/.next/cache/webpack/client-production/0.pack and b/.next/cache/webpack/client-production/0.pack differ diff --git a/.next/cache/webpack/client-production/index.pack b/.next/cache/webpack/client-production/index.pack index 059cac7..a8bbb70 100644 Binary files a/.next/cache/webpack/client-production/index.pack and b/.next/cache/webpack/client-production/index.pack differ diff --git a/.next/cache/webpack/server-production/0.pack b/.next/cache/webpack/server-production/0.pack index 2ea3812..36346a7 100644 Binary files a/.next/cache/webpack/server-production/0.pack and b/.next/cache/webpack/server-production/0.pack differ diff --git a/.next/cache/webpack/server-production/index.pack b/.next/cache/webpack/server-production/index.pack index 75b6d0e..5fbec24 100644 Binary files a/.next/cache/webpack/server-production/index.pack and b/.next/cache/webpack/server-production/index.pack differ diff --git a/.next/prerender-manifest.json b/.next/prerender-manifest.json index fff3265..07bae32 100644 --- a/.next/prerender-manifest.json +++ b/.next/prerender-manifest.json @@ -1 +1 @@ -{"version":3,"routes":{},"dynamicRoutes":{},"preview":{"previewModeId":"5156c7a0fc43d446fbf8b92ed61cb8ad","previewModeSigningKey":"ede8ac302563e0f08166819151dc30f29437de4dff7eb915113a334a1cae8516","previewModeEncryptionKey":"ee893123a28da6b3ad52442a5381143ca4253448f1b20d7e9961d9e918ad9ed8"},"notFoundRoutes":[]} \ No newline at end of file +{"version":3,"routes":{},"dynamicRoutes":{},"preview":{"previewModeId":"03e4fb5009876d78738d3d83b708ea97","previewModeSigningKey":"f08d3be39a08987c25ed81df5c650cff35898fe2062f99293cc3e6f313abd8e5","previewModeEncryptionKey":"2d64b50add7986a5cc2bdb4093dcf366b7148a7d07d42a3700ca95b85c812d36"},"notFoundRoutes":[]} \ No newline at end of file diff --git a/.next/routes-manifest.json b/.next/routes-manifest.json index b969858..3a9bc19 100644 --- a/.next/routes-manifest.json +++ b/.next/routes-manifest.json @@ -1 +1 @@ -{"version":3,"pages404":true,"basePath":"","redirects":[{"source":"/:file((?!\\.well-known(?:/.*)?)(?:[^/]+/)*[^/]+\\.\\w+)/","destination":"/:file","locale":false,"internal":true,"statusCode":308,"regex":"^(?:/((?!\\.well-known(?:/.*)?)(?:[^/]+/)*[^/]+\\.\\w+))/$"},{"source":"/:notfile((?!\\.well-known(?:/.*)?)(?:[^/]+/)*[^/\\.]+)","destination":"/:notfile/","locale":false,"internal":true,"statusCode":308,"regex":"^(?:/((?!\\.well-known(?:/.*)?)(?:[^/]+/)*[^/\\.]+))$"}],"headers":[],"dynamicRoutes":[{"page":"/products/[id]","regex":"^/products/([^/]+?)(?:/)?$","routeKeys":{"id":"id"},"namedRegex":"^/products/(?[^/]+?)(?:/)?$"}],"dataRoutes":[{"page":"/yamaha","dataRouteRegex":"^/_next/data/TVc_RPf4TlgN8QRU8HbD5/yamaha.json$"},{"page":"/yamaha/AboutUs","dataRouteRegex":"^/_next/data/TVc_RPf4TlgN8QRU8HbD5/yamaha/AboutUs.json$"},{"page":"/yamaha/LatestNews","dataRouteRegex":"^/_next/data/TVc_RPf4TlgN8QRU8HbD5/yamaha/LatestNews.json$"},{"page":"/yamaha/LatestNews/LatestNewsDetail","dataRouteRegex":"^/_next/data/TVc_RPf4TlgN8QRU8HbD5/yamaha/LatestNews/LatestNewsDetail.json$"},{"page":"/yamaha/Product/Motor","dataRouteRegex":"^/_next/data/TVc_RPf4TlgN8QRU8HbD5/yamaha/Product/Motor.json$"},{"page":"/yamaha/Product/Motor_Detail","dataRouteRegex":"^/_next/data/TVc_RPf4TlgN8QRU8HbD5/yamaha/Product/Motor_Detail.json$"},{"page":"/yamaha/Product/Sparepart","dataRouteRegex":"^/_next/data/TVc_RPf4TlgN8QRU8HbD5/yamaha/Product/Sparepart.json$"},{"page":"/yamaha/Shop/Cart","dataRouteRegex":"^/_next/data/TVc_RPf4TlgN8QRU8HbD5/yamaha/Shop/Cart.json$"},{"page":"/yamaha/Shop/Checkout","dataRouteRegex":"^/_next/data/TVc_RPf4TlgN8QRU8HbD5/yamaha/Shop/Checkout.json$"}],"i18n":{"locales":["en","ar"],"defaultLocale":"en"},"rewrites":[]} \ No newline at end of file +{"version":3,"pages404":true,"basePath":"","redirects":[{"source":"/:file((?!\\.well-known(?:/.*)?)(?:[^/]+/)*[^/]+\\.\\w+)/","destination":"/:file","locale":false,"internal":true,"statusCode":308,"regex":"^(?:/((?!\\.well-known(?:/.*)?)(?:[^/]+/)*[^/]+\\.\\w+))/$"},{"source":"/:notfile((?!\\.well-known(?:/.*)?)(?:[^/]+/)*[^/\\.]+)","destination":"/:notfile/","locale":false,"internal":true,"statusCode":308,"regex":"^(?:/((?!\\.well-known(?:/.*)?)(?:[^/]+/)*[^/\\.]+))$"}],"headers":[],"dynamicRoutes":[{"page":"/products/[id]","regex":"^/products/([^/]+?)(?:/)?$","routeKeys":{"id":"id"},"namedRegex":"^/products/(?[^/]+?)(?:/)?$"}],"dataRoutes":[{"page":"/yamaha","dataRouteRegex":"^/_next/data/fgsEgMRggyjH8\\-gXT_nXO/yamaha.json$"},{"page":"/yamaha/AboutUs","dataRouteRegex":"^/_next/data/fgsEgMRggyjH8\\-gXT_nXO/yamaha/AboutUs.json$"},{"page":"/yamaha/LatestNews","dataRouteRegex":"^/_next/data/fgsEgMRggyjH8\\-gXT_nXO/yamaha/LatestNews.json$"},{"page":"/yamaha/LatestNews/LatestNewsDetail","dataRouteRegex":"^/_next/data/fgsEgMRggyjH8\\-gXT_nXO/yamaha/LatestNews/LatestNewsDetail.json$"},{"page":"/yamaha/Product/Motor","dataRouteRegex":"^/_next/data/fgsEgMRggyjH8\\-gXT_nXO/yamaha/Product/Motor.json$"},{"page":"/yamaha/Product/Motor_Detail","dataRouteRegex":"^/_next/data/fgsEgMRggyjH8\\-gXT_nXO/yamaha/Product/Motor_Detail.json$"},{"page":"/yamaha/Product/Sparepart","dataRouteRegex":"^/_next/data/fgsEgMRggyjH8\\-gXT_nXO/yamaha/Product/Sparepart.json$"},{"page":"/yamaha/Shop/Cart","dataRouteRegex":"^/_next/data/fgsEgMRggyjH8\\-gXT_nXO/yamaha/Shop/Cart.json$"},{"page":"/yamaha/Shop/Checkout","dataRouteRegex":"^/_next/data/fgsEgMRggyjH8\\-gXT_nXO/yamaha/Shop/Checkout.json$"}],"i18n":{"locales":["en","ar"],"defaultLocale":"en"},"rewrites":[]} \ No newline at end of file diff --git a/.next/server/pages-manifest.json b/.next/server/pages-manifest.json index b893ed2..0467730 100644 --- a/.next/server/pages-manifest.json +++ b/.next/server/pages-manifest.json @@ -23,8 +23,8 @@ "/_error": "pages/_error.js", "/en/500": "pages/en/500.html", "/ar/500": "pages/ar/500.html", - "/en/about-1": "pages/en/about-1.html", - "/ar/about-1": "pages/ar/about-1.html", + "/en/404": "pages/en/404.html", + "/ar/404": "pages/ar/404.html", "/en/blog-1": "pages/en/blog-1.html", "/ar/blog-1": "pages/ar/blog-1.html", "/en/blog-2": "pages/en/blog-2.html", @@ -33,12 +33,14 @@ "/ar/blog-3": "pages/ar/blog-3.html", "/en/blog-4": "pages/en/blog-4.html", "/ar/blog-4": "pages/ar/blog-4.html", + "/en/about-1": "pages/en/about-1.html", + "/ar/about-1": "pages/ar/about-1.html", "/en/blog-5": "pages/en/blog-5.html", "/ar/blog-5": "pages/ar/blog-5.html", - "/en/blog-6": "pages/en/blog-6.html", - "/ar/blog-6": "pages/ar/blog-6.html", "/en/blog-details": "pages/en/blog-details.html", "/ar/blog-details": "pages/ar/blog-details.html", + "/en/blog-6": "pages/en/blog-6.html", + "/ar/blog-6": "pages/ar/blog-6.html", "/en/cart": "pages/en/cart.html", "/ar/cart": "pages/ar/cart.html", "/en/checkout": "pages/en/checkout.html", @@ -47,22 +49,20 @@ "/ar/coming-soon": "pages/ar/coming-soon.html", "/en/bigdata-analytics": "pages/en/bigdata-analytics.html", "/ar/bigdata-analytics": "pages/ar/bigdata-analytics.html", - "/en/contact": "pages/en/contact.html", - "/ar/contact": "pages/ar/contact.html", "/en/digital-agency": "pages/en/digital-agency.html", "/ar/digital-agency": "pages/ar/digital-agency.html", + "/en/digital-agency-portfolio": "pages/en/digital-agency-portfolio.html", + "/ar/digital-agency-portfolio": "pages/ar/digital-agency-portfolio.html", "/en/faq": "pages/en/faq.html", "/ar/faq": "pages/ar/faq.html", - "/en/feature-details": "pages/en/feature-details.html", - "/ar/feature-details": "pages/ar/feature-details.html", "/en/features": "pages/en/features.html", "/ar/features": "pages/ar/features.html", "/en/forgot-password": "pages/en/forgot-password.html", "/ar/forgot-password": "pages/ar/forgot-password.html", + "/en/feature-details": "pages/en/feature-details.html", + "/ar/feature-details": "pages/ar/feature-details.html", "/en/hosting": "pages/en/hosting.html", "/ar/hosting": "pages/ar/hosting.html", - "/en": "pages/en.html", - "/ar": "pages/ar.html", "/en/iot": "pages/en/iot.html", "/ar/iot": "pages/ar/iot.html", "/en/it-startup-2": "pages/en/it-startup-2.html", @@ -77,8 +77,8 @@ "/ar/pricing": "pages/ar/pricing.html", "/en/privacy-policy": "pages/en/privacy-policy.html", "/ar/privacy-policy": "pages/ar/privacy-policy.html", - "/en/digital-agency-portfolio": "pages/en/digital-agency-portfolio.html", - "/ar/digital-agency-portfolio": "pages/ar/digital-agency-portfolio.html", + "/en": "pages/en.html", + "/ar": "pages/ar.html", "/en/project-details": "pages/en/project-details.html", "/ar/project-details": "pages/ar/project-details.html", "/en/projects-1": "pages/en/projects-1.html", @@ -87,8 +87,6 @@ "/ar/projects-2": "pages/ar/projects-2.html", "/en/service-details": "pages/en/service-details.html", "/ar/service-details": "pages/ar/service-details.html", - "/en/products/[id]": "pages/en/products/[id].html", - "/ar/products/[id]": "pages/ar/products/[id].html", "/en/services-1": "pages/en/services-1.html", "/ar/services-1": "pages/ar/services-1.html", "/en/services-2": "pages/en/services-2.html", @@ -99,32 +97,34 @@ "/ar/services-4": "pages/ar/services-4.html", "/en/services-5": "pages/en/services-5.html", "/ar/services-5": "pages/ar/services-5.html", + "/en/products/[id]": "pages/en/products/[id].html", + "/ar/products/[id]": "pages/ar/products/[id].html", "/en/shop": "pages/en/shop.html", "/ar/shop": "pages/ar/shop.html", "/en/sign-up": "pages/en/sign-up.html", "/ar/sign-up": "pages/ar/sign-up.html", - "/en/term-condition": "pages/en/term-condition.html", - "/ar/term-condition": "pages/ar/term-condition.html", "/en/team": "pages/en/team.html", "/ar/team": "pages/ar/team.html", + "/en/term-condition": "pages/en/term-condition.html", + "/ar/term-condition": "pages/ar/term-condition.html", "/en/yamaha/ContactUs": "pages/en/yamaha/ContactUs.html", "/ar/yamaha/ContactUs": "pages/ar/yamaha/ContactUs.html", - "/en/404": "pages/en/404.html", - "/ar/404": "pages/ar/404.html", "/en/yamaha/ForgotPassword": "pages/en/yamaha/ForgotPassword.html", "/ar/yamaha/ForgotPassword": "pages/ar/yamaha/ForgotPassword.html", + "/en/contact": "pages/en/contact.html", + "/ar/contact": "pages/ar/contact.html", "/en/yamaha/Register": "pages/en/yamaha/Register.html", "/ar/yamaha/Register": "pages/ar/yamaha/Register.html", "/en/yamaha/login": "pages/en/yamaha/login.html", "/ar/yamaha/login": "pages/ar/yamaha/login.html", "/en/about-2": "pages/en/about-2.html", "/ar/about-2": "pages/ar/about-2.html", + "/en/machine-learning-2": "pages/en/machine-learning-2.html", + "/ar/machine-learning-2": "pages/ar/machine-learning-2.html", + "/en/machine-learning": "pages/en/machine-learning.html", + "/ar/machine-learning": "pages/ar/machine-learning.html", "/en/about-3": "pages/en/about-3.html", "/ar/about-3": "pages/ar/about-3.html", "/en/feedback": "pages/en/feedback.html", - "/ar/feedback": "pages/ar/feedback.html", - "/en/machine-learning": "pages/en/machine-learning.html", - "/ar/machine-learning": "pages/ar/machine-learning.html", - "/en/machine-learning-2": "pages/en/machine-learning-2.html", - "/ar/machine-learning-2": "pages/ar/machine-learning-2.html" + "/ar/feedback": "pages/ar/feedback.html" } \ No newline at end of file diff --git a/.next/server/pages/ar.html b/.next/server/pages/ar.html index ff36cdf..6165430 100644 --- a/.next/server/pages/ar.html +++ b/.next/server/pages/ar.html @@ -1 +1 @@ -Thamrin Group

Selamat Datang di Thamrin Group

Thamrin Group adalah perusahaan terkemuka di Sumatera Selatan & Bengkulu dengan fokus bisnis pada sektor otomotif dan properti.

Get Started

Thamrin Group Businees Partner

Thamrin Group mempunyai beberapa Businees Partner sebagai Unit Bisnis nya, antar lain


image


Thamrin Brothers
Yamaha

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Nusa Sarana Citra Bakti
Suzuki

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Citra Lestari Mobilindo
Hino

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Citra Thamrin Motor
Honda

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.


image

Thamrin Citra Abadi
Mercedes Benz

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.


image

Musi Lestari Indo Makmur
Palembang Indah Mall

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Musi Indah Makmur
Emilia Hotel

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.


image


Bank Perkreditan Rakyat
Berkat Sejati

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.


image


Thamrin Homes


Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Thamrin Group Gallery

shape
shape
shape
shape
shape
shape

Sektor Industri

Kami melayani berbagai macam sektor industri, antara lain

Otomotif
Industri Ritel
Bank
Real Estate
Hotel
Restoran
Percetakan
image

Thamrin Group Founders

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Josh Buttler

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Alex Maxwel

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Janny Cotller

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Jason Statham

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

Latest News

image

Making Peace With The Feast Or Famine Of Freelancing

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

I Used The Web For A Day On A 50 MB Budget

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Here are the 5 most telling signs of micromanagement

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
shape
shape
shape
shape
shape
shape
shape
image

Enter Your Email For Get Info & Promo

shape
shape
shape
shape
\ No newline at end of file +Thamrin Group

Selamat Datang di Thamrin Group

Thamrin Group adalah perusahaan terkemuka di Sumatera Selatan & Bengkulu dengan fokus bisnis pada sektor otomotif dan properti.

Get Started

Thamrin Group Businees Partner

Thamrin Group mempunyai beberapa Businees Partner sebagai Unit Bisnis nya, antar lain


image


Thamrin Brothers
Yamaha

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Nusa Sarana Citra Bakti
Suzuki

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Citra Lestari Mobilindo
Hino

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Citra Thamrin Motor
Honda

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.


image

Thamrin Citra Abadi
Mercedes Benz

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.


image

Musi Lestari Indo Makmur
Palembang Indah Mall

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Musi Indah Makmur
Emilia Hotel

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.


image


Bank Perkreditan Rakyat
Berkat Sejati

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.


image


Thamrin Homes


Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Thamrin Group Gallery

shape
shape
shape
shape
shape
shape

Sektor Industri

Kami melayani berbagai macam sektor industri, antara lain

Otomotif
Industri Ritel
Bank
Real Estate
Hotel
Restoran
Percetakan
image

Thamrin Group Founders

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Josh Buttler

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Alex Maxwel

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Janny Cotller

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Jason Statham

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

Latest News

image

Making Peace With The Feast Or Famine Of Freelancing

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

I Used The Web For A Day On A 50 MB Budget

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Here are the 5 most telling signs of micromanagement

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
shape
shape
shape
shape
shape
shape
shape
image

Enter Your Email For Get Info & Promo

shape
shape
shape
shape
\ No newline at end of file diff --git a/.next/server/pages/ar/404.html b/.next/server/pages/ar/404.html index 0a1dc68..c1ba0b5 100644 --- a/.next/server/pages/ar/404.html +++ b/.next/server/pages/ar/404.html @@ -1 +1 @@ -Thamrin Group

Oops!

404 - Page not found

The page you are looking for might have been removed had its name changed or is temporarily unavailable.

Go to Homepage
\ No newline at end of file +Thamrin Group

Oops!

404 - Page not found

The page you are looking for might have been removed had its name changed or is temporarily unavailable.

Go to Homepage
\ No newline at end of file diff --git a/.next/server/pages/ar/500.html b/.next/server/pages/ar/500.html index c736433..d030263 100644 --- a/.next/server/pages/ar/500.html +++ b/.next/server/pages/ar/500.html @@ -1 +1 @@ -404: This page could not be found

404

This page could not be found.

\ No newline at end of file +404: This page could not be found

404

This page could not be found.

\ No newline at end of file diff --git a/.next/server/pages/ar/about-1.html b/.next/server/pages/ar/about-1.html index 83b7d73..5b47c88 100644 --- a/.next/server/pages/ar/about-1.html +++ b/.next/server/pages/ar/about-1.html @@ -1 +1 @@ -Thamrin Group

About Us

image

About Us

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. In sagittis egestas ante, sed viverra nunc tincidunt nec nteger nonsed condimntum elit, sit amet feugiat lorem. Proin tempus sagittis velit vitae scelerisque.

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Business-to-business metrics analytics value proposition funding angel investor entrepreneur alpha ramen equity gamification. Social proof partner network research.

Our History

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Our Mission

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Who We Are

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Our Awesome Team

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Ready to talk?

Our team is here to answer your question about StartP

Contact UsOr, get started now with a free trial
More that 1.5 million businesses and organizations use StartP
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map
\ No newline at end of file +Thamrin Group

About Us

image

About Us

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. In sagittis egestas ante, sed viverra nunc tincidunt nec nteger nonsed condimntum elit, sit amet feugiat lorem. Proin tempus sagittis velit vitae scelerisque.

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Business-to-business metrics analytics value proposition funding angel investor entrepreneur alpha ramen equity gamification. Social proof partner network research.

Our History

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Our Mission

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Who We Are

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Our Awesome Team

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Ready to talk?

Our team is here to answer your question about StartP

Contact UsOr, get started now with a free trial
More that 1.5 million businesses and organizations use StartP
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map
\ No newline at end of file diff --git a/.next/server/pages/ar/about-2.html b/.next/server/pages/ar/about-2.html index 473855f..d8bd2b2 100644 --- a/.next/server/pages/ar/about-2.html +++ b/.next/server/pages/ar/about-2.html @@ -1 +1 @@ -Thamrin Group

About Us

image
About Us

Engaging New Audiences Through Smart Approach

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc.Donec vitae sapien ut libero venenatis faucibus tempus.

Our History

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Our Mission

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Who We Are

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Our Awesome Team

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map
\ No newline at end of file +Thamrin Group

About Us

image
About Us

Engaging New Audiences Through Smart Approach

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc.Donec vitae sapien ut libero venenatis faucibus tempus.

Our History

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Our Mission

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Who We Are

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Our Awesome Team

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map
\ No newline at end of file diff --git a/.next/server/pages/ar/about-3.html b/.next/server/pages/ar/about-3.html index 44e9c48..99101e5 100644 --- a/.next/server/pages/ar/about-3.html +++ b/.next/server/pages/ar/about-3.html @@ -1 +1 @@ -Thamrin Group

About Us

image
About Us

Engaging New Audiences Through Smart Approach

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc.Donec vitae sapien ut libero venenatis faucibus tempus.

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae.

Our History

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Our Mission

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Who We Are

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

shape
shape
shape
shape
shape

Our Awesome Team

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map
\ No newline at end of file +Thamrin Group

About Us

image
About Us

Engaging New Audiences Through Smart Approach

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc.Donec vitae sapien ut libero venenatis faucibus tempus.

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae.

Our History

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Our Mission

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Who We Are

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

shape
shape
shape
shape
shape

Our Awesome Team

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map
\ No newline at end of file diff --git a/.next/server/pages/ar/bigdata-analytics.html b/.next/server/pages/ar/bigdata-analytics.html index 5291b41..18b9c36 100644 --- a/.next/server/pages/ar/bigdata-analytics.html +++ b/.next/server/pages/ar/bigdata-analytics.html @@ -1 +1 @@ -Thamrin Group

Secure IT Solutions for a more secure environment

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida

Get Started
shape
shape
shape
shape
shape
shape
shape
shape

Zero Configuration

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Code Security

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Team Management

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Access Controlled

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Cloud Hosting Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Cloud databases
Website hosting
File storage
Forex trading
File backups
Remote desktop
Email servers
Hybrid cloud
book-selfboxchaircloudcupflowerhead-phonemonitormugtabletissuewater-bottlewifishapemain-pic
big-monitorcreativedeveloperflower-topsmall-monitorsmall-toptabletargetshapemain-pic

Design & Development

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Responsive design
React web development
Android apps development
Laravel web development
iOS apps development
UX/UI design
E-commerce development
Print ready design

Our Features

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Incredible Infrastructure

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Email Notifications

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Simple Dashboard

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Information Retrieval

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Drag & Drop Functionality

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Deadline Reminders

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Our Awesome Team

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map

Our Recent Works

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

shape
shape
shape
shape

Pricing Plans

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Basic Plan

$15.00 /Mon
  • 5 GB Bandwidth
  • Highest Speed
  • 1 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics

Advanced Plan

$35.00 /Mon
  • 10 GB Bandwidth
  • Highest Speed
  • 3 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics

Expert Plan

$65.00 /Mon
  • 15 GB Bandwidth
  • Highest Speed
  • 5 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics
shape
shape
shape
shape

Ready to talk?

Our team is here to answer your question about StartP

Contact UsOr, get started now with a free trial
More that 1.5 million businesses and organizations use StartP
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner

The News from Our Blog

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image
March 15, 2021

The Security Risks of Changing Package Owners

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 17, 2021

Tips to Protecting Your Business and Family

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 19, 2021

Protect Your Workplace from Cyber Attacks

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
\ No newline at end of file +Thamrin Group

Secure IT Solutions for a more secure environment

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida

Get Started
shape
shape
shape
shape
shape
shape
shape
shape

Zero Configuration

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Code Security

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Team Management

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Access Controlled

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Cloud Hosting Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Cloud databases
Website hosting
File storage
Forex trading
File backups
Remote desktop
Email servers
Hybrid cloud
book-selfboxchaircloudcupflowerhead-phonemonitormugtabletissuewater-bottlewifishapemain-pic
big-monitorcreativedeveloperflower-topsmall-monitorsmall-toptabletargetshapemain-pic

Design & Development

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Responsive design
React web development
Android apps development
Laravel web development
iOS apps development
UX/UI design
E-commerce development
Print ready design

Our Features

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Incredible Infrastructure

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Email Notifications

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Simple Dashboard

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Information Retrieval

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Drag & Drop Functionality

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Deadline Reminders

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Our Awesome Team

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map

Our Recent Works

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

shape
shape
shape
shape

Pricing Plans

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Basic Plan

$15.00 /Mon
  • 5 GB Bandwidth
  • Highest Speed
  • 1 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics

Advanced Plan

$35.00 /Mon
  • 10 GB Bandwidth
  • Highest Speed
  • 3 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics

Expert Plan

$65.00 /Mon
  • 15 GB Bandwidth
  • Highest Speed
  • 5 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics
shape
shape
shape
shape

Ready to talk?

Our team is here to answer your question about StartP

Contact UsOr, get started now with a free trial
More that 1.5 million businesses and organizations use StartP
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner

The News from Our Blog

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image
March 15, 2021

The Security Risks of Changing Package Owners

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 17, 2021

Tips to Protecting Your Business and Family

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 19, 2021

Protect Your Workplace from Cyber Attacks

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
\ No newline at end of file diff --git a/.next/server/pages/ar/blog-1.html b/.next/server/pages/ar/blog-1.html index 46ca9f2..5ab3db9 100644 --- a/.next/server/pages/ar/blog-1.html +++ b/.next/server/pages/ar/blog-1.html @@ -1 +1 @@ -Thamrin Group

Blog Grid

image
March 15, 2021

The Security Risks of Changing Package Owners

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 17, 2021

Tips to Protecting Your Business and Family

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 19, 2021

Protect Your Workplace from Cyber Attacks

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 15, 2021

Here are the 5 most telling signs of micromanagement

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 17, 2021

I Used The Web For A Day On A 50 MB Budget

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 19, 2021

Making Peace With The Feast Or Famine Of Freelancing

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
\ No newline at end of file +Thamrin Group

Blog Grid

image
March 15, 2021

The Security Risks of Changing Package Owners

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 17, 2021

Tips to Protecting Your Business and Family

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 19, 2021

Protect Your Workplace from Cyber Attacks

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 15, 2021

Here are the 5 most telling signs of micromanagement

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 17, 2021

I Used The Web For A Day On A 50 MB Budget

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 19, 2021

Making Peace With The Feast Or Famine Of Freelancing

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
\ No newline at end of file diff --git a/.next/server/pages/ar/blog-2.html b/.next/server/pages/ar/blog-2.html index bf67ae0..ae633fb 100644 --- a/.next/server/pages/ar/blog-2.html +++ b/.next/server/pages/ar/blog-2.html @@ -1 +1 @@ -Thamrin Group

Blog Right Sidebar

image
March 15, 2021

The Security Risks of Changing Package Owners

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 17, 2021

Tips to Protecting Your Business and Family

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 19, 2021

Protect Your Workplace from Cyber Attacks

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 15, 2021

Here are the 5 most telling signs of micromanagement

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 17, 2021

I Used The Web For A Day On A 50 MB Budget

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 19, 2021

Making Peace With The Feast Or Famine Of Freelancing

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
\ No newline at end of file +Thamrin Group

Blog Right Sidebar

image
March 15, 2021

The Security Risks of Changing Package Owners

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 17, 2021

Tips to Protecting Your Business and Family

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 19, 2021

Protect Your Workplace from Cyber Attacks

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 15, 2021

Here are the 5 most telling signs of micromanagement

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 17, 2021

I Used The Web For A Day On A 50 MB Budget

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 19, 2021

Making Peace With The Feast Or Famine Of Freelancing

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
\ No newline at end of file diff --git a/.next/server/pages/ar/blog-3.html b/.next/server/pages/ar/blog-3.html index 8bcede5..aed41ba 100644 --- a/.next/server/pages/ar/blog-3.html +++ b/.next/server/pages/ar/blog-3.html @@ -1 +1 @@ -Thamrin Group

Blog Grid

image

Making Peace With The Feast Or Famine Of Freelancing

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

I Used The Web For A Day On A 50 MB Budget

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Here are the 5 most telling signs of micromanagement

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

The security risks of changing package owners

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Tips to Protecting Your Business and Family

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Protect Your Workplace from Cyber Attacks

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
\ No newline at end of file +Thamrin Group

Blog Grid

image

Making Peace With The Feast Or Famine Of Freelancing

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

I Used The Web For A Day On A 50 MB Budget

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Here are the 5 most telling signs of micromanagement

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

The security risks of changing package owners

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Tips to Protecting Your Business and Family

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Protect Your Workplace from Cyber Attacks

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
\ No newline at end of file diff --git a/.next/server/pages/ar/blog-4.html b/.next/server/pages/ar/blog-4.html index 308e1e3..6746d3b 100644 --- a/.next/server/pages/ar/blog-4.html +++ b/.next/server/pages/ar/blog-4.html @@ -1 +1 @@ -Thamrin Group

Blog Right Sidebar

image

Making Peace With The Feast Or Famine Of Freelancing

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

I Used The Web For A Day On A 50 MB Budget

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Here are the 5 most telling signs of micromanagement

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

The security risks of changing package owners

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Tips to Protecting Your Business and Family

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Protect Your Workplace from Cyber Attacks

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
\ No newline at end of file +Thamrin Group

Blog Right Sidebar

image

Making Peace With The Feast Or Famine Of Freelancing

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

I Used The Web For A Day On A 50 MB Budget

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Here are the 5 most telling signs of micromanagement

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

The security risks of changing package owners

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Tips to Protecting Your Business and Family

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Protect Your Workplace from Cyber Attacks

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
\ No newline at end of file diff --git a/.next/server/pages/ar/blog-5.html b/.next/server/pages/ar/blog-5.html index 2f02d8b..f612a42 100644 --- a/.next/server/pages/ar/blog-5.html +++ b/.next/server/pages/ar/blog-5.html @@ -1 +1 @@ -Thamrin Group

Blog Grid

\ No newline at end of file +Thamrin Group

Blog Grid

\ No newline at end of file diff --git a/.next/server/pages/ar/blog-6.html b/.next/server/pages/ar/blog-6.html index 33bb270..f9bfb2b 100644 --- a/.next/server/pages/ar/blog-6.html +++ b/.next/server/pages/ar/blog-6.html @@ -1 +1 @@ -Thamrin Group

Blog Grid

\ No newline at end of file +Thamrin Group

Blog Grid

\ No newline at end of file diff --git a/.next/server/pages/ar/blog-details.html b/.next/server/pages/ar/blog-details.html index 07b3cec..13abadd 100644 --- a/.next/server/pages/ar/blog-details.html +++ b/.next/server/pages/ar/blog-details.html @@ -1 +1 @@ -Thamrin Group

Blog Details

image

The security risks of changing package owners

Quuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quia non numquam eius modi tempora incidunt ut labore et dolore magnam dolor sit amet, consectetur adipisicing.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.

It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout.

Tom Cruise

Quuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quia non numquam eius modi tempora incidunt ut labore et dolore magnam dolor sit amet, consectetur adipisicing.

Four major elements that we offer:

  • Scientific Skills For getting a better result
  • Communication Skills to getting in touch
  • A Career Overview opportunity Available
  • A good Work Environment For work

Setting the mood with incense

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.

The Rise Of Smarketing And Why You Need It

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud.

2 Comments:

  1. imageJohn Jonessays:

    Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen.

    1. imageSteven Smithsays:

      Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen.

      1. imageSarah Taylorsays:

        Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen.

  2. imageJohn Doesays:

    Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen.

    1. imageJames Andersonsays:

      Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen.

Leave a Reply

Your email address will not be published.Required fields are marked*

\ No newline at end of file +Thamrin Group

Blog Details

image

The security risks of changing package owners

Quuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quia non numquam eius modi tempora incidunt ut labore et dolore magnam dolor sit amet, consectetur adipisicing.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.

It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout.

Tom Cruise

Quuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quia non numquam eius modi tempora incidunt ut labore et dolore magnam dolor sit amet, consectetur adipisicing.

Four major elements that we offer:

  • Scientific Skills For getting a better result
  • Communication Skills to getting in touch
  • A Career Overview opportunity Available
  • A good Work Environment For work

Setting the mood with incense

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.

The Rise Of Smarketing And Why You Need It

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud.

2 Comments:

  1. imageJohn Jonessays:

    Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen.

    1. imageSteven Smithsays:

      Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen.

      1. imageSarah Taylorsays:

        Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen.

  2. imageJohn Doesays:

    Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen.

    1. imageJames Andersonsays:

      Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen.

Leave a Reply

Your email address will not be published.Required fields are marked*

\ No newline at end of file diff --git a/.next/server/pages/ar/cart.html b/.next/server/pages/ar/cart.html index dfd5e20..269c689 100644 --- a/.next/server/pages/ar/cart.html +++ b/.next/server/pages/ar/cart.html @@ -1 +1 @@ -Thamrin Group

Cart

ProductNameUnit PriceQuantityTotal
Empty

Cart Totals

  • Subtotal $0.00
  • Shipping $10.00
  • Total $10.00
Proceed to Checkout
\ No newline at end of file +Thamrin Group

Cart

ProductNameUnit PriceQuantityTotal
Empty

Cart Totals

  • Subtotal $0.00
  • Shipping $10.00
  • Total $10.00
Proceed to Checkout
\ No newline at end of file diff --git a/.next/server/pages/ar/checkout.html b/.next/server/pages/ar/checkout.html index 82e04f7..b9da374 100644 --- a/.next/server/pages/ar/checkout.html +++ b/.next/server/pages/ar/checkout.html @@ -1 +1 @@ -Thamrin Group

Checkout

Billing Details

Your Order

Product NameTotal
Smart Watch$30.00
TV$30.00
Book$30.00
Smart Watch$30.00
TV$30.00
Book$30.00
Cart Subtotal$210.00
Shipping$5.00
Order Total$215.00

Make your payment directly into our bank account. Please use your Order ID as the payment reference. Your order will not be shipped until the funds have cleared in our account.

Place Order
\ No newline at end of file +Thamrin Group

Checkout

Billing Details

Your Order

Product NameTotal
Smart Watch$30.00
TV$30.00
Book$30.00
Smart Watch$30.00
TV$30.00
Book$30.00
Cart Subtotal$210.00
Shipping$5.00
Order Total$215.00

Make your payment directly into our bank account. Please use your Order ID as the payment reference. Your order will not be shipped until the funds have cleared in our account.

Place Order
\ No newline at end of file diff --git a/.next/server/pages/ar/coming-soon.html b/.next/server/pages/ar/coming-soon.html index ff67d85..885a203 100644 --- a/.next/server/pages/ar/coming-soon.html +++ b/.next/server/pages/ar/coming-soon.html @@ -1 +1 @@ -Thamrin Group

Under Construction

Our website is currently undergoing scheduled maintenance. We Should be back shortly. Thank you for your patience.

Days
Hours
Minutes
Seconds
\ No newline at end of file +Thamrin Group

Under Construction

Our website is currently undergoing scheduled maintenance. We Should be back shortly. Thank you for your patience.

Days
Hours
Minutes
Seconds
\ No newline at end of file diff --git a/.next/server/pages/ar/contact.html b/.next/server/pages/ar/contact.html index 9a5e340..f763604 100644 --- a/.next/server/pages/ar/contact.html +++ b/.next/server/pages/ar/contact.html @@ -1 +1 @@ -Thamrin Group

Contact Us

Visit Here

27 Division St, New York, NY 10002, United States of America

Get In Touch With Us

Anything On your Mind. We’ll Be Glad To Assist You!

image
\ No newline at end of file +Thamrin Group

Contact Us

Visit Here

27 Division St, New York, NY 10002, United States of America

Get In Touch With Us

Anything On your Mind. We’ll Be Glad To Assist You!

image
\ No newline at end of file diff --git a/.next/server/pages/ar/digital-agency-portfolio.html b/.next/server/pages/ar/digital-agency-portfolio.html index 9d262b5..627cc0c 100644 --- a/.next/server/pages/ar/digital-agency-portfolio.html +++ b/.next/server/pages/ar/digital-agency-portfolio.html @@ -1 +1 @@ -Thamrin Group

Our Latest Projects

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

portfolio-image
Business

Business Stratagy

portfolio-image
Development

Web Development

portfolio-image
Marketing

Digital Marketing

portfolio-image
App

Mobile App Development

portfolio-image
Marketing

Email Marketing

portfolio-image
Development

E-commerce Development

portfolio-image
App

React App Development

portfolio-image
Writing

Content Writing

portfolio-image
IT

IT Consultancy

portfolio-image
Solutions

IT Solutions

portfolio-image
Marketing

Marketing & Reporting

image

About Us

Vestibulum ac posuere mi. Nullam euismod dui condimentum metus consequat blandit. Donec leo tortor, commodo eget fermentum id, molestie quis est. Ut lectus metus, condimentum eget facilisis sed, fermentum et tortor.

Learn More
image

Our Vision

Vestibulum ac posuere mi. Nullam euismod dui condimentum metus consequat blandit. Donec leo tortor, commodo eget fermentum id, molestie quis est. Ut lectus metus, condimentum eget facilisis sed, fermentum et tortor.

Learn More
image

Our Mission

Vestibulum ac posuere mi. Nullam euismod dui condimentum metus consequat blandit. Donec leo tortor, commodo eget fermentum id, molestie quis est. Ut lectus metus, condimentum eget facilisis sed, fermentum et tortor.

Learn More

Our Recent News

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

1579

Completed Projects

750

Happy Clients

\ No newline at end of file +Thamrin Group

Our Latest Projects

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

portfolio-image
Business

Business Stratagy

portfolio-image
Development

Web Development

portfolio-image
Marketing

Digital Marketing

portfolio-image
App

Mobile App Development

portfolio-image
Marketing

Email Marketing

portfolio-image
Development

E-commerce Development

portfolio-image
App

React App Development

portfolio-image
Writing

Content Writing

portfolio-image
IT

IT Consultancy

portfolio-image
Solutions

IT Solutions

portfolio-image
Marketing

Marketing & Reporting

image

About Us

Vestibulum ac posuere mi. Nullam euismod dui condimentum metus consequat blandit. Donec leo tortor, commodo eget fermentum id, molestie quis est. Ut lectus metus, condimentum eget facilisis sed, fermentum et tortor.

Learn More
image

Our Vision

Vestibulum ac posuere mi. Nullam euismod dui condimentum metus consequat blandit. Donec leo tortor, commodo eget fermentum id, molestie quis est. Ut lectus metus, condimentum eget facilisis sed, fermentum et tortor.

Learn More
image

Our Mission

Vestibulum ac posuere mi. Nullam euismod dui condimentum metus consequat blandit. Donec leo tortor, commodo eget fermentum id, molestie quis est. Ut lectus metus, condimentum eget facilisis sed, fermentum et tortor.

Learn More

Our Recent News

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

1579

Completed Projects

750

Happy Clients

\ No newline at end of file diff --git a/.next/server/pages/ar/digital-agency.html b/.next/server/pages/ar/digital-agency.html index 68fb94b..164d008 100644 --- a/.next/server/pages/ar/digital-agency.html +++ b/.next/server/pages/ar/digital-agency.html @@ -1 +1 @@ -Thamrin Group
We are creative

Digital Agency

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.

Get Started
image
shape
shape
shape
shape
What We Offer

Our Featured Solutions

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Programmatic Advertising

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore.

Learn More
image

Strategy & Research

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore.

Learn More
image

Design & Development

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore.

Learn More
image

Branding & Marketing

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore.

Learn More
image
image
About Us

Engaging New Audiences Through Smart Approach

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc.Donec vitae sapien ut libero venenatis faucibus tempus.

Discover More
shape
shape
shape
shape
shape
image
Our Solutions

Our Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

shape
shape
shape
shape
shape
shape

We Completed 1500+ Projects Yearly Successfully & Counting

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map

Proud Projects That Make Us Stand Out

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

shape
shape
shape
shape
shape
shape
Pricing

Our Pricing Plan

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

  • Monthly Plan
  • Yearly Plan

Free

Get your business up
and running

$0 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 1000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Pro

Get your business up
and running

$149 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 3300 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Premium

Get your business up
and running

$179 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 10000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Free

Get your business up
and running

$0 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 1000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Pro

Get your business up
and running

$249 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 3300 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Premium

Get your business up
and running

$279 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 10000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets
image
News

The News from Our Blog

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

shape
shape
shape
shape
shape
shape

Do you have any projects?

Contact Us
\ No newline at end of file +Thamrin Group
We are creative

Digital Agency

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.

Get Started
image
shape
shape
shape
shape
What We Offer

Our Featured Solutions

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Programmatic Advertising

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore.

Learn More
image

Strategy & Research

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore.

Learn More
image

Design & Development

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore.

Learn More
image

Branding & Marketing

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore.

Learn More
image
image
About Us

Engaging New Audiences Through Smart Approach

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc.Donec vitae sapien ut libero venenatis faucibus tempus.

Discover More
shape
shape
shape
shape
shape
image
Our Solutions

Our Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

shape
shape
shape
shape
shape
shape

We Completed 1500+ Projects Yearly Successfully & Counting

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map

Proud Projects That Make Us Stand Out

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

shape
shape
shape
shape
shape
shape
Pricing

Our Pricing Plan

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

  • Monthly Plan
  • Yearly Plan

Free

Get your business up
and running

$0 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 1000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Pro

Get your business up
and running

$149 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 3300 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Premium

Get your business up
and running

$179 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 10000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Free

Get your business up
and running

$0 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 1000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Pro

Get your business up
and running

$249 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 3300 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Premium

Get your business up
and running

$279 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 10000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets
image
News

The News from Our Blog

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

shape
shape
shape
shape
shape
shape

Do you have any projects?

Contact Us
\ No newline at end of file diff --git a/.next/server/pages/ar/faq.html b/.next/server/pages/ar/faq.html index 11c2928..e03d761 100644 --- a/.next/server/pages/ar/faq.html +++ b/.next/server/pages/ar/faq.html @@ -1 +1 @@ -Thamrin Group

FAQ

How do permissions work in Google Play Instant?

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. incididunt ut labore et dolore magna aliqua.

Ask Your Question

\ No newline at end of file +Thamrin Group

FAQ

How do permissions work in Google Play Instant?

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. incididunt ut labore et dolore magna aliqua.

Ask Your Question

\ No newline at end of file diff --git a/.next/server/pages/ar/feature-details.html b/.next/server/pages/ar/feature-details.html index d5f876b..340fb46 100644 --- a/.next/server/pages/ar/feature-details.html +++ b/.next/server/pages/ar/feature-details.html @@ -1 +1 @@ -Thamrin Group

Feature Details

image

Information Retrieval

Build integration aute irure design in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat design proident.

  • Life time supports
  • Exclusive design
  • Solve your problem with us
  • We Provide Awesome Services
  • Your business deserves best Software

Took a galley of type and scrambled it to make a type specimen book. survived not only five centuries, but also the leap into electronic remaining. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer when an unknown.

Which material types can you work with?

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

image
\ No newline at end of file +Thamrin Group

Feature Details

image

Information Retrieval

Build integration aute irure design in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat design proident.

  • Life time supports
  • Exclusive design
  • Solve your problem with us
  • We Provide Awesome Services
  • Your business deserves best Software

Took a galley of type and scrambled it to make a type specimen book. survived not only five centuries, but also the leap into electronic remaining. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer when an unknown.

Which material types can you work with?

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

image
\ No newline at end of file diff --git a/.next/server/pages/ar/features.html b/.next/server/pages/ar/features.html index 34d212f..1be8dad 100644 --- a/.next/server/pages/ar/features.html +++ b/.next/server/pages/ar/features.html @@ -1 +1 @@ -Thamrin Group

Features

Our Features

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Incredible Infrastructure

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Email Notifications

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Simple Dashboard

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Information Retrieval

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Drag & Drop Functionality

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Deadline Reminders

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Cloud Hosting Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Cloud databases
Website hosting
File storage
Forex trading
File backups
Remote desktop
Email servers
Hybrid cloud
book-selfboxchaircloudcupflowerhead-phonemonitormugtabletissuewater-bottlewifishapemain-pic
big-monitorcreativedeveloperflower-topsmall-monitorsmall-toptabletargetshapemain-pic

Design & Development

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Responsive design
React web development
Android apps development
Laravel web development
iOS apps development
UX/UI design
E-commerce development
Print ready design
\ No newline at end of file +Thamrin Group

Features

Our Features

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Incredible Infrastructure

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Email Notifications

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Simple Dashboard

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Information Retrieval

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Drag & Drop Functionality

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Deadline Reminders

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Cloud Hosting Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Cloud databases
Website hosting
File storage
Forex trading
File backups
Remote desktop
Email servers
Hybrid cloud
book-selfboxchaircloudcupflowerhead-phonemonitormugtabletissuewater-bottlewifishapemain-pic
big-monitorcreativedeveloperflower-topsmall-monitorsmall-toptabletargetshapemain-pic

Design & Development

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Responsive design
React web development
Android apps development
Laravel web development
iOS apps development
UX/UI design
E-commerce development
Print ready design
\ No newline at end of file diff --git a/.next/server/pages/ar/feedback.html b/.next/server/pages/ar/feedback.html index 930b21e..bc6d2b0 100644 --- a/.next/server/pages/ar/feedback.html +++ b/.next/server/pages/ar/feedback.html @@ -1 +1 @@ -Thamrin Group

Feedback or Testimonials

\ No newline at end of file +Thamrin Group

Feedback or Testimonials

\ No newline at end of file diff --git a/.next/server/pages/ar/forgot-password.html b/.next/server/pages/ar/forgot-password.html index 3003da3..59fcf30 100644 --- a/.next/server/pages/ar/forgot-password.html +++ b/.next/server/pages/ar/forgot-password.html @@ -1 +1 @@ -Thamrin Group

Forgot Password

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt.

\ No newline at end of file +Thamrin Group

Forgot Password

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt.

\ No newline at end of file diff --git a/.next/server/pages/ar/hosting.html b/.next/server/pages/ar/hosting.html index cae300a..764b843 100644 --- a/.next/server/pages/ar/hosting.html +++ b/.next/server/pages/ar/hosting.html @@ -1 +1 @@ -Thamrin Group

The Best Web Hosting

  • FREE Domain Name for 2st Year
  • FREE SSL Certificate Included
  • 1-Click Wordpress Install
  • 24/7 Support

Starting at $8.99 $3.95/month

Get Started
imageimageimageimageimageimageimageimageimageimage
shape
shape
shape
shape
shape
shape
shape
shape

Money-back Guarantee

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Big Data Transfer

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

99.9% Server Uptime

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Live 24/7 Support

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Find Your Best Domain Name

  • .com
    $ 9.88
  • .net
    $ 7.88
  • .xyz
    $ 3.88
  • .tech
    $ 5.28
  • .club
    $ 2.38
  • .space
    $ 4.98
  • .global
    $ 8.99
  • .edu
    $ 6.88

Why Choose Us

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

imageimageimageimage

Proficient & Friendly

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna.

Extremely Fast

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna.

100% Safe & Security

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna.

Top-Rated

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna.

Pricing Plans

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Web Hosting

$10.99/m
  • 99.9% Uptime Guarantee
  • Reliable & Secure
  • Powered by cPanel / Plesk
  • Web Asset Delivery
  • 24/7 Dedicated Support

Cloud Hosting

$13.99/m
  • 99.9% Uptime Guarantee
  • Reliable & Secure
  • Powered by cPanel / Plesk
  • Web Asset Delivery
  • 24/7 Dedicated Support

Vps Hosting

$15.99/m
  • 99.9% Uptime Guarantee
  • Reliable & Secure
  • Powered by cPanel / Plesk
  • Web Asset Delivery
  • 24/7 Dedicated Support
shape
shape
shape
shape

Ready to talk?

Our team is here to answer your question about StartP

Contact UsOr, get started now with a free trial
More that 1.5 million businesses and organizations use StartP
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner

Our Features

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Incredible Infrastructure

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Information Retrieval

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Best Analytics Audits

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Simple Dashboard

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Email Notifications

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Deep Technical SEO

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

The News from Our Blog

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image
March 15, 2021

The Security Risks of Changing Package Owners

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 17, 2021

Tips to Protecting Your Business and Family

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 19, 2021

Protect Your Workplace from Cyber Attacks

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More

Sign up for web hosting today!

Starting at only

$4.75/mo*

\ No newline at end of file +Thamrin Group

The Best Web Hosting

  • FREE Domain Name for 2st Year
  • FREE SSL Certificate Included
  • 1-Click Wordpress Install
  • 24/7 Support

Starting at $8.99 $3.95/month

Get Started
imageimageimageimageimageimageimageimageimageimage
shape
shape
shape
shape
shape
shape
shape
shape

Money-back Guarantee

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Big Data Transfer

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

99.9% Server Uptime

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Live 24/7 Support

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Find Your Best Domain Name

  • .com
    $ 9.88
  • .net
    $ 7.88
  • .xyz
    $ 3.88
  • .tech
    $ 5.28
  • .club
    $ 2.38
  • .space
    $ 4.98
  • .global
    $ 8.99
  • .edu
    $ 6.88

Why Choose Us

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

imageimageimageimage

Proficient & Friendly

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna.

Extremely Fast

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna.

100% Safe & Security

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna.

Top-Rated

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna.

Pricing Plans

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Web Hosting

$10.99/m
  • 99.9% Uptime Guarantee
  • Reliable & Secure
  • Powered by cPanel / Plesk
  • Web Asset Delivery
  • 24/7 Dedicated Support

Cloud Hosting

$13.99/m
  • 99.9% Uptime Guarantee
  • Reliable & Secure
  • Powered by cPanel / Plesk
  • Web Asset Delivery
  • 24/7 Dedicated Support

Vps Hosting

$15.99/m
  • 99.9% Uptime Guarantee
  • Reliable & Secure
  • Powered by cPanel / Plesk
  • Web Asset Delivery
  • 24/7 Dedicated Support
shape
shape
shape
shape

Ready to talk?

Our team is here to answer your question about StartP

Contact UsOr, get started now with a free trial
More that 1.5 million businesses and organizations use StartP
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner

Our Features

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Incredible Infrastructure

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Information Retrieval

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Best Analytics Audits

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Simple Dashboard

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Email Notifications

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Deep Technical SEO

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

The News from Our Blog

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image
March 15, 2021

The Security Risks of Changing Package Owners

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 17, 2021

Tips to Protecting Your Business and Family

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 19, 2021

Protect Your Workplace from Cyber Attacks

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More

Sign up for web hosting today!

Starting at only

$4.75/mo*

\ No newline at end of file diff --git a/.next/server/pages/ar/iot.html b/.next/server/pages/ar/iot.html index 34fad1c..8647a80 100644 --- a/.next/server/pages/ar/iot.html +++ b/.next/server/pages/ar/iot.html @@ -1 +1 @@ -Thamrin Group
Internet of Things

We get it! IoT growth is happening

At this point, it may seem like overkill to point out the continued growth bound to happen in the Internet of Things space for the years to come and how it will create new opportunities for companies, both established and new, from a hardware and software perspective.

Get Started
imageimage

Our Featured Services that We Provide

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Software Development
IoT Solutions

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Smart Home, Office
IoT Solutions

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Smart City
IoT Solutions

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Automative
IoT Solutions

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Industrial
IoT Solutions

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

System on Chip
IoT Solutions

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Connect and Manage your IoT at Scale

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida. Risus commodo viverra maecenas accumsan lacus vel facilisis.

Get Started!
image
image

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map

App Development for Connected Devices

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida. Risus commodo viverra maecenas accumsan lacus.

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida. Risus commodo viverra maecenas accumsan lacus.

Explore More
image
image

How Can Your City Use IoT Technology?

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida. Risus commodo viverra maecenas accumsan lacus.

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida. Risus commodo viverra maecenas accumsan lacus.

Explore More

Thamrin Group Founders

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Josh Buttler

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Alex Maxwel

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Janny Cotller

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Jason Statham

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

Why We Are Best From Others

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Digital Technology

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Business Protection

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Data Analysis

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

The News from Our Blog

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image
March 15, 2021

The Security Risks of Changing Package Owners

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 17, 2021

Tips to Protecting Your Business and Family

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 19, 2021

Protect Your Workplace from Cyber Attacks

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
\ No newline at end of file +Thamrin Group
Internet of Things

We get it! IoT growth is happening

At this point, it may seem like overkill to point out the continued growth bound to happen in the Internet of Things space for the years to come and how it will create new opportunities for companies, both established and new, from a hardware and software perspective.

Get Started
imageimage

Our Featured Services that We Provide

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Software Development
IoT Solutions

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Smart Home, Office
IoT Solutions

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Smart City
IoT Solutions

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Automative
IoT Solutions

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Industrial
IoT Solutions

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

System on Chip
IoT Solutions

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Connect and Manage your IoT at Scale

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida. Risus commodo viverra maecenas accumsan lacus vel facilisis.

Get Started!
image
image

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map

App Development for Connected Devices

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida. Risus commodo viverra maecenas accumsan lacus.

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida. Risus commodo viverra maecenas accumsan lacus.

Explore More
image
image

How Can Your City Use IoT Technology?

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida. Risus commodo viverra maecenas accumsan lacus.

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida. Risus commodo viverra maecenas accumsan lacus.

Explore More

Thamrin Group Founders

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Josh Buttler

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Alex Maxwel

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Janny Cotller

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Jason Statham

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

Why We Are Best From Others

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Digital Technology

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Business Protection

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Data Analysis

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

The News from Our Blog

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image
March 15, 2021

The Security Risks of Changing Package Owners

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 17, 2021

Tips to Protecting Your Business and Family

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 19, 2021

Protect Your Workplace from Cyber Attacks

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
\ No newline at end of file diff --git a/.next/server/pages/ar/it-startup-2.html b/.next/server/pages/ar/it-startup-2.html index 143f65c..ea264b8 100644 --- a/.next/server/pages/ar/it-startup-2.html +++ b/.next/server/pages/ar/it-startup-2.html @@ -1 +1 @@ -Thamrin Group

Built for Developers

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Get Started
shape
shape
shape
shape
shape
shape
shape
shape

Zero Configuration

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Code Security

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Team Management

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Access Controlled

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Cloud Hosting Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Cloud databases
Website hosting
File storage
Forex trading
File backups
Remote desktop
Email servers
Hybrid cloud
book-selfboxchaircloudcupflowerhead-phonemonitormugtabletissuewater-bottlewifishapemain-pic
big-monitorcreativedeveloperflower-topsmall-monitorsmall-toptabletargetshapemain-pic

Design & Development

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Responsive design
React web development
Android apps development
Laravel web development
iOS apps development
UX/UI design
E-commerce development
Print ready design

Our Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Incredible Infrastructure

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Email Notifications

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Best Analytics Audits

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Simple Dashboard

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Information Retrieval

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Deep Technical SEO

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Drag & Drop Functionality

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Deadline Reminders

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Modern Keyword Analysis

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Our Awesome Team

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map

Pricing Plans

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Basic Plan

$15.00 /Mon
  • 5 GB Bandwidth
  • Highest Speed
  • 1 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics

Advanced Plan

$35.00 /Mon
  • 10 GB Bandwidth
  • Highest Speed
  • 3 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics

Expert Plan

$65.00 /Mon
  • 15 GB Bandwidth
  • Highest Speed
  • 5 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics
shape
shape
shape
shape

Ready to talk?

Our team is here to answer your question about StartP

Contact UsOr, get started now with a free trial
More that 1.5 million businesses and organizations use StartP
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner

The News from Our Blog

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image
March 15, 2021

The Security Risks of Changing Package Owners

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 17, 2021

Tips to Protecting Your Business and Family

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 19, 2021

Protect Your Workplace from Cyber Attacks

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
\ No newline at end of file +Thamrin Group

Built for Developers

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Get Started
shape
shape
shape
shape
shape
shape
shape
shape

Zero Configuration

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Code Security

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Team Management

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Access Controlled

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Cloud Hosting Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Cloud databases
Website hosting
File storage
Forex trading
File backups
Remote desktop
Email servers
Hybrid cloud
book-selfboxchaircloudcupflowerhead-phonemonitormugtabletissuewater-bottlewifishapemain-pic
big-monitorcreativedeveloperflower-topsmall-monitorsmall-toptabletargetshapemain-pic

Design & Development

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Responsive design
React web development
Android apps development
Laravel web development
iOS apps development
UX/UI design
E-commerce development
Print ready design

Our Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Incredible Infrastructure

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Email Notifications

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Best Analytics Audits

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Simple Dashboard

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Information Retrieval

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Deep Technical SEO

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Drag & Drop Functionality

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Deadline Reminders

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Modern Keyword Analysis

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Our Awesome Team

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map

Pricing Plans

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Basic Plan

$15.00 /Mon
  • 5 GB Bandwidth
  • Highest Speed
  • 1 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics

Advanced Plan

$35.00 /Mon
  • 10 GB Bandwidth
  • Highest Speed
  • 3 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics

Expert Plan

$65.00 /Mon
  • 15 GB Bandwidth
  • Highest Speed
  • 5 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics
shape
shape
shape
shape

Ready to talk?

Our team is here to answer your question about StartP

Contact UsOr, get started now with a free trial
More that 1.5 million businesses and organizations use StartP
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner

The News from Our Blog

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image
March 15, 2021

The Security Risks of Changing Package Owners

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 17, 2021

Tips to Protecting Your Business and Family

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 19, 2021

Protect Your Workplace from Cyber Attacks

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
\ No newline at end of file diff --git a/.next/server/pages/ar/it-startup.html b/.next/server/pages/ar/it-startup.html index 4901e94..998825e 100644 --- a/.next/server/pages/ar/it-startup.html +++ b/.next/server/pages/ar/it-startup.html @@ -1 +1 @@ -Thamrin Group

Secure IT Solutions for a more secure environment

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida

Get Started
shape
shape
shape
shape
shape
shape
shape
shape

Zero Configuration

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Code Security

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Team Management

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Access Controlled

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Cloud Hosting Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Cloud databases
Website hosting
File storage
Forex trading
File backups
Remote desktop
Email servers
Hybrid cloud
book-selfboxchaircloudcupflowerhead-phonemonitormugtabletissuewater-bottlewifishapemain-pic
big-monitorcreativedeveloperflower-topsmall-monitorsmall-toptabletargetshapemain-pic

Design & Development

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Responsive design
React web development
Android apps development
Laravel web development
iOS apps development
UX/UI design
E-commerce development
Print ready design

Our Features

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Incredible Infrastructure

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Email Notifications

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Simple Dashboard

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Information Retrieval

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Drag & Drop Functionality

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Deadline Reminders

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Our Awesome Team

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map

Our Recent Works

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

shape
shape
shape
shape

Pricing Plans

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Basic Plan

$15.00 /Mon
  • 5 GB Bandwidth
  • Highest Speed
  • 1 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics

Advanced Plan

$35.00 /Mon
  • 10 GB Bandwidth
  • Highest Speed
  • 3 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics

Expert Plan

$65.00 /Mon
  • 15 GB Bandwidth
  • Highest Speed
  • 5 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics
shape
shape
shape
shape

Ready to talk?

Our team is here to answer your question about StartP

Contact UsOr, get started now with a free trial
More that 1.5 million businesses and organizations use StartP
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner

The News from Our Blog

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image
March 15, 2021

The Security Risks of Changing Package Owners

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 17, 2021

Tips to Protecting Your Business and Family

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 19, 2021

Protect Your Workplace from Cyber Attacks

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
\ No newline at end of file +Thamrin Group

Secure IT Solutions for a more secure environment

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida

Get Started
shape
shape
shape
shape
shape
shape
shape
shape

Zero Configuration

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Code Security

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Team Management

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Access Controlled

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Cloud Hosting Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Cloud databases
Website hosting
File storage
Forex trading
File backups
Remote desktop
Email servers
Hybrid cloud
book-selfboxchaircloudcupflowerhead-phonemonitormugtabletissuewater-bottlewifishapemain-pic
big-monitorcreativedeveloperflower-topsmall-monitorsmall-toptabletargetshapemain-pic

Design & Development

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Responsive design
React web development
Android apps development
Laravel web development
iOS apps development
UX/UI design
E-commerce development
Print ready design

Our Features

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Incredible Infrastructure

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Email Notifications

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Simple Dashboard

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Information Retrieval

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Drag & Drop Functionality

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Deadline Reminders

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Our Awesome Team

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map

Our Recent Works

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

shape
shape
shape
shape

Pricing Plans

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Basic Plan

$15.00 /Mon
  • 5 GB Bandwidth
  • Highest Speed
  • 1 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics

Advanced Plan

$35.00 /Mon
  • 10 GB Bandwidth
  • Highest Speed
  • 3 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics

Expert Plan

$65.00 /Mon
  • 15 GB Bandwidth
  • Highest Speed
  • 5 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics
shape
shape
shape
shape

Ready to talk?

Our team is here to answer your question about StartP

Contact UsOr, get started now with a free trial
More that 1.5 million businesses and organizations use StartP
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner

The News from Our Blog

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image
March 15, 2021

The Security Risks of Changing Package Owners

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 17, 2021

Tips to Protecting Your Business and Family

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 19, 2021

Protect Your Workplace from Cyber Attacks

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
\ No newline at end of file diff --git a/.next/server/pages/ar/login.html b/.next/server/pages/ar/login.html index b8c89e2..ceb5338 100644 --- a/.next/server/pages/ar/login.html +++ b/.next/server/pages/ar/login.html @@ -1 +1 @@ -Thamrin Group

Login

Don't have an account yet? Sign Up

or connect with

\ No newline at end of file +Thamrin Group

Login

Don't have an account yet? Sign Up

or connect with

\ No newline at end of file diff --git a/.next/server/pages/ar/machine-learning-2.html b/.next/server/pages/ar/machine-learning-2.html index eda2d81..0c1e5b1 100644 --- a/.next/server/pages/ar/machine-learning-2.html +++ b/.next/server/pages/ar/machine-learning-2.html @@ -1 +1 @@ -Thamrin Group

World’s Leading AI & Machine Learning Company

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Get Started
image
shape
shape
shape
shape
shape
shape
What We Offer

Our Featured Solutions

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Robotic Automation

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Cognitive Automation

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Cognitive Engagement

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Security & Surveillance

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
shape
shape
shape
shape
shape
shape
shape
image
About Us

Engaging New Audiences Through Smart Approach

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc.Donec vitae sapien ut libero venenatis faucibus tempus.

Discover More
shape
shape
shape
shape
shape
shape
Our Solutions

Our Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

IT Professionals

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Software Engineers

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Health & Manufacturing

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Security & Surveillance

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Automatic Optimization

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Data Analysts

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

shape
shape
shape
shape
shape
shape

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map

Proud Projects That Make Us Stand Out

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

shape
shape
shape
shape
shape
shape

Our Pricing Plan

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

  • Monthly Plan
  • Yearly Plan

Free

Get your business up
and running

$0 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 1000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Pro

Get your business up
and running

$149 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 3300 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Premium

Get your business up
and running

$179 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 10000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Free

Get your business up
and running

$0 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 1000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Pro

Get your business up
and running

$249 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 3300 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Premium

Get your business up
and running

$279 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 10000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets
shape
shape
shape
shape
shape
shape

Our Recent Story

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Making Peace With The Feast Or Famine Of Freelancing

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

I Used The Web For A Day On A 50 MB Budget

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Here are the 5 most telling signs of micromanagement

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
shape
shape
shape
shape
shape
shape
image

Start your free trial

Test out the Machine Learning features for 14 days, no credit card required.

shape
shape
shape
shape
\ No newline at end of file +Thamrin Group

World’s Leading AI & Machine Learning Company

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Get Started
image
shape
shape
shape
shape
shape
shape
What We Offer

Our Featured Solutions

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Robotic Automation

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Cognitive Automation

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Cognitive Engagement

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Security & Surveillance

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
shape
shape
shape
shape
shape
shape
shape
image
About Us

Engaging New Audiences Through Smart Approach

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc.Donec vitae sapien ut libero venenatis faucibus tempus.

Discover More
shape
shape
shape
shape
shape
shape
Our Solutions

Our Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

IT Professionals

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Software Engineers

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Health & Manufacturing

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Security & Surveillance

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Automatic Optimization

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Data Analysts

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

shape
shape
shape
shape
shape
shape

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map

Proud Projects That Make Us Stand Out

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

shape
shape
shape
shape
shape
shape

Our Pricing Plan

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

  • Monthly Plan
  • Yearly Plan

Free

Get your business up
and running

$0 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 1000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Pro

Get your business up
and running

$149 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 3300 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Premium

Get your business up
and running

$179 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 10000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Free

Get your business up
and running

$0 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 1000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Pro

Get your business up
and running

$249 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 3300 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Premium

Get your business up
and running

$279 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 10000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets
shape
shape
shape
shape
shape
shape

Our Recent Story

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Making Peace With The Feast Or Famine Of Freelancing

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

I Used The Web For A Day On A 50 MB Budget

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Here are the 5 most telling signs of micromanagement

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
shape
shape
shape
shape
shape
shape
image

Start your free trial

Test out the Machine Learning features for 14 days, no credit card required.

shape
shape
shape
shape
\ No newline at end of file diff --git a/.next/server/pages/ar/machine-learning.html b/.next/server/pages/ar/machine-learning.html index e4d21d4..faf1cd6 100644 --- a/.next/server/pages/ar/machine-learning.html +++ b/.next/server/pages/ar/machine-learning.html @@ -1 +1 @@ -Thamrin Group

World’s Leading AI & Machine Learning Company

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Get Started
imageimageimageimageimageimageimageimageimageimageimageimage
shape
shape
shape
shape
shape
shape
What We Offer

Our Featured Solutions

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Robotic Automation

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Cognitive Automation

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Cognitive Engagement

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Security & Surveillance

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
shape
shape
shape
shape
shape
shape
shape
image
About Us

Engaging New Audiences Through Smart Approach

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc.Donec vitae sapien ut libero venenatis faucibus tempus.

Discover More
shape
shape
shape
shape
shape
shape
Our Solutions

Our Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

IT Professionals

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Software Engineers

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Health & Manufacturing

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Security & Surveillance

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Automatic Optimization

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Data Analysts

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

shape
shape
shape
shape
shape
shape

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map

Proud Projects That Make Us Stand Out

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

shape
shape
shape
shape
shape
shape

Our Pricing Plan

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

  • Monthly Plan
  • Yearly Plan

Free

Get your business up
and running

$0 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 1000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Pro

Get your business up
and running

$149 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 3300 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Premium

Get your business up
and running

$179 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 10000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Free

Get your business up
and running

$0 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 1000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Pro

Get your business up
and running

$249 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 3300 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Premium

Get your business up
and running

$279 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 10000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets
shape
shape
shape
shape
shape
shape

Our Recent Story

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Making Peace With The Feast Or Famine Of Freelancing

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

I Used The Web For A Day On A 50 MB Budget

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Here are the 5 most telling signs of micromanagement

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
shape
shape
shape
shape
shape
shape
image

Start your free trial

Test out the Machine Learning features for 14 days, no credit card required.

shape
shape
shape
shape
\ No newline at end of file +Thamrin Group

World’s Leading AI & Machine Learning Company

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Get Started
imageimageimageimageimageimageimageimageimageimageimageimage
shape
shape
shape
shape
shape
shape
What We Offer

Our Featured Solutions

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Robotic Automation

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Cognitive Automation

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Cognitive Engagement

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Security & Surveillance

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
shape
shape
shape
shape
shape
shape
shape
image
About Us

Engaging New Audiences Through Smart Approach

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc.Donec vitae sapien ut libero venenatis faucibus tempus.

Discover More
shape
shape
shape
shape
shape
shape
Our Solutions

Our Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

IT Professionals

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Software Engineers

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Health & Manufacturing

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Security & Surveillance

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Automatic Optimization

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Data Analysts

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

shape
shape
shape
shape
shape
shape

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map

Proud Projects That Make Us Stand Out

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

shape
shape
shape
shape
shape
shape

Our Pricing Plan

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

  • Monthly Plan
  • Yearly Plan

Free

Get your business up
and running

$0 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 1000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Pro

Get your business up
and running

$149 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 3300 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Premium

Get your business up
and running

$179 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 10000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Free

Get your business up
and running

$0 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 1000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Pro

Get your business up
and running

$249 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 3300 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Premium

Get your business up
and running

$279 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 10000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets
shape
shape
shape
shape
shape
shape

Our Recent Story

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Making Peace With The Feast Or Famine Of Freelancing

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

I Used The Web For A Day On A 50 MB Budget

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Here are the 5 most telling signs of micromanagement

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
shape
shape
shape
shape
shape
shape
image

Start your free trial

Test out the Machine Learning features for 14 days, no credit card required.

shape
shape
shape
shape
\ No newline at end of file diff --git a/.next/server/pages/ar/pc-repair.html b/.next/server/pages/ar/pc-repair.html index ea6c523..900a42b 100644 --- a/.next/server/pages/ar/pc-repair.html +++ b/.next/server/pages/ar/pc-repair.html @@ -1 +1 @@ -Thamrin Group

Your Local Computer Repair Experts!

There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable.

Get Started
imageimageimageimage
About Us

We have 35 years of experience in repair services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

  • Experienced Professionals
  • Expert Technical Skills
  • Excellent Reputation
  • Friendly Service
  • Trustworthy See Reviews
  • Affordable Diagnosis
imageimageimageimageimage

Our Featured Services that We Provide

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Laptop Repair

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Computer Repair

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Apple Products Repair

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Software Update

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Smartphone Repair

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Data Backup & Recovery

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

We'll help you get back to work

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida. Risus commodo viverra maecenas accumsan lacus vel facilisis.

Contact Us
image
image
image

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map

Our Awesome Team

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Josh Buttler

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Alex Maxwel

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Janny Cotller

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Jason Statham

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

Why We Are Best From Others

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Quick Repair Process

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Free Diagnostics

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Fast Delivery

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

The News from Our Blog

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image
March 15, 2021

The Security Risks of Changing Package Owners

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 17, 2021

Tips to Protecting Your Business and Family

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 19, 2021

Protect Your Workplace from Cyber Attacks

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
\ No newline at end of file +Thamrin Group

Your Local Computer Repair Experts!

There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable.

Get Started
imageimageimageimage
About Us

We have 35 years of experience in repair services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

  • Experienced Professionals
  • Expert Technical Skills
  • Excellent Reputation
  • Friendly Service
  • Trustworthy See Reviews
  • Affordable Diagnosis
imageimageimageimageimage

Our Featured Services that We Provide

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Laptop Repair

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Computer Repair

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Apple Products Repair

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Software Update

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Smartphone Repair

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Data Backup & Recovery

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

We'll help you get back to work

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida. Risus commodo viverra maecenas accumsan lacus vel facilisis.

Contact Us
image
image
image

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map

Our Awesome Team

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Josh Buttler

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Alex Maxwel

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Janny Cotller

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Jason Statham

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

Why We Are Best From Others

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Quick Repair Process

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Free Diagnostics

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Fast Delivery

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

The News from Our Blog

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image
March 15, 2021

The Security Risks of Changing Package Owners

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 17, 2021

Tips to Protecting Your Business and Family

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 19, 2021

Protect Your Workplace from Cyber Attacks

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
\ No newline at end of file diff --git a/.next/server/pages/ar/pricing.html b/.next/server/pages/ar/pricing.html index 2556e39..7adf61b 100644 --- a/.next/server/pages/ar/pricing.html +++ b/.next/server/pages/ar/pricing.html @@ -1 +1 @@ -Thamrin Group

Pricing

Pricing Plans

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Basic Plan

$15.00 /Mon
  • 5 GB Bandwidth
  • Highest Speed
  • 1 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics

Advanced Plan

$35.00 /Mon
  • 10 GB Bandwidth
  • Highest Speed
  • 3 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics

Expert Plan

$65.00 /Mon
  • 15 GB Bandwidth
  • Highest Speed
  • 5 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics
shape
shape
shape
shape

Pricing Plans

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Web Hosting

$10.99/m
  • 99.9% Uptime Guarantee
  • Reliable & Secure
  • Powered by cPanel / Plesk
  • Web Asset Delivery
  • 24/7 Dedicated Support

Cloud Hosting

$13.99/m
  • 99.9% Uptime Guarantee
  • Reliable & Secure
  • Powered by cPanel / Plesk
  • Web Asset Delivery
  • 24/7 Dedicated Support

Vps Hosting

$15.99/m
  • 99.9% Uptime Guarantee
  • Reliable & Secure
  • Powered by cPanel / Plesk
  • Web Asset Delivery
  • 24/7 Dedicated Support
shape
shape
shape
shape

Our Pricing Plan

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

  • Monthly Plan
  • Yearly Plan

Free

Get your business up
and running

$0 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 1000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Pro

Get your business up
and running

$149 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 3300 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Premium

Get your business up
and running

$179 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 10000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Free

Get your business up
and running

$0 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 1000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Pro

Get your business up
and running

$249 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 3300 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Premium

Get your business up
and running

$279 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 10000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets
shape
shape
shape
shape
shape
shape
\ No newline at end of file +Thamrin Group

Pricing

Pricing Plans

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Basic Plan

$15.00 /Mon
  • 5 GB Bandwidth
  • Highest Speed
  • 1 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics

Advanced Plan

$35.00 /Mon
  • 10 GB Bandwidth
  • Highest Speed
  • 3 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics

Expert Plan

$65.00 /Mon
  • 15 GB Bandwidth
  • Highest Speed
  • 5 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics
shape
shape
shape
shape

Pricing Plans

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Web Hosting

$10.99/m
  • 99.9% Uptime Guarantee
  • Reliable & Secure
  • Powered by cPanel / Plesk
  • Web Asset Delivery
  • 24/7 Dedicated Support

Cloud Hosting

$13.99/m
  • 99.9% Uptime Guarantee
  • Reliable & Secure
  • Powered by cPanel / Plesk
  • Web Asset Delivery
  • 24/7 Dedicated Support

Vps Hosting

$15.99/m
  • 99.9% Uptime Guarantee
  • Reliable & Secure
  • Powered by cPanel / Plesk
  • Web Asset Delivery
  • 24/7 Dedicated Support
shape
shape
shape
shape

Our Pricing Plan

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

  • Monthly Plan
  • Yearly Plan

Free

Get your business up
and running

$0 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 1000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Pro

Get your business up
and running

$149 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 3300 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Premium

Get your business up
and running

$179 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 10000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Free

Get your business up
and running

$0 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 1000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Pro

Get your business up
and running

$249 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 3300 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Premium

Get your business up
and running

$279 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 10000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets
shape
shape
shape
shape
shape
shape
\ No newline at end of file diff --git a/.next/server/pages/ar/privacy-policy.html b/.next/server/pages/ar/privacy-policy.html index 51c5980..282feb4 100644 --- a/.next/server/pages/ar/privacy-policy.html +++ b/.next/server/pages/ar/privacy-policy.html @@ -1 +1 @@ -Thamrin Group

Privacy Policy

Welcome to our Privacy Policy

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?

What is Lorem Ipsum?

But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure

At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.

t is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).

\ No newline at end of file +Thamrin Group

Privacy Policy

Welcome to our Privacy Policy

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?

What is Lorem Ipsum?

But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure

At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.

t is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).

\ No newline at end of file diff --git a/.next/server/pages/ar/products/[id].html b/.next/server/pages/ar/products/[id].html index 173a045..732f961 100644 --- a/.next/server/pages/ar/products/[id].html +++ b/.next/server/pages/ar/products/[id].html @@ -1 +1 @@ -Thamrin Group

$

Availability:
Quantity:
Guaranteed safe checkout:
imageimageimageimageimageimageimage
Share:

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. Lorem Ipsum is simply dummy text of the printing.

\ No newline at end of file +Thamrin Group

$

Availability:
Quantity:
Guaranteed safe checkout:
imageimageimageimageimageimageimage
Share:

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. Lorem Ipsum is simply dummy text of the printing.

\ No newline at end of file diff --git a/.next/server/pages/ar/project-details.html b/.next/server/pages/ar/project-details.html index 3924da0..7aca02a 100644 --- a/.next/server/pages/ar/project-details.html +++ b/.next/server/pages/ar/project-details.html @@ -1 +1 @@ -Thamrin Group

Projects Details

work
work
work
work

Network Marketing

Lorem ipsum dolor sit amet, conse cte tuer adipiscing elit, sed diam no nu m nibhie eui smod. Facil isis atve eros et accumsan etiu sto odi dignis sim qui blandit praesen lup ta de er. At molestiae appellantur pro. Vis wisi oportere per ic ula ad, ei latine prop riae na, mea cu purto debitis. Primis nost rud no eos, no impedit dissenti as mea, ea vide labor amus neglegentur vix. Ancillae intellegat vix et. Sit causae laoreet nolu ise. Ad po exerci nusquam eos te. Cu altera expet enda qui, munere oblique theo phrastu ea vix. Ne nec modus civibus modera tius, sit ei lorem doctus. Ne docen di verterem reformidans eos. Cu altera expetenda qui, munere oblique theophr astus ea vix modus civiu mod eratius.

Lorem ipsum dolor sit amet, conse cte tuer adipiscing elit, sed diam no nu m nibhie eui smod. Facil isis atve eros et accumsan etiu sto odi dignis sim qui blandit praesen lup ta de er. At molestiae appellantur pro. Vis wisi oportere per ic ula ad, ei latine prop riae na, mea cu purto debitis. Primis nost rud no eos, no impedit dissenti as mea, ea vide labor amus neglegentur vix. Ancillae intellegat vix et. Sit causae laoreet nolu ise. Ad po exerci nusquam eos te. Cu altera expet enda qui, munere oblique theo phrastu ea vix. Ne nec modus civibus modera tius, sit ei lorem doctus. Ne docen di verterem reformidans eos. Cu altera expetenda qui, munere oblique theophr astus ea vix modus civiu mod eratius.

Happy Client

John Doe

Category

Portfolio, Personal

Date

February 28, 2021

Share

\ No newline at end of file +Thamrin Group

Projects Details

work
work
work
work

Network Marketing

Lorem ipsum dolor sit amet, conse cte tuer adipiscing elit, sed diam no nu m nibhie eui smod. Facil isis atve eros et accumsan etiu sto odi dignis sim qui blandit praesen lup ta de er. At molestiae appellantur pro. Vis wisi oportere per ic ula ad, ei latine prop riae na, mea cu purto debitis. Primis nost rud no eos, no impedit dissenti as mea, ea vide labor amus neglegentur vix. Ancillae intellegat vix et. Sit causae laoreet nolu ise. Ad po exerci nusquam eos te. Cu altera expet enda qui, munere oblique theo phrastu ea vix. Ne nec modus civibus modera tius, sit ei lorem doctus. Ne docen di verterem reformidans eos. Cu altera expetenda qui, munere oblique theophr astus ea vix modus civiu mod eratius.

Lorem ipsum dolor sit amet, conse cte tuer adipiscing elit, sed diam no nu m nibhie eui smod. Facil isis atve eros et accumsan etiu sto odi dignis sim qui blandit praesen lup ta de er. At molestiae appellantur pro. Vis wisi oportere per ic ula ad, ei latine prop riae na, mea cu purto debitis. Primis nost rud no eos, no impedit dissenti as mea, ea vide labor amus neglegentur vix. Ancillae intellegat vix et. Sit causae laoreet nolu ise. Ad po exerci nusquam eos te. Cu altera expet enda qui, munere oblique theo phrastu ea vix. Ne nec modus civibus modera tius, sit ei lorem doctus. Ne docen di verterem reformidans eos. Cu altera expetenda qui, munere oblique theophr astus ea vix modus civiu mod eratius.

Happy Client

John Doe

Category

Portfolio, Personal

Date

February 28, 2021

Share

\ No newline at end of file diff --git a/.next/server/pages/ar/projects-1.html b/.next/server/pages/ar/projects-1.html index 7470aaf..257cb6f 100644 --- a/.next/server/pages/ar/projects-1.html +++ b/.next/server/pages/ar/projects-1.html @@ -1 +1 @@ -Thamrin Group

Projects Style One

image

Incredible infrastructure

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

UI/UX Design

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Apps Development

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Mock-up Design

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

E-commerce

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Web Design

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

React App Development

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Digital Marketing

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Email Marketing

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

shape
shape
shape
shape
\ No newline at end of file +Thamrin Group

Projects Style One

image

Incredible infrastructure

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

UI/UX Design

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Apps Development

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Mock-up Design

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

E-commerce

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Web Design

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

React App Development

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Digital Marketing

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Email Marketing

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

shape
shape
shape
shape
\ No newline at end of file diff --git a/.next/server/pages/ar/projects-2.html b/.next/server/pages/ar/projects-2.html index e1a2e0d..9ad1052 100644 --- a/.next/server/pages/ar/projects-2.html +++ b/.next/server/pages/ar/projects-2.html @@ -1 +1 @@ -Thamrin Group \ No newline at end of file +Thamrin Group \ No newline at end of file diff --git a/.next/server/pages/ar/service-details.html b/.next/server/pages/ar/service-details.html index 6f8ce21..fb1862c 100644 --- a/.next/server/pages/ar/service-details.html +++ b/.next/server/pages/ar/service-details.html @@ -1 +1 @@ -Thamrin Group

Services Style Five

Incredible Infrastructure

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer.

Took a galley of type and scrambled it to make a type specimen book. survived not only five centuries, but also the leap into electronic remaining. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer when an unknown.

image
image

Took a galley of type and scrambled it to make a type specimen book. survived not only five centuries, but also the leap into electronic remaining. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer when an unknown.

Which material types can you work with?

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

\ No newline at end of file +Thamrin Group

Services Style Five

Incredible Infrastructure

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer.

Took a galley of type and scrambled it to make a type specimen book. survived not only five centuries, but also the leap into electronic remaining. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer when an unknown.

image
image

Took a galley of type and scrambled it to make a type specimen book. survived not only five centuries, but also the leap into electronic remaining. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer when an unknown.

Which material types can you work with?

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

\ No newline at end of file diff --git a/.next/server/pages/ar/services-1.html b/.next/server/pages/ar/services-1.html index bc6bc49..f2f7d95 100644 --- a/.next/server/pages/ar/services-1.html +++ b/.next/server/pages/ar/services-1.html @@ -1 +1 @@ -Thamrin Group

Services Style One

Our Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Incredible Infrastructure

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Email Notifications

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Best Analytics Audits

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Simple Dashboard

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Information Retrieval

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Deep Technical SEO

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Drag & Drop Functionality

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Deadline Reminders

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Modern Keyword Analysis

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

\ No newline at end of file +Thamrin Group

Services Style One

Our Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Incredible Infrastructure

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Email Notifications

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Best Analytics Audits

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Simple Dashboard

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Information Retrieval

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Deep Technical SEO

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Drag & Drop Functionality

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Deadline Reminders

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Modern Keyword Analysis

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

\ No newline at end of file diff --git a/.next/server/pages/ar/services-2.html b/.next/server/pages/ar/services-2.html index 3acfadf..6070daa 100644 --- a/.next/server/pages/ar/services-2.html +++ b/.next/server/pages/ar/services-2.html @@ -1 +1 @@ -Thamrin Group

Services Style Two

image

IT Professionals

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Software Engineers

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Health & Manufacturing

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Security & Surveillance

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Automatic Optimization

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Data Analysts

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

shape
shape
shape
shape
shape
shape
\ No newline at end of file +Thamrin Group

Services Style Two

image

IT Professionals

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Software Engineers

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Health & Manufacturing

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Security & Surveillance

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Automatic Optimization

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Data Analysts

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

shape
shape
shape
shape
shape
shape
\ No newline at end of file diff --git a/.next/server/pages/ar/services-3.html b/.next/server/pages/ar/services-3.html index 8148611..8013198 100644 --- a/.next/server/pages/ar/services-3.html +++ b/.next/server/pages/ar/services-3.html @@ -1 +1 @@ -Thamrin Group

Services Style Three

image

Robotic Automation

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Cognitive Automation

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Cognitive Engagement

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Security & Surveillance

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Automatic Optimization

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Data Analysts

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Health & Manufacturing

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Software Engineers

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
shape
shape
shape
shape
shape
shape
shape
\ No newline at end of file +Thamrin Group

Services Style Three

image

Robotic Automation

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Cognitive Automation

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Cognitive Engagement

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Security & Surveillance

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Automatic Optimization

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Data Analysts

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Health & Manufacturing

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Software Engineers

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
shape
shape
shape
shape
shape
shape
shape
\ No newline at end of file diff --git a/.next/server/pages/ar/services-4.html b/.next/server/pages/ar/services-4.html index 53cec52..3dc6445 100644 --- a/.next/server/pages/ar/services-4.html +++ b/.next/server/pages/ar/services-4.html @@ -1 +1 @@ -Thamrin Group

Services Style Four

image

Programmatic Advertising

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Strategy & Research

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Design & Development

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Branding & Marketing

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Programmatic Advertising

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Strategy & Research

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Design & Development

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Branding & Marketing

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
shape
shape
shape
shape
shape
\ No newline at end of file +Thamrin Group

Services Style Four

image

Programmatic Advertising

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Strategy & Research

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Design & Development

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Branding & Marketing

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Programmatic Advertising

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Strategy & Research

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Design & Development

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Branding & Marketing

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
shape
shape
shape
shape
shape
\ No newline at end of file diff --git a/.next/server/pages/ar/services-5.html b/.next/server/pages/ar/services-5.html index 5035412..87ed49a 100644 --- a/.next/server/pages/ar/services-5.html +++ b/.next/server/pages/ar/services-5.html @@ -1 +1 @@ -Thamrin Group \ No newline at end of file +Thamrin Group \ No newline at end of file diff --git a/.next/server/pages/ar/shop.html b/.next/server/pages/ar/shop.html index 9204470..eeb24ca 100644 --- a/.next/server/pages/ar/shop.html +++ b/.next/server/pages/ar/shop.html @@ -1 +1 @@ -Thamrin Group

Products

Showing 1-8 of 14 results

\ No newline at end of file +Thamrin Group

Products

Showing 1-8 of 14 results

\ No newline at end of file diff --git a/.next/server/pages/ar/sign-up.html b/.next/server/pages/ar/sign-up.html index cbd85df..37c6e70 100644 --- a/.next/server/pages/ar/sign-up.html +++ b/.next/server/pages/ar/sign-up.html @@ -1 +1 @@ -Thamrin Group

Sign Up

Create a new account

Already have an account yet? Login

\ No newline at end of file +Thamrin Group

Sign Up

Create a new account

Already have an account yet? Login

\ No newline at end of file diff --git a/.next/server/pages/ar/team.html b/.next/server/pages/ar/team.html index f39f66d..8b0f6a7 100644 --- a/.next/server/pages/ar/team.html +++ b/.next/server/pages/ar/team.html @@ -1 +1 @@ -Thamrin Group

Team

image

Josh Buttler

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Alex Maxwel

Marketing Manager

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Janny Cotller

Web Developer

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Jason Statham

UX/UI Designer

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Corey Anderson

Project Manager

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Josh Buttler

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Alex Maxwel

Marketing Manager

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Janny Cotller

Web Developer

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Jason Statham

UX/UI Designer

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

\ No newline at end of file +Thamrin Group

Team

image

Josh Buttler

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Alex Maxwel

Marketing Manager

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Janny Cotller

Web Developer

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Jason Statham

UX/UI Designer

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Corey Anderson

Project Manager

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Josh Buttler

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Alex Maxwel

Marketing Manager

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Janny Cotller

Web Developer

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Jason Statham

UX/UI Designer

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

\ No newline at end of file diff --git a/.next/server/pages/ar/term-condition.html b/.next/server/pages/ar/term-condition.html index f7efcc5..86514b9 100644 --- a/.next/server/pages/ar/term-condition.html +++ b/.next/server/pages/ar/term-condition.html @@ -1 +1 @@ -Thamrin Group

Term & Condition

Welcome to our Term & Condition

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?

What is Lorem Ipsum?

But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure

At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.

t is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).

\ No newline at end of file +Thamrin Group

Term & Condition

Welcome to our Term & Condition

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?

What is Lorem Ipsum?

But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure

At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.

t is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).

\ No newline at end of file diff --git a/.next/server/pages/ar/yamaha/ContactUs.html b/.next/server/pages/ar/yamaha/ContactUs.html index 2e624c2..df53386 100644 --- a/.next/server/pages/ar/yamaha/ContactUs.html +++ b/.next/server/pages/ar/yamaha/ContactUs.html @@ -1 +1 @@ -Thamrin Group

Contact Us

\ No newline at end of file +Thamrin Group

Contact Us

\ No newline at end of file diff --git a/.next/server/pages/ar/yamaha/ForgotPassword.html b/.next/server/pages/ar/yamaha/ForgotPassword.html index 1bd66c4..09b05b7 100644 --- a/.next/server/pages/ar/yamaha/ForgotPassword.html +++ b/.next/server/pages/ar/yamaha/ForgotPassword.html @@ -1 +1 @@ -Thamrin Group
logo

Masukan E-Mail anda, agar kami dapat mengirim Link Reset Password

\ No newline at end of file +Thamrin Group
logo

Masukan E-Mail anda, agar kami dapat mengirim Link Reset Password

\ No newline at end of file diff --git a/.next/server/pages/ar/yamaha/Register.html b/.next/server/pages/ar/yamaha/Register.html index 4435b2e..6adca25 100644 --- a/.next/server/pages/ar/yamaha/Register.html +++ b/.next/server/pages/ar/yamaha/Register.html @@ -1 +1 @@ -Thamrin Group
logo

Create a new account

Already have an account yet? Login

\ No newline at end of file +Thamrin Group
logo

Create a new account

Already have an account yet? Login

\ No newline at end of file diff --git a/.next/server/pages/ar/yamaha/login.html b/.next/server/pages/ar/yamaha/login.html index 7995d76..6effc28 100644 --- a/.next/server/pages/ar/yamaha/login.html +++ b/.next/server/pages/ar/yamaha/login.html @@ -1 +1 @@ -Thamrin Group
logo

Tidak Punya Akun ? Silahkan Register

or connect with

\ No newline at end of file +Thamrin Group
logo

Tidak Punya Akun ? Silahkan Register

or connect with

\ No newline at end of file diff --git a/.next/server/pages/en.html b/.next/server/pages/en.html index 37e8b78..d7452eb 100644 --- a/.next/server/pages/en.html +++ b/.next/server/pages/en.html @@ -1 +1 @@ -Thamrin Group

Selamat Datang di Thamrin Group

Thamrin Group adalah perusahaan terkemuka di Sumatera Selatan & Bengkulu dengan fokus bisnis pada sektor otomotif dan properti.

Get Started

Thamrin Group Businees Partner

Thamrin Group mempunyai beberapa Businees Partner sebagai Unit Bisnis nya, antar lain


image


Thamrin Brothers
Yamaha

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Nusa Sarana Citra Bakti
Suzuki

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Citra Lestari Mobilindo
Hino

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Citra Thamrin Motor
Honda

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.


image

Thamrin Citra Abadi
Mercedes Benz

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.


image

Musi Lestari Indo Makmur
Palembang Indah Mall

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Musi Indah Makmur
Emilia Hotel

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.


image


Bank Perkreditan Rakyat
Berkat Sejati

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.


image


Thamrin Homes


Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Thamrin Group Gallery

shape
shape
shape
shape
shape
shape

Sektor Industri

Kami melayani berbagai macam sektor industri, antara lain

Otomotif
Industri Ritel
Bank
Real Estate
Hotel
Restoran
Percetakan
image

Thamrin Group Founders

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Josh Buttler

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Alex Maxwel

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Janny Cotller

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Jason Statham

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

Latest News

image

Making Peace With The Feast Or Famine Of Freelancing

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

I Used The Web For A Day On A 50 MB Budget

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Here are the 5 most telling signs of micromanagement

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
shape
shape
shape
shape
shape
shape
shape
image

Enter Your Email For Get Info & Promo

shape
shape
shape
shape
\ No newline at end of file +Thamrin Group

Selamat Datang di Thamrin Group

Thamrin Group adalah perusahaan terkemuka di Sumatera Selatan & Bengkulu dengan fokus bisnis pada sektor otomotif dan properti.

Get Started

Thamrin Group Businees Partner

Thamrin Group mempunyai beberapa Businees Partner sebagai Unit Bisnis nya, antar lain


image


Thamrin Brothers
Yamaha

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Nusa Sarana Citra Bakti
Suzuki

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Citra Lestari Mobilindo
Hino

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Citra Thamrin Motor
Honda

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.


image

Thamrin Citra Abadi
Mercedes Benz

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.


image

Musi Lestari Indo Makmur
Palembang Indah Mall

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Musi Indah Makmur
Emilia Hotel

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.


image


Bank Perkreditan Rakyat
Berkat Sejati

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.


image


Thamrin Homes


Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Thamrin Group Gallery

shape
shape
shape
shape
shape
shape

Sektor Industri

Kami melayani berbagai macam sektor industri, antara lain

Otomotif
Industri Ritel
Bank
Real Estate
Hotel
Restoran
Percetakan
image

Thamrin Group Founders

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Josh Buttler

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Alex Maxwel

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Janny Cotller

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Jason Statham

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

Latest News

image

Making Peace With The Feast Or Famine Of Freelancing

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

I Used The Web For A Day On A 50 MB Budget

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Here are the 5 most telling signs of micromanagement

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
shape
shape
shape
shape
shape
shape
shape
image

Enter Your Email For Get Info & Promo

shape
shape
shape
shape
\ No newline at end of file diff --git a/.next/server/pages/en/404.html b/.next/server/pages/en/404.html index 2a9a14e..075b16f 100644 --- a/.next/server/pages/en/404.html +++ b/.next/server/pages/en/404.html @@ -1 +1 @@ -Thamrin Group

Oops!

404 - Page not found

The page you are looking for might have been removed had its name changed or is temporarily unavailable.

Go to Homepage
\ No newline at end of file +Thamrin Group

Oops!

404 - Page not found

The page you are looking for might have been removed had its name changed or is temporarily unavailable.

Go to Homepage
\ No newline at end of file diff --git a/.next/server/pages/en/500.html b/.next/server/pages/en/500.html index d036866..3c0c453 100644 --- a/.next/server/pages/en/500.html +++ b/.next/server/pages/en/500.html @@ -1 +1 @@ -404: This page could not be found

404

This page could not be found.

\ No newline at end of file +404: This page could not be found

404

This page could not be found.

\ No newline at end of file diff --git a/.next/server/pages/en/about-1.html b/.next/server/pages/en/about-1.html index e78569e..39f9db9 100644 --- a/.next/server/pages/en/about-1.html +++ b/.next/server/pages/en/about-1.html @@ -1 +1 @@ -Thamrin Group

About Us

image

About Us

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. In sagittis egestas ante, sed viverra nunc tincidunt nec nteger nonsed condimntum elit, sit amet feugiat lorem. Proin tempus sagittis velit vitae scelerisque.

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Business-to-business metrics analytics value proposition funding angel investor entrepreneur alpha ramen equity gamification. Social proof partner network research.

Our History

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Our Mission

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Who We Are

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Our Awesome Team

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Ready to talk?

Our team is here to answer your question about StartP

Contact UsOr, get started now with a free trial
More that 1.5 million businesses and organizations use StartP
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map
\ No newline at end of file +Thamrin Group

About Us

image

About Us

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. In sagittis egestas ante, sed viverra nunc tincidunt nec nteger nonsed condimntum elit, sit amet feugiat lorem. Proin tempus sagittis velit vitae scelerisque.

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Business-to-business metrics analytics value proposition funding angel investor entrepreneur alpha ramen equity gamification. Social proof partner network research.

Our History

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Our Mission

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Who We Are

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Our Awesome Team

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Ready to talk?

Our team is here to answer your question about StartP

Contact UsOr, get started now with a free trial
More that 1.5 million businesses and organizations use StartP
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map
\ No newline at end of file diff --git a/.next/server/pages/en/about-2.html b/.next/server/pages/en/about-2.html index 149355a..ac3415b 100644 --- a/.next/server/pages/en/about-2.html +++ b/.next/server/pages/en/about-2.html @@ -1 +1 @@ -Thamrin Group

About Us

image
About Us

Engaging New Audiences Through Smart Approach

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc.Donec vitae sapien ut libero venenatis faucibus tempus.

Our History

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Our Mission

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Who We Are

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Our Awesome Team

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map
\ No newline at end of file +Thamrin Group

About Us

image
About Us

Engaging New Audiences Through Smart Approach

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc.Donec vitae sapien ut libero venenatis faucibus tempus.

Our History

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Our Mission

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Who We Are

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Our Awesome Team

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map
\ No newline at end of file diff --git a/.next/server/pages/en/about-3.html b/.next/server/pages/en/about-3.html index 76ed1d0..afeb361 100644 --- a/.next/server/pages/en/about-3.html +++ b/.next/server/pages/en/about-3.html @@ -1 +1 @@ -Thamrin Group

About Us

image
About Us

Engaging New Audiences Through Smart Approach

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc.Donec vitae sapien ut libero venenatis faucibus tempus.

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae.

Our History

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Our Mission

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Who We Are

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

shape
shape
shape
shape
shape

Our Awesome Team

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map
\ No newline at end of file +Thamrin Group

About Us

image
About Us

Engaging New Audiences Through Smart Approach

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc.Donec vitae sapien ut libero venenatis faucibus tempus.

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae.

Our History

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Our Mission

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

Who We Are

Lorem ipsum dolor sit amet, con se ctetur adipiscing elit. In sagittis eg esta ante, sed viverra nunc tinci dunt nec elei fend et tiram.

shape
shape
shape
shape
shape

Our Awesome Team

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map
\ No newline at end of file diff --git a/.next/server/pages/en/bigdata-analytics.html b/.next/server/pages/en/bigdata-analytics.html index 1d53396..ceaf96c 100644 --- a/.next/server/pages/en/bigdata-analytics.html +++ b/.next/server/pages/en/bigdata-analytics.html @@ -1 +1 @@ -Thamrin Group

Secure IT Solutions for a more secure environment

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida

Get Started
shape
shape
shape
shape
shape
shape
shape
shape

Zero Configuration

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Code Security

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Team Management

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Access Controlled

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Cloud Hosting Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Cloud databases
Website hosting
File storage
Forex trading
File backups
Remote desktop
Email servers
Hybrid cloud
book-selfboxchaircloudcupflowerhead-phonemonitormugtabletissuewater-bottlewifishapemain-pic
big-monitorcreativedeveloperflower-topsmall-monitorsmall-toptabletargetshapemain-pic

Design & Development

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Responsive design
React web development
Android apps development
Laravel web development
iOS apps development
UX/UI design
E-commerce development
Print ready design

Our Features

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Incredible Infrastructure

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Email Notifications

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Simple Dashboard

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Information Retrieval

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Drag & Drop Functionality

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Deadline Reminders

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Our Awesome Team

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map

Our Recent Works

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

shape
shape
shape
shape

Pricing Plans

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Basic Plan

$15.00 /Mon
  • 5 GB Bandwidth
  • Highest Speed
  • 1 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics

Advanced Plan

$35.00 /Mon
  • 10 GB Bandwidth
  • Highest Speed
  • 3 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics

Expert Plan

$65.00 /Mon
  • 15 GB Bandwidth
  • Highest Speed
  • 5 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics
shape
shape
shape
shape

Ready to talk?

Our team is here to answer your question about StartP

Contact UsOr, get started now with a free trial
More that 1.5 million businesses and organizations use StartP
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner

The News from Our Blog

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image
March 15, 2021

The Security Risks of Changing Package Owners

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 17, 2021

Tips to Protecting Your Business and Family

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 19, 2021

Protect Your Workplace from Cyber Attacks

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
\ No newline at end of file +Thamrin Group

Secure IT Solutions for a more secure environment

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida

Get Started
shape
shape
shape
shape
shape
shape
shape
shape

Zero Configuration

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Code Security

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Team Management

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Access Controlled

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Cloud Hosting Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Cloud databases
Website hosting
File storage
Forex trading
File backups
Remote desktop
Email servers
Hybrid cloud
book-selfboxchaircloudcupflowerhead-phonemonitormugtabletissuewater-bottlewifishapemain-pic
big-monitorcreativedeveloperflower-topsmall-monitorsmall-toptabletargetshapemain-pic

Design & Development

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Responsive design
React web development
Android apps development
Laravel web development
iOS apps development
UX/UI design
E-commerce development
Print ready design

Our Features

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Incredible Infrastructure

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Email Notifications

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Simple Dashboard

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Information Retrieval

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Drag & Drop Functionality

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Deadline Reminders

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Our Awesome Team

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map

Our Recent Works

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

shape
shape
shape
shape

Pricing Plans

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Basic Plan

$15.00 /Mon
  • 5 GB Bandwidth
  • Highest Speed
  • 1 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics

Advanced Plan

$35.00 /Mon
  • 10 GB Bandwidth
  • Highest Speed
  • 3 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics

Expert Plan

$65.00 /Mon
  • 15 GB Bandwidth
  • Highest Speed
  • 5 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics
shape
shape
shape
shape

Ready to talk?

Our team is here to answer your question about StartP

Contact UsOr, get started now with a free trial
More that 1.5 million businesses and organizations use StartP
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner

The News from Our Blog

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image
March 15, 2021

The Security Risks of Changing Package Owners

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 17, 2021

Tips to Protecting Your Business and Family

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 19, 2021

Protect Your Workplace from Cyber Attacks

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
\ No newline at end of file diff --git a/.next/server/pages/en/blog-1.html b/.next/server/pages/en/blog-1.html index 682c15a..75815da 100644 --- a/.next/server/pages/en/blog-1.html +++ b/.next/server/pages/en/blog-1.html @@ -1 +1 @@ -Thamrin Group

Blog Grid

image
March 15, 2021

The Security Risks of Changing Package Owners

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 17, 2021

Tips to Protecting Your Business and Family

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 19, 2021

Protect Your Workplace from Cyber Attacks

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 15, 2021

Here are the 5 most telling signs of micromanagement

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 17, 2021

I Used The Web For A Day On A 50 MB Budget

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 19, 2021

Making Peace With The Feast Or Famine Of Freelancing

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
\ No newline at end of file +Thamrin Group

Blog Grid

image
March 15, 2021

The Security Risks of Changing Package Owners

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 17, 2021

Tips to Protecting Your Business and Family

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 19, 2021

Protect Your Workplace from Cyber Attacks

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 15, 2021

Here are the 5 most telling signs of micromanagement

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 17, 2021

I Used The Web For A Day On A 50 MB Budget

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 19, 2021

Making Peace With The Feast Or Famine Of Freelancing

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
\ No newline at end of file diff --git a/.next/server/pages/en/blog-2.html b/.next/server/pages/en/blog-2.html index c4a693d..77c81fd 100644 --- a/.next/server/pages/en/blog-2.html +++ b/.next/server/pages/en/blog-2.html @@ -1 +1 @@ -Thamrin Group

Blog Right Sidebar

image
March 15, 2021

The Security Risks of Changing Package Owners

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 17, 2021

Tips to Protecting Your Business and Family

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 19, 2021

Protect Your Workplace from Cyber Attacks

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 15, 2021

Here are the 5 most telling signs of micromanagement

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 17, 2021

I Used The Web For A Day On A 50 MB Budget

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 19, 2021

Making Peace With The Feast Or Famine Of Freelancing

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
\ No newline at end of file +Thamrin Group

Blog Right Sidebar

image
March 15, 2021

The Security Risks of Changing Package Owners

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 17, 2021

Tips to Protecting Your Business and Family

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 19, 2021

Protect Your Workplace from Cyber Attacks

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 15, 2021

Here are the 5 most telling signs of micromanagement

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 17, 2021

I Used The Web For A Day On A 50 MB Budget

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
image
March 19, 2021

Making Peace With The Feast Or Famine Of Freelancing

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Read More
\ No newline at end of file diff --git a/.next/server/pages/en/blog-3.html b/.next/server/pages/en/blog-3.html index c673f17..87df2f3 100644 --- a/.next/server/pages/en/blog-3.html +++ b/.next/server/pages/en/blog-3.html @@ -1 +1 @@ -Thamrin Group

Blog Grid

image

Making Peace With The Feast Or Famine Of Freelancing

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

I Used The Web For A Day On A 50 MB Budget

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Here are the 5 most telling signs of micromanagement

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

The security risks of changing package owners

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Tips to Protecting Your Business and Family

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Protect Your Workplace from Cyber Attacks

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
\ No newline at end of file +Thamrin Group

Blog Grid

image

Making Peace With The Feast Or Famine Of Freelancing

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

I Used The Web For A Day On A 50 MB Budget

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Here are the 5 most telling signs of micromanagement

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

The security risks of changing package owners

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Tips to Protecting Your Business and Family

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Protect Your Workplace from Cyber Attacks

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
\ No newline at end of file diff --git a/.next/server/pages/en/blog-4.html b/.next/server/pages/en/blog-4.html index 2f9d0c5..6da8b98 100644 --- a/.next/server/pages/en/blog-4.html +++ b/.next/server/pages/en/blog-4.html @@ -1 +1 @@ -Thamrin Group

Blog Right Sidebar

image

Making Peace With The Feast Or Famine Of Freelancing

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

I Used The Web For A Day On A 50 MB Budget

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Here are the 5 most telling signs of micromanagement

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

The security risks of changing package owners

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Tips to Protecting Your Business and Family

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Protect Your Workplace from Cyber Attacks

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
\ No newline at end of file +Thamrin Group

Blog Right Sidebar

image

Making Peace With The Feast Or Famine Of Freelancing

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

I Used The Web For A Day On A 50 MB Budget

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Here are the 5 most telling signs of micromanagement

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

The security risks of changing package owners

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Tips to Protecting Your Business and Family

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Protect Your Workplace from Cyber Attacks

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
\ No newline at end of file diff --git a/.next/server/pages/en/blog-5.html b/.next/server/pages/en/blog-5.html index 6d661f3..4c286ca 100644 --- a/.next/server/pages/en/blog-5.html +++ b/.next/server/pages/en/blog-5.html @@ -1 +1 @@ -Thamrin Group

Blog Grid

\ No newline at end of file +Thamrin Group

Blog Grid

\ No newline at end of file diff --git a/.next/server/pages/en/blog-6.html b/.next/server/pages/en/blog-6.html index 4d1357d..a179407 100644 --- a/.next/server/pages/en/blog-6.html +++ b/.next/server/pages/en/blog-6.html @@ -1 +1 @@ -Thamrin Group

Blog Grid

\ No newline at end of file +Thamrin Group

Blog Grid

\ No newline at end of file diff --git a/.next/server/pages/en/blog-details.html b/.next/server/pages/en/blog-details.html index b1eb0d7..1cda290 100644 --- a/.next/server/pages/en/blog-details.html +++ b/.next/server/pages/en/blog-details.html @@ -1 +1 @@ -Thamrin Group

Blog Details

image

The security risks of changing package owners

Quuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quia non numquam eius modi tempora incidunt ut labore et dolore magnam dolor sit amet, consectetur adipisicing.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.

It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout.

Tom Cruise

Quuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quia non numquam eius modi tempora incidunt ut labore et dolore magnam dolor sit amet, consectetur adipisicing.

Four major elements that we offer:

  • Scientific Skills For getting a better result
  • Communication Skills to getting in touch
  • A Career Overview opportunity Available
  • A good Work Environment For work

Setting the mood with incense

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.

The Rise Of Smarketing And Why You Need It

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud.

2 Comments:

  1. imageJohn Jonessays:

    Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen.

    1. imageSteven Smithsays:

      Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen.

      1. imageSarah Taylorsays:

        Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen.

  2. imageJohn Doesays:

    Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen.

    1. imageJames Andersonsays:

      Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen.

Leave a Reply

Your email address will not be published.Required fields are marked*

\ No newline at end of file +Thamrin Group

Blog Details

image

The security risks of changing package owners

Quuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quia non numquam eius modi tempora incidunt ut labore et dolore magnam dolor sit amet, consectetur adipisicing.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.

It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout.

Tom Cruise

Quuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quia non numquam eius modi tempora incidunt ut labore et dolore magnam dolor sit amet, consectetur adipisicing.

Four major elements that we offer:

  • Scientific Skills For getting a better result
  • Communication Skills to getting in touch
  • A Career Overview opportunity Available
  • A good Work Environment For work

Setting the mood with incense

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.

The Rise Of Smarketing And Why You Need It

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud.

2 Comments:

  1. imageJohn Jonessays:

    Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen.

    1. imageSteven Smithsays:

      Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen.

      1. imageSarah Taylorsays:

        Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen.

  2. imageJohn Doesays:

    Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen.

    1. imageJames Andersonsays:

      Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen.

Leave a Reply

Your email address will not be published.Required fields are marked*

\ No newline at end of file diff --git a/.next/server/pages/en/cart.html b/.next/server/pages/en/cart.html index 6bd35c7..ff0c7ed 100644 --- a/.next/server/pages/en/cart.html +++ b/.next/server/pages/en/cart.html @@ -1 +1 @@ -Thamrin Group

Cart

ProductNameUnit PriceQuantityTotal
Empty

Cart Totals

  • Subtotal $0.00
  • Shipping $10.00
  • Total $10.00
Proceed to Checkout
\ No newline at end of file +Thamrin Group

Cart

ProductNameUnit PriceQuantityTotal
Empty

Cart Totals

  • Subtotal $0.00
  • Shipping $10.00
  • Total $10.00
Proceed to Checkout
\ No newline at end of file diff --git a/.next/server/pages/en/checkout.html b/.next/server/pages/en/checkout.html index 0ebced7..4170771 100644 --- a/.next/server/pages/en/checkout.html +++ b/.next/server/pages/en/checkout.html @@ -1 +1 @@ -Thamrin Group

Checkout

Billing Details

Your Order

Product NameTotal
Smart Watch$30.00
TV$30.00
Book$30.00
Smart Watch$30.00
TV$30.00
Book$30.00
Cart Subtotal$210.00
Shipping$5.00
Order Total$215.00

Make your payment directly into our bank account. Please use your Order ID as the payment reference. Your order will not be shipped until the funds have cleared in our account.

Place Order
\ No newline at end of file +Thamrin Group

Checkout

Billing Details

Your Order

Product NameTotal
Smart Watch$30.00
TV$30.00
Book$30.00
Smart Watch$30.00
TV$30.00
Book$30.00
Cart Subtotal$210.00
Shipping$5.00
Order Total$215.00

Make your payment directly into our bank account. Please use your Order ID as the payment reference. Your order will not be shipped until the funds have cleared in our account.

Place Order
\ No newline at end of file diff --git a/.next/server/pages/en/coming-soon.html b/.next/server/pages/en/coming-soon.html index feaaf64..bd15fbf 100644 --- a/.next/server/pages/en/coming-soon.html +++ b/.next/server/pages/en/coming-soon.html @@ -1 +1 @@ -Thamrin Group

Under Construction

Our website is currently undergoing scheduled maintenance. We Should be back shortly. Thank you for your patience.

Days
Hours
Minutes
Seconds
\ No newline at end of file +Thamrin Group

Under Construction

Our website is currently undergoing scheduled maintenance. We Should be back shortly. Thank you for your patience.

Days
Hours
Minutes
Seconds
\ No newline at end of file diff --git a/.next/server/pages/en/contact.html b/.next/server/pages/en/contact.html index f9961c7..f820915 100644 --- a/.next/server/pages/en/contact.html +++ b/.next/server/pages/en/contact.html @@ -1 +1 @@ -Thamrin Group

Contact Us

Visit Here

27 Division St, New York, NY 10002, United States of America

Get In Touch With Us

Anything On your Mind. We’ll Be Glad To Assist You!

image
\ No newline at end of file +Thamrin Group

Contact Us

Visit Here

27 Division St, New York, NY 10002, United States of America

Get In Touch With Us

Anything On your Mind. We’ll Be Glad To Assist You!

image
\ No newline at end of file diff --git a/.next/server/pages/en/digital-agency-portfolio.html b/.next/server/pages/en/digital-agency-portfolio.html index 52f3f21..f2c4407 100644 --- a/.next/server/pages/en/digital-agency-portfolio.html +++ b/.next/server/pages/en/digital-agency-portfolio.html @@ -1 +1 @@ -Thamrin Group

Our Latest Projects

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

portfolio-image
Business

Business Stratagy

portfolio-image
Development

Web Development

portfolio-image
Marketing

Digital Marketing

portfolio-image
App

Mobile App Development

portfolio-image
Marketing

Email Marketing

portfolio-image
Development

E-commerce Development

portfolio-image
App

React App Development

portfolio-image
Writing

Content Writing

portfolio-image
IT

IT Consultancy

portfolio-image
Solutions

IT Solutions

portfolio-image
Marketing

Marketing & Reporting

image

About Us

Vestibulum ac posuere mi. Nullam euismod dui condimentum metus consequat blandit. Donec leo tortor, commodo eget fermentum id, molestie quis est. Ut lectus metus, condimentum eget facilisis sed, fermentum et tortor.

Learn More
image

Our Vision

Vestibulum ac posuere mi. Nullam euismod dui condimentum metus consequat blandit. Donec leo tortor, commodo eget fermentum id, molestie quis est. Ut lectus metus, condimentum eget facilisis sed, fermentum et tortor.

Learn More
image

Our Mission

Vestibulum ac posuere mi. Nullam euismod dui condimentum metus consequat blandit. Donec leo tortor, commodo eget fermentum id, molestie quis est. Ut lectus metus, condimentum eget facilisis sed, fermentum et tortor.

Learn More

Our Recent News

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

1579

Completed Projects

750

Happy Clients

\ No newline at end of file +Thamrin Group

Our Latest Projects

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

portfolio-image
Business

Business Stratagy

portfolio-image
Development

Web Development

portfolio-image
Marketing

Digital Marketing

portfolio-image
App

Mobile App Development

portfolio-image
Marketing

Email Marketing

portfolio-image
Development

E-commerce Development

portfolio-image
App

React App Development

portfolio-image
Writing

Content Writing

portfolio-image
IT

IT Consultancy

portfolio-image
Solutions

IT Solutions

portfolio-image
Marketing

Marketing & Reporting

image

About Us

Vestibulum ac posuere mi. Nullam euismod dui condimentum metus consequat blandit. Donec leo tortor, commodo eget fermentum id, molestie quis est. Ut lectus metus, condimentum eget facilisis sed, fermentum et tortor.

Learn More
image

Our Vision

Vestibulum ac posuere mi. Nullam euismod dui condimentum metus consequat blandit. Donec leo tortor, commodo eget fermentum id, molestie quis est. Ut lectus metus, condimentum eget facilisis sed, fermentum et tortor.

Learn More
image

Our Mission

Vestibulum ac posuere mi. Nullam euismod dui condimentum metus consequat blandit. Donec leo tortor, commodo eget fermentum id, molestie quis est. Ut lectus metus, condimentum eget facilisis sed, fermentum et tortor.

Learn More

Our Recent News

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

1579

Completed Projects

750

Happy Clients

\ No newline at end of file diff --git a/.next/server/pages/en/digital-agency.html b/.next/server/pages/en/digital-agency.html index 0b0888c..053bed4 100644 --- a/.next/server/pages/en/digital-agency.html +++ b/.next/server/pages/en/digital-agency.html @@ -1 +1 @@ -Thamrin Group
We are creative

Digital Agency

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.

Get Started
image
shape
shape
shape
shape
What We Offer

Our Featured Solutions

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Programmatic Advertising

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore.

Learn More
image

Strategy & Research

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore.

Learn More
image

Design & Development

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore.

Learn More
image

Branding & Marketing

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore.

Learn More
image
image
About Us

Engaging New Audiences Through Smart Approach

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc.Donec vitae sapien ut libero venenatis faucibus tempus.

Discover More
shape
shape
shape
shape
shape
image
Our Solutions

Our Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

shape
shape
shape
shape
shape
shape

We Completed 1500+ Projects Yearly Successfully & Counting

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map

Proud Projects That Make Us Stand Out

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

shape
shape
shape
shape
shape
shape
Pricing

Our Pricing Plan

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

  • Monthly Plan
  • Yearly Plan

Free

Get your business up
and running

$0 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 1000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Pro

Get your business up
and running

$149 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 3300 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Premium

Get your business up
and running

$179 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 10000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Free

Get your business up
and running

$0 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 1000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Pro

Get your business up
and running

$249 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 3300 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Premium

Get your business up
and running

$279 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 10000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets
image
News

The News from Our Blog

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

shape
shape
shape
shape
shape
shape

Do you have any projects?

Contact Us
\ No newline at end of file +Thamrin Group
We are creative

Digital Agency

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.

Get Started
image
shape
shape
shape
shape
What We Offer

Our Featured Solutions

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Programmatic Advertising

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore.

Learn More
image

Strategy & Research

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore.

Learn More
image

Design & Development

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore.

Learn More
image

Branding & Marketing

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore.

Learn More
image
image
About Us

Engaging New Audiences Through Smart Approach

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc.Donec vitae sapien ut libero venenatis faucibus tempus.

Discover More
shape
shape
shape
shape
shape
image
Our Solutions

Our Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

shape
shape
shape
shape
shape
shape

We Completed 1500+ Projects Yearly Successfully & Counting

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map

Proud Projects That Make Us Stand Out

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

shape
shape
shape
shape
shape
shape
Pricing

Our Pricing Plan

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

  • Monthly Plan
  • Yearly Plan

Free

Get your business up
and running

$0 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 1000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Pro

Get your business up
and running

$149 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 3300 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Premium

Get your business up
and running

$179 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 10000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Free

Get your business up
and running

$0 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 1000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Pro

Get your business up
and running

$249 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 3300 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Premium

Get your business up
and running

$279 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 10000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets
image
News

The News from Our Blog

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

shape
shape
shape
shape
shape
shape

Do you have any projects?

Contact Us
\ No newline at end of file diff --git a/.next/server/pages/en/faq.html b/.next/server/pages/en/faq.html index 02da5df..5ac1e63 100644 --- a/.next/server/pages/en/faq.html +++ b/.next/server/pages/en/faq.html @@ -1 +1 @@ -Thamrin Group

FAQ

How do permissions work in Google Play Instant?

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. incididunt ut labore et dolore magna aliqua.

Ask Your Question

\ No newline at end of file +Thamrin Group

FAQ

How do permissions work in Google Play Instant?

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. incididunt ut labore et dolore magna aliqua.

Ask Your Question

\ No newline at end of file diff --git a/.next/server/pages/en/feature-details.html b/.next/server/pages/en/feature-details.html index 10517fd..d226f3c 100644 --- a/.next/server/pages/en/feature-details.html +++ b/.next/server/pages/en/feature-details.html @@ -1 +1 @@ -Thamrin Group

Feature Details

image

Information Retrieval

Build integration aute irure design in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat design proident.

  • Life time supports
  • Exclusive design
  • Solve your problem with us
  • We Provide Awesome Services
  • Your business deserves best Software

Took a galley of type and scrambled it to make a type specimen book. survived not only five centuries, but also the leap into electronic remaining. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer when an unknown.

Which material types can you work with?

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

image
\ No newline at end of file +Thamrin Group

Feature Details

image

Information Retrieval

Build integration aute irure design in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat design proident.

  • Life time supports
  • Exclusive design
  • Solve your problem with us
  • We Provide Awesome Services
  • Your business deserves best Software

Took a galley of type and scrambled it to make a type specimen book. survived not only five centuries, but also the leap into electronic remaining. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer when an unknown.

Which material types can you work with?

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

image
\ No newline at end of file diff --git a/.next/server/pages/en/features.html b/.next/server/pages/en/features.html index 42cb719..06685ce 100644 --- a/.next/server/pages/en/features.html +++ b/.next/server/pages/en/features.html @@ -1 +1 @@ -Thamrin Group

Features

Our Features

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Incredible Infrastructure

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Email Notifications

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Simple Dashboard

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Information Retrieval

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Drag & Drop Functionality

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Deadline Reminders

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Cloud Hosting Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Cloud databases
Website hosting
File storage
Forex trading
File backups
Remote desktop
Email servers
Hybrid cloud
book-selfboxchaircloudcupflowerhead-phonemonitormugtabletissuewater-bottlewifishapemain-pic
big-monitorcreativedeveloperflower-topsmall-monitorsmall-toptabletargetshapemain-pic

Design & Development

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Responsive design
React web development
Android apps development
Laravel web development
iOS apps development
UX/UI design
E-commerce development
Print ready design
\ No newline at end of file +Thamrin Group

Features

Our Features

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Incredible Infrastructure

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Email Notifications

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Simple Dashboard

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Information Retrieval

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Drag & Drop Functionality

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Deadline Reminders

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Cloud Hosting Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Cloud databases
Website hosting
File storage
Forex trading
File backups
Remote desktop
Email servers
Hybrid cloud
book-selfboxchaircloudcupflowerhead-phonemonitormugtabletissuewater-bottlewifishapemain-pic
big-monitorcreativedeveloperflower-topsmall-monitorsmall-toptabletargetshapemain-pic

Design & Development

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Responsive design
React web development
Android apps development
Laravel web development
iOS apps development
UX/UI design
E-commerce development
Print ready design
\ No newline at end of file diff --git a/.next/server/pages/en/feedback.html b/.next/server/pages/en/feedback.html index 8088f90..0027257 100644 --- a/.next/server/pages/en/feedback.html +++ b/.next/server/pages/en/feedback.html @@ -1 +1 @@ -Thamrin Group

Feedback or Testimonials

\ No newline at end of file +Thamrin Group

Feedback or Testimonials

\ No newline at end of file diff --git a/.next/server/pages/en/forgot-password.html b/.next/server/pages/en/forgot-password.html index 59041a2..e6a86d2 100644 --- a/.next/server/pages/en/forgot-password.html +++ b/.next/server/pages/en/forgot-password.html @@ -1 +1 @@ -Thamrin Group

Forgot Password

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt.

\ No newline at end of file +Thamrin Group

Forgot Password

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt.

\ No newline at end of file diff --git a/.next/server/pages/en/hosting.html b/.next/server/pages/en/hosting.html index ddff3c0..19cc110 100644 --- a/.next/server/pages/en/hosting.html +++ b/.next/server/pages/en/hosting.html @@ -1 +1 @@ -Thamrin Group

The Best Web Hosting

  • FREE Domain Name for 2st Year
  • FREE SSL Certificate Included
  • 1-Click Wordpress Install
  • 24/7 Support

Starting at $8.99 $3.95/month

Get Started
imageimageimageimageimageimageimageimageimageimage
shape
shape
shape
shape
shape
shape
shape
shape

Money-back Guarantee

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Big Data Transfer

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

99.9% Server Uptime

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Live 24/7 Support

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Find Your Best Domain Name

  • .com
    $ 9.88
  • .net
    $ 7.88
  • .xyz
    $ 3.88
  • .tech
    $ 5.28
  • .club
    $ 2.38
  • .space
    $ 4.98
  • .global
    $ 8.99
  • .edu
    $ 6.88

Why Choose Us

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

imageimageimageimage

Proficient & Friendly

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna.

Extremely Fast

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna.

100% Safe & Security

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna.

Top-Rated

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna.

Pricing Plans

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Web Hosting

$10.99/m
  • 99.9% Uptime Guarantee
  • Reliable & Secure
  • Powered by cPanel / Plesk
  • Web Asset Delivery
  • 24/7 Dedicated Support

Cloud Hosting

$13.99/m
  • 99.9% Uptime Guarantee
  • Reliable & Secure
  • Powered by cPanel / Plesk
  • Web Asset Delivery
  • 24/7 Dedicated Support

Vps Hosting

$15.99/m
  • 99.9% Uptime Guarantee
  • Reliable & Secure
  • Powered by cPanel / Plesk
  • Web Asset Delivery
  • 24/7 Dedicated Support
shape
shape
shape
shape

Ready to talk?

Our team is here to answer your question about StartP

Contact UsOr, get started now with a free trial
More that 1.5 million businesses and organizations use StartP
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner

Our Features

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Incredible Infrastructure

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Information Retrieval

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Best Analytics Audits

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Simple Dashboard

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Email Notifications

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Deep Technical SEO

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

The News from Our Blog

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image
March 15, 2021

The Security Risks of Changing Package Owners

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 17, 2021

Tips to Protecting Your Business and Family

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 19, 2021

Protect Your Workplace from Cyber Attacks

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More

Sign up for web hosting today!

Starting at only

$4.75/mo*

\ No newline at end of file +Thamrin Group

The Best Web Hosting

  • FREE Domain Name for 2st Year
  • FREE SSL Certificate Included
  • 1-Click Wordpress Install
  • 24/7 Support

Starting at $8.99 $3.95/month

Get Started
imageimageimageimageimageimageimageimageimageimage
shape
shape
shape
shape
shape
shape
shape
shape

Money-back Guarantee

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Big Data Transfer

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

99.9% Server Uptime

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Live 24/7 Support

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Find Your Best Domain Name

  • .com
    $ 9.88
  • .net
    $ 7.88
  • .xyz
    $ 3.88
  • .tech
    $ 5.28
  • .club
    $ 2.38
  • .space
    $ 4.98
  • .global
    $ 8.99
  • .edu
    $ 6.88

Why Choose Us

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

imageimageimageimage

Proficient & Friendly

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna.

Extremely Fast

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna.

100% Safe & Security

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna.

Top-Rated

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna.

Pricing Plans

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Web Hosting

$10.99/m
  • 99.9% Uptime Guarantee
  • Reliable & Secure
  • Powered by cPanel / Plesk
  • Web Asset Delivery
  • 24/7 Dedicated Support

Cloud Hosting

$13.99/m
  • 99.9% Uptime Guarantee
  • Reliable & Secure
  • Powered by cPanel / Plesk
  • Web Asset Delivery
  • 24/7 Dedicated Support

Vps Hosting

$15.99/m
  • 99.9% Uptime Guarantee
  • Reliable & Secure
  • Powered by cPanel / Plesk
  • Web Asset Delivery
  • 24/7 Dedicated Support
shape
shape
shape
shape

Ready to talk?

Our team is here to answer your question about StartP

Contact UsOr, get started now with a free trial
More that 1.5 million businesses and organizations use StartP
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner

Our Features

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Incredible Infrastructure

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Information Retrieval

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Best Analytics Audits

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Simple Dashboard

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Email Notifications

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Deep Technical SEO

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

The News from Our Blog

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image
March 15, 2021

The Security Risks of Changing Package Owners

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 17, 2021

Tips to Protecting Your Business and Family

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 19, 2021

Protect Your Workplace from Cyber Attacks

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More

Sign up for web hosting today!

Starting at only

$4.75/mo*

\ No newline at end of file diff --git a/.next/server/pages/en/iot.html b/.next/server/pages/en/iot.html index fbfbd94..38c0b92 100644 --- a/.next/server/pages/en/iot.html +++ b/.next/server/pages/en/iot.html @@ -1 +1 @@ -Thamrin Group
Internet of Things

We get it! IoT growth is happening

At this point, it may seem like overkill to point out the continued growth bound to happen in the Internet of Things space for the years to come and how it will create new opportunities for companies, both established and new, from a hardware and software perspective.

Get Started
imageimage

Our Featured Services that We Provide

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Software Development
IoT Solutions

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Smart Home, Office
IoT Solutions

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Smart City
IoT Solutions

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Automative
IoT Solutions

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Industrial
IoT Solutions

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

System on Chip
IoT Solutions

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Connect and Manage your IoT at Scale

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida. Risus commodo viverra maecenas accumsan lacus vel facilisis.

Get Started!
image
image

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map

App Development for Connected Devices

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida. Risus commodo viverra maecenas accumsan lacus.

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida. Risus commodo viverra maecenas accumsan lacus.

Explore More
image
image

How Can Your City Use IoT Technology?

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida. Risus commodo viverra maecenas accumsan lacus.

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida. Risus commodo viverra maecenas accumsan lacus.

Explore More

Thamrin Group Founders

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Josh Buttler

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Alex Maxwel

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Janny Cotller

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Jason Statham

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

Why We Are Best From Others

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Digital Technology

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Business Protection

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Data Analysis

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

The News from Our Blog

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image
March 15, 2021

The Security Risks of Changing Package Owners

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 17, 2021

Tips to Protecting Your Business and Family

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 19, 2021

Protect Your Workplace from Cyber Attacks

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
\ No newline at end of file +Thamrin Group
Internet of Things

We get it! IoT growth is happening

At this point, it may seem like overkill to point out the continued growth bound to happen in the Internet of Things space for the years to come and how it will create new opportunities for companies, both established and new, from a hardware and software perspective.

Get Started
imageimage

Our Featured Services that We Provide

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Software Development
IoT Solutions

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Smart Home, Office
IoT Solutions

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Smart City
IoT Solutions

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Automative
IoT Solutions

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Industrial
IoT Solutions

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

System on Chip
IoT Solutions

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Connect and Manage your IoT at Scale

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida. Risus commodo viverra maecenas accumsan lacus vel facilisis.

Get Started!
image
image

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map

App Development for Connected Devices

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida. Risus commodo viverra maecenas accumsan lacus.

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida. Risus commodo viverra maecenas accumsan lacus.

Explore More
image
image

How Can Your City Use IoT Technology?

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida. Risus commodo viverra maecenas accumsan lacus.

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida. Risus commodo viverra maecenas accumsan lacus.

Explore More

Thamrin Group Founders

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Josh Buttler

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Alex Maxwel

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Janny Cotller

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Jason Statham

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

Why We Are Best From Others

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Digital Technology

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Business Protection

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Data Analysis

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

The News from Our Blog

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image
March 15, 2021

The Security Risks of Changing Package Owners

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 17, 2021

Tips to Protecting Your Business and Family

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 19, 2021

Protect Your Workplace from Cyber Attacks

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
\ No newline at end of file diff --git a/.next/server/pages/en/it-startup-2.html b/.next/server/pages/en/it-startup-2.html index 223a765..8207830 100644 --- a/.next/server/pages/en/it-startup-2.html +++ b/.next/server/pages/en/it-startup-2.html @@ -1 +1 @@ -Thamrin Group

Built for Developers

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Get Started
shape
shape
shape
shape
shape
shape
shape
shape

Zero Configuration

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Code Security

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Team Management

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Access Controlled

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Cloud Hosting Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Cloud databases
Website hosting
File storage
Forex trading
File backups
Remote desktop
Email servers
Hybrid cloud
book-selfboxchaircloudcupflowerhead-phonemonitormugtabletissuewater-bottlewifishapemain-pic
big-monitorcreativedeveloperflower-topsmall-monitorsmall-toptabletargetshapemain-pic

Design & Development

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Responsive design
React web development
Android apps development
Laravel web development
iOS apps development
UX/UI design
E-commerce development
Print ready design

Our Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Incredible Infrastructure

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Email Notifications

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Best Analytics Audits

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Simple Dashboard

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Information Retrieval

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Deep Technical SEO

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Drag & Drop Functionality

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Deadline Reminders

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Modern Keyword Analysis

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Our Awesome Team

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map

Pricing Plans

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Basic Plan

$15.00 /Mon
  • 5 GB Bandwidth
  • Highest Speed
  • 1 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics

Advanced Plan

$35.00 /Mon
  • 10 GB Bandwidth
  • Highest Speed
  • 3 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics

Expert Plan

$65.00 /Mon
  • 15 GB Bandwidth
  • Highest Speed
  • 5 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics
shape
shape
shape
shape

Ready to talk?

Our team is here to answer your question about StartP

Contact UsOr, get started now with a free trial
More that 1.5 million businesses and organizations use StartP
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner

The News from Our Blog

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image
March 15, 2021

The Security Risks of Changing Package Owners

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 17, 2021

Tips to Protecting Your Business and Family

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 19, 2021

Protect Your Workplace from Cyber Attacks

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
\ No newline at end of file +Thamrin Group

Built for Developers

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Get Started
shape
shape
shape
shape
shape
shape
shape
shape

Zero Configuration

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Code Security

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Team Management

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Access Controlled

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Cloud Hosting Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Cloud databases
Website hosting
File storage
Forex trading
File backups
Remote desktop
Email servers
Hybrid cloud
book-selfboxchaircloudcupflowerhead-phonemonitormugtabletissuewater-bottlewifishapemain-pic
big-monitorcreativedeveloperflower-topsmall-monitorsmall-toptabletargetshapemain-pic

Design & Development

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Responsive design
React web development
Android apps development
Laravel web development
iOS apps development
UX/UI design
E-commerce development
Print ready design

Our Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Incredible Infrastructure

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Email Notifications

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Best Analytics Audits

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Simple Dashboard

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Information Retrieval

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Deep Technical SEO

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Drag & Drop Functionality

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Deadline Reminders

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Modern Keyword Analysis

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Our Awesome Team

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map

Pricing Plans

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Basic Plan

$15.00 /Mon
  • 5 GB Bandwidth
  • Highest Speed
  • 1 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics

Advanced Plan

$35.00 /Mon
  • 10 GB Bandwidth
  • Highest Speed
  • 3 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics

Expert Plan

$65.00 /Mon
  • 15 GB Bandwidth
  • Highest Speed
  • 5 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics
shape
shape
shape
shape

Ready to talk?

Our team is here to answer your question about StartP

Contact UsOr, get started now with a free trial
More that 1.5 million businesses and organizations use StartP
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner

The News from Our Blog

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image
March 15, 2021

The Security Risks of Changing Package Owners

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 17, 2021

Tips to Protecting Your Business and Family

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 19, 2021

Protect Your Workplace from Cyber Attacks

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
\ No newline at end of file diff --git a/.next/server/pages/en/it-startup.html b/.next/server/pages/en/it-startup.html index 734c6f1..b8f2fb6 100644 --- a/.next/server/pages/en/it-startup.html +++ b/.next/server/pages/en/it-startup.html @@ -1 +1 @@ -Thamrin Group

Secure IT Solutions for a more secure environment

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida

Get Started
shape
shape
shape
shape
shape
shape
shape
shape

Zero Configuration

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Code Security

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Team Management

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Access Controlled

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Cloud Hosting Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Cloud databases
Website hosting
File storage
Forex trading
File backups
Remote desktop
Email servers
Hybrid cloud
book-selfboxchaircloudcupflowerhead-phonemonitormugtabletissuewater-bottlewifishapemain-pic
big-monitorcreativedeveloperflower-topsmall-monitorsmall-toptabletargetshapemain-pic

Design & Development

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Responsive design
React web development
Android apps development
Laravel web development
iOS apps development
UX/UI design
E-commerce development
Print ready design

Our Features

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Incredible Infrastructure

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Email Notifications

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Simple Dashboard

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Information Retrieval

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Drag & Drop Functionality

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Deadline Reminders

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Our Awesome Team

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map

Our Recent Works

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

shape
shape
shape
shape

Pricing Plans

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Basic Plan

$15.00 /Mon
  • 5 GB Bandwidth
  • Highest Speed
  • 1 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics

Advanced Plan

$35.00 /Mon
  • 10 GB Bandwidth
  • Highest Speed
  • 3 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics

Expert Plan

$65.00 /Mon
  • 15 GB Bandwidth
  • Highest Speed
  • 5 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics
shape
shape
shape
shape

Ready to talk?

Our team is here to answer your question about StartP

Contact UsOr, get started now with a free trial
More that 1.5 million businesses and organizations use StartP
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner

The News from Our Blog

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image
March 15, 2021

The Security Risks of Changing Package Owners

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 17, 2021

Tips to Protecting Your Business and Family

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 19, 2021

Protect Your Workplace from Cyber Attacks

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
\ No newline at end of file +Thamrin Group

Secure IT Solutions for a more secure environment

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida

Get Started
shape
shape
shape
shape
shape
shape
shape
shape

Zero Configuration

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Code Security

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Team Management

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Access Controlled

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna.

Cloud Hosting Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Cloud databases
Website hosting
File storage
Forex trading
File backups
Remote desktop
Email servers
Hybrid cloud
book-selfboxchaircloudcupflowerhead-phonemonitormugtabletissuewater-bottlewifishapemain-pic
big-monitorcreativedeveloperflower-topsmall-monitorsmall-toptabletargetshapemain-pic

Design & Development

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Responsive design
React web development
Android apps development
Laravel web development
iOS apps development
UX/UI design
E-commerce development
Print ready design

Our Features

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Incredible Infrastructure

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Email Notifications

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Simple Dashboard

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Information Retrieval

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Drag & Drop Functionality

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Deadline Reminders

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Our Awesome Team

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map

Our Recent Works

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

shape
shape
shape
shape

Pricing Plans

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Basic Plan

$15.00 /Mon
  • 5 GB Bandwidth
  • Highest Speed
  • 1 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics

Advanced Plan

$35.00 /Mon
  • 10 GB Bandwidth
  • Highest Speed
  • 3 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics

Expert Plan

$65.00 /Mon
  • 15 GB Bandwidth
  • Highest Speed
  • 5 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics
shape
shape
shape
shape

Ready to talk?

Our team is here to answer your question about StartP

Contact UsOr, get started now with a free trial
More that 1.5 million businesses and organizations use StartP
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner
partnerpartner

The News from Our Blog

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image
March 15, 2021

The Security Risks of Changing Package Owners

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 17, 2021

Tips to Protecting Your Business and Family

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 19, 2021

Protect Your Workplace from Cyber Attacks

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
\ No newline at end of file diff --git a/.next/server/pages/en/login.html b/.next/server/pages/en/login.html index 730c016..e13c42a 100644 --- a/.next/server/pages/en/login.html +++ b/.next/server/pages/en/login.html @@ -1 +1 @@ -Thamrin Group

Login

Don't have an account yet? Sign Up

or connect with

\ No newline at end of file +Thamrin Group

Login

Don't have an account yet? Sign Up

or connect with

\ No newline at end of file diff --git a/.next/server/pages/en/machine-learning-2.html b/.next/server/pages/en/machine-learning-2.html index af6be33..8a7a0d3 100644 --- a/.next/server/pages/en/machine-learning-2.html +++ b/.next/server/pages/en/machine-learning-2.html @@ -1 +1 @@ -Thamrin Group

World’s Leading AI & Machine Learning Company

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Get Started
image
shape
shape
shape
shape
shape
shape
What We Offer

Our Featured Solutions

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Robotic Automation

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Cognitive Automation

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Cognitive Engagement

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Security & Surveillance

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
shape
shape
shape
shape
shape
shape
shape
image
About Us

Engaging New Audiences Through Smart Approach

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc.Donec vitae sapien ut libero venenatis faucibus tempus.

Discover More
shape
shape
shape
shape
shape
shape
Our Solutions

Our Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

IT Professionals

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Software Engineers

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Health & Manufacturing

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Security & Surveillance

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Automatic Optimization

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Data Analysts

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

shape
shape
shape
shape
shape
shape

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map

Proud Projects That Make Us Stand Out

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

shape
shape
shape
shape
shape
shape

Our Pricing Plan

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

  • Monthly Plan
  • Yearly Plan

Free

Get your business up
and running

$0 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 1000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Pro

Get your business up
and running

$149 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 3300 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Premium

Get your business up
and running

$179 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 10000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Free

Get your business up
and running

$0 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 1000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Pro

Get your business up
and running

$249 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 3300 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Premium

Get your business up
and running

$279 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 10000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets
shape
shape
shape
shape
shape
shape

Our Recent Story

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Making Peace With The Feast Or Famine Of Freelancing

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

I Used The Web For A Day On A 50 MB Budget

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Here are the 5 most telling signs of micromanagement

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
shape
shape
shape
shape
shape
shape
image

Start your free trial

Test out the Machine Learning features for 14 days, no credit card required.

shape
shape
shape
shape
\ No newline at end of file +Thamrin Group

World’s Leading AI & Machine Learning Company

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Get Started
image
shape
shape
shape
shape
shape
shape
What We Offer

Our Featured Solutions

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Robotic Automation

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Cognitive Automation

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Cognitive Engagement

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Security & Surveillance

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
shape
shape
shape
shape
shape
shape
shape
image
About Us

Engaging New Audiences Through Smart Approach

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc.Donec vitae sapien ut libero venenatis faucibus tempus.

Discover More
shape
shape
shape
shape
shape
shape
Our Solutions

Our Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

IT Professionals

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Software Engineers

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Health & Manufacturing

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Security & Surveillance

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Automatic Optimization

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Data Analysts

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

shape
shape
shape
shape
shape
shape

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map

Proud Projects That Make Us Stand Out

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

shape
shape
shape
shape
shape
shape

Our Pricing Plan

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

  • Monthly Plan
  • Yearly Plan

Free

Get your business up
and running

$0 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 1000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Pro

Get your business up
and running

$149 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 3300 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Premium

Get your business up
and running

$179 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 10000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Free

Get your business up
and running

$0 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 1000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Pro

Get your business up
and running

$249 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 3300 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Premium

Get your business up
and running

$279 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 10000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets
shape
shape
shape
shape
shape
shape

Our Recent Story

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Making Peace With The Feast Or Famine Of Freelancing

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

I Used The Web For A Day On A 50 MB Budget

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Here are the 5 most telling signs of micromanagement

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
shape
shape
shape
shape
shape
shape
image

Start your free trial

Test out the Machine Learning features for 14 days, no credit card required.

shape
shape
shape
shape
\ No newline at end of file diff --git a/.next/server/pages/en/machine-learning.html b/.next/server/pages/en/machine-learning.html index 958ade1..354c7d8 100644 --- a/.next/server/pages/en/machine-learning.html +++ b/.next/server/pages/en/machine-learning.html @@ -1 +1 @@ -Thamrin Group

World’s Leading AI & Machine Learning Company

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Get Started
imageimageimageimageimageimageimageimageimageimageimageimage
shape
shape
shape
shape
shape
shape
What We Offer

Our Featured Solutions

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Robotic Automation

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Cognitive Automation

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Cognitive Engagement

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Security & Surveillance

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
shape
shape
shape
shape
shape
shape
shape
image
About Us

Engaging New Audiences Through Smart Approach

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc.Donec vitae sapien ut libero venenatis faucibus tempus.

Discover More
shape
shape
shape
shape
shape
shape
Our Solutions

Our Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

IT Professionals

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Software Engineers

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Health & Manufacturing

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Security & Surveillance

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Automatic Optimization

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Data Analysts

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

shape
shape
shape
shape
shape
shape

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map

Proud Projects That Make Us Stand Out

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

shape
shape
shape
shape
shape
shape

Our Pricing Plan

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

  • Monthly Plan
  • Yearly Plan

Free

Get your business up
and running

$0 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 1000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Pro

Get your business up
and running

$149 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 3300 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Premium

Get your business up
and running

$179 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 10000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Free

Get your business up
and running

$0 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 1000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Pro

Get your business up
and running

$249 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 3300 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Premium

Get your business up
and running

$279 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 10000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets
shape
shape
shape
shape
shape
shape

Our Recent Story

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Making Peace With The Feast Or Famine Of Freelancing

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

I Used The Web For A Day On A 50 MB Budget

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Here are the 5 most telling signs of micromanagement

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
shape
shape
shape
shape
shape
shape
image

Start your free trial

Test out the Machine Learning features for 14 days, no credit card required.

shape
shape
shape
shape
\ No newline at end of file +Thamrin Group

World’s Leading AI & Machine Learning Company

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

Get Started
imageimageimageimageimageimageimageimageimageimageimageimage
shape
shape
shape
shape
shape
shape
What We Offer

Our Featured Solutions

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Robotic Automation

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Cognitive Automation

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Cognitive Engagement

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Security & Surveillance

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
shape
shape
shape
shape
shape
shape
shape
image
About Us

Engaging New Audiences Through Smart Approach

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Nullam quis ante. Etiam sit amet orci eget eros faucibus tincidunt. Duis leo. Sed fringilla mauris sit amet nibh. Donec sodales sagittis magna. Sed consequat, leo eget bibendum sodales, augue velit cursus nunc.Donec vitae sapien ut libero venenatis faucibus tempus.

Discover More
shape
shape
shape
shape
shape
shape
Our Solutions

Our Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

IT Professionals

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Software Engineers

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Health & Manufacturing

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Security & Surveillance

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Automatic Optimization

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Data Analysts

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

shape
shape
shape
shape
shape
shape

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map

Proud Projects That Make Us Stand Out

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

shape
shape
shape
shape
shape
shape

Our Pricing Plan

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

  • Monthly Plan
  • Yearly Plan

Free

Get your business up
and running

$0 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 1000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Pro

Get your business up
and running

$149 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 3300 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Premium

Get your business up
and running

$179 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 10000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Free

Get your business up
and running

$0 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 1000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Pro

Get your business up
and running

$249 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 3300 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Premium

Get your business up
and running

$279 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 10000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets
shape
shape
shape
shape
shape
shape

Our Recent Story

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Making Peace With The Feast Or Famine Of Freelancing

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

I Used The Web For A Day On A 50 MB Budget

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
image

Here are the 5 most telling signs of micromanagement

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod...

Read Story
shape
shape
shape
shape
shape
shape
image

Start your free trial

Test out the Machine Learning features for 14 days, no credit card required.

shape
shape
shape
shape
\ No newline at end of file diff --git a/.next/server/pages/en/pc-repair.html b/.next/server/pages/en/pc-repair.html index dae9fbd..8e04e8a 100644 --- a/.next/server/pages/en/pc-repair.html +++ b/.next/server/pages/en/pc-repair.html @@ -1 +1 @@ -Thamrin Group

Your Local Computer Repair Experts!

There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable.

Get Started
imageimageimageimage
About Us

We have 35 years of experience in repair services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

  • Experienced Professionals
  • Expert Technical Skills
  • Excellent Reputation
  • Friendly Service
  • Trustworthy See Reviews
  • Affordable Diagnosis
imageimageimageimageimage

Our Featured Services that We Provide

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Laptop Repair

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Computer Repair

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Apple Products Repair

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Software Update

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Smartphone Repair

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Data Backup & Recovery

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

We'll help you get back to work

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida. Risus commodo viverra maecenas accumsan lacus vel facilisis.

Contact Us
image
image
image

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map

Our Awesome Team

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Josh Buttler

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Alex Maxwel

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Janny Cotller

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Jason Statham

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

Why We Are Best From Others

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Quick Repair Process

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Free Diagnostics

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Fast Delivery

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

The News from Our Blog

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image
March 15, 2021

The Security Risks of Changing Package Owners

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 17, 2021

Tips to Protecting Your Business and Family

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 19, 2021

Protect Your Workplace from Cyber Attacks

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
\ No newline at end of file +Thamrin Group

Your Local Computer Repair Experts!

There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable.

Get Started
imageimageimageimage
About Us

We have 35 years of experience in repair services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

  • Experienced Professionals
  • Expert Technical Skills
  • Excellent Reputation
  • Friendly Service
  • Trustworthy See Reviews
  • Affordable Diagnosis
imageimageimageimageimage

Our Featured Services that We Provide

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Laptop Repair

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Computer Repair

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Apple Products Repair

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Software Update

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Smartphone Repair

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Data Backup & Recovery

Lorem ipsum eiusmod dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

We'll help you get back to work

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida. Risus commodo viverra maecenas accumsan lacus vel facilisis.

Contact Us
image
image
image

We always try to understand users expectation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

180K

Downloaded

20K

Feedback

500+

Workers

70+

Contributors

Have any question about us?

Don't hesitate to contact us

Contact Us
map

Our Awesome Team

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image

Josh Buttler

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Alex Maxwel

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Janny Cotller

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Jason Statham

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

Why We Are Best From Others

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Quick Repair Process

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Free Diagnostics

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Fast Delivery

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

The News from Our Blog

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

image
March 15, 2021

The Security Risks of Changing Package Owners

By Admin

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 17, 2021

Tips to Protecting Your Business and Family

By Smith

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
image
March 19, 2021

Protect Your Workplace from Cyber Attacks

By John

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse.

Read More
\ No newline at end of file diff --git a/.next/server/pages/en/pricing.html b/.next/server/pages/en/pricing.html index 9e0be41..9ee6508 100644 --- a/.next/server/pages/en/pricing.html +++ b/.next/server/pages/en/pricing.html @@ -1 +1 @@ -Thamrin Group

Pricing

Pricing Plans

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Basic Plan

$15.00 /Mon
  • 5 GB Bandwidth
  • Highest Speed
  • 1 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics

Advanced Plan

$35.00 /Mon
  • 10 GB Bandwidth
  • Highest Speed
  • 3 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics

Expert Plan

$65.00 /Mon
  • 15 GB Bandwidth
  • Highest Speed
  • 5 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics
shape
shape
shape
shape

Pricing Plans

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Web Hosting

$10.99/m
  • 99.9% Uptime Guarantee
  • Reliable & Secure
  • Powered by cPanel / Plesk
  • Web Asset Delivery
  • 24/7 Dedicated Support

Cloud Hosting

$13.99/m
  • 99.9% Uptime Guarantee
  • Reliable & Secure
  • Powered by cPanel / Plesk
  • Web Asset Delivery
  • 24/7 Dedicated Support

Vps Hosting

$15.99/m
  • 99.9% Uptime Guarantee
  • Reliable & Secure
  • Powered by cPanel / Plesk
  • Web Asset Delivery
  • 24/7 Dedicated Support
shape
shape
shape
shape

Our Pricing Plan

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

  • Monthly Plan
  • Yearly Plan

Free

Get your business up
and running

$0 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 1000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Pro

Get your business up
and running

$149 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 3300 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Premium

Get your business up
and running

$179 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 10000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Free

Get your business up
and running

$0 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 1000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Pro

Get your business up
and running

$249 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 3300 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Premium

Get your business up
and running

$279 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 10000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets
shape
shape
shape
shape
shape
shape
\ No newline at end of file +Thamrin Group

Pricing

Pricing Plans

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Basic Plan

$15.00 /Mon
  • 5 GB Bandwidth
  • Highest Speed
  • 1 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics

Advanced Plan

$35.00 /Mon
  • 10 GB Bandwidth
  • Highest Speed
  • 3 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics

Expert Plan

$65.00 /Mon
  • 15 GB Bandwidth
  • Highest Speed
  • 5 GB Storage
  • Unlimited Website
  • Unlimited Users
  • 24x7 Great Support
  • Data Security and Backups
  • Monthly Reports and Analytics
shape
shape
shape
shape

Pricing Plans

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Web Hosting

$10.99/m
  • 99.9% Uptime Guarantee
  • Reliable & Secure
  • Powered by cPanel / Plesk
  • Web Asset Delivery
  • 24/7 Dedicated Support

Cloud Hosting

$13.99/m
  • 99.9% Uptime Guarantee
  • Reliable & Secure
  • Powered by cPanel / Plesk
  • Web Asset Delivery
  • 24/7 Dedicated Support

Vps Hosting

$15.99/m
  • 99.9% Uptime Guarantee
  • Reliable & Secure
  • Powered by cPanel / Plesk
  • Web Asset Delivery
  • 24/7 Dedicated Support
shape
shape
shape
shape

Our Pricing Plan

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

  • Monthly Plan
  • Yearly Plan

Free

Get your business up
and running

$0 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 1000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Pro

Get your business up
and running

$149 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 3300 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Premium

Get your business up
and running

$179 /m
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 10000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Free

Get your business up
and running

$0 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 1000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Pro

Get your business up
and running

$249 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 3300 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets

Premium

Get your business up
and running

$279 /y
  • Drag & Drop Builder
  • Lead Generation & Sales
  • Boot & Digital Assistants
  • Customer Service
  • Up to 10000 Subscribers
  • Unlimited Broadcasts
  • Landing Pages & Web Widgets
shape
shape
shape
shape
shape
shape
\ No newline at end of file diff --git a/.next/server/pages/en/privacy-policy.html b/.next/server/pages/en/privacy-policy.html index 270ea70..b666a18 100644 --- a/.next/server/pages/en/privacy-policy.html +++ b/.next/server/pages/en/privacy-policy.html @@ -1 +1 @@ -Thamrin Group

Privacy Policy

Welcome to our Privacy Policy

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?

What is Lorem Ipsum?

But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure

At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.

t is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).

\ No newline at end of file +Thamrin Group

Privacy Policy

Welcome to our Privacy Policy

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?

What is Lorem Ipsum?

But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure

At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.

t is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).

\ No newline at end of file diff --git a/.next/server/pages/en/products/[id].html b/.next/server/pages/en/products/[id].html index c44d2cb..eb18030 100644 --- a/.next/server/pages/en/products/[id].html +++ b/.next/server/pages/en/products/[id].html @@ -1 +1 @@ -Thamrin Group

$

Availability:
Quantity:
Guaranteed safe checkout:
imageimageimageimageimageimageimage
Share:

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. Lorem Ipsum is simply dummy text of the printing.

\ No newline at end of file +Thamrin Group

$

Availability:
Quantity:
Guaranteed safe checkout:
imageimageimageimageimageimageimage
Share:

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. Lorem Ipsum is simply dummy text of the printing.

\ No newline at end of file diff --git a/.next/server/pages/en/project-details.html b/.next/server/pages/en/project-details.html index 3b93713..b484243 100644 --- a/.next/server/pages/en/project-details.html +++ b/.next/server/pages/en/project-details.html @@ -1 +1 @@ -Thamrin Group

Projects Details

work
work
work
work

Network Marketing

Lorem ipsum dolor sit amet, conse cte tuer adipiscing elit, sed diam no nu m nibhie eui smod. Facil isis atve eros et accumsan etiu sto odi dignis sim qui blandit praesen lup ta de er. At molestiae appellantur pro. Vis wisi oportere per ic ula ad, ei latine prop riae na, mea cu purto debitis. Primis nost rud no eos, no impedit dissenti as mea, ea vide labor amus neglegentur vix. Ancillae intellegat vix et. Sit causae laoreet nolu ise. Ad po exerci nusquam eos te. Cu altera expet enda qui, munere oblique theo phrastu ea vix. Ne nec modus civibus modera tius, sit ei lorem doctus. Ne docen di verterem reformidans eos. Cu altera expetenda qui, munere oblique theophr astus ea vix modus civiu mod eratius.

Lorem ipsum dolor sit amet, conse cte tuer adipiscing elit, sed diam no nu m nibhie eui smod. Facil isis atve eros et accumsan etiu sto odi dignis sim qui blandit praesen lup ta de er. At molestiae appellantur pro. Vis wisi oportere per ic ula ad, ei latine prop riae na, mea cu purto debitis. Primis nost rud no eos, no impedit dissenti as mea, ea vide labor amus neglegentur vix. Ancillae intellegat vix et. Sit causae laoreet nolu ise. Ad po exerci nusquam eos te. Cu altera expet enda qui, munere oblique theo phrastu ea vix. Ne nec modus civibus modera tius, sit ei lorem doctus. Ne docen di verterem reformidans eos. Cu altera expetenda qui, munere oblique theophr astus ea vix modus civiu mod eratius.

Happy Client

John Doe

Category

Portfolio, Personal

Date

February 28, 2021

Share

\ No newline at end of file +Thamrin Group

Projects Details

work
work
work
work

Network Marketing

Lorem ipsum dolor sit amet, conse cte tuer adipiscing elit, sed diam no nu m nibhie eui smod. Facil isis atve eros et accumsan etiu sto odi dignis sim qui blandit praesen lup ta de er. At molestiae appellantur pro. Vis wisi oportere per ic ula ad, ei latine prop riae na, mea cu purto debitis. Primis nost rud no eos, no impedit dissenti as mea, ea vide labor amus neglegentur vix. Ancillae intellegat vix et. Sit causae laoreet nolu ise. Ad po exerci nusquam eos te. Cu altera expet enda qui, munere oblique theo phrastu ea vix. Ne nec modus civibus modera tius, sit ei lorem doctus. Ne docen di verterem reformidans eos. Cu altera expetenda qui, munere oblique theophr astus ea vix modus civiu mod eratius.

Lorem ipsum dolor sit amet, conse cte tuer adipiscing elit, sed diam no nu m nibhie eui smod. Facil isis atve eros et accumsan etiu sto odi dignis sim qui blandit praesen lup ta de er. At molestiae appellantur pro. Vis wisi oportere per ic ula ad, ei latine prop riae na, mea cu purto debitis. Primis nost rud no eos, no impedit dissenti as mea, ea vide labor amus neglegentur vix. Ancillae intellegat vix et. Sit causae laoreet nolu ise. Ad po exerci nusquam eos te. Cu altera expet enda qui, munere oblique theo phrastu ea vix. Ne nec modus civibus modera tius, sit ei lorem doctus. Ne docen di verterem reformidans eos. Cu altera expetenda qui, munere oblique theophr astus ea vix modus civiu mod eratius.

Happy Client

John Doe

Category

Portfolio, Personal

Date

February 28, 2021

Share

\ No newline at end of file diff --git a/.next/server/pages/en/projects-1.html b/.next/server/pages/en/projects-1.html index a6c00cc..0423c6f 100644 --- a/.next/server/pages/en/projects-1.html +++ b/.next/server/pages/en/projects-1.html @@ -1 +1 @@ -Thamrin Group

Projects Style One

image

Incredible infrastructure

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

UI/UX Design

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Apps Development

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Mock-up Design

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

E-commerce

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Web Design

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

React App Development

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Digital Marketing

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Email Marketing

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

shape
shape
shape
shape
\ No newline at end of file +Thamrin Group

Projects Style One

image

Incredible infrastructure

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

UI/UX Design

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Apps Development

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Mock-up Design

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

E-commerce

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Web Design

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

React App Development

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Digital Marketing

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Email Marketing

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

shape
shape
shape
shape
\ No newline at end of file diff --git a/.next/server/pages/en/projects-2.html b/.next/server/pages/en/projects-2.html index c48632f..560bde2 100644 --- a/.next/server/pages/en/projects-2.html +++ b/.next/server/pages/en/projects-2.html @@ -1 +1 @@ -Thamrin Group \ No newline at end of file +Thamrin Group \ No newline at end of file diff --git a/.next/server/pages/en/service-details.html b/.next/server/pages/en/service-details.html index 76b8b7d..afeb1ce 100644 --- a/.next/server/pages/en/service-details.html +++ b/.next/server/pages/en/service-details.html @@ -1 +1 @@ -Thamrin Group

Services Style Five

Incredible Infrastructure

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer.

Took a galley of type and scrambled it to make a type specimen book. survived not only five centuries, but also the leap into electronic remaining. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer when an unknown.

image
image

Took a galley of type and scrambled it to make a type specimen book. survived not only five centuries, but also the leap into electronic remaining. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer when an unknown.

Which material types can you work with?

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

\ No newline at end of file +Thamrin Group

Services Style Five

Incredible Infrastructure

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer.

Took a galley of type and scrambled it to make a type specimen book. survived not only five centuries, but also the leap into electronic remaining. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer when an unknown.

image
image

Took a galley of type and scrambled it to make a type specimen book. survived not only five centuries, but also the leap into electronic remaining. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer when an unknown.

Which material types can you work with?

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Quis ipsum suspendisse ultrices gravida.

\ No newline at end of file diff --git a/.next/server/pages/en/services-1.html b/.next/server/pages/en/services-1.html index 6428f19..ade8618 100644 --- a/.next/server/pages/en/services-1.html +++ b/.next/server/pages/en/services-1.html @@ -1 +1 @@ -Thamrin Group

Services Style One

Our Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Incredible Infrastructure

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Email Notifications

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Best Analytics Audits

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Simple Dashboard

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Information Retrieval

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Deep Technical SEO

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Drag & Drop Functionality

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Deadline Reminders

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Modern Keyword Analysis

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

\ No newline at end of file +Thamrin Group

Services Style One

Our Services

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Incredible Infrastructure

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Email Notifications

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Best Analytics Audits

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Simple Dashboard

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Information Retrieval

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Deep Technical SEO

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Drag & Drop Functionality

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Deadline Reminders

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Modern Keyword Analysis

Lorem ipsum dolor amet, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

\ No newline at end of file diff --git a/.next/server/pages/en/services-2.html b/.next/server/pages/en/services-2.html index ba9c102..582b441 100644 --- a/.next/server/pages/en/services-2.html +++ b/.next/server/pages/en/services-2.html @@ -1 +1 @@ -Thamrin Group

Services Style Two

image

IT Professionals

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Software Engineers

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Health & Manufacturing

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Security & Surveillance

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Automatic Optimization

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Data Analysts

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

shape
shape
shape
shape
shape
shape
\ No newline at end of file +Thamrin Group

Services Style Two

image

IT Professionals

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Software Engineers

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Health & Manufacturing

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Security & Surveillance

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Automatic Optimization

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

image

Data Analysts

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

shape
shape
shape
shape
shape
shape
\ No newline at end of file diff --git a/.next/server/pages/en/services-3.html b/.next/server/pages/en/services-3.html index f8adb8b..c59fcd0 100644 --- a/.next/server/pages/en/services-3.html +++ b/.next/server/pages/en/services-3.html @@ -1 +1 @@ -Thamrin Group

Services Style Three

image

Robotic Automation

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Cognitive Automation

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Cognitive Engagement

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Security & Surveillance

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Automatic Optimization

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Data Analysts

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Health & Manufacturing

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Software Engineers

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
shape
shape
shape
shape
shape
shape
shape
\ No newline at end of file +Thamrin Group

Services Style Three

image

Robotic Automation

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Cognitive Automation

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Cognitive Engagement

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Security & Surveillance

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Automatic Optimization

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Data Analysts

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Health & Manufacturing

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Software Engineers

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
shape
shape
shape
shape
shape
shape
shape
\ No newline at end of file diff --git a/.next/server/pages/en/services-4.html b/.next/server/pages/en/services-4.html index 4f7a112..b3ff18e 100644 --- a/.next/server/pages/en/services-4.html +++ b/.next/server/pages/en/services-4.html @@ -1 +1 @@ -Thamrin Group

Services Style Four

image

Programmatic Advertising

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Strategy & Research

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Design & Development

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Branding & Marketing

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Programmatic Advertising

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Strategy & Research

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Design & Development

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Branding & Marketing

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
shape
shape
shape
shape
shape
\ No newline at end of file +Thamrin Group

Services Style Four

image

Programmatic Advertising

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Strategy & Research

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Design & Development

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Branding & Marketing

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Programmatic Advertising

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Strategy & Research

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Design & Development

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
image

Branding & Marketing

Lorem ipsum dolor sit amet elit, adipiscing, sed do eiusmod tempor incididunt ut labore dolore magna aliqua.

Learn More
shape
shape
shape
shape
shape
\ No newline at end of file diff --git a/.next/server/pages/en/services-5.html b/.next/server/pages/en/services-5.html index 3691005..03371ab 100644 --- a/.next/server/pages/en/services-5.html +++ b/.next/server/pages/en/services-5.html @@ -1 +1 @@ -Thamrin Group \ No newline at end of file +Thamrin Group \ No newline at end of file diff --git a/.next/server/pages/en/shop.html b/.next/server/pages/en/shop.html index 26aedab..41bd64d 100644 --- a/.next/server/pages/en/shop.html +++ b/.next/server/pages/en/shop.html @@ -1 +1 @@ -Thamrin Group

Products

Showing 1-8 of 14 results

\ No newline at end of file +Thamrin Group

Products

Showing 1-8 of 14 results

\ No newline at end of file diff --git a/.next/server/pages/en/sign-up.html b/.next/server/pages/en/sign-up.html index b974f71..860da62 100644 --- a/.next/server/pages/en/sign-up.html +++ b/.next/server/pages/en/sign-up.html @@ -1 +1 @@ -Thamrin Group

Sign Up

Create a new account

Already have an account yet? Login

\ No newline at end of file +Thamrin Group

Sign Up

Create a new account

Already have an account yet? Login

\ No newline at end of file diff --git a/.next/server/pages/en/team.html b/.next/server/pages/en/team.html index 3138ddd..4fd9df6 100644 --- a/.next/server/pages/en/team.html +++ b/.next/server/pages/en/team.html @@ -1 +1 @@ -Thamrin Group

Team

image

Josh Buttler

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Alex Maxwel

Marketing Manager

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Janny Cotller

Web Developer

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Jason Statham

UX/UI Designer

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Corey Anderson

Project Manager

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Josh Buttler

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Alex Maxwel

Marketing Manager

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Janny Cotller

Web Developer

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Jason Statham

UX/UI Designer

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

\ No newline at end of file +Thamrin Group

Team

image

Josh Buttler

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Alex Maxwel

Marketing Manager

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Janny Cotller

Web Developer

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Jason Statham

UX/UI Designer

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Corey Anderson

Project Manager

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Josh Buttler

CEO & Founder

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Alex Maxwel

Marketing Manager

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Janny Cotller

Web Developer

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

image

Jason Statham

UX/UI Designer

Risus commodo viverra maecenas accumsan lacus vel facilisis quis ipsum.

\ No newline at end of file diff --git a/.next/server/pages/en/term-condition.html b/.next/server/pages/en/term-condition.html index 87b4099..3c5c1d1 100644 --- a/.next/server/pages/en/term-condition.html +++ b/.next/server/pages/en/term-condition.html @@ -1 +1 @@ -Thamrin Group

Term & Condition

Welcome to our Term & Condition

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?

What is Lorem Ipsum?

But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure

At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.

t is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).

\ No newline at end of file +Thamrin Group

Term & Condition

Welcome to our Term & Condition

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?

What is Lorem Ipsum?

But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure

At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.

t is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their default model text, and a search for 'lorem ipsum' will uncover many web sites still in their infancy. Various versions have evolved over the years, sometimes by accident, sometimes on purpose (injected humour and the like).

\ No newline at end of file diff --git a/.next/server/pages/en/yamaha/ContactUs.html b/.next/server/pages/en/yamaha/ContactUs.html index db86dde..6aeaf60 100644 --- a/.next/server/pages/en/yamaha/ContactUs.html +++ b/.next/server/pages/en/yamaha/ContactUs.html @@ -1 +1 @@ -Thamrin Group

Contact Us

\ No newline at end of file +Thamrin Group

Contact Us

\ No newline at end of file diff --git a/.next/server/pages/en/yamaha/ForgotPassword.html b/.next/server/pages/en/yamaha/ForgotPassword.html index 75bc8b9..1d83658 100644 --- a/.next/server/pages/en/yamaha/ForgotPassword.html +++ b/.next/server/pages/en/yamaha/ForgotPassword.html @@ -1 +1 @@ -Thamrin Group
logo

Masukan E-Mail anda, agar kami dapat mengirim Link Reset Password

\ No newline at end of file +Thamrin Group
logo

Masukan E-Mail anda, agar kami dapat mengirim Link Reset Password

\ No newline at end of file diff --git a/.next/server/pages/en/yamaha/Register.html b/.next/server/pages/en/yamaha/Register.html index 2d644dd..45698bc 100644 --- a/.next/server/pages/en/yamaha/Register.html +++ b/.next/server/pages/en/yamaha/Register.html @@ -1 +1 @@ -Thamrin Group
logo

Create a new account

Already have an account yet? Login

\ No newline at end of file +Thamrin Group
logo

Create a new account

Already have an account yet? Login

\ No newline at end of file diff --git a/.next/server/pages/en/yamaha/login.html b/.next/server/pages/en/yamaha/login.html index a71bc2c..c429414 100644 --- a/.next/server/pages/en/yamaha/login.html +++ b/.next/server/pages/en/yamaha/login.html @@ -1 +1 @@ -Thamrin Group
logo

Tidak Punya Akun ? Silahkan Register

or connect with

\ No newline at end of file +Thamrin Group
logo

Tidak Punya Akun ? Silahkan Register

or connect with

\ No newline at end of file diff --git a/.next/server/pages/yamaha.js b/.next/server/pages/yamaha.js index 4c043e2..bbadee8 100644 --- a/.next/server/pages/yamaha.js +++ b/.next/server/pages/yamaha.js @@ -127,7 +127,7 @@ const MainBanner = () => { }), /*#__PURE__*/jsx_runtime_.jsx("div", { className: "col-lg-6 offset-lg-1", children: /*#__PURE__*/jsx_runtime_.jsx("img", { - src: "/images/yamaha/banner.png", + src: "/images/Yamaha/banner.png", className: "animate__animated animate__fadeInDown animate__delay-0.1s", alt: "man" }) @@ -174,7 +174,7 @@ const OurServices = () => { children: [/*#__PURE__*/jsx_runtime_.jsx("div", { className: "icon", children: /*#__PURE__*/jsx_runtime_.jsx("i", { - className: "flaticon-cart" + className: "flaticon-gear" }) }), /*#__PURE__*/(0,jsx_runtime_.jsxs)("h3", { children: ["Selling ", /*#__PURE__*/jsx_runtime_.jsx("br", {}), " Yamaha Product Selling"] @@ -214,7 +214,7 @@ const OurServices = () => { children: [/*#__PURE__*/jsx_runtime_.jsx("div", { className: "icon", children: /*#__PURE__*/jsx_runtime_.jsx("i", { - className: "flaticon-key" + className: "flaticon-gear" }) }), /*#__PURE__*/(0,jsx_runtime_.jsxs)("h3", { children: ["Sparepart ", /*#__PURE__*/jsx_runtime_.jsx("br", {}), "Yamaha Sparepart Product"] diff --git a/.next/server/pages/yamaha/Product/Sparepart.js b/.next/server/pages/yamaha/Product/Sparepart.js index bc87216..7f404fd 100644 --- a/.next/server/pages/yamaha/Product/Sparepart.js +++ b/.next/server/pages/yamaha/Product/Sparepart.js @@ -258,6 +258,8 @@ var external_react_feather_ = __webpack_require__(9337); var external_react_redux_ = __webpack_require__(79); // EXTERNAL MODULE: ./components/Shop/AddToCartBtn.js var AddToCartBtn = __webpack_require__(2337); +// EXTERNAL MODULE: external "react-tabs" +var external_react_tabs_ = __webpack_require__(7659); // EXTERNAL MODULE: external "react-number-format" var external_react_number_format_ = __webpack_require__(3230); var external_react_number_format_default = /*#__PURE__*/__webpack_require__.n(external_react_number_format_); @@ -279,6 +281,10 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r + //addon library + + +(0,external_react_tabs_.resetIdCounter)(); //yarn library @@ -295,7 +301,7 @@ const ProductCard = function (_ref) { const products = (0,external_react_redux_.useSelector)(state => state.products); console.log(ygp); - const Product = ygp.map(data => { + const YGP = ygp.map(data => { return /*#__PURE__*/jsx_runtime_.jsx("div", { className: "col-lg-3 col-md-6 col-sm-6", children: /*#__PURE__*/(0,jsx_runtime_.jsxs)("div", { @@ -368,6 +374,298 @@ const ProductCard = function (_ref) { }) }, ygp.id); }); + const Yamalube = yamalube.map(data => { + return /*#__PURE__*/jsx_runtime_.jsx("div", { + className: "col-lg-3 col-md-6 col-sm-6", + children: /*#__PURE__*/(0,jsx_runtime_.jsxs)("div", { + className: "single-products", + children: [/*#__PURE__*/(0,jsx_runtime_.jsxs)("div", { + className: "products-image", + children: [/*#__PURE__*/jsx_runtime_.jsx("img", { + src: `${backend}${data.img["url"]}` + }), /*#__PURE__*/(0,jsx_runtime_.jsxs)("ul", { + children: [/*#__PURE__*/jsx_runtime_.jsx("li", { + children: /*#__PURE__*/jsx_runtime_.jsx("a", { + href: "#", + children: /*#__PURE__*/jsx_runtime_.jsx(external_react_feather_.Search, {}) + }) + }), /*#__PURE__*/jsx_runtime_.jsx("li", { + children: /*#__PURE__*/jsx_runtime_.jsx("a", { + href: "#", + children: /*#__PURE__*/jsx_runtime_.jsx(external_react_feather_.Heart, {}) + }) + }), /*#__PURE__*/jsx_runtime_.jsx("li", { + children: /*#__PURE__*/jsx_runtime_.jsx(next_link.default, { + href: "/products/[id]", + as: `/products/${ygp.id}`, + children: /*#__PURE__*/jsx_runtime_.jsx("a", { + children: /*#__PURE__*/jsx_runtime_.jsx(external_react_feather_.Link, {}) + }) + }) + })] + })] + }), /*#__PURE__*/(0,jsx_runtime_.jsxs)("div", { + className: "products-content", + children: [/*#__PURE__*/jsx_runtime_.jsx("h3", { + children: /*#__PURE__*/jsx_runtime_.jsx(next_link.default, { + href: "/yamaha/Product/Motor_Detail?s=" + data.id, + children: /*#__PURE__*/jsx_runtime_.jsx("a", { + children: data.name + }) + }) + }), /*#__PURE__*/jsx_runtime_.jsx("span", { + children: /*#__PURE__*/jsx_runtime_.jsx((external_react_number_format_default()), { + value: data.price2, + displayType: 'text', + thousandSeparator: true, + prefix: 'Rp.' + }) + }), /*#__PURE__*/(0,jsx_runtime_.jsxs)("ul", { + children: [/*#__PURE__*/jsx_runtime_.jsx("li", { + children: /*#__PURE__*/jsx_runtime_.jsx("i", { + className: "flaticon-star-1" + }) + }), /*#__PURE__*/jsx_runtime_.jsx("li", { + children: /*#__PURE__*/jsx_runtime_.jsx("i", { + className: "flaticon-star-1" + }) + }), /*#__PURE__*/jsx_runtime_.jsx("li", { + children: /*#__PURE__*/jsx_runtime_.jsx("i", { + className: "flaticon-star-1" + }) + }), /*#__PURE__*/jsx_runtime_.jsx("li", { + children: /*#__PURE__*/jsx_runtime_.jsx("i", { + className: "flaticon-star-1" + }) + }), /*#__PURE__*/jsx_runtime_.jsx("li", { + children: /*#__PURE__*/jsx_runtime_.jsx("i", { + className: "flaticon-star-1" + }) + })] + }), /*#__PURE__*/jsx_runtime_.jsx(AddToCartBtn/* default */.Z, _objectSpread({}, ygp))] + })] + }) + }, ygp.id); + }); + const Helmet = helmet.map(data => { + return /*#__PURE__*/jsx_runtime_.jsx("div", { + className: "col-lg-3 col-md-6 col-sm-6", + children: /*#__PURE__*/(0,jsx_runtime_.jsxs)("div", { + className: "single-products", + children: [/*#__PURE__*/(0,jsx_runtime_.jsxs)("div", { + className: "products-image", + children: [/*#__PURE__*/jsx_runtime_.jsx("img", { + src: `${backend}${data.img["url"]}` + }), /*#__PURE__*/(0,jsx_runtime_.jsxs)("ul", { + children: [/*#__PURE__*/jsx_runtime_.jsx("li", { + children: /*#__PURE__*/jsx_runtime_.jsx("a", { + href: "#", + children: /*#__PURE__*/jsx_runtime_.jsx(external_react_feather_.Search, {}) + }) + }), /*#__PURE__*/jsx_runtime_.jsx("li", { + children: /*#__PURE__*/jsx_runtime_.jsx("a", { + href: "#", + children: /*#__PURE__*/jsx_runtime_.jsx(external_react_feather_.Heart, {}) + }) + }), /*#__PURE__*/jsx_runtime_.jsx("li", { + children: /*#__PURE__*/jsx_runtime_.jsx(next_link.default, { + href: "/products/[id]", + as: `/products/${ygp.id}`, + children: /*#__PURE__*/jsx_runtime_.jsx("a", { + children: /*#__PURE__*/jsx_runtime_.jsx(external_react_feather_.Link, {}) + }) + }) + })] + })] + }), /*#__PURE__*/(0,jsx_runtime_.jsxs)("div", { + className: "products-content", + children: [/*#__PURE__*/jsx_runtime_.jsx("h3", { + children: /*#__PURE__*/jsx_runtime_.jsx(next_link.default, { + href: "/yamaha/Product/Motor_Detail?s=" + data.id, + children: /*#__PURE__*/jsx_runtime_.jsx("a", { + children: data.name + }) + }) + }), /*#__PURE__*/jsx_runtime_.jsx("span", { + children: /*#__PURE__*/jsx_runtime_.jsx((external_react_number_format_default()), { + value: data.price2, + displayType: 'text', + thousandSeparator: true, + prefix: 'Rp.' + }) + }), /*#__PURE__*/(0,jsx_runtime_.jsxs)("ul", { + children: [/*#__PURE__*/jsx_runtime_.jsx("li", { + children: /*#__PURE__*/jsx_runtime_.jsx("i", { + className: "flaticon-star-1" + }) + }), /*#__PURE__*/jsx_runtime_.jsx("li", { + children: /*#__PURE__*/jsx_runtime_.jsx("i", { + className: "flaticon-star-1" + }) + }), /*#__PURE__*/jsx_runtime_.jsx("li", { + children: /*#__PURE__*/jsx_runtime_.jsx("i", { + className: "flaticon-star-1" + }) + }), /*#__PURE__*/jsx_runtime_.jsx("li", { + children: /*#__PURE__*/jsx_runtime_.jsx("i", { + className: "flaticon-star-1" + }) + }), /*#__PURE__*/jsx_runtime_.jsx("li", { + children: /*#__PURE__*/jsx_runtime_.jsx("i", { + className: "flaticon-star-1" + }) + })] + }), /*#__PURE__*/jsx_runtime_.jsx(AddToCartBtn/* default */.Z, _objectSpread({}, helmet))] + })] + }) + }, helmet.id); + }); + const Apparel = apparel.map(data => { + return /*#__PURE__*/jsx_runtime_.jsx("div", { + className: "col-lg-3 col-md-6 col-sm-6", + children: /*#__PURE__*/(0,jsx_runtime_.jsxs)("div", { + className: "single-products", + children: [/*#__PURE__*/(0,jsx_runtime_.jsxs)("div", { + className: "products-image", + children: [/*#__PURE__*/jsx_runtime_.jsx("img", { + src: `${backend}${data.img["url"]}` + }), /*#__PURE__*/(0,jsx_runtime_.jsxs)("ul", { + children: [/*#__PURE__*/jsx_runtime_.jsx("li", { + children: /*#__PURE__*/jsx_runtime_.jsx("a", { + href: "#", + children: /*#__PURE__*/jsx_runtime_.jsx(external_react_feather_.Search, {}) + }) + }), /*#__PURE__*/jsx_runtime_.jsx("li", { + children: /*#__PURE__*/jsx_runtime_.jsx("a", { + href: "#", + children: /*#__PURE__*/jsx_runtime_.jsx(external_react_feather_.Heart, {}) + }) + }), /*#__PURE__*/jsx_runtime_.jsx("li", { + children: /*#__PURE__*/jsx_runtime_.jsx(next_link.default, { + href: "/products/[id]", + as: `/products/${ygp.id}`, + children: /*#__PURE__*/jsx_runtime_.jsx("a", { + children: /*#__PURE__*/jsx_runtime_.jsx(external_react_feather_.Link, {}) + }) + }) + })] + })] + }), /*#__PURE__*/(0,jsx_runtime_.jsxs)("div", { + className: "products-content", + children: [/*#__PURE__*/jsx_runtime_.jsx("h3", { + children: /*#__PURE__*/jsx_runtime_.jsx(next_link.default, { + href: "/yamaha/Product/Motor_Detail?s=" + data.id, + children: /*#__PURE__*/jsx_runtime_.jsx("a", { + children: data.name + }) + }) + }), /*#__PURE__*/jsx_runtime_.jsx("span", { + children: /*#__PURE__*/jsx_runtime_.jsx((external_react_number_format_default()), { + value: data.price2, + displayType: 'text', + thousandSeparator: true, + prefix: 'Rp.' + }) + }), /*#__PURE__*/(0,jsx_runtime_.jsxs)("ul", { + children: [/*#__PURE__*/jsx_runtime_.jsx("li", { + children: /*#__PURE__*/jsx_runtime_.jsx("i", { + className: "flaticon-star-1" + }) + }), /*#__PURE__*/jsx_runtime_.jsx("li", { + children: /*#__PURE__*/jsx_runtime_.jsx("i", { + className: "flaticon-star-1" + }) + }), /*#__PURE__*/jsx_runtime_.jsx("li", { + children: /*#__PURE__*/jsx_runtime_.jsx("i", { + className: "flaticon-star-1" + }) + }), /*#__PURE__*/jsx_runtime_.jsx("li", { + children: /*#__PURE__*/jsx_runtime_.jsx("i", { + className: "flaticon-star-1" + }) + }), /*#__PURE__*/jsx_runtime_.jsx("li", { + children: /*#__PURE__*/jsx_runtime_.jsx("i", { + className: "flaticon-star-1" + }) + })] + }), /*#__PURE__*/jsx_runtime_.jsx(AddToCartBtn/* default */.Z, _objectSpread({}, apparel))] + })] + }) + }, apparel.id); + }); + const Accessories = accessories.map(data => { + return /*#__PURE__*/jsx_runtime_.jsx("div", { + className: "col-lg-3 col-md-6 col-sm-6", + children: /*#__PURE__*/(0,jsx_runtime_.jsxs)("div", { + className: "single-products", + children: [/*#__PURE__*/(0,jsx_runtime_.jsxs)("div", { + className: "products-image", + children: [/*#__PURE__*/jsx_runtime_.jsx("img", { + src: `${backend}${data.img["url"]}` + }), /*#__PURE__*/(0,jsx_runtime_.jsxs)("ul", { + children: [/*#__PURE__*/jsx_runtime_.jsx("li", { + children: /*#__PURE__*/jsx_runtime_.jsx("a", { + href: "#", + children: /*#__PURE__*/jsx_runtime_.jsx(external_react_feather_.Search, {}) + }) + }), /*#__PURE__*/jsx_runtime_.jsx("li", { + children: /*#__PURE__*/jsx_runtime_.jsx("a", { + href: "#", + children: /*#__PURE__*/jsx_runtime_.jsx(external_react_feather_.Heart, {}) + }) + }), /*#__PURE__*/jsx_runtime_.jsx("li", { + children: /*#__PURE__*/jsx_runtime_.jsx(next_link.default, { + href: "/products/[id]", + as: `/products/${ygp.id}`, + children: /*#__PURE__*/jsx_runtime_.jsx("a", { + children: /*#__PURE__*/jsx_runtime_.jsx(external_react_feather_.Link, {}) + }) + }) + })] + })] + }), /*#__PURE__*/(0,jsx_runtime_.jsxs)("div", { + className: "products-content", + children: [/*#__PURE__*/jsx_runtime_.jsx("h3", { + children: /*#__PURE__*/jsx_runtime_.jsx(next_link.default, { + href: "/yamaha/Product/Motor_Detail?s=" + data.id, + children: /*#__PURE__*/jsx_runtime_.jsx("a", { + children: data.name + }) + }) + }), /*#__PURE__*/jsx_runtime_.jsx("span", { + children: /*#__PURE__*/jsx_runtime_.jsx((external_react_number_format_default()), { + value: data.price2, + displayType: 'text', + thousandSeparator: true, + prefix: 'Rp.' + }) + }), /*#__PURE__*/(0,jsx_runtime_.jsxs)("ul", { + children: [/*#__PURE__*/jsx_runtime_.jsx("li", { + children: /*#__PURE__*/jsx_runtime_.jsx("i", { + className: "flaticon-star-1" + }) + }), /*#__PURE__*/jsx_runtime_.jsx("li", { + children: /*#__PURE__*/jsx_runtime_.jsx("i", { + className: "flaticon-star-1" + }) + }), /*#__PURE__*/jsx_runtime_.jsx("li", { + children: /*#__PURE__*/jsx_runtime_.jsx("i", { + className: "flaticon-star-1" + }) + }), /*#__PURE__*/jsx_runtime_.jsx("li", { + children: /*#__PURE__*/jsx_runtime_.jsx("i", { + className: "flaticon-star-1" + }) + }), /*#__PURE__*/jsx_runtime_.jsx("li", { + children: /*#__PURE__*/jsx_runtime_.jsx("i", { + className: "flaticon-star-1" + }) + })] + }), /*#__PURE__*/jsx_runtime_.jsx(AddToCartBtn/* default */.Z, _objectSpread({}, accessories))] + })] + }) + }, accessories.id); + }); return /*#__PURE__*/jsx_runtime_.jsx("div", { className: "shop-area ptb-80", children: /*#__PURE__*/(0,jsx_runtime_.jsxs)("div", { @@ -413,56 +711,51 @@ const ProductCard = function (_ref) { }) })] }) - }), /*#__PURE__*/(0,jsx_runtime_.jsxs)("div", { - className: "row justify-content-md-center", - children: [Product, /*#__PURE__*/jsx_runtime_.jsx("div", { - className: "col-lg-12 col-md-12 col-sm-12", - children: /*#__PURE__*/jsx_runtime_.jsx("div", { - className: "pagination-area", - children: /*#__PURE__*/jsx_runtime_.jsx("nav", { - "aria-label": "Page navigation", - children: /*#__PURE__*/(0,jsx_runtime_.jsxs)("ul", { - className: "pagination justify-content-center", - children: [/*#__PURE__*/jsx_runtime_.jsx("li", { - className: "page-item", - children: /*#__PURE__*/jsx_runtime_.jsx("a", { - className: "page-link", - href: "#", - children: "Prev" - }) - }), /*#__PURE__*/jsx_runtime_.jsx("li", { - className: "page-item active", - children: /*#__PURE__*/jsx_runtime_.jsx("a", { - className: "page-link", - href: "#", - children: "1" - }) - }), /*#__PURE__*/jsx_runtime_.jsx("li", { - className: "page-item", - children: /*#__PURE__*/jsx_runtime_.jsx("a", { - className: "page-link", - href: "#", - children: "2" - }) - }), /*#__PURE__*/jsx_runtime_.jsx("li", { - className: "page-item", - children: /*#__PURE__*/jsx_runtime_.jsx("a", { - className: "page-link", - href: "#", - children: "3" - }) - }), /*#__PURE__*/jsx_runtime_.jsx("li", { - className: "page-item", - children: /*#__PURE__*/jsx_runtime_.jsx("a", { - className: "page-link", - href: "#", - children: "Next" - }) - })] + }), /*#__PURE__*/jsx_runtime_.jsx("div", { + width: "fullwidth", + children: /*#__PURE__*/jsx_runtime_.jsx("div", { + className: "products-details-tabs", + children: /*#__PURE__*/(0,jsx_runtime_.jsxs)(external_react_tabs_.Tabs, { + children: [/*#__PURE__*/(0,jsx_runtime_.jsxs)(external_react_tabs_.TabList, { + children: [/*#__PURE__*/jsx_runtime_.jsx(external_react_tabs_.Tab, { + children: "YGP" + }), /*#__PURE__*/jsx_runtime_.jsx(external_react_tabs_.Tab, { + children: "Yamalube" + }), /*#__PURE__*/jsx_runtime_.jsx(external_react_tabs_.Tab, { + children: "helmet" + }), /*#__PURE__*/jsx_runtime_.jsx(external_react_tabs_.Tab, { + children: "Apparel" + }), /*#__PURE__*/jsx_runtime_.jsx(external_react_tabs_.Tab, { + children: "Accessories" + })] + }), /*#__PURE__*/jsx_runtime_.jsx(external_react_tabs_.TabPanel, { + children: /*#__PURE__*/jsx_runtime_.jsx("div", { + className: "row justify-content-md-center", + children: YGP }) - }) + }), /*#__PURE__*/jsx_runtime_.jsx(external_react_tabs_.TabPanel, { + children: /*#__PURE__*/jsx_runtime_.jsx("div", { + className: "row justify-content-md-center", + children: Yamalube + }) + }), /*#__PURE__*/jsx_runtime_.jsx(external_react_tabs_.TabPanel, { + children: /*#__PURE__*/jsx_runtime_.jsx("div", { + className: "row justify-content-md-center", + children: Helmet + }) + }), /*#__PURE__*/jsx_runtime_.jsx(external_react_tabs_.TabPanel, { + children: /*#__PURE__*/jsx_runtime_.jsx("div", { + className: "row justify-content-md-center", + children: Apparel + }) + }), /*#__PURE__*/jsx_runtime_.jsx(external_react_tabs_.TabPanel, { + children: /*#__PURE__*/jsx_runtime_.jsx("div", { + className: "row justify-content-md-center", + children: Accessories + }) + })] }) - })] + }) })] }) }); @@ -649,6 +942,14 @@ module.exports = require("react-redux");; /***/ }), +/***/ 7659: +/***/ (function(module) { + +"use strict"; +module.exports = require("react-tabs");; + +/***/ }), + /***/ 9614: /***/ (function(module) { diff --git a/.next/static/TVc_RPf4TlgN8QRU8HbD5/_buildManifest.js b/.next/static/TVc_RPf4TlgN8QRU8HbD5/_buildManifest.js deleted file mode 100644 index bf2aaef..0000000 --- a/.next/static/TVc_RPf4TlgN8QRU8HbD5/_buildManifest.js +++ /dev/null @@ -1 +0,0 @@ -self.__BUILD_MANIFEST=function(a,s,c,t,e,i,d,n,h,o,b,u,g,f,r,p,k,j,l){return{__rewrites:{beforeFiles:[],afterFiles:[],fallback:[]},"/":[a,"static/chunks/1367-521f29bb69f83dd91508.js","static/chunks/pages/index-7c721161e51be37b0447.js"],"/404":["static/chunks/pages/404-5b4e08a3c113aae79e95.js"],"/_error":["static/chunks/pages/_error-7df0d413be6e94978da3.js"],"/about-1":[a,c,s,i,"static/chunks/pages/about-1-c72e8f1016a7e4a629e7.js"],"/about-2":[d,a,c,s,i,"static/chunks/pages/about-2-e7b6731793f0f2628479.js"],"/about-3":[d,a,c,s,i,"static/chunks/pages/about-3-c956ae35b2782acdd669.js"],"/bigdata-analytics":[a,c,e,n,s,i,b,f,"static/chunks/pages/bigdata-analytics-0cbdc0c8bba5076f7e11.js"],"/blog-1":[a,s,"static/chunks/pages/blog-1-017821ddacc4786dd0b1.js"],"/blog-2":[a,s,"static/chunks/pages/blog-2-37d51d7a37426809fe0b.js"],"/blog-3":[a,s,"static/chunks/pages/blog-3-d10f2ee459efb66e2752.js"],"/blog-4":[a,s,"static/chunks/pages/blog-4-894d75205d1fdb84f2de.js"],"/blog-5":[a,s,"static/chunks/pages/blog-5-1afb019f62172fa8366d.js"],"/blog-6":[a,s,"static/chunks/pages/blog-6-1772794f660da5f846a8.js"],"/blog-details":[a,s,"static/chunks/pages/blog-details-5dd1083bd5dfb1c16590.js"],"/cart":[a,s,"static/chunks/pages/cart-6b1169b684bc471e6256.js"],"/checkout":[a,s,"static/chunks/pages/checkout-6c25a49f0db0d25d303d.js"],"/coming-soon":["static/chunks/pages/coming-soon-62c861c337a1f628d4d4.js"],"/contact":[a,"static/chunks/7776-16e6751e92086bb40e40.js",s,"static/chunks/pages/contact-f6294171702ffbee8f5b.js"],"/digital-agency":[a,"static/chunks/8960-030674d3d9d836d07687.js","static/chunks/pages/digital-agency-b85ebcd34886ccf5f596.js"],"/digital-agency-portfolio":[a,r,"static/chunks/5164-95ab0f88e4947f72794b.js","static/chunks/pages/digital-agency-portfolio-09d30242cb71b7631693.js"],"/faq":[a,u,s,"static/chunks/pages/faq-a007929a04890fa71c1c.js"],"/feature-details":[a,u,s,"static/chunks/pages/feature-details-883addc4e50f90d673b3.js"],"/features":[a,n,s,"static/chunks/pages/features-59847a5d933d5368aff1.js"],"/feedback":[d,a,e,r,s,"static/chunks/pages/feedback-3b32e369d1192e91958d.js"],"/forgot-password":[a,s,"static/chunks/pages/forgot-password-20db41a8b4704cdc9f38.js"],"/hosting":[a,"static/chunks/8514-7f6078a014c5768f0522.js","static/chunks/pages/hosting-20592785bc172e3c46eb.js"],"/iot":[a,c,e,s,"static/chunks/pages/iot-fe8da860641d2f04744b.js"],"/it-startup":[a,c,e,n,s,i,b,f,"static/chunks/pages/it-startup-686a157c0bb09fb4a9d0.js"],"/it-startup-2":[a,c,e,n,"static/chunks/5710-c2c2513af8af33f86dde.js",s,i,b,"static/chunks/pages/it-startup-2-3a013d4f5a8c60c187f9.js"],"/login":[a,s,"static/chunks/pages/login-6dfc7e50174db6f4dd61.js"],"/machine-learning":[d,a,c,s,g,"static/chunks/pages/machine-learning-341d13f4c239e8b8bb83.js"],"/machine-learning-2":[d,a,c,g,"static/chunks/pages/machine-learning-2-13642ae7f4efeb1f1efe.js"],"/pc-repair":[a,c,e,s,"static/chunks/pages/pc-repair-d7dd5358587897031479.js"],"/pricing":[a,s,g,"static/chunks/pages/pricing-1e876dedc7ca71d3df35.js"],"/privacy-policy":[a,s,"static/chunks/pages/privacy-policy-d650fc2312ba9c7cad5e.js"],"/products/[id]":[a,p,s,"static/chunks/pages/products/[id]-b2c95cab851713134609.js"],"/project-details":[a,s,"static/chunks/pages/project-details-d941c0134e1a02bd3ee2.js"],"/projects-1":[a,s,"static/chunks/pages/projects-1-2d3f944955ae0af62e73.js"],"/projects-2":[a,s,"static/chunks/pages/projects-2-38ede8a91aa251d0d3c9.js"],"/service-details":[a,u,s,"static/chunks/pages/service-details-d37a7969d940f2691f3d.js"],"/services-1":[a,s,"static/chunks/pages/services-1-06f87071936a8446ccdd.js"],"/services-2":[a,s,"static/chunks/pages/services-2-62a523e1916226c685f9.js"],"/services-3":[a,s,"static/chunks/pages/services-3-ecfb5596c6d51c80bd6a.js"],"/services-4":[a,s,"static/chunks/pages/services-4-573e55761948d8ebd1d5.js"],"/services-5":[a,s,"static/chunks/pages/services-5-b9939b8dfc1d2bcdb722.js"],"/shop":[a,s,"static/chunks/pages/shop-d9b0999c562eb19688d0.js"],"/sign-up":[a,s,"static/chunks/pages/sign-up-e28a3161975493b737eb.js"],"/team":[a,s,"static/chunks/pages/team-197ec7d06ba65619176f.js"],"/term-condition":[a,s,"static/chunks/pages/term-condition-a5aa9bdb1f999de4d17c.js"],"/yamaha":[a,e,"static/chunks/6190-33d37dc3ad841d5d5075.js",t,"static/chunks/pages/yamaha-cdc571916b5cbe78659f.js"],"/yamaha/AboutUs":[a,t,"static/chunks/pages/yamaha/AboutUs-943fa41a65bb59284d9c.js"],"/yamaha/ContactUs":[a,t,"static/chunks/pages/yamaha/ContactUs-cea426ff52659255e113.js"],"/yamaha/ForgotPassword":["static/chunks/pages/yamaha/ForgotPassword-1036b5f1552bf891d868.js"],"/yamaha/LatestNews":[a,t,"static/chunks/pages/yamaha/LatestNews-a180250b87b3928cc05d.js"],"/yamaha/LatestNews/LatestNewsDetail":[a,h,k,t,"static/chunks/pages/yamaha/LatestNews/LatestNewsDetail-299b36ccf9ba05d53b85.js"],"/yamaha/Product/Motor":[a,o,t,"static/chunks/pages/yamaha/Product/Motor-4fdcf57436e2ccdae17e.js"],"/yamaha/Product/Motor_Detail":[a,h,o,k,p,j,t,"static/chunks/pages/yamaha/Product/Motor_Detail-b6e63b07ac134ce93af8.js"],"/yamaha/Product/Sparepart":[a,h,o,l,t,"static/chunks/pages/yamaha/Product/Sparepart-1687b4a3e769b9660353.js"],"/yamaha/Register":["static/chunks/pages/yamaha/Register-4206210c590e4c978c80.js"],"/yamaha/Shop/Cart":[a,h,o,l,j,t,"static/chunks/pages/yamaha/Shop/Cart-46cc78230a0fe97b1c70.js"],"/yamaha/Shop/Checkout":[a,t,"static/chunks/pages/yamaha/Shop/Checkout-af2702b3fa6097dc14ee.js"],"/yamaha/login":["static/chunks/pages/yamaha/login-ec74f18738134d53613b.js"],sortedPages:["/","/404","/_app","/_error","/about-1","/about-2","/about-3","/bigdata-analytics","/blog-1","/blog-2","/blog-3","/blog-4","/blog-5","/blog-6","/blog-details","/cart","/checkout","/coming-soon","/contact","/digital-agency","/digital-agency-portfolio","/faq","/feature-details","/features","/feedback","/forgot-password","/hosting","/iot","/it-startup","/it-startup-2","/login","/machine-learning","/machine-learning-2","/pc-repair","/pricing","/privacy-policy","/products/[id]","/project-details","/projects-1","/projects-2","/service-details","/services-1","/services-2","/services-3","/services-4","/services-5","/shop","/sign-up","/team","/term-condition","/yamaha","/yamaha/AboutUs","/yamaha/ContactUs","/yamaha/ForgotPassword","/yamaha/LatestNews","/yamaha/LatestNews/LatestNewsDetail","/yamaha/Product/Motor","/yamaha/Product/Motor_Detail","/yamaha/Product/Sparepart","/yamaha/Register","/yamaha/Shop/Cart","/yamaha/Shop/Checkout","/yamaha/login"]}}("static/chunks/3023-9780ddb35aeb02f18988.js","static/chunks/8206-26af38c42565c8d3ec6f.js","static/chunks/4554-343b47186e5d64e89414.js","static/chunks/7798-7081fdc5536a6db6ca82.js","static/chunks/7853-d98eefe1f629cc9d2afb.js","static/chunks/7689-199e69d119d0747214d3.js","static/chunks/617777a1-c16be889830ea87de181.js","static/chunks/6661-db6a2024e5a8147dfa75.js","static/chunks/6326-7971c57f8ced24a21de7.js","static/chunks/7333-a5a3eac91b793e5358a6.js","static/chunks/9061-cff0e5b1843754261944.js","static/chunks/4444-7bd9655d5c8309115d5b.js","static/chunks/2088-cf198cb15e6f1a4e46b5.js","static/chunks/9638-90f2845e484630892ba5.js","static/chunks/8968-fd0a91f41d6d5fa51c9b.js","static/chunks/199-0252964299f55226f07e.js","static/chunks/653-c66b3db73f036c4c1318.js","static/chunks/6737-6ca4711455e02316b7e0.js","static/chunks/8933-010b8a2257c466233ad6.js"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB(); \ No newline at end of file diff --git a/.next/static/chunks/1367-521f29bb69f83dd91508.js b/.next/static/chunks/1367-521f29bb69f83dd91508.js deleted file mode 100644 index 4b2c091..0000000 --- a/.next/static/chunks/1367-521f29bb69f83dd91508.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1367],{93096:function(e,t,n){var r="Expected a function",o=/^\s+|\s+$/g,i=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,u=/^0o[0-7]+$/i,s=parseInt,l="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,c="object"==typeof self&&self&&self.Object===Object&&self,f=l||c||Function("return this")(),d=Object.prototype.toString,p=Math.max,h=Math.min,y=function(){return f.Date.now()};function v(e,t,n){var o,i,a,u,s,l,c=0,f=!1,d=!1,v=!0;if("function"!=typeof e)throw new TypeError(r);function b(t){var n=o,r=i;return o=i=void 0,c=t,u=e.apply(r,n)}function w(e){return c=e,s=setTimeout(_,t),f?b(e):u}function O(e){var n=e-l;return void 0===l||n>=t||n<0||d&&e-c>=a}function _(){var e=y();if(O(e))return j(e);s=setTimeout(_,function(e){var n=t-(e-l);return d?h(n,a-(e-c)):n}(e))}function j(e){return s=void 0,v&&o?b(e):(o=i=void 0,u)}function P(){var e=y(),n=O(e);if(o=arguments,i=this,l=e,n){if(void 0===s)return w(l);if(d)return s=setTimeout(_,t),b(l)}return void 0===s&&(s=setTimeout(_,t)),u}return t=g(t)||0,m(n)&&(f=!!n.leading,a=(d="maxWait"in n)?p(g(n.maxWait)||0,t):a,v="trailing"in n?!!n.trailing:v),P.cancel=function(){void 0!==s&&clearTimeout(s),c=0,o=l=i=s=void 0},P.flush=function(){return void 0===s?u:j(y())},P}function m(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function g(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==d.call(e)}(e))return NaN;if(m(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=m(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(o,"");var n=a.test(e);return n||u.test(e)?s(e.slice(2),n?2:8):i.test(e)?NaN:+e}e.exports=function(e,t,n){var o=!0,i=!0;if("function"!=typeof e)throw new TypeError(r);return m(n)&&(o="leading"in n?!!n.leading:o,i="trailing"in n?!!n.trailing:i),v(e,t,{leading:o,maxWait:t,trailing:i})}},41647:function(e,t,n){"use strict";var r=n(61682);function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return a=e.done,e},e:function(e){u=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(u)throw i}}}}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:[];return new Promise((function(t){var n=function(){return v=!0,t()};j(y,e).then(n,n)}))},window.__NEXT_PRELOADREADY=_.preloadReady;var P=_;t.default=P},5152:function(e,t,n){e.exports=n(41647)},45169:function(e,t,n){"use strict";var r=n(67294),o=n(45697),i=n.n(o);function a(){return(a=Object.assign||function(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=(0,r.forwardRef)((function(e,t){var n=e.color,o=void 0===n?"currentColor":n,i=e.size,s=void 0===i?24:i,l=u(e,["color","size"]);return r.createElement("svg",a({ref:t,xmlns:"http://www.w3.org/2000/svg",width:s,height:s,viewBox:"0 0 24 24",fill:"none",stroke:o,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},l),r.createElement("line",{x1:"5",y1:"12",x2:"19",y2:"12"}),r.createElement("polyline",{points:"12 5 19 12 12 19"}))}));s.propTypes={color:i().string,size:i().oneOfType([i().string,i().number])},s.displayName="ArrowRight",t.Z=s},82126:function(e,t,n){"use strict";var r=n(67294),o=n(45697),i=n.n(o);function a(){return(a=Object.assign||function(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=(0,r.forwardRef)((function(e,t){var n=e.color,o=void 0===n?"currentColor":n,i=e.size,s=void 0===i?24:i,l=u(e,["color","size"]);return r.createElement("svg",a({ref:t,xmlns:"http://www.w3.org/2000/svg",width:s,height:s,viewBox:"0 0 24 24",fill:"none",stroke:o,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},l),r.createElement("path",{d:"M22.65 14.39L12 22.13 1.35 14.39a.84.84 0 0 1-.3-.94l1.22-3.78 2.44-7.51A.42.42 0 0 1 4.82 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.49h8.1l2.44-7.51A.42.42 0 0 1 18.6 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.51L23 13.45a.84.84 0 0 1-.35.94z"}))}));s.propTypes={color:i().string,size:i().oneOfType([i().string,i().number])},s.displayName="Gitlab",t.Z=s},19318:function(e,t,n){"use strict";var r=n(67294),o=n(45697),i=n.n(o);function a(){return(a=Object.assign||function(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=(0,r.forwardRef)((function(e,t){var n=e.color,o=void 0===n?"currentColor":n,i=e.size,s=void 0===i?24:i,l=u(e,["color","size"]);return r.createElement("svg",a({ref:t,xmlns:"http://www.w3.org/2000/svg",width:s,height:s,viewBox:"0 0 24 24",fill:"none",stroke:o,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},l),r.createElement("path",{d:"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"}),r.createElement("rect",{x:"2",y:"9",width:"4",height:"12"}),r.createElement("circle",{cx:"4",cy:"4",r:"2"}))}));s.propTypes={color:i().string,size:i().oneOfType([i().string,i().number])},s.displayName="Linkedin",t.Z=s},61896:function(e,t,n){"use strict";var r=n(67294),o=n(45697),i=n.n(o);function a(){return(a=Object.assign||function(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=(0,r.forwardRef)((function(e,t){var n=e.color,o=void 0===n?"currentColor":n,i=e.size,s=void 0===i?24:i,l=u(e,["color","size"]);return r.createElement("svg",a({ref:t,xmlns:"http://www.w3.org/2000/svg",width:s,height:s,viewBox:"0 0 24 24",fill:"none",stroke:o,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},l),r.createElement("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),r.createElement("line",{x1:"5",y1:"12",x2:"19",y2:"12"}))}));s.propTypes={color:i().string,size:i().oneOfType([i().string,i().number])},s.displayName="Plus",t.Z=s},48477:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n=Math.floor(a)&&f=Math.floor(u),y=n.getActiveLink();return h?(o===y&&n.setActiveLink(void 0),e.props.hashSpy&&d.getHash()===o&&d.changeHash(),e.props.spy&&e.state.active&&(e.setState({active:!1}),e.props.onSetInactive&&e.props.onSetInactive()),l.updateStates()):p&&y!==o?(n.setActiveLink(o),e.props.hashSpy&&d.changeHash(o),e.props.spy&&(e.setState({active:!0}),e.props.onSetActive&&e.props.onSetActive(o)),l.updateStates()):void 0}}};return f.propTypes=p,f.defaultProps={offset:0},f},Element:function(e){console.warn("Helpers.Element is deprecated since v1.7.0");var t=function(t){function n(e){i(this,n);var t=a(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,e));return t.childBindings={domNode:null},t}return u(n,t),o(n,[{key:"componentDidMount",value:function(){if("undefined"===typeof window)return!1;this.registerElems(this.props.name)}},{key:"componentDidUpdate",value:function(e){this.props.name!==e.name&&this.registerElems(this.props.name)}},{key:"componentWillUnmount",value:function(){if("undefined"===typeof window)return!1;c.unregister(this.props.name)}},{key:"registerElems",value:function(e){c.register(e,this.childBindings.domNode)}},{key:"render",value:function(){return s.createElement(e,r({},this.props,{parentBindings:this.childBindings}))}}]),n}(s.Component);return t.propTypes={name:f.string,id:f.string},t}};e.exports=h},53200:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t=o.duration?1:t(o.progress/o.duration),o.currentPosition=o.startPosition+Math.ceil(o.delta*o.percent),o.containerElement&&o.containerElement!==document&&o.containerElement!==document.body?n.horizontal?o.containerElement.scrollLeft=o.currentPosition:o.containerElement.scrollTop=o.currentPosition:n.horizontal?window.scrollTo(o.currentPosition,0):window.scrollTo(0,o.currentPosition),o.percent<1){var i=e.bind(null,t,n);l.call(window,i)}else a.default.registered.end&&a.default.registered.end(o.to,o.target,o.currentPosition);else a.default.registered.end&&a.default.registered.end(o.to,o.target,o.currentPositionY)},p=function(e){e.data.containerElement=e?e.containerId?document.getElementById(e.containerId):e.container&&e.container.nodeType?e.container:document:null},h=function(e,t,n,r){if(t.data=t.data||{currentPosition:0,startPosition:0,targetPosition:0,progress:0,duration:0,cancel:!1,target:null,containerElement:null,to:null,start:null,delta:null,percent:null,delayTimeout:null},window.clearTimeout(t.data.delayTimeout),i.default.subscribe((function(){t.data.cancel=!0})),p(t),t.data.start=null,t.data.cancel=!1,t.data.startPosition=t.horizontal?c(t):f(t),t.data.targetPosition=t.absolute?e:e+t.data.startPosition,t.data.startPosition!==t.data.targetPosition){var o;t.data.delta=Math.round(t.data.targetPosition-t.data.startPosition),t.data.duration=("function"===typeof(o=t.duration)?o:function(){return o})(t.data.delta),t.data.duration=isNaN(parseFloat(t.data.duration))?1e3:parseFloat(t.data.duration),t.data.to=n,t.data.target=r;var u=s(t),h=d.bind(null,u,t);t&&t.delay>0?t.data.delayTimeout=window.setTimeout((function(){a.default.registered.begin&&a.default.registered.begin(t.data.to,t.data.target),l.call(window,h)}),t.delay):(a.default.registered.begin&&a.default.registered.begin(t.data.to,t.data.target),l.call(window,h))}else a.default.registered.end&&a.default.registered.end(t.data.to,t.data.target,t.data.currentPosition)},y=function(e){return(e=r({},e)).data=e.data||{currentPosition:0,startPosition:0,targetPosition:0,progress:0,duration:0,cancel:!1,target:null,containerElement:null,to:null,start:null,delta:null,percent:null,delayTimeout:null},e.absolute=!0,e};t.default={animateTopScroll:h,getAnimationType:s,scrollToTop:function(e){h(0,y(e))},scrollToBottom:function(e){e=y(e),p(e),h(e.horizontal?function(e){var t=e.data.containerElement;if(t&&t!==document&&t!==document.body)return t.scrollWidth-t.offsetWidth;var n=document.body,r=document.documentElement;return Math.max(n.scrollWidth,n.offsetWidth,r.clientWidth,r.scrollWidth,r.offsetWidth)}(e):function(e){var t=e.data.containerElement;if(t&&t!==document&&t!==document.body)return t.scrollHeight-t.offsetHeight;var n=document.body,r=document.documentElement;return Math.max(n.scrollHeight,n.offsetHeight,r.clientHeight,r.scrollHeight,r.offsetHeight)}(e),e)},scrollTo:function(e,t){h(e,y(t))},scrollMore:function(e,t){t=y(t),p(t);var n=t.horizontal?c(t):f(t);h(e+n,t)}}},50140:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(55236),o=["mousedown","mousewheel","touchmove","keydown"];t.default={subscribe:function(e){return"undefined"!==typeof document&&o.forEach((function(t){return(0,r.addPassiveEventListener)(document,t,e)}))}}},55236:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.addPassiveEventListener=function(e,t,n){var r=function(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function(){e=!0}});window.addEventListener("test",null,t)}catch(n){}return e}();e.addEventListener(t,n,!!r&&{passive:!0})},t.removePassiveEventListener=function(e,t,n){e.removeEventListener(t,n)}},18e3:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t=Math.floor(f)&&y=Math.floor(d)}else{var v=0,m=0,g=0;if(o.getBoundingClientRect)g=o.getBoundingClientRect().top;if(!u||e.props.isDynamic){if(!(u=n.get(a)))return;var b=u.getBoundingClientRect();m=(v=b.top-g+r)+b.height}var w=r-e.props.offset;s=w>=Math.floor(v)&&w=Math.floor(m)}var O=n.getActiveLink();if(c){if(a===O&&n.setActiveLink(void 0),e.props.hashSpy&&l.default.getHash()===a){var _=e.props.saveHashHistory,j=void 0!==_&&_;l.default.changeHash("",j)}e.props.spy&&e.state.active&&(e.setState({active:!1}),e.props.onSetInactive&&e.props.onSetInactive(a,u))}if(s&&(O!==a||!1===e.state.active)){n.setActiveLink(a);var P=e.props.saveHashHistory,S=void 0!==P&&P;e.props.hashSpy&&l.default.changeHash(a,S),e.props.spy&&(e.setState({active:!0}),e.props.onSetActive&&e.props.onSetActive(a,u))}}}};return s.propTypes=f,s.defaultProps={offset:0},s}},87606:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o=n(93096),i=(r=o)&&r.__esModule?r:{default:r},a=n(55236);var u={spyCallbacks:[],spySetState:[],scrollSpyContainers:[],mount:function(e,t){if(e){var n=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:66;return(0,i.default)(e,t)}((function(t){u.scrollHandler(e)}),t);u.scrollSpyContainers.push(e),(0,a.addPassiveEventListener)(e,"scroll",n)}},isMounted:function(e){return-1!==u.scrollSpyContainers.indexOf(e)},currentPositionX:function(e){if(e===document){var t=void 0!==window.pageYOffset,n="CSS1Compat"===(document.compatMode||"");return t?window.pageXOffset:n?document.documentElement.scrollLeft:document.body.scrollLeft}return e.scrollLeft},currentPositionY:function(e){if(e===document){var t=void 0!==window.pageXOffset,n="CSS1Compat"===(document.compatMode||"");return t?window.pageYOffset:n?document.documentElement.scrollTop:document.body.scrollTop}return e.scrollTop},scrollHandler:function(e){(u.scrollSpyContainers[u.scrollSpyContainers.indexOf(e)].spyCallbacks||[]).forEach((function(t){return t(u.currentPositionX(e),u.currentPositionY(e))}))},addStateHandler:function(e){u.spySetState.push(e)},addSpyHandler:function(e,t){var n=u.scrollSpyContainers[u.scrollSpyContainers.indexOf(t)];n.spyCallbacks||(n.spyCallbacks=[]),n.spyCallbacks.push(e),e(u.currentPositionX(t),u.currentPositionY(t))},updateStates:function(){u.spySetState.forEach((function(e){return e()}))},unmount:function(e,t){u.scrollSpyContainers.forEach((function(e){return e.spyCallbacks&&e.spyCallbacks.length&&e.spyCallbacks.splice(e.spyCallbacks.indexOf(t),1)})),u.spySetState&&u.spySetState.length&&u.spySetState.splice(u.spySetState.indexOf(e),1),document.removeEventListener("scroll",u.scrollHandler)},update:function(){return u.scrollSpyContainers.forEach((function(e){return u.scrollHandler(e)}))}};t.default=u},82628:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t=t||n<0||d&&e-c>=a}function _(){var e=y();if(O(e))return j(e);s=setTimeout(_,function(e){var n=t-(e-l);return d?h(n,a-(e-c)):n}(e))}function j(e){return s=void 0,v&&o?b(e):(o=i=void 0,u)}function P(){var e=y(),n=O(e);if(o=arguments,i=this,l=e,n){if(void 0===s)return w(l);if(d)return s=setTimeout(_,t),b(l)}return void 0===s&&(s=setTimeout(_,t)),u}return t=g(t)||0,m(n)&&(f=!!n.leading,a=(d="maxWait"in n)?p(g(n.maxWait)||0,t):a,v="trailing"in n?!!n.trailing:v),P.cancel=function(){void 0!==s&&clearTimeout(s),c=0,o=l=i=s=void 0},P.flush=function(){return void 0===s?u:j(y())},P}function m(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function g(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==d.call(e)}(e))return NaN;if(m(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=m(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(o,"");var n=a.test(e);return n||u.test(e)?s(e.slice(2),n?2:8):i.test(e)?NaN:+e}e.exports=function(e,t,n){var o=!0,i=!0;if("function"!=typeof e)throw new TypeError(r);return m(n)&&(o="leading"in n?!!n.leading:o,i="trailing"in n?!!n.trailing:i),v(e,t,{leading:o,maxWait:t,trailing:i})}},41647:function(e,t,n){"use strict";var r=n(61682);function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return a=e.done,e},e:function(e){u=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(u)throw i}}}}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:[];return new Promise((function(t){var n=function(){return v=!0,t()};j(y,e).then(n,n)}))},window.__NEXT_PRELOADREADY=_.preloadReady;var P=_;t.default=P},5152:function(e,t,n){e.exports=n(41647)},45169:function(e,t,n){"use strict";var r=n(67294),o=n(45697),i=n.n(o);function a(){return(a=Object.assign||function(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=(0,r.forwardRef)((function(e,t){var n=e.color,o=void 0===n?"currentColor":n,i=e.size,s=void 0===i?24:i,l=u(e,["color","size"]);return r.createElement("svg",a({ref:t,xmlns:"http://www.w3.org/2000/svg",width:s,height:s,viewBox:"0 0 24 24",fill:"none",stroke:o,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},l),r.createElement("line",{x1:"5",y1:"12",x2:"19",y2:"12"}),r.createElement("polyline",{points:"12 5 19 12 12 19"}))}));s.propTypes={color:i().string,size:i().oneOfType([i().string,i().number])},s.displayName="ArrowRight",t.Z=s},82126:function(e,t,n){"use strict";var r=n(67294),o=n(45697),i=n.n(o);function a(){return(a=Object.assign||function(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=(0,r.forwardRef)((function(e,t){var n=e.color,o=void 0===n?"currentColor":n,i=e.size,s=void 0===i?24:i,l=u(e,["color","size"]);return r.createElement("svg",a({ref:t,xmlns:"http://www.w3.org/2000/svg",width:s,height:s,viewBox:"0 0 24 24",fill:"none",stroke:o,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},l),r.createElement("path",{d:"M22.65 14.39L12 22.13 1.35 14.39a.84.84 0 0 1-.3-.94l1.22-3.78 2.44-7.51A.42.42 0 0 1 4.82 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.49h8.1l2.44-7.51A.42.42 0 0 1 18.6 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.51L23 13.45a.84.84 0 0 1-.35.94z"}))}));s.propTypes={color:i().string,size:i().oneOfType([i().string,i().number])},s.displayName="Gitlab",t.Z=s},19318:function(e,t,n){"use strict";var r=n(67294),o=n(45697),i=n.n(o);function a(){return(a=Object.assign||function(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=(0,r.forwardRef)((function(e,t){var n=e.color,o=void 0===n?"currentColor":n,i=e.size,s=void 0===i?24:i,l=u(e,["color","size"]);return r.createElement("svg",a({ref:t,xmlns:"http://www.w3.org/2000/svg",width:s,height:s,viewBox:"0 0 24 24",fill:"none",stroke:o,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},l),r.createElement("path",{d:"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"}),r.createElement("rect",{x:"2",y:"9",width:"4",height:"12"}),r.createElement("circle",{cx:"4",cy:"4",r:"2"}))}));s.propTypes={color:i().string,size:i().oneOfType([i().string,i().number])},s.displayName="Linkedin",t.Z=s},61896:function(e,t,n){"use strict";var r=n(67294),o=n(45697),i=n.n(o);function a(){return(a=Object.assign||function(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=(0,r.forwardRef)((function(e,t){var n=e.color,o=void 0===n?"currentColor":n,i=e.size,s=void 0===i?24:i,l=u(e,["color","size"]);return r.createElement("svg",a({ref:t,xmlns:"http://www.w3.org/2000/svg",width:s,height:s,viewBox:"0 0 24 24",fill:"none",stroke:o,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},l),r.createElement("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),r.createElement("line",{x1:"5",y1:"12",x2:"19",y2:"12"}))}));s.propTypes={color:i().string,size:i().oneOfType([i().string,i().number])},s.displayName="Plus",t.Z=s},48477:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n=Math.floor(a)&&f=Math.floor(u),y=n.getActiveLink();return h?(o===y&&n.setActiveLink(void 0),e.props.hashSpy&&d.getHash()===o&&d.changeHash(),e.props.spy&&e.state.active&&(e.setState({active:!1}),e.props.onSetInactive&&e.props.onSetInactive()),l.updateStates()):p&&y!==o?(n.setActiveLink(o),e.props.hashSpy&&d.changeHash(o),e.props.spy&&(e.setState({active:!0}),e.props.onSetActive&&e.props.onSetActive(o)),l.updateStates()):void 0}}};return f.propTypes=p,f.defaultProps={offset:0},f},Element:function(e){console.warn("Helpers.Element is deprecated since v1.7.0");var t=function(t){function n(e){i(this,n);var t=a(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,e));return t.childBindings={domNode:null},t}return u(n,t),o(n,[{key:"componentDidMount",value:function(){if("undefined"===typeof window)return!1;this.registerElems(this.props.name)}},{key:"componentDidUpdate",value:function(e){this.props.name!==e.name&&this.registerElems(this.props.name)}},{key:"componentWillUnmount",value:function(){if("undefined"===typeof window)return!1;c.unregister(this.props.name)}},{key:"registerElems",value:function(e){c.register(e,this.childBindings.domNode)}},{key:"render",value:function(){return s.createElement(e,r({},this.props,{parentBindings:this.childBindings}))}}]),n}(s.Component);return t.propTypes={name:f.string,id:f.string},t}};e.exports=h},53200:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t=o.duration?1:t(o.progress/o.duration),o.currentPosition=o.startPosition+Math.ceil(o.delta*o.percent),o.containerElement&&o.containerElement!==document&&o.containerElement!==document.body?n.horizontal?o.containerElement.scrollLeft=o.currentPosition:o.containerElement.scrollTop=o.currentPosition:n.horizontal?window.scrollTo(o.currentPosition,0):window.scrollTo(0,o.currentPosition),o.percent<1){var i=e.bind(null,t,n);l.call(window,i)}else a.default.registered.end&&a.default.registered.end(o.to,o.target,o.currentPosition);else a.default.registered.end&&a.default.registered.end(o.to,o.target,o.currentPositionY)},p=function(e){e.data.containerElement=e?e.containerId?document.getElementById(e.containerId):e.container&&e.container.nodeType?e.container:document:null},h=function(e,t,n,r){if(t.data=t.data||{currentPosition:0,startPosition:0,targetPosition:0,progress:0,duration:0,cancel:!1,target:null,containerElement:null,to:null,start:null,delta:null,percent:null,delayTimeout:null},window.clearTimeout(t.data.delayTimeout),i.default.subscribe((function(){t.data.cancel=!0})),p(t),t.data.start=null,t.data.cancel=!1,t.data.startPosition=t.horizontal?c(t):f(t),t.data.targetPosition=t.absolute?e:e+t.data.startPosition,t.data.startPosition!==t.data.targetPosition){var o;t.data.delta=Math.round(t.data.targetPosition-t.data.startPosition),t.data.duration=("function"===typeof(o=t.duration)?o:function(){return o})(t.data.delta),t.data.duration=isNaN(parseFloat(t.data.duration))?1e3:parseFloat(t.data.duration),t.data.to=n,t.data.target=r;var u=s(t),h=d.bind(null,u,t);t&&t.delay>0?t.data.delayTimeout=window.setTimeout((function(){a.default.registered.begin&&a.default.registered.begin(t.data.to,t.data.target),l.call(window,h)}),t.delay):(a.default.registered.begin&&a.default.registered.begin(t.data.to,t.data.target),l.call(window,h))}else a.default.registered.end&&a.default.registered.end(t.data.to,t.data.target,t.data.currentPosition)},y=function(e){return(e=r({},e)).data=e.data||{currentPosition:0,startPosition:0,targetPosition:0,progress:0,duration:0,cancel:!1,target:null,containerElement:null,to:null,start:null,delta:null,percent:null,delayTimeout:null},e.absolute=!0,e};t.default={animateTopScroll:h,getAnimationType:s,scrollToTop:function(e){h(0,y(e))},scrollToBottom:function(e){e=y(e),p(e),h(e.horizontal?function(e){var t=e.data.containerElement;if(t&&t!==document&&t!==document.body)return t.scrollWidth-t.offsetWidth;var n=document.body,r=document.documentElement;return Math.max(n.scrollWidth,n.offsetWidth,r.clientWidth,r.scrollWidth,r.offsetWidth)}(e):function(e){var t=e.data.containerElement;if(t&&t!==document&&t!==document.body)return t.scrollHeight-t.offsetHeight;var n=document.body,r=document.documentElement;return Math.max(n.scrollHeight,n.offsetHeight,r.clientHeight,r.scrollHeight,r.offsetHeight)}(e),e)},scrollTo:function(e,t){h(e,y(t))},scrollMore:function(e,t){t=y(t),p(t);var n=t.horizontal?c(t):f(t);h(e+n,t)}}},50140:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(55236),o=["mousedown","mousewheel","touchmove","keydown"];t.default={subscribe:function(e){return"undefined"!==typeof document&&o.forEach((function(t){return(0,r.addPassiveEventListener)(document,t,e)}))}}},55236:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.addPassiveEventListener=function(e,t,n){var r=function(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function(){e=!0}});window.addEventListener("test",null,t)}catch(n){}return e}();e.addEventListener(t,n,!!r&&{passive:!0})},t.removePassiveEventListener=function(e,t,n){e.removeEventListener(t,n)}},18e3:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t=Math.floor(f)&&y=Math.floor(d)}else{var v=0,m=0,g=0;if(o.getBoundingClientRect)g=o.getBoundingClientRect().top;if(!u||e.props.isDynamic){if(!(u=n.get(a)))return;var b=u.getBoundingClientRect();m=(v=b.top-g+r)+b.height}var w=r-e.props.offset;s=w>=Math.floor(v)&&w=Math.floor(m)}var O=n.getActiveLink();if(c){if(a===O&&n.setActiveLink(void 0),e.props.hashSpy&&l.default.getHash()===a){var _=e.props.saveHashHistory,j=void 0!==_&&_;l.default.changeHash("",j)}e.props.spy&&e.state.active&&(e.setState({active:!1}),e.props.onSetInactive&&e.props.onSetInactive(a,u))}if(s&&(O!==a||!1===e.state.active)){n.setActiveLink(a);var P=e.props.saveHashHistory,S=void 0!==P&&P;e.props.hashSpy&&l.default.changeHash(a,S),e.props.spy&&(e.setState({active:!0}),e.props.onSetActive&&e.props.onSetActive(a,u))}}}};return s.propTypes=f,s.defaultProps={offset:0},s}},87606:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o=n(93096),i=(r=o)&&r.__esModule?r:{default:r},a=n(55236);var u={spyCallbacks:[],spySetState:[],scrollSpyContainers:[],mount:function(e,t){if(e){var n=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:66;return(0,i.default)(e,t)}((function(t){u.scrollHandler(e)}),t);u.scrollSpyContainers.push(e),(0,a.addPassiveEventListener)(e,"scroll",n)}},isMounted:function(e){return-1!==u.scrollSpyContainers.indexOf(e)},currentPositionX:function(e){if(e===document){var t=void 0!==window.pageYOffset,n="CSS1Compat"===(document.compatMode||"");return t?window.pageXOffset:n?document.documentElement.scrollLeft:document.body.scrollLeft}return e.scrollLeft},currentPositionY:function(e){if(e===document){var t=void 0!==window.pageXOffset,n="CSS1Compat"===(document.compatMode||"");return t?window.pageYOffset:n?document.documentElement.scrollTop:document.body.scrollTop}return e.scrollTop},scrollHandler:function(e){(u.scrollSpyContainers[u.scrollSpyContainers.indexOf(e)].spyCallbacks||[]).forEach((function(t){return t(u.currentPositionX(e),u.currentPositionY(e))}))},addStateHandler:function(e){u.spySetState.push(e)},addSpyHandler:function(e,t){var n=u.scrollSpyContainers[u.scrollSpyContainers.indexOf(t)];n.spyCallbacks||(n.spyCallbacks=[]),n.spyCallbacks.push(e),e(u.currentPositionX(t),u.currentPositionY(t))},updateStates:function(){u.spySetState.forEach((function(e){return e()}))},unmount:function(e,t){u.scrollSpyContainers.forEach((function(e){return e.spyCallbacks&&e.spyCallbacks.length&&e.spyCallbacks.splice(e.spyCallbacks.indexOf(t),1)})),u.spySetState&&u.spySetState.length&&u.spySetState.splice(u.spySetState.indexOf(e),1),document.removeEventListener("scroll",u.scrollHandler)},update:function(){return u.scrollSpyContainers.forEach((function(e){return u.scrollHandler(e)}))}};t.default=u},82628:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n","import React from 'react'\nimport Loadable from './loadable'\n\nconst isServerSide = typeof window === 'undefined'\n\nexport type LoaderComponent

= Promise<\n React.ComponentType

| { default: React.ComponentType

}\n>\n\nexport type Loader

= (() => LoaderComponent

) | LoaderComponent

\n\nexport type LoaderMap = { [mdule: string]: () => Loader }\n\nexport type LoadableGeneratedOptions = {\n webpack?(): any\n modules?(): LoaderMap\n}\n\nexport type LoadableBaseOptions

= LoadableGeneratedOptions & {\n loading?: ({\n error,\n isLoading,\n pastDelay,\n }: {\n error?: Error | null\n isLoading?: boolean\n pastDelay?: boolean\n retry?: () => void\n timedOut?: boolean\n }) => JSX.Element | null\n loader?: Loader

| LoaderMap\n loadableGenerated?: LoadableGeneratedOptions\n ssr?: boolean\n}\n\nexport type LoadableOptions

= LoadableBaseOptions

& {\n render?(loader: any, props: any): JSX.Element\n}\n\nexport type DynamicOptions

= LoadableBaseOptions

& {\n /**\n * @deprecated the modules option has been planned for removal\n */\n render?(props: P, loaded: any): JSX.Element\n}\n\nexport type LoadableFn

= (\n opts: LoadableOptions

\n) => React.ComponentType

\n\nexport type LoadableComponent

= React.ComponentType

\n\nexport function noSSR

(\n LoadableInitializer: LoadableFn

,\n loadableOptions: LoadableOptions

\n): React.ComponentType

{\n // Removing webpack and modules means react-loadable won't try preloading\n delete loadableOptions.webpack\n delete loadableOptions.modules\n\n // This check is necessary to prevent react-loadable from initializing on the server\n if (!isServerSide) {\n return LoadableInitializer(loadableOptions)\n }\n\n const Loading = loadableOptions.loading!\n // This will only be rendered on the server side\n return () => (\n \n )\n}\n\n// function dynamic

(options: O):\n\nexport default function dynamic

(\n dynamicOptions: DynamicOptions

| Loader

,\n options?: DynamicOptions

\n): React.ComponentType

{\n let loadableFn: LoadableFn

= Loadable\n let loadableOptions: LoadableOptions

= {\n // A loading component is not required, so we default it\n loading: ({ error, isLoading, pastDelay }) => {\n if (!pastDelay) return null\n if (process.env.NODE_ENV === 'development') {\n if (isLoading) {\n return null\n }\n if (error) {\n return (\n

\n {error.message}\n
\n {error.stack}\n

\n )\n }\n }\n\n return null\n },\n }\n\n // Support for direct import(), eg: dynamic(import('../hello-world'))\n // Note that this is only kept for the edge case where someone is passing in a promise as first argument\n // The react-loadable babel plugin will turn dynamic(import('../hello-world')) into dynamic(() => import('../hello-world'))\n // To make sure we don't execute the import without rendering first\n if (dynamicOptions instanceof Promise) {\n loadableOptions.loader = () => dynamicOptions\n // Support for having import as a function, eg: dynamic(() => import('../hello-world'))\n } else if (typeof dynamicOptions === 'function') {\n loadableOptions.loader = dynamicOptions\n // Support for having first argument being options, eg: dynamic({loader: import('../hello-world')})\n } else if (typeof dynamicOptions === 'object') {\n loadableOptions = { ...loadableOptions, ...dynamicOptions }\n }\n\n // Support for passing options, eg: dynamic(import('../hello-world'), {loading: () =>

Loading something

})\n loadableOptions = { ...loadableOptions, ...options }\n\n if (\n typeof dynamicOptions === 'object' &&\n !(dynamicOptions instanceof Promise)\n ) {\n // show deprecation warning for `modules` key in development\n if (process.env.NODE_ENV !== 'production') {\n if (dynamicOptions.modules) {\n console.warn(\n 'The modules option for next/dynamic has been deprecated. See here for more info https://nextjs.org/docs/messages/next-dynamic-modules'\n )\n }\n }\n // Support for `render` when using a mapping, eg: `dynamic({ modules: () => {return {HelloWorld: import('../hello-world')}, render(props, loaded) {} } })\n if (dynamicOptions.render) {\n loadableOptions.render = (loaded, props) =>\n dynamicOptions.render!(props, loaded)\n }\n // Support for `modules` when using a mapping, eg: `dynamic({ modules: () => {return {HelloWorld: import('../hello-world')}, render(props, loaded) {} } })\n if (dynamicOptions.modules) {\n loadableFn = Loadable.Map\n const loadModules: LoaderMap = {}\n const modules = dynamicOptions.modules()\n Object.keys(modules).forEach((key) => {\n const value: any = modules[key]\n if (typeof value.then === 'function') {\n loadModules[key] = () => value.then((mod: any) => mod.default || mod)\n return\n }\n loadModules[key] = value\n })\n loadableOptions.loader = loadModules\n }\n }\n\n // coming from build/babel/plugins/react-loadable-plugin.js\n if (loadableOptions.loadableGenerated) {\n loadableOptions = {\n ...loadableOptions,\n ...loadableOptions.loadableGenerated,\n }\n delete loadableOptions.loadableGenerated\n }\n\n // support for disabling server side rendering, eg: dynamic(import('../hello-world'), {ssr: false})\n if (typeof loadableOptions.ssr === 'boolean') {\n if (!loadableOptions.ssr) {\n delete loadableOptions.ssr\n return noSSR(loadableFn, loadableOptions)\n }\n delete loadableOptions.ssr\n }\n\n return loadableFn(loadableOptions)\n}\n","import React from 'react'\n\ntype CaptureFn = (moduleName: string) => void\n\nexport const LoadableContext = React.createContext(null)\n\nif (process.env.NODE_ENV !== 'production') {\n LoadableContext.displayName = 'LoadableContext'\n}\n","/**\n@copyright (c) 2017-present James Kyle \n MIT License\n Permission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n The above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE\n*/\n// https://github.com/jamiebuilds/react-loadable/blob/v5.5.0/src/index.js\n// Modified to be compatible with webpack 4 / Next.js\n\nimport React from 'react'\nimport { useSubscription } from 'use-subscription'\nimport { LoadableContext } from './loadable-context'\n\nconst ALL_INITIALIZERS = []\nconst READY_INITIALIZERS = []\nlet initialized = false\n\nfunction load(loader) {\n let promise = loader()\n\n let state = {\n loading: true,\n loaded: null,\n error: null,\n }\n\n state.promise = promise\n .then((loaded) => {\n state.loading = false\n state.loaded = loaded\n return loaded\n })\n .catch((err) => {\n state.loading = false\n state.error = err\n throw err\n })\n\n return state\n}\n\nfunction loadMap(obj) {\n let state = {\n loading: false,\n loaded: {},\n error: null,\n }\n\n let promises = []\n\n try {\n Object.keys(obj).forEach((key) => {\n let result = load(obj[key])\n\n if (!result.loading) {\n state.loaded[key] = result.loaded\n state.error = result.error\n } else {\n state.loading = true\n }\n\n promises.push(result.promise)\n\n result.promise\n .then((res) => {\n state.loaded[key] = res\n })\n .catch((err) => {\n state.error = err\n })\n })\n } catch (err) {\n state.error = err\n }\n\n state.promise = Promise.all(promises)\n .then((res) => {\n state.loading = false\n return res\n })\n .catch((err) => {\n state.loading = false\n throw err\n })\n\n return state\n}\n\nfunction resolve(obj) {\n return obj && obj.__esModule ? obj.default : obj\n}\n\nfunction render(loaded, props) {\n return React.createElement(resolve(loaded), props)\n}\n\nfunction createLoadableComponent(loadFn, options) {\n let opts = Object.assign(\n {\n loader: null,\n loading: null,\n delay: 200,\n timeout: null,\n render: render,\n webpack: null,\n modules: null,\n },\n options\n )\n\n let subscription = null\n\n function init() {\n if (!subscription) {\n const sub = new LoadableSubscription(loadFn, opts)\n subscription = {\n getCurrentValue: sub.getCurrentValue.bind(sub),\n subscribe: sub.subscribe.bind(sub),\n retry: sub.retry.bind(sub),\n promise: sub.promise.bind(sub),\n }\n }\n return subscription.promise()\n }\n\n // Server only\n if (typeof window === 'undefined') {\n ALL_INITIALIZERS.push(init)\n }\n\n // Client only\n if (\n !initialized &&\n typeof window !== 'undefined' &&\n typeof opts.webpack === 'function'\n ) {\n const moduleIds = opts.webpack()\n READY_INITIALIZERS.push((ids) => {\n for (const moduleId of moduleIds) {\n if (ids.indexOf(moduleId) !== -1) {\n return init()\n }\n }\n })\n }\n\n const LoadableComponent = (props, ref) => {\n init()\n\n const context = React.useContext(LoadableContext)\n const state = useSubscription(subscription)\n\n React.useImperativeHandle(\n ref,\n () => ({\n retry: subscription.retry,\n }),\n []\n )\n\n if (context && Array.isArray(opts.modules)) {\n opts.modules.forEach((moduleName) => {\n context(moduleName)\n })\n }\n\n return React.useMemo(() => {\n if (state.loading || state.error) {\n return React.createElement(opts.loading, {\n isLoading: state.loading,\n pastDelay: state.pastDelay,\n timedOut: state.timedOut,\n error: state.error,\n retry: subscription.retry,\n })\n } else if (state.loaded) {\n return opts.render(state.loaded, props)\n } else {\n return null\n }\n }, [props, state])\n }\n\n LoadableComponent.preload = () => init()\n LoadableComponent.displayName = 'LoadableComponent'\n\n return React.forwardRef(LoadableComponent)\n}\n\nclass LoadableSubscription {\n constructor(loadFn, opts) {\n this._loadFn = loadFn\n this._opts = opts\n this._callbacks = new Set()\n this._delay = null\n this._timeout = null\n\n this.retry()\n }\n\n promise() {\n return this._res.promise\n }\n\n retry() {\n this._clearTimeouts()\n this._res = this._loadFn(this._opts.loader)\n\n this._state = {\n pastDelay: false,\n timedOut: false,\n }\n\n const { _res: res, _opts: opts } = this\n\n if (res.loading) {\n if (typeof opts.delay === 'number') {\n if (opts.delay === 0) {\n this._state.pastDelay = true\n } else {\n this._delay = setTimeout(() => {\n this._update({\n pastDelay: true,\n })\n }, opts.delay)\n }\n }\n\n if (typeof opts.timeout === 'number') {\n this._timeout = setTimeout(() => {\n this._update({ timedOut: true })\n }, opts.timeout)\n }\n }\n\n this._res.promise\n .then(() => {\n this._update({})\n this._clearTimeouts()\n })\n .catch((_err) => {\n this._update({})\n this._clearTimeouts()\n })\n this._update({})\n }\n\n _update(partial) {\n this._state = {\n ...this._state,\n error: this._res.error,\n loaded: this._res.loaded,\n loading: this._res.loading,\n ...partial,\n }\n this._callbacks.forEach((callback) => callback())\n }\n\n _clearTimeouts() {\n clearTimeout(this._delay)\n clearTimeout(this._timeout)\n }\n\n getCurrentValue() {\n return this._state\n }\n\n subscribe(callback) {\n this._callbacks.add(callback)\n return () => {\n this._callbacks.delete(callback)\n }\n }\n}\n\nfunction Loadable(opts) {\n return createLoadableComponent(load, opts)\n}\n\nfunction LoadableMap(opts) {\n if (typeof opts.render !== 'function') {\n throw new Error('LoadableMap requires a `render(loaded, props)` function')\n }\n\n return createLoadableComponent(loadMap, opts)\n}\n\nLoadable.Map = LoadableMap\n\nfunction flushInitializers(initializers, ids) {\n let promises = []\n\n while (initializers.length) {\n let init = initializers.pop()\n promises.push(init(ids))\n }\n\n return Promise.all(promises).then(() => {\n if (initializers.length) {\n return flushInitializers(initializers, ids)\n }\n })\n}\n\nLoadable.preloadAll = () => {\n return new Promise((resolveInitializers, reject) => {\n flushInitializers(ALL_INITIALIZERS).then(resolveInitializers, reject)\n })\n}\n\nLoadable.preloadReady = (ids = []) => {\n return new Promise((resolvePreload) => {\n const res = () => {\n initialized = true\n return resolvePreload()\n }\n // We always will resolve, errors should be handled within loading UIs.\n flushInitializers(READY_INITIALIZERS, ids).then(res, res)\n })\n}\n\nif (typeof window !== 'undefined') {\n window.__NEXT_PRELOADREADY = Loadable.preloadReady\n}\n\nexport default Loadable\n","module.exports = require('./dist/next-server/lib/dynamic')\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar ArrowRight = forwardRef(function (_ref, ref) {\n var _ref$color = _ref.color,\n color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size,\n rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: color,\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, rest), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"5\",\n y1: \"12\",\n x2: \"19\",\n y2: \"12\"\n }), /*#__PURE__*/React.createElement(\"polyline\", {\n points: \"12 5 19 12 12 19\"\n }));\n});\nArrowRight.propTypes = {\n color: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nArrowRight.displayName = 'ArrowRight';\nexport default ArrowRight;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar Gitlab = forwardRef(function (_ref, ref) {\n var _ref$color = _ref.color,\n color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size,\n rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: color,\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, rest), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M22.65 14.39L12 22.13 1.35 14.39a.84.84 0 0 1-.3-.94l1.22-3.78 2.44-7.51A.42.42 0 0 1 4.82 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.49h8.1l2.44-7.51A.42.42 0 0 1 18.6 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.51L23 13.45a.84.84 0 0 1-.35.94z\"\n }));\n});\nGitlab.propTypes = {\n color: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nGitlab.displayName = 'Gitlab';\nexport default Gitlab;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar Linkedin = forwardRef(function (_ref, ref) {\n var _ref$color = _ref.color,\n color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size,\n rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: color,\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, rest), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z\"\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: \"2\",\n y: \"9\",\n width: \"4\",\n height: \"12\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"4\",\n cy: \"4\",\n r: \"2\"\n }));\n});\nLinkedin.propTypes = {\n color: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nLinkedin.displayName = 'Linkedin';\nexport default Linkedin;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar Plus = forwardRef(function (_ref, ref) {\n var _ref$color = _ref.color,\n color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size,\n rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: color,\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, rest), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"12\",\n y1: \"5\",\n x2: \"12\",\n y2: \"19\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"5\",\n y1: \"12\",\n x2: \"19\",\n y2: \"12\"\n }));\n});\nPlus.propTypes = {\n color: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nPlus.displayName = 'Plus';\nexport default Plus;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollLink = require('../mixins/scroll-link');\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ButtonElement = function (_React$Component) {\n _inherits(ButtonElement, _React$Component);\n\n function ButtonElement() {\n _classCallCheck(this, ButtonElement);\n\n return _possibleConstructorReturn(this, (ButtonElement.__proto__ || Object.getPrototypeOf(ButtonElement)).apply(this, arguments));\n }\n\n _createClass(ButtonElement, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'input',\n this.props,\n this.props.children\n );\n }\n }]);\n\n return ButtonElement;\n}(_react2.default.Component);\n\n;\n\nexports.default = (0, _scrollLink2.default)(ButtonElement);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollElement = require('../mixins/scroll-element');\n\nvar _scrollElement2 = _interopRequireDefault(_scrollElement);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ElementWrapper = function (_React$Component) {\n _inherits(ElementWrapper, _React$Component);\n\n function ElementWrapper() {\n _classCallCheck(this, ElementWrapper);\n\n return _possibleConstructorReturn(this, (ElementWrapper.__proto__ || Object.getPrototypeOf(ElementWrapper)).apply(this, arguments));\n }\n\n _createClass(ElementWrapper, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n // Remove `parentBindings` from props\n var newProps = _extends({}, this.props);\n if (newProps.parentBindings) {\n delete newProps.parentBindings;\n }\n\n return _react2.default.createElement(\n 'div',\n _extends({}, newProps, { ref: function ref(el) {\n _this2.props.parentBindings.domNode = el;\n } }),\n this.props.children\n );\n }\n }]);\n\n return ElementWrapper;\n}(_react2.default.Component);\n\n;\n\nElementWrapper.propTypes = {\n name: _propTypes2.default.string,\n id: _propTypes2.default.string\n};\n\nexports.default = (0, _scrollElement2.default)(ElementWrapper);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollLink = require('../mixins/scroll-link');\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar LinkElement = function (_React$Component) {\n _inherits(LinkElement, _React$Component);\n\n function LinkElement() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, LinkElement);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = LinkElement.__proto__ || Object.getPrototypeOf(LinkElement)).call.apply(_ref, [this].concat(args))), _this), _this.render = function () {\n return _react2.default.createElement(\n 'a',\n _this.props,\n _this.props.children\n );\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n return LinkElement;\n}(_react2.default.Component);\n\n;\n\nexports.default = (0, _scrollLink2.default)(LinkElement);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Helpers = exports.ScrollElement = exports.ScrollLink = exports.animateScroll = exports.scrollSpy = exports.Events = exports.scroller = exports.Element = exports.Button = exports.Link = undefined;\n\nvar _Link = require('./components/Link.js');\n\nvar _Link2 = _interopRequireDefault(_Link);\n\nvar _Button = require('./components/Button.js');\n\nvar _Button2 = _interopRequireDefault(_Button);\n\nvar _Element = require('./components/Element.js');\n\nvar _Element2 = _interopRequireDefault(_Element);\n\nvar _scroller = require('./mixins/scroller.js');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _scrollEvents = require('./mixins/scroll-events.js');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nvar _scrollSpy = require('./mixins/scroll-spy.js');\n\nvar _scrollSpy2 = _interopRequireDefault(_scrollSpy);\n\nvar _animateScroll = require('./mixins/animate-scroll.js');\n\nvar _animateScroll2 = _interopRequireDefault(_animateScroll);\n\nvar _scrollLink = require('./mixins/scroll-link.js');\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nvar _scrollElement = require('./mixins/scroll-element.js');\n\nvar _scrollElement2 = _interopRequireDefault(_scrollElement);\n\nvar _Helpers = require('./mixins/Helpers.js');\n\nvar _Helpers2 = _interopRequireDefault(_Helpers);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.Link = _Link2.default;\nexports.Button = _Button2.default;\nexports.Element = _Element2.default;\nexports.scroller = _scroller2.default;\nexports.Events = _scrollEvents2.default;\nexports.scrollSpy = _scrollSpy2.default;\nexports.animateScroll = _animateScroll2.default;\nexports.ScrollLink = _scrollLink2.default;\nexports.ScrollElement = _scrollElement2.default;\nexports.Helpers = _Helpers2.default;\nexports.default = { Link: _Link2.default, Button: _Button2.default, Element: _Element2.default, scroller: _scroller2.default, Events: _scrollEvents2.default, scrollSpy: _scrollSpy2.default, animateScroll: _animateScroll2.default, ScrollLink: _scrollLink2.default, ScrollElement: _scrollElement2.default, Helpers: _Helpers2.default };","\"use strict\";\n\n/* DEPRECATED */\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar React = require('react');\nvar ReactDOM = require('react-dom');\n\nvar utils = require('./utils');\nvar scrollSpy = require('./scroll-spy');\nvar defaultScroller = require('./scroller');\nvar PropTypes = require('prop-types');\nvar scrollHash = require('./scroll-hash');\n\nvar protoTypes = {\n to: PropTypes.string.isRequired,\n containerId: PropTypes.string,\n container: PropTypes.object,\n activeClass: PropTypes.string,\n spy: PropTypes.bool,\n smooth: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n offset: PropTypes.number,\n delay: PropTypes.number,\n isDynamic: PropTypes.bool,\n onClick: PropTypes.func,\n duration: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),\n absolute: PropTypes.bool,\n onSetActive: PropTypes.func,\n onSetInactive: PropTypes.func,\n ignoreCancelEvents: PropTypes.bool,\n hashSpy: PropTypes.bool,\n spyThrottle: PropTypes.number\n};\n\nvar Helpers = {\n Scroll: function Scroll(Component, customScroller) {\n\n console.warn(\"Helpers.Scroll is deprecated since v1.7.0\");\n\n var scroller = customScroller || defaultScroller;\n\n var Scroll = function (_React$Component) {\n _inherits(Scroll, _React$Component);\n\n function Scroll(props) {\n _classCallCheck(this, Scroll);\n\n var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.state = {\n active: false\n };\n return _this;\n }\n\n _createClass(Scroll, [{\n key: 'getScrollSpyContainer',\n value: function getScrollSpyContainer() {\n var containerId = this.props.containerId;\n var container = this.props.container;\n\n if (containerId) {\n return document.getElementById(containerId);\n }\n\n if (container && container.nodeType) {\n return container;\n }\n\n return document;\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.spy || this.props.hashSpy) {\n var scrollSpyContainer = this.getScrollSpyContainer();\n\n if (!scrollSpy.isMounted(scrollSpyContainer)) {\n scrollSpy.mount(scrollSpyContainer, this.props.spyThrottle);\n }\n\n if (this.props.hashSpy) {\n if (!scrollHash.isMounted()) {\n scrollHash.mount(scroller);\n }\n scrollHash.mapContainer(this.props.to, scrollSpyContainer);\n }\n\n if (this.props.spy) {\n scrollSpy.addStateHandler(this.stateHandler);\n }\n\n scrollSpy.addSpyHandler(this.spyHandler, scrollSpyContainer);\n\n this.setState({\n container: scrollSpyContainer\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n scrollSpy.unmount(this.stateHandler, this.spyHandler);\n }\n }, {\n key: 'render',\n value: function render() {\n var className = \"\";\n\n if (this.state && this.state.active) {\n className = ((this.props.className || \"\") + \" \" + (this.props.activeClass || \"active\")).trim();\n } else {\n className = this.props.className;\n }\n\n var props = _extends({}, this.props);\n\n for (var prop in protoTypes) {\n if (props.hasOwnProperty(prop)) {\n delete props[prop];\n }\n }\n\n props.className = className;\n props.onClick = this.handleClick;\n\n return React.createElement(Component, props);\n }\n }]);\n\n return Scroll;\n }(React.Component);\n\n var _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.scrollTo = function (to, props) {\n scroller.scrollTo(to, _extends({}, _this2.state, props));\n };\n\n this.handleClick = function (event) {\n\n /*\r\n * give the posibility to override onClick\r\n */\n\n if (_this2.props.onClick) {\n _this2.props.onClick(event);\n }\n\n /*\r\n * dont bubble the navigation\r\n */\n\n if (event.stopPropagation) event.stopPropagation();\n if (event.preventDefault) event.preventDefault();\n\n /*\r\n * do the magic!\r\n */\n _this2.scrollTo(_this2.props.to, _this2.props);\n };\n\n this.stateHandler = function () {\n if (scroller.getActiveLink() !== _this2.props.to) {\n if (_this2.state !== null && _this2.state.active && _this2.props.onSetInactive) {\n _this2.props.onSetInactive();\n }\n _this2.setState({ active: false });\n }\n };\n\n this.spyHandler = function (y) {\n\n var scrollSpyContainer = _this2.getScrollSpyContainer();\n\n if (scrollHash.isMounted() && !scrollHash.isInitialized()) {\n return;\n }\n\n var to = _this2.props.to;\n var element = null;\n var elemTopBound = 0;\n var elemBottomBound = 0;\n var containerTop = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var containerCords = scrollSpyContainer.getBoundingClientRect();\n containerTop = containerCords.top;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var cords = element.getBoundingClientRect();\n elemTopBound = cords.top - containerTop + y;\n elemBottomBound = elemTopBound + cords.height;\n }\n\n var offsetY = y - _this2.props.offset;\n var isInside = offsetY >= Math.floor(elemTopBound) && offsetY < Math.floor(elemBottomBound);\n var isOutside = offsetY < Math.floor(elemTopBound) || offsetY >= Math.floor(elemBottomBound);\n var activeLink = scroller.getActiveLink();\n\n if (isOutside) {\n if (to === activeLink) {\n scroller.setActiveLink(void 0);\n }\n\n if (_this2.props.hashSpy && scrollHash.getHash() === to) {\n scrollHash.changeHash();\n }\n\n if (_this2.props.spy && _this2.state.active) {\n _this2.setState({ active: false });\n _this2.props.onSetInactive && _this2.props.onSetInactive();\n }\n\n return scrollSpy.updateStates();\n }\n\n if (isInside && activeLink !== to) {\n scroller.setActiveLink(to);\n\n _this2.props.hashSpy && scrollHash.changeHash(to);\n\n if (_this2.props.spy) {\n _this2.setState({ active: true });\n _this2.props.onSetActive && _this2.props.onSetActive(to);\n }\n return scrollSpy.updateStates();\n }\n };\n };\n\n ;\n\n Scroll.propTypes = protoTypes;\n\n Scroll.defaultProps = { offset: 0 };\n\n return Scroll;\n },\n Element: function Element(Component) {\n\n console.warn(\"Helpers.Element is deprecated since v1.7.0\");\n\n var Element = function (_React$Component2) {\n _inherits(Element, _React$Component2);\n\n function Element(props) {\n _classCallCheck(this, Element);\n\n var _this3 = _possibleConstructorReturn(this, (Element.__proto__ || Object.getPrototypeOf(Element)).call(this, props));\n\n _this3.childBindings = {\n domNode: null\n };\n return _this3;\n }\n\n _createClass(Element, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (typeof window === 'undefined') {\n return false;\n }\n this.registerElems(this.props.name);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n this.registerElems(this.props.name);\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (typeof window === 'undefined') {\n return false;\n }\n defaultScroller.unregister(this.props.name);\n }\n }, {\n key: 'registerElems',\n value: function registerElems(name) {\n defaultScroller.register(name, this.childBindings.domNode);\n }\n }, {\n key: 'render',\n value: function render() {\n return React.createElement(Component, _extends({}, this.props, { parentBindings: this.childBindings }));\n }\n }]);\n\n return Element;\n }(React.Component);\n\n ;\n\n Element.propTypes = {\n name: PropTypes.string,\n id: PropTypes.string\n };\n\n return Element;\n }\n};\n\nmodule.exports = Helpers;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _smooth = require('./smooth');\n\nvar _smooth2 = _interopRequireDefault(_smooth);\n\nvar _cancelEvents = require('./cancel-events');\n\nvar _cancelEvents2 = _interopRequireDefault(_cancelEvents);\n\nvar _scrollEvents = require('./scroll-events');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\r\n * Gets the easing type from the smooth prop within options.\r\n */\nvar getAnimationType = function getAnimationType(options) {\n return _smooth2.default[options.smooth] || _smooth2.default.defaultEasing;\n};\n/*\r\n * Function helper\r\n */\nvar functionWrapper = function functionWrapper(value) {\n return typeof value === 'function' ? value : function () {\n return value;\n };\n};\n/*\r\n * Wraps window properties to allow server side rendering\r\n */\nvar currentWindowProperties = function currentWindowProperties() {\n if (typeof window !== 'undefined') {\n return window.requestAnimationFrame || window.webkitRequestAnimationFrame;\n }\n};\n\n/*\r\n * Helper function to never extend 60fps on the webpage.\r\n */\nvar requestAnimationFrameHelper = function () {\n return currentWindowProperties() || function (callback, element, delay) {\n window.setTimeout(callback, delay || 1000 / 60, new Date().getTime());\n };\n}();\n\nvar makeData = function makeData() {\n return {\n currentPosition: 0,\n startPosition: 0,\n targetPosition: 0,\n progress: 0,\n duration: 0,\n cancel: false,\n\n target: null,\n containerElement: null,\n to: null,\n start: null,\n delta: null,\n percent: null,\n delayTimeout: null\n };\n};\n\nvar currentPositionX = function currentPositionX(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollLeft;\n } else {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft;\n }\n};\n\nvar currentPositionY = function currentPositionY(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollTop;\n } else {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;\n }\n};\n\nvar scrollContainerWidth = function scrollContainerWidth(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollWidth - containerElement.offsetWidth;\n } else {\n var body = document.body;\n var html = document.documentElement;\n\n return Math.max(body.scrollWidth, body.offsetWidth, html.clientWidth, html.scrollWidth, html.offsetWidth);\n }\n};\n\nvar scrollContainerHeight = function scrollContainerHeight(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollHeight - containerElement.offsetHeight;\n } else {\n var body = document.body;\n var html = document.documentElement;\n\n return Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);\n }\n};\n\nvar animateScroll = function animateScroll(easing, options, timestamp) {\n var data = options.data;\n\n // Cancel on specific events\n if (!options.ignoreCancelEvents && data.cancel) {\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](data.to, data.target, data.currentPositionY);\n }\n return;\n };\n\n data.delta = Math.round(data.targetPosition - data.startPosition);\n\n if (data.start === null) {\n data.start = timestamp;\n }\n\n data.progress = timestamp - data.start;\n\n data.percent = data.progress >= data.duration ? 1 : easing(data.progress / data.duration);\n\n data.currentPosition = data.startPosition + Math.ceil(data.delta * data.percent);\n\n if (data.containerElement && data.containerElement !== document && data.containerElement !== document.body) {\n if (options.horizontal) {\n data.containerElement.scrollLeft = data.currentPosition;\n } else {\n data.containerElement.scrollTop = data.currentPosition;\n }\n } else {\n if (options.horizontal) {\n window.scrollTo(data.currentPosition, 0);\n } else {\n window.scrollTo(0, data.currentPosition);\n }\n }\n\n if (data.percent < 1) {\n var easedAnimate = animateScroll.bind(null, easing, options);\n requestAnimationFrameHelper.call(window, easedAnimate);\n return;\n }\n\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](data.to, data.target, data.currentPosition);\n }\n};\n\nvar setContainer = function setContainer(options) {\n options.data.containerElement = !options ? null : options.containerId ? document.getElementById(options.containerId) : options.container && options.container.nodeType ? options.container : document;\n};\n\nvar animateTopScroll = function animateTopScroll(scrollOffset, options, to, target) {\n options.data = options.data || makeData();\n\n window.clearTimeout(options.data.delayTimeout);\n\n _cancelEvents2.default.subscribe(function () {\n options.data.cancel = true;\n });\n\n setContainer(options);\n\n options.data.start = null;\n options.data.cancel = false;\n options.data.startPosition = options.horizontal ? currentPositionX(options) : currentPositionY(options);\n options.data.targetPosition = options.absolute ? scrollOffset : scrollOffset + options.data.startPosition;\n\n if (options.data.startPosition === options.data.targetPosition) {\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](options.data.to, options.data.target, options.data.currentPosition);\n }\n return;\n }\n\n options.data.delta = Math.round(options.data.targetPosition - options.data.startPosition);\n\n options.data.duration = functionWrapper(options.duration)(options.data.delta);\n options.data.duration = isNaN(parseFloat(options.data.duration)) ? 1000 : parseFloat(options.data.duration);\n options.data.to = to;\n options.data.target = target;\n\n var easing = getAnimationType(options);\n var easedAnimate = animateScroll.bind(null, easing, options);\n\n if (options && options.delay > 0) {\n options.data.delayTimeout = window.setTimeout(function () {\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](options.data.to, options.data.target);\n }\n requestAnimationFrameHelper.call(window, easedAnimate);\n }, options.delay);\n return;\n }\n\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](options.data.to, options.data.target);\n }\n requestAnimationFrameHelper.call(window, easedAnimate);\n};\n\nvar proceedOptions = function proceedOptions(options) {\n options = _extends({}, options);\n options.data = options.data || makeData();\n options.absolute = true;\n return options;\n};\n\nvar scrollToTop = function scrollToTop(options) {\n animateTopScroll(0, proceedOptions(options));\n};\n\nvar scrollTo = function scrollTo(toPosition, options) {\n animateTopScroll(toPosition, proceedOptions(options));\n};\n\nvar scrollToBottom = function scrollToBottom(options) {\n options = proceedOptions(options);\n setContainer(options);\n animateTopScroll(options.horizontal ? scrollContainerWidth(options) : scrollContainerHeight(options), options);\n};\n\nvar scrollMore = function scrollMore(toPosition, options) {\n options = proceedOptions(options);\n setContainer(options);\n var currentPosition = options.horizontal ? currentPositionX(options) : currentPositionY(options);\n animateTopScroll(toPosition + currentPosition, options);\n};\n\nexports.default = {\n animateTopScroll: animateTopScroll,\n getAnimationType: getAnimationType,\n scrollToTop: scrollToTop,\n scrollToBottom: scrollToBottom,\n scrollTo: scrollTo,\n scrollMore: scrollMore\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nvar events = ['mousedown', 'mousewheel', 'touchmove', 'keydown'];\n\nexports.default = {\n subscribe: function subscribe(cancelEvent) {\n return typeof document !== 'undefined' && events.forEach(function (event) {\n return (0, _passiveEventListeners.addPassiveEventListener)(document, event, cancelEvent);\n });\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/*\r\n * Tell the browser that the event listener won't prevent a scroll.\r\n * Allowing the browser to continue scrolling without having to\r\n * to wait for the listener to return.\r\n */\nvar addPassiveEventListener = exports.addPassiveEventListener = function addPassiveEventListener(target, eventName, listener) {\n var supportsPassiveOption = function () {\n var supportsPassiveOption = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassiveOption = true;\n }\n });\n window.addEventListener('test', null, opts);\n } catch (e) {}\n return supportsPassiveOption;\n }();\n target.addEventListener(eventName, listener, supportsPassiveOption ? { passive: true } : false);\n};\n\nvar removePassiveEventListener = exports.removePassiveEventListener = function removePassiveEventListener(target, eventName, listener) {\n target.removeEventListener(eventName, listener);\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _scroller = require('./scroller');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nexports.default = function (Component) {\n var Element = function (_React$Component) {\n _inherits(Element, _React$Component);\n\n function Element(props) {\n _classCallCheck(this, Element);\n\n var _this = _possibleConstructorReturn(this, (Element.__proto__ || Object.getPrototypeOf(Element)).call(this, props));\n\n _this.childBindings = {\n domNode: null\n };\n return _this;\n }\n\n _createClass(Element, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (typeof window === 'undefined') {\n return false;\n }\n this.registerElems(this.props.name);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n this.registerElems(this.props.name);\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (typeof window === 'undefined') {\n return false;\n }\n _scroller2.default.unregister(this.props.name);\n }\n }, {\n key: 'registerElems',\n value: function registerElems(name) {\n _scroller2.default.register(name, this.childBindings.domNode);\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(Component, _extends({}, this.props, { parentBindings: this.childBindings }));\n }\n }]);\n\n return Element;\n }(_react2.default.Component);\n\n ;\n\n Element.propTypes = {\n name: _propTypes2.default.string,\n id: _propTypes2.default.string\n };\n\n return Element;\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar Events = {\n\tregistered: {},\n\tscrollEvent: {\n\t\tregister: function register(evtName, callback) {\n\t\t\tEvents.registered[evtName] = callback;\n\t\t},\n\t\tremove: function remove(evtName) {\n\t\t\tEvents.registered[evtName] = null;\n\t\t}\n\t}\n};\n\nexports.default = Events;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar scrollHash = {\n mountFlag: false,\n initialized: false,\n scroller: null,\n containers: {},\n\n mount: function mount(scroller) {\n this.scroller = scroller;\n\n this.handleHashChange = this.handleHashChange.bind(this);\n window.addEventListener('hashchange', this.handleHashChange);\n\n this.initStateFromHash();\n this.mountFlag = true;\n },\n mapContainer: function mapContainer(to, container) {\n this.containers[to] = container;\n },\n isMounted: function isMounted() {\n return this.mountFlag;\n },\n isInitialized: function isInitialized() {\n return this.initialized;\n },\n initStateFromHash: function initStateFromHash() {\n var _this = this;\n\n var hash = this.getHash();\n if (hash) {\n window.setTimeout(function () {\n _this.scrollTo(hash, true);\n _this.initialized = true;\n }, 10);\n } else {\n this.initialized = true;\n }\n },\n scrollTo: function scrollTo(to, isInit) {\n var scroller = this.scroller;\n var element = scroller.get(to);\n if (element && (isInit || to !== scroller.getActiveLink())) {\n var container = this.containers[to] || document;\n scroller.scrollTo(to, { container: container });\n }\n },\n getHash: function getHash() {\n return _utils2.default.getHash();\n },\n changeHash: function changeHash(to, saveHashHistory) {\n if (this.isInitialized() && _utils2.default.getHash() !== to) {\n _utils2.default.updateHash(to, saveHashHistory);\n }\n },\n handleHashChange: function handleHashChange() {\n this.scrollTo(this.getHash());\n },\n unmount: function unmount() {\n this.scroller = null;\n this.containers = null;\n window.removeEventListener('hashchange', this.handleHashChange);\n }\n};\n\nexports.default = scrollHash;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollSpy = require('./scroll-spy');\n\nvar _scrollSpy2 = _interopRequireDefault(_scrollSpy);\n\nvar _scroller = require('./scroller');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _scrollHash = require('./scroll-hash');\n\nvar _scrollHash2 = _interopRequireDefault(_scrollHash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar protoTypes = {\n to: _propTypes2.default.string.isRequired,\n containerId: _propTypes2.default.string,\n container: _propTypes2.default.object,\n activeClass: _propTypes2.default.string,\n spy: _propTypes2.default.bool,\n horizontal: _propTypes2.default.bool,\n smooth: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),\n offset: _propTypes2.default.number,\n delay: _propTypes2.default.number,\n isDynamic: _propTypes2.default.bool,\n onClick: _propTypes2.default.func,\n duration: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n absolute: _propTypes2.default.bool,\n onSetActive: _propTypes2.default.func,\n onSetInactive: _propTypes2.default.func,\n ignoreCancelEvents: _propTypes2.default.bool,\n hashSpy: _propTypes2.default.bool,\n saveHashHistory: _propTypes2.default.bool,\n spyThrottle: _propTypes2.default.number\n};\n\nexports.default = function (Component, customScroller) {\n\n var scroller = customScroller || _scroller2.default;\n\n var Link = function (_React$PureComponent) {\n _inherits(Link, _React$PureComponent);\n\n function Link(props) {\n _classCallCheck(this, Link);\n\n var _this = _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.state = {\n active: false\n };\n return _this;\n }\n\n _createClass(Link, [{\n key: 'getScrollSpyContainer',\n value: function getScrollSpyContainer() {\n var containerId = this.props.containerId;\n var container = this.props.container;\n\n if (containerId && !container) {\n return document.getElementById(containerId);\n }\n\n if (container && container.nodeType) {\n return container;\n }\n\n return document;\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.spy || this.props.hashSpy) {\n var scrollSpyContainer = this.getScrollSpyContainer();\n\n if (!_scrollSpy2.default.isMounted(scrollSpyContainer)) {\n _scrollSpy2.default.mount(scrollSpyContainer, this.props.spyThrottle);\n }\n\n if (this.props.hashSpy) {\n if (!_scrollHash2.default.isMounted()) {\n _scrollHash2.default.mount(scroller);\n }\n _scrollHash2.default.mapContainer(this.props.to, scrollSpyContainer);\n }\n\n _scrollSpy2.default.addSpyHandler(this.spyHandler, scrollSpyContainer);\n\n this.setState({\n container: scrollSpyContainer\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n _scrollSpy2.default.unmount(this.stateHandler, this.spyHandler);\n }\n }, {\n key: 'render',\n value: function render() {\n var className = \"\";\n\n if (this.state && this.state.active) {\n className = ((this.props.className || \"\") + \" \" + (this.props.activeClass || \"active\")).trim();\n } else {\n className = this.props.className;\n }\n\n var props = _extends({}, this.props);\n\n for (var prop in protoTypes) {\n if (props.hasOwnProperty(prop)) {\n delete props[prop];\n }\n }\n\n props.className = className;\n props.onClick = this.handleClick;\n\n return _react2.default.createElement(Component, props);\n }\n }]);\n\n return Link;\n }(_react2.default.PureComponent);\n\n var _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.scrollTo = function (to, props) {\n scroller.scrollTo(to, _extends({}, _this2.state, props));\n };\n\n this.handleClick = function (event) {\n\n /*\r\n * give the posibility to override onClick\r\n */\n\n if (_this2.props.onClick) {\n _this2.props.onClick(event);\n }\n\n /*\r\n * dont bubble the navigation\r\n */\n\n if (event.stopPropagation) event.stopPropagation();\n if (event.preventDefault) event.preventDefault();\n\n /*\r\n * do the magic!\r\n */\n _this2.scrollTo(_this2.props.to, _this2.props);\n };\n\n this.spyHandler = function (x, y) {\n var scrollSpyContainer = _this2.getScrollSpyContainer();\n\n if (_scrollHash2.default.isMounted() && !_scrollHash2.default.isInitialized()) {\n return;\n }\n\n var horizontal = _this2.props.horizontal;\n\n var to = _this2.props.to;\n var element = null;\n var isInside = void 0;\n var isOutside = void 0;\n\n if (horizontal) {\n var elemLeftBound = 0;\n var elemRightBound = 0;\n var containerLeft = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var containerCords = scrollSpyContainer.getBoundingClientRect();\n containerLeft = containerCords.left;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var cords = element.getBoundingClientRect();\n elemLeftBound = cords.left - containerLeft + x;\n elemRightBound = elemLeftBound + cords.width;\n }\n\n var offsetX = x - _this2.props.offset;\n isInside = offsetX >= Math.floor(elemLeftBound) && offsetX < Math.floor(elemRightBound);\n isOutside = offsetX < Math.floor(elemLeftBound) || offsetX >= Math.floor(elemRightBound);\n } else {\n var elemTopBound = 0;\n var elemBottomBound = 0;\n var containerTop = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var _containerCords = scrollSpyContainer.getBoundingClientRect();\n containerTop = _containerCords.top;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var _cords = element.getBoundingClientRect();\n elemTopBound = _cords.top - containerTop + y;\n elemBottomBound = elemTopBound + _cords.height;\n }\n\n var offsetY = y - _this2.props.offset;\n isInside = offsetY >= Math.floor(elemTopBound) && offsetY < Math.floor(elemBottomBound);\n isOutside = offsetY < Math.floor(elemTopBound) || offsetY >= Math.floor(elemBottomBound);\n }\n\n var activeLink = scroller.getActiveLink();\n\n if (isOutside) {\n if (to === activeLink) {\n scroller.setActiveLink(void 0);\n }\n\n if (_this2.props.hashSpy && _scrollHash2.default.getHash() === to) {\n var _props$saveHashHistor = _this2.props.saveHashHistory,\n saveHashHistory = _props$saveHashHistor === undefined ? false : _props$saveHashHistor;\n\n _scrollHash2.default.changeHash(\"\", saveHashHistory);\n }\n\n if (_this2.props.spy && _this2.state.active) {\n _this2.setState({ active: false });\n _this2.props.onSetInactive && _this2.props.onSetInactive(to, element);\n }\n }\n\n if (isInside && (activeLink !== to || _this2.state.active === false)) {\n scroller.setActiveLink(to);\n\n var _props$saveHashHistor2 = _this2.props.saveHashHistory,\n _saveHashHistory = _props$saveHashHistor2 === undefined ? false : _props$saveHashHistor2;\n\n _this2.props.hashSpy && _scrollHash2.default.changeHash(to, _saveHashHistory);\n\n if (_this2.props.spy) {\n _this2.setState({ active: true });\n _this2.props.onSetActive && _this2.props.onSetActive(to, element);\n }\n }\n };\n };\n\n ;\n\n Link.propTypes = protoTypes;\n\n Link.defaultProps = { offset: 0 };\n\n return Link;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _lodash = require('lodash.throttle');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// The eventHandler will execute at a rate of 15fps by default\nvar eventThrottler = function eventThrottler(eventHandler) {\n var throttleAmount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 66;\n return (0, _lodash2.default)(eventHandler, throttleAmount);\n};\n\nvar scrollSpy = {\n\n spyCallbacks: [],\n spySetState: [],\n scrollSpyContainers: [],\n\n mount: function mount(scrollSpyContainer, throttle) {\n if (scrollSpyContainer) {\n var eventHandler = eventThrottler(function (event) {\n scrollSpy.scrollHandler(scrollSpyContainer);\n }, throttle);\n scrollSpy.scrollSpyContainers.push(scrollSpyContainer);\n (0, _passiveEventListeners.addPassiveEventListener)(scrollSpyContainer, 'scroll', eventHandler);\n }\n },\n isMounted: function isMounted(scrollSpyContainer) {\n return scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer) !== -1;\n },\n currentPositionX: function currentPositionX(scrollSpyContainer) {\n if (scrollSpyContainer === document) {\n var supportPageOffset = window.pageYOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft;\n } else {\n return scrollSpyContainer.scrollLeft;\n }\n },\n currentPositionY: function currentPositionY(scrollSpyContainer) {\n if (scrollSpyContainer === document) {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;\n } else {\n return scrollSpyContainer.scrollTop;\n }\n },\n scrollHandler: function scrollHandler(scrollSpyContainer) {\n var callbacks = scrollSpy.scrollSpyContainers[scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer)].spyCallbacks || [];\n callbacks.forEach(function (c) {\n return c(scrollSpy.currentPositionX(scrollSpyContainer), scrollSpy.currentPositionY(scrollSpyContainer));\n });\n },\n addStateHandler: function addStateHandler(handler) {\n scrollSpy.spySetState.push(handler);\n },\n addSpyHandler: function addSpyHandler(handler, scrollSpyContainer) {\n var container = scrollSpy.scrollSpyContainers[scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer)];\n\n if (!container.spyCallbacks) {\n container.spyCallbacks = [];\n }\n\n container.spyCallbacks.push(handler);\n\n handler(scrollSpy.currentPositionX(scrollSpyContainer), scrollSpy.currentPositionY(scrollSpyContainer));\n },\n updateStates: function updateStates() {\n scrollSpy.spySetState.forEach(function (s) {\n return s();\n });\n },\n unmount: function unmount(stateHandler, spyHandler) {\n scrollSpy.scrollSpyContainers.forEach(function (c) {\n return c.spyCallbacks && c.spyCallbacks.length && c.spyCallbacks.splice(c.spyCallbacks.indexOf(spyHandler), 1);\n });\n\n if (scrollSpy.spySetState && scrollSpy.spySetState.length) {\n scrollSpy.spySetState.splice(scrollSpy.spySetState.indexOf(stateHandler), 1);\n }\n\n document.removeEventListener('scroll', scrollSpy.scrollHandler);\n },\n\n\n update: function update() {\n return scrollSpy.scrollSpyContainers.forEach(function (c) {\n return scrollSpy.scrollHandler(c);\n });\n }\n};\n\nexports.default = scrollSpy;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _animateScroll = require('./animate-scroll');\n\nvar _animateScroll2 = _interopRequireDefault(_animateScroll);\n\nvar _scrollEvents = require('./scroll-events');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar __mapped = {};\nvar __activeLink = void 0;\n\nexports.default = {\n\n unmount: function unmount() {\n __mapped = {};\n },\n\n register: function register(name, element) {\n __mapped[name] = element;\n },\n\n unregister: function unregister(name) {\n delete __mapped[name];\n },\n\n get: function get(name) {\n return __mapped[name] || document.getElementById(name) || document.getElementsByName(name)[0] || document.getElementsByClassName(name)[0];\n },\n\n setActiveLink: function setActiveLink(link) {\n return __activeLink = link;\n },\n\n getActiveLink: function getActiveLink() {\n return __activeLink;\n },\n\n scrollTo: function scrollTo(to, props) {\n\n var target = this.get(to);\n\n if (!target) {\n console.warn(\"target Element not found\");\n return;\n }\n\n props = _extends({}, props, { absolute: false });\n\n var containerId = props.containerId;\n var container = props.container;\n\n var containerElement = void 0;\n if (containerId) {\n containerElement = document.getElementById(containerId);\n } else if (container && container.nodeType) {\n containerElement = container;\n } else {\n containerElement = document;\n }\n\n props.absolute = true;\n\n var horizontal = props.horizontal;\n var scrollOffset = _utils2.default.scrollOffset(containerElement, target, horizontal) + (props.offset || 0);\n\n /*\r\n * if animate is not provided just scroll into the view\r\n */\n if (!props.smooth) {\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](to, target);\n }\n\n if (containerElement === document) {\n if (props.horizontal) {\n window.scrollTo(scrollOffset, 0);\n } else {\n window.scrollTo(0, scrollOffset);\n }\n } else {\n containerElement.scrollTop = scrollOffset;\n }\n\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](to, target);\n }\n\n return;\n }\n\n /*\r\n * Animate scrolling\r\n */\n\n _animateScroll2.default.animateTopScroll(scrollOffset, props, to, target);\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n /*\r\n * https://github.com/oblador/angular-scroll (duScrollDefaultEasing)\r\n */\n defaultEasing: function defaultEasing(x) {\n if (x < 0.5) {\n return Math.pow(x * 2, 2) / 2;\n }\n return 1 - Math.pow((1 - x) * 2, 2) / 2;\n },\n /*\r\n * https://gist.github.com/gre/1650294\r\n */\n // no easing, no acceleration\n linear: function linear(x) {\n return x;\n },\n // accelerating from zero velocity\n easeInQuad: function easeInQuad(x) {\n return x * x;\n },\n // decelerating to zero velocity\n easeOutQuad: function easeOutQuad(x) {\n return x * (2 - x);\n },\n // acceleration until halfway, then deceleration\n easeInOutQuad: function easeInOutQuad(x) {\n return x < .5 ? 2 * x * x : -1 + (4 - 2 * x) * x;\n },\n // accelerating from zero velocity \n easeInCubic: function easeInCubic(x) {\n return x * x * x;\n },\n // decelerating to zero velocity π\n easeOutCubic: function easeOutCubic(x) {\n return --x * x * x + 1;\n },\n // acceleration until halfway, then deceleration \n easeInOutCubic: function easeInOutCubic(x) {\n return x < .5 ? 4 * x * x * x : (x - 1) * (2 * x - 2) * (2 * x - 2) + 1;\n },\n // accelerating from zero velocity \n easeInQuart: function easeInQuart(x) {\n return x * x * x * x;\n },\n // decelerating to zero velocity \n easeOutQuart: function easeOutQuart(x) {\n return 1 - --x * x * x * x;\n },\n // acceleration until halfway, then deceleration\n easeInOutQuart: function easeInOutQuart(x) {\n return x < .5 ? 8 * x * x * x * x : 1 - 8 * --x * x * x * x;\n },\n // accelerating from zero velocity\n easeInQuint: function easeInQuint(x) {\n return x * x * x * x * x;\n },\n // decelerating to zero velocity\n easeOutQuint: function easeOutQuint(x) {\n return 1 + --x * x * x * x * x;\n },\n // acceleration until halfway, then deceleration \n easeInOutQuint: function easeInOutQuint(x) {\n return x < .5 ? 16 * x * x * x * x * x : 1 + 16 * --x * x * x * x * x;\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar updateHash = function updateHash(hash, historyUpdate) {\n var hashVal = hash.indexOf(\"#\") === 0 ? hash.substring(1) : hash;\n var hashToUpdate = hashVal ? \"#\" + hashVal : \"\";\n var curLoc = window && window.location;\n var urlToPush = hashToUpdate ? curLoc.pathname + curLoc.search + hashToUpdate : curLoc.pathname + curLoc.search;\n historyUpdate ? history.pushState(null, \"\", urlToPush) : history.replaceState(null, \"\", urlToPush);\n};\n\nvar getHash = function getHash() {\n return window.location.hash.replace(/^#/, \"\");\n};\n\nvar filterElementInContainer = function filterElementInContainer(container) {\n return function (element) {\n return container.contains ? container != element && container.contains(element) : !!(container.compareDocumentPosition(element) & 16);\n };\n};\n\nvar isPositioned = function isPositioned(element) {\n return getComputedStyle(element).position !== \"static\";\n};\n\nvar getElementOffsetInfoUntil = function getElementOffsetInfoUntil(element, predicate) {\n var offsetTop = element.offsetTop;\n var currentOffsetParent = element.offsetParent;\n\n while (currentOffsetParent && !predicate(currentOffsetParent)) {\n offsetTop += currentOffsetParent.offsetTop;\n currentOffsetParent = currentOffsetParent.offsetParent;\n }\n\n return { offsetTop: offsetTop, offsetParent: currentOffsetParent };\n};\n\nvar scrollOffset = function scrollOffset(c, t, horizontal) {\n if (horizontal) {\n return c === document ? t.getBoundingClientRect().left + (window.scrollX || window.pageXOffset) : getComputedStyle(c).position !== \"static\" ? t.offsetLeft : t.offsetLeft - c.offsetLeft;\n } else {\n if (c === document) {\n return t.getBoundingClientRect().top + (window.scrollY || window.pageYOffset);\n }\n\n // The offsetParent of an element, according to MDN, is its nearest positioned\n // (an element whose position is anything other than static) ancestor. The offsetTop\n // of an element is taken with respect to its offsetParent which may not neccessarily\n // be its parentElement except the parent itself is positioned.\n\n // So if containerElement is positioned, then it must be an offsetParent somewhere\n // If it happens that targetElement is a descendant of the containerElement, and there\n // is not intermediate positioned element between the two of them, i.e.\n // targetElement\"s offsetParent is the same as the containerElement, then the\n // distance between the two will be the offsetTop of the targetElement.\n // If, on the other hand, there are intermediate positioned elements between the\n // two entities, the distance between the targetElement and the containerElement\n // will be the accumulation of the offsetTop of the element and that of its\n // subsequent offsetParent until the containerElement is reached, since it\n // will also be an offsetParent at some point due to the fact that it is positioned.\n\n // If the containerElement is not positioned, then it can\"t be an offsetParent,\n // which means that the offsetTop of the targetElement would not be with respect to it.\n // However, if the two of them happen to have the same offsetParent, then\n // the distance between them will be the difference between their offsetTop\n // since they are both taken with respect to the same entity.\n // The last resort would be to accumulate their offsetTop until a common\n // offsetParent is reached (usually the document) and taking the difference\n // between the accumulated offsetTops\n\n if (isPositioned(c)) {\n if (t.offsetParent !== c) {\n var isContainerElementOrDocument = function isContainerElementOrDocument(e) {\n return e === c || e === document;\n };\n\n var _getElementOffsetInfo = getElementOffsetInfoUntil(t, isContainerElementOrDocument),\n offsetTop = _getElementOffsetInfo.offsetTop,\n offsetParent = _getElementOffsetInfo.offsetParent;\n\n if (offsetParent !== c) {\n throw new Error(\"Seems containerElement is not an ancestor of the Element\");\n }\n\n return offsetTop;\n }\n\n return t.offsetTop;\n }\n\n if (t.offsetParent === c.offsetParent) {\n return t.offsetTop - c.offsetTop;\n }\n\n var isDocument = function isDocument(e) {\n return e === document;\n };\n return getElementOffsetInfoUntil(t, isDocument).offsetTop - getElementOffsetInfoUntil(c, isDocument).offsetTop;\n }\n};\n\nexports.default = {\n updateHash: updateHash,\n getHash: getHash,\n filterElementInContainer: filterElementInContainer,\n scrollOffset: scrollOffset\n};"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://_N_E/./node_modules/lodash.throttle/index.js","webpack://_N_E/../next-server/lib/dynamic.tsx","webpack://_N_E/../next-server/lib/loadable-context.ts","webpack://_N_E/../next-server/lib/loadable.js","webpack://_N_E/./node_modules/next/dynamic.js","webpack://_N_E/./node_modules/react-feather/dist/icons/arrow-right.js","webpack://_N_E/./node_modules/react-feather/dist/icons/gitlab.js","webpack://_N_E/./node_modules/react-feather/dist/icons/linkedin.js","webpack://_N_E/./node_modules/react-feather/dist/icons/plus.js","webpack://_N_E/./node_modules/react-scroll/modules/components/Button.js","webpack://_N_E/./node_modules/react-scroll/modules/components/Element.js","webpack://_N_E/./node_modules/react-scroll/modules/components/Link.js","webpack://_N_E/./node_modules/react-scroll/modules/index.js","webpack://_N_E/./node_modules/react-scroll/modules/mixins/Helpers.js","webpack://_N_E/./node_modules/react-scroll/modules/mixins/animate-scroll.js","webpack://_N_E/./node_modules/react-scroll/modules/mixins/cancel-events.js","webpack://_N_E/./node_modules/react-scroll/modules/mixins/passive-event-listeners.js","webpack://_N_E/./node_modules/react-scroll/modules/mixins/scroll-element.js","webpack://_N_E/./node_modules/react-scroll/modules/mixins/scroll-events.js","webpack://_N_E/./node_modules/react-scroll/modules/mixins/scroll-hash.js","webpack://_N_E/./node_modules/react-scroll/modules/mixins/scroll-link.js","webpack://_N_E/./node_modules/react-scroll/modules/mixins/scroll-spy.js","webpack://_N_E/./node_modules/react-scroll/modules/mixins/scroller.js","webpack://_N_E/./node_modules/react-scroll/modules/mixins/smooth.js","webpack://_N_E/./node_modules/react-scroll/modules/mixins/utils.js"],"names":["FUNC_ERROR_TEXT","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","g","Object","freeSelf","self","root","Function","objectToString","prototype","toString","nativeMax","Math","max","nativeMin","min","now","Date","debounce","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","undefined","apply","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","remainingWait","debounced","isInvoking","arguments","this","toNumber","isObject","cancel","clearTimeout","flush","value","type","isObjectLike","call","isSymbol","other","valueOf","replace","isBinary","test","slice","module","exports","loadableFn","Loadable","loadableOptions","loading","dynamicOptions","loadModules","modules","key","mod","noSSR","LoadableInitializer","LoadableContext","React","ALL_INITIALIZERS","READY_INITIALIZERS","initialized","load","loader","promise","state","loaded","error","err","loadMap","obj","promises","res","Promise","render","props","resolve","createLoadableComponent","loadFn","opts","delay","timeout","webpack","subscription","sub","LoadableSubscription","getCurrentValue","subscribe","retry","moduleIds","ids","init","LoadableComponent","ref","context","useSubscription","Array","moduleName","isLoading","pastDelay","timedOut","constructor","_res","_loadFn","_opts","_err","callback","flushInitializers","initializers","Error","resolvePreload","window","_extends","assign","target","i","length","source","hasOwnProperty","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","ArrowRight","forwardRef","_ref","_ref$color","color","_ref$size","size","rest","xmlns","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","x1","y1","x2","y2","points","propTypes","displayName","Gitlab","d","Linkedin","x","y","cx","cy","r","Plus","defineProperty","_createClass","defineProperties","descriptor","enumerable","configurable","writable","Constructor","protoProps","staticProps","_react2","_interopRequireDefault","_scrollLink2","__esModule","default","_classCallCheck","instance","_possibleConstructorReturn","ReferenceError","ButtonElement","_React$Component","__proto__","getPrototypeOf","subClass","superClass","create","setPrototypeOf","_inherits","createElement","children","Component","_scrollElement2","_propTypes2","ElementWrapper","_this2","newProps","parentBindings","el","domNode","name","string","id","LinkElement","_temp","_this","_len","_key","concat","_Link2","_Button2","_Element2","_scroller2","_scrollEvents2","_scrollSpy2","_animateScroll2","_Helpers2","scrollSpy","defaultScroller","PropTypes","scrollHash","protoTypes","to","isRequired","containerId","container","object","activeClass","spy","bool","smooth","oneOfType","offset","number","isDynamic","onClick","duration","absolute","onSetActive","onSetInactive","ignoreCancelEvents","hashSpy","spyThrottle","Helpers","Scroll","customScroller","console","warn","scroller","_initialiseProps","active","document","getElementById","nodeType","scrollSpyContainer","getScrollSpyContainer","isMounted","mount","mapContainer","addStateHandler","stateHandler","addSpyHandler","spyHandler","setState","unmount","className","trim","prop","handleClick","scrollTo","event","stopPropagation","preventDefault","getActiveLink","isInitialized","element","elemTopBound","elemBottomBound","containerTop","getBoundingClientRect","top","get","cords","offsetY","isInside","floor","isOutside","activeLink","setActiveLink","getHash","changeHash","updateStates","defaultProps","Element","_React$Component2","_this3","childBindings","registerElems","prevProps","unregister","register","_smooth2","_cancelEvents2","getAnimationType","defaultEasing","requestAnimationFrameHelper","requestAnimationFrame","webkitRequestAnimationFrame","currentWindowProperties","getTime","currentPositionX","containerElement","data","body","scrollLeft","supportPageOffset","pageXOffset","isCSS1Compat","compatMode","documentElement","currentPositionY","scrollTop","pageYOffset","animateScroll","easing","timestamp","delta","round","targetPosition","startPosition","start","progress","percent","currentPosition","ceil","horizontal","easedAnimate","bind","registered","setContainer","animateTopScroll","scrollOffset","delayTimeout","isNaN","parseFloat","proceedOptions","scrollToTop","scrollToBottom","scrollWidth","offsetWidth","html","clientWidth","scrollContainerWidth","scrollHeight","offsetHeight","clientHeight","scrollContainerHeight","toPosition","scrollMore","_passiveEventListeners","events","cancelEvent","forEach","addPassiveEventListener","eventName","listener","supportsPassiveOption","addEventListener","e","passive","removePassiveEventListener","removeEventListener","Events","scrollEvent","evtName","remove","_utils","_utils2","mountFlag","containers","handleHashChange","initStateFromHash","hash","isInit","saveHashHistory","updateHash","_scrollHash2","Link","_React$PureComponent","PureComponent","elemLeftBound","elemRightBound","containerLeft","left","offsetX","_cords","_props$saveHashHistor","_props$saveHashHistor2","_saveHashHistory","_lodash","_lodash2","spyCallbacks","spySetState","scrollSpyContainers","throttle","eventHandler","throttleAmount","eventThrottler","scrollHandler","push","c","handler","s","splice","update","__mapped","__activeLink","getElementsByName","getElementsByClassName","link","pow","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","getElementOffsetInfoUntil","predicate","offsetTop","currentOffsetParent","offsetParent","historyUpdate","hashVal","substring","hashToUpdate","curLoc","location","urlToPush","pathname","search","history","pushState","replaceState","filterElementInContainer","contains","compareDocumentPosition","t","scrollX","getComputedStyle","position","offsetLeft","scrollY","_getElementOffsetInfo","isDocument"],"mappings":"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","file":"static/chunks/1367-fc426d51dace2ca85fe9.js","sourcesContent":["/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n","import React from 'react'\nimport Loadable from './loadable'\n\nconst isServerSide = typeof window === 'undefined'\n\nexport type LoaderComponent

= Promise<\n React.ComponentType

| { default: React.ComponentType

}\n>\n\nexport type Loader

= (() => LoaderComponent

) | LoaderComponent

\n\nexport type LoaderMap = { [mdule: string]: () => Loader }\n\nexport type LoadableGeneratedOptions = {\n webpack?(): any\n modules?(): LoaderMap\n}\n\nexport type LoadableBaseOptions

= LoadableGeneratedOptions & {\n loading?: ({\n error,\n isLoading,\n pastDelay,\n }: {\n error?: Error | null\n isLoading?: boolean\n pastDelay?: boolean\n retry?: () => void\n timedOut?: boolean\n }) => JSX.Element | null\n loader?: Loader

| LoaderMap\n loadableGenerated?: LoadableGeneratedOptions\n ssr?: boolean\n}\n\nexport type LoadableOptions

= LoadableBaseOptions

& {\n render?(loader: any, props: any): JSX.Element\n}\n\nexport type DynamicOptions

= LoadableBaseOptions

& {\n /**\n * @deprecated the modules option has been planned for removal\n */\n render?(props: P, loaded: any): JSX.Element\n}\n\nexport type LoadableFn

= (\n opts: LoadableOptions

\n) => React.ComponentType

\n\nexport type LoadableComponent

= React.ComponentType

\n\nexport function noSSR

(\n LoadableInitializer: LoadableFn

,\n loadableOptions: LoadableOptions

\n): React.ComponentType

{\n // Removing webpack and modules means react-loadable won't try preloading\n delete loadableOptions.webpack\n delete loadableOptions.modules\n\n // This check is necessary to prevent react-loadable from initializing on the server\n if (!isServerSide) {\n return LoadableInitializer(loadableOptions)\n }\n\n const Loading = loadableOptions.loading!\n // This will only be rendered on the server side\n return () => (\n \n )\n}\n\n// function dynamic

(options: O):\n\nexport default function dynamic

(\n dynamicOptions: DynamicOptions

| Loader

,\n options?: DynamicOptions

\n): React.ComponentType

{\n let loadableFn: LoadableFn

= Loadable\n let loadableOptions: LoadableOptions

= {\n // A loading component is not required, so we default it\n loading: ({ error, isLoading, pastDelay }) => {\n if (!pastDelay) return null\n if (process.env.NODE_ENV === 'development') {\n if (isLoading) {\n return null\n }\n if (error) {\n return (\n

\n {error.message}\n
\n {error.stack}\n

\n )\n }\n }\n\n return null\n },\n }\n\n // Support for direct import(), eg: dynamic(import('../hello-world'))\n // Note that this is only kept for the edge case where someone is passing in a promise as first argument\n // The react-loadable babel plugin will turn dynamic(import('../hello-world')) into dynamic(() => import('../hello-world'))\n // To make sure we don't execute the import without rendering first\n if (dynamicOptions instanceof Promise) {\n loadableOptions.loader = () => dynamicOptions\n // Support for having import as a function, eg: dynamic(() => import('../hello-world'))\n } else if (typeof dynamicOptions === 'function') {\n loadableOptions.loader = dynamicOptions\n // Support for having first argument being options, eg: dynamic({loader: import('../hello-world')})\n } else if (typeof dynamicOptions === 'object') {\n loadableOptions = { ...loadableOptions, ...dynamicOptions }\n }\n\n // Support for passing options, eg: dynamic(import('../hello-world'), {loading: () =>

Loading something

})\n loadableOptions = { ...loadableOptions, ...options }\n\n if (\n typeof dynamicOptions === 'object' &&\n !(dynamicOptions instanceof Promise)\n ) {\n // show deprecation warning for `modules` key in development\n if (process.env.NODE_ENV !== 'production') {\n if (dynamicOptions.modules) {\n console.warn(\n 'The modules option for next/dynamic has been deprecated. See here for more info https://nextjs.org/docs/messages/next-dynamic-modules'\n )\n }\n }\n // Support for `render` when using a mapping, eg: `dynamic({ modules: () => {return {HelloWorld: import('../hello-world')}, render(props, loaded) {} } })\n if (dynamicOptions.render) {\n loadableOptions.render = (loaded, props) =>\n dynamicOptions.render!(props, loaded)\n }\n // Support for `modules` when using a mapping, eg: `dynamic({ modules: () => {return {HelloWorld: import('../hello-world')}, render(props, loaded) {} } })\n if (dynamicOptions.modules) {\n loadableFn = Loadable.Map\n const loadModules: LoaderMap = {}\n const modules = dynamicOptions.modules()\n Object.keys(modules).forEach((key) => {\n const value: any = modules[key]\n if (typeof value.then === 'function') {\n loadModules[key] = () => value.then((mod: any) => mod.default || mod)\n return\n }\n loadModules[key] = value\n })\n loadableOptions.loader = loadModules\n }\n }\n\n // coming from build/babel/plugins/react-loadable-plugin.js\n if (loadableOptions.loadableGenerated) {\n loadableOptions = {\n ...loadableOptions,\n ...loadableOptions.loadableGenerated,\n }\n delete loadableOptions.loadableGenerated\n }\n\n // support for disabling server side rendering, eg: dynamic(import('../hello-world'), {ssr: false})\n if (typeof loadableOptions.ssr === 'boolean') {\n if (!loadableOptions.ssr) {\n delete loadableOptions.ssr\n return noSSR(loadableFn, loadableOptions)\n }\n delete loadableOptions.ssr\n }\n\n return loadableFn(loadableOptions)\n}\n","import React from 'react'\n\ntype CaptureFn = (moduleName: string) => void\n\nexport const LoadableContext = React.createContext(null)\n\nif (process.env.NODE_ENV !== 'production') {\n LoadableContext.displayName = 'LoadableContext'\n}\n","/**\n@copyright (c) 2017-present James Kyle \n MIT License\n Permission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n The above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE\n*/\n// https://github.com/jamiebuilds/react-loadable/blob/v5.5.0/src/index.js\n// Modified to be compatible with webpack 4 / Next.js\n\nimport React from 'react'\nimport { useSubscription } from 'use-subscription'\nimport { LoadableContext } from './loadable-context'\n\nconst ALL_INITIALIZERS = []\nconst READY_INITIALIZERS = []\nlet initialized = false\n\nfunction load(loader) {\n let promise = loader()\n\n let state = {\n loading: true,\n loaded: null,\n error: null,\n }\n\n state.promise = promise\n .then((loaded) => {\n state.loading = false\n state.loaded = loaded\n return loaded\n })\n .catch((err) => {\n state.loading = false\n state.error = err\n throw err\n })\n\n return state\n}\n\nfunction loadMap(obj) {\n let state = {\n loading: false,\n loaded: {},\n error: null,\n }\n\n let promises = []\n\n try {\n Object.keys(obj).forEach((key) => {\n let result = load(obj[key])\n\n if (!result.loading) {\n state.loaded[key] = result.loaded\n state.error = result.error\n } else {\n state.loading = true\n }\n\n promises.push(result.promise)\n\n result.promise\n .then((res) => {\n state.loaded[key] = res\n })\n .catch((err) => {\n state.error = err\n })\n })\n } catch (err) {\n state.error = err\n }\n\n state.promise = Promise.all(promises)\n .then((res) => {\n state.loading = false\n return res\n })\n .catch((err) => {\n state.loading = false\n throw err\n })\n\n return state\n}\n\nfunction resolve(obj) {\n return obj && obj.__esModule ? obj.default : obj\n}\n\nfunction render(loaded, props) {\n return React.createElement(resolve(loaded), props)\n}\n\nfunction createLoadableComponent(loadFn, options) {\n let opts = Object.assign(\n {\n loader: null,\n loading: null,\n delay: 200,\n timeout: null,\n render: render,\n webpack: null,\n modules: null,\n },\n options\n )\n\n let subscription = null\n\n function init() {\n if (!subscription) {\n const sub = new LoadableSubscription(loadFn, opts)\n subscription = {\n getCurrentValue: sub.getCurrentValue.bind(sub),\n subscribe: sub.subscribe.bind(sub),\n retry: sub.retry.bind(sub),\n promise: sub.promise.bind(sub),\n }\n }\n return subscription.promise()\n }\n\n // Server only\n if (typeof window === 'undefined') {\n ALL_INITIALIZERS.push(init)\n }\n\n // Client only\n if (\n !initialized &&\n typeof window !== 'undefined' &&\n typeof opts.webpack === 'function'\n ) {\n const moduleIds = opts.webpack()\n READY_INITIALIZERS.push((ids) => {\n for (const moduleId of moduleIds) {\n if (ids.indexOf(moduleId) !== -1) {\n return init()\n }\n }\n })\n }\n\n const LoadableComponent = (props, ref) => {\n init()\n\n const context = React.useContext(LoadableContext)\n const state = useSubscription(subscription)\n\n React.useImperativeHandle(\n ref,\n () => ({\n retry: subscription.retry,\n }),\n []\n )\n\n if (context && Array.isArray(opts.modules)) {\n opts.modules.forEach((moduleName) => {\n context(moduleName)\n })\n }\n\n return React.useMemo(() => {\n if (state.loading || state.error) {\n return React.createElement(opts.loading, {\n isLoading: state.loading,\n pastDelay: state.pastDelay,\n timedOut: state.timedOut,\n error: state.error,\n retry: subscription.retry,\n })\n } else if (state.loaded) {\n return opts.render(state.loaded, props)\n } else {\n return null\n }\n }, [props, state])\n }\n\n LoadableComponent.preload = () => init()\n LoadableComponent.displayName = 'LoadableComponent'\n\n return React.forwardRef(LoadableComponent)\n}\n\nclass LoadableSubscription {\n constructor(loadFn, opts) {\n this._loadFn = loadFn\n this._opts = opts\n this._callbacks = new Set()\n this._delay = null\n this._timeout = null\n\n this.retry()\n }\n\n promise() {\n return this._res.promise\n }\n\n retry() {\n this._clearTimeouts()\n this._res = this._loadFn(this._opts.loader)\n\n this._state = {\n pastDelay: false,\n timedOut: false,\n }\n\n const { _res: res, _opts: opts } = this\n\n if (res.loading) {\n if (typeof opts.delay === 'number') {\n if (opts.delay === 0) {\n this._state.pastDelay = true\n } else {\n this._delay = setTimeout(() => {\n this._update({\n pastDelay: true,\n })\n }, opts.delay)\n }\n }\n\n if (typeof opts.timeout === 'number') {\n this._timeout = setTimeout(() => {\n this._update({ timedOut: true })\n }, opts.timeout)\n }\n }\n\n this._res.promise\n .then(() => {\n this._update({})\n this._clearTimeouts()\n })\n .catch((_err) => {\n this._update({})\n this._clearTimeouts()\n })\n this._update({})\n }\n\n _update(partial) {\n this._state = {\n ...this._state,\n error: this._res.error,\n loaded: this._res.loaded,\n loading: this._res.loading,\n ...partial,\n }\n this._callbacks.forEach((callback) => callback())\n }\n\n _clearTimeouts() {\n clearTimeout(this._delay)\n clearTimeout(this._timeout)\n }\n\n getCurrentValue() {\n return this._state\n }\n\n subscribe(callback) {\n this._callbacks.add(callback)\n return () => {\n this._callbacks.delete(callback)\n }\n }\n}\n\nfunction Loadable(opts) {\n return createLoadableComponent(load, opts)\n}\n\nfunction LoadableMap(opts) {\n if (typeof opts.render !== 'function') {\n throw new Error('LoadableMap requires a `render(loaded, props)` function')\n }\n\n return createLoadableComponent(loadMap, opts)\n}\n\nLoadable.Map = LoadableMap\n\nfunction flushInitializers(initializers, ids) {\n let promises = []\n\n while (initializers.length) {\n let init = initializers.pop()\n promises.push(init(ids))\n }\n\n return Promise.all(promises).then(() => {\n if (initializers.length) {\n return flushInitializers(initializers, ids)\n }\n })\n}\n\nLoadable.preloadAll = () => {\n return new Promise((resolveInitializers, reject) => {\n flushInitializers(ALL_INITIALIZERS).then(resolveInitializers, reject)\n })\n}\n\nLoadable.preloadReady = (ids = []) => {\n return new Promise((resolvePreload) => {\n const res = () => {\n initialized = true\n return resolvePreload()\n }\n // We always will resolve, errors should be handled within loading UIs.\n flushInitializers(READY_INITIALIZERS, ids).then(res, res)\n })\n}\n\nif (typeof window !== 'undefined') {\n window.__NEXT_PRELOADREADY = Loadable.preloadReady\n}\n\nexport default Loadable\n","module.exports = require('./dist/next-server/lib/dynamic')\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar ArrowRight = forwardRef(function (_ref, ref) {\n var _ref$color = _ref.color,\n color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size,\n rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: color,\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, rest), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"5\",\n y1: \"12\",\n x2: \"19\",\n y2: \"12\"\n }), /*#__PURE__*/React.createElement(\"polyline\", {\n points: \"12 5 19 12 12 19\"\n }));\n});\nArrowRight.propTypes = {\n color: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nArrowRight.displayName = 'ArrowRight';\nexport default ArrowRight;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar Gitlab = forwardRef(function (_ref, ref) {\n var _ref$color = _ref.color,\n color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size,\n rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: color,\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, rest), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M22.65 14.39L12 22.13 1.35 14.39a.84.84 0 0 1-.3-.94l1.22-3.78 2.44-7.51A.42.42 0 0 1 4.82 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.49h8.1l2.44-7.51A.42.42 0 0 1 18.6 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.51L23 13.45a.84.84 0 0 1-.35.94z\"\n }));\n});\nGitlab.propTypes = {\n color: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nGitlab.displayName = 'Gitlab';\nexport default Gitlab;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar Linkedin = forwardRef(function (_ref, ref) {\n var _ref$color = _ref.color,\n color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size,\n rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: color,\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, rest), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z\"\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: \"2\",\n y: \"9\",\n width: \"4\",\n height: \"12\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"4\",\n cy: \"4\",\n r: \"2\"\n }));\n});\nLinkedin.propTypes = {\n color: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nLinkedin.displayName = 'Linkedin';\nexport default Linkedin;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar Plus = forwardRef(function (_ref, ref) {\n var _ref$color = _ref.color,\n color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size,\n rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: color,\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, rest), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"12\",\n y1: \"5\",\n x2: \"12\",\n y2: \"19\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"5\",\n y1: \"12\",\n x2: \"19\",\n y2: \"12\"\n }));\n});\nPlus.propTypes = {\n color: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nPlus.displayName = 'Plus';\nexport default Plus;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollLink = require('../mixins/scroll-link');\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ButtonElement = function (_React$Component) {\n _inherits(ButtonElement, _React$Component);\n\n function ButtonElement() {\n _classCallCheck(this, ButtonElement);\n\n return _possibleConstructorReturn(this, (ButtonElement.__proto__ || Object.getPrototypeOf(ButtonElement)).apply(this, arguments));\n }\n\n _createClass(ButtonElement, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'input',\n this.props,\n this.props.children\n );\n }\n }]);\n\n return ButtonElement;\n}(_react2.default.Component);\n\n;\n\nexports.default = (0, _scrollLink2.default)(ButtonElement);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollElement = require('../mixins/scroll-element');\n\nvar _scrollElement2 = _interopRequireDefault(_scrollElement);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ElementWrapper = function (_React$Component) {\n _inherits(ElementWrapper, _React$Component);\n\n function ElementWrapper() {\n _classCallCheck(this, ElementWrapper);\n\n return _possibleConstructorReturn(this, (ElementWrapper.__proto__ || Object.getPrototypeOf(ElementWrapper)).apply(this, arguments));\n }\n\n _createClass(ElementWrapper, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n // Remove `parentBindings` from props\n var newProps = _extends({}, this.props);\n if (newProps.parentBindings) {\n delete newProps.parentBindings;\n }\n\n return _react2.default.createElement(\n 'div',\n _extends({}, newProps, { ref: function ref(el) {\n _this2.props.parentBindings.domNode = el;\n } }),\n this.props.children\n );\n }\n }]);\n\n return ElementWrapper;\n}(_react2.default.Component);\n\n;\n\nElementWrapper.propTypes = {\n name: _propTypes2.default.string,\n id: _propTypes2.default.string\n};\n\nexports.default = (0, _scrollElement2.default)(ElementWrapper);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollLink = require('../mixins/scroll-link');\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar LinkElement = function (_React$Component) {\n _inherits(LinkElement, _React$Component);\n\n function LinkElement() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, LinkElement);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = LinkElement.__proto__ || Object.getPrototypeOf(LinkElement)).call.apply(_ref, [this].concat(args))), _this), _this.render = function () {\n return _react2.default.createElement(\n 'a',\n _this.props,\n _this.props.children\n );\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n return LinkElement;\n}(_react2.default.Component);\n\n;\n\nexports.default = (0, _scrollLink2.default)(LinkElement);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Helpers = exports.ScrollElement = exports.ScrollLink = exports.animateScroll = exports.scrollSpy = exports.Events = exports.scroller = exports.Element = exports.Button = exports.Link = undefined;\n\nvar _Link = require('./components/Link.js');\n\nvar _Link2 = _interopRequireDefault(_Link);\n\nvar _Button = require('./components/Button.js');\n\nvar _Button2 = _interopRequireDefault(_Button);\n\nvar _Element = require('./components/Element.js');\n\nvar _Element2 = _interopRequireDefault(_Element);\n\nvar _scroller = require('./mixins/scroller.js');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _scrollEvents = require('./mixins/scroll-events.js');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nvar _scrollSpy = require('./mixins/scroll-spy.js');\n\nvar _scrollSpy2 = _interopRequireDefault(_scrollSpy);\n\nvar _animateScroll = require('./mixins/animate-scroll.js');\n\nvar _animateScroll2 = _interopRequireDefault(_animateScroll);\n\nvar _scrollLink = require('./mixins/scroll-link.js');\n\nvar _scrollLink2 = _interopRequireDefault(_scrollLink);\n\nvar _scrollElement = require('./mixins/scroll-element.js');\n\nvar _scrollElement2 = _interopRequireDefault(_scrollElement);\n\nvar _Helpers = require('./mixins/Helpers.js');\n\nvar _Helpers2 = _interopRequireDefault(_Helpers);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.Link = _Link2.default;\nexports.Button = _Button2.default;\nexports.Element = _Element2.default;\nexports.scroller = _scroller2.default;\nexports.Events = _scrollEvents2.default;\nexports.scrollSpy = _scrollSpy2.default;\nexports.animateScroll = _animateScroll2.default;\nexports.ScrollLink = _scrollLink2.default;\nexports.ScrollElement = _scrollElement2.default;\nexports.Helpers = _Helpers2.default;\nexports.default = { Link: _Link2.default, Button: _Button2.default, Element: _Element2.default, scroller: _scroller2.default, Events: _scrollEvents2.default, scrollSpy: _scrollSpy2.default, animateScroll: _animateScroll2.default, ScrollLink: _scrollLink2.default, ScrollElement: _scrollElement2.default, Helpers: _Helpers2.default };","\"use strict\";\n\n/* DEPRECATED */\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar React = require('react');\nvar ReactDOM = require('react-dom');\n\nvar utils = require('./utils');\nvar scrollSpy = require('./scroll-spy');\nvar defaultScroller = require('./scroller');\nvar PropTypes = require('prop-types');\nvar scrollHash = require('./scroll-hash');\n\nvar protoTypes = {\n to: PropTypes.string.isRequired,\n containerId: PropTypes.string,\n container: PropTypes.object,\n activeClass: PropTypes.string,\n spy: PropTypes.bool,\n smooth: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n offset: PropTypes.number,\n delay: PropTypes.number,\n isDynamic: PropTypes.bool,\n onClick: PropTypes.func,\n duration: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),\n absolute: PropTypes.bool,\n onSetActive: PropTypes.func,\n onSetInactive: PropTypes.func,\n ignoreCancelEvents: PropTypes.bool,\n hashSpy: PropTypes.bool,\n spyThrottle: PropTypes.number\n};\n\nvar Helpers = {\n Scroll: function Scroll(Component, customScroller) {\n\n console.warn(\"Helpers.Scroll is deprecated since v1.7.0\");\n\n var scroller = customScroller || defaultScroller;\n\n var Scroll = function (_React$Component) {\n _inherits(Scroll, _React$Component);\n\n function Scroll(props) {\n _classCallCheck(this, Scroll);\n\n var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.state = {\n active: false\n };\n return _this;\n }\n\n _createClass(Scroll, [{\n key: 'getScrollSpyContainer',\n value: function getScrollSpyContainer() {\n var containerId = this.props.containerId;\n var container = this.props.container;\n\n if (containerId) {\n return document.getElementById(containerId);\n }\n\n if (container && container.nodeType) {\n return container;\n }\n\n return document;\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.spy || this.props.hashSpy) {\n var scrollSpyContainer = this.getScrollSpyContainer();\n\n if (!scrollSpy.isMounted(scrollSpyContainer)) {\n scrollSpy.mount(scrollSpyContainer, this.props.spyThrottle);\n }\n\n if (this.props.hashSpy) {\n if (!scrollHash.isMounted()) {\n scrollHash.mount(scroller);\n }\n scrollHash.mapContainer(this.props.to, scrollSpyContainer);\n }\n\n if (this.props.spy) {\n scrollSpy.addStateHandler(this.stateHandler);\n }\n\n scrollSpy.addSpyHandler(this.spyHandler, scrollSpyContainer);\n\n this.setState({\n container: scrollSpyContainer\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n scrollSpy.unmount(this.stateHandler, this.spyHandler);\n }\n }, {\n key: 'render',\n value: function render() {\n var className = \"\";\n\n if (this.state && this.state.active) {\n className = ((this.props.className || \"\") + \" \" + (this.props.activeClass || \"active\")).trim();\n } else {\n className = this.props.className;\n }\n\n var props = _extends({}, this.props);\n\n for (var prop in protoTypes) {\n if (props.hasOwnProperty(prop)) {\n delete props[prop];\n }\n }\n\n props.className = className;\n props.onClick = this.handleClick;\n\n return React.createElement(Component, props);\n }\n }]);\n\n return Scroll;\n }(React.Component);\n\n var _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.scrollTo = function (to, props) {\n scroller.scrollTo(to, _extends({}, _this2.state, props));\n };\n\n this.handleClick = function (event) {\n\n /*\r\n * give the posibility to override onClick\r\n */\n\n if (_this2.props.onClick) {\n _this2.props.onClick(event);\n }\n\n /*\r\n * dont bubble the navigation\r\n */\n\n if (event.stopPropagation) event.stopPropagation();\n if (event.preventDefault) event.preventDefault();\n\n /*\r\n * do the magic!\r\n */\n _this2.scrollTo(_this2.props.to, _this2.props);\n };\n\n this.stateHandler = function () {\n if (scroller.getActiveLink() !== _this2.props.to) {\n if (_this2.state !== null && _this2.state.active && _this2.props.onSetInactive) {\n _this2.props.onSetInactive();\n }\n _this2.setState({ active: false });\n }\n };\n\n this.spyHandler = function (y) {\n\n var scrollSpyContainer = _this2.getScrollSpyContainer();\n\n if (scrollHash.isMounted() && !scrollHash.isInitialized()) {\n return;\n }\n\n var to = _this2.props.to;\n var element = null;\n var elemTopBound = 0;\n var elemBottomBound = 0;\n var containerTop = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var containerCords = scrollSpyContainer.getBoundingClientRect();\n containerTop = containerCords.top;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var cords = element.getBoundingClientRect();\n elemTopBound = cords.top - containerTop + y;\n elemBottomBound = elemTopBound + cords.height;\n }\n\n var offsetY = y - _this2.props.offset;\n var isInside = offsetY >= Math.floor(elemTopBound) && offsetY < Math.floor(elemBottomBound);\n var isOutside = offsetY < Math.floor(elemTopBound) || offsetY >= Math.floor(elemBottomBound);\n var activeLink = scroller.getActiveLink();\n\n if (isOutside) {\n if (to === activeLink) {\n scroller.setActiveLink(void 0);\n }\n\n if (_this2.props.hashSpy && scrollHash.getHash() === to) {\n scrollHash.changeHash();\n }\n\n if (_this2.props.spy && _this2.state.active) {\n _this2.setState({ active: false });\n _this2.props.onSetInactive && _this2.props.onSetInactive();\n }\n\n return scrollSpy.updateStates();\n }\n\n if (isInside && activeLink !== to) {\n scroller.setActiveLink(to);\n\n _this2.props.hashSpy && scrollHash.changeHash(to);\n\n if (_this2.props.spy) {\n _this2.setState({ active: true });\n _this2.props.onSetActive && _this2.props.onSetActive(to);\n }\n return scrollSpy.updateStates();\n }\n };\n };\n\n ;\n\n Scroll.propTypes = protoTypes;\n\n Scroll.defaultProps = { offset: 0 };\n\n return Scroll;\n },\n Element: function Element(Component) {\n\n console.warn(\"Helpers.Element is deprecated since v1.7.0\");\n\n var Element = function (_React$Component2) {\n _inherits(Element, _React$Component2);\n\n function Element(props) {\n _classCallCheck(this, Element);\n\n var _this3 = _possibleConstructorReturn(this, (Element.__proto__ || Object.getPrototypeOf(Element)).call(this, props));\n\n _this3.childBindings = {\n domNode: null\n };\n return _this3;\n }\n\n _createClass(Element, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (typeof window === 'undefined') {\n return false;\n }\n this.registerElems(this.props.name);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n this.registerElems(this.props.name);\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (typeof window === 'undefined') {\n return false;\n }\n defaultScroller.unregister(this.props.name);\n }\n }, {\n key: 'registerElems',\n value: function registerElems(name) {\n defaultScroller.register(name, this.childBindings.domNode);\n }\n }, {\n key: 'render',\n value: function render() {\n return React.createElement(Component, _extends({}, this.props, { parentBindings: this.childBindings }));\n }\n }]);\n\n return Element;\n }(React.Component);\n\n ;\n\n Element.propTypes = {\n name: PropTypes.string,\n id: PropTypes.string\n };\n\n return Element;\n }\n};\n\nmodule.exports = Helpers;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _smooth = require('./smooth');\n\nvar _smooth2 = _interopRequireDefault(_smooth);\n\nvar _cancelEvents = require('./cancel-events');\n\nvar _cancelEvents2 = _interopRequireDefault(_cancelEvents);\n\nvar _scrollEvents = require('./scroll-events');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\r\n * Gets the easing type from the smooth prop within options.\r\n */\nvar getAnimationType = function getAnimationType(options) {\n return _smooth2.default[options.smooth] || _smooth2.default.defaultEasing;\n};\n/*\r\n * Function helper\r\n */\nvar functionWrapper = function functionWrapper(value) {\n return typeof value === 'function' ? value : function () {\n return value;\n };\n};\n/*\r\n * Wraps window properties to allow server side rendering\r\n */\nvar currentWindowProperties = function currentWindowProperties() {\n if (typeof window !== 'undefined') {\n return window.requestAnimationFrame || window.webkitRequestAnimationFrame;\n }\n};\n\n/*\r\n * Helper function to never extend 60fps on the webpage.\r\n */\nvar requestAnimationFrameHelper = function () {\n return currentWindowProperties() || function (callback, element, delay) {\n window.setTimeout(callback, delay || 1000 / 60, new Date().getTime());\n };\n}();\n\nvar makeData = function makeData() {\n return {\n currentPosition: 0,\n startPosition: 0,\n targetPosition: 0,\n progress: 0,\n duration: 0,\n cancel: false,\n\n target: null,\n containerElement: null,\n to: null,\n start: null,\n delta: null,\n percent: null,\n delayTimeout: null\n };\n};\n\nvar currentPositionX = function currentPositionX(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollLeft;\n } else {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft;\n }\n};\n\nvar currentPositionY = function currentPositionY(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollTop;\n } else {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;\n }\n};\n\nvar scrollContainerWidth = function scrollContainerWidth(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollWidth - containerElement.offsetWidth;\n } else {\n var body = document.body;\n var html = document.documentElement;\n\n return Math.max(body.scrollWidth, body.offsetWidth, html.clientWidth, html.scrollWidth, html.offsetWidth);\n }\n};\n\nvar scrollContainerHeight = function scrollContainerHeight(options) {\n var containerElement = options.data.containerElement;\n if (containerElement && containerElement !== document && containerElement !== document.body) {\n return containerElement.scrollHeight - containerElement.offsetHeight;\n } else {\n var body = document.body;\n var html = document.documentElement;\n\n return Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);\n }\n};\n\nvar animateScroll = function animateScroll(easing, options, timestamp) {\n var data = options.data;\n\n // Cancel on specific events\n if (!options.ignoreCancelEvents && data.cancel) {\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](data.to, data.target, data.currentPositionY);\n }\n return;\n };\n\n data.delta = Math.round(data.targetPosition - data.startPosition);\n\n if (data.start === null) {\n data.start = timestamp;\n }\n\n data.progress = timestamp - data.start;\n\n data.percent = data.progress >= data.duration ? 1 : easing(data.progress / data.duration);\n\n data.currentPosition = data.startPosition + Math.ceil(data.delta * data.percent);\n\n if (data.containerElement && data.containerElement !== document && data.containerElement !== document.body) {\n if (options.horizontal) {\n data.containerElement.scrollLeft = data.currentPosition;\n } else {\n data.containerElement.scrollTop = data.currentPosition;\n }\n } else {\n if (options.horizontal) {\n window.scrollTo(data.currentPosition, 0);\n } else {\n window.scrollTo(0, data.currentPosition);\n }\n }\n\n if (data.percent < 1) {\n var easedAnimate = animateScroll.bind(null, easing, options);\n requestAnimationFrameHelper.call(window, easedAnimate);\n return;\n }\n\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](data.to, data.target, data.currentPosition);\n }\n};\n\nvar setContainer = function setContainer(options) {\n options.data.containerElement = !options ? null : options.containerId ? document.getElementById(options.containerId) : options.container && options.container.nodeType ? options.container : document;\n};\n\nvar animateTopScroll = function animateTopScroll(scrollOffset, options, to, target) {\n options.data = options.data || makeData();\n\n window.clearTimeout(options.data.delayTimeout);\n\n _cancelEvents2.default.subscribe(function () {\n options.data.cancel = true;\n });\n\n setContainer(options);\n\n options.data.start = null;\n options.data.cancel = false;\n options.data.startPosition = options.horizontal ? currentPositionX(options) : currentPositionY(options);\n options.data.targetPosition = options.absolute ? scrollOffset : scrollOffset + options.data.startPosition;\n\n if (options.data.startPosition === options.data.targetPosition) {\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](options.data.to, options.data.target, options.data.currentPosition);\n }\n return;\n }\n\n options.data.delta = Math.round(options.data.targetPosition - options.data.startPosition);\n\n options.data.duration = functionWrapper(options.duration)(options.data.delta);\n options.data.duration = isNaN(parseFloat(options.data.duration)) ? 1000 : parseFloat(options.data.duration);\n options.data.to = to;\n options.data.target = target;\n\n var easing = getAnimationType(options);\n var easedAnimate = animateScroll.bind(null, easing, options);\n\n if (options && options.delay > 0) {\n options.data.delayTimeout = window.setTimeout(function () {\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](options.data.to, options.data.target);\n }\n requestAnimationFrameHelper.call(window, easedAnimate);\n }, options.delay);\n return;\n }\n\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](options.data.to, options.data.target);\n }\n requestAnimationFrameHelper.call(window, easedAnimate);\n};\n\nvar proceedOptions = function proceedOptions(options) {\n options = _extends({}, options);\n options.data = options.data || makeData();\n options.absolute = true;\n return options;\n};\n\nvar scrollToTop = function scrollToTop(options) {\n animateTopScroll(0, proceedOptions(options));\n};\n\nvar scrollTo = function scrollTo(toPosition, options) {\n animateTopScroll(toPosition, proceedOptions(options));\n};\n\nvar scrollToBottom = function scrollToBottom(options) {\n options = proceedOptions(options);\n setContainer(options);\n animateTopScroll(options.horizontal ? scrollContainerWidth(options) : scrollContainerHeight(options), options);\n};\n\nvar scrollMore = function scrollMore(toPosition, options) {\n options = proceedOptions(options);\n setContainer(options);\n var currentPosition = options.horizontal ? currentPositionX(options) : currentPositionY(options);\n animateTopScroll(toPosition + currentPosition, options);\n};\n\nexports.default = {\n animateTopScroll: animateTopScroll,\n getAnimationType: getAnimationType,\n scrollToTop: scrollToTop,\n scrollToBottom: scrollToBottom,\n scrollTo: scrollTo,\n scrollMore: scrollMore\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nvar events = ['mousedown', 'mousewheel', 'touchmove', 'keydown'];\n\nexports.default = {\n subscribe: function subscribe(cancelEvent) {\n return typeof document !== 'undefined' && events.forEach(function (event) {\n return (0, _passiveEventListeners.addPassiveEventListener)(document, event, cancelEvent);\n });\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/*\r\n * Tell the browser that the event listener won't prevent a scroll.\r\n * Allowing the browser to continue scrolling without having to\r\n * to wait for the listener to return.\r\n */\nvar addPassiveEventListener = exports.addPassiveEventListener = function addPassiveEventListener(target, eventName, listener) {\n var supportsPassiveOption = function () {\n var supportsPassiveOption = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassiveOption = true;\n }\n });\n window.addEventListener('test', null, opts);\n } catch (e) {}\n return supportsPassiveOption;\n }();\n target.addEventListener(eventName, listener, supportsPassiveOption ? { passive: true } : false);\n};\n\nvar removePassiveEventListener = exports.removePassiveEventListener = function removePassiveEventListener(target, eventName, listener) {\n target.removeEventListener(eventName, listener);\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _scroller = require('./scroller');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nexports.default = function (Component) {\n var Element = function (_React$Component) {\n _inherits(Element, _React$Component);\n\n function Element(props) {\n _classCallCheck(this, Element);\n\n var _this = _possibleConstructorReturn(this, (Element.__proto__ || Object.getPrototypeOf(Element)).call(this, props));\n\n _this.childBindings = {\n domNode: null\n };\n return _this;\n }\n\n _createClass(Element, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (typeof window === 'undefined') {\n return false;\n }\n this.registerElems(this.props.name);\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (this.props.name !== prevProps.name) {\n this.registerElems(this.props.name);\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (typeof window === 'undefined') {\n return false;\n }\n _scroller2.default.unregister(this.props.name);\n }\n }, {\n key: 'registerElems',\n value: function registerElems(name) {\n _scroller2.default.register(name, this.childBindings.domNode);\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(Component, _extends({}, this.props, { parentBindings: this.childBindings }));\n }\n }]);\n\n return Element;\n }(_react2.default.Component);\n\n ;\n\n Element.propTypes = {\n name: _propTypes2.default.string,\n id: _propTypes2.default.string\n };\n\n return Element;\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar Events = {\n\tregistered: {},\n\tscrollEvent: {\n\t\tregister: function register(evtName, callback) {\n\t\t\tEvents.registered[evtName] = callback;\n\t\t},\n\t\tremove: function remove(evtName) {\n\t\t\tEvents.registered[evtName] = null;\n\t\t}\n\t}\n};\n\nexports.default = Events;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar scrollHash = {\n mountFlag: false,\n initialized: false,\n scroller: null,\n containers: {},\n\n mount: function mount(scroller) {\n this.scroller = scroller;\n\n this.handleHashChange = this.handleHashChange.bind(this);\n window.addEventListener('hashchange', this.handleHashChange);\n\n this.initStateFromHash();\n this.mountFlag = true;\n },\n mapContainer: function mapContainer(to, container) {\n this.containers[to] = container;\n },\n isMounted: function isMounted() {\n return this.mountFlag;\n },\n isInitialized: function isInitialized() {\n return this.initialized;\n },\n initStateFromHash: function initStateFromHash() {\n var _this = this;\n\n var hash = this.getHash();\n if (hash) {\n window.setTimeout(function () {\n _this.scrollTo(hash, true);\n _this.initialized = true;\n }, 10);\n } else {\n this.initialized = true;\n }\n },\n scrollTo: function scrollTo(to, isInit) {\n var scroller = this.scroller;\n var element = scroller.get(to);\n if (element && (isInit || to !== scroller.getActiveLink())) {\n var container = this.containers[to] || document;\n scroller.scrollTo(to, { container: container });\n }\n },\n getHash: function getHash() {\n return _utils2.default.getHash();\n },\n changeHash: function changeHash(to, saveHashHistory) {\n if (this.isInitialized() && _utils2.default.getHash() !== to) {\n _utils2.default.updateHash(to, saveHashHistory);\n }\n },\n handleHashChange: function handleHashChange() {\n this.scrollTo(this.getHash());\n },\n unmount: function unmount() {\n this.scroller = null;\n this.containers = null;\n window.removeEventListener('hashchange', this.handleHashChange);\n }\n};\n\nexports.default = scrollHash;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _scrollSpy = require('./scroll-spy');\n\nvar _scrollSpy2 = _interopRequireDefault(_scrollSpy);\n\nvar _scroller = require('./scroller');\n\nvar _scroller2 = _interopRequireDefault(_scroller);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _scrollHash = require('./scroll-hash');\n\nvar _scrollHash2 = _interopRequireDefault(_scrollHash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar protoTypes = {\n to: _propTypes2.default.string.isRequired,\n containerId: _propTypes2.default.string,\n container: _propTypes2.default.object,\n activeClass: _propTypes2.default.string,\n spy: _propTypes2.default.bool,\n horizontal: _propTypes2.default.bool,\n smooth: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),\n offset: _propTypes2.default.number,\n delay: _propTypes2.default.number,\n isDynamic: _propTypes2.default.bool,\n onClick: _propTypes2.default.func,\n duration: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),\n absolute: _propTypes2.default.bool,\n onSetActive: _propTypes2.default.func,\n onSetInactive: _propTypes2.default.func,\n ignoreCancelEvents: _propTypes2.default.bool,\n hashSpy: _propTypes2.default.bool,\n saveHashHistory: _propTypes2.default.bool,\n spyThrottle: _propTypes2.default.number\n};\n\nexports.default = function (Component, customScroller) {\n\n var scroller = customScroller || _scroller2.default;\n\n var Link = function (_React$PureComponent) {\n _inherits(Link, _React$PureComponent);\n\n function Link(props) {\n _classCallCheck(this, Link);\n\n var _this = _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.state = {\n active: false\n };\n return _this;\n }\n\n _createClass(Link, [{\n key: 'getScrollSpyContainer',\n value: function getScrollSpyContainer() {\n var containerId = this.props.containerId;\n var container = this.props.container;\n\n if (containerId && !container) {\n return document.getElementById(containerId);\n }\n\n if (container && container.nodeType) {\n return container;\n }\n\n return document;\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.spy || this.props.hashSpy) {\n var scrollSpyContainer = this.getScrollSpyContainer();\n\n if (!_scrollSpy2.default.isMounted(scrollSpyContainer)) {\n _scrollSpy2.default.mount(scrollSpyContainer, this.props.spyThrottle);\n }\n\n if (this.props.hashSpy) {\n if (!_scrollHash2.default.isMounted()) {\n _scrollHash2.default.mount(scroller);\n }\n _scrollHash2.default.mapContainer(this.props.to, scrollSpyContainer);\n }\n\n _scrollSpy2.default.addSpyHandler(this.spyHandler, scrollSpyContainer);\n\n this.setState({\n container: scrollSpyContainer\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n _scrollSpy2.default.unmount(this.stateHandler, this.spyHandler);\n }\n }, {\n key: 'render',\n value: function render() {\n var className = \"\";\n\n if (this.state && this.state.active) {\n className = ((this.props.className || \"\") + \" \" + (this.props.activeClass || \"active\")).trim();\n } else {\n className = this.props.className;\n }\n\n var props = _extends({}, this.props);\n\n for (var prop in protoTypes) {\n if (props.hasOwnProperty(prop)) {\n delete props[prop];\n }\n }\n\n props.className = className;\n props.onClick = this.handleClick;\n\n return _react2.default.createElement(Component, props);\n }\n }]);\n\n return Link;\n }(_react2.default.PureComponent);\n\n var _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.scrollTo = function (to, props) {\n scroller.scrollTo(to, _extends({}, _this2.state, props));\n };\n\n this.handleClick = function (event) {\n\n /*\r\n * give the posibility to override onClick\r\n */\n\n if (_this2.props.onClick) {\n _this2.props.onClick(event);\n }\n\n /*\r\n * dont bubble the navigation\r\n */\n\n if (event.stopPropagation) event.stopPropagation();\n if (event.preventDefault) event.preventDefault();\n\n /*\r\n * do the magic!\r\n */\n _this2.scrollTo(_this2.props.to, _this2.props);\n };\n\n this.spyHandler = function (x, y) {\n var scrollSpyContainer = _this2.getScrollSpyContainer();\n\n if (_scrollHash2.default.isMounted() && !_scrollHash2.default.isInitialized()) {\n return;\n }\n\n var horizontal = _this2.props.horizontal;\n\n var to = _this2.props.to;\n var element = null;\n var isInside = void 0;\n var isOutside = void 0;\n\n if (horizontal) {\n var elemLeftBound = 0;\n var elemRightBound = 0;\n var containerLeft = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var containerCords = scrollSpyContainer.getBoundingClientRect();\n containerLeft = containerCords.left;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var cords = element.getBoundingClientRect();\n elemLeftBound = cords.left - containerLeft + x;\n elemRightBound = elemLeftBound + cords.width;\n }\n\n var offsetX = x - _this2.props.offset;\n isInside = offsetX >= Math.floor(elemLeftBound) && offsetX < Math.floor(elemRightBound);\n isOutside = offsetX < Math.floor(elemLeftBound) || offsetX >= Math.floor(elemRightBound);\n } else {\n var elemTopBound = 0;\n var elemBottomBound = 0;\n var containerTop = 0;\n\n if (scrollSpyContainer.getBoundingClientRect) {\n var _containerCords = scrollSpyContainer.getBoundingClientRect();\n containerTop = _containerCords.top;\n }\n\n if (!element || _this2.props.isDynamic) {\n element = scroller.get(to);\n if (!element) {\n return;\n }\n\n var _cords = element.getBoundingClientRect();\n elemTopBound = _cords.top - containerTop + y;\n elemBottomBound = elemTopBound + _cords.height;\n }\n\n var offsetY = y - _this2.props.offset;\n isInside = offsetY >= Math.floor(elemTopBound) && offsetY < Math.floor(elemBottomBound);\n isOutside = offsetY < Math.floor(elemTopBound) || offsetY >= Math.floor(elemBottomBound);\n }\n\n var activeLink = scroller.getActiveLink();\n\n if (isOutside) {\n if (to === activeLink) {\n scroller.setActiveLink(void 0);\n }\n\n if (_this2.props.hashSpy && _scrollHash2.default.getHash() === to) {\n var _props$saveHashHistor = _this2.props.saveHashHistory,\n saveHashHistory = _props$saveHashHistor === undefined ? false : _props$saveHashHistor;\n\n _scrollHash2.default.changeHash(\"\", saveHashHistory);\n }\n\n if (_this2.props.spy && _this2.state.active) {\n _this2.setState({ active: false });\n _this2.props.onSetInactive && _this2.props.onSetInactive(to, element);\n }\n }\n\n if (isInside && (activeLink !== to || _this2.state.active === false)) {\n scroller.setActiveLink(to);\n\n var _props$saveHashHistor2 = _this2.props.saveHashHistory,\n _saveHashHistory = _props$saveHashHistor2 === undefined ? false : _props$saveHashHistor2;\n\n _this2.props.hashSpy && _scrollHash2.default.changeHash(to, _saveHashHistory);\n\n if (_this2.props.spy) {\n _this2.setState({ active: true });\n _this2.props.onSetActive && _this2.props.onSetActive(to, element);\n }\n }\n };\n };\n\n ;\n\n Link.propTypes = protoTypes;\n\n Link.defaultProps = { offset: 0 };\n\n return Link;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _lodash = require('lodash.throttle');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _passiveEventListeners = require('./passive-event-listeners');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// The eventHandler will execute at a rate of 15fps by default\nvar eventThrottler = function eventThrottler(eventHandler) {\n var throttleAmount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 66;\n return (0, _lodash2.default)(eventHandler, throttleAmount);\n};\n\nvar scrollSpy = {\n\n spyCallbacks: [],\n spySetState: [],\n scrollSpyContainers: [],\n\n mount: function mount(scrollSpyContainer, throttle) {\n if (scrollSpyContainer) {\n var eventHandler = eventThrottler(function (event) {\n scrollSpy.scrollHandler(scrollSpyContainer);\n }, throttle);\n scrollSpy.scrollSpyContainers.push(scrollSpyContainer);\n (0, _passiveEventListeners.addPassiveEventListener)(scrollSpyContainer, 'scroll', eventHandler);\n }\n },\n isMounted: function isMounted(scrollSpyContainer) {\n return scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer) !== -1;\n },\n currentPositionX: function currentPositionX(scrollSpyContainer) {\n if (scrollSpyContainer === document) {\n var supportPageOffset = window.pageYOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft;\n } else {\n return scrollSpyContainer.scrollLeft;\n }\n },\n currentPositionY: function currentPositionY(scrollSpyContainer) {\n if (scrollSpyContainer === document) {\n var supportPageOffset = window.pageXOffset !== undefined;\n var isCSS1Compat = (document.compatMode || \"\") === \"CSS1Compat\";\n return supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;\n } else {\n return scrollSpyContainer.scrollTop;\n }\n },\n scrollHandler: function scrollHandler(scrollSpyContainer) {\n var callbacks = scrollSpy.scrollSpyContainers[scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer)].spyCallbacks || [];\n callbacks.forEach(function (c) {\n return c(scrollSpy.currentPositionX(scrollSpyContainer), scrollSpy.currentPositionY(scrollSpyContainer));\n });\n },\n addStateHandler: function addStateHandler(handler) {\n scrollSpy.spySetState.push(handler);\n },\n addSpyHandler: function addSpyHandler(handler, scrollSpyContainer) {\n var container = scrollSpy.scrollSpyContainers[scrollSpy.scrollSpyContainers.indexOf(scrollSpyContainer)];\n\n if (!container.spyCallbacks) {\n container.spyCallbacks = [];\n }\n\n container.spyCallbacks.push(handler);\n\n handler(scrollSpy.currentPositionX(scrollSpyContainer), scrollSpy.currentPositionY(scrollSpyContainer));\n },\n updateStates: function updateStates() {\n scrollSpy.spySetState.forEach(function (s) {\n return s();\n });\n },\n unmount: function unmount(stateHandler, spyHandler) {\n scrollSpy.scrollSpyContainers.forEach(function (c) {\n return c.spyCallbacks && c.spyCallbacks.length && c.spyCallbacks.splice(c.spyCallbacks.indexOf(spyHandler), 1);\n });\n\n if (scrollSpy.spySetState && scrollSpy.spySetState.length) {\n scrollSpy.spySetState.splice(scrollSpy.spySetState.indexOf(stateHandler), 1);\n }\n\n document.removeEventListener('scroll', scrollSpy.scrollHandler);\n },\n\n\n update: function update() {\n return scrollSpy.scrollSpyContainers.forEach(function (c) {\n return scrollSpy.scrollHandler(c);\n });\n }\n};\n\nexports.default = scrollSpy;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _utils = require('./utils');\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _animateScroll = require('./animate-scroll');\n\nvar _animateScroll2 = _interopRequireDefault(_animateScroll);\n\nvar _scrollEvents = require('./scroll-events');\n\nvar _scrollEvents2 = _interopRequireDefault(_scrollEvents);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar __mapped = {};\nvar __activeLink = void 0;\n\nexports.default = {\n\n unmount: function unmount() {\n __mapped = {};\n },\n\n register: function register(name, element) {\n __mapped[name] = element;\n },\n\n unregister: function unregister(name) {\n delete __mapped[name];\n },\n\n get: function get(name) {\n return __mapped[name] || document.getElementById(name) || document.getElementsByName(name)[0] || document.getElementsByClassName(name)[0];\n },\n\n setActiveLink: function setActiveLink(link) {\n return __activeLink = link;\n },\n\n getActiveLink: function getActiveLink() {\n return __activeLink;\n },\n\n scrollTo: function scrollTo(to, props) {\n\n var target = this.get(to);\n\n if (!target) {\n console.warn(\"target Element not found\");\n return;\n }\n\n props = _extends({}, props, { absolute: false });\n\n var containerId = props.containerId;\n var container = props.container;\n\n var containerElement = void 0;\n if (containerId) {\n containerElement = document.getElementById(containerId);\n } else if (container && container.nodeType) {\n containerElement = container;\n } else {\n containerElement = document;\n }\n\n props.absolute = true;\n\n var horizontal = props.horizontal;\n var scrollOffset = _utils2.default.scrollOffset(containerElement, target, horizontal) + (props.offset || 0);\n\n /*\r\n * if animate is not provided just scroll into the view\r\n */\n if (!props.smooth) {\n if (_scrollEvents2.default.registered['begin']) {\n _scrollEvents2.default.registered['begin'](to, target);\n }\n\n if (containerElement === document) {\n if (props.horizontal) {\n window.scrollTo(scrollOffset, 0);\n } else {\n window.scrollTo(0, scrollOffset);\n }\n } else {\n containerElement.scrollTop = scrollOffset;\n }\n\n if (_scrollEvents2.default.registered['end']) {\n _scrollEvents2.default.registered['end'](to, target);\n }\n\n return;\n }\n\n /*\r\n * Animate scrolling\r\n */\n\n _animateScroll2.default.animateTopScroll(scrollOffset, props, to, target);\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n /*\r\n * https://github.com/oblador/angular-scroll (duScrollDefaultEasing)\r\n */\n defaultEasing: function defaultEasing(x) {\n if (x < 0.5) {\n return Math.pow(x * 2, 2) / 2;\n }\n return 1 - Math.pow((1 - x) * 2, 2) / 2;\n },\n /*\r\n * https://gist.github.com/gre/1650294\r\n */\n // no easing, no acceleration\n linear: function linear(x) {\n return x;\n },\n // accelerating from zero velocity\n easeInQuad: function easeInQuad(x) {\n return x * x;\n },\n // decelerating to zero velocity\n easeOutQuad: function easeOutQuad(x) {\n return x * (2 - x);\n },\n // acceleration until halfway, then deceleration\n easeInOutQuad: function easeInOutQuad(x) {\n return x < .5 ? 2 * x * x : -1 + (4 - 2 * x) * x;\n },\n // accelerating from zero velocity \n easeInCubic: function easeInCubic(x) {\n return x * x * x;\n },\n // decelerating to zero velocity π\n easeOutCubic: function easeOutCubic(x) {\n return --x * x * x + 1;\n },\n // acceleration until halfway, then deceleration \n easeInOutCubic: function easeInOutCubic(x) {\n return x < .5 ? 4 * x * x * x : (x - 1) * (2 * x - 2) * (2 * x - 2) + 1;\n },\n // accelerating from zero velocity \n easeInQuart: function easeInQuart(x) {\n return x * x * x * x;\n },\n // decelerating to zero velocity \n easeOutQuart: function easeOutQuart(x) {\n return 1 - --x * x * x * x;\n },\n // acceleration until halfway, then deceleration\n easeInOutQuart: function easeInOutQuart(x) {\n return x < .5 ? 8 * x * x * x * x : 1 - 8 * --x * x * x * x;\n },\n // accelerating from zero velocity\n easeInQuint: function easeInQuint(x) {\n return x * x * x * x * x;\n },\n // decelerating to zero velocity\n easeOutQuint: function easeOutQuint(x) {\n return 1 + --x * x * x * x * x;\n },\n // acceleration until halfway, then deceleration \n easeInOutQuint: function easeInOutQuint(x) {\n return x < .5 ? 16 * x * x * x * x * x : 1 + 16 * --x * x * x * x * x;\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar updateHash = function updateHash(hash, historyUpdate) {\n var hashVal = hash.indexOf(\"#\") === 0 ? hash.substring(1) : hash;\n var hashToUpdate = hashVal ? \"#\" + hashVal : \"\";\n var curLoc = window && window.location;\n var urlToPush = hashToUpdate ? curLoc.pathname + curLoc.search + hashToUpdate : curLoc.pathname + curLoc.search;\n historyUpdate ? history.pushState(null, \"\", urlToPush) : history.replaceState(null, \"\", urlToPush);\n};\n\nvar getHash = function getHash() {\n return window.location.hash.replace(/^#/, \"\");\n};\n\nvar filterElementInContainer = function filterElementInContainer(container) {\n return function (element) {\n return container.contains ? container != element && container.contains(element) : !!(container.compareDocumentPosition(element) & 16);\n };\n};\n\nvar isPositioned = function isPositioned(element) {\n return getComputedStyle(element).position !== \"static\";\n};\n\nvar getElementOffsetInfoUntil = function getElementOffsetInfoUntil(element, predicate) {\n var offsetTop = element.offsetTop;\n var currentOffsetParent = element.offsetParent;\n\n while (currentOffsetParent && !predicate(currentOffsetParent)) {\n offsetTop += currentOffsetParent.offsetTop;\n currentOffsetParent = currentOffsetParent.offsetParent;\n }\n\n return { offsetTop: offsetTop, offsetParent: currentOffsetParent };\n};\n\nvar scrollOffset = function scrollOffset(c, t, horizontal) {\n if (horizontal) {\n return c === document ? t.getBoundingClientRect().left + (window.scrollX || window.pageXOffset) : getComputedStyle(c).position !== \"static\" ? t.offsetLeft : t.offsetLeft - c.offsetLeft;\n } else {\n if (c === document) {\n return t.getBoundingClientRect().top + (window.scrollY || window.pageYOffset);\n }\n\n // The offsetParent of an element, according to MDN, is its nearest positioned\n // (an element whose position is anything other than static) ancestor. The offsetTop\n // of an element is taken with respect to its offsetParent which may not neccessarily\n // be its parentElement except the parent itself is positioned.\n\n // So if containerElement is positioned, then it must be an offsetParent somewhere\n // If it happens that targetElement is a descendant of the containerElement, and there\n // is not intermediate positioned element between the two of them, i.e.\n // targetElement\"s offsetParent is the same as the containerElement, then the\n // distance between the two will be the offsetTop of the targetElement.\n // If, on the other hand, there are intermediate positioned elements between the\n // two entities, the distance between the targetElement and the containerElement\n // will be the accumulation of the offsetTop of the element and that of its\n // subsequent offsetParent until the containerElement is reached, since it\n // will also be an offsetParent at some point due to the fact that it is positioned.\n\n // If the containerElement is not positioned, then it can\"t be an offsetParent,\n // which means that the offsetTop of the targetElement would not be with respect to it.\n // However, if the two of them happen to have the same offsetParent, then\n // the distance between them will be the difference between their offsetTop\n // since they are both taken with respect to the same entity.\n // The last resort would be to accumulate their offsetTop until a common\n // offsetParent is reached (usually the document) and taking the difference\n // between the accumulated offsetTops\n\n if (isPositioned(c)) {\n if (t.offsetParent !== c) {\n var isContainerElementOrDocument = function isContainerElementOrDocument(e) {\n return e === c || e === document;\n };\n\n var _getElementOffsetInfo = getElementOffsetInfoUntil(t, isContainerElementOrDocument),\n offsetTop = _getElementOffsetInfo.offsetTop,\n offsetParent = _getElementOffsetInfo.offsetParent;\n\n if (offsetParent !== c) {\n throw new Error(\"Seems containerElement is not an ancestor of the Element\");\n }\n\n return offsetTop;\n }\n\n return t.offsetTop;\n }\n\n if (t.offsetParent === c.offsetParent) {\n return t.offsetTop - c.offsetTop;\n }\n\n var isDocument = function isDocument(e) {\n return e === document;\n };\n return getElementOffsetInfoUntil(t, isDocument).offsetTop - getElementOffsetInfoUntil(c, isDocument).offsetTop;\n }\n};\n\nexports.default = {\n updateHash: updateHash,\n getHash: getHash,\n filterElementInContainer: filterElementInContainer,\n scrollOffset: scrollOffset\n};"],"sourceRoot":""} \ No newline at end of file diff --git a/.next/static/chunks/199-0252964299f55226f07e.js b/.next/static/chunks/199-0252964299f55226f07e.js deleted file mode 100644 index 26cc53c..0000000 --- a/.next/static/chunks/199-0252964299f55226f07e.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[199],{41647:function(e,t,r){"use strict";var n=r(61682);function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==r.return||r.return()}finally{if(l)throw a}}}}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&void 0!==arguments[0]?arguments[0]:[];return new Promise((function(t){var r=function(){return y=!0,t()};j(h,e).then(r,r)}))},window.__NEXT_PRELOADREADY=w.preloadReady;var T=w;t.default=T},5152:function(e,t,r){e.exports=r(41647)},47811:function(e,t,r){"use strict";var n=r(67294),o=r(45697),a=r.n(o);function i(){return(i=Object.assign||function(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=(0,n.forwardRef)((function(e,t){var r=e.color,o=void 0===r?"currentColor":r,a=e.size,s=void 0===a?24:a,u=l(e,["color","size"]);return n.createElement("svg",i({ref:t,xmlns:"http://www.w3.org/2000/svg",width:s,height:s,viewBox:"0 0 24 24",fill:"none",stroke:o,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},u),n.createElement("path",{d:"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"}))}));s.propTypes={color:a().string,size:a().oneOfType([a().string,a().number])},s.displayName="Heart",t.Z=s},19318:function(e,t,r){"use strict";var n=r(67294),o=r(45697),a=r.n(o);function i(){return(i=Object.assign||function(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=(0,n.forwardRef)((function(e,t){var r=e.color,o=void 0===r?"currentColor":r,a=e.size,s=void 0===a?24:a,u=l(e,["color","size"]);return n.createElement("svg",i({ref:t,xmlns:"http://www.w3.org/2000/svg",width:s,height:s,viewBox:"0 0 24 24",fill:"none",stroke:o,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},u),n.createElement("path",{d:"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"}),n.createElement("rect",{x:"2",y:"9",width:"4",height:"12"}),n.createElement("circle",{cx:"4",cy:"4",r:"2"}))}));s.propTypes={color:a().string,size:a().oneOfType([a().string,a().number])},s.displayName="Linkedin",t.Z=s},117:function(e,t,r){"use strict";r.d(t,{OK:function(){return S},td:function(){return N},x4:function(){return L},mQ:function(){return C},xb:function(){return y}});r(45697);var n=r(67294);function o(e){return function(t){return!!t.type&&t.type.tabsRole===e}}var a=o("Tab"),i=o("TabList"),l=o("TabPanel");function s(){return(s=Object.assign||function(e){for(var t=1;t=this.getTabsCount())){var r=this.props;(0,r.onSelect)(e,r.selectedIndex,t)}},s.getNextTab=function(e){for(var t=this.getTabsCount(),r=e+1;re;)if(!w(this.getTab(t)))return t;return e},s.getFirstTab=function(){for(var e=this.getTabsCount(),t=0;t=0||(o[r]=e[r]);return o}(t,["children","className","disabledTabClassName","domRef","focus","forceRenderTabPanel","onSelect","selectedIndex","selectedTabClassName","selectedTabPanelClassName","environment","disableUpDownKeys"]));return n.createElement("div",m({},a,{className:f(r),onClick:this.handleClick,onKeyDown:this.handleKeyDown,ref:function(t){e.node=t,o&&o(t)},"data-tabs":!0}),this.getChildren())},o}(n.Component);function T(e,t){return(T=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}j.defaultProps={className:"react-tabs",focus:!1},j.propTypes={};var C=function(e){var t,r;function o(t){var r;return(r=e.call(this,t)||this).handleSelected=function(e,t,n){var o=r.props.onSelect,a=r.state.mode;if("function"!==typeof o||!1!==o(e,t,n)){var i={focus:"keydown"===n.type};1===a&&(i.selectedIndex=e),r.setState(i)}},r.state=o.copyPropsToState(r.props,{},t.defaultFocus),r}return r=e,(t=o).prototype=Object.create(r.prototype),t.prototype.constructor=t,T(t,r),o.getDerivedStateFromProps=function(e,t){return o.copyPropsToState(e,t)},o.getModeFromProps=function(e){return null===e.selectedIndex?1:0},o.copyPropsToState=function(e,t,r){void 0===r&&(r=!1);var n={focus:r,mode:o.getModeFromProps(e)};if(1===n.mode){var a=Math.max(0,v(e.children)-1),i=null;i=null!=t.selectedIndex?Math.min(t.selectedIndex,a):e.defaultIndex||0,n.selectedIndex=i}return n},o.prototype.render=function(){var e=this.props,t=e.children,r=(e.defaultIndex,e.defaultFocus,function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n=0||(o[r]=e[r]);return o}(e,["children","defaultIndex","defaultFocus"])),o=this.state,a=o.focus,i=o.selectedIndex;return r.focus=a,r.onSelect=this.handleSelected,null!=i&&(r.selectedIndex=i),n.createElement(j,r,t)},o}(n.Component);function P(){return(P=Object.assign||function(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,["children","className"]);return n.createElement("ul",P({},o,{className:f(r),role:"tablist"}),t)},o}(n.Component);function x(){return(x=Object.assign||function(e){for(var t=1;t=0||(o[r]=e[r]);return o}(r,["children","className","disabled","disabledClassName","focus","id","panelId","selected","selectedClassName","tabIndex","tabRef"]);return n.createElement("li",x({},h,{className:f(a,(e={},e[d]=c,e[l]=i,e)),ref:function(e){t.node=e,b&&b(e)},role:"tab",id:s,"aria-selected":c?"true":"false","aria-disabled":i?"true":"false","aria-controls":u,tabIndex:p||(c?"0":null)}),o)},o}(n.Component);function D(){return(D=Object.assign||function(e){for(var t=1;t=0||(o[r]=e[r]);return o}(t,["children","className","forceRender","id","selected","selectedClassName","tabId"]);return n.createElement("div",D({},c,{className:f(o,(e={},e[s]=l,e)),role:"tabpanel",id:i,"aria-labelledby":u}),a||l?r:null)},o}(n.Component);L.defaultProps={className:A,forceRender:!1,selectedClassName:"react-tabs__tab-panel--selected"},L.propTypes={},L.tabsRole="TabPanel"}}]); -//# sourceMappingURL=199-0252964299f55226f07e.js.map \ No newline at end of file diff --git a/.next/static/chunks/199-0252964299f55226f07e.js.map b/.next/static/chunks/199-0252964299f55226f07e.js.map deleted file mode 100644 index 6e51403..0000000 --- a/.next/static/chunks/199-0252964299f55226f07e.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack://_N_E/../next-server/lib/dynamic.tsx","webpack://_N_E/../next-server/lib/loadable-context.ts","webpack://_N_E/../next-server/lib/loadable.js","webpack://_N_E/./node_modules/next/dynamic.js","webpack://_N_E/./node_modules/react-feather/dist/icons/heart.js","webpack://_N_E/./node_modules/react-feather/dist/icons/linkedin.js","webpack://_N_E/./node_modules/react-tabs/esm/helpers/elementTypes.js","webpack://_N_E/./node_modules/react-tabs/esm/helpers/childrenDeepMap.js","webpack://_N_E/./node_modules/clsx/dist/clsx.m.js","webpack://_N_E/./node_modules/react-tabs/esm/helpers/uuid.js","webpack://_N_E/./node_modules/react-tabs/esm/components/UncontrolledTabs.js","webpack://_N_E/./node_modules/react-tabs/esm/helpers/count.js","webpack://_N_E/./node_modules/react-tabs/esm/components/Tabs.js","webpack://_N_E/./node_modules/react-tabs/esm/components/TabList.js","webpack://_N_E/./node_modules/react-tabs/esm/components/Tab.js","webpack://_N_E/./node_modules/react-tabs/esm/components/TabPanel.js"],"names":["loadableFn","Loadable","loadableOptions","loading","dynamicOptions","loadModules","modules","Object","key","value","mod","noSSR","LoadableInitializer","LoadableContext","React","ALL_INITIALIZERS","READY_INITIALIZERS","initialized","load","loader","promise","state","loaded","error","err","loadMap","obj","promises","result","res","Promise","render","props","resolve","createLoadableComponent","loadFn","options","opts","delay","timeout","webpack","subscription","sub","LoadableSubscription","getCurrentValue","subscribe","retry","moduleIds","ids","init","LoadableComponent","ref","context","useSubscription","Array","moduleName","isLoading","pastDelay","timedOut","constructor","this","_res","_loadFn","_opts","setTimeout","_err","callback","clearTimeout","flushInitializers","initializers","Error","resolvePreload","window","module","exports","_extends","assign","target","i","arguments","length","source","prototype","hasOwnProperty","call","apply","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","Heart","forwardRef","_ref","_ref$color","color","_ref$size","size","rest","xmlns","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","d","propTypes","displayName","Linkedin","x","y","cx","cy","r","makeTypeChecker","tabsRole","element","type","deepMap","children","Children","child","isTabChild","cloneElement","toVal","mix","k","str","isArray","tmp","canUseActiveElement","count","uuid","tabCount","_setPrototypeOf","o","p","setPrototypeOf","__proto__","isNode","node","isTabNode","getAttribute","isTabDisabled","UncontrolledTabs","_Component","subClass","superClass","_this","_len","args","_key","concat","tabNodes","handleKeyDown","e","_this$props","direction","disableUpDownKeys","isTabFromContainer","index","selectedIndex","preventDefault","useSelectedIndex","keyCode","handleClick","getNextTab","getPrevTab","getLastTab","getFirstTab","setSelected","slice","parentNode","filter","create","_proto","event","getTabsCount","_this$props2","onSelect","getTab","_i","getPanelsCount","panelCount","getChildren","_this2","_this$props3","disabledTabClassName","focus","forceRenderTabPanel","selectedTabClassName","selectedTabPanelClassName","environment","tabIds","panelIds","diff","push","listIndex","wasTabFocused","env","undefined","document","activeElement","determineCanUseActiveElement","some","tab","selected","tabRef","id","panelId","selectedClassName","disabledClassName","tabId","forceRender","nodeAncestor","parentElement","_this3","_this$props4","className","domRef","attributes","onClick","onKeyDown","Component","defaultProps","Tabs","handleSelected","last","mode","setState","copyPropsToState","defaultFocus","getDerivedStateFromProps","getModeFromProps","newState","maxTabIndex","Math","max","min","defaultIndex","_this$state","TabList","role","DEFAULT_CLASS","Tab","componentDidMount","checkFocus","componentDidUpdate","_cx","disabled","tabIndex","TabPanel"],"mappings":"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","file":"static/chunks/199-0252964299f55226f07e.js","sourcesContent":["import React from 'react'\nimport Loadable from './loadable'\n\nconst isServerSide = typeof window === 'undefined'\n\nexport type LoaderComponent

= Promise<\n React.ComponentType

| { default: React.ComponentType

}\n>\n\nexport type Loader

= (() => LoaderComponent

) | LoaderComponent

\n\nexport type LoaderMap = { [mdule: string]: () => Loader }\n\nexport type LoadableGeneratedOptions = {\n webpack?(): any\n modules?(): LoaderMap\n}\n\nexport type LoadableBaseOptions

= LoadableGeneratedOptions & {\n loading?: ({\n error,\n isLoading,\n pastDelay,\n }: {\n error?: Error | null\n isLoading?: boolean\n pastDelay?: boolean\n retry?: () => void\n timedOut?: boolean\n }) => JSX.Element | null\n loader?: Loader

| LoaderMap\n loadableGenerated?: LoadableGeneratedOptions\n ssr?: boolean\n}\n\nexport type LoadableOptions

= LoadableBaseOptions

& {\n render?(loader: any, props: any): JSX.Element\n}\n\nexport type DynamicOptions

= LoadableBaseOptions

& {\n /**\n * @deprecated the modules option has been planned for removal\n */\n render?(props: P, loaded: any): JSX.Element\n}\n\nexport type LoadableFn

= (\n opts: LoadableOptions

\n) => React.ComponentType

\n\nexport type LoadableComponent

= React.ComponentType

\n\nexport function noSSR

(\n LoadableInitializer: LoadableFn

,\n loadableOptions: LoadableOptions

\n): React.ComponentType

{\n // Removing webpack and modules means react-loadable won't try preloading\n delete loadableOptions.webpack\n delete loadableOptions.modules\n\n // This check is necessary to prevent react-loadable from initializing on the server\n if (!isServerSide) {\n return LoadableInitializer(loadableOptions)\n }\n\n const Loading = loadableOptions.loading!\n // This will only be rendered on the server side\n return () => (\n \n )\n}\n\n// function dynamic

(options: O):\n\nexport default function dynamic

(\n dynamicOptions: DynamicOptions

| Loader

,\n options?: DynamicOptions

\n): React.ComponentType

{\n let loadableFn: LoadableFn

= Loadable\n let loadableOptions: LoadableOptions

= {\n // A loading component is not required, so we default it\n loading: ({ error, isLoading, pastDelay }) => {\n if (!pastDelay) return null\n if (process.env.NODE_ENV === 'development') {\n if (isLoading) {\n return null\n }\n if (error) {\n return (\n

\n {error.message}\n
\n {error.stack}\n

\n )\n }\n }\n\n return null\n },\n }\n\n // Support for direct import(), eg: dynamic(import('../hello-world'))\n // Note that this is only kept for the edge case where someone is passing in a promise as first argument\n // The react-loadable babel plugin will turn dynamic(import('../hello-world')) into dynamic(() => import('../hello-world'))\n // To make sure we don't execute the import without rendering first\n if (dynamicOptions instanceof Promise) {\n loadableOptions.loader = () => dynamicOptions\n // Support for having import as a function, eg: dynamic(() => import('../hello-world'))\n } else if (typeof dynamicOptions === 'function') {\n loadableOptions.loader = dynamicOptions\n // Support for having first argument being options, eg: dynamic({loader: import('../hello-world')})\n } else if (typeof dynamicOptions === 'object') {\n loadableOptions = { ...loadableOptions, ...dynamicOptions }\n }\n\n // Support for passing options, eg: dynamic(import('../hello-world'), {loading: () =>

Loading something

})\n loadableOptions = { ...loadableOptions, ...options }\n\n if (\n typeof dynamicOptions === 'object' &&\n !(dynamicOptions instanceof Promise)\n ) {\n // show deprecation warning for `modules` key in development\n if (process.env.NODE_ENV !== 'production') {\n if (dynamicOptions.modules) {\n console.warn(\n 'The modules option for next/dynamic has been deprecated. See here for more info https://nextjs.org/docs/messages/next-dynamic-modules'\n )\n }\n }\n // Support for `render` when using a mapping, eg: `dynamic({ modules: () => {return {HelloWorld: import('../hello-world')}, render(props, loaded) {} } })\n if (dynamicOptions.render) {\n loadableOptions.render = (loaded, props) =>\n dynamicOptions.render!(props, loaded)\n }\n // Support for `modules` when using a mapping, eg: `dynamic({ modules: () => {return {HelloWorld: import('../hello-world')}, render(props, loaded) {} } })\n if (dynamicOptions.modules) {\n loadableFn = Loadable.Map\n const loadModules: LoaderMap = {}\n const modules = dynamicOptions.modules()\n Object.keys(modules).forEach((key) => {\n const value: any = modules[key]\n if (typeof value.then === 'function') {\n loadModules[key] = () => value.then((mod: any) => mod.default || mod)\n return\n }\n loadModules[key] = value\n })\n loadableOptions.loader = loadModules\n }\n }\n\n // coming from build/babel/plugins/react-loadable-plugin.js\n if (loadableOptions.loadableGenerated) {\n loadableOptions = {\n ...loadableOptions,\n ...loadableOptions.loadableGenerated,\n }\n delete loadableOptions.loadableGenerated\n }\n\n // support for disabling server side rendering, eg: dynamic(import('../hello-world'), {ssr: false})\n if (typeof loadableOptions.ssr === 'boolean') {\n if (!loadableOptions.ssr) {\n delete loadableOptions.ssr\n return noSSR(loadableFn, loadableOptions)\n }\n delete loadableOptions.ssr\n }\n\n return loadableFn(loadableOptions)\n}\n","import React from 'react'\n\ntype CaptureFn = (moduleName: string) => void\n\nexport const LoadableContext = React.createContext(null)\n\nif (process.env.NODE_ENV !== 'production') {\n LoadableContext.displayName = 'LoadableContext'\n}\n","/**\n@copyright (c) 2017-present James Kyle \n MIT License\n Permission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n The above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE\n*/\n// https://github.com/jamiebuilds/react-loadable/blob/v5.5.0/src/index.js\n// Modified to be compatible with webpack 4 / Next.js\n\nimport React from 'react'\nimport { useSubscription } from 'use-subscription'\nimport { LoadableContext } from './loadable-context'\n\nconst ALL_INITIALIZERS = []\nconst READY_INITIALIZERS = []\nlet initialized = false\n\nfunction load(loader) {\n let promise = loader()\n\n let state = {\n loading: true,\n loaded: null,\n error: null,\n }\n\n state.promise = promise\n .then((loaded) => {\n state.loading = false\n state.loaded = loaded\n return loaded\n })\n .catch((err) => {\n state.loading = false\n state.error = err\n throw err\n })\n\n return state\n}\n\nfunction loadMap(obj) {\n let state = {\n loading: false,\n loaded: {},\n error: null,\n }\n\n let promises = []\n\n try {\n Object.keys(obj).forEach((key) => {\n let result = load(obj[key])\n\n if (!result.loading) {\n state.loaded[key] = result.loaded\n state.error = result.error\n } else {\n state.loading = true\n }\n\n promises.push(result.promise)\n\n result.promise\n .then((res) => {\n state.loaded[key] = res\n })\n .catch((err) => {\n state.error = err\n })\n })\n } catch (err) {\n state.error = err\n }\n\n state.promise = Promise.all(promises)\n .then((res) => {\n state.loading = false\n return res\n })\n .catch((err) => {\n state.loading = false\n throw err\n })\n\n return state\n}\n\nfunction resolve(obj) {\n return obj && obj.__esModule ? obj.default : obj\n}\n\nfunction render(loaded, props) {\n return React.createElement(resolve(loaded), props)\n}\n\nfunction createLoadableComponent(loadFn, options) {\n let opts = Object.assign(\n {\n loader: null,\n loading: null,\n delay: 200,\n timeout: null,\n render: render,\n webpack: null,\n modules: null,\n },\n options\n )\n\n let subscription = null\n\n function init() {\n if (!subscription) {\n const sub = new LoadableSubscription(loadFn, opts)\n subscription = {\n getCurrentValue: sub.getCurrentValue.bind(sub),\n subscribe: sub.subscribe.bind(sub),\n retry: sub.retry.bind(sub),\n promise: sub.promise.bind(sub),\n }\n }\n return subscription.promise()\n }\n\n // Server only\n if (typeof window === 'undefined') {\n ALL_INITIALIZERS.push(init)\n }\n\n // Client only\n if (\n !initialized &&\n typeof window !== 'undefined' &&\n typeof opts.webpack === 'function'\n ) {\n const moduleIds = opts.webpack()\n READY_INITIALIZERS.push((ids) => {\n for (const moduleId of moduleIds) {\n if (ids.indexOf(moduleId) !== -1) {\n return init()\n }\n }\n })\n }\n\n const LoadableComponent = (props, ref) => {\n init()\n\n const context = React.useContext(LoadableContext)\n const state = useSubscription(subscription)\n\n React.useImperativeHandle(\n ref,\n () => ({\n retry: subscription.retry,\n }),\n []\n )\n\n if (context && Array.isArray(opts.modules)) {\n opts.modules.forEach((moduleName) => {\n context(moduleName)\n })\n }\n\n return React.useMemo(() => {\n if (state.loading || state.error) {\n return React.createElement(opts.loading, {\n isLoading: state.loading,\n pastDelay: state.pastDelay,\n timedOut: state.timedOut,\n error: state.error,\n retry: subscription.retry,\n })\n } else if (state.loaded) {\n return opts.render(state.loaded, props)\n } else {\n return null\n }\n }, [props, state])\n }\n\n LoadableComponent.preload = () => init()\n LoadableComponent.displayName = 'LoadableComponent'\n\n return React.forwardRef(LoadableComponent)\n}\n\nclass LoadableSubscription {\n constructor(loadFn, opts) {\n this._loadFn = loadFn\n this._opts = opts\n this._callbacks = new Set()\n this._delay = null\n this._timeout = null\n\n this.retry()\n }\n\n promise() {\n return this._res.promise\n }\n\n retry() {\n this._clearTimeouts()\n this._res = this._loadFn(this._opts.loader)\n\n this._state = {\n pastDelay: false,\n timedOut: false,\n }\n\n const { _res: res, _opts: opts } = this\n\n if (res.loading) {\n if (typeof opts.delay === 'number') {\n if (opts.delay === 0) {\n this._state.pastDelay = true\n } else {\n this._delay = setTimeout(() => {\n this._update({\n pastDelay: true,\n })\n }, opts.delay)\n }\n }\n\n if (typeof opts.timeout === 'number') {\n this._timeout = setTimeout(() => {\n this._update({ timedOut: true })\n }, opts.timeout)\n }\n }\n\n this._res.promise\n .then(() => {\n this._update({})\n this._clearTimeouts()\n })\n .catch((_err) => {\n this._update({})\n this._clearTimeouts()\n })\n this._update({})\n }\n\n _update(partial) {\n this._state = {\n ...this._state,\n error: this._res.error,\n loaded: this._res.loaded,\n loading: this._res.loading,\n ...partial,\n }\n this._callbacks.forEach((callback) => callback())\n }\n\n _clearTimeouts() {\n clearTimeout(this._delay)\n clearTimeout(this._timeout)\n }\n\n getCurrentValue() {\n return this._state\n }\n\n subscribe(callback) {\n this._callbacks.add(callback)\n return () => {\n this._callbacks.delete(callback)\n }\n }\n}\n\nfunction Loadable(opts) {\n return createLoadableComponent(load, opts)\n}\n\nfunction LoadableMap(opts) {\n if (typeof opts.render !== 'function') {\n throw new Error('LoadableMap requires a `render(loaded, props)` function')\n }\n\n return createLoadableComponent(loadMap, opts)\n}\n\nLoadable.Map = LoadableMap\n\nfunction flushInitializers(initializers, ids) {\n let promises = []\n\n while (initializers.length) {\n let init = initializers.pop()\n promises.push(init(ids))\n }\n\n return Promise.all(promises).then(() => {\n if (initializers.length) {\n return flushInitializers(initializers, ids)\n }\n })\n}\n\nLoadable.preloadAll = () => {\n return new Promise((resolveInitializers, reject) => {\n flushInitializers(ALL_INITIALIZERS).then(resolveInitializers, reject)\n })\n}\n\nLoadable.preloadReady = (ids = []) => {\n return new Promise((resolvePreload) => {\n const res = () => {\n initialized = true\n return resolvePreload()\n }\n // We always will resolve, errors should be handled within loading UIs.\n flushInitializers(READY_INITIALIZERS, ids).then(res, res)\n })\n}\n\nif (typeof window !== 'undefined') {\n window.__NEXT_PRELOADREADY = Loadable.preloadReady\n}\n\nexport default Loadable\n","module.exports = require('./dist/next-server/lib/dynamic')\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar Heart = forwardRef(function (_ref, ref) {\n var _ref$color = _ref.color,\n color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size,\n rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: color,\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, rest), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"\n }));\n});\nHeart.propTypes = {\n color: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nHeart.displayName = 'Heart';\nexport default Heart;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar Linkedin = forwardRef(function (_ref, ref) {\n var _ref$color = _ref.color,\n color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size,\n rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: color,\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, rest), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z\"\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: \"2\",\n y: \"9\",\n width: \"4\",\n height: \"12\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"4\",\n cy: \"4\",\n r: \"2\"\n }));\n});\nLinkedin.propTypes = {\n color: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nLinkedin.displayName = 'Linkedin';\nexport default Linkedin;","function makeTypeChecker(tabsRole) {\n return function (element) {\n return !!element.type && element.type.tabsRole === tabsRole;\n };\n}\n\nexport var isTab = makeTypeChecker('Tab');\nexport var isTabList = makeTypeChecker('TabList');\nexport var isTabPanel = makeTypeChecker('TabPanel');","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { Children, cloneElement } from 'react';\nimport { isTabPanel, isTab, isTabList } from './elementTypes';\n\nfunction isTabChild(child) {\n return isTab(child) || isTabList(child) || isTabPanel(child);\n}\n\nexport function deepMap(children, callback) {\n return Children.map(children, function (child) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/reactjs/react-tabs/issues/37\n if (child === null) return null;\n\n if (isTabChild(child)) {\n return callback(child);\n }\n\n if (child.props && child.props.children && typeof child.props.children === 'object') {\n // Clone the child that has children and map them too\n return /*#__PURE__*/cloneElement(child, _extends({}, child.props, {\n children: deepMap(child.props.children, callback)\n }));\n }\n\n return child;\n });\n}\nexport function deepForEach(children, callback) {\n return Children.forEach(children, function (child) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/reactjs/react-tabs/issues/37\n if (child === null) return;\n\n if (isTab(child) || isTabPanel(child)) {\n callback(child);\n } else if (child.props && child.props.children && typeof child.props.children === 'object') {\n if (isTabList(child)) callback(child);\n deepForEach(child.props.children, callback);\n }\n });\n}","function toVal(mix) {\n\tvar k, y, str='';\n\n\tif (typeof mix === 'string' || typeof mix === 'number') {\n\t\tstr += mix;\n\t} else if (typeof mix === 'object') {\n\t\tif (Array.isArray(mix)) {\n\t\t\tfor (k=0; k < mix.length; k++) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tif (y = toVal(mix[k])) {\n\t\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\t\tstr += y;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor (k in mix) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\tstr += k;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn str;\n}\n\nexport default function () {\n\tvar i=0, tmp, x, str='';\n\twhile (i < arguments.length) {\n\t\tif (tmp = arguments[i++]) {\n\t\t\tif (x = toVal(tmp)) {\n\t\t\t\tstr && (str += ' ');\n\t\t\t\tstr += x\n\t\t\t}\n\t\t}\n\t}\n\treturn str;\n}\n","// Get a universally unique identifier\nvar count = 0;\nexport default function uuid() {\n return \"react-tabs-\" + count++;\n}\nexport function reset() {\n count = 0;\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport PropTypes from 'prop-types';\nimport React, { cloneElement, Component } from 'react';\nimport cx from 'clsx';\nimport uuid from '../helpers/uuid';\nimport { childrenPropType } from '../helpers/propTypes';\nimport { getPanelsCount as _getPanelsCount, getTabsCount as _getTabsCount } from '../helpers/count';\nimport { deepMap } from '../helpers/childrenDeepMap';\nimport { isTabList, isTabPanel, isTab } from '../helpers/elementTypes';\n\nfunction isNode(node) {\n return node && 'getAttribute' in node;\n} // Determine if a node from event.target is a Tab element\n\n\nfunction isTabNode(node) {\n return isNode(node) && node.getAttribute('role') === 'tab';\n} // Determine if a tab node is disabled\n\n\nfunction isTabDisabled(node) {\n return isNode(node) && node.getAttribute('aria-disabled') === 'true';\n}\n\nvar canUseActiveElement;\n\nfunction determineCanUseActiveElement(environment) {\n var env = environment || (typeof window !== 'undefined' ? window : undefined);\n\n try {\n canUseActiveElement = !!(typeof env !== 'undefined' && env.document && env.document.activeElement);\n } catch (e) {\n // Work around for IE bug when accessing document.activeElement in an iframe\n // Refer to the following resources:\n // http://stackoverflow.com/a/10982960/369687\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/12733599\n canUseActiveElement = false;\n }\n}\n\nvar UncontrolledTabs = /*#__PURE__*/function (_Component) {\n _inheritsLoose(UncontrolledTabs, _Component);\n\n function UncontrolledTabs() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n _this.tabNodes = [];\n\n _this.handleKeyDown = function (e) {\n var _this$props = _this.props,\n direction = _this$props.direction,\n disableUpDownKeys = _this$props.disableUpDownKeys;\n\n if (_this.isTabFromContainer(e.target)) {\n var index = _this.props.selectedIndex;\n var preventDefault = false;\n var useSelectedIndex = false;\n\n if (e.keyCode === 32 || e.keyCode === 13) {\n preventDefault = true;\n useSelectedIndex = false;\n\n _this.handleClick(e);\n }\n\n if (e.keyCode === 37 || !disableUpDownKeys && e.keyCode === 38) {\n // Select next tab to the left, validate if up arrow is not disabled\n if (direction === 'rtl') {\n index = _this.getNextTab(index);\n } else {\n index = _this.getPrevTab(index);\n }\n\n preventDefault = true;\n useSelectedIndex = true;\n } else if (e.keyCode === 39 || !disableUpDownKeys && e.keyCode === 40) {\n // Select next tab to the right, validate if down arrow is not disabled\n if (direction === 'rtl') {\n index = _this.getPrevTab(index);\n } else {\n index = _this.getNextTab(index);\n }\n\n preventDefault = true;\n useSelectedIndex = true;\n } else if (e.keyCode === 35) {\n // Select last tab (End key)\n index = _this.getLastTab();\n preventDefault = true;\n useSelectedIndex = true;\n } else if (e.keyCode === 36) {\n // Select first tab (Home key)\n index = _this.getFirstTab();\n preventDefault = true;\n useSelectedIndex = true;\n } // This prevents scrollbars from moving around\n\n\n if (preventDefault) {\n e.preventDefault();\n } // Only use the selected index in the state if we're not using the tabbed index\n\n\n if (useSelectedIndex) {\n _this.setSelected(index, e);\n }\n }\n };\n\n _this.handleClick = function (e) {\n var node = e.target;\n\n do {\n if (_this.isTabFromContainer(node)) {\n if (isTabDisabled(node)) {\n return;\n }\n\n var index = [].slice.call(node.parentNode.children).filter(isTabNode).indexOf(node);\n\n _this.setSelected(index, e);\n\n return;\n }\n } while ((node = node.parentNode) != null);\n };\n\n return _this;\n }\n\n var _proto = UncontrolledTabs.prototype;\n\n _proto.setSelected = function setSelected(index, event) {\n // Check index boundary\n if (index < 0 || index >= this.getTabsCount()) return;\n var _this$props2 = this.props,\n onSelect = _this$props2.onSelect,\n selectedIndex = _this$props2.selectedIndex; // Call change event handler\n\n onSelect(index, selectedIndex, event);\n };\n\n _proto.getNextTab = function getNextTab(index) {\n var count = this.getTabsCount(); // Look for non-disabled tab from index to the last tab on the right\n\n for (var i = index + 1; i < count; i++) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n } // If no tab found, continue searching from first on left to index\n\n\n for (var _i = 0; _i < index; _i++) {\n if (!isTabDisabled(this.getTab(_i))) {\n return _i;\n }\n } // No tabs are disabled, return index\n\n\n return index;\n };\n\n _proto.getPrevTab = function getPrevTab(index) {\n var i = index; // Look for non-disabled tab from index to first tab on the left\n\n while (i--) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n } // If no tab found, continue searching from last tab on right to index\n\n\n i = this.getTabsCount();\n\n while (i-- > index) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n } // No tabs are disabled, return index\n\n\n return index;\n };\n\n _proto.getFirstTab = function getFirstTab() {\n var count = this.getTabsCount(); // Look for non disabled tab from the first tab\n\n for (var i = 0; i < count; i++) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n return null;\n };\n\n _proto.getLastTab = function getLastTab() {\n var i = this.getTabsCount(); // Look for non disabled tab from the last tab\n\n while (i--) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n return null;\n };\n\n _proto.getTabsCount = function getTabsCount() {\n var children = this.props.children;\n return _getTabsCount(children);\n };\n\n _proto.getPanelsCount = function getPanelsCount() {\n var children = this.props.children;\n return _getPanelsCount(children);\n };\n\n _proto.getTab = function getTab(index) {\n return this.tabNodes[\"tabs-\" + index];\n };\n\n _proto.getChildren = function getChildren() {\n var _this2 = this;\n\n var index = 0;\n var _this$props3 = this.props,\n children = _this$props3.children,\n disabledTabClassName = _this$props3.disabledTabClassName,\n focus = _this$props3.focus,\n forceRenderTabPanel = _this$props3.forceRenderTabPanel,\n selectedIndex = _this$props3.selectedIndex,\n selectedTabClassName = _this$props3.selectedTabClassName,\n selectedTabPanelClassName = _this$props3.selectedTabPanelClassName,\n environment = _this$props3.environment;\n this.tabIds = this.tabIds || [];\n this.panelIds = this.panelIds || [];\n var diff = this.tabIds.length - this.getTabsCount(); // Add ids if new tabs have been added\n // Don't bother removing ids, just keep them in case they are added again\n // This is more efficient, and keeps the uuid counter under control\n\n while (diff++ < 0) {\n this.tabIds.push(uuid());\n this.panelIds.push(uuid());\n } // Map children to dynamically setup refs\n\n\n return deepMap(children, function (child) {\n var result = child; // Clone TabList and Tab components to have refs\n\n if (isTabList(child)) {\n var listIndex = 0; // Figure out if the current focus in the DOM is set on a Tab\n // If it is we should keep the focus on the next selected tab\n\n var wasTabFocused = false;\n\n if (canUseActiveElement == null) {\n determineCanUseActiveElement(environment);\n }\n\n if (canUseActiveElement) {\n wasTabFocused = React.Children.toArray(child.props.children).filter(isTab).some(function (tab, i) {\n var env = environment || (typeof window !== 'undefined' ? window : undefined);\n return env && env.document.activeElement === _this2.getTab(i);\n });\n }\n\n result = /*#__PURE__*/cloneElement(child, {\n children: deepMap(child.props.children, function (tab) {\n var key = \"tabs-\" + listIndex;\n var selected = selectedIndex === listIndex;\n var props = {\n tabRef: function tabRef(node) {\n _this2.tabNodes[key] = node;\n },\n id: _this2.tabIds[listIndex],\n panelId: _this2.panelIds[listIndex],\n selected: selected,\n focus: selected && (focus || wasTabFocused)\n };\n if (selectedTabClassName) props.selectedClassName = selectedTabClassName;\n if (disabledTabClassName) props.disabledClassName = disabledTabClassName;\n listIndex++;\n return /*#__PURE__*/cloneElement(tab, props);\n })\n });\n } else if (isTabPanel(child)) {\n var props = {\n id: _this2.panelIds[index],\n tabId: _this2.tabIds[index],\n selected: selectedIndex === index\n };\n if (forceRenderTabPanel) props.forceRender = forceRenderTabPanel;\n if (selectedTabPanelClassName) props.selectedClassName = selectedTabPanelClassName;\n index++;\n result = /*#__PURE__*/cloneElement(child, props);\n }\n\n return result;\n });\n };\n\n /**\n * Determine if a node from event.target is a Tab element for the current Tabs container.\n * If the clicked element is not a Tab, it returns false.\n * If it finds another Tabs container between the Tab and `this`, it returns false.\n */\n _proto.isTabFromContainer = function isTabFromContainer(node) {\n // return immediately if the clicked element is not a Tab.\n if (!isTabNode(node)) {\n return false;\n } // Check if the first occurrence of a Tabs container is `this` one.\n\n\n var nodeAncestor = node.parentElement;\n\n do {\n if (nodeAncestor === this.node) return true;\n if (nodeAncestor.getAttribute('data-tabs')) break;\n nodeAncestor = nodeAncestor.parentElement;\n } while (nodeAncestor);\n\n return false;\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n // Delete all known props, so they don't get added to DOM\n var _this$props4 = this.props,\n children = _this$props4.children,\n className = _this$props4.className,\n disabledTabClassName = _this$props4.disabledTabClassName,\n domRef = _this$props4.domRef,\n focus = _this$props4.focus,\n forceRenderTabPanel = _this$props4.forceRenderTabPanel,\n onSelect = _this$props4.onSelect,\n selectedIndex = _this$props4.selectedIndex,\n selectedTabClassName = _this$props4.selectedTabClassName,\n selectedTabPanelClassName = _this$props4.selectedTabPanelClassName,\n environment = _this$props4.environment,\n disableUpDownKeys = _this$props4.disableUpDownKeys,\n attributes = _objectWithoutPropertiesLoose(_this$props4, [\"children\", \"className\", \"disabledTabClassName\", \"domRef\", \"focus\", \"forceRenderTabPanel\", \"onSelect\", \"selectedIndex\", \"selectedTabClassName\", \"selectedTabPanelClassName\", \"environment\", \"disableUpDownKeys\"]);\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, attributes, {\n className: cx(className),\n onClick: this.handleClick,\n onKeyDown: this.handleKeyDown,\n ref: function ref(node) {\n _this3.node = node;\n if (domRef) domRef(node);\n },\n \"data-tabs\": true\n }), this.getChildren());\n };\n\n return UncontrolledTabs;\n}(Component);\n\nUncontrolledTabs.defaultProps = {\n className: 'react-tabs',\n focus: false\n};\nexport { UncontrolledTabs as default };\nUncontrolledTabs.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: childrenPropType,\n direction: PropTypes.oneOf(['rtl', 'ltr']),\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n disabledTabClassName: PropTypes.string,\n disableUpDownKeys: PropTypes.bool,\n domRef: PropTypes.func,\n focus: PropTypes.bool,\n forceRenderTabPanel: PropTypes.bool,\n onSelect: PropTypes.func.isRequired,\n selectedIndex: PropTypes.number.isRequired,\n selectedTabClassName: PropTypes.string,\n selectedTabPanelClassName: PropTypes.string,\n environment: PropTypes.object\n} : {};","import { deepForEach } from './childrenDeepMap';\nimport { isTab, isTabPanel } from './elementTypes';\nexport function getTabsCount(children) {\n var tabCount = 0;\n deepForEach(children, function (child) {\n if (isTab(child)) tabCount++;\n });\n return tabCount;\n}\nexport function getPanelsCount(children) {\n var panelCount = 0;\n deepForEach(children, function (child) {\n if (isTabPanel(child)) panelCount++;\n });\n return panelCount;\n}","function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport { childrenPropType, onSelectPropType, selectedIndexPropType } from '../helpers/propTypes';\nimport UncontrolledTabs from './UncontrolledTabs';\nimport { getTabsCount } from '../helpers/count';\nvar MODE_CONTROLLED = 0;\nvar MODE_UNCONTROLLED = 1;\n\nvar Tabs = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Tabs, _Component);\n\n function Tabs(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n\n _this.handleSelected = function (index, last, event) {\n var onSelect = _this.props.onSelect;\n var mode = _this.state.mode; // Call change event handler\n\n if (typeof onSelect === 'function') {\n // Check if the change event handler cancels the tab change\n if (onSelect(index, last, event) === false) return;\n }\n\n var state = {\n // Set focus if the change was triggered from the keyboard\n focus: event.type === 'keydown'\n };\n\n if (mode === MODE_UNCONTROLLED) {\n // Update selected index\n state.selectedIndex = index;\n }\n\n _this.setState(state);\n };\n\n _this.state = Tabs.copyPropsToState(_this.props, {}, props.defaultFocus);\n return _this;\n }\n\n Tabs.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n return Tabs.copyPropsToState(props, state);\n };\n\n Tabs.getModeFromProps = function getModeFromProps(props) {\n return props.selectedIndex === null ? MODE_UNCONTROLLED : MODE_CONTROLLED;\n };\n\n // preserve the existing selectedIndex from state.\n // If the state has not selectedIndex, default to the defaultIndex or 0\n Tabs.copyPropsToState = function copyPropsToState(props, state, focus) {\n if (focus === void 0) {\n focus = false;\n }\n\n if (process.env.NODE_ENV !== 'production' && state.mode !== undefined && state.mode !== Tabs.getModeFromProps(props)) {\n throw new Error(\"Switching between controlled mode (by using `selectedIndex`) and uncontrolled mode is not supported in `Tabs`.\\nFor more information about controlled and uncontrolled mode of react-tabs see https://github.com/reactjs/react-tabs#controlled-vs-uncontrolled-mode.\");\n }\n\n var newState = {\n focus: focus,\n mode: Tabs.getModeFromProps(props)\n };\n\n if (newState.mode === MODE_UNCONTROLLED) {\n var maxTabIndex = Math.max(0, getTabsCount(props.children) - 1);\n var selectedIndex = null;\n\n if (state.selectedIndex != null) {\n selectedIndex = Math.min(state.selectedIndex, maxTabIndex);\n } else {\n selectedIndex = props.defaultIndex || 0;\n }\n\n newState.selectedIndex = selectedIndex;\n }\n\n return newState;\n };\n\n var _proto = Tabs.prototype;\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n defaultIndex = _this$props.defaultIndex,\n defaultFocus = _this$props.defaultFocus,\n props = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"defaultIndex\", \"defaultFocus\"]);\n\n var _this$state = this.state,\n focus = _this$state.focus,\n selectedIndex = _this$state.selectedIndex;\n props.focus = focus;\n props.onSelect = this.handleSelected;\n\n if (selectedIndex != null) {\n props.selectedIndex = selectedIndex;\n }\n\n return /*#__PURE__*/React.createElement(UncontrolledTabs, props, children);\n };\n\n return Tabs;\n}(Component);\n\nTabs.defaultProps = {\n defaultFocus: false,\n forceRenderTabPanel: false,\n selectedIndex: null,\n defaultIndex: null,\n environment: null,\n disableUpDownKeys: false\n};\nexport { Tabs as default };\nTabs.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: childrenPropType,\n direction: PropTypes.oneOf(['rtl', 'ltr']),\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n defaultFocus: PropTypes.bool,\n defaultIndex: PropTypes.number,\n disabledTabClassName: PropTypes.string,\n disableUpDownKeys: PropTypes.bool,\n domRef: PropTypes.func,\n forceRenderTabPanel: PropTypes.bool,\n onSelect: onSelectPropType,\n selectedIndex: selectedIndexPropType,\n selectedTabClassName: PropTypes.string,\n selectedTabPanelClassName: PropTypes.string,\n environment: PropTypes.object\n} : {};\nTabs.tabsRole = 'Tabs';","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport cx from 'clsx';\n\nvar TabList = /*#__PURE__*/function (_Component) {\n _inheritsLoose(TabList, _Component);\n\n function TabList() {\n return _Component.apply(this, arguments) || this;\n }\n\n var _proto = TabList.prototype;\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n className = _this$props.className,\n attributes = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"className\"]);\n\n return /*#__PURE__*/React.createElement(\"ul\", _extends({}, attributes, {\n className: cx(className),\n role: \"tablist\"\n }), children);\n };\n\n return TabList;\n}(Component);\n\nTabList.defaultProps = {\n className: 'react-tabs__tab-list'\n};\nexport { TabList as default };\nTabList.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object])\n} : {};\nTabList.tabsRole = 'TabList';","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport cx from 'clsx';\nvar DEFAULT_CLASS = 'react-tabs__tab';\n\nvar Tab = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Tab, _Component);\n\n function Tab() {\n return _Component.apply(this, arguments) || this;\n }\n\n var _proto = Tab.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.checkFocus();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.checkFocus();\n };\n\n _proto.checkFocus = function checkFocus() {\n var _this$props = this.props,\n selected = _this$props.selected,\n focus = _this$props.focus;\n\n if (selected && focus) {\n this.node.focus();\n }\n };\n\n _proto.render = function render() {\n var _cx,\n _this = this;\n\n var _this$props2 = this.props,\n children = _this$props2.children,\n className = _this$props2.className,\n disabled = _this$props2.disabled,\n disabledClassName = _this$props2.disabledClassName,\n focus = _this$props2.focus,\n id = _this$props2.id,\n panelId = _this$props2.panelId,\n selected = _this$props2.selected,\n selectedClassName = _this$props2.selectedClassName,\n tabIndex = _this$props2.tabIndex,\n tabRef = _this$props2.tabRef,\n attributes = _objectWithoutPropertiesLoose(_this$props2, [\"children\", \"className\", \"disabled\", \"disabledClassName\", \"focus\", \"id\", \"panelId\", \"selected\", \"selectedClassName\", \"tabIndex\", \"tabRef\"]);\n\n return /*#__PURE__*/React.createElement(\"li\", _extends({}, attributes, {\n className: cx(className, (_cx = {}, _cx[selectedClassName] = selected, _cx[disabledClassName] = disabled, _cx)),\n ref: function ref(node) {\n _this.node = node;\n if (tabRef) tabRef(node);\n },\n role: \"tab\",\n id: id,\n \"aria-selected\": selected ? 'true' : 'false',\n \"aria-disabled\": disabled ? 'true' : 'false',\n \"aria-controls\": panelId,\n tabIndex: tabIndex || (selected ? '0' : null)\n }), children);\n };\n\n return Tab;\n}(Component);\n\nTab.defaultProps = {\n className: DEFAULT_CLASS,\n disabledClassName: DEFAULT_CLASS + \"--disabled\",\n focus: false,\n id: null,\n panelId: null,\n selected: false,\n selectedClassName: DEFAULT_CLASS + \"--selected\"\n};\nexport { Tab as default };\nTab.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: PropTypes.oneOfType([PropTypes.array, PropTypes.object, PropTypes.string]),\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n disabled: PropTypes.bool,\n tabIndex: PropTypes.string,\n disabledClassName: PropTypes.string,\n focus: PropTypes.bool,\n // private\n id: PropTypes.string,\n // private\n panelId: PropTypes.string,\n // private\n selected: PropTypes.bool,\n // private\n selectedClassName: PropTypes.string,\n tabRef: PropTypes.func // private\n\n} : {};\nTab.tabsRole = 'Tab';","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport cx from 'clsx';\nvar DEFAULT_CLASS = 'react-tabs__tab-panel';\n\nvar TabPanel = /*#__PURE__*/function (_Component) {\n _inheritsLoose(TabPanel, _Component);\n\n function TabPanel() {\n return _Component.apply(this, arguments) || this;\n }\n\n var _proto = TabPanel.prototype;\n\n _proto.render = function render() {\n var _cx;\n\n var _this$props = this.props,\n children = _this$props.children,\n className = _this$props.className,\n forceRender = _this$props.forceRender,\n id = _this$props.id,\n selected = _this$props.selected,\n selectedClassName = _this$props.selectedClassName,\n tabId = _this$props.tabId,\n attributes = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"className\", \"forceRender\", \"id\", \"selected\", \"selectedClassName\", \"tabId\"]);\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, attributes, {\n className: cx(className, (_cx = {}, _cx[selectedClassName] = selected, _cx)),\n role: \"tabpanel\",\n id: id,\n \"aria-labelledby\": tabId\n }), forceRender || selected ? children : null);\n };\n\n return TabPanel;\n}(Component);\n\nTabPanel.defaultProps = {\n className: DEFAULT_CLASS,\n forceRender: false,\n selectedClassName: DEFAULT_CLASS + \"--selected\"\n};\nexport { TabPanel as default };\nTabPanel.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: PropTypes.node,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n forceRender: PropTypes.bool,\n id: PropTypes.string,\n // private\n selected: PropTypes.bool,\n // private\n selectedClassName: PropTypes.string,\n tabId: PropTypes.string // private\n\n} : {};\nTabPanel.tabsRole = 'TabPanel';"],"sourceRoot":""} \ No newline at end of file diff --git a/.next/static/chunks/2544-e19bae728a879be227e8.js b/.next/static/chunks/2544-e19bae728a879be227e8.js new file mode 100644 index 0000000..12843f0 --- /dev/null +++ b/.next/static/chunks/2544-e19bae728a879be227e8.js @@ -0,0 +1,2 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2544],{47811:function(e,t,n){"use strict";var r=n(67294),o=n(45697),a=n.n(o);function s(){return(s=Object.assign||function(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var i=(0,r.forwardRef)((function(e,t){var n=e.color,o=void 0===n?"currentColor":n,a=e.size,i=void 0===a?24:a,c=l(e,["color","size"]);return r.createElement("svg",s({ref:t,xmlns:"http://www.w3.org/2000/svg",width:i,height:i,viewBox:"0 0 24 24",fill:"none",stroke:o,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},c),r.createElement("path",{d:"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"}))}));i.propTypes={color:a().string,size:a().oneOfType([a().string,a().number])},i.displayName="Heart",t.Z=i},117:function(e,t,n){"use strict";n.d(t,{OK:function(){return R},td:function(){return j},x4:function(){return A},mQ:function(){return P},xb:function(){return y}});n(45697);var r=n(67294);function o(e){return function(t){return!!t.type&&t.type.tabsRole===e}}var a=o("Tab"),s=o("TabList"),l=o("TabPanel");function i(){return(i=Object.assign||function(e){for(var t=1;t=this.getTabsCount())){var n=this.props;(0,n.onSelect)(e,n.selectedIndex,t)}},i.getNextTab=function(e){for(var t=this.getTabsCount(),n=e+1;ne;)if(!O(this.getTab(t)))return t;return e},i.getFirstTab=function(){for(var e=this.getTabsCount(),t=0;t=0||(o[n]=e[n]);return o}(t,["children","className","disabledTabClassName","domRef","focus","forceRenderTabPanel","onSelect","selectedIndex","selectedTabClassName","selectedTabPanelClassName","environment","disableUpDownKeys"]));return r.createElement("div",m({},a,{className:f(n),onClick:this.handleClick,onKeyDown:this.handleKeyDown,ref:function(t){e.node=t,o&&o(t)},"data-tabs":!0}),this.getChildren())},o}(r.Component);function I(e,t){return(I=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}N.defaultProps={className:"react-tabs",focus:!1},N.propTypes={};var P=function(e){var t,n;function o(t){var n;return(n=e.call(this,t)||this).handleSelected=function(e,t,r){var o=n.props.onSelect,a=n.state.mode;if("function"!==typeof o||!1!==o(e,t,r)){var s={focus:"keydown"===r.type};1===a&&(s.selectedIndex=e),n.setState(s)}},n.state=o.copyPropsToState(n.props,{},t.defaultFocus),n}return n=e,(t=o).prototype=Object.create(n.prototype),t.prototype.constructor=t,I(t,n),o.getDerivedStateFromProps=function(e,t){return o.copyPropsToState(e,t)},o.getModeFromProps=function(e){return null===e.selectedIndex?1:0},o.copyPropsToState=function(e,t,n){void 0===n&&(n=!1);var r={focus:n,mode:o.getModeFromProps(e)};if(1===r.mode){var a=Math.max(0,v(e.children)-1),s=null;s=null!=t.selectedIndex?Math.min(t.selectedIndex,a):e.defaultIndex||0,r.selectedIndex=s}return r},o.prototype.render=function(){var e=this.props,t=e.children,n=(e.defaultIndex,e.defaultFocus,function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,["children","defaultIndex","defaultFocus"])),o=this.state,a=o.focus,s=o.selectedIndex;return n.focus=a,n.onSelect=this.handleSelected,null!=s&&(n.selectedIndex=s),r.createElement(N,n,t)},o}(r.Component);function w(){return(w=Object.assign||function(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,["children","className"]);return r.createElement("ul",w({},o,{className:f(n),role:"tablist"}),t)},o}(r.Component);function _(){return(_=Object.assign||function(e){for(var t=1;t=0||(o[n]=e[n]);return o}(n,["children","className","disabled","disabledClassName","focus","id","panelId","selected","selectedClassName","tabIndex","tabRef"]);return r.createElement("li",_({},h,{className:f(a,(e={},e[d]=u,e[l]=s,e)),ref:function(e){t.node=e,b&&b(e)},role:"tab",id:i,"aria-selected":u?"true":"false","aria-disabled":s?"true":"false","aria-controls":c,tabIndex:p||(u?"0":null)}),o)},o}(r.Component);function S(){return(S=Object.assign||function(e){for(var t=1;t=0||(o[n]=e[n]);return o}(t,["children","className","forceRender","id","selected","selectedClassName","tabId"]);return r.createElement("div",S({},u,{className:f(o,(e={},e[i]=l,e)),role:"tabpanel",id:s,"aria-labelledby":c}),a||l?n:null)},o}(r.Component);A.defaultProps={className:D,forceRender:!1,selectedClassName:"react-tabs__tab-panel--selected"},A.propTypes={},A.tabsRole="TabPanel"}}]); +//# sourceMappingURL=2544-e19bae728a879be227e8.js.map \ No newline at end of file diff --git a/.next/static/chunks/2544-e19bae728a879be227e8.js.map b/.next/static/chunks/2544-e19bae728a879be227e8.js.map new file mode 100644 index 0000000..698d6dd --- /dev/null +++ b/.next/static/chunks/2544-e19bae728a879be227e8.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack://_N_E/./node_modules/react-feather/dist/icons/heart.js","webpack://_N_E/./node_modules/react-tabs/esm/helpers/elementTypes.js","webpack://_N_E/./node_modules/react-tabs/esm/helpers/childrenDeepMap.js","webpack://_N_E/./node_modules/clsx/dist/clsx.m.js","webpack://_N_E/./node_modules/react-tabs/esm/helpers/uuid.js","webpack://_N_E/./node_modules/react-tabs/esm/components/UncontrolledTabs.js","webpack://_N_E/./node_modules/react-tabs/esm/helpers/count.js","webpack://_N_E/./node_modules/react-tabs/esm/components/Tabs.js","webpack://_N_E/./node_modules/react-tabs/esm/components/TabList.js","webpack://_N_E/./node_modules/react-tabs/esm/components/Tab.js","webpack://_N_E/./node_modules/react-tabs/esm/components/TabPanel.js"],"names":["_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","Heart","forwardRef","_ref","ref","_ref$color","color","_ref$size","size","rest","xmlns","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","d","propTypes","displayName","makeTypeChecker","tabsRole","element","type","deepMap","children","callback","Children","child","isTabChild","props","cloneElement","toVal","mix","k","y","str","Array","isArray","tmp","x","canUseActiveElement","count","uuid","tabCount","_setPrototypeOf","o","p","setPrototypeOf","__proto__","isNode","node","isTabNode","getAttribute","isTabDisabled","UncontrolledTabs","_Component","subClass","superClass","_this","_len","args","_key","concat","tabNodes","handleKeyDown","e","_this$props","direction","disableUpDownKeys","isTabFromContainer","index","selectedIndex","preventDefault","useSelectedIndex","keyCode","handleClick","getNextTab","getPrevTab","getLastTab","getFirstTab","setSelected","slice","parentNode","filter","create","constructor","_proto","event","getTabsCount","_this$props2","onSelect","getTab","_i","getPanelsCount","panelCount","getChildren","_this2","_this$props3","disabledTabClassName","focus","forceRenderTabPanel","selectedTabClassName","selectedTabPanelClassName","environment","tabIds","panelIds","diff","push","result","listIndex","wasTabFocused","env","window","undefined","document","activeElement","determineCanUseActiveElement","some","tab","selected","tabRef","id","panelId","selectedClassName","disabledClassName","tabId","forceRender","nodeAncestor","parentElement","render","_this3","_this$props4","className","domRef","attributes","onClick","onKeyDown","Component","defaultProps","Tabs","handleSelected","last","mode","state","setState","copyPropsToState","defaultFocus","getDerivedStateFromProps","getModeFromProps","newState","maxTabIndex","Math","max","min","defaultIndex","_this$state","TabList","role","DEFAULT_CLASS","Tab","componentDidMount","checkFocus","componentDidUpdate","_cx","disabled","tabIndex","TabPanel"],"mappings":"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","file":"static/chunks/2544-e19bae728a879be227e8.js","sourcesContent":["function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar Heart = forwardRef(function (_ref, ref) {\n var _ref$color = _ref.color,\n color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size,\n rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: color,\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, rest), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"\n }));\n});\nHeart.propTypes = {\n color: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nHeart.displayName = 'Heart';\nexport default Heart;","function makeTypeChecker(tabsRole) {\n return function (element) {\n return !!element.type && element.type.tabsRole === tabsRole;\n };\n}\n\nexport var isTab = makeTypeChecker('Tab');\nexport var isTabList = makeTypeChecker('TabList');\nexport var isTabPanel = makeTypeChecker('TabPanel');","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { Children, cloneElement } from 'react';\nimport { isTabPanel, isTab, isTabList } from './elementTypes';\n\nfunction isTabChild(child) {\n return isTab(child) || isTabList(child) || isTabPanel(child);\n}\n\nexport function deepMap(children, callback) {\n return Children.map(children, function (child) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/reactjs/react-tabs/issues/37\n if (child === null) return null;\n\n if (isTabChild(child)) {\n return callback(child);\n }\n\n if (child.props && child.props.children && typeof child.props.children === 'object') {\n // Clone the child that has children and map them too\n return /*#__PURE__*/cloneElement(child, _extends({}, child.props, {\n children: deepMap(child.props.children, callback)\n }));\n }\n\n return child;\n });\n}\nexport function deepForEach(children, callback) {\n return Children.forEach(children, function (child) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/reactjs/react-tabs/issues/37\n if (child === null) return;\n\n if (isTab(child) || isTabPanel(child)) {\n callback(child);\n } else if (child.props && child.props.children && typeof child.props.children === 'object') {\n if (isTabList(child)) callback(child);\n deepForEach(child.props.children, callback);\n }\n });\n}","function toVal(mix) {\n\tvar k, y, str='';\n\n\tif (typeof mix === 'string' || typeof mix === 'number') {\n\t\tstr += mix;\n\t} else if (typeof mix === 'object') {\n\t\tif (Array.isArray(mix)) {\n\t\t\tfor (k=0; k < mix.length; k++) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tif (y = toVal(mix[k])) {\n\t\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\t\tstr += y;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor (k in mix) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\tstr += k;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn str;\n}\n\nexport default function () {\n\tvar i=0, tmp, x, str='';\n\twhile (i < arguments.length) {\n\t\tif (tmp = arguments[i++]) {\n\t\t\tif (x = toVal(tmp)) {\n\t\t\t\tstr && (str += ' ');\n\t\t\t\tstr += x\n\t\t\t}\n\t\t}\n\t}\n\treturn str;\n}\n","// Get a universally unique identifier\nvar count = 0;\nexport default function uuid() {\n return \"react-tabs-\" + count++;\n}\nexport function reset() {\n count = 0;\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport PropTypes from 'prop-types';\nimport React, { cloneElement, Component } from 'react';\nimport cx from 'clsx';\nimport uuid from '../helpers/uuid';\nimport { childrenPropType } from '../helpers/propTypes';\nimport { getPanelsCount as _getPanelsCount, getTabsCount as _getTabsCount } from '../helpers/count';\nimport { deepMap } from '../helpers/childrenDeepMap';\nimport { isTabList, isTabPanel, isTab } from '../helpers/elementTypes';\n\nfunction isNode(node) {\n return node && 'getAttribute' in node;\n} // Determine if a node from event.target is a Tab element\n\n\nfunction isTabNode(node) {\n return isNode(node) && node.getAttribute('role') === 'tab';\n} // Determine if a tab node is disabled\n\n\nfunction isTabDisabled(node) {\n return isNode(node) && node.getAttribute('aria-disabled') === 'true';\n}\n\nvar canUseActiveElement;\n\nfunction determineCanUseActiveElement(environment) {\n var env = environment || (typeof window !== 'undefined' ? window : undefined);\n\n try {\n canUseActiveElement = !!(typeof env !== 'undefined' && env.document && env.document.activeElement);\n } catch (e) {\n // Work around for IE bug when accessing document.activeElement in an iframe\n // Refer to the following resources:\n // http://stackoverflow.com/a/10982960/369687\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/12733599\n canUseActiveElement = false;\n }\n}\n\nvar UncontrolledTabs = /*#__PURE__*/function (_Component) {\n _inheritsLoose(UncontrolledTabs, _Component);\n\n function UncontrolledTabs() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n _this.tabNodes = [];\n\n _this.handleKeyDown = function (e) {\n var _this$props = _this.props,\n direction = _this$props.direction,\n disableUpDownKeys = _this$props.disableUpDownKeys;\n\n if (_this.isTabFromContainer(e.target)) {\n var index = _this.props.selectedIndex;\n var preventDefault = false;\n var useSelectedIndex = false;\n\n if (e.keyCode === 32 || e.keyCode === 13) {\n preventDefault = true;\n useSelectedIndex = false;\n\n _this.handleClick(e);\n }\n\n if (e.keyCode === 37 || !disableUpDownKeys && e.keyCode === 38) {\n // Select next tab to the left, validate if up arrow is not disabled\n if (direction === 'rtl') {\n index = _this.getNextTab(index);\n } else {\n index = _this.getPrevTab(index);\n }\n\n preventDefault = true;\n useSelectedIndex = true;\n } else if (e.keyCode === 39 || !disableUpDownKeys && e.keyCode === 40) {\n // Select next tab to the right, validate if down arrow is not disabled\n if (direction === 'rtl') {\n index = _this.getPrevTab(index);\n } else {\n index = _this.getNextTab(index);\n }\n\n preventDefault = true;\n useSelectedIndex = true;\n } else if (e.keyCode === 35) {\n // Select last tab (End key)\n index = _this.getLastTab();\n preventDefault = true;\n useSelectedIndex = true;\n } else if (e.keyCode === 36) {\n // Select first tab (Home key)\n index = _this.getFirstTab();\n preventDefault = true;\n useSelectedIndex = true;\n } // This prevents scrollbars from moving around\n\n\n if (preventDefault) {\n e.preventDefault();\n } // Only use the selected index in the state if we're not using the tabbed index\n\n\n if (useSelectedIndex) {\n _this.setSelected(index, e);\n }\n }\n };\n\n _this.handleClick = function (e) {\n var node = e.target;\n\n do {\n if (_this.isTabFromContainer(node)) {\n if (isTabDisabled(node)) {\n return;\n }\n\n var index = [].slice.call(node.parentNode.children).filter(isTabNode).indexOf(node);\n\n _this.setSelected(index, e);\n\n return;\n }\n } while ((node = node.parentNode) != null);\n };\n\n return _this;\n }\n\n var _proto = UncontrolledTabs.prototype;\n\n _proto.setSelected = function setSelected(index, event) {\n // Check index boundary\n if (index < 0 || index >= this.getTabsCount()) return;\n var _this$props2 = this.props,\n onSelect = _this$props2.onSelect,\n selectedIndex = _this$props2.selectedIndex; // Call change event handler\n\n onSelect(index, selectedIndex, event);\n };\n\n _proto.getNextTab = function getNextTab(index) {\n var count = this.getTabsCount(); // Look for non-disabled tab from index to the last tab on the right\n\n for (var i = index + 1; i < count; i++) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n } // If no tab found, continue searching from first on left to index\n\n\n for (var _i = 0; _i < index; _i++) {\n if (!isTabDisabled(this.getTab(_i))) {\n return _i;\n }\n } // No tabs are disabled, return index\n\n\n return index;\n };\n\n _proto.getPrevTab = function getPrevTab(index) {\n var i = index; // Look for non-disabled tab from index to first tab on the left\n\n while (i--) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n } // If no tab found, continue searching from last tab on right to index\n\n\n i = this.getTabsCount();\n\n while (i-- > index) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n } // No tabs are disabled, return index\n\n\n return index;\n };\n\n _proto.getFirstTab = function getFirstTab() {\n var count = this.getTabsCount(); // Look for non disabled tab from the first tab\n\n for (var i = 0; i < count; i++) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n return null;\n };\n\n _proto.getLastTab = function getLastTab() {\n var i = this.getTabsCount(); // Look for non disabled tab from the last tab\n\n while (i--) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n return null;\n };\n\n _proto.getTabsCount = function getTabsCount() {\n var children = this.props.children;\n return _getTabsCount(children);\n };\n\n _proto.getPanelsCount = function getPanelsCount() {\n var children = this.props.children;\n return _getPanelsCount(children);\n };\n\n _proto.getTab = function getTab(index) {\n return this.tabNodes[\"tabs-\" + index];\n };\n\n _proto.getChildren = function getChildren() {\n var _this2 = this;\n\n var index = 0;\n var _this$props3 = this.props,\n children = _this$props3.children,\n disabledTabClassName = _this$props3.disabledTabClassName,\n focus = _this$props3.focus,\n forceRenderTabPanel = _this$props3.forceRenderTabPanel,\n selectedIndex = _this$props3.selectedIndex,\n selectedTabClassName = _this$props3.selectedTabClassName,\n selectedTabPanelClassName = _this$props3.selectedTabPanelClassName,\n environment = _this$props3.environment;\n this.tabIds = this.tabIds || [];\n this.panelIds = this.panelIds || [];\n var diff = this.tabIds.length - this.getTabsCount(); // Add ids if new tabs have been added\n // Don't bother removing ids, just keep them in case they are added again\n // This is more efficient, and keeps the uuid counter under control\n\n while (diff++ < 0) {\n this.tabIds.push(uuid());\n this.panelIds.push(uuid());\n } // Map children to dynamically setup refs\n\n\n return deepMap(children, function (child) {\n var result = child; // Clone TabList and Tab components to have refs\n\n if (isTabList(child)) {\n var listIndex = 0; // Figure out if the current focus in the DOM is set on a Tab\n // If it is we should keep the focus on the next selected tab\n\n var wasTabFocused = false;\n\n if (canUseActiveElement == null) {\n determineCanUseActiveElement(environment);\n }\n\n if (canUseActiveElement) {\n wasTabFocused = React.Children.toArray(child.props.children).filter(isTab).some(function (tab, i) {\n var env = environment || (typeof window !== 'undefined' ? window : undefined);\n return env && env.document.activeElement === _this2.getTab(i);\n });\n }\n\n result = /*#__PURE__*/cloneElement(child, {\n children: deepMap(child.props.children, function (tab) {\n var key = \"tabs-\" + listIndex;\n var selected = selectedIndex === listIndex;\n var props = {\n tabRef: function tabRef(node) {\n _this2.tabNodes[key] = node;\n },\n id: _this2.tabIds[listIndex],\n panelId: _this2.panelIds[listIndex],\n selected: selected,\n focus: selected && (focus || wasTabFocused)\n };\n if (selectedTabClassName) props.selectedClassName = selectedTabClassName;\n if (disabledTabClassName) props.disabledClassName = disabledTabClassName;\n listIndex++;\n return /*#__PURE__*/cloneElement(tab, props);\n })\n });\n } else if (isTabPanel(child)) {\n var props = {\n id: _this2.panelIds[index],\n tabId: _this2.tabIds[index],\n selected: selectedIndex === index\n };\n if (forceRenderTabPanel) props.forceRender = forceRenderTabPanel;\n if (selectedTabPanelClassName) props.selectedClassName = selectedTabPanelClassName;\n index++;\n result = /*#__PURE__*/cloneElement(child, props);\n }\n\n return result;\n });\n };\n\n /**\n * Determine if a node from event.target is a Tab element for the current Tabs container.\n * If the clicked element is not a Tab, it returns false.\n * If it finds another Tabs container between the Tab and `this`, it returns false.\n */\n _proto.isTabFromContainer = function isTabFromContainer(node) {\n // return immediately if the clicked element is not a Tab.\n if (!isTabNode(node)) {\n return false;\n } // Check if the first occurrence of a Tabs container is `this` one.\n\n\n var nodeAncestor = node.parentElement;\n\n do {\n if (nodeAncestor === this.node) return true;\n if (nodeAncestor.getAttribute('data-tabs')) break;\n nodeAncestor = nodeAncestor.parentElement;\n } while (nodeAncestor);\n\n return false;\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n // Delete all known props, so they don't get added to DOM\n var _this$props4 = this.props,\n children = _this$props4.children,\n className = _this$props4.className,\n disabledTabClassName = _this$props4.disabledTabClassName,\n domRef = _this$props4.domRef,\n focus = _this$props4.focus,\n forceRenderTabPanel = _this$props4.forceRenderTabPanel,\n onSelect = _this$props4.onSelect,\n selectedIndex = _this$props4.selectedIndex,\n selectedTabClassName = _this$props4.selectedTabClassName,\n selectedTabPanelClassName = _this$props4.selectedTabPanelClassName,\n environment = _this$props4.environment,\n disableUpDownKeys = _this$props4.disableUpDownKeys,\n attributes = _objectWithoutPropertiesLoose(_this$props4, [\"children\", \"className\", \"disabledTabClassName\", \"domRef\", \"focus\", \"forceRenderTabPanel\", \"onSelect\", \"selectedIndex\", \"selectedTabClassName\", \"selectedTabPanelClassName\", \"environment\", \"disableUpDownKeys\"]);\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, attributes, {\n className: cx(className),\n onClick: this.handleClick,\n onKeyDown: this.handleKeyDown,\n ref: function ref(node) {\n _this3.node = node;\n if (domRef) domRef(node);\n },\n \"data-tabs\": true\n }), this.getChildren());\n };\n\n return UncontrolledTabs;\n}(Component);\n\nUncontrolledTabs.defaultProps = {\n className: 'react-tabs',\n focus: false\n};\nexport { UncontrolledTabs as default };\nUncontrolledTabs.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: childrenPropType,\n direction: PropTypes.oneOf(['rtl', 'ltr']),\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n disabledTabClassName: PropTypes.string,\n disableUpDownKeys: PropTypes.bool,\n domRef: PropTypes.func,\n focus: PropTypes.bool,\n forceRenderTabPanel: PropTypes.bool,\n onSelect: PropTypes.func.isRequired,\n selectedIndex: PropTypes.number.isRequired,\n selectedTabClassName: PropTypes.string,\n selectedTabPanelClassName: PropTypes.string,\n environment: PropTypes.object\n} : {};","import { deepForEach } from './childrenDeepMap';\nimport { isTab, isTabPanel } from './elementTypes';\nexport function getTabsCount(children) {\n var tabCount = 0;\n deepForEach(children, function (child) {\n if (isTab(child)) tabCount++;\n });\n return tabCount;\n}\nexport function getPanelsCount(children) {\n var panelCount = 0;\n deepForEach(children, function (child) {\n if (isTabPanel(child)) panelCount++;\n });\n return panelCount;\n}","function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport { childrenPropType, onSelectPropType, selectedIndexPropType } from '../helpers/propTypes';\nimport UncontrolledTabs from './UncontrolledTabs';\nimport { getTabsCount } from '../helpers/count';\nvar MODE_CONTROLLED = 0;\nvar MODE_UNCONTROLLED = 1;\n\nvar Tabs = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Tabs, _Component);\n\n function Tabs(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n\n _this.handleSelected = function (index, last, event) {\n var onSelect = _this.props.onSelect;\n var mode = _this.state.mode; // Call change event handler\n\n if (typeof onSelect === 'function') {\n // Check if the change event handler cancels the tab change\n if (onSelect(index, last, event) === false) return;\n }\n\n var state = {\n // Set focus if the change was triggered from the keyboard\n focus: event.type === 'keydown'\n };\n\n if (mode === MODE_UNCONTROLLED) {\n // Update selected index\n state.selectedIndex = index;\n }\n\n _this.setState(state);\n };\n\n _this.state = Tabs.copyPropsToState(_this.props, {}, props.defaultFocus);\n return _this;\n }\n\n Tabs.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n return Tabs.copyPropsToState(props, state);\n };\n\n Tabs.getModeFromProps = function getModeFromProps(props) {\n return props.selectedIndex === null ? MODE_UNCONTROLLED : MODE_CONTROLLED;\n };\n\n // preserve the existing selectedIndex from state.\n // If the state has not selectedIndex, default to the defaultIndex or 0\n Tabs.copyPropsToState = function copyPropsToState(props, state, focus) {\n if (focus === void 0) {\n focus = false;\n }\n\n if (process.env.NODE_ENV !== 'production' && state.mode !== undefined && state.mode !== Tabs.getModeFromProps(props)) {\n throw new Error(\"Switching between controlled mode (by using `selectedIndex`) and uncontrolled mode is not supported in `Tabs`.\\nFor more information about controlled and uncontrolled mode of react-tabs see https://github.com/reactjs/react-tabs#controlled-vs-uncontrolled-mode.\");\n }\n\n var newState = {\n focus: focus,\n mode: Tabs.getModeFromProps(props)\n };\n\n if (newState.mode === MODE_UNCONTROLLED) {\n var maxTabIndex = Math.max(0, getTabsCount(props.children) - 1);\n var selectedIndex = null;\n\n if (state.selectedIndex != null) {\n selectedIndex = Math.min(state.selectedIndex, maxTabIndex);\n } else {\n selectedIndex = props.defaultIndex || 0;\n }\n\n newState.selectedIndex = selectedIndex;\n }\n\n return newState;\n };\n\n var _proto = Tabs.prototype;\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n defaultIndex = _this$props.defaultIndex,\n defaultFocus = _this$props.defaultFocus,\n props = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"defaultIndex\", \"defaultFocus\"]);\n\n var _this$state = this.state,\n focus = _this$state.focus,\n selectedIndex = _this$state.selectedIndex;\n props.focus = focus;\n props.onSelect = this.handleSelected;\n\n if (selectedIndex != null) {\n props.selectedIndex = selectedIndex;\n }\n\n return /*#__PURE__*/React.createElement(UncontrolledTabs, props, children);\n };\n\n return Tabs;\n}(Component);\n\nTabs.defaultProps = {\n defaultFocus: false,\n forceRenderTabPanel: false,\n selectedIndex: null,\n defaultIndex: null,\n environment: null,\n disableUpDownKeys: false\n};\nexport { Tabs as default };\nTabs.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: childrenPropType,\n direction: PropTypes.oneOf(['rtl', 'ltr']),\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n defaultFocus: PropTypes.bool,\n defaultIndex: PropTypes.number,\n disabledTabClassName: PropTypes.string,\n disableUpDownKeys: PropTypes.bool,\n domRef: PropTypes.func,\n forceRenderTabPanel: PropTypes.bool,\n onSelect: onSelectPropType,\n selectedIndex: selectedIndexPropType,\n selectedTabClassName: PropTypes.string,\n selectedTabPanelClassName: PropTypes.string,\n environment: PropTypes.object\n} : {};\nTabs.tabsRole = 'Tabs';","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport cx from 'clsx';\n\nvar TabList = /*#__PURE__*/function (_Component) {\n _inheritsLoose(TabList, _Component);\n\n function TabList() {\n return _Component.apply(this, arguments) || this;\n }\n\n var _proto = TabList.prototype;\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n className = _this$props.className,\n attributes = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"className\"]);\n\n return /*#__PURE__*/React.createElement(\"ul\", _extends({}, attributes, {\n className: cx(className),\n role: \"tablist\"\n }), children);\n };\n\n return TabList;\n}(Component);\n\nTabList.defaultProps = {\n className: 'react-tabs__tab-list'\n};\nexport { TabList as default };\nTabList.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object])\n} : {};\nTabList.tabsRole = 'TabList';","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport cx from 'clsx';\nvar DEFAULT_CLASS = 'react-tabs__tab';\n\nvar Tab = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Tab, _Component);\n\n function Tab() {\n return _Component.apply(this, arguments) || this;\n }\n\n var _proto = Tab.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.checkFocus();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.checkFocus();\n };\n\n _proto.checkFocus = function checkFocus() {\n var _this$props = this.props,\n selected = _this$props.selected,\n focus = _this$props.focus;\n\n if (selected && focus) {\n this.node.focus();\n }\n };\n\n _proto.render = function render() {\n var _cx,\n _this = this;\n\n var _this$props2 = this.props,\n children = _this$props2.children,\n className = _this$props2.className,\n disabled = _this$props2.disabled,\n disabledClassName = _this$props2.disabledClassName,\n focus = _this$props2.focus,\n id = _this$props2.id,\n panelId = _this$props2.panelId,\n selected = _this$props2.selected,\n selectedClassName = _this$props2.selectedClassName,\n tabIndex = _this$props2.tabIndex,\n tabRef = _this$props2.tabRef,\n attributes = _objectWithoutPropertiesLoose(_this$props2, [\"children\", \"className\", \"disabled\", \"disabledClassName\", \"focus\", \"id\", \"panelId\", \"selected\", \"selectedClassName\", \"tabIndex\", \"tabRef\"]);\n\n return /*#__PURE__*/React.createElement(\"li\", _extends({}, attributes, {\n className: cx(className, (_cx = {}, _cx[selectedClassName] = selected, _cx[disabledClassName] = disabled, _cx)),\n ref: function ref(node) {\n _this.node = node;\n if (tabRef) tabRef(node);\n },\n role: \"tab\",\n id: id,\n \"aria-selected\": selected ? 'true' : 'false',\n \"aria-disabled\": disabled ? 'true' : 'false',\n \"aria-controls\": panelId,\n tabIndex: tabIndex || (selected ? '0' : null)\n }), children);\n };\n\n return Tab;\n}(Component);\n\nTab.defaultProps = {\n className: DEFAULT_CLASS,\n disabledClassName: DEFAULT_CLASS + \"--disabled\",\n focus: false,\n id: null,\n panelId: null,\n selected: false,\n selectedClassName: DEFAULT_CLASS + \"--selected\"\n};\nexport { Tab as default };\nTab.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: PropTypes.oneOfType([PropTypes.array, PropTypes.object, PropTypes.string]),\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n disabled: PropTypes.bool,\n tabIndex: PropTypes.string,\n disabledClassName: PropTypes.string,\n focus: PropTypes.bool,\n // private\n id: PropTypes.string,\n // private\n panelId: PropTypes.string,\n // private\n selected: PropTypes.bool,\n // private\n selectedClassName: PropTypes.string,\n tabRef: PropTypes.func // private\n\n} : {};\nTab.tabsRole = 'Tab';","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport cx from 'clsx';\nvar DEFAULT_CLASS = 'react-tabs__tab-panel';\n\nvar TabPanel = /*#__PURE__*/function (_Component) {\n _inheritsLoose(TabPanel, _Component);\n\n function TabPanel() {\n return _Component.apply(this, arguments) || this;\n }\n\n var _proto = TabPanel.prototype;\n\n _proto.render = function render() {\n var _cx;\n\n var _this$props = this.props,\n children = _this$props.children,\n className = _this$props.className,\n forceRender = _this$props.forceRender,\n id = _this$props.id,\n selected = _this$props.selected,\n selectedClassName = _this$props.selectedClassName,\n tabId = _this$props.tabId,\n attributes = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"className\", \"forceRender\", \"id\", \"selected\", \"selectedClassName\", \"tabId\"]);\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, attributes, {\n className: cx(className, (_cx = {}, _cx[selectedClassName] = selected, _cx)),\n role: \"tabpanel\",\n id: id,\n \"aria-labelledby\": tabId\n }), forceRender || selected ? children : null);\n };\n\n return TabPanel;\n}(Component);\n\nTabPanel.defaultProps = {\n className: DEFAULT_CLASS,\n forceRender: false,\n selectedClassName: DEFAULT_CLASS + \"--selected\"\n};\nexport { TabPanel as default };\nTabPanel.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: PropTypes.node,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.array, PropTypes.object]),\n forceRender: PropTypes.bool,\n id: PropTypes.string,\n // private\n selected: PropTypes.bool,\n // private\n selectedClassName: PropTypes.string,\n tabId: PropTypes.string // private\n\n} : {};\nTabPanel.tabsRole = 'TabPanel';"],"sourceRoot":""} \ No newline at end of file diff --git a/.next/static/chunks/5763-9a71fcde8dae336e6120.js b/.next/static/chunks/5763-9a71fcde8dae336e6120.js new file mode 100644 index 0000000..194df64 --- /dev/null +++ b/.next/static/chunks/5763-9a71fcde8dae336e6120.js @@ -0,0 +1,2 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5763],{41647:function(e,t,r){"use strict";var n=r(61682);function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return a=e.done,e},e:function(e){u=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&void 0!==arguments[0]?arguments[0]:[];return new Promise((function(t){var r=function(){return b=!0,t()};j(h,e).then(r,r)}))},window.__NEXT_PRELOADREADY=w.preloadReady;var k=w;t.default=k},5152:function(e,t,r){e.exports=r(41647)},19318:function(e,t,r){"use strict";var n=r(67294),o=r(45697),i=r.n(o);function a(){return(a=Object.assign||function(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=(0,n.forwardRef)((function(e,t){var r=e.color,o=void 0===r?"currentColor":r,i=e.size,l=void 0===i?24:i,c=u(e,["color","size"]);return n.createElement("svg",a({ref:t,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:"0 0 24 24",fill:"none",stroke:o,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},c),n.createElement("path",{d:"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"}),n.createElement("rect",{x:"2",y:"9",width:"4",height:"12"}),n.createElement("circle",{cx:"4",cy:"4",r:"2"}))}));l.propTypes={color:i().string,size:i().oneOfType([i().string,i().number])},l.displayName="Linkedin",t.Z=l}}]); +//# sourceMappingURL=5763-9a71fcde8dae336e6120.js.map \ No newline at end of file diff --git a/.next/static/chunks/5763-9a71fcde8dae336e6120.js.map b/.next/static/chunks/5763-9a71fcde8dae336e6120.js.map new file mode 100644 index 0000000..dc107ca --- /dev/null +++ b/.next/static/chunks/5763-9a71fcde8dae336e6120.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack://_N_E/../next-server/lib/dynamic.tsx","webpack://_N_E/../next-server/lib/loadable-context.ts","webpack://_N_E/../next-server/lib/loadable.js","webpack://_N_E/./node_modules/next/dynamic.js","webpack://_N_E/./node_modules/react-feather/dist/icons/linkedin.js"],"names":["loadableFn","Loadable","loadableOptions","loading","dynamicOptions","loadModules","modules","Object","key","value","mod","noSSR","LoadableInitializer","LoadableContext","React","ALL_INITIALIZERS","READY_INITIALIZERS","initialized","load","loader","promise","state","loaded","error","err","loadMap","obj","promises","result","res","Promise","render","props","resolve","createLoadableComponent","loadFn","options","opts","delay","timeout","webpack","subscription","sub","LoadableSubscription","getCurrentValue","subscribe","retry","moduleIds","ids","init","LoadableComponent","ref","context","useSubscription","Array","moduleName","isLoading","pastDelay","timedOut","constructor","this","_res","_loadFn","_opts","setTimeout","_err","callback","clearTimeout","flushInitializers","initializers","Error","resolvePreload","window","module","exports","_extends","assign","target","i","arguments","length","source","prototype","hasOwnProperty","call","apply","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","Linkedin","forwardRef","_ref","_ref$color","color","_ref$size","size","rest","xmlns","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","d","x","y","cx","cy","r","propTypes","displayName"],"mappings":"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","file":"static/chunks/5763-9a71fcde8dae336e6120.js","sourcesContent":["import React from 'react'\nimport Loadable from './loadable'\n\nconst isServerSide = typeof window === 'undefined'\n\nexport type LoaderComponent

= Promise<\n React.ComponentType

| { default: React.ComponentType

}\n>\n\nexport type Loader

= (() => LoaderComponent

) | LoaderComponent

\n\nexport type LoaderMap = { [mdule: string]: () => Loader }\n\nexport type LoadableGeneratedOptions = {\n webpack?(): any\n modules?(): LoaderMap\n}\n\nexport type LoadableBaseOptions

= LoadableGeneratedOptions & {\n loading?: ({\n error,\n isLoading,\n pastDelay,\n }: {\n error?: Error | null\n isLoading?: boolean\n pastDelay?: boolean\n retry?: () => void\n timedOut?: boolean\n }) => JSX.Element | null\n loader?: Loader

| LoaderMap\n loadableGenerated?: LoadableGeneratedOptions\n ssr?: boolean\n}\n\nexport type LoadableOptions

= LoadableBaseOptions

& {\n render?(loader: any, props: any): JSX.Element\n}\n\nexport type DynamicOptions

= LoadableBaseOptions

& {\n /**\n * @deprecated the modules option has been planned for removal\n */\n render?(props: P, loaded: any): JSX.Element\n}\n\nexport type LoadableFn

= (\n opts: LoadableOptions

\n) => React.ComponentType

\n\nexport type LoadableComponent

= React.ComponentType

\n\nexport function noSSR

(\n LoadableInitializer: LoadableFn

,\n loadableOptions: LoadableOptions

\n): React.ComponentType

{\n // Removing webpack and modules means react-loadable won't try preloading\n delete loadableOptions.webpack\n delete loadableOptions.modules\n\n // This check is necessary to prevent react-loadable from initializing on the server\n if (!isServerSide) {\n return LoadableInitializer(loadableOptions)\n }\n\n const Loading = loadableOptions.loading!\n // This will only be rendered on the server side\n return () => (\n \n )\n}\n\n// function dynamic

(options: O):\n\nexport default function dynamic

(\n dynamicOptions: DynamicOptions

| Loader

,\n options?: DynamicOptions

\n): React.ComponentType

{\n let loadableFn: LoadableFn

= Loadable\n let loadableOptions: LoadableOptions

= {\n // A loading component is not required, so we default it\n loading: ({ error, isLoading, pastDelay }) => {\n if (!pastDelay) return null\n if (process.env.NODE_ENV === 'development') {\n if (isLoading) {\n return null\n }\n if (error) {\n return (\n

\n {error.message}\n
\n {error.stack}\n

\n )\n }\n }\n\n return null\n },\n }\n\n // Support for direct import(), eg: dynamic(import('../hello-world'))\n // Note that this is only kept for the edge case where someone is passing in a promise as first argument\n // The react-loadable babel plugin will turn dynamic(import('../hello-world')) into dynamic(() => import('../hello-world'))\n // To make sure we don't execute the import without rendering first\n if (dynamicOptions instanceof Promise) {\n loadableOptions.loader = () => dynamicOptions\n // Support for having import as a function, eg: dynamic(() => import('../hello-world'))\n } else if (typeof dynamicOptions === 'function') {\n loadableOptions.loader = dynamicOptions\n // Support for having first argument being options, eg: dynamic({loader: import('../hello-world')})\n } else if (typeof dynamicOptions === 'object') {\n loadableOptions = { ...loadableOptions, ...dynamicOptions }\n }\n\n // Support for passing options, eg: dynamic(import('../hello-world'), {loading: () =>

Loading something

})\n loadableOptions = { ...loadableOptions, ...options }\n\n if (\n typeof dynamicOptions === 'object' &&\n !(dynamicOptions instanceof Promise)\n ) {\n // show deprecation warning for `modules` key in development\n if (process.env.NODE_ENV !== 'production') {\n if (dynamicOptions.modules) {\n console.warn(\n 'The modules option for next/dynamic has been deprecated. See here for more info https://nextjs.org/docs/messages/next-dynamic-modules'\n )\n }\n }\n // Support for `render` when using a mapping, eg: `dynamic({ modules: () => {return {HelloWorld: import('../hello-world')}, render(props, loaded) {} } })\n if (dynamicOptions.render) {\n loadableOptions.render = (loaded, props) =>\n dynamicOptions.render!(props, loaded)\n }\n // Support for `modules` when using a mapping, eg: `dynamic({ modules: () => {return {HelloWorld: import('../hello-world')}, render(props, loaded) {} } })\n if (dynamicOptions.modules) {\n loadableFn = Loadable.Map\n const loadModules: LoaderMap = {}\n const modules = dynamicOptions.modules()\n Object.keys(modules).forEach((key) => {\n const value: any = modules[key]\n if (typeof value.then === 'function') {\n loadModules[key] = () => value.then((mod: any) => mod.default || mod)\n return\n }\n loadModules[key] = value\n })\n loadableOptions.loader = loadModules\n }\n }\n\n // coming from build/babel/plugins/react-loadable-plugin.js\n if (loadableOptions.loadableGenerated) {\n loadableOptions = {\n ...loadableOptions,\n ...loadableOptions.loadableGenerated,\n }\n delete loadableOptions.loadableGenerated\n }\n\n // support for disabling server side rendering, eg: dynamic(import('../hello-world'), {ssr: false})\n if (typeof loadableOptions.ssr === 'boolean') {\n if (!loadableOptions.ssr) {\n delete loadableOptions.ssr\n return noSSR(loadableFn, loadableOptions)\n }\n delete loadableOptions.ssr\n }\n\n return loadableFn(loadableOptions)\n}\n","import React from 'react'\n\ntype CaptureFn = (moduleName: string) => void\n\nexport const LoadableContext = React.createContext(null)\n\nif (process.env.NODE_ENV !== 'production') {\n LoadableContext.displayName = 'LoadableContext'\n}\n","/**\n@copyright (c) 2017-present James Kyle \n MIT License\n Permission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n The above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE\n*/\n// https://github.com/jamiebuilds/react-loadable/blob/v5.5.0/src/index.js\n// Modified to be compatible with webpack 4 / Next.js\n\nimport React from 'react'\nimport { useSubscription } from 'use-subscription'\nimport { LoadableContext } from './loadable-context'\n\nconst ALL_INITIALIZERS = []\nconst READY_INITIALIZERS = []\nlet initialized = false\n\nfunction load(loader) {\n let promise = loader()\n\n let state = {\n loading: true,\n loaded: null,\n error: null,\n }\n\n state.promise = promise\n .then((loaded) => {\n state.loading = false\n state.loaded = loaded\n return loaded\n })\n .catch((err) => {\n state.loading = false\n state.error = err\n throw err\n })\n\n return state\n}\n\nfunction loadMap(obj) {\n let state = {\n loading: false,\n loaded: {},\n error: null,\n }\n\n let promises = []\n\n try {\n Object.keys(obj).forEach((key) => {\n let result = load(obj[key])\n\n if (!result.loading) {\n state.loaded[key] = result.loaded\n state.error = result.error\n } else {\n state.loading = true\n }\n\n promises.push(result.promise)\n\n result.promise\n .then((res) => {\n state.loaded[key] = res\n })\n .catch((err) => {\n state.error = err\n })\n })\n } catch (err) {\n state.error = err\n }\n\n state.promise = Promise.all(promises)\n .then((res) => {\n state.loading = false\n return res\n })\n .catch((err) => {\n state.loading = false\n throw err\n })\n\n return state\n}\n\nfunction resolve(obj) {\n return obj && obj.__esModule ? obj.default : obj\n}\n\nfunction render(loaded, props) {\n return React.createElement(resolve(loaded), props)\n}\n\nfunction createLoadableComponent(loadFn, options) {\n let opts = Object.assign(\n {\n loader: null,\n loading: null,\n delay: 200,\n timeout: null,\n render: render,\n webpack: null,\n modules: null,\n },\n options\n )\n\n let subscription = null\n\n function init() {\n if (!subscription) {\n const sub = new LoadableSubscription(loadFn, opts)\n subscription = {\n getCurrentValue: sub.getCurrentValue.bind(sub),\n subscribe: sub.subscribe.bind(sub),\n retry: sub.retry.bind(sub),\n promise: sub.promise.bind(sub),\n }\n }\n return subscription.promise()\n }\n\n // Server only\n if (typeof window === 'undefined') {\n ALL_INITIALIZERS.push(init)\n }\n\n // Client only\n if (\n !initialized &&\n typeof window !== 'undefined' &&\n typeof opts.webpack === 'function'\n ) {\n const moduleIds = opts.webpack()\n READY_INITIALIZERS.push((ids) => {\n for (const moduleId of moduleIds) {\n if (ids.indexOf(moduleId) !== -1) {\n return init()\n }\n }\n })\n }\n\n const LoadableComponent = (props, ref) => {\n init()\n\n const context = React.useContext(LoadableContext)\n const state = useSubscription(subscription)\n\n React.useImperativeHandle(\n ref,\n () => ({\n retry: subscription.retry,\n }),\n []\n )\n\n if (context && Array.isArray(opts.modules)) {\n opts.modules.forEach((moduleName) => {\n context(moduleName)\n })\n }\n\n return React.useMemo(() => {\n if (state.loading || state.error) {\n return React.createElement(opts.loading, {\n isLoading: state.loading,\n pastDelay: state.pastDelay,\n timedOut: state.timedOut,\n error: state.error,\n retry: subscription.retry,\n })\n } else if (state.loaded) {\n return opts.render(state.loaded, props)\n } else {\n return null\n }\n }, [props, state])\n }\n\n LoadableComponent.preload = () => init()\n LoadableComponent.displayName = 'LoadableComponent'\n\n return React.forwardRef(LoadableComponent)\n}\n\nclass LoadableSubscription {\n constructor(loadFn, opts) {\n this._loadFn = loadFn\n this._opts = opts\n this._callbacks = new Set()\n this._delay = null\n this._timeout = null\n\n this.retry()\n }\n\n promise() {\n return this._res.promise\n }\n\n retry() {\n this._clearTimeouts()\n this._res = this._loadFn(this._opts.loader)\n\n this._state = {\n pastDelay: false,\n timedOut: false,\n }\n\n const { _res: res, _opts: opts } = this\n\n if (res.loading) {\n if (typeof opts.delay === 'number') {\n if (opts.delay === 0) {\n this._state.pastDelay = true\n } else {\n this._delay = setTimeout(() => {\n this._update({\n pastDelay: true,\n })\n }, opts.delay)\n }\n }\n\n if (typeof opts.timeout === 'number') {\n this._timeout = setTimeout(() => {\n this._update({ timedOut: true })\n }, opts.timeout)\n }\n }\n\n this._res.promise\n .then(() => {\n this._update({})\n this._clearTimeouts()\n })\n .catch((_err) => {\n this._update({})\n this._clearTimeouts()\n })\n this._update({})\n }\n\n _update(partial) {\n this._state = {\n ...this._state,\n error: this._res.error,\n loaded: this._res.loaded,\n loading: this._res.loading,\n ...partial,\n }\n this._callbacks.forEach((callback) => callback())\n }\n\n _clearTimeouts() {\n clearTimeout(this._delay)\n clearTimeout(this._timeout)\n }\n\n getCurrentValue() {\n return this._state\n }\n\n subscribe(callback) {\n this._callbacks.add(callback)\n return () => {\n this._callbacks.delete(callback)\n }\n }\n}\n\nfunction Loadable(opts) {\n return createLoadableComponent(load, opts)\n}\n\nfunction LoadableMap(opts) {\n if (typeof opts.render !== 'function') {\n throw new Error('LoadableMap requires a `render(loaded, props)` function')\n }\n\n return createLoadableComponent(loadMap, opts)\n}\n\nLoadable.Map = LoadableMap\n\nfunction flushInitializers(initializers, ids) {\n let promises = []\n\n while (initializers.length) {\n let init = initializers.pop()\n promises.push(init(ids))\n }\n\n return Promise.all(promises).then(() => {\n if (initializers.length) {\n return flushInitializers(initializers, ids)\n }\n })\n}\n\nLoadable.preloadAll = () => {\n return new Promise((resolveInitializers, reject) => {\n flushInitializers(ALL_INITIALIZERS).then(resolveInitializers, reject)\n })\n}\n\nLoadable.preloadReady = (ids = []) => {\n return new Promise((resolvePreload) => {\n const res = () => {\n initialized = true\n return resolvePreload()\n }\n // We always will resolve, errors should be handled within loading UIs.\n flushInitializers(READY_INITIALIZERS, ids).then(res, res)\n })\n}\n\nif (typeof window !== 'undefined') {\n window.__NEXT_PRELOADREADY = Loadable.preloadReady\n}\n\nexport default Loadable\n","module.exports = require('./dist/next-server/lib/dynamic')\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar Linkedin = forwardRef(function (_ref, ref) {\n var _ref$color = _ref.color,\n color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size,\n rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: color,\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, rest), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z\"\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: \"2\",\n y: \"9\",\n width: \"4\",\n height: \"12\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"4\",\n cy: \"4\",\n r: \"2\"\n }));\n});\nLinkedin.propTypes = {\n color: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nLinkedin.displayName = 'Linkedin';\nexport default Linkedin;"],"sourceRoot":""} \ No newline at end of file diff --git a/.next/static/chunks/7610-91215d37ee1ab33bd0ab.js b/.next/static/chunks/7610-91215d37ee1ab33bd0ab.js new file mode 100644 index 0000000..1bd5488 --- /dev/null +++ b/.next/static/chunks/7610-91215d37ee1ab33bd0ab.js @@ -0,0 +1,2 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7610,4554,8968,5763],{41647:function(e,r,t){"use strict";var n=t(61682);function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function i(e){for(var r=1;r=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){t=e[Symbol.iterator]()},n:function(){var e=t.next();return a=e.done,e},e:function(e){u=!0,i=e},f:function(){try{a||null==t.return||t.return()}finally{if(u)throw i}}}}function c(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t0&&void 0!==arguments[0]?arguments[0]:[];return new Promise((function(r){var t=function(){return v=!0,r()};_(h,e).then(t,t)}))},window.__NEXT_PRELOADREADY=j.preloadReady;var k=j;r.default=k},5152:function(e,r,t){e.exports=t(41647)},19318:function(e,r,t){"use strict";var n=t(67294),o=t(45697),i=t.n(o);function a(){return(a=Object.assign||function(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=(0,n.forwardRef)((function(e,r){var t=e.color,o=void 0===t?"currentColor":t,i=e.size,l=void 0===i?24:i,c=u(e,["color","size"]);return n.createElement("svg",a({ref:r,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:"0 0 24 24",fill:"none",stroke:o,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},c),n.createElement("path",{d:"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"}),n.createElement("rect",{x:"2",y:"9",width:"4",height:"12"}),n.createElement("circle",{cx:"4",cy:"4",r:"2"}))}));l.propTypes={color:i().string,size:i().oneOfType([i().string,i().number])},l.displayName="Linkedin",r.Z=l},20210:function(e,r,t){"use strict";var n=t(67294),o=t(45697),i=t.n(o);function a(){return(a=Object.assign||function(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=(0,n.forwardRef)((function(e,r){var t=e.color,o=void 0===t?"currentColor":t,i=e.size,l=void 0===i?24:i,c=u(e,["color","size"]);return n.createElement("svg",a({ref:r,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:"0 0 24 24",fill:"none",stroke:o,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},c),n.createElement("line",{x1:"5",y1:"12",x2:"19",y2:"12"}))}));l.propTypes={color:i().string,size:i().oneOfType([i().string,i().number])},l.displayName="Minus",r.Z=l},61896:function(e,r,t){"use strict";var n=t(67294),o=t(45697),i=t.n(o);function a(){return(a=Object.assign||function(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=(0,n.forwardRef)((function(e,r){var t=e.color,o=void 0===t?"currentColor":t,i=e.size,l=void 0===i?24:i,c=u(e,["color","size"]);return n.createElement("svg",a({ref:r,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:"0 0 24 24",fill:"none",stroke:o,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},c),n.createElement("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),n.createElement("line",{x1:"5",y1:"12",x2:"19",y2:"12"}))}));l.propTypes={color:i().string,size:i().oneOfType([i().string,i().number])},l.displayName="Plus",r.Z=l},73549:function(e,r,t){"use strict";var n=t(67294),o=t(45697),i=t.n(o);function a(){return(a=Object.assign||function(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=(0,n.forwardRef)((function(e,r){var t=e.color,o=void 0===t?"currentColor":t,i=e.size,l=void 0===i?24:i,c=u(e,["color","size"]);return n.createElement("svg",a({ref:r,xmlns:"http://www.w3.org/2000/svg",width:l,height:l,viewBox:"0 0 24 24",fill:"none",stroke:o,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},c),n.createElement("circle",{cx:"9",cy:"21",r:"1"}),n.createElement("circle",{cx:"20",cy:"21",r:"1"}),n.createElement("path",{d:"M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"}))}));l.propTypes={color:i().string,size:i().oneOfType([i().string,i().number])},l.displayName="ShoppingCart",r.Z=l}}]); +//# sourceMappingURL=7610-91215d37ee1ab33bd0ab.js.map \ No newline at end of file diff --git a/.next/static/chunks/7610-91215d37ee1ab33bd0ab.js.map b/.next/static/chunks/7610-91215d37ee1ab33bd0ab.js.map new file mode 100644 index 0000000..68dc2a9 --- /dev/null +++ b/.next/static/chunks/7610-91215d37ee1ab33bd0ab.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack://_N_E/../next-server/lib/dynamic.tsx","webpack://_N_E/../next-server/lib/loadable-context.ts","webpack://_N_E/../next-server/lib/loadable.js","webpack://_N_E/./node_modules/next/dynamic.js","webpack://_N_E/./node_modules/react-feather/dist/icons/linkedin.js","webpack://_N_E/./node_modules/react-feather/dist/icons/minus.js","webpack://_N_E/./node_modules/react-feather/dist/icons/plus.js","webpack://_N_E/./node_modules/react-feather/dist/icons/shopping-cart.js"],"names":["loadableFn","Loadable","loadableOptions","loading","dynamicOptions","loadModules","modules","Object","key","value","mod","noSSR","LoadableInitializer","LoadableContext","React","ALL_INITIALIZERS","READY_INITIALIZERS","initialized","load","loader","promise","state","loaded","error","err","loadMap","obj","promises","result","res","Promise","render","props","resolve","createLoadableComponent","loadFn","options","opts","delay","timeout","webpack","subscription","sub","LoadableSubscription","getCurrentValue","subscribe","retry","moduleIds","ids","init","LoadableComponent","ref","context","useSubscription","Array","moduleName","isLoading","pastDelay","timedOut","constructor","this","_res","_loadFn","_opts","setTimeout","_err","callback","clearTimeout","flushInitializers","initializers","Error","resolvePreload","window","module","exports","_extends","assign","target","i","arguments","length","source","prototype","hasOwnProperty","call","apply","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","Linkedin","forwardRef","_ref","_ref$color","color","_ref$size","size","rest","xmlns","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","d","x","y","cx","cy","r","propTypes","displayName","Minus","x1","y1","x2","y2","Plus","ShoppingCart"],"mappings":"0sBA0Ee,cAIb,IAAIA,EAA4BC,EAAhC,QACIC,EAAsC,CAExCC,QAAS,YAAqC,EAApC,MAAoC,EAApC,UACR,OAD4C,EAArC,UAiBP,OAQAC,aAAJ,QACEF,SAAyB,kBAAzBA,GAEK,oBAAWE,EAChBF,WAEK,kBAAWE,IAChBF,EAAkB,EAAH,KAAG,GAAlBA,IAMF,GAFAA,EAAkB,EAAH,KAAG,GAAlBA,GAG4B,kBAAnBE,KACLA,aAFJ,WAaMA,EAAJ,SACEF,SAAyB,qBACvBE,WADFF,KAIEE,EAAJ,SAA4B,CAC1BJ,EAAaC,UAAbD,IACA,IAAMK,EAAN,GACMC,EAAUF,EAAhB,UACAG,wBAA8BC,YAC5B,IAAMC,EAAaH,EAAnB,GACA,oBAAWG,EAAP,KAIJJ,OAHEA,KAAmB,kBAAMI,QAAYC,YAAD,OAAcA,WAAlDL,SAKJH,WAKAA,EAAJ,0BACEA,EAAkB,EAAH,KAAG,GAEbA,EAFLA,oBAIA,kBAIF,sBAAWA,EAAP,IAA0C,CAC5C,IAAKA,EAAL,IAEE,cADOA,EAAP,IACOS,EAAMX,EAAb,UAEKE,EAAP,IAGF,OAAOF,EAAP,IA3KF,gBACA,c,mDAmDO,SAASW,EAAT,KAUH,cALKT,EAAP,eACOA,EAAP,QAISU,EAAP,K,mCC9DJ,I,2CAIO,IAAMC,I,EAJb,W,4BAI+BC,sBAAxB,M,gtDCmBP,I,EAAA,G,EAAA,W,2BACA,WACA,WAEA,IAAMC,EAAN,GACMC,EAAN,GACIC,GAAJ,EAEA,SAASC,EAAKC,GACZ,IAAIC,EAAUD,IAEVE,EAAQ,CACVlB,SADU,EAEVmB,OAFU,KAGVC,MAHF,MAkBA,OAZAF,UAAgBD,QACPE,YAGL,OAFAD,aACAA,WACA,KAJYD,OAMNI,YAGN,MAFAH,aACAA,UACA,KAGJ,EAGF,SAASI,EAAQC,GACf,IAAIL,EAAQ,CACVlB,SADU,EAEVmB,OAFU,GAGVC,MAHF,MAMII,EAAJ,GAEA,IACEpB,wBAA0BC,YACxB,IAAIoB,EAASV,EAAKQ,EAAlB,IAEKE,EAAL,QAIEP,cAHAA,YAAoBO,EAApBP,OACAA,QAAcO,EAAdP,OAKFM,OAAcC,EAAdD,SAEAC,gBACSC,YACLR,iBAFJO,OAIUJ,YACNH,gBAGN,MAAOG,GACPH,UAaF,OAVAA,UAAgBS,qBACPD,YAEL,OADAR,aACA,KAHYS,OAKNN,YAEN,MADAH,aACA,KAGJ,EAOF,SAASU,EAAOT,EAAQU,GACtB,OAAOlB,wBALT,SAAiBY,GACf,OAAOA,GAAOA,EAAPA,WAAwBA,EAAxBA,QAAP,EAI2BO,CAApBnB,GAAP,GAGF,SAASoB,EAAwBC,EAAQC,GACvC,IAAIC,EAAO9B,cACT,CACEY,OADF,KAEEhB,QAFF,KAGEmC,MAHF,IAIEC,QAJF,KAKER,OALF,EAMES,QANF,KAOElC,QAROC,MAAX,GAaIkC,EAAJ,KAEA,aACE,MAAmB,CACjB,IAAMC,EAAM,IAAIC,EAAqBR,EAArC,GACAM,EAAe,CACbG,gBAAiBF,uBADJ,GAEbG,UAAWH,iBAFE,GAGbI,MAAOJ,aAHM,GAIbtB,QAASsB,eAJXD,IAOF,OAAOA,EAAP,UASF,IACGxB,GADH,oBAGSoB,EAAP,QACA,CACA,IAAMU,EAAYV,EAAlB,UACArB,QAAyBgC,YAAQ,UAC/B,GAD+B,IAC/B,2BAAkC,KAAlC,EAAkC,QAChC,QAAIA,aACF,OAAOC,KAHoB,kCASnC,IAAMC,EAAoB,SAAClB,EAAOmB,GAChCF,IAEA,IAAMG,EAAUtC,qBAAiBD,EAAjC,iBACMQ,GAAQ,IAAAgC,iBAAd,GAgBA,OAdAvC,iCAEE,iBAAO,CACLgC,MAAOL,EAHX3B,aAQIsC,GAAWE,cAAcjB,EAA7B,UACEA,mBAAsBkB,YACpBH,QAIGtC,mBAAc,WACnB,OAAIO,WAAiBA,EAArB,MACSP,wBAAoBuB,EAApBvB,QAAkC,CACvC0C,UAAWnC,EAD4B,QAEvCoC,UAAWpC,EAF4B,UAGvCqC,SAAUrC,EAH6B,SAIvCE,MAAOF,EAJgC,MAKvCyB,MAAOL,EALT,QAOSpB,EAAJ,OACEgB,SAAYhB,EAAZgB,OAAP,GAEA,OAED,CAACL,EAdJ,KAoBF,OAHAkB,UAA4B,kBAAMD,KAClCC,kCAEOpC,qBAAP,G,IAGI6B,E,WACJgB,WAAW,KAAe,UACxBC,KAAA,UACAA,KAAA,QACAA,KAAA,WAAkB,IAAlB,IACAA,KAAA,YACAA,KAAA,cAEAA,KAAA,Q,4CAIA,OAAOA,KAAKC,KAAZ,U,8BAGM,WACND,KAAA,iBACAA,KAAA,KAAYA,KAAKE,QAAQF,KAAKG,MAA9B,QAEAH,KAAA,OAAc,CACZH,WADY,EAEZC,UAFF,GAJM,IASA,EAAN,KAAQG,KAAF,EAAN,KAAmBE,MAEflC,EAAJ,UACE,kBAAWQ,EAAP,QACF,IAAIA,QACFuB,KAAA,oBAEAA,KAAA,OAAcI,YAAW,WACvB,UAAa,CACXP,WADF,MAGCpB,EAJH,QAQJ,kBAAWA,EAAP,UACFuB,KAAA,SAAgBI,YAAW,WACzB,UAAa,CAAEN,UAAf,MACCrB,EAFH,WAMJuB,KAAA,mBACQ,WACJ,cACA,sBAHJ,OAKUK,YACN,cACA,sBAEJL,KAAA,c,8BAGK,GACLA,KAAA,cACKA,KADS,QAAd,IAEErC,MAAOqC,KAAKC,KAFA,MAGZvC,OAAQsC,KAAKC,KAHD,OAIZ1D,QAASyD,KAAKC,KAJF,SAAd,GAOAD,KAAA,oBAAyBM,YAAD,OAAcA,S,uCAItCC,aAAaP,KAAbO,QACAA,aAAaP,KAAbO,Y,wCAIA,OAAOP,KAAP,S,gCAGO,GAAW,WAElB,OADAA,KAAA,kBACO,WACL,4B,KAKN,SAAS3D,EAASoC,GAChB,OAAOH,EAAwBhB,EAA/B,GAaF,SAASkD,EAAkBC,EAAcrB,GAGvC,IAFA,IAAIrB,EAAJ,GAEO0C,EAAP,QAA4B,CAC1B,IAAIpB,EAAOoB,EAAX,MACA1C,OAAcsB,EAAdtB,IAGF,OAAOG,qBAA2B,WAChC,GAAIuC,EAAJ,OACE,OAAOD,EAAkBC,EAAzB,MAZNpE,MARA,SAAqBoC,GACnB,uBAAWA,EAAP,OACF,MAAM,IAAIiC,MAAV,2DAGF,OAAOpC,EAAwBT,EAA/B,IAoBFxB,aAAsB,WACpB,OAAO,IAAI6B,SAAQ,cACjBsC,mBAIJnE,EAAA,aAAwB,WAAc,IAAb+C,EAAa,uDAAd,GACtB,OAAO,IAAIlB,SAASyC,YAClB,IAAM1C,EAAM,WAEV,OADAZ,KACOsD,KAGTH,EAAkBpD,EAAlBoD,iBAKFI,2BAA6BvE,EAA7BuE,a,MAGavE,E,kCCnVfwE,EAAOC,QAAU,EAAjB,Q,sECAA,SAASC,IAA2Q,OAA9PA,EAAWpE,OAAOqE,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAItE,KAAOyE,EAAc1E,OAAO2E,UAAUC,eAAeC,KAAKH,EAAQzE,KAAQqE,EAAOrE,GAAOyE,EAAOzE,IAAY,OAAOqE,IAA2BQ,MAAMzB,KAAMmB,WAEhT,SAASO,EAAyBL,EAAQM,GAAY,GAAc,MAAVN,EAAgB,MAAO,GAAI,IAAkEzE,EAAKsE,EAAnED,EAEzF,SAAuCI,EAAQM,GAAY,GAAc,MAAVN,EAAgB,MAAO,GAAI,IAA2DzE,EAAKsE,EAA5DD,EAAS,GAAQW,EAAajF,OAAOkF,KAAKR,GAAqB,IAAKH,EAAI,EAAGA,EAAIU,EAAWR,OAAQF,IAAOtE,EAAMgF,EAAWV,GAAQS,EAASG,QAAQlF,IAAQ,IAAaqE,EAAOrE,GAAOyE,EAAOzE,IAAQ,OAAOqE,EAFxMc,CAA8BV,EAAQM,GAAuB,GAAIhF,OAAOqF,sBAAuB,CAAE,IAAIC,EAAmBtF,OAAOqF,sBAAsBX,GAAS,IAAKH,EAAI,EAAGA,EAAIe,EAAiBb,OAAQF,IAAOtE,EAAMqF,EAAiBf,GAAQS,EAASG,QAAQlF,IAAQ,GAAkBD,OAAO2E,UAAUY,qBAAqBV,KAAKH,EAAQzE,KAAgBqE,EAAOrE,GAAOyE,EAAOzE,IAAU,OAAOqE,EAMne,IAAIkB,GAAW,IAAAC,aAAW,SAAUC,EAAM9C,GACxC,IAAI+C,EAAaD,EAAKE,MAClBA,OAAuB,IAAfD,EAAwB,eAAiBA,EACjDE,EAAYH,EAAKI,KACjBA,OAAqB,IAAdD,EAAuB,GAAKA,EACnCE,EAAOhB,EAAyBW,EAAM,CAAC,QAAS,SAEpD,OAAoB,gBAAoB,MAAOtB,EAAS,CACtDxB,IAAKA,EACLoD,MAAO,6BACPC,MAAOH,EACPI,OAAQJ,EACRK,QAAS,YACTC,KAAM,OACNC,OAAQT,EACRU,YAAa,IACbC,cAAe,QACfC,eAAgB,SACfT,GAAoB,gBAAoB,OAAQ,CACjDU,EAAG,mFACY,gBAAoB,OAAQ,CAC3CC,EAAG,IACHC,EAAG,IACHV,MAAO,IACPC,OAAQ,OACO,gBAAoB,SAAU,CAC7CU,GAAI,IACJC,GAAI,IACJC,EAAG,UAGPtB,EAASuB,UAAY,CACnBnB,MAAO,WACPE,KAAM,cAAoB,CAAC,WAAkB,cAE/CN,EAASwB,YAAc,WACvB,O,sEC5CA,SAAS5C,IAA2Q,OAA9PA,EAAWpE,OAAOqE,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAItE,KAAOyE,EAAc1E,OAAO2E,UAAUC,eAAeC,KAAKH,EAAQzE,KAAQqE,EAAOrE,GAAOyE,EAAOzE,IAAY,OAAOqE,IAA2BQ,MAAMzB,KAAMmB,WAEhT,SAASO,EAAyBL,EAAQM,GAAY,GAAc,MAAVN,EAAgB,MAAO,GAAI,IAAkEzE,EAAKsE,EAAnED,EAEzF,SAAuCI,EAAQM,GAAY,GAAc,MAAVN,EAAgB,MAAO,GAAI,IAA2DzE,EAAKsE,EAA5DD,EAAS,GAAQW,EAAajF,OAAOkF,KAAKR,GAAqB,IAAKH,EAAI,EAAGA,EAAIU,EAAWR,OAAQF,IAAOtE,EAAMgF,EAAWV,GAAQS,EAASG,QAAQlF,IAAQ,IAAaqE,EAAOrE,GAAOyE,EAAOzE,IAAQ,OAAOqE,EAFxMc,CAA8BV,EAAQM,GAAuB,GAAIhF,OAAOqF,sBAAuB,CAAE,IAAIC,EAAmBtF,OAAOqF,sBAAsBX,GAAS,IAAKH,EAAI,EAAGA,EAAIe,EAAiBb,OAAQF,IAAOtE,EAAMqF,EAAiBf,GAAQS,EAASG,QAAQlF,IAAQ,GAAkBD,OAAO2E,UAAUY,qBAAqBV,KAAKH,EAAQzE,KAAgBqE,EAAOrE,GAAOyE,EAAOzE,IAAU,OAAOqE,EAMne,IAAI2C,GAAQ,IAAAxB,aAAW,SAAUC,EAAM9C,GACrC,IAAI+C,EAAaD,EAAKE,MAClBA,OAAuB,IAAfD,EAAwB,eAAiBA,EACjDE,EAAYH,EAAKI,KACjBA,OAAqB,IAAdD,EAAuB,GAAKA,EACnCE,EAAOhB,EAAyBW,EAAM,CAAC,QAAS,SAEpD,OAAoB,gBAAoB,MAAOtB,EAAS,CACtDxB,IAAKA,EACLoD,MAAO,6BACPC,MAAOH,EACPI,OAAQJ,EACRK,QAAS,YACTC,KAAM,OACNC,OAAQT,EACRU,YAAa,IACbC,cAAe,QACfC,eAAgB,SACfT,GAAoB,gBAAoB,OAAQ,CACjDmB,GAAI,IACJC,GAAI,KACJC,GAAI,KACJC,GAAI,WAGRJ,EAAMF,UAAY,CAChBnB,MAAO,WACPE,KAAM,cAAoB,CAAC,WAAkB,cAE/CmB,EAAMD,YAAc,QACpB,O,sECtCA,SAAS5C,IAA2Q,OAA9PA,EAAWpE,OAAOqE,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAItE,KAAOyE,EAAc1E,OAAO2E,UAAUC,eAAeC,KAAKH,EAAQzE,KAAQqE,EAAOrE,GAAOyE,EAAOzE,IAAY,OAAOqE,IAA2BQ,MAAMzB,KAAMmB,WAEhT,SAASO,EAAyBL,EAAQM,GAAY,GAAc,MAAVN,EAAgB,MAAO,GAAI,IAAkEzE,EAAKsE,EAAnED,EAEzF,SAAuCI,EAAQM,GAAY,GAAc,MAAVN,EAAgB,MAAO,GAAI,IAA2DzE,EAAKsE,EAA5DD,EAAS,GAAQW,EAAajF,OAAOkF,KAAKR,GAAqB,IAAKH,EAAI,EAAGA,EAAIU,EAAWR,OAAQF,IAAOtE,EAAMgF,EAAWV,GAAQS,EAASG,QAAQlF,IAAQ,IAAaqE,EAAOrE,GAAOyE,EAAOzE,IAAQ,OAAOqE,EAFxMc,CAA8BV,EAAQM,GAAuB,GAAIhF,OAAOqF,sBAAuB,CAAE,IAAIC,EAAmBtF,OAAOqF,sBAAsBX,GAAS,IAAKH,EAAI,EAAGA,EAAIe,EAAiBb,OAAQF,IAAOtE,EAAMqF,EAAiBf,GAAQS,EAASG,QAAQlF,IAAQ,GAAkBD,OAAO2E,UAAUY,qBAAqBV,KAAKH,EAAQzE,KAAgBqE,EAAOrE,GAAOyE,EAAOzE,IAAU,OAAOqE,EAMne,IAAIgD,GAAO,IAAA7B,aAAW,SAAUC,EAAM9C,GACpC,IAAI+C,EAAaD,EAAKE,MAClBA,OAAuB,IAAfD,EAAwB,eAAiBA,EACjDE,EAAYH,EAAKI,KACjBA,OAAqB,IAAdD,EAAuB,GAAKA,EACnCE,EAAOhB,EAAyBW,EAAM,CAAC,QAAS,SAEpD,OAAoB,gBAAoB,MAAOtB,EAAS,CACtDxB,IAAKA,EACLoD,MAAO,6BACPC,MAAOH,EACPI,OAAQJ,EACRK,QAAS,YACTC,KAAM,OACNC,OAAQT,EACRU,YAAa,IACbC,cAAe,QACfC,eAAgB,SACfT,GAAoB,gBAAoB,OAAQ,CACjDmB,GAAI,KACJC,GAAI,IACJC,GAAI,KACJC,GAAI,OACW,gBAAoB,OAAQ,CAC3CH,GAAI,IACJC,GAAI,KACJC,GAAI,KACJC,GAAI,WAGRC,EAAKP,UAAY,CACfnB,MAAO,WACPE,KAAM,cAAoB,CAAC,WAAkB,cAE/CwB,EAAKN,YAAc,OACnB,O,sEC3CA,SAAS5C,IAA2Q,OAA9PA,EAAWpE,OAAOqE,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAItE,KAAOyE,EAAc1E,OAAO2E,UAAUC,eAAeC,KAAKH,EAAQzE,KAAQqE,EAAOrE,GAAOyE,EAAOzE,IAAY,OAAOqE,IAA2BQ,MAAMzB,KAAMmB,WAEhT,SAASO,EAAyBL,EAAQM,GAAY,GAAc,MAAVN,EAAgB,MAAO,GAAI,IAAkEzE,EAAKsE,EAAnED,EAEzF,SAAuCI,EAAQM,GAAY,GAAc,MAAVN,EAAgB,MAAO,GAAI,IAA2DzE,EAAKsE,EAA5DD,EAAS,GAAQW,EAAajF,OAAOkF,KAAKR,GAAqB,IAAKH,EAAI,EAAGA,EAAIU,EAAWR,OAAQF,IAAOtE,EAAMgF,EAAWV,GAAQS,EAASG,QAAQlF,IAAQ,IAAaqE,EAAOrE,GAAOyE,EAAOzE,IAAQ,OAAOqE,EAFxMc,CAA8BV,EAAQM,GAAuB,GAAIhF,OAAOqF,sBAAuB,CAAE,IAAIC,EAAmBtF,OAAOqF,sBAAsBX,GAAS,IAAKH,EAAI,EAAGA,EAAIe,EAAiBb,OAAQF,IAAOtE,EAAMqF,EAAiBf,GAAQS,EAASG,QAAQlF,IAAQ,GAAkBD,OAAO2E,UAAUY,qBAAqBV,KAAKH,EAAQzE,KAAgBqE,EAAOrE,GAAOyE,EAAOzE,IAAU,OAAOqE,EAMne,IAAIiD,GAAe,IAAA9B,aAAW,SAAUC,EAAM9C,GAC5C,IAAI+C,EAAaD,EAAKE,MAClBA,OAAuB,IAAfD,EAAwB,eAAiBA,EACjDE,EAAYH,EAAKI,KACjBA,OAAqB,IAAdD,EAAuB,GAAKA,EACnCE,EAAOhB,EAAyBW,EAAM,CAAC,QAAS,SAEpD,OAAoB,gBAAoB,MAAOtB,EAAS,CACtDxB,IAAKA,EACLoD,MAAO,6BACPC,MAAOH,EACPI,OAAQJ,EACRK,QAAS,YACTC,KAAM,OACNC,OAAQT,EACRU,YAAa,IACbC,cAAe,QACfC,eAAgB,SACfT,GAAoB,gBAAoB,SAAU,CACnDa,GAAI,IACJC,GAAI,KACJC,EAAG,MACY,gBAAoB,SAAU,CAC7CF,GAAI,KACJC,GAAI,KACJC,EAAG,MACY,gBAAoB,OAAQ,CAC3CL,EAAG,wEAGPc,EAAaR,UAAY,CACvBnB,MAAO,WACPE,KAAM,cAAoB,CAAC,WAAkB,cAE/CyB,EAAaP,YAAc,eAC3B","file":"static/chunks/7610-91215d37ee1ab33bd0ab.js","sourcesContent":["import React from 'react'\nimport Loadable from './loadable'\n\nconst isServerSide = typeof window === 'undefined'\n\nexport type LoaderComponent

= Promise<\n React.ComponentType

| { default: React.ComponentType

}\n>\n\nexport type Loader

= (() => LoaderComponent

) | LoaderComponent

\n\nexport type LoaderMap = { [mdule: string]: () => Loader }\n\nexport type LoadableGeneratedOptions = {\n webpack?(): any\n modules?(): LoaderMap\n}\n\nexport type LoadableBaseOptions

= LoadableGeneratedOptions & {\n loading?: ({\n error,\n isLoading,\n pastDelay,\n }: {\n error?: Error | null\n isLoading?: boolean\n pastDelay?: boolean\n retry?: () => void\n timedOut?: boolean\n }) => JSX.Element | null\n loader?: Loader

| LoaderMap\n loadableGenerated?: LoadableGeneratedOptions\n ssr?: boolean\n}\n\nexport type LoadableOptions

= LoadableBaseOptions

& {\n render?(loader: any, props: any): JSX.Element\n}\n\nexport type DynamicOptions

= LoadableBaseOptions

& {\n /**\n * @deprecated the modules option has been planned for removal\n */\n render?(props: P, loaded: any): JSX.Element\n}\n\nexport type LoadableFn

= (\n opts: LoadableOptions

\n) => React.ComponentType

\n\nexport type LoadableComponent

= React.ComponentType

\n\nexport function noSSR

(\n LoadableInitializer: LoadableFn

,\n loadableOptions: LoadableOptions

\n): React.ComponentType

{\n // Removing webpack and modules means react-loadable won't try preloading\n delete loadableOptions.webpack\n delete loadableOptions.modules\n\n // This check is necessary to prevent react-loadable from initializing on the server\n if (!isServerSide) {\n return LoadableInitializer(loadableOptions)\n }\n\n const Loading = loadableOptions.loading!\n // This will only be rendered on the server side\n return () => (\n \n )\n}\n\n// function dynamic

(options: O):\n\nexport default function dynamic

(\n dynamicOptions: DynamicOptions

| Loader

,\n options?: DynamicOptions

\n): React.ComponentType

{\n let loadableFn: LoadableFn

= Loadable\n let loadableOptions: LoadableOptions

= {\n // A loading component is not required, so we default it\n loading: ({ error, isLoading, pastDelay }) => {\n if (!pastDelay) return null\n if (process.env.NODE_ENV === 'development') {\n if (isLoading) {\n return null\n }\n if (error) {\n return (\n

\n {error.message}\n
\n {error.stack}\n

\n )\n }\n }\n\n return null\n },\n }\n\n // Support for direct import(), eg: dynamic(import('../hello-world'))\n // Note that this is only kept for the edge case where someone is passing in a promise as first argument\n // The react-loadable babel plugin will turn dynamic(import('../hello-world')) into dynamic(() => import('../hello-world'))\n // To make sure we don't execute the import without rendering first\n if (dynamicOptions instanceof Promise) {\n loadableOptions.loader = () => dynamicOptions\n // Support for having import as a function, eg: dynamic(() => import('../hello-world'))\n } else if (typeof dynamicOptions === 'function') {\n loadableOptions.loader = dynamicOptions\n // Support for having first argument being options, eg: dynamic({loader: import('../hello-world')})\n } else if (typeof dynamicOptions === 'object') {\n loadableOptions = { ...loadableOptions, ...dynamicOptions }\n }\n\n // Support for passing options, eg: dynamic(import('../hello-world'), {loading: () =>

Loading something

})\n loadableOptions = { ...loadableOptions, ...options }\n\n if (\n typeof dynamicOptions === 'object' &&\n !(dynamicOptions instanceof Promise)\n ) {\n // show deprecation warning for `modules` key in development\n if (process.env.NODE_ENV !== 'production') {\n if (dynamicOptions.modules) {\n console.warn(\n 'The modules option for next/dynamic has been deprecated. See here for more info https://nextjs.org/docs/messages/next-dynamic-modules'\n )\n }\n }\n // Support for `render` when using a mapping, eg: `dynamic({ modules: () => {return {HelloWorld: import('../hello-world')}, render(props, loaded) {} } })\n if (dynamicOptions.render) {\n loadableOptions.render = (loaded, props) =>\n dynamicOptions.render!(props, loaded)\n }\n // Support for `modules` when using a mapping, eg: `dynamic({ modules: () => {return {HelloWorld: import('../hello-world')}, render(props, loaded) {} } })\n if (dynamicOptions.modules) {\n loadableFn = Loadable.Map\n const loadModules: LoaderMap = {}\n const modules = dynamicOptions.modules()\n Object.keys(modules).forEach((key) => {\n const value: any = modules[key]\n if (typeof value.then === 'function') {\n loadModules[key] = () => value.then((mod: any) => mod.default || mod)\n return\n }\n loadModules[key] = value\n })\n loadableOptions.loader = loadModules\n }\n }\n\n // coming from build/babel/plugins/react-loadable-plugin.js\n if (loadableOptions.loadableGenerated) {\n loadableOptions = {\n ...loadableOptions,\n ...loadableOptions.loadableGenerated,\n }\n delete loadableOptions.loadableGenerated\n }\n\n // support for disabling server side rendering, eg: dynamic(import('../hello-world'), {ssr: false})\n if (typeof loadableOptions.ssr === 'boolean') {\n if (!loadableOptions.ssr) {\n delete loadableOptions.ssr\n return noSSR(loadableFn, loadableOptions)\n }\n delete loadableOptions.ssr\n }\n\n return loadableFn(loadableOptions)\n}\n","import React from 'react'\n\ntype CaptureFn = (moduleName: string) => void\n\nexport const LoadableContext = React.createContext(null)\n\nif (process.env.NODE_ENV !== 'production') {\n LoadableContext.displayName = 'LoadableContext'\n}\n","/**\n@copyright (c) 2017-present James Kyle \n MIT License\n Permission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n The above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE\n*/\n// https://github.com/jamiebuilds/react-loadable/blob/v5.5.0/src/index.js\n// Modified to be compatible with webpack 4 / Next.js\n\nimport React from 'react'\nimport { useSubscription } from 'use-subscription'\nimport { LoadableContext } from './loadable-context'\n\nconst ALL_INITIALIZERS = []\nconst READY_INITIALIZERS = []\nlet initialized = false\n\nfunction load(loader) {\n let promise = loader()\n\n let state = {\n loading: true,\n loaded: null,\n error: null,\n }\n\n state.promise = promise\n .then((loaded) => {\n state.loading = false\n state.loaded = loaded\n return loaded\n })\n .catch((err) => {\n state.loading = false\n state.error = err\n throw err\n })\n\n return state\n}\n\nfunction loadMap(obj) {\n let state = {\n loading: false,\n loaded: {},\n error: null,\n }\n\n let promises = []\n\n try {\n Object.keys(obj).forEach((key) => {\n let result = load(obj[key])\n\n if (!result.loading) {\n state.loaded[key] = result.loaded\n state.error = result.error\n } else {\n state.loading = true\n }\n\n promises.push(result.promise)\n\n result.promise\n .then((res) => {\n state.loaded[key] = res\n })\n .catch((err) => {\n state.error = err\n })\n })\n } catch (err) {\n state.error = err\n }\n\n state.promise = Promise.all(promises)\n .then((res) => {\n state.loading = false\n return res\n })\n .catch((err) => {\n state.loading = false\n throw err\n })\n\n return state\n}\n\nfunction resolve(obj) {\n return obj && obj.__esModule ? obj.default : obj\n}\n\nfunction render(loaded, props) {\n return React.createElement(resolve(loaded), props)\n}\n\nfunction createLoadableComponent(loadFn, options) {\n let opts = Object.assign(\n {\n loader: null,\n loading: null,\n delay: 200,\n timeout: null,\n render: render,\n webpack: null,\n modules: null,\n },\n options\n )\n\n let subscription = null\n\n function init() {\n if (!subscription) {\n const sub = new LoadableSubscription(loadFn, opts)\n subscription = {\n getCurrentValue: sub.getCurrentValue.bind(sub),\n subscribe: sub.subscribe.bind(sub),\n retry: sub.retry.bind(sub),\n promise: sub.promise.bind(sub),\n }\n }\n return subscription.promise()\n }\n\n // Server only\n if (typeof window === 'undefined') {\n ALL_INITIALIZERS.push(init)\n }\n\n // Client only\n if (\n !initialized &&\n typeof window !== 'undefined' &&\n typeof opts.webpack === 'function'\n ) {\n const moduleIds = opts.webpack()\n READY_INITIALIZERS.push((ids) => {\n for (const moduleId of moduleIds) {\n if (ids.indexOf(moduleId) !== -1) {\n return init()\n }\n }\n })\n }\n\n const LoadableComponent = (props, ref) => {\n init()\n\n const context = React.useContext(LoadableContext)\n const state = useSubscription(subscription)\n\n React.useImperativeHandle(\n ref,\n () => ({\n retry: subscription.retry,\n }),\n []\n )\n\n if (context && Array.isArray(opts.modules)) {\n opts.modules.forEach((moduleName) => {\n context(moduleName)\n })\n }\n\n return React.useMemo(() => {\n if (state.loading || state.error) {\n return React.createElement(opts.loading, {\n isLoading: state.loading,\n pastDelay: state.pastDelay,\n timedOut: state.timedOut,\n error: state.error,\n retry: subscription.retry,\n })\n } else if (state.loaded) {\n return opts.render(state.loaded, props)\n } else {\n return null\n }\n }, [props, state])\n }\n\n LoadableComponent.preload = () => init()\n LoadableComponent.displayName = 'LoadableComponent'\n\n return React.forwardRef(LoadableComponent)\n}\n\nclass LoadableSubscription {\n constructor(loadFn, opts) {\n this._loadFn = loadFn\n this._opts = opts\n this._callbacks = new Set()\n this._delay = null\n this._timeout = null\n\n this.retry()\n }\n\n promise() {\n return this._res.promise\n }\n\n retry() {\n this._clearTimeouts()\n this._res = this._loadFn(this._opts.loader)\n\n this._state = {\n pastDelay: false,\n timedOut: false,\n }\n\n const { _res: res, _opts: opts } = this\n\n if (res.loading) {\n if (typeof opts.delay === 'number') {\n if (opts.delay === 0) {\n this._state.pastDelay = true\n } else {\n this._delay = setTimeout(() => {\n this._update({\n pastDelay: true,\n })\n }, opts.delay)\n }\n }\n\n if (typeof opts.timeout === 'number') {\n this._timeout = setTimeout(() => {\n this._update({ timedOut: true })\n }, opts.timeout)\n }\n }\n\n this._res.promise\n .then(() => {\n this._update({})\n this._clearTimeouts()\n })\n .catch((_err) => {\n this._update({})\n this._clearTimeouts()\n })\n this._update({})\n }\n\n _update(partial) {\n this._state = {\n ...this._state,\n error: this._res.error,\n loaded: this._res.loaded,\n loading: this._res.loading,\n ...partial,\n }\n this._callbacks.forEach((callback) => callback())\n }\n\n _clearTimeouts() {\n clearTimeout(this._delay)\n clearTimeout(this._timeout)\n }\n\n getCurrentValue() {\n return this._state\n }\n\n subscribe(callback) {\n this._callbacks.add(callback)\n return () => {\n this._callbacks.delete(callback)\n }\n }\n}\n\nfunction Loadable(opts) {\n return createLoadableComponent(load, opts)\n}\n\nfunction LoadableMap(opts) {\n if (typeof opts.render !== 'function') {\n throw new Error('LoadableMap requires a `render(loaded, props)` function')\n }\n\n return createLoadableComponent(loadMap, opts)\n}\n\nLoadable.Map = LoadableMap\n\nfunction flushInitializers(initializers, ids) {\n let promises = []\n\n while (initializers.length) {\n let init = initializers.pop()\n promises.push(init(ids))\n }\n\n return Promise.all(promises).then(() => {\n if (initializers.length) {\n return flushInitializers(initializers, ids)\n }\n })\n}\n\nLoadable.preloadAll = () => {\n return new Promise((resolveInitializers, reject) => {\n flushInitializers(ALL_INITIALIZERS).then(resolveInitializers, reject)\n })\n}\n\nLoadable.preloadReady = (ids = []) => {\n return new Promise((resolvePreload) => {\n const res = () => {\n initialized = true\n return resolvePreload()\n }\n // We always will resolve, errors should be handled within loading UIs.\n flushInitializers(READY_INITIALIZERS, ids).then(res, res)\n })\n}\n\nif (typeof window !== 'undefined') {\n window.__NEXT_PRELOADREADY = Loadable.preloadReady\n}\n\nexport default Loadable\n","module.exports = require('./dist/next-server/lib/dynamic')\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar Linkedin = forwardRef(function (_ref, ref) {\n var _ref$color = _ref.color,\n color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size,\n rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: color,\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, rest), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z\"\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: \"2\",\n y: \"9\",\n width: \"4\",\n height: \"12\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"4\",\n cy: \"4\",\n r: \"2\"\n }));\n});\nLinkedin.propTypes = {\n color: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nLinkedin.displayName = 'Linkedin';\nexport default Linkedin;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar Minus = forwardRef(function (_ref, ref) {\n var _ref$color = _ref.color,\n color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size,\n rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: color,\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, rest), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"5\",\n y1: \"12\",\n x2: \"19\",\n y2: \"12\"\n }));\n});\nMinus.propTypes = {\n color: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nMinus.displayName = 'Minus';\nexport default Minus;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar Plus = forwardRef(function (_ref, ref) {\n var _ref$color = _ref.color,\n color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size,\n rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: color,\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, rest), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"12\",\n y1: \"5\",\n x2: \"12\",\n y2: \"19\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: \"5\",\n y1: \"12\",\n x2: \"19\",\n y2: \"12\"\n }));\n});\nPlus.propTypes = {\n color: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nPlus.displayName = 'Plus';\nexport default Plus;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { forwardRef } from 'react';\nimport PropTypes from 'prop-types';\nvar ShoppingCart = forwardRef(function (_ref, ref) {\n var _ref$color = _ref.color,\n color = _ref$color === void 0 ? 'currentColor' : _ref$color,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size,\n rest = _objectWithoutProperties(_ref, [\"color\", \"size\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: color,\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, rest), /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"9\",\n cy: \"21\",\n r: \"1\"\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: \"20\",\n cy: \"21\",\n r: \"1\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6\"\n }));\n});\nShoppingCart.propTypes = {\n color: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nShoppingCart.displayName = 'ShoppingCart';\nexport default ShoppingCart;"],"sourceRoot":""} \ No newline at end of file diff --git a/.next/static/chunks/pages/products/[id]-b2c95cab851713134609.js b/.next/static/chunks/pages/products/[id]-b2c95cab851713134609.js deleted file mode 100644 index 0cba302..0000000 --- a/.next/static/chunks/pages/products/[id]-b2c95cab851713134609.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9304],{91288:function(e,s,r){"use strict";var n=r(85893);r(67294);s.Z=function(e){var s=e.pageTitle;return(0,n.jsx)("div",{className:"page-title-area",children:(0,n.jsx)("div",{className:"d-table",children:(0,n.jsx)("div",{className:"d-table-cell",children:(0,n.jsx)("div",{className:"container",children:(0,n.jsx)("h2",{children:s})})})})})}},64004:function(e,s,r){"use strict";r.r(s),r.d(s,{default:function(){return P}});var n=r(85893),t=r(64121),i=r(67294),a=r(8805),l=r(16918),c=r(91288),o=r(26265);function d(e,s){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);s&&(n=n.filter((function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable}))),r.push.apply(r,n)}return r}function m(e){for(var s=1;s react-owl-carousel3"]}}),p={loop:!0,nav:!0,dots:!1,autoplay:!0,items:1,smartSpeed:1e3,autoplayTimeout:5e3,navText:["",""]},x=function(e){var s=e.images,r=i.useState(!1),a=(0,t.Z)(r,2),l=a[0],c=a[1];return i.useEffect((function(){c(!0)}),[]),(0,n.jsx)(n.Fragment,{children:l?(0,n.jsx)(u,m(m({className:"products-details-image products-details-image-slides owl-carousel owl-theme"},p),{},{children:s&&s.map((function(e,s){return(0,n.jsx)("div",{className:"single-image-box",children:(0,n.jsx)("img",{src:e.img,alt:"img"})},s)}))})):""})},h=r(117);(0,h.xb)();var j=function(){return(0,n.jsx)("div",{className:"products-details-tabs",children:(0,n.jsxs)(h.mQ,{children:[(0,n.jsxs)(h.td,{children:[(0,n.jsx)(h.OK,{children:"Description"}),(0,n.jsx)(h.OK,{children:"Additional Information"}),(0,n.jsx)(h.OK,{children:"Review"})]}),(0,n.jsx)(h.x4,{children:(0,n.jsx)("div",{className:"products-description",children:(0,n.jsx)("p",{children:"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\u2019s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. Lorem Ipsum is simply dummy text of the printing."})})}),(0,n.jsx)(h.x4,{children:(0,n.jsx)("div",{className:"products-description",children:(0,n.jsxs)("ul",{className:"additional-information",children:[(0,n.jsxs)("li",{children:[(0,n.jsx)("span",{children:"Brand"})," ThemeForest"]}),(0,n.jsxs)("li",{children:[(0,n.jsx)("span",{children:"Color"})," Brown"]}),(0,n.jsxs)("li",{children:[(0,n.jsx)("span",{children:"Size"})," Large, Medium"]}),(0,n.jsxs)("li",{children:[(0,n.jsx)("span",{children:"Weight"})," 27 kg"]}),(0,n.jsxs)("li",{children:[(0,n.jsx)("span",{children:"Dimensions"})," 16 x 22 x 123 cm"]})]})})}),(0,n.jsx)(h.x4,{children:(0,n.jsxs)("div",{className:"products-reviews",children:[(0,n.jsx)("h3",{children:"Customer Reviews"}),(0,n.jsx)("p",{children:"There are no reviews yet."}),(0,n.jsxs)("form",{className:"review-form",children:[(0,n.jsx)("p",{children:"Rate this item:"}),(0,n.jsxs)("div",{className:"star-rating",children:[(0,n.jsx)("i",{className:"bx bxs-star"}),(0,n.jsx)("i",{className:"bx bxs-star"}),(0,n.jsx)("i",{className:"bx bxs-star"}),(0,n.jsx)("i",{className:"bx bxs-star"}),(0,n.jsx)("i",{className:"bx bxs-star"}),(0,n.jsx)("p",{children:"Very good product!"})]}),(0,n.jsxs)("div",{className:"row",children:[(0,n.jsx)("div",{className:"col-lg-12",children:(0,n.jsx)("div",{className:"form-group",children:(0,n.jsx)("textarea",{name:"review-message",id:"message",cols:"30",rows:"4",placeholder:"Write your review*",className:"form-control"})})}),(0,n.jsx)("div",{className:"col-lg-6 col-md-6",children:(0,n.jsx)("div",{className:"form-group",children:(0,n.jsx)("input",{type:"text",placeholder:"Name*",className:"form-control"})})}),(0,n.jsx)("div",{className:"col-lg-6 col-md-6",children:(0,n.jsx)("div",{className:"form-group",children:(0,n.jsx)("input",{type:"email",placeholder:"Email*",className:"form-control"})})}),(0,n.jsx)("div",{className:"col-lg-12 col-md-12",children:(0,n.jsx)("button",{type:"submit",className:"btn btn-primary",children:"Submit"})})]})]})]})})]})})},g=r(20210),f=r(61896),v=r(47811),y=r(51591),b=r(20706),N=r(19318),w=r(80289),O=r(39704),k=r(11163),E=r(85611),P=function(){var e=(0,E.e1)().addToast,s=(0,O.I0)(),r=(0,k.useRouter)().query.id,o=(0,O.v9)((function(e){return e.products.find((function(e){return e.id===r}))})),d=i.useState(1),m=(0,t.Z)(d,2),u=m[0],p=m[1];return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(a.Z,{}),(0,n.jsx)(c.Z,{pageTitle:o&&o.name}),(0,n.jsx)("div",{className:"shop-details-area ptb-80",children:(0,n.jsx)("div",{className:"container",children:(0,n.jsxs)("div",{className:"row align-items-center",children:[(0,n.jsx)("div",{className:"col-lg-5",children:(0,n.jsx)(x,{images:o&&o.images})}),(0,n.jsx)("div",{className:"col-lg-7",children:(0,n.jsxs)("div",{className:"products-details",children:[(0,n.jsx)("h3",{children:o&&o.name}),(0,n.jsxs)("div",{className:"price",children:["$",o&&o.price]}),(0,n.jsxs)("ul",{className:"rating",children:[(0,n.jsx)("li",{children:(0,n.jsx)("i",{className:"flaticon-star-1"})}),(0,n.jsx)("li",{children:(0,n.jsx)("i",{className:"flaticon-star-1"})}),(0,n.jsx)("li",{children:(0,n.jsx)("i",{className:"flaticon-star-1"})}),(0,n.jsx)("li",{children:(0,n.jsx)("i",{className:"flaticon-star-1"})}),(0,n.jsx)("li",{children:(0,n.jsx)("i",{className:"flaticon-star-1"})})]}),(0,n.jsx)("p",{children:o&&o.desc}),(0,n.jsxs)("div",{className:"availability",children:["Availability: ",(0,n.jsx)("span",{children:o&&o.availability})]}),(0,n.jsxs)("form",{onSubmit:function(e){return e.preventDefault()},children:[(0,n.jsxs)("div",{className:"quantity d-flex align-items-center",children:[(0,n.jsx)("span",{children:"Quantity:"}),(0,n.jsxs)("div",{className:"input-counter",children:[(0,n.jsx)("span",{className:"minus-btn",onClick:function(){p(u-1)},children:(0,n.jsx)(g.Z,{})}),(0,n.jsx)("input",{type:"text",min:"1",value:u,onChange:function(e){return e}}),(0,n.jsx)("span",{className:"plus-btn",onClick:function(){p(u+1)},children:(0,n.jsx)(f.Z,{})})]})]}),(0,n.jsx)("button",{type:"submit",onClick:function(){s({type:"ADD_QUANTITY_WITH_NUMBER",id:r,qty:u}),e("Cart Added Successfully",{appearance:"success"})},children:"Add to Cart"}),(0,n.jsx)("a",{href:"#",className:"add-to-wishlist-btn",title:"Add to Wishlist",children:(0,n.jsx)(v.Z,{})})]}),(0,n.jsxs)("div",{className:"custom-payment-options",children:[(0,n.jsx)("span",{children:"Guaranteed safe checkout:"}),(0,n.jsxs)("div",{className:"payment-methods",children:[(0,n.jsx)("img",{src:"/images/payment-image/payment-img1.svg",alt:"image"}),(0,n.jsx)("img",{src:"/images/payment-image/payment-img2.svg",alt:"image"}),(0,n.jsx)("img",{src:"/images/payment-image/payment-img3.svg",alt:"image"}),(0,n.jsx)("img",{src:"/images/payment-image/payment-img4.svg",alt:"image"}),(0,n.jsx)("img",{src:"/images/payment-image/payment-img5.svg",alt:"image"}),(0,n.jsx)("img",{src:"/images/payment-image/payment-img6.svg",alt:"image"}),(0,n.jsx)("img",{src:"/images/payment-image/payment-img7.svg",alt:"image"})]})]}),(0,n.jsxs)("div",{className:"products-share-social",children:[(0,n.jsx)("span",{children:"Share:"}),(0,n.jsxs)("ul",{children:[(0,n.jsx)("li",{children:(0,n.jsx)("a",{href:"#",className:"facebook",target:"_blank",children:(0,n.jsx)(y.Z,{})})}),(0,n.jsx)("li",{children:(0,n.jsx)("a",{href:"#",className:"twitter",target:"_blank",children:(0,n.jsx)(b.Z,{})})}),(0,n.jsx)("li",{children:(0,n.jsx)("a",{href:"#",className:"linkedin",target:"_blank",children:(0,n.jsx)(N.Z,{})})}),(0,n.jsx)("li",{children:(0,n.jsx)("a",{href:"#",className:"instagram",target:"_blank",children:(0,n.jsx)(w.Z,{})})})]})]})]})}),(0,n.jsx)("div",{className:"col-lg-12 col-md-12",children:(0,n.jsx)(j,{})})]})})}),(0,n.jsx)(l.Z,{})]})}},84176:function(e,s,r){(window.__NEXT_P=window.__NEXT_P||[]).push(["/products/[id]",function(){return r(64004)}])},20210:function(e,s,r){"use strict";var n=r(67294),t=r(45697),i=r.n(t);function a(){return(a=Object.assign||function(e){for(var s=1;s=0||(t[r]=e[r]);return t}(e,s);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(t[r]=e[r])}return t}var c=(0,n.forwardRef)((function(e,s){var r=e.color,t=void 0===r?"currentColor":r,i=e.size,c=void 0===i?24:i,o=l(e,["color","size"]);return n.createElement("svg",a({ref:s,xmlns:"http://www.w3.org/2000/svg",width:c,height:c,viewBox:"0 0 24 24",fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},o),n.createElement("line",{x1:"5",y1:"12",x2:"19",y2:"12"}))}));c.propTypes={color:i().string,size:i().oneOfType([i().string,i().number])},c.displayName="Minus",s.Z=c},61896:function(e,s,r){"use strict";var n=r(67294),t=r(45697),i=r.n(t);function a(){return(a=Object.assign||function(e){for(var s=1;s=0||(t[r]=e[r]);return t}(e,s);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(t[r]=e[r])}return t}var c=(0,n.forwardRef)((function(e,s){var r=e.color,t=void 0===r?"currentColor":r,i=e.size,c=void 0===i?24:i,o=l(e,["color","size"]);return n.createElement("svg",a({ref:s,xmlns:"http://www.w3.org/2000/svg",width:c,height:c,viewBox:"0 0 24 24",fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},o),n.createElement("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),n.createElement("line",{x1:"5",y1:"12",x2:"19",y2:"12"}))}));c.propTypes={color:i().string,size:i().oneOfType([i().string,i().number])},c.displayName="Plus",s.Z=c},73549:function(e,s,r){"use strict";var n=r(67294),t=r(45697),i=r.n(t);function a(){return(a=Object.assign||function(e){for(var s=1;s=0||(t[r]=e[r]);return t}(e,s);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(t[r]=e[r])}return t}var c=(0,n.forwardRef)((function(e,s){var r=e.color,t=void 0===r?"currentColor":r,i=e.size,c=void 0===i?24:i,o=l(e,["color","size"]);return n.createElement("svg",a({ref:s,xmlns:"http://www.w3.org/2000/svg",width:c,height:c,viewBox:"0 0 24 24",fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},o),n.createElement("circle",{cx:"9",cy:"21",r:"1"}),n.createElement("circle",{cx:"20",cy:"21",r:"1"}),n.createElement("path",{d:"M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"}))}));c.propTypes={color:i().string,size:i().oneOfType([i().string,i().number])},c.displayName="ShoppingCart",s.Z=c}},function(e){e.O(0,[9774,3023,199,8206,2888,179],(function(){return s=84176,e(e.s=s);var s}));var s=e.O();_N_E=s}]); -//# sourceMappingURL=[id]-b2c95cab851713134609.js.map \ No newline at end of file diff --git a/.next/static/chunks/pages/products/[id]-b2c95cab851713134609.js.map b/.next/static/chunks/pages/products/[id]-b2c95cab851713134609.js.map deleted file mode 100644 index c7426f5..0000000 --- a/.next/static/chunks/pages/products/[id]-b2c95cab851713134609.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack://_N_E/./components/Common/PageBanner.js","webpack://_N_E/./components/Shop/ProductSlider.js","webpack://_N_E/./components/Shop/ProductsDetailsTabs.js","webpack://_N_E/./pages/products/[id].js","webpack://_N_E/?6bcc","webpack://_N_E/./node_modules/react-feather/dist/icons/minus.js","webpack://_N_E/./node_modules/react-feather/dist/icons/plus.js","webpack://_N_E/./node_modules/react-feather/dist/icons/shopping-cart.js"],"names":["pageTitle","className","OwlCarousel","dynamic","options","loop","nav","dots","autoplay","items","smartSpeed","autoplayTimeout","navText","images","React","display","setDisplay","map","img","idx","src","alt","resetIdCounter","name","id","cols","rows","placeholder","type","addToast","useToasts","dispatch","useDispatch","productId","useRouter","query","product","useSelector","state","products","find","item","qty","setQty","Navbar","PageBanner","price","desc","availability","onSubmit","e","preventDefault","onClick","min","value","onChange","appearance","href","title","target","Footer","window","__NEXT_P","push","_extends","Object","assign","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","Minus","forwardRef","_ref","ref","_ref$color","color","_ref$size","size","rest","xmlns","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","x1","y1","x2","y2","propTypes","displayName","Plus","ShoppingCart","cx","cy","r","d"],"mappings":"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","file":"static/chunks/pages/products/[id]-b2c95cab851713134609.js","sourcesContent":["import React from 'react';\n\nconst PageBanner = ({pageTitle}) => {\n return (\n
\n
\n
\n
\n

{pageTitle}

\n
\n
\n
\n\n {/* Shape Images */}\n {/*
\n \"shape\"\n
\n\t\t\t
\n \"shape\"\n
\n\t\t\t
\n \"shape\"\n
\n\t\t\t
\n \"shape\"\n
\n\t\t\t
\n \"shape\"\n
\n\t\t\t
\n \"shape\"\n
\n\t\t\t
\n \"shape\"\n
\n\t\t\t
\n \"shape\"\n
*/}\n
\n );\n}\n\nexport default PageBanner;","import React from 'react'\nimport dynamic from 'next/dynamic'\nconst OwlCarousel = dynamic(import('react-owl-carousel3'))\n\nconst options = {\n loop: true,\n nav: true,\n dots: false,\n autoplay: true,\n items: 1,\n smartSpeed: 1000,\n autoplayTimeout: 5000,\n navText: [\n \"\",\n \"\"\n ],\n};\n\nconst ProductSlider = ({ images }) => {\n const [display, setDisplay] = React.useState(false);\n\n React.useEffect(() => {\n setDisplay(true);\n }, [])\n\n return (\n <>\n {display ? \n {images && images.map((img, idx) => (\n
\n \"img\"\n
\n ))}\n
: ''}\n \n )\n}\n\nexport default ProductSlider; ","import React from 'react';\nimport { resetIdCounter, Tab, Tabs, TabList, TabPanel } from 'react-tabs';\nresetIdCounter();\n\nconst ProductsDetailsTabs = () => {\n return (\n
\n \n \n Description\n Additional Information\n Review\n \n \n \n
\n

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. Lorem Ipsum is simply dummy text of the printing.

\n
\n
\n\n \n
\n
    \n
  • Brand ThemeForest
  • \n
  • Color Brown
  • \n
  • Size Large, Medium
  • \n
  • Weight 27 kg
  • \n
  • Dimensions 16 x 22 x 123 cm
  • \n
\n
\n
\n\n \n
\n

Customer Reviews

\n

There are no reviews yet.

\n\n
\n

Rate this item:

\n\n
\n \n \n \n \n \n\n

Very good product!

\n
\n\n
\n
\n
\n \n
\n
\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n\n
\n \n
\n
\n
\n
\n
\n
\n
\n )\n}\n\nexport default ProductsDetailsTabs; ","import React from 'react'\nimport Navbar from \"@/components/_App/Navbar\"\nimport Footer from \"@/components/_App/Footer\"\nimport PageBanner from '@/components/Common/PageBanner'\nimport ProductSlider from '@/components/Shop/ProductSlider'\nimport ProductsDetailsTabs from '@/components/Shop/ProductsDetailsTabs'\nimport * as Icon from 'react-feather'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { useRouter } from 'next/router'\nimport { useToasts } from 'react-toast-notifications'\n\nconst ProductDetails = () => {\n const { addToast } = useToasts()\n const dispatch = useDispatch()\n const router = useRouter()\n const productId = router.query.id\n const product = useSelector((state) => state.products.find(item => item.id === productId)) \n\n const [qty, setQty] = React.useState(1)\n\n const increment = () => {\n setQty(qty + 1)\n }\n\n const decrement = () => {\n setQty(qty - 1)\n }\n\n const addToCart = () => {\n dispatch({\n type: 'ADD_QUANTITY_WITH_NUMBER',\n id: productId,\n qty: qty\n })\n addToast('Cart Added Successfully', { appearance: 'success' })\n }\n\n return (\n <>\n \n \n\n
\n
\n
\n
\n \n
\n\n
\n
\n

{product && product.name}

\n\n
\n ${product && product.price}\n
\n\n
    \n
  • \n
  • \n
  • \n
  • \n
  • \n
\n\n

{product && product.desc}

\n\n
\n Availability: {product && product.availability}\n
\n
e.preventDefault()}>\n
\n Quantity:\n\n
\n \n \n \n\n e} />\n \n \n \n \n
\n
\n \n\n \n \n \n
\n\n
\n Guaranteed safe checkout:\n\n
\n \"image\"\n \"image\"\n \"image\"\n \"image\"\n \"image\"\n \"image\"\n \"image\"\n
\n
\n\n
\n Share:\n\n \n
\n
\n
\n\n
\n \n
\n
\n
\n
\n \n