word-games-theme 0.9.3 → 0.9.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/_data/blog/nav.json +1 -1
  3. data/_data/header/en/data.json +10 -2
  4. data/_data/wordgames/en/anagram_word_finder.json +2 -0
  5. data/_data/wordgames/en/feature_certain_positions.json +54 -0
  6. data/_data/wordgames/en/find-words-that-start-with-the-letters.json +54 -0
  7. data/_data/wordgames/en/root.json +10 -2
  8. data/_data/wordgames/en/word-meaning.json +86 -0
  9. data/_data/wordleSolver/en/data.json +6 -0
  10. data/_includes/Monumetric/Monumetric.html +48 -0
  11. data/_includes/autogenerated/content.html +1 -4
  12. data/_includes/cssfile/links.html +12 -0
  13. data/_includes/custom-head.html +0 -29
  14. data/_includes/find-words-in-certain-positions/words-in-certain-positions.html +168 -0
  15. data/_includes/head/index.html +3 -29
  16. data/_includes/header/blogHeader.html +1 -2
  17. data/_includes/header/index.html +1 -1
  18. data/_includes/script.html +16 -12
  19. data/_includes/section/commonPage.html +105 -101
  20. data/_includes/section/feature.html +1 -1
  21. data/_includes/section/news.html +8 -7
  22. data/_includes/section/related_categories_post.html +155 -150
  23. data/_includes/section/wordGroup.html +2 -12
  24. data/_includes/wordle-solver/wordle-solver.html +2 -3
  25. data/_layouts/allpages.html +1 -6
  26. data/_layouts/autogencontent.html +2 -5
  27. data/_layouts/blog.html +1 -2
  28. data/_layouts/default.html +18 -21
  29. data/_layouts/disclaimer.html +5 -2
  30. data/_layouts/page.html +7 -17
  31. data/_layouts/page2.html +3 -18
  32. data/_layouts/post.html +26 -23
  33. data/_layouts/privacyPolicy.html +2 -1
  34. data/_layouts/termAndCondition.html +1 -0
  35. data/_layouts/{wordleSolver.html → tools.html} +18 -11
  36. data/_layouts/wordMeaning.html +80 -66
  37. data/_layouts/xyzpages.html +1 -6
  38. data/assets/css/advancedFilter.css +8 -0
  39. data/assets/css/content.css +3 -3
  40. data/assets/css/home.css +58 -41
  41. data/assets/css/news.css +2 -2
  42. data/assets/css/style.css +26 -7
  43. data/assets/css/wordGroup.css +8 -4
  44. data/assets/css/wordleSolver.css +8 -14
  45. data/assets/css/wordsInCertainPosition.css +212 -0
  46. data/assets/images/wordswithletters-logo.png +0 -0
  47. data/assets/js/X-letter.js +12 -2
  48. data/assets/js/scrabbleDictonary.js +101 -0
  49. data/assets/js/wordScrabble.js +4 -1
  50. data/assets/js/wordleSolver.js +25 -18
  51. data/assets/js/words-in-certain-positions.js +302 -0
  52. data/assets/js/words-starting-with.js +564 -0
  53. metadata +12 -3
@@ -0,0 +1,302 @@
1
+ // console.log("certain position");
2
+ let form = document.querySelector('[name=verify')
3
+ let greenLetters = document.querySelectorAll('.greenLetters')
4
+ let certain_pos_words_data = document.getElementById('certain_pos_words_data')
5
+ greenLetters[0].focus()
6
+ let certain_pos_count = document.querySelector('#certain_pos_count')
7
+ let certain_pos_error_msg = document.querySelector('#certain_pos_error_msg')
8
+ let certain_pos_submit = document.getElementById('certain_pos_submit')
9
+ let newWordsLength
10
+ let errMessage = document.querySelector('.errMessage')
11
+ let spinner = document.querySelector('.spinner')
12
+ let tab_container = document.querySelector('.tab_container')
13
+ let tab_link_wrapper = document.querySelector(".tab_link_wrapper")
14
+ tab_link_wrapper.style.marginTop = "1rem"
15
+ tab_link_wrapper.style.display = "none"
16
+
17
+ const wordsInCertainPos = async (letters, lettersWithIndex, wordLength) => {
18
+ let maxLength = Math.max.apply(null, wordLength);
19
+ // maxLength = maxLength + 1
20
+ try {
21
+ let result = ''
22
+ document.querySelector('#searchData').innerHTML = ''
23
+ spinner.classList.add('spinner-border')
24
+ certain_pos_count.innerHTML = 'Finding words in certain position...'
25
+ let response = await fetch('/.netlify/functions/wordsInCertainPositions', {
26
+ method: 'POST',
27
+ body: JSON.stringify({
28
+ greenLetters: letters,
29
+ greenWithIndex: lettersWithIndex,
30
+ }),
31
+ })
32
+ let data = await response.json()
33
+
34
+ if (data.length == 0) {
35
+ errMessage.innerHTML = 'Sorry!! No words found'
36
+ errMessage.classList.add('alert-danger')
37
+ errMessage.style.display = 'block'
38
+ document.querySelector('#searchData').innerHTML = 'Search'
39
+ spinner.classList.remove('spinner-border')
40
+ certain_pos_words_data.innerHTML = ""
41
+ tab_container.innerHTML = ""
42
+ certain_pos_count.innerHTML = ""
43
+ newWordsLength = 0
44
+ }
45
+ else {
46
+ errMessage.innerHTML = ''
47
+ errMessage.classList.remove('alert-danger')
48
+ data = data.slice(0, 1500)
49
+ document.querySelector('#searchData').innerHTML = 'Search'
50
+ spinner.classList.remove('spinner-border')
51
+ certain_pos_words_data.innerHTML = ""
52
+ tab_container.innerHTML = ""
53
+ newWordsLength = 0
54
+
55
+
56
+ let ok = true
57
+
58
+ for (let i = maxLength; i <= 15; i++) {
59
+ let newdata = data.filter((item) => item.length === i)
60
+ if (newdata.length === 0) {
61
+ certain_pos_words_data.innerHTML += ''
62
+ } else {
63
+ newWordsLength += newdata.length
64
+ certain_pos_error_msg.classList.remove('alert-danger')
65
+ certain_pos_error_msg.innerHTML = ''
66
+ const result = newdata.map((item) => {
67
+ if (item.length === 1) {
68
+ ok = false
69
+ newWordsLength = newWordsLength - 1
70
+ } else {
71
+ let ScrabbleLetterScore = ScrabbleScore()
72
+ sum = 0
73
+ item = item.toLowerCase()
74
+ for (let i = 0; i < item.length; i++) {
75
+ sum += ScrabbleLetterScore[item[i]] || 0 // for unknown characters
76
+ }
77
+ return `<a class="anchor__style" title="Lookup ${item} in Dictionary" target="_blank" href="/word-meaning?search=${item.toLowerCase()}">
78
+ <li>${item}
79
+ <span class="points" value="${sum}" style="position:relative; top:4px; font-size:12px"> ${sum}</span>
80
+ </li></a>`
81
+ }
82
+ })
83
+ if (ok) {
84
+ tab_link_wrapper.style.display = "inline-flex"
85
+ tab_container.innerHTML += `
86
+ <input type="button" id="Tab_${i}" onclick="Filtering(${i})" value="${i} Letter"
87
+ class="tab_link cursorPointer" />
88
+ `
89
+ let tabs = document.getElementsByClassName('tab_link')
90
+ tabs[0] ? tabs[0].classList.add('active-tab') : ''
91
+ certain_pos_words_data.innerHTML += `
92
+ <div class="letterswords wordlistContainer" id="alpha_${i}">
93
+ <div class="wordListHeading">
94
+ <h3 class="lead">List of ${i} letter words that contain letters ${letters}</h3>
95
+ </div>
96
+ <div class="certainWordsList">
97
+ <ul class="ul list-unstyled">
98
+ ${result.join('')}
99
+ </ul>
100
+ </div>
101
+ </div>
102
+ `
103
+ }
104
+ }
105
+ }
106
+ if (newWordsLength === 0) {
107
+ certain_pos_count.innerHTML = ""
108
+ certain_pos_error_msg.classList.add('alert-danger')
109
+ certain_pos_error_msg.innerHTML = 'Sorry!! No words found'
110
+ } else {
111
+ certain_pos_count.innerHTML = `<strong>Found <span>${newWordsLength}</span>
112
+ words matching your search criteria </strong>`
113
+ }
114
+
115
+
116
+
117
+
118
+
119
+ }
120
+ } catch (error) {
121
+ console.log(error)
122
+ }
123
+ }
124
+
125
+ for (let g = 0; g < greenLetters.length; g++) {
126
+ const elem = greenLetters[g]
127
+ elem.addEventListener('input', (e) => {
128
+ e.target.value = e.target.value.replace(/[^a-zA-Z? ]/g, "")
129
+ })
130
+ }
131
+
132
+ const getLetters = (object) => {
133
+ let letters = []
134
+ if (typeof object === 'string') {
135
+ object = document.querySelectorAll(object)
136
+ }
137
+ for (let item of object) {
138
+ if (item.value.trim().length === 1) {
139
+ letters.push(item.value.toLowerCase())
140
+ }
141
+ }
142
+ return letters
143
+ }
144
+ const getIndexs = (object) => {
145
+ let index = []
146
+ if (typeof object === 'string') {
147
+ object = document.querySelectorAll(object)
148
+ }
149
+ for (let item of object) {
150
+ if (item.value.trim().length === 1) {
151
+ index.push({
152
+ value: item.value.toLowerCase(),
153
+ index: item.dataset.id,
154
+ })
155
+ }
156
+ }
157
+ return index
158
+ }
159
+ const getLength = (object) => {
160
+ let index = []
161
+ if (typeof object === 'string') {
162
+ object = document.querySelectorAll(object)
163
+ }
164
+ for (let item of object) {
165
+ if (item.value.trim().length === 1) {
166
+ index.push(
167
+ item.dataset.id)
168
+ }
169
+ }
170
+ return index
171
+ }
172
+ function handleSubmit(e) {
173
+ e.preventDefault()
174
+ let letters = getLetters('.greenLetters')
175
+ let lettersWithIndex = getIndexs('.greenWithIndex')
176
+ let wordLength = getLength('.greenWithIndex')
177
+
178
+ wordsInCertainPos(letters, lettersWithIndex, wordLength)
179
+ }
180
+ form.addEventListener('submit', handleSubmit)
181
+
182
+ // handling of filter on scroll
183
+ window.onscroll = function () {
184
+ var section = document.querySelectorAll('.letterswords')
185
+ let new_sections = {}
186
+ Array.prototype.forEach.call(section, function (e) {
187
+ if (document.body.clientWidth > 991) {
188
+ new_sections[e.id] = e.offsetTop - 10
189
+ } else {
190
+ new_sections[e.id] = e.offsetTop - 10
191
+ }
192
+ })
193
+ var scrollPosition =
194
+ document.documentElement.scrollTop || document.body.scrollTop
195
+ for (i in new_sections) {
196
+ let sort_val = "alpha"
197
+ if (
198
+ i.split('_')[0] == sort_val &&
199
+ new_sections[i] &&
200
+ new_sections[i] <= scrollPosition
201
+ ) {
202
+ document.querySelector('.active-tab').classList.remove('active-tab')
203
+ var active_now = document.querySelector('#Tab_' + i.split('_')[1])
204
+ active_now.classList.add('active-tab')
205
+ // active_now.scrollIntoView()
206
+ }
207
+ }
208
+ }
209
+ // Add Filtering
210
+ let sections = {}
211
+ function Filtering(id) {
212
+ let tabs = document.getElementsByClassName('tab_link')
213
+ tabs[0] ? tabs[0].classList.add('active-tab') : ''
214
+
215
+ Array.from(tabs).map((item) => {
216
+ item.classList.remove('active-tab')
217
+ })
218
+ // certain_pos_words_data.innerHTML += ``
219
+ let activeLetter = event.target
220
+ activeLetter.classList.add('active-tab')
221
+
222
+ var section = document.querySelectorAll('.letterswords')
223
+ var sort_val = "alpha"
224
+
225
+ Array.prototype.forEach.call(section, function (e) {
226
+ if (document.body.clientWidth > 991) {
227
+ sections[e.id] = e.offsetTop - 10
228
+ } else {
229
+ sections[e.id] = e.offsetTop - 30
230
+ }
231
+ })
232
+ document.documentElement.scrollTop = sections[sort_val + '_' + id] + 5
233
+
234
+ // document.body.scrollTop = sections[sort_val + '_' + id] + 5
235
+ }
236
+ // next && previous functionality
237
+ let prev = document.getElementById('prev')
238
+ let next = document.getElementById('next')
239
+ if (prev) {
240
+ prev.onclick = scroll_Right
241
+ }
242
+ if (next) {
243
+ next.onclick = scroll_Left
244
+ }
245
+ scroll_visible()
246
+ window.addEventListener('resize', function () {
247
+ scroll_visible()
248
+ })
249
+ window.addEventListener('scroll', function () {
250
+ scroll_visible()
251
+ })
252
+ function scroll_visible() {
253
+ let tab_container = document.querySelector('#tab-container')
254
+ // console.log(tab_container)
255
+ if (tab_container) {
256
+ if (tab_container.clientWidth === tab_container.scrollWidth) {
257
+ prev.style.display = 'none'
258
+ next.style.display = 'none'
259
+ } else {
260
+ prev.style.display = 'block'
261
+ next.style.display = 'block'
262
+ }
263
+ }
264
+ }
265
+ function scroll_Left() {
266
+ tab_container.scrollLeft += 130
267
+ }
268
+ function scroll_Right() {
269
+ tab_container.scrollLeft -= 130
270
+ }
271
+ // Scrabble Point Array
272
+ const ScrabbleScore = () => {
273
+ let twl06_sowpods = {
274
+ a: 1,
275
+ e: 1,
276
+ i: 1,
277
+ o: 1,
278
+ u: 1,
279
+ l: 1,
280
+ n: 1,
281
+ r: 1,
282
+ s: 1,
283
+ t: 1,
284
+ d: 2,
285
+ g: 2,
286
+ b: 3,
287
+ c: 3,
288
+ m: 3,
289
+ p: 3,
290
+ f: 4,
291
+ h: 4,
292
+ v: 4,
293
+ w: 4,
294
+ y: 4,
295
+ k: 5,
296
+ j: 8,
297
+ x: 8,
298
+ q: 10,
299
+ z: 10,
300
+ }
301
+ return twl06_sowpods
302
+ }