diginext-utils 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +21 -0
- package/README.md +0 -0
- package/index.js +1 -0
- package/package.json +21 -0
- package/src/ArrayExtra.js +299 -0
- package/src/Browser.js +297 -0
- package/src/Camera.js +412 -0
- package/src/Checker.js +24 -0
- package/src/Color.js +81 -0
- package/src/Console.js +18 -0
- package/src/Device.js +56 -0
- package/src/EventDispatcher.js +58 -0
- package/src/FileUpload.js +59 -0
- package/src/FileUtils.js +30 -0
- package/src/MathExtra.js +172 -0
- package/src/OS.js +203 -0
- package/src/ObjectExtra.js +109 -0
- package/src/ReactUtils.js +25 -0
- package/src/ScrollPos.js +31 -0
- package/src/Slug.js +383 -0
- package/src/Timer.js +7 -0
- package/src/Url.js +109 -0
- package/src/UrlUtils.js +109 -0
- package/src/UserLS.js +104 -0
- package/src/Uuid.js +66 -0
- package/src/Validation.js +35 -0
- package/src/array/index.js +301 -0
- package/src/backend/file/createDir.js +13 -0
- package/src/backend/file/fileMove.js +35 -0
- package/src/backend/file/findFilesByExt.js +42 -0
- package/src/backend/zip/extractZip.js +58 -0
- package/src/device/browser.js +29 -0
- package/src/device/camera.js +228 -0
- package/src/device/index.js +233 -0
- package/src/isMobileOrTablet.js +28 -0
- package/src/math/index.js +211 -0
- package/src/object/index.js +40 -0
- package/src/permission/requestCamera.js +43 -0
- package/src/permission/requestDeviceOrientationControl.js +32 -0
- package/src/string/index.js +194 -0
package/src/Slug.js
ADDED
|
@@ -0,0 +1,383 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create a web friendly URL slug from a string.
|
|
3
|
+
*
|
|
4
|
+
* Requires XRegExp (http://xregexp.com) with unicode add-ons for UTF-8 support.
|
|
5
|
+
*
|
|
6
|
+
* Although supported, transliteration is discouraged because
|
|
7
|
+
* 1) most web browsers support UTF-8 characters in URLs
|
|
8
|
+
* 2) transliteration causes a loss of information
|
|
9
|
+
*
|
|
10
|
+
* @author Sean Murphy <sean@iamseanmurphy.com>
|
|
11
|
+
* @copyright Copyright 2012 Sean Murphy. All rights reserved.
|
|
12
|
+
* @license http://creativecommons.org/publicdomain/zero/1.0/
|
|
13
|
+
*
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
*
|
|
17
|
+
* @param {string} s
|
|
18
|
+
* @param {Object} opt
|
|
19
|
+
* @return {string}
|
|
20
|
+
*/
|
|
21
|
+
const makeSlug = (s, opt = {}) => {
|
|
22
|
+
// s = String(s);
|
|
23
|
+
// opt = Object(opt);
|
|
24
|
+
|
|
25
|
+
var defaults = {
|
|
26
|
+
delimiter: "-",
|
|
27
|
+
limit: undefined,
|
|
28
|
+
lowercase: true,
|
|
29
|
+
replacements: {},
|
|
30
|
+
transliterate: typeof XRegExp === "undefined" ? true : false,
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
// Merge options
|
|
34
|
+
for (var k in defaults) {
|
|
35
|
+
if (!opt.hasOwnProperty(k)) {
|
|
36
|
+
opt[k] = defaults[k];
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
var char_map = {
|
|
41
|
+
// Latin
|
|
42
|
+
À: "A",
|
|
43
|
+
Á: "A",
|
|
44
|
+
Â: "A",
|
|
45
|
+
Ã: "A",
|
|
46
|
+
Ä: "A",
|
|
47
|
+
Å: "A",
|
|
48
|
+
Æ: "AE",
|
|
49
|
+
Ç: "C",
|
|
50
|
+
È: "E",
|
|
51
|
+
É: "E",
|
|
52
|
+
Ê: "E",
|
|
53
|
+
Ë: "E",
|
|
54
|
+
Ì: "I",
|
|
55
|
+
Í: "I",
|
|
56
|
+
Î: "I",
|
|
57
|
+
Ï: "I",
|
|
58
|
+
Ð: "D",
|
|
59
|
+
Ñ: "N",
|
|
60
|
+
Ò: "O",
|
|
61
|
+
Ó: "O",
|
|
62
|
+
Ô: "O",
|
|
63
|
+
Õ: "O",
|
|
64
|
+
Ö: "O",
|
|
65
|
+
Ő: "O",
|
|
66
|
+
Ø: "O",
|
|
67
|
+
Ù: "U",
|
|
68
|
+
Ú: "U",
|
|
69
|
+
Û: "U",
|
|
70
|
+
Ü: "U",
|
|
71
|
+
Ű: "U",
|
|
72
|
+
Ý: "Y",
|
|
73
|
+
Þ: "TH",
|
|
74
|
+
ß: "ss",
|
|
75
|
+
à: "a",
|
|
76
|
+
á: "a",
|
|
77
|
+
â: "a",
|
|
78
|
+
ã: "a",
|
|
79
|
+
ä: "a",
|
|
80
|
+
å: "a",
|
|
81
|
+
æ: "ae",
|
|
82
|
+
ç: "c",
|
|
83
|
+
è: "e",
|
|
84
|
+
é: "e",
|
|
85
|
+
ê: "e",
|
|
86
|
+
ë: "e",
|
|
87
|
+
ì: "i",
|
|
88
|
+
í: "i",
|
|
89
|
+
î: "i",
|
|
90
|
+
ï: "i",
|
|
91
|
+
ð: "d",
|
|
92
|
+
ñ: "n",
|
|
93
|
+
ò: "o",
|
|
94
|
+
ó: "o",
|
|
95
|
+
ô: "o",
|
|
96
|
+
õ: "o",
|
|
97
|
+
ö: "o",
|
|
98
|
+
ő: "o",
|
|
99
|
+
ø: "o",
|
|
100
|
+
ù: "u",
|
|
101
|
+
ú: "u",
|
|
102
|
+
û: "u",
|
|
103
|
+
ü: "u",
|
|
104
|
+
ű: "u",
|
|
105
|
+
ý: "y",
|
|
106
|
+
þ: "th",
|
|
107
|
+
ÿ: "y",
|
|
108
|
+
|
|
109
|
+
// Latin symbols
|
|
110
|
+
"©": "(c)",
|
|
111
|
+
|
|
112
|
+
// Greek
|
|
113
|
+
Α: "A",
|
|
114
|
+
Β: "B",
|
|
115
|
+
Γ: "G",
|
|
116
|
+
Δ: "D",
|
|
117
|
+
Ε: "E",
|
|
118
|
+
Ζ: "Z",
|
|
119
|
+
Η: "H",
|
|
120
|
+
Θ: "8",
|
|
121
|
+
Ι: "I",
|
|
122
|
+
Κ: "K",
|
|
123
|
+
Λ: "L",
|
|
124
|
+
Μ: "M",
|
|
125
|
+
Ν: "N",
|
|
126
|
+
Ξ: "3",
|
|
127
|
+
Ο: "O",
|
|
128
|
+
Π: "P",
|
|
129
|
+
Ρ: "R",
|
|
130
|
+
Σ: "S",
|
|
131
|
+
Τ: "T",
|
|
132
|
+
Υ: "Y",
|
|
133
|
+
Φ: "F",
|
|
134
|
+
Χ: "X",
|
|
135
|
+
Ψ: "PS",
|
|
136
|
+
Ω: "W",
|
|
137
|
+
Ά: "A",
|
|
138
|
+
Έ: "E",
|
|
139
|
+
Ί: "I",
|
|
140
|
+
Ό: "O",
|
|
141
|
+
Ύ: "Y",
|
|
142
|
+
Ή: "H",
|
|
143
|
+
Ώ: "W",
|
|
144
|
+
Ϊ: "I",
|
|
145
|
+
Ϋ: "Y",
|
|
146
|
+
α: "a",
|
|
147
|
+
β: "b",
|
|
148
|
+
γ: "g",
|
|
149
|
+
δ: "d",
|
|
150
|
+
ε: "e",
|
|
151
|
+
ζ: "z",
|
|
152
|
+
η: "h",
|
|
153
|
+
θ: "8",
|
|
154
|
+
ι: "i",
|
|
155
|
+
κ: "k",
|
|
156
|
+
λ: "l",
|
|
157
|
+
μ: "m",
|
|
158
|
+
ν: "n",
|
|
159
|
+
ξ: "3",
|
|
160
|
+
ο: "o",
|
|
161
|
+
π: "p",
|
|
162
|
+
ρ: "r",
|
|
163
|
+
σ: "s",
|
|
164
|
+
τ: "t",
|
|
165
|
+
υ: "y",
|
|
166
|
+
φ: "f",
|
|
167
|
+
χ: "x",
|
|
168
|
+
ψ: "ps",
|
|
169
|
+
ω: "w",
|
|
170
|
+
ά: "a",
|
|
171
|
+
έ: "e",
|
|
172
|
+
ί: "i",
|
|
173
|
+
ό: "o",
|
|
174
|
+
ύ: "y",
|
|
175
|
+
ή: "h",
|
|
176
|
+
ώ: "w",
|
|
177
|
+
ς: "s",
|
|
178
|
+
ϊ: "i",
|
|
179
|
+
ΰ: "y",
|
|
180
|
+
ϋ: "y",
|
|
181
|
+
ΐ: "i",
|
|
182
|
+
|
|
183
|
+
// Turkish
|
|
184
|
+
Ş: "S",
|
|
185
|
+
İ: "I",
|
|
186
|
+
Ç: "C",
|
|
187
|
+
Ü: "U",
|
|
188
|
+
Ö: "O",
|
|
189
|
+
Ğ: "G",
|
|
190
|
+
ş: "s",
|
|
191
|
+
ı: "i",
|
|
192
|
+
ç: "c",
|
|
193
|
+
ü: "u",
|
|
194
|
+
ö: "o",
|
|
195
|
+
ğ: "g",
|
|
196
|
+
|
|
197
|
+
// Russian
|
|
198
|
+
А: "A",
|
|
199
|
+
Б: "B",
|
|
200
|
+
В: "V",
|
|
201
|
+
Г: "G",
|
|
202
|
+
Д: "D",
|
|
203
|
+
Е: "E",
|
|
204
|
+
Ё: "Yo",
|
|
205
|
+
Ж: "Zh",
|
|
206
|
+
З: "Z",
|
|
207
|
+
И: "I",
|
|
208
|
+
Й: "J",
|
|
209
|
+
К: "K",
|
|
210
|
+
Л: "L",
|
|
211
|
+
М: "M",
|
|
212
|
+
Н: "N",
|
|
213
|
+
О: "O",
|
|
214
|
+
П: "P",
|
|
215
|
+
Р: "R",
|
|
216
|
+
С: "S",
|
|
217
|
+
Т: "T",
|
|
218
|
+
У: "U",
|
|
219
|
+
Ф: "F",
|
|
220
|
+
Х: "H",
|
|
221
|
+
Ц: "C",
|
|
222
|
+
Ч: "Ch",
|
|
223
|
+
Ш: "Sh",
|
|
224
|
+
Щ: "Sh",
|
|
225
|
+
Ъ: "",
|
|
226
|
+
Ы: "Y",
|
|
227
|
+
Ь: "",
|
|
228
|
+
Э: "E",
|
|
229
|
+
Ю: "Yu",
|
|
230
|
+
Я: "Ya",
|
|
231
|
+
а: "a",
|
|
232
|
+
б: "b",
|
|
233
|
+
в: "v",
|
|
234
|
+
г: "g",
|
|
235
|
+
д: "d",
|
|
236
|
+
е: "e",
|
|
237
|
+
ё: "yo",
|
|
238
|
+
ж: "zh",
|
|
239
|
+
з: "z",
|
|
240
|
+
и: "i",
|
|
241
|
+
й: "j",
|
|
242
|
+
к: "k",
|
|
243
|
+
л: "l",
|
|
244
|
+
м: "m",
|
|
245
|
+
н: "n",
|
|
246
|
+
о: "o",
|
|
247
|
+
п: "p",
|
|
248
|
+
р: "r",
|
|
249
|
+
с: "s",
|
|
250
|
+
т: "t",
|
|
251
|
+
у: "u",
|
|
252
|
+
ф: "f",
|
|
253
|
+
х: "h",
|
|
254
|
+
ц: "c",
|
|
255
|
+
ч: "ch",
|
|
256
|
+
ш: "sh",
|
|
257
|
+
щ: "sh",
|
|
258
|
+
ъ: "",
|
|
259
|
+
ы: "y",
|
|
260
|
+
ь: "",
|
|
261
|
+
э: "e",
|
|
262
|
+
ю: "yu",
|
|
263
|
+
я: "ya",
|
|
264
|
+
|
|
265
|
+
// Ukrainian
|
|
266
|
+
Є: "Ye",
|
|
267
|
+
І: "I",
|
|
268
|
+
Ї: "Yi",
|
|
269
|
+
Ґ: "G",
|
|
270
|
+
є: "ye",
|
|
271
|
+
і: "i",
|
|
272
|
+
ї: "yi",
|
|
273
|
+
ґ: "g",
|
|
274
|
+
|
|
275
|
+
// Czech
|
|
276
|
+
Č: "C",
|
|
277
|
+
Ď: "D",
|
|
278
|
+
Ě: "E",
|
|
279
|
+
Ň: "N",
|
|
280
|
+
Ř: "R",
|
|
281
|
+
Š: "S",
|
|
282
|
+
Ť: "T",
|
|
283
|
+
Ů: "U",
|
|
284
|
+
Ž: "Z",
|
|
285
|
+
č: "c",
|
|
286
|
+
ď: "d",
|
|
287
|
+
ě: "e",
|
|
288
|
+
ň: "n",
|
|
289
|
+
ř: "r",
|
|
290
|
+
š: "s",
|
|
291
|
+
ť: "t",
|
|
292
|
+
ů: "u",
|
|
293
|
+
ž: "z",
|
|
294
|
+
|
|
295
|
+
// Polish
|
|
296
|
+
Ą: "A",
|
|
297
|
+
Ć: "C",
|
|
298
|
+
Ę: "e",
|
|
299
|
+
Ł: "L",
|
|
300
|
+
Ń: "N",
|
|
301
|
+
Ó: "o",
|
|
302
|
+
Ś: "S",
|
|
303
|
+
Ź: "Z",
|
|
304
|
+
Ż: "Z",
|
|
305
|
+
ą: "a",
|
|
306
|
+
ć: "c",
|
|
307
|
+
ę: "e",
|
|
308
|
+
ł: "l",
|
|
309
|
+
ń: "n",
|
|
310
|
+
ó: "o",
|
|
311
|
+
ś: "s",
|
|
312
|
+
ź: "z",
|
|
313
|
+
ż: "z",
|
|
314
|
+
|
|
315
|
+
// Latvian
|
|
316
|
+
Ā: "A",
|
|
317
|
+
Č: "C",
|
|
318
|
+
Ē: "E",
|
|
319
|
+
Ģ: "G",
|
|
320
|
+
Ī: "i",
|
|
321
|
+
Ķ: "k",
|
|
322
|
+
Ļ: "L",
|
|
323
|
+
Ņ: "N",
|
|
324
|
+
Š: "S",
|
|
325
|
+
Ū: "u",
|
|
326
|
+
Ž: "Z",
|
|
327
|
+
ā: "a",
|
|
328
|
+
č: "c",
|
|
329
|
+
ē: "e",
|
|
330
|
+
ģ: "g",
|
|
331
|
+
ī: "i",
|
|
332
|
+
ķ: "k",
|
|
333
|
+
ļ: "l",
|
|
334
|
+
ņ: "n",
|
|
335
|
+
š: "s",
|
|
336
|
+
ū: "u",
|
|
337
|
+
ž: "z",
|
|
338
|
+
};
|
|
339
|
+
|
|
340
|
+
// Vietnamese
|
|
341
|
+
s = s.replace(/á|à|ả|ạ|ã|ă|ắ|ằ|ẳ|ẵ|ặ|â|ấ|ầ|ẩ|ẫ|ậ/gi, "a");
|
|
342
|
+
s = s.replace(/é|è|ẻ|ẽ|ẹ|ê|ế|ề|ể|ễ|ệ/gi, "e");
|
|
343
|
+
s = s.replace(/i|í|ì|ỉ|ĩ|ị/gi, "i");
|
|
344
|
+
s = s.replace(/ó|ò|ỏ|õ|ọ|ô|ố|ồ|ổ|ỗ|ộ|ơ|ớ|ờ|ở|ỡ|ợ/gi, "o");
|
|
345
|
+
s = s.replace(/ú|ù|ủ|ũ|ụ|ư|ứ|ừ|ử|ữ|ự/gi, "u");
|
|
346
|
+
s = s.replace(/ý|ỳ|ỷ|ỹ|ỵ/gi, "y");
|
|
347
|
+
s = s.replace(/đ/gi, "d");
|
|
348
|
+
s = s.replace(/\-\-\-\-\-/gi, "-");
|
|
349
|
+
s = s.replace(/\-\-\-\-/gi, "-");
|
|
350
|
+
s = s.replace(/\-\-\-/gi, "-");
|
|
351
|
+
s = s.replace(/\-\-/gi, "-");
|
|
352
|
+
s = "@" + s + "@";
|
|
353
|
+
s = s.replace(/\@\-|\-\@|\@/gi, "");
|
|
354
|
+
|
|
355
|
+
// Make custom replacements
|
|
356
|
+
for (var k in opt.replacements) {
|
|
357
|
+
s = s.replace(RegExp(k, "g"), opt.replacements[k]);
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
// Transliterate characters to ASCII
|
|
361
|
+
if (opt.transliterate) {
|
|
362
|
+
for (var k in char_map) {
|
|
363
|
+
s = s.replace(RegExp(k, "g"), char_map[k]);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
// Replace non-alphanumeric characters with our delimiter
|
|
368
|
+
var alnum = typeof XRegExp === "undefined" ? RegExp("[^a-z0-9]+", "ig") : XRegExp("[^\\p{L}\\p{N}]+", "ig");
|
|
369
|
+
s = s.replace(alnum, opt.delimiter);
|
|
370
|
+
|
|
371
|
+
// Remove duplicate delimiters
|
|
372
|
+
s = s.replace(RegExp("[" + opt.delimiter + "]{2,}", "g"), opt.delimiter);
|
|
373
|
+
|
|
374
|
+
// Truncate slug to max. characters
|
|
375
|
+
s = s.substring(0, opt.limit);
|
|
376
|
+
|
|
377
|
+
// Remove delimiter from ends
|
|
378
|
+
s = s.replace(RegExp("(^" + opt.delimiter + "|" + opt.delimiter + "$)", "g"), "");
|
|
379
|
+
|
|
380
|
+
return opt.lowercase ? s.toLowerCase() : s;
|
|
381
|
+
};
|
|
382
|
+
|
|
383
|
+
export { makeSlug };
|
package/src/Timer.js
ADDED
package/src/Url.js
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import StringExtra from "./string/StringExtra";
|
|
2
|
+
|
|
3
|
+
var urlRegex = /(https?:\/\/[^\s]+)/g;
|
|
4
|
+
|
|
5
|
+
export default class Url {
|
|
6
|
+
static getUrlParams(parameter, staticURL, decode) {
|
|
7
|
+
staticURL = staticURL == undefined ? window.location : staticURL;
|
|
8
|
+
var currLocation = staticURL.length ? staticURL : window.location.search;
|
|
9
|
+
|
|
10
|
+
if (currLocation.split("?").length < 2) return "";
|
|
11
|
+
|
|
12
|
+
var parArr = currLocation.split("?")[1].split("&"),
|
|
13
|
+
returnBool = true;
|
|
14
|
+
|
|
15
|
+
for (var i = 0; i < parArr.length; i++) {
|
|
16
|
+
var parr = parArr[i].split("=");
|
|
17
|
+
if (parr[0] == parameter) {
|
|
18
|
+
return decode ? decodeURIComponent(parr[1]) : parr[1];
|
|
19
|
+
returnBool = true;
|
|
20
|
+
} else {
|
|
21
|
+
returnBool = false;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
if (!returnBool) return false;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
*
|
|
30
|
+
* @return {boolean}
|
|
31
|
+
*/
|
|
32
|
+
static isLink(str) {
|
|
33
|
+
return urlRegex.test(str);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
*
|
|
38
|
+
* @return {JSX.Element}
|
|
39
|
+
*/
|
|
40
|
+
static strToJsxLink(str, altText) {
|
|
41
|
+
return UrlUtils.isLink(str) ? <a href={src}>{altText || src}</a> : str;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
*
|
|
46
|
+
* @return {string}
|
|
47
|
+
*/
|
|
48
|
+
static decode(uri) {
|
|
49
|
+
return decodeURIComponent(uri);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
*
|
|
54
|
+
* @return {string}
|
|
55
|
+
*/
|
|
56
|
+
static encode(uri) {
|
|
57
|
+
return encodeURIComponent(uri);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
*
|
|
62
|
+
* @param {string} url
|
|
63
|
+
* @return {string}
|
|
64
|
+
*/
|
|
65
|
+
static getFileNameWithoutExtension(url) {
|
|
66
|
+
url = this.decode(url);
|
|
67
|
+
if (url) {
|
|
68
|
+
var m = url.toString().match(/.*\/(.+?)\./);
|
|
69
|
+
if (m && m.length > 1) {
|
|
70
|
+
return m[1];
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
if (!StringExtra.isEmpty(url)) {
|
|
74
|
+
return url.split(".").shift();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return "";
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
*
|
|
82
|
+
* @param {string} url
|
|
83
|
+
* @return {string}
|
|
84
|
+
*/
|
|
85
|
+
static getFileNameWithExtension(url) {
|
|
86
|
+
url = this.decode(url);
|
|
87
|
+
if (url) {
|
|
88
|
+
var m = url.toString().match(/.*\/(.*)$/);
|
|
89
|
+
|
|
90
|
+
if (m && m.length > 1) {
|
|
91
|
+
return m[1].split("/").pop().split("?")[0];
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
if (!StringExtra.isEmpty(url)) {
|
|
95
|
+
return url;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return "";
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
*
|
|
103
|
+
* @param {string} url
|
|
104
|
+
* @return {string}
|
|
105
|
+
*/
|
|
106
|
+
static getFileExtension(url) {
|
|
107
|
+
return this.getFileNameWithExtension(url).split(".").pop();
|
|
108
|
+
}
|
|
109
|
+
}
|
package/src/UrlUtils.js
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import StringExtra from "./string/StringExtra";
|
|
2
|
+
|
|
3
|
+
var urlRegex = /(https?:\/\/[^\s]+)/g;
|
|
4
|
+
|
|
5
|
+
export default class UrlUtils {
|
|
6
|
+
static getUrlParams(parameter, staticURL, decode) {
|
|
7
|
+
staticURL = staticURL == undefined ? window.location : staticURL;
|
|
8
|
+
var currLocation = staticURL.length ? staticURL : window.location.search;
|
|
9
|
+
|
|
10
|
+
if (currLocation.split("?").length < 2) return "";
|
|
11
|
+
|
|
12
|
+
var parArr = currLocation.split("?")[1].split("&"),
|
|
13
|
+
returnBool = true;
|
|
14
|
+
|
|
15
|
+
for (var i = 0; i < parArr.length; i++) {
|
|
16
|
+
var parr = parArr[i].split("=");
|
|
17
|
+
if (parr[0] == parameter) {
|
|
18
|
+
return decode ? decodeURIComponent(parr[1]) : parr[1];
|
|
19
|
+
returnBool = true;
|
|
20
|
+
} else {
|
|
21
|
+
returnBool = false;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
if (!returnBool) return false;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
*
|
|
30
|
+
* @return {boolean}
|
|
31
|
+
*/
|
|
32
|
+
static isLink(str) {
|
|
33
|
+
return urlRegex.test(str);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
*
|
|
38
|
+
* @return {JSX.Element}
|
|
39
|
+
*/
|
|
40
|
+
static strToJsxLink(str, altText) {
|
|
41
|
+
return UrlUtils.isLink(str) ? <a href={src}>{altText || src}</a> : str;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
*
|
|
46
|
+
* @return {string}
|
|
47
|
+
*/
|
|
48
|
+
static decode(uri) {
|
|
49
|
+
return decodeURIComponent(uri);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
*
|
|
54
|
+
* @return {string}
|
|
55
|
+
*/
|
|
56
|
+
static encode(uri) {
|
|
57
|
+
return encodeURIComponent(uri);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
*
|
|
62
|
+
* @param {string} url
|
|
63
|
+
* @return {string}
|
|
64
|
+
*/
|
|
65
|
+
static getFileNameWithoutExtension(url) {
|
|
66
|
+
url = this.decode(url);
|
|
67
|
+
if (url) {
|
|
68
|
+
var m = url.toString().match(/.*\/(.+?)\./);
|
|
69
|
+
if (m && m.length > 1) {
|
|
70
|
+
return m[1];
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
if (!StringExtra.isEmpty(url)) {
|
|
74
|
+
return url.split(".").shift();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return "";
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
*
|
|
82
|
+
* @param {string} url
|
|
83
|
+
* @return {string}
|
|
84
|
+
*/
|
|
85
|
+
static getFileNameWithExtension(url) {
|
|
86
|
+
url = this.decode(url);
|
|
87
|
+
if (url) {
|
|
88
|
+
var m = url.toString().match(/.*\/(.*)$/);
|
|
89
|
+
|
|
90
|
+
if (m && m.length > 1) {
|
|
91
|
+
return m[1].split("/").pop().split("?")[0];
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
if (!StringExtra.isEmpty(url)) {
|
|
95
|
+
return url;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return "";
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
*
|
|
103
|
+
* @param {string} url
|
|
104
|
+
* @return {string}
|
|
105
|
+
*/
|
|
106
|
+
static getFileExtension(url) {
|
|
107
|
+
return this.getFileNameWithExtension(url).split(".").pop();
|
|
108
|
+
}
|
|
109
|
+
}
|
package/src/UserLS.js
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import UrlLoader, { api, routes, PROXY_URL } from "./Api";
|
|
2
|
+
import Axios from "axios";
|
|
3
|
+
// upload hình -> login FB -> share
|
|
4
|
+
class UserLS {
|
|
5
|
+
static info = null;
|
|
6
|
+
|
|
7
|
+
static saveInfo(info) {
|
|
8
|
+
UserLS.info = { ...info };
|
|
9
|
+
window.localStorage.setItem("user_info", JSON.stringify(UserLS.info));
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
static getInfo() {
|
|
13
|
+
UserLS.info = JSON.parse(window.localStorage.getItem("user_info"));
|
|
14
|
+
console.log("getInfo", UserLS.info);
|
|
15
|
+
return UserLS.info;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
static saveAuthToken(code) {
|
|
19
|
+
let info = {
|
|
20
|
+
...UserLS.info,
|
|
21
|
+
auth_token: code,
|
|
22
|
+
};
|
|
23
|
+
window.localStorage.setItem("user_info", JSON.stringify(info));
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
static getAuthToken() {
|
|
27
|
+
let info = UserLS.getInfo();
|
|
28
|
+
let authToken = info.auth_token || -1;
|
|
29
|
+
return authToken;
|
|
30
|
+
}
|
|
31
|
+
static deleteAuthToken() {
|
|
32
|
+
let info = {
|
|
33
|
+
...UserLS.info,
|
|
34
|
+
auth_token: undefined,
|
|
35
|
+
};
|
|
36
|
+
window.localStorage.setItem("user_info", JSON.stringify(info));
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
static clearStorage() {
|
|
40
|
+
console.log("clearStorage");
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
static loginToGetAuthToken = async (accessToken) => {
|
|
44
|
+
// get jwt token by call api login/facebook/accesstoken....
|
|
45
|
+
|
|
46
|
+
// Axios.get(PROXY_URL + routes.loginNoQuery + "?access_token=" + accessToken, {
|
|
47
|
+
|
|
48
|
+
// }).then((res) => {
|
|
49
|
+
// console.log("axios login response", res);
|
|
50
|
+
|
|
51
|
+
// }
|
|
52
|
+
|
|
53
|
+
// )
|
|
54
|
+
const response = await UrlLoader.get({
|
|
55
|
+
url: PROXY_URL + routes.loginNoQuery,
|
|
56
|
+
param: {
|
|
57
|
+
access_token: accessToken,
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
console.log("loginToGet authToken", response);
|
|
61
|
+
|
|
62
|
+
if (response.statusCode === 200) {
|
|
63
|
+
const responseData = response.data || {};
|
|
64
|
+
const authToken = responseData.auth_token || -1;
|
|
65
|
+
|
|
66
|
+
// save to local storage
|
|
67
|
+
UserLS.saveAuthToken(authToken);
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
static async handleUploadImage(image) {
|
|
72
|
+
let _response = {
|
|
73
|
+
status: 0,
|
|
74
|
+
message: "",
|
|
75
|
+
data: {},
|
|
76
|
+
};
|
|
77
|
+
const param = {
|
|
78
|
+
image_user: image,
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
const response = await UrlLoader.post({
|
|
82
|
+
url: PROXY_URL + routes.upload,
|
|
83
|
+
isConvertToString: false,
|
|
84
|
+
param: param,
|
|
85
|
+
});
|
|
86
|
+
console.log("response", response);
|
|
87
|
+
|
|
88
|
+
if (response.statusCode === 200) {
|
|
89
|
+
const responseData = response.data || {};
|
|
90
|
+
_response.data = responseData.post_id || -1;
|
|
91
|
+
_response.auth_token = responseData.auth_token || -1;
|
|
92
|
+
_response.message = response.responseMessage;
|
|
93
|
+
_response.status = 1;
|
|
94
|
+
|
|
95
|
+
UserLS.saveAuthToken(_response.auth_token);
|
|
96
|
+
} else {
|
|
97
|
+
_response.message = response.responseMessage;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
return _response;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
export default UserLS;
|