tntd 3.0.50 → 3.0.52-beta.1
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/es/_util/hooks/useScrollLock.js +68 -0
- package/es/_util/hooks/useScrollLock.js.map +1 -0
- package/es/anchor/anchor.js +137 -0
- package/es/anchor/anchor.js.map +1 -0
- package/es/anchor/anchor.less +114 -0
- package/es/anchor/index.js +7 -9
- package/es/anchor/index.js.map +1 -1
- package/es/array-input/index.js +21 -10
- package/es/array-input/index.js.map +1 -1
- package/es/array-input/index.less +129 -0
- package/es/ellipsis/index.js +11 -1
- package/es/ellipsis/index.js.map +1 -1
- package/es/form/style/index.less +5 -5
- package/es/form/style/mixin.less +5 -1
- package/es/index.js +7 -0
- package/es/index.js.map +1 -1
- package/es/page-loading/index.less +4 -4
- package/es/page-loading/loading.gif +0 -0
- package/es/query-form/Field/Checkbox.js +1 -1
- package/es/query-form/Field/Checkbox.js.map +1 -1
- package/es/query-form/Field/Composition/FieldPopover.js +17 -111
- package/es/query-form/Field/Composition/FieldPopover.js.map +1 -1
- package/es/query-form/Field/Composition/FieldPopover.less +9 -3
- package/es/query-form/Field/Composition/Select.js +13 -109
- package/es/query-form/Field/Composition/SelectInput.js +10 -87
- package/es/query-form/Field/Composition/ValueTag.js +12 -88
- package/es/query-form/Field/Composition/ValueTag.js.map +1 -1
- package/es/query-form/Field/Composition/index.js +17 -121
- package/es/query-form/Field/Composition/index.less +36 -14
- package/es/query-form/Field/Composition/utils.js +1 -5
- package/es/query-form/Field/SelectInput.js +16 -12
- package/es/query-form/Field/SelectInput.js.map +1 -1
- package/es/query-form/Field/fieldsMap.js +2 -2
- package/es/query-form/Field/fieldsMap.js.map +1 -1
- package/es/query-form/Field/index.js +2 -1
- package/es/query-form/Field/index.js.map +1 -1
- package/es/query-form/index.js +226 -357
- package/es/query-form/index.js.map +1 -1
- package/es/query-form/index.less +26 -63
- package/es/query-list-scene/List.js +16 -3
- package/es/query-list-scene/List.js.map +1 -1
- package/es/query-list-scene/QueryForm.js +35 -13
- package/es/query-list-scene/QueryForm.js.map +1 -1
- package/es/query-list-scene/index.js +2 -1
- package/es/query-list-scene/index.js.map +1 -1
- package/es/scroll-bar/Bar.js +10 -87
- package/es/scroll-bar/Context.js +1 -5
- package/es/scroll-bar/ScrollBar.js +4 -39
- package/es/scroll-bar/Thumb.js +10 -87
- package/es/scroll-bar/index.js +1 -5
- package/es/scroll-bar/util.js +4 -31
- package/es/table/hooks/use-column-setting.js.map +1 -1
- package/es/table/resizableTable/index.less +1 -1
- package/es/table/table.js +8 -2
- package/es/table/table.js.map +1 -1
- package/es/tntd-form/style/mixin.less +3 -3
- package/es/tntd-form/style/status.less +2 -2
- package/es/tntd-rc-select/style/index.less +20 -2
- package/es/tntd-select/index.js.map +1 -1
- package/es/tntd-virtual-tree/index.js +0 -3
- package/es/tntd-virtual-tree/index.js.map +1 -1
- package/es/tooltip/tooltip.js +19 -5
- package/es/tooltip/tooltip.js.map +1 -1
- package/lib/_util/hooks/useScrollLock.d.ts +9 -0
- package/lib/_util/hooks/useScrollLock.d.ts.map +1 -0
- package/lib/_util/hooks/useScrollLock.js +114 -0
- package/lib/_util/hooks/useScrollLock.js.map +1 -0
- package/lib/anchor/anchor.d.ts +15 -0
- package/lib/anchor/anchor.d.ts.map +1 -0
- package/lib/anchor/anchor.js +214 -0
- package/lib/anchor/anchor.js.map +1 -0
- package/lib/anchor/anchor.less +114 -0
- package/lib/anchor/index.d.ts +3 -2
- package/lib/anchor/index.d.ts.map +1 -1
- package/lib/anchor/index.js +7 -40
- package/lib/anchor/index.js.map +1 -1
- package/lib/array-input/index.d.ts.map +1 -1
- package/lib/array-input/index.js +21 -10
- package/lib/array-input/index.js.map +1 -1
- package/lib/array-input/index.less +129 -0
- package/lib/ellipsis/index.d.ts.map +1 -1
- package/lib/ellipsis/index.js +11 -1
- package/lib/ellipsis/index.js.map +1 -1
- package/lib/form/style/index.less +5 -5
- package/lib/form/style/mixin.less +5 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +7 -0
- package/lib/index.js.map +1 -1
- package/lib/notification/assets/svg-error-tip.d.ts +1 -1
- package/lib/notification/assets/svg-success-tip.d.ts +1 -1
- package/lib/page-loading/index.less +4 -4
- package/lib/page-loading/loading.gif +0 -0
- package/lib/query-form/Field/Checkbox.js +1 -1
- package/lib/query-form/Field/Checkbox.js.map +1 -1
- package/lib/query-form/Field/Composition/FieldPopover.js +4 -2
- package/lib/query-form/Field/Composition/FieldPopover.js.map +1 -1
- package/lib/query-form/Field/Composition/FieldPopover.less +9 -3
- package/lib/query-form/Field/Composition/ValueTag.d.ts.map +1 -1
- package/lib/query-form/Field/Composition/ValueTag.js +2 -1
- package/lib/query-form/Field/Composition/ValueTag.js.map +1 -1
- package/lib/query-form/Field/Composition/index.less +36 -14
- package/lib/query-form/Field/SelectInput.d.ts.map +1 -1
- package/lib/query-form/Field/SelectInput.js +16 -12
- package/lib/query-form/Field/SelectInput.js.map +1 -1
- package/lib/query-form/Field/fieldsMap.d.ts +6 -3
- package/lib/query-form/Field/fieldsMap.d.ts.map +1 -1
- package/lib/query-form/Field/fieldsMap.js +2 -2
- package/lib/query-form/Field/fieldsMap.js.map +1 -1
- package/lib/query-form/Field/index.d.ts.map +1 -1
- package/lib/query-form/Field/index.js +2 -1
- package/lib/query-form/Field/index.js.map +1 -1
- package/lib/query-form/index.d.ts +1 -36
- package/lib/query-form/index.d.ts.map +1 -1
- package/lib/query-form/index.js +262 -397
- package/lib/query-form/index.js.map +1 -1
- package/lib/query-form/index.less +26 -63
- package/lib/query-list-scene/List.d.ts.map +1 -1
- package/lib/query-list-scene/List.js +16 -3
- package/lib/query-list-scene/List.js.map +1 -1
- package/lib/query-list-scene/QueryForm.d.ts +5 -4
- package/lib/query-list-scene/QueryForm.d.ts.map +1 -1
- package/lib/query-list-scene/QueryForm.js +35 -13
- package/lib/query-list-scene/QueryForm.js.map +1 -1
- package/lib/query-list-scene/index.d.ts.map +1 -1
- package/lib/query-list-scene/index.js +2 -1
- package/lib/query-list-scene/index.js.map +1 -1
- package/lib/segmented/index.d.ts +1 -1
- package/lib/svg-components/illustration-403.d.ts +1 -1
- package/lib/svg-components/illustration-404.d.ts +1 -1
- package/lib/svg-components/illustration-500.d.ts +1 -1
- package/lib/svg-components/illustration-empty.d.ts +1 -1
- package/lib/svg-components/illustration-failure.d.ts +1 -1
- package/lib/svg-components/illustration-no-access.d.ts +1 -1
- package/lib/svg-components/illustration-no-chart.d.ts +1 -1
- package/lib/svg-components/illustration-no-result.d.ts +1 -1
- package/lib/svg-components/illustration-offline.d.ts +1 -1
- package/lib/svg-components/illustration-success.d.ts +1 -1
- package/lib/table/assets/image-loading-background.d.ts +1 -1
- package/lib/table/assets/image-loading.d.ts +1 -1
- package/lib/table/hooks/use-column-setting.d.ts +1 -0
- package/lib/table/hooks/use-column-setting.d.ts.map +1 -1
- package/lib/table/hooks/use-column-setting.js.map +1 -1
- package/lib/table/resizableTable/index.less +1 -1
- package/lib/table/table.d.ts.map +1 -1
- package/lib/table/table.js +8 -2
- package/lib/table/table.js.map +1 -1
- package/lib/tntd-form/style/mixin.less +3 -3
- package/lib/tntd-form/style/status.less +2 -2
- package/lib/tntd-rc-select/style/index.less +20 -2
- package/lib/tntd-select/index.d.ts.map +1 -1
- package/lib/tntd-select/index.js.map +1 -1
- package/lib/tntd-virtual-tree/index.js +0 -3
- package/lib/tntd-virtual-tree/index.js.map +1 -1
- package/lib/tooltip/tooltip.d.ts +1 -0
- package/lib/tooltip/tooltip.d.ts.map +1 -1
- package/lib/tooltip/tooltip.js +23 -9
- package/lib/tooltip/tooltip.js.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
var _debounce2 = _interopRequireDefault(require("lodash/debounce"));
|
|
8
|
+
var _throttle2 = _interopRequireDefault(require("lodash/throttle"));
|
|
9
|
+
var _react = require("react");
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
11
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
12
|
+
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."); }
|
|
13
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
14
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
15
|
+
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; } }
|
|
16
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
17
|
+
// ==================== 优化版 Hook ====================
|
|
18
|
+
var _default = exports["default"] = function _default(config) {
|
|
19
|
+
var _ref = config || {},
|
|
20
|
+
_ref$enableScrollObse = _ref.enableScrollObserver,
|
|
21
|
+
enableScrollObserver = _ref$enableScrollObse === void 0 ? true : _ref$enableScrollObse,
|
|
22
|
+
_ref$debounceTime = _ref.debounceTime,
|
|
23
|
+
debounceTime = _ref$debounceTime === void 0 ? 100 : _ref$debounceTime,
|
|
24
|
+
_ref$throttleTime = _ref.throttleTime,
|
|
25
|
+
throttleTime = _ref$throttleTime === void 0 ? 50 : _ref$throttleTime,
|
|
26
|
+
_ref$scrollContainer = _ref.scrollContainer,
|
|
27
|
+
scrollContainer = _ref$scrollContainer === void 0 ? window : _ref$scrollContainer;
|
|
28
|
+
var _useState = (0, _react.useState)(false),
|
|
29
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
30
|
+
isScrolling = _useState2[0],
|
|
31
|
+
setIsScrolling = _useState2[1];
|
|
32
|
+
var throttledHandlerRef = (0, _react.useRef)();
|
|
33
|
+
var debouncedEndRef = (0, _react.useRef)();
|
|
34
|
+
// ==================== 核心逻辑 ====================
|
|
35
|
+
var handleScroll = (0, _react.useCallback)(function () {
|
|
36
|
+
var _a;
|
|
37
|
+
// 标记开始滚动
|
|
38
|
+
setIsScrolling(true);
|
|
39
|
+
// 启动防抖结束检测
|
|
40
|
+
(_a = debouncedEndRef.current) === null || _a === void 0 ? void 0 : _a.cancel();
|
|
41
|
+
debouncedEndRef.current = (0, _debounce2["default"])(function () {
|
|
42
|
+
return setIsScrolling(false);
|
|
43
|
+
}, debounceTime);
|
|
44
|
+
debouncedEndRef.current();
|
|
45
|
+
}, [debounceTime]);
|
|
46
|
+
// ==================== 事件监听 ====================
|
|
47
|
+
(0, _react.useEffect)(function () {
|
|
48
|
+
var container = scrollContainer || window;
|
|
49
|
+
if (!container || !enableScrollObserver) return;
|
|
50
|
+
// 使用 lodash 节流包装处理函数
|
|
51
|
+
throttledHandlerRef.current = (0, _throttle2["default"])(handleScroll, throttleTime, {
|
|
52
|
+
leading: true,
|
|
53
|
+
trailing: true
|
|
54
|
+
});
|
|
55
|
+
var options = {
|
|
56
|
+
passive: true
|
|
57
|
+
};
|
|
58
|
+
container.addEventListener('scroll', throttledHandlerRef.current, options);
|
|
59
|
+
return function () {
|
|
60
|
+
var _a, _b;
|
|
61
|
+
// 清理事件和定时器
|
|
62
|
+
container.removeEventListener('scroll', throttledHandlerRef.current, options);
|
|
63
|
+
(_a = throttledHandlerRef.current) === null || _a === void 0 ? void 0 : _a.cancel();
|
|
64
|
+
(_b = debouncedEndRef.current) === null || _b === void 0 ? void 0 : _b.cancel();
|
|
65
|
+
};
|
|
66
|
+
}, [handleScroll, scrollContainer, enableScrollObserver, throttleTime]);
|
|
67
|
+
return isScrolling;
|
|
68
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useScrollLock.js","sourceRoot":"","sources":["../../../src/_util/hooks/useScrollLock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAChE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAU3C,qDAAqD;AACrD,eAAe,CAAC,MAA4B,EAAE,EAAE;IAC9C,MAAM,EACJ,oBAAoB,GAAG,IAAI,EAC3B,YAAY,GAAG,GAAG,EAClB,YAAY,GAAG,EAAE,EACjB,eAAe,GAAG,MAAM,GACzB,GAAG,MAAM,IAAI,EAAE,CAAA;IAEhB,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACrD,MAAM,mBAAmB,GAAG,MAAM,EAA+B,CAAA;IACjE,MAAM,eAAe,GAAG,MAAM,EAA+B,CAAA;IAE7D,iDAAiD;IACjD,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;;QACpC,SAAS;QACT,cAAc,CAAC,IAAI,CAAC,CAAA;QAEpB,WAAW;QACX,MAAA,eAAe,CAAC,OAAO,0CAAE,MAAM,EAAE,CAAA;QACjC,eAAe,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,CAAA;QAC7E,eAAe,CAAC,OAAO,EAAE,CAAA;IAC3B,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;IAElB,iDAAiD;IACjD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,SAAS,GAAG,eAAe,IAAI,MAAM,CAAA;QAC3C,IAAI,CAAC,SAAS,IAAI,CAAC,oBAAoB;YAAE,OAAM;QAE/C,qBAAqB;QACrB,mBAAmB,CAAC,OAAO,GAAG,QAAQ,CAAC,YAAY,EAAE,YAAY,EAAE;YACjE,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;SACf,CAAC,CAAA;QAEF,MAAM,OAAO,GAA4B,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;QAC1D,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAE1E,OAAO,GAAG,EAAE;;YACV,WAAW;YACX,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,CAAC,OAAQ,EAAE,OAAO,CAAC,CAAA;YAC9E,MAAA,mBAAmB,CAAC,OAAO,0CAAE,MAAM,EAAE,CAAA;YACrC,MAAA,eAAe,CAAC,OAAO,0CAAE,MAAM,EAAE,CAAA;QACnC,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,YAAY,CAAC,CAAC,CAAA;IAEvE,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA","sourcesContent":["import { useState, useEffect, useRef, useCallback } from 'react'\nimport { throttle, debounce } from 'lodash'\n\n// ==================== 类型定义 ====================\ninterface ScrollControlConfig {\n debounceTime?: number // 防抖时间 (默认: 100ms)\n throttleTime?: number // 节流时间 (默认: 50ms)\n scrollContainer?: HTMLElement | Window | null\n enableScrollObserver?: boolean\n}\n\n// ==================== 优化版 Hook ====================\nexport default (config?: ScrollControlConfig) => {\n const {\n enableScrollObserver = true,\n debounceTime = 100,\n throttleTime = 50,\n scrollContainer = window,\n } = config || {}\n\n const [isScrolling, setIsScrolling] = useState(false)\n const throttledHandlerRef = useRef<ReturnType<typeof throttle>>()\n const debouncedEndRef = useRef<ReturnType<typeof debounce>>()\n\n // ==================== 核心逻辑 ====================\n const handleScroll = useCallback(() => {\n // 标记开始滚动\n setIsScrolling(true)\n\n // 启动防抖结束检测\n debouncedEndRef.current?.cancel()\n debouncedEndRef.current = debounce(() => setIsScrolling(false), debounceTime)\n debouncedEndRef.current()\n }, [debounceTime])\n\n // ==================== 事件监听 ====================\n useEffect(() => {\n const container = scrollContainer || window\n if (!container || !enableScrollObserver) return\n\n // 使用 lodash 节流包装处理函数\n throttledHandlerRef.current = throttle(handleScroll, throttleTime, {\n leading: true,\n trailing: true,\n })\n\n const options: AddEventListenerOptions = { passive: true }\n container.addEventListener('scroll', throttledHandlerRef.current, options)\n\n return () => {\n // 清理事件和定时器\n container.removeEventListener('scroll', throttledHandlerRef.current!, options)\n throttledHandlerRef.current?.cancel()\n debouncedEndRef.current?.cancel()\n }\n }, [handleScroll, scrollContainer, enableScrollObserver, throttleTime])\n\n return isScrolling\n}\n"]}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
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
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
var _exportNames = {
|
|
8
|
+
Anchor: true
|
|
9
|
+
};
|
|
10
|
+
exports["default"] = exports.Anchor = void 0;
|
|
11
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _configProvider = require("../config-provider");
|
|
13
|
+
var _anchor = _interopRequireWildcard(require("antd/es/anchor"));
|
|
14
|
+
Object.keys(_anchor).forEach(function (key) {
|
|
15
|
+
if (key === "default" || key === "__esModule") return;
|
|
16
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
17
|
+
if (key in exports && exports[key] === _anchor[key]) return;
|
|
18
|
+
Object.defineProperty(exports, key, {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function get() {
|
|
21
|
+
return _anchor[key];
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
var _AnchorLink = _interopRequireDefault(require("antd/es/anchor/AnchorLink"));
|
|
26
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
27
|
+
var _icon = _interopRequireDefault(require("../icon"));
|
|
28
|
+
var _ellipsis = _interopRequireDefault(require("../ellipsis"));
|
|
29
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
30
|
+
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); }
|
|
31
|
+
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 && {}.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; }
|
|
32
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
33
|
+
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."); }
|
|
34
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
35
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
36
|
+
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; } }
|
|
37
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
38
|
+
var __rest = void 0 && (void 0).__rest || function (s, e) {
|
|
39
|
+
var t = {};
|
|
40
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
41
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
42
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
43
|
+
}
|
|
44
|
+
return t;
|
|
45
|
+
};
|
|
46
|
+
/*
|
|
47
|
+
* @Author: 周泽飞 zefei.zhou@tongdun.net
|
|
48
|
+
* @Date: 2023-10-26 09:46:28
|
|
49
|
+
* @LastEditors: 周泽飞 zefei.zhou@tongdun.net
|
|
50
|
+
* @LastEditTime: 2023-10-31 09:59:35
|
|
51
|
+
* @FilePath: /tntd/packages/tntd/src/button/button.tsx
|
|
52
|
+
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
|
53
|
+
*/
|
|
54
|
+
|
|
55
|
+
// 新增 AnchorLink 组件
|
|
56
|
+
var AnchorLink = (0, _react.forwardRef)(function (props, ref) {
|
|
57
|
+
var href = props.href,
|
|
58
|
+
children = props.children,
|
|
59
|
+
restProps = __rest(props
|
|
60
|
+
// 简单的错误处理示例
|
|
61
|
+
, ["href", "children"]);
|
|
62
|
+
// 简单的错误处理示例
|
|
63
|
+
if (typeof href !== 'string') {
|
|
64
|
+
console.error('Invalid href prop. Expected a string.');
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
return _react["default"].createElement(_AnchorLink["default"], Object.assign({
|
|
68
|
+
ref: ref,
|
|
69
|
+
href: href
|
|
70
|
+
}, restProps, {
|
|
71
|
+
title: _react["default"].createElement(_ellipsis["default"], {
|
|
72
|
+
placement: "left",
|
|
73
|
+
title: restProps === null || restProps === void 0 ? void 0 : restProps.title,
|
|
74
|
+
getPopupContainer: function getPopupContainer(node) {
|
|
75
|
+
return node.closest('.ant-affix');
|
|
76
|
+
}
|
|
77
|
+
})
|
|
78
|
+
}), children);
|
|
79
|
+
});
|
|
80
|
+
// 新增 Anchor 组件
|
|
81
|
+
var Anchor = exports.Anchor = (0, _react.forwardRef)(function (props, ref) {
|
|
82
|
+
var className = props.className,
|
|
83
|
+
children = props.children,
|
|
84
|
+
_props$tdAnchor = props.tdAnchor,
|
|
85
|
+
tdAnchor = _props$tdAnchor === void 0 ? false : _props$tdAnchor,
|
|
86
|
+
restProps = __rest(props, ["className", "children", "tdAnchor"]);
|
|
87
|
+
var _useState = (0, _react.useState)(false),
|
|
88
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
89
|
+
anchorLocked = _useState2[0],
|
|
90
|
+
setAnchorLocked = _useState2[1];
|
|
91
|
+
var _useState3 = (0, _react.useState)(false),
|
|
92
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
93
|
+
anchorMove = _useState4[0],
|
|
94
|
+
setAnchorMove = _useState4[1];
|
|
95
|
+
(0, _react.useEffect)(function () {
|
|
96
|
+
if (tdAnchor) {
|
|
97
|
+
return function () {
|
|
98
|
+
setAnchorLocked(false);
|
|
99
|
+
setAnchorMove(false);
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
}, [tdAnchor]);
|
|
103
|
+
return _react["default"].createElement(_configProvider.ConfigConsumer, null, function (_ref) {
|
|
104
|
+
var getPrefixCls = _ref.getPrefixCls;
|
|
105
|
+
var prefixCls = getPrefixCls('anchor');
|
|
106
|
+
var anchorClass = (0, _classnames["default"])(prefixCls, className, {
|
|
107
|
+
'tnt-anchor': true,
|
|
108
|
+
'tnt-td-anchor': tdAnchor,
|
|
109
|
+
'tnt-anchor-show': anchorLocked
|
|
110
|
+
});
|
|
111
|
+
return _react["default"].createElement(_anchor["default"], Object.assign({
|
|
112
|
+
ref: ref,
|
|
113
|
+
className: anchorClass
|
|
114
|
+
}, restProps, {
|
|
115
|
+
showInkInFixed: true
|
|
116
|
+
}), tdAnchor ? _react["default"].createElement("div", {
|
|
117
|
+
key: anchorMove ? 'move' : 'static',
|
|
118
|
+
onMouseEnter: function onMouseEnter() {
|
|
119
|
+
return setAnchorMove(true);
|
|
120
|
+
},
|
|
121
|
+
onMouseLeave: function onMouseLeave() {
|
|
122
|
+
return setAnchorMove(false);
|
|
123
|
+
}
|
|
124
|
+
}, children, !!tdAnchor && _react["default"].createElement("div", {
|
|
125
|
+
className: "tnt-anchor-icon"
|
|
126
|
+
}, _react["default"].createElement(_icon["default"], {
|
|
127
|
+
onClick: function onClick() {
|
|
128
|
+
return setAnchorLocked(!anchorLocked);
|
|
129
|
+
},
|
|
130
|
+
type: anchorLocked ? 'close' : 'pushpin'
|
|
131
|
+
}))) : children);
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
// 新增 AnchorLink 组件
|
|
135
|
+
// 保留 Anchor.Link 的关系
|
|
136
|
+
Anchor.Link = AnchorLink;
|
|
137
|
+
var _default = exports["default"] = Anchor;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anchor.js","sourceRoot":"","sources":["../../src/anchor/anchor.tsx"],"names":[],"mappings":"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","sourcesContent":["/*\n * @Author: 周泽飞 zefei.zhou@tongdun.net\n * @Date: 2023-10-26 09:46:28\n * @LastEditors: 周泽飞 zefei.zhou@tongdun.net\n * @LastEditTime: 2023-10-31 09:59:35\n * @FilePath: /tntd/packages/tntd/src/button/button.tsx\n * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\n */\nimport React, { forwardRef, useState, useEffect } from 'react'\nimport { ConfigConsumer } from '../config-provider'\nimport type { AnchorProps as AntdAnchorProps, AnchorLinkProps } from 'antd/es/anchor'\nimport { default as AntdAnchor } from 'antd/es/anchor'\nimport { default as AntdAnchorLink } from 'antd/es/anchor/AnchorLink'\nimport classNames from 'classnames'\n\nexport * from 'antd/es/anchor'\nimport Icon from '../icon'\nimport Ellipsis from '../ellipsis'\n\nexport interface AnchorProps extends AntdAnchorProps {\n tdAnchor?: boolean\n}\n\n// 新增 AnchorLink 组件\nconst AnchorLink = forwardRef<AntdAnchorLink, AnchorLinkProps>((props, ref) => {\n const { href, children, ...restProps } = props\n\n // 简单的错误处理示例\n if (typeof href !== 'string') {\n console.error('Invalid href prop. Expected a string.')\n return null\n }\n\n return (\n <AntdAnchorLink\n ref={ref}\n href={href}\n {...restProps}\n title={\n <Ellipsis\n placement=\"left\"\n title={restProps?.title}\n getPopupContainer={(node: Element) => {\n return node.closest('.ant-affix') as HTMLElement\n }}\n />\n }\n >\n {children}\n </AntdAnchorLink>\n )\n})\n\ninterface AnchorComponent\n extends React.ForwardRefExoticComponent<AnchorProps & React.RefAttributes<AntdAnchor>> {\n Link: typeof AnchorLink\n}\n\n// 新增 Anchor 组件\nexport const Anchor = forwardRef<AntdAnchor, AnchorProps>((props, ref) => {\n const { className, children, tdAnchor = false, ...restProps } = props\n\n const [anchorLocked, setAnchorLocked] = useState(false)\n const [anchorMove, setAnchorMove] = useState(false)\n\n useEffect(() => {\n if (tdAnchor) {\n return () => {\n setAnchorLocked(false)\n setAnchorMove(false)\n }\n }\n }, [tdAnchor])\n\n return (\n <ConfigConsumer>\n {({ getPrefixCls }) => {\n const prefixCls = getPrefixCls('anchor')\n const anchorClass = classNames(prefixCls, className, {\n 'tnt-anchor': true,\n 'tnt-td-anchor': tdAnchor,\n 'tnt-anchor-show': anchorLocked,\n })\n\n return (\n <AntdAnchor ref={ref} className={anchorClass} {...restProps} showInkInFixed={true}>\n {tdAnchor ? (\n <div\n key={anchorMove ? 'move' : 'static'}\n onMouseEnter={() => setAnchorMove(true)}\n onMouseLeave={() => setAnchorMove(false)}\n >\n {children}\n {!!tdAnchor && (\n <div className=\"tnt-anchor-icon\">\n <Icon\n onClick={() => setAnchorLocked(!anchorLocked)}\n type={anchorLocked ? 'close' : 'pushpin'}\n />\n </div>\n )}\n </div>\n ) : (\n children\n )}\n </AntdAnchor>\n )\n }}\n </ConfigConsumer>\n )\n}) as AnchorComponent\n\n// 新增 AnchorLink 组件\n// 保留 Anchor.Link 的关系\nAnchor.Link = AnchorLink\n\nexport default Anchor\n"]}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
// 使用 Less 变量管理层级参数
|
|
2
|
+
@anchor-level: 10;
|
|
3
|
+
@anchor-indent-step: 12px; // 每级递进步长
|
|
4
|
+
@anchor-active-line-left: 2px; // 激活线基准位置
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
.tnt-td-anchor{
|
|
8
|
+
background: #fff;
|
|
9
|
+
border-radius: calc(@border-radius-base * 2);
|
|
10
|
+
box-shadow: 0 0 20px 0 rgba(0, 0, 0, .05);
|
|
11
|
+
padding: 16px 16px 8px 16px;
|
|
12
|
+
right:0;
|
|
13
|
+
position: absolute;
|
|
14
|
+
|
|
15
|
+
.ant-anchor-ink-ball {
|
|
16
|
+
display: none !important;
|
|
17
|
+
}
|
|
18
|
+
.ant-anchor-link {
|
|
19
|
+
padding: 0 0 0 8px;
|
|
20
|
+
position: relative;
|
|
21
|
+
max-width: calc(220px - 8px);
|
|
22
|
+
|
|
23
|
+
// 通用激活线样式
|
|
24
|
+
&-active::before {
|
|
25
|
+
content: " ";
|
|
26
|
+
position: absolute;
|
|
27
|
+
left: -@anchor-active-line-left;
|
|
28
|
+
top: 0;
|
|
29
|
+
bottom: 0;
|
|
30
|
+
height: 24px;
|
|
31
|
+
width: @anchor-active-line-left;
|
|
32
|
+
background: @primary-color;
|
|
33
|
+
transition: top 0.3s ease-in-out;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// 文字样式统一管理
|
|
37
|
+
&-title {
|
|
38
|
+
color: @text-color-secondary;
|
|
39
|
+
transition: none !important;
|
|
40
|
+
margin-bottom: 0;
|
|
41
|
+
padding-top: 4px;
|
|
42
|
+
padding-bottom: 4px;
|
|
43
|
+
margin-bottom: 10px;
|
|
44
|
+
// 激活状态文字样式
|
|
45
|
+
&.ant-anchor-link-title-active{
|
|
46
|
+
color: @text-color;
|
|
47
|
+
font-weight: 600;
|
|
48
|
+
transition: none !important;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// 层级递进生成器
|
|
53
|
+
.level-indent(@level) when (@level < @anchor-level) { // 生成最多10级
|
|
54
|
+
.ant-anchor-link {
|
|
55
|
+
padding-left: @anchor-indent-step;
|
|
56
|
+
max-width: calc(220px - @anchor-indent-step * @level - 8px);
|
|
57
|
+
min-width: 0;
|
|
58
|
+
|
|
59
|
+
// 激活线递进算法
|
|
60
|
+
&.ant-anchor-link-active::before {
|
|
61
|
+
left: calc(-@anchor-active-line-left - @anchor-indent-step * @level);
|
|
62
|
+
}
|
|
63
|
+
// 递归生成下一级
|
|
64
|
+
.level-indent(@level + 1);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// 初始化递归生成
|
|
69
|
+
.level-indent(1);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.tnt-td-anchor-styles() {
|
|
74
|
+
max-width: 278px; // 220+24+32+2
|
|
75
|
+
.ant-anchor {
|
|
76
|
+
padding-right: 24px;
|
|
77
|
+
}
|
|
78
|
+
.tnt-anchor-icon {
|
|
79
|
+
opacity: 1;
|
|
80
|
+
transition: all 0.1s linear 0.1s;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.ant-affix:hover .tnt-td-anchor {
|
|
85
|
+
.tnt-td-anchor-styles();
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.tnt-anchor.tnt-td-anchor {
|
|
89
|
+
overflow: hidden;
|
|
90
|
+
text-overflow: ellipsis;
|
|
91
|
+
white-space: nowrap;
|
|
92
|
+
max-width: 32px;
|
|
93
|
+
transition: all 0.1s linear;
|
|
94
|
+
&.tnt-anchor-show,
|
|
95
|
+
&:hover {
|
|
96
|
+
.tnt-td-anchor-styles();
|
|
97
|
+
}
|
|
98
|
+
.ant-anchor{
|
|
99
|
+
overflow: hidden;
|
|
100
|
+
}
|
|
101
|
+
.tnt-anchor-icon{
|
|
102
|
+
opacity: 0;
|
|
103
|
+
position: absolute;
|
|
104
|
+
right: 0;
|
|
105
|
+
top: 2px;
|
|
106
|
+
height: 18px;
|
|
107
|
+
width: 18px;
|
|
108
|
+
cursor: pointer;
|
|
109
|
+
transition: all 0.1s linear;
|
|
110
|
+
.tntd-anticon{
|
|
111
|
+
font-size: 18px;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
package/es/anchor/index.js
CHANGED
|
@@ -1,24 +1,22 @@
|
|
|
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
|
});
|
|
7
6
|
var _exportNames = {};
|
|
8
7
|
exports["default"] = void 0;
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
require("./style");
|
|
9
|
+
require("./anchor.less");
|
|
10
|
+
var _anchor2 = require("./anchor");
|
|
11
|
+
Object.keys(_anchor2).forEach(function (key) {
|
|
11
12
|
if (key === "default" || key === "__esModule") return;
|
|
12
13
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
13
|
-
if (key in exports && exports[key] ===
|
|
14
|
+
if (key in exports && exports[key] === _anchor2[key]) return;
|
|
14
15
|
Object.defineProperty(exports, key, {
|
|
15
16
|
enumerable: true,
|
|
16
17
|
get: function get() {
|
|
17
|
-
return
|
|
18
|
+
return _anchor2[key];
|
|
18
19
|
}
|
|
19
20
|
});
|
|
20
21
|
});
|
|
21
|
-
|
|
22
|
-
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); }
|
|
23
|
-
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 && {}.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; }
|
|
24
|
-
var _default = exports["default"] = _anchor["default"];
|
|
22
|
+
var _default = exports["default"] = _anchor2.Anchor;
|
package/es/anchor/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/anchor/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/anchor/index.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,CAAA;AAChB,OAAO,eAAe,CAAA;AACtB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,cAAc,UAAU,CAAA;AACxB,eAAe,MAAM,CAAA","sourcesContent":["import './style'\nimport './anchor.less'\nimport { Anchor } from './anchor'\nexport * from './anchor'\nexport default Anchor\n"]}
|
package/es/array-input/index.js
CHANGED
|
@@ -106,6 +106,7 @@ function ArrayInput(_ref) {
|
|
|
106
106
|
gutter = _ref$gutter === void 0 ? 10 : _ref$gutter,
|
|
107
107
|
_ref$require = _ref.require,
|
|
108
108
|
require = _ref$require === void 0 ? false : _ref$require,
|
|
109
|
+
errorMap = _ref.errorMap,
|
|
109
110
|
_ref$deleteTip = _ref.deleteTip,
|
|
110
111
|
deleteTip = _ref$deleteTip === void 0 ? '' : _ref$deleteTip,
|
|
111
112
|
_ref$plusTip = _ref.plusTip,
|
|
@@ -221,9 +222,12 @@ function ArrayInput(_ref) {
|
|
|
221
222
|
span = _a$span === void 0 ? 4 : _a$span,
|
|
222
223
|
fieldChange = _a.onChange,
|
|
223
224
|
other = __rest(_a, ["name", "span", "onChange"]);
|
|
225
|
+
var isError = errorMap ? errorMap["".concat(index, "-").concat(name)] : '';
|
|
224
226
|
return _react["default"].createElement(_col["default"], {
|
|
225
227
|
span: span,
|
|
226
228
|
key: i
|
|
229
|
+
}, _react["default"].createElement("div", {
|
|
230
|
+
className: !isError ? 'tntd-array-input-hide-error' : ''
|
|
227
231
|
}, _react["default"].cloneElement(field, Object.assign({
|
|
228
232
|
value: item[name] || undefined,
|
|
229
233
|
onChange: function onChange(e) {
|
|
@@ -232,7 +236,9 @@ function ArrayInput(_ref) {
|
|
|
232
236
|
changeValue(index, name, newValue);
|
|
233
237
|
},
|
|
234
238
|
disabled: disabled
|
|
235
|
-
}, other)))
|
|
239
|
+
}, other))), isError && _react["default"].createElement("div", {
|
|
240
|
+
className: "ant-form-item-explain-error"
|
|
241
|
+
}, isError));
|
|
236
242
|
}), !disabled && _react["default"].createElement(_col["default"], {
|
|
237
243
|
span: actionSpan
|
|
238
244
|
}, _react["default"].createElement("span", {
|
|
@@ -318,16 +324,22 @@ function ArrayInput(_ref) {
|
|
|
318
324
|
if (!(0, _react.isValidElement)(field)) {
|
|
319
325
|
return field;
|
|
320
326
|
}
|
|
321
|
-
var
|
|
322
|
-
|
|
327
|
+
var _field$props = field.props,
|
|
328
|
+
name = _field$props.name,
|
|
329
|
+
fieldChange = _field$props.onChange;
|
|
330
|
+
var isError = errorMap ? errorMap["".concat(index, "-").concat(name)] : '';
|
|
331
|
+
return _react["default"].createElement("div", {
|
|
332
|
+
className: !isError ? 'tntd-array-input-hide-error' : ''
|
|
333
|
+
}, _react["default"].cloneElement(field, {
|
|
323
334
|
value: inValue[index][name] || undefined,
|
|
324
335
|
onChange: function onChange(e) {
|
|
325
336
|
fieldChange && fieldChange(e, index, changeValue);
|
|
326
337
|
var newValue = e.target ? e.target.value : e;
|
|
327
|
-
changeValue(index, name, newValue);
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
|
|
338
|
+
changeValue(index, name, newValue), disabled;
|
|
339
|
+
}
|
|
340
|
+
}), isError && _react["default"].createElement("div", {
|
|
341
|
+
className: "ant-form-item-explain-error"
|
|
342
|
+
}, isError));
|
|
331
343
|
}
|
|
332
344
|
});
|
|
333
345
|
}), !disabled && _react["default"].createElement(Column, {
|
|
@@ -335,13 +347,12 @@ function ArrayInput(_ref) {
|
|
|
335
347
|
dataIndex: "action",
|
|
336
348
|
title: locale.action,
|
|
337
349
|
width: actionWidth,
|
|
350
|
+
className: "tntd-array-input-action",
|
|
338
351
|
render: function render(text, row, index) {
|
|
339
352
|
if (renderAction) {
|
|
340
353
|
return renderAction(row, index, onDelete, onAdd);
|
|
341
354
|
}
|
|
342
|
-
return _react["default"].createElement("
|
|
343
|
-
className: "tntd-array-input-action"
|
|
344
|
-
}, deleteTip ? _react["default"].createElement(_tooltip["default"], {
|
|
355
|
+
return _react["default"].createElement(_react["default"].Fragment, null, deleteTip ? _react["default"].createElement(_tooltip["default"], {
|
|
345
356
|
title: deleteTip
|
|
346
357
|
}, _react["default"].createElement("span", {
|
|
347
358
|
onClick: function onClick() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/array-input/index.js"],"names":[],"mappings":"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","sourcesContent":["import { DndContext } from '@dnd-kit/core'\nimport { restrictToVerticalAxis } from '@dnd-kit/modifiers'\nimport {\n SortableContext,\n arrayMove,\n useSortable,\n verticalListSortingStrategy,\n} from '@dnd-kit/sortable'\nimport { CSS } from '@dnd-kit/utilities'\nimport LocaleReceiver from 'antd/es/locale-provider/LocaleReceiver'\nimport { get, isArray, isFunction, set, sum, sumBy } from 'lodash'\nimport React, { isValidElement, useCallback, useContext, useEffect, useMemo, useState } from 'react'\nimport Button from '../button'\nimport Col from '../col'\nimport Icon from '../icon'\nimport Row from '../row'\nimport Table from '../table'\nimport Tooltip from '../tooltip'\nimport './index.less'\n\nconst { Column } = Table\nconst RowContext = React.createContext({})\nlet key = 1\n\nfunction DragHandle() {\n const { setActivatorNodeRef, listeners } = useContext(RowContext)\n return (\n <Button\n className=\"drag-btn\"\n type=\"tertiary\"\n size=\"small\"\n icon=\"drag\"\n ref={setActivatorNodeRef}\n {...listeners}\n />\n )\n}\nfunction BodyRow(props) {\n const {\n attributes,\n listeners,\n setNodeRef,\n setActivatorNodeRef,\n transform,\n transition,\n isDragging,\n } = useSortable({\n id: props['data-row-key'],\n })\n const style = {\n ...props.style,\n transform: CSS.Translate.toString(transform),\n transition,\n ...(isDragging\n ? {\n position: 'relative',\n zIndex: 9999,\n }\n : {}),\n }\n const contextValue = useMemo(\n () => ({\n setActivatorNodeRef,\n listeners,\n }),\n [setActivatorNodeRef, listeners]\n )\n return (\n <RowContext.Provider value={contextValue}>\n <tr {...props} ref={setNodeRef} style={style} {...attributes} />\n </RowContext.Provider>\n )\n}\n\nfunction ArrayInput({\n children,\n defaultValue,\n value,\n onChange,\n mode = 'list',\n drag = false, // 只做了table的拖拽排序\n gutter = 10,\n require = false,\n deleteTip = '',\n plusTip = '',\n addText,\n locale,\n xProps = {},\n renderAction,\n actionWidth = 80,\n disabled = false,\n}) {\n if (!isFunction(children)) {\n throw new Error(locale.error)\n }\n if (addText === undefined) {\n addText = locale?.add\n }\n\n const [_value, setValue] = useState(value || defaultValue)\n\n useEffect(() => {\n let newValue = value\n // 如果数组没有key\n if (Array.isArray(value) && value.some((obj) => !obj.key)) {\n newValue = value.map((obj) => ({ ...obj, key: obj.key || key++ }))\n _onChange(newValue)\n } else {\n setValue(newValue)\n }\n }, [value])\n\n const _onChange = useCallback((value) => {\n if (onChange) {\n onChange(value)\n } else {\n setValue(value)\n }\n }, [])\n\n let inValue = _value || []\n if (require && inValue.length === 0) {\n inValue = [{ key: key++ }]\n }\n\n const changeValue = (index, name, value) => {\n inValue[index] = {\n ...inValue[index],\n [name]: value,\n }\n _onChange([...inValue])\n }\n\n const onAdd = (index) => {\n if (index === undefined) {\n _onChange([...inValue, { key: key++ }])\n } else {\n inValue.splice(index + 1, 0, { key: key++ })\n _onChange([...inValue])\n }\n }\n\n const onDelete = (i) => {\n inValue.splice(i, 1)\n _onChange([...inValue])\n }\n\n const onDragEnd = ({ active, over }) => {\n if (active.id !== over?.id) {\n _onChange((prevState) => {\n const activeIndex = prevState.findIndex((record) => record.key === active?.id)\n const overIndex = prevState.findIndex((record) => record.key === over?.id)\n return arrayMove(prevState, activeIndex, overIndex)\n })\n }\n }\n\n if (mode === 'list') {\n return (\n <div className=\"tntd-array-input\">\n {inValue.map((item, index) => {\n let fields = children(item, index)\n if (!isArray(fields)) {\n fields = get(fields, 'props.children', [])\n }\n const actionSpan = 24 - (sum(fields.map((f) => get(f, 'props.span', 4))) % 24)\n return (\n <Row gutter={gutter} key={index} className=\"tntd-array-input-item\">\n {fields.map((field, i) => {\n if (!isValidElement(field)) {\n return field ? (\n <Col span={4} key={i}>\n {field}\n </Col>\n ) : (\n ''\n )\n }\n const { name, span = 4, onChange: fieldChange, ...other } = field?.props\n return (\n <Col span={span} key={i}>\n {React.cloneElement(field, {\n value: item[name] || undefined,\n onChange: (e) => {\n fieldChange && fieldChange(e, index, changeValue)\n const newValue = e.target ? e.target.value : e\n changeValue(index, name, newValue)\n },\n disabled,\n ...other,\n })}\n </Col>\n )\n })}\n {!disabled && (\n <Col span={actionSpan}>\n <span className=\"tntd-array-input-action\">\n {renderAction ? (\n renderAction(item, index, onDelete, onAdd)\n ) : (\n <>\n {deleteTip ? (\n <Tooltip title={deleteTip}>\n <span onClick={() => onDelete(index)}>\n <Icon type=\"delete\" />\n </span>\n </Tooltip>\n ) : (\n <span onClick={() => onDelete(index)}>\n <Icon type=\"delete\" />\n </span>\n )}\n </>\n )}\n </span>\n </Col>\n )}\n </Row>\n )\n })}\n {!disabled && (\n <Button type=\"link\" onClick={() => onAdd()}>\n <Icon type=\"plus\" />\n {addText}\n </Button>\n )}\n </div>\n )\n } else {\n let fields = children({}, 0)\n if (!isArray(fields)) {\n fields = get(fields, 'props.children', [])\n }\n const dataSource = inValue.map((value, index) => {\n const fields = children(value, index)\n const back = { key: value.key }\n fields.forEach((field) => {\n const name = field?.props?.name\n name && set(back, name, field)\n })\n return back\n })\n\n return (\n <div className=\"tntd-array-input\">\n <DndContext modifiers={[restrictToVerticalAxis]} onDragEnd={onDragEnd}>\n <SortableContext\n items={dataSource.map((i) => i.key)}\n strategy={verticalListSortingStrategy}\n >\n <Table\n dataSource={dataSource}\n pagination={false}\n components={{\n body: {\n row: BodyRow,\n },\n }}\n bordered\n {...xProps}\n >\n {drag && (\n <Column\n key=\"dragger\"\n dataIndex=\"dragger\"\n width={60}\n render={() => <DragHandle />}\n ></Column>\n )}\n {fields.map((field) => {\n const { name, width = 160, title } = field?.props || {}\n return (\n <Column\n key={name}\n dataIndex={name}\n title={title}\n width={width}\n render={(field, row, index) => {\n if (!isValidElement(field)) {\n return field\n }\n const { onChange: fieldChange } = field.props\n return React.cloneElement(field, {\n value: inValue[index][name] || undefined,\n onChange: (e) => {\n fieldChange && fieldChange(e, index, changeValue)\n const newValue = e.target ? e.target.value : e\n changeValue(index, name, newValue)\n },\n disabled,\n })\n }}\n ></Column>\n )\n })}\n {!disabled && (\n <Column\n key=\"action\"\n dataIndex=\"action\"\n title={locale.action}\n width={actionWidth}\n render={(text, row, index) => {\n if (renderAction) {\n return renderAction(row, index, onDelete, onAdd)\n }\n return (\n <span className=\"tntd-array-input-action\">\n {deleteTip ? (\n <Tooltip title={deleteTip}>\n <span onClick={() => onDelete(index)}>\n <Icon type=\"delete\" />\n </span>\n </Tooltip>\n ) : (\n <span onClick={() => onDelete(index)}>\n <Icon type=\"delete\" />\n </span>\n )}\n </span>\n )\n }}\n ></Column>\n )}\n </Table>\n </SortableContext>\n </DndContext>\n {!disabled && (\n <Button type=\"dashed\" block className=\"mt10\" onClick={() => onAdd()}>\n <Icon type=\"plus\" />\n {addText}\n </Button>\n )}\n </div>\n )\n }\n}\n\nexport default function WarpArrayInput(props) {\n return (\n <LocaleReceiver componentName=\"ArrayInput\">\n {(locale) => {\n return <ArrayInput {...props} locale={locale} />\n }}\n </LocaleReceiver>\n )\n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/array-input/index.js"],"names":[],"mappings":"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","sourcesContent":["import { DndContext } from '@dnd-kit/core'\nimport { restrictToVerticalAxis } from '@dnd-kit/modifiers'\nimport {\n SortableContext,\n arrayMove,\n useSortable,\n verticalListSortingStrategy,\n} from '@dnd-kit/sortable'\nimport { CSS } from '@dnd-kit/utilities'\nimport LocaleReceiver from 'antd/es/locale-provider/LocaleReceiver'\nimport { get, isArray, isFunction, set, sum, sumBy } from 'lodash'\nimport React, { isValidElement, useCallback, useContext, useEffect, useMemo, useState } from 'react'\nimport Button from '../button'\nimport Col from '../col'\nimport Icon from '../icon'\nimport Row from '../row'\nimport Table from '../table'\nimport Tooltip from '../tooltip'\nimport './index.less'\n\nconst { Column } = Table\nconst RowContext = React.createContext({})\nlet key = 1\n\nfunction DragHandle() {\n const { setActivatorNodeRef, listeners } = useContext(RowContext)\n return (\n <Button\n className=\"drag-btn\"\n type=\"tertiary\"\n size=\"small\"\n icon=\"drag\"\n ref={setActivatorNodeRef}\n {...listeners}\n />\n )\n}\nfunction BodyRow(props) {\n const {\n attributes,\n listeners,\n setNodeRef,\n setActivatorNodeRef,\n transform,\n transition,\n isDragging,\n } = useSortable({\n id: props['data-row-key'],\n })\n const style = {\n ...props.style,\n transform: CSS.Translate.toString(transform),\n transition,\n ...(isDragging\n ? {\n position: 'relative',\n zIndex: 9999,\n }\n : {}),\n }\n const contextValue = useMemo(\n () => ({\n setActivatorNodeRef,\n listeners,\n }),\n [setActivatorNodeRef, listeners]\n )\n return (\n <RowContext.Provider value={contextValue}>\n <tr {...props} ref={setNodeRef} style={style} {...attributes} />\n </RowContext.Provider>\n )\n}\n\nfunction ArrayInput({\n children,\n defaultValue,\n value,\n onChange,\n mode = 'list',\n drag = false, // 只做了table的拖拽排序\n gutter = 10,\n require = false,\n errorMap,\n deleteTip = '',\n plusTip = '',\n addText,\n locale,\n xProps = {},\n renderAction,\n actionWidth = 80,\n disabled = false,\n}) {\n if (!isFunction(children)) {\n throw new Error(locale.error)\n }\n if (addText === undefined) {\n addText = locale?.add\n }\n\n const [_value, setValue] = useState(value || defaultValue)\n\n useEffect(() => {\n let newValue = value\n // 如果数组没有key\n if (Array.isArray(value) && value.some((obj) => !obj.key)) {\n newValue = value.map((obj) => ({ ...obj, key: obj.key || key++ }))\n _onChange(newValue)\n } else {\n setValue(newValue)\n }\n }, [value])\n\n const _onChange = useCallback((value) => {\n if (onChange) {\n onChange(value)\n } else {\n setValue(value)\n }\n }, [])\n\n let inValue = _value || []\n if (require && inValue.length === 0) {\n inValue = [{ key: key++ }]\n }\n\n const changeValue = (index, name, value) => {\n inValue[index] = {\n ...inValue[index],\n [name]: value,\n }\n _onChange([...inValue])\n }\n\n const onAdd = (index) => {\n if (index === undefined) {\n _onChange([...inValue, { key: key++ }])\n } else {\n inValue.splice(index + 1, 0, { key: key++ })\n _onChange([...inValue])\n }\n }\n\n const onDelete = (i) => {\n inValue.splice(i, 1)\n _onChange([...inValue])\n }\n\n const onDragEnd = ({ active, over }) => {\n if (active.id !== over?.id) {\n _onChange((prevState) => {\n const activeIndex = prevState.findIndex((record) => record.key === active?.id)\n const overIndex = prevState.findIndex((record) => record.key === over?.id)\n return arrayMove(prevState, activeIndex, overIndex)\n })\n }\n }\n\n if (mode === 'list') {\n return (\n <div className=\"tntd-array-input\">\n {inValue.map((item, index) => {\n let fields = children(item, index)\n if (!isArray(fields)) {\n fields = get(fields, 'props.children', [])\n }\n const actionSpan = 24 - (sum(fields.map((f) => get(f, 'props.span', 4))) % 24)\n return (\n <Row gutter={gutter} key={index} className=\"tntd-array-input-item\">\n {fields.map((field, i) => {\n if (!isValidElement(field)) {\n return field ? (\n <Col span={4} key={i}>\n {field}\n </Col>\n ) : (\n ''\n )\n }\n const { name, span = 4, onChange: fieldChange, ...other } = field?.props\n const isError = errorMap ? errorMap[`${index}-${name}`] : ''\n return (\n <Col span={span} key={i}>\n <div className={!isError ? 'tntd-array-input-hide-error' : ''}>\n {React.cloneElement(field, {\n value: item[name] || undefined,\n onChange: (e) => {\n fieldChange && fieldChange(e, index, changeValue)\n const newValue = e.target ? e.target.value : e\n changeValue(index, name, newValue)\n },\n disabled,\n ...other,\n })}\n </div>\n {isError && <div className=\"ant-form-item-explain-error\">{isError}</div>}\n </Col>\n )\n })}\n {!disabled && (\n <Col span={actionSpan}>\n <span className=\"tntd-array-input-action\">\n {renderAction ? (\n renderAction(item, index, onDelete, onAdd)\n ) : (\n <>\n {deleteTip ? (\n <Tooltip title={deleteTip}>\n <span onClick={() => onDelete(index)}>\n <Icon type=\"delete\" />\n </span>\n </Tooltip>\n ) : (\n <span onClick={() => onDelete(index)}>\n <Icon type=\"delete\" />\n </span>\n )}\n </>\n )}\n </span>\n </Col>\n )}\n </Row>\n )\n })}\n {!disabled && (\n <Button type=\"link\" onClick={() => onAdd()}>\n <Icon type=\"plus\" />\n {addText}\n </Button>\n )}\n </div>\n )\n } else {\n let fields = children({}, 0)\n if (!isArray(fields)) {\n fields = get(fields, 'props.children', [])\n }\n const dataSource = inValue.map((value, index) => {\n const fields = children(value, index)\n const back = { key: value.key }\n fields.forEach((field) => {\n const name = field?.props?.name\n name && set(back, name, field)\n })\n return back\n })\n\n return (\n <div className=\"tntd-array-input\">\n <DndContext modifiers={[restrictToVerticalAxis]} onDragEnd={onDragEnd}>\n <SortableContext\n items={dataSource.map((i) => i.key)}\n strategy={verticalListSortingStrategy}\n >\n <Table\n dataSource={dataSource}\n pagination={false}\n components={{\n body: {\n row: BodyRow,\n },\n }}\n bordered\n {...xProps}\n >\n {drag && (\n <Column\n key=\"dragger\"\n dataIndex=\"dragger\"\n width={60}\n render={() => <DragHandle />}\n ></Column>\n )}\n {fields.map((field) => {\n const { name, width = 160, title } = field?.props || {}\n return (\n <Column\n key={name}\n dataIndex={name}\n title={title}\n width={width}\n render={(field, row, index) => {\n if (!isValidElement(field)) {\n return field\n }\n const { name, onChange: fieldChange } = field.props\n const isError = errorMap ? errorMap[`${index}-${name}`] : ''\n return (\n <div className={!isError ? 'tntd-array-input-hide-error' : ''}>\n {React.cloneElement(field, {\n value: inValue[index][name] || undefined,\n onChange: (e) => {\n fieldChange && fieldChange(e, index, changeValue)\n const newValue = e.target ? e.target.value : e\n changeValue(index, name, newValue), disabled\n },\n })}\n {isError && <div className=\"ant-form-item-explain-error\">{isError}</div>}\n </div>\n )\n }}\n ></Column>\n )\n })}\n {!disabled && (\n <Column\n key=\"action\"\n dataIndex=\"action\"\n title={locale.action}\n width={actionWidth}\n className=\"tntd-array-input-action\"\n render={(text, row, index) => {\n if (renderAction) {\n return renderAction(row, index, onDelete, onAdd)\n }\n return (\n <>\n {deleteTip ? (\n <Tooltip title={deleteTip}>\n <span onClick={() => onDelete(index)}>\n <Icon type=\"delete\" />\n </span>\n </Tooltip>\n ) : (\n <span onClick={() => onDelete(index)}>\n <Icon type=\"delete\" />\n </span>\n )}\n </>\n )\n }}\n ></Column>\n )}\n </Table>\n </SortableContext>\n </DndContext>\n {!disabled && (\n <Button type=\"dashed\" block className=\"mt10\" onClick={() => onAdd()}>\n <Icon type=\"plus\" />\n {addText}\n </Button>\n )}\n </div>\n )\n }\n}\n\nexport default function WarpArrayInput(props) {\n return (\n <LocaleReceiver componentName=\"ArrayInput\">\n {(locale) => {\n return <ArrayInput {...props} locale={locale} />\n }}\n </LocaleReceiver>\n )\n}\n"]}
|