word-games-theme 2.8.1 → 2.8.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 83783b247728585727105a58ce677d1f5481254b414208fa2d1594278bff9e84
4
- data.tar.gz: ddd25dfcfc29ef7a3ae8f885ac8220eef2f2bbcfbd5e4124fa0e478e51d52d6a
3
+ metadata.gz: 17543ce741f1baf1603be070f547faa129ea0b2703492c0fa418cbea54fbd50a
4
+ data.tar.gz: d8b0b9bd3b601d0a247d0c12d138bbd42c9897cf4cb40992624c384f8b6b83ba
5
5
  SHA512:
6
- metadata.gz: c051fbc4f5ba9ab1e2b5372195315ed07e8916c2a5972e2a40c0994428b3dfde6142cf19b4264744cfc26a38bead240d590de5eef0244a07bc9d1571b1d0e3ee
7
- data.tar.gz: 7726afab576671e08eb46deda034bcd187606e8df8b8683a0f3f5eb79a1a90f631e665fc4a3417925e43db929c130f511d8f72efc489e58f4c11352afea0d19b
6
+ metadata.gz: 405d3f0bccfa8c5ba69aab5c1ef9e1c4208266a1a29f6e4f3425f5ebaa4578087d070c5cc5857fa446eaeb01b3818768003a9cf2f227c0391157ade011a05d5a
7
+ data.tar.gz: a41b7171d014c4c82036d7935f61c8000d5b3ac06f2b8b37aef9698bad619dc3aa2d502ba07154d599fe28eba85b5b8f39e8482f2bc0439ebea9be880f2326b5
@@ -0,0 +1,262 @@
1
+ self.onmessage = async (event) => {
2
+ if (event.data.type === "api") {
3
+ const { endpoint, serachValue, selectedDictionary } = event.data
4
+ let response
5
+ if (serachValue) {
6
+ response = await fetch(`${endpoint}/getWords?name=${serachValue}&selecteddictionary=${selectedDictionary}`);
7
+ } else {
8
+ response = await fetch(`${endpoint}/getData?name=${serachValue}&selecteddictionary=${selectedDictionary}`);
9
+ }
10
+ const data = await response.json();
11
+ self.postMessage({ data });
12
+ }
13
+ if (event.data.type === "filterwords") {
14
+ const { data, serachValue, prefixValue, containsValue, suffixValue, exculdeValue, includeValue, lengthValue, sortingFilter, dictonary } = event.data
15
+ let newWordsLength = 0;
16
+ for (let i = 15; i > 0; i--) {
17
+ let newdata = data.filter((item) => item.length === i);
18
+ if (prefixValue) {
19
+ newdata = newdata.filter((item2) =>
20
+ item2.startsWith(prefixValue.toLowerCase())
21
+ );
22
+ }
23
+ if (containsValue) {
24
+ newdata = newdata.filter((item) =>
25
+ item.includes(containsValue.toLowerCase())
26
+ );
27
+ }
28
+ if (suffixValue) {
29
+ newdata = newdata.filter((item) =>
30
+ item.endsWith(suffixValue.toLowerCase())
31
+ );
32
+ }
33
+ if (exculdeValue) {
34
+ let data = [];
35
+ newdata.map((item) => {
36
+ let check = false;
37
+ for (let e = 0; e < exculdeValue.length; e++) {
38
+ const element = exculdeValue[e].toLowerCase();
39
+ if (item.includes(element)) {
40
+ check = true;
41
+ break;
42
+ } else {
43
+ check = false;
44
+ }
45
+ }
46
+ if (check === false) {
47
+ data.push(item);
48
+ }
49
+ });
50
+ newdata = data;
51
+ }
52
+ if (includeValue) {
53
+ let data = [];
54
+ newdata.map((item) => {
55
+ let check = false;
56
+ for (let e = 0; e < includeValue.length; e++) {
57
+ const element = includeValue[e].toLowerCase();
58
+ if (!item.includes(element)) {
59
+ check = true;
60
+ break;
61
+ } else {
62
+ check = false;
63
+ }
64
+ }
65
+ if (check === false) {
66
+ data.push(item);
67
+ }
68
+ });
69
+ newdata = data;
70
+ }
71
+ if (lengthValue) {
72
+ newdata = newdata.filter((item) => item.length == lengthValue);
73
+ }
74
+ // if (newdata.length === 0) {
75
+ // } else {
76
+ newWordsLength += newdata.length;
77
+ newdata = sortWords(sortingFilter, newdata, dictonary);
78
+ let result = newdata.map((item) => {
79
+ let itemHtml = "";
80
+ if (serachValue) {
81
+ var text1 = serachValue.replace("?", "");
82
+ var text2 = item;
83
+ var text3 = item;
84
+ let chars = text1.split("");
85
+ let indexs = [];
86
+ chars.map((i) => {
87
+ let findIndexes = findIndex(text3, i);
88
+ if (findIndexes.length > 0) {
89
+ text3 = text3.split("");
90
+ text3[findIndexes] = "$";
91
+ text3 = text3.join("");
92
+ indexs = [...indexs, ...findIndexes];
93
+ }
94
+ });
95
+ text2.split("").map((itemValue, index) => {
96
+ let check = indexs.find((i) => i === index);
97
+ if (check !== undefined) {
98
+ itemHtml += `${itemValue}`;
99
+ } else {
100
+ itemHtml += `<span class='highlight'>${itemValue}</span>`;
101
+ }
102
+ });
103
+ } else {
104
+ itemHtml = item
105
+ }
106
+ if (item.length === 1) {
107
+ ok = false;
108
+ newWordsLength = newWordsLength - 1;
109
+ } else {
110
+ let ScrabbleLetterScore = ScrabbleScore();
111
+ sum = 0;
112
+ item = item.toLowerCase();
113
+ for (let i = 0; i < item.length; i++) {
114
+ sum += ScrabbleLetterScore[item[i]] || 0; // for unknown characters
115
+ }
116
+ return `
117
+ <a class="anchor__style" title="Lookup ${item} in Dictionary" target="_blank" href="/word-meaning?search=${item.toLowerCase()}">
118
+ ${itemHtml}
119
+ <span class="points" value="${sum}" style="position:relative; top:4px; font-size:12px">${sum}</span>
120
+ </a>
121
+ `;
122
+ }
123
+ });
124
+ result = result.slice(0, 25)
125
+ self.postMessage({
126
+ type: "filterwords",
127
+ prefixValue: prefixValue,
128
+ containsValue: containsValue,
129
+ suffixValue: suffixValue,
130
+ exculdeValue: exculdeValue,
131
+ includeValue: includeValue,
132
+ lengthValue: lengthValue,
133
+ newdata: newdata,
134
+ i: i,
135
+ newWordsLength: newWordsLength,
136
+ result,
137
+ });
138
+ // }
139
+ }
140
+ }
141
+ };
142
+
143
+
144
+ function sortWords(sortingFilter, data, dictonary) {
145
+ if (sortingFilter == 0) {
146
+ return data;
147
+ } else if (sortingFilter == 1) {
148
+ return data.sort();
149
+ } else if (sortingFilter == 2) {
150
+ return data.reverse();
151
+ } else if (sortingFilter == 3) {
152
+ var tempArr = [];
153
+ var newArray = [];
154
+ data.map((item) => {
155
+ let newWordsLength = 0;
156
+ if (item.length === 1) {
157
+ ok = false;
158
+ newWordsLength = newWordsLength - 1;
159
+ } else {
160
+ let ScrabbleLetterScore = ScrabbleScore(dictonary);
161
+ let points = 0;
162
+ item = item.toLowerCase();
163
+ for (let i = 0; i < item.length; i++) {
164
+ points += ScrabbleLetterScore[item[i]] || 0; // for unknown characters
165
+ }
166
+ const value = {
167
+ words: item,
168
+ points: points,
169
+ };
170
+ newArray.push(value);
171
+ }
172
+ });
173
+
174
+ newArray.sort(function (a, b) {
175
+ return b.points - a.points;
176
+ });
177
+
178
+ newArray.map((ele) => {
179
+ tempArr.push(ele.words);
180
+ });
181
+ return tempArr;
182
+ }
183
+ }
184
+ // Scrabble Point Array
185
+ const ScrabbleScore = (dictonary) => {
186
+ let twl06_sowpods = {
187
+ a: 1,
188
+ e: 1,
189
+ i: 1,
190
+ o: 1,
191
+ u: 1,
192
+ l: 1,
193
+ n: 1,
194
+ r: 1,
195
+ s: 1,
196
+ t: 1,
197
+ d: 2,
198
+ g: 2,
199
+ b: 3,
200
+ c: 3,
201
+ m: 3,
202
+ p: 3,
203
+ f: 4,
204
+ h: 4,
205
+ v: 4,
206
+ w: 4,
207
+ y: 4,
208
+ k: 5,
209
+ j: 8,
210
+ x: 8,
211
+ q: 10,
212
+ z: 10,
213
+ };
214
+ let wwfScore = {
215
+ a: 1,
216
+ b: 4,
217
+ c: 4,
218
+ d: 2,
219
+ e: 1,
220
+ f: 4,
221
+ g: 3,
222
+ h: 3,
223
+ i: 1,
224
+ j: 10,
225
+ k: 5,
226
+ l: 2,
227
+ m: 4,
228
+ n: 2,
229
+ o: 1,
230
+ p: 4,
231
+ q: 10,
232
+ r: 1,
233
+ s: 1,
234
+ t: 1,
235
+ u: 2,
236
+ v: 5,
237
+ w: 4,
238
+ x: 8,
239
+ y: 3,
240
+ z: 10,
241
+ };
242
+
243
+ if (dictonary === "wwf") {
244
+ return wwfScore;
245
+ } else {
246
+ return twl06_sowpods;
247
+ }
248
+ };
249
+
250
+ function findIndex(str, char) {
251
+ const strLength = str.length;
252
+ const indexes = [];
253
+ let newStr = str;
254
+
255
+ while (newStr && newStr.indexOf(char) > -1) {
256
+ indexes.push(newStr.indexOf(char) + strLength - newStr.length);
257
+ newStr = newStr.substring(newStr.indexOf(char) + 5);
258
+ newStr = newStr.substring(newStr.indexOf(char) + 5);
259
+ }
260
+
261
+ return indexes;
262
+ }
@@ -76,7 +76,7 @@ let serachBtn = document.querySelector(".serachBtn")
76
76
  let searchBtnContainer = document.querySelector(".search-btn-container")
77
77
 
78
78
  // getWords define...
79
- const worker = new Worker('./wordfinder-worker.js');
79
+ const worker = new Worker('./assets/js/wordfinder-worker.js');
80
80
  const getData = async (serachValue) => {
81
81
  try {
82
82
  document.querySelector(".main-header").style.background = "#fff"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: word-games-theme
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.8.1
4
+ version: 2.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - manpreet-appscms
@@ -393,6 +393,7 @@ files:
393
393
  - assets/js/wordScrabble-test.js
394
394
  - assets/js/wordScrabble.js
395
395
  - assets/js/wordfinder-home.js
396
+ - assets/js/wordfinder-worker.js
396
397
  - assets/js/wordfinder.js
397
398
  - assets/js/wordgames-home.js
398
399
  - assets/js/wordgames-result.js