@pisell/private-materials 3.4.61 → 3.4.62

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 (282) 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 +7 -7
  7. package/build/lowcode/render/default/view.css +1 -1
  8. package/build/lowcode/render/default/view.js +10 -10
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +10 -10
  11. package/es/components/Sales/Summary/utils.d.ts +1 -1
  12. package/es/components/appointmentBooking/components/Voucher/index.js +16 -1
  13. package/es/components/booking/addons/model.d.ts +1 -10
  14. package/es/components/booking/components/footer/utils.js +36 -37
  15. package/es/components/booking/components/voucher/index.js +39 -14
  16. package/es/components/booking/forms/model.d.ts +1 -10
  17. package/es/components/booking/info/model.d.ts +1 -10
  18. package/es/components/booking/info/service/addService/utils.d.ts +1 -1
  19. package/es/components/booking/info/service2/utils.js +2 -1
  20. package/es/components/booking/info2/service/addService/utils.d.ts +1 -1
  21. package/es/components/booking/model.d.ts +1 -9
  22. package/es/components/booking/notes/model.d.ts +1 -10
  23. package/es/components/booking/payments/model.d.ts +1 -10
  24. package/es/components/eftposPay/amount.d.ts +1 -1
  25. package/es/components/eftposPay/device.d.ts +1 -1
  26. package/es/components/eftposPay/store/index.d.ts +1 -1
  27. package/es/components/pay/toC/PaymentList/index.d.ts +1 -1
  28. package/es/components/pay/toC/PaymentList/index.js +54 -5
  29. package/es/components/pay/toC/PaymentList/index.less +58 -1
  30. package/es/components/pay/toC/PaymentList/payment/credit_card.png +0 -0
  31. package/es/components/pay/toC/PaymentList/payment/visa.png +0 -0
  32. package/es/components/pay/toC/PaymentList/serve.d.ts +1 -1
  33. package/es/components/pay/toC/PaymentList/serve.js +8 -0
  34. package/es/components/pay/toC/PaymentList/utils.d.ts +26 -0
  35. package/es/components/pay/toC/PaymentList/utils.js +187 -6
  36. package/es/components/pay/toC/PaymentMethods/MWCreditCard/tds2.js +127 -36
  37. package/es/components/pay/toC/index.js +2 -1
  38. package/es/components/pay/toC/locales.d.ts +6 -0
  39. package/es/components/pay/toC/locales.js +9 -3
  40. package/es/components/pay/toC/model.d.ts +1 -9
  41. package/es/components/schedules/model.d.ts +1 -9
  42. package/es/components/ticketBooking/components/addServiceVariant/addService.js +2 -1
  43. package/es/components/walletList/index.js +180 -41
  44. package/es/components/walletList/locales.d.ts +9 -0
  45. package/es/components/walletList/locales.js +12 -3
  46. package/es/components/walletList/serve.d.ts +19 -0
  47. package/es/components/walletList/serve.js +94 -5
  48. package/es/components/walletList/tempHolderSelector/index.d.ts +14 -0
  49. package/es/components/walletList/tempHolderSelector/index.js +196 -0
  50. package/es/components/walletList/tempHolderSelector/index.less +63 -0
  51. package/es/index.d.ts +2 -1
  52. package/es/index.js +2 -1
  53. package/es/plus/productSelect/index.js +5 -1
  54. package/es/plus/selectHolder/components/ErrorTip/index.d.ts +3 -0
  55. package/es/plus/selectHolder/components/ErrorTip/index.js +14 -0
  56. package/es/plus/selectHolder/components/ErrorTip/index.less +51 -0
  57. package/es/plus/selectHolder/components/HolderItem/index.d.ts +6 -0
  58. package/es/plus/selectHolder/components/HolderItem/index.js +77 -0
  59. package/es/plus/selectHolder/components/HolderItem/index.less +105 -0
  60. package/es/plus/selectHolder/components/HolderList/index.d.ts +30 -0
  61. package/es/plus/selectHolder/components/HolderList/index.js +43 -0
  62. package/es/plus/selectHolder/index.d.ts +7 -0
  63. package/es/plus/selectHolder/index.js +236 -0
  64. package/es/plus/selectHolder/index.less +117 -0
  65. package/es/plus/selectHolder/locales.d.ts +21 -0
  66. package/es/plus/selectHolder/locales.js +20 -0
  67. package/es/plus/selectHolder/types.d.ts +104 -0
  68. package/es/plus/selectHolder/types.js +1 -0
  69. package/es/plus/selectHolder/utils.d.ts +9 -0
  70. package/es/plus/selectHolder/utils.js +16 -0
  71. package/es/plus/walletEditor/WalletEditor.js +60 -2
  72. package/es/plus/walletEditor/locales.d.ts +9 -0
  73. package/es/plus/walletEditor/locales.js +12 -3
  74. package/es/plus/walletPassGallery/components/passList/index.d.ts +1 -0
  75. package/es/plus/walletPassGallery/components/passList/index.js +17 -5
  76. package/es/plus/walletPassGallery/index.js +223 -41
  77. package/es/plus/walletPassGallery/index.less +1 -1
  78. package/es/plus/walletPassGallery/locales.d.ts +15 -0
  79. package/es/plus/walletPassGallery/locales.js +29 -5
  80. package/es/plus/walletPassGallery/serve.d.ts +15 -1
  81. package/es/plus/walletPassGallery/serve.js +59 -2
  82. package/es/plus/walletPassGallery/utils.d.ts +48 -0
  83. package/es/plus/walletPassGallery/utils.js +342 -0
  84. package/es/pro/Selector/Selector.d.ts +1 -1
  85. package/lib/components/Sales/Summary/utils.d.ts +1 -1
  86. package/lib/components/appointmentBooking/components/Voucher/index.js +21 -1
  87. package/lib/components/booking/addons/model.d.ts +1 -10
  88. package/lib/components/booking/components/footer/utils.js +6 -8
  89. package/lib/components/booking/components/voucher/index.js +37 -7
  90. package/lib/components/booking/forms/model.d.ts +1 -10
  91. package/lib/components/booking/info/model.d.ts +1 -10
  92. package/lib/components/booking/info/service/addService/utils.d.ts +1 -1
  93. package/lib/components/booking/info/service2/utils.js +2 -1
  94. package/lib/components/booking/info2/service/addService/utils.d.ts +1 -1
  95. package/lib/components/booking/model.d.ts +1 -9
  96. package/lib/components/booking/notes/model.d.ts +1 -10
  97. package/lib/components/booking/payments/model.d.ts +1 -10
  98. package/lib/components/eftposPay/amount.d.ts +1 -1
  99. package/lib/components/eftposPay/device.d.ts +1 -1
  100. package/lib/components/eftposPay/store/index.d.ts +1 -1
  101. package/lib/components/pay/toC/PaymentList/index.d.ts +1 -1
  102. package/lib/components/pay/toC/PaymentList/index.js +36 -5
  103. package/lib/components/pay/toC/PaymentList/index.less +58 -1
  104. package/lib/components/pay/toC/PaymentList/payment/credit_card.png +0 -0
  105. package/lib/components/pay/toC/PaymentList/payment/visa.png +0 -0
  106. package/lib/components/pay/toC/PaymentList/serve.d.ts +1 -1
  107. package/lib/components/pay/toC/PaymentList/serve.js +6 -1
  108. package/lib/components/pay/toC/PaymentList/utils.d.ts +26 -0
  109. package/lib/components/pay/toC/PaymentList/utils.js +155 -7
  110. package/lib/components/pay/toC/PaymentMethods/MWCreditCard/tds2.js +85 -1
  111. package/lib/components/pay/toC/index.js +2 -1
  112. package/lib/components/pay/toC/locales.d.ts +6 -0
  113. package/lib/components/pay/toC/locales.js +9 -3
  114. package/lib/components/pay/toC/model.d.ts +1 -9
  115. package/lib/components/schedules/model.d.ts +1 -9
  116. package/lib/components/ticketBooking/components/addServiceVariant/addService.js +2 -1
  117. package/lib/components/walletList/index.js +105 -5
  118. package/lib/components/walletList/locales.d.ts +9 -0
  119. package/lib/components/walletList/locales.js +12 -3
  120. package/lib/components/walletList/serve.d.ts +19 -0
  121. package/lib/components/walletList/serve.js +26 -3
  122. package/lib/components/walletList/tempHolderSelector/index.d.ts +14 -0
  123. package/lib/components/walletList/tempHolderSelector/index.js +166 -0
  124. package/lib/components/walletList/tempHolderSelector/index.less +63 -0
  125. package/lib/index.d.ts +2 -1
  126. package/lib/index.js +6 -3
  127. package/lib/plus/productSelect/index.js +4 -1
  128. package/lib/plus/selectHolder/components/ErrorTip/index.d.ts +3 -0
  129. package/lib/{components/wallet/PointCard/model.js → plus/selectHolder/components/ErrorTip/index.js} +10 -23
  130. package/lib/plus/selectHolder/components/ErrorTip/index.less +51 -0
  131. package/lib/plus/selectHolder/components/HolderItem/index.d.ts +6 -0
  132. package/lib/plus/selectHolder/components/HolderItem/index.js +101 -0
  133. package/lib/plus/selectHolder/components/HolderItem/index.less +105 -0
  134. package/lib/plus/selectHolder/components/HolderList/index.d.ts +30 -0
  135. package/lib/{components/wallet/components/WalletBar → plus/selectHolder/components/HolderList}/index.js +29 -15
  136. package/lib/plus/selectHolder/index.d.ts +7 -0
  137. package/lib/plus/selectHolder/index.js +202 -0
  138. package/lib/plus/selectHolder/index.less +117 -0
  139. package/lib/plus/selectHolder/locales.d.ts +21 -0
  140. package/lib/{components/wallet/Voucher → plus/selectHolder}/locales.js +15 -15
  141. package/lib/plus/selectHolder/types.d.ts +104 -0
  142. package/lib/plus/selectHolder/types.js +17 -0
  143. package/lib/plus/selectHolder/utils.d.ts +9 -0
  144. package/lib/{components/wallet/RechargeableCard/serve.js → plus/selectHolder/utils.js} +11 -10
  145. package/lib/plus/walletEditor/WalletEditor.js +53 -0
  146. package/lib/plus/walletEditor/locales.d.ts +9 -0
  147. package/lib/plus/walletEditor/locales.js +12 -3
  148. package/lib/plus/walletPassGallery/components/passList/index.d.ts +1 -0
  149. package/lib/plus/walletPassGallery/components/passList/index.js +16 -4
  150. package/lib/plus/walletPassGallery/index.js +154 -27
  151. package/lib/plus/walletPassGallery/index.less +1 -1
  152. package/lib/plus/walletPassGallery/locales.d.ts +15 -0
  153. package/lib/plus/walletPassGallery/locales.js +32 -5
  154. package/lib/plus/walletPassGallery/serve.d.ts +15 -1
  155. package/lib/plus/walletPassGallery/serve.js +17 -5
  156. package/lib/plus/walletPassGallery/utils.d.ts +48 -0
  157. package/lib/plus/walletPassGallery/utils.js +287 -0
  158. package/lib/pro/Selector/Selector.d.ts +1 -1
  159. package/lowcode/event-select-holder/meta.ts +2 -2
  160. package/lowcode/select-holder/meta.ts +220 -0
  161. package/lowcode/select-holder/snippets.ts +41 -0
  162. package/package.json +4 -4
  163. package/es/components/wallet/Detail/index.d.ts +0 -42
  164. package/es/components/wallet/Detail/index.js +0 -1182
  165. package/es/components/wallet/Detail/index.less +0 -386
  166. package/es/components/wallet/Detail/locales.d.ts +0 -153
  167. package/es/components/wallet/Detail/locales.js +0 -170
  168. package/es/components/wallet/Detail/model.d.ts +0 -13
  169. package/es/components/wallet/Detail/model.js +0 -22
  170. package/es/components/wallet/Detail/serve.d.ts +0 -39
  171. package/es/components/wallet/Detail/serve.js +0 -64
  172. package/es/components/wallet/DetailContext.d.ts +0 -25
  173. package/es/components/wallet/DetailContext.js +0 -162
  174. package/es/components/wallet/DiscountCard/index.d.ts +0 -3
  175. package/es/components/wallet/DiscountCard/index.js +0 -218
  176. package/es/components/wallet/DiscountCard/index.less +0 -9
  177. package/es/components/wallet/DiscountCard/model.d.ts +0 -14
  178. package/es/components/wallet/DiscountCard/model.js +0 -22
  179. package/es/components/wallet/PointCard/index.d.ts +0 -3
  180. package/es/components/wallet/PointCard/index.js +0 -169
  181. package/es/components/wallet/PointCard/index.less +0 -9
  182. package/es/components/wallet/PointCard/model.d.ts +0 -13
  183. package/es/components/wallet/PointCard/model.js +0 -22
  184. package/es/components/wallet/RechargeableCard/index.d.ts +0 -13
  185. package/es/components/wallet/RechargeableCard/index.js +0 -463
  186. package/es/components/wallet/RechargeableCard/index.less +0 -108
  187. package/es/components/wallet/RechargeableCard/model.d.ts +0 -29
  188. package/es/components/wallet/RechargeableCard/model.js +0 -28
  189. package/es/components/wallet/RechargeableCard/serve.d.ts +0 -23
  190. package/es/components/wallet/RechargeableCard/serve.js +0 -32
  191. package/es/components/wallet/Voucher/index.d.ts +0 -12
  192. package/es/components/wallet/Voucher/index.js +0 -131
  193. package/es/components/wallet/Voucher/index.less +0 -9
  194. package/es/components/wallet/Voucher/locales.d.ts +0 -21
  195. package/es/components/wallet/Voucher/locales.js +0 -20
  196. package/es/components/wallet/Voucher/model.d.ts +0 -13
  197. package/es/components/wallet/Voucher/model.js +0 -22
  198. package/es/components/wallet/carouselArrow.png +0 -0
  199. package/es/components/wallet/components/FooterButtons/index.d.ts +0 -18
  200. package/es/components/wallet/components/FooterButtons/index.js +0 -81
  201. package/es/components/wallet/components/FooterButtons/index.less +0 -91
  202. package/es/components/wallet/components/UsageRules/index.d.ts +0 -23
  203. package/es/components/wallet/components/UsageRules/index.js +0 -147
  204. package/es/components/wallet/components/UsageRules/index.less +0 -157
  205. package/es/components/wallet/components/WalletBar/index.d.ts +0 -8
  206. package/es/components/wallet/components/WalletBar/index.js +0 -19
  207. package/es/components/wallet/components/WalletBar/index.less +0 -36
  208. package/es/components/wallet/components/WalletCard.d.ts +0 -11
  209. package/es/components/wallet/components/WalletCard.js +0 -91
  210. package/es/components/wallet/components/index.d.ts +0 -3
  211. package/es/components/wallet/components/index.js +0 -4
  212. package/es/components/wallet/hooks/useWalletCard.d.ts +0 -33
  213. package/es/components/wallet/hooks/useWalletCard.js +0 -147
  214. package/es/components/wallet/index.d.ts +0 -10
  215. package/es/components/wallet/index.js +0 -807
  216. package/es/components/wallet/index.less +0 -151
  217. package/es/components/wallet/locales.d.ts +0 -132
  218. package/es/components/wallet/locales.js +0 -139
  219. package/es/components/wallet/model.d.ts +0 -37
  220. package/es/components/wallet/model.js +0 -86
  221. package/es/components/wallet/serve.d.ts +0 -150
  222. package/es/components/wallet/serve.js +0 -205
  223. package/es/components/wallet/utils/formatUtils.d.ts +0 -36
  224. package/es/components/wallet/utils/formatUtils.js +0 -73
  225. package/lib/components/wallet/Detail/index.d.ts +0 -42
  226. package/lib/components/wallet/Detail/index.js +0 -874
  227. package/lib/components/wallet/Detail/index.less +0 -386
  228. package/lib/components/wallet/Detail/locales.d.ts +0 -153
  229. package/lib/components/wallet/Detail/locales.js +0 -194
  230. package/lib/components/wallet/Detail/model.d.ts +0 -13
  231. package/lib/components/wallet/Detail/model.js +0 -43
  232. package/lib/components/wallet/Detail/serve.d.ts +0 -39
  233. package/lib/components/wallet/Detail/serve.js +0 -44
  234. package/lib/components/wallet/DetailContext.d.ts +0 -25
  235. package/lib/components/wallet/DetailContext.js +0 -118
  236. package/lib/components/wallet/DiscountCard/index.d.ts +0 -3
  237. package/lib/components/wallet/DiscountCard/index.js +0 -209
  238. package/lib/components/wallet/DiscountCard/index.less +0 -9
  239. package/lib/components/wallet/DiscountCard/model.d.ts +0 -14
  240. package/lib/components/wallet/DiscountCard/model.js +0 -43
  241. package/lib/components/wallet/PointCard/index.d.ts +0 -3
  242. package/lib/components/wallet/PointCard/index.js +0 -190
  243. package/lib/components/wallet/PointCard/index.less +0 -9
  244. package/lib/components/wallet/PointCard/model.d.ts +0 -13
  245. package/lib/components/wallet/RechargeableCard/index.d.ts +0 -13
  246. package/lib/components/wallet/RechargeableCard/index.js +0 -380
  247. package/lib/components/wallet/RechargeableCard/index.less +0 -108
  248. package/lib/components/wallet/RechargeableCard/model.d.ts +0 -29
  249. package/lib/components/wallet/RechargeableCard/model.js +0 -49
  250. package/lib/components/wallet/RechargeableCard/serve.d.ts +0 -23
  251. package/lib/components/wallet/Voucher/index.d.ts +0 -12
  252. package/lib/components/wallet/Voucher/index.js +0 -146
  253. package/lib/components/wallet/Voucher/index.less +0 -9
  254. package/lib/components/wallet/Voucher/locales.d.ts +0 -21
  255. package/lib/components/wallet/Voucher/model.d.ts +0 -13
  256. package/lib/components/wallet/Voucher/model.js +0 -43
  257. package/lib/components/wallet/carouselArrow.png +0 -0
  258. package/lib/components/wallet/components/FooterButtons/index.d.ts +0 -18
  259. package/lib/components/wallet/components/FooterButtons/index.js +0 -109
  260. package/lib/components/wallet/components/FooterButtons/index.less +0 -91
  261. package/lib/components/wallet/components/UsageRules/index.d.ts +0 -23
  262. package/lib/components/wallet/components/UsageRules/index.js +0 -113
  263. package/lib/components/wallet/components/UsageRules/index.less +0 -157
  264. package/lib/components/wallet/components/WalletBar/index.d.ts +0 -8
  265. package/lib/components/wallet/components/WalletBar/index.less +0 -36
  266. package/lib/components/wallet/components/WalletCard.d.ts +0 -11
  267. package/lib/components/wallet/components/WalletCard.js +0 -97
  268. package/lib/components/wallet/components/index.d.ts +0 -3
  269. package/lib/components/wallet/components/index.js +0 -45
  270. package/lib/components/wallet/hooks/useWalletCard.d.ts +0 -33
  271. package/lib/components/wallet/hooks/useWalletCard.js +0 -111
  272. package/lib/components/wallet/index.d.ts +0 -10
  273. package/lib/components/wallet/index.js +0 -580
  274. package/lib/components/wallet/index.less +0 -151
  275. package/lib/components/wallet/locales.d.ts +0 -132
  276. package/lib/components/wallet/locales.js +0 -163
  277. package/lib/components/wallet/model.d.ts +0 -37
  278. package/lib/components/wallet/model.js +0 -91
  279. package/lib/components/wallet/serve.d.ts +0 -150
  280. package/lib/components/wallet/serve.js +0 -85
  281. package/lib/components/wallet/utils/formatUtils.d.ts +0 -36
  282. package/lib/components/wallet/utils/formatUtils.js +0 -73
@@ -0,0 +1,43 @@
1
+ import React from 'react';
2
+ import { PisellCustomCheckboxGroup } from '@pisell/materials';
3
+ import HolderItem from "../HolderItem";
4
+ /**
5
+ * @title: HolderList 选项列表组件
6
+ * @description: 抽离的选项列表组件,可以在 Modal 外部独立使用
7
+ * @Author: WangHan
8
+ * @Date: 2025-01-XX
9
+ */
10
+ var HolderList = function HolderList(_ref) {
11
+ var _ref$dataSource = _ref.dataSource,
12
+ dataSource = _ref$dataSource === void 0 ? [] : _ref$dataSource,
13
+ _ref$selectedValues = _ref.selectedValues,
14
+ selectedValues = _ref$selectedValues === void 0 ? [] : _ref$selectedValues,
15
+ displayConfig = _ref.displayConfig,
16
+ renderAddItem = _ref.renderAddItem,
17
+ _ref$columns = _ref.columns,
18
+ columns = _ref$columns === void 0 ? 3 : _ref$columns,
19
+ _ref$horizontalGap = _ref.horizontalGap,
20
+ horizontalGap = _ref$horizontalGap === void 0 ? 16 : _ref$horizontalGap,
21
+ _ref$verticalGap = _ref.verticalGap,
22
+ verticalGap = _ref$verticalGap === void 0 ? 16 : _ref$verticalGap,
23
+ _ref$allowAdd = _ref.allowAdd,
24
+ allowAdd = _ref$allowAdd === void 0 ? true : _ref$allowAdd,
25
+ onClick = _ref.onClick;
26
+ return /*#__PURE__*/React.createElement(PisellCustomCheckboxGroup, {
27
+ dataSource: dataSource,
28
+ renderItem: function renderItem(item) {
29
+ return /*#__PURE__*/React.createElement(HolderItem, {
30
+ item: item,
31
+ displayConfig: displayConfig,
32
+ value: selectedValues
33
+ });
34
+ },
35
+ renderAddItem: renderAddItem,
36
+ columns: columns,
37
+ horizontalGap: horizontalGap,
38
+ verticalGap: verticalGap,
39
+ allowAdd: allowAdd,
40
+ onClick: onClick
41
+ });
42
+ };
43
+ export default HolderList;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { PisellSelectHolderProps } from './types';
3
+ import './index.less';
4
+ export declare const PREFIX = "pisell-lowcode-select-holder";
5
+ declare const PisellSelectHolder: React.FC<PisellSelectHolderProps>;
6
+ export default PisellSelectHolder;
7
+ export { default as HolderList } from './components/HolderList';
@@ -0,0 +1,236 @@
1
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
3
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
5
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
6
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
7
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
8
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
9
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
10
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
11
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12
+ import React, { useEffect, useState, useMemo, useCallback } from 'react';
13
+ import { PisellModal, Button } from '@pisell/materials';
14
+ import { isMobile, locales } from '@pisell/utils';
15
+ import ErrorTip from "./components/ErrorTip";
16
+ import HolderItem from "./components/HolderItem";
17
+ import HolderList from "./components/HolderList";
18
+ import useEngineContext from "../../hooks/useEngineContext";
19
+ import localeTexts from "./locales";
20
+ import "./index.less";
21
+
22
+ // 类名前缀
23
+ export var PREFIX = 'pisell-lowcode-select-holder';
24
+ var PisellSelectHolder = function PisellSelectHolder(_ref) {
25
+ var _context$engine;
26
+ var dataSource = _ref.dataSource,
27
+ _ref$open = _ref.open,
28
+ open = _ref$open === void 0 ? true : _ref$open,
29
+ onClose = _ref.onClose,
30
+ onConfirm = _ref.onConfirm,
31
+ onSkip = _ref.onSkip,
32
+ onAdd = _ref.onAdd,
33
+ value = _ref.value,
34
+ modalConfig = _ref.modalConfig,
35
+ displayConfig = _ref.displayConfig,
36
+ _ref$allowAdd = _ref.allowAdd,
37
+ allowAdd = _ref$allowAdd === void 0 ? true : _ref$allowAdd,
38
+ _ref$horizontalGap = _ref.horizontalGap,
39
+ horizontalGap = _ref$horizontalGap === void 0 ? 16 : _ref$horizontalGap,
40
+ _ref$verticalGap = _ref.verticalGap,
41
+ verticalGap = _ref$verticalGap === void 0 ? 16 : _ref$verticalGap,
42
+ _ref$maxSelectedCount = _ref.maxSelectedCount,
43
+ maxSelectedCount = _ref$maxSelectedCount === void 0 ? 2 : _ref$maxSelectedCount,
44
+ _ref$isInline = _ref.isInline,
45
+ isInline = _ref$isInline === void 0 ? false : _ref$isInline,
46
+ className = _ref.className,
47
+ style = _ref.style;
48
+ var _useState = useState(''),
49
+ _useState2 = _slicedToArray(_useState, 2),
50
+ errorTip = _useState2[0],
51
+ setErrorTip = _useState2[1];
52
+ var _useState3 = useState([]),
53
+ _useState4 = _slicedToArray(_useState3, 2),
54
+ selectedValues = _useState4[0],
55
+ setSelectedValues = _useState4[1];
56
+ var mobile = useMemo(function () {
57
+ return isMobile();
58
+ }, []);
59
+ var context = useEngineContext();
60
+ locales.init(localeTexts, (context === null || context === void 0 || (_context$engine = context.engine) === null || _context$engine === void 0 || (_context$engine = _context$engine.props) === null || _context$engine === void 0 ? void 0 : _context$engine.locale) || 'en');
61
+ useEffect(function () {
62
+ var _value = [];
63
+ if (Array.isArray(value)) {
64
+ _value = value;
65
+ } else {
66
+ _value = value ? [value] : [];
67
+ }
68
+ setSelectedValues(_value);
69
+ }, [value]);
70
+
71
+ /**
72
+ * @title: 处理确认按钮点击
73
+ * @description:
74
+ * @param {*} useCallback
75
+ * @return {*}
76
+ * @Author: WangHan
77
+ * @Date: 2025-10-10 21:32
78
+ */
79
+ var handleOk = useCallback(function () {
80
+ onConfirm === null || onConfirm === void 0 || onConfirm(selectedValues);
81
+ }, [selectedValues]);
82
+
83
+ /**
84
+ * @title: 处理选项点击
85
+ * @description:
86
+ * @return {*}
87
+ * @Author: WangHan
88
+ * @Date: 2025-10-10 21:28
89
+ */
90
+ var handleClick = useCallback(function (item) {
91
+ if (!(item !== null && item !== void 0 && item.value)) {
92
+ return onAdd === null || onAdd === void 0 ? void 0 : onAdd();
93
+ }
94
+ var selectType = (displayConfig === null || displayConfig === void 0 ? void 0 : displayConfig.selectType) || 'single';
95
+
96
+ // 单选模式:直接设置选中的值
97
+ if (selectType === 'single') {
98
+ setSelectedValues(function (prev) {
99
+ // 如果点击的是已选中的项,则取消选择(可选行为)
100
+ // 如果需要保持选中状态,可以改为:return [item.value];
101
+ return prev.includes(item.value) ? [] : [item.value];
102
+ });
103
+ } else {
104
+ // 多选模式:如果已选中,则移除,否则添加
105
+ setSelectedValues(function (prev) {
106
+ var newValues = prev.includes(item.value) ? prev.filter(function (v) {
107
+ return v !== item.value;
108
+ }) : [].concat(_toConsumableArray(prev), [item.value]);
109
+ return newValues;
110
+ });
111
+ }
112
+ }, [displayConfig === null || displayConfig === void 0 ? void 0 : displayConfig.selectType]);
113
+ var handleSkip = useCallback(function () {
114
+ onSkip === null || onSkip === void 0 || onSkip();
115
+ }, [onSkip]);
116
+
117
+ /**
118
+ * @title: 渲染添加项
119
+ * @description:
120
+ * @param {*} useCallback
121
+ * @return {*}
122
+ * @Author: WangHan
123
+ * @Date: 2025-10-11 14:20
124
+ */
125
+ var renderAddItem = useCallback(function () {
126
+ if (!allowAdd) return undefined;
127
+ return /*#__PURE__*/React.createElement(HolderItem, {
128
+ item: {
129
+ label: locales.getText('pisell-select-holder-create'),
130
+ value: null
131
+ },
132
+ isAddItem: true
133
+ });
134
+ }, [allowAdd]);
135
+
136
+ /**
137
+ * @title: 模态框样式类名
138
+ * @description:
139
+ * @param {*} useMemo
140
+ * @return {*}
141
+ * @Author: WangHan
142
+ * @Date: 2025-10-11 14:20
143
+ */
144
+ var modalClassName = useMemo(function () {
145
+ var classes = ["".concat(PREFIX, "-modal")];
146
+ if (mobile) {
147
+ classes.push("".concat(PREFIX, "-modal-mobile"));
148
+ }
149
+ return classes.join(' ');
150
+ }, [mobile]);
151
+ var okButtonProps = useMemo(function () {
152
+ // 多选模式,禁用按钮当已选数量大于最大可选数量
153
+ if ((displayConfig === null || displayConfig === void 0 ? void 0 : displayConfig.selectType) === 'multiple') {
154
+ return {
155
+ disabled: maxSelectedCount > (selectedValues === null || selectedValues === void 0 ? void 0 : selectedValues.length)
156
+ };
157
+ }
158
+ return {
159
+ disabled: !(selectedValues !== null && selectedValues !== void 0 && selectedValues.length)
160
+ };
161
+ }, [selectedValues, maxSelectedCount, displayConfig === null || displayConfig === void 0 ? void 0 : displayConfig.selectType]);
162
+
163
+ /**
164
+ * @title: 渲染底部按钮
165
+ * @description:
166
+ * @param {*} useMemo
167
+ * @return {*}
168
+ * @Author: WangHan
169
+ * @Date: 2025-10-10 21:51
170
+ */
171
+ var footerCom = useMemo(function () {
172
+ return /*#__PURE__*/React.createElement("div", {
173
+ className: "".concat(PREFIX, "-footer")
174
+ }, displayConfig !== null && displayConfig !== void 0 && displayConfig.isSkipable ? /*#__PURE__*/React.createElement(Button, {
175
+ onClick: handleSkip
176
+ }, locales.getText('pisell-select-holder-skip')) : null, /*#__PURE__*/React.createElement(Button, _extends({
177
+ onClick: handleOk
178
+ }, okButtonProps, {
179
+ type: "primary"
180
+ }), modalConfig === null || modalConfig === void 0 ? void 0 : modalConfig.confirmText));
181
+ }, [displayConfig === null || displayConfig === void 0 ? void 0 : displayConfig.isSkipable, modalConfig === null || modalConfig === void 0 ? void 0 : modalConfig.confirmText, okButtonProps]);
182
+
183
+ /**
184
+ * @description: 渲染内容
185
+ * @param {*} useMemo
186
+ * @return {*}
187
+ */
188
+ var renderContent = useMemo(function () {
189
+ return /*#__PURE__*/React.createElement(React.Fragment, null, mobile && modalConfig !== null && modalConfig !== void 0 && modalConfig.title ? /*#__PURE__*/React.createElement("div", {
190
+ className: "".concat(PREFIX, "-modal-title")
191
+ }, modalConfig === null || modalConfig === void 0 ? void 0 : modalConfig.title) : null, errorTip && /*#__PURE__*/React.createElement(ErrorTip, {
192
+ text: errorTip
193
+ }), (displayConfig === null || displayConfig === void 0 ? void 0 : displayConfig.selectType) === 'multiple' && maxSelectedCount ? /*#__PURE__*/React.createElement("div", {
194
+ className: "".concat(PREFIX, "-selected-info ").concat(selectedValues.length === maxSelectedCount ? "".concat(PREFIX, "-selected-info-max") : '')
195
+ }, locales.getText('pisell-select-holder-selected'), selectedValues.length, "/", maxSelectedCount) : null, /*#__PURE__*/React.createElement(HolderList, {
196
+ dataSource: dataSource,
197
+ selectedValues: selectedValues,
198
+ displayConfig: displayConfig,
199
+ renderAddItem: renderAddItem,
200
+ columns: mobile ? 2 : 3,
201
+ horizontalGap: horizontalGap,
202
+ verticalGap: verticalGap,
203
+ allowAdd: allowAdd,
204
+ onClick: handleClick
205
+ }));
206
+ }, [isInline, modalConfig, dataSource, errorTip, maxSelectedCount, selectedValues, displayConfig, renderAddItem, mobile, horizontalGap, verticalGap, allowAdd, handleClick]);
207
+
208
+ // 直接页面上显示
209
+ if (isInline) {
210
+ return /*#__PURE__*/React.createElement("div", {
211
+ className: "".concat(PREFIX, "-inline-wrap ").concat(className),
212
+ style: style
213
+ }, renderContent);
214
+ }
215
+
216
+ // 弹窗打开
217
+ return /*#__PURE__*/React.createElement(PisellModal, {
218
+ open: open,
219
+ title: mobile ? '' : modalConfig === null || modalConfig === void 0 ? void 0 : modalConfig.title,
220
+ platform: mobile ? 'h5' : 'pc',
221
+ closable: modalConfig === null || modalConfig === void 0 ? void 0 : modalConfig.showClose,
222
+ bodyStyle: {
223
+ padding: mobile ? '0 16px 16px' : 20
224
+ },
225
+ mobileModalHeight: "auto",
226
+ destroyOnClose: true,
227
+ className: modalClassName,
228
+ headerDivider: false,
229
+ width: mobile ? '100%' : '640px',
230
+ footer: footerCom,
231
+ onCancel: onClose
232
+ }, renderContent);
233
+ };
234
+ export default PisellSelectHolder;
235
+ // 导出 HolderList 组件供外部使用
236
+ export { default as HolderList } from "./components/HolderList";
@@ -0,0 +1,117 @@
1
+ .pisell-lowcode-select-holder {
2
+ &-modal {
3
+ .pisell-view-grid-item {
4
+ > div {
5
+ height: 100%;
6
+ .pisell-lowcode-card {
7
+ height: 100% !important;
8
+ }
9
+ }
10
+ }
11
+ }
12
+
13
+ &-modal-title {
14
+ color: var(--Gray-900, #101828);
15
+ font-size: 18px;
16
+ font-weight: 600;
17
+ line-height: 28px;
18
+ margin-bottom: 16px;
19
+ }
20
+
21
+ &-selected-info {
22
+ margin-bottom: 16px;
23
+ color: #d92d20;
24
+ font-size: 14px;
25
+ font-weight: 600;
26
+ line-height: 20px;
27
+ }
28
+
29
+ &-selected-info-max {
30
+ color: #7f56d9;
31
+ }
32
+
33
+ &-modal-mobile {
34
+ .pisell-lowcode-modal-header {
35
+ border: none !important;
36
+ }
37
+ }
38
+
39
+ &-footer {
40
+ display: flex;
41
+ gap: 12px;
42
+ width: 100%;
43
+ button {
44
+ flex: 1;
45
+ height: 40px;
46
+ }
47
+ }
48
+ }
49
+
50
+ .pisell-lowcode-select-holder-modal {
51
+ .pisell-view-grid-item {
52
+ > div {
53
+ height: 100%;
54
+ .pisell-lowcode-card {
55
+ height: 100% !important;
56
+ }
57
+ }
58
+ }
59
+
60
+ .pisell-lowcode-select-holder-modal-title {
61
+ color: var(--Gray-900, #101828);
62
+ font-size: 18px;
63
+ font-weight: 600;
64
+ line-height: 28px;
65
+ margin-bottom: 16px;
66
+ }
67
+
68
+ .pisell-lowcode-select-holder-selected-info {
69
+ margin-bottom: 16px;
70
+ color: #d92d20;
71
+ font-size: 14px;
72
+ font-weight: 600;
73
+ line-height: 20px;
74
+ }
75
+
76
+ .pisell-lowcode-select-holder-selected-info-max {
77
+ color: #7f56d9;
78
+ }
79
+
80
+ .pisell-lowcode-select-holder-add-card {
81
+ .pisell-lowcode-avatar {
82
+ background: var(--Primary-100, #f4ebff);
83
+ .pisell-lowcode-avatar-string {
84
+ line-height: 32px !important;
85
+ width: 32px;
86
+ height: 32px;
87
+ }
88
+
89
+ .anticon {
90
+ font-size: 32px !important;
91
+ }
92
+ }
93
+
94
+ .select-holder-name {
95
+ color: var(--Text-Text_1, #1b1b1b);
96
+ font-size: 14px;
97
+ font-weight: 600;
98
+ line-height: 20px;
99
+ }
100
+ }
101
+ }
102
+
103
+ // .pisell-lowcode-select-holder-footer {
104
+ // display: flex;
105
+ // gap: 12px;
106
+ // width: 100%;
107
+ // button {
108
+ // flex: 1;
109
+ // height: 40px;
110
+ // }
111
+ // }
112
+
113
+ // .pisell-lowcode-select-holder-modal-mobile {
114
+ // .pisell-lowcode-modal-header {
115
+ // border: none !important;
116
+ // }
117
+ // }
@@ -0,0 +1,21 @@
1
+ declare const _default: {
2
+ en: {
3
+ 'pisell-select-holder-create': string;
4
+ 'pisell-select-holder-please-select': string;
5
+ 'pisell-select-holder-selected': string;
6
+ 'pisell-select-holder-skip': string;
7
+ };
8
+ 'zh-CN': {
9
+ 'pisell-select-holder-create': string;
10
+ 'pisell-select-holder-please-select': string;
11
+ 'pisell-select-holder-selected': string;
12
+ 'pisell-select-holder-skip': string;
13
+ };
14
+ 'zh-TW': {
15
+ 'pisell-select-holder-create': string;
16
+ 'pisell-select-holder-please-select': string;
17
+ 'pisell-select-holder-selected': string;
18
+ 'pisell-select-holder-skip': string;
19
+ };
20
+ };
21
+ export default _default;
@@ -0,0 +1,20 @@
1
+ export default {
2
+ en: {
3
+ 'pisell-select-holder-create': 'Create',
4
+ 'pisell-select-holder-please-select': 'Please Select',
5
+ 'pisell-select-holder-selected': 'Selected: ',
6
+ 'pisell-select-holder-skip': 'Skip'
7
+ },
8
+ 'zh-CN': {
9
+ 'pisell-select-holder-create': '创建',
10
+ 'pisell-select-holder-please-select': '请选择',
11
+ 'pisell-select-holder-selected': '已选择:',
12
+ 'pisell-select-holder-skip': '跳过'
13
+ },
14
+ 'zh-TW': {
15
+ 'pisell-select-holder-create': '創建',
16
+ 'pisell-select-holder-please-select': '請選擇',
17
+ 'pisell-select-holder-selected': '已選擇:',
18
+ 'pisell-select-holder-skip': '跳過'
19
+ }
20
+ };
@@ -0,0 +1,104 @@
1
+ /// <reference types="react" />
2
+ /**
3
+ * @title: 选项数据类型
4
+ * @description:
5
+ * @return {*}
6
+ * @Author: WangHan
7
+ * @Date: 2025-10-11 14:18
8
+ */
9
+ export interface HolderOption {
10
+ /** 显示的标签文本 */
11
+ label: string;
12
+ /** 选项的值(唯一标识) */
13
+ value: any;
14
+ /** 头像地址 */
15
+ avatar?: string;
16
+ /** 副标题/描述 */
17
+ subtitle?: string;
18
+ /** 其他字段 */
19
+ [key: string]: any;
20
+ }
21
+ /**
22
+ * @title: 模态框配置
23
+ * @description:
24
+ * @return {*}
25
+ * @Author: WangHan
26
+ * @Date: 2025-10-10 14:32
27
+ */
28
+ export interface HolderModalProps {
29
+ title?: string;
30
+ confirmText?: string;
31
+ showClose?: boolean;
32
+ }
33
+ /**
34
+ * @title: 字段展示配置
35
+ * @description:
36
+ * @return {*}
37
+ * @Author: WangHan
38
+ * @Date: 2025-10-10 14:32
39
+ */
40
+ export interface HolderDisplayProps {
41
+ showAvatar?: boolean;
42
+ showTitle?: boolean;
43
+ showSubtitle?: boolean;
44
+ isSkipable?: boolean;
45
+ direction?: 'horizontal' | 'vertical';
46
+ selectType?: 'single' | 'multiple';
47
+ showExtraFields?: boolean;
48
+ extraFields?: any[];
49
+ }
50
+ /**
51
+ * @title: SelectHolder 组件属性
52
+ * @description:
53
+ * @return {*}
54
+ * @Author: WangHan
55
+ * @Date: 2025-10-11 14:18
56
+ */
57
+ export interface PisellSelectHolderProps {
58
+ /** 选项列表 */
59
+ dataSource?: HolderOption[];
60
+ /** 是否打开模态框 */
61
+ open?: boolean;
62
+ /** 关闭事件(右上角 X 按钮) */
63
+ onClose?: () => void;
64
+ /** 确认事件,返回选中的值 */
65
+ onConfirm?: (selected: any) => void;
66
+ /** 跳过事件(底部跳过按钮) */
67
+ onSkip?: () => void;
68
+ /** 点击添加按钮事件 */
69
+ onAdd?: () => void;
70
+ /** 当前选中的值(单选) 或 选中的值数组(多选) */
71
+ value?: any;
72
+ modalConfig?: HolderModalProps;
73
+ displayConfig?: HolderDisplayProps;
74
+ /** 是否禁用确认按钮 */
75
+ disabled?: boolean;
76
+ /** 错误提示文案 */
77
+ errorTipText?: string;
78
+ /** 是否显示添加按钮 */
79
+ allowAdd?: boolean;
80
+ /** 添加按钮文案 */
81
+ addText?: string;
82
+ /** 每行显示的列数 */
83
+ columns?: number;
84
+ /** 水平间距 */
85
+ horizontalGap?: number;
86
+ /** 垂直间距 */
87
+ verticalGap?: number;
88
+ /** 最大可选数量 */
89
+ maxSelectedCount?: number;
90
+ /** 是否内联模式(不显示弹窗,直接渲染内容,用于页面级别) */
91
+ isInline?: boolean;
92
+ /** 内联模式的容器样式类名 */
93
+ className?: string;
94
+ /** 内联模式的容器样式 */
95
+ style?: React.CSSProperties;
96
+ }
97
+ export interface HolderItemProps {
98
+ item: HolderOption;
99
+ displayDirection?: 'horizontal' | 'vertical';
100
+ displayConfig?: HolderDisplayProps;
101
+ onClick?: (value?: any) => void;
102
+ value?: any;
103
+ isAddItem?: boolean;
104
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @title: 获取头像文本
3
+ * @description: 获取头像文本(标签的首字母,最多两个单词)
4
+ * @param {string} label
5
+ * @return {*}
6
+ * @Author: WangHan
7
+ * @Date: 2025-10-11 13:46
8
+ */
9
+ export declare const getAvatarText: (label: string) => string;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @title: 获取头像文本
3
+ * @description: 获取头像文本(标签的首字母,最多两个单词)
4
+ * @param {string} label
5
+ * @return {*}
6
+ * @Author: WangHan
7
+ * @Date: 2025-10-11 13:46
8
+ */
9
+ export var getAvatarText = function getAvatarText(label) {
10
+ if (!label) return '';
11
+ var words = label.trim().split(/\s+/);
12
+ var initials = words.slice(0, 2).map(function (word) {
13
+ return word.charAt(0).toUpperCase();
14
+ }).join('');
15
+ return initials;
16
+ };
@@ -13,7 +13,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
13
13
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
14
14
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
15
15
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
16
- import React, { useCallback, useMemo, useState, useEffect, forwardRef, useImperativeHandle } from 'react';
16
+ import React, { useCallback, useMemo, useState, useEffect, useRef, forwardRef, useImperativeHandle } from 'react';
17
17
  import { locales } from '@pisell/utils';
18
18
  import { Radio, Form, InputNumber } from 'antd';
19
19
  import { Icon, PisellModal, WalletCard, Translation } from '@pisell/materials';
@@ -25,6 +25,7 @@ import SortableWalletPassTypes, { DEFAULT_WALLET_PASS_TYPES_CONFIG } from "./com
25
25
  import ValidityPeriodSelector from "./components/ValidityPeriodSelector";
26
26
  import RelationProduct from "./components/relationProduct";
27
27
  import "./WalletEditor.less";
28
+ import useComponents from "../../hooks/useComponents";
28
29
  var WalletEditor = /*#__PURE__*/forwardRef(function (props, ref) {
29
30
  var _context$appHelper$ut, _context$appHelper$ut2, _context$appHelper$ut3, _context$appHelper$ut4, _context$appHelper$ut5, _context$appHelper$ut6, _store$global;
30
31
  var value = props.value,
@@ -52,6 +53,12 @@ var WalletEditor = /*#__PURE__*/forwardRef(function (props, ref) {
52
53
  _Form$useForm2 = _slicedToArray(_Form$useForm, 1),
53
54
  form = _Form$useForm2[0];
54
55
  var isControlled = value !== undefined;
56
+ var _useComponents = useComponents({
57
+ components: ['HolderSelector']
58
+ }),
59
+ _useComponents2 = _slicedToArray(_useComponents, 1),
60
+ HolderSelector = _useComponents2[0];
61
+ var holderSelectorRef = useRef(null);
55
62
 
56
63
  // 默认值
57
64
  var defaultValue = useMemo(function () {
@@ -63,6 +70,9 @@ var WalletEditor = /*#__PURE__*/forwardRef(function (props, ref) {
63
70
  type: 'normal'
64
71
  },
65
72
  metadata: {
73
+ holder: {
74
+ type: 'customer'
75
+ },
66
76
  showcaseWalletPassNew: DEFAULT_WALLET_PASS_TYPES_CONFIG.map(function (item) {
67
77
  return _objectSpread(_objectSpread({}, item), {}, {
68
78
  display: 1
@@ -200,7 +210,55 @@ var WalletEditor = /*#__PURE__*/forwardRef(function (props, ref) {
200
210
  label: locales.getText('linkedPasses'),
201
211
  name: "relation_id",
202
212
  initialValue: []
203
- }, /*#__PURE__*/React.createElement(RelationProduct, null)), /*#__PURE__*/React.createElement(Form.Item, {
213
+ }, /*#__PURE__*/React.createElement(RelationProduct, null)), HolderSelector && /*#__PURE__*/React.createElement(Form.Item, {
214
+ label: locales.getText('pisell2.wallet-editor.holder'),
215
+ name: ['metadata', 'holder'],
216
+ initialValue: {
217
+ type: 'customer'
218
+ },
219
+ rules: [{
220
+ validator: function () {
221
+ var _validator2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_, value) {
222
+ var _value$custom, _holderSelectorRef$cu, _holderSelectorRef$cu2, options;
223
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
224
+ while (1) switch (_context2.prev = _context2.next) {
225
+ case 0:
226
+ if (!((value === null || value === void 0 ? void 0 : value.type) === 'custom')) {
227
+ _context2.next = 6;
228
+ break;
229
+ }
230
+ if (value !== null && value !== void 0 && (_value$custom = value.custom) !== null && _value$custom !== void 0 && _value$custom.custom_id) {
231
+ _context2.next = 3;
232
+ break;
233
+ }
234
+ return _context2.abrupt("return", Promise.reject(new Error(locales.getText('pisell2.wallet-editor.holder.required'))));
235
+ case 3:
236
+ options = ((_holderSelectorRef$cu = holderSelectorRef.current) === null || _holderSelectorRef$cu === void 0 || (_holderSelectorRef$cu2 = _holderSelectorRef$cu.getOptions) === null || _holderSelectorRef$cu2 === void 0 ? void 0 : _holderSelectorRef$cu2.call(_holderSelectorRef$cu)) || [];
237
+ if (options !== null && options !== void 0 && options.find(function (item) {
238
+ var _value$custom2;
239
+ return item.value === (value === null || value === void 0 || (_value$custom2 = value.custom) === null || _value$custom2 === void 0 ? void 0 : _value$custom2.custom_id);
240
+ })) {
241
+ _context2.next = 6;
242
+ break;
243
+ }
244
+ return _context2.abrupt("return", Promise.reject(new Error(locales.getText('pisell2.wallet-editor.holder.invalid'))));
245
+ case 6:
246
+ return _context2.abrupt("return", Promise.resolve());
247
+ case 7:
248
+ case "end":
249
+ return _context2.stop();
250
+ }
251
+ }, _callee2);
252
+ }));
253
+ function validator(_x3, _x4) {
254
+ return _validator2.apply(this, arguments);
255
+ }
256
+ return validator;
257
+ }()
258
+ }]
259
+ }, /*#__PURE__*/React.createElement(HolderSelector, {
260
+ ref: holderSelectorRef
261
+ })), /*#__PURE__*/React.createElement(Form.Item, {
204
262
  label: locales.getText('sort'),
205
263
  name: "sort"
206
264
  }, /*#__PURE__*/React.createElement(InputNumber, {