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.
Files changed (159) hide show
  1. package/es/_util/hooks/useScrollLock.js +68 -0
  2. package/es/_util/hooks/useScrollLock.js.map +1 -0
  3. package/es/anchor/anchor.js +137 -0
  4. package/es/anchor/anchor.js.map +1 -0
  5. package/es/anchor/anchor.less +114 -0
  6. package/es/anchor/index.js +7 -9
  7. package/es/anchor/index.js.map +1 -1
  8. package/es/array-input/index.js +21 -10
  9. package/es/array-input/index.js.map +1 -1
  10. package/es/array-input/index.less +129 -0
  11. package/es/ellipsis/index.js +11 -1
  12. package/es/ellipsis/index.js.map +1 -1
  13. package/es/form/style/index.less +5 -5
  14. package/es/form/style/mixin.less +5 -1
  15. package/es/index.js +7 -0
  16. package/es/index.js.map +1 -1
  17. package/es/page-loading/index.less +4 -4
  18. package/es/page-loading/loading.gif +0 -0
  19. package/es/query-form/Field/Checkbox.js +1 -1
  20. package/es/query-form/Field/Checkbox.js.map +1 -1
  21. package/es/query-form/Field/Composition/FieldPopover.js +17 -111
  22. package/es/query-form/Field/Composition/FieldPopover.js.map +1 -1
  23. package/es/query-form/Field/Composition/FieldPopover.less +9 -3
  24. package/es/query-form/Field/Composition/Select.js +13 -109
  25. package/es/query-form/Field/Composition/SelectInput.js +10 -87
  26. package/es/query-form/Field/Composition/ValueTag.js +12 -88
  27. package/es/query-form/Field/Composition/ValueTag.js.map +1 -1
  28. package/es/query-form/Field/Composition/index.js +17 -121
  29. package/es/query-form/Field/Composition/index.less +36 -14
  30. package/es/query-form/Field/Composition/utils.js +1 -5
  31. package/es/query-form/Field/SelectInput.js +16 -12
  32. package/es/query-form/Field/SelectInput.js.map +1 -1
  33. package/es/query-form/Field/fieldsMap.js +2 -2
  34. package/es/query-form/Field/fieldsMap.js.map +1 -1
  35. package/es/query-form/Field/index.js +2 -1
  36. package/es/query-form/Field/index.js.map +1 -1
  37. package/es/query-form/index.js +226 -357
  38. package/es/query-form/index.js.map +1 -1
  39. package/es/query-form/index.less +26 -63
  40. package/es/query-list-scene/List.js +16 -3
  41. package/es/query-list-scene/List.js.map +1 -1
  42. package/es/query-list-scene/QueryForm.js +35 -13
  43. package/es/query-list-scene/QueryForm.js.map +1 -1
  44. package/es/query-list-scene/index.js +2 -1
  45. package/es/query-list-scene/index.js.map +1 -1
  46. package/es/scroll-bar/Bar.js +10 -87
  47. package/es/scroll-bar/Context.js +1 -5
  48. package/es/scroll-bar/ScrollBar.js +4 -39
  49. package/es/scroll-bar/Thumb.js +10 -87
  50. package/es/scroll-bar/index.js +1 -5
  51. package/es/scroll-bar/util.js +4 -31
  52. package/es/table/hooks/use-column-setting.js.map +1 -1
  53. package/es/table/resizableTable/index.less +1 -1
  54. package/es/table/table.js +8 -2
  55. package/es/table/table.js.map +1 -1
  56. package/es/tntd-form/style/mixin.less +3 -3
  57. package/es/tntd-form/style/status.less +2 -2
  58. package/es/tntd-rc-select/style/index.less +20 -2
  59. package/es/tntd-select/index.js.map +1 -1
  60. package/es/tntd-virtual-tree/index.js +0 -3
  61. package/es/tntd-virtual-tree/index.js.map +1 -1
  62. package/es/tooltip/tooltip.js +19 -5
  63. package/es/tooltip/tooltip.js.map +1 -1
  64. package/lib/_util/hooks/useScrollLock.d.ts +9 -0
  65. package/lib/_util/hooks/useScrollLock.d.ts.map +1 -0
  66. package/lib/_util/hooks/useScrollLock.js +114 -0
  67. package/lib/_util/hooks/useScrollLock.js.map +1 -0
  68. package/lib/anchor/anchor.d.ts +15 -0
  69. package/lib/anchor/anchor.d.ts.map +1 -0
  70. package/lib/anchor/anchor.js +214 -0
  71. package/lib/anchor/anchor.js.map +1 -0
  72. package/lib/anchor/anchor.less +114 -0
  73. package/lib/anchor/index.d.ts +3 -2
  74. package/lib/anchor/index.d.ts.map +1 -1
  75. package/lib/anchor/index.js +7 -40
  76. package/lib/anchor/index.js.map +1 -1
  77. package/lib/array-input/index.d.ts.map +1 -1
  78. package/lib/array-input/index.js +21 -10
  79. package/lib/array-input/index.js.map +1 -1
  80. package/lib/array-input/index.less +129 -0
  81. package/lib/ellipsis/index.d.ts.map +1 -1
  82. package/lib/ellipsis/index.js +11 -1
  83. package/lib/ellipsis/index.js.map +1 -1
  84. package/lib/form/style/index.less +5 -5
  85. package/lib/form/style/mixin.less +5 -1
  86. package/lib/index.d.ts +1 -0
  87. package/lib/index.d.ts.map +1 -1
  88. package/lib/index.js +7 -0
  89. package/lib/index.js.map +1 -1
  90. package/lib/notification/assets/svg-error-tip.d.ts +1 -1
  91. package/lib/notification/assets/svg-success-tip.d.ts +1 -1
  92. package/lib/page-loading/index.less +4 -4
  93. package/lib/page-loading/loading.gif +0 -0
  94. package/lib/query-form/Field/Checkbox.js +1 -1
  95. package/lib/query-form/Field/Checkbox.js.map +1 -1
  96. package/lib/query-form/Field/Composition/FieldPopover.js +4 -2
  97. package/lib/query-form/Field/Composition/FieldPopover.js.map +1 -1
  98. package/lib/query-form/Field/Composition/FieldPopover.less +9 -3
  99. package/lib/query-form/Field/Composition/ValueTag.d.ts.map +1 -1
  100. package/lib/query-form/Field/Composition/ValueTag.js +2 -1
  101. package/lib/query-form/Field/Composition/ValueTag.js.map +1 -1
  102. package/lib/query-form/Field/Composition/index.less +36 -14
  103. package/lib/query-form/Field/SelectInput.d.ts.map +1 -1
  104. package/lib/query-form/Field/SelectInput.js +16 -12
  105. package/lib/query-form/Field/SelectInput.js.map +1 -1
  106. package/lib/query-form/Field/fieldsMap.d.ts +6 -3
  107. package/lib/query-form/Field/fieldsMap.d.ts.map +1 -1
  108. package/lib/query-form/Field/fieldsMap.js +2 -2
  109. package/lib/query-form/Field/fieldsMap.js.map +1 -1
  110. package/lib/query-form/Field/index.d.ts.map +1 -1
  111. package/lib/query-form/Field/index.js +2 -1
  112. package/lib/query-form/Field/index.js.map +1 -1
  113. package/lib/query-form/index.d.ts +1 -36
  114. package/lib/query-form/index.d.ts.map +1 -1
  115. package/lib/query-form/index.js +262 -397
  116. package/lib/query-form/index.js.map +1 -1
  117. package/lib/query-form/index.less +26 -63
  118. package/lib/query-list-scene/List.d.ts.map +1 -1
  119. package/lib/query-list-scene/List.js +16 -3
  120. package/lib/query-list-scene/List.js.map +1 -1
  121. package/lib/query-list-scene/QueryForm.d.ts +5 -4
  122. package/lib/query-list-scene/QueryForm.d.ts.map +1 -1
  123. package/lib/query-list-scene/QueryForm.js +35 -13
  124. package/lib/query-list-scene/QueryForm.js.map +1 -1
  125. package/lib/query-list-scene/index.d.ts.map +1 -1
  126. package/lib/query-list-scene/index.js +2 -1
  127. package/lib/query-list-scene/index.js.map +1 -1
  128. package/lib/segmented/index.d.ts +1 -1
  129. package/lib/svg-components/illustration-403.d.ts +1 -1
  130. package/lib/svg-components/illustration-404.d.ts +1 -1
  131. package/lib/svg-components/illustration-500.d.ts +1 -1
  132. package/lib/svg-components/illustration-empty.d.ts +1 -1
  133. package/lib/svg-components/illustration-failure.d.ts +1 -1
  134. package/lib/svg-components/illustration-no-access.d.ts +1 -1
  135. package/lib/svg-components/illustration-no-chart.d.ts +1 -1
  136. package/lib/svg-components/illustration-no-result.d.ts +1 -1
  137. package/lib/svg-components/illustration-offline.d.ts +1 -1
  138. package/lib/svg-components/illustration-success.d.ts +1 -1
  139. package/lib/table/assets/image-loading-background.d.ts +1 -1
  140. package/lib/table/assets/image-loading.d.ts +1 -1
  141. package/lib/table/hooks/use-column-setting.d.ts +1 -0
  142. package/lib/table/hooks/use-column-setting.d.ts.map +1 -1
  143. package/lib/table/hooks/use-column-setting.js.map +1 -1
  144. package/lib/table/resizableTable/index.less +1 -1
  145. package/lib/table/table.d.ts.map +1 -1
  146. package/lib/table/table.js +8 -2
  147. package/lib/table/table.js.map +1 -1
  148. package/lib/tntd-form/style/mixin.less +3 -3
  149. package/lib/tntd-form/style/status.less +2 -2
  150. package/lib/tntd-rc-select/style/index.less +20 -2
  151. package/lib/tntd-select/index.d.ts.map +1 -1
  152. package/lib/tntd-select/index.js.map +1 -1
  153. package/lib/tntd-virtual-tree/index.js +0 -3
  154. package/lib/tntd-virtual-tree/index.js.map +1 -1
  155. package/lib/tooltip/tooltip.d.ts +1 -0
  156. package/lib/tooltip/tooltip.d.ts.map +1 -1
  157. package/lib/tooltip/tooltip.js +23 -9
  158. package/lib/tooltip/tooltip.js.map +1 -1
  159. 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":";;;;;;;;;;;AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,UAAU,MAAM,YAAY,CAAA;AAEnC,cAAc,gBAAgB,CAAA;AAC9B,OAAO,IAAI,MAAM,SAAS,CAAA;AAC1B,OAAO,QAAQ,MAAM,aAAa,CAAA;AAMlC,mBAAmB;AACnB,MAAM,UAAU,GAAG,UAAU,CAAkC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IAC5E,MAAM,EAAE,IAAI,EAAE,QAAQ,KAAmB,KAAK,EAAnB,SAAS,UAAK,KAAK;IAE9C,YAAY;MAFN,oBAAgC,CAAQ,CAAA;IAE9C,YAAY;IACZ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAA;QACtD,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,CACL,oBAAC,cAAc,kBACb,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,IACN,SAAS,IACb,KAAK,EACH,oBAAC,QAAQ,IACP,SAAS,EAAC,MAAM,EAChB,KAAK,EAAE,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,EACvB,iBAAiB,EAAE,CAAC,IAAa,EAAE,EAAE;gBACnC,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAgB,CAAA;YAClD,CAAC,GACD,KAGH,QAAQ,CACM,CAClB,CAAA;AACH,CAAC,CAAC,CAAA;AAOF,eAAe;AACf,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAA0B,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACvE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,KAAK,KAAmB,KAAK,EAAnB,SAAS,UAAK,KAAK,EAA/D,qCAAuD,CAAQ,CAAA;IAErE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEnD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,QAAQ,EAAE;YACZ,OAAO,GAAG,EAAE;gBACV,eAAe,CAAC,KAAK,CAAC,CAAA;gBACtB,aAAa,CAAC,KAAK,CAAC,CAAA;YACtB,CAAC,CAAA;SACF;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEd,OAAO,CACL,oBAAC,cAAc,QACZ,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE;QACpB,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;QACxC,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE;YACnD,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,QAAQ;YACzB,iBAAiB,EAAE,YAAY;SAChC,CAAC,CAAA;QAEF,OAAO,CACL,oBAAC,UAAU,kBAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,IAAM,SAAS,IAAE,cAAc,EAAE,IAAI,KAC9E,QAAQ,CAAC,CAAC,CAAC,CACV,6BACE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EACnC,YAAY,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EACvC,YAAY,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC;YAEvC,QAAQ;YACR,CAAC,CAAC,QAAQ,IAAI,CACb,6BAAK,SAAS,EAAC,iBAAiB;gBAC9B,oBAAC,IAAI,IACH,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,EAC7C,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,GACxC,CACE,CACP,CACG,CACP,CAAC,CAAC,CAAC,CACF,QAAQ,CACT,CACU,CACd,CAAA;IACH,CAAC,CACc,CAClB,CAAA;AACH,CAAC,CAAoB,CAAA;AAErB,mBAAmB;AACnB,qBAAqB;AACrB,MAAM,CAAC,IAAI,GAAG,UAAU,CAAA;AAExB,eAAe,MAAM,CAAA","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
+ }
@@ -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
- var _anchor = _interopRequireWildcard(require("antd/es/anchor"));
10
- Object.keys(_anchor).forEach(function (key) {
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] === _anchor[key]) return;
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 _anchor[key];
18
+ return _anchor2[key];
18
19
  }
19
20
  });
20
21
  });
21
- require("./style");
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;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/anchor/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,gBAAgB,CAAA;AAEnC,OAAO,SAAS,CAAA;AAEhB,cAAc,gBAAgB,CAAA;AAE9B,eAAe,MAAM,CAAA","sourcesContent":["import Anchor from 'antd/es/anchor'\n\nimport './style'\n\nexport * from 'antd/es/anchor'\n\nexport default Anchor\n"]}
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"]}
@@ -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 fieldChange = field.props.onChange;
322
- return _react["default"].cloneElement(field, {
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
- disabled: disabled
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("span", {
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":";;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EACL,eAAe,EACf,SAAS,EACT,WAAW,EACX,2BAA2B,GAC5B,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAA;AACxC,OAAO,cAAc,MAAM,wCAAwC,CAAA;AACnE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,EAAS,MAAM,QAAQ,CAAA;AAClE,OAAO,KAAK,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACpG,OAAO,MAAM,MAAM,WAAW,CAAA;AAC9B,OAAO,GAAG,MAAM,QAAQ,CAAA;AACxB,OAAO,IAAI,MAAM,SAAS,CAAA;AAC1B,OAAO,GAAG,MAAM,QAAQ,CAAA;AACxB,OAAO,KAAK,MAAM,UAAU,CAAA;AAC5B,OAAO,OAAO,MAAM,YAAY,CAAA;AAChC,OAAO,cAAc,CAAA;AAErB,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;AACxB,MAAM,UAAU,GAAG,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;AAC1C,IAAI,GAAG,GAAG,CAAC,CAAA;AAEX,SAAS,UAAU;IACjB,MAAM,EAAE,mBAAmB,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,UAAU,CAAC,CAAA;IACjE,OAAO,CACL,oBAAC,MAAM,kBACL,SAAS,EAAC,UAAU,EACpB,IAAI,EAAC,UAAU,EACf,IAAI,EAAC,OAAO,EACZ,IAAI,EAAC,MAAM,EACX,GAAG,EAAE,mBAAmB,IACpB,SAAS,EACb,CACH,CAAA;AACH,CAAC;AACD,SAAS,OAAO,CAAC,KAAK;IACpB,MAAM,EACJ,UAAU,EACV,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,SAAS,EACT,UAAU,EACV,UAAU,GACX,GAAG,WAAW,CAAC;QACd,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC;KAC1B,CAAC,CAAA;IACF,MAAM,KAAK,iDACN,KAAK,CAAC,KAAK,KACd,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAC5C,UAAU,KACP,CAAC,UAAU;QACZ,CAAC,CAAC;YACE,QAAQ,EAAE,UAAU;YACpB,MAAM,EAAE,IAAI;SACb;QACH,CAAC,CAAC,EAAE,CAAC,CACR,CAAA;IACD,MAAM,YAAY,GAAG,OAAO,CAC1B,GAAG,EAAE,CAAC,CAAC;QACL,mBAAmB;QACnB,SAAS;KACV,CAAC,EACF,CAAC,mBAAmB,EAAE,SAAS,CAAC,CACjC,CAAA;IACD,OAAO,CACL,oBAAC,UAAU,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY;QACtC,4CAAQ,KAAK,IAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,IAAM,UAAU,EAAI,CAC5C,CACvB,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,EAClB,QAAQ,EACR,YAAY,EACZ,KAAK,EACL,QAAQ,EACR,IAAI,GAAG,MAAM,EACb,IAAI,GAAG,KAAK,EAAE,gBAAgB;AAC9B,MAAM,GAAG,EAAE,EACX,OAAO,GAAG,KAAK,EACf,QAAQ,EACR,SAAS,GAAG,EAAE,EACd,OAAO,GAAG,EAAE,EACZ,OAAO,EACP,MAAM,EACN,MAAM,GAAG,EAAE,EACX,YAAY,EACZ,WAAW,GAAG,EAAE,EAChB,QAAQ,GAAG,KAAK,GACjB;IACC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QACzB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;KAC9B;IACD,IAAI,OAAO,KAAK,SAAS,EAAE;QACzB,OAAO,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAA;KACtB;IAED,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,IAAI,YAAY,CAAC,CAAA;IAE1D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,QAAQ,GAAG,KAAK,CAAA;QACpB,YAAY;QACZ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACzD,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,iCAAM,GAAG,KAAE,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,IAAG,CAAC,CAAA;YAClE,SAAS,CAAC,QAAQ,CAAC,CAAA;SACpB;aAAM;YACL,QAAQ,CAAC,QAAQ,CAAC,CAAA;SACnB;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,KAAK,EAAE,EAAE;QACtC,IAAI,QAAQ,EAAE;YACZ,QAAQ,CAAC,KAAK,CAAC,CAAA;SAChB;aAAM;YACL,QAAQ,CAAC,KAAK,CAAC,CAAA;SAChB;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,IAAI,OAAO,GAAG,MAAM,IAAI,EAAE,CAAA;IAC1B,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACnC,OAAO,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAA;KAC3B;IAED,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QACzC,OAAO,CAAC,KAAK,CAAC,mCACT,OAAO,CAAC,KAAK,CAAC,KACjB,CAAC,IAAI,CAAC,EAAE,KAAK,GACd,CAAA;QACD,SAAS,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAA;IACzB,CAAC,CAAA;IAED,MAAM,KAAK,GAAG,CAAC,KAAK,EAAE,EAAE;QACtB,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,SAAS,CAAC,CAAC,GAAG,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAA;SACxC;aAAM;YACL,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAA;YAC5C,SAAS,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAA;SACxB;IACH,CAAC,CAAA;IAED,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,EAAE;QACrB,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACpB,SAAS,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAA;IACzB,CAAC,CAAA;IAED,MAAM,SAAS,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;QACrC,IAAI,MAAM,CAAC,EAAE,MAAK,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAA,EAAE;YAC1B,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE;gBACtB,MAAM,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,MAAK,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,EAAE,CAAA,CAAC,CAAA;gBAC9E,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,MAAK,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAA,CAAC,CAAA;gBAC1E,OAAO,SAAS,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC,CAAA;YACrD,CAAC,CAAC,CAAA;SACH;IACH,CAAC,CAAA;IAED,IAAI,IAAI,KAAK,MAAM,EAAE;QACnB,OAAO,CACL,6BAAK,SAAS,EAAC,kBAAkB;YAC9B,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC3B,IAAI,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;gBAClC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;oBACpB,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAA;iBAC3C;gBACD,MAAM,UAAU,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;gBAC9E,OAAO,CACL,oBAAC,GAAG,IAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAC,uBAAuB;oBAC/D,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;wBACvB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;4BAC1B,OAAO,KAAK,CAAC,CAAC,CAAC,CACb,oBAAC,GAAG,IAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IACjB,KAAK,CACF,CACP,CAAC,CAAC,CAAC,CACF,EAAE,CACH,CAAA;yBACF;wBACD,MAAM,KAAsD,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,EAAlE,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,EAAE,QAAQ,EAAE,WAAW,OAA2B,EAAtB,KAAK,cAAjD,4BAAmD,CAAe,CAAA;wBACxE,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;wBAC5D,OAAO,CACL,oBAAC,GAAG,IAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;4BACrB,6BAAK,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,EAAE,IAC1D,KAAK,CAAC,YAAY,CAAC,KAAK,kBACvB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,EAC9B,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;oCACd,WAAW,IAAI,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;oCACjD,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;oCAC9C,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;gCACpC,CAAC,EACD,QAAQ,IACL,KAAK,EACR,CACE;4BACL,OAAO,IAAI,6BAAK,SAAS,EAAC,6BAA6B,IAAE,OAAO,CAAO,CACpE,CACP,CAAA;oBACH,CAAC,CAAC;oBACD,CAAC,QAAQ,IAAI,CACZ,oBAAC,GAAG,IAAC,IAAI,EAAE,UAAU;wBACnB,8BAAM,SAAS,EAAC,yBAAyB,IACtC,YAAY,CAAC,CAAC,CAAC,CACd,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAC3C,CAAC,CAAC,CAAC,CACF,0CACG,SAAS,CAAC,CAAC,CAAC,CACX,oBAAC,OAAO,IAAC,KAAK,EAAE,SAAS;4BACvB,8BAAM,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;gCAClC,oBAAC,IAAI,IAAC,IAAI,EAAC,QAAQ,GAAG,CACjB,CACC,CACX,CAAC,CAAC,CAAC,CACF,8BAAM,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;4BAClC,oBAAC,IAAI,IAAC,IAAI,EAAC,QAAQ,GAAG,CACjB,CACR,CACA,CACJ,CACI,CACH,CACP,CACG,CACP,CAAA;YACH,CAAC,CAAC;YACD,CAAC,QAAQ,IAAI,CACZ,oBAAC,MAAM,IAAC,IAAI,EAAC,MAAM,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE;gBACxC,oBAAC,IAAI,IAAC,IAAI,EAAC,MAAM,GAAG;gBACnB,OAAO,CACD,CACV,CACG,CACP,CAAA;KACF;SAAM;QACL,IAAI,MAAM,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;QAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACpB,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAA;SAC3C;QACD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YACrC,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAA;YAC/B,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;;gBACvB,MAAM,IAAI,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,0CAAE,IAAI,CAAA;gBAC/B,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;YAChC,CAAC,CAAC,CAAA;YACF,OAAO,IAAI,CAAA;QACb,CAAC,CAAC,CAAA;QAEF,OAAO,CACL,6BAAK,SAAS,EAAC,kBAAkB;YAC/B,oBAAC,UAAU,IAAC,SAAS,EAAE,CAAC,sBAAsB,CAAC,EAAE,SAAS,EAAE,SAAS;gBACnE,oBAAC,eAAe,IACd,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EACnC,QAAQ,EAAE,2BAA2B;oBAErC,oBAAC,KAAK,kBACJ,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,KAAK,EACjB,UAAU,EAAE;4BACV,IAAI,EAAE;gCACJ,GAAG,EAAE,OAAO;6BACb;yBACF,EACD,QAAQ,UACJ,MAAM;wBAET,IAAI,IAAI,CACP,oBAAC,MAAM,IACL,GAAG,EAAC,SAAS,EACb,SAAS,EAAC,SAAS,EACnB,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,GAAG,EAAE,CAAC,oBAAC,UAAU,OAAG,GACpB,CACX;wBACA,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;4BACpB,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,EAAE,GAAG,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,KAAI,EAAE,CAAA;4BACvD,OAAO,CACL,oBAAC,MAAM,IACL,GAAG,EAAE,IAAI,EACT,SAAS,EAAE,IAAI,EACf,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;oCAC5B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;wCAC1B,OAAO,KAAK,CAAA;qCACb;oCACD,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAA;oCACnD,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;oCAC5D,OAAO,CACL,6BAAK,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,EAAE;wCAC1D,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE;4CACzB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,SAAS;4CACxC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;gDACd,WAAW,IAAI,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;gDACjD,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;gDAC9C,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAA;4CAC9C,CAAC;yCACF,CAAC;wCACD,OAAO,IAAI,6BAAK,SAAS,EAAC,6BAA6B,IAAE,OAAO,CAAO,CACpE,CACP,CAAA;gCACH,CAAC,GACO,CACX,CAAA;wBACH,CAAC,CAAC;wBACD,CAAC,QAAQ,IAAI,CACZ,oBAAC,MAAM,IACL,GAAG,EAAC,QAAQ,EACZ,SAAS,EAAC,QAAQ,EAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EACpB,KAAK,EAAE,WAAW,EAClB,SAAS,EAAC,yBAAyB,EACnC,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;gCAC3B,IAAI,YAAY,EAAE;oCAChB,OAAO,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;iCACjD;gCACD,OAAO,CACL,0CACG,SAAS,CAAC,CAAC,CAAC,CACX,oBAAC,OAAO,IAAC,KAAK,EAAE,SAAS;oCACvB,8BAAM,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;wCAClC,oBAAC,IAAI,IAAC,IAAI,EAAC,QAAQ,GAAG,CACjB,CACC,CACX,CAAC,CAAC,CAAC,CACF,8BAAM,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;oCAClC,oBAAC,IAAI,IAAC,IAAI,EAAC,QAAQ,GAAG,CACjB,CACR,CACA,CACJ,CAAA;4BACH,CAAC,GACO,CACX,CACK,CACQ,CACP;YACZ,CAAC,QAAQ,IAAI,CACZ,oBAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,KAAK,QAAC,SAAS,EAAC,MAAM,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE;gBACjE,oBAAC,IAAI,IAAC,IAAI,EAAC,MAAM,GAAG;gBACnB,OAAO,CACD,CACV,CACG,CACP,CAAA;KACF;AACH,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,KAAK;IAC1C,OAAO,CACL,oBAAC,cAAc,IAAC,aAAa,EAAC,YAAY,IACvC,CAAC,MAAM,EAAE,EAAE;QACV,OAAO,oBAAC,UAAU,oBAAK,KAAK,IAAE,MAAM,EAAE,MAAM,IAAI,CAAA;IAClD,CAAC,CACc,CAClB,CAAA;AACH,CAAC","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"]}