@sheinx/hooks 3.8.0-beta.2 → 3.8.0-beta.20
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/cjs/common/use-position-style/check-border.d.ts +1 -0
- package/cjs/common/use-position-style/check-border.d.ts.map +1 -1
- package/cjs/common/use-position-style/check-border.js +2 -2
- package/cjs/common/use-position-style/index.d.ts.map +1 -1
- package/cjs/common/use-position-style/index.js +10 -4
- package/cjs/components/use-datepicker/use-date.d.ts.map +1 -1
- package/cjs/components/use-datepicker/use-date.js +12 -4
- package/cjs/components/use-datepicker/use-date.type.d.ts +2 -1
- package/cjs/components/use-datepicker/use-date.type.d.ts.map +1 -1
- package/cjs/components/use-datepicker/use-datepicker-format.d.ts +2 -1
- package/cjs/components/use-datepicker/use-datepicker-format.d.ts.map +1 -1
- package/cjs/components/use-datepicker/use-datepicker-format.js +22 -5
- package/cjs/components/use-datepicker/use-datepicker-range.js +2 -2
- package/cjs/components/use-datepicker/use-time.d.ts.map +1 -1
- package/cjs/components/use-datepicker/use-time.js +4 -2
- package/cjs/components/use-datepicker/use-time.type.d.ts +3 -1
- package/cjs/components/use-datepicker/use-time.type.d.ts.map +1 -1
- package/cjs/components/use-datepicker/util.d.ts +7 -1
- package/cjs/components/use-datepicker/util.d.ts.map +1 -1
- package/cjs/components/use-datepicker/util.js +11 -1
- package/cjs/components/use-form/use-form-context.d.ts.map +1 -1
- package/cjs/components/use-form/use-form-context.js +11 -5
- package/cjs/components/use-form/use-form-control/use-form-control.d.ts.map +1 -1
- package/cjs/components/use-form/use-form-control/use-form-control.js +12 -3
- package/cjs/components/use-form/use-form-control/use-form-control.type.d.ts +8 -2
- package/cjs/components/use-form/use-form-control/use-form-control.type.d.ts.map +1 -1
- package/cjs/components/use-form/use-form-flow/use-form-datum.d.ts +8 -0
- package/cjs/components/use-form/use-form-flow/use-form-datum.d.ts.map +1 -1
- package/cjs/components/use-form/use-form.d.ts.map +1 -1
- package/cjs/components/use-form/use-form.js +12 -8
- package/cjs/components/use-form/use-form.type.d.ts +43 -39
- package/cjs/components/use-form/use-form.type.d.ts.map +1 -1
- package/cjs/components/use-input/use-input-format.d.ts.map +1 -1
- package/cjs/components/use-input/use-input-format.js +2 -1
- package/cjs/components/use-input/use-input.d.ts.map +1 -1
- package/cjs/components/use-input/use-input.js +4 -1
- package/cjs/components/use-pagination/use-pagination.d.ts.map +1 -1
- package/cjs/components/use-pagination/use-pagination.js +2 -1
- package/cjs/components/use-popup/use-popup.d.ts.map +1 -1
- package/cjs/components/use-popup/use-popup.js +7 -4
- package/cjs/components/use-table/use-table-virtual.d.ts +2 -1
- package/cjs/components/use-table/use-table-virtual.d.ts.map +1 -1
- package/cjs/components/use-table/use-table-virtual.js +3 -3
- package/cjs/components/use-table/use-table.type.d.ts +70 -92
- package/cjs/components/use-table/use-table.type.d.ts.map +1 -1
- package/cjs/components/use-transfer/index.d.ts +1 -0
- package/cjs/components/use-transfer/index.d.ts.map +1 -1
- package/cjs/components/use-transfer/index.js +15 -0
- package/cjs/components/use-transfer/transfer-context.d.ts +7 -0
- package/cjs/components/use-transfer/transfer-context.d.ts.map +1 -0
- package/cjs/components/use-transfer/transfer-context.js +12 -0
- package/cjs/components/use-tree/use-tree-node.d.ts +7 -1
- package/cjs/components/use-tree/use-tree-node.d.ts.map +1 -1
- package/cjs/components/use-tree/use-tree-node.js +19 -1
- package/cjs/components/use-tree/use-tree.d.ts.map +1 -1
- package/cjs/components/use-tree/use-tree.js +14 -9
- package/cjs/components/use-tree/use-tree.type.d.ts +7 -1
- package/cjs/components/use-tree/use-tree.type.d.ts.map +1 -1
- package/cjs/utils/dom/document.d.ts +4 -0
- package/cjs/utils/dom/document.d.ts.map +1 -1
- package/cjs/utils/dom/document.js +19 -2
- package/cjs/utils/highlight.d.ts.map +1 -1
- package/cjs/utils/highlight.js +24 -11
- package/cjs/utils/number.d.ts +10 -0
- package/cjs/utils/number.d.ts.map +1 -1
- package/cjs/utils/number.js +99 -1
- package/cjs/utils/object.d.ts +6 -0
- package/cjs/utils/object.d.ts.map +1 -1
- package/cjs/utils/object.js +21 -1
- package/cjs/utils/shallow-equal.d.ts +1 -0
- package/cjs/utils/shallow-equal.d.ts.map +1 -1
- package/cjs/utils/shallow-equal.js +9 -0
- package/esm/common/use-position-style/check-border.d.ts +1 -0
- package/esm/common/use-position-style/check-border.d.ts.map +1 -1
- package/esm/common/use-position-style/check-border.js +2 -2
- package/esm/common/use-position-style/index.d.ts.map +1 -1
- package/esm/common/use-position-style/index.js +11 -5
- package/esm/components/use-datepicker/use-date.d.ts.map +1 -1
- package/esm/components/use-datepicker/use-date.js +12 -4
- package/esm/components/use-datepicker/use-date.type.d.ts +2 -1
- package/esm/components/use-datepicker/use-date.type.d.ts.map +1 -1
- package/esm/components/use-datepicker/use-datepicker-format.d.ts +2 -1
- package/esm/components/use-datepicker/use-datepicker-format.d.ts.map +1 -1
- package/esm/components/use-datepicker/use-datepicker-format.js +19 -5
- package/esm/components/use-datepicker/use-datepicker-range.js +2 -2
- package/esm/components/use-datepicker/use-time.d.ts.map +1 -1
- package/esm/components/use-datepicker/use-time.js +4 -2
- package/esm/components/use-datepicker/use-time.type.d.ts +3 -1
- package/esm/components/use-datepicker/use-time.type.d.ts.map +1 -1
- package/esm/components/use-datepicker/util.d.ts +7 -1
- package/esm/components/use-datepicker/util.d.ts.map +1 -1
- package/esm/components/use-datepicker/util.js +11 -1
- package/esm/components/use-form/use-form-context.d.ts.map +1 -1
- package/esm/components/use-form/use-form-context.js +11 -5
- package/esm/components/use-form/use-form-control/use-form-control.d.ts.map +1 -1
- package/esm/components/use-form/use-form-control/use-form-control.js +12 -3
- package/esm/components/use-form/use-form-control/use-form-control.type.d.ts +8 -2
- package/esm/components/use-form/use-form-control/use-form-control.type.d.ts.map +1 -1
- package/esm/components/use-form/use-form-flow/use-form-datum.d.ts +8 -0
- package/esm/components/use-form/use-form-flow/use-form-datum.d.ts.map +1 -1
- package/esm/components/use-form/use-form.d.ts.map +1 -1
- package/esm/components/use-form/use-form.js +12 -8
- package/esm/components/use-form/use-form.type.d.ts +43 -39
- package/esm/components/use-form/use-form.type.d.ts.map +1 -1
- package/esm/components/use-input/use-input-format.d.ts.map +1 -1
- package/esm/components/use-input/use-input-format.js +2 -1
- package/esm/components/use-input/use-input.d.ts.map +1 -1
- package/esm/components/use-input/use-input.js +4 -1
- package/esm/components/use-pagination/use-pagination.d.ts.map +1 -1
- package/esm/components/use-pagination/use-pagination.js +2 -1
- package/esm/components/use-popup/use-popup.d.ts.map +1 -1
- package/esm/components/use-popup/use-popup.js +7 -4
- package/esm/components/use-table/use-table-virtual.d.ts +2 -1
- package/esm/components/use-table/use-table-virtual.d.ts.map +1 -1
- package/esm/components/use-table/use-table-virtual.js +3 -3
- package/esm/components/use-table/use-table.type.d.ts +70 -92
- package/esm/components/use-table/use-table.type.d.ts.map +1 -1
- package/esm/components/use-transfer/index.d.ts +1 -0
- package/esm/components/use-transfer/index.d.ts.map +1 -1
- package/esm/components/use-transfer/index.js +1 -0
- package/esm/components/use-transfer/transfer-context.d.ts +7 -0
- package/esm/components/use-transfer/transfer-context.d.ts.map +1 -0
- package/esm/components/use-transfer/transfer-context.js +6 -0
- package/esm/components/use-tree/use-tree-node.d.ts +7 -1
- package/esm/components/use-tree/use-tree-node.d.ts.map +1 -1
- package/esm/components/use-tree/use-tree-node.js +19 -1
- package/esm/components/use-tree/use-tree.d.ts.map +1 -1
- package/esm/components/use-tree/use-tree.js +14 -9
- package/esm/components/use-tree/use-tree.type.d.ts +7 -1
- package/esm/components/use-tree/use-tree.type.d.ts.map +1 -1
- package/esm/utils/dom/document.d.ts +4 -0
- package/esm/utils/dom/document.d.ts.map +1 -1
- package/esm/utils/dom/document.js +18 -1
- package/esm/utils/highlight.d.ts.map +1 -1
- package/esm/utils/highlight.js +24 -10
- package/esm/utils/number.d.ts +10 -0
- package/esm/utils/number.d.ts.map +1 -1
- package/esm/utils/number.js +98 -1
- package/esm/utils/object.d.ts +6 -0
- package/esm/utils/object.d.ts.map +1 -1
- package/esm/utils/object.js +20 -0
- package/esm/utils/shallow-equal.d.ts +1 -0
- package/esm/utils/shallow-equal.d.ts.map +1 -1
- package/esm/utils/shallow-equal.js +8 -0
- package/package.json +3 -3
package/cjs/utils/highlight.js
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
5
4
|
value: true
|
6
5
|
});
|
@@ -11,6 +10,12 @@ var _is = require("./is");
|
|
11
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
12
11
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
13
12
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
13
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
14
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
15
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
16
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
17
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
18
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
14
19
|
function getHighlightText(_ref) {
|
15
20
|
var nodeList = _ref.nodeList,
|
16
21
|
searchWords = _ref.searchWords,
|
@@ -19,22 +24,31 @@ function getHighlightText(_ref) {
|
|
19
24
|
if (!enable || !searchWords) {
|
20
25
|
return nodeList;
|
21
26
|
}
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
+
|
28
|
+
// 递归转换节点
|
29
|
+
var transformNode = function transformNode(node, index) {
|
30
|
+
// 如果是合法的 React 元素
|
31
|
+
if ( /*#__PURE__*/_react.default.isValidElement(node) && node.props && node.props.children) {
|
32
|
+
// 对 children 递归调用 getHighlightText 进行转换
|
33
|
+
var transformedChildren = getHighlightText({
|
34
|
+
nodeList: node.props.children,
|
27
35
|
searchWords: searchWords,
|
28
|
-
highlightClassName: highlightClassName
|
29
|
-
|
36
|
+
highlightClassName: highlightClassName,
|
37
|
+
enable: enable
|
38
|
+
});
|
39
|
+
return /*#__PURE__*/(0, _react.cloneElement)(node, _objectSpread(_objectSpread({}, node.props), {}, {
|
40
|
+
key: index
|
41
|
+
}), transformedChildren);
|
30
42
|
}
|
31
|
-
|
43
|
+
// 如果节点为字符串,则直接高亮替换
|
44
|
+
if (typeof node === 'string') {
|
32
45
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(HighlightText, {
|
33
46
|
textToHighlight: node,
|
34
47
|
searchWords: searchWords,
|
35
48
|
highlightClassName: highlightClassName
|
36
49
|
});
|
37
50
|
}
|
51
|
+
// 其他情况直接返回原节点
|
38
52
|
return node;
|
39
53
|
};
|
40
54
|
return (0, _is.isArray)(nodeList) ? nodeList.map(transformNode) : transformNode(nodeList);
|
@@ -50,8 +64,7 @@ function HighlightText(_ref2) {
|
|
50
64
|
searchWords = searchWords.slice(0, 500);
|
51
65
|
}
|
52
66
|
|
53
|
-
//
|
54
|
-
// 从而在strArr中可以保留匹配文本
|
67
|
+
// 带 capture group 的正则用于 split 保留匹配文本
|
55
68
|
var re = new RegExp("(".concat((0, _string.escapeRegExp)(searchWords), ")"), 'i');
|
56
69
|
var strArr = textToHighlight.split(re);
|
57
70
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
package/cjs/utils/number.d.ts
CHANGED
@@ -5,4 +5,14 @@ export declare function isE(number: unknown): boolean;
|
|
5
5
|
export declare function getNumberPrecision(number: unknown): number;
|
6
6
|
export declare function sub(num1: number, num2: number): number;
|
7
7
|
export declare function toNum(v: number | string | undefined): number;
|
8
|
+
/**
|
9
|
+
* 格式化数字字符串到指定小数位
|
10
|
+
* @param {string} value 数字字符串
|
11
|
+
* @param {number} precision 小数位数
|
12
|
+
* @returns {string} 格式化后的字符串
|
13
|
+
* @example
|
14
|
+
* console.log(preciseString('111111111111111.888', 2)) // "111111111111111.89"
|
15
|
+
* console.log(preciseString('9.999', 2)) // "10.00"
|
16
|
+
*/
|
17
|
+
export declare const preciseString: (value: string, precision?: number) => string;
|
8
18
|
//# sourceMappingURL=number.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"number.d.ts","sourceRoot":"","sources":["number.ts"],"names":[],"mappings":"AAEA,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,SAAI,YAM3C;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,SAAK,UAEtD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,WAgB1C;AACD,wBAAgB,GAAG,CAAC,MAAM,EAAE,OAAO,WAIlC;AACD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,UAgBjD;AAED,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAY7C;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAe5D"}
|
1
|
+
{"version":3,"file":"number.d.ts","sourceRoot":"","sources":["number.ts"],"names":[],"mappings":"AAEA,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,SAAI,YAM3C;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,SAAK,UAEtD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,WAgB1C;AACD,wBAAgB,GAAG,CAAC,MAAM,EAAE,OAAO,WAIlC;AACD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,UAgBjD;AAED,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAY7C;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAe5D;AAmED;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,UAAW,MAAM,+BAwB1C,CAAA"}
|
package/cjs/utils/number.js
CHANGED
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
});
|
6
6
|
exports.getNumberPrecision = getNumberPrecision;
|
7
7
|
exports.isE = isE;
|
8
|
+
exports.preciseString = void 0;
|
8
9
|
exports.range = range;
|
9
10
|
exports.sub = sub;
|
10
11
|
exports.toNum = toNum;
|
@@ -85,4 +86,101 @@ function toNum(v) {
|
|
85
86
|
return isNaN(parsedValue) ? 0 : parsedValue;
|
86
87
|
}
|
87
88
|
return 0;
|
88
|
-
}
|
89
|
+
}
|
90
|
+
|
91
|
+
/**
|
92
|
+
* 在字符串层面实现四舍五入
|
93
|
+
* @param {string} numStr 数字字符串
|
94
|
+
* @param {number} precision 精度
|
95
|
+
* @returns {string} 四舍五入后的字符串
|
96
|
+
*/
|
97
|
+
function roundString(numStr, precision) {
|
98
|
+
if (precision < 0) return numStr;
|
99
|
+
var parts = numStr.split('.');
|
100
|
+
var intPart = parts[0];
|
101
|
+
var decimalPart = parts[1] || '';
|
102
|
+
if (decimalPart.length <= precision) {
|
103
|
+
return intPart + (decimalPart ? ".".concat(decimalPart.padEnd(precision, '0')) : '');
|
104
|
+
}
|
105
|
+
|
106
|
+
// 需要进行四舍五入
|
107
|
+
var roundPos = precision;
|
108
|
+
var carry = 0;
|
109
|
+
|
110
|
+
// 确定是否需要进位
|
111
|
+
if (parseInt(decimalPart[roundPos], 10) >= 5) carry = 1;
|
112
|
+
|
113
|
+
// 如果不需要进位,直接截断
|
114
|
+
if (carry === 0) {
|
115
|
+
return intPart + (precision > 0 ? ".".concat(decimalPart.slice(0, precision)) : '');
|
116
|
+
}
|
117
|
+
|
118
|
+
// 处理进位
|
119
|
+
var digits = (intPart + (decimalPart ? ".".concat(decimalPart) : '')).replace('.', '').split('');
|
120
|
+
var dotPos = intPart.length;
|
121
|
+
|
122
|
+
// 从小数位开始向前进位
|
123
|
+
var i = dotPos + precision - 1;
|
124
|
+
while (carry > 0 && i >= 0) {
|
125
|
+
// 跳过小数点
|
126
|
+
if (i === dotPos - 1) {
|
127
|
+
i -= 1;
|
128
|
+
continue;
|
129
|
+
}
|
130
|
+
var d = parseInt(digits[i], 10) + carry;
|
131
|
+
digits[i] = (d % 10).toString();
|
132
|
+
carry = Math.floor(d / 10);
|
133
|
+
i -= 1;
|
134
|
+
}
|
135
|
+
|
136
|
+
// 处理最高位进位
|
137
|
+
var result = '';
|
138
|
+
if (carry > 0) result = '1';
|
139
|
+
|
140
|
+
// 重建数字字符串
|
141
|
+
for (var j = 0; j < digits.length; j++) {
|
142
|
+
// 插入小数点
|
143
|
+
if (j === dotPos && precision > 0) result += '.';
|
144
|
+
// 只添加到所需精度
|
145
|
+
if (j < dotPos || j < dotPos + precision) {
|
146
|
+
result += digits[j];
|
147
|
+
}
|
148
|
+
}
|
149
|
+
return result;
|
150
|
+
}
|
151
|
+
|
152
|
+
/**
|
153
|
+
* 格式化数字字符串到指定小数位
|
154
|
+
* @param {string} value 数字字符串
|
155
|
+
* @param {number} precision 小数位数
|
156
|
+
* @returns {string} 格式化后的字符串
|
157
|
+
* @example
|
158
|
+
* console.log(preciseString('111111111111111.888', 2)) // "111111111111111.89"
|
159
|
+
* console.log(preciseString('9.999', 2)) // "10.00"
|
160
|
+
*/
|
161
|
+
var preciseString = exports.preciseString = function preciseString(value) {
|
162
|
+
var precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : -1;
|
163
|
+
// 如果不是数字字符串,则返回原值
|
164
|
+
if (!/^-?\d+(\.\d+)?$/.test(value)) {
|
165
|
+
return value;
|
166
|
+
}
|
167
|
+
|
168
|
+
// 如果不需要格式化精度,直接返回
|
169
|
+
if (precision < 0) return value;
|
170
|
+
|
171
|
+
// 分离整数和小数部分
|
172
|
+
var parts = value.split('.');
|
173
|
+
var intPart = parts[0];
|
174
|
+
var decimalPart = parts[1] || '';
|
175
|
+
|
176
|
+
// 截断或补零
|
177
|
+
if (decimalPart.length > precision) {
|
178
|
+
// 需要四舍五入
|
179
|
+
if (precision < decimalPart.length && parseInt(decimalPart[precision], 10) >= 5) {
|
180
|
+
// 手动实现字符串层面的四舍五入
|
181
|
+
return roundString("".concat(intPart, ".").concat(decimalPart), precision);
|
182
|
+
}
|
183
|
+
return intPart + (precision > 0 ? ".".concat(decimalPart.slice(0, precision)) : '');
|
184
|
+
}
|
185
|
+
return intPart + (precision > 0 ? ".".concat(decimalPart.padEnd(precision, '0')) : '');
|
186
|
+
};
|
package/cjs/utils/object.d.ts
CHANGED
@@ -45,5 +45,11 @@ export declare const getAllKeyPaths: (obj: ObjectType, parentKey?: string) => st
|
|
45
45
|
* console.log(completeFields) // ['user', 'user.name', 'user.age', 'user[0].name', 'user[0].age', 'user[1].name', 'user[1].age']
|
46
46
|
*/
|
47
47
|
export declare const getCompleteFieldKeys: (fields: string | string[], allFields: string[]) => string[];
|
48
|
+
/**
|
49
|
+
* 将对象中的所有值设置为空, 如果值是数组,重置为空数组,如果是对象,重置为空对象,如果是基础类型,重置为undefined
|
50
|
+
* @param obj 对象
|
51
|
+
* @returns 空对象
|
52
|
+
*/
|
53
|
+
export declare const clearValue: (obj: ObjectType) => any;
|
48
54
|
export {};
|
49
55
|
//# sourceMappingURL=object.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"object.d.ts","sourceRoot":"","sources":["object.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,UAGvC;AASD,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAGD,eAAO,MAAM,YAAY,QAAS,UAAU,UAG3C,CAAC;AAGF,eAAO,MAAM,SAAS,2CAEZ,UAAU,YACT,WAAW,eAwBrB,CAAC;AAEF,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,+DA4BxC;AAED,UAAU,cAAc;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,OAAO,WACV,UAAU,QACZ,MAAM,SACL,GAAG,YACD,cAAc,eAiDxB,CAAC;AAEF,eAAO,MAAM,OAAO,WAAY,UAAU,QAAQ,MAAM,YAAW,WAAW,YAyB7E,CAAC;AAEF,eAAO,MAAM,UAAU,WAAY,UAAU,QAAQ,MAAM,eA0B1D,CAAC;AAEF,eAAO,MAAM,OAAO,WAAY,UAAU,QAAQ,MAAM,YAavD,CAAC;AAEF,eAAO,MAAM,OAAO,QAAS,UAAU,YAItC,CAAC;AAEF,eAAO,MAAM,WAAW,wFAQvB,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,QAAS,UAAU,cAAa,MAAM,KAAQ,MAAM,EAoB9E,CAAC;AAGF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,WAAY,MAAM,GAAG,MAAM,EAAE,aAAa,MAAM,EAAE,KAAG,MAAM,EAmB3F,CAAA"}
|
1
|
+
{"version":3,"file":"object.d.ts","sourceRoot":"","sources":["object.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,UAGvC;AASD,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAGD,eAAO,MAAM,YAAY,QAAS,UAAU,UAG3C,CAAC;AAGF,eAAO,MAAM,SAAS,2CAEZ,UAAU,YACT,WAAW,eAwBrB,CAAC;AAEF,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,+DA4BxC;AAED,UAAU,cAAc;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,OAAO,WACV,UAAU,QACZ,MAAM,SACL,GAAG,YACD,cAAc,eAiDxB,CAAC;AAEF,eAAO,MAAM,OAAO,WAAY,UAAU,QAAQ,MAAM,YAAW,WAAW,YAyB7E,CAAC;AAEF,eAAO,MAAM,UAAU,WAAY,UAAU,QAAQ,MAAM,eA0B1D,CAAC;AAEF,eAAO,MAAM,OAAO,WAAY,UAAU,QAAQ,MAAM,YAavD,CAAC;AAEF,eAAO,MAAM,OAAO,QAAS,UAAU,YAItC,CAAC;AAEF,eAAO,MAAM,WAAW,wFAQvB,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,QAAS,UAAU,cAAa,MAAM,KAAQ,MAAM,EAoB9E,CAAC;AAGF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,WAAY,MAAM,GAAG,MAAM,EAAE,aAAa,MAAM,EAAE,KAAG,MAAM,EAmB3F,CAAA;AAGD;;;;GAIG;AACH,eAAO,MAAM,UAAU,QAAS,UAAU,KAAG,GAW5C,CAAC"}
|
package/cjs/utils/object.js
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
4
4
|
value: true
|
5
5
|
});
|
6
|
-
exports.getCompleteFieldKeys = exports.getAllKeyPaths = exports.entries = exports.deepSet = exports.deepRemove = exports.deepMerge = exports.deepHas = exports.deepGet = void 0;
|
6
|
+
exports.getCompleteFieldKeys = exports.getAllKeyPaths = exports.entries = exports.deepSet = exports.deepRemove = exports.deepMerge = exports.deepHas = exports.deepGet = exports.clearValue = void 0;
|
7
7
|
exports.insertPoint = insertPoint;
|
8
8
|
exports.objectValues = void 0;
|
9
9
|
exports.pathGenerator = pathGenerator;
|
@@ -335,4 +335,24 @@ var getCompleteFieldKeys = exports.getCompleteFieldKeys = function getCompleteFi
|
|
335
335
|
|
336
336
|
// 返回之前去重
|
337
337
|
return Array.from(new Set(completeFields));
|
338
|
+
};
|
339
|
+
|
340
|
+
/**
|
341
|
+
* 将对象中的所有值设置为空, 如果值是数组,重置为空数组,如果是对象,重置为空对象,如果是基础类型,重置为undefined
|
342
|
+
* @param obj 对象
|
343
|
+
* @returns 空对象
|
344
|
+
*/
|
345
|
+
var clearValue = exports.clearValue = function clearValue(obj) {
|
346
|
+
if ((0, _is.isArray)(obj)) {
|
347
|
+
return obj.map(function (item) {
|
348
|
+
return clearValue(item);
|
349
|
+
});
|
350
|
+
}
|
351
|
+
if ((0, _is.isObject)(obj)) {
|
352
|
+
return Object.keys(obj).reduce(function (acc, key) {
|
353
|
+
acc[key] = clearValue(obj[key]);
|
354
|
+
return acc;
|
355
|
+
}, {});
|
356
|
+
}
|
357
|
+
return undefined;
|
338
358
|
};
|
@@ -4,5 +4,6 @@ interface Column {
|
|
4
4
|
}
|
5
5
|
export declare function compareColumns(columns1?: Column[], columns2?: Column[]): boolean;
|
6
6
|
export declare function shallowEqual(objA: any, objB?: any, options?: {}): boolean;
|
7
|
+
export declare function shallowEqualExceptFalsely(objA: any, objB?: any, options?: {}): boolean;
|
7
8
|
export default shallowEqual;
|
8
9
|
//# sourceMappingURL=shallow-equal.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"shallow-equal.d.ts","sourceRoot":"","sources":["shallow-equal.ts"],"names":[],"mappings":"AAqBA,UAAU,MAAM;IACd,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB;AACD,wBAAgB,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,WActE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,KAAK,WAyC/D;AAED,eAAe,YAAY,CAAC"}
|
1
|
+
{"version":3,"file":"shallow-equal.d.ts","sourceRoot":"","sources":["shallow-equal.ts"],"names":[],"mappings":"AAqBA,UAAU,MAAM;IACd,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB;AACD,wBAAgB,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,WActE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,KAAK,WAyC/D;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,KAAK,WAO5E;AAED,eAAe,YAAY,CAAC"}
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
exports.compareColumns = compareColumns;
|
7
7
|
exports.default = void 0;
|
8
8
|
exports.shallowEqual = shallowEqual;
|
9
|
+
exports.shallowEqualExceptFalsely = shallowEqualExceptFalsely;
|
9
10
|
var _reactFastCompare = _interopRequireDefault(require("react-fast-compare"));
|
10
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
11
12
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
@@ -74,4 +75,12 @@ function shallowEqual(objA, objB) {
|
|
74
75
|
}
|
75
76
|
return true;
|
76
77
|
}
|
78
|
+
function shallowEqualExceptFalsely(objA, objB) {
|
79
|
+
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
80
|
+
var falselys = [false, 0, '', null, undefined, NaN];
|
81
|
+
if (falselys.includes(objA) && falselys.includes(objB)) {
|
82
|
+
return true;
|
83
|
+
}
|
84
|
+
return shallowEqual(objA, objB, options);
|
85
|
+
}
|
77
86
|
var _default = exports.default = shallowEqual;
|
@@ -1,5 +1,6 @@
|
|
1
1
|
interface UseCheckElementBorderWidthOptions {
|
2
2
|
direction?: 'horizontal' | 'vertical';
|
3
|
+
enable?: boolean;
|
3
4
|
}
|
4
5
|
export declare const useCheckElementBorderWidth: (elementRef: React.RefObject<HTMLElement>, options?: UseCheckElementBorderWidthOptions) => number;
|
5
6
|
export {};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"check-border.d.ts","sourceRoot":"","sources":["check-border.ts"],"names":[],"mappings":"AAEA,UAAU,iCAAiC;IAGzC,SAAS,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;
|
1
|
+
{"version":3,"file":"check-border.d.ts","sourceRoot":"","sources":["check-border.ts"],"names":[],"mappings":"AAEA,UAAU,iCAAiC;IAGzC,SAAS,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACtC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAGD,eAAO,MAAM,0BAA0B,eACzB,MAAM,SAAS,CAAC,WAAW,CAAC,YAC/B,iCAAiC,KACzC,MAqBF,CAAC"}
|
@@ -14,14 +14,14 @@ export var useCheckElementBorderWidth = function useCheckElementBorderWidth(elem
|
|
14
14
|
|
15
15
|
// 获取指定方向上的border宽度之和
|
16
16
|
var getBorderWidth = useCallback(function () {
|
17
|
-
if (elementRef.current) {
|
17
|
+
if (elementRef.current && options.enable) {
|
18
18
|
var _options$direction = options.direction,
|
19
19
|
direction = _options$direction === void 0 ? 'horizontal' : _options$direction;
|
20
20
|
var style = window.getComputedStyle(elementRef.current);
|
21
21
|
var _borderWidth = direction === 'horizontal' ? parseFloat(style.borderLeftWidth) + parseFloat(style.borderRightWidth) : parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth);
|
22
22
|
setBorderWidth(_borderWidth);
|
23
23
|
}
|
24
|
-
}, [elementRef]);
|
24
|
+
}, [elementRef, options.enable]);
|
25
25
|
useEffect(function () {
|
26
26
|
getBorderWidth();
|
27
27
|
}, [getBorderWidth]);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAUpE,MAAM,MAAM,kBAAkB,GAC1B,aAAa,GACb,UAAU,GACV,cAAc,GACd,WAAW,GACX,MAAM,GACN,OAAO,CAAC;AACZ,MAAM,MAAM,gBAAgB,GACxB,aAAa,GACb,cAAc,GACd,UAAU,GACV,WAAW,GACX,KAAK,GACL,QAAQ,CAAC;AAYb,KAAK,YAAY,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,OAAO,CAAC;AACpE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,YAAY,GAAG,SAAS,CAAC;IACnC,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IAEd,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAE1C,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAEzC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3C,YAAY,EAAE,MAAM,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3B;AAsBD,eAAO,MAAM,gBAAgB,WAAY,mBAAmB;;
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAUpE,MAAM,MAAM,kBAAkB,GAC1B,aAAa,GACb,UAAU,GACV,cAAc,GACd,WAAW,GACX,MAAM,GACN,OAAO,CAAC;AACZ,MAAM,MAAM,gBAAgB,GACxB,aAAa,GACb,cAAc,GACd,UAAU,GACV,WAAW,GACX,KAAK,GACL,QAAQ,CAAC;AAYb,KAAK,YAAY,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,OAAO,CAAC;AACpE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,YAAY,GAAG,SAAS,CAAC;IACnC,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IAEd,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAE1C,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAEzC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3C,YAAY,EAAE,MAAM,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3B;AAsBD,eAAO,MAAM,gBAAgB,WAAY,mBAAmB;;CA+S3D,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
@@ -12,7 +12,7 @@ import { useCheckElementBorderWidth } from "./check-border";
|
|
12
12
|
import { useCheckElementSize } from "./check-element-size";
|
13
13
|
import shallowEqual from "../../utils/shallow-equal";
|
14
14
|
import usePersistFn from "../use-persist-fn";
|
15
|
-
import { getCurrentCSSZoom } from "../../utils";
|
15
|
+
import { getCurrentCSSZoom, getScrollPosition } from "../../utils";
|
16
16
|
import { docSize } from "../../utils";
|
17
17
|
var horizontalPosition = ['left-bottom', 'left-top', 'right-bottom', 'right-top', 'left', 'right'];
|
18
18
|
var verticalPosition = ['bottom-left', 'bottom-right', 'top-left', 'top-right', 'bottom', 'top'];
|
@@ -79,7 +79,8 @@ export var usePositionStyle = function usePositionStyle(config) {
|
|
79
79
|
enable: show && adjust
|
80
80
|
});
|
81
81
|
var parentElBorderWidth = useCheckElementBorderWidth(parentElRef, {
|
82
|
-
direction: 'horizontal'
|
82
|
+
direction: 'horizontal',
|
83
|
+
enable: show
|
83
84
|
});
|
84
85
|
var popupElSize = useCheckElementSize(popupElRef, {
|
85
86
|
enable: show
|
@@ -235,7 +236,7 @@ export var usePositionStyle = function usePositionStyle(config) {
|
|
235
236
|
_v = _targetPosition$split4[1];
|
236
237
|
if (_v === 'top') {
|
237
238
|
style.top = rect.top - containerRect.top + containerScroll.top - (offset ? offset[1] : 0);
|
238
|
-
setTransform(style, '');
|
239
|
+
setTransform(style, 'translateX(0%)');
|
239
240
|
} else if (_v === 'bottom') {
|
240
241
|
style.top = rect.bottom - containerRect.top + containerScroll.top + (offset ? offset[1] : 0);
|
241
242
|
setTransform(style, 'translateY(-100%)');
|
@@ -264,10 +265,13 @@ export var usePositionStyle = function usePositionStyle(config) {
|
|
264
265
|
};
|
265
266
|
var rect = context.parentRect;
|
266
267
|
var needCheck = !show || !shallowEqual(context.prevParentPosition, parentElNewPosition);
|
268
|
+
var _getScrollPosition = getScrollPosition(scrollElRef === null || scrollElRef === void 0 ? void 0 : scrollElRef.current),
|
269
|
+
scrollTop = _getScrollPosition.scrollTop,
|
270
|
+
scrollLeft = _getScrollPosition.scrollLeft;
|
267
271
|
if (needCheck && scrollElRef !== null && scrollElRef !== void 0 && scrollElRef.current && (_scrollElRef$current = scrollElRef.current) !== null && _scrollElRef$current !== void 0 && _scrollElRef$current.contains(parentElRef.current)) {
|
268
272
|
var _scrollElRef$current2;
|
269
273
|
var visibleRect = ((_scrollElRef$current2 = scrollElRef.current) === null || _scrollElRef$current2 === void 0 ? void 0 : _scrollElRef$current2.getBoundingClientRect()) || {};
|
270
|
-
if (rect.bottom < visibleRect.top || rect.top > visibleRect.bottom || rect.right < visibleRect.left || rect.left > visibleRect.right) {
|
274
|
+
if (rect.bottom < visibleRect.top || rect.top > visibleRect.bottom + scrollTop || rect.right < visibleRect.left || rect.left > visibleRect.right + scrollLeft) {
|
271
275
|
return {
|
272
276
|
style: hideStyle
|
273
277
|
};
|
@@ -340,7 +344,9 @@ export var usePositionStyle = function usePositionStyle(config) {
|
|
340
344
|
}
|
341
345
|
|
342
346
|
// 当父元素的滚动容器滚动时,判断是否需要更新弹出层位置,包括是否隐藏弹出层(通过hideStyle隐藏,不是show状态)
|
343
|
-
|
347
|
+
if (show) {
|
348
|
+
context.prevParentPosition = parentElNewPosition;
|
349
|
+
}
|
344
350
|
});
|
345
351
|
useEffect(updateStyle, [show, position, absolute, updateKey, fixedWidth, parentElNewPosition, popupElSize]);
|
346
352
|
return {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-date.d.ts","sourceRoot":"","sources":["use-date.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAU/C,QAAA,MAAM,OAAO,UAAW,YAAY;;;;;;;;;;
|
1
|
+
{"version":3,"file":"use-date.d.ts","sourceRoot":"","sources":["use-date.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAU/C,QAAA,MAAM,OAAO,UAAW,YAAY;;;;;;;;;;wBAoBX,IAAI;2BAkDD,IAAI;yBAkBN,IAAI;0BAgEH,IAAI;+BAtFC,IAAI;+BAiDJ,IAAI,YAAY,OAAO;0BAnB5B,IAAI;2BAIH,IAAI;;gCAIC,IAAI;;CA+FpC,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
@@ -22,14 +22,16 @@ var useDate = function useDate(props) {
|
|
22
22
|
cachedDays: []
|
23
23
|
}),
|
24
24
|
context = _useRef.current;
|
25
|
-
var current = props.current === undefined ? currentState : props.current;
|
25
|
+
var current = props.current === undefined || !props.current ? currentState : props.current;
|
26
26
|
var setCurrent = function setCurrent(date) {
|
27
27
|
var _props$onCurrentChang2;
|
28
28
|
if (props.current !== undefined) {
|
29
29
|
var _props$onCurrentChang;
|
30
30
|
(_props$onCurrentChang = props.onCurrentChange) === null || _props$onCurrentChang === void 0 || _props$onCurrentChang.call(props, date);
|
31
31
|
} else {
|
32
|
-
|
32
|
+
if (date) {
|
33
|
+
setCurrentState(date);
|
34
|
+
}
|
33
35
|
}
|
34
36
|
(_props$onCurrentChang2 = props.onCurrentChange) === null || _props$onCurrentChang2 === void 0 || _props$onCurrentChang2.call(props, date);
|
35
37
|
};
|
@@ -104,9 +106,15 @@ var useDate = function useDate(props) {
|
|
104
106
|
var _props$onChange;
|
105
107
|
if (isDisabled(date)) return;
|
106
108
|
var newDate = getDateWithTime(date);
|
107
|
-
|
109
|
+
var index = position === 'start' ? 0 : 1;
|
110
|
+
if (props.allowSingle && props.rangeDate && Array.isArray(props.rangeDate) && props.rangeDate[index] && utils.clearHMS(newDate, options).getTime() === utils.clearHMS(props.rangeDate[index], options).getTime()) {
|
111
|
+
newDate = '';
|
112
|
+
}
|
113
|
+
props === null || props === void 0 || props.onClearInputArr(index);
|
108
114
|
(_props$onChange = props.onChange) === null || _props$onChange === void 0 || _props$onChange.call(props, newDate, noClose);
|
109
|
-
|
115
|
+
if (newDate) {
|
116
|
+
setCurrent(newDate);
|
117
|
+
}
|
110
118
|
};
|
111
119
|
var getTimeStr = function getTimeStr() {
|
112
120
|
var format = props.format,
|
@@ -6,7 +6,8 @@ export interface UseDateProps {
|
|
6
6
|
onCurrentChange?: (date: Date) => void;
|
7
7
|
onClearInputArr: (index?: number | undefined) => void;
|
8
8
|
value?: Date;
|
9
|
-
|
9
|
+
allowSingle?: boolean;
|
10
|
+
onChange?: (date: Date | string, noClose?: boolean) => void;
|
10
11
|
min?: Date;
|
11
12
|
max?: Date;
|
12
13
|
position?: 'start' | 'end';
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-date.type.d.ts","sourceRoot":"","sources":["use-date.type.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;IACpC,cAAc,CAAC,EAAE,IAAI,CAAC;IACtB,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACvC,eAAe,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACtD,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;
|
1
|
+
{"version":3,"file":"use-date.type.d.ts","sourceRoot":"","sources":["use-date.type.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;IACpC,cAAc,CAAC,EAAE,IAAI,CAAC;IACtB,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACvC,eAAe,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACtD,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5D,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,QAAQ,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC;IAC/C,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACrC,OAAO,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH"}
|
@@ -36,7 +36,8 @@ declare const useDatePickerFormat: <Value extends DatePickerValueType>(props: Us
|
|
36
36
|
setTargetArr: React.Dispatch<React.SetStateAction<(Date | undefined)[]>>;
|
37
37
|
handleClear: (e?: React.MouseEvent) => void;
|
38
38
|
handleClearInputArr: (index?: number) => void;
|
39
|
-
handleInputChange: (str: string, index: number) => void;
|
39
|
+
handleInputChange: (str: string, index: number, isFromBlur?: boolean) => void;
|
40
|
+
handleInputBlur: (str: string, index: number) => void;
|
40
41
|
registerModeDisabled: (position: 'start' | 'end' | undefined, mode: string, fn: (d: Date) => boolean) => void;
|
41
42
|
setCurrentArrWithParams: (arg: React.SetStateAction<Date[]>, type: string, quick: {
|
42
43
|
name: React.ReactNode;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-datepicker-format.d.ts","sourceRoot":"","sources":["use-datepicker-format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACzB,MAAM,8BAA8B,CAAC;AAKtC,eAAO,MAAM,qBAAqB,UACzB,mBAAmB,UAClB,MAAM,WACL;IACP,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,yBAOF,CAAC;AAEF,eAAO,MAAM,SAAS,WAAY,MAAM,GAAG,SAAS,QAAQ,MAAM,WAkBjE,CAAC;AA4BF,UAAU,eAAe;IACvB,OAAO,EAAE,CAAC,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC3E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,OAAO,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,eAAO,MAAM,iBAAiB,SAAU,eAAe,2BAOtD,CAAC;AAEF,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;
|
1
|
+
{"version":3,"file":"use-datepicker-format.d.ts","sourceRoot":"","sources":["use-datepicker-format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACzB,MAAM,8BAA8B,CAAC;AAKtC,eAAO,MAAM,qBAAqB,UACzB,mBAAmB,UAClB,MAAM,WACL;IACP,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,yBAOF,CAAC;AAEF,eAAO,MAAM,SAAS,WAAY,MAAM,GAAG,SAAS,QAAQ,MAAM,WAkBjE,CAAC;AA4BF,UAAU,eAAe;IACvB,OAAO,EAAE,CAAC,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC3E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,OAAO,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,eAAO,MAAM,iBAAiB,SAAU,eAAe,2BAOtD,CAAC;AAEF,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;0BA0Ne,gBAAgB;sCAsEJ,MAAM;iCAlCX,MAAM,SAAS,MAAM,eAAe,OAAO;+BA8B7C,MAAM,SAAS,MAAM;yCAzOnD,OAAO,GAAG,KAAK,GAAG,SAAS,QAAQ,MAAM,UAAU,IAAI,KAAK,OAAO;uCAWvE,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC,QAC3B,MAAM;kBACG,MAAM,SAAS;mBAAS,GAAG;;+BA4CrC,IAAI,YAAY,OAAO,GAAG,KAAK,GAAG,SAAS,gBAAgB,MAAM;;CAiP3E,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
@@ -10,7 +10,7 @@ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" !=
|
|
10
10
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
11
11
|
import { useEffect, useRef, useState } from 'react';
|
12
12
|
import dateUtil from "./util";
|
13
|
-
import shallowEqual from "../../utils/shallow-equal";
|
13
|
+
import shallowEqual, { shallowEqualExceptFalsely } from "../../utils/shallow-equal";
|
14
14
|
import { usePersistFn } from "../../common/use-persist-fn";
|
15
15
|
import useLatestObj from "../../common/use-latest-obj";
|
16
16
|
export var convertValueToDateArr = function convertValueToDateArr(value, format, options) {
|
@@ -221,6 +221,7 @@ var useDatePickerFormat = function useDatePickerFormat(props) {
|
|
221
221
|
return getFormatValueArr(dateArr, props.formatResult);
|
222
222
|
} else if (typeof props.formatResult === 'function') {
|
223
223
|
return dateArr.map(function (item) {
|
224
|
+
if (!item) return '';
|
224
225
|
return props.formatResult(item);
|
225
226
|
});
|
226
227
|
} else {
|
@@ -242,8 +243,15 @@ var useDatePickerFormat = function useDatePickerFormat(props) {
|
|
242
243
|
}
|
243
244
|
var formatValue = getFormatValueArr(dateArr);
|
244
245
|
var v = range ? formatValue : formatValue[0];
|
245
|
-
if (
|
246
|
-
|
246
|
+
if (Array.isArray(value) && value.length && Array.isArray(v) && v.length) {
|
247
|
+
// 针对 range 的情况,['2025-01-01',''] 和 ['2025-01-01',undefined] 无法通过 shallowEqual 出来,这边需要放行
|
248
|
+
if (!shallowEqualExceptFalsely(v[0], value[0]) || !shallowEqualExceptFalsely(v[1], value[1])) {
|
249
|
+
onChange === null || onChange === void 0 || onChange(v);
|
250
|
+
}
|
251
|
+
} else {
|
252
|
+
if (!shallowEqual(v, value)) {
|
253
|
+
onChange === null || onChange === void 0 || onChange(v);
|
254
|
+
}
|
247
255
|
}
|
248
256
|
};
|
249
257
|
var getDateArr = function getDateArr() {
|
@@ -316,9 +324,9 @@ var useDatePickerFormat = function useDatePickerFormat(props) {
|
|
316
324
|
}
|
317
325
|
(_props$onClear = props.onClear) === null || _props$onClear === void 0 || _props$onClear.call(props);
|
318
326
|
});
|
319
|
-
var handleInputChange = usePersistFn(function (str, index) {
|
327
|
+
var handleInputChange = usePersistFn(function (str, index, isFromBlur) {
|
320
328
|
// 比较 日期字符串是否符合format格式, 如果符合返回 true 否则返回 false
|
321
|
-
var isValid = dateUtil.isValidString(str, format);
|
329
|
+
var isValid = dateUtil.isValidString(str, format, isFromBlur);
|
322
330
|
if (!isValid) return;
|
323
331
|
var date = dateUtil.toDateWithFormat(str, format, undefined, options);
|
324
332
|
setInputArr(function (prev) {
|
@@ -342,6 +350,11 @@ var useDatePickerFormat = function useDatePickerFormat(props) {
|
|
342
350
|
return arr;
|
343
351
|
});
|
344
352
|
});
|
353
|
+
|
354
|
+
// 失焦时,需要宽松模式校验,eg: 2025-06-16 18:00 和 2025-06-16 18 都可以校验通过
|
355
|
+
var handleInputBlur = usePersistFn(function (str, index) {
|
356
|
+
handleInputChange(str, index, true);
|
357
|
+
});
|
345
358
|
var handleClearInputArr = usePersistFn(function (index) {
|
346
359
|
if (index !== undefined) {
|
347
360
|
setInputArr(function (prev) {
|
@@ -385,6 +398,7 @@ var useDatePickerFormat = function useDatePickerFormat(props) {
|
|
385
398
|
handleClear: handleClear,
|
386
399
|
handleClearInputArr: handleClearInputArr,
|
387
400
|
handleInputChange: handleInputChange,
|
401
|
+
handleInputBlur: handleInputBlur,
|
388
402
|
registerModeDisabled: registerModeDisabled,
|
389
403
|
setCurrentArrWithParams: setCurrentArrWithParams,
|
390
404
|
isDisabledDate: isDisabledDate
|
@@ -30,7 +30,7 @@ var useRangePick = function useRangePick(props) {
|
|
30
30
|
setDateArr(function (arr) {
|
31
31
|
var newArr = _toConsumableArray(arr);
|
32
32
|
newArr[index] = date;
|
33
|
-
if (range && index === 0 && newArr[1]) {
|
33
|
+
if (date && range && index === 0 && newArr[1]) {
|
34
34
|
if (typeof range === 'number') {
|
35
35
|
var rangeMax = utils.addSeconds(date, range, options);
|
36
36
|
if (rangeMax.getTime() < newArr[1].getTime()) {
|
@@ -59,7 +59,7 @@ var useRangePick = function useRangePick(props) {
|
|
59
59
|
var newArr = _toConsumableArray(arr);
|
60
60
|
newArr[index] = date;
|
61
61
|
var modeCache = context.modeCache;
|
62
|
-
if (modeCache[0] === modeCache[1]) {
|
62
|
+
if (date && modeCache[0] === modeCache[1]) {
|
63
63
|
var mode = modeCache[0];
|
64
64
|
if (range && index === 0 && newArr[1]) {
|
65
65
|
if (mode === 'year') {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-time.d.ts","sourceRoot":"","sources":["use-time.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAK/C,QAAA,MAAM,OAAO,UAAW,YAAY;;;;
|
1
|
+
{"version":3,"file":"use-time.d.ts","sourceRoot":"","sources":["use-time.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAK/C,QAAA,MAAM,OAAO,UAAW,YAAY;;;;iBA+HU,MAAM;kBAAQ,IAAI;sBAAY,OAAO;;;;;6BAvBrD,IAAI;2BAlEN,IAAI,gBAAgB,MAAM;;CA8IrD,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
@@ -12,7 +12,9 @@ var useTime = function useTime(props) {
|
|
12
12
|
_props$secondStep = props.secondStep,
|
13
13
|
secondStep = _props$secondStep === void 0 ? 1 : _props$secondStep,
|
14
14
|
staticMin = props.staticMin,
|
15
|
-
staticMax = props.staticMax
|
15
|
+
staticMax = props.staticMax,
|
16
|
+
position = props.position,
|
17
|
+
rangeDate = props.rangeDate;
|
16
18
|
var min = dateUtil.resetTimeByFormat(mi, format, options);
|
17
19
|
var max = dateUtil.resetTimeByFormat(ma, format, options);
|
18
20
|
var current = props.value || dateUtil.newDate(undefined, options);
|
@@ -38,7 +40,7 @@ var useTime = function useTime(props) {
|
|
38
40
|
disabledTime = props.disabledTime;
|
39
41
|
if (disabledTime) {
|
40
42
|
var _time = dateUtil.format(date, dateUtil.TIME_FORMAT, options);
|
41
|
-
if (typeof disabledTime === 'function') return disabledTime(_time);
|
43
|
+
if (typeof disabledTime === 'function') return disabledTime(_time, position, rangeDate === null || rangeDate === void 0 ? void 0 : rangeDate[0], rangeDate === null || rangeDate === void 0 ? void 0 : rangeDate[1]);
|
42
44
|
return disabledTime === _time;
|
43
45
|
}
|
44
46
|
var isDis = disabled && typeof disabled === 'function' ? disabled(date) : false;
|
@@ -11,9 +11,11 @@ export interface UseTimeProps {
|
|
11
11
|
staticMin?: Date;
|
12
12
|
staticMax?: Date;
|
13
13
|
disabled?: boolean | ((date: Date) => boolean);
|
14
|
-
disabledTime?: string | ((time: string) => boolean);
|
14
|
+
disabledTime?: string | ((time: string, type?: 'start' | 'end', value0?: Date, value1?: Date) => boolean);
|
15
15
|
minuteStep?: number;
|
16
16
|
hourStep?: number;
|
17
17
|
secondStep?: number;
|
18
|
+
position?: 'start' | 'end';
|
19
|
+
rangeDate?: Array<Date | undefined>;
|
18
20
|
}
|
19
21
|
//# sourceMappingURL=use-time.type.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-time.type.d.ts","sourceRoot":"","sources":["use-time.type.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC;IAC/C,YAAY,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;
|
1
|
+
{"version":3,"file":"use-time.type.d.ts","sourceRoot":"","sources":["use-time.type.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC;IAC/C,YAAY,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC;IAC1G,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IAC3B,SAAS,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;CACrC"}
|
@@ -20,7 +20,13 @@ declare function isSameWeek(date1: Date, date2: Date, options: DateOptions): boo
|
|
20
20
|
declare function isSameQuarter(date1: Date, date2: Date, options: DateOptions): boolean;
|
21
21
|
declare function isSameYear(date1: Date, date2: Date, options: DateOptions): boolean;
|
22
22
|
declare function isValid(date: DateTimeType): boolean;
|
23
|
-
|
23
|
+
/**
|
24
|
+
* @param date 日期字符串
|
25
|
+
* @param fmt 日期格式
|
26
|
+
* @param isLoose 是否为宽松模式
|
27
|
+
* @returns 是否为有效日期
|
28
|
+
*/
|
29
|
+
declare function isValidString(date: string, fmt: string, isLoose?: boolean): boolean;
|
24
30
|
declare function parse(d: string, fmt?: string, options?: DateOptions): Date;
|
25
31
|
declare function toDate(day: DateTimeType, options?: DateOptions): Date;
|
26
32
|
declare function getDaysOfMonth(dirtyDate: DateTimeType, options: DateOptions): Date[];
|