@sheinx/hooks 3.7.0-beta.4 → 3.7.0-beta.40
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-component-memo/index.d.ts +2 -0
- package/cjs/common/use-component-memo/index.d.ts.map +1 -0
- package/cjs/common/use-component-memo/index.js +13 -0
- package/cjs/common/use-component-memo/use-memo.d.ts +2 -0
- package/cjs/common/use-component-memo/use-memo.d.ts.map +1 -0
- package/cjs/common/{use-memo → use-component-memo}/use-memo.js +2 -2
- package/cjs/common/use-filter/index.d.ts +1 -0
- package/cjs/common/use-filter/index.d.ts.map +1 -1
- package/cjs/common/use-filter/index.js +7 -0
- package/cjs/common/use-filter/use-filter-context.d.ts +7 -0
- package/cjs/common/use-filter/use-filter-context.d.ts.map +1 -0
- package/cjs/common/use-filter/use-filter-context.js +10 -0
- package/cjs/common/use-filter/use-filter.d.ts +1 -0
- package/cjs/common/use-filter/use-filter.d.ts.map +1 -1
- package/cjs/common/use-filter/use-filter.js +2 -0
- package/cjs/common/use-position-style/check-element-size.d.ts +10 -0
- package/cjs/common/use-position-style/check-element-size.d.ts.map +1 -0
- package/cjs/common/use-position-style/check-element-size.js +65 -0
- package/cjs/common/use-position-style/index.d.ts.map +1 -1
- package/cjs/common/use-position-style/index.js +5 -8
- package/cjs/components/use-datepicker/index.d.ts +1 -1
- package/cjs/components/use-datepicker/index.d.ts.map +1 -1
- package/cjs/components/use-datepicker/index.js +23 -2
- package/cjs/components/use-datepicker/use-datepicker-format.d.ts +17 -0
- package/cjs/components/use-datepicker/use-datepicker-format.d.ts.map +1 -1
- package/cjs/components/use-datepicker/use-datepicker-format.js +15 -3
- 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 +15 -2
- package/cjs/components/use-form/use-form-control/use-form-control.type.d.ts +3 -0
- package/cjs/components/use-form/use-form-control/use-form-control.type.d.ts.map +1 -1
- package/cjs/components/use-form/use-form.d.ts +4 -4
- package/cjs/components/use-form/use-form.d.ts.map +1 -1
- package/cjs/components/use-form/use-form.js +54 -26
- package/cjs/components/use-form/use-form.type.d.ts +9 -0
- package/cjs/components/use-form/use-form.type.d.ts.map +1 -1
- package/cjs/components/use-image/use-image.d.ts +2 -0
- package/cjs/components/use-image/use-image.d.ts.map +1 -1
- package/cjs/components/use-image/use-image.js +40 -2
- package/cjs/components/use-popup/popup-context.d.ts +2 -0
- package/cjs/components/use-popup/popup-context.d.ts.map +1 -1
- package/cjs/components/use-popup/popup-context.js +2 -0
- package/cjs/components/use-popup/use-popup.d.ts +4 -0
- package/cjs/components/use-popup/use-popup.d.ts.map +1 -1
- package/cjs/components/use-popup/use-popup.js +33 -13
- package/cjs/components/use-table/index.d.ts +1 -1
- package/cjs/components/use-table/index.d.ts.map +1 -1
- package/cjs/components/use-table/use-table-group.d.ts.map +1 -1
- package/cjs/components/use-table/use-table-group.js +3 -1
- package/cjs/components/use-table/use-table-layout.d.ts.map +1 -1
- package/cjs/components/use-table/use-table-layout.js +0 -1
- package/cjs/components/use-table/use-table-virtual.d.ts +1 -2
- package/cjs/components/use-table/use-table-virtual.d.ts.map +1 -1
- package/cjs/components/use-table/use-table-virtual.js +14 -12
- package/cjs/components/use-table/use-table.type.d.ts +13 -15
- package/cjs/components/use-table/use-table.type.d.ts.map +1 -1
- package/cjs/components/use-tree/use-tree.d.ts.map +1 -1
- package/cjs/components/use-tree/use-tree.js +25 -7
- package/cjs/components/use-tree/use-tree.type.d.ts +1 -0
- package/cjs/components/use-tree/use-tree.type.d.ts.map +1 -1
- package/cjs/components/use-upload/use-upload.d.ts.map +1 -1
- package/cjs/components/use-upload/use-upload.js +54 -34
- package/cjs/components/use-upload/use-upload.type.d.ts +7 -0
- package/cjs/components/use-upload/use-upload.type.d.ts.map +1 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.d.ts.map +1 -1
- package/cjs/index.js +4 -4
- package/cjs/utils/highlight.d.ts +7 -0
- package/cjs/utils/highlight.d.ts.map +1 -0
- package/cjs/utils/highlight.js +67 -0
- package/cjs/utils/index.d.ts +1 -0
- package/cjs/utils/index.d.ts.map +1 -1
- package/cjs/utils/index.js +12 -0
- package/cjs/utils/string.d.ts +1 -0
- package/cjs/utils/string.d.ts.map +1 -1
- package/cjs/utils/string.js +13 -0
- package/esm/common/use-component-memo/index.d.ts +2 -0
- package/esm/common/use-component-memo/index.d.ts.map +1 -0
- package/esm/common/use-component-memo/index.js +2 -0
- package/esm/common/use-component-memo/use-memo.d.ts +2 -0
- package/esm/common/use-component-memo/use-memo.d.ts.map +1 -0
- package/esm/common/{use-memo → use-component-memo}/use-memo.js +1 -1
- package/esm/common/use-filter/index.d.ts +1 -0
- package/esm/common/use-filter/index.d.ts.map +1 -1
- package/esm/common/use-filter/index.js +2 -1
- package/esm/common/use-filter/use-filter-context.d.ts +7 -0
- package/esm/common/use-filter/use-filter-context.d.ts.map +1 -0
- package/esm/common/use-filter/use-filter-context.js +3 -0
- package/esm/common/use-filter/use-filter.d.ts +1 -0
- package/esm/common/use-filter/use-filter.d.ts.map +1 -1
- package/esm/common/use-filter/use-filter.js +2 -0
- package/esm/common/use-position-style/check-element-size.d.ts +10 -0
- package/esm/common/use-position-style/check-element-size.d.ts.map +1 -0
- package/esm/common/use-position-style/check-element-size.js +59 -0
- package/esm/common/use-position-style/index.d.ts.map +1 -1
- package/esm/common/use-position-style/index.js +5 -8
- package/esm/components/use-datepicker/index.d.ts +1 -1
- package/esm/components/use-datepicker/index.d.ts.map +1 -1
- package/esm/components/use-datepicker/index.js +1 -1
- package/esm/components/use-datepicker/use-datepicker-format.d.ts +17 -0
- package/esm/components/use-datepicker/use-datepicker-format.d.ts.map +1 -1
- package/esm/components/use-datepicker/use-datepicker-format.js +14 -2
- 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 +15 -2
- package/esm/components/use-form/use-form-control/use-form-control.type.d.ts +3 -0
- package/esm/components/use-form/use-form-control/use-form-control.type.d.ts.map +1 -1
- package/esm/components/use-form/use-form.d.ts +4 -4
- package/esm/components/use-form/use-form.d.ts.map +1 -1
- package/esm/components/use-form/use-form.js +54 -26
- package/esm/components/use-form/use-form.type.d.ts +9 -0
- package/esm/components/use-form/use-form.type.d.ts.map +1 -1
- package/esm/components/use-image/use-image.d.ts +2 -0
- package/esm/components/use-image/use-image.d.ts.map +1 -1
- package/esm/components/use-image/use-image.js +40 -2
- package/esm/components/use-popup/popup-context.d.ts +2 -0
- package/esm/components/use-popup/popup-context.d.ts.map +1 -1
- package/esm/components/use-popup/popup-context.js +2 -0
- package/esm/components/use-popup/use-popup.d.ts +4 -0
- package/esm/components/use-popup/use-popup.d.ts.map +1 -1
- package/esm/components/use-popup/use-popup.js +34 -14
- package/esm/components/use-table/index.d.ts +1 -1
- package/esm/components/use-table/index.d.ts.map +1 -1
- package/esm/components/use-table/use-table-group.d.ts.map +1 -1
- package/esm/components/use-table/use-table-group.js +3 -1
- package/esm/components/use-table/use-table-layout.d.ts.map +1 -1
- package/esm/components/use-table/use-table-layout.js +0 -1
- package/esm/components/use-table/use-table-virtual.d.ts +1 -2
- package/esm/components/use-table/use-table-virtual.d.ts.map +1 -1
- package/esm/components/use-table/use-table-virtual.js +14 -12
- package/esm/components/use-table/use-table.type.d.ts +13 -15
- package/esm/components/use-table/use-table.type.d.ts.map +1 -1
- package/esm/components/use-tree/use-tree.d.ts.map +1 -1
- package/esm/components/use-tree/use-tree.js +26 -8
- package/esm/components/use-tree/use-tree.type.d.ts +1 -0
- package/esm/components/use-tree/use-tree.type.d.ts.map +1 -1
- package/esm/components/use-upload/use-upload.d.ts.map +1 -1
- package/esm/components/use-upload/use-upload.js +54 -34
- package/esm/components/use-upload/use-upload.type.d.ts +7 -0
- package/esm/components/use-upload/use-upload.type.d.ts.map +1 -1
- package/esm/index.d.ts +1 -1
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +1 -1
- package/esm/utils/highlight.d.ts +7 -0
- package/esm/utils/highlight.d.ts.map +1 -0
- package/esm/utils/highlight.js +59 -0
- package/esm/utils/index.d.ts +1 -0
- package/esm/utils/index.d.ts.map +1 -1
- package/esm/utils/index.js +1 -0
- package/esm/utils/string.d.ts +1 -0
- package/esm/utils/string.d.ts.map +1 -1
- package/esm/utils/string.js +12 -0
- package/package.json +1 -1
- package/cjs/common/use-memo/index.d.ts +0 -2
- package/cjs/common/use-memo/index.d.ts.map +0 -1
- package/cjs/common/use-memo/index.js +0 -20
- package/cjs/common/use-memo/use-memo.d.ts +0 -2
- package/cjs/common/use-memo/use-memo.d.ts.map +0 -1
- package/esm/common/use-memo/index.d.ts +0 -2
- package/esm/common/use-memo/index.d.ts.map +0 -1
- package/esm/common/use-memo/index.js +0 -2
- package/esm/common/use-memo/use-memo.d.ts +0 -2
- package/esm/common/use-memo/use-memo.d.ts.map +0 -1
@@ -10,6 +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 { useState, useEffect, useRef, useMemo } from 'react';
|
12
12
|
import { isFunc, getKey, getFilterTree } from "../../utils";
|
13
|
+
import { FilterContext } from "./use-filter-context";
|
13
14
|
var useFilter = function useFilter(props) {
|
14
15
|
var data = props.data,
|
15
16
|
groupKey = props.groupKey,
|
@@ -151,6 +152,7 @@ var useFilter = function useFilter(props) {
|
|
151
152
|
filterFunc: filterFunc,
|
152
153
|
onCreate: onCreate ? handleCreate : undefined,
|
153
154
|
onFilter: onFilter || onCreate ? handleFilter : undefined,
|
155
|
+
FilterProvider: FilterContext.Provider,
|
154
156
|
// onResetFilter: handleResetData,
|
155
157
|
onClearCreatedData: handleClearCreatedData
|
156
158
|
};
|
@@ -0,0 +1,10 @@
|
|
1
|
+
export interface Size {
|
2
|
+
width?: number;
|
3
|
+
height?: number;
|
4
|
+
}
|
5
|
+
interface UseCheckElementSizeOptions {
|
6
|
+
enable?: boolean;
|
7
|
+
}
|
8
|
+
export declare const useCheckElementSize: (targetElementRef: React.RefObject<HTMLElement>, options?: UseCheckElementSizeOptions) => Size | null;
|
9
|
+
export {};
|
10
|
+
//# sourceMappingURL=check-element-size.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"check-element-size.d.ts","sourceRoot":"","sources":["check-element-size.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,IAAI;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,0BAA0B;IAElC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,mBAAmB,qBACZ,MAAM,SAAS,CAAC,WAAW,CAAC,YACrC,0BAA0B,KAClC,IAAI,GAAG,IAmDT,CAAC"}
|
@@ -0,0 +1,59 @@
|
|
1
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
2
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
3
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
4
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
5
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
6
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
7
|
+
import { useState, useEffect, useRef, useCallback } from 'react';
|
8
|
+
export var useCheckElementSize = function useCheckElementSize(targetElementRef) {
|
9
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
10
|
+
var enable = options.enable;
|
11
|
+
var _useState = useState({
|
12
|
+
width: 0,
|
13
|
+
height: 0
|
14
|
+
}),
|
15
|
+
_useState2 = _slicedToArray(_useState, 2),
|
16
|
+
size = _useState2[0],
|
17
|
+
setSize = _useState2[1];
|
18
|
+
var lastSize = useRef({
|
19
|
+
width: 0,
|
20
|
+
height: 0
|
21
|
+
});
|
22
|
+
var checkSize = useCallback(function () {
|
23
|
+
if (targetElementRef.current) {
|
24
|
+
var rect = targetElementRef.current.getBoundingClientRect();
|
25
|
+
var newSize = {
|
26
|
+
width: rect.width,
|
27
|
+
height: rect.height
|
28
|
+
};
|
29
|
+
if (newSize.width !== lastSize.current.width || newSize.height !== lastSize.current.height) {
|
30
|
+
setSize(newSize);
|
31
|
+
lastSize.current = newSize;
|
32
|
+
}
|
33
|
+
}
|
34
|
+
}, [targetElementRef]);
|
35
|
+
useEffect(function () {
|
36
|
+
var _window;
|
37
|
+
if (!enable) return;
|
38
|
+
var element = targetElementRef.current;
|
39
|
+
if (!element) return;
|
40
|
+
|
41
|
+
// 初始检查
|
42
|
+
checkSize();
|
43
|
+
var resizeObserver = null;
|
44
|
+
if ((_window = window) !== null && _window !== void 0 && _window.ResizeObserver) {
|
45
|
+
resizeObserver = new ResizeObserver(checkSize);
|
46
|
+
resizeObserver.observe(element);
|
47
|
+
}
|
48
|
+
|
49
|
+
// 清理函数
|
50
|
+
return function () {
|
51
|
+
var _resizeObserver;
|
52
|
+
(_resizeObserver = resizeObserver) === null || _resizeObserver === void 0 || _resizeObserver.disconnect();
|
53
|
+
};
|
54
|
+
}, [enable, targetElementRef, checkSize]);
|
55
|
+
if (!enable || !targetElementRef) {
|
56
|
+
return null;
|
57
|
+
}
|
58
|
+
return size;
|
59
|
+
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAUnD,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;AAOD,eAAO,MAAM,gBAAgB,WAAY,mBAAmB;;CAwR3D,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
@@ -9,6 +9,7 @@ import React, { useEffect, useState } from 'react';
|
|
9
9
|
import { getPositionStyle } from "./get-position-style";
|
10
10
|
import { useCheckElementPosition } from "./check-position";
|
11
11
|
import { useCheckElementBorderWidth } from "./check-border";
|
12
|
+
import { useCheckElementSize } from "./check-element-size";
|
12
13
|
import shallowEqual from "../../utils/shallow-equal";
|
13
14
|
import usePersistFn from "../use-persist-fn";
|
14
15
|
import { getCurrentCSSZoom } from "../../utils";
|
@@ -67,6 +68,9 @@ export var usePositionStyle = function usePositionStyle(config) {
|
|
67
68
|
var parentElBorderWidth = useCheckElementBorderWidth(parentElRef, {
|
68
69
|
direction: 'horizontal'
|
69
70
|
});
|
71
|
+
var popupElSize = useCheckElementSize(popupElRef, {
|
72
|
+
enable: show
|
73
|
+
});
|
70
74
|
var adjustPosition = function adjustPosition(position) {
|
71
75
|
var winHeight = docSize.height;
|
72
76
|
if (!verticalPosition.includes(position)) return position;
|
@@ -162,13 +166,6 @@ export var usePositionStyle = function usePositionStyle(config) {
|
|
162
166
|
style.right = containerRect.right - rect.right + containerScrollBarWidth - containerScroll.left - (offset ? offset[0] : 0);
|
163
167
|
style.left = 'auto';
|
164
168
|
style.transform = '';
|
165
|
-
if (adjust) {
|
166
|
-
overLeft = bodyRect.left - (rect.right - context.popUpWidth);
|
167
|
-
if (style.right < 0 && targetRect) {
|
168
|
-
style.left = bodyRect.width - targetRect.width;
|
169
|
-
style.right = 'auto';
|
170
|
-
}
|
171
|
-
}
|
172
169
|
} else {
|
173
170
|
// 居中对齐
|
174
171
|
style.left = rect.left + rect.width / 2 - containerRect.left + containerScroll.left;
|
@@ -310,7 +307,7 @@ export var usePositionStyle = function usePositionStyle(config) {
|
|
310
307
|
// 当父元素的滚动容器滚动时,判断是否需要更新弹出层位置,包括是否隐藏弹出层(通过hideStyle隐藏,不是show状态)
|
311
308
|
context.prevParentPosition = parentElNewPosition;
|
312
309
|
});
|
313
|
-
useEffect(updateStyle, [show, position, absolute, updateKey, fixedWidth, parentElNewPosition]);
|
310
|
+
useEffect(updateStyle, [show, position, absolute, updateKey, fixedWidth, parentElNewPosition, popupElSize]);
|
314
311
|
return {
|
315
312
|
style: style
|
316
313
|
};
|
@@ -1,4 +1,4 @@
|
|
1
|
-
export { default as useDatePickerFormat } from './use-datepicker-format';
|
1
|
+
export { default as useDatePickerFormat, getFormatValueArr, convertValueToDateArr, getFormat, } from './use-datepicker-format';
|
2
2
|
export { default as dateUtil } from './util';
|
3
3
|
export { default as useDatePick } from './use-date';
|
4
4
|
export { default as useYearPick } from './use-year';
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,IAAI,mBAAmB,EAC9B,iBAAiB,EACjB,qBAAqB,EACrB,SAAS,GACV,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACvE,YAAY,EACV,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,GACb,MAAM,8BAA8B,CAAC"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
"use client";
|
2
|
-
export { default as useDatePickerFormat } from "./use-datepicker-format";
|
2
|
+
export { default as useDatePickerFormat, getFormatValueArr, convertValueToDateArr, getFormat } from "./use-datepicker-format";
|
3
3
|
export { default as dateUtil } from "./util";
|
4
4
|
export { default as useDatePick } from "./use-date";
|
5
5
|
export { default as useYearPick } from "./use-year";
|
@@ -1,5 +1,22 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import type { DatePickerModeType, DatePickerValueType, UseDatePickerFormatProps } from './use-datepicker-format.type';
|
3
|
+
export declare const convertValueToDateArr: (value: DatePickerValueType, format: string, options: {
|
4
|
+
timeZone?: string;
|
5
|
+
weekStartsOn?: number;
|
6
|
+
}) => (Date | undefined)[];
|
7
|
+
export declare const getFormat: (format: string | undefined, type: string) => string;
|
8
|
+
interface FormatValueType {
|
9
|
+
dateArr: (Date | undefined)[];
|
10
|
+
format: string;
|
11
|
+
fmt?: string;
|
12
|
+
type: 'date' | 'datetime' | 'month' | 'time' | 'week' | 'year' | 'quarter';
|
13
|
+
clearWithUndefined?: boolean;
|
14
|
+
options: {
|
15
|
+
timeZone?: string;
|
16
|
+
weekStartsOn?: number;
|
17
|
+
};
|
18
|
+
}
|
19
|
+
export declare const getFormatValueArr: (opts: FormatValueType) => (string | undefined)[];
|
3
20
|
declare const useDatePickerFormat: <Value extends DatePickerValueType>(props: UseDatePickerFormatProps<Value>) => {
|
4
21
|
inputArr: (Date | undefined)[];
|
5
22
|
resultArr: (string | undefined)[];
|
@@ -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;
|
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;;;;;;;;;;;;;;;;;0BA6Me,gBAAgB;sCAiEJ,MAAM;iCA7BX,MAAM,SAAS,MAAM;yCA9LrD,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;;CA8N3E,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
@@ -13,14 +13,14 @@ import dateUtil from "./util";
|
|
13
13
|
import shallowEqual from "../../utils/shallow-equal";
|
14
14
|
import { usePersistFn } from "../../common/use-persist-fn";
|
15
15
|
import useLatestObj from "../../common/use-latest-obj";
|
16
|
-
var convertValueToDateArr = function convertValueToDateArr(value, format, options) {
|
16
|
+
export var convertValueToDateArr = function convertValueToDateArr(value, format, options) {
|
17
17
|
var valueArr = Array.isArray(value) ? value : [value];
|
18
18
|
return valueArr.map(function (item) {
|
19
19
|
if (!item) return undefined;
|
20
20
|
return dateUtil.toDateWithFormat(item, format, undefined, options);
|
21
21
|
});
|
22
22
|
};
|
23
|
-
var getFormat = function getFormat(format, type) {
|
23
|
+
export var getFormat = function getFormat(format, type) {
|
24
24
|
if (typeof format === 'string') return format;
|
25
25
|
switch (type) {
|
26
26
|
case 'datetime':
|
@@ -63,6 +63,18 @@ var getDefaultMode = function getDefaultMode(type) {
|
|
63
63
|
var mode = getTypeMode(type);
|
64
64
|
return [mode, mode];
|
65
65
|
};
|
66
|
+
export var getFormatValueArr = function getFormatValueArr(opts) {
|
67
|
+
var dateArr = opts.dateArr,
|
68
|
+
format = opts.format,
|
69
|
+
clearWithUndefined = opts.clearWithUndefined,
|
70
|
+
options = opts.options,
|
71
|
+
type = opts.type;
|
72
|
+
var fmt = getFormat(format, type);
|
73
|
+
return dateArr.map(function (item) {
|
74
|
+
if (!item) return clearWithUndefined ? undefined : '';
|
75
|
+
return dateUtil.format(item, fmt, options);
|
76
|
+
});
|
77
|
+
};
|
66
78
|
var useDatePickerFormat = function useDatePickerFormat(props) {
|
67
79
|
var value = props.value,
|
68
80
|
onChange = props.onChange,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-form-control.d.ts","sourceRoot":"","sources":["use-form-control.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"use-form-control.d.ts","sourceRoot":"","sources":["use-form-control.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,oBAAoB,EAAsB,MAAM,yBAAyB,CAAC;AA2BnF,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC;;kBAiJpC,CAAC,YAAY,GAAG,EAAE;;;;;EA4DrD"}
|
@@ -19,6 +19,7 @@ import { deepGet } from "../../../utils/object";
|
|
19
19
|
import { shallowEqual } from "../../../utils/shallow-equal";
|
20
20
|
import usePersistFn from "../../../common/use-persist-fn";
|
21
21
|
import useLatestObj from "../../../common/use-latest-obj";
|
22
|
+
import { devUseWarning } from "../../../utils/warning";
|
22
23
|
var getValue = function getValue(name, formValue) {
|
23
24
|
if (!name) return undefined;
|
24
25
|
if (isArray(name)) {
|
@@ -58,6 +59,10 @@ export default function useFormControl(props) {
|
|
58
59
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
59
60
|
errorState = _React$useState2[0],
|
60
61
|
setErrorState = _React$useState2[1];
|
62
|
+
var _React$useRef = React.useRef({
|
63
|
+
mounted: false
|
64
|
+
}),
|
65
|
+
context = _React$useRef.current;
|
61
66
|
var value;
|
62
67
|
var error = errorState;
|
63
68
|
var inForm = false;
|
@@ -212,12 +217,20 @@ export default function useFormControl(props) {
|
|
212
217
|
if (isArray(name)) {
|
213
218
|
var dv = isArray(defaultValue) ? defaultValue : [];
|
214
219
|
name.forEach(function (n, index) {
|
215
|
-
|
220
|
+
var v = formFunc === null || formFunc === void 0 ? void 0 : formFunc.getValue(n);
|
221
|
+
var bindedValue = v === undefined ? dv[index] : v;
|
222
|
+
controlFunc.bind(n, context.mounted ? bindedValue : dv[index], validateField, update);
|
216
223
|
});
|
217
224
|
} else {
|
218
|
-
|
225
|
+
var v = formFunc === null || formFunc === void 0 ? void 0 : formFunc.getValue(name);
|
226
|
+
var bindedValue = v === undefined ? defaultValue : v;
|
227
|
+
controlFunc.bind(name, context.mounted ? bindedValue : defaultValue, validateField, update);
|
228
|
+
}
|
229
|
+
if (context.mounted) {
|
230
|
+
devUseWarning.warn('Please avoid modifying the name property after the component has mounted, as this may result in unintended behavior or errors.');
|
219
231
|
}
|
220
232
|
}
|
233
|
+
context.mounted = true;
|
221
234
|
return function () {
|
222
235
|
if (inForm && controlFunc) {
|
223
236
|
if (isArray(name)) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-form-control.type.d.ts","sourceRoot":"","sources":["use-form-control.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACrC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB;;;OAGG;IACH,YAAY,EAAE,CAAC,GAAG,SAAS,CAAC;IAC5B,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC5D;;;OAGG;IACH,WAAW,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC;;;;OAIG;IACH,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IACnC;;OAEG;IACH,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC1D;;;OAGG;IACH,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC3B;;OAEG;IACH,gBAAgB,EAAE,CAAC,MAAM,UAAU,CAAC,GAAG,SAAS,CAAC;CAClD"}
|
1
|
+
{"version":3,"file":"use-form-control.type.d.ts","sourceRoot":"","sources":["use-form-control.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACrC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB;;;OAGG;IACH,YAAY,EAAE,CAAC,GAAG,SAAS,CAAC;IAC5B,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC5D;;;OAGG;IACH,WAAW,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC;;;;OAIG;IACH,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IACnC;;OAEG;IACH,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC1D;;;OAGG;IACH,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC3B;;OAEG;IACH,gBAAgB,EAAE,CAAC,MAAM,UAAU,CAAC,GAAG,SAAS,CAAC;CAClD;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;CAClB"}
|
@@ -11,10 +11,10 @@ declare const useForm: <T extends ObjectType>(props: UseFormProps<T>) => {
|
|
11
11
|
[key: string]: any;
|
12
12
|
}, option?: {
|
13
13
|
validate?: boolean;
|
14
|
-
|
14
|
+
forceUpdate?: boolean;
|
15
15
|
}) => void;
|
16
16
|
getValue: (name?: string) => unknown;
|
17
|
-
submit: (withValidate?: boolean) => void;
|
17
|
+
submit: (withValidate?: boolean, callback?: () => void) => void;
|
18
18
|
reset: () => void;
|
19
19
|
setError: (name: string, e: Error | undefined) => void;
|
20
20
|
getErrors: () => ObjectType<Error | undefined>;
|
@@ -31,10 +31,10 @@ declare const useForm: <T extends ObjectType>(props: UseFormProps<T>) => {
|
|
31
31
|
[key: string]: any;
|
32
32
|
}, option?: {
|
33
33
|
validate?: boolean;
|
34
|
-
|
34
|
+
forceUpdate?: boolean;
|
35
35
|
}) => void;
|
36
36
|
getValue: (name?: string) => unknown;
|
37
|
-
submit: (withValidate?: boolean) => void;
|
37
|
+
submit: (withValidate?: boolean, callback?: () => void) => void;
|
38
38
|
reset: () => void;
|
39
39
|
setError: (name: string, e: Error | undefined) => void;
|
40
40
|
getErrors: () => ObjectType<Error | undefined>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-form.d.ts","sourceRoot":"","sources":["use-form.ts"],"names":[],"mappings":"AA+BA,OAAO,EAEL,aAAa,EACb,YAAY,EACZ,gBAAgB,EAGhB,gBAAgB,EAEjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAe,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAI5D,QAAA,MAAM,OAAO;;;;;;;;;
|
1
|
+
{"version":3,"file":"use-form.d.ts","sourceRoot":"","sources":["use-form.ts"],"names":[],"mappings":"AA+BA,OAAO,EAEL,aAAa,EACb,YAAY,EACZ,gBAAgB,EAGhB,gBAAgB,EAEjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAe,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAI5D,QAAA,MAAM,OAAO;;;;;;;;;wBAiSC;gBAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;gBAAC,WAAW,CAAC,EAAE,OAAO,CAAA;aAAE;8BApKnB,MAAM;oCAwPD,OAAO,aAAoB,MAAM,IAAI;;6BAf3C,MAAM,KAAK,KAAK,GAAG,SAAS;;oCAdrB,MAAM,EAAE;sCAnNxC,MAAM,GAAG,MAAM,EAAE,WAAU,gBAAgB;qCAsRvB,MAAM,WAAW,gBAAgB;gCAhDzB,MAAM,SAAS,MAAM,UAAU,KAAK;gCAKpC,MAAM,SAAS,MAAM;kCA1JpD,MAAM,0BAAyB,qBAAqB;;;;;;oBA2EjD;YAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;YAAC,WAAW,CAAC,EAAE,OAAO,CAAA;SAAE;0BApKnB,MAAM;gCAwPD,OAAO,aAAoB,MAAM,IAAI;;yBAf3C,MAAM,KAAK,KAAK,GAAG,SAAS;;gCAdrB,MAAM,EAAE;kCAnNxC,MAAM,GAAG,MAAM,EAAE,WAAU,gBAAgB;iCAsRvB,MAAM,WAAW,gBAAgB;4BAhDzB,MAAM,SAAS,MAAM,UAAU,KAAK;4BAKpC,MAAM,SAAS,MAAM;8BA1JpD,MAAM,0BAAyB,qBAAqB;;CAsc9D,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
@@ -38,7 +38,8 @@ var useForm = function useForm(props) {
|
|
38
38
|
size = props.size,
|
39
39
|
colon = props.colon,
|
40
40
|
formName = props.name,
|
41
|
-
scrollParent = props.scrollParent
|
41
|
+
scrollParent = props.scrollParent,
|
42
|
+
isControl = props.isControl;
|
42
43
|
var deepSetOptions = {
|
43
44
|
removeUndefined: removeUndefined,
|
44
45
|
forceSet: true
|
@@ -60,7 +61,8 @@ var useForm = function useForm(props) {
|
|
60
61
|
resetTime: 0,
|
61
62
|
mounted: false,
|
62
63
|
unmounted: false,
|
63
|
-
removeLock: false
|
64
|
+
removeLock: false,
|
65
|
+
settingMap: {}
|
64
66
|
}),
|
65
67
|
context = _React$useRef.current;
|
66
68
|
var update = function update(name) {
|
@@ -192,7 +194,7 @@ var useForm = function useForm(props) {
|
|
192
194
|
if (errors.length > 0) {
|
193
195
|
var errorFields = [];
|
194
196
|
for (var _key in context.errors) {
|
195
|
-
if (context.errors[_key]) {
|
197
|
+
if (context.errors[_key] && context.names.has(_key)) {
|
196
198
|
var _context$errors$_key;
|
197
199
|
errorFields.push({
|
198
200
|
name: _key,
|
@@ -294,16 +296,28 @@ var useForm = function useForm(props) {
|
|
294
296
|
var values = Object.keys(vals);
|
295
297
|
// 针对 name 为数组模式,如 datepicker 的 name={['startTime', 'endTime']} 时,前者校验可能需要依赖后者,因此需要提前将后者数据整合至 draft 用于多字段整合校验
|
296
298
|
values.forEach(function (key) {
|
297
|
-
|
299
|
+
// upload组件返回的可能是函数: (prev) => [...prev, file]
|
300
|
+
var valueOfKey = typeof vals[key] === 'function' ? vals[key](getValue(key)) : vals[key];
|
301
|
+
deepSet(draft, key, valueOfKey, deepSetOptions);
|
302
|
+
// 设置 settingMap 用于标记该字段正在被设置值
|
303
|
+
context.settingMap[key] = true;
|
298
304
|
});
|
299
305
|
values.forEach(function (key) {
|
300
306
|
if (option.validate) {
|
301
307
|
var _context$validateMap$;
|
302
308
|
(_context$validateMap$ = context.validateMap[key]) === null || _context$validateMap$ === void 0 || _context$validateMap$.forEach(function (validate) {
|
303
|
-
|
309
|
+
var valueOfKey = typeof vals[key] === 'function' ? vals[key](getValue(key)) : vals[key];
|
310
|
+
validate(key, valueOfKey, current(draft));
|
304
311
|
});
|
305
312
|
}
|
306
313
|
});
|
314
|
+
|
315
|
+
// 设置 settingMap 的值为 false,表示该字段设置值完成
|
316
|
+
setTimeout(function () {
|
317
|
+
values.forEach(function (key) {
|
318
|
+
delete context.settingMap[key];
|
319
|
+
});
|
320
|
+
});
|
307
321
|
});
|
308
322
|
|
309
323
|
// 获取vals的所有key,包括嵌套对象的key
|
@@ -311,7 +325,11 @@ var useForm = function useForm(props) {
|
|
311
325
|
fullKeyPaths.forEach(function (key) {
|
312
326
|
delete context.serverErrors[key];
|
313
327
|
});
|
314
|
-
|
328
|
+
if (option.forceUpdate) {
|
329
|
+
update();
|
330
|
+
} else {
|
331
|
+
update(fullKeyPaths);
|
332
|
+
}
|
315
333
|
});
|
316
334
|
var updateDefaultValue = function updateDefaultValue() {
|
317
335
|
if (!context.mounted) return;
|
@@ -356,6 +374,7 @@ var useForm = function useForm(props) {
|
|
356
374
|
});
|
357
375
|
var submit = usePersistFn(function () {
|
358
376
|
var withValidate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
377
|
+
var callback = arguments.length > 1 ? arguments[1] : undefined;
|
359
378
|
if (disabled) return;
|
360
379
|
if (context.submitLock) {
|
361
380
|
return;
|
@@ -373,32 +392,29 @@ var useForm = function useForm(props) {
|
|
373
392
|
while (1) switch (_context.prev = _context.next) {
|
374
393
|
case 0:
|
375
394
|
if (withValidate) {
|
376
|
-
_context.next =
|
395
|
+
_context.next = 4;
|
377
396
|
break;
|
378
397
|
}
|
379
398
|
(_props$onSubmit = props.onSubmit) === null || _props$onSubmit === void 0 || _props$onSubmit.call(props, (_context$value = context.value) !== null && _context$value !== void 0 ? _context$value : {});
|
399
|
+
callback === null || callback === void 0 || callback();
|
380
400
|
return _context.abrupt("return");
|
381
|
-
case
|
382
|
-
_context.next =
|
401
|
+
case 4:
|
402
|
+
_context.next = 6;
|
383
403
|
return validateFields(undefined, {
|
384
404
|
ignoreBind: true
|
385
405
|
}).catch(function (e) {
|
386
406
|
return e;
|
387
407
|
});
|
388
|
-
case
|
408
|
+
case 6:
|
389
409
|
result = _context.sent;
|
390
|
-
if (
|
391
|
-
|
392
|
-
|
410
|
+
if (result === true) {
|
411
|
+
(_props$onSubmit2 = props.onSubmit) === null || _props$onSubmit2 === void 0 || _props$onSubmit2.call(props, (_context$value2 = context.value) !== null && _context$value2 !== void 0 ? _context$value2 : {});
|
412
|
+
if (activeEl) activeEl.focus();
|
413
|
+
} else {
|
414
|
+
handleSubmitError(result);
|
393
415
|
}
|
394
|
-
|
395
|
-
|
396
|
-
_context.next = 13;
|
397
|
-
break;
|
398
|
-
case 11:
|
399
|
-
handleSubmitError(result);
|
400
|
-
return _context.abrupt("return");
|
401
|
-
case 13:
|
416
|
+
callback === null || callback === void 0 || callback();
|
417
|
+
case 9:
|
402
418
|
case "end":
|
403
419
|
return _context.stop();
|
404
420
|
}
|
@@ -482,11 +498,20 @@ var useForm = function useForm(props) {
|
|
482
498
|
context.updateMap[n] = new Set();
|
483
499
|
}
|
484
500
|
context.updateMap[n].add(updateFn);
|
501
|
+
var shouldTriggerResetChange = context.removeArr.has(n);
|
485
502
|
context.removeArr.delete(n);
|
486
|
-
|
503
|
+
var currentValue = deepGet(context.value, n);
|
504
|
+
var shouldTriggerDefaultChange = df !== undefined && currentValue === undefined;
|
505
|
+
if (shouldTriggerDefaultChange || shouldTriggerResetChange) {
|
487
506
|
if (!context.mounted) context.defaultValues[n] = df;
|
507
|
+
var _defaultValue = df;
|
508
|
+
|
509
|
+
// 如果组件是重新 bind ,比如更改了 key 或者通过三元表达式切换了组件但 name 都是相同的情况下,在切换过程中改了 value 的值(比如通过 datum.set),需要阻止 defaultValue 的上位,按照当前的 value 来设置 defaultValue
|
510
|
+
if (shouldTriggerResetChange && context.settingMap[n]) {
|
511
|
+
_defaultValue = currentValue !== undefined ? currentValue : df;
|
512
|
+
}
|
488
513
|
onChange(function (v) {
|
489
|
-
deepSet(v, n,
|
514
|
+
deepSet(v, n, _defaultValue, deepSetOptions);
|
490
515
|
});
|
491
516
|
update(n);
|
492
517
|
}
|
@@ -503,7 +528,6 @@ var useForm = function useForm(props) {
|
|
503
528
|
}
|
504
529
|
if (validateFieldSet.size === 0 && updateFieldSet.size === 0) {
|
505
530
|
context.names.delete(n);
|
506
|
-
delete context.errors[n];
|
507
531
|
delete context.defaultValues[n];
|
508
532
|
}
|
509
533
|
var finalReserveAble = (_props$reserveAble = props.reserveAble) !== null && _props$reserveAble !== void 0 ? _props$reserveAble : reserveAble;
|
@@ -598,7 +622,10 @@ var useForm = function useForm(props) {
|
|
598
622
|
React.useEffect(function () {
|
599
623
|
context.removeLock = false;
|
600
624
|
// 内部 onChange 改的 value, 不需要更新
|
601
|
-
if (props.value === context.value)
|
625
|
+
if (props.value === context.value) {
|
626
|
+
if (!isControl) update();
|
627
|
+
return;
|
628
|
+
}
|
602
629
|
if (initValidate && !context.resetTime) {
|
603
630
|
var keys = Object.keys(context.validateMap).filter(function (key) {
|
604
631
|
var oldValue = deepGet(preValue || emptyObj, key);
|
@@ -608,7 +635,8 @@ var useForm = function useForm(props) {
|
|
608
635
|
validateFields(keys).catch(function () {});
|
609
636
|
}
|
610
637
|
update();
|
611
|
-
|
638
|
+
// 默认值上位时会提前触发外部的onChange, 导致外部的多次setFormValue不能合并后生效的问题(ReactDOM.render方式渲染)
|
639
|
+
setTimeout(updateDefaultValue);
|
612
640
|
context.resetTime = 0;
|
613
641
|
}, [props.value]);
|
614
642
|
React.useEffect(function () {
|
@@ -58,6 +58,13 @@ export interface FormLabelConfig {
|
|
58
58
|
* @default false
|
59
59
|
*/
|
60
60
|
keepErrorHeight?: boolean;
|
61
|
+
/**
|
62
|
+
* @en Whether to keep the error message below the form item, the default is false
|
63
|
+
* @cn 是否保持错误信息在提示信息下方
|
64
|
+
* @default false
|
65
|
+
* @version 3.7.0
|
66
|
+
*/
|
67
|
+
keepErrorBelow?: boolean;
|
61
68
|
/**
|
62
69
|
* @en When inline is true, the form is horizontal layout
|
63
70
|
* @cn 是否水平布局
|
@@ -187,6 +194,7 @@ export interface BaseFormProps<T> extends Omit<FormCommonConfig, 'formName'> {
|
|
187
194
|
}
|
188
195
|
export type UseFormProps<T> = BaseFormProps<T> & {
|
189
196
|
formElRef: React.RefObject<HTMLFormElement>;
|
197
|
+
isControl: boolean;
|
190
198
|
};
|
191
199
|
export type FormContext = {
|
192
200
|
defaultValues: ObjectType;
|
@@ -208,6 +216,7 @@ export type FormContext = {
|
|
208
216
|
unmounted: boolean;
|
209
217
|
removeLock: boolean;
|
210
218
|
ignoreValidateFields: string[];
|
219
|
+
settingMap: ObjectType<boolean>;
|
211
220
|
};
|
212
221
|
export type UseFormSlotOwnProps = {
|
213
222
|
onSubmit: any;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-form.type.d.ts","sourceRoot":"","sources":["use-form.type.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE/C,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,MAAM,EAAE,CAAC,CAAC;IACV,WAAW,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,EAAE,CAAC;CACL;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,CACvB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,GAAG,EACV,QAAQ,EAAE,UAAU,EACpB,MAAM,CAAC,EAAE,gBAAgB,KACtB,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;AAE/B,MAAM,MAAM,QAAQ,GAAG,CACrB,SAAS,EAAE,UAAU,EACrB,MAAM,EAAE,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,EACrC,YAAY,EAAE,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC,KACxC,IAAI,CAAC;AAEV,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE;QACL,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAC;QAC7F,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,KAAK,IAAI,CAAC;QAC3E,YAAY,EAAE,CAAC,SAAS,EACtB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,YAAY,CAAC,SAAS,CAAC,KAC/B,YAAY,CAAC,SAAS,CAAC,CAAC;QAC7B,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;QACjE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;KACpE,CAAC;IACF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AACD,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,SAAS,EAAE,oBAAoB,CAAC;IAChC,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;IACtC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC;IACjD;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;
|
1
|
+
{"version":3,"file":"use-form.type.d.ts","sourceRoot":"","sources":["use-form.type.ts"],"names":[],"mappings":"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"}
|
@@ -14,6 +14,8 @@ declare const useImage: (props?: BaseImageProps) => {
|
|
14
14
|
onClick: (event: React.MouseEvent<HTMLImageElement | HTMLDivElement>) => void;
|
15
15
|
};
|
16
16
|
getImageProps: <TOther_1 extends ObjectType = ObjectType>(externalProps?: TOther_1) => {
|
17
|
+
style: React.CSSProperties;
|
18
|
+
} & {
|
17
19
|
[x: string]: (event: any) => void;
|
18
20
|
} & TOther_1 & {
|
19
21
|
alt: string | undefined;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-image.d.ts","sourceRoot":"","sources":["use-image.ts"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AACzC,OAAO,EAAe,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAWlD,QAAA,MAAM,QAAQ,WAAW,cAAc;;;;;;;;;;
|
1
|
+
{"version":3,"file":"use-image.d.ts","sourceRoot":"","sources":["use-image.ts"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AACzC,OAAO,EAAe,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAWlD,QAAA,MAAM,QAAQ,WAAW,cAAc;;;;;;;;;;yBAiG3B,gBAAgB,CAAC,gBAAgB,GAAG,cAAc,CAAC;;;;;;;;;;;;;CAoF9D,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|