@pisell/materials 1.0.967 → 1.0.968

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 (94) hide show
  1. package/build/lowcode/assets-daily.json +11 -11
  2. package/build/lowcode/assets-dev.json +2 -2
  3. package/build/lowcode/assets-prod.json +11 -11
  4. package/build/lowcode/index.js +1 -1
  5. package/build/lowcode/meta.js +7 -7
  6. package/build/lowcode/preview.js +144 -160
  7. package/build/lowcode/render/default/view.css +1 -1
  8. package/build/lowcode/render/default/view.js +30 -39
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +30 -39
  11. package/es/components/PisellProcedure/PisellProcedure.js +345 -0
  12. package/es/components/PisellProcedure/PisellProcedure.less +376 -0
  13. package/es/components/PisellProcedure/components/ProcedureAction.js +93 -0
  14. package/es/components/PisellProcedure/components/ProcedureContent.js +47 -0
  15. package/es/components/PisellProcedure/components/ProcedureHeader.js +86 -0
  16. package/es/components/PisellProcedure/components/ProcedureSummary.js +99 -0
  17. package/es/components/PisellProcedure/hooks/useResponsive.js +56 -0
  18. package/es/components/PisellProcedure/index.js +8 -0
  19. package/es/components/PisellProcedure/types.js +1 -0
  20. package/es/components/PisellSteps/PisellSteps.js +200 -0
  21. package/es/components/PisellSteps/PisellSteps.less +457 -0
  22. package/es/components/PisellSteps/index.js +5 -0
  23. package/es/components/PisellSteps/types.js +1 -0
  24. package/es/components/Template/[ComponentName].js +1 -0
  25. package/es/components/Template/[ComponentName].less +1 -0
  26. package/es/components/Template/index.js +1 -0
  27. package/es/components/Template/types.js +0 -0
  28. package/es/components/dataSourceComponents/dataSourceForm/BaseForm.js +4 -2
  29. package/es/components/dataSourceComponents/dataSourceForm/provider/formSetting/FormSettingProvider.js +5 -3
  30. package/es/components/dataSourceComponents/dataSourceForm/submitButton/index.js +25 -10
  31. package/es/components/dataSourceComponents/fields/Input.Subdomain/index.d.ts +1 -1
  32. package/es/components/dataSourceComponents/fields/index.d.ts +11 -11
  33. package/es/components/pisellWalletPassCard/index.js +4 -3
  34. package/es/components/walletCard/index.js +5 -4
  35. package/es/index.js +2 -0
  36. package/lib/components/PisellProcedure/PisellProcedure.js +264 -0
  37. package/lib/components/PisellProcedure/PisellProcedure.less +376 -0
  38. package/lib/components/PisellProcedure/components/ProcedureAction.js +86 -0
  39. package/lib/components/PisellProcedure/components/ProcedureContent.js +60 -0
  40. package/lib/components/PisellProcedure/components/ProcedureHeader.js +115 -0
  41. package/lib/components/PisellProcedure/components/ProcedureSummary.js +96 -0
  42. package/lib/components/PisellProcedure/hooks/useResponsive.js +63 -0
  43. package/lib/components/PisellProcedure/index.js +42 -0
  44. package/lib/components/PisellProcedure/types.js +17 -0
  45. package/lib/components/PisellSteps/PisellSteps.js +169 -0
  46. package/lib/components/PisellSteps/PisellSteps.less +457 -0
  47. package/lib/components/PisellSteps/index.js +41 -0
  48. package/lib/components/PisellSteps/types.js +17 -0
  49. package/lib/components/Template/[ComponentName].js +0 -0
  50. package/lib/components/Template/[ComponentName].less +1 -0
  51. package/lib/components/Template/index.js +0 -0
  52. package/lib/components/Template/types.js +0 -0
  53. package/lib/components/dataSourceComponents/dataSourceForm/BaseForm.js +3 -1
  54. package/lib/components/dataSourceComponents/dataSourceForm/provider/formSetting/FormSettingProvider.js +5 -3
  55. package/lib/components/dataSourceComponents/dataSourceForm/submitButton/index.js +7 -1
  56. package/lib/components/dataSourceComponents/fields/Input.Subdomain/index.d.ts +1 -1
  57. package/lib/components/dataSourceComponents/fields/index.d.ts +11 -11
  58. package/lib/components/pisellWalletPassCard/index.js +4 -3
  59. package/lib/components/walletCard/index.js +5 -4
  60. package/lib/index.js +6 -0
  61. package/lowcode/data-source-form/meta.ts +18 -1
  62. package/lowcode/pisell-procedure/meta.ts +483 -0
  63. package/lowcode/pisell-procedure/snippets.ts +230 -0
  64. package/lowcode/pisell-steps/meta.ts +307 -0
  65. package/lowcode/pisell-steps/snippets.ts +160 -0
  66. package/package.json +3 -3
  67. package/es/components/dataSourceComponents/dataSourceForm/provider/formSetting/FormSettingContext.d.ts +0 -15
  68. package/es/components/dataSourceComponents/dataSourceForm/provider/formSetting/FormSettingProvider.d.ts +0 -8
  69. package/es/components/dataSourceComponents/dataSourceForm/type.d.ts +0 -31
  70. package/es/components/dataSourceComponents/dataSourceTable/filter/index.d.ts +0 -27
  71. package/es/components/dataSourceComponents/dataSourceTable/hooks/useTableQuery.d.ts +0 -33
  72. package/es/components/dataSourceComponents/fields/Input.Mobile/WithMode.d.ts +0 -17
  73. package/es/components/dataSourceComponents/fields/Input.Phone/WithMode.d.ts +0 -16
  74. package/es/components/dataSourceComponents/fields/Upload/BaseUpload.d.ts +0 -5
  75. package/es/components/dataSourceComponents/fields/Upload/CameraPopover.d.ts +0 -5
  76. package/es/components/dataSourceComponents/fields/Upload/type.d.ts +0 -38
  77. package/es/components/filter/types.d.ts +0 -46
  78. package/es/components/pisellCamera/index.d.ts +0 -4
  79. package/es/components/table/Actions/index.d.ts +0 -17
  80. package/es/components/virtual-keyboard/Amount/index.d.ts +0 -5
  81. package/lib/components/dataSourceComponents/dataSourceForm/provider/formSetting/FormSettingContext.d.ts +0 -15
  82. package/lib/components/dataSourceComponents/dataSourceForm/provider/formSetting/FormSettingProvider.d.ts +0 -8
  83. package/lib/components/dataSourceComponents/dataSourceForm/type.d.ts +0 -31
  84. package/lib/components/dataSourceComponents/dataSourceTable/filter/index.d.ts +0 -27
  85. package/lib/components/dataSourceComponents/dataSourceTable/hooks/useTableQuery.d.ts +0 -33
  86. package/lib/components/dataSourceComponents/fields/Input.Mobile/WithMode.d.ts +0 -17
  87. package/lib/components/dataSourceComponents/fields/Input.Phone/WithMode.d.ts +0 -16
  88. package/lib/components/dataSourceComponents/fields/Upload/BaseUpload.d.ts +0 -5
  89. package/lib/components/dataSourceComponents/fields/Upload/CameraPopover.d.ts +0 -5
  90. package/lib/components/dataSourceComponents/fields/Upload/type.d.ts +0 -38
  91. package/lib/components/filter/types.d.ts +0 -46
  92. package/lib/components/pisellCamera/index.d.ts +0 -4
  93. package/lib/components/table/Actions/index.d.ts +0 -17
  94. package/lib/components/virtual-keyboard/Amount/index.d.ts +0 -5
@@ -0,0 +1,99 @@
1
+ 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); }
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
8
+ 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."); }
9
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
10
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
11
+ 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; } }
12
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
13
+ import React, { useState, useMemo, useCallback, useEffect } from 'react';
14
+ import { Button } from 'antd';
15
+ import { UpOutlined, DownOutlined } from '@ant-design/icons';
16
+ import classNames from 'classnames';
17
+ /**
18
+ * ProcedureSummary 组件
19
+ * 信息总结区域,展示实时反馈信息
20
+ */
21
+ var ProcedureSummary = function ProcedureSummary(_ref) {
22
+ var current = _ref.current,
23
+ summaryRender = _ref.summaryRender,
24
+ width = _ref.width,
25
+ collapsible = _ref.collapsible,
26
+ defaultCollapsed = _ref.defaultCollapsed,
27
+ onCollapseChange = _ref.onCollapseChange,
28
+ summaryExtra = _ref.summaryExtra,
29
+ className = _ref.className,
30
+ style = _ref.style,
31
+ _ref$visible = _ref.visible,
32
+ visible = _ref$visible === void 0 ? true : _ref$visible;
33
+ /**
34
+ * 折叠状态
35
+ */
36
+ var _useState = useState(defaultCollapsed),
37
+ _useState2 = _slicedToArray(_useState, 2),
38
+ collapsed = _useState2[0],
39
+ setCollapsed = _useState2[1];
40
+
41
+ /**
42
+ * 同步默认折叠状态
43
+ */
44
+ useEffect(function () {
45
+ setCollapsed(defaultCollapsed);
46
+ }, [defaultCollapsed]);
47
+
48
+ /**
49
+ * 合并类名
50
+ */
51
+ var mergedClassName = useMemo(function () {
52
+ return classNames('pisell-procedure-summary', {
53
+ 'pisell-procedure-summary-collapsed': collapsed,
54
+ 'pisell-procedure-summary-collapsible': collapsible
55
+ }, className);
56
+ }, [collapsed, collapsible, className]);
57
+
58
+ /**
59
+ * 合并样式
60
+ */
61
+ var mergedStyle = useMemo(function () {
62
+ var baseStyle = _objectSpread({}, style);
63
+ if (width) {
64
+ baseStyle.width = typeof width === 'number' ? "".concat(width, "px") : width;
65
+ }
66
+ if (!visible) {
67
+ baseStyle.display = 'none';
68
+ }
69
+ return baseStyle;
70
+ }, [style, width, visible]);
71
+
72
+ /**
73
+ * 处理折叠/展开
74
+ */
75
+ var handleToggleCollapse = useCallback(function () {
76
+ var newCollapsed = !collapsed;
77
+ setCollapsed(newCollapsed);
78
+ onCollapseChange === null || onCollapseChange === void 0 || onCollapseChange(newCollapsed);
79
+ }, [collapsed, onCollapseChange]);
80
+ if (!summaryRender) {
81
+ return null;
82
+ }
83
+ return /*#__PURE__*/React.createElement("div", {
84
+ className: mergedClassName,
85
+ style: mergedStyle
86
+ }, collapsible && /*#__PURE__*/React.createElement("div", {
87
+ className: "pisell-procedure-summary-header"
88
+ }, /*#__PURE__*/React.createElement(Button, {
89
+ type: "text",
90
+ icon: collapsed ? /*#__PURE__*/React.createElement(DownOutlined, null) : /*#__PURE__*/React.createElement(UpOutlined, null),
91
+ onClick: handleToggleCollapse,
92
+ className: "pisell-procedure-summary-toggle"
93
+ }, collapsed ? '展开' : '收起')), !collapsed && /*#__PURE__*/React.createElement("div", {
94
+ className: "pisell-procedure-summary-content"
95
+ }, summaryRender(current)), !collapsed && summaryExtra && /*#__PURE__*/React.createElement("div", {
96
+ className: "pisell-procedure-summary-extra"
97
+ }, summaryExtra));
98
+ };
99
+ export default ProcedureSummary;
@@ -0,0 +1,56 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
5
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
+ import { useEffect, useState } from 'react';
8
+ /**
9
+ * 响应式断点配置
10
+ */
11
+ var BREAKPOINTS = {
12
+ xs: 430,
13
+ sm: 744,
14
+ md: 960,
15
+ lg: 1133,
16
+ xl: 1366
17
+ };
18
+
19
+ /**
20
+ * useResponsive Hook
21
+ * 监听视口宽度变化,返回当前断点信息
22
+ */
23
+ export var useResponsive = function useResponsive() {
24
+ var _useState = useState({
25
+ xs: false,
26
+ sm: false,
27
+ md: false,
28
+ lg: false,
29
+ xl: false
30
+ }),
31
+ _useState2 = _slicedToArray(_useState, 2),
32
+ responsive = _useState2[0],
33
+ setResponsive = _useState2[1];
34
+ useEffect(function () {
35
+ var handleResize = function handleResize() {
36
+ var width = window.innerWidth;
37
+ setResponsive({
38
+ xs: width < BREAKPOINTS.xs,
39
+ sm: width < BREAKPOINTS.sm,
40
+ md: width < BREAKPOINTS.md,
41
+ lg: width < BREAKPOINTS.lg,
42
+ xl: width < BREAKPOINTS.xl
43
+ });
44
+ };
45
+
46
+ // 初始化
47
+ handleResize();
48
+
49
+ // 监听窗口大小变化
50
+ window.addEventListener('resize', handleResize);
51
+ return function () {
52
+ window.removeEventListener('resize', handleResize);
53
+ };
54
+ }, []);
55
+ return responsive;
56
+ };
@@ -0,0 +1,8 @@
1
+ import PisellProcedure from "./PisellProcedure";
2
+
3
+ // 导出组件
4
+ export { default as PisellProcedure } from "./PisellProcedure";
5
+
6
+ // 导出类型
7
+
8
+ export default PisellProcedure;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,200 @@
1
+ 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); }
2
+ var _excluded = ["current", "items", "type", "size", "direction", "status", "progressDot", "labelPlacement", "percent", "responsive", "onChange", "className", "style", "connectorStyle", "showConnector", "iconPosition"];
3
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
4
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
5
+ 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."); }
6
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
7
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
8
+ 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; } }
9
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
10
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
11
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
12
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
14
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
15
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
16
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
17
+ import React, { useMemo, useCallback } from 'react';
18
+ import { Steps } from 'antd';
19
+ import classNames from 'classnames';
20
+ import "./PisellSteps.less";
21
+
22
+ /**
23
+ * PisellSteps 步骤条组件
24
+ * 基于 Ant Design Steps 进行二次封装,提供更强大的功能和更灵活的样式定制
25
+ *
26
+ * @example
27
+ * ```tsx
28
+ * <PisellSteps
29
+ * current={1}
30
+ * items={[
31
+ * { title: 'Finished', description: 'This is a description.' },
32
+ * { title: 'In Progress', description: 'This is a description.' },
33
+ * { title: 'Waiting', description: 'This is a description.' },
34
+ * ]}
35
+ * onChange={(current) => console.log('Step changed to:', current)}
36
+ * />
37
+ * ```
38
+ */
39
+ var PisellSteps = function PisellSteps(_ref) {
40
+ var _ref$current = _ref.current,
41
+ current = _ref$current === void 0 ? 0 : _ref$current,
42
+ _ref$items = _ref.items,
43
+ items = _ref$items === void 0 ? [] : _ref$items,
44
+ _ref$type = _ref.type,
45
+ type = _ref$type === void 0 ? 'default' : _ref$type,
46
+ _ref$size = _ref.size,
47
+ size = _ref$size === void 0 ? 'default' : _ref$size,
48
+ _ref$direction = _ref.direction,
49
+ direction = _ref$direction === void 0 ? 'horizontal' : _ref$direction,
50
+ _ref$status = _ref.status,
51
+ status = _ref$status === void 0 ? 'process' : _ref$status,
52
+ _ref$progressDot = _ref.progressDot,
53
+ progressDot = _ref$progressDot === void 0 ? false : _ref$progressDot,
54
+ _ref$labelPlacement = _ref.labelPlacement,
55
+ labelPlacement = _ref$labelPlacement === void 0 ? 'horizontal' : _ref$labelPlacement,
56
+ percent = _ref.percent,
57
+ _ref$responsive = _ref.responsive,
58
+ responsive = _ref$responsive === void 0 ? true : _ref$responsive,
59
+ onChange = _ref.onChange,
60
+ className = _ref.className,
61
+ style = _ref.style,
62
+ connectorStyle = _ref.connectorStyle,
63
+ _ref$showConnector = _ref.showConnector,
64
+ showConnector = _ref$showConnector === void 0 ? true : _ref$showConnector,
65
+ _ref$iconPosition = _ref.iconPosition,
66
+ iconPosition = _ref$iconPosition === void 0 ? 'top' : _ref$iconPosition,
67
+ restProps = _objectWithoutProperties(_ref, _excluded);
68
+ /**
69
+ * 计算每个步骤的实际状态
70
+ * 根据当前步骤索引和每个步骤的配置,自动计算出每个步骤应该显示的状态
71
+ */
72
+ var computedItems = useMemo(function () {
73
+ return items.map(function (item, index) {
74
+ // 如果步骤已经指定了状态,则使用指定的状态
75
+ var itemStatus = item.status || 'wait';
76
+
77
+ // 如果没有指定状态,则根据当前步骤索引自动计算
78
+ if (!item.status) {
79
+ if (index < current) {
80
+ itemStatus = 'finish';
81
+ } else if (index === current) {
82
+ itemStatus = status;
83
+ } else {
84
+ itemStatus = 'wait';
85
+ }
86
+ }
87
+ return _objectSpread(_objectSpread({}, item), {}, {
88
+ status: itemStatus
89
+ });
90
+ });
91
+ }, [items, current, status]);
92
+
93
+ /**
94
+ * 处理步骤点击事件
95
+ * 默认行为:只允许点击已完成的步骤进行返回
96
+ * 禁用的步骤不可点击
97
+ */
98
+ var handleStepClick = useCallback(function (index) {
99
+ var _targetItem$onClick;
100
+ var targetItem = items[index];
101
+
102
+ // 如果步骤被禁用,不触发任何操作
103
+ if (targetItem !== null && targetItem !== void 0 && targetItem.disabled) {
104
+ return;
105
+ }
106
+
107
+ // 默认只允许点击已完成的步骤(索引小于当前步骤)
108
+ if (index < current) {
109
+ onChange === null || onChange === void 0 || onChange(index);
110
+ }
111
+
112
+ // 触发步骤自身的 onClick 回调
113
+ targetItem === null || targetItem === void 0 || (_targetItem$onClick = targetItem.onClick) === null || _targetItem$onClick === void 0 || _targetItem$onClick.call(targetItem);
114
+ }, [items, current, onChange]);
115
+
116
+ /**
117
+ * 转换 items 为 Ant Design Steps 所需的格式
118
+ * 保留所有必要的属性,确保完整的功能支持
119
+ */
120
+ var antdItems = useMemo(function () {
121
+ return computedItems.map(function (item) {
122
+ return {
123
+ title: item.title,
124
+ subTitle: item.subTitle,
125
+ description: item.description,
126
+ status: item.status,
127
+ icon: item.icon,
128
+ disabled: item.disabled,
129
+ className: classNames(item.className, {
130
+ 'pisell-steps-item-clickable': !item.disabled && item.status === 'finish'
131
+ }),
132
+ style: item.style
133
+ };
134
+ });
135
+ }, [computedItems]);
136
+
137
+ /**
138
+ * 合并样式
139
+ * 支持通过 CSS Variables 传递连接器样式
140
+ */
141
+ var mergedStyle = useMemo(function () {
142
+ var baseStyle = _objectSpread({}, style);
143
+
144
+ // 如果提供了连接器样式,通过 CSS Variables 传递
145
+ if (connectorStyle) {
146
+ Object.entries(connectorStyle).forEach(function (_ref2) {
147
+ var _ref3 = _slicedToArray(_ref2, 2),
148
+ key = _ref3[0],
149
+ value = _ref3[1];
150
+ var cssVarKey = "--pisell-step-connector-".concat(key.replace(/([A-Z])/g, '-$1').toLowerCase());
151
+ baseStyle[cssVarKey] = value;
152
+ });
153
+ }
154
+ return baseStyle;
155
+ }, [style, connectorStyle]);
156
+
157
+ /**
158
+ * 合并类名
159
+ * 根据不同的配置添加对应的样式类
160
+ */
161
+ var mergedClassName = useMemo(function () {
162
+ return classNames('pisell-steps', "pisell-steps-".concat(type), "pisell-steps-".concat(size), "pisell-steps-".concat(direction), {
163
+ 'pisell-steps-dot': progressDot,
164
+ 'pisell-steps-responsive': responsive,
165
+ 'pisell-steps-no-connector': !showConnector,
166
+ 'pisell-steps-label-vertical': labelPlacement === 'vertical',
167
+ 'pisell-steps-icon-bottom': iconPosition === 'bottom'
168
+ }, className);
169
+ }, [type, size, direction, progressDot, responsive, showConnector, labelPlacement, iconPosition, className]);
170
+
171
+ /**
172
+ * 处理 progressDot 属性
173
+ * 支持布尔值和函数两种形式
174
+ */
175
+ var renderProgressDot = useMemo(function () {
176
+ if (typeof progressDot === 'function') {
177
+ return progressDot;
178
+ }
179
+ return progressDot;
180
+ }, [progressDot]);
181
+ return /*#__PURE__*/React.createElement(Steps, _extends({}, restProps, {
182
+ type: type,
183
+ current: current,
184
+ items: antdItems,
185
+ size: size,
186
+ direction: direction,
187
+ status: status,
188
+ progressDot: renderProgressDot,
189
+ labelPlacement: labelPlacement,
190
+ percent: percent,
191
+ responsive: responsive,
192
+ onChange: handleStepClick,
193
+ className: mergedClassName,
194
+ style: mergedStyle
195
+ }));
196
+ };
197
+
198
+ // 为组件添加显示名称,便于调试
199
+ PisellSteps.displayName = 'PisellSteps';
200
+ export default PisellSteps;