@pisell/private-materials 6.3.33 → 6.3.35

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 (175) 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 +1 -1
  6. package/build/lowcode/preview.js +8 -8
  7. package/build/lowcode/render/default/view.css +1 -1
  8. package/build/lowcode/render/default/view.js +23 -8
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +23 -8
  11. package/es/components/booking/addons/model.d.ts +10 -1
  12. package/es/components/booking/components/customSelect/index.js +18 -3
  13. package/es/components/booking/forms/model.d.ts +10 -1
  14. package/es/components/booking/info/model.d.ts +10 -1
  15. package/es/components/booking/info/service/addService/utils.d.ts +1 -1
  16. package/es/components/booking/info2/service/addService/utils.d.ts +1 -1
  17. package/es/components/booking/model.d.ts +9 -1
  18. package/es/components/booking/notes/model.d.ts +10 -1
  19. package/es/components/booking/payments/model.d.ts +10 -1
  20. package/es/components/index.d.ts +1 -2
  21. package/es/components/index.js +1 -2
  22. package/es/components/pay/toC/model.d.ts +9 -1
  23. package/es/components/schedules/model.d.ts +9 -1
  24. package/es/components/wallet/Detail/model.d.ts +13 -1
  25. package/es/components/wallet/DiscountCard/model.d.ts +14 -1
  26. package/es/components/wallet/PointCard/model.d.ts +13 -1
  27. package/es/components/wallet/RechargeableCard/model.d.ts +29 -1
  28. package/es/components/wallet/Voucher/model.d.ts +13 -1
  29. package/es/components/wallet/model.d.ts +9 -1
  30. package/es/components/walletList/index.d.ts +0 -25
  31. package/es/components/walletList/index.js +98 -66
  32. package/es/components/walletList/serve.d.ts +4 -0
  33. package/es/components/walletList/serve.js +46 -13
  34. package/es/components/walletList/types/index.d.ts +12 -12
  35. package/es/components/walletList/types/index.js +2 -2
  36. package/es/index.d.ts +2 -1
  37. package/es/index.js +2 -1
  38. package/es/plus/productSelect/CategoryTabs/index.d.ts +2 -0
  39. package/es/plus/productSelect/CategoryTabs/index.js +6 -3
  40. package/es/plus/productSelect/components/TabsStructure/TabsStructure.less +0 -11
  41. package/es/plus/productSelect/utils.js +0 -1
  42. package/es/plus/walletEditor/WalletEditor.d.ts +5 -0
  43. package/es/plus/walletEditor/WalletEditor.js +316 -0
  44. package/es/plus/walletEditor/WalletEditor.less +129 -0
  45. package/es/plus/walletEditor/components/ImageUpload/index.d.ts +8 -0
  46. package/es/plus/walletEditor/components/ImageUpload/index.js +223 -0
  47. package/es/plus/walletEditor/components/JsonEditor/index.d.ts +11 -0
  48. package/es/plus/walletEditor/components/JsonEditor/index.js +68 -0
  49. package/es/plus/walletEditor/components/JsonEditor/index.less +4 -0
  50. package/es/plus/walletEditor/components/ValidityPeriodSelector/index.d.ts +20 -0
  51. package/es/plus/walletEditor/components/ValidityPeriodSelector/index.js +222 -0
  52. package/es/plus/walletEditor/components/ValidityPeriodSelector/index.less +4 -0
  53. package/es/plus/walletEditor/components/relationProduct/index.d.ts +6 -0
  54. package/es/plus/walletEditor/components/relationProduct/index.js +49 -0
  55. package/es/plus/walletEditor/components/relationProduct/index.less +15 -0
  56. package/es/plus/walletEditor/components/sortableWalletPassTypes/index.d.ts +37 -0
  57. package/es/plus/walletEditor/components/sortableWalletPassTypes/index.js +193 -0
  58. package/es/plus/walletEditor/components/sortableWalletPassTypes/index.less +110 -0
  59. package/es/plus/walletEditor/index.d.ts +3 -0
  60. package/es/plus/walletEditor/index.js +3 -0
  61. package/es/plus/walletEditor/locales.d.ts +126 -0
  62. package/es/plus/walletEditor/locales.js +143 -0
  63. package/es/plus/walletEditor/types.d.ts +52 -0
  64. package/es/plus/walletEditor/types.js +1 -0
  65. package/es/plus/walletPassGallery/components/footerButton/index.d.ts +14 -0
  66. package/es/plus/walletPassGallery/components/footerButton/index.js +247 -0
  67. package/es/plus/walletPassGallery/components/footerButton/index.less +93 -0
  68. package/es/plus/walletPassGallery/components/passDetail/index.d.ts +8 -0
  69. package/es/plus/walletPassGallery/components/passDetail/index.js +274 -0
  70. package/es/plus/walletPassGallery/components/passDetail/index.less +57 -0
  71. package/es/plus/walletPassGallery/components/passList/index.d.ts +11 -0
  72. package/es/plus/walletPassGallery/components/passList/index.js +115 -0
  73. package/es/plus/walletPassGallery/components/recharge/index.d.ts +11 -0
  74. package/es/plus/walletPassGallery/components/recharge/index.js +134 -0
  75. package/es/plus/walletPassGallery/components/recharge/index.less +16 -0
  76. package/es/plus/walletPassGallery/components/timelineSection/index.d.ts +8 -0
  77. package/es/plus/walletPassGallery/components/timelineSection/index.js +176 -0
  78. package/es/plus/walletPassGallery/components/timelineSection/index.less +67 -0
  79. package/es/plus/walletPassGallery/components/usageRule/index.d.ts +9 -0
  80. package/es/plus/walletPassGallery/components/usageRule/index.js +248 -0
  81. package/es/plus/walletPassGallery/components/usageRule/index.less +157 -0
  82. package/es/plus/walletPassGallery/index.d.ts +6 -0
  83. package/es/plus/walletPassGallery/index.js +602 -0
  84. package/es/plus/walletPassGallery/index.less +115 -0
  85. package/es/plus/walletPassGallery/locales.d.ts +270 -0
  86. package/es/plus/walletPassGallery/locales.js +279 -0
  87. package/es/plus/walletPassGallery/serve.d.ts +218 -0
  88. package/es/plus/walletPassGallery/serve.js +289 -0
  89. package/es/pro/Login2.0/Login2.js +8 -1
  90. package/es/pro/Login2.0/locales.js +93 -93
  91. package/lib/components/booking/addons/model.d.ts +10 -1
  92. package/lib/components/booking/components/customSelect/index.js +22 -3
  93. package/lib/components/booking/forms/model.d.ts +10 -1
  94. package/lib/components/booking/info/model.d.ts +10 -1
  95. package/lib/components/booking/info/service/addService/utils.d.ts +1 -1
  96. package/lib/components/booking/info2/service/addService/utils.d.ts +1 -1
  97. package/lib/components/booking/model.d.ts +9 -1
  98. package/lib/components/booking/notes/model.d.ts +10 -1
  99. package/lib/components/booking/payments/model.d.ts +10 -1
  100. package/lib/components/index.d.ts +1 -2
  101. package/lib/components/index.js +0 -3
  102. package/lib/components/pay/toC/model.d.ts +9 -1
  103. package/lib/components/schedules/model.d.ts +9 -1
  104. package/lib/components/wallet/Detail/model.d.ts +13 -1
  105. package/lib/components/wallet/DiscountCard/model.d.ts +14 -1
  106. package/lib/components/wallet/PointCard/model.d.ts +13 -1
  107. package/lib/components/wallet/RechargeableCard/model.d.ts +29 -1
  108. package/lib/components/wallet/Voucher/model.d.ts +13 -1
  109. package/lib/components/wallet/model.d.ts +9 -1
  110. package/lib/components/walletList/index.d.ts +0 -25
  111. package/lib/components/walletList/index.js +90 -51
  112. package/lib/components/walletList/serve.d.ts +4 -0
  113. package/lib/components/walletList/serve.js +12 -0
  114. package/lib/components/walletList/types/index.d.ts +12 -12
  115. package/lib/index.d.ts +2 -1
  116. package/lib/index.js +6 -3
  117. package/lib/plus/productSelect/CategoryTabs/index.d.ts +2 -0
  118. package/lib/plus/productSelect/CategoryTabs/index.js +84 -69
  119. package/lib/plus/productSelect/components/TabsStructure/TabsStructure.less +0 -11
  120. package/lib/plus/productSelect/utils.js +0 -1
  121. package/lib/plus/walletEditor/WalletEditor.d.ts +5 -0
  122. package/lib/plus/walletEditor/WalletEditor.js +354 -0
  123. package/lib/plus/walletEditor/WalletEditor.less +129 -0
  124. package/lib/plus/walletEditor/components/ImageUpload/index.d.ts +8 -0
  125. package/lib/plus/walletEditor/components/ImageUpload/index.js +201 -0
  126. package/lib/plus/walletEditor/components/JsonEditor/index.d.ts +11 -0
  127. package/lib/plus/walletEditor/components/JsonEditor/index.js +89 -0
  128. package/lib/plus/walletEditor/components/JsonEditor/index.less +4 -0
  129. package/lib/plus/walletEditor/components/ValidityPeriodSelector/index.d.ts +20 -0
  130. package/lib/plus/walletEditor/components/ValidityPeriodSelector/index.js +176 -0
  131. package/lib/plus/walletEditor/components/ValidityPeriodSelector/index.less +4 -0
  132. package/lib/plus/walletEditor/components/relationProduct/index.d.ts +6 -0
  133. package/lib/plus/walletEditor/components/relationProduct/index.js +73 -0
  134. package/lib/plus/walletEditor/components/relationProduct/index.less +15 -0
  135. package/lib/plus/walletEditor/components/sortableWalletPassTypes/index.d.ts +37 -0
  136. package/lib/plus/walletEditor/components/sortableWalletPassTypes/index.js +211 -0
  137. package/lib/plus/walletEditor/components/sortableWalletPassTypes/index.less +110 -0
  138. package/lib/plus/walletEditor/index.d.ts +3 -0
  139. package/lib/plus/walletEditor/index.js +42 -0
  140. package/lib/plus/walletEditor/locales.d.ts +126 -0
  141. package/lib/plus/walletEditor/locales.js +167 -0
  142. package/lib/plus/walletEditor/types.d.ts +52 -0
  143. package/lib/plus/walletEditor/types.js +17 -0
  144. package/lib/plus/walletPassGallery/components/footerButton/index.d.ts +14 -0
  145. package/lib/plus/walletPassGallery/components/footerButton/index.js +187 -0
  146. package/lib/plus/walletPassGallery/components/footerButton/index.less +93 -0
  147. package/lib/plus/walletPassGallery/components/passDetail/index.d.ts +8 -0
  148. package/lib/plus/walletPassGallery/components/passDetail/index.js +287 -0
  149. package/lib/plus/walletPassGallery/components/passDetail/index.less +57 -0
  150. package/lib/plus/walletPassGallery/components/passList/index.d.ts +11 -0
  151. package/lib/plus/walletPassGallery/components/passList/index.js +136 -0
  152. package/lib/plus/walletPassGallery/components/recharge/index.d.ts +11 -0
  153. package/lib/plus/walletPassGallery/components/recharge/index.js +146 -0
  154. package/lib/plus/walletPassGallery/components/recharge/index.less +16 -0
  155. package/lib/plus/walletPassGallery/components/timelineSection/index.d.ts +8 -0
  156. package/lib/plus/walletPassGallery/components/timelineSection/index.js +212 -0
  157. package/lib/plus/walletPassGallery/components/timelineSection/index.less +67 -0
  158. package/lib/plus/walletPassGallery/components/usageRule/index.d.ts +9 -0
  159. package/lib/plus/walletPassGallery/components/usageRule/index.js +209 -0
  160. package/lib/plus/walletPassGallery/components/usageRule/index.less +157 -0
  161. package/lib/plus/walletPassGallery/index.d.ts +6 -0
  162. package/lib/plus/walletPassGallery/index.js +498 -0
  163. package/lib/plus/walletPassGallery/index.less +115 -0
  164. package/lib/plus/walletPassGallery/locales.d.ts +270 -0
  165. package/lib/plus/walletPassGallery/locales.js +299 -0
  166. package/lib/plus/walletPassGallery/serve.d.ts +218 -0
  167. package/lib/plus/walletPassGallery/serve.js +98 -0
  168. package/lib/pro/Login2.0/Login2.js +6 -0
  169. package/lib/pro/Login2.0/locales.js +93 -93
  170. package/lowcode/sortable-wallet-pass-types/meta.ts +267 -0
  171. package/lowcode/wallet-editor/meta.ts +57 -0
  172. package/lowcode/wallet-editor/snippets.ts +13 -0
  173. package/lowcode/wallet-pass-gallery/meta.ts +35 -0
  174. package/package.json +3 -3
  175. package/lowcode/wallet/meta.ts +0 -79
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ interface JsonEditorProps {
3
+ value?: any;
4
+ onChange?: (value: any) => void;
5
+ disabled?: boolean;
6
+ placeholder?: string;
7
+ rows?: number;
8
+ style?: React.CSSProperties;
9
+ }
10
+ declare const JsonEditor: React.FC<JsonEditorProps>;
11
+ export default JsonEditor;
@@ -0,0 +1,89 @@
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/walletEditor/components/JsonEditor/index.tsx
30
+ var JsonEditor_exports = {};
31
+ __export(JsonEditor_exports, {
32
+ default: () => JsonEditor_default
33
+ });
34
+ module.exports = __toCommonJS(JsonEditor_exports);
35
+ var import_react = __toESM(require("react"));
36
+ var import_antd = require("antd");
37
+ var JsonEditor = ({
38
+ value,
39
+ onChange,
40
+ disabled = false,
41
+ rows = 4,
42
+ style
43
+ }) => {
44
+ const [textValue, setTextValue] = (0, import_react.useState)("");
45
+ const [hasError, setHasError] = (0, import_react.useState)(false);
46
+ (0, import_react.useEffect)(() => {
47
+ if (value !== void 0) {
48
+ try {
49
+ setTextValue(JSON.stringify(value, null, 2));
50
+ setHasError(false);
51
+ } catch {
52
+ setTextValue("");
53
+ setHasError(false);
54
+ }
55
+ } else {
56
+ setTextValue("");
57
+ setHasError(false);
58
+ }
59
+ }, [value]);
60
+ const handleTextChange = (e) => {
61
+ const newText = e.target.value;
62
+ setTextValue(newText);
63
+ if (!newText.trim()) {
64
+ setHasError(false);
65
+ onChange == null ? void 0 : onChange(void 0);
66
+ return;
67
+ }
68
+ try {
69
+ const parsedValue = JSON.parse(newText);
70
+ setHasError(false);
71
+ onChange == null ? void 0 : onChange(parsedValue);
72
+ } catch {
73
+ setHasError(true);
74
+ }
75
+ };
76
+ return /* @__PURE__ */ import_react.default.createElement(
77
+ import_antd.Input.TextArea,
78
+ {
79
+ style,
80
+ value: textValue,
81
+ onChange: handleTextChange,
82
+ rows,
83
+ disabled,
84
+ status: hasError ? "error" : void 0,
85
+ allowClear: true
86
+ }
87
+ );
88
+ };
89
+ var JsonEditor_default = JsonEditor;
@@ -0,0 +1,4 @@
1
+ // JsonEditor组件样式
2
+ .json-editor {
3
+ // 可以在这里添加特定的样式
4
+ }
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ export declare type ValidityPeriodValue = {
3
+ type: 'normal';
4
+ unit: string;
5
+ unit_type: 'day' | 'month' | 'year';
6
+ } | {
7
+ type: 'custom';
8
+ custom_date?: string;
9
+ } | {
10
+ type: 'forever';
11
+ };
12
+ export interface ValidityPeriodSelectorProps {
13
+ value?: ValidityPeriodValue;
14
+ onChange?: (value: ValidityPeriodValue) => void;
15
+ disabled?: boolean;
16
+ placeholder?: string;
17
+ options?: readonly ValidityPeriodValue[];
18
+ }
19
+ declare const ValidityPeriodSelector: React.FC<ValidityPeriodSelectorProps>;
20
+ export default ValidityPeriodSelector;
@@ -0,0 +1,176 @@
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/walletEditor/components/ValidityPeriodSelector/index.tsx
30
+ var ValidityPeriodSelector_exports = {};
31
+ __export(ValidityPeriodSelector_exports, {
32
+ default: () => ValidityPeriodSelector_default
33
+ });
34
+ module.exports = __toCommonJS(ValidityPeriodSelector_exports);
35
+ var import_react = __toESM(require("react"));
36
+ var import_antd = require("antd");
37
+ var import_dayjs = __toESM(require("dayjs"));
38
+ var import_useEngineContext = __toESM(require("../../../../hooks/useEngineContext"));
39
+ var import_locales = __toESM(require("../../locales"));
40
+ var import_utils = require("@pisell/utils");
41
+ var { Option } = import_antd.Select;
42
+ var DEFAULT_VALIDITY_OPTIONS = [
43
+ { unit: "1", unit_type: "day", type: "normal" },
44
+ { unit: "14", unit_type: "day", type: "normal" },
45
+ { unit: "1", unit_type: "month", type: "normal" },
46
+ { unit: "2", unit_type: "month", type: "normal" },
47
+ { unit: "3", unit_type: "month", type: "normal" },
48
+ { unit: "4", unit_type: "month", type: "normal" },
49
+ { unit: "5", unit_type: "month", type: "normal" },
50
+ { unit: "6", unit_type: "month", type: "normal" },
51
+ { unit: "1", unit_type: "year", type: "normal" },
52
+ { unit: "3", unit_type: "year", type: "normal" },
53
+ { type: "forever" },
54
+ { custom_date: "", type: "custom" }
55
+ ];
56
+ var getOptionLabel = (option) => {
57
+ if (option.type === "forever") {
58
+ return import_utils.locales.getText("forever");
59
+ }
60
+ if (option.type === "custom") {
61
+ return import_utils.locales.getText("custom");
62
+ }
63
+ const unitMap = {
64
+ day: import_utils.locales.getText("day"),
65
+ month: import_utils.locales.getText("month"),
66
+ year: import_utils.locales.getText("year"),
67
+ days: import_utils.locales.getText("days"),
68
+ months: import_utils.locales.getText("months"),
69
+ years: import_utils.locales.getText("years")
70
+ };
71
+ const { unit, unit_type } = option;
72
+ if (Number(unit) > 1) {
73
+ return `${unit} ${unitMap[unit_type + "s"]}`;
74
+ }
75
+ return `${unit} ${unitMap[unit_type]}`;
76
+ };
77
+ var transformValueToString = (option) => {
78
+ if (option.type === "forever") {
79
+ return "forever";
80
+ }
81
+ if (option.type === "custom") {
82
+ return "custom";
83
+ }
84
+ return `${option.unit}${option.unit_type}`;
85
+ };
86
+ var transformStringToValue = (stringValue) => {
87
+ if (stringValue === "forever") {
88
+ return { type: "forever" };
89
+ }
90
+ if (stringValue === "custom") {
91
+ return { type: "custom", custom_date: "" };
92
+ }
93
+ const match = stringValue.match(/^(\d+)(day|month|year)$/);
94
+ if (match) {
95
+ const [, unit, unit_type] = match;
96
+ return {
97
+ type: "normal",
98
+ unit,
99
+ unit_type
100
+ };
101
+ }
102
+ return { type: "normal", unit: "1", unit_type: "day" };
103
+ };
104
+ var ValidityPeriodSelector = ({
105
+ value,
106
+ onChange,
107
+ disabled = false,
108
+ placeholder,
109
+ options = DEFAULT_VALIDITY_OPTIONS
110
+ }) => {
111
+ var _a, _b;
112
+ const context = (0, import_useEngineContext.default)();
113
+ import_utils.locales.init(
114
+ import_locales.default,
115
+ ((_b = (_a = context.appHelper.utils) == null ? void 0 : _a.storage) == null ? void 0 : _b.get("umi_locale")) || "en"
116
+ );
117
+ const defaultPlaceholder = placeholder || import_utils.locales.getText("selectValidityPeriod");
118
+ const [showCustomDate, setShowCustomDate] = (0, import_react.useState)(false);
119
+ const [currentValue, setCurrentValue] = (0, import_react.useState)(value);
120
+ const validityOptions = (0, import_react.useMemo)(() => {
121
+ return options.map((option) => ({
122
+ label: getOptionLabel(option),
123
+ value: transformValueToString(option)
124
+ }));
125
+ }, [options]);
126
+ (0, import_react.useEffect)(() => {
127
+ setCurrentValue(value);
128
+ setShowCustomDate((value == null ? void 0 : value.type) === "custom");
129
+ }, [value]);
130
+ const handleSelectChange = (selectedValue) => {
131
+ const parsedValue = transformStringToValue(selectedValue);
132
+ setCurrentValue(parsedValue);
133
+ setShowCustomDate(parsedValue.type === "custom");
134
+ if (parsedValue.type !== "custom") {
135
+ onChange == null ? void 0 : onChange(parsedValue);
136
+ }
137
+ };
138
+ const handleDateChange = (date, dateString) => {
139
+ if (date && (currentValue == null ? void 0 : currentValue.type) === "custom") {
140
+ const newValue = {
141
+ type: "custom",
142
+ custom_date: date.format("YYYY-MM-DD")
143
+ };
144
+ setCurrentValue(newValue);
145
+ onChange == null ? void 0 : onChange(newValue);
146
+ }
147
+ };
148
+ const getSelectValue = () => {
149
+ if (!currentValue) return void 0;
150
+ return transformValueToString(currentValue);
151
+ };
152
+ const renderOptions = () => {
153
+ return validityOptions.map((option) => /* @__PURE__ */ import_react.default.createElement(Option, { key: option.label, value: option.value }, option.label));
154
+ };
155
+ return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(
156
+ import_antd.Select,
157
+ {
158
+ placeholder: defaultPlaceholder,
159
+ onChange: handleSelectChange,
160
+ value: getSelectValue(),
161
+ disabled,
162
+ style: { width: "100%" }
163
+ },
164
+ renderOptions()
165
+ ), showCustomDate && /* @__PURE__ */ import_react.default.createElement(import_antd.Form.Item, { label: import_utils.locales.getText("custom"), style: { marginBottom: 0 } }, /* @__PURE__ */ import_react.default.createElement(
166
+ import_antd.DatePicker,
167
+ {
168
+ placeholder: import_utils.locales.getText("selectCustomDate"),
169
+ onChange: handleDateChange,
170
+ value: (currentValue == null ? void 0 : currentValue.type) === "custom" && currentValue.custom_date ? (0, import_dayjs.default)(currentValue.custom_date) : void 0,
171
+ disabled,
172
+ style: { width: "100%" }
173
+ }
174
+ )));
175
+ };
176
+ var ValidityPeriodSelector_default = ValidityPeriodSelector;
@@ -0,0 +1,4 @@
1
+ // ValidityPeriodSelector组件样式
2
+ .validity-period-selector {
3
+ // 可以在这里添加特定的样式
4
+ }
@@ -0,0 +1,6 @@
1
+ import './index.less';
2
+ declare const RelationProduct: ({ value, onChange, }: {
3
+ value?: string[] | undefined;
4
+ onChange?: ((val: string[]) => void) | undefined;
5
+ }) => JSX.Element | null;
6
+ export default RelationProduct;
@@ -0,0 +1,73 @@
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/walletEditor/components/relationProduct/index.tsx
30
+ var relationProduct_exports = {};
31
+ __export(relationProduct_exports, {
32
+ default: () => relationProduct_default
33
+ });
34
+ module.exports = __toCommonJS(relationProduct_exports);
35
+ var import_react = __toESM(require("react"));
36
+ var import_antd = require("antd");
37
+ var import_utils = require("@pisell/utils");
38
+ var import_useComponents = __toESM(require("../../../../hooks/useComponents"));
39
+ var import_index = require("./index.less");
40
+ var RelationProduct = ({
41
+ value,
42
+ onChange
43
+ }) => {
44
+ const linkerRef = (0, import_react.useRef)(null);
45
+ const [RelationProduct2] = (0, import_useComponents.default)({
46
+ components: ["RelationProduct"]
47
+ });
48
+ if (!(RelationProduct2 == null ? void 0 : RelationProduct2.PassLinker)) return null;
49
+ const onShow = () => {
50
+ var _a, _b;
51
+ if (linkerRef.current) {
52
+ (_b = (_a = linkerRef.current).openModal) == null ? void 0 : _b.call(_a);
53
+ }
54
+ };
55
+ return /* @__PURE__ */ import_react.default.createElement("div", { className: "product-detail-card-module" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "linked-passes-empty-state" }, /* @__PURE__ */ import_react.default.createElement("p", { className: "linked-passes-description" }, import_utils.locales.getText("linkedPassesDesc")), /* @__PURE__ */ import_react.default.createElement(
56
+ import_antd.Button,
57
+ {
58
+ type: "primary",
59
+ size: "large",
60
+ onClick: onShow,
61
+ className: "select-passes-button"
62
+ },
63
+ import_utils.locales.getText("selectPasses")
64
+ ), value && value.length > 0 ? /* @__PURE__ */ import_react.default.createElement("div", { style: { padding: 8 } }) : null, /* @__PURE__ */ import_react.default.createElement(
65
+ RelationProduct2.PassLinker,
66
+ {
67
+ ref: linkerRef,
68
+ value,
69
+ onChange
70
+ }
71
+ )));
72
+ };
73
+ var relationProduct_default = RelationProduct;
@@ -0,0 +1,15 @@
1
+ .linked-passes-empty-state {
2
+ .linked-passes-description {
3
+ font-size: 16px;
4
+ color: #6b7280;
5
+ margin: 0 0 16px 0;
6
+ line-height: 1.5;
7
+ }
8
+
9
+ .select-passes-button {
10
+ min-width: 200px;
11
+ height: 40px;
12
+ border-radius: 8px;
13
+ font-weight: 500;
14
+ }
15
+ }
@@ -0,0 +1,37 @@
1
+ import React from 'react';
2
+ import './index.less';
3
+ export declare type WalletPassType = 'rechargeable' | 'point' | 'voucher' | 'discount';
4
+ export interface MultiLanguageTitle {
5
+ original?: string;
6
+ en?: string;
7
+ 'zh-CN'?: string;
8
+ 'zh-HK'?: string;
9
+ }
10
+ export interface WalletPassItem {
11
+ /** 钱包通行证类型 */
12
+ type: WalletPassType;
13
+ /** 是否显示,1表示显示,0表示隐藏 */
14
+ display: 0 | 1;
15
+ /** 自定义标题,支持多语言 */
16
+ custom_title?: MultiLanguageTitle;
17
+ }
18
+ export interface SortableWalletPassTypesProps {
19
+ /** 当前值,包含各种钱包通行证类型的配置 */
20
+ value?: WalletPassItem[];
21
+ /** 值变化时的回调函数 */
22
+ onChange?: (value: WalletPassItem[]) => void;
23
+ /** 是否禁用编辑 */
24
+ disabled?: boolean;
25
+ /** 组件类名 */
26
+ className?: string;
27
+ /** 组件样式 */
28
+ style?: React.CSSProperties;
29
+ }
30
+ /** 默认的钱包通行证类型配置 */
31
+ export interface WalletPassTypeInfo {
32
+ type: WalletPassType;
33
+ custom_title: MultiLanguageTitle;
34
+ }
35
+ export declare const DEFAULT_WALLET_PASS_TYPES_CONFIG: WalletPassTypeInfo[];
36
+ declare const SortableWalletPassTypes: React.FC<SortableWalletPassTypesProps>;
37
+ export default SortableWalletPassTypes;
@@ -0,0 +1,211 @@
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/walletEditor/components/sortableWalletPassTypes/index.tsx
30
+ var sortableWalletPassTypes_exports = {};
31
+ __export(sortableWalletPassTypes_exports, {
32
+ DEFAULT_WALLET_PASS_TYPES_CONFIG: () => DEFAULT_WALLET_PASS_TYPES_CONFIG,
33
+ default: () => sortableWalletPassTypes_default
34
+ });
35
+ module.exports = __toCommonJS(sortableWalletPassTypes_exports);
36
+ var import_react = __toESM(require("react"));
37
+ var import_icons = require("@ant-design/icons");
38
+ var import_classnames = __toESM(require("classnames"));
39
+ var import_materials = require("@pisell/materials");
40
+ var import_index = require("./index.less");
41
+ var { Editable } = import_materials.PisellText;
42
+ var WALLET_PASS_TYPES = [
43
+ "rechargeable",
44
+ "point",
45
+ "voucher",
46
+ "discount"
47
+ ];
48
+ var DEFAULT_WALLET_PASS_TYPES_CONFIG = [
49
+ {
50
+ type: "rechargeable",
51
+ custom_title: {
52
+ original: "Balance",
53
+ en: "Balance",
54
+ "zh-CN": "余额",
55
+ "zh-HK": "餘額"
56
+ }
57
+ },
58
+ {
59
+ type: "point",
60
+ custom_title: {
61
+ original: "Points",
62
+ en: "Points",
63
+ "zh-CN": "积分",
64
+ "zh-HK": "積分"
65
+ }
66
+ },
67
+ {
68
+ type: "voucher",
69
+ custom_title: {
70
+ original: "Voucher",
71
+ en: "Voucher",
72
+ "zh-CN": "代金券",
73
+ "zh-HK": "代金券"
74
+ }
75
+ },
76
+ {
77
+ type: "discount",
78
+ custom_title: {
79
+ original: "Discount",
80
+ en: "Discount",
81
+ "zh-CN": "折扣券",
82
+ "zh-HK": "折扣券"
83
+ }
84
+ }
85
+ ];
86
+ var SortableWalletPassTypes = (props) => {
87
+ const { value = [], onChange, disabled = false, className, style } = props;
88
+ const dataSource = (0, import_react.useMemo)(() => {
89
+ const result = [];
90
+ const processedTypes = /* @__PURE__ */ new Set();
91
+ value.forEach((item) => {
92
+ if (WALLET_PASS_TYPES.includes(item.type) && !processedTypes.has(item.type)) {
93
+ result.push(item);
94
+ processedTypes.add(item.type);
95
+ }
96
+ });
97
+ DEFAULT_WALLET_PASS_TYPES_CONFIG.forEach((defaultType) => {
98
+ if (!processedTypes.has(defaultType.type)) {
99
+ result.push({
100
+ type: defaultType.type,
101
+ display: 0,
102
+ custom_title: defaultType.custom_title
103
+ });
104
+ }
105
+ });
106
+ return result;
107
+ }, [value]);
108
+ const handleSortChange = (0, import_react.useCallback)(
109
+ (newList) => {
110
+ if (!onChange || disabled) return;
111
+ onChange(newList);
112
+ },
113
+ [onChange, disabled]
114
+ );
115
+ const handleToggleDisplay = (0, import_react.useCallback)(
116
+ (index) => {
117
+ if (!onChange || disabled) return;
118
+ const newList = [...dataSource];
119
+ newList[index] = {
120
+ ...newList[index],
121
+ display: newList[index].display === 1 ? 0 : 1
122
+ };
123
+ onChange(newList);
124
+ },
125
+ [dataSource, onChange, disabled]
126
+ );
127
+ const handleTitleChange = (0, import_react.useCallback)(
128
+ (index, newTitle) => {
129
+ if (!onChange || disabled) return;
130
+ const newList = [...dataSource];
131
+ newList[index] = {
132
+ ...newList[index],
133
+ custom_title: typeof newTitle === "string" ? { original: newTitle, en: newTitle } : newTitle
134
+ };
135
+ onChange(newList);
136
+ },
137
+ [dataSource, onChange, disabled]
138
+ );
139
+ const getDisplayTitle = (0, import_react.useCallback)((item) => {
140
+ const defaultType = DEFAULT_WALLET_PASS_TYPES_CONFIG.find(
141
+ (t) => t.type === item.type
142
+ );
143
+ return item.custom_title || (defaultType == null ? void 0 : defaultType.custom_title) || { original: item.type, en: item.type };
144
+ }, []);
145
+ const renderItem = (0, import_react.useCallback)(
146
+ (item, index) => {
147
+ const displayTitle = getDisplayTitle(item);
148
+ const isVisible = item.display === 1;
149
+ return /* @__PURE__ */ import_react.default.createElement(
150
+ "div",
151
+ {
152
+ className: (0, import_classnames.default)("sortable-wallet-pass-item", {
153
+ "sortable-wallet-pass-item-disabled": disabled,
154
+ "sortable-wallet-pass-item-hidden": !isVisible
155
+ })
156
+ },
157
+ /* @__PURE__ */ import_react.default.createElement("div", { className: "sortable-wallet-pass-drag-handle" }, /* @__PURE__ */ import_react.default.createElement(import_icons.HolderOutlined, { className: "drag-dots", size: 20 })),
158
+ /* @__PURE__ */ import_react.default.createElement("div", { className: "sortable-wallet-pass-title" }, /* @__PURE__ */ import_react.default.createElement(
159
+ Editable,
160
+ {
161
+ value: displayTitle,
162
+ editable: !disabled && {
163
+ maxLength: 10
164
+ },
165
+ onChange: (newValue) => handleTitleChange(index, newValue)
166
+ }
167
+ )),
168
+ /* @__PURE__ */ import_react.default.createElement("div", { className: "sortable-wallet-pass-toggle" }, /* @__PURE__ */ import_react.default.createElement(
169
+ "button",
170
+ {
171
+ type: "button",
172
+ style: {
173
+ cursor: "pointer",
174
+ border: "none",
175
+ background: "transparent"
176
+ },
177
+ onClick: () => handleToggleDisplay(index)
178
+ },
179
+ isVisible ? /* @__PURE__ */ import_react.default.createElement(import_icons.EyeOutlined, { className: "eye-icon eye-icon-visible" }) : /* @__PURE__ */ import_react.default.createElement(import_icons.EyeInvisibleOutlined, { className: "eye-icon eye-icon-hidden" })
180
+ ))
181
+ );
182
+ },
183
+ [disabled, getDisplayTitle, handleTitleChange, handleToggleDisplay]
184
+ );
185
+ return /* @__PURE__ */ import_react.default.createElement(
186
+ "div",
187
+ {
188
+ className: (0, import_classnames.default)("sortable-wallet-pass-types", className, {
189
+ "sortable-wallet-pass-types-disabled": disabled
190
+ }),
191
+ style
192
+ },
193
+ /* @__PURE__ */ import_react.default.createElement(
194
+ import_materials.SortableList,
195
+ {
196
+ dataSource,
197
+ onChange: handleSortChange,
198
+ rowKey: "type",
199
+ renderItem,
200
+ activationConstraint: {
201
+ distance: 5
202
+ }
203
+ }
204
+ )
205
+ );
206
+ };
207
+ var sortableWalletPassTypes_default = SortableWalletPassTypes;
208
+ // Annotate the CommonJS export names for ESM import in node:
209
+ 0 && (module.exports = {
210
+ DEFAULT_WALLET_PASS_TYPES_CONFIG
211
+ });