assets/js/X-letter.js in word-games-theme-0.7.9 vs assets/js/X-letter.js in word-games-theme-0.8.0
- old
+ new
@@ -2,10 +2,11 @@
---
const getScript=document.currentScript
const letterLen = getScript.dataset.letter
let errorMsg = document.querySelector('.errorMsg')
+let script = document.currentScript
let wordCount = document.querySelector('.wordCount')
let main = document.querySelector('.main')
const params = new URLSearchParams(window.location.search)
let serachValue = params.get('search')
@@ -21,14 +22,47 @@
tab_link_wrapper.style.display = "none"
let txtBox = document.querySelector('.txtBox')
txtBox.focus()
txtBox.value = serachValue
+txtBox.addEventListener('input', (e) => {
+ let rangeOfBlankTile = script.dataset.range
+ e.target.value = e.target.value.replace(/[^a-zA-Z? ]/g, '')
+ if (rangeOfBlankTile === '') {
+ rangeOfBlankTile = 5
+ }
+ e.target.value = e.target.value.replace(/ /g, '?')
+ let data = []
+ data = e.target.value.split('').filter((i) => i === '?')
+ if (data.length > rangeOfBlankTile) {
+ e.target.value = e.target.value.replace(/\?$/, '')
+ }
+})
var theSelect = document.getElementById('select_dropDown')
document.querySelector('.select_dropDown2').value = dictonary
-
+const getDiff = (text1, text2) => {
+ var diffRange = []
+ var currentRange = undefined
+ for (var i = 0; i < text1.length; i++) {
+ if (text1[i] != text2[i]) {
+ if (currentRange == undefined) {
+ currentRange = [i]
+ }
+ }
+ if (currentRange != undefined && text1[i] == text2[i]) {
+ currentRange.push(i)
+ diffRange.push(currentRange)
+ currentRange = undefined
+ }
+ }
+ if (currentRange != undefined) {
+ currentRange.push(i)
+ diffRange.push(currentRange)
+ }
+ return diffRange
+}
const getData = async (serachValue) => {
try {
main.innerHTML = `<div class="loader">
<img src='/assets/images/loading.gif'>
</div>`
@@ -158,11 +192,48 @@
item = item.toLowerCase()
for (let i = 0; i < item.length; i++) {
sum += ScrabbleLetterScore[item[i]] || 0 // for unknown characters
}
wordLength.value = itemLength
+
+ var text1 = serachValue.replace('?', '')
+ var text2 = item
+ var text3 = item
+ function findIndex(str, char) {
+ const strLength = str.length
+ const indexes = []
+ let newStr = str
+ while (newStr && newStr.indexOf(char) > -1) {
+ indexes.push(newStr.indexOf(char) + strLength - newStr.length)
+ newStr = newStr.substring(newStr.indexOf(char) + 1)
+ newStr = newStr.substring(newStr.indexOf(char) + 1)
+ }
+ return indexes
+ }
+ let chars = text1.split('')
+ let indexs = []
+ chars.map((i) => {
+ let findIndexes = findIndex(text3, i)
+ if (findIndexes.length > 0) {
+ text3 = text3.split('')
+ text3[findIndexes] = '$'
+ text3 = text3.join('')
+ indexs = [...indexs, ...findIndexes]
+ }
+ })
+ let itemHtml = ''
+ text2.split('').map((itemValue, index) => {
+ let check = indexs.find((i) => i === index)
+ if (check !== undefined) {
+ itemHtml += `${itemValue}`
+ } else {
+ itemHtml += `<span class='highlight'>${itemValue}</span>`
+ }
+ })
+
+
return `<a class="anchor__style" title="Lookup ${item} in Dictionary" target="_blank" href="/word-meaning?search=${item}">
- <li>${item}
+ <li>${itemHtml}
<span class="points" value="${sum}" style="position:relative; top:4px; font-size:12px"> ${sum}</span>
</li></a>`
})
// tab_container.innerHTML += `