diff --git a/assets/main-072ec282.js.map b/assets/main-072ec282.js.map deleted file mode 100644 index 2d8112f..0000000 --- a/assets/main-072ec282.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"main-072ec282.js","sources":["../../src/js/about-me.js","../../src/js/covers.js","../../src/js/faq.js","../../src/js/header.js","../../src/js/projects.js","../../src/js/reviews.js","../../src/js/work-together.js","../../src/js/Glass.js"],"sourcesContent":["import Accordion from 'accordion-js';\nimport 'accordion-js/dist/accordion.min.css';\nimport Swiper from 'swiper/bundle';\nimport { Mousewheel, Keyboard, Navigation } from 'swiper/modules';\n// import Swiper styles\n// import 'swiper/css';\n// import 'swiper/css/navigation';\nfunction aboutMeInit() {\n new Accordion('.about-me .accordion-container', {\n showMultiple: true,\n openOnInit: [0],\n });\n\n var swiper = new Swiper('.about-me .about-swiper', {\n modules: [Mousewheel, Keyboard, Navigation],\n // slidesPerView: 2, // Кількість слайдів, які видно одночасно\n slidesPerView: 'auto', // Кількість слайдів, які видно одночасно\n spaceBetween: 0, // Відступ між слайдами\n loop: true, // Безкінечна прокрутка\n updateOnWindowResize: true,\n // allowSlideNext: true,\n\n mousewheel: {\n enabled: true,\n invert: false,\n },\n navigation: {\n nextEl: '.about-me .about-swiper .next',\n preventClicks: false,\n },\n keyboard: {\n enabled: true,\n onlyInViewport: true,\n },\n breakpoints: {\n 1440: {\n mousewheel: {\n enabled: false,\n },\n },\n },\n });\n document.addEventListener('keydown', function (event) {\n if (event.key === 'Tab') {\n event.preventDefault();\n if (event.shiftKey) {\n swiper.slidePrev();\n } else {\n swiper.slideNext();\n }\n }\n });\n}\naboutMeInit();\n","const coverRefs = {\n marqueeCards: document.querySelectorAll('.marquee-card'),\n sectionCovers: document.querySelector('#covers'),\n};\n\nconst observerOptions = {\n root: null,\n rootMargin: '0px',\n threshold: 0,\n};\n\nfunction animateCards(entries) {\n entries.forEach(entry => {\n if (!entry.isIntersecting) {\n coverRefs.marqueeCards.forEach(card => {\n card.classList.remove('animation');\n });\n return;\n }\n coverRefs.marqueeCards.forEach(card => {\n card.classList.add('animation');\n });\n });\n}\n\nlet observer = new IntersectionObserver(animateCards, observerOptions);\nobserver.observe(coverRefs.sectionCovers);\n","import Accordion from 'accordion-js';\nimport 'accordion-js/dist/accordion.min.css';\n\nnew Accordion('.faq .accordion-container', {\n duration: 600,\n showMultiple: false,\n});\n","function headerInit() {\n const burgerMenu = document.querySelector('.burger-menu');\n const menuEl = document.querySelector('.header-list-menu');\n const mobMenu = document.querySelector('.mobil-menu');\n const closeBtn = document.querySelector('.mobil-menu-close-btn');\n const dropdownMenu = document.querySelector(\n '.header-dropdown-menu-content'\n );\n const hiddenMenu = document.querySelector('.mobil-menu-nav-list');\n const orderBtn = document.querySelector('.mobil-menu-order-btn');\n const bodyEl = document.querySelector('body');\n\n // console.log(burgerMenu);\n // console.log(menuEl);\n // console.log(mobMenu);\n // console.log(closeBtn);\n // console.log(dropdownLink);\n\n function toggleDropdownMenu(e) {\n console.log(e.target);\n if (e.target !== e.currentTarget) {\n dropdownMenu.classList.toggle('d-none');\n }\n }\n function openModalMenu(e) {\n console.log(e.target);\n mobMenu.classList.add('is-open');\n bodyEl.classList.add('mob-menu-overflow');\n }\n\n function closeModalMenu(e) {\n mobMenu.classList.remove('is-open');\n bodyEl.classList.remove('mob-menu-overflow');\n }\n const header = {\n hideMenu() {\n dropdownMenu.classList.add('d-none');\n },\n showMenu() {\n dropdownMenu.classList.remove('d-none');\n },\n };\n\n menuEl.addEventListener('click', toggleDropdownMenu);\n burgerMenu.addEventListener('click', openModalMenu);\n dropdownMenu.addEventListener('click', toggleDropdownMenu);\n hiddenMenu.addEventListener('click', openModalMenu);\n closeBtn.addEventListener('click', closeModalMenu);\n orderBtn.addEventListener('click', closeModalMenu);\n document.addEventListener('keydown', e => {\n if (e.key == 'Escape') {\n e.preventDefault();\n closeModalMenu();\n header.hideMenu();\n }\n });\n}\nheaderInit();\n","import Swiper from 'swiper';\nimport { Keyboard, Mousewheel } from 'swiper/modules';\n\n// init Swiper:\nfunction projectsInit() {\n const swiper = new Swiper('.projects .projects-swiper', {\n modules: [Mousewheel, Keyboard],\n updateOnWindowResize: true,\n spaceBetween: 20,\n mousewheel: {\n invert: false,\n },\n keyboard: {\n enabled: true,\n onlyInViewport: true,\n },\n navigation: {\n prevEl: '.projects .projects-swiper .prev',\n nextEl: '.projects .projects-swiper .next',\n preventClicks: false,\n },\n });\n document.addEventListener('keydown', function (event) {\n if (event.key === 'Tab') {\n event.preventDefault();\n if (event.shiftKey) {\n swiper.slidePrev();\n } else {\n swiper.slideNext();\n }\n }\n });\n}\nprojectsInit();\n","import axios from 'axios';\nimport iziToast from 'izitoast';\nimport 'izitoast/dist/css/iziToast.min.css';\nimport Swiper from 'swiper';\nimport { Keyboard, Mousewheel } from 'swiper/modules';\n\nfunction reviewsInit() {\n const swiper = new Swiper('.reviews-swiper', {\n modules: [Keyboard, Mousewheel],\n updateOnWindowResize: true,\n spaceBetween: 20,\n height: 302,\n keyboard: {\n enabled: true,\n onlyInViewport: true,\n },\n mousewheel: {\n invert: false,\n },\n breakpoints: {\n 768: {\n slidesPerView: 2,\n spaceBetween: 16,\n },\n 1440: {\n slidesPerView: 4,\n spaceBetween: 16,\n },\n },\n\n navigation: {\n prevEl: '.reviews-swiper .prev',\n nextEl: '.reviews-swiper .next',\n // preventClicks: false,\n },\n });\n\n document.addEventListener('keydown', function (e) {\n if (e.key === 'Tab') {\n e.preventDefault();\n if (e.shiftKey) {\n swiper.slidePrev();\n } else {\n swiper.slideNext();\n }\n }\n });\n let currentId = 1;\n\n const selectors = {\n container: document.querySelector('.reviews-list'),\n btnPrev: document.querySelector('.reviews-swiper .prev'),\n btnNext: document.querySelector('.reviews-swiper .next'),\n };\n\n async function fetchReviews(id) {\n try {\n const response = await axios.get(\n 'https://portfolio-js.b.goit.study/api/reviews',\n { params: { id } }\n );\n\n if (response.status !== 200) {\n throw new Error(response.status);\n }\n return response.data;\n } catch (error) {\n throw new Error(`Fetching reviews failed: ${error.message}`);\n }\n }\n\n async function renderReviews() {\n try {\n const reviews = await fetchReviews(currentId);\n const markup = reviews\n .map(\n ({ _id, author, avatar_url, review }) => `\n
${review}
\nNot found
`\n );\n showNotification(error.message);\n }\n }\n\n renderReviews();\n\n // Function: show notification\n const showNotification = msg => {\n iziToast.settings({\n timeout: 5000,\n titleColor: '#fff',\n position: 'center',\n messageColor: '#fff',\n icon: '',\n });\n iziToast.error({\n message: msg,\n timeout: 5000,\n position: 'center',\n backgroundColor: '#EF4040',\n });\n };\n}\nreviewsInit();\n","import axios from 'axios';\n// Submit btn going to modal content and clear the input after\nfunction workTogheterInit() {\n const formData = JSON.parse(\n localStorage.getItem('feedback-form-state')\n ) ?? {\n email: '',\n comment: '',\n };\n\n const modal = document.getElementById('modal');\n const modalContent = modal.querySelector('.modal-content');\n const closeModalBtn = modal.querySelector('.close-btn');\n const form = document.getElementById('contact-form');\n const emailInput = form.email;\n const commentInput = form.comment;\n const successMessage = document.querySelector('.success-message');\n const errorMessage = document.querySelector('.error-message');\n\n emailInput.value = formData.email;\n commentInput.value = formData.comment;\n\n function openModal() {\n modal.style.display = 'flex';\n }\n function closeModal() {\n modal.style.display = 'none';\n }\n\n closeModalBtn.addEventListener('click', closeModal);\n\n modal.addEventListener('click', function (event) {\n if (event.target === modal) {\n closeModal();\n }\n });\n\n document.addEventListener('keydown', function (event) {\n if (event.key === 'Escape') {\n closeModal();\n }\n });\n form.addEventListener('input', e => {\n formData[e.target.name] = e.target.value.trim();\n localStorage.setItem('feedback-form-state', JSON.stringify(formData));\n });\n\n form.addEventListener('submit', function (event) {\n event.preventDefault();\n\n axios\n .post('https://portfolio-js.b.goit.study/api/requests', formData)\n .then(() => {\n successMessage.style.display = 'block';\n openModal();\n })\n .catch(() => {\n errorMessage.style.display = 'block';\n });\n localStorage.clear();\n event.target.reset();\n formData.email = '';\n formData.comment = '';\n });\n\n // Input border color changing and adding appropriate message\n\n const errorMessage2 = emailInput.nextElementSibling;\n const successMessage2 = errorMessage2.nextElementSibling;\n\n errorMessage2.style.display = 'none';\n successMessage2.style.display = 'none';\n\n emailInput.addEventListener('blur', function () {\n if (emailInput.value.trim()) {\n if (emailInput.validity.valid) {\n emailInput.classList.add('input-valid');\n emailInput.classList.remove('input-error');\n errorMessage2.style.display = 'none';\n successMessage2.style.display = 'block';\n } else {\n emailInput.classList.add('input-error');\n emailInput.classList.remove('input-valid');\n errorMessage2.style.display = 'block';\n successMessage2.style.display = 'none';\n }\n } else {\n errorMessage2.style.display = 'none';\n successMessage2.style.display = 'none';\n emailInput.classList.remove('input-error');\n emailInput.classList.remove('input-valid');\n }\n });\n}\nworkTogheterInit();\n","import '../css/glass.css';\n\nlet resize = 0;\nconsole.log(resize);\nwindow.addEventListener('resize', () => {\n let size = window.innerWidth;\n // console.log(size, resize);\n console.log(size % 50 == 0);\n\n if (size % 25 == 0) {\n // resize = 375;\n // console.log(size, resize);\n addGlassEffect();\n }\n\n // if (size < 375 && resize !== 375) {\n // resize = 375;\n // console.log(size, resize);\n // addGlassEffect();\n // }\n // if (size > 375 && size < 767 && resize !== 767) {\n // resize = 767;\n // console.log(size, resize);\n // addGlassEffect();\n // }\n // if (size > 768 && size < 1440 && resize !== 1440) {\n // resize = 1440;\n // console.log(size, resize);\n // addGlassEffect();\n // }\n // if (size > 1440 && resize !== 1441) {\n // resize = 1441;\n // console.log(size, resize);\n // addGlassEffect();\n // }\n\n // addGlassEffect();\n});\n\nfunction addGlassEffect() {\n const glassList = document.querySelectorAll('.glass');\n let count = 10;\n const globalOffset = 0;\n const offset = 5;\n const compensation = {\n width: 0,\n };\n\n glassList.forEach(glass => {\n glass.innerHTML = '';\n if (innerWidth < 375) {\n // console.log('Less 375');\n glass.style.width = '90%';\n count = 6;\n }\n if (375 < innerWidth && innerWidth < 768) {\n let parent = glass.closest('.gradient');\n parent.classList.remove('gradient-red');\n parent.classList.add('gradient-red-tablet');\n glass.style.width = '75%';\n count = 6;\n // console.log('Less 768');\n }\n if (768 < innerWidth && innerWidth < 1440) {\n // console.log('Less 1440');\n }\n compensation.width = glass.clientWidth / count + offset;\n let markup = '';\n for (let i = 0; i < count; i++) {\n let elem = ``;\n markup += elem;\n }\n glass.insertAdjacentHTML('beforeend', markup);\n setTimeout(() => {\n glass.classList.add('active');\n }, 500);\n });\n}\naddGlassEffect();\n"],"names":["aboutMeInit","Accordion","swiper","Swiper","Mousewheel","Keyboard","Navigation","event","coverRefs","observerOptions","animateCards","entries","entry","card","observer","headerInit","burgerMenu","menuEl","mobMenu","closeBtn","dropdownMenu","hiddenMenu","orderBtn","bodyEl","toggleDropdownMenu","e","openModalMenu","closeModalMenu","header","projectsInit","reviewsInit","currentId","selectors","fetchReviews","id","response","axios","error","renderReviews","markup","_id","author","avatar_url","review","showNotification","msg","iziToast","workTogheterInit","formData","modal","closeModalBtn","form","emailInput","commentInput","successMessage","errorMessage","openModal","closeModal","errorMessage2","successMessage2","resize","size","addGlassEffect","glassList","count","offset","compensation","glass","parent","i","elem"],"mappings":"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"} \ No newline at end of file diff --git a/assets/main-072ec282.js b/assets/main-19841cee.js similarity index 98% rename from assets/main-072ec282.js rename to assets/main-19841cee.js index daba80f..b77489a 100644 --- a/assets/main-072ec282.js +++ b/assets/main-19841cee.js @@ -1,4 +1,4 @@ -import{A as g,S as f,M as w,K as v,N as L,i as y,a as b}from"./vendor-2e4beb6d.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const e of document.querySelectorAll('link[rel="modulepreload"]'))c(e);new MutationObserver(e=>{for(const o of e)if(o.type==="childList")for(const s of o.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&c(s)}).observe(document,{childList:!0,subtree:!0});function i(e){const o={};return e.integrity&&(o.integrity=e.integrity),e.referrerPolicy&&(o.referrerPolicy=e.referrerPolicy),e.crossOrigin==="use-credentials"?o.credentials="include":e.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function c(e){if(e.ep)return;e.ep=!0;const o=i(e);fetch(e.href,o)}})();function E(){new g(".about-me .accordion-container",{showMultiple:!0,openOnInit:[0]});var n=new f(".about-me .about-swiper",{modules:[w,v,L],slidesPerView:"auto",spaceBetween:0,loop:!0,updateOnWindowResize:!0,mousewheel:{enabled:!0,invert:!1},navigation:{nextEl:".about-me .about-swiper .next",preventClicks:!1},keyboard:{enabled:!0,onlyInViewport:!0},breakpoints:{1440:{mousewheel:{enabled:!1}}}});document.addEventListener("keydown",function(t){t.key==="Tab"&&(t.preventDefault(),t.shiftKey?n.slidePrev():n.slideNext())})}E();const p={marqueeCards:document.querySelectorAll(".marquee-card"),sectionCovers:document.querySelector("#covers")},k={root:null,rootMargin:"0px",threshold:0};function M(n){n.forEach(t=>{if(!t.isIntersecting){p.marqueeCards.forEach(i=>{i.classList.remove("animation")});return}p.marqueeCards.forEach(i=>{i.classList.add("animation")})})}let S=new IntersectionObserver(M,k);S.observe(p.sectionCovers);new g(".faq .accordion-container",{duration:600,showMultiple:!1});function q(){const n=document.querySelector(".burger-menu"),t=document.querySelector(".header-list-menu"),i=document.querySelector(".mobil-menu"),c=document.querySelector(".mobil-menu-close-btn"),e=document.querySelector(".header-dropdown-menu-content"),o=document.querySelector(".mobil-menu-nav-list"),s=document.querySelector(".mobil-menu-order-btn"),a=document.querySelector("body");function m(r){console.log(r.target),r.target!==r.currentTarget&&e.classList.toggle("d-none")}function d(r){console.log(r.target),i.classList.add("is-open"),a.classList.add("mob-menu-overflow")}function l(r){i.classList.remove("is-open"),a.classList.remove("mob-menu-overflow")}const u={hideMenu(){e.classList.add("d-none")},showMenu(){e.classList.remove("d-none")}};t.addEventListener("click",m),n.addEventListener("click",d),e.addEventListener("click",m),o.addEventListener("click",d),c.addEventListener("click",l),s.addEventListener("click",l),document.addEventListener("keydown",r=>{r.key=="Escape"&&(r.preventDefault(),l(),u.hideMenu())})}q();function x(){const n=new f(".projects .projects-swiper",{modules:[w,v],updateOnWindowResize:!0,spaceBetween:20,mousewheel:{invert:!1},keyboard:{enabled:!0,onlyInViewport:!0},navigation:{prevEl:".projects .projects-swiper .prev",nextEl:".projects .projects-swiper .next",preventClicks:!1}});document.addEventListener("keydown",function(t){t.key==="Tab"&&(t.preventDefault(),t.shiftKey?n.slidePrev():n.slideNext())})}x();function I(){const n=new f(".reviews-swiper",{modules:[v,w],updateOnWindowResize:!0,spaceBetween:20,height:302,keyboard:{enabled:!0,onlyInViewport:!0},mousewheel:{invert:!1},breakpoints:{768:{slidesPerView:2,spaceBetween:16},1440:{slidesPerView:4,spaceBetween:16}},navigation:{prevEl:".reviews-swiper .prev",nextEl:".reviews-swiper .next"}});document.addEventListener("keydown",function(s){s.key==="Tab"&&(s.preventDefault(),s.shiftKey?n.slidePrev():n.slideNext())});let t=1;const i={container:document.querySelector(".reviews-list"),btnPrev:document.querySelector(".reviews-swiper .prev"),btnNext:document.querySelector(".reviews-swiper .next")};async function c(s){try{const a=await b.get("https://portfolio-js.b.goit.study/api/reviews",{params:{id:s}});if(a.status!==200)throw new Error(a.status);return a.data}catch(a){throw new Error(`Fetching reviews failed: ${a.message}`)}}async function e(){try{const a=(await c(t)).map(({_id:m,author:d,avatar_url:l,review:u})=>` +import{A as g,S as f,M as w,K as v,N as L,i as y,a as b}from"./vendor-2e4beb6d.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const e of document.querySelectorAll('link[rel="modulepreload"]'))c(e);new MutationObserver(e=>{for(const o of e)if(o.type==="childList")for(const s of o.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&c(s)}).observe(document,{childList:!0,subtree:!0});function i(e){const o={};return e.integrity&&(o.integrity=e.integrity),e.referrerPolicy&&(o.referrerPolicy=e.referrerPolicy),e.crossOrigin==="use-credentials"?o.credentials="include":e.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function c(e){if(e.ep)return;e.ep=!0;const o=i(e);fetch(e.href,o)}})();function E(){new g(".about-me .accordion-container",{showMultiple:!0,openOnInit:[0]});var n=new f(".about-me .about-swiper",{modules:[w,v,L],slidesPerView:"auto",spaceBetween:0,loop:!0,updateOnWindowResize:!0,mousewheel:{enabled:!0,invert:!1},navigation:{nextEl:".about-me .about-swiper .next",preventClicks:!1},keyboard:{enabled:!0,onlyInViewport:!0},breakpoints:{1440:{mousewheel:{enabled:!1}}}});document.addEventListener("keydown",function(t){t.key==="Tab"&&(t.preventDefault(),t.shiftKey?n.slidePrev():n.slideNext())})}E();const p={marqueeCards:document.querySelectorAll(".marquee-card"),sectionCovers:document.querySelector("#covers")},k={root:null,rootMargin:"0px",threshold:0};function M(n){n.forEach(t=>{if(!t.isIntersecting){p.marqueeCards.forEach(i=>{i.classList.remove("animation")});return}p.marqueeCards.forEach(i=>{i.classList.add("animation")})})}let S=new IntersectionObserver(M,k);S.observe(p.sectionCovers);new g(".faq .accordion-container",{duration:600,showMultiple:!1});function q(){const n=document.querySelector(".burger-menu"),t=document.querySelector(".header-list-menu"),i=document.querySelector(".mobil-menu"),c=document.querySelector(".mobil-menu-close-btn"),e=document.querySelector(".header-dropdown-menu-content"),o=document.querySelector(".mobil-menu-nav-list"),s=document.querySelector(".mobil-menu-order-btn"),a=document.querySelector("body");function m(r){console.log(r.target),r.target!==r.currentTarget&&e.classList.toggle("d-none")}function d(r){console.log(r.target),i.classList.add("is-open"),a.classList.add("mob-menu-overflow")}function l(r){i.classList.remove("is-open"),a.classList.remove("mob-menu-overflow")}const u={hideMenu(){e.classList.add("d-none")},showMenu(){e.classList.remove("d-none")}};t.addEventListener("click",m),n.addEventListener("click",d),e.addEventListener("click",m),o.addEventListener("click",l),c.addEventListener("click",l),s.addEventListener("click",l),document.addEventListener("keydown",r=>{r.key=="Escape"&&(r.preventDefault(),l(),u.hideMenu())})}q();function x(){const n=new f(".projects .projects-swiper",{modules:[w,v],updateOnWindowResize:!0,spaceBetween:20,mousewheel:{invert:!1},keyboard:{enabled:!0,onlyInViewport:!0},navigation:{prevEl:".projects .projects-swiper .prev",nextEl:".projects .projects-swiper .next",preventClicks:!1}});document.addEventListener("keydown",function(t){t.key==="Tab"&&(t.preventDefault(),t.shiftKey?n.slidePrev():n.slideNext())})}x();function I(){const n=new f(".reviews-swiper",{modules:[v,w],updateOnWindowResize:!0,spaceBetween:20,height:302,keyboard:{enabled:!0,onlyInViewport:!0},mousewheel:{invert:!1},breakpoints:{768:{slidesPerView:2,spaceBetween:16},1440:{slidesPerView:4,spaceBetween:16}},navigation:{prevEl:".reviews-swiper .prev",nextEl:".reviews-swiper .next"}});document.addEventListener("keydown",function(s){s.key==="Tab"&&(s.preventDefault(),s.shiftKey?n.slidePrev():n.slideNext())});let t=1;const i={container:document.querySelector(".reviews-list"),btnPrev:document.querySelector(".reviews-swiper .prev"),btnNext:document.querySelector(".reviews-swiper .next")};async function c(s){try{const a=await b.get("https://portfolio-js.b.goit.study/api/reviews",{params:{id:s}});if(a.status!==200)throw new Error(a.status);return a.data}catch(a){throw new Error(`Fetching reviews failed: ${a.message}`)}}async function e(){try{const a=(await c(t)).map(({_id:m,author:d,avatar_url:l,review:u})=>`Not found
'),o(s.message)}}e();const o=s=>{y.settings({timeout:5e3,titleColor:"#fff",position:"center",messageColor:"#fff",icon:""}),y.error({message:s,timeout:5e3,position:"center",backgroundColor:"#EF4040"})}}I();function O(){const n=JSON.parse(localStorage.getItem("feedback-form-state"))??{email:"",comment:""},t=document.getElementById("modal");t.querySelector(".modal-content");const i=t.querySelector(".close-btn"),c=document.getElementById("contact-form"),e=c.email,o=c.comment,s=document.querySelector(".success-message"),a=document.querySelector(".error-message");e.value=n.email,o.value=n.comment;function m(){t.style.display="flex"}function d(){t.style.display="none"}i.addEventListener("click",d),t.addEventListener("click",function(r){r.target===t&&d()}),document.addEventListener("keydown",function(r){r.key==="Escape"&&d()}),c.addEventListener("input",r=>{n[r.target.name]=r.target.value.trim(),localStorage.setItem("feedback-form-state",JSON.stringify(n))}),c.addEventListener("submit",function(r){r.preventDefault(),b.post("https://portfolio-js.b.goit.study/api/requests",n).then(()=>{s.style.display="block",m()}).catch(()=>{a.style.display="block"}),localStorage.clear(),r.target.reset(),n.email="",n.comment=""});const l=e.nextElementSibling,u=l.nextElementSibling;l.style.display="none",u.style.display="none",e.addEventListener("blur",function(){e.value.trim()?e.validity.valid?(e.classList.add("input-valid"),e.classList.remove("input-error"),l.style.display="none",u.style.display="block"):(e.classList.add("input-error"),e.classList.remove("input-valid"),l.style.display="block",u.style.display="none"):(l.style.display="none",u.style.display="none",e.classList.remove("input-error"),e.classList.remove("input-valid"))})}O();let j=0;console.log(j);window.addEventListener("resize",()=>{let n=window.innerWidth;console.log(n%50==0),n%25==0&&h()});function h(){const n=document.querySelectorAll(".glass");let t=10;const i=5,c={width:0};n.forEach(e=>{if(e.innerHTML="",innerWidth<375&&(e.style.width="90%",t=6),375${review}
\nNot found
`\n );\n showNotification(error.message);\n }\n }\n\n renderReviews();\n\n // Function: show notification\n const showNotification = msg => {\n iziToast.settings({\n timeout: 5000,\n titleColor: '#fff',\n position: 'center',\n messageColor: '#fff',\n icon: '',\n });\n iziToast.error({\n message: msg,\n timeout: 5000,\n position: 'center',\n backgroundColor: '#EF4040',\n });\n };\n}\nreviewsInit();\n","import axios from 'axios';\n// Submit btn going to modal content and clear the input after\nfunction workTogheterInit() {\n const formData = JSON.parse(\n localStorage.getItem('feedback-form-state')\n ) ?? {\n email: '',\n comment: '',\n };\n\n const modal = document.getElementById('modal');\n const modalContent = modal.querySelector('.modal-content');\n const closeModalBtn = modal.querySelector('.close-btn');\n const form = document.getElementById('contact-form');\n const emailInput = form.email;\n const commentInput = form.comment;\n const successMessage = document.querySelector('.success-message');\n const errorMessage = document.querySelector('.error-message');\n\n emailInput.value = formData.email;\n commentInput.value = formData.comment;\n\n function openModal() {\n modal.style.display = 'flex';\n }\n function closeModal() {\n modal.style.display = 'none';\n }\n\n closeModalBtn.addEventListener('click', closeModal);\n\n modal.addEventListener('click', function (event) {\n if (event.target === modal) {\n closeModal();\n }\n });\n\n document.addEventListener('keydown', function (event) {\n if (event.key === 'Escape') {\n closeModal();\n }\n });\n form.addEventListener('input', e => {\n formData[e.target.name] = e.target.value.trim();\n localStorage.setItem('feedback-form-state', JSON.stringify(formData));\n });\n\n form.addEventListener('submit', function (event) {\n event.preventDefault();\n\n axios\n .post('https://portfolio-js.b.goit.study/api/requests', formData)\n .then(() => {\n successMessage.style.display = 'block';\n openModal();\n })\n .catch(() => {\n errorMessage.style.display = 'block';\n });\n localStorage.clear();\n event.target.reset();\n formData.email = '';\n formData.comment = '';\n });\n\n // Input border color changing and adding appropriate message\n\n const errorMessage2 = emailInput.nextElementSibling;\n const successMessage2 = errorMessage2.nextElementSibling;\n\n errorMessage2.style.display = 'none';\n successMessage2.style.display = 'none';\n\n emailInput.addEventListener('blur', function () {\n if (emailInput.value.trim()) {\n if (emailInput.validity.valid) {\n emailInput.classList.add('input-valid');\n emailInput.classList.remove('input-error');\n errorMessage2.style.display = 'none';\n successMessage2.style.display = 'block';\n } else {\n emailInput.classList.add('input-error');\n emailInput.classList.remove('input-valid');\n errorMessage2.style.display = 'block';\n successMessage2.style.display = 'none';\n }\n } else {\n errorMessage2.style.display = 'none';\n successMessage2.style.display = 'none';\n emailInput.classList.remove('input-error');\n emailInput.classList.remove('input-valid');\n }\n });\n}\nworkTogheterInit();\n","import '../css/glass.css';\n\nlet resize = 0;\nconsole.log(resize);\nwindow.addEventListener('resize', () => {\n let size = window.innerWidth;\n // console.log(size, resize);\n console.log(size % 50 == 0);\n\n if (size % 25 == 0) {\n // resize = 375;\n // console.log(size, resize);\n addGlassEffect();\n }\n\n // if (size < 375 && resize !== 375) {\n // resize = 375;\n // console.log(size, resize);\n // addGlassEffect();\n // }\n // if (size > 375 && size < 767 && resize !== 767) {\n // resize = 767;\n // console.log(size, resize);\n // addGlassEffect();\n // }\n // if (size > 768 && size < 1440 && resize !== 1440) {\n // resize = 1440;\n // console.log(size, resize);\n // addGlassEffect();\n // }\n // if (size > 1440 && resize !== 1441) {\n // resize = 1441;\n // console.log(size, resize);\n // addGlassEffect();\n // }\n\n // addGlassEffect();\n});\n\nfunction addGlassEffect() {\n const glassList = document.querySelectorAll('.glass');\n let count = 10;\n const globalOffset = 0;\n const offset = 5;\n const compensation = {\n width: 0,\n };\n\n glassList.forEach(glass => {\n glass.innerHTML = '';\n if (innerWidth < 375) {\n // console.log('Less 375');\n glass.style.width = '90%';\n count = 6;\n }\n if (375 < innerWidth && innerWidth < 768) {\n let parent = glass.closest('.gradient');\n parent.classList.remove('gradient-red');\n parent.classList.add('gradient-red-tablet');\n glass.style.width = '75%';\n count = 6;\n // console.log('Less 768');\n }\n if (768 < innerWidth && innerWidth < 1440) {\n // console.log('Less 1440');\n }\n compensation.width = glass.clientWidth / count + offset;\n let markup = '';\n for (let i = 0; i < count; i++) {\n let elem = ``;\n markup += elem;\n }\n glass.insertAdjacentHTML('beforeend', markup);\n setTimeout(() => {\n glass.classList.add('active');\n }, 500);\n });\n}\naddGlassEffect();\n"],"names":["aboutMeInit","Accordion","swiper","Swiper","Mousewheel","Keyboard","Navigation","event","coverRefs","observerOptions","animateCards","entries","entry","card","observer","headerInit","burgerMenu","menuEl","mobMenu","closeBtn","dropdownMenu","hiddenMenu","orderBtn","bodyEl","toggleDropdownMenu","e","openModalMenu","closeModalMenu","header","projectsInit","reviewsInit","currentId","selectors","fetchReviews","id","response","axios","error","renderReviews","markup","_id","author","avatar_url","review","showNotification","msg","iziToast","workTogheterInit","formData","modal","closeModalBtn","form","emailInput","commentInput","successMessage","errorMessage","openModal","closeModal","errorMessage2","successMessage2","resize","size","addGlassEffect","glassList","count","offset","compensation","glass","parent","i","elem"],"mappings":"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"} \ No newline at end of file diff --git a/examples.html b/examples.html index 8db8bcb..2428355 100644 --- a/examples.html +++ b/examples.html @@ -9,7 +9,7 @@ - + diff --git a/index.html b/index.html index b8613af..9bb7934 100644 --- a/index.html +++ b/index.html @@ -8,7 +8,7 @@ - +