diff --git a/build/tooltipFront.asset.php b/build/tooltipFront.asset.php index 4fca050..3c315fc 100644 --- a/build/tooltipFront.asset.php +++ b/build/tooltipFront.asset.php @@ -1 +1 @@ - array(), 'version' => '08526599dcbbc7f6e5ec'); + array(), 'version' => 'a4bcdbd8641c0feace22'); diff --git a/build/tooltipFront.js.map b/build/tooltipFront.js.map index 557bc42..c04fc7d 100644 --- a/build/tooltipFront.js.map +++ b/build/tooltipFront.js.map @@ -1 +1 @@ -{"version":3,"file":"tooltipFront.js","mappings":"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","sources":["webpack://multi-blocks/./src/format-types/tooltip/tooltip-front.js"],"sourcesContent":["async function initTooltips() {\r\n\tlet tooltipWords = document.querySelectorAll(\".tooltip-word\");\r\n\tconst vocabulairesPostsIds = Array.from(tooltipWords).map((element) =>\r\n\t\telement.getAttribute(\"data-definition-id\")\r\n\t);\r\n\r\n\ttry {\r\n\t\tconst tooltipData = await getTooltipsDatas(vocabulairesPostsIds);\r\n\r\n\t\ttooltipWords.forEach((word, index) => {\r\n\t\t\tconst foundTooltipDatas = tooltipData.find(\r\n\t\t\t\t(tooltip) => tooltip.id === parseInt(word.getAttribute(\"data-definition-id\"))\r\n\t\t\t);\r\n\t\t\tconsole.log(word);\r\n\t\t\tconsole.log(foundTooltipDatas);\r\n\r\n\t\t\tif (foundTooltipDatas) {\r\n\t\t\t\tword.setAttribute(\"data-tooltip-word\", foundTooltipDatas.title.rendered);\r\n\t\t\t\tword.setAttribute(\"data-tooltip-definition\", foundTooltipDatas.acf.definition);\r\n\t\t\t}\r\n\r\n\t\t\tcreateTooltip(word, tooltipData[index]);\r\n\t\t});\r\n\t} catch (error) {\r\n\t\tconsole.log(\"Something went wrong!\", error);\r\n\t}\r\n\r\n\tawait observeTooltip(tooltipWords);\r\n}\r\nasync function getTooltipsDatas(vocabulairesPostsIds) {\r\n\ttry {\r\n\t\tconst response = await fetch(`/wp-json/wp/v2/vocabulaire?include=${vocabulairesPostsIds.toString()}`);\r\n\t\tif (!response.ok) {\r\n\t\t\tthrow new Error(`Request failed with status: ${response.status}`);\r\n\t\t}\r\n\t\tconst data = await response.json();\r\n\t\treturn data;\r\n\t} catch (err) {\r\n\t\tthrow err;\r\n\t}\r\n}\r\nasync function observeTooltip(tooltipWords) {\r\n\t// CHAPTER IntersectionObserver\r\n\tconst tooltipsObserver = new IntersectionObserver((entries) => {\r\n\t\tentries.forEach((entry) => {\r\n\t\t\tconst margin = 10;\r\n\r\n\t\t\t// DEPASSE À GAUCHE\r\n\t\t\tif (entry.boundingClientRect.x < 0) {\r\n\t\t\t\tconst currentPos = getCurrentPos(entry);\r\n\t\t\t\tconst missingSpace = Math.abs(entry.boundingClientRect.x);\r\n\t\t\t\tentry.target.style.left = `${currentPos + missingSpace + margin}px`;\r\n\t\t\t\tentry.target.style.setProperty(\"--tooltip-x-position\", \"12%\");\r\n\t\t\t}\r\n\t\t\t// DEPASSE À DROITE\r\n\t\t\tif (entry.boundingClientRect.x + entry.boundingClientRect.width > window.innerWidth) {\r\n\t\t\t\tconst currentPos = getCurrentPos(entry);\r\n\t\t\t\tconst difference = entry.boundingClientRect.width - entry.intersectionRect.width;\r\n\r\n\t\t\t\tentry.target.style.left = `${currentPos - difference - margin}px`;\r\n\t\t\t\tentry.target.style.setProperty(\"--tooltip-x-position\", `calc(60% + ${difference}px)`);\r\n\t\t\t}\r\n\r\n\t\t\t// Check aspect ratio to be sure the element is visible\r\n\t\t\t// const aspect = entry.intersectionRatio;\r\n\t\t\t// if (entry.isIntersecting) {\r\n\t\t\t// }\r\n\t\t});\r\n\t});\r\n\ttooltipWords.forEach((tooltipWord) => {\r\n\t\ttooltipsObserver.observe(tooltipWord.querySelector(\".tooltip-popup\"));\r\n\r\n\t\ttooltipWord.addEventListener(\"click\", (event) => {\r\n\t\t\ttoggleTooltip(tooltipWord);\r\n\t\t});\r\n\t\ttooltipWord.addEventListener(\"keydown\", (event) => {\r\n\t\t\tswitch (event.key) {\r\n\t\t\t\tcase \"Escape\":\r\n\t\t\t\t\thideTooltip(tooltipWord);\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t});\r\n\t\ttooltipWord.addEventListener(\"mouseover\", (event) => {\r\n\t\t\tshowTooltip(tooltipWord);\r\n\t\t});\r\n\r\n\t\ttooltipWord.addEventListener(\"mouseout\", (event) => {\r\n\t\t\tvar isFocused = document.activeElement === tooltipWord;\r\n\t\t\tif (!isFocused) {\r\n\t\t\t\thideTooltip(tooltipWord);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\ttooltipWord.addEventListener(\"focusout\", (event) => {\r\n\t\t\thideTooltip(tooltipWord);\r\n\t\t});\r\n\t});\r\n}\r\nfunction createTooltip(tooltipWord) {\r\n\tconst tooltipPopup = document.createElement(\"div\");\r\n\ttooltipPopup.className = \"tooltip-popup\";\r\n\ttooltipPopup.setAttribute(\"aria-hidden\", \"true\");\r\n\r\n\tconst tooltipDefinition = document.createElement(\"p\");\r\n\ttooltipDefinition.textContent = tooltipWord.getAttribute(\"data-tooltip-definition\");\r\n\ttooltipDefinition.className = \"tooltip-popup__definition\";\r\n\r\n\tconst tooltipTitle = document.createElement(\"h5\");\r\n\ttooltipTitle.textContent = tooltipWord.getAttribute(\"data-tooltip-word\");\r\n\ttooltipTitle.className = \"tooltip-popup__title\";\r\n\r\n\ttooltipPopup.appendChild(tooltipTitle);\r\n\ttooltipPopup.appendChild(tooltipDefinition);\r\n\ttooltipWord.appendChild(tooltipPopup);\r\n\r\n\t// tooltipWord.insertAdjacentElement(\"afterend\", tooltipPopup);\r\n}\r\nfunction showTooltip(tooltipWord) {\r\n\ttooltipWord.setAttribute(\"aria-expanded\", \"true\");\r\n\tconst tooltipPopup = tooltipWord.querySelector(\".tooltip-popup\");\r\n\ttooltipPopup.setAttribute(\"aria-hidden\", \"false\");\r\n}\r\nfunction hideTooltip(tooltipWord) {\r\n\ttooltipWord.setAttribute(\"aria-expanded\", \"false\");\r\n\tconst tooltipPopup = tooltipWord.querySelector(\".tooltip-popup\");\r\n\ttooltipPopup.setAttribute(\"aria-hidden\", \"true\");\r\n}\r\nfunction toggleTooltip(tooltipWord) {\r\n\tconst isExpanded = tooltipWord.getAttribute(\"aria-expanded\") === \"true\";\r\n\tif (isExpanded) {\r\n\t\thideTooltip(tooltipWord);\r\n\t} else {\r\n\t\tshowTooltip(tooltipWord);\r\n\t}\r\n}\r\n\r\nfunction getCurrentPos(entry) {\r\n\treturn parseInt(getComputedStyle(entry.target, null).getPropertyValue(\"left\"));\r\n}\r\n\r\nwindow.addEventListener(\"DOMContentLoaded\", (event) => {\r\n\tinitTooltips();\r\n});\r\n"],"names":["initTooltips","tooltipWords","document","querySelectorAll","vocabulairesPostsIds","Array","from","map","element","getAttribute","tooltipData","getTooltipsDatas","forEach","word","index","foundTooltipDatas","find","tooltip","id","parseInt","console","log","setAttribute","title","rendered","acf","definition","createTooltip","error","observeTooltip","response","fetch","toString","ok","Error","status","data","json","err","tooltipsObserver","IntersectionObserver","entries","entry","margin","boundingClientRect","x","currentPos","getCurrentPos","missingSpace","Math","abs","target","style","left","setProperty","width","window","innerWidth","difference","intersectionRect","tooltipWord","observe","querySelector","addEventListener","event","toggleTooltip","key","hideTooltip","showTooltip","isFocused","activeElement","tooltipPopup","createElement","className","tooltipDefinition","textContent","tooltipTitle","appendChild","isExpanded","getComputedStyle","getPropertyValue"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"tooltipFront.js","mappings":"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","sources":["webpack://multi-blocks/./src/format-types/tooltip/tooltip-front.js"],"sourcesContent":["async function initTooltips() {\r\n\tlet tooltipWords = document.querySelectorAll(\".tooltip-word\");\r\n\tconst vocabulairesPostsIds = Array.from(tooltipWords).map((element) =>\r\n\t\telement.getAttribute(\"data-definition-id\")\r\n\t);\r\n\r\n\ttry {\r\n\t\tconst tooltipData = await getTooltipsDatas(vocabulairesPostsIds);\r\n\r\n\t\ttooltipWords.forEach((word, index) => {\r\n\t\t\tconst foundTooltipDatas = tooltipData.find(\r\n\t\t\t\t(tooltip) => tooltip.id === parseInt(word.getAttribute(\"data-definition-id\"))\r\n\t\t\t);\r\n\r\n\t\t\tif (foundTooltipDatas) {\r\n\t\t\t\tword.setAttribute(\"data-tooltip-word\", foundTooltipDatas.title.rendered);\r\n\t\t\t\tword.setAttribute(\"data-tooltip-definition\", foundTooltipDatas.acf.definition);\r\n\t\t\t}\r\n\r\n\t\t\tcreateTooltip(word, tooltipData[index]);\r\n\t\t});\r\n\t} catch (error) {\r\n\t\tconsole.log(\"Something went wrong!\", error);\r\n\t}\r\n\r\n\tawait observeTooltip(tooltipWords);\r\n}\r\nasync function getTooltipsDatas(vocabulairesPostsIds) {\r\n\ttry {\r\n\t\tconst response = await fetch(`/wp-json/wp/v2/vocabulaire?include=${vocabulairesPostsIds.toString()}`);\r\n\t\tif (!response.ok) {\r\n\t\t\tthrow new Error(`Request failed with status: ${response.status}`);\r\n\t\t}\r\n\t\tconst data = await response.json();\r\n\t\treturn data;\r\n\t} catch (err) {\r\n\t\tthrow err;\r\n\t}\r\n}\r\nasync function observeTooltip(tooltipWords) {\r\n\t// CHAPTER IntersectionObserver\r\n\tconst tooltipsObserver = new IntersectionObserver((entries) => {\r\n\t\tentries.forEach((entry) => {\r\n\t\t\tconst margin = 10;\r\n\r\n\t\t\t// DEPASSE À GAUCHE\r\n\t\t\tif (entry.boundingClientRect.x < 0) {\r\n\t\t\t\tconst currentPos = getCurrentPos(entry);\r\n\t\t\t\tconst missingSpace = Math.abs(entry.boundingClientRect.x);\r\n\t\t\t\tentry.target.style.left = `${currentPos + missingSpace + margin}px`;\r\n\t\t\t\tentry.target.style.setProperty(\"--tooltip-x-position\", \"12%\");\r\n\t\t\t}\r\n\t\t\t// DEPASSE À DROITE\r\n\t\t\tif (entry.boundingClientRect.x + entry.boundingClientRect.width > window.innerWidth) {\r\n\t\t\t\tconst currentPos = getCurrentPos(entry);\r\n\t\t\t\tconst difference = entry.boundingClientRect.width - entry.intersectionRect.width;\r\n\r\n\t\t\t\tentry.target.style.left = `${currentPos - difference - margin}px`;\r\n\t\t\t\tentry.target.style.setProperty(\"--tooltip-x-position\", `calc(60% + ${difference}px)`);\r\n\t\t\t}\r\n\r\n\t\t\t// Check aspect ratio to be sure the element is visible\r\n\t\t\t// const aspect = entry.intersectionRatio;\r\n\t\t\t// if (entry.isIntersecting) {\r\n\t\t\t// }\r\n\t\t});\r\n\t});\r\n\ttooltipWords.forEach((tooltipWord) => {\r\n\t\ttooltipsObserver.observe(tooltipWord.querySelector(\".tooltip-popup\"));\r\n\r\n\t\ttooltipWord.addEventListener(\"click\", (event) => {\r\n\t\t\ttoggleTooltip(tooltipWord);\r\n\t\t});\r\n\t\ttooltipWord.addEventListener(\"keydown\", (event) => {\r\n\t\t\tswitch (event.key) {\r\n\t\t\t\tcase \"Escape\":\r\n\t\t\t\t\thideTooltip(tooltipWord);\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t});\r\n\t\ttooltipWord.addEventListener(\"mouseover\", (event) => {\r\n\t\t\tshowTooltip(tooltipWord);\r\n\t\t});\r\n\r\n\t\ttooltipWord.addEventListener(\"mouseout\", (event) => {\r\n\t\t\tvar isFocused = document.activeElement === tooltipWord;\r\n\t\t\tif (!isFocused) {\r\n\t\t\t\thideTooltip(tooltipWord);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\ttooltipWord.addEventListener(\"focusout\", (event) => {\r\n\t\t\thideTooltip(tooltipWord);\r\n\t\t});\r\n\t});\r\n}\r\nfunction createTooltip(tooltipWord) {\r\n\tconst tooltipPopup = document.createElement(\"div\");\r\n\ttooltipPopup.className = \"tooltip-popup\";\r\n\ttooltipPopup.setAttribute(\"aria-hidden\", \"true\");\r\n\r\n\tconst tooltipDefinition = document.createElement(\"p\");\r\n\ttooltipDefinition.textContent = tooltipWord.getAttribute(\"data-tooltip-definition\");\r\n\ttooltipDefinition.className = \"tooltip-popup__definition\";\r\n\r\n\tconst tooltipTitle = document.createElement(\"h5\");\r\n\ttooltipTitle.textContent = tooltipWord.getAttribute(\"data-tooltip-word\");\r\n\ttooltipTitle.className = \"tooltip-popup__title\";\r\n\r\n\ttooltipPopup.appendChild(tooltipTitle);\r\n\ttooltipPopup.appendChild(tooltipDefinition);\r\n\ttooltipWord.appendChild(tooltipPopup);\r\n\r\n\t// tooltipWord.insertAdjacentElement(\"afterend\", tooltipPopup);\r\n}\r\nfunction showTooltip(tooltipWord) {\r\n\ttooltipWord.setAttribute(\"aria-expanded\", \"true\");\r\n\tconst tooltipPopup = tooltipWord.querySelector(\".tooltip-popup\");\r\n\ttooltipPopup.setAttribute(\"aria-hidden\", \"false\");\r\n}\r\nfunction hideTooltip(tooltipWord) {\r\n\ttooltipWord.setAttribute(\"aria-expanded\", \"false\");\r\n\tconst tooltipPopup = tooltipWord.querySelector(\".tooltip-popup\");\r\n\ttooltipPopup.setAttribute(\"aria-hidden\", \"true\");\r\n}\r\nfunction toggleTooltip(tooltipWord) {\r\n\tconst isExpanded = tooltipWord.getAttribute(\"aria-expanded\") === \"true\";\r\n\tif (isExpanded) {\r\n\t\thideTooltip(tooltipWord);\r\n\t} else {\r\n\t\tshowTooltip(tooltipWord);\r\n\t}\r\n}\r\n\r\nfunction getCurrentPos(entry) {\r\n\treturn parseInt(getComputedStyle(entry.target, null).getPropertyValue(\"left\"));\r\n}\r\n\r\nwindow.addEventListener(\"DOMContentLoaded\", (event) => {\r\n\tinitTooltips();\r\n});\r\n"],"names":["initTooltips","tooltipWords","document","querySelectorAll","vocabulairesPostsIds","Array","from","map","element","getAttribute","tooltipData","getTooltipsDatas","forEach","word","index","foundTooltipDatas","find","tooltip","id","parseInt","setAttribute","title","rendered","acf","definition","createTooltip","error","console","log","observeTooltip","response","fetch","toString","ok","Error","status","data","json","err","tooltipsObserver","IntersectionObserver","entries","entry","margin","boundingClientRect","x","currentPos","getCurrentPos","missingSpace","Math","abs","target","style","left","setProperty","width","window","innerWidth","difference","intersectionRect","tooltipWord","observe","querySelector","addEventListener","event","toggleTooltip","key","hideTooltip","showTooltip","isFocused","activeElement","tooltipPopup","createElement","className","tooltipDefinition","textContent","tooltipTitle","appendChild","isExpanded","getComputedStyle","getPropertyValue"],"sourceRoot":""} \ No newline at end of file