@pisell/private-materials 3.4.43 → 3.4.44

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 (131) 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 +9 -1
  6. package/build/lowcode/preview.js +149 -149
  7. package/build/lowcode/render/default/view.css +1 -1
  8. package/build/lowcode/render/default/view.js +8 -8
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +8 -8
  11. package/es/components/appointmentBooking/components/Cart/Item/index.d.ts +1 -1
  12. package/es/components/appointmentBooking/components/Cart/Item/index.js +3 -2
  13. package/es/components/appointmentBooking/components/ConfirmInformation/index.js +273 -76
  14. package/es/components/appointmentBooking/components/ConfirmInformation/index.less +15 -0
  15. package/es/components/appointmentBooking/hooks.d.ts +1 -0
  16. package/es/components/appointmentBooking/hooks.js +30 -30
  17. package/es/components/appointmentBooking/locales.d.ts +3 -0
  18. package/es/components/appointmentBooking/locales.js +9 -6
  19. package/es/components/booking/components/customSelect/index.js +1 -1
  20. package/es/components/booking/components/footer/index.js +4 -1
  21. package/es/components/booking/components/footer/utils.js +75 -73
  22. package/es/components/booking/forms/footer.js +24 -10
  23. package/es/components/booking/forms/sendModal/useSendModal.d.ts +1 -1
  24. package/es/components/booking/info/client/index.js +28 -13
  25. package/es/components/booking/info/clientVariant/hooks/useClientFn.js +16 -10
  26. package/es/components/booking/info/clientVariant/vertical/SelectDrawer.js +10 -2
  27. package/es/components/booking/info/clientVariant/vertical/index.js +1 -1
  28. package/es/components/booking/info/main.js +3 -2
  29. package/es/components/booking/info/model.js +5 -0
  30. package/es/components/booking/info2/index.js +3 -2
  31. package/es/components/booking/info2/service/contactInfoMode/index.d.ts +2 -0
  32. package/es/components/booking/info2/service/contactInfoMode/index.js +94 -0
  33. package/es/components/booking/locales.d.ts +6 -0
  34. package/es/components/booking/locales.js +12 -3
  35. package/es/components/booking/model.d.ts +4 -0
  36. package/es/components/booking/model.js +3 -0
  37. package/es/components/ticketBooking/components/ticketBooking/index.less +2 -1
  38. package/es/index.d.ts +2 -0
  39. package/es/index.js +3 -1
  40. package/es/plus/clientName/index.d.ts +4 -0
  41. package/es/plus/clientName/index.js +18 -0
  42. package/es/plus/clientName/index.less +10 -0
  43. package/es/plus/clientName/type.d.ts +13 -0
  44. package/es/plus/clientName/type.js +1 -0
  45. package/es/plus/clientName/utils.d.ts +2 -0
  46. package/es/plus/clientName/utils.js +18 -0
  47. package/es/plus/contactInfo/components/Avatar/index.d.ts +10 -0
  48. package/es/plus/contactInfo/components/Avatar/index.js +30 -0
  49. package/es/plus/contactInfo/components/SwipeAction/index.d.ts +46 -0
  50. package/es/plus/contactInfo/components/SwipeAction/index.js +360 -0
  51. package/es/plus/contactInfo/components/SwipeAction/index.less +74 -0
  52. package/es/plus/contactInfo/index.d.ts +6 -0
  53. package/es/plus/contactInfo/index.js +198 -0
  54. package/es/plus/contactInfo/index.less +621 -0
  55. package/es/plus/contactInfo/locales.d.ts +15 -0
  56. package/es/plus/contactInfo/locales.js +14 -0
  57. package/es/plus/contactInfo/types.d.ts +91 -0
  58. package/es/plus/contactInfo/types.js +1 -0
  59. package/es/plus/contactInfo/utils.d.ts +7 -0
  60. package/es/plus/contactInfo/utils.js +50 -0
  61. package/es/plus/contactInfoModal/ContactInfoContent.d.ts +3 -0
  62. package/es/plus/contactInfoModal/ContactInfoContent.js +74 -0
  63. package/es/plus/contactInfoModal/index.d.ts +41 -0
  64. package/es/plus/contactInfoModal/index.js +155 -0
  65. package/es/plus/contactInfoModal/index.less +19 -0
  66. package/es/plus/contactInfoModal/locales.d.ts +66 -0
  67. package/es/plus/contactInfoModal/locales.js +65 -0
  68. package/lib/components/appointmentBooking/components/Cart/Item/index.d.ts +1 -1
  69. package/lib/components/appointmentBooking/components/Cart/Item/index.js +5 -3
  70. package/lib/components/appointmentBooking/components/ConfirmInformation/index.js +156 -13
  71. package/lib/components/appointmentBooking/components/ConfirmInformation/index.less +15 -0
  72. package/lib/components/appointmentBooking/hooks.d.ts +1 -0
  73. package/lib/components/appointmentBooking/hooks.js +73 -35
  74. package/lib/components/appointmentBooking/locales.d.ts +3 -0
  75. package/lib/components/appointmentBooking/locales.js +6 -3
  76. package/lib/components/booking/components/customSelect/index.js +1 -1
  77. package/lib/components/booking/components/footer/index.js +4 -1
  78. package/lib/components/booking/components/footer/utils.js +93 -68
  79. package/lib/components/booking/forms/footer.js +29 -11
  80. package/lib/components/booking/forms/sendModal/useSendModal.d.ts +1 -1
  81. package/lib/components/booking/info/client/index.js +14 -1
  82. package/lib/components/booking/info/clientVariant/hooks/useClientFn.js +7 -2
  83. package/lib/components/booking/info/clientVariant/vertical/SelectDrawer.js +11 -4
  84. package/lib/components/booking/info/clientVariant/vertical/index.js +34 -17
  85. package/lib/components/booking/info/main.js +5 -4
  86. package/lib/components/booking/info/model.js +5 -0
  87. package/lib/components/booking/info2/index.js +5 -4
  88. package/lib/components/booking/info2/service/contactInfoMode/index.d.ts +2 -0
  89. package/lib/components/booking/info2/service/contactInfoMode/index.js +111 -0
  90. package/lib/components/booking/locales.d.ts +6 -0
  91. package/lib/components/booking/locales.js +12 -3
  92. package/lib/components/booking/model.d.ts +4 -0
  93. package/lib/components/booking/model.js +3 -0
  94. package/lib/components/ticketBooking/components/ticketBooking/index.less +2 -1
  95. package/lib/index.d.ts +2 -0
  96. package/lib/index.js +6 -0
  97. package/lib/plus/clientName/index.d.ts +4 -0
  98. package/lib/plus/clientName/index.js +53 -0
  99. package/lib/plus/clientName/index.less +10 -0
  100. package/lib/plus/clientName/type.d.ts +13 -0
  101. package/lib/plus/clientName/type.js +17 -0
  102. package/lib/plus/clientName/utils.d.ts +2 -0
  103. package/lib/plus/clientName/utils.js +43 -0
  104. package/lib/plus/contactInfo/components/Avatar/index.d.ts +10 -0
  105. package/lib/plus/contactInfo/components/Avatar/index.js +56 -0
  106. package/lib/plus/contactInfo/components/SwipeAction/index.d.ts +46 -0
  107. package/lib/plus/contactInfo/components/SwipeAction/index.js +373 -0
  108. package/lib/plus/contactInfo/components/SwipeAction/index.less +74 -0
  109. package/lib/plus/contactInfo/index.d.ts +6 -0
  110. package/lib/plus/contactInfo/index.js +226 -0
  111. package/lib/plus/contactInfo/index.less +621 -0
  112. package/lib/plus/contactInfo/locales.d.ts +15 -0
  113. package/lib/plus/contactInfo/locales.js +38 -0
  114. package/lib/plus/contactInfo/types.d.ts +91 -0
  115. package/lib/plus/contactInfo/types.js +17 -0
  116. package/lib/plus/contactInfo/utils.d.ts +7 -0
  117. package/lib/plus/contactInfo/utils.js +64 -0
  118. package/lib/plus/contactInfoModal/ContactInfoContent.d.ts +3 -0
  119. package/lib/plus/contactInfoModal/ContactInfoContent.js +129 -0
  120. package/lib/plus/contactInfoModal/index.d.ts +41 -0
  121. package/lib/plus/contactInfoModal/index.js +139 -0
  122. package/lib/plus/contactInfoModal/index.less +19 -0
  123. package/lib/plus/contactInfoModal/locales.d.ts +66 -0
  124. package/lib/plus/contactInfoModal/locales.js +89 -0
  125. package/lowcode/contact-info/fragments/cardStyle.ts +68 -0
  126. package/lowcode/contact-info/fragments/nameStyle.ts +33 -0
  127. package/lowcode/contact-info/fragments/pisellAvatar.ts +103 -0
  128. package/lowcode/contact-info/fragments/textStyle.ts +33 -0
  129. package/lowcode/contact-info/meta.ts +199 -0
  130. package/lowcode/contact-info-modal/meta.ts +98 -0
  131. package/package.json +4 -2
@@ -0,0 +1,30 @@
1
+ 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); }
2
+ import React from 'react';
3
+ import { PisellAvatar } from '@pisell/materials';
4
+ import { getAvatarText } from "../../utils";
5
+ import { PREFIX } from "../../index";
6
+ import "../../index.less";
7
+ var Avatar = function Avatar(props) {
8
+ var config = props.config,
9
+ name = props.name,
10
+ cover = props.cover;
11
+ var _ref = config || {},
12
+ useTextAvatar = _ref.useTextAvatar,
13
+ children = _ref.children;
14
+ if (useTextAvatar) {
15
+ var text = children || getAvatarText(name);
16
+ return /*#__PURE__*/React.createElement("div", {
17
+ className: "".concat(PREFIX, "__avatar-wrapper")
18
+ }, /*#__PURE__*/React.createElement(PisellAvatar, _extends({
19
+ className: "".concat(PREFIX, "__avatar")
20
+ }, config || {}), text));
21
+ }
22
+ return /*#__PURE__*/React.createElement("div", {
23
+ className: "".concat(PREFIX, "__avatar-wrapper")
24
+ }, /*#__PURE__*/React.createElement(PisellAvatar, _extends({
25
+ className: "".concat(PREFIX, "__avatar")
26
+ }, config || {}, {
27
+ src: cover || ''
28
+ })));
29
+ };
30
+ export default Avatar;
@@ -0,0 +1,46 @@
1
+ import type { ReactNode } from 'react';
2
+ import React from 'react';
3
+ declare type NativeProps<S extends string = never> = {
4
+ className?: string;
5
+ style?: React.CSSProperties & Partial<Record<S, string>>;
6
+ };
7
+ declare type PropagationEvent = 'click';
8
+ import './index.less';
9
+ declare type SideType = 'left' | 'right';
10
+ export declare type SwipeActionRef = {
11
+ close: () => void;
12
+ show: (side?: SideType) => void;
13
+ };
14
+ declare type ActionColor = 'light' | 'weak' | 'primary' | 'success' | 'warning' | 'danger';
15
+ export declare type Action = {
16
+ key: string | number;
17
+ text: ReactNode;
18
+ color?: ActionColor | string;
19
+ onClick?: (e: React.MouseEvent) => void;
20
+ style?: React.CSSProperties;
21
+ };
22
+ export declare type SwipeActionProps = {
23
+ rightActions?: Action[];
24
+ leftActions?: Action[];
25
+ onAction?: (action: Action, e: React.MouseEvent) => void;
26
+ closeOnTouchOutside?: boolean;
27
+ closeOnAction?: boolean;
28
+ children: ReactNode;
29
+ stopPropagation?: PropagationEvent[];
30
+ onActionsReveal?: (side: SideType) => void;
31
+ onClose?: () => void;
32
+ escapeDom?: string;
33
+ } & NativeProps<'--background'>;
34
+ export declare const SwipeAction: React.ForwardRefExoticComponent<{
35
+ rightActions?: Action[] | undefined;
36
+ leftActions?: Action[] | undefined;
37
+ onAction?: ((action: Action, e: React.MouseEvent) => void) | undefined;
38
+ closeOnTouchOutside?: boolean | undefined;
39
+ closeOnAction?: boolean | undefined;
40
+ children: ReactNode;
41
+ stopPropagation?: "click"[] | undefined;
42
+ onActionsReveal?: ((side: SideType) => void) | undefined;
43
+ onClose?: (() => void) | undefined;
44
+ escapeDom?: string | undefined;
45
+ } & NativeProps<"--background"> & React.RefAttributes<SwipeActionRef>>;
46
+ export {};
@@ -0,0 +1,360 @@
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 _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); }
3
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4
+ 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."); }
5
+ 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); }
6
+ 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; }
7
+ 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; } }
8
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
9
+ 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; }
10
+ 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; }
11
+ 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; }
12
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
13
+ 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); }
14
+ import { animated, useSpring } from '@react-spring/web';
15
+ import { useDrag } from '@use-gesture/react/dist/use-gesture-react.cjs';
16
+ import React, { forwardRef, useEffect, useImperativeHandle, useRef, useState } from 'react';
17
+
18
+ // 本地实现的工具函数和类型
19
+
20
+ // withNativeProps 工具函数
21
+ function withNativeProps(props, element) {
22
+ var p = _objectSpread({}, element.props);
23
+ if (props.className) {
24
+ p.className = props.className + (element.props.className ? " ".concat(element.props.className) : '');
25
+ }
26
+ if (props.style) {
27
+ p.style = _objectSpread(_objectSpread({}, props.style), element.props.style);
28
+ }
29
+ return /*#__PURE__*/React.cloneElement(element, p);
30
+ }
31
+
32
+ // nearest 工具函数
33
+ function nearest(arr, target) {
34
+ return arr.reduce(function (prev, curr) {
35
+ return Math.abs(curr - target) < Math.abs(prev - target) ? curr : prev;
36
+ });
37
+ }
38
+
39
+ // mergeProps 工具函数
40
+ function mergeProps(a, b) {
41
+ return _objectSpread(_objectSpread({}, a), b);
42
+ }
43
+
44
+ // withStopPropagation 工具函数
45
+ function withStopPropagation(events, element) {
46
+ if (!events.includes('click')) {
47
+ return element;
48
+ }
49
+ var onClick = function onClick(e) {
50
+ var _element$props$onClic, _element$props;
51
+ e.stopPropagation();
52
+ (_element$props$onClic = (_element$props = element.props).onClick) === null || _element$props$onClic === void 0 || _element$props$onClic.call(_element$props, e);
53
+ };
54
+ return /*#__PURE__*/React.cloneElement(element, _objectSpread(_objectSpread({}, element.props), {}, {
55
+ onClick: onClick
56
+ }));
57
+ }
58
+
59
+ // Button 组件实现
60
+
61
+ var Button = function Button(_ref) {
62
+ var children = _ref.children,
63
+ className = _ref.className,
64
+ style = _ref.style,
65
+ onClick = _ref.onClick;
66
+ return /*#__PURE__*/React.createElement("button", {
67
+ className: className,
68
+ style: _objectSpread({
69
+ border: 'none',
70
+ background: (style === null || style === void 0 ? void 0 : style['--background-color']) || 'transparent'
71
+ }, style),
72
+ onClick: onClick
73
+ }, children);
74
+ };
75
+ import "./index.less";
76
+ var classPrefix = "pisell-custom-swipe-action";
77
+ var defaultProps = {
78
+ rightActions: [],
79
+ leftActions: [],
80
+ closeOnTouchOutside: true,
81
+ closeOnAction: true,
82
+ stopPropagation: []
83
+ };
84
+ export var SwipeAction = /*#__PURE__*/forwardRef(function (p, ref) {
85
+ var props = mergeProps(defaultProps, p);
86
+ var rootRef = useRef(null);
87
+ var leftRef = useRef(null);
88
+ var rightRef = useRef(null);
89
+
90
+ // 添加容器高度状态
91
+ var _useState = useState(0),
92
+ _useState2 = _slicedToArray(_useState, 2),
93
+ containerHeight = _useState2[0],
94
+ setContainerHeight = _useState2[1];
95
+ function getWidth(ref) {
96
+ var element = ref.current;
97
+ if (!element) return 0;
98
+ return element.offsetWidth;
99
+ }
100
+
101
+ // 添加获取高度的函数
102
+ function getHeight(ref) {
103
+ var element = ref.current;
104
+ if (!element) return 0;
105
+ return element.offsetHeight;
106
+ }
107
+ function getLeftWidth() {
108
+ return getWidth(leftRef);
109
+ }
110
+ function getRightWidth() {
111
+ return getWidth(rightRef);
112
+ }
113
+
114
+ // 添加获取根容器高度的函数
115
+ function getRootHeight() {
116
+ return getHeight(rootRef);
117
+ }
118
+ var _useSpring = useSpring(function () {
119
+ return {
120
+ x: 0,
121
+ config: {
122
+ tension: 200,
123
+ friction: 30
124
+ }
125
+ };
126
+ }, []),
127
+ _useSpring2 = _slicedToArray(_useSpring, 2),
128
+ x = _useSpring2[0].x,
129
+ api = _useSpring2[1];
130
+ var draggingRef = useRef(false);
131
+ var dragCancelRef = useRef(null);
132
+ function forceCancelDrag() {
133
+ var _dragCancelRef$curren;
134
+ (_dragCancelRef$curren = dragCancelRef.current) === null || _dragCancelRef$curren === void 0 || _dragCancelRef$curren.call(dragCancelRef);
135
+ draggingRef.current = false;
136
+ }
137
+ var bind = useDrag(function (state) {
138
+ dragCancelRef.current = state.cancel;
139
+ if (!state.intentional) return;
140
+ if (state.down) {
141
+ draggingRef.current = true;
142
+ }
143
+ if (!draggingRef.current) return;
144
+ var _state$offset = _slicedToArray(state.offset, 1),
145
+ offsetX = _state$offset[0];
146
+ if (state.last) {
147
+ var leftWidth = getLeftWidth();
148
+ var rightWidth = getRightWidth();
149
+ var position = offsetX + state.velocity[0] * state.direction[0] * 50;
150
+ if (offsetX > 0) {
151
+ position = Math.max(0, position);
152
+ } else if (offsetX < 0) {
153
+ position = Math.min(0, position);
154
+ } else {
155
+ position = 0;
156
+ }
157
+ var targetX = nearest([-rightWidth, 0, leftWidth], position);
158
+ api.start({
159
+ x: targetX
160
+ });
161
+ if (targetX !== 0) {
162
+ var _p$onActionsReveal;
163
+ (_p$onActionsReveal = p.onActionsReveal) === null || _p$onActionsReveal === void 0 || _p$onActionsReveal.call(p, targetX > 0 ? 'left' : 'right');
164
+ }
165
+ window.setTimeout(function () {
166
+ draggingRef.current = false;
167
+ });
168
+ } else {
169
+ api.start({
170
+ x: offsetX,
171
+ immediate: true
172
+ });
173
+ }
174
+ }, {
175
+ from: function from() {
176
+ return [x.get(), 0];
177
+ },
178
+ bounds: function bounds() {
179
+ var leftWidth = getLeftWidth();
180
+ var rightWidth = getRightWidth();
181
+ return {
182
+ left: -rightWidth,
183
+ right: leftWidth
184
+ };
185
+ },
186
+ axis: 'x',
187
+ preventScroll: true,
188
+ pointer: {
189
+ touch: true
190
+ },
191
+ triggerAllEvents: true
192
+ });
193
+ var close = function close() {
194
+ var _props$onClose;
195
+ api.start({
196
+ x: 0
197
+ });
198
+ forceCancelDrag();
199
+ (_props$onClose = props.onClose) === null || _props$onClose === void 0 || _props$onClose.call(props);
200
+ };
201
+ useImperativeHandle(ref, function () {
202
+ return {
203
+ show: function show() {
204
+ var _p$onActionsReveal2;
205
+ var side = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'right';
206
+ if (side === 'right') {
207
+ api.start({
208
+ x: -getRightWidth()
209
+ });
210
+ } else if (side === 'left') {
211
+ api.start({
212
+ x: getLeftWidth()
213
+ });
214
+ }
215
+ (_p$onActionsReveal2 = p.onActionsReveal) === null || _p$onActionsReveal2 === void 0 || _p$onActionsReveal2.call(p, side);
216
+ },
217
+ close: close
218
+ };
219
+ });
220
+
221
+ // 添加高度检测的 useEffect
222
+ useEffect(function () {
223
+ var updateHeight = function updateHeight() {
224
+ var height = getRootHeight();
225
+ setContainerHeight(height);
226
+ };
227
+
228
+ // 组件挂载后检测高度
229
+ updateHeight();
230
+
231
+ // 监听窗口大小变化
232
+ var resizeObserver = new ResizeObserver(updateHeight);
233
+ if (rootRef.current) {
234
+ resizeObserver.observe(rootRef.current);
235
+ }
236
+ return function () {
237
+ resizeObserver.disconnect();
238
+ };
239
+ }, []);
240
+ useEffect(function () {
241
+ if (!props.closeOnTouchOutside) return;
242
+ function handle(e) {
243
+ // 检查点击的元素或其祖先元素是否有特定 class
244
+ if (e.target && props.escapeDom) {
245
+ var container = document.querySelector(props.escapeDom);
246
+ if (container !== null && container !== void 0 && container.contains(e.target)) return;
247
+ }
248
+ if (x.get() === 0) {
249
+ return;
250
+ }
251
+ var root = rootRef.current;
252
+ if (root && !root.contains(e.target)) {
253
+ close();
254
+ }
255
+ }
256
+ if ('ontouchstart' in window) {
257
+ document.addEventListener('touchstart', handle);
258
+ } else {
259
+ document.addEventListener('mousedown', handle);
260
+ }
261
+ return function () {
262
+ document.removeEventListener('touchstart', handle);
263
+ document.removeEventListener('mousedown', handle);
264
+ };
265
+ }, [props.closeOnTouchOutside, props.escapeDom]);
266
+
267
+ // 根据容器高度获取右侧容器的 class 名称
268
+ var getRightContainerClass = function getRightContainerClass() {
269
+ var baseClass = "".concat(classPrefix, "-actions ").concat(classPrefix, "-actions-right");
270
+ if (containerHeight > 180) {
271
+ return "".concat(baseClass, " ").concat(classPrefix, "-height-large");
272
+ } else if (containerHeight > 120) {
273
+ return "".concat(baseClass, " ").concat(classPrefix, "-height-medium");
274
+ }
275
+ return "".concat(baseClass, " ").concat(classPrefix, "-height-small");
276
+ };
277
+
278
+ // 根据容器高度获取右侧按钮的 class 名称
279
+ var getRightActionButtonClass = function getRightActionButtonClass() {
280
+ if (containerHeight > 180) {
281
+ return "".concat(classPrefix, "-action-height-large");
282
+ } else if (containerHeight > 120) {
283
+ return "".concat(classPrefix, "-action-height-medium");
284
+ }
285
+ return "".concat(classPrefix, "-action-height-small");
286
+ };
287
+ function renderAction(action) {
288
+ var _action$color, _colorRecord$color;
289
+ var isRightAction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
290
+ var color = (_action$color = action.color) !== null && _action$color !== void 0 ? _action$color : 'light';
291
+ var _style = action.style || {};
292
+
293
+ // 为右侧按钮添加基于高度的 class
294
+ var buttonClass = isRightAction ? "".concat(classPrefix, "-action-button ").concat(getRightActionButtonClass()) : "".concat(classPrefix, "-action-button");
295
+ return /*#__PURE__*/React.createElement(Button, {
296
+ key: action.key,
297
+ className: buttonClass,
298
+ style: _objectSpread({
299
+ '--background-color': (_colorRecord$color = colorRecord[color]) !== null && _colorRecord$color !== void 0 ? _colorRecord$color : color
300
+ }, _style),
301
+ onClick: function onClick(e) {
302
+ var _action$onClick, _props$onAction;
303
+ if (props.closeOnAction) {
304
+ close();
305
+ }
306
+ (_action$onClick = action.onClick) === null || _action$onClick === void 0 || _action$onClick.call(action, e);
307
+ (_props$onAction = props.onAction) === null || _props$onAction === void 0 || _props$onAction.call(props, action, e);
308
+ }
309
+ }, action.text);
310
+ }
311
+ return withNativeProps(props, /*#__PURE__*/React.createElement("div", _extends({
312
+ className: classPrefix
313
+ }, bind(), {
314
+ ref: rootRef,
315
+ onClickCapture: function onClickCapture(e) {
316
+ if (draggingRef.current) {
317
+ e.stopPropagation();
318
+ e.preventDefault();
319
+ }
320
+ }
321
+ }), /*#__PURE__*/React.createElement(animated.div, {
322
+ className: "".concat(classPrefix, "-track"),
323
+ style: {
324
+ x: x
325
+ }
326
+ }, withStopPropagation(props.stopPropagation, /*#__PURE__*/React.createElement("div", {
327
+ className: "".concat(classPrefix, "-actions ").concat(classPrefix, "-actions-left"),
328
+ ref: leftRef
329
+ }, props.leftActions.map(function (action) {
330
+ return renderAction(action, false);
331
+ }))), /*#__PURE__*/React.createElement("div", {
332
+ className: "".concat(classPrefix, "-content"),
333
+ onClickCapture: function onClickCapture(e) {
334
+ if (x.goal !== 0) {
335
+ e.preventDefault();
336
+ e.stopPropagation();
337
+ close();
338
+ }
339
+ }
340
+ }, /*#__PURE__*/React.createElement(animated.div, {
341
+ style: {
342
+ pointerEvents: x.to(function (v) {
343
+ return v !== 0 && x.goal !== 0 ? 'none' : 'auto';
344
+ })
345
+ }
346
+ }, props.children)), withStopPropagation(props.stopPropagation, /*#__PURE__*/React.createElement("div", {
347
+ className: getRightContainerClass(),
348
+ ref: rightRef
349
+ }, props.rightActions.map(function (action) {
350
+ return renderAction(action, true);
351
+ }))))));
352
+ });
353
+ var colorRecord = {
354
+ light: '#ccc',
355
+ weak: '#999',
356
+ primary: '#1677ff',
357
+ success: '#00b578',
358
+ warning: '#ff8f1f',
359
+ danger: '#ff3141'
360
+ };
@@ -0,0 +1,74 @@
1
+ .pisell-custom-swipe-action {
2
+ cursor: grab;
3
+ overflow: hidden;
4
+ touch-action: pan-y;
5
+ &-track {
6
+ position: relative;
7
+ overflow: visible;
8
+ }
9
+ &-content {
10
+ }
11
+ &-actions {
12
+ position: absolute;
13
+ display: flex;
14
+ justify-content: center;
15
+ align-items: stretch;
16
+ width: auto;
17
+ white-space: nowrap;
18
+ &-right {
19
+ left: 100%;
20
+ top: 0;
21
+ height: 100%;
22
+ }
23
+ &-left {
24
+ right: 100%;
25
+ top: 0;
26
+ height: 100%;
27
+ }
28
+ }
29
+ &-action-button {
30
+ --border-radius: 0;
31
+ --border-width: 0;
32
+ padding-left: 4px;
33
+ padding-right: 4px;
34
+ }
35
+ }
36
+
37
+ .pisell-custom-swipe-action-action-button {
38
+ min-width: 80px;
39
+ }
40
+
41
+ /* 容器样式 */
42
+ .pisell-custom-swipe-action-height-large {
43
+ display: flex;
44
+ flex-direction: column;
45
+ background-color: rgba(67, 93, 147, 0.3);
46
+ justify-content: flex-start;
47
+
48
+ .pisell-number-selector-btn {
49
+ width: 40px !important;
50
+ height: 40px !important;
51
+ }
52
+ }
53
+
54
+ .pisell-custom-swipe-action-height-medium {
55
+ display: flex;
56
+ flex-direction: column;
57
+ background-color: rgba(67, 93, 147, 0.3);
58
+
59
+ .pisell-number-selector-btn {
60
+ width: 40px !important;
61
+ height: 40px !important;
62
+ }
63
+ }
64
+
65
+ /* 按钮样式 */
66
+ .pisell-custom-swipe-action-action-height-large {
67
+ height: 60px;
68
+ width: 200px;
69
+ }
70
+
71
+ .pisell-custom-swipe-action-action-height-medium {
72
+ flex: 1;
73
+ width: 200px;
74
+ }
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import { ContactInfoProps } from './types';
3
+ import './index.less';
4
+ export declare const PREFIX = "pisell-plus-contact-info";
5
+ declare const ContactInfo: React.FC<ContactInfoProps>;
6
+ export default ContactInfo;