@bitfiber/utils 1.0.0
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/CODE_OF_CONDUCT.md +127 -0
- package/CONTRIBUTING.md +87 -0
- package/LICENSE.txt +201 -0
- package/README.md +2516 -0
- package/arr/at/at.d.ts +7 -0
- package/arr/at/at.js +11 -0
- package/arr/at/at.js.map +1 -0
- package/arr/cnd/cnd.d.ts +55 -0
- package/arr/cnd/cnd.js +136 -0
- package/arr/cnd/cnd.js.map +1 -0
- package/arr/diff-arr/diff-arr.d.ts +10 -0
- package/arr/diff-arr/diff-arr.js +37 -0
- package/arr/diff-arr/diff-arr.js.map +1 -0
- package/arr/fill/fill.d.ts +8 -0
- package/arr/fill/fill.js +11 -0
- package/arr/fill/fill.js.map +1 -0
- package/arr/for-each-arr/for-each-arr.d.ts +9 -0
- package/arr/for-each-arr/for-each-arr.js +25 -0
- package/arr/for-each-arr/for-each-arr.js.map +1 -0
- package/arr/index-by/index-by.d.ts +9 -0
- package/arr/index-by/index-by.js +19 -0
- package/arr/index-by/index-by.js.map +1 -0
- package/arr/index.d.ts +9 -0
- package/arr/index.js +10 -0
- package/arr/index.js.map +1 -0
- package/arr/pluck/pluck.d.ts +7 -0
- package/arr/pluck/pluck.js +13 -0
- package/arr/pluck/pluck.js.map +1 -0
- package/arr/types.d.ts +84 -0
- package/arr/types.js +2 -0
- package/arr/types.js.map +1 -0
- package/arr/within/within.d.ts +9 -0
- package/arr/within/within.js +14 -0
- package/arr/within/within.js.map +1 -0
- package/common/copy/copy.d.ts +6 -0
- package/common/copy/copy.js +86 -0
- package/common/copy/copy.js.map +1 -0
- package/common/equals/equals.d.ts +12 -0
- package/common/equals/equals.js +127 -0
- package/common/equals/equals.js.map +1 -0
- package/common/error.d.ts +19 -0
- package/common/error.js +16 -0
- package/common/error.js.map +1 -0
- package/common/for-each/for-each.d.ts +9 -0
- package/common/for-each/for-each.js +40 -0
- package/common/for-each/for-each.js.map +1 -0
- package/common/get-unique-num-id/get-unique-num-id.d.ts +4 -0
- package/common/get-unique-num-id/get-unique-num-id.js +8 -0
- package/common/get-unique-num-id/get-unique-num-id.js.map +1 -0
- package/common/get-unique-str-id/get-unique-str-id.d.ts +4 -0
- package/common/get-unique-str-id/get-unique-str-id.js +16 -0
- package/common/get-unique-str-id/get-unique-str-id.js.map +1 -0
- package/common/has-iterator/has-iterator.d.ts +5 -0
- package/common/has-iterator/has-iterator.js +8 -0
- package/common/has-iterator/has-iterator.js.map +1 -0
- package/common/index.d.ts +16 -0
- package/common/index.js +17 -0
- package/common/index.js.map +1 -0
- package/common/is/is.d.ts +136 -0
- package/common/is/is.js +214 -0
- package/common/is/is.js.map +1 -0
- package/common/is-empty/is-empty.d.ts +6 -0
- package/common/is-empty/is-empty.js +30 -0
- package/common/is-empty/is-empty.js.map +1 -0
- package/common/random/random.d.ts +5 -0
- package/common/random/random.js +9 -0
- package/common/random/random.js.map +1 -0
- package/common/same/same.d.ts +6 -0
- package/common/same/same.js +9 -0
- package/common/same/same.js.map +1 -0
- package/common/stub/stub.d.ts +4 -0
- package/common/stub/stub.js +8 -0
- package/common/stub/stub.js.map +1 -0
- package/common/to-float/to-float.d.ts +6 -0
- package/common/to-float/to-float.js +10 -0
- package/common/to-float/to-float.js.map +1 -0
- package/common/to-int/to-int.d.ts +6 -0
- package/common/to-int/to-int.js +10 -0
- package/common/to-int/to-int.js.map +1 -0
- package/common/to-sorted-string/to-sorted-string.d.ts +7 -0
- package/common/to-sorted-string/to-sorted-string.js +53 -0
- package/common/to-sorted-string/to-sorted-string.js.map +1 -0
- package/common/types.d.ts +63 -0
- package/common/types.js +5 -0
- package/common/types.js.map +1 -0
- package/dom/closest/closest.d.ts +6 -0
- package/dom/closest/closest.js +26 -0
- package/dom/closest/closest.js.map +1 -0
- package/dom/document/document.d.ts +12 -0
- package/dom/document/document.js +24 -0
- package/dom/document/document.js.map +1 -0
- package/dom/download-file/download-file.d.ts +6 -0
- package/dom/download-file/download-file.js +32 -0
- package/dom/download-file/download-file.js.map +1 -0
- package/dom/for-each-elements/for-each-elements.d.ts +8 -0
- package/dom/for-each-elements/for-each-elements.js +16 -0
- package/dom/for-each-elements/for-each-elements.js.map +1 -0
- package/dom/for-each-nodes/for-each-nodes.d.ts +7 -0
- package/dom/for-each-nodes/for-each-nodes.js +15 -0
- package/dom/for-each-nodes/for-each-nodes.js.map +1 -0
- package/dom/get-all-styles/get-all-styles.d.ts +5 -0
- package/dom/get-all-styles/get-all-styles.js +10 -0
- package/dom/get-all-styles/get-all-styles.js.map +1 -0
- package/dom/get-body/get-body.d.ts +4 -0
- package/dom/get-body/get-body.js +9 -0
- package/dom/get-body/get-body.js.map +1 -0
- package/dom/get-html/get-html.d.ts +4 -0
- package/dom/get-html/get-html.js +9 -0
- package/dom/get-html/get-html.js.map +1 -0
- package/dom/get-non-static-parent/get-non-static-parent.d.ts +5 -0
- package/dom/get-non-static-parent/get-non-static-parent.js +9 -0
- package/dom/get-non-static-parent/get-non-static-parent.js.map +1 -0
- package/dom/get-offset-from-doc/get-offset-from-doc.d.ts +6 -0
- package/dom/get-offset-from-doc/get-offset-from-doc.js +18 -0
- package/dom/get-offset-from-doc/get-offset-from-doc.js.map +1 -0
- package/dom/get-offset-from-parent/get-offset-from-parent.d.ts +7 -0
- package/dom/get-offset-from-parent/get-offset-from-parent.js +45 -0
- package/dom/get-offset-from-parent/get-offset-from-parent.js.map +1 -0
- package/dom/get-offset-from-win/get-offset-from-win.d.ts +6 -0
- package/dom/get-offset-from-win/get-offset-from-win.js +8 -0
- package/dom/get-offset-from-win/get-offset-from-win.js.map +1 -0
- package/dom/get-scroll-width/get-scroll-width.d.ts +8 -0
- package/dom/get-scroll-width/get-scroll-width.js +28 -0
- package/dom/get-scroll-width/get-scroll-width.js.map +1 -0
- package/dom/get-style/get-style.d.ts +6 -0
- package/dom/get-style/get-style.js +23 -0
- package/dom/get-style/get-style.js.map +1 -0
- package/dom/get-styles/get-styles.d.ts +9 -0
- package/dom/get-styles/get-styles.js +12 -0
- package/dom/get-styles/get-styles.js.map +1 -0
- package/dom/get-valid-style-name/get-valid-style-name.d.ts +6 -0
- package/dom/get-valid-style-name/get-valid-style-name.js +41 -0
- package/dom/get-valid-style-name/get-valid-style-name.js.map +1 -0
- package/dom/get-window/get-window.d.ts +4 -0
- package/dom/get-window/get-window.js +17 -0
- package/dom/get-window/get-window.js.map +1 -0
- package/dom/has-name/has-name.d.ts +6 -0
- package/dom/has-name/has-name.js +9 -0
- package/dom/has-name/has-name.js.map +1 -0
- package/dom/index.d.ts +25 -0
- package/dom/index.js +26 -0
- package/dom/index.js.map +1 -0
- package/dom/is-comment/is-comment.d.ts +5 -0
- package/dom/is-comment/is-comment.js +8 -0
- package/dom/is-comment/is-comment.js.map +1 -0
- package/dom/is-element/is-element.d.ts +5 -0
- package/dom/is-element/is-element.js +8 -0
- package/dom/is-element/is-element.js.map +1 -0
- package/dom/is-text/is-text.d.ts +5 -0
- package/dom/is-text/is-text.js +8 -0
- package/dom/is-text/is-text.js.map +1 -0
- package/dom/set-offset-from-parent/set-offset-from-parent.d.ts +8 -0
- package/dom/set-offset-from-parent/set-offset-from-parent.js +42 -0
- package/dom/set-offset-from-parent/set-offset-from-parent.js.map +1 -0
- package/dom/set-style/set-style.d.ts +8 -0
- package/dom/set-style/set-style.js +14 -0
- package/dom/set-style/set-style.js.map +1 -0
- package/dom/set-styles/set-styles.d.ts +8 -0
- package/dom/set-styles/set-styles.js +16 -0
- package/dom/set-styles/set-styles.js.map +1 -0
- package/dom/types.d.ts +19 -0
- package/dom/types.js +2 -0
- package/dom/types.js.map +1 -0
- package/env/get-browser/get-browser.d.ts +10 -0
- package/env/get-browser/get-browser.js +33 -0
- package/env/get-browser/get-browser.js.map +1 -0
- package/env/get-engine/get-engine.d.ts +7 -0
- package/env/get-engine/get-engine.js +22 -0
- package/env/get-engine/get-engine.js.map +1 -0
- package/env/get-os/get-os.d.ts +8 -0
- package/env/get-os/get-os.js +26 -0
- package/env/get-os/get-os.js.map +1 -0
- package/env/get-platform/get-platform.d.ts +7 -0
- package/env/get-platform/get-platform.js +30 -0
- package/env/get-platform/get-platform.js.map +1 -0
- package/env/index.d.ts +21 -0
- package/env/index.js +22 -0
- package/env/index.js.map +1 -0
- package/env/is-browser/is-browser.d.ts +11 -0
- package/env/is-browser/is-browser.js +15 -0
- package/env/is-browser/is-browser.js.map +1 -0
- package/env/is-chrome-like/is-chrome-like.d.ts +4 -0
- package/env/is-chrome-like/is-chrome-like.js +9 -0
- package/env/is-chrome-like/is-chrome-like.js.map +1 -0
- package/env/is-desktop/is-desktop.d.ts +4 -0
- package/env/is-desktop/is-desktop.js +9 -0
- package/env/is-desktop/is-desktop.js.map +1 -0
- package/env/is-engine/is-engine.d.ts +8 -0
- package/env/is-engine/is-engine.js +12 -0
- package/env/is-engine/is-engine.js.map +1 -0
- package/env/is-firefox-like/is-firefox-like.d.ts +4 -0
- package/env/is-firefox-like/is-firefox-like.js +9 -0
- package/env/is-firefox-like/is-firefox-like.js.map +1 -0
- package/env/is-mobile/is-mobile.d.ts +4 -0
- package/env/is-mobile/is-mobile.js +9 -0
- package/env/is-mobile/is-mobile.js.map +1 -0
- package/env/is-os/is-os.d.ts +9 -0
- package/env/is-os/is-os.js +13 -0
- package/env/is-os/is-os.js.map +1 -0
- package/env/is-portable/is-portable.d.ts +4 -0
- package/env/is-portable/is-portable.js +8 -0
- package/env/is-portable/is-portable.js.map +1 -0
- package/env/is-safari-like/is-safari-like.d.ts +4 -0
- package/env/is-safari-like/is-safari-like.js +9 -0
- package/env/is-safari-like/is-safari-like.js.map +1 -0
- package/env/is-stationary/is-stationary.d.ts +4 -0
- package/env/is-stationary/is-stationary.js +8 -0
- package/env/is-stationary/is-stationary.js.map +1 -0
- package/env/is-tablet/is-tablet.d.ts +4 -0
- package/env/is-tablet/is-tablet.js +9 -0
- package/env/is-tablet/is-tablet.js.map +1 -0
- package/env/is-tv/is-tv.d.ts +4 -0
- package/env/is-tv/is-tv.js +9 -0
- package/env/is-tv/is-tv.js.map +1 -0
- package/env/matches/matches.d.ts +34 -0
- package/env/matches/matches.js +52 -0
- package/env/matches/matches.js.map +1 -0
- package/env/matches-with-browsers/matches-with-browsers.d.ts +23 -0
- package/env/matches-with-browsers/matches-with-browsers.js +53 -0
- package/env/matches-with-browsers/matches-with-browsers.js.map +1 -0
- package/env/matches-with-version/matches-with-version.d.ts +6 -0
- package/env/matches-with-version/matches-with-version.js +41 -0
- package/env/matches-with-version/matches-with-version.js.map +1 -0
- package/env/private/private.d.ts +4 -0
- package/env/private/private.js +67 -0
- package/env/private/private.js.map +1 -0
- package/env/types.d.ts +106 -0
- package/env/types.js +2 -0
- package/env/types.js.map +1 -0
- package/env/user-agent/user-agent.d.ts +9 -0
- package/env/user-agent/user-agent.js +24 -0
- package/env/user-agent/user-agent.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.js +2 -0
- package/index.js.map +1 -0
- package/num/in-range/in-range.d.ts +8 -0
- package/num/in-range/in-range.js +23 -0
- package/num/in-range/in-range.js.map +1 -0
- package/num/index.d.ts +3 -0
- package/num/index.js +4 -0
- package/num/index.js.map +1 -0
- package/num/round/round.d.ts +7 -0
- package/num/round/round.js +11 -0
- package/num/round/round.js.map +1 -0
- package/num/types.d.ts +24 -0
- package/num/types.js +2 -0
- package/num/types.js.map +1 -0
- package/obj/constant/constant.d.ts +6 -0
- package/obj/constant/constant.js +8 -0
- package/obj/constant/constant.js.map +1 -0
- package/obj/deep-constant/deep-constant.d.ts +6 -0
- package/obj/deep-constant/deep-constant.js +18 -0
- package/obj/deep-constant/deep-constant.js.map +1 -0
- package/obj/diff-obj/diff-obj.d.ts +9 -0
- package/obj/diff-obj/diff-obj.js +48 -0
- package/obj/diff-obj/diff-obj.js.map +1 -0
- package/obj/exclude/exclude.d.ts +7 -0
- package/obj/exclude/exclude.js +18 -0
- package/obj/exclude/exclude.js.map +1 -0
- package/obj/extend/extend.d.ts +16 -0
- package/obj/extend/extend.js +49 -0
- package/obj/extend/extend.js.map +1 -0
- package/obj/for-each-obj/for-each-obj.d.ts +8 -0
- package/obj/for-each-obj/for-each-obj.js +16 -0
- package/obj/for-each-obj/for-each-obj.js.map +1 -0
- package/obj/has-own/has-own.d.ts +8 -0
- package/obj/has-own/has-own.js +11 -0
- package/obj/has-own/has-own.js.map +1 -0
- package/obj/include/include.d.ts +7 -0
- package/obj/include/include.js +17 -0
- package/obj/include/include.js.map +1 -0
- package/obj/index.d.ts +13 -0
- package/obj/index.js +14 -0
- package/obj/index.js.map +1 -0
- package/obj/keys/keys.d.ts +6 -0
- package/obj/keys/keys.js +8 -0
- package/obj/keys/keys.js.map +1 -0
- package/obj/map-obj/map-obj.d.ts +7 -0
- package/obj/map-obj/map-obj.js +12 -0
- package/obj/map-obj/map-obj.js.map +1 -0
- package/obj/map-obj-to-arr/map-obj-to-arr.d.ts +7 -0
- package/obj/map-obj-to-arr/map-obj-to-arr.js +12 -0
- package/obj/map-obj-to-arr/map-obj-to-arr.js.map +1 -0
- package/obj/types.d.ts +30 -0
- package/obj/types.js +2 -0
- package/obj/types.js.map +1 -0
- package/obj/values/values.d.ts +6 -0
- package/obj/values/values.js +11 -0
- package/obj/values/values.js.map +1 -0
- package/package.json +73 -0
- package/str/index.d.ts +3 -0
- package/str/index.js +4 -0
- package/str/index.js.map +1 -0
- package/str/to-camel-case/to-camel-case.d.ts +10 -0
- package/str/to-camel-case/to-camel-case.js +18 -0
- package/str/to-camel-case/to-camel-case.js.map +1 -0
- package/str/to-hash/to-hash.d.ts +7 -0
- package/str/to-hash/to-hash.js +21 -0
- package/str/to-hash/to-hash.js.map +1 -0
- package/str/with-capital/with-capital.d.ts +6 -0
- package/str/with-capital/with-capital.js +9 -0
- package/str/with-capital/with-capital.js.map +1 -0
package/common/is/is.js
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Why is typeof or constructor used to check type?
|
|
3
|
+
* For 100 000 000 iterations type checking is spending:
|
|
4
|
+
* by typeof: ~75 milliseconds
|
|
5
|
+
* by constructor: ~75 milliseconds
|
|
6
|
+
* by instanceof: ~255 milliseconds
|
|
7
|
+
* by toString.call: ~850 milliseconds
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Returns true if the value is null, otherwise false
|
|
11
|
+
* @param value - anything
|
|
12
|
+
*/
|
|
13
|
+
export function isNull(value) {
|
|
14
|
+
return value === null;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Returns true if the value is undefined, otherwise false
|
|
18
|
+
* @param value - anything
|
|
19
|
+
*/
|
|
20
|
+
export function isUndefined(value) {
|
|
21
|
+
return typeof value === 'undefined';
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Returns true if the value is defined, otherwise false
|
|
25
|
+
* @param value - anything
|
|
26
|
+
*/
|
|
27
|
+
export function isDefined(value) {
|
|
28
|
+
return typeof value !== 'undefined';
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Returns true if the value is undefined or null, otherwise false
|
|
32
|
+
* @param value - anything
|
|
33
|
+
*/
|
|
34
|
+
export function isNullish(value) {
|
|
35
|
+
return isNull(value) || isUndefined(value);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Returns true if the value is NaN, otherwise false
|
|
39
|
+
* @param value - anything
|
|
40
|
+
*/
|
|
41
|
+
export function isNaN(value) {
|
|
42
|
+
return Number.isNaN(value);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Returns true if the value is a string, otherwise false
|
|
46
|
+
* @param value - anything
|
|
47
|
+
*/
|
|
48
|
+
export function isString(value) {
|
|
49
|
+
return typeof value === 'string';
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Returns true if the value is a number, otherwise false
|
|
53
|
+
* @param value - anything
|
|
54
|
+
*/
|
|
55
|
+
export function isNumber(value) {
|
|
56
|
+
return typeof value === 'number';
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Returns true if the value is a big integer, otherwise false
|
|
60
|
+
* @param value - anything
|
|
61
|
+
*/
|
|
62
|
+
export function isBigInt(value) {
|
|
63
|
+
return typeof value === 'bigint';
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Returns true if the value is a boolean, otherwise false
|
|
67
|
+
* @param value - anything
|
|
68
|
+
*/
|
|
69
|
+
export function isBoolean(value) {
|
|
70
|
+
return typeof value === 'boolean';
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Returns true if the value is a symbol, otherwise false
|
|
74
|
+
* @param value - anything
|
|
75
|
+
*/
|
|
76
|
+
export function isSymbol(value) {
|
|
77
|
+
return typeof value === 'symbol';
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Returns true if the value is a function, otherwise false
|
|
81
|
+
* @param value - anything
|
|
82
|
+
*/
|
|
83
|
+
export function isFunction(value) {
|
|
84
|
+
return typeof value === 'function';
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Returns true if the value is an object, otherwise false
|
|
88
|
+
* @param value - anything
|
|
89
|
+
*/
|
|
90
|
+
export function isObject(value) {
|
|
91
|
+
return !!value && typeof value === 'object';
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Returns true if the value is an array, otherwise false
|
|
95
|
+
* @param value - anything
|
|
96
|
+
*/
|
|
97
|
+
export function isArray(value) {
|
|
98
|
+
return Array.isArray(value);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Returns true if the value is a set, otherwise false
|
|
102
|
+
* @param value - anything
|
|
103
|
+
*/
|
|
104
|
+
export function isSet(value) {
|
|
105
|
+
return !!value && value.constructor === Set;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Returns true if the value is a map, otherwise false
|
|
109
|
+
* @param value - anything
|
|
110
|
+
*/
|
|
111
|
+
export function isMap(value) {
|
|
112
|
+
return !!value && value.constructor === Map;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Returns true if the value is a date, otherwise false
|
|
116
|
+
* @param value - anything
|
|
117
|
+
*/
|
|
118
|
+
export function isDate(value) {
|
|
119
|
+
return !!value && value.constructor === Date;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Returns true if the value is a regular expression, otherwise false
|
|
123
|
+
* @param value - anything
|
|
124
|
+
*/
|
|
125
|
+
export function isRegExp(value) {
|
|
126
|
+
return !!value && value.constructor === RegExp;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Returns true if the value is a file, otherwise false
|
|
130
|
+
* @param value - anything
|
|
131
|
+
*/
|
|
132
|
+
export function isFile(value) {
|
|
133
|
+
return !!value && value.constructor === File;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Returns true if the value is a blob, otherwise false
|
|
137
|
+
* @param value - anything
|
|
138
|
+
*/
|
|
139
|
+
export function isBlob(value) {
|
|
140
|
+
return !!value && value.constructor === Blob;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Returns true if the value is form data, otherwise false
|
|
144
|
+
* @param value - anything
|
|
145
|
+
*/
|
|
146
|
+
export function isFormData(value) {
|
|
147
|
+
return !!value && value.constructor === FormData;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Returns true if the value is an array buffer, otherwise false
|
|
151
|
+
* @param value - anything
|
|
152
|
+
*/
|
|
153
|
+
export function isArrayBuffer(value) {
|
|
154
|
+
return !!value && value.constructor === ArrayBuffer;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Returns true if the value is a document, otherwise false
|
|
158
|
+
* @param value - anything
|
|
159
|
+
*/
|
|
160
|
+
export function isDocument(value) {
|
|
161
|
+
return !!value && typeof Document === 'function' && value.constructor === Document;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Returns true if the value is a window, otherwise false
|
|
165
|
+
* @param value - anything
|
|
166
|
+
*/
|
|
167
|
+
export function isWindow(value) {
|
|
168
|
+
return !!value && value.window === value;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Returns true if the value is a promise, otherwise false
|
|
172
|
+
* @param value - anything
|
|
173
|
+
*/
|
|
174
|
+
export function isPromise(value) {
|
|
175
|
+
return !!value && (value.constructor === Promise || (isFunction(value.then) && isFunction(value.catch)));
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Returns true if the value is an observable, otherwise false
|
|
179
|
+
* @param value - anything
|
|
180
|
+
*/
|
|
181
|
+
export function isObservable(value) {
|
|
182
|
+
return !!value && isFunction(value.pipe) && isFunction(value.subscribe);
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Returns true if the value is a typed array, otherwise false
|
|
186
|
+
* @param value - anything
|
|
187
|
+
*/
|
|
188
|
+
export function isTypedArray(value) {
|
|
189
|
+
switch (value === null || value === void 0 ? void 0 : value.constructor) {
|
|
190
|
+
case Int8Array:
|
|
191
|
+
case Int16Array:
|
|
192
|
+
case Int32Array:
|
|
193
|
+
case Float32Array:
|
|
194
|
+
case Float64Array:
|
|
195
|
+
case Uint8Array:
|
|
196
|
+
case Uint8ClampedArray:
|
|
197
|
+
case Uint16Array:
|
|
198
|
+
case Uint32Array:
|
|
199
|
+
// case BigInt64Array:
|
|
200
|
+
// case BigUint64Array:
|
|
201
|
+
return true;
|
|
202
|
+
default:
|
|
203
|
+
return false;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Returns true if the value is a usual object, otherwise false
|
|
208
|
+
* @param value - anything
|
|
209
|
+
*/
|
|
210
|
+
export function isUsualObject(value) {
|
|
211
|
+
return isObject(value) && !isArray(value) && !isTypedArray(value) && !isSet(value) && !isMap(value) && !isDate(value)
|
|
212
|
+
&& !isRegExp(value) && !isFile(value) && !isBlob(value) && !isFormData(value) && !isArrayBuffer(value) && !isWindow(value) && !isDocument(value) && !isPromise(value) && !isObservable(value);
|
|
213
|
+
}
|
|
214
|
+
//# sourceMappingURL=is.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is.js","sourceRoot":"","sources":["../../../../package/src/common/is/is.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { isNumber, isBigInt, isBoolean, isSymbol, isString, isDate, isRegExp, isFunction, isDefined } from '../';
|
|
2
|
+
import { hasOwn } from '../../obj';
|
|
3
|
+
/**
|
|
4
|
+
* Returns true if the value is empty (null, undefined, NaN, Infinity, '', {}, [], Int32Array(), Set(), Map()),
|
|
5
|
+
* otherwise false
|
|
6
|
+
* @param value - anything
|
|
7
|
+
*/
|
|
8
|
+
export function isEmpty(value) {
|
|
9
|
+
if (isNumber(value) || isBigInt(value) || isBoolean(value) || isSymbol(value)) {
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
else if (!value) {
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
else if (isString(value) || isDate(value) || isRegExp(value) || isFunction(value)) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
else if (isFunction(value.forEach)) {
|
|
19
|
+
return value.length === 0 || value.size === 0;
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
for (const key in value) {
|
|
23
|
+
if (hasOwn(value, key) && isDefined(value[key])) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=is-empty.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-empty.js","sourceRoot":"","sources":["../../../../package/src/common/is-empty/is-empty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAC,MAAM,KAAK,CAAC;AAC/G,OAAO,EAAC,MAAM,EAAC,MAAM,WAAW,CAAC;AAEjC;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,KAAU;IAChC,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;QAC7E,OAAO,KAAK,CAAC;KACd;SAAM,IAAI,CAAC,KAAK,EAAE;QACjB,OAAO,IAAI,CAAC;KACb;SAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;QACnF,OAAO,KAAK,CAAC;KACd;SAAM,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;QACpC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC;KAC/C;SAAM;QACL,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;YACvB,IAAI,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;gBAC/C,OAAO,KAAK,CAAC;aACd;SACF;QACD,OAAO,IAAI,CAAC;KACb;AACH,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns a random integer between 0 and number, not exceeding a certain number of digits
|
|
3
|
+
* @param numberOfDigits - number of digits (default: 7, maximum: 15)
|
|
4
|
+
*/
|
|
5
|
+
export function random(numberOfDigits = 7) {
|
|
6
|
+
numberOfDigits = numberOfDigits <= 15 ? numberOfDigits : 15;
|
|
7
|
+
return Math.round(Math.random() * Math.pow(10, numberOfDigits));
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=random.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"random.js","sourceRoot":"","sources":["../../../../package/src/common/random/random.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,cAAc,GAAG,CAAC;IACvC,cAAc,GAAG,cAAc,IAAI,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;AAClE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Determines whether two values are the same value
|
|
3
|
+
* @param value1 - anything
|
|
4
|
+
* @param value2 - anything
|
|
5
|
+
*/
|
|
6
|
+
export function same(value1, value2) {
|
|
7
|
+
return (value1 === 0 && value2 === 0) || Object.is(value1, value2);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=same.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"same.js","sourceRoot":"","sources":["../../../../package/src/common/same/same.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,IAAI,CAAC,MAAW,EAAE,MAAW;IAC3C,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACrE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stub.js","sourceRoot":"","sources":["../../../../package/src/common/stub/stub.ts"],"names":[],"mappings":"AAAA;;;GAGG,CAAA,6DAA6D;AAChE,MAAM,UAAU,IAAI,CAAC,GAAG,IAAW;IACjC,OAAO;AACT,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { isNumber } from '../';
|
|
2
|
+
/**
|
|
3
|
+
* Converts a string to a float and replaces NaN and Infinity with 0
|
|
4
|
+
* @param value - a string or number
|
|
5
|
+
*/
|
|
6
|
+
export function toFloat(value) {
|
|
7
|
+
const num = isNumber(value) ? value : parseFloat(value);
|
|
8
|
+
return isFinite(num) ? num : 0;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=to-float.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to-float.js","sourceRoot":"","sources":["../../../../package/src/common/to-float/to-float.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,QAAQ,EAAC,MAAM,KAAK,CAAC;AAErC;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,KAAa;IACnC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACxD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { isNumber } from '../';
|
|
2
|
+
/**
|
|
3
|
+
* Converts a string to an integer and replaces NaN and Infinity with 0
|
|
4
|
+
* @param value - a string or number
|
|
5
|
+
*/
|
|
6
|
+
export function toInt(value) {
|
|
7
|
+
const num = isNumber(value) ? value : parseInt(value, 10);
|
|
8
|
+
return isFinite(num) ? num : 0;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=to-int.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to-int.js","sourceRoot":"","sources":["../../../../package/src/common/to-int/to-int.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,QAAQ,EAAC,MAAM,KAAK,CAAC;AAErC;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,KAAa;IACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC1D,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts any value to a sorted string.
|
|
3
|
+
* Sorts arrays, maps and sets by value and sorts objects by field name before adding them to a string.
|
|
4
|
+
* Objects, arrays, sets, maps etc. will be ignored if they have been visited to prevent looping
|
|
5
|
+
* @param value - anything
|
|
6
|
+
*/
|
|
7
|
+
export declare function toSortedString(value: any): string;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { isString, isDate, isRegExp, isFunction, isMap, isSet, isObject, isArray, isTypedArray } from '../';
|
|
2
|
+
/**
|
|
3
|
+
* Converts any value to a sorted string.
|
|
4
|
+
* Sorts arrays, maps and sets by value and sorts objects by field name before adding them to a string.
|
|
5
|
+
* Objects, arrays, sets, maps etc. will be ignored if they have been visited to prevent looping
|
|
6
|
+
* @param value - anything
|
|
7
|
+
*/
|
|
8
|
+
export function toSortedString(value) {
|
|
9
|
+
return _toSortedString(value, null, 0, new Map());
|
|
10
|
+
}
|
|
11
|
+
function _toSortedString(value, index, field, visited) {
|
|
12
|
+
let str = index === null ? '' : ((index === 0 ? '' : ',') + (isString(field) ? field + ':' : ''));
|
|
13
|
+
if (isMap(value) || isSet(value)) {
|
|
14
|
+
if (visited.has(value)) {
|
|
15
|
+
return '';
|
|
16
|
+
}
|
|
17
|
+
visited.set(value, true);
|
|
18
|
+
value = Array.from(value);
|
|
19
|
+
}
|
|
20
|
+
if (isArray(value) || isTypedArray(value)) {
|
|
21
|
+
if (visited.has(value)) {
|
|
22
|
+
return '';
|
|
23
|
+
}
|
|
24
|
+
visited.set(value, true);
|
|
25
|
+
str += '[';
|
|
26
|
+
value.sort();
|
|
27
|
+
value.forEach((value, i) => {
|
|
28
|
+
str += _toSortedString(value, i, i, visited);
|
|
29
|
+
});
|
|
30
|
+
str += ']';
|
|
31
|
+
}
|
|
32
|
+
else if (isFunction(value)) {
|
|
33
|
+
str += value.toString();
|
|
34
|
+
}
|
|
35
|
+
else if (isObject(value) && !isDate(value) && !isRegExp(value)) {
|
|
36
|
+
if (visited.has(value)) {
|
|
37
|
+
return '';
|
|
38
|
+
}
|
|
39
|
+
visited.set(value, true);
|
|
40
|
+
const fields = Object.keys(value);
|
|
41
|
+
str += '{';
|
|
42
|
+
fields.sort();
|
|
43
|
+
fields.forEach((field, i) => {
|
|
44
|
+
str += _toSortedString(value[field], i, field, visited);
|
|
45
|
+
});
|
|
46
|
+
str += '}';
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
str += value;
|
|
50
|
+
}
|
|
51
|
+
return str;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=to-sorted-string.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"to-sorted-string.js","sourceRoot":"","sources":["../../../../package/src/common/to-sorted-string/to-sorted-string.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAC,MAAM,KAAK,CAAC;AAElH;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,KAAU;IACvC,OAAO,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,EAAa,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,eAAe,CAAC,KAAU,EAAE,KAAoB,EAAE,KAAa,EAAE,OAAuB;IAC/F,IAAI,GAAG,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAElG,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;QAChC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACtB,OAAO,EAAE,CAAC;SACX;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAEzB,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3B;IAED,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE;QACzC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACtB,OAAO,EAAE,CAAC;SACX;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAEzB,GAAG,IAAI,GAAG,CAAC;QACX,KAAK,CAAC,IAAI,EAAE,CAAC;QACb,KAAK,CAAC,OAAO,CAAC,CAAC,KAAU,EAAE,CAAS,EAAE,EAAE;YACtC,GAAG,IAAI,eAAe,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QACH,GAAG,IAAI,GAAG,CAAC;KACZ;SAAM,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;QAC5B,GAAG,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;KACzB;SAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QAChE,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACtB,OAAO,EAAE,CAAC;SACX;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAEzB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAElC,GAAG,IAAI,GAAG,CAAC;QACX,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YAC1B,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QACH,GAAG,IAAI,GAAG,CAAC;KACZ;SAAM;QACL,GAAG,IAAI,KAAK,CAAC;KACd;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Represents a value, which can be undefined or null
|
|
3
|
+
*/
|
|
4
|
+
export declare type Nullish = undefined | null;
|
|
5
|
+
/**
|
|
6
|
+
* Represents a value, which can be a number or string
|
|
7
|
+
*/
|
|
8
|
+
export declare type NumStr = number | string;
|
|
9
|
+
/**
|
|
10
|
+
* Represents a value, which can be a number, string or symbol
|
|
11
|
+
*/
|
|
12
|
+
export declare type NumStrSym = NumStr | symbol;
|
|
13
|
+
/**
|
|
14
|
+
* Represents any function
|
|
15
|
+
*/
|
|
16
|
+
export declare type Fn = (...args: any[]) => any;
|
|
17
|
+
/**
|
|
18
|
+
* Represents any array
|
|
19
|
+
*/
|
|
20
|
+
export declare type Arr<T = any> = ReadonlyArray<T> | ArrayLike<T>;
|
|
21
|
+
/**
|
|
22
|
+
* Represents all typed array types
|
|
23
|
+
*/
|
|
24
|
+
export declare type TypedArr = Int8Array | Int16Array | Int32Array | Float32Array | Float64Array | Uint8Array | Uint8ClampedArray | Uint16Array | Uint32Array | BigInt64Array | BigUint64Array;
|
|
25
|
+
/**
|
|
26
|
+
* Represents any object
|
|
27
|
+
*/
|
|
28
|
+
export interface Obj<T = any> {
|
|
29
|
+
[key: NumStrSym]: T;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Represents an object with an indefinite number of string keys of type T
|
|
33
|
+
*/
|
|
34
|
+
export interface Index<T = any> {
|
|
35
|
+
[key: string]: T;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Represents the union of any array type and any object type
|
|
39
|
+
*/
|
|
40
|
+
export declare type ArrObj<T = any> = Arr<T> | Obj<T>;
|
|
41
|
+
/**
|
|
42
|
+
* Converts a type union to a type intersection
|
|
43
|
+
*/
|
|
44
|
+
export declare type UnionToIntersection<U> = (U extends any ? (x: U) => void : never) extends ((x: infer I) => void) ? I : never;
|
|
45
|
+
/**
|
|
46
|
+
* Represents the union of object value types or array value types
|
|
47
|
+
*/
|
|
48
|
+
export declare type ValueUnion<T extends ArrObj, K extends keyof T = keyof T> = T extends ReadonlyArray<any> ? T[number] : T extends ArrayLike<any> ? T[number] : T extends object ? T[K] : never;
|
|
49
|
+
/**
|
|
50
|
+
* Represents the intersection of object value types or array value types
|
|
51
|
+
*/
|
|
52
|
+
export declare type ValueIntersection<T extends ArrObj> = UnionToIntersection<ValueUnion<T>>;
|
|
53
|
+
/**
|
|
54
|
+
* Represents additional error options the BfError class
|
|
55
|
+
*/
|
|
56
|
+
export interface BfErrorOptions {
|
|
57
|
+
code?: string;
|
|
58
|
+
data?: any;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* This symbol is used in forEach handlers to interrupt the loop
|
|
62
|
+
*/
|
|
63
|
+
export declare const INTERRUPT: unique symbol;
|
package/common/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../package/src/common/types.ts"],"names":[],"mappings":"AA2EA;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns the same element or the closest parent element matching the selectors, otherwise null
|
|
3
|
+
* @param element - any HTML element
|
|
4
|
+
* @param selectors - target HTML element or string of valid CSS selectors
|
|
5
|
+
*/
|
|
6
|
+
export declare function closest(element: HTMLElement, selectors: string | HTMLElement): HTMLElement | null;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns the same element or the closest parent element matching the selectors, otherwise null
|
|
3
|
+
* @param element - any HTML element
|
|
4
|
+
* @param selectors - target HTML element or string of valid CSS selectors
|
|
5
|
+
*/
|
|
6
|
+
export function closest(element, selectors) {
|
|
7
|
+
let currentElem = element;
|
|
8
|
+
while (currentElem) {
|
|
9
|
+
if (selectors instanceof Element) {
|
|
10
|
+
if (currentElem === selectors) {
|
|
11
|
+
return currentElem;
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
currentElem = currentElem.parentElement;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
else if (currentElem.matches(selectors)) {
|
|
18
|
+
return currentElem;
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
currentElem = currentElem.parentElement;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=closest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"closest.js","sourceRoot":"","sources":["../../../../package/src/dom/closest/closest.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,OAAoB,EAAE,SAA+B;IAC3E,IAAI,WAAW,GAAuB,OAAO,CAAC;IAE9C,OAAO,WAAW,EAAE;QAClB,IAAI,SAAS,YAAY,OAAO,EAAE;YAChC,IAAI,WAAW,KAAK,SAAS,EAAE;gBAC7B,OAAO,WAAW,CAAC;aACpB;iBAAM;gBACL,WAAW,GAAG,WAAW,CAAC,aAAa,CAAC;aACzC;SACF;aAAM,IAAI,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YACzC,OAAO,WAAW,CAAC;SACpB;aAAM;YACL,WAAW,GAAG,WAAW,CAAC,aAAa,CAAC;SACzC;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns the document object representing the HTML document in the current environment
|
|
3
|
+
*/
|
|
4
|
+
export declare function getDocument(): Document;
|
|
5
|
+
/**
|
|
6
|
+
* If the global object is not a window, you can use this function to set up a stub document implementation
|
|
7
|
+
* @example
|
|
8
|
+
* For Angular:
|
|
9
|
+
* setDocument(inject(DOCUMENT));
|
|
10
|
+
* @param document - The document object representing the HTML document in the current environment
|
|
11
|
+
*/
|
|
12
|
+
export declare function setDocument(document: Document): void;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { BfError } from '../../';
|
|
2
|
+
let doc = typeof document === 'object' ? document : undefined;
|
|
3
|
+
/**
|
|
4
|
+
* Returns the document object representing the HTML document in the current environment
|
|
5
|
+
*/
|
|
6
|
+
export function getDocument() {
|
|
7
|
+
if (doc) {
|
|
8
|
+
return doc;
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
throw new BfError('Document is absent', { code: 'bf_utils_dom_getDocument_1' });
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* If the global object is not a window, you can use this function to set up a stub document implementation
|
|
16
|
+
* @example
|
|
17
|
+
* For Angular:
|
|
18
|
+
* setDocument(inject(DOCUMENT));
|
|
19
|
+
* @param document - The document object representing the HTML document in the current environment
|
|
20
|
+
*/
|
|
21
|
+
export function setDocument(document) {
|
|
22
|
+
doc = document;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=document.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../../../package/src/dom/document/document.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,QAAQ,CAAC;AAE/B,IAAI,GAAG,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAE9D;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,IAAI,GAAG,EAAE;QACP,OAAO,GAAG,CAAC;KACZ;SAAM;QACL,MAAM,IAAI,OAAO,CAAC,oBAAoB,EAAE,EAAC,IAAI,EAAE,4BAA4B,EAAC,CAAC,CAAC;KAC/E;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,QAAkB;IAC5C,GAAG,GAAG,QAAQ,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { BfError } from '../../';
|
|
2
|
+
import { getBody, getDocument, getWindow } from '../';
|
|
3
|
+
/**
|
|
4
|
+
* Creates an offer to download a file from URL in the browser.
|
|
5
|
+
* Returns a promise that returns a blob if the download is successful
|
|
6
|
+
* @param url - file URL
|
|
7
|
+
*/
|
|
8
|
+
export function downloadFile(url) {
|
|
9
|
+
return fetch(url)
|
|
10
|
+
.then(response => {
|
|
11
|
+
if (response.ok) {
|
|
12
|
+
return response.blob();
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
return Promise.reject(new BfError('Network response was not ok', { code: 'bf_utils_dom_downloadFile_1' }));
|
|
16
|
+
}
|
|
17
|
+
})
|
|
18
|
+
.then(blob => {
|
|
19
|
+
const doc = getDocument();
|
|
20
|
+
const win = getWindow();
|
|
21
|
+
const body = getBody();
|
|
22
|
+
const url = win.URL.createObjectURL(blob);
|
|
23
|
+
const link = doc.createElement('a');
|
|
24
|
+
link.href = url;
|
|
25
|
+
link.download = 'downloaded_file';
|
|
26
|
+
body.appendChild(link);
|
|
27
|
+
link.click();
|
|
28
|
+
body.removeChild(link);
|
|
29
|
+
return blob;
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=download-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"download-file.js","sourceRoot":"","sources":["../../../../package/src/dom/download-file/download-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAC,MAAM,KAAK,CAAC;AAEpD;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,OAAO,KAAK,CAAC,GAAG,CAAC;SACd,IAAI,CAAC,QAAQ,CAAC,EAAE;QACf,IAAI,QAAQ,CAAC,EAAE,EAAE;YACf,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;SACxB;aAAM;YACL,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,6BAA6B,EAAE,EAAC,IAAI,EAAE,6BAA6B,EAAC,CAAC,CAAC,CAAC;SAC1G;IACH,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,EAAE;QACX,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,QAAQ,GAAG,iBAAiB,CAAC;QAClC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Iterates through all child elements of the parent element to the full depth of the tree
|
|
3
|
+
* and calls a handler for each element.
|
|
4
|
+
* If the handler returns INTERRUPT, the loop will be interrupted
|
|
5
|
+
* @param parent - a parent element
|
|
6
|
+
* @param handler - function called for each element
|
|
7
|
+
*/
|
|
8
|
+
export declare function forEachElements(parent: Element, handler: (child: Element, index: number, parent: Element) => any): void;
|