@lambo-design/shared 1.0.0-beta.236 → 1.0.0-beta.239

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.
Files changed (172) hide show
  1. package/config/config.js +51 -51
  2. package/config/env.js +4 -4
  3. package/config/index.js +7 -7
  4. package/config/themes/atrovirens/atrovirens.less +667 -667
  5. package/config/themes/atrovirens/var.less +674 -674
  6. package/config/themes/blue/blue.less +669 -669
  7. package/config/themes/blue/var.less +677 -677
  8. package/config/themes/blue-white/blue-white.less +669 -669
  9. package/config/themes/blue-white/var.less +676 -676
  10. package/config/themes/blue-white-tight/blue-white-tight.less +672 -672
  11. package/config/themes/blue-white-tight/var.less +677 -677
  12. package/config/themes/danqing/danqing.css +4 -4
  13. package/config/themes/danqing/danqing.css.map +1 -1
  14. package/config/themes/danqing/danqing.less +668 -668
  15. package/config/themes/danqing/danqing.wxss +572 -572
  16. package/config/themes/danqing/var.less +679 -679
  17. package/config/themes/deep/deep.less +669 -669
  18. package/config/themes/deep/var.less +677 -677
  19. package/config/themes/default/default.less +671 -671
  20. package/config/themes/default/var.less +677 -677
  21. package/config/themes/eap/eap.less +671 -671
  22. package/config/themes/eap/var.less +677 -677
  23. package/config/themes/gold/gold.less +671 -671
  24. package/config/themes/gold/var.less +677 -677
  25. package/config/themes/index.js +28 -28
  26. package/config/themes/lime/lime.less +671 -671
  27. package/config/themes/lime/var.less +678 -678
  28. package/config/themes/orange/orange.less +671 -671
  29. package/config/themes/orange/var.less +678 -678
  30. package/config/themes/red/red.less +671 -671
  31. package/config/themes/red/var.less +677 -677
  32. package/config/themes/theme-atrovirens.js +558 -558
  33. package/config/themes/theme-blue.js +558 -558
  34. package/config/themes/theme-bw.js +558 -558
  35. package/config/themes/theme-bwt.js +559 -559
  36. package/config/themes/theme-danqing.js +558 -558
  37. package/config/themes/theme-deep.js +558 -558
  38. package/config/themes/theme-default.js +558 -558
  39. package/config/themes/theme-eap.js +558 -558
  40. package/config/themes/theme-gold.js +558 -558
  41. package/config/themes/theme-lime.js +558 -558
  42. package/config/themes/theme-orange.js +559 -559
  43. package/config/themes/theme-red.js +558 -558
  44. package/config/themes/theme-white.js +557 -557
  45. package/config/themes/white/var.less +675 -675
  46. package/config/themes/white/white.less +668 -668
  47. package/directives/index.js +23 -23
  48. package/directives/module/draggable.js +56 -56
  49. package/directives/module/permission.js +49 -49
  50. package/directives/module/print.js +1 -1
  51. package/directives/module/vue-print-nb/README.md +63 -63
  52. package/directives/module/vue-print-nb/print.js +94 -94
  53. package/directives/module/vue-print-nb/printarea.js +532 -532
  54. package/index.js +10 -10
  55. package/nstyles/common.less +197 -197
  56. package/nstyles/components/404.less +46 -46
  57. package/nstyles/components/button.less +34 -34
  58. package/nstyles/components/date-picker.less +37 -37
  59. package/nstyles/components/drawer.less +20 -20
  60. package/nstyles/components/dropdown.less +18 -18
  61. package/nstyles/components/excel-flow.less +72 -72
  62. package/nstyles/components/form.less +313 -303
  63. package/nstyles/components/index.less +23 -23
  64. package/nstyles/components/layout/collect.less +10 -10
  65. package/nstyles/components/layout/detail-view.less +107 -107
  66. package/nstyles/components/layout/full-screen.less +7 -7
  67. package/nstyles/components/layout/index.less +7 -7
  68. package/nstyles/components/layout/other-menu.less +142 -142
  69. package/nstyles/components/layout/page-view.less +101 -101
  70. package/nstyles/components/layout/sider-trigger.less +41 -41
  71. package/nstyles/components/layout/tags-nav.less +113 -113
  72. package/nstyles/components/modal.less +85 -85
  73. package/nstyles/components/n-button.less +131 -131
  74. package/nstyles/components/n-image-preview.less +131 -131
  75. package/nstyles/components/n-model/index.less +19 -19
  76. package/nstyles/components/n-model/report-index.less +43 -43
  77. package/nstyles/components/n-panel.less +40 -40
  78. package/nstyles/components/n-picker.less +37 -37
  79. package/nstyles/components/n-sign.less +17 -17
  80. package/nstyles/components/n-tooltip.less +10 -10
  81. package/nstyles/components/panel.less +31 -31
  82. package/nstyles/components/select.less +3 -3
  83. package/nstyles/components/sign.less +27 -27
  84. package/nstyles/components/table.less +315 -315
  85. package/nstyles/components/tree.less +158 -158
  86. package/nstyles/components/upload.less +164 -164
  87. package/nstyles/index.less +5 -5
  88. package/nstyles/reset.less +65 -65
  89. package/nstyles/third/ag.less +174 -174
  90. package/nstyles/third/index.less +11 -11
  91. package/nstyles/third/view-design.less +366 -366
  92. package/nstyles/variables/base.less +143 -143
  93. package/nstyles/variables/index.less +4 -4
  94. package/nstyles/variables/theme/default/button.less +7 -7
  95. package/nstyles/variables/theme/default/common.less +57 -57
  96. package/nstyles/variables/theme/default/index.less +7 -7
  97. package/nstyles/variables/theme/default/layout.less +40 -40
  98. package/nstyles/variables/theme/default/table.less +37 -37
  99. package/nstyles/variables/theme/default/tag.less +3 -3
  100. package/nstyles/variables/theme/default/upload.less +3 -3
  101. package/nstyles/variables/theme/index.less +13 -13
  102. package/nstyles/variables/theme/small/button.less +7 -7
  103. package/nstyles/variables/theme/small/common.less +39 -39
  104. package/nstyles/variables/theme/small/index.less +5 -5
  105. package/nstyles/variables/theme/small/layout.less +21 -21
  106. package/nstyles/variables/theme/small/table.less +17 -17
  107. package/nstyles/variables/theme/small/tag.less +3 -3
  108. package/package.json +1 -1
  109. package/plugin/index.js +12 -12
  110. package/plugin/module/date-format.js +30 -30
  111. package/plugin/module/loading.js +26 -26
  112. package/plugin/module/warn-handler.js +11 -11
  113. package/styles/variables.less +21 -21
  114. package/utils/ajax/cacheconf.js +19 -19
  115. package/utils/ajax/content-type.js +30 -30
  116. package/utils/ajax/index.js +12 -12
  117. package/utils/ajax/interceptors.js +97 -97
  118. package/utils/assist.js +147 -147
  119. package/utils/base64.js +126 -126
  120. package/utils/blob.js +47 -47
  121. package/utils/bus.js +3 -3
  122. package/utils/crypto/index.js +48 -48
  123. package/utils/crypto/md5.js +152 -152
  124. package/utils/crypto/sm3.js +235 -235
  125. package/utils/date.js +381 -381
  126. package/utils/dict/built-in-dict.js +20 -20
  127. package/utils/dict/index.js +167 -167
  128. package/utils/dom.js +38 -38
  129. package/utils/event.js +72 -72
  130. package/utils/excel.js +655 -655
  131. package/utils/file.js +19 -19
  132. package/utils/form/validate.js +29 -29
  133. package/utils/half-year.js +68 -68
  134. package/utils/index.js +41 -41
  135. package/utils/json.js +29 -29
  136. package/utils/lodop.js +165 -165
  137. package/utils/menu/before-close.js +17 -17
  138. package/utils/menu/index.js +395 -395
  139. package/utils/mime_type.js +67 -67
  140. package/utils/modelerUtil.js +227 -227
  141. package/utils/n/api.js +22 -22
  142. package/utils/n/date.js +57 -57
  143. package/utils/n/index.js +9 -9
  144. package/utils/n/is-type.js +176 -176
  145. package/utils/n/number.js +144 -144
  146. package/utils/n/permission-cache.js +11 -11
  147. package/utils/n/reuqest/axiosN.js +17 -17
  148. package/utils/n/reuqest/content-type.js +19 -19
  149. package/utils/n/reuqest/interceptors.js +95 -95
  150. package/utils/n/reuqest/url-params.js +12 -12
  151. package/utils/n/storage.js +51 -51
  152. package/utils/n/token.js +51 -51
  153. package/utils/n/user-cache.js +11 -11
  154. package/utils/n/user.js +34 -34
  155. package/utils/n/uuid.js +16 -16
  156. package/utils/n-generator-routers.js +208 -208
  157. package/utils/n-router.js +205 -205
  158. package/utils/n-theme.js +30 -30
  159. package/utils/number.js +180 -180
  160. package/utils/oss.js +57 -57
  161. package/utils/platform.js +1334 -1334
  162. package/utils/quarter.js +58 -58
  163. package/utils/storage.js +198 -198
  164. package/utils/style.js +24 -24
  165. package/utils/theme.js +138 -138
  166. package/utils/transfer-queue.js +7 -7
  167. package/utils/transform.js +179 -0
  168. package/utils/type.js +102 -102
  169. package/utils/util.js +795 -795
  170. package/utils/validator.js +181 -181
  171. package/utils/vxetable/index.js +25 -25
  172. package/utils/zoomScroll.js +9 -9
package/utils/n/date.js CHANGED
@@ -1,57 +1,57 @@
1
- import dayjs from 'dayjs'
2
-
3
- export function str2Date(value) {
4
- if (value) {
5
- return dayjs(value, ['YYYYMMDDHHmmss', 'YYYYMMDDHHmm', 'YYYYMMDD', 'YYYYMM', 'YYYY']).toDate()
6
- } else {
7
- return null
8
- }
9
- }
10
-
11
- export function formatDate(value) {
12
- if (value && /^[0-9]+$/.test(value)) {
13
- switch (value.length) {
14
- case 14: {
15
- return dayjs(value, ['YYYYMMDDHHmmss']).format('YYYY-MM-DD HH:mm:ss')
16
- }
17
- case 12: {
18
- return dayjs(value, ['YYYYMMDDHHmmss']).format('YYYY-MM-DD HH:mm')
19
- }
20
- case 8: {
21
- return dayjs(value, ['YYYYMMDD']).format('YYYY-MM-DD')
22
- }
23
- case 6: {
24
- return dayjs(value, ['YYYYMM']).format('YYYY-MM')
25
- }
26
- case 4: {
27
- return value.substring(0, 2) + '-' + value.substring(2, 2)
28
- }
29
- }
30
- } else {
31
- return value || '-'
32
- }
33
- }
34
-
35
- export function formatDateChinese(value) {
36
- if (value && /^[0-9]+$/.test(value)) {
37
- switch (value.length) {
38
- case 14: {
39
- return dayjs(value, ['YYYYMMDDHHmmss']).format('YYYY年MM月DD日 HH:mm:ss')
40
- }
41
- case 12: {
42
- return dayjs(value, ['YYYYMMDDHHmmss']).format('YYYY年MM月DD日 HH:mm')
43
- }
44
- case 8: {
45
- return dayjs(value, ['YYYYMMDD']).format('YYYY年MM月DD日')
46
- }
47
- case 6: {
48
- return dayjs(value, ['YYYYMM']).format('YYYY年MM月')
49
- }
50
- case 4: {
51
- return value.substring(0, 2) + '年' + value.substring(2, 2) + '月'
52
- }
53
- }
54
- } else {
55
- return value || '-'
56
- }
57
- }
1
+ import dayjs from 'dayjs'
2
+
3
+ export function str2Date(value) {
4
+ if (value) {
5
+ return dayjs(value, ['YYYYMMDDHHmmss', 'YYYYMMDDHHmm', 'YYYYMMDD', 'YYYYMM', 'YYYY']).toDate()
6
+ } else {
7
+ return null
8
+ }
9
+ }
10
+
11
+ export function formatDate(value) {
12
+ if (value && /^[0-9]+$/.test(value)) {
13
+ switch (value.length) {
14
+ case 14: {
15
+ return dayjs(value, ['YYYYMMDDHHmmss']).format('YYYY-MM-DD HH:mm:ss')
16
+ }
17
+ case 12: {
18
+ return dayjs(value, ['YYYYMMDDHHmmss']).format('YYYY-MM-DD HH:mm')
19
+ }
20
+ case 8: {
21
+ return dayjs(value, ['YYYYMMDD']).format('YYYY-MM-DD')
22
+ }
23
+ case 6: {
24
+ return dayjs(value, ['YYYYMM']).format('YYYY-MM')
25
+ }
26
+ case 4: {
27
+ return value.substring(0, 2) + '-' + value.substring(2, 2)
28
+ }
29
+ }
30
+ } else {
31
+ return value || '-'
32
+ }
33
+ }
34
+
35
+ export function formatDateChinese(value) {
36
+ if (value && /^[0-9]+$/.test(value)) {
37
+ switch (value.length) {
38
+ case 14: {
39
+ return dayjs(value, ['YYYYMMDDHHmmss']).format('YYYY年MM月DD日 HH:mm:ss')
40
+ }
41
+ case 12: {
42
+ return dayjs(value, ['YYYYMMDDHHmmss']).format('YYYY年MM月DD日 HH:mm')
43
+ }
44
+ case 8: {
45
+ return dayjs(value, ['YYYYMMDD']).format('YYYY年MM月DD日')
46
+ }
47
+ case 6: {
48
+ return dayjs(value, ['YYYYMM']).format('YYYY年MM月')
49
+ }
50
+ case 4: {
51
+ return value.substring(0, 2) + '年' + value.substring(2, 2) + '月'
52
+ }
53
+ }
54
+ } else {
55
+ return value || '-'
56
+ }
57
+ }
package/utils/n/index.js CHANGED
@@ -1,10 +1,10 @@
1
- export * from './date'
2
- export * from './is-type'
3
- export * from './number'
4
- export * from './permission-cache'
5
- export * from './storage'
6
- export * from './token'
7
- export * from './user-cache'
8
- export * from './user'
9
- export * from './uuid'
1
+ export * from './date'
2
+ export * from './is-type'
3
+ export * from './number'
4
+ export * from './permission-cache'
5
+ export * from './storage'
6
+ export * from './token'
7
+ export * from './user-cache'
8
+ export * from './user'
9
+ export * from './uuid'
10
10
  export * from './reuqest/axiosN'
@@ -1,176 +1,176 @@
1
- const toString = {}.toString;
2
- const hasOwnProperty = Object.prototype.hasOwnProperty;
3
- const PRECISION = 0.00001; // numbers less than this is considered as 0
4
- const objectProto = Object.prototype;
5
-
6
- export function isNull(value) {
7
- return value === null;
8
- }
9
-
10
- export function isUndefined(value) {
11
- return value === undefined;
12
- }
13
-
14
- export function isNil(value) {
15
- return isNull(value) || isUndefined(value);
16
- }
17
-
18
- export function getType(value) {
19
- return toString
20
- .call(value)
21
- .replace(/^\[object /, '')
22
- .replace(/]$/, '');
23
- }
24
-
25
- export function isType(value, type) {
26
- return toString.call(value) === `[object ${type}]`;
27
- }
28
-
29
- export function isPrototype(value) {
30
- const Ctor = value && value.constructor;
31
- const proto = (typeof Ctor === 'function' && Ctor.prototype) || objectProto;
32
- return value === proto;
33
- }
34
-
35
- export function isBoolean(value) {
36
- return isType(value, 'Boolean');
37
- }
38
-
39
- export function isNumber(value) {
40
- return isType(value, 'Number');
41
- }
42
-
43
- export function isString(str) {
44
- return isType(str, 'String');
45
- }
46
-
47
- export function isArray(value) {
48
- return Array.isArray ? Array.isArray(value) : isType(value, 'Array');
49
- }
50
-
51
- export function isArrayLike(value) {
52
- return value !== null && typeof value !== 'function' && Number.isFinite(value.length);
53
- }
54
-
55
- export function isObject(value) {
56
- const type = typeof value;
57
- return (value !== null && type === 'object') || type === 'function';
58
- }
59
-
60
- export function isObjectLike(value) {
61
- return typeof value === 'object' && value !== null;
62
- }
63
-
64
- export function isPlainObject(value) {
65
- if (!isObjectLike(value) || !isType(value, 'Object')) return false;
66
- if (Object.getPrototypeOf(value) === null) return true;
67
- let proto = value;
68
- while (Object.getPrototypeOf(proto) !== null) {
69
- proto = Object.getPrototypeOf(proto);
70
- }
71
- return Object.getPrototypeOf(value) === proto;
72
- }
73
-
74
- export function isFunction(value) {
75
- return isType(value, 'Function');
76
- }
77
-
78
- export function isPromise(value) {
79
- return value && typeof value.then === 'function';
80
- }
81
-
82
- export function isDate(value) {
83
- return isType(value, 'Date');
84
- }
85
-
86
- export function isArguments(value) {
87
- return isType(value, 'Arguments');
88
- }
89
-
90
- export function isRegExp(str) {
91
- return isType(str, 'RegExp');
92
- }
93
-
94
- export function isError(value) {
95
- return isType(value, 'Error');
96
- }
97
-
98
- export function isElement(o) {
99
- return o instanceof Element || o instanceof HTMLDocument;
100
- }
101
-
102
- export function isEmpty(value) {
103
- if (isNil(value)) return true;
104
- if (isArrayLike(value)) return !value.length;
105
- const type = getType(value);
106
- if (['Map', 'Set'].includes(type)) return !value.size;
107
- if (isPrototype(value)) return !Object.keys(value).length;
108
- for (const key in value) {
109
- if (hasOwnProperty.call(value, key)) return false;
110
- }
111
- return true;
112
- }
113
-
114
- export function isEqual(value, other) {
115
- if (value === other) return true;
116
- if (!value || !other) return false;
117
- if (isString(value) || isString(other)) return false;
118
- if (isArrayLike(value) || isArrayLike(other)) {
119
- if (value.length !== other.length) return false;
120
- let rst = true;
121
- for (let i = 0; i < value.length; i++) {
122
- rst = isEqual(value[i], other[i]);
123
- if (!rst) break;
124
- }
125
- return rst;
126
- }
127
- if (isObjectLike(value) || isObjectLike(other)) {
128
- const valueKeys = Object.keys(value);
129
- const otherKeys = Object.keys(other);
130
- if (valueKeys.length !== otherKeys.length) return false;
131
- let rst = true;
132
- for (let i = 0; i < valueKeys.length; i++) {
133
- rst = isEqual(value[valueKeys[i]], other[valueKeys[i]]);
134
- if (!rst) break;
135
- }
136
- return rst;
137
- }
138
- return false;
139
- }
140
-
141
- export function isEven(num) {
142
- return isNumber(num) && num % 2 === 0;
143
- }
144
-
145
- export function isOdd(num) {
146
- return isNumber(num) && num % 2 !== 0;
147
- }
148
-
149
- export function isFinite(value) {
150
- return isNumber(value) && Number.isFinite(value);
151
- }
152
-
153
- export function isInteger(num) {
154
- return Number.isInteger ? Number.isInteger(num) : isNumber(num) && num % 1 === 0;
155
- }
156
-
157
- export function isDecimal(num) {
158
- return isNumber(num) && num % 1 !== 0;
159
- }
160
-
161
- export function isNegative(num) {
162
- return isNumber(num) && num < 0;
163
- }
164
-
165
- export function isPositive(num) {
166
- return isNumber(num) && num > 0;
167
- }
168
-
169
- export function isNumberEqual(a, b, precision = PRECISION) {
170
- return Math.abs(a - b) < precision;
171
- }
172
-
173
- export function isEqualWith(value, other, fn) {
174
- if (!isFunction(fn)) return isEqual(value, other);
175
- return fn(value, other);
176
- }
1
+ const toString = {}.toString;
2
+ const hasOwnProperty = Object.prototype.hasOwnProperty;
3
+ const PRECISION = 0.00001; // numbers less than this is considered as 0
4
+ const objectProto = Object.prototype;
5
+
6
+ export function isNull(value) {
7
+ return value === null;
8
+ }
9
+
10
+ export function isUndefined(value) {
11
+ return value === undefined;
12
+ }
13
+
14
+ export function isNil(value) {
15
+ return isNull(value) || isUndefined(value);
16
+ }
17
+
18
+ export function getType(value) {
19
+ return toString
20
+ .call(value)
21
+ .replace(/^\[object /, '')
22
+ .replace(/]$/, '');
23
+ }
24
+
25
+ export function isType(value, type) {
26
+ return toString.call(value) === `[object ${type}]`;
27
+ }
28
+
29
+ export function isPrototype(value) {
30
+ const Ctor = value && value.constructor;
31
+ const proto = (typeof Ctor === 'function' && Ctor.prototype) || objectProto;
32
+ return value === proto;
33
+ }
34
+
35
+ export function isBoolean(value) {
36
+ return isType(value, 'Boolean');
37
+ }
38
+
39
+ export function isNumber(value) {
40
+ return isType(value, 'Number');
41
+ }
42
+
43
+ export function isString(str) {
44
+ return isType(str, 'String');
45
+ }
46
+
47
+ export function isArray(value) {
48
+ return Array.isArray ? Array.isArray(value) : isType(value, 'Array');
49
+ }
50
+
51
+ export function isArrayLike(value) {
52
+ return value !== null && typeof value !== 'function' && Number.isFinite(value.length);
53
+ }
54
+
55
+ export function isObject(value) {
56
+ const type = typeof value;
57
+ return (value !== null && type === 'object') || type === 'function';
58
+ }
59
+
60
+ export function isObjectLike(value) {
61
+ return typeof value === 'object' && value !== null;
62
+ }
63
+
64
+ export function isPlainObject(value) {
65
+ if (!isObjectLike(value) || !isType(value, 'Object')) return false;
66
+ if (Object.getPrototypeOf(value) === null) return true;
67
+ let proto = value;
68
+ while (Object.getPrototypeOf(proto) !== null) {
69
+ proto = Object.getPrototypeOf(proto);
70
+ }
71
+ return Object.getPrototypeOf(value) === proto;
72
+ }
73
+
74
+ export function isFunction(value) {
75
+ return isType(value, 'Function');
76
+ }
77
+
78
+ export function isPromise(value) {
79
+ return value && typeof value.then === 'function';
80
+ }
81
+
82
+ export function isDate(value) {
83
+ return isType(value, 'Date');
84
+ }
85
+
86
+ export function isArguments(value) {
87
+ return isType(value, 'Arguments');
88
+ }
89
+
90
+ export function isRegExp(str) {
91
+ return isType(str, 'RegExp');
92
+ }
93
+
94
+ export function isError(value) {
95
+ return isType(value, 'Error');
96
+ }
97
+
98
+ export function isElement(o) {
99
+ return o instanceof Element || o instanceof HTMLDocument;
100
+ }
101
+
102
+ export function isEmpty(value) {
103
+ if (isNil(value)) return true;
104
+ if (isArrayLike(value)) return !value.length;
105
+ const type = getType(value);
106
+ if (['Map', 'Set'].includes(type)) return !value.size;
107
+ if (isPrototype(value)) return !Object.keys(value).length;
108
+ for (const key in value) {
109
+ if (hasOwnProperty.call(value, key)) return false;
110
+ }
111
+ return true;
112
+ }
113
+
114
+ export function isEqual(value, other) {
115
+ if (value === other) return true;
116
+ if (!value || !other) return false;
117
+ if (isString(value) || isString(other)) return false;
118
+ if (isArrayLike(value) || isArrayLike(other)) {
119
+ if (value.length !== other.length) return false;
120
+ let rst = true;
121
+ for (let i = 0; i < value.length; i++) {
122
+ rst = isEqual(value[i], other[i]);
123
+ if (!rst) break;
124
+ }
125
+ return rst;
126
+ }
127
+ if (isObjectLike(value) || isObjectLike(other)) {
128
+ const valueKeys = Object.keys(value);
129
+ const otherKeys = Object.keys(other);
130
+ if (valueKeys.length !== otherKeys.length) return false;
131
+ let rst = true;
132
+ for (let i = 0; i < valueKeys.length; i++) {
133
+ rst = isEqual(value[valueKeys[i]], other[valueKeys[i]]);
134
+ if (!rst) break;
135
+ }
136
+ return rst;
137
+ }
138
+ return false;
139
+ }
140
+
141
+ export function isEven(num) {
142
+ return isNumber(num) && num % 2 === 0;
143
+ }
144
+
145
+ export function isOdd(num) {
146
+ return isNumber(num) && num % 2 !== 0;
147
+ }
148
+
149
+ export function isFinite(value) {
150
+ return isNumber(value) && Number.isFinite(value);
151
+ }
152
+
153
+ export function isInteger(num) {
154
+ return Number.isInteger ? Number.isInteger(num) : isNumber(num) && num % 1 === 0;
155
+ }
156
+
157
+ export function isDecimal(num) {
158
+ return isNumber(num) && num % 1 !== 0;
159
+ }
160
+
161
+ export function isNegative(num) {
162
+ return isNumber(num) && num < 0;
163
+ }
164
+
165
+ export function isPositive(num) {
166
+ return isNumber(num) && num > 0;
167
+ }
168
+
169
+ export function isNumberEqual(a, b, precision = PRECISION) {
170
+ return Math.abs(a - b) < precision;
171
+ }
172
+
173
+ export function isEqualWith(value, other, fn) {
174
+ if (!isFunction(fn)) return isEqual(value, other);
175
+ return fn(value, other);
176
+ }