@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,91 @@
1
+ import React, { CSSProperties } from 'react';
2
+ /**
3
+ * 联系信息数据
4
+ */
5
+ export interface ContactInfoData {
6
+ first_name?: string;
7
+ last_name?: string;
8
+ phone?: {
9
+ phone: string;
10
+ country_calling_code: string;
11
+ country_code?: string;
12
+ };
13
+ email?: string;
14
+ avatar?: string;
15
+ }
16
+ /**
17
+ * 卡片布局类型
18
+ */
19
+ export declare type Direction = 'horizontal' | 'vertical';
20
+ /**
21
+ * 头像尺寸类型
22
+ */
23
+ export declare type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';
24
+ /**
25
+ * 头像形状类型
26
+ */
27
+ export declare type AvatarShape = 'circle' | 'square';
28
+ /**
29
+ * 头像配置
30
+ */
31
+ export interface AvatarConfig {
32
+ shape?: AvatarShape;
33
+ borderRadius?: number;
34
+ size?: AvatarSize;
35
+ useTextAvatar?: boolean;
36
+ children?: string;
37
+ }
38
+ /**
39
+ * 姓名样式配置
40
+ */
41
+ export interface NameStyle {
42
+ fontSize?: number | string;
43
+ fontWeight?: number | string;
44
+ color?: string;
45
+ textDecoration?: string;
46
+ }
47
+ export interface StyleConfig {
48
+ width?: number | string;
49
+ border?: 'solid' | 'unset';
50
+ borderWidth?: number | string;
51
+ borderColor?: string;
52
+ borderRadius?: number | string;
53
+ padding?: number | string;
54
+ [key: string]: any;
55
+ }
56
+ /**
57
+ * 文本样式配置
58
+ */
59
+ export interface TextStyle {
60
+ fontSize?: number | string;
61
+ fontWeight?: number | string;
62
+ color?: string;
63
+ }
64
+ /**
65
+ * ContactInfo 组件属性接口
66
+ */
67
+ export interface ContactInfoProps {
68
+ dataSource?: ContactInfoData;
69
+ defaultName?: string;
70
+ placeholder?: string | React.ReactNode;
71
+ isShowDelete?: boolean;
72
+ children?: React.ReactNode;
73
+ direction?: Direction;
74
+ horizontalGap?: number | string;
75
+ verticalGap?: number | string;
76
+ isShowAvatar?: boolean;
77
+ isShowPhone?: boolean;
78
+ isShowEmail?: boolean;
79
+ avatar?: AvatarConfig;
80
+ style?: StyleConfig;
81
+ nameStyle?: NameStyle;
82
+ textStyle?: TextStyle;
83
+ placeholderStyle?: CSSProperties;
84
+ button?: {
85
+ addButtonIcon?: string;
86
+ editButtonIcon?: string;
87
+ };
88
+ onSave?: (value: any) => void;
89
+ onDelete?: () => void;
90
+ onCancel?: () => void;
91
+ }
@@ -0,0 +1,17 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __copyProps = (to, from, except, desc) => {
6
+ if (from && typeof from === "object" || typeof from === "function") {
7
+ for (let key of __getOwnPropNames(from))
8
+ if (!__hasOwnProp.call(to, key) && key !== except)
9
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
+ }
11
+ return to;
12
+ };
13
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
14
+
15
+ // src/plus/contactInfo/types.ts
16
+ var types_exports = {};
17
+ module.exports = __toCommonJS(types_exports);
@@ -0,0 +1,7 @@
1
+ interface FieldMapping<T = any, R = any> {
2
+ [key: string]: string | ((data: T) => R) | undefined;
3
+ }
4
+ export declare function getFieldValue<T, R = any>(data: T, fieldKey: string): R | undefined;
5
+ export declare function getFieldValue<T, R = any>(data: T, fieldKey: string, mapping: FieldMapping<T, R>): R | undefined;
6
+ export declare const getAvatarText: (name: string) => string;
7
+ export {};
@@ -0,0 +1,64 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/plus/contactInfo/utils.ts
20
+ var utils_exports = {};
21
+ __export(utils_exports, {
22
+ getAvatarText: () => getAvatarText,
23
+ getFieldValue: () => getFieldValue
24
+ });
25
+ module.exports = __toCommonJS(utils_exports);
26
+ var import_lodash = require("lodash");
27
+ function getFieldValue(data, fieldKey, mapping) {
28
+ if (!fieldKey || typeof fieldKey !== "string") {
29
+ console.warn("getFieldValue: fieldKey must be a non-empty string");
30
+ return void 0;
31
+ }
32
+ if (!data || typeof data !== "object") {
33
+ console.warn("getFieldValue: data must be a valid object");
34
+ return void 0;
35
+ }
36
+ const fieldMapping = mapping || {};
37
+ const mappingRule = fieldMapping[fieldKey];
38
+ try {
39
+ if (typeof mappingRule === "function") {
40
+ return mappingRule(data);
41
+ }
42
+ if (typeof mappingRule === "string") {
43
+ return (0, import_lodash.get)(data, mappingRule);
44
+ }
45
+ return (0, import_lodash.get)(data, fieldKey);
46
+ } catch (error) {
47
+ console.error(
48
+ `getFieldValue: Error processing field '${fieldKey}':`,
49
+ error
50
+ );
51
+ return void 0;
52
+ }
53
+ }
54
+ var getAvatarText = (name) => {
55
+ if (!name) return "";
56
+ const words = name.trim().split(/\s+/);
57
+ const initials = words.slice(0, 2).map((word) => word.charAt(0).toUpperCase()).join("");
58
+ return initials;
59
+ };
60
+ // Annotate the CommonJS export names for ESM import in node:
61
+ 0 && (module.exports = {
62
+ getAvatarText,
63
+ getFieldValue
64
+ });
@@ -0,0 +1,3 @@
1
+ import './index.less';
2
+ declare const ContactInfoContent: (props: any) => JSX.Element;
3
+ export default ContactInfoContent;
@@ -0,0 +1,129 @@
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/contactInfoModal/ContactInfoContent.tsx
30
+ var ContactInfoContent_exports = {};
31
+ __export(ContactInfoContent_exports, {
32
+ default: () => ContactInfoContent_default
33
+ });
34
+ module.exports = __toCommonJS(ContactInfoContent_exports);
35
+ var import_react = __toESM(require("react"));
36
+ var import_antd = require("antd");
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_locales = __toESM(require("./locales"));
41
+ var import_index = require("./index.less");
42
+ var ContactInfoContent = (props) => {
43
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
44
+ const context = (0, import_useEngineContext.default)();
45
+ import_utils.locales.init(
46
+ import_locales.default,
47
+ ((_b = (_a = context.appHelper.utils) == null ? void 0 : _a.storage) == null ? void 0 : _b.get("umi_locale")) || "en"
48
+ );
49
+ const { config, form } = props;
50
+ console.log("config", config);
51
+ return /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-contact-info-modal-content" }, /* @__PURE__ */ import_react.default.createElement(import_antd.Form, { size: "large", layout: "vertical", form }, /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-contact-info-modal-content-name-wrap" }, ((_c = config == null ? void 0 : config.first_name) == null ? void 0 : _c.visible) !== false ? /* @__PURE__ */ import_react.default.createElement(
52
+ import_materials.FormItemInput,
53
+ {
54
+ renderMode: "edit",
55
+ label: import_utils.locales.getText(
56
+ "pisell2.text.contact-info.modal.first-name"
57
+ ),
58
+ placeholder: import_utils.locales.getText(
59
+ "pisell2.text.contact-info.modal.first-name-placeholder"
60
+ ),
61
+ name: "first_name",
62
+ requiredobj: {
63
+ required: ((_d = config == null ? void 0 : config.first_name) == null ? void 0 : _d.required) !== true ? false : true,
64
+ message: import_utils.locales.getText(
65
+ "pisell2.text.contact-info.modal.first-name-required"
66
+ )
67
+ }
68
+ }
69
+ ) : null, ((_e = config == null ? void 0 : config.last_name) == null ? void 0 : _e.visible) !== false ? /* @__PURE__ */ import_react.default.createElement(
70
+ import_materials.FormItemInput,
71
+ {
72
+ renderMode: "edit",
73
+ label: import_utils.locales.getText(
74
+ "pisell2.text.contact-info.modal.last-name"
75
+ ),
76
+ placeholder: import_utils.locales.getText(
77
+ "pisell2.text.contact-info.modal.last-name-placeholder"
78
+ ),
79
+ name: "last_name",
80
+ requiredobj: {
81
+ required: ((_f = config == null ? void 0 : config.last_name) == null ? void 0 : _f.required) !== true ? false : true,
82
+ message: import_utils.locales.getText(
83
+ "pisell2.text.contact-info.modal.last-name-required"
84
+ )
85
+ }
86
+ }
87
+ ) : null), ((_g = config == null ? void 0 : config.phone) == null ? void 0 : _g.visible) !== false ? /* @__PURE__ */ import_react.default.createElement(
88
+ import_materials.FormItemInput.Mobile,
89
+ {
90
+ renderMode: "edit",
91
+ name: "phone",
92
+ label: import_utils.locales.getText("pisell2.text.contact-info.modal.mobile"),
93
+ placeholder: import_utils.locales.getText(
94
+ "pisell2.text.contact-info.modal.mobile-placeholder"
95
+ ),
96
+ typeobj: { type: "phone", enabled: true, message: import_utils.locales.getText(
97
+ "pisell2.text.contact-info.modal.mobile-error"
98
+ ) },
99
+ requiredobj: {
100
+ required: ((_h = config == null ? void 0 : config.phone) == null ? void 0 : _h.required) !== true ? false : true,
101
+ message: import_utils.locales.getText(
102
+ "pisell2.text.contact-info.modal.mobile-required"
103
+ )
104
+ },
105
+ returnFormat: "object"
106
+ }
107
+ ) : null, ((_i = config == null ? void 0 : config.email) == null ? void 0 : _i.visible) !== false ? /* @__PURE__ */ import_react.default.createElement(
108
+ import_materials.FormItemInput.Email,
109
+ {
110
+ renderMode: "edit",
111
+ name: "email",
112
+ label: import_utils.locales.getText("pisell2.text.contact-info.modal.email"),
113
+ placeholder: import_utils.locales.getText(
114
+ "pisell2.text.contact-info.modal.email-placeholder"
115
+ ),
116
+ typeobj: { type: "email", enabled: true },
117
+ requiredobj: {
118
+ required: ((_j = config == null ? void 0 : config.email) == null ? void 0 : _j.required) !== true ? false : true,
119
+ message: import_utils.locales.getText(
120
+ "pisell2.text.contact-info.modal.email-required"
121
+ )
122
+ },
123
+ onChange: () => {
124
+ form.validateFields(["email"]);
125
+ }
126
+ }
127
+ ) : null));
128
+ };
129
+ var ContactInfoContent_default = ContactInfoContent;
@@ -0,0 +1,41 @@
1
+ import React from 'react';
2
+ import './index.less';
3
+ interface ContactInfoModalProps {
4
+ open: boolean;
5
+ title?: string;
6
+ onCancel: () => void;
7
+ onSave: (values: any) => void;
8
+ isShowDelete?: boolean;
9
+ onDelete: () => void;
10
+ dataSource?: {
11
+ first_name?: string;
12
+ last_name?: string;
13
+ display_name?: string;
14
+ email?: string;
15
+ phone?: {
16
+ phone: string;
17
+ country_calling_code: string;
18
+ country_code?: string;
19
+ };
20
+ };
21
+ config?: {
22
+ first_name?: {
23
+ visible?: boolean;
24
+ required?: boolean;
25
+ };
26
+ last_name?: {
27
+ visible?: boolean;
28
+ required?: boolean;
29
+ };
30
+ phone?: {
31
+ visible?: boolean;
32
+ required?: boolean;
33
+ };
34
+ email?: {
35
+ visible?: boolean;
36
+ required?: boolean;
37
+ };
38
+ };
39
+ }
40
+ declare const ContactInfoModal: React.FC<ContactInfoModalProps>;
41
+ export default ContactInfoModal;
@@ -0,0 +1,139 @@
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/contactInfoModal/index.tsx
30
+ var contactInfoModal_exports = {};
31
+ __export(contactInfoModal_exports, {
32
+ default: () => contactInfoModal_default
33
+ });
34
+ module.exports = __toCommonJS(contactInfoModal_exports);
35
+ var import_materials = require("@pisell/materials");
36
+ var import_react = __toESM(require("react"));
37
+ var import_utils = require("@pisell/utils");
38
+ var import_antd = require("antd");
39
+ var import_useEngineContext = __toESM(require("../../hooks/useEngineContext"));
40
+ var import_locales = __toESM(require("./locales"));
41
+ var import_index = require("./index.less");
42
+ var import_ContactInfoContent = __toESM(require("./ContactInfoContent"));
43
+ var ContactInfoModalContent = (props) => {
44
+ var _a, _b;
45
+ const {
46
+ open,
47
+ title,
48
+ onCancel,
49
+ onSave,
50
+ onDelete,
51
+ isShowDelete,
52
+ dataSource,
53
+ config
54
+ } = props;
55
+ const context = (0, import_useEngineContext.default)();
56
+ import_utils.locales.init(
57
+ import_locales.default,
58
+ ((_b = (_a = context.appHelper.utils) == null ? void 0 : _a.storage) == null ? void 0 : _b.get("umi_locale")) || "en"
59
+ );
60
+ const [form] = import_antd.Form.useForm();
61
+ (0, import_react.useEffect)(() => {
62
+ form.resetFields();
63
+ if (dataSource) {
64
+ const { first_name, last_name, email } = dataSource || {};
65
+ const { country_calling_code, phone, country_code } = (dataSource == null ? void 0 : dataSource.phone) || {};
66
+ let countryCallingCode = "";
67
+ if (country_calling_code) {
68
+ countryCallingCode = (country_calling_code == null ? void 0 : country_calling_code.startsWith("+")) ? country_calling_code : `+${country_calling_code}`;
69
+ }
70
+ form.setFieldsValue({
71
+ first_name,
72
+ last_name,
73
+ phone: {
74
+ phone,
75
+ countryCallingCode,
76
+ countryCode: country_code
77
+ },
78
+ email
79
+ });
80
+ } else {
81
+ form.resetFields();
82
+ }
83
+ }, [dataSource, form]);
84
+ const isEmpty = (0, import_react.useMemo)(() => {
85
+ var _a2;
86
+ 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);
87
+ }, [dataSource]);
88
+ const handleCancel = (e) => {
89
+ var _a2, _b2;
90
+ (_a2 = e == null ? void 0 : e.preventDefault) == null ? void 0 : _a2.call(e);
91
+ (_b2 = e == null ? void 0 : e.stopPropagation) == null ? void 0 : _b2.call(e);
92
+ onCancel();
93
+ };
94
+ const handleDelete = (e) => {
95
+ var _a2, _b2;
96
+ (_a2 = e == null ? void 0 : e.preventDefault) == null ? void 0 : _a2.call(e);
97
+ (_b2 = e == null ? void 0 : e.stopPropagation) == null ? void 0 : _b2.call(e);
98
+ onDelete();
99
+ };
100
+ const handleSave = async (e) => {
101
+ var _a2, _b2, _c, _d, _e;
102
+ (_a2 = e == null ? void 0 : e.preventDefault) == null ? void 0 : _a2.call(e);
103
+ (_b2 = e == null ? void 0 : e.stopPropagation) == null ? void 0 : _b2.call(e);
104
+ try {
105
+ const values = await form.validateFields();
106
+ console.log("values", values);
107
+ onSave({
108
+ first_name: (values == null ? void 0 : values.first_name) || "",
109
+ last_name: (values == null ? void 0 : values.last_name) || "",
110
+ display_name: (values == null ? void 0 : values.first_name) || (values == null ? void 0 : values.last_name) ? `${(values == null ? void 0 : values.first_name) || ""} ${(values == null ? void 0 : values.last_name) || ""}` : "",
111
+ phone: {
112
+ phone: ((_c = values == null ? void 0 : values.phone) == null ? void 0 : _c.phone) || "",
113
+ country_calling_code: ((_d = values == null ? void 0 : values.phone) == null ? void 0 : _d.countryCallingCode) || "",
114
+ country_code: ((_e = values == null ? void 0 : values.phone) == null ? void 0 : _e.countryCode) || ""
115
+ },
116
+ email: (values == null ? void 0 : values.email) || ""
117
+ });
118
+ } catch (error) {
119
+ console.error("handleSave failed:", error);
120
+ }
121
+ };
122
+ return /* @__PURE__ */ import_react.default.createElement(
123
+ import_materials.PisellModal,
124
+ {
125
+ open,
126
+ onCancel: handleCancel,
127
+ title: title || import_utils.locales.getText("pisell2.text.contact-info.modal.title"),
128
+ footer: /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-contact-info-modal-footer" }, /* @__PURE__ */ import_react.default.createElement(import_materials.Button, { type: "default", block: true, onClick: handleCancel }, import_utils.locales.getText("pisell2.text.button.cancel")), isShowDelete && !isEmpty ? /* @__PURE__ */ import_react.default.createElement(import_materials.Button, { type: "default", block: true, danger: true, onClick: handleDelete }, import_utils.locales.getText("pisell2.text.button.delete")) : null, /* @__PURE__ */ import_react.default.createElement(import_materials.Button, { type: "primary", block: true, onClick: handleSave }, import_utils.locales.getText("pisell2.text.button.save"))),
129
+ destroyOnClose: true,
130
+ mobileModalHeight: "auto"
131
+ },
132
+ /* @__PURE__ */ import_react.default.createElement(import_ContactInfoContent.default, { form, config })
133
+ );
134
+ };
135
+ var ContactInfoModal = (props) => {
136
+ const { open } = props;
137
+ return open ? /* @__PURE__ */ import_react.default.createElement(ContactInfoModalContent, { ...props }) : null;
138
+ };
139
+ var contactInfoModal_default = ContactInfoModal;
@@ -0,0 +1,19 @@
1
+ .pisell-contact-info-modal-footer {
2
+ width: 100%;
3
+ display: flex;
4
+ justify-content: space-between;
5
+ gap: 10px;
6
+ }
7
+
8
+ .pisell-contact-info-modal-content {
9
+ width: 100%;
10
+ height: 100%;
11
+ padding: 24px 0;
12
+ background-color: #fff;
13
+ }
14
+
15
+ .pisell-contact-info-modal-content-name-wrap {
16
+ display: flex;
17
+ flex-direction: row;
18
+ gap: 16px;
19
+ }
@@ -0,0 +1,66 @@
1
+ declare const _default: {
2
+ en: {
3
+ 'pisell2.text.button.save': string;
4
+ 'pisell2.text.button.delete': string;
5
+ 'pisell2.text.button.cancel': string;
6
+ 'pisell2.text.contact-info.actions.delete': string;
7
+ 'pisell2.text.contact-info.modal.title': string;
8
+ 'pisell2.text.contact-info.modal.first-name': string;
9
+ 'pisell2.text.contact-info.modal.first-name-placeholder': string;
10
+ 'pisell2.text.contact-info.modal.first-name-required': string;
11
+ 'pisell2.text.contact-info.modal.last-name': string;
12
+ 'pisell2.text.contact-info.modal.last-name-placeholder': string;
13
+ 'pisell2.text.contact-info.modal.last-name-required': string;
14
+ 'pisell2.text.contact-info.modal.mobile': string;
15
+ 'pisell2.text.contact-info.modal.mobile-placeholder': string;
16
+ 'pisell2.text.contact-info.modal.mobile-required': string;
17
+ 'pisell2.text.contact-info.modal.mobile-error': string;
18
+ 'pisell2.text.contact-info.modal.email': string;
19
+ 'pisell2.text.contact-info.modal.email-placeholder': string;
20
+ 'pisell2.text.contact-info.modal.email-required': string;
21
+ 'pisell2.text.contact-info.modal.email-error': string;
22
+ };
23
+ 'zh-CN': {
24
+ 'pisell2.text.button.save': string;
25
+ 'pisell2.text.button.delete': string;
26
+ 'pisell2.text.button.cancel': string;
27
+ 'pisell2.text.contact-info.actions.delete': string;
28
+ 'pisell2.text.contact-info.modal.title': string;
29
+ 'pisell2.text.contact-info.modal.first-name': string;
30
+ 'pisell2.text.contact-info.modal.first-name-placeholder': string;
31
+ 'pisell2.text.contact-info.modal.first-name-required': string;
32
+ 'pisell2.text.contact-info.modal.last-name': string;
33
+ 'pisell2.text.contact-info.modal.last-name-placeholder': string;
34
+ 'pisell2.text.contact-info.modal.last-name-required': string;
35
+ 'pisell2.text.contact-info.modal.mobile': string;
36
+ 'pisell2.text.contact-info.modal.mobile-placeholder': string;
37
+ 'pisell2.text.contact-info.modal.mobile-required': string;
38
+ 'pisell2.text.contact-info.modal.mobile-error': string;
39
+ 'pisell2.text.contact-info.modal.email': string;
40
+ 'pisell2.text.contact-info.modal.email-placeholder': string;
41
+ 'pisell2.text.contact-info.modal.email-required': string;
42
+ 'pisell2.text.contact-info.modal.email-error': string;
43
+ };
44
+ 'zh-HK': {
45
+ 'pisell2.text.button.save': string;
46
+ 'pisell2.text.button.delete': string;
47
+ 'pisell2.text.button.cancel': string;
48
+ 'pisell2.text.contact-info.actions.delete': string;
49
+ 'pisell2.text.contact-info.modal.title': string;
50
+ 'pisell2.text.contact-info.modal.first-name': string;
51
+ 'pisell2.text.contact-info.modal.first-name-placeholder': string;
52
+ 'pisell2.text.contact-info.modal.first-name-required': string;
53
+ 'pisell2.text.contact-info.modal.last-name': string;
54
+ 'pisell2.text.contact-info.modal.last-name-placeholder': string;
55
+ 'pisell2.text.contact-info.modal.last-name-required': string;
56
+ 'pisell2.text.contact-info.modal.mobile': string;
57
+ 'pisell2.text.contact-info.modal.mobile-placeholder': string;
58
+ 'pisell2.text.contact-info.modal.mobile-required': string;
59
+ 'pisell2.text.contact-info.modal.mobile-error': string;
60
+ 'pisell2.text.contact-info.modal.email': string;
61
+ 'pisell2.text.contact-info.modal.email-placeholder': string;
62
+ 'pisell2.text.contact-info.modal.email-required': string;
63
+ 'pisell2.text.contact-info.modal.email-error': string;
64
+ };
65
+ };
66
+ export default _default;
@@ -0,0 +1,89 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/plus/contactInfoModal/locales.ts
20
+ var locales_exports = {};
21
+ __export(locales_exports, {
22
+ default: () => locales_default
23
+ });
24
+ module.exports = __toCommonJS(locales_exports);
25
+ var locales_default = {
26
+ en: {
27
+ "pisell2.text.button.save": "Save",
28
+ "pisell2.text.button.delete": "Delete",
29
+ "pisell2.text.button.cancel": "Cancel",
30
+ "pisell2.text.contact-info.actions.delete": "Delete",
31
+ "pisell2.text.contact-info.modal.title": "Contact info",
32
+ "pisell2.text.contact-info.modal.first-name": "First Name",
33
+ "pisell2.text.contact-info.modal.first-name-placeholder": "Please enter first name",
34
+ "pisell2.text.contact-info.modal.first-name-required": "First name is required",
35
+ "pisell2.text.contact-info.modal.last-name": "Last Name",
36
+ "pisell2.text.contact-info.modal.last-name-placeholder": "Please enter last name",
37
+ "pisell2.text.contact-info.modal.last-name-required": "Last name is required",
38
+ "pisell2.text.contact-info.modal.mobile": "Phone Number",
39
+ "pisell2.text.contact-info.modal.mobile-placeholder": "Please enter phone number",
40
+ "pisell2.text.contact-info.modal.mobile-required": "Phone number is required",
41
+ "pisell2.text.contact-info.modal.mobile-error": "Please enter a valid phone number",
42
+ "pisell2.text.contact-info.modal.email": "Email",
43
+ "pisell2.text.contact-info.modal.email-placeholder": "Please enter email",
44
+ "pisell2.text.contact-info.modal.email-required": "Email is required",
45
+ "pisell2.text.contact-info.modal.email-error": "Please enter a valid email"
46
+ },
47
+ "zh-CN": {
48
+ "pisell2.text.button.save": "保存",
49
+ "pisell2.text.button.delete": "删除",
50
+ "pisell2.text.button.cancel": "取消",
51
+ "pisell2.text.contact-info.actions.delete": "删除",
52
+ "pisell2.text.contact-info.modal.title": "联系信息",
53
+ "pisell2.text.contact-info.modal.first-name": "名",
54
+ "pisell2.text.contact-info.modal.first-name-placeholder": "请输入名",
55
+ "pisell2.text.contact-info.modal.first-name-required": "名是必填项",
56
+ "pisell2.text.contact-info.modal.last-name": "姓",
57
+ "pisell2.text.contact-info.modal.last-name-placeholder": "请输入姓",
58
+ "pisell2.text.contact-info.modal.last-name-required": "姓是必填项",
59
+ "pisell2.text.contact-info.modal.mobile": "电话号码",
60
+ "pisell2.text.contact-info.modal.mobile-placeholder": "请输入电话号码",
61
+ "pisell2.text.contact-info.modal.mobile-required": "电话号码是必填项",
62
+ "pisell2.text.contact-info.modal.mobile-error": "请输入有效的电话号码",
63
+ "pisell2.text.contact-info.modal.email": "电子邮箱",
64
+ "pisell2.text.contact-info.modal.email-placeholder": "请输入电子邮箱",
65
+ "pisell2.text.contact-info.modal.email-required": "电子邮箱是必填项",
66
+ "pisell2.text.contact-info.modal.email-error": "请输入有效的电子邮箱"
67
+ },
68
+ "zh-HK": {
69
+ "pisell2.text.button.save": "保存",
70
+ "pisell2.text.button.delete": "刪除",
71
+ "pisell2.text.button.cancel": "取消",
72
+ "pisell2.text.contact-info.actions.delete": "刪除",
73
+ "pisell2.text.contact-info.modal.title": "聯繫信息",
74
+ "pisell2.text.contact-info.modal.first-name": "名",
75
+ "pisell2.text.contact-info.modal.first-name-placeholder": "請輸入名",
76
+ "pisell2.text.contact-info.modal.first-name-required": "名是必填項",
77
+ "pisell2.text.contact-info.modal.last-name": "姓",
78
+ "pisell2.text.contact-info.modal.last-name-placeholder": "請輸入姓",
79
+ "pisell2.text.contact-info.modal.last-name-required": "姓是必填項",
80
+ "pisell2.text.contact-info.modal.mobile": "電話號碼",
81
+ "pisell2.text.contact-info.modal.mobile-placeholder": "請輸入電話號碼",
82
+ "pisell2.text.contact-info.modal.mobile-required": "電話號碼是必填項",
83
+ "pisell2.text.contact-info.modal.mobile-error": "請輸入有效的電話號碼",
84
+ "pisell2.text.contact-info.modal.email": "電子郵件",
85
+ "pisell2.text.contact-info.modal.email-placeholder": "請輸入電子郵件",
86
+ "pisell2.text.contact-info.modal.email-required": "電子郵件是必填項",
87
+ "pisell2.text.contact-info.modal.email-error": "請輸入有效的電子郵件"
88
+ }
89
+ };