@pisell/materials 1.0.977 → 1.0.979

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 (141) 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 +6 -6
  6. package/build/lowcode/preview.js +9 -9
  7. package/build/lowcode/render/default/view.css +1 -1
  8. package/build/lowcode/render/default/view.js +15 -15
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +23 -23
  11. package/es/components/PisellProcedure/PisellProcedure.d.ts +27 -0
  12. package/es/components/PisellProcedure/components/ProcedureAction.d.ts +8 -0
  13. package/es/components/PisellProcedure/components/ProcedureContent.d.ts +8 -0
  14. package/es/components/PisellProcedure/components/ProcedureHeader.d.ts +8 -0
  15. package/es/components/PisellProcedure/components/ProcedureSummary.d.ts +8 -0
  16. package/es/components/PisellProcedure/hooks/useResponsive.d.ts +6 -0
  17. package/es/components/PisellProcedure/index.d.ts +4 -0
  18. package/es/components/PisellProcedure/types.d.ts +303 -0
  19. package/es/components/PisellSteps/PisellSteps.d.ts +14 -0
  20. package/es/components/PisellSteps/PisellSteps.js +170 -148
  21. package/es/components/PisellSteps/PisellSteps.less +248 -383
  22. package/es/components/PisellSteps/hooks/index.d.ts +4 -0
  23. package/es/components/PisellSteps/hooks/index.js +4 -0
  24. package/es/components/PisellSteps/hooks/useAnchor.d.ts +9 -0
  25. package/es/components/PisellSteps/hooks/useAnchor.js +55 -0
  26. package/es/components/PisellSteps/hooks/useResponsive.d.ts +8 -0
  27. package/es/components/PisellSteps/hooks/useResponsive.js +43 -0
  28. package/es/components/PisellSteps/hooks/useStepClick.d.ts +11 -0
  29. package/es/components/PisellSteps/hooks/useStepClick.js +35 -0
  30. package/es/components/PisellSteps/hooks/useStepsState.d.ts +9 -0
  31. package/es/components/PisellSteps/hooks/useStepsState.js +60 -0
  32. package/es/components/PisellSteps/index.d.ts +3 -0
  33. package/es/components/PisellSteps/index.js +2 -5
  34. package/es/components/PisellSteps/types.d.ts +271 -0
  35. package/es/components/PisellSteps/utils/index.d.ts +54 -0
  36. package/es/components/PisellSteps/utils/index.js +118 -0
  37. package/es/components/Template/PisellSteps.d.ts +0 -0
  38. package/es/components/Template/PisellSteps.js +1 -0
  39. package/es/components/Template/PisellSteps.less +1 -0
  40. package/es/components/Template/components/index.d.ts +0 -0
  41. package/es/components/Template/components/index.js +1 -0
  42. package/es/components/Template/hooks/index.d.ts +0 -0
  43. package/es/components/Template/hooks/index.js +1 -0
  44. package/es/components/Template/utils/index.d.ts +0 -0
  45. package/es/components/Template/utils/index.js +1 -0
  46. package/es/components/dataSourceComponents/dataSourceForm/submitButton/index.js +5 -5
  47. package/es/components/dataSourceComponents/dataSourceForm/urlUtils.d.ts +0 -10
  48. package/es/components/dataSourceComponents/dataSourceForm/urlUtils.js +13 -64
  49. package/es/components/dataSourceComponents/dataSourceForm/utils.d.ts +56 -0
  50. package/es/components/dataSourceComponents/dataSourceForm/utils.js +3 -4
  51. package/es/components/dataSourceComponents/dataSourceTable/filter/index.d.ts +1 -0
  52. package/es/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.d.ts +101 -0
  53. package/es/components/dataSourceComponents/fields/Input.Mobile/WithMode.d.ts +17 -0
  54. package/es/components/dataSourceComponents/fields/Input.Phone/WithMode.d.ts +16 -0
  55. package/es/components/dataSourceComponents/fields/Select/index.d.ts +1 -1
  56. package/es/components/dataSourceComponents/fields/Switch/ReadPretty.d.ts +5 -0
  57. package/es/components/dataSourceComponents/fields/Switch/ReadPretty.js +16 -0
  58. package/es/components/dataSourceComponents/fields/Switch/ReadPretty.less +2 -0
  59. package/es/components/dataSourceComponents/fields/Switch/WithMode.d.ts +3 -0
  60. package/es/components/dataSourceComponents/fields/Switch/WithMode.js +5 -0
  61. package/es/components/dataSourceComponents/fields/Switch/index.d.ts +3 -0
  62. package/es/components/dataSourceComponents/fields/Switch/index.js +8 -0
  63. package/es/components/dataSourceComponents/fields/Switch/type.d.ts +16 -0
  64. package/es/components/dataSourceComponents/fields/Switch/type.js +1 -0
  65. package/es/components/dataSourceComponents/fields/index.d.ts +12 -12
  66. package/es/components/dataSourceComponents/provider/variables/VariablesProvider.d.ts +4 -0
  67. package/es/components/pisellCardList/index.d.ts +107 -0
  68. package/es/components/pisellGoodPassCard/index.d.ts +50 -0
  69. package/es/components/pisellWalletPassCard/index.d.ts +146 -0
  70. package/es/components/productCard/index.d.ts +7 -0
  71. package/es/index.d.ts +149 -0
  72. package/es/index.js +1 -1
  73. package/lib/components/PisellProcedure/PisellProcedure.d.ts +27 -0
  74. package/lib/components/PisellProcedure/components/ProcedureAction.d.ts +8 -0
  75. package/lib/components/PisellProcedure/components/ProcedureContent.d.ts +8 -0
  76. package/lib/components/PisellProcedure/components/ProcedureHeader.d.ts +8 -0
  77. package/lib/components/PisellProcedure/components/ProcedureSummary.d.ts +8 -0
  78. package/lib/components/PisellProcedure/hooks/useResponsive.d.ts +6 -0
  79. package/lib/components/PisellProcedure/index.d.ts +4 -0
  80. package/lib/components/PisellProcedure/types.d.ts +303 -0
  81. package/lib/components/PisellSteps/PisellSteps.d.ts +14 -0
  82. package/lib/components/PisellSteps/PisellSteps.js +155 -102
  83. package/lib/components/PisellSteps/PisellSteps.less +248 -383
  84. package/lib/components/PisellSteps/hooks/index.d.ts +4 -0
  85. package/lib/components/PisellSteps/hooks/index.js +38 -0
  86. package/lib/components/PisellSteps/hooks/useAnchor.d.ts +9 -0
  87. package/lib/components/PisellSteps/hooks/useAnchor.js +63 -0
  88. package/lib/components/PisellSteps/hooks/useResponsive.d.ts +8 -0
  89. package/lib/components/PisellSteps/hooks/useResponsive.js +48 -0
  90. package/lib/components/PisellSteps/hooks/useStepClick.d.ts +11 -0
  91. package/lib/components/PisellSteps/hooks/useStepClick.js +55 -0
  92. package/lib/components/PisellSteps/hooks/useStepsState.d.ts +9 -0
  93. package/lib/components/PisellSteps/hooks/useStepsState.js +54 -0
  94. package/lib/components/PisellSteps/index.d.ts +3 -0
  95. package/lib/components/PisellSteps/index.js +2 -7
  96. package/lib/components/PisellSteps/types.d.ts +271 -0
  97. package/lib/components/PisellSteps/utils/index.d.ts +54 -0
  98. package/lib/components/PisellSteps/utils/index.js +88 -0
  99. package/lib/components/Template/PisellSteps.d.ts +0 -0
  100. package/lib/components/Template/PisellSteps.js +0 -0
  101. package/lib/components/Template/PisellSteps.less +1 -0
  102. package/lib/components/Template/components/index.d.ts +0 -0
  103. package/lib/components/Template/components/index.js +0 -0
  104. package/lib/components/Template/hooks/index.d.ts +0 -0
  105. package/lib/components/Template/hooks/index.js +0 -0
  106. package/lib/components/Template/utils/index.d.ts +0 -0
  107. package/lib/components/Template/utils/index.js +0 -0
  108. package/lib/components/dataSourceComponents/dataSourceForm/submitButton/index.js +4 -4
  109. package/lib/components/dataSourceComponents/dataSourceForm/urlUtils.d.ts +0 -10
  110. package/lib/components/dataSourceComponents/dataSourceForm/urlUtils.js +3 -25
  111. package/lib/components/dataSourceComponents/dataSourceForm/utils.d.ts +56 -0
  112. package/lib/components/dataSourceComponents/dataSourceForm/utils.js +3 -3
  113. package/lib/components/dataSourceComponents/dataSourceTable/filter/index.d.ts +1 -0
  114. package/lib/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.d.ts +101 -0
  115. package/lib/components/dataSourceComponents/fields/Input.Mobile/WithMode.d.ts +17 -0
  116. package/lib/components/dataSourceComponents/fields/Input.Phone/WithMode.d.ts +16 -0
  117. package/lib/components/dataSourceComponents/fields/Select/index.d.ts +1 -1
  118. package/lib/components/dataSourceComponents/fields/Switch/ReadPretty.d.ts +5 -0
  119. package/lib/components/dataSourceComponents/fields/Switch/ReadPretty.js +52 -0
  120. package/lib/components/dataSourceComponents/fields/Switch/ReadPretty.less +2 -0
  121. package/lib/components/dataSourceComponents/fields/Switch/WithMode.d.ts +3 -0
  122. package/lib/components/dataSourceComponents/fields/Switch/WithMode.js +39 -0
  123. package/lib/components/dataSourceComponents/fields/Switch/index.d.ts +3 -0
  124. package/lib/components/dataSourceComponents/fields/Switch/index.js +42 -0
  125. package/lib/components/dataSourceComponents/fields/Switch/type.d.ts +16 -0
  126. package/lib/components/dataSourceComponents/fields/Switch/type.js +17 -0
  127. package/lib/components/dataSourceComponents/fields/index.d.ts +12 -12
  128. package/lib/components/dataSourceComponents/provider/variables/VariablesProvider.d.ts +4 -0
  129. package/lib/components/pisellCardList/index.d.ts +107 -0
  130. package/lib/components/pisellGoodPassCard/index.d.ts +50 -0
  131. package/lib/components/pisellWalletPassCard/index.d.ts +146 -0
  132. package/lib/components/productCard/index.d.ts +7 -0
  133. package/lib/index.d.ts +149 -0
  134. package/lib/index.js +3 -3
  135. package/lowcode/data-source-form/constants.ts +3 -0
  136. package/lowcode/data-source-form/utils.ts +36 -7
  137. package/lowcode/form-item-switch/meta.ts +145 -0
  138. package/lowcode/form-item-switch/snippets.ts +15 -0
  139. package/lowcode/pisell-steps/meta.ts +621 -271
  140. package/lowcode/pisell-steps/snippets.ts +27 -69
  141. package/package.json +3 -3
@@ -1,200 +1,222 @@
1
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"];
2
+ var _excluded = ["type", "current", "defaultCurrent", "direction", "size", "status", "initial", "items", "percent", "labelPlacement", "responsive", "onChange", "className", "style", "progressDot", "clickable", "allowClickFinished", "showProgressPercent", "iconSize", "iconColor", "connectorStyle", "connectorPosition", "animated", "gridLayout", "gridColumns", "itemLayout", "itemGap", "enableAnchor", "anchorContainer", "__designMode", "__id", "other"];
3
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 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; }
5
+ 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; }
6
+ 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; }
7
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
8
+ 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); }
4
9
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
5
10
  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
11
  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
12
  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
13
  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
14
  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
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
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';
17
+ import { Steps as AntdSteps } from 'antd';
18
+ import React, { useMemo } from 'react';
20
19
  import "./PisellSteps.less";
20
+ import { useStepsState, useStepClick, useAnchor, useResponsive } from "./hooks";
21
+ import { getStepStatus, mergeStepClassName } from "./utils";
21
22
 
22
23
  /**
23
24
  * PisellSteps 步骤条组件
24
- * 基于 Ant Design Steps 进行二次封装,提供更强大的功能和更灵活的样式定制
25
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
- * ```
26
+ * 基于 Ant Design Steps 组件进行二次封装和增强
27
+ * 支持多种展示样式、布局方式和丰富的交互功能
28
+ *
29
+ * @author Pisell Team
30
+ * @version 1.0.0
38
31
  */
39
32
  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,
33
+ var _ref$type = _ref.type,
45
34
  type = _ref$type === void 0 ? 'default' : _ref$type,
46
- _ref$size = _ref.size,
47
- size = _ref$size === void 0 ? 'default' : _ref$size,
35
+ controlledCurrent = _ref.current,
36
+ _ref$defaultCurrent = _ref.defaultCurrent,
37
+ defaultCurrent = _ref$defaultCurrent === void 0 ? 0 : _ref$defaultCurrent,
48
38
  _ref$direction = _ref.direction,
49
39
  direction = _ref$direction === void 0 ? 'horizontal' : _ref$direction,
40
+ _ref$size = _ref.size,
41
+ size = _ref$size === void 0 ? 'default' : _ref$size,
50
42
  _ref$status = _ref.status,
51
43
  status = _ref$status === void 0 ? 'process' : _ref$status,
52
- _ref$progressDot = _ref.progressDot,
53
- progressDot = _ref$progressDot === void 0 ? false : _ref$progressDot,
44
+ _ref$initial = _ref.initial,
45
+ initial = _ref$initial === void 0 ? 0 : _ref$initial,
46
+ _ref$items = _ref.items,
47
+ items = _ref$items === void 0 ? [] : _ref$items,
48
+ percent = _ref.percent,
54
49
  _ref$labelPlacement = _ref.labelPlacement,
55
50
  labelPlacement = _ref$labelPlacement === void 0 ? 'horizontal' : _ref$labelPlacement,
56
- percent = _ref.percent,
57
51
  _ref$responsive = _ref.responsive,
58
52
  responsive = _ref$responsive === void 0 ? true : _ref$responsive,
59
53
  onChange = _ref.onChange,
60
54
  className = _ref.className,
61
55
  style = _ref.style,
56
+ progressDot = _ref.progressDot,
57
+ _ref$clickable = _ref.clickable,
58
+ clickable = _ref$clickable === void 0 ? false : _ref$clickable,
59
+ _ref$allowClickFinish = _ref.allowClickFinished,
60
+ allowClickFinished = _ref$allowClickFinish === void 0 ? true : _ref$allowClickFinish,
61
+ _ref$showProgressPerc = _ref.showProgressPercent,
62
+ showProgressPercent = _ref$showProgressPerc === void 0 ? false : _ref$showProgressPerc,
63
+ iconSize = _ref.iconSize,
64
+ iconColor = _ref.iconColor,
62
65
  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,
66
+ _ref$connectorPositio = _ref.connectorPosition,
67
+ connectorPosition = _ref$connectorPositio === void 0 ? 'center' : _ref$connectorPositio,
68
+ _ref$animated = _ref.animated,
69
+ animated = _ref$animated === void 0 ? true : _ref$animated,
70
+ _ref$gridLayout = _ref.gridLayout,
71
+ gridLayout = _ref$gridLayout === void 0 ? false : _ref$gridLayout,
72
+ gridColumns = _ref.gridColumns,
73
+ _ref$itemLayout = _ref.itemLayout,
74
+ itemLayout = _ref$itemLayout === void 0 ? 'horizontal' : _ref$itemLayout,
75
+ itemGap = _ref.itemGap,
76
+ _ref$enableAnchor = _ref.enableAnchor,
77
+ enableAnchor = _ref$enableAnchor === void 0 ? false : _ref$enableAnchor,
78
+ anchorContainer = _ref.anchorContainer,
79
+ __designMode = _ref.__designMode,
80
+ __id = _ref.__id,
81
+ other = _ref.other,
67
82
  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';
83
+ // 状态管理:支持受控和非受控模式
84
+ var _useStepsState = useStepsState(controlledCurrent, defaultCurrent, onChange),
85
+ _useStepsState2 = _slicedToArray(_useStepsState, 2),
86
+ currentStep = _useStepsState2[0],
87
+ setCurrentStep = _useStepsState2[1];
76
88
 
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]);
89
+ // 处理步骤点击逻辑
90
+ var handleStepClick = useStepClick(currentStep, clickable, allowClickFinished, setCurrentStep);
92
91
 
93
- /**
94
- * 处理步骤点击事件
95
- * 默认行为:只允许点击已完成的步骤进行返回
96
- * 禁用的步骤不可点击
97
- */
98
- var handleStepClick = useCallback(function (index) {
99
- var _targetItem$onClick;
100
- var targetItem = items[index];
92
+ // 锚链接功能
93
+ useAnchor(currentStep, enableAnchor, anchorContainer);
101
94
 
102
- // 如果步骤被禁用,不触发任何操作
103
- if (targetItem !== null && targetItem !== void 0 && targetItem.disabled) {
104
- return;
105
- }
95
+ // 响应式监听
96
+ var isMobile = useResponsive(768);
106
97
 
107
- // 默认只允许点击已完成的步骤(索引小于当前步骤)
108
- if (index < current) {
109
- onChange === null || onChange === void 0 || onChange(index);
98
+ // 处理步骤数据
99
+ var processedItems = useMemo(function () {
100
+ // 过滤隐藏的步骤
101
+ var visibleItems = items.filter(function (item) {
102
+ return !item.hidden;
103
+ });
104
+
105
+ // 设计模式下提供默认数据
106
+ if (__designMode === 'design' && visibleItems.length === 0) {
107
+ return [{
108
+ title: '步骤一',
109
+ description: 'This is a description.',
110
+ status: 'finish'
111
+ }, {
112
+ title: '步骤二',
113
+ description: 'This is a description.',
114
+ status: 'process'
115
+ }, {
116
+ title: '步骤三',
117
+ description: 'This is a description.',
118
+ status: 'wait'
119
+ }];
110
120
  }
111
121
 
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]);
122
+ // 处理每个步骤项
123
+ return visibleItems.map(function (item, index) {
124
+ var adjustedIndex = index + initial;
125
+
126
+ // 计算步骤状态
127
+ // 优先级:item.status > 当前步骤使用全局status > 根据索引自动计算
128
+ var stepStatus;
129
+ if (item.status) {
130
+ // 如果步骤项自己有状态,优先使用
131
+ stepStatus = item.status;
132
+ } else if (adjustedIndex === currentStep) {
133
+ // 如果是当前步骤,使用全局的 status
134
+ stepStatus = status;
135
+ } else {
136
+ // 其他步骤根据索引自动计算
137
+ stepStatus = getStepStatus(adjustedIndex, currentStep);
138
+ }
139
+
140
+ // 合并类名
141
+ var stepClassName = mergeStepClassName('pisell-steps-item', stepStatus, item.className);
115
142
 
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
143
+ // 处理点击事件
144
+ var handleClick = function handleClick() {
145
+ if (!item.disabled) {
146
+ var _item$onClick;
147
+ (_item$onClick = item.onClick) === null || _item$onClick === void 0 || _item$onClick.call(item);
148
+ handleStepClick(adjustedIndex, item);
149
+ }
133
150
  };
151
+ return _objectSpread(_objectSpread({}, item), {}, {
152
+ status: stepStatus,
153
+ className: stepClassName,
154
+ onClick: clickable || item.onClick ? handleClick : undefined
155
+ });
134
156
  });
135
- }, [computedItems]);
157
+ }, [items, currentStep, initial, status, clickable, handleStepClick, __designMode]);
136
158
 
137
- /**
138
- * 合并样式
139
- * 支持通过 CSS Variables 传递连接器样式
140
- */
141
- var mergedStyle = useMemo(function () {
142
- var baseStyle = _objectSpread({}, style);
159
+ // 合并样式类名
160
+ var wrapperClassName = useMemo(function () {
161
+ var classes = ['pisell-steps'];
162
+ if (className) classes.push(className);
163
+ if (type !== 'default') classes.push("pisell-steps-".concat(type));
164
+ if (size !== 'default') classes.push("pisell-steps-".concat(size));
165
+ if (direction === 'vertical') classes.push('pisell-steps-vertical');
166
+ if (responsive) classes.push('pisell-steps-responsive');
167
+ if (animated) classes.push('pisell-steps-animated');
168
+ if (clickable) classes.push('pisell-steps-clickable');
169
+ if (gridLayout) classes.push('pisell-steps-grid-layout');
170
+ if (connectorPosition !== 'center') classes.push("pisell-steps-connector-".concat(connectorPosition));
171
+ if (itemLayout === 'vertical') classes.push('pisell-steps-item-vertical');
172
+ return classes.join(' ');
173
+ }, [className, type, size, direction, responsive, animated, clickable, gridLayout, connectorPosition, itemLayout]);
143
174
 
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
- });
175
+ // 合并自定义样式
176
+ var wrapperStyle = useMemo(function () {
177
+ var customStyle = _objectSpread({}, style);
178
+ if (iconSize) {
179
+ customStyle['--pisell-steps-icon-size'] = "".concat(iconSize, "px");
180
+ }
181
+ if (iconColor) {
182
+ customStyle['--pisell-steps-icon-color'] = iconColor;
183
+ }
184
+ if (itemGap) {
185
+ customStyle['--pisell-steps-item-gap'] = "".concat(itemGap, "px");
153
186
  }
154
- return baseStyle;
155
- }, [style, connectorStyle]);
187
+ if (gridColumns && gridLayout) {
188
+ customStyle['--pisell-steps-grid-columns'] = gridColumns;
189
+ }
190
+ return customStyle;
191
+ }, [style, iconSize, iconColor, itemGap, gridColumns, gridLayout]);
156
192
 
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]);
193
+ // 处理进度百分比显示
194
+ var effectivePercent = showProgressPercent ? percent : undefined;
170
195
 
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,
196
+ // 根据 type 设置 Ant Design 的展示类型
197
+ var antdType = type === 'dot' ? 'inline' : type === 'navigation' ? 'navigation' : 'default';
198
+ return /*#__PURE__*/React.createElement("div", {
199
+ className: wrapperClassName,
200
+ style: wrapperStyle,
201
+ "data-component": "pisell-steps",
202
+ "data-id": __id
203
+ }, /*#__PURE__*/React.createElement(AntdSteps, _extends({
204
+ current: currentStep - initial,
186
205
  direction: direction,
206
+ size: size === 'large' ? 'default' : size,
187
207
  status: status,
188
- progressDot: renderProgressDot,
208
+ items: processedItems,
209
+ percent: effectivePercent,
189
210
  labelPlacement: labelPlacement,
190
- percent: percent,
191
- responsive: responsive,
192
- onChange: handleStepClick,
193
- className: mergedClassName,
194
- style: mergedStyle
195
- }));
211
+ type: antdType,
212
+ progressDot: type === 'dot' ? progressDot : false
213
+ }, restProps, other)), showProgressPercent && percent !== undefined && /*#__PURE__*/React.createElement("div", {
214
+ className: "pisell-steps-progress-info"
215
+ }, /*#__PURE__*/React.createElement("span", {
216
+ className: "pisell-steps-progress-percent"
217
+ }, percent, "%")));
196
218
  };
197
219
 
198
- // 为组件添加显示名称,便于调试
220
+ // 添加 displayName 用于调试
199
221
  PisellSteps.displayName = 'PisellSteps';
200
222
  export default PisellSteps;