@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,373 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/plus/contactInfo/components/SwipeAction/index.tsx
30
+ var SwipeAction_exports = {};
31
+ __export(SwipeAction_exports, {
32
+ SwipeAction: () => SwipeAction
33
+ });
34
+ module.exports = __toCommonJS(SwipeAction_exports);
35
+ var import_web = require("@react-spring/web");
36
+ var import_use_gesture_react = require("@use-gesture/react/dist/use-gesture-react.cjs");
37
+ var import_react = __toESM(require("react"));
38
+ var import_index = require("./index.less");
39
+ function withNativeProps(props, element) {
40
+ const p = {
41
+ ...element.props
42
+ };
43
+ if (props.className) {
44
+ p.className = props.className + (element.props.className ? ` ${element.props.className}` : "");
45
+ }
46
+ if (props.style) {
47
+ p.style = {
48
+ ...props.style,
49
+ ...element.props.style
50
+ };
51
+ }
52
+ return import_react.default.cloneElement(element, p);
53
+ }
54
+ function nearest(arr, target) {
55
+ return arr.reduce((prev, curr) => {
56
+ return Math.abs(curr - target) < Math.abs(prev - target) ? curr : prev;
57
+ });
58
+ }
59
+ function mergeProps(a, b) {
60
+ return {
61
+ ...a,
62
+ ...b
63
+ };
64
+ }
65
+ function withStopPropagation(events, element) {
66
+ if (!events.includes("click")) {
67
+ return element;
68
+ }
69
+ const onClick = (e) => {
70
+ var _a, _b;
71
+ e.stopPropagation();
72
+ (_b = (_a = element.props).onClick) == null ? void 0 : _b.call(_a, e);
73
+ };
74
+ return import_react.default.cloneElement(element, {
75
+ ...element.props,
76
+ onClick
77
+ });
78
+ }
79
+ var Button = ({
80
+ children,
81
+ className,
82
+ style,
83
+ onClick
84
+ }) => {
85
+ return /* @__PURE__ */ import_react.default.createElement(
86
+ "button",
87
+ {
88
+ className,
89
+ style: {
90
+ border: "none",
91
+ background: (style == null ? void 0 : style["--background-color"]) || "transparent",
92
+ ...style
93
+ },
94
+ onClick
95
+ },
96
+ children
97
+ );
98
+ };
99
+ var classPrefix = `pisell-custom-swipe-action`;
100
+ var defaultProps = {
101
+ rightActions: [],
102
+ leftActions: [],
103
+ closeOnTouchOutside: true,
104
+ closeOnAction: true,
105
+ stopPropagation: []
106
+ };
107
+ var SwipeAction = (0, import_react.forwardRef)(
108
+ (p, ref) => {
109
+ const props = mergeProps(defaultProps, p);
110
+ const rootRef = (0, import_react.useRef)(null);
111
+ const leftRef = (0, import_react.useRef)(null);
112
+ const rightRef = (0, import_react.useRef)(null);
113
+ const [containerHeight, setContainerHeight] = (0, import_react.useState)(0);
114
+ function getWidth(ref2) {
115
+ const element = ref2.current;
116
+ if (!element) return 0;
117
+ return element.offsetWidth;
118
+ }
119
+ function getHeight(ref2) {
120
+ const element = ref2.current;
121
+ if (!element) return 0;
122
+ return element.offsetHeight;
123
+ }
124
+ function getLeftWidth() {
125
+ return getWidth(leftRef);
126
+ }
127
+ function getRightWidth() {
128
+ return getWidth(rightRef);
129
+ }
130
+ function getRootHeight() {
131
+ return getHeight(rootRef);
132
+ }
133
+ const [{ x }, api] = (0, import_web.useSpring)(
134
+ () => ({
135
+ x: 0,
136
+ config: { tension: 200, friction: 30 }
137
+ }),
138
+ []
139
+ );
140
+ const draggingRef = (0, import_react.useRef)(false);
141
+ const dragCancelRef = (0, import_react.useRef)(null);
142
+ function forceCancelDrag() {
143
+ var _a;
144
+ (_a = dragCancelRef.current) == null ? void 0 : _a.call(dragCancelRef);
145
+ draggingRef.current = false;
146
+ }
147
+ const bind = (0, import_use_gesture_react.useDrag)(
148
+ (state) => {
149
+ var _a;
150
+ dragCancelRef.current = state.cancel;
151
+ if (!state.intentional) return;
152
+ if (state.down) {
153
+ draggingRef.current = true;
154
+ }
155
+ if (!draggingRef.current) return;
156
+ const [offsetX] = state.offset;
157
+ if (state.last) {
158
+ const leftWidth = getLeftWidth();
159
+ const rightWidth = getRightWidth();
160
+ let position = offsetX + state.velocity[0] * state.direction[0] * 50;
161
+ if (offsetX > 0) {
162
+ position = Math.max(0, position);
163
+ } else if (offsetX < 0) {
164
+ position = Math.min(0, position);
165
+ } else {
166
+ position = 0;
167
+ }
168
+ const targetX = nearest([-rightWidth, 0, leftWidth], position);
169
+ api.start({
170
+ x: targetX
171
+ });
172
+ if (targetX !== 0) {
173
+ (_a = p.onActionsReveal) == null ? void 0 : _a.call(p, targetX > 0 ? "left" : "right");
174
+ }
175
+ window.setTimeout(() => {
176
+ draggingRef.current = false;
177
+ });
178
+ } else {
179
+ api.start({
180
+ x: offsetX,
181
+ immediate: true
182
+ });
183
+ }
184
+ },
185
+ {
186
+ from: () => [x.get(), 0],
187
+ bounds: () => {
188
+ const leftWidth = getLeftWidth();
189
+ const rightWidth = getRightWidth();
190
+ return {
191
+ left: -rightWidth,
192
+ right: leftWidth
193
+ };
194
+ },
195
+ axis: "x",
196
+ preventScroll: true,
197
+ pointer: { touch: true },
198
+ triggerAllEvents: true
199
+ }
200
+ );
201
+ const close = () => {
202
+ var _a;
203
+ api.start({
204
+ x: 0
205
+ });
206
+ forceCancelDrag();
207
+ (_a = props.onClose) == null ? void 0 : _a.call(props);
208
+ };
209
+ (0, import_react.useImperativeHandle)(ref, () => ({
210
+ show: (side = "right") => {
211
+ var _a;
212
+ if (side === "right") {
213
+ api.start({
214
+ x: -getRightWidth()
215
+ });
216
+ } else if (side === "left") {
217
+ api.start({
218
+ x: getLeftWidth()
219
+ });
220
+ }
221
+ (_a = p.onActionsReveal) == null ? void 0 : _a.call(p, side);
222
+ },
223
+ close
224
+ }));
225
+ (0, import_react.useEffect)(() => {
226
+ const updateHeight = () => {
227
+ const height = getRootHeight();
228
+ setContainerHeight(height);
229
+ };
230
+ updateHeight();
231
+ const resizeObserver = new ResizeObserver(updateHeight);
232
+ if (rootRef.current) {
233
+ resizeObserver.observe(rootRef.current);
234
+ }
235
+ return () => {
236
+ resizeObserver.disconnect();
237
+ };
238
+ }, []);
239
+ (0, import_react.useEffect)(() => {
240
+ if (!props.closeOnTouchOutside) return;
241
+ function handle(e) {
242
+ if (e.target && props.escapeDom) {
243
+ const container = document.querySelector(props.escapeDom);
244
+ if (container == null ? void 0 : container.contains(e.target)) return;
245
+ }
246
+ if (x.get() === 0) {
247
+ return;
248
+ }
249
+ const root = rootRef.current;
250
+ if (root && !root.contains(e.target)) {
251
+ close();
252
+ }
253
+ }
254
+ if ("ontouchstart" in window) {
255
+ document.addEventListener("touchstart", handle);
256
+ } else {
257
+ document.addEventListener("mousedown", handle);
258
+ }
259
+ return () => {
260
+ document.removeEventListener("touchstart", handle);
261
+ document.removeEventListener("mousedown", handle);
262
+ };
263
+ }, [props.closeOnTouchOutside, props.escapeDom]);
264
+ const getRightContainerClass = () => {
265
+ const baseClass = `${classPrefix}-actions ${classPrefix}-actions-right`;
266
+ if (containerHeight > 180) {
267
+ return `${baseClass} ${classPrefix}-height-large`;
268
+ } else if (containerHeight > 120) {
269
+ return `${baseClass} ${classPrefix}-height-medium`;
270
+ }
271
+ return `${baseClass} ${classPrefix}-height-small`;
272
+ };
273
+ const getRightActionButtonClass = () => {
274
+ if (containerHeight > 180) {
275
+ return `${classPrefix}-action-height-large`;
276
+ } else if (containerHeight > 120) {
277
+ return `${classPrefix}-action-height-medium`;
278
+ }
279
+ return `${classPrefix}-action-height-small`;
280
+ };
281
+ function renderAction(action, isRightAction = false) {
282
+ const color = action.color ?? "light";
283
+ const _style = action.style || {};
284
+ const buttonClass = isRightAction ? `${classPrefix}-action-button ${getRightActionButtonClass()}` : `${classPrefix}-action-button`;
285
+ return /* @__PURE__ */ import_react.default.createElement(
286
+ Button,
287
+ {
288
+ key: action.key,
289
+ className: buttonClass,
290
+ style: {
291
+ "--background-color": colorRecord[color] ?? color,
292
+ ..._style
293
+ },
294
+ onClick: (e) => {
295
+ var _a, _b;
296
+ if (props.closeOnAction) {
297
+ close();
298
+ }
299
+ (_a = action.onClick) == null ? void 0 : _a.call(action, e);
300
+ (_b = props.onAction) == null ? void 0 : _b.call(props, action, e);
301
+ }
302
+ },
303
+ action.text
304
+ );
305
+ }
306
+ return withNativeProps(
307
+ props,
308
+ /* @__PURE__ */ import_react.default.createElement(
309
+ "div",
310
+ {
311
+ className: classPrefix,
312
+ ...bind(),
313
+ ref: rootRef,
314
+ onClickCapture: (e) => {
315
+ if (draggingRef.current) {
316
+ e.stopPropagation();
317
+ e.preventDefault();
318
+ }
319
+ }
320
+ },
321
+ /* @__PURE__ */ import_react.default.createElement(import_web.animated.div, { className: `${classPrefix}-track`, style: { x } }, withStopPropagation(
322
+ props.stopPropagation,
323
+ /* @__PURE__ */ import_react.default.createElement(
324
+ "div",
325
+ {
326
+ className: `${classPrefix}-actions ${classPrefix}-actions-left`,
327
+ ref: leftRef
328
+ },
329
+ props.leftActions.map((action) => renderAction(action, false))
330
+ )
331
+ ), /* @__PURE__ */ import_react.default.createElement(
332
+ "div",
333
+ {
334
+ className: `${classPrefix}-content`,
335
+ onClickCapture: (e) => {
336
+ if (x.goal !== 0) {
337
+ e.preventDefault();
338
+ e.stopPropagation();
339
+ close();
340
+ }
341
+ }
342
+ },
343
+ /* @__PURE__ */ import_react.default.createElement(
344
+ import_web.animated.div,
345
+ {
346
+ style: {
347
+ pointerEvents: x.to(
348
+ (v) => v !== 0 && x.goal !== 0 ? "none" : "auto"
349
+ )
350
+ }
351
+ },
352
+ props.children
353
+ )
354
+ ), withStopPropagation(
355
+ props.stopPropagation,
356
+ /* @__PURE__ */ import_react.default.createElement("div", { className: getRightContainerClass(), ref: rightRef }, props.rightActions.map((action) => renderAction(action, true)))
357
+ ))
358
+ )
359
+ );
360
+ }
361
+ );
362
+ var colorRecord = {
363
+ light: "#ccc",
364
+ weak: "#999",
365
+ primary: "#1677ff",
366
+ success: "#00b578",
367
+ warning: "#ff8f1f",
368
+ danger: "#ff3141"
369
+ };
370
+ // Annotate the CommonJS export names for ESM import in node:
371
+ 0 && (module.exports = {
372
+ SwipeAction
373
+ });
@@ -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;
@@ -0,0 +1,226 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/plus/contactInfo/index.tsx
30
+ var contactInfo_exports = {};
31
+ __export(contactInfo_exports, {
32
+ PREFIX: () => PREFIX,
33
+ default: () => contactInfo_default
34
+ });
35
+ module.exports = __toCommonJS(contactInfo_exports);
36
+ var import_react = __toESM(require("react"));
37
+ var import_materials = require("@pisell/materials");
38
+ var import_utils = require("@pisell/utils");
39
+ var import_useEngineContext = __toESM(require("../../hooks/useEngineContext"));
40
+ var import_Avatar = __toESM(require("./components/Avatar"));
41
+ var import_SwipeAction = require("./components/SwipeAction");
42
+ var import_contactInfoModal = __toESM(require("../contactInfoModal"));
43
+ var import_locales = __toESM(require("./locales"));
44
+ var import_index = require("./index.less");
45
+ var PREFIX = "pisell-plus-contact-info";
46
+ var ContactInfo = (props) => {
47
+ var _a, _b, _c;
48
+ console.log("props>>>>>>>>>", props);
49
+ const {
50
+ dataSource,
51
+ defaultName,
52
+ placeholder,
53
+ direction = "horizontal",
54
+ isShowDelete,
55
+ isShowAvatar,
56
+ isShowPhone,
57
+ isShowEmail,
58
+ horizontalGap,
59
+ verticalGap,
60
+ onSave,
61
+ onDelete,
62
+ onCancel
63
+ } = props;
64
+ const context = (0, import_useEngineContext.default)();
65
+ import_utils.locales.init(
66
+ import_locales.default,
67
+ ((_b = (_a = context.appHelper.utils) == null ? void 0 : _a.storage) == null ? void 0 : _b.get("umi_locale")) || "en"
68
+ );
69
+ const [modalVisible, setModalVisible] = (0, import_react.useState)(false);
70
+ const isHorizontal = (0, import_react.useMemo)(() => {
71
+ return direction === "horizontal";
72
+ }, [direction]);
73
+ const displayName = (0, import_react.useMemo)(() => {
74
+ const { first_name, last_name } = dataSource || {};
75
+ if (!first_name && !last_name) {
76
+ return defaultName || "";
77
+ }
78
+ return `${first_name || ""} ${last_name || ""}`;
79
+ }, [dataSource, defaultName]);
80
+ const displayPhone = (0, import_react.useMemo)(() => {
81
+ const { country_calling_code, phone } = (dataSource == null ? void 0 : dataSource.phone) || {};
82
+ if (!country_calling_code || !phone) {
83
+ return "";
84
+ }
85
+ const countryCallingCode = (country_calling_code == null ? void 0 : country_calling_code.startsWith("+")) ? country_calling_code : `+${country_calling_code}`;
86
+ return `${countryCallingCode || ""} ${phone || ""}`;
87
+ }, [dataSource == null ? void 0 : dataSource.phone]);
88
+ const isEmpty = (0, import_react.useMemo)(() => {
89
+ var _a2;
90
+ return !(dataSource == null ? void 0 : dataSource.first_name) && !(dataSource == null ? void 0 : dataSource.last_name) && !((_a2 = dataSource == null ? void 0 : dataSource.phone) == null ? void 0 : _a2.phone) && !(dataSource == null ? void 0 : dataSource.email);
91
+ }, [dataSource]);
92
+ const handleClick = () => {
93
+ console.log("handleClick");
94
+ setModalVisible(true);
95
+ };
96
+ const _rightActions = (0, import_react.useMemo)(() => {
97
+ const deleteAction = {
98
+ key: "delete",
99
+ text: /* @__PURE__ */ import_react.default.createElement(
100
+ "div",
101
+ {
102
+ style: {
103
+ display: "flex",
104
+ justifyContent: "center",
105
+ alignItems: "center",
106
+ color: "white",
107
+ cursor: "pointer",
108
+ padding: "10px 0px",
109
+ borderRadius: "8px"
110
+ }
111
+ },
112
+ /* @__PURE__ */ import_react.default.createElement(
113
+ import_materials.Iconfont,
114
+ {
115
+ type: "pisell2-trash-01",
116
+ style: { fontSize: 20, marginRight: 4 }
117
+ }
118
+ ),
119
+ /* @__PURE__ */ import_react.default.createElement("span", { style: { fontSize: 12, fontWeight: 500 } }, import_utils.locales.getText("pisell2.text.contact-info.actions.delete"))
120
+ ),
121
+ color: "danger",
122
+ onClick: (e) => {
123
+ e.preventDefault();
124
+ e.stopPropagation();
125
+ onDelete == null ? void 0 : onDelete();
126
+ }
127
+ };
128
+ return [deleteAction];
129
+ }, [dataSource, onDelete]);
130
+ const renderContent = () => {
131
+ var _a2;
132
+ return /* @__PURE__ */ import_react.default.createElement(
133
+ "div",
134
+ {
135
+ className: `${PREFIX}__${direction}`,
136
+ style: { gap: verticalGap, padding: ((_a2 = props == null ? void 0 : props.style) == null ? void 0 : _a2.padding) || "8px" }
137
+ },
138
+ isHorizontal ? /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(
139
+ "div",
140
+ {
141
+ className: `${PREFIX}__horizontal-left`,
142
+ style: { gap: horizontalGap }
143
+ },
144
+ isShowAvatar && /* @__PURE__ */ import_react.default.createElement(import_Avatar.default, { config: props.avatar, name: displayName, cover: "" }),
145
+ /* @__PURE__ */ import_react.default.createElement(
146
+ "div",
147
+ {
148
+ className: `${PREFIX}__horizontal-left-content`,
149
+ style: { gap: verticalGap }
150
+ },
151
+ isEmpty ? /* @__PURE__ */ import_react.default.createElement("div", { className: `${PREFIX}__empty-description` }, placeholder || import_utils.locales.getText("pisell2.text.contact-info.placeholder")) : /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement("div", { className: `${PREFIX}__name-horizontal-container` }, /* @__PURE__ */ import_react.default.createElement(
152
+ "span",
153
+ {
154
+ className: `${PREFIX}__name-horizontal`,
155
+ style: props.nameStyle
156
+ },
157
+ displayName
158
+ ), isShowPhone && displayPhone && /* @__PURE__ */ import_react.default.createElement(
159
+ "span",
160
+ {
161
+ className: `${PREFIX}__phone-horizontal`,
162
+ style: props.textStyle
163
+ },
164
+ "(",
165
+ displayPhone,
166
+ ")"
167
+ )), isShowEmail && (dataSource == null ? void 0 : dataSource.email) && /* @__PURE__ */ import_react.default.createElement(
168
+ "div",
169
+ {
170
+ className: `${PREFIX}__text`,
171
+ style: props.textStyle
172
+ },
173
+ dataSource == null ? void 0 : dataSource.email
174
+ ))
175
+ )
176
+ ), /* @__PURE__ */ import_react.default.createElement("div", { className: `${PREFIX}__horizontal-right` }, /* @__PURE__ */ import_react.default.createElement(
177
+ import_materials.Iconfont,
178
+ {
179
+ type: isEmpty ? "pisell2-plus-circle" : "pisell2-edit-05",
180
+ className: `${PREFIX}__horizontal-right-icon`
181
+ }
182
+ ))) : /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, isShowAvatar && /* @__PURE__ */ import_react.default.createElement(import_Avatar.default, { config: props.avatar, name: "hhhhh", cover: "" }), isEmpty ? /* @__PURE__ */ import_react.default.createElement("div", { className: `${PREFIX}__empty-description` }, placeholder || import_utils.locales.getText("pisell2.text.contact-info.placeholder")) : /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement("div", { className: `${PREFIX}__name`, style: props.nameStyle }, displayName), isShowPhone && displayPhone && /* @__PURE__ */ import_react.default.createElement("div", { className: `${PREFIX}__text`, style: props.textStyle }, displayPhone), isShowEmail && (dataSource == null ? void 0 : dataSource.email) && /* @__PURE__ */ import_react.default.createElement("div", { className: `${PREFIX}__text`, style: props.textStyle }, dataSource == null ? void 0 : dataSource.email)))
183
+ );
184
+ };
185
+ return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(
186
+ "div",
187
+ {
188
+ className: `${PREFIX}`,
189
+ style: { ...props.style || {}, padding: 0 },
190
+ onClick: handleClick
191
+ },
192
+ isShowDelete && !isEmpty ? /* @__PURE__ */ import_react.default.createElement(
193
+ import_SwipeAction.SwipeAction,
194
+ {
195
+ closeOnAction: false,
196
+ rightActions: _rightActions,
197
+ style: { borderRadius: ((_c = props == null ? void 0 : props.style) == null ? void 0 : _c.borderRadius) || 0 }
198
+ },
199
+ renderContent()
200
+ ) : renderContent()
201
+ ), /* @__PURE__ */ import_react.default.createElement(
202
+ import_contactInfoModal.default,
203
+ {
204
+ open: modalVisible,
205
+ dataSource,
206
+ isShowDelete,
207
+ onCancel: () => {
208
+ setModalVisible(false);
209
+ onCancel == null ? void 0 : onCancel();
210
+ },
211
+ onSave: (value) => {
212
+ setModalVisible(false);
213
+ onSave == null ? void 0 : onSave(value);
214
+ },
215
+ onDelete: () => {
216
+ setModalVisible(false);
217
+ onDelete == null ? void 0 : onDelete();
218
+ }
219
+ }
220
+ ));
221
+ };
222
+ var contactInfo_default = ContactInfo;
223
+ // Annotate the CommonJS export names for ESM import in node:
224
+ 0 && (module.exports = {
225
+ PREFIX
226
+ });