diginext-utils 2.1.8 → 2.1.10
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/README.md +162 -162
- package/dist/string/getTextBetweenCharByIndex.js +1 -1
- package/dist/string/getTextBetweenCharByIndex.js.map +1 -1
- package/esm/string/getTextBetweenCharByIndex.js +1 -1
- package/esm/string/getTextBetweenCharByIndex.js.map +1 -1
- package/package.json +1 -1
- package/src/Checker.ts +29 -29
- package/src/EventDispatcher.ts +62 -62
- package/src/FileUpload.ts +66 -66
- package/src/Slug.ts +365 -365
- package/src/Timer.ts +7 -7
- package/src/Validation.ts +36 -36
- package/src/array.ts +285 -285
- package/src/color.ts +87 -87
- package/src/console/enableConsole.ts +8 -8
- package/src/console/index.ts +17 -17
- package/src/console/log.ts +39 -39
- package/src/device/browser.ts +29 -29
- package/src/device/camera.ts +207 -207
- package/src/device/index.ts +230 -230
- package/src/device/os.ts +29 -29
- package/src/file/createDir.ts +14 -14
- package/src/file/fileMove.ts +32 -32
- package/src/file/findFilesByExt.ts +46 -46
- package/src/file/index.ts +7 -7
- package/src/images/index.ts +3 -3
- package/src/images/loadImage.ts +16 -16
- package/src/images/resize.ts +35 -35
- package/src/images/upload.ts +24 -24
- package/src/index.ts +39 -39
- package/src/json.ts +29 -29
- package/src/math/diffDate.ts +10 -10
- package/src/math/index.ts +90 -90
- package/src/math/positiveNumber.ts +12 -12
- package/src/name/en.ts +27 -27
- package/src/name/index.ts +8 -8
- package/src/name/vi.ts +23 -23
- package/src/object.ts +72 -72
- package/src/permission/index.ts +6 -6
- package/src/permission/requestCamera.ts +43 -43
- package/src/permission/requestDeviceOrientationControl.ts +33 -33
- package/src/response/index.ts +45 -45
- package/src/string/formatNumber.ts +12 -12
- package/src/string/generatePassword.ts +18 -18
- package/src/string/generateUUID.ts +37 -37
- package/src/string/getTextBetweenCharByIndex.ts +20 -20
- package/src/string/indexesOf.ts +15 -15
- package/src/string/makeDaySlug.ts +40 -40
- package/src/string/random.ts +33 -33
- package/src/string/trimNull.ts +16 -16
package/README.md
CHANGED
|
@@ -1,162 +1,162 @@
|
|
|
1
|
-
# The library of utility plugins
|
|
2
|
-
|
|
3
|
-
## Exports
|
|
4
|
-
|
|
5
|
-
- "diginext-utils/dist": ES6 modules / NodeJS
|
|
6
|
-
- "diginext-utils/esm": Node modules / JavaScript modules
|
|
7
|
-
|
|
8
|
-
## Imports
|
|
9
|
-
|
|
10
|
-
### ES5 module import:
|
|
11
|
-
|
|
12
|
-
```javascript
|
|
13
|
-
import utils from "diginext-utils";
|
|
14
|
-
console.log(utils.xname.NameEN.generateName()); // output some random name in English
|
|
15
|
-
|
|
16
|
-
// or
|
|
17
|
-
|
|
18
|
-
import { NameEN } from "diginext-utils/dist/name";
|
|
19
|
-
console.log(NameEN.generateName()); // output some random name in English
|
|
20
|
-
|
|
21
|
-
// or just
|
|
22
|
-
import { generateName } from "diginext-utils/dist/name/en";
|
|
23
|
-
console.log(generateName()); // output some random name in English
|
|
24
|
-
|
|
25
|
-
// or with require(...)
|
|
26
|
-
const xurl = require("../dist/string/url");
|
|
27
|
-
xurl.isLink("abc"); // FALSE
|
|
28
|
-
xurl.isLink("https://www.google.com"); // TRUE
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
### Node module import:
|
|
32
|
-
|
|
33
|
-
**IMPORTANT**: Set "type" as "module" your `package.json`
|
|
34
|
-
|
|
35
|
-
```javascript
|
|
36
|
-
// NodeJS moduies
|
|
37
|
-
import utils from "diginext-utils";
|
|
38
|
-
console.log(utils.xname.NameEN.generateName()); // output some random name in English
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
```html
|
|
42
|
-
// browser
|
|
43
|
-
<script type="module">
|
|
44
|
-
import { NameEN } from "diginext-utils/esm/name/index.js"; // ".js" file extension is required !
|
|
45
|
-
console.log(NameEN.generateName()); // output some random name in English
|
|
46
|
-
</script>
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
## Features
|
|
50
|
-
|
|
51
|
-
- xconsole
|
|
52
|
-
- xarray
|
|
53
|
-
- sumArray
|
|
54
|
-
- averageArray
|
|
55
|
-
- minArray
|
|
56
|
-
- maxArray
|
|
57
|
-
- sortElementByString
|
|
58
|
-
- sortElementByNumber
|
|
59
|
-
- firstElement
|
|
60
|
-
- lastElement
|
|
61
|
-
- randomIndex
|
|
62
|
-
- randomElement
|
|
63
|
-
- mergeAndMakeUniqueElement
|
|
64
|
-
- allMatchInArray
|
|
65
|
-
- removeItem
|
|
66
|
-
- removeItemByKey
|
|
67
|
-
- getRandom
|
|
68
|
-
- getHalfRandom
|
|
69
|
-
- shuffle
|
|
70
|
-
- moveIndex
|
|
71
|
-
- moveArray
|
|
72
|
-
- xmath
|
|
73
|
-
- rand
|
|
74
|
-
- randRound
|
|
75
|
-
- randHalt
|
|
76
|
-
- randInt
|
|
77
|
-
- randFloat
|
|
78
|
-
- degToRad
|
|
79
|
-
- radToDeg
|
|
80
|
-
- angleBetweenPoints
|
|
81
|
-
- diffDate
|
|
82
|
-
- positiveNumber
|
|
83
|
-
- xname
|
|
84
|
-
- NameEN.generateName()
|
|
85
|
-
- NameVI.generateName()
|
|
86
|
-
- xobject
|
|
87
|
-
- isNull
|
|
88
|
-
- toBool
|
|
89
|
-
- toInt
|
|
90
|
-
- toFloat
|
|
91
|
-
- toArray
|
|
92
|
-
- objectToArray
|
|
93
|
-
- xjson
|
|
94
|
-
- isValid
|
|
95
|
-
- xfile
|
|
96
|
-
- createDir
|
|
97
|
-
- fileMove
|
|
98
|
-
- findFileByExt
|
|
99
|
-
- xstring
|
|
100
|
-
- getBetween
|
|
101
|
-
- makeString
|
|
102
|
-
- toUpperCase
|
|
103
|
-
- toLowerCase
|
|
104
|
-
- titleize
|
|
105
|
-
- capitalize
|
|
106
|
-
- capitalizeName
|
|
107
|
-
- clearUnicodeCharacters
|
|
108
|
-
- generateUUID
|
|
109
|
-
- randAllCharacterByLength
|
|
110
|
-
- randomStringByLength
|
|
111
|
-
- formatNumber
|
|
112
|
-
- generatePassword
|
|
113
|
-
- trimNull
|
|
114
|
-
- addQueryParam
|
|
115
|
-
- getUrlParams
|
|
116
|
-
- isLink
|
|
117
|
-
- getFileNameWithoutExtension
|
|
118
|
-
- getFileNameWithExtension
|
|
119
|
-
- getFileExtension
|
|
120
|
-
- isImage
|
|
121
|
-
- xurl
|
|
122
|
-
- addQueryParam
|
|
123
|
-
- getUrlParams
|
|
124
|
-
- isLink
|
|
125
|
-
- getFileNameWithoutExtension
|
|
126
|
-
- getFileNameWithExtension
|
|
127
|
-
- getFileExtension
|
|
128
|
-
- isImage
|
|
129
|
-
- slug
|
|
130
|
-
- makeSlug
|
|
131
|
-
- color
|
|
132
|
-
- random
|
|
133
|
-
- pSBC
|
|
134
|
-
- hexToRgb
|
|
135
|
-
- hexDarken
|
|
136
|
-
- hexLighten
|
|
137
|
-
- RGBToHex
|
|
138
|
-
- device
|
|
139
|
-
- camera
|
|
140
|
-
- requestCamera
|
|
141
|
-
- requestDeviceOrientationControl
|
|
142
|
-
- browser
|
|
143
|
-
- isPotrait
|
|
144
|
-
- isLandscape
|
|
145
|
-
- ua
|
|
146
|
-
- isFacebookWebview
|
|
147
|
-
- isInAppWebview
|
|
148
|
-
- Timer
|
|
149
|
-
- wait
|
|
150
|
-
- Validation
|
|
151
|
-
- imageValidate
|
|
152
|
-
- videoValidate
|
|
153
|
-
|
|
154
|
-
## Dev
|
|
155
|
-
|
|
156
|
-
```
|
|
157
|
-
yarn dev
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
## Support
|
|
161
|
-
|
|
162
|
-
Liên hệ [TOP GROUP Developers](mailto:dev@wearetopgroup.com) nếu cần hỗ trợ.
|
|
1
|
+
# The library of utility plugins
|
|
2
|
+
|
|
3
|
+
## Exports
|
|
4
|
+
|
|
5
|
+
- "diginext-utils/dist": ES6 modules / NodeJS
|
|
6
|
+
- "diginext-utils/esm": Node modules / JavaScript modules
|
|
7
|
+
|
|
8
|
+
## Imports
|
|
9
|
+
|
|
10
|
+
### ES5 module import:
|
|
11
|
+
|
|
12
|
+
```javascript
|
|
13
|
+
import utils from "diginext-utils";
|
|
14
|
+
console.log(utils.xname.NameEN.generateName()); // output some random name in English
|
|
15
|
+
|
|
16
|
+
// or
|
|
17
|
+
|
|
18
|
+
import { NameEN } from "diginext-utils/dist/name";
|
|
19
|
+
console.log(NameEN.generateName()); // output some random name in English
|
|
20
|
+
|
|
21
|
+
// or just
|
|
22
|
+
import { generateName } from "diginext-utils/dist/name/en";
|
|
23
|
+
console.log(generateName()); // output some random name in English
|
|
24
|
+
|
|
25
|
+
// or with require(...)
|
|
26
|
+
const xurl = require("../dist/string/url");
|
|
27
|
+
xurl.isLink("abc"); // FALSE
|
|
28
|
+
xurl.isLink("https://www.google.com"); // TRUE
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Node module import:
|
|
32
|
+
|
|
33
|
+
**IMPORTANT**: Set "type" as "module" your `package.json`
|
|
34
|
+
|
|
35
|
+
```javascript
|
|
36
|
+
// NodeJS moduies
|
|
37
|
+
import utils from "diginext-utils";
|
|
38
|
+
console.log(utils.xname.NameEN.generateName()); // output some random name in English
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
```html
|
|
42
|
+
// browser
|
|
43
|
+
<script type="module">
|
|
44
|
+
import { NameEN } from "diginext-utils/esm/name/index.js"; // ".js" file extension is required !
|
|
45
|
+
console.log(NameEN.generateName()); // output some random name in English
|
|
46
|
+
</script>
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Features
|
|
50
|
+
|
|
51
|
+
- xconsole
|
|
52
|
+
- xarray
|
|
53
|
+
- sumArray
|
|
54
|
+
- averageArray
|
|
55
|
+
- minArray
|
|
56
|
+
- maxArray
|
|
57
|
+
- sortElementByString
|
|
58
|
+
- sortElementByNumber
|
|
59
|
+
- firstElement
|
|
60
|
+
- lastElement
|
|
61
|
+
- randomIndex
|
|
62
|
+
- randomElement
|
|
63
|
+
- mergeAndMakeUniqueElement
|
|
64
|
+
- allMatchInArray
|
|
65
|
+
- removeItem
|
|
66
|
+
- removeItemByKey
|
|
67
|
+
- getRandom
|
|
68
|
+
- getHalfRandom
|
|
69
|
+
- shuffle
|
|
70
|
+
- moveIndex
|
|
71
|
+
- moveArray
|
|
72
|
+
- xmath
|
|
73
|
+
- rand
|
|
74
|
+
- randRound
|
|
75
|
+
- randHalt
|
|
76
|
+
- randInt
|
|
77
|
+
- randFloat
|
|
78
|
+
- degToRad
|
|
79
|
+
- radToDeg
|
|
80
|
+
- angleBetweenPoints
|
|
81
|
+
- diffDate
|
|
82
|
+
- positiveNumber
|
|
83
|
+
- xname
|
|
84
|
+
- NameEN.generateName()
|
|
85
|
+
- NameVI.generateName()
|
|
86
|
+
- xobject
|
|
87
|
+
- isNull
|
|
88
|
+
- toBool
|
|
89
|
+
- toInt
|
|
90
|
+
- toFloat
|
|
91
|
+
- toArray
|
|
92
|
+
- objectToArray
|
|
93
|
+
- xjson
|
|
94
|
+
- isValid
|
|
95
|
+
- xfile
|
|
96
|
+
- createDir
|
|
97
|
+
- fileMove
|
|
98
|
+
- findFileByExt
|
|
99
|
+
- xstring
|
|
100
|
+
- getBetween
|
|
101
|
+
- makeString
|
|
102
|
+
- toUpperCase
|
|
103
|
+
- toLowerCase
|
|
104
|
+
- titleize
|
|
105
|
+
- capitalize
|
|
106
|
+
- capitalizeName
|
|
107
|
+
- clearUnicodeCharacters
|
|
108
|
+
- generateUUID
|
|
109
|
+
- randAllCharacterByLength
|
|
110
|
+
- randomStringByLength
|
|
111
|
+
- formatNumber
|
|
112
|
+
- generatePassword
|
|
113
|
+
- trimNull
|
|
114
|
+
- addQueryParam
|
|
115
|
+
- getUrlParams
|
|
116
|
+
- isLink
|
|
117
|
+
- getFileNameWithoutExtension
|
|
118
|
+
- getFileNameWithExtension
|
|
119
|
+
- getFileExtension
|
|
120
|
+
- isImage
|
|
121
|
+
- xurl
|
|
122
|
+
- addQueryParam
|
|
123
|
+
- getUrlParams
|
|
124
|
+
- isLink
|
|
125
|
+
- getFileNameWithoutExtension
|
|
126
|
+
- getFileNameWithExtension
|
|
127
|
+
- getFileExtension
|
|
128
|
+
- isImage
|
|
129
|
+
- slug
|
|
130
|
+
- makeSlug
|
|
131
|
+
- color
|
|
132
|
+
- random
|
|
133
|
+
- pSBC
|
|
134
|
+
- hexToRgb
|
|
135
|
+
- hexDarken
|
|
136
|
+
- hexLighten
|
|
137
|
+
- RGBToHex
|
|
138
|
+
- device
|
|
139
|
+
- camera
|
|
140
|
+
- requestCamera
|
|
141
|
+
- requestDeviceOrientationControl
|
|
142
|
+
- browser
|
|
143
|
+
- isPotrait
|
|
144
|
+
- isLandscape
|
|
145
|
+
- ua
|
|
146
|
+
- isFacebookWebview
|
|
147
|
+
- isInAppWebview
|
|
148
|
+
- Timer
|
|
149
|
+
- wait
|
|
150
|
+
- Validation
|
|
151
|
+
- imageValidate
|
|
152
|
+
- videoValidate
|
|
153
|
+
|
|
154
|
+
## Dev
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
yarn dev
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## Support
|
|
161
|
+
|
|
162
|
+
Liên hệ [TOP GROUP Developers](mailto:dev@wearetopgroup.com) nếu cần hỗ trợ.
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const indexesOf_1 = __importDefault(require("
|
|
6
|
+
const indexesOf_1 = __importDefault(require("./indexesOf"));
|
|
7
7
|
function getTextBetweenCharByIndex(str, char, index) {
|
|
8
8
|
const arr = (0, indexesOf_1.default)(str, char);
|
|
9
9
|
let start = 0, end = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTextBetweenCharByIndex.js","sourceRoot":"","sources":["../../src/string/getTextBetweenCharByIndex.ts"],"names":[],"mappings":";;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"getTextBetweenCharByIndex.js","sourceRoot":"","sources":["../../src/string/getTextBetweenCharByIndex.ts"],"names":[],"mappings":";;;;;AAAA,4DAAoC;AAEpC,SAAwB,yBAAyB,CAAC,GAAW,EAAE,IAAS,EAAE,KAAa;IACtF,MAAM,GAAG,GAAG,IAAA,mBAAS,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAEjC,IAAI,KAAK,GAAG,CAAC,EACZ,GAAG,GAAG,CAAC,CAAC;IAET,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QAEtB,IAAI,KAAK,GAAG,MAAM,EAAE;YACnB,KAAK,GAAG,MAAM,CAAC;YACf,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SACjB;KACD;IAED,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7C,OAAO,MAAM,CAAC;AACf,CAAC;AAjBD,4CAiBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTextBetweenCharByIndex.js","sourceRoot":"","sources":["../../src/string/getTextBetweenCharByIndex.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,
|
|
1
|
+
{"version":3,"file":"getTextBetweenCharByIndex.js","sourceRoot":"","sources":["../../src/string/getTextBetweenCharByIndex.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAAC,GAAW,EAAE,IAAS,EAAE,KAAa;IACtF,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAEjC,IAAI,KAAK,GAAG,CAAC,EACZ,GAAG,GAAG,CAAC,CAAC;IAET,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QAEtB,IAAI,KAAK,GAAG,MAAM,EAAE;YACnB,KAAK,GAAG,MAAM,CAAC;YACf,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SACjB;KACD;IAED,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7C,OAAO,MAAM,CAAC;AACf,CAAC"}
|
package/package.json
CHANGED
package/src/Checker.ts
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Check if the object or string is in JSON format
|
|
3
|
-
*/
|
|
4
|
-
export const isJSON = (content: object | string) => {
|
|
5
|
-
if (typeof content == "object") {
|
|
6
|
-
try {
|
|
7
|
-
content = JSON.stringify(content);
|
|
8
|
-
} catch (err) {
|
|
9
|
-
return false;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
if (typeof content == "string") {
|
|
14
|
-
try {
|
|
15
|
-
content = JSON.parse(content);
|
|
16
|
-
} catch (err) {
|
|
17
|
-
return false;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
if (typeof content != "object") {
|
|
22
|
-
return false;
|
|
23
|
-
}
|
|
24
|
-
return true;
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
const Checker = { isJSON };
|
|
28
|
-
|
|
29
|
-
export default Checker;
|
|
1
|
+
/**
|
|
2
|
+
* Check if the object or string is in JSON format
|
|
3
|
+
*/
|
|
4
|
+
export const isJSON = (content: object | string) => {
|
|
5
|
+
if (typeof content == "object") {
|
|
6
|
+
try {
|
|
7
|
+
content = JSON.stringify(content);
|
|
8
|
+
} catch (err) {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
if (typeof content == "string") {
|
|
14
|
+
try {
|
|
15
|
+
content = JSON.parse(content);
|
|
16
|
+
} catch (err) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
if (typeof content != "object") {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
return true;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
const Checker = { isJSON };
|
|
28
|
+
|
|
29
|
+
export default Checker;
|
package/src/EventDispatcher.ts
CHANGED
|
@@ -1,62 +1,62 @@
|
|
|
1
|
-
class EventDispatcher {
|
|
2
|
-
constructor() {}
|
|
3
|
-
|
|
4
|
-
_listeners: any;
|
|
5
|
-
|
|
6
|
-
addEventListener(type: string, listener: any) {
|
|
7
|
-
if (this._listeners === undefined) this._listeners = {};
|
|
8
|
-
|
|
9
|
-
const listeners = this._listeners;
|
|
10
|
-
|
|
11
|
-
if (listeners[type] === undefined) {
|
|
12
|
-
listeners[type] = [];
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
if (listeners[type].indexOf(listener) === -1) {
|
|
16
|
-
listeners[type].push(listener);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
hasEventListener(type: string, listener: any) {
|
|
21
|
-
if (this._listeners === undefined) return false;
|
|
22
|
-
|
|
23
|
-
const listeners = this._listeners;
|
|
24
|
-
|
|
25
|
-
return listeners[type] !== undefined && listeners[type].indexOf(listener) !== -1;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
removeEventListener(type: string, listener: any) {
|
|
29
|
-
if (this._listeners === undefined) return;
|
|
30
|
-
|
|
31
|
-
const listeners = this._listeners;
|
|
32
|
-
const listenerArray = listeners[type];
|
|
33
|
-
|
|
34
|
-
if (listenerArray !== undefined) {
|
|
35
|
-
const index = listenerArray.indexOf(listener);
|
|
36
|
-
|
|
37
|
-
if (index !== -1) {
|
|
38
|
-
listenerArray.splice(index, 1);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
dispatchEvent(event: { type: string; target: any }) {
|
|
44
|
-
if (this._listeners === undefined) return;
|
|
45
|
-
|
|
46
|
-
const listeners = this._listeners;
|
|
47
|
-
const listenerArray = listeners[event.type];
|
|
48
|
-
|
|
49
|
-
if (listenerArray !== undefined) {
|
|
50
|
-
event.target = this;
|
|
51
|
-
|
|
52
|
-
// Make a copy, in case listeners are removed while iterating.
|
|
53
|
-
const array = listenerArray.slice(0);
|
|
54
|
-
|
|
55
|
-
for (let i = 0, l = array.length; i < l; i++) {
|
|
56
|
-
array[i].call(this, event);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
export { EventDispatcher };
|
|
62
|
-
export default EventDispatcher;
|
|
1
|
+
class EventDispatcher {
|
|
2
|
+
constructor() {}
|
|
3
|
+
|
|
4
|
+
_listeners: any;
|
|
5
|
+
|
|
6
|
+
addEventListener(type: string, listener: any) {
|
|
7
|
+
if (this._listeners === undefined) this._listeners = {};
|
|
8
|
+
|
|
9
|
+
const listeners = this._listeners;
|
|
10
|
+
|
|
11
|
+
if (listeners[type] === undefined) {
|
|
12
|
+
listeners[type] = [];
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
if (listeners[type].indexOf(listener) === -1) {
|
|
16
|
+
listeners[type].push(listener);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
hasEventListener(type: string, listener: any) {
|
|
21
|
+
if (this._listeners === undefined) return false;
|
|
22
|
+
|
|
23
|
+
const listeners = this._listeners;
|
|
24
|
+
|
|
25
|
+
return listeners[type] !== undefined && listeners[type].indexOf(listener) !== -1;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
removeEventListener(type: string, listener: any) {
|
|
29
|
+
if (this._listeners === undefined) return;
|
|
30
|
+
|
|
31
|
+
const listeners = this._listeners;
|
|
32
|
+
const listenerArray = listeners[type];
|
|
33
|
+
|
|
34
|
+
if (listenerArray !== undefined) {
|
|
35
|
+
const index = listenerArray.indexOf(listener);
|
|
36
|
+
|
|
37
|
+
if (index !== -1) {
|
|
38
|
+
listenerArray.splice(index, 1);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
dispatchEvent(event: { type: string; target: any }) {
|
|
44
|
+
if (this._listeners === undefined) return;
|
|
45
|
+
|
|
46
|
+
const listeners = this._listeners;
|
|
47
|
+
const listenerArray = listeners[event.type];
|
|
48
|
+
|
|
49
|
+
if (listenerArray !== undefined) {
|
|
50
|
+
event.target = this;
|
|
51
|
+
|
|
52
|
+
// Make a copy, in case listeners are removed while iterating.
|
|
53
|
+
const array = listenerArray.slice(0);
|
|
54
|
+
|
|
55
|
+
for (let i = 0, l = array.length; i < l; i++) {
|
|
56
|
+
array[i].call(this, event);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
export { EventDispatcher };
|
|
62
|
+
export default EventDispatcher;
|
package/src/FileUpload.ts
CHANGED
|
@@ -1,66 +1,66 @@
|
|
|
1
|
-
var logFile = "[FileUpload.js] ";
|
|
2
|
-
|
|
3
|
-
type UploadParams = { blob: Blob; url: string; params: any; onComplete: any; onError: any };
|
|
4
|
-
|
|
5
|
-
const FileUpload = {
|
|
6
|
-
uploadBlob(props: UploadParams) {
|
|
7
|
-
const { blob, url, params, onComplete, onError } = props;
|
|
8
|
-
|
|
9
|
-
var formData = new FormData();
|
|
10
|
-
formData.append("upload", blob, "img_" + +new Date() + ".jpg");
|
|
11
|
-
|
|
12
|
-
if (params) {
|
|
13
|
-
Object.keys(params).forEach((key) => {
|
|
14
|
-
var val = params[key];
|
|
15
|
-
formData.append(key, val);
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
var request = new XMLHttpRequest();
|
|
20
|
-
request.open("POST", url);
|
|
21
|
-
request.send(formData);
|
|
22
|
-
|
|
23
|
-
request.onreadystatechange = function () {
|
|
24
|
-
if (this.readyState == 4) {
|
|
25
|
-
// Typical action to be performed when the document is ready:
|
|
26
|
-
if (this.status == 200) {
|
|
27
|
-
// var response = JSON.parse(request.response) || "";
|
|
28
|
-
var response: { status?: boolean; data?: any } = {};
|
|
29
|
-
try {
|
|
30
|
-
response = JSON.parse(request.response) || "";
|
|
31
|
-
} catch (error) {
|
|
32
|
-
console.error(logFile, "Can't part JSON of the response");
|
|
33
|
-
}
|
|
34
|
-
var statusOfSafety = response.status || 0;
|
|
35
|
-
|
|
36
|
-
if (statusOfSafety == 1) {
|
|
37
|
-
console.log(logFile, "request: ", request);
|
|
38
|
-
var data = response.data || {};
|
|
39
|
-
console.log(logFile, data);
|
|
40
|
-
|
|
41
|
-
var _url = data["url"];
|
|
42
|
-
|
|
43
|
-
if (onComplete) onComplete(_url);
|
|
44
|
-
} else {
|
|
45
|
-
var errMsg = "Ảnh có nội dung không phù hợp.";
|
|
46
|
-
console.error(logFile, errMsg);
|
|
47
|
-
if (onError) onError(errMsg);
|
|
48
|
-
}
|
|
49
|
-
} else {
|
|
50
|
-
var errMsg = "Upload ảnh không thành công!";
|
|
51
|
-
console.error(logFile, errMsg);
|
|
52
|
-
if (onError) onError(errMsg);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
request.onerror = function (res) {
|
|
58
|
-
var errMsg = "Upload ảnh không thành công!";
|
|
59
|
-
console.error(logFile, errMsg, "=>", res);
|
|
60
|
-
if (onError) onError(errMsg);
|
|
61
|
-
};
|
|
62
|
-
},
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
export { FileUpload };
|
|
66
|
-
export default FileUpload;
|
|
1
|
+
var logFile = "[FileUpload.js] ";
|
|
2
|
+
|
|
3
|
+
type UploadParams = { blob: Blob; url: string; params: any; onComplete: any; onError: any };
|
|
4
|
+
|
|
5
|
+
const FileUpload = {
|
|
6
|
+
uploadBlob(props: UploadParams) {
|
|
7
|
+
const { blob, url, params, onComplete, onError } = props;
|
|
8
|
+
|
|
9
|
+
var formData = new FormData();
|
|
10
|
+
formData.append("upload", blob, "img_" + +new Date() + ".jpg");
|
|
11
|
+
|
|
12
|
+
if (params) {
|
|
13
|
+
Object.keys(params).forEach((key) => {
|
|
14
|
+
var val = params[key];
|
|
15
|
+
formData.append(key, val);
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
var request = new XMLHttpRequest();
|
|
20
|
+
request.open("POST", url);
|
|
21
|
+
request.send(formData);
|
|
22
|
+
|
|
23
|
+
request.onreadystatechange = function () {
|
|
24
|
+
if (this.readyState == 4) {
|
|
25
|
+
// Typical action to be performed when the document is ready:
|
|
26
|
+
if (this.status == 200) {
|
|
27
|
+
// var response = JSON.parse(request.response) || "";
|
|
28
|
+
var response: { status?: boolean; data?: any } = {};
|
|
29
|
+
try {
|
|
30
|
+
response = JSON.parse(request.response) || "";
|
|
31
|
+
} catch (error) {
|
|
32
|
+
console.error(logFile, "Can't part JSON of the response");
|
|
33
|
+
}
|
|
34
|
+
var statusOfSafety = response.status || 0;
|
|
35
|
+
|
|
36
|
+
if (statusOfSafety == 1) {
|
|
37
|
+
console.log(logFile, "request: ", request);
|
|
38
|
+
var data = response.data || {};
|
|
39
|
+
console.log(logFile, data);
|
|
40
|
+
|
|
41
|
+
var _url = data["url"];
|
|
42
|
+
|
|
43
|
+
if (onComplete) onComplete(_url);
|
|
44
|
+
} else {
|
|
45
|
+
var errMsg = "Ảnh có nội dung không phù hợp.";
|
|
46
|
+
console.error(logFile, errMsg);
|
|
47
|
+
if (onError) onError(errMsg);
|
|
48
|
+
}
|
|
49
|
+
} else {
|
|
50
|
+
var errMsg = "Upload ảnh không thành công!";
|
|
51
|
+
console.error(logFile, errMsg);
|
|
52
|
+
if (onError) onError(errMsg);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
request.onerror = function (res) {
|
|
58
|
+
var errMsg = "Upload ảnh không thành công!";
|
|
59
|
+
console.error(logFile, errMsg, "=>", res);
|
|
60
|
+
if (onError) onError(errMsg);
|
|
61
|
+
};
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
export { FileUpload };
|
|
66
|
+
export default FileUpload;
|