@pisell/private-materials 6.8.84 → 6.8.85

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 (295) 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 +150 -164
  7. package/build/lowcode/render/default/view.css +1 -1
  8. package/build/lowcode/render/default/view.js +11 -11
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +11 -11
  11. package/es/components/authentication/admin/ChannelAuthSetting/SaaSManagermentAuth/index.d.ts +6 -0
  12. package/es/components/booking/addons/model.d.ts +10 -1
  13. package/es/components/booking/components/footer/index.d.ts +0 -1
  14. package/es/components/booking/dashboard/serve.d.ts +1 -0
  15. package/es/components/booking/forms/model.d.ts +10 -1
  16. package/es/components/booking/forms/sendModal/useSendModal.d.ts +1 -1
  17. package/es/components/booking/forms/serve.d.ts +18 -0
  18. package/es/components/booking/info/client/serve.d.ts +2 -0
  19. package/es/components/booking/info/hooks/useInfoHolder.d.ts +11 -0
  20. package/es/components/booking/info/model.d.ts +10 -1
  21. package/es/components/booking/info/pet/serve.d.ts +1 -0
  22. package/es/components/booking/info/service/Lists.d.ts +3 -0
  23. package/es/components/booking/info/service/addService/utils.d.ts +1 -1
  24. package/es/components/booking/info/service/addTimeModal/serve.d.ts +5 -0
  25. package/es/components/booking/info/service/serve.d.ts +34 -0
  26. package/es/components/booking/info/service/serviceManager/index.d.ts +20 -0
  27. package/es/components/booking/info/service2/utils.d.ts +219 -0
  28. package/es/components/booking/info2/serve.d.ts +6 -0
  29. package/es/components/booking/info2/service/addService/utils.d.ts +106 -0
  30. package/es/components/booking/info2/service/editNormalService/index.d.ts +3 -0
  31. package/es/components/booking/info2/service/editService/utils.d.ts +28 -0
  32. package/es/components/booking/info2/service/openNormalService.d.ts +34 -0
  33. package/es/components/booking/info2/utilsByBooking.d.ts +36 -0
  34. package/es/components/booking/model.d.ts +121 -0
  35. package/es/components/booking/notes/model.d.ts +10 -1
  36. package/es/components/booking/payments/model.d.ts +10 -1
  37. package/es/components/booking/utils.d.ts +182 -0
  38. package/es/components/checkout/components/CashPaymentModule/index.d.ts +26 -0
  39. package/es/components/checkout/components/PaymentDetailModal/index.d.ts +38 -0
  40. package/es/components/checkout/components/PaymentResultToast/PaymentResultToastProvider.d.ts +85 -0
  41. package/es/components/checkout/components/ScrollableList/index.d.ts +5 -0
  42. package/es/components/checkout/hooks/useWalletPass.d.ts +1 -1
  43. package/es/components/checkout/utils/PaymentResultToastUtils.d.ts +32 -0
  44. package/es/components/eftposPay/amount.d.ts +2 -1
  45. package/es/components/eftposPay/app.d.ts +2 -1
  46. package/es/components/eftposPay/component/fail/failCustom.d.ts +1 -0
  47. package/es/components/eftposPay/component/fail/index.d.ts +1 -0
  48. package/es/components/eftposPay/component/fail/network.d.ts +1 -0
  49. package/es/components/eftposPay/component/fail/unknow.d.ts +1 -0
  50. package/es/components/eftposPay/component/manual/index.d.ts +1 -0
  51. package/es/components/eftposPay/component/signature/index.d.ts +1 -0
  52. package/es/components/eftposPay/component/step/index.d.ts +1 -0
  53. package/es/components/eftposPay/device.d.ts +1 -1
  54. package/es/components/eftposPay/hooks.d.ts +1 -1
  55. package/es/components/eftposPay/index.d.ts +1 -0
  56. package/es/components/eftposPay/linkly/index.d.ts +1 -0
  57. package/es/components/eftposPay/pay.d.ts +1 -0
  58. package/es/components/eftposPay/payo/config.d.ts +1 -0
  59. package/es/components/eftposPay/store/index.d.ts +5 -5
  60. package/es/components/eftposPay/tip.d.ts +1 -0
  61. package/es/components/eftposPay/windcave/receiptAction.d.ts +1 -0
  62. package/es/components/eftposPay/windcave/windcave.d.ts +1 -0
  63. package/es/components/eventBooking/components/Provider/Content/index.d.ts +1 -0
  64. package/es/components/eventBooking/index.d.ts +1 -0
  65. package/es/components/list/types.d.ts +178 -0
  66. package/es/components/list/utils/index.d.ts +19 -0
  67. package/es/components/pay/toB/components/Cache/index.d.ts +0 -1
  68. package/es/components/pay/toB/components/CardGroup/index.d.ts +1 -0
  69. package/es/components/pay/toC/model.d.ts +9 -1
  70. package/es/components/pisellSelectCustomerModal/RightPanel/serve.d.ts +3 -0
  71. package/es/components/schedules/model.d.ts +9 -1
  72. package/es/components/shoppingCart/components/Cart/Product.js +1 -1
  73. package/es/components/ticketBooking/components/ProductDisplayAdapter/types.d.ts +115 -0
  74. package/es/components/ticketBooking/components/ProductDisplayAdapter/utils.d.ts +84 -0
  75. package/es/components/ticketBooking/components/addServiceVariant/index.d.ts +11 -0
  76. package/es/components/ticketBooking/components/addServiceVariant/utils.d.ts +9 -0
  77. package/es/components/ticketBooking/components/ticketBooking/index.d.ts +0 -1
  78. package/es/components/ticketBooking/context/OsKeyContext.d.ts +26 -0
  79. package/es/components/ticketBooking/context/index.d.ts +2 -0
  80. package/es/components/ticketBooking/hooks/pisellos/useCustomer.d.ts +25 -0
  81. package/es/components/ticketBooking/hooks/pisellos/useProducts.d.ts +16 -0
  82. package/es/components/ticketBooking/locales.d.ts +201 -0
  83. package/es/components/ticketBooking/serve.d.ts +288 -0
  84. package/es/components/ticketBooking/utils/index.d.ts +101 -0
  85. package/es/hooks/printer.d.ts +4 -0
  86. package/es/hooks/useEngineContext.d.ts +4 -0
  87. package/es/plus/productSelect/CategoryTabs/index.d.ts +21 -0
  88. package/es/plus/productSelect/ProductCard/SkuCard/SkuCardA1/index.d.ts +1 -0
  89. package/es/plus/productSelect/ProductCard/SkuCard/SkuCardA2/index.d.ts +1 -0
  90. package/es/plus/productSelect/ProductCard/SkuCard/SkuCardA5/index.d.ts +1 -0
  91. package/es/plus/productSelect/ProductCard/SkuCard/SkuCardA9/index.d.ts +1 -0
  92. package/es/plus/productSelect/ProductCard/SkuCard/SkuCardCustom/index.d.ts +1 -0
  93. package/es/plus/productSelect/ProductCard/SkuCard/components/CardCom/index.d.ts +1 -0
  94. package/es/plus/productSelect/ProductCard/SkuCard/components/MemberPrice/index.d.ts +1 -1
  95. package/es/plus/productSelect/ProductCard/SkuCard/components/Price/index.d.ts +7 -0
  96. package/es/plus/productSelect/ProductCard/SkuCard/index.d.ts +1 -0
  97. package/es/plus/productSelect/ProductCard/index.d.ts +47 -0
  98. package/es/plus/productSelect/ProductList/gridComponents.d.ts +46 -0
  99. package/es/plus/productSelect/components/TabsStructure/TabsStructure.d.ts +30 -0
  100. package/es/plus/skuOptionsSelection/components/NormalCard/index.d.ts +6 -0
  101. package/es/plus/skuOptionsSelection/components/TitleExtra/index.d.ts +4 -0
  102. package/es/plus/skuOptionsSelection/components/VariantCard/index.d.ts +1 -0
  103. package/es/plus/skuOptionsSelection/hooks/index.d.ts +3 -0
  104. package/es/plus/skuOptionsSelection/hooks/useLanguage.d.ts +2 -0
  105. package/es/plus/skuOptionsSelection/hooks/useStore.d.ts +2 -0
  106. package/es/plus/skuOptionsSelection/hooks/useSymbol.d.ts +2 -0
  107. package/es/plus/skuOptionsSelection/store/actions.d.ts +22 -0
  108. package/es/plus/skuOptionsSelection/store/createStore.d.ts +15 -0
  109. package/es/plus/skuOptionsSelection/store/index.d.ts +2 -0
  110. package/es/plus/skuOptionsSelection/store/store.d.ts +4 -0
  111. package/es/plus/skuOptionsSelection/types.d.ts +431 -0
  112. package/es/plus/skuOptionsSelection/utils/calculateOption.d.ts +6 -0
  113. package/es/plus/skuOptionsSelection/utils/checkSkuStatus.d.ts +37 -0
  114. package/es/plus/skuOptionsSelection/utils/index.d.ts +7 -0
  115. package/es/plus/skuOptionsSelection/utils/transformBundleGroup.d.ts +19 -0
  116. package/es/plus/skuOptionsSelection/utils/transformOptionGroup.d.ts +1 -0
  117. package/es/plus/skuOptionsSelection/utils/transformSelectorValueToValue.d.ts +4 -0
  118. package/es/plus/skuOptionsSelection/utils/transformValueToSelectorValue.d.ts +4 -0
  119. package/es/plus/skuOptionsSelection/utils/transformVariantGroup.d.ts +1 -0
  120. package/es/plus/webPosLogin/WebPosLoginCpt.d.ts +9 -0
  121. package/es/plus/webPosLogin/components/BrandPanel/index.d.ts +9 -0
  122. package/es/plus/webPosLogin/components/LoginPanel/index.d.ts +21 -0
  123. package/es/plus/webPosLogin/components/MediaDisplay/type.d.ts +54 -0
  124. package/es/plus/webPosLogin/index.d.ts +12 -0
  125. package/es/plus/webPosLogin/locales.d.ts +49 -0
  126. package/es/plus/webPosLogin/types.d.ts +286 -0
  127. package/es/pro/Cards/index.d.ts +1 -0
  128. package/es/pro/Selector/BatchSelectorDemo.d.ts +3 -0
  129. package/es/pro/Selector/Item.d.ts +14 -0
  130. package/es/pro/Selector/Selector.d.ts +14 -0
  131. package/es/pro/Selector/Selector.stories.d.ts +78 -0
  132. package/es/pro/Selector/SelectorGroup.d.ts +11 -0
  133. package/es/pro/Selector/components/Card/index.d.ts +57 -0
  134. package/es/pro/Selector/components/Card/types.d.ts +1 -0
  135. package/es/pro/Selector/components/Indicator/index.d.ts +20 -0
  136. package/es/pro/Selector/components/IntersectionObserver.d.ts +105 -0
  137. package/es/pro/Selector/components/LayoutContainer/index.d.ts +18 -0
  138. package/es/pro/Selector/components/Media/index.d.ts +6 -0
  139. package/es/pro/Selector/components/Media/types.d.ts +47 -0
  140. package/es/pro/Selector/components/index.d.ts +4 -0
  141. package/es/pro/Selector/demo.d.ts +3 -0
  142. package/es/pro/Selector/hooks/usePresetItemProps.d.ts +43 -0
  143. package/es/pro/Selector/hooks/usePresetProps.d.ts +24 -0
  144. package/es/pro/Selector/hooks/useSelectionController.d.ts +49 -0
  145. package/es/pro/Selector/index.d.ts +11 -0
  146. package/es/pro/Selector/locales.d.ts +36 -0
  147. package/es/pro/Selector/types.d.ts +212 -0
  148. package/es/pro/Selector/utils/index.d.ts +49 -0
  149. package/es/pro/skuDetailModal/locales.d.ts +103 -0
  150. package/es/pro/skuDetailModal/types.d.ts +354 -0
  151. package/es/pro/skuDetailModal/utils.d.ts +4 -0
  152. package/es/test/setup.d.ts +1 -0
  153. package/lib/components/authentication/admin/ChannelAuthSetting/SaaSManagermentAuth/index.d.ts +6 -0
  154. package/lib/components/booking/addons/model.d.ts +10 -1
  155. package/lib/components/booking/components/footer/index.d.ts +0 -1
  156. package/lib/components/booking/dashboard/serve.d.ts +1 -0
  157. package/lib/components/booking/forms/model.d.ts +10 -1
  158. package/lib/components/booking/forms/sendModal/useSendModal.d.ts +1 -1
  159. package/lib/components/booking/forms/serve.d.ts +18 -0
  160. package/lib/components/booking/info/client/serve.d.ts +2 -0
  161. package/lib/components/booking/info/hooks/useInfoHolder.d.ts +11 -0
  162. package/lib/components/booking/info/model.d.ts +10 -1
  163. package/lib/components/booking/info/pet/serve.d.ts +1 -0
  164. package/lib/components/booking/info/service/Lists.d.ts +3 -0
  165. package/lib/components/booking/info/service/addService/utils.d.ts +1 -1
  166. package/lib/components/booking/info/service/addTimeModal/serve.d.ts +5 -0
  167. package/lib/components/booking/info/service/serve.d.ts +34 -0
  168. package/lib/components/booking/info/service/serviceManager/index.d.ts +20 -0
  169. package/lib/components/booking/info/service2/utils.d.ts +219 -0
  170. package/lib/components/booking/info2/serve.d.ts +6 -0
  171. package/lib/components/booking/info2/service/addService/utils.d.ts +106 -0
  172. package/lib/components/booking/info2/service/editNormalService/index.d.ts +3 -0
  173. package/lib/components/booking/info2/service/editService/utils.d.ts +28 -0
  174. package/lib/components/booking/info2/service/openNormalService.d.ts +34 -0
  175. package/lib/components/booking/info2/utilsByBooking.d.ts +36 -0
  176. package/lib/components/booking/model.d.ts +121 -0
  177. package/lib/components/booking/notes/model.d.ts +10 -1
  178. package/lib/components/booking/payments/model.d.ts +10 -1
  179. package/lib/components/booking/utils.d.ts +182 -0
  180. package/lib/components/checkout/components/CashPaymentModule/index.d.ts +26 -0
  181. package/lib/components/checkout/components/PaymentDetailModal/index.d.ts +38 -0
  182. package/lib/components/checkout/components/PaymentResultToast/PaymentResultToastProvider.d.ts +85 -0
  183. package/lib/components/checkout/components/ScrollableList/index.d.ts +5 -0
  184. package/lib/components/checkout/hooks/useWalletPass.d.ts +1 -1
  185. package/lib/components/checkout/utils/PaymentResultToastUtils.d.ts +32 -0
  186. package/lib/components/eftposPay/amount.d.ts +2 -1
  187. package/lib/components/eftposPay/app.d.ts +2 -1
  188. package/lib/components/eftposPay/component/fail/failCustom.d.ts +1 -0
  189. package/lib/components/eftposPay/component/fail/index.d.ts +1 -0
  190. package/lib/components/eftposPay/component/fail/network.d.ts +1 -0
  191. package/lib/components/eftposPay/component/fail/unknow.d.ts +1 -0
  192. package/lib/components/eftposPay/component/manual/index.d.ts +1 -0
  193. package/lib/components/eftposPay/component/signature/index.d.ts +1 -0
  194. package/lib/components/eftposPay/component/step/index.d.ts +1 -0
  195. package/lib/components/eftposPay/device.d.ts +1 -1
  196. package/lib/components/eftposPay/hooks.d.ts +1 -1
  197. package/lib/components/eftposPay/index.d.ts +1 -0
  198. package/lib/components/eftposPay/linkly/index.d.ts +1 -0
  199. package/lib/components/eftposPay/pay.d.ts +1 -0
  200. package/lib/components/eftposPay/payo/config.d.ts +1 -0
  201. package/lib/components/eftposPay/store/index.d.ts +5 -5
  202. package/lib/components/eftposPay/tip.d.ts +1 -0
  203. package/lib/components/eftposPay/windcave/receiptAction.d.ts +1 -0
  204. package/lib/components/eftposPay/windcave/windcave.d.ts +1 -0
  205. package/lib/components/eventBooking/components/Provider/Content/index.d.ts +1 -0
  206. package/lib/components/eventBooking/index.d.ts +1 -0
  207. package/lib/components/list/types.d.ts +178 -0
  208. package/lib/components/list/utils/index.d.ts +19 -0
  209. package/lib/components/pay/toB/components/Cache/index.d.ts +0 -1
  210. package/lib/components/pay/toB/components/CardGroup/index.d.ts +1 -0
  211. package/lib/components/pay/toC/model.d.ts +9 -1
  212. package/lib/components/pisellSelectCustomerModal/RightPanel/serve.d.ts +3 -0
  213. package/lib/components/schedules/model.d.ts +9 -1
  214. package/lib/components/shoppingCart/components/Cart/Product.js +1 -1
  215. package/lib/components/ticketBooking/components/ProductDisplayAdapter/types.d.ts +115 -0
  216. package/lib/components/ticketBooking/components/ProductDisplayAdapter/utils.d.ts +84 -0
  217. package/lib/components/ticketBooking/components/addServiceVariant/index.d.ts +11 -0
  218. package/lib/components/ticketBooking/components/addServiceVariant/utils.d.ts +9 -0
  219. package/lib/components/ticketBooking/components/ticketBooking/index.d.ts +0 -1
  220. package/lib/components/ticketBooking/context/OsKeyContext.d.ts +26 -0
  221. package/lib/components/ticketBooking/context/index.d.ts +2 -0
  222. package/lib/components/ticketBooking/hooks/pisellos/useCustomer.d.ts +25 -0
  223. package/lib/components/ticketBooking/hooks/pisellos/useProducts.d.ts +16 -0
  224. package/lib/components/ticketBooking/locales.d.ts +201 -0
  225. package/lib/components/ticketBooking/serve.d.ts +288 -0
  226. package/lib/components/ticketBooking/utils/index.d.ts +101 -0
  227. package/lib/hooks/printer.d.ts +4 -0
  228. package/lib/hooks/useEngineContext.d.ts +4 -0
  229. package/lib/plus/productSelect/CategoryTabs/index.d.ts +21 -0
  230. package/lib/plus/productSelect/ProductCard/SkuCard/SkuCardA1/index.d.ts +1 -0
  231. package/lib/plus/productSelect/ProductCard/SkuCard/SkuCardA2/index.d.ts +1 -0
  232. package/lib/plus/productSelect/ProductCard/SkuCard/SkuCardA5/index.d.ts +1 -0
  233. package/lib/plus/productSelect/ProductCard/SkuCard/SkuCardA9/index.d.ts +1 -0
  234. package/lib/plus/productSelect/ProductCard/SkuCard/SkuCardCustom/index.d.ts +1 -0
  235. package/lib/plus/productSelect/ProductCard/SkuCard/components/CardCom/index.d.ts +1 -0
  236. package/lib/plus/productSelect/ProductCard/SkuCard/components/MemberPrice/index.d.ts +1 -1
  237. package/lib/plus/productSelect/ProductCard/SkuCard/components/Price/index.d.ts +7 -0
  238. package/lib/plus/productSelect/ProductCard/SkuCard/index.d.ts +1 -0
  239. package/lib/plus/productSelect/ProductCard/index.d.ts +47 -0
  240. package/lib/plus/productSelect/ProductList/gridComponents.d.ts +46 -0
  241. package/lib/plus/productSelect/components/TabsStructure/TabsStructure.d.ts +30 -0
  242. package/lib/plus/skuOptionsSelection/components/NormalCard/index.d.ts +6 -0
  243. package/lib/plus/skuOptionsSelection/components/TitleExtra/index.d.ts +4 -0
  244. package/lib/plus/skuOptionsSelection/components/VariantCard/index.d.ts +1 -0
  245. package/lib/plus/skuOptionsSelection/hooks/index.d.ts +3 -0
  246. package/lib/plus/skuOptionsSelection/hooks/useLanguage.d.ts +2 -0
  247. package/lib/plus/skuOptionsSelection/hooks/useStore.d.ts +2 -0
  248. package/lib/plus/skuOptionsSelection/hooks/useSymbol.d.ts +2 -0
  249. package/lib/plus/skuOptionsSelection/store/actions.d.ts +22 -0
  250. package/lib/plus/skuOptionsSelection/store/createStore.d.ts +15 -0
  251. package/lib/plus/skuOptionsSelection/store/index.d.ts +2 -0
  252. package/lib/plus/skuOptionsSelection/store/store.d.ts +4 -0
  253. package/lib/plus/skuOptionsSelection/types.d.ts +431 -0
  254. package/lib/plus/skuOptionsSelection/utils/calculateOption.d.ts +6 -0
  255. package/lib/plus/skuOptionsSelection/utils/checkSkuStatus.d.ts +37 -0
  256. package/lib/plus/skuOptionsSelection/utils/index.d.ts +7 -0
  257. package/lib/plus/skuOptionsSelection/utils/transformBundleGroup.d.ts +19 -0
  258. package/lib/plus/skuOptionsSelection/utils/transformOptionGroup.d.ts +1 -0
  259. package/lib/plus/skuOptionsSelection/utils/transformSelectorValueToValue.d.ts +4 -0
  260. package/lib/plus/skuOptionsSelection/utils/transformValueToSelectorValue.d.ts +4 -0
  261. package/lib/plus/skuOptionsSelection/utils/transformVariantGroup.d.ts +1 -0
  262. package/lib/plus/webPosLogin/WebPosLoginCpt.d.ts +9 -0
  263. package/lib/plus/webPosLogin/components/BrandPanel/index.d.ts +9 -0
  264. package/lib/plus/webPosLogin/components/LoginPanel/index.d.ts +21 -0
  265. package/lib/plus/webPosLogin/components/MediaDisplay/type.d.ts +54 -0
  266. package/lib/plus/webPosLogin/index.d.ts +12 -0
  267. package/lib/plus/webPosLogin/locales.d.ts +49 -0
  268. package/lib/plus/webPosLogin/types.d.ts +286 -0
  269. package/lib/pro/Cards/index.d.ts +1 -0
  270. package/lib/pro/Selector/BatchSelectorDemo.d.ts +3 -0
  271. package/lib/pro/Selector/Item.d.ts +14 -0
  272. package/lib/pro/Selector/Selector.d.ts +14 -0
  273. package/lib/pro/Selector/Selector.stories.d.ts +78 -0
  274. package/lib/pro/Selector/SelectorGroup.d.ts +11 -0
  275. package/lib/pro/Selector/components/Card/index.d.ts +57 -0
  276. package/lib/pro/Selector/components/Card/types.d.ts +1 -0
  277. package/lib/pro/Selector/components/Indicator/index.d.ts +20 -0
  278. package/lib/pro/Selector/components/IntersectionObserver.d.ts +105 -0
  279. package/lib/pro/Selector/components/LayoutContainer/index.d.ts +18 -0
  280. package/lib/pro/Selector/components/Media/index.d.ts +6 -0
  281. package/lib/pro/Selector/components/Media/types.d.ts +47 -0
  282. package/lib/pro/Selector/components/index.d.ts +4 -0
  283. package/lib/pro/Selector/demo.d.ts +3 -0
  284. package/lib/pro/Selector/hooks/usePresetItemProps.d.ts +43 -0
  285. package/lib/pro/Selector/hooks/usePresetProps.d.ts +24 -0
  286. package/lib/pro/Selector/hooks/useSelectionController.d.ts +49 -0
  287. package/lib/pro/Selector/index.d.ts +11 -0
  288. package/lib/pro/Selector/locales.d.ts +36 -0
  289. package/lib/pro/Selector/types.d.ts +212 -0
  290. package/lib/pro/Selector/utils/index.d.ts +49 -0
  291. package/lib/pro/skuDetailModal/locales.d.ts +103 -0
  292. package/lib/pro/skuDetailModal/types.d.ts +354 -0
  293. package/lib/pro/skuDetailModal/utils.d.ts +4 -0
  294. package/lib/test/setup.d.ts +1 -0
  295. package/package.json +1 -1
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import './index.less';
3
+ export interface IndicatorProps {
4
+ mode?: 'single' | 'multiple';
5
+ variant?: 'outlined' | 'filled';
6
+ defaultChecked?: boolean;
7
+ checked?: boolean;
8
+ disabled?: boolean;
9
+ onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;
10
+ className?: string;
11
+ styles?: {
12
+ container?: React.CSSProperties;
13
+ indicator?: React.CSSProperties;
14
+ content?: React.CSSProperties;
15
+ };
16
+ children?: React.ReactNode;
17
+ size?: 'small' | 'middle' | 'large' | number;
18
+ }
19
+ declare const Indicator: React.FC<IndicatorProps>;
20
+ export default Indicator;
@@ -0,0 +1,105 @@
1
+ /**
2
+ * IntersectionObserver 组件
3
+ * 用于监听一组 DOM 元素的可见性状态,并获取第一个可见元素的索引。
4
+ * @example
5
+ * function App() {
6
+ * return (
7
+ * <IntersectionObserverProvider
8
+ * onFirstVisibleIndexChange={(index) => {
9
+ * console.log('第一个可见元素的索引:', index);
10
+ * }}
11
+ * rootMargin="0px 0px -10% 0px" // 自定义根边距
12
+ * >
13
+ * <ScrollContainer>
14
+ * {items.map((item, index) => (
15
+ * <IntersectionItem key={item.id} index={index}>
16
+ * <ItemComponent data={item} />
17
+ * </IntersectionItem>
18
+ * ))}
19
+ * </ScrollContainer>
20
+ * </IntersectionObserverProvider>
21
+ * );
22
+ * }
23
+ */
24
+ import React from 'react';
25
+ import type { ReactNode, CSSProperties } from 'react';
26
+ declare global {
27
+ interface Window {
28
+ IntersectionObserver: typeof IntersectionObserver;
29
+ }
30
+ }
31
+ /**
32
+ * 元素信息接口
33
+ */
34
+ interface ElementInfo {
35
+ element: HTMLElement;
36
+ index: number;
37
+ isVisible: boolean;
38
+ }
39
+ /**
40
+ * IntersectionObserver 上下文值接口
41
+ */
42
+ interface IntersectionObserverContextValue {
43
+ /** 是否已初始化 */
44
+ initialized: boolean;
45
+ /** 注册元素 */
46
+ registerElement: (element: HTMLElement, index: number) => void;
47
+ /** 注销元素 */
48
+ unregisterElement: (element: HTMLElement) => void;
49
+ /** 批量注册元素 */
50
+ registerElements: (elements: Array<{
51
+ element: HTMLElement;
52
+ index: number;
53
+ }>) => void;
54
+ /** 清除所有注册的元素 */
55
+ clearAll: () => void;
56
+ /** 第一个可见元素的索引,-1 表示没有可见元素 */
57
+ firstVisibleIndex: number;
58
+ }
59
+ /**
60
+ * IntersectionObserver Provider 属性接口
61
+ */
62
+ interface IntersectionObserverProps {
63
+ children: ReactNode;
64
+ /** 根容器,默认为视口 */
65
+ root?: Element | null;
66
+ /** 根边距 */
67
+ rootMargin?: string;
68
+ /** 阈值 */
69
+ threshold?: number | number[];
70
+ /** 第一个可见元素索引变化时的回调 */
71
+ onFirstVisibleIndexChange?: (index: number) => void;
72
+ /** 是否禁用组件,禁用后不会创建 IntersectionObserver */
73
+ disabled?: boolean;
74
+ }
75
+ /**
76
+ * IntersectionItem 组件属性接口
77
+ */
78
+ interface IntersectionItemProps {
79
+ /** 元素索引 */
80
+ index: number;
81
+ /** 子元素 */
82
+ children?: ReactNode;
83
+ /** 类名 */
84
+ className?: string;
85
+ /** 样式 */
86
+ style?: CSSProperties;
87
+ }
88
+ /**
89
+ * IntersectionObserver 上下文
90
+ */
91
+ declare const IntersectionObserverContext: React.Context<IntersectionObserverContextValue>;
92
+ export declare const IntersectionObserverProvider: React.FC<IntersectionObserverProps>;
93
+ /**
94
+ * 使用 IntersectionObserver 的 Hook
95
+ * @returns {Object} 包含注册元素函数和第一个可见元素索引的对象
96
+ */
97
+ export declare const useIntersectionObserver: () => IntersectionObserverContextValue;
98
+ /**
99
+ * IntersectionItem 组件
100
+ * 自动注册元素到 IntersectionObserver 中
101
+ */
102
+ export declare const IntersectionItem: React.FC<IntersectionItemProps>;
103
+ export type { IntersectionObserverProps, IntersectionItemProps, IntersectionObserverContextValue, ElementInfo, };
104
+ export { IntersectionObserverContext, };
105
+ export default IntersectionObserverProvider;
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import { LayoutConfig } from '../../types';
3
+ import './index.less';
4
+ interface LayoutContainerProps {
5
+ className: string;
6
+ config: LayoutConfig | null;
7
+ children: React.ReactNode[];
8
+ }
9
+ /**
10
+ * 统一的布局容器组件
11
+ *
12
+ * 支持三种布局模式:
13
+ * 1. 响应式布局(推荐):通过 responsive 配置,使用 ResizeObserver 实现容器级响应式
14
+ * 2. Custom 布局:通过 className 使用预设样式
15
+ * 3. Ant Design Grid 布局:基础的栅格布局,用于简单场景
16
+ */
17
+ declare function LayoutContainer({ className: containerClassName, config, children, }: LayoutContainerProps): React.ReactElement | null;
18
+ export default LayoutContainer;
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import './index.less';
3
+ import type { MediaProps, MediaStyleProps, MediaShape, MediaSize, MediaCoverType } from './types';
4
+ export type { MediaProps, MediaStyleProps, MediaShape, MediaSize, MediaCoverType };
5
+ declare const Media: React.FC<MediaProps>;
6
+ export default Media;
@@ -0,0 +1,47 @@
1
+ /// <reference types="react" />
2
+ export declare type MediaShape = 'circle' | 'square';
3
+ export declare type MediaSize = 'small' | 'middle' | 'large' | number;
4
+ export declare type MediaCoverType = 'image' | 'text' | 'auto';
5
+ export interface MediaStyles {
6
+ container?: React.CSSProperties | ((props: MediaStyleProps) => React.CSSProperties);
7
+ cover?: React.CSSProperties | ((props: MediaStyleProps) => React.CSSProperties);
8
+ label?: React.CSSProperties | ((props: MediaStyleProps) => React.CSSProperties);
9
+ extra?: React.CSSProperties | ((props: MediaStyleProps) => React.CSSProperties);
10
+ indicator?: React.CSSProperties | ((props: MediaStyleProps) => React.CSSProperties);
11
+ }
12
+ export interface MediaStyleProps {
13
+ selected?: boolean;
14
+ disabled?: boolean;
15
+ shape?: MediaShape;
16
+ size?: MediaSize;
17
+ }
18
+ export interface MediaProps {
19
+ /** 封面内容,可以是图片URL或React节点 */
20
+ cover?: string | React.ReactNode;
21
+ /** 标签文本 */
22
+ label?: React.ReactNode;
23
+ /** 额外内容,通常用于数字选择器等 */
24
+ extra?: React.ReactNode;
25
+ /** 指示器,通常用于勾选图标 */
26
+ indicator?: React.ReactNode;
27
+ /** 选中时是否展示角标,默认为 true */
28
+ showIndicator?: boolean;
29
+ /** 封面类型:image-图片、text-文字、auto-自动(默认) */
30
+ coverType?: MediaCoverType;
31
+ /** 形状 */
32
+ shape?: MediaShape;
33
+ /** 尺寸 */
34
+ size?: MediaSize;
35
+ /** 选中状态 */
36
+ selected?: boolean;
37
+ /** 禁用状态 */
38
+ disabled?: boolean;
39
+ /** 点击事件 */
40
+ onClick?: (e: React.MouseEvent<HTMLDivElement>) => void;
41
+ /** 自定义样式 */
42
+ styles?: MediaStyles;
43
+ /** 自定义类名 */
44
+ className?: string;
45
+ /** 自定义样式 */
46
+ style?: React.CSSProperties;
47
+ }
@@ -0,0 +1,4 @@
1
+ export { default as CardItem } from './Card';
2
+ export { default as MediaItem } from './Media';
3
+ export type { CardVariant, CardLayout, SelectedType, ActionsPosition, CardStyles, CardStyleProps, CardProps, } from './Card/types';
4
+ export type { MediaShape, MediaSize, MediaCoverType, MediaStyles, MediaStyleProps, MediaProps, } from './Media/types';
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const SelectorDemo: () => JSX.Element;
3
+ export default SelectorDemo;
@@ -0,0 +1,43 @@
1
+ import React from 'react';
2
+ import { ItemProps, ItemLayout, SelectorVariant, PresetConfig } from '../types';
3
+ interface UsePresetItemPropsParams {
4
+ variant?: SelectorVariant;
5
+ itemLayout?: ItemLayout;
6
+ preset?: PresetConfig;
7
+ itemProps?: ItemProps;
8
+ indicator: React.ReactNode;
9
+ numberSelector: React.ReactNode;
10
+ mode?: 'single' | 'multiple';
11
+ disabled?: boolean;
12
+ selected?: boolean;
13
+ }
14
+ interface PresetItemPropsResult {
15
+ mediaProps: Record<string, any>;
16
+ cardProps: Record<string, any>;
17
+ }
18
+ /**
19
+ * 根据预设项生成 option Item 的 props
20
+ *
21
+ * 规则说明:
22
+ * 1. variant='default': 使用 Card,borderless,horizontal,selectedType='none',actionsPosition='left'
23
+ * 1.1 preset.variant='1': renderContent={() => <span>{dataSource._label}</span>}
24
+ * 1.2 preset.variant='2': renderContent={() => <span>{dataSource._label}</span>}
25
+ * 2. variant='media': 使用 MediaItem
26
+ * 2.1 preset.variant='1': size='small', showIndicator=false, 单选shape='circle',多选shape='square'
27
+ * 2.2 preset.variant='2': size='large', showIndicator=true, shape='circle'
28
+ * 3. variant='card': 根据 itemLayout 区分横向和纵向
29
+ * 3.1 横向(horizontal):
30
+ * - preset.variant='2': selectedType='filled'
31
+ * - preset.variant='5': variant='borderless'
32
+ * - 默认样式: styles.container = { padding: 8 }
33
+ * - 使用 lodash merge 深度合并样式,itemProps.styles 优先级更高
34
+ * 3.2 纵向(vertical):
35
+ * - 统一使用 borderless,selectedType='none'
36
+ * - preset.variant='2': indicator 通过 corner 传入
37
+ * 3.3 actions 处理:
38
+ * - 优先使用 numberSelector(如果存在)
39
+ * - 其次使用 indicator
40
+ * - 纵向且 preset.variant='2': indicator 放到 corner,actions 仅展示 numberSelector
41
+ */
42
+ declare const usePresetItemProps: (params: UsePresetItemPropsParams) => PresetItemPropsResult;
43
+ export default usePresetItemProps;
@@ -0,0 +1,24 @@
1
+ import { LayoutConfig, ItemLayout, PresetConfig, SelectorVariant, SelectorProps } from '../types';
2
+ interface UsePresetPropsParams {
3
+ layout?: LayoutConfig;
4
+ mode?: 'single' | 'multiple';
5
+ preset?: PresetConfig;
6
+ itemLayout?: ItemLayout;
7
+ variant?: SelectorVariant;
8
+ indicatorProps?: SelectorProps['indicatorProps'];
9
+ }
10
+ interface UsePresetPropsResult {
11
+ layout: LayoutConfig | null;
12
+ indicatorProps: SelectorProps['indicatorProps'];
13
+ }
14
+ /**
15
+ * 根据预设配置生成 layout 和 indicatorProps
16
+ * Layout 规则:
17
+ * - 根据 variant 和 preset.variant 计算布局样式
18
+ * IndicatorProps 规则:
19
+ * 1. 当 variant='card' 且 preset.variant='2' 时,indicator 默认 variant='filled'
20
+ * 2. 当 variant='media' 时,indicator 默认 variant='filled'
21
+ * 3. 外部传入的 indicatorProps 优先级更高(会合并到预设配置中)
22
+ */
23
+ declare const usePresetProps: ({ layout, mode, preset, itemLayout, variant, indicatorProps, }: UsePresetPropsParams) => UsePresetPropsResult;
24
+ export default usePresetProps;
@@ -0,0 +1,49 @@
1
+ import { RuleConfig, OptionItem, SelectionValuePrimitive, SelectionValue, OptionKey } from '../types';
2
+ declare type ErrorItem = {
3
+ type: 'required' | 'max' | 'min' | 'optionMin' | 'optionMax' | 'requireOneOf' | 'mutex';
4
+ message: string;
5
+ _key?: OptionKey;
6
+ };
7
+ declare type InnerOptionItem = OptionItem & {
8
+ _key: OptionKey;
9
+ _label: string;
10
+ selected: boolean;
11
+ quantity: number;
12
+ disabled: boolean;
13
+ };
14
+ export default function useSelectionController(props: {
15
+ dataSource?: OptionItem[];
16
+ ruleConfig?: RuleConfig;
17
+ fieldNames?: {
18
+ label?: string;
19
+ value?: string;
20
+ cover?: string;
21
+ };
22
+ mode?: 'single' | 'multiple';
23
+ valueType?: 'primitive' | 'object';
24
+ value?: SelectionValuePrimitive | SelectionValue;
25
+ defaultValue?: SelectionValuePrimitive | SelectionValue;
26
+ onChange?: (value: SelectionValuePrimitive | SelectionValue) => void;
27
+ }): {
28
+ state: {
29
+ options: InnerOptionItem[];
30
+ values: SelectionValue;
31
+ errors: Array<ErrorItem>;
32
+ validated: boolean;
33
+ quantityInfo: {
34
+ showQuantity: boolean;
35
+ maxReached: boolean;
36
+ remainingCount: number;
37
+ selectedCount: number;
38
+ };
39
+ };
40
+ actions: {
41
+ toggle: (optionKey: OptionKey) => void;
42
+ update: (optionKey: OptionKey, payload?: any) => void;
43
+ setValue: (value: SelectionValuePrimitive | SelectionValue) => void;
44
+ clear: () => void;
45
+ validate: () => Promise<void>;
46
+ reset: () => void;
47
+ };
48
+ };
49
+ export {};
@@ -0,0 +1,11 @@
1
+ /// <reference types="react" />
2
+ import { SelectorProps, OptionKey } from './types';
3
+ import Item from './Item';
4
+ import SelectorGroup from './SelectorGroup';
5
+ declare type SelectorComponentType = React.ForwardRefExoticComponent<SelectorProps<OptionKey> & React.RefAttributes<any>> & {
6
+ Group: typeof SelectorGroup;
7
+ Item: typeof Item;
8
+ };
9
+ declare const Selector: SelectorComponentType;
10
+ export * from './types';
11
+ export default Selector;
@@ -0,0 +1,36 @@
1
+ declare const _default: {
2
+ en: {
3
+ 'pisell2.pro.selector.mode.single': string;
4
+ 'pisell2.pro.selector.mode.multiple': string;
5
+ 'pisell2.pro.selector.validate.required-msg': string;
6
+ 'pisell2.pro.selector.validate.requireOneOf-msg': string;
7
+ 'pisell2.pro.selector.required-tag': string;
8
+ 'pisell2.pro.selector.validate.min-selection': (min: number, label?: string) => string;
9
+ 'pisell2.pro.selector.validate.max-selection': (max: number, label?: string) => string;
10
+ 'pisell2.pro.selector.tip.require-one-option': string;
11
+ 'pisell2.pro.selector.tip.min-max-selection': (min: number, max: number) => string;
12
+ };
13
+ 'zh-CN': {
14
+ 'pisell2.pro.selector.mode.single': string;
15
+ 'pisell2.pro.selector.mode.multiple': string;
16
+ 'pisell2.pro.selector.validate.required-msg': string;
17
+ 'pisell2.pro.selector.validate.requireOneOf-msg': string;
18
+ 'pisell2.pro.selector.required-tag': string;
19
+ 'pisell2.pro.selector.validate.min-selection': (min: number, label?: string) => string;
20
+ 'pisell2.pro.selector.validate.max-selection': (max: number, label?: string) => string;
21
+ 'pisell2.pro.selector.tip.require-one-option': string;
22
+ 'pisell2.pro.selector.tip.min-max-selection': (min: number, max: number) => string;
23
+ };
24
+ 'zh-HK': {
25
+ 'pisell2.pro.selector.mode.single': string;
26
+ 'pisell2.pro.selector.mode.multiple': string;
27
+ 'pisell2.pro.selector.validate.required-msg': string;
28
+ 'pisell2.pro.selector.validate.requireOneOf-msg': string;
29
+ 'pisell2.pro.selector.required-tag': string;
30
+ 'pisell2.pro.selector.validate.min-selection': (min: number, label?: string) => string;
31
+ 'pisell2.pro.selector.validate.max-selection': (max: number, label?: string) => string;
32
+ 'pisell2.pro.selector.tip.require-one-option': string;
33
+ 'pisell2.pro.selector.tip.min-max-selection': (min: number, max: number) => string;
34
+ };
35
+ };
36
+ export default _default;
@@ -0,0 +1,212 @@
1
+ /// <reference types="react" />
2
+ export interface ExprRule {
3
+ [key: string]: any;
4
+ }
5
+ export interface RuleConfig {
6
+ autoValidate?: boolean;
7
+ required?: 0 | 1;
8
+ min?: number;
9
+ max?: number;
10
+ mutex?: Array<Array<OptionKey>>;
11
+ customValidator?: (value: SelectionValue) => Promise<void>;
12
+ }
13
+ export interface GroupItem {
14
+ id?: number;
15
+ title?: string;
16
+ mode?: 'single' | 'multiple';
17
+ valueType?: 'primitive' | 'object';
18
+ preserve?: boolean;
19
+ fieldNames?: {
20
+ label?: string;
21
+ value?: string;
22
+ cover?: string;
23
+ };
24
+ ruleConfig?: RuleConfig;
25
+ dataSource?: OptionItem[];
26
+ }
27
+ export interface OptionItem {
28
+ id?: number;
29
+ title?: string;
30
+ label?: string;
31
+ value?: OptionKey;
32
+ cover?: string;
33
+ groups?: GroupItem[];
34
+ disabled?: boolean;
35
+ ruleConfig?: {
36
+ min?: number;
37
+ max?: number;
38
+ };
39
+ [key: string]: any;
40
+ }
41
+ export declare type OptionKey = number | string;
42
+ /** 原始值类型:单选时为id,多选时为id[] */
43
+ export declare type SelectionValuePrimitive<T = OptionKey> = T | T[];
44
+ /** 复杂对象值类型:包含id、数量等额外信息 */
45
+ export interface SelectionValueObject<T = OptionKey> {
46
+ value?: T;
47
+ quantity?: number;
48
+ [key: string]: any;
49
+ }
50
+ /** 单选值类型 */
51
+ export declare type SelectionValueSingle<T = OptionKey> = T | SelectionValueObject<T>;
52
+ /** 多选值类型 */
53
+ export declare type SelectionValueMultiple<T = OptionKey> = T[] | SelectionValueObject<T>[];
54
+ /** 选择器值类型 */
55
+ export declare type SelectionValue<T = OptionKey> = SelectionValueSingle<T> | SelectionValueMultiple<T>;
56
+ export declare type RenderItemProps = {
57
+ dataSource: OptionItem;
58
+ actions: any;
59
+ optionItemValue?: any;
60
+ indicator: React.ReactNode;
61
+ numberSelector: React.ReactNode;
62
+ values: any;
63
+ quantityInfo: {
64
+ maxReached: boolean;
65
+ remainingCount: number;
66
+ selectedCount: number;
67
+ };
68
+ };
69
+ export declare type ItemProps = {
70
+ layout?: 'vertical' | 'horizontal';
71
+ renderContent?: (props: {
72
+ dataSource: OptionItem;
73
+ }) => React.ReactNode;
74
+ styles?: {
75
+ [key: string]: React.CSSProperties;
76
+ };
77
+ [key: string]: any;
78
+ };
79
+ export declare type LayoutType = 'antdGrid' | 'custom';
80
+ /** 单个断点的完整配置 */
81
+ export declare type BreakpointConfig = {
82
+ columns: number;
83
+ gap?: number | string;
84
+ style?: React.CSSProperties;
85
+ };
86
+ /**
87
+ * 断点映射
88
+ * key: 最小宽度(px)
89
+ * value: 列数(简写)或完整配置
90
+ * @example { 0: 1, 420: 2, 630: 3 } // 简写
91
+ * @example { 0: { columns: 1, gap: 12 }, 420: { columns: 2, gap: 16 } } // 完整
92
+ */
93
+ export declare type BreakpointMap = Record<number, number | BreakpointConfig>;
94
+ /** 响应式布局配置 */
95
+ export declare type ResponsiveConfig = {
96
+ /** 每项最小宽度,系统自动计算断点 */
97
+ minWidth?: number;
98
+ /** 最大列数限制 */
99
+ maxColumns?: number;
100
+ /**
101
+ * 显式断点映射,key 为容器最小宽度(px)
102
+ * @example { 0: 1, 420: 2, 630: 3, 841: 4, 1367: 5 }
103
+ * @example { 0: { columns: 1, gap: 12 }, 420: { columns: 2, gap: 16 } }
104
+ */
105
+ breakpoints?: BreakpointMap;
106
+ /** 默认列数(容器宽度小于所有断点时),默认为 1 */
107
+ defaultColumns?: number;
108
+ /** 间距,默认为 16 */
109
+ gap?: number | string;
110
+ /** ResizeObserver 防抖延迟(ms),默认为 0 */
111
+ debounce?: number;
112
+ };
113
+ export declare type LayoutConfig = {
114
+ type?: LayoutType;
115
+ className?: string;
116
+ containerStyle?: React.CSSProperties;
117
+ /**
118
+ * 响应式布局配置
119
+ * 存在此配置时自动启用 ResizeObserver 响应式布局
120
+ */
121
+ responsive?: ResponsiveConfig;
122
+ columns?: number;
123
+ gutter?: number | object | Array<number>;
124
+ align?: 'top' | 'middle' | 'bottom' | 'stretch';
125
+ justify?: 'start' | 'end' | 'center' | 'space-between' | 'space-around';
126
+ wrap?: boolean;
127
+ colConfig?: {
128
+ [key: string]: any;
129
+ };
130
+ };
131
+ export interface PresetConfig {
132
+ variant?: '1' | '2' | '3' | '4' | '5';
133
+ }
134
+ export declare type ItemLayout = 'vertical' | 'horizontal';
135
+ export declare type SelectorVariant = 'default' | 'select' | 'card' | 'media';
136
+ export declare type HeaderProps = {
137
+ visible?: boolean;
138
+ style?: React.CSSProperties;
139
+ title?: {
140
+ visible?: boolean;
141
+ text?: React.ReactNode;
142
+ style?: React.CSSProperties;
143
+ };
144
+ icon?: {
145
+ visible?: boolean;
146
+ icon?: React.ReactNode;
147
+ style?: React.CSSProperties;
148
+ };
149
+ tip?: {
150
+ visible?: boolean;
151
+ text?: React.ReactNode;
152
+ style?: React.CSSProperties;
153
+ };
154
+ renderExtra?: (props: {
155
+ dataSource: OptionItem;
156
+ values: SelectionValue;
157
+ }) => React.ReactNode;
158
+ };
159
+ export interface SelectorProps<T = OptionKey> extends GroupItem {
160
+ className?: string;
161
+ value?: SelectionValue<T>;
162
+ defaultValue?: SelectionValue<T>;
163
+ onChange?: (value: SelectionValue<T>) => void;
164
+ onClear?: () => void;
165
+ disabled?: boolean;
166
+ variant?: SelectorVariant;
167
+ itemLayout?: ItemLayout;
168
+ preset?: PresetConfig;
169
+ layout?: LayoutConfig;
170
+ renderItem?: (props: RenderItemProps) => React.ReactNode;
171
+ itemProps?: ItemProps;
172
+ indicatorProps?: {
173
+ show?: boolean;
174
+ variant?: 'outlined' | 'filled';
175
+ render?: (props: {
176
+ option: OptionItem;
177
+ selected: boolean;
178
+ disabled: boolean;
179
+ actions: any;
180
+ }) => React.ReactNode;
181
+ [key: string]: any;
182
+ };
183
+ showStepper?: true | false | 'auto';
184
+ stepperProps?: {
185
+ size?: 'small' | 'middle' | 'large';
186
+ shape?: 'round' | 'square';
187
+ horizontalPadding?: number | string;
188
+ };
189
+ style?: React.CSSProperties;
190
+ /**
191
+ * @deprecated
192
+ */
193
+ titleProps?: HeaderProps;
194
+ headerProps?: HeaderProps;
195
+ }
196
+ export interface SelectorGroupProps {
197
+ allowedValuesPolicy?: 'relaxed' | 'strict';
198
+ className?: string;
199
+ customScrollParent?: HTMLElement | string;
200
+ dataSource: GroupItem[];
201
+ defaultValue?: Record<string, SelectionValue>;
202
+ linkageRules?: ExprRule[] | Record<string, any>;
203
+ onChange?: (values: Record<string, SelectionValue>) => void;
204
+ preserve?: boolean;
205
+ tabProps?: {
206
+ visible?: boolean;
207
+ };
208
+ style?: React.CSSProperties;
209
+ value?: Record<string, SelectionValue>;
210
+ scrollToFirstError?: boolean;
211
+ [key: string]: any;
212
+ }
@@ -0,0 +1,49 @@
1
+ import { SelectionValue, GroupItem } from '../types';
2
+ export declare type OptionEffects = Record<string, {
3
+ allowOnly?: Set<any>;
4
+ requireOneOf?: {
5
+ values: Set<any>;
6
+ message?: string;
7
+ };
8
+ }>;
9
+ export interface Cond {
10
+ groupId: string;
11
+ in?: any[];
12
+ op?: 'in' | 'notIn' | 'eq' | 'neq' | 'contains' | 'range' | 'exists';
13
+ value?: any;
14
+ values?: any[];
15
+ min?: number;
16
+ max?: number;
17
+ }
18
+ export interface Expr {
19
+ allOf?: Array<Cond | Expr>;
20
+ anyOf?: Array<Cond | Expr>;
21
+ noneOf?: Array<Cond | Expr>;
22
+ and?: Array<Cond | Expr>;
23
+ or?: Array<Cond | Expr>;
24
+ not?: Array<Cond | Expr>;
25
+ }
26
+ export interface Action {
27
+ type: 'show' | 'allowOnly' | 'requireOneOf';
28
+ groupId: string;
29
+ values?: any[];
30
+ message?: string;
31
+ }
32
+ export interface Rule {
33
+ type?: 'expr';
34
+ when?: Expr;
35
+ then?: Action[];
36
+ elseThen?: Action[];
37
+ priority?: number;
38
+ stopAfterApply?: boolean;
39
+ }
40
+ export declare const normalizeRules: (linkageRules: any) => Rule[];
41
+ export declare const getSelectedSet: (val: SelectionValue) => Set<any>;
42
+ export declare const evaluateExpr: (expr: Expr | undefined, valuesMap: Record<string, SelectionValue>) => boolean;
43
+ export declare const computeAutoHiddenGroups: (rules: Rule[]) => Set<string>;
44
+ export declare const computeEffects: (dataSource?: GroupItem[], rawRules?: Rule[], valuesMap?: Record<string, SelectionValue>) => {
45
+ visibleGroups: Record<string, boolean>;
46
+ optionEffects: OptionEffects;
47
+ };
48
+ export declare const pruneValuesByAllowOnly: (valuesMap: Record<string, SelectionValue>, effects: OptionEffects) => Record<string, SelectionValue>;
49
+ export declare const generateSimpleUUID: () => string;