From 005e762da9c37083aeda5c02beceff7293d90387 Mon Sep 17 00:00:00 2001 From: lesiaturuta Date: Sun, 17 Dec 2023 20:45:43 +0200 Subject: [PATCH 01/11] added homework 10 --- docs/lesiaturuta/5-logic/assets/card.png | Bin 0 -> 10201 bytes docs/lesiaturuta/5-logic/homework.js | 119 +++++++++++++++++++++ docs/lesiaturuta/5-logic/index.html | 127 +++++++++++++++++++++++ docs/lesiaturuta/5-logic/script.js | 70 +++++++++++++ 4 files changed, 316 insertions(+) create mode 100644 docs/lesiaturuta/5-logic/assets/card.png create mode 100644 docs/lesiaturuta/5-logic/homework.js create mode 100644 docs/lesiaturuta/5-logic/index.html create mode 100644 docs/lesiaturuta/5-logic/script.js diff --git a/docs/lesiaturuta/5-logic/assets/card.png b/docs/lesiaturuta/5-logic/assets/card.png new file mode 100644 index 0000000000000000000000000000000000000000..077e22942c61e4af98c55d79916a21f61a08c601 GIT binary patch literal 10201 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 TObQ`=00000NkvXXu0mjf?S{o3 literal 0 HcmV?d00001 diff --git a/docs/lesiaturuta/5-logic/homework.js b/docs/lesiaturuta/5-logic/homework.js new file mode 100644 index 00000000..4551bc36 --- /dev/null +++ b/docs/lesiaturuta/5-logic/homework.js @@ -0,0 +1,119 @@ +/** + * + * @param firstValue string with first number + * @param secondValue string with second number + * @param operation string with operation symbol + * @returns {string|number} result of calculation or error message: + * - if firstValue or secondValue is not a number, return 'Enter a number' + * - if operation is not '+', '-', '*', '/', return 'Choose a valid operation' + * - if the result is more than 100, return 'Result is too big' + * - else return number of result: 1 '+' 2 returns 3 + * + */ +function calculate(firstValue, secondValue, operation) { + const operations = ['/', '*', '-', '+']; + + const firstNumber = Number(firstValue); + const secondNumber = Number(secondValue); + + if (Number.isNaN(firstNumber)) { + return 'Enter a number'; + } + + if (Number.isNaN(secondNumber) || (secondNumber === 0 && operation === '/')) { + return 'Enter a number'; + } + + if (!operations.includes(operation)) { + return 'Choose a valid operation'; + } + + let result = 0; + switch (operation) { + case '+': + result = firstNumber + secondNumber; + break; + case '-': + result = firstNumber - secondNumber; + break; + case '*': + result = firstNumber * secondNumber; + break; + case '/': + result = firstNumber / secondNumber; + break; + default: + return 'Invalid operation'; + } + return result > 100 ? 'Result is too big' : result; +} + +function interpolateToPercentage(value) { + const value1 = 0; // Начальное значение + const percent1 = 100; // Процент для начального значения + const value2 = 100; // Конечное значение + const percent2 = 0; // Процент для конечного значения + return ((value - value1) * (percent2 - percent1)) / (value2 - value1) + percent1; +} + +function createImages(number) { + console.log('number', number); + const div = document.createElement('div'); + div.setAttribute('style', 'display:flex;'); + let divTemp = document.createElement('div'); + let marginTop = 0; + const imgSetting = { + width: 90, + height: 90, + }; + const top = 15; + const remainder = number % 1; + for (let i = 0; i < number; i++) { + const img = document.createElement('img'); + divTemp.setAttribute('style', `display:flex;position:relative; width: ${imgSetting.width}px; height: ${imgSetting.width + top * 10}px;`); + img.setAttribute('style', `box-shadow: 0px 0px 6px 0px #00000040;clip-path: inset(0% 0% 0% 0%);top: ${marginTop * top}px; position:absolute;`); + img.setAttribute('src', './assets/card.png'); + img.setAttribute('width', imgSetting.width); + img.setAttribute('height', imgSetting.height); + marginTop++; + divTemp.appendChild(img); + if (marginTop === 10) { + div.appendChild(divTemp); + divTemp = document.createElement('div'); + divTemp.setAttribute('style', `display:flex;position:relative; width: ${imgSetting.width}px; height: ${imgSetting.width + top * marginTop}px;`); + marginTop = 0; + } + } + if (divTemp.hasChildNodes()) { + divTemp.setAttribute('style', `display:flex;position:relative; width: ${imgSetting.width}px; height: ${imgSetting.width + top * marginTop}px;`); + const lastImg = divTemp.querySelector('img:last-child'); + if (lastImg && remainder) { + lastImg.style.clipPath = `inset(0% 0% ${interpolateToPercentage(remainder * 100)}% 0%)`; + } + div.appendChild(divTemp); + } + return div; +} + +const cleanElement = (el) => { + while (el.firstChild) { + el.removeChild(el.firstChild); + } +}; +const getDateFormat = (date, locales = 'en-US') => { + const currentDate = date || new Date(); + + const day = currentDate.getDate(); + const month = currentDate.toLocaleString(locales, { month: 'short' }); + const year = currentDate.getFullYear(); + + const hours = currentDate.getHours(); + const minutes = currentDate.getMinutes(); + + return `${day}-${month}-${year}, ${hours}:${minutes}`; +}; + +window.calculate = calculate; +window.createImages = createImages; +window.cleanElement = cleanElement; +window.getDateFormat = getDateFormat; diff --git a/docs/lesiaturuta/5-logic/index.html b/docs/lesiaturuta/5-logic/index.html new file mode 100644 index 00000000..9d985dc3 --- /dev/null +++ b/docs/lesiaturuta/5-logic/index.html @@ -0,0 +1,127 @@ + + + + + + + + PokemonProject + + + + + + + + +
+ +
+ +
+
+

Calculate Pokemons

+
+ + + +
+   + +
+
+ max 100 + +
+
+

+ + +

+
+
+
+
+
+
+
+ +
+
+ + + + + + + + diff --git a/docs/lesiaturuta/5-logic/script.js b/docs/lesiaturuta/5-logic/script.js new file mode 100644 index 00000000..16abf459 --- /dev/null +++ b/docs/lesiaturuta/5-logic/script.js @@ -0,0 +1,70 @@ +const FIRST_VALUE_ELEMENT = document.getElementById('firstValue'); +const SECOND_VALUE_ELEMENT = document.getElementById('secondValue'); +const OPERATION_ELEMENT = document.getElementById('operation'); +const CALCULATE_BUTTON_ELEMENT = document.getElementById('calculate'); +const RESULT_ELEMENT = document.getElementById('result'); + +const resultFirstValuesEl = document.querySelector('[data-firstValue]'); +const resultSecondValuesEl = document.querySelector('[data-secondValue]'); +const resultImagesEl = document.querySelector('[data-showImages]'); +const resultOperationEl = document.querySelector('[data-operation]'); +const resultEqualsEl = document.querySelector('[data-equals]'); + +const dateEl = document.querySelector('[data-date]'); +const dateMsEl = document.querySelector('[data-timeMs]'); + +FIRST_VALUE_ELEMENT.addEventListener('change', () => { + const firstNumber = Number(FIRST_VALUE_ELEMENT.value); + if (!firstNumber) { + resultOperationEl.innerHTML = ''; + window.cleanElement(resultFirstValuesEl); + window.cleanElement(resultEqualsEl); + window.cleanElement(resultImagesEl); + return; + } + window.cleanElement(resultFirstValuesEl); + if (firstNumber > 10) { + resultFirstValuesEl.innerHTML = `${firstNumber}`; + } else { + const images = window.createImages(firstNumber); + resultFirstValuesEl.appendChild(images); + } + resultOperationEl.innerHTML = OPERATION_ELEMENT.value; +}); + +OPERATION_ELEMENT.addEventListener('change', () => { + resultOperationEl.innerHTML = OPERATION_ELEMENT.value; + window.cleanElement(resultEqualsEl); + window.cleanElement(resultImagesEl); +}); + +SECOND_VALUE_ELEMENT.addEventListener('change', () => { + if (resultSecondValuesEl.innerHTML) { + window.cleanElement(resultEqualsEl); + window.cleanElement(resultImagesEl); + } + resultSecondValuesEl.innerHTML = SECOND_VALUE_ELEMENT.value; +}); + +CALCULATE_BUTTON_ELEMENT.addEventListener('click', () => { + const start = Date.now(); + const firstValue = FIRST_VALUE_ELEMENT.value; + const secondValue = SECOND_VALUE_ELEMENT.value; + const operation = OPERATION_ELEMENT.value; + + const resultMath = window.calculate(firstValue, secondValue, operation); + window.cleanElement(resultImagesEl); + if (typeof resultMath === 'string') { + resultImagesEl.innerHTML = resultMath === 'Result is too big' ? 'Too many
pokemons' : resultMath; + } else if (resultMath < 0) { + resultImagesEl.innerHTML = resultMath; + } else { + const images = window.createImages(resultMath); + resultImagesEl.appendChild(images); + } + resultEqualsEl.innerHTML = '='; + RESULT_ELEMENT.innerText = resultMath <= 1 ? `${resultMath} pokemon` : `${resultMath} pokemons`; + + dateEl.textContent = `Date of calculation: ${window.getDateFormat()}. `; + dateMsEl.textContent = `Time of function execution: ${(Date.now() - start).toString()}`; +}); From 0bc9937190602b132d2217088b670343ee0f928d Mon Sep 17 00:00:00 2001 From: lesiaturuta Date: Sun, 17 Dec 2023 20:56:31 +0200 Subject: [PATCH 02/11] added scripts and icon and images --- .../PokemonProject/assets/card-logo.png | Bin 0 -> 7407 bytes .../PokemonProject/assets/logo-icon.svg | 6 + .../assets/media_icons/facebook.svg | 4 + .../assets/media_icons/instagram.svg | 4 + .../assets/media_icons/linkedin.svg | 4 + .../PokemonProject/assets/name-icon.svg | 16 ++ .../PokemonProject/assets/pokemon.png | Bin 0 -> 55173 bytes .../PokemonProject/assets/search.png | Bin 0 -> 620 bytes .../PokemonProject/loader/loader.css | 32 +++ .../PokemonProject/scripts/checkScroll.js | 12 + .../PokemonProject/scripts/pokemon.js | 209 ++++++++++++++++++ .../PokemonProject/scripts/script.js | 124 +++++++++++ 12 files changed, 411 insertions(+) create mode 100644 docs/lesiaturuta/PokemonProject/assets/card-logo.png create mode 100644 docs/lesiaturuta/PokemonProject/assets/logo-icon.svg create mode 100644 docs/lesiaturuta/PokemonProject/assets/media_icons/facebook.svg create mode 100644 docs/lesiaturuta/PokemonProject/assets/media_icons/instagram.svg create mode 100644 docs/lesiaturuta/PokemonProject/assets/media_icons/linkedin.svg create mode 100644 docs/lesiaturuta/PokemonProject/assets/name-icon.svg create mode 100644 docs/lesiaturuta/PokemonProject/assets/pokemon.png create mode 100644 docs/lesiaturuta/PokemonProject/assets/search.png create mode 100644 docs/lesiaturuta/PokemonProject/loader/loader.css create mode 100644 docs/lesiaturuta/PokemonProject/scripts/checkScroll.js create mode 100644 docs/lesiaturuta/PokemonProject/scripts/pokemon.js create mode 100644 docs/lesiaturuta/PokemonProject/scripts/script.js diff --git a/docs/lesiaturuta/PokemonProject/assets/card-logo.png b/docs/lesiaturuta/PokemonProject/assets/card-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..40de7e9cc5042e363c345bf6844e8407b4c4fc2a GIT binary patch literal 7407 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 literal 0 HcmV?d00001 diff --git a/docs/lesiaturuta/PokemonProject/assets/logo-icon.svg b/docs/lesiaturuta/PokemonProject/assets/logo-icon.svg new file mode 100644 index 00000000..e193f7b0 --- /dev/null +++ b/docs/lesiaturuta/PokemonProject/assets/logo-icon.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/docs/lesiaturuta/PokemonProject/assets/media_icons/facebook.svg b/docs/lesiaturuta/PokemonProject/assets/media_icons/facebook.svg new file mode 100644 index 00000000..6e4c1602 --- /dev/null +++ b/docs/lesiaturuta/PokemonProject/assets/media_icons/facebook.svg @@ -0,0 +1,4 @@ + + + + diff --git a/docs/lesiaturuta/PokemonProject/assets/media_icons/instagram.svg b/docs/lesiaturuta/PokemonProject/assets/media_icons/instagram.svg new file mode 100644 index 00000000..1e72f711 --- /dev/null +++ b/docs/lesiaturuta/PokemonProject/assets/media_icons/instagram.svg @@ -0,0 +1,4 @@ + + + + diff --git a/docs/lesiaturuta/PokemonProject/assets/media_icons/linkedin.svg b/docs/lesiaturuta/PokemonProject/assets/media_icons/linkedin.svg new file mode 100644 index 00000000..c6cc57cc --- /dev/null +++ b/docs/lesiaturuta/PokemonProject/assets/media_icons/linkedin.svg @@ -0,0 +1,4 @@ + + + + diff --git a/docs/lesiaturuta/PokemonProject/assets/name-icon.svg b/docs/lesiaturuta/PokemonProject/assets/name-icon.svg new file mode 100644 index 00000000..667913a1 --- /dev/null +++ b/docs/lesiaturuta/PokemonProject/assets/name-icon.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/docs/lesiaturuta/PokemonProject/assets/pokemon.png b/docs/lesiaturuta/PokemonProject/assets/pokemon.png new file mode 100644 index 0000000000000000000000000000000000000000..ae50cf5220e14d353aebcc6513c3249ee8ed95d3 GIT binary patch literal 55173 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
    }+hJg#8uXRgHjU#|?yTKqv0gRDx4`0|W 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 KVAUFrQ2zsFZVkEs literal 0 HcmV?d00001 diff --git a/docs/lesiaturuta/PokemonProject/assets/search.png b/docs/lesiaturuta/PokemonProject/assets/search.png new file mode 100644 index 0000000000000000000000000000000000000000..b60da5542dbf0f1821b3a5834c438e314d6e7e31 GIT binary patch literal 620 zcmV-y0+aoTP)tgbFYfKnDpG1S%j@0J(7^RFF^srUF6%fMB>|Zg7Z}w@w^HOfrs> z3vWiFwN}uZY&BJ~yXy~s|fUA$J3=>p#pIPMaM_i*?L&4DCI zK37&(A7Je<&iH!&_=q!|9`70qBH?jbx2XhRbu11?#5Mi(F@e&$KHO*fR1yejF)lRg z>rtKn)-&@1Er3A~q{eBjYdHeIfTXnb0xuWBzX%dvu`KumRx*?pK$ZsxlzyIo`A*Vb zVwy?f7_As?h9O6~hTnA&i}dR(u8pX)U2WI2qQ&6)Tw-OqeGNiwr# zdSsE74(43y7u?9=Mm@hQkB#~v*`3rc1ww-6(=8K;rSJ_^Pv|6@N{qSy0000 { + if ( + document.body.scrollHeight > window.innerHeight + || document.documentElement.scrollHeight > window.innerHeight + ) { + document.body.style.height = '100%'; + } else { + document.body.style.height = '100vh'; + } +}; + +window.addEventListener('resize', checkScroll); diff --git a/docs/lesiaturuta/PokemonProject/scripts/pokemon.js b/docs/lesiaturuta/PokemonProject/scripts/pokemon.js new file mode 100644 index 00000000..16eaf9dd --- /dev/null +++ b/docs/lesiaturuta/PokemonProject/scripts/pokemon.js @@ -0,0 +1,209 @@ +const cardsEl = document.querySelector('[data-cards]'); +const searchEl = document.querySelector('[data-filter-select-search]'); +const highFilterEl = document.querySelector('[data-filter-high]'); +const lowFilterEl = document.querySelector('[data-filter-Low]'); +const checkboxBigEl = document.querySelector('[data-filter-big]'); +const checkboxSmallEl = document.querySelector('[data-filter-small]'); +const inputSearchEl = document.querySelector('[data-filter-search]'); +const buttonSearchEl = document.querySelector('[data-filter-button]'); +const loadingEl = document.querySelector('[data-loading]'); + +const url = 'https://my-json-server.typicode.com/electrovladyslav/pokemon-json-server/pokemons'; +let pokemons = []; +let typesPokemons = []; +let searchValue = ''; +let typeValue = ''; +let checkboxBig = checkboxBigEl.checked; +let checkboxSmall = checkboxSmallEl.checked; + +const createCardElement = (pokemon) => { + const templateEl = document.querySelector('[data-type]'); + const templateContent = document.importNode(templateEl.content, true); + + const cardTitleEl = templateContent.querySelector('[data-card-title]'); + const cardImageEl = templateContent.querySelector('[data-card-image]'); + const cardHeightEl = templateContent.querySelector('[data-card-height]'); + const cardWeightEl = templateContent.querySelector('[data-card-weight]'); + const cardNumberEl = templateContent.querySelector('[data-card-number]'); + const cardType1El = templateContent.querySelector('[data-card-type1]'); + const cardType2El = templateContent.querySelector('[data-card-type2]'); + const cardWeaknesses1El = templateContent.querySelector('[data-card-weaknesses1]'); + const cardWeaknesses2El = templateContent.querySelector('[data-card-weaknesses2]'); + + cardTitleEl.textContent = pokemon.name; + cardImageEl.src = pokemon.ThumbnailImage; + cardHeightEl.textContent = pokemon.height; + cardWeightEl.textContent = `${pokemon.weight} lbs`; + cardNumberEl.textContent = pokemon.number; + const [firstType, secondType] = pokemon.type; + cardType1El.textContent = firstType; + cardType2El.textContent = secondType; + if (!secondType) { + cardType2El.classList.add('display-none'); + } + const [firstWeakness, secondWeakness] = pokemon.weakness; + cardWeaknesses1El.textContent = firstWeakness; + cardWeaknesses2El.textContent = secondWeakness; + if (!secondWeakness) { + cardWeaknesses2El.classList.add('display-none'); + } + return templateContent; +}; + +const cleanElement = (el) => { + while (el.firstChild) { + el.removeChild(el.firstChild); + } +}; + +const checkScroll = () => { + if ( + document.body.scrollHeight > window.innerHeight + || document.documentElement.scrollHeight > window.innerHeight + ) { + document.body.style.height = '100%'; + } else { + document.body.style.height = '100vh'; + } +}; + +const renderCards = (cardContainer, pokemonsArray) => { + cleanElement(cardsEl); + const fragment = new DocumentFragment(); + for (let i = 0; i < pokemonsArray.length; i++) { + fragment.append(createCardElement(pokemonsArray[i])); + } + cardContainer.append(fragment); + checkScroll(); + return true; +}; + +const renderSelect = (name) => { + cleanElement(searchEl); + const optionFirstEl = document.createElement('option'); + optionFirstEl.value = ''; + optionFirstEl.text = 'All types'; + searchEl.add(optionFirstEl); + typesPokemons.forEach((type) => { + const optionEl = document.createElement('option'); + optionEl.value = type; + if (type === name) { + optionEl.selected = true; + } + optionEl.text = type; + searchEl.add(optionEl); + }); +}; + +const sortPokemonsUp = (arrayPokemons) => arrayPokemons.sort((a, b) => a.height - b.height); + +const sortPokemonsDown = (arrayPokemons) => arrayPokemons.sort((a, b) => b.height - a.height); + +const getPokemonTypes = (arrayPokemons) => { + const types = []; + arrayPokemons.forEach((pokemon) => pokemon.type.forEach((type) => { + if (!types.includes(type)) types.push(type); + })); + return types; +}; + +const getPokemonsByType = (arrayPokemons) => (typeValue + ? arrayPokemons + .filter((pokemon) => pokemon.type + .includes(typeValue)) + : arrayPokemons); + +const getPokemonsByName = (arrayPokemons) => (searchValue + ? arrayPokemons + .filter((pokemon) => pokemon.name + .toLocaleLowerCase() + .includes(searchValue.toLocaleLowerCase())) + : arrayPokemons); + +const getPokemonsByWeight = (arrayPokemons) => { + let newPokemons = [...arrayPokemons]; + if (checkboxBig && checkboxSmall && newPokemons.length) { + newPokemons = newPokemons.filter((pokemon) => pokemon.weight < 100 && pokemon.weight > 50); + } else if (checkboxBig && !checkboxSmall && newPokemons.length) { + newPokemons = newPokemons.filter((pokemon) => pokemon.weight > 100); + } else if (!checkboxBig && checkboxSmall && newPokemons.length) { + newPokemons = newPokemons.filter((pokemon) => pokemon.weight < 50); + } + return newPokemons; +}; + +const sortByHeight = (arrayPokemons) => { + let newPokemons = [...arrayPokemons]; + if (highFilterEl.checked && newPokemons.length) { + newPokemons = sortPokemonsDown(newPokemons); + } + if (lowFilterEl.checked && newPokemons.length) { + newPokemons = sortPokemonsUp(newPokemons); + } + return newPokemons; +}; + +const getPokemons = async (urlPokemons) => { + try { + const response = await fetch(urlPokemons); + return await response.json(); + } catch (e) { + alert('Error url, please update this page'); + console.error(e); + return []; + } +}; + +const getFilteredPokemons = () => { + let newPokemons = [...pokemons]; + newPokemons = getPokemonsByName(newPokemons); + newPokemons = getPokemonsByType(newPokemons); + newPokemons = getPokemonsByWeight(newPokemons); + newPokemons = sortByHeight(newPokemons); + return newPokemons; +}; + +const addHandlers = () => { + checkboxBigEl.addEventListener('change', (e) => { + checkboxBig = e.target.checked; + renderCards(cardsEl, getFilteredPokemons()); + }); + + checkboxSmallEl.addEventListener('change', (e) => { + checkboxSmall = e.target.checked; + renderCards(cardsEl, getFilteredPokemons()); + }); + + searchEl.addEventListener('change', (e) => { + typeValue = e.target.value; + renderCards(cardsEl, getFilteredPokemons()); + }); + + highFilterEl.addEventListener('change', () => { + renderCards(cardsEl, getFilteredPokemons()); + }); + + lowFilterEl.addEventListener('change', () => { + renderCards(cardsEl, getFilteredPokemons()); + }); + + buttonSearchEl.addEventListener('click', (e) => { + e.preventDefault(); + renderCards(cardsEl, getFilteredPokemons()); + }); + + inputSearchEl.addEventListener('input', (e) => { + searchValue = e.target.value; + }); +}; + +const init = async () => { + pokemons = await getPokemons(url); + typesPokemons = getPokemonTypes(pokemons); + renderSelect(typeValue); + loadingEl.remove(); + addHandlers(); + renderCards(cardsEl, pokemons); +}; + +init(); diff --git a/docs/lesiaturuta/PokemonProject/scripts/script.js b/docs/lesiaturuta/PokemonProject/scripts/script.js new file mode 100644 index 00000000..c4614162 --- /dev/null +++ b/docs/lesiaturuta/PokemonProject/scripts/script.js @@ -0,0 +1,124 @@ +const EMAIL_INPUT_ID = 'email'; +const PASSWORD_INPUT_ID = 'password'; +const NOT_A_ROBOT_CHECKBOX_ID = 'checkbox'; +const SUBMIT_BUTTON_ID = 'button'; +const ERRORS_CONTAINER_ID = 'errors-container'; +const RESULT_PAGE_PATH = './get-result.html'; + +const submitButton = document.getElementById(SUBMIT_BUTTON_ID); + +/** + * Return input value by id. + * @param {string} elementId + * @return {string|boolean} input value + */ +function getValueById(elementId) { + const element = document.getElementById(elementId); + const type = element.getAttribute('type'); + return type === 'checkbox' ? element.checked : element.value; +} + +/** + * Add errors to errors container. + * @param {Object} inputData in format like: { [input_id]: error_text, ... } + */ + +// function setErrors(inputData) { +// const errorContainerElement = document.getElementById(ERRORS_CONTAINER_ID); +// Object.values(inputData).forEach((error) => { +// const errorElement = document.createElement('p'); +// errorElement.classList.add('error'); +// errorElement.textContent = error; +// errorContainerElement.appendChild(errorElement); +// }); +// } + +/** + * Delete all errors from errors container. + */ +function deleteErrors() { + const errorContainerElement = document.getElementById(ERRORS_CONTAINER_ID); + errorContainerElement.replaceChildren(); +} + +/** + * Goes to the page with the result. + */ +function navigateToResultPage() { + window.location.href = RESULT_PAGE_PATH; +} + +function isEmail(email) { + return /\S+@\S+\.\S+/.test(email); +} + +const deleteSpaceInString = (string) => string.trim(); + +function validateForm() { + let isErrors = false; + const inputData = {}; + const emailValue = getValueById(EMAIL_INPUT_ID); + const passwordValue = getValueById(PASSWORD_INPUT_ID); + const checkboxValue = getValueById(NOT_A_ROBOT_CHECKBOX_ID); + const emailValueWithoutSpase = deleteSpaceInString(emailValue); + const passwordValueWithoutSpase = deleteSpaceInString(passwordValue); + + const inputMailEl = document.getElementById(EMAIL_INPUT_ID); + const inputPassEl = document.getElementById(PASSWORD_INPUT_ID); + const inputCheckboxEl = document.getElementById(NOT_A_ROBOT_CHECKBOX_ID); + + const mailInfoEl = document.querySelector('[data-mailInfo]'); + const passInfoEl = document.querySelector('[data-passInfo]'); + const checkboxInfoEl = document.querySelector('[data-checkboxInfo]'); + + // delete all errors + deleteErrors(); + inputMailEl.classList.remove('border-error'); + inputPassEl.classList.remove('border-error'); + inputMailEl.addEventListener('input', () => { + inputMailEl.classList.remove('border-error'); + mailInfoEl.textContent = ''; + }); + + inputPassEl.addEventListener('input', () => { + inputPassEl.classList.remove('border-error'); + passInfoEl.textContent = ''; + }); + + inputCheckboxEl.addEventListener('change', () => { + checkboxInfoEl.textContent = ''; + }); + + if (!isEmail(emailValueWithoutSpase)) { + inputMailEl.classList.add('border-error'); + mailInfoEl.textContent = 'Error mail'; + inputData.EMAIL_INPUT_ID = 'Error mail'; + isErrors = true; + } else { + inputMailEl.classList.add('border-ok'); + } + + if (!(passwordValueWithoutSpase.length >= 8 && passwordValueWithoutSpase.length <= 12)) { + inputPassEl.classList.add('border-error'); + passInfoEl.textContent = 'Error password'; + inputData.PASSWORD_INPUT_ID = 'Error password'; + isErrors = true; + } else { + inputPassEl.classList.add('border-ok'); + } + + if (!checkboxValue) { + inputData.NOT_A_ROBOT_CHECKBOX_ID = 'Error push checkbox'; + checkboxInfoEl.textContent = 'Error push checkbox'; + isErrors = true; + } + + if (!isErrors) { + navigateToResultPage(); + } else { + // set error + // setErrors(inputData); + } +} + +submitButton.onclick = validateForm; From c17c258758d63b0babca2faf97340a2616a0bcc7 Mon Sep 17 00:00:00 2001 From: lesiaturuta Date: Sun, 17 Dec 2023 21:12:15 +0200 Subject: [PATCH 03/11] added html and css --- docs/lesiaturuta/PokemonProject/about.html | 97 +++ docs/lesiaturuta/PokemonProject/cards.html | 150 ++++ .../PokemonProject/get-result.html | 23 + docs/lesiaturuta/PokemonProject/login.html | 98 +++ docs/lesiaturuta/PokemonProject/style.css | 762 ++++++++++++++++++ 5 files changed, 1130 insertions(+) create mode 100644 docs/lesiaturuta/PokemonProject/about.html create mode 100644 docs/lesiaturuta/PokemonProject/cards.html create mode 100644 docs/lesiaturuta/PokemonProject/get-result.html create mode 100644 docs/lesiaturuta/PokemonProject/login.html create mode 100644 docs/lesiaturuta/PokemonProject/style.css diff --git a/docs/lesiaturuta/PokemonProject/about.html b/docs/lesiaturuta/PokemonProject/about.html new file mode 100644 index 00000000..1b48fd21 --- /dev/null +++ b/docs/lesiaturuta/PokemonProject/about.html @@ -0,0 +1,97 @@ + + + + + + + + PokemonProject + + + + + + + +
    + +
    +
    +
    +
    + pokemon +
    +
    +

    About me

    +

    Hi! My name is [Text] and I'm a Junior Frontend Developer. I am already familiar with + main + Web + Technologies like HTML, CSS, JavaScript, and Git version control system.

    +

    This page was developed during the course + 'Frontend for beginners' + from Masters Academy in 2023. +

    +

    This is a social project from MOCG company where I got an opportunity to work with + Frontend + mentors and to create my own small project for the portfolio.

    +

    You can contact me via + facebook + and/or check out my + GitHub. +

    +
    +
    +
    + + + + + diff --git a/docs/lesiaturuta/PokemonProject/cards.html b/docs/lesiaturuta/PokemonProject/cards.html new file mode 100644 index 00000000..b50cba6b --- /dev/null +++ b/docs/lesiaturuta/PokemonProject/cards.html @@ -0,0 +1,150 @@ + + + + + + + + PokemonProject + + + + + + + +
    + + + +
    +
    +
    +

    Study project "Pokemons"

    +
    +
    +
    +
    + + + + + + + diff --git a/docs/lesiaturuta/PokemonProject/get-result.html b/docs/lesiaturuta/PokemonProject/get-result.html new file mode 100644 index 00000000..cd094a88 --- /dev/null +++ b/docs/lesiaturuta/PokemonProject/get-result.html @@ -0,0 +1,23 @@ + + + + + + + + + + + get-result + + +
    +

    Success

    + + + +
    + + + diff --git a/docs/lesiaturuta/PokemonProject/login.html b/docs/lesiaturuta/PokemonProject/login.html new file mode 100644 index 00000000..ee4fc909 --- /dev/null +++ b/docs/lesiaturuta/PokemonProject/login.html @@ -0,0 +1,98 @@ + + + + + + + + PokemonProject + + + + + + +
    + +
    +
    + +
    + + + + + + diff --git a/docs/lesiaturuta/PokemonProject/style.css b/docs/lesiaturuta/PokemonProject/style.css new file mode 100644 index 00000000..475d3e9c --- /dev/null +++ b/docs/lesiaturuta/PokemonProject/style.css @@ -0,0 +1,762 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: "Roboto", sans-serif; + color: #221F1F; + margin: 0 auto; + display: flex; + flex-direction: column; + height: 100vh; +} + +/*HEADER*/ + +.nav { + height: 80px; + background-color: #333; + width: 100%; +} + +.nav__logo { + display: flex; + align-items: center; + width: 190px; + justify-content: space-between; +} + +.logo__title { + margin-top: 10px; +} + +.nav__menu { + display: flex; + font-size: 16px; + font-weight: 500; + line-height: 19px; + color: #FFF; + align-items: center; + width: 383px; + justify-content: space-between; +} + +.menu__link { + color: #FFF; + text-decoration: none; +} + +.menu__link--active { + text-decoration: underline; + text-underline-offset: 8px; +} + +.nav__menu li { + list-style-type: none; +} + +.nav__menu li:hover { + transform: scale(1.1); +} + +/*MAIN*/ + +.main { + display: flex; + justify-content: center; + margin-top: 50px; + align-items: flex-start; + flex: 1; +} + +.info { + max-width: 575px; +} + +.description { + font-size: 48px; + font-weight: 700; + line-height: 32px; +} + +.text, +.title-math { + font-size: 22px; + font-weight: 400; + margin-top: 28px; + line-height: 32px; +} + +.link--red { + color: #EF4934; +} + + +.container { + width: 1175px; +} + +.justify__content--between { + display: flex; + justify-content: space-between; +} + +.justify__content--center { + display: flex; + justify-content: center; + align-items: center; +} + +.image-pokemon { + width: 100%; +} + +/* MAIN CARDS*/ + +.title-pokemon { + font-size: 48px; + font-weight: 700; + line-height: 32px; +} + +.cards { + display: grid; + grid-template: repeat(2, 1fr)/repeat(4, 1fr); + gap: 22px; + margin-top: 35px; +} + +.card { + width: 275px; + height: 288px; + background-color: #ECECEC; + padding: 12px 12px 22px; + border-radius: 12px; + display: flex; + flex-direction: column; + justify-content: space-between; +} + +.card__header { + display: flex; + align-items: center; +} + +.card__header-title, +.title-math__operation { + margin-left: 15px; + font-size: 18px; + font-weight: 700; + line-height: 21px; + color: #221F1F; +} + +.card__header-img { + width: 90px; + height: 90px; +} + +.card__footer { + font-weight: 400; + font-size: 14px; + line-height: 18px; +} + +.card__footer-text { + display: flex; + align-items: center; +} + +/*GAMES FORM*/ + +.form__search { + height: 60px; + background-color: #221F1F; + width: 100%; + font-size: 14px; + font-weight: 400; + line-height: 21px; + color: #FFF; +} + +.form__search-radio, +.form__search-select, +.form__search-checkbox, +.form__search-input { + display: flex; + align-items: center; +} + +.form__search-select { + width: 114px; + height: 36px; + border-radius: 6px; + background-color: #333; + color: #FFF; + padding: 0 10px; +} + +.form__search-radio { + width: 211px; + justify-content: space-between; + border: none; +} + +.form__search-checkbox { + width: 152px; + justify-content: space-between; + border: none; +} + +.form__search-input-button { + width: 75px; + height: 36px; + border-radius: 0 6px 6px 0; + background-color: #EF4934; + color: #FFF; + font-size: 14px; + font-weight: 400; + line-height: 21px; + border: none; +} + +.form__search-input-search { + width: 302px; + height: 36px; + border-radius: 6px 0 0 6px; + border: none; + padding: 0 40px; +} + +.form__search-input-search::placeholder { + font-size: 14px; + font-weight: 400; + line-height: 21px; +} + +.form__search-input { + position: relative; +} + +.form__search-input-image { + position: absolute; + top: 50%; + left: 10px; + transform: translate(0, -50%); +} + +/*CHECKBOX*/ + +.login__form-checkbox-input, +.form__search-radio-radio, +.form__search-checkbox-checkbox { + position: absolute; + z-index: -1; + opacity: 0; +} + +.login__form-checkbox-input, +.login__form-checkbox-name, +.form__search-radio-radio, +.form__search-checkbox-checkbox, +.form__search-radio-label, +.form__search-checkbox-label { + display: inline-flex; + align-items: center; + user-select: none; +} + +.form__search-radio-radio::before, +.form__search-radio-label::before { + content: ""; + display: inline-block; + width: 20px; + height: 20px; + flex-shrink: 0; + flex-grow: 0; + border: 1px solid #FFF; + border-radius: 50%; /* Используйте 50% для создания круга */ + margin-right: .5em; + background-repeat: no-repeat; + background-position: center center; + background-size: 50% 50%; +} + +.login__form-checkbox-input ::before, +.login__form-checkbox-name::before { + content: ""; + display: inline-block; + width: 20px; + height: 20px; + flex-shrink: 0; + flex-grow: 0; + border: 1px solid #EF4934; + border-radius: .25em; + margin-right: .5em; + background-repeat: no-repeat; + background-position: center center; + background-size: 50% 50%; +} + +.form__search-checkbox-checkbox::before, +.form__search-checkbox-label::before { + content: ""; + display: inline-block; + width: 20px; + height: 20px; + flex-shrink: 0; + flex-grow: 0; + border: 1px solid #FFF; + border-radius: .25em; + margin-right: .5em; + background-repeat: no-repeat; + background-position: center center; + background-size: 50% 50%; +} + +.login__form-checkbox-input:checked + .login__form-checkbox-name::before, +.form__search-radio-radio:checked + .form__search-radio-label::before, +.form__search-checkbox-checkbox:checked + .form__search-checkbox-label::before { + border-color: #0B76EF; + background-color: #0B76EF; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e"); +} + +/*FOOTER*/ + +.footer { + margin-top: 20px; + width: 100%; + height: 160px; + background: #EF4934; + display: flex; + align-items: center; + flex-direction: column; + justify-content: center; + padding: 0 10px; +} + +.footer__icons { + display: flex; +} + +.footer__description, +.footer__description-link { + font-size: 22px; + font-weight: 400; + line-height: 32px; + color: #FFF; +} + +.footer__description-link { + text-decoration: none; +} + +.item { + list-style-type: none; +} + +.footer__description { + margin-top: 20px; + text-align: center; +} + +/*LOGIN*/ + +.login { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + flex: 1; +} + +.login__form { + max-width: 575px; + width: 100%; + height: 520px; + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: center; +} + +.login__form-title { + margin-top: 10px; + font-size: 48px; + font-weight: 700; + line-height: 32px; + color: #221F1F; +} + +.login__form-email, +.login__form-password { + width: 100%; + height: 108px; + display: flex; + flex-direction: column; + justify-content: space-between; + position: relative; +} + +.login__form-email-input, +.login__form-password-input { + width: 100%; + height: 70px; + border: 1px solid #A9A9A9; + border-radius: 6px; + padding-left: 20px; +} + +.login__form-email-input::placeholder, +.login__form-password-input::placeholder { + font-size: 14px; + font-weight: 400; + line-height: 21px; + color: #A9A9A9; +} + +.login__form-email-label, +.login__form-password-label { + font-size: 22px; + font-weight: 600; + line-height: 26px; + color: #221F1F; +} + +.login__form-checkbox { + width: 100%; + position: relative; +} + +.block-select { + display: flex; + width: 69px; + height: 24px; + border-radius: 3px; + color: #FFF; + justify-content: center; + align-items: center; +} + +.login__form-button { + width: 100%; + height: 70px; + padding: 27px 258px; + border-radius: 6px; + background: #EF4934; + font-size: 22px; + font-weight: 600; + line-height: 26px; + color: #FFF; + display: flex; + justify-content: center; + align-items: center; + border: none; +} + +/*RESULT*/ + +.result { + width: 100%; + height: 100vh; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} + +.result__title { + margin-bottom: 30px; +} + +.result__link { + text-decoration: none; +} + +/*CALCULATE*/ + +.calculate__title { + font-size: 48px; + font-weight: 700; + line-height: 48px; +} + +.field { + width: 100%; + justify-content: flex-start; + flex-wrap: wrap; +} + +.field__label { + font-size: 22px; + font-weight: 600; + line-height: 26px; + color: #221F1F; +} + +.calculate__first-value, +.calculate__operation, +.calculate__second-value, +.calculate__button { + width: 122px; + height: 36px; + border-radius: 6px; + border: 1px solid #221F1F; + text-align: center; + font-size: 14px; + font-weight: 400; + line-height: 21px; +} + +.calculate__result { + height: 36px; +} + +.calculate__first-value, +.calculate__operation, +.calculate__second-value { + color: #221F1F; +} + +.calculate__button { + background: #EF4934; + color: #FFF; + border: none; +} + +.calculate__result { + font-size: 22px; + font-weight: 400; + line-height: 36px; + color: #221F1F; +} + +.calculate__show { + width: 100%; + margin-top: 80px; + display: flex; + font-size: 48px; + font-weight: 700; + line-height: 48px; + color: #EF4934; + justify-content: flex-start; + align-items: center; +} + +.calculate__show-operation, +.calculate__show-equals { + margin: 0 100px; +} + +/*ERRORS*/ + +.error-text { + position: absolute; + bottom: -20px; + left: 0; + color: #FA0A0A; +} + +.border-error { + border: 4px solid #FA0A0A !important; +} + +.border-ok { + border: 4px solid #66EA11 !important; +} + +/*HELPER*/ + +.height100vh { + display: flex; + flex-direction: column; + height: 100vh; +} + +.text-weight { + font-weight: 600; + line-height: 21px; + margin-right: 10px; +} + +.flex-direction-column { + flex-direction: column; +} + +.gap-top6 { + margin-top: 6px; +} + +.gap-top12 { + margin-top: 12px; +} + +.gap-right6 { + margin-right: 6px; +} + +.gap-right33 { + margin-right: 33px; +} + +.color-background-FDB714 { + background-color: #FDB714; +} + +.color-background-EF4934 { + background: #EF4934; +} + +.color-background-FF87F3 { + background: #FF87F3; +} + +.color-background-3447EF { + background: #3447EF; +} + +.flex-direction-column { + display: flex; + flex-direction: column; +} + +.display-none { + display: none; +} + +@media screen and (max-width: 1220px) { + + .nav__container { + padding: 0 10px; + } + + .main__container { + align-items: center; + flex-direction: column; + } + + .cards { + grid-template: repeat(2, 1fr)/repeat(3, 1fr); + gap: 10px; + justify-items: center + } + + .form__search { + padding: 0 10px; + } +} + +@media screen and (max-width: 630px) { + + .nav { + height: 100px; + } + + .nav__menu { + margin-top: 10px; + } + + .nav__container { + flex-direction: column; + align-items: center; + } + + .login__form-button { + padding: 0 50px; + } +} + +@media screen and (max-width: 1000px) { + + .form__search { + height: 200px; + } + + .form__search-container { + flex-direction: column; + } + + .form__search-select, + .form__search-radio, + .form__search-checkbox, + .form__search-input { + margin-top: 15px; + } +} + +@media screen and (max-width: 880px) { + + .cards { + grid-template: repeat(2, 1fr)/repeat(2, 1fr); + } +} + +@media screen and (max-width: 600px) { + + .cards { + grid-template: repeat(2, 1fr)/repeat(1, 1fr); + } + + .title-pokemon { + font-size: 30px; + text-align: center; + } +} + +@media screen and (max-width: 480px) { + + .nav { + height: 190px; + } + + .main { + margin-top: 10px; + } + + .nav__menu { + display: flex; + flex-direction: column; + height: auto; + z-index: 55; + width: 100%; + } + + .menu__link { + justify-content: flex-start; + } + + .nav__menu-item { + margin-top: 8px; + } + + .info { + padding: 0 10px; + } + + .login__form { + padding: 0 30px; + } + + .calculate__container, + .field, + .calculate__show { + flex-direction: column; + align-items: center; + } + + .calculate__container { + text-align: center; + } + + .calculate__title { + font-size: 30px; + } + + .footer { + padding: 20px 10px; + height: auto; + } +} From 25c86cd35fc6b9c2954210e6de41ac926313d6ca Mon Sep 17 00:00:00 2001 From: lesiaturuta Date: Sun, 17 Dec 2023 21:13:45 +0200 Subject: [PATCH 04/11] fixed index --- docs/index.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/index.html b/docs/index.html index a176c000..f24e533c 100644 --- a/docs/index.html +++ b/docs/index.html @@ -11,6 +11,9 @@

    MA Projects

  • Vladyslav Yermolin - Lecture 5
  • +
  • + Lesia Turuta - Pokemons +
From 3b13bde56fd567aa6bc5b8d4ac051dd973b54f55 Mon Sep 17 00:00:00 2001 From: lesiaturuta Date: Sun, 24 Dec 2023 23:13:34 +0200 Subject: [PATCH 05/11] fixed code --- docs/lesiaturuta/PokemonProject/about.html | 3 +- .../assets/card.png | Bin .../calculate.html} | 26 ++++++++---------- docs/lesiaturuta/PokemonProject/cards.html | 3 +- docs/lesiaturuta/PokemonProject/login.html | 3 +- .../PokemonProject/scripts/checkScroll.js | 12 -------- .../scripts}/homework.js | 0 .../PokemonProject/scripts/pokemon.js | 14 +--------- .../scripts/script_calculate.js} | 15 ++++++---- docs/lesiaturuta/PokemonProject/style.css | 16 ++++++++--- 10 files changed, 38 insertions(+), 54 deletions(-) rename docs/lesiaturuta/{5-logic => PokemonProject}/assets/card.png (100%) rename docs/lesiaturuta/{5-logic/index.html => PokemonProject/calculate.html} (80%) delete mode 100644 docs/lesiaturuta/PokemonProject/scripts/checkScroll.js rename docs/lesiaturuta/{5-logic => PokemonProject/scripts}/homework.js (100%) rename docs/lesiaturuta/{5-logic/script.js => PokemonProject/scripts/script_calculate.js} (87%) diff --git a/docs/lesiaturuta/PokemonProject/about.html b/docs/lesiaturuta/PokemonProject/about.html index 1b48fd21..90cfb5d3 100644 --- a/docs/lesiaturuta/PokemonProject/about.html +++ b/docs/lesiaturuta/PokemonProject/about.html @@ -23,7 +23,7 @@