word-games-theme 1.6.1 → 1.6.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (249) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +0 -0
  3. data/README.md +0 -0
  4. data/_data/WordPointTables.json +0 -0
  5. data/_data/autogenerated_data.json +0 -0
  6. data/_data/blog/alertbar.yml +0 -0
  7. data/_data/blog/blog.yml +0 -0
  8. data/_data/blog/nav.json +0 -0
  9. data/_data/blog/popularUrls.json +0 -0
  10. data/_data/blog/share.yml +0 -0
  11. data/_data/content/en/pooja.json +0 -0
  12. data/_data/content/en/python.json +0 -0
  13. data/_data/content/en/react.json +0 -0
  14. data/_data/footer/en/data.json +0 -0
  15. data/_data/footer/networksites.json +0 -0
  16. data/_data/header/en/data.json +0 -0
  17. data/_data/repeatLetter/en/repeat-letters.json +101 -0
  18. data/_data/theme/colors.json +0 -0
  19. data/_data/wordfinderstrategy/en/how-to-use-5-letter-word-finder-to-score-high-in-scrabble-words-with-friends.json +0 -0
  20. data/_data/wordgames/ar/four_letter_word_finder.json +0 -0
  21. data/_data/wordgames/da/four_letter_word_finder.json +0 -0
  22. data/_data/wordgames/de/four_letter_word_finder.json +0 -0
  23. data/_data/wordgames/en/4_letter_words_with_these_letters_and_a_blank.json +0 -0
  24. data/_data/wordgames/en/anagram_word_finder.json +0 -0
  25. data/_data/wordgames/en/eight_letter_word_finder.json +0 -0
  26. data/_data/wordgames/en/eleven_letter_word_finder.json +0 -0
  27. data/_data/wordgames/en/feature_certain_positions.json +0 -0
  28. data/_data/wordgames/en/find-words-that-start-with-the-letters.json +0 -0
  29. data/_data/wordgames/en/five_letter_word_finder.json +0 -0
  30. data/_data/wordgames/en/four_letter_word_finder.json +0 -0
  31. data/_data/wordgames/en/french-word-unscrambler.json +0 -0
  32. data/_data/wordgames/en/german-word-unscrambler.json +0 -0
  33. data/_data/wordgames/en/italian-word-unscrambler.json +0 -0
  34. data/_data/wordgames/en/jumble_word_finder.json +0 -0
  35. data/_data/wordgames/en/lexical_word_finder.json +0 -0
  36. data/_data/wordgames/en/nine_letter_word_finder.json +0 -0
  37. data/_data/wordgames/en/root.json +0 -0
  38. data/_data/wordgames/en/scrabble_word_finder_cheat.json +0 -0
  39. data/_data/wordgames/en/seven_letter_word_finder.json +0 -0
  40. data/_data/wordgames/en/six_letter_word_finder.json +0 -0
  41. data/_data/wordgames/en/spanish-word-unscrambler.json +0 -0
  42. data/_data/wordgames/en/ten_letter_word_finder.json +0 -0
  43. data/_data/wordgames/en/thirteen_letter_word_finder.json +0 -0
  44. data/_data/wordgames/en/three_letter_word_finder.json +0 -0
  45. data/_data/wordgames/en/twelve_letter_word_finder.json +0 -0
  46. data/_data/wordgames/en/two_letter_word_finder.json +0 -0
  47. data/_data/wordgames/en/unscramble_letters_to_make_words.json +0 -0
  48. data/_data/wordgames/en/unscramble_words_and_jumble_solver.json +0 -0
  49. data/_data/wordgames/en/word-game-generator-online.json +0 -0
  50. data/_data/wordgames/en/word-game-play.json +0 -0
  51. data/_data/wordgames/en/word-meaning.json +0 -0
  52. data/_data/wordgames/en/words_with_friends_word_finder.json +0 -0
  53. data/_data/wordgames/es/four_letter_word_finder.json +0 -0
  54. data/_data/wordgames/fr/four_letter_word_finder.json +0 -0
  55. data/_data/wordgames/hi/four_letter_word_finder.json +0 -0
  56. data/_data/wordgames/id/four_letter_word_finder.json +0 -0
  57. data/_data/wordgames/it/four_letter_word_finder.json +0 -0
  58. data/_data/wordgames/ja/four_letter_word_finder.json +0 -0
  59. data/_data/wordgames/ko/four_letter_word_finder.json +0 -0
  60. data/_data/wordgames/nl/four_letter_word_finder.json +0 -0
  61. data/_data/wordgames/pl/four_letter_word_finder.json +0 -0
  62. data/_data/wordgames/pt/four_letter_word_finder.json +0 -0
  63. data/_data/wordgames/ru/four_letter_word_finder.json +0 -0
  64. data/_data/wordgames/sv/four_letter_word_finder.json +0 -0
  65. data/_data/wordgames/th/four_letter_word_finder.json +0 -0
  66. data/_data/wordgames/tr/four_letter_word_finder.json +0 -0
  67. data/_data/wordgames/uk/four_letter_word_finder.json +0 -0
  68. data/_data/wordgames/vi/four_letter_word_finder.json +0 -0
  69. data/_data/wordgames/zh/four_letter_word_finder.json +0 -0
  70. data/_data/wordgames/zh-TW/four_letter_word_finder.json +0 -0
  71. data/_data/wordleSolver/en/data.json +0 -0
  72. data/_data/wordleSolver/en/resultData.json +0 -0
  73. data/_data/xyzPagesData/en/unscramble-letters-jumble.json +0 -0
  74. data/_data/xyzPagesData/en/words-with-letters-cheat.json +0 -0
  75. data/_includes/Monumetric/Monumetric.html +0 -0
  76. data/_includes/Rating/rating.html +0 -0
  77. data/_includes/Rating/structureddata.html +0 -0
  78. data/_includes/WordPointTables/table.html +0 -0
  79. data/_includes/adBlocker/adBlocker.html +0 -0
  80. data/_includes/adsense/adsense.html +0 -0
  81. data/_includes/author_bio.html +0 -0
  82. data/_includes/authors/authors.html +0 -0
  83. data/_includes/autogenerated/content.html +0 -0
  84. data/_includes/autogenerated/footer.html +0 -0
  85. data/_includes/cssfile/links.html +0 -0
  86. data/_includes/custom-head.html +0 -0
  87. data/_includes/disqus_comments.html +0 -0
  88. data/_includes/filterWords/index.html +0 -0
  89. data/_includes/find-words-in-certain-positions/words-in-certain-positions.html +0 -0
  90. data/_includes/footer/index.html +0 -0
  91. data/_includes/footer/unqFooter.html +0 -0
  92. data/_includes/google-analytics.html +0 -0
  93. data/_includes/head/index.html +0 -0
  94. data/_includes/header/blogHeader.html +0 -0
  95. data/_includes/header/index.html +0 -0
  96. data/_includes/howto.html +0 -0
  97. data/_includes/languages/languages.html +0 -0
  98. data/_includes/paginationBlogPage.html +0 -0
  99. data/_includes/paginationPostPage.html +0 -0
  100. data/_includes/postauthorbio.html +0 -0
  101. data/_includes/postbox.html +0 -0
  102. data/_includes/repeat-letters.html +323 -0
  103. data/_includes/script.html +0 -0
  104. data/_includes/section/about.html +0 -0
  105. data/_includes/section/alertbar.html +0 -0
  106. data/_includes/section/blog.html +0 -0
  107. data/_includes/section/commonPage.html +0 -0
  108. data/_includes/section/count.html +0 -0
  109. data/_includes/section/feature.html +0 -0
  110. data/_includes/section/home.html +0 -0
  111. data/_includes/section/home2.html +0 -0
  112. data/_includes/section/news.html +0 -0
  113. data/_includes/section/recent_posts.html +0 -0
  114. data/_includes/section/related_categories_post.html +0 -0
  115. data/_includes/section/wordGroup.html +0 -0
  116. data/_includes/section/xyzGroup.html +0 -0
  117. data/_includes/seo.html +0 -0
  118. data/_includes/share/socialshare.html +0 -0
  119. data/_includes/word-game/word-game-generator-online.html +0 -0
  120. data/_includes/word-game/word-game-play.html +0 -0
  121. data/_includes/wordfinderstrategy/content.html +0 -0
  122. data/_includes/wordle-solver/wordle-solver.html +0 -0
  123. data/_includes/xyzpages/xyz.html +0 -0
  124. data/_includes/xyzpages/xyzFooter.html +0 -0
  125. data/_layouts/allpages.html +0 -0
  126. data/_layouts/autogencontent.html +0 -0
  127. data/_layouts/blank.html +0 -0
  128. data/_layouts/blog.html +0 -0
  129. data/_layouts/categories.html +0 -0
  130. data/_layouts/default.html +0 -0
  131. data/_layouts/disclaimer.html +0 -0
  132. data/_layouts/other-lang-scrabble.html +0 -0
  133. data/_layouts/page.html +0 -0
  134. data/_layouts/page2.html +0 -0
  135. data/_layouts/post.html +0 -0
  136. data/_layouts/privacyPolicy.html +0 -0
  137. data/_layouts/termAndCondition.html +0 -0
  138. data/_layouts/tools.html +0 -0
  139. data/_layouts/wordMeaning.html +0 -0
  140. data/_layouts/xyzpages.html +0 -0
  141. data/assets/css/adBlocker.css +0 -0
  142. data/assets/css/advancedFilter.css +0 -0
  143. data/assets/css/blog.css +0 -0
  144. data/assets/css/bootstrap.min.css +0 -0
  145. data/assets/css/content.css +0 -0
  146. data/assets/css/feature.css +0 -0
  147. data/assets/css/footer.css +0 -0
  148. data/assets/css/game.css +0 -0
  149. data/assets/css/home.css +0 -0
  150. data/assets/css/news.css +0 -0
  151. data/assets/css/style.css +0 -0
  152. data/assets/css/testhome.css +0 -0
  153. data/assets/css/wordGroup.css +0 -0
  154. data/assets/css/wordScrabble.css +0 -0
  155. data/assets/css/wordleSolver.css +0 -0
  156. data/assets/css/wordsInCertainPosition.css +0 -0
  157. data/assets/images/404.svg +0 -0
  158. data/assets/images/Ankita.webp +0 -0
  159. data/assets/images/Anushka.webp +0 -0
  160. data/assets/images/Arjyahi.webp +0 -0
  161. data/assets/images/EMDI - Hurts Like This (feat. Veronica Bravo) [NCS Release].mp3 +0 -0
  162. data/assets/images/Nikita.webp +0 -0
  163. data/assets/images/Resume - Google Docs.pdf +0 -0
  164. data/assets/images/abp.svg +0 -0
  165. data/assets/images/adblock.svg +0 -0
  166. data/assets/images/alka.webp +0 -0
  167. data/assets/images/angle-arrow-down.svg +0 -0
  168. data/assets/images/balark.jpeg +0 -0
  169. data/assets/images/bg_elements.png +0 -0
  170. data/assets/images/bg_elements.svg +0 -0
  171. data/assets/images/board-game.png +0 -0
  172. data/assets/images/check.svg +0 -0
  173. data/assets/images/close.png +0 -0
  174. data/assets/images/copy.svg +0 -0
  175. data/assets/images/facebook-square.svg +0 -0
  176. data/assets/images/facebook.svg +0 -0
  177. data/assets/images/facebooks.svg +0 -0
  178. data/assets/images/footer.png +0 -0
  179. data/assets/images/footer2-bg.webp +0 -0
  180. data/assets/images/header.svg +0 -0
  181. data/assets/images/hero-media-illustration-dark.svg +0 -0
  182. data/assets/images/hero-media-illustration-light.svg +0 -0
  183. data/assets/images/howto.svg +0 -0
  184. data/assets/images/instagram-square.svg +0 -0
  185. data/assets/images/instagram.svg +0 -0
  186. data/assets/images/keshav.webp +0 -0
  187. data/assets/images/krutika.jpeg +0 -0
  188. data/assets/images/left_obj_01 (1).svg +0 -0
  189. data/assets/images/left_obj_01.png +0 -0
  190. data/assets/images/left_obj_01.svg +0 -0
  191. data/assets/images/left_obj_02.png +0 -0
  192. data/assets/images/linkedin.svg +0 -0
  193. data/assets/images/linkedin2.svg +0 -0
  194. data/assets/images/loading.gif +0 -0
  195. data/assets/images/next.webp +0 -0
  196. data/assets/images/paavan.webp +0 -0
  197. data/assets/images/pallavi.jpeg +0 -0
  198. data/assets/images/prev.webp +0 -0
  199. data/assets/images/rating.webp +0 -0
  200. data/assets/images/ratingStar.png +0 -0
  201. data/assets/images/right.png +0 -0
  202. data/assets/images/right.svg +0 -0
  203. data/assets/images/right2.svg +0 -0
  204. data/assets/images/right3.svg +0 -0
  205. data/assets/images/right_obj_01.png +0 -0
  206. data/assets/images/search.svg +0 -0
  207. data/assets/images/search.webp +0 -0
  208. data/assets/images/siddhika.jpeg +0 -0
  209. data/assets/images/sona.jpeg +0 -0
  210. data/assets/images/star.png +0 -0
  211. data/assets/images/star.svg +0 -0
  212. data/assets/images/test.png +0 -0
  213. data/assets/images/timer.svg +0 -0
  214. data/assets/images/twitter-square.svg +0 -0
  215. data/assets/images/twitter.svg +0 -0
  216. data/assets/images/twitter2.svg +0 -0
  217. data/assets/images/twitters.svg +0 -0
  218. data/assets/images/udit.jpg +0 -0
  219. data/assets/images/uo.svg +0 -0
  220. data/assets/images/whatsapp.svg +0 -0
  221. data/assets/images/window-close.png +0 -0
  222. data/assets/images/window-close.svg +0 -0
  223. data/assets/images/word-games-logo.svg +0 -0
  224. data/assets/images/word-games-logo.webp +0 -0
  225. data/assets/images/wordle.png +0 -0
  226. data/assets/images/wordswithletters-logo.png +0 -0
  227. data/assets/images/yellow_bg.png +0 -0
  228. data/assets/js/TopScroll.js +0 -0
  229. data/assets/js/X-letter-test.js +0 -0
  230. data/assets/js/X-letter.js +0 -0
  231. data/assets/js/adBlocker.js +0 -0
  232. data/assets/js/confetti.js +0 -0
  233. data/assets/js/createWordle.js +0 -0
  234. data/assets/js/default.js +0 -0
  235. data/assets/js/game.js +0 -0
  236. data/assets/js/leftNav.js +0 -0
  237. data/assets/js/noRefreshAds.js +0 -0
  238. data/assets/js/other-lang-wordScrabble.js +0 -0
  239. data/assets/js/repeat-letters.js +798 -0
  240. data/assets/js/resultPage.js +48 -0
  241. data/assets/js/scrabbleDictonary.js +0 -0
  242. data/assets/js/wordScrabble-test.js +0 -0
  243. data/assets/js/wordScrabble.js +0 -0
  244. data/assets/js/wordleSolver.js +0 -0
  245. data/assets/js/wordleSolverResult.js +0 -0
  246. data/assets/js/words-in-certain-positions.js +0 -0
  247. data/assets/js/words-starting-with.js +0 -0
  248. data/assets/js/xyz.js +0 -0
  249. metadata +7 -3
@@ -0,0 +1,798 @@
1
+ const getScript = document.currentScript;
2
+ let form = document.querySelector("#form");
3
+ let wordCount = document.querySelector(".wordCount");
4
+ let main = document.querySelector(".main");
5
+ let loader = document.querySelector(".main-loader");
6
+ let errorMsg = document.querySelector(".errorMsg");
7
+ let script = document.currentScript;
8
+ let txtBox = document.querySelector(".txtBox");
9
+ const permaLink = getScript.dataset.permalink;
10
+ const sortup = document.querySelector(".sortup-icon");
11
+ let applyBtn = document.querySelector(".btn-info");
12
+
13
+ let sortingFilter = document.querySelector("#select_dropDown");
14
+
15
+ // grabbing advanced filter elements.
16
+ let tick;
17
+ let startsWith = document.getElementById("startsWith");
18
+ let mustInclude = document.getElementById("mustInclude");
19
+ let endsWith = document.getElementById("endsWith");
20
+ let exculdeWith = document.getElementById("exculdeWith");
21
+ let includeWith = document.getElementById("inculdeWith");
22
+ let wordLength = document.getElementById("wordLength");
23
+ let btn = document.querySelector(".serachBtn");
24
+ let tab_container = document.querySelector(".tab_container");
25
+ let dictionary = document.querySelector(".select_dropDown2");
26
+ var sortValue;
27
+ var sortBool = false;
28
+ let sortSelect = document.querySelector("#sort-select");
29
+ let serachValue = txtBox.value;
30
+ let prefixValue = startsWith.value;
31
+ let containsValue = mustInclude.value;
32
+ let suffixValue = endsWith.value;
33
+ let exculdeValue = exculdeWith.value;
34
+ let includeValue = includeWith.value;
35
+ let lengthValue = wordLength.value;
36
+ let dictonary = document.querySelector(".select_dropDown2").value;
37
+ let letterCloseButton = document.querySelector(
38
+ ".letter-close-button-commonPage"
39
+ );
40
+ let ok = true;
41
+ const siteUrl = window.location.href;
42
+ let queryParams = [
43
+ {
44
+ name: "search",
45
+ values: txtBox,
46
+ },
47
+ {
48
+ name: "prefix",
49
+ values: startsWith,
50
+ },
51
+ {
52
+ name: "contains",
53
+ values: mustInclude,
54
+ },
55
+ {
56
+ name: "suffix",
57
+ values: endsWith,
58
+ },
59
+ {
60
+ name: "exclude",
61
+ values: exculdeWith,
62
+ },
63
+ {
64
+ name: "include",
65
+ values: includeWith,
66
+ },
67
+ {
68
+ name: "length",
69
+ values: wordLength,
70
+ },
71
+ {
72
+ name: "length",
73
+ values: wordLength,
74
+ },
75
+ {
76
+ name: "dictionary",
77
+ values: dictionary,
78
+ },
79
+ ];
80
+
81
+ if (serachValue) {
82
+ letterCloseButton.classList.add("ltr-cls-btn-commonPage");
83
+ }
84
+ letterCloseButton.addEventListener("click", () => {
85
+ txtBox.value = "";
86
+ letterCloseButton.classList.remove("ltr-cls-btn-commonPage");
87
+ });
88
+
89
+ function mobileScrollTop(x) {
90
+ if (x.matches) {
91
+ console.log(x.matches);
92
+ txtBox.addEventListener("click", () => {
93
+ document.documentElement.scrollTop = 350;
94
+ setTimeout(() => {
95
+ document.documentElement.scrollTop = 350;
96
+ }, 300);
97
+ });
98
+ } else {
99
+ console.log("false");
100
+ }
101
+ }
102
+ var x = window.matchMedia("(max-width: 768px)");
103
+ mobileScrollTop(x);
104
+ x.addListener(mobileScrollTop);
105
+
106
+ let rangeOfBlankTile = script.dataset.range;
107
+ let quesMark = "?";
108
+ const getDiff = (text1, text2) => {
109
+ var diffRange = [];
110
+ var currentRange = undefined;
111
+ for (var i = 0; i < text1.length; i++) {
112
+ if (text1[i] != text2[i]) {
113
+ if (currentRange == undefined) {
114
+ currentRange = [i];
115
+ }
116
+ }
117
+ if (currentRange != undefined && text1[i] == text2[i]) {
118
+ currentRange.push(i);
119
+ diffRange.push(currentRange);
120
+ currentRange = undefined;
121
+ }
122
+ }
123
+ if (currentRange != undefined) {
124
+ currentRange.push(i);
125
+ diffRange.push(currentRange);
126
+ }
127
+ return diffRange;
128
+ };
129
+
130
+ // getWords define...
131
+ const getData = async (serachValue) => {
132
+ try {
133
+ errorMsg.innerHTML = "";
134
+ wordCount.innerHTML = "";
135
+ let selectedDictionary = document.querySelector(".select_dropDown2").value;
136
+ main.innerHTML = `<div class="loader">
137
+ <img src='/assets/images/loading.gif'>
138
+ <div style="font-weight:900;font-size:14px" >Finding words - Powered by ${siteUrl.replace(
139
+ /^https?:\/\//,
140
+ ""
141
+ )}</div>
142
+ </div>`;
143
+
144
+ const response = await fetch(
145
+ `http://127.0.0.1:9000/getRepeatWords?name=${serachValue}&selecteddictionary=${selectedDictionary}`
146
+ );
147
+ const data = await response.json();
148
+ main.innerHTML = "";
149
+ getWords(data);
150
+ //getWords calling...
151
+ } catch (error) {
152
+ console.log(error);
153
+ }
154
+ };
155
+
156
+ //getData calling...
157
+ // if (lengthValue === "1") {
158
+ // errorMsg.innerHTML = "words length should be more than 1";
159
+ // } else {
160
+ // getData(serachValue.toLowerCase());
161
+ function logSubmit(e) {
162
+ e.preventDefault();
163
+ resultPage2(queryParams);
164
+ const scrollingElement = document.scrollingElement || document.body;
165
+ scrollingElement.scroll({ top: 0, behavior: "smooth" });
166
+ if (rangeOfBlankTile) {
167
+ if (!txtBox.value.includes("?")) {
168
+ txtBox.value = txtBox.value + quesMark.repeat(rangeOfBlankTile); //
169
+ }
170
+ }
171
+ getData(txtBox.value.toLowerCase());
172
+ addFilterCount();
173
+ }
174
+
175
+ dictionary.addEventListener("change", (e) => {
176
+ logSubmit(e);
177
+ });
178
+ // }
179
+
180
+ applyBtn.addEventListener("submit", logSubmit);
181
+ form.addEventListener("submit", logSubmit);
182
+
183
+ // getWords function define...
184
+ function getWords(data) {
185
+ main.innerHTML = "";
186
+ tab_container.innerHTML = "";
187
+
188
+ data = filterRepeatedWords(txtBox.value, data);
189
+ data = sortWords(data);
190
+ if (data.length === 0) {
191
+ hideResultPageComponents();
192
+ errorMsg.innerHTML = "no words found";
193
+ wordCount.innerHTML = `<strong>Found 0 words with letters ${serachValue.split(
194
+ ""
195
+ )}</strong>`;
196
+ } else {
197
+ showResultPageComponents();
198
+ let newWordsLength = 0;
199
+ let dataArr = [];
200
+ let points = 0;
201
+
202
+ for (let i = 15; i >= 0; i--) {
203
+ let newdata = data.filter((item) => item.length === i);
204
+ let prefixValue = startsWith.value;
205
+ let containsValue = mustInclude.value;
206
+ let suffixValue = endsWith.value;
207
+ let exculdeValue = exculdeWith.value;
208
+ let includeValue = includeWith.value;
209
+ let lengthValue = wordLength.value;
210
+
211
+ if (startsWith.value) {
212
+ newdata = newdata.filter((item2) =>
213
+ item2.startsWith(prefixValue.toLowerCase())
214
+ );
215
+ startsWith.classList.add("filter_val", "tick");
216
+ // startsWith.value =
217
+ } else {
218
+ startsWith.classList.remove("filter_val", "tick");
219
+ }
220
+ if (mustInclude.value) {
221
+ newdata = newdata.filter((item) =>
222
+ item.includes(containsValue.toLowerCase())
223
+ );
224
+ mustInclude.classList.add("filter_val", "tick");
225
+ // mustInclude.value = containsValue;
226
+ } else {
227
+ mustInclude.classList.remove("filter_val", "tick");
228
+ }
229
+ if (endsWith.value) {
230
+ newdata = newdata.filter((item) =>
231
+ item.endsWith(suffixValue.toLowerCase())
232
+ );
233
+ endsWith.classList.add("filter_val", "tick");
234
+ // endsWith.value = suffixValue;
235
+ } else {
236
+ endsWith.classList.remove("filter_val", "tick");
237
+ }
238
+ if (exculdeWith.value) {
239
+ let excludeData = [];
240
+ newdata.map((item) => {
241
+ let check = false;
242
+ for (let e = 0; e < exculdeValue.length; e++) {
243
+ const element = exculdeValue[e].toLowerCase();
244
+ if (item.includes(element)) {
245
+ check = true;
246
+ break;
247
+ } else {
248
+ check = false;
249
+ }
250
+ }
251
+ if (check === false) {
252
+ excludeData.push(item);
253
+ }
254
+ newdata = excludeData;
255
+ });
256
+ exculdeWith.classList.add("filter_val", "tick");
257
+ // exculdeWith.value = exculdeValue;
258
+ } else {
259
+ exculdeWith.classList.remove("filter_val", "tick");
260
+ }
261
+ if (includeWith.value) {
262
+ let data = [];
263
+ newdata.map((item) => {
264
+ let check = false;
265
+ for (let e = 0; e < includeValue.length; e++) {
266
+ const element = includeValue[e].toLowerCase();
267
+ if (!item.includes(element)) {
268
+ check = true;
269
+ break;
270
+ } else {
271
+ check = false;
272
+ }
273
+ }
274
+ if (check === false) {
275
+ data.push(item);
276
+ }
277
+ });
278
+ includeWith.classList.add("filter_val", "tick");
279
+ includeWith.value = includeValue;
280
+ newdata = data;
281
+ } else {
282
+ includeWith.classList.remove("filter_val", "tick");
283
+ }
284
+ if (wordLength.value) {
285
+ newdata = newdata.filter((item) => item.length == wordLength.value);
286
+ wordLength.classList.add("filter_val", "tick");
287
+ wordLength.value = lengthValue;
288
+ } else {
289
+ wordLength.classList.remove("filter_val", "tick");
290
+ }
291
+ if (newdata.length == 0) {
292
+ main.innerHTML += "";
293
+ } else {
294
+ newWordsLength += newdata.length;
295
+ const result = newdata.map((item) => {
296
+ // var text1 = serachValue.replace("?", "");
297
+ // var text2 = item;
298
+ // var text3 = item;
299
+ // let chars = text1.split("");
300
+
301
+ let indexs = [];
302
+ // chars.map((i) => {
303
+ // let findIndexes = findIndex(text3, i);
304
+ // if (findIndexes.length > 0) {
305
+ // text3 = text3.split("");
306
+ // text3[findIndexes] = "$";
307
+ // text3 = text3.join("");
308
+
309
+ // indexs = [...indexs, ...findIndexes];
310
+ // }
311
+ // });
312
+ // let itemHtml = "";
313
+ // text2.split("").map((itemValue, index) => {
314
+ // let check = indexs.find((i) => i === index);
315
+
316
+ // if (check !== undefined) {
317
+ // itemHtml += `${itemValue}`;
318
+ // } else {
319
+ // itemHtml += `<span class='highlight'>${itemValue}</span>`;
320
+ // }
321
+ // });
322
+
323
+ let ScrabbleLetterScore = ScrabbleScore();
324
+ sum = 0;
325
+ item = item.toLowerCase();
326
+ for (let i = 0; i < item.length; i++) {
327
+ sum += ScrabbleLetterScore[item[i]] || 0; // for unknown characters
328
+ }
329
+ dataArr.push(item);
330
+
331
+ if (item.length === 1) {
332
+ ok = false;
333
+ newWordsLength = newWordsLength - 1;
334
+ } else {
335
+ return `<a class="anchor__style" title="Lookup ${item} in Dictionary" target="_blank" href="/word-meaning?search=${item.toLowerCase()}">
336
+ <li>${item}
337
+ <span class="points" value="${sum}" style="position:relative; top:4px; font-size:12px"> ${sum}</span>
338
+ </li></a>`;
339
+ }
340
+ });
341
+ if (result[0] !== undefined) {
342
+ tab_container.innerHTML += `
343
+ <input type="button" id="Tab_${i}" onclick="Filtering(${i})" value="${i} Letter"
344
+ class="tab_link cursorPointer" />
345
+ `;
346
+ let tabs = document.getElementsByClassName("tab_link");
347
+ tabs[0] ? tabs[0].classList.add("active-tab") : "";
348
+ main.innerHTML += `
349
+ <div class="allGroupWords wordlistContainer" id="alpha_${i}">
350
+ <div class="wordListHeading">
351
+ <h3 class="lead">${i} Letter Words</h3>
352
+ </div>
353
+ <div class="wordList">
354
+ <ul class="ul list-unstyled">
355
+ ${result.join("")}
356
+ </ul>
357
+ </div>
358
+ </div>
359
+ `;
360
+ }
361
+ }
362
+ }
363
+ if (newWordsLength === 0) {
364
+ hideResultPageComponents();
365
+ errorMsg.innerHTML = "no words found";
366
+ }
367
+ }
368
+ }
369
+
370
+ function filterRepeatedWords(includeValue, newdata) {
371
+ let data = [];
372
+ let filteredData = [];
373
+ let check,
374
+ dCheck = false;
375
+
376
+ if (includeValue) {
377
+ newdata.map((item) => {
378
+ var matchCounter = 0;
379
+ var tempArr = [];
380
+ for (let e = 0; e < item.length; e++) {
381
+ var element = item[e].toLowerCase();
382
+ if (includeValue.includes(element)) {
383
+ check = true;
384
+ if (!tempArr.includes(element.charCodeAt())) {
385
+ tempArr.push(element.charCodeAt());
386
+ matchCounter++;
387
+ }
388
+ } else {
389
+ check = false;
390
+ break;
391
+ }
392
+ }
393
+ if (check === true && matchCounter >= includeValue.length) {
394
+ var arr1 = getRepeatedChars(item, includeValue);
395
+ if (arr1.length != 0) {
396
+ arr1.map((elem) => {
397
+ if (item.includes(elem)) {
398
+ dCheck = true;
399
+ }
400
+ });
401
+ if (dCheck == true) {
402
+ data.push(item);
403
+ }
404
+ }
405
+ }
406
+ });
407
+ }
408
+ return data;
409
+ }
410
+
411
+ const getRepeatedChars = (str, userInput) => {
412
+ var userInputArr = userInput.split("");
413
+ const chars = {};
414
+ for (const char of str) {
415
+ chars[char] = (chars[char] || 0) + 1;
416
+ }
417
+ return Object.entries(chars)
418
+ .filter((char) => char[1] > 1 && userInputArr.includes(char[0]))
419
+ .map((char) => char[0]);
420
+ };
421
+
422
+ // sorting by points
423
+ function sortPointsby(sortValue, data) {
424
+ main.innerHTML = "";
425
+ if (sortValue) {
426
+ let newWordsLength = 0;
427
+ for (let i = serachValue.length; i >= 1; i--) {
428
+ var newdata = data.filter((item) => item.length === i);
429
+ if (newdata.length === 0) {
430
+ main.innerHTML += "";
431
+ } else {
432
+ newWordsLength += newdata.length;
433
+ var newArray = [];
434
+ newdata.map((item) => {
435
+ if (item.length === 1) {
436
+ ok = false;
437
+ newWordsLength = newWordsLength - 1;
438
+ } else {
439
+ let ScrabbleLetterScore = ScrabbleScore();
440
+ let points = 0;
441
+ item = item.toLowerCase();
442
+ for (let i = 0; i < item.length; i++) {
443
+ points += ScrabbleLetterScore[item[i]] || 0; // for unknown characters
444
+ }
445
+ const value = {
446
+ words: item,
447
+ points: points,
448
+ };
449
+ newArray.push(value);
450
+ }
451
+ });
452
+
453
+ newArray.sort(function (a, b) {
454
+ return b.points - a.points;
455
+ });
456
+ const result = newArray.map((item) => {
457
+ var text1 = serachValue.replace("?", "");
458
+ var text2 = item.words;
459
+ var text3 = item.words;
460
+ function findIndex(str, char) {
461
+ const strLength = str.length;
462
+ const indexes = [];
463
+ let newStr = str;
464
+ while (newStr && newStr.indexOf(char) > -1) {
465
+ indexes.push(newStr.indexOf(char) + strLength - newStr.length);
466
+ newStr = newStr.substring(newStr.indexOf(char) + 1);
467
+ newStr = newStr.substring(newStr.indexOf(char) + 1);
468
+ }
469
+ return indexes;
470
+ }
471
+ let chars = text1.split("");
472
+ let indexs = [];
473
+ chars.map((i) => {
474
+ let findIndexes = findIndex(text3, i);
475
+ if (findIndexes.length > 0) {
476
+ text3 = text3.split("");
477
+ text3[findIndexes] = "$";
478
+ text3 = text3.join("");
479
+ indexs = [...indexs, ...findIndexes];
480
+ }
481
+ });
482
+ let itemHtml = "";
483
+ text2.split("").map((itemValue, index) => {
484
+ let check = indexs.find((i) => i === index);
485
+ if (check !== undefined) {
486
+ itemHtml += `${itemValue}`;
487
+ } else {
488
+ itemHtml += `<span class='highlight'>${itemValue}</span>`;
489
+ }
490
+ });
491
+ return `<a class="anchor__style" title="Lookup ${item} in Dictionary" target="_blank" href="/word-meaning?search=${item.words}">
492
+ <li>${itemHtml}
493
+ <span class="points" value="${item.points}" style="position:relative; top:4px; font-size:12px"> ${item.points}</span>
494
+ </li></a>`;
495
+ });
496
+
497
+ main.innerHTML += `
498
+ <div class="allGroupWords wordlistContainer" id="alpha_${i}">
499
+ <div class="wordListHeading">
500
+ <h3 class="lead">${i} Letter Words</h3>
501
+ </div>
502
+ <div class="wordList">
503
+ <ul class="ul list-unstyled">
504
+ ${result.join("")}
505
+ </ul>
506
+ </div>
507
+ </div>
508
+ `;
509
+ }
510
+ }
511
+ }
512
+ }
513
+
514
+ // Scrabble Point Array
515
+ const ScrabbleScore = () => {
516
+ let twl06_sowpods = {
517
+ a: 1,
518
+ e: 1,
519
+ i: 1,
520
+ o: 1,
521
+ u: 1,
522
+ l: 1,
523
+ n: 1,
524
+ r: 1,
525
+ s: 1,
526
+ t: 1,
527
+ d: 2,
528
+ g: 2,
529
+ b: 3,
530
+ c: 3,
531
+ m: 3,
532
+ p: 3,
533
+ f: 4,
534
+ h: 4,
535
+ v: 4,
536
+ w: 4,
537
+ y: 4,
538
+ k: 5,
539
+ j: 8,
540
+ x: 8,
541
+ q: 10,
542
+ z: 10,
543
+ };
544
+
545
+ let wwfScore = {
546
+ a: 1,
547
+ b: 4,
548
+ c: 4,
549
+ d: 2,
550
+ e: 1,
551
+ f: 4,
552
+ g: 3,
553
+ h: 3,
554
+ i: 1,
555
+ j: 10,
556
+ k: 5,
557
+ l: 2,
558
+ m: 4,
559
+ n: 2,
560
+ o: 1,
561
+ p: 4,
562
+ q: 10,
563
+ r: 1,
564
+ s: 1,
565
+ t: 1,
566
+ u: 2,
567
+ v: 5,
568
+ w: 4,
569
+ x: 8,
570
+ y: 3,
571
+ z: 10,
572
+ };
573
+
574
+ if (dictonary === "wwf") {
575
+ return wwfScore;
576
+ } else {
577
+ return twl06_sowpods;
578
+ }
579
+ };
580
+ //Handling of filter counter in advanced filter
581
+ function addFilterCount() {
582
+ let filter_val = document.getElementsByClassName("filter_val");
583
+ let filter = document.querySelector(".filter_count");
584
+ let filter_count = filter_val.length;
585
+ if (filter_count === 0) {
586
+ filter.style.display = "none";
587
+ } else {
588
+ filter.style.display = "inline-block";
589
+ }
590
+
591
+ filter.innerHTML = filter_count;
592
+ }
593
+
594
+ // handling of filter on scroll
595
+ window.onscroll = function () {
596
+ var section = document.querySelectorAll(".wordlistContainer");
597
+ let new_sections = {};
598
+ Array.prototype.forEach.call(section, function (e) {
599
+ if (document.body.clientWidth > 991) {
600
+ new_sections[e.id] = e.offsetTop - 10;
601
+ } else {
602
+ new_sections[e.id] = e.offsetTop - 10;
603
+ }
604
+ });
605
+ var scrollPosition =
606
+ document.documentElement.scrollTop || document.body.scrollTop;
607
+ for (i in new_sections) {
608
+ let sort_val = document.querySelector(".sort-select").value;
609
+ if (
610
+ i.split("_")[0] == sort_val &&
611
+ new_sections[i] &&
612
+ new_sections[i] <= scrollPosition
613
+ ) {
614
+ document.querySelector(".active-tab").classList.remove("active-tab");
615
+ var active_now = document.querySelector("#Tab_" + i.split("_")[1]);
616
+ active_now.classList.add("active-tab");
617
+ active_now.scrollIntoView({ block: "nearest" });
618
+ }
619
+ }
620
+ };
621
+
622
+ // Add Filtering
623
+ let sections = {};
624
+ function Filtering(id) {
625
+ let tabs = document.getElementsByClassName("tab_link");
626
+ tabs[0] ? tabs[0].classList.add("active-tab") : "";
627
+
628
+ Array.from(tabs).map((item) => {
629
+ item.classList.remove("active-tab");
630
+ });
631
+ main.innerHTML += ``;
632
+ let activeLetter = event.target;
633
+ activeLetter.classList.add("active-tab");
634
+
635
+ var section = document.querySelectorAll(".allGroupWords");
636
+ var sort_val = "alpha";
637
+ Array.prototype.forEach.call(section, function (e) {
638
+ if (document.body.clientWidth > 991) {
639
+ sections[e.id] = e.offsetTop - 10;
640
+ } else {
641
+ sections[e.id] = e.offsetTop - 10;
642
+ }
643
+ });
644
+ document.documentElement.scrollTop = sections[sort_val + "_" + id] + 5;
645
+
646
+ setTimeout(() => {
647
+ document.documentElement.scrollTop = sections[sort_val + "_" + id] + 5;
648
+ }, 150);
649
+ }
650
+
651
+ // next && previous functionality
652
+ let prev = document.getElementById("prev");
653
+ let next = document.getElementById("next");
654
+
655
+ if (prev) {
656
+ prev.onclick = scroll_Right;
657
+ }
658
+ if (next) {
659
+ next.onclick = scroll_Left;
660
+ }
661
+ window.addEventListener("resize", function () {
662
+ scroll_visible();
663
+ });
664
+ window.addEventListener("scroll", function () {
665
+ scroll_visible();
666
+ });
667
+ function scroll_visible() {
668
+ let tab_container = document.querySelector("#tab-container");
669
+ if (tab_container) {
670
+ if (tab_container.clientWidth === tab_container.scrollWidth) {
671
+ prev.style.display = "none";
672
+ next.style.display = "none";
673
+ } else {
674
+ prev.style.display = "block";
675
+ next.style.display = "block";
676
+ }
677
+ }
678
+ }
679
+ scroll_visible();
680
+
681
+ function scroll_Left() {
682
+ tab_container.scrollLeft += 130;
683
+ }
684
+ function scroll_Right() {
685
+ tab_container.scrollLeft -= 130;
686
+ }
687
+ function findIndex(str, char) {
688
+ const strLength = str.length;
689
+ const indexes = [];
690
+ let newStr = str;
691
+
692
+ while (newStr && newStr.indexOf(char) > -1) {
693
+ indexes.push(newStr.indexOf(char) + strLength - newStr.length);
694
+ newStr = newStr.substring(newStr.indexOf(char) + 5);
695
+ newStr = newStr.substring(newStr.indexOf(char) + 5);
696
+ }
697
+
698
+ return indexes;
699
+ }
700
+ //event listeners
701
+
702
+ txtBox.addEventListener("input", (e) => {
703
+ if (e.target.value === "") {
704
+ letterCloseButton.classList.remove("ltr-cls-btn-commonPage");
705
+ } else {
706
+ letterCloseButton.classList.add("ltr-cls-btn-commonPage");
707
+ }
708
+ let rangeOfBlankTile = script.dataset.range;
709
+ e.target.value = e.target.value.replace(/[^a-zA-Z? ]/g, "");
710
+ if (rangeOfBlankTile === "") {
711
+ rangeOfBlankTile = 3;
712
+ }
713
+ e.target.value = e.target.value.replace(/ /g, "?");
714
+ let data = [];
715
+ data = e.target.value.split("").filter((i) => i === "?");
716
+ if (data.length > rangeOfBlankTile) {
717
+ e.target.value = e.target.value.replace(/\?$/, "");
718
+ }
719
+ });
720
+
721
+ //sort up listeners
722
+ sortup.addEventListener("click", () => {
723
+ if (bool) {
724
+ theSelect.size = 0;
725
+ bool = false;
726
+ theSelect.style.display = "none";
727
+ } else {
728
+ bool = true;
729
+ theSelect.size = 3;
730
+ theSelect.style.display = "block";
731
+ }
732
+ });
733
+
734
+ function init() {
735
+ var url = window.location.href;
736
+
737
+ if (url.includes("?")) {
738
+ showResultPageComponents();
739
+ setParamValues(queryParams);
740
+ window.onload = function (e) {
741
+ logSubmit(e);
742
+ };
743
+ }
744
+ }
745
+
746
+ function showResultPageComponents() {
747
+ sortSelect.style.display = "block";
748
+ document.querySelector(".tab_link_wrapper").style.display = "flex";
749
+ }
750
+
751
+ function hideResultPageComponents() {
752
+ sortSelect.style.display = "none";
753
+ document.querySelector(".tab_link_wrapper").style.display = "none";
754
+ }
755
+
756
+ function sortWords(data) {
757
+ if (sortingFilter.selectedIndex == 0) {
758
+ return data;
759
+ } else if (sortingFilter.selectedIndex == 1) {
760
+ return data.sort();
761
+ } else if (sortingFilter.selectedIndex == 2) {
762
+ return data.reverse();
763
+ } else if (sortingFilter.selectedIndex == 3) {
764
+ var tempArr = [];
765
+ var newArray = [];
766
+ data.map((item) => {
767
+ let newWordsLength = 0;
768
+ if (item.length === 1) {
769
+ ok = false;
770
+ newWordsLength = newWordsLength - 1;
771
+ } else {
772
+ let ScrabbleLetterScore = ScrabbleScore();
773
+ let points = 0;
774
+ item = item.toLowerCase();
775
+ for (let i = 0; i < item.length; i++) {
776
+ points += ScrabbleLetterScore[item[i]] || 0; // for unknown characters
777
+ }
778
+ const value = {
779
+ words: item,
780
+ points: points,
781
+ };
782
+ newArray.push(value);
783
+ }
784
+ });
785
+
786
+ newArray.sort(function (a, b) {
787
+ return b.points - a.points;
788
+ });
789
+
790
+ newArray.map((ele) => {
791
+ tempArr.push(ele.words);
792
+ });
793
+
794
+ return tempArr;
795
+ }
796
+ }
797
+
798
+ init();