@mercurjs/vendor 2.1.2 → 2.2.0-canary.1

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 (230) hide show
  1. package/dist/{[id]-PDGHF5J2.js → [id]-2DQX3YWJ.js} +35 -31
  2. package/dist/{[id]-TO6KT3ZE.js → [id]-4OBGG7OH.js} +23 -21
  3. package/dist/{[id]-X4DDKOMQ.js → [id]-4PKMKNJH.js} +26 -22
  4. package/dist/[id]-4STHLE4N.js +1442 -0
  5. package/dist/{[id]-4VCL3MMM.js → [id]-5UFO4RKF.js} +26 -22
  6. package/dist/{[id]-H3C3ZSC6.js → [id]-6MXCVV5J.js} +25 -21
  7. package/dist/{[id]-6PXEWRG7.js → [id]-7BAKUHUO.js} +13 -13
  8. package/dist/{[id]-7RUAH3TI.js → [id]-K2CT7BXQ.js} +4 -4
  9. package/dist/{[id]-3G5G7ZFV.js → [id]-KJIQTFGE.js} +22 -20
  10. package/dist/{[id]-INOFZHL7.js → [id]-LTNOHLGE.js} +16 -16
  11. package/dist/{[id]-B3LHVQM5.js → [id]-PGIT5WJC.js} +25 -21
  12. package/dist/{[id]-T2ROPEGY.js → [id]-Y2ISCLUD.js} +7 -7
  13. package/dist/{[id]-Y7GAMNC5.js → [id]-ZCMSBEVM.js} +4 -4
  14. package/dist/{[id]-UTKO3VG4.js → [id]-ZWWMJAKI.js} +9 -9
  15. package/dist/{[location_id]-D55RQOXT.js → [location_id]-NUBXDDJC.js} +9 -9
  16. package/dist/{[province_id]-OFH2ZOFQ.js → [province_id]-H2QAPKVH.js} +20 -18
  17. package/dist/{add-C6OX5C54.js → add-GZJ7OMV3.js} +34 -30
  18. package/dist/add-KQAABWCR.js +392 -0
  19. package/dist/{add-customer-groups-PJRJUWS2.js → add-customer-groups-RAHCP67U.js} +16 -14
  20. package/dist/{add-products-INOLNPO6.js → add-products-TSVQHC67.js} +23 -19
  21. package/dist/{add-promotions-AHDOP52Q.js → add-promotions-CSCAJZHV.js} +7 -7
  22. package/dist/{add-to-campaign-HL6NGRR4.js → add-to-campaign-DLP7PSQB.js} +4 -4
  23. package/dist/{address-KRENKSLP.js → address-7F5SN7PV.js} +17 -15
  24. package/dist/{adjust-inventory-H4EUP7J3.js → adjust-inventory-SZF4W7LR.js} +2 -2
  25. package/dist/{allocate-items-SUCUZU4D.js → allocate-items-SDFS5GYN.js} +6 -6
  26. package/dist/{areas-UUMZDXLX.js → areas-7Y6BVS5A.js} +8 -8
  27. package/dist/{attributes-CALEHJJG.js → attributes-MBZ76HVZ.js} +3 -3
  28. package/dist/{breadcrumb-BS7Y5OKF.js → breadcrumb-65SAGUUL.js} +2 -2
  29. package/dist/{breadcrumb-6W2VP3OZ.js → breadcrumb-7PURSRTT.js} +13 -11
  30. package/dist/{breadcrumb-M5Z5WA6I.js → breadcrumb-EDPMEN2P.js} +2 -2
  31. package/dist/breadcrumb-FLDHJRVY.js +26 -0
  32. package/dist/{breadcrumb-VNNZ3TTW.js → breadcrumb-HND5FFWC.js} +2 -2
  33. package/dist/{breadcrumb-OIGGCB3L.js → breadcrumb-QV2IAX7N.js} +8 -2
  34. package/dist/{breadcrumb-KQSFIXQ4.js → breadcrumb-VWELWDB2.js} +1 -1
  35. package/dist/{breadcrumb-IG7VZGW2.js → breadcrumb-WRG4SITG.js} +13 -11
  36. package/dist/{breadcrumb-TW5JEOYS.js → breadcrumb-ZCG2RHIU.js} +12 -10
  37. package/dist/{campaigns-HS6MIO7X.js → campaigns-L6ULR6KR.js} +5 -5
  38. package/dist/{categories-PKWR3FM3.js → categories-FUZQKBXV.js} +6 -6
  39. package/dist/{chunk-PDQSPKG5.js → chunk-2DXNJURE.js} +1 -1
  40. package/dist/{chunk-ZZO3INVE.js → chunk-2MDGYHWN.js} +128 -25
  41. package/dist/{chunk-5UD4P6YL.js → chunk-2USXZSTK.js} +4 -4
  42. package/dist/{chunk-6SBMVLJ2.js → chunk-36L54SQQ.js} +1 -1
  43. package/dist/chunk-37G4Y5I7.js +101 -0
  44. package/dist/{chunk-5M3SL4UZ.js → chunk-3CVJA5UE.js} +9 -104
  45. package/dist/chunk-432S4FGR.js +0 -0
  46. package/dist/{chunk-KQGVSLUI.js → chunk-44RQ5PTN.js} +1803 -914
  47. package/dist/{chunk-Y2QI7KWS.js → chunk-4LVP635F.js} +408 -664
  48. package/dist/{chunk-UL4O5M4S.js → chunk-4S6XGIC6.js} +1 -18
  49. package/dist/chunk-5ZVWOCAC.js +426 -0
  50. package/dist/{chunk-WITQNQXN.js → chunk-6BS2AVGJ.js} +3 -3
  51. package/dist/{chunk-ZYOXKUKZ.js → chunk-7LBY5JLV.js} +1 -1
  52. package/dist/chunk-7SLWXX6L.js +811 -0
  53. package/dist/{chunk-LQYMBSRQ.js → chunk-AIZM66CG.js} +1 -1
  54. package/dist/{chunk-IZ5RG5XI.js → chunk-AJLGY3LQ.js} +1 -21
  55. package/dist/{chunk-WFE6CT6M.js → chunk-AVOIZO63.js} +21 -77
  56. package/dist/chunk-C2FG3SX2.js +68 -0
  57. package/dist/chunk-CFRWIQIZ.js +43 -0
  58. package/dist/{chunk-WNVEMFIK.js → chunk-CNMY5HVP.js} +2 -2
  59. package/dist/{chunk-BLVJAKBA.js → chunk-DDH7ULIQ.js} +1 -1
  60. package/dist/chunk-DIW4GRTI.js +503 -0
  61. package/dist/{chunk-JQP7MOFH.js → chunk-DVEKYLPV.js} +1 -1
  62. package/dist/{chunk-QX45GVAL.js → chunk-EIUYXS7E.js} +8 -8
  63. package/dist/{chunk-N7OVXN72.js → chunk-EROX26D4.js} +1 -1
  64. package/dist/{chunk-2RHAI7WK.js → chunk-EZ3JOAUS.js} +1 -1
  65. package/dist/{chunk-HFRHHT36.js → chunk-FDR22JMM.js} +63 -8
  66. package/dist/{chunk-PEKANQ3T.js → chunk-FJUUGFXL.js} +2 -2
  67. package/dist/{chunk-3CK6OINO.js → chunk-GDWBOQI5.js} +3 -5
  68. package/dist/{chunk-47SXTGLN.js → chunk-GXIAIITP.js} +63 -200
  69. package/dist/{chunk-4MFMCZEJ.js → chunk-H6LZ77GX.js} +2 -2
  70. package/dist/chunk-IWLDKGYQ.js +95 -0
  71. package/dist/chunk-K4X324QP.js +18 -0
  72. package/dist/{chunk-VQ5EKDA3.js → chunk-KD7RYE6R.js} +1 -1
  73. package/dist/chunk-LEWA4BPH.js +18 -0
  74. package/dist/{chunk-7Q5SDEK7.js → chunk-LNM2D2I4.js} +4 -4
  75. package/dist/{chunk-LPOAVK6Y.js → chunk-LQD232FW.js} +47 -12
  76. package/dist/{chunk-OXXL4WQU.js → chunk-M7KSRYRI.js} +5 -5
  77. package/dist/chunk-MBFHMJHN.js +2063 -0
  78. package/dist/{chunk-I2IKYOZX.js → chunk-N4MVIBFM.js} +19 -19
  79. package/dist/{chunk-PCMNEUMV.js → chunk-NHFEY3EI.js} +1 -1
  80. package/dist/{chunk-RTAWYMQP.js → chunk-NJMNYS7G.js} +1 -1
  81. package/dist/{chunk-HGQTL7NX.js → chunk-NSZQERLE.js} +2 -2
  82. package/dist/{chunk-RL7SFZOF.js → chunk-NXNJQZCP.js} +1 -1
  83. package/dist/{chunk-CNLP35S7.js → chunk-OD3U3TX4.js} +16 -31
  84. package/dist/{chunk-D2MA5TAP.js → chunk-PBD36EZJ.js} +2 -2
  85. package/dist/{chunk-4ZGFODSC.js → chunk-PZ44R4AS.js} +1 -1
  86. package/dist/{chunk-ZEVYT6IX.js → chunk-QNNJN4H6.js} +116 -286
  87. package/dist/{chunk-WBI7FEGI.js → chunk-QS6RWIBL.js} +1 -1
  88. package/dist/chunk-QT7YFHCA.js +198 -0
  89. package/dist/{chunk-GYV6SKY7.js → chunk-QXLRABYH.js} +4 -6
  90. package/dist/chunk-RXZFEFNV.js +73 -0
  91. package/dist/{chunk-RUE5BPC2.js → chunk-RZLN2Q6G.js} +1 -1
  92. package/dist/{chunk-NYDJTWRL.js → chunk-SGR4DMCW.js} +4 -4
  93. package/dist/chunk-T6LHVNWO.js +27 -0
  94. package/dist/{chunk-DKQ4XMSN.js → chunk-TNVYTMBL.js} +6 -6
  95. package/dist/{chunk-32RYSB2V.js → chunk-TODJFRLH.js} +2 -2
  96. package/dist/{chunk-P3ZTO6T2.js → chunk-UAF2S447.js} +1 -1
  97. package/dist/{chunk-J6BRLL3F.js → chunk-UCQKXXLD.js} +2 -2
  98. package/dist/chunk-UORPTGV2.js +114 -0
  99. package/dist/{chunk-CYTNBXWF.js → chunk-UX7J5NZG.js} +9 -9
  100. package/dist/{chunk-X4FLOQ45.js → chunk-WBHFU3MG.js} +2 -2
  101. package/dist/chunk-WLT7K7K7.js +63 -0
  102. package/dist/{chunk-4URLUCTD.js → chunk-WUPJADSO.js} +2 -2
  103. package/dist/{chunk-ITI54CII.js → chunk-X4INVIWL.js} +5 -5
  104. package/dist/{chunk-PTW7JNAP.js → chunk-XFQJU6FA.js} +4 -4
  105. package/dist/{collections-DJZI2RM2.js → collections-3OPR3DSD.js} +22 -19
  106. package/dist/{configuration-RHPIO2QT.js → configuration-C4IGBNXH.js} +1 -1
  107. package/dist/{configuration-GN3TO77H.js → configuration-UOSNP45I.js} +3 -3
  108. package/dist/{create-3EK5CNNX.js → create-2MQFQHTE.js} +33 -29
  109. package/dist/{create-YO55Z3YD.js → create-2PCLG7TV.js} +32 -38
  110. package/dist/{create-G4T2PAJH.js → create-35MYQPVM.js} +23 -21
  111. package/dist/{create-HKJVSFB7.js → create-BJ4OO6LS.js} +23 -21
  112. package/dist/create-DDPIXCXT.js +210 -0
  113. package/dist/{create-7S7CZWEN.js → create-GB3ZA4LH.js} +4 -4
  114. package/dist/create-JDGM5KXE.js +193 -0
  115. package/dist/{create-IDVCZHIX.js → create-ORXYT74H.js} +14 -12
  116. package/dist/{create-GHM7OTCR.js → create-R7K3ECN6.js} +1 -1
  117. package/dist/{create-D6EW3EWC.js → create-SFU3W3ZH.js} +1 -1
  118. package/dist/{create-3ZVXEPX5.js → create-SQ3FYMGI.js} +25 -21
  119. package/dist/{create-33TRLASX.js → create-UPYB65PD.js} +1 -1
  120. package/dist/{create-OCFPLNNY.js → create-UQNYMVBM.js} +6 -6
  121. package/dist/{create-OGLPDVOI.js → create-XAD5NMSJ.js} +37 -35
  122. package/dist/{create-KGYL7FBM.js → create-XVHOCZHJ.js} +1 -1
  123. package/dist/{create-4AE3VTWN.js → create-YBF4YGWG.js} +2 -2
  124. package/dist/{customers-6ZLE65UX.js → customers-ETXVNM3G.js} +5 -5
  125. package/dist/{edit-QBISX7D3.js → edit-2Q7TRUTL.js} +14 -12
  126. package/dist/{edit-B5B3XKDM.js → edit-522DG3BY.js} +1 -1
  127. package/dist/{edit-ATXE6CM5.js → edit-C4OCKQVU.js} +1 -1
  128. package/dist/{edit-IR6V2IDN.js → edit-FKXIQ6ZI.js} +19 -17
  129. package/dist/{edit-4HZHLYI3.js → edit-GQNIINRR.js} +1 -1
  130. package/dist/{edit-LRRJTHV2.js → edit-KAKVPHZZ.js} +1 -1
  131. package/dist/{edit-ZSOI56BQ.js → edit-L5ZZLMAY.js} +22 -22
  132. package/dist/{edit-FNDDSSMT.js → edit-NYD45J2Q.js} +37 -8
  133. package/dist/{edit-GIJXLMC3.js → edit-O4JLGKQR.js} +2 -2
  134. package/dist/{edit-5CJZRHAA.js → edit-ORXS3A2Y.js} +1 -1
  135. package/dist/{edit-FC64DWB2.js → edit-Q3UQIOLS.js} +1 -1
  136. package/dist/{edit-7HTH2UJF.js → edit-REDDBLTA.js} +3 -3
  137. package/dist/{edit-2KRJIPRK.js → edit-SGUY2CCK.js} +19 -17
  138. package/dist/{edit-B75KK5ZX.js → edit-SWRWWFW6.js} +35 -31
  139. package/dist/{edit-7GVP6SRA.js → edit-ZAHCMF5U.js} +1 -1
  140. package/dist/{edit-RNT555GP.js → edit-ZCXUG42Q.js} +13 -11
  141. package/dist/{edit-MYSWY6W4.js → edit-ZMERG3L7.js} +1 -1
  142. package/dist/{edit-budget-J27CSEZH.js → edit-budget-L3CCEWNF.js} +1 -1
  143. package/dist/{edit-inventory-item-US77M2FF.js → edit-inventory-item-6B7ITDGD.js} +2 -2
  144. package/dist/{edit-inventory-item-attributes-UGAE2NAZ.js → edit-inventory-item-attributes-Y7MQZLXI.js} +3 -3
  145. package/dist/{fulfillment-DCS67LTK.js → fulfillment-75Z4H23W.js} +16 -14
  146. package/dist/{fulfillment-providers-GM5PO6N3.js → fulfillment-providers-KCQWL62T.js} +20 -17
  147. package/dist/index.css +27 -62
  148. package/dist/index.d.ts +3 -10
  149. package/dist/index.js +522 -458
  150. package/dist/{inventory-OPZ2FSEE.js → inventory-KAUVPMPZ.js} +6 -6
  151. package/dist/{invite-764K3TJS.js → invite-6CPYVHDX.js} +24 -21
  152. package/dist/{invite-KEJLNXEZ.js → invite-CI2P4GF6.js} +15 -12
  153. package/dist/loader-FBB5OQRT.js +31 -0
  154. package/dist/{locations-ZVPTQCQY.js → locations-INS6FTMJ.js} +4 -4
  155. package/dist/{login-OUHRNNXA.js → login-KY342RMK.js} +12 -10
  156. package/dist/{manage-locations-YUKEFCBJ.js → manage-locations-WNHEBS3A.js} +2 -2
  157. package/dist/{media-4KYFHB5V.js → media-KOYAOXG6.js} +41 -9
  158. package/dist/{metadata-NYYL26MQ.js → metadata-2CMH4I6U.js} +16 -14
  159. package/dist/{metadata-AWUKZ25V.js → metadata-5BPOBBU2.js} +3 -3
  160. package/dist/{metadata-OCE6A3JE.js → metadata-GWI6R4ES.js} +15 -13
  161. package/dist/{metadata-G7KZXVNE.js → metadata-NUXUC2JA.js} +15 -13
  162. package/dist/{metadata-XP3ZYW2M.js → metadata-TLDUF5KV.js} +17 -15
  163. package/dist/{metadata-PYY4IB7K.js → metadata-WR4RFXO5.js} +16 -14
  164. package/dist/offer-create-page-YKMHHTU5.js +743 -0
  165. package/dist/offer-detail-page-6MAHNNIO.js +488 -0
  166. package/dist/offer-edit-page-DYQFU6JU.js +151 -0
  167. package/dist/offer-inventory-batch-page-WKCWNDNK.js +290 -0
  168. package/dist/offer-pricing-edit-page-4TYGGSOE.js +195 -0
  169. package/dist/offers-UGQJNGTD.js +32 -0
  170. package/dist/{onboarding-WXZHW62K.js → onboarding-43LQQQGQ.js} +22 -20
  171. package/dist/{orders-LWJ472VM.js → orders-R2LOJ6N5.js} +24 -21
  172. package/dist/organization-XGFU4YDG.js +375 -0
  173. package/dist/{organize-RFOMQCBG.js → organize-HNJUHEEG.js} +4 -4
  174. package/dist/{organize-OVKJ3HZO.js → organize-K6QMAMEN.js} +4 -4
  175. package/dist/pages/index.d.ts +415 -758
  176. package/dist/pages/index.js +81 -77
  177. package/dist/{payment-details-UVXYCTUK.js → payment-details-64US5XWD.js} +17 -15
  178. package/dist/{payouts-TR7K5I37.js → payouts-UXJDTXDL.js} +6 -6
  179. package/dist/{price-lists-S2WNELFZ.js → price-lists-KBPUVSZI.js} +8 -8
  180. package/dist/{pricing-UF27DAXA.js → pricing-DF6C5XK4.js} +35 -32
  181. package/dist/{product-tags-2CKH2M6D.js → product-tags-CL7HSEDI.js} +32 -28
  182. package/dist/{product-types-FX43JEO2.js → product-types-UUHBV4IZ.js} +5 -5
  183. package/dist/product-variant-detail-RVWEYVPC.js +220 -0
  184. package/dist/{product-variant-edit-P3DSIFE3.js → product-variant-edit-MNCS7ZYW.js} +126 -66
  185. package/dist/{products-H5EMRJYS.js → products-4KV5Y2JY.js} +23 -19
  186. package/dist/{products-2LHGS7X3.js → products-SXYTQFJ3.js} +40 -43
  187. package/dist/{professional-details-HYKTH44B.js → professional-details-5T2VS6MM.js} +16 -14
  188. package/dist/{profile-PB27WIRW.js → profile-6XGHAT7H.js} +20 -18
  189. package/dist/{promotions-5EYPGHJP.js → promotions-O7U4BTK6.js} +8 -8
  190. package/dist/{register-4O4F6YZK.js → register-GDKN3SKM.js} +16 -14
  191. package/dist/{reset-password-GTWLBOFK.js → reset-password-EICPAY2N.js} +1 -1
  192. package/dist/{return-reasons-LOKYRGMI.js → return-reasons-M6IR77XW.js} +16 -14
  193. package/dist/{sales-channels-7R2IY3KG.js → sales-channels-B6FULRWI.js} +8 -7
  194. package/dist/{sales-channels-Y4LRP7JC.js → sales-channels-JW3QUYR7.js} +8 -7
  195. package/dist/{settings-2XDLFYMS.js → settings-SAAHTUZZ.js} +39 -35
  196. package/dist/{shipment-4GW2JFWB.js → shipment-Q33QBMXX.js} +13 -11
  197. package/dist/{shipping-profile-R3NABPQF.js → shipping-profile-Y4SNEPZX.js} +2 -2
  198. package/dist/{shipping-profiles-QVKNFLCW.js → shipping-profiles-2NWKCEJK.js} +18 -16
  199. package/dist/{stock-5RXNUPUT.js → stock-7CSVEJJU.js} +19 -17
  200. package/dist/{store-DE2RGX7T.js → store-GHFWU7EV.js} +28 -25
  201. package/dist/{store-closure-DNMCHUXD.js → store-closure-P5PD2RSV.js} +16 -14
  202. package/dist/{store-select-GZEJHRZ7.js → store-select-KDT6USQA.js} +17 -15
  203. package/dist/{tax-regions-UD6P5FVC.js → tax-regions-YXZW7UVX.js} +5 -5
  204. package/dist/{team-JXKAVRPU.js → team-EDJ62747.js} +25 -23
  205. package/dist/types-CtCEtTE6.d.ts +16 -0
  206. package/package.json +3 -3
  207. package/dist/[id]-BYP37PU4.js +0 -1314
  208. package/dist/add-KRAGFFBJ.js +0 -158
  209. package/dist/bulk-edit-3SMBLIOA.js +0 -244
  210. package/dist/chunk-4KX6CBJ4.js +0 -178
  211. package/dist/chunk-DLNNTQRY.js +0 -217
  212. package/dist/chunk-FX4V5JCF.js +0 -37
  213. package/dist/chunk-GC33DBKG.js +0 -143
  214. package/dist/chunk-NK4NR6MN.js +0 -173
  215. package/dist/chunk-PFU6FSXY.js +0 -430
  216. package/dist/chunk-QJEOPT2P.js +0 -330
  217. package/dist/chunk-QSGR43JM.js +0 -30
  218. package/dist/chunk-STR3NGWE.js +0 -3736
  219. package/dist/create-3DOO3RNH.js +0 -716
  220. package/dist/create-I7HV3RM6.js +0 -150
  221. package/dist/edit-K2AD335I.js +0 -237
  222. package/dist/edit-VO5XLIEL.js +0 -362
  223. package/dist/edit-stocks-and-prices-MHHQFWFA.js +0 -408
  224. package/dist/organization-LPYQRTQC.js +0 -303
  225. package/dist/prices-3OXV5RGY.js +0 -270
  226. package/dist/product-variant-detail-WV4KXVXR.js +0 -590
  227. package/dist/stock-GPC3BCL6.js +0 -500
  228. package/dist/{chunk-SDSEW72R.js → chunk-E2HQPY32.js} +3 -3
  229. package/dist/{chunk-6WY5X4PE.js → chunk-L7QKFC5N.js} +7 -7
  230. /package/dist/{chunk-CAS74NLJ.js → chunk-YV6MK4PZ.js} +0 -0
@@ -1,303 +0,0 @@
1
- import {
2
- CategoryCombobox
3
- } from "./chunk-PFU6FSXY.js";
4
- import {
5
- useComboboxData
6
- } from "./chunk-OVPAOBZB.js";
7
- import {
8
- Combobox
9
- } from "./chunk-VBRTC2VU.js";
10
- import "./chunk-TKGWSUEI.js";
11
- import {
12
- KeyboundForm
13
- } from "./chunk-U2ZFCAPX.js";
14
- import {
15
- RouteDrawer,
16
- useRouteModal
17
- } from "./chunk-3CK6OINO.js";
18
- import {
19
- Form
20
- } from "./chunk-3QSRE5LS.js";
21
- import "./chunk-RUE5BPC2.js";
22
- import "./chunk-INNFZYX2.js";
23
- import {
24
- useProduct,
25
- useUpdateProduct
26
- } from "./chunk-ZEVYT6IX.js";
27
- import "./chunk-A5DJIOHN.js";
28
- import "./chunk-RHKRREUU.js";
29
- import "./chunk-ZA2KFUFR.js";
30
- import {
31
- sdk
32
- } from "./chunk-RIN4CBRB.js";
33
- import "./chunk-NBMM2TZK.js";
34
-
35
- // src/pages/products/[id]/organization/index.tsx
36
- import { Heading } from "@medusajs/ui";
37
- import { useTranslation as useTranslation2 } from "react-i18next";
38
- import { useParams } from "react-router-dom";
39
-
40
- // src/pages/products/[id]/organization/product-organization-form/product-organization-form.tsx
41
- import { useMemo } from "react";
42
- import { Button, toast } from "@medusajs/ui";
43
- import { useTranslation } from "react-i18next";
44
- import { useForm } from "react-hook-form";
45
- import { zodResolver } from "@hookform/resolvers/zod";
46
- import * as zod from "zod";
47
- import { jsx, jsxs } from "react/jsx-runtime";
48
- var uniq = (arr) => Array.from(new Set(arr.filter(Boolean)));
49
- var isCategoryId = (id) => id.startsWith("pcat_");
50
- var isSecondaryCategoryRelationId = (id) => id.startsWith("sec_cat_");
51
- var getSecondaryCategoriesSnapshot = (product) => {
52
- const relationEntries = product.secondary_categories ?? [];
53
- const relationSecCatIds = relationEntries.map((cat) => cat?.id).filter((id) => typeof id === "string" && isSecondaryCategoryRelationId(id));
54
- const relationCategoryIds = relationEntries.map((cat) => {
55
- const candidates = [
56
- cat?.id,
57
- cat?.category_id,
58
- cat?.product_category_id,
59
- cat?.product_category?.id,
60
- cat?.category?.id
61
- ].filter(Boolean);
62
- return candidates.find(isCategoryId);
63
- }).filter((id) => Boolean(id));
64
- const entries = product.additional_data?.secondary_categories ?? [];
65
- const additionalCategoryIds = entries.flatMap((entry) => entry?.category_ids ?? []);
66
- const additionalIds = entries.flatMap((entry) => entry?.secondary_categories_ids ?? []);
67
- const additionalCategoryIdsFromSecondaryIds = additionalIds.filter(isCategoryId);
68
- const additionalSecCatIds = additionalIds.filter(isSecondaryCategoryRelationId);
69
- const categoryIds = uniq(
70
- relationCategoryIds.length ? relationCategoryIds : additionalCategoryIds.length ? additionalCategoryIds : additionalCategoryIdsFromSecondaryIds
71
- );
72
- const secCatIdByCategoryId = /* @__PURE__ */ new Map();
73
- relationEntries.forEach((entry) => {
74
- const secCatId = typeof entry?.id === "string" && isSecondaryCategoryRelationId(entry.id) ? entry.id : void 0;
75
- const catIdCandidates = [entry?.category_id, entry?.product_category_id, entry?.product_category?.id, entry?.category?.id].filter(Boolean);
76
- const catId = catIdCandidates.find(isCategoryId);
77
- if (secCatId && catId) secCatIdByCategoryId.set(catId, secCatId);
78
- });
79
- if (additionalCategoryIds.length > 0 && additionalSecCatIds.length > 0 && additionalCategoryIds.length === additionalSecCatIds.length) {
80
- for (let i = 0; i < additionalCategoryIds.length; i++) {
81
- secCatIdByCategoryId.set(additionalCategoryIds[i], additionalSecCatIds[i]);
82
- }
83
- }
84
- return { categoryIds, secCatIds: uniq([...relationSecCatIds, ...additionalSecCatIds]), secCatIdByCategoryId };
85
- };
86
- var diff = (next, prev) => {
87
- const prevSet = new Set(prev);
88
- return next.filter((id) => !prevSet.has(id));
89
- };
90
- var ProductOrganizationSchema = zod.object({
91
- type_id: zod.string().nullable(),
92
- collection_id: zod.string().nullable(),
93
- categories: zod.array(zod.string()).min(1),
94
- secondary_categories: zod.array(zod.string()).optional(),
95
- tag_ids: zod.array(zod.string()).nullable()
96
- });
97
- var ProductOrganizationForm = ({ product }) => {
98
- const { t } = useTranslation();
99
- const { handleSuccess } = useRouteModal();
100
- const collections = useComboboxData({
101
- queryKey: ["product_collections"],
102
- queryFn: (params) => sdk.vendor.collections.query(params),
103
- getOptions: (data) => data.collections.map((collection) => ({
104
- label: collection.title,
105
- value: collection.id
106
- }))
107
- });
108
- const types = useComboboxData({
109
- queryKey: ["product_types"],
110
- queryFn: (params) => fetchQuery("/vendor/product-types", {
111
- method: "GET",
112
- query: params
113
- }),
114
- getOptions: (data) => data.product_types.map((type) => ({
115
- label: type.value,
116
- value: type.id
117
- }))
118
- });
119
- const tags = useComboboxData({
120
- queryKey: ["product_tags"],
121
- queryFn: (params) => fetchQuery("/vendor/product-tags", {
122
- method: "GET",
123
- query: params
124
- }),
125
- getOptions: (data) => data.product_tags.map((tag) => ({
126
- label: tag.value,
127
- value: tag.id
128
- }))
129
- });
130
- const secondarySnapshot = useMemo(
131
- () => getSecondaryCategoriesSnapshot(product),
132
- [product]
133
- );
134
- const form = useForm({
135
- defaultValues: {
136
- type_id: product.type_id ?? "",
137
- collection_id: product.collection_id ?? "",
138
- categories: product.categories?.map((cat) => cat.id) || [],
139
- secondary_categories: secondarySnapshot.categoryIds,
140
- tag_ids: product.tags?.map((t2) => t2.id) || []
141
- },
142
- resolver: zodResolver(ProductOrganizationSchema)
143
- });
144
- const { mutateAsync, isPending } = useUpdateProduct(product.id);
145
- const handleSubmit = form.handleSubmit(async (data) => {
146
- const nextCategoryIds = uniq(Array.isArray(data.secondary_categories) ? data.secondary_categories : []);
147
- const currentCategoryIds = secondarySnapshot.categoryIds;
148
- const addCategoryIds = diff(nextCategoryIds, currentCategoryIds);
149
- const removedCategoryIds = diff(currentCategoryIds, nextCategoryIds);
150
- const existingSecCatIds = secondarySnapshot.secCatIds;
151
- const removeSecCatIdsFromMap = removedCategoryIds.map((catId) => secondarySnapshot.secCatIdByCategoryId.get(catId)).filter((id) => Boolean(id));
152
- const canMapAllRemovals = removedCategoryIds.length === removeSecCatIdsFromMap.length;
153
- const removeSecCatIds = uniq(
154
- removedCategoryIds.length === 0 ? [] : canMapAllRemovals ? removeSecCatIdsFromMap : existingSecCatIds
155
- );
156
- const hasSecondaryCatsChanges = addCategoryIds.length > 0 || removedCategoryIds.length > 0;
157
- const payload = {
158
- type_id: data.type_id || null,
159
- collection_id: data.collection_id || null,
160
- categories: data.categories?.map((id) => ({ id })) || [],
161
- tags: data.tag_ids?.map((t2) => ({ id: t2 })) ?? [],
162
- ...hasSecondaryCatsChanges && {
163
- additional_data: {
164
- secondary_categories: [
165
- {
166
- product_id: product.id,
167
- add: canMapAllRemovals ? addCategoryIds : nextCategoryIds,
168
- remove: removeSecCatIds,
169
- secondary_categories_ids: existingSecCatIds
170
- }
171
- ]
172
- }
173
- }
174
- };
175
- await mutateAsync(payload, {
176
- onSuccess: ({ product: product2 }) => {
177
- toast.success(t("products.organization.edit.toasts.success", { title: product2?.title }));
178
- handleSuccess();
179
- },
180
- onError: (error) => {
181
- toast.error(error.message);
182
- }
183
- });
184
- });
185
- return /* @__PURE__ */ jsx(RouteDrawer.Form, { form, children: /* @__PURE__ */ jsxs(KeyboundForm, { onSubmit: handleSubmit, className: "flex h-full flex-col", children: [
186
- /* @__PURE__ */ jsx(RouteDrawer.Body, { children: /* @__PURE__ */ jsxs("div", { className: "flex h-full flex-col gap-y-4", children: [
187
- /* @__PURE__ */ jsx(
188
- Form.Field,
189
- {
190
- control: form.control,
191
- name: "tag_ids",
192
- render: ({ field }) => /* @__PURE__ */ jsxs(Form.Item, { children: [
193
- /* @__PURE__ */ jsx(Form.Label, { optional: true, children: t("products.fields.tags.label") }),
194
- /* @__PURE__ */ jsx(Form.Control, { children: /* @__PURE__ */ jsx(
195
- Combobox,
196
- {
197
- ...field,
198
- multiple: true,
199
- options: tags.options,
200
- onSearchValueChange: tags.onSearchValueChange,
201
- searchValue: tags.searchValue,
202
- allowClear: true
203
- }
204
- ) }),
205
- /* @__PURE__ */ jsx(Form.ErrorMessage, {})
206
- ] })
207
- }
208
- ),
209
- /* @__PURE__ */ jsx(
210
- Form.Field,
211
- {
212
- control: form.control,
213
- name: "type_id",
214
- render: ({ field }) => /* @__PURE__ */ jsxs(Form.Item, { children: [
215
- /* @__PURE__ */ jsx(Form.Label, { optional: true, children: t("products.fields.type.label") }),
216
- /* @__PURE__ */ jsx(Form.Control, { children: /* @__PURE__ */ jsx(
217
- Combobox,
218
- {
219
- ...field,
220
- options: types.options,
221
- searchValue: types.searchValue,
222
- onSearchValueChange: types.onSearchValueChange,
223
- fetchNextPage: types.fetchNextPage,
224
- allowClear: true
225
- }
226
- ) }),
227
- /* @__PURE__ */ jsx(Form.ErrorMessage, {})
228
- ] })
229
- }
230
- ),
231
- /* @__PURE__ */ jsx(
232
- Form.Field,
233
- {
234
- control: form.control,
235
- name: "categories",
236
- render: ({ field }) => /* @__PURE__ */ jsxs(Form.Item, { children: [
237
- /* @__PURE__ */ jsx(Form.Label, { tooltip: t("products.fields.primaryCategory.tooltip"), children: t("products.fields.primaryCategory.label") }),
238
- /* @__PURE__ */ jsx(Form.Control, { children: /* @__PURE__ */ jsx(CategoryCombobox, { ...field, isSingleSelect: true, allowClear: false }) }),
239
- /* @__PURE__ */ jsx(Form.ErrorMessage, {})
240
- ] })
241
- }
242
- ),
243
- /* @__PURE__ */ jsx(
244
- Form.Field,
245
- {
246
- control: form.control,
247
- name: "secondary_categories",
248
- render: ({ field }) => /* @__PURE__ */ jsxs(Form.Item, { children: [
249
- /* @__PURE__ */ jsx(Form.Label, { optional: true, children: t("products.fields.secondaryCategories.label", "Secondary Categories") }),
250
- /* @__PURE__ */ jsx(Form.Control, { children: /* @__PURE__ */ jsx(CategoryCombobox, { ...field, value: field.value || [] }) }),
251
- /* @__PURE__ */ jsx(Form.ErrorMessage, {})
252
- ] })
253
- }
254
- ),
255
- /* @__PURE__ */ jsx(
256
- Form.Field,
257
- {
258
- control: form.control,
259
- name: "collection_id",
260
- render: ({ field }) => /* @__PURE__ */ jsxs(Form.Item, { children: [
261
- /* @__PURE__ */ jsx(Form.Label, { optional: true, children: t("products.fields.collection.label") }),
262
- /* @__PURE__ */ jsx(Form.Control, { children: /* @__PURE__ */ jsx(
263
- Combobox,
264
- {
265
- ...field,
266
- multiple: false,
267
- options: collections.options,
268
- onSearchValueChange: collections.onSearchValueChange,
269
- searchValue: collections.searchValue,
270
- allowClear: true
271
- }
272
- ) }),
273
- /* @__PURE__ */ jsx(Form.ErrorMessage, {})
274
- ] })
275
- }
276
- )
277
- ] }) }),
278
- /* @__PURE__ */ jsx(RouteDrawer.Footer, { children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-end gap-x-2", children: [
279
- /* @__PURE__ */ jsx(RouteDrawer.Close, { asChild: true, children: /* @__PURE__ */ jsx(Button, { size: "small", variant: "secondary", children: t("actions.cancel") }) }),
280
- /* @__PURE__ */ jsx(Button, { size: "small", type: "submit", isLoading: isPending, children: t("actions.save") })
281
- ] }) })
282
- ] }) });
283
- };
284
-
285
- // src/pages/products/[id]/organization/index.tsx
286
- import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
287
- var Component = () => {
288
- const { id } = useParams();
289
- const { t } = useTranslation2();
290
- const { product, isLoading, isError, error } = useProduct(id, {
291
- fields: "*categories"
292
- });
293
- if (isError) {
294
- throw error;
295
- }
296
- return /* @__PURE__ */ jsxs2(RouteDrawer, { children: [
297
- /* @__PURE__ */ jsx2(RouteDrawer.Header, { children: /* @__PURE__ */ jsx2(RouteDrawer.Title, { asChild: true, children: /* @__PURE__ */ jsx2(Heading, { children: t("products.organization.edit.header") }) }) }),
298
- !isLoading && product && /* @__PURE__ */ jsx2(ProductOrganizationForm, { product })
299
- ] });
300
- };
301
- export {
302
- Component
303
- };
@@ -1,270 +0,0 @@
1
- import {
2
- castNumber
3
- } from "./chunk-SMQT3ZNO.js";
4
- import {
5
- DataGrid,
6
- createDataGridHelper,
7
- createDataGridPriceColumns
8
- } from "./chunk-Y2QI7KWS.js";
9
- import "./chunk-IQPN4PZJ.js";
10
- import "./chunk-TKGWSUEI.js";
11
- import {
12
- KeyboundForm
13
- } from "./chunk-U2ZFCAPX.js";
14
- import {
15
- RouteFocusModal,
16
- useRouteModal
17
- } from "./chunk-3CK6OINO.js";
18
- import "./chunk-3QSRE5LS.js";
19
- import {
20
- usePricePreferences,
21
- useRegions
22
- } from "./chunk-UL4O5M4S.js";
23
- import {
24
- useStore
25
- } from "./chunk-FX4V5JCF.js";
26
- import "./chunk-WIYFXWRI.js";
27
- import "./chunk-LAVHRER2.js";
28
- import "./chunk-Y7QKP6QU.js";
29
- import "./chunk-INNFZYX2.js";
30
- import {
31
- useProduct,
32
- useUpdateProductVariant
33
- } from "./chunk-ZEVYT6IX.js";
34
- import "./chunk-A5DJIOHN.js";
35
- import "./chunk-RHKRREUU.js";
36
- import "./chunk-ZA2KFUFR.js";
37
- import "./chunk-RIN4CBRB.js";
38
- import "./chunk-NBMM2TZK.js";
39
-
40
- // src/pages/products/[id]/prices/index.tsx
41
- import { useParams } from "react-router-dom";
42
-
43
- // src/pages/products/[id]/prices/pricing-edit.tsx
44
- import { zodResolver } from "@hookform/resolvers/zod";
45
- import { Button } from "@medusajs/ui";
46
- import { useMemo as useMemo2 } from "react";
47
- import { useForm } from "react-hook-form";
48
- import { useTranslation as useTranslation2 } from "react-i18next";
49
- import * as zod from "zod";
50
-
51
- // src/pages/products/common/variant-pricing-form.tsx
52
- import { useMemo } from "react";
53
- import { useWatch } from "react-hook-form";
54
- import { useTranslation } from "react-i18next";
55
- import { Text } from "@medusajs/ui";
56
- import { jsx } from "react/jsx-runtime";
57
- var VariantPricingForm = ({
58
- form,
59
- product
60
- }) => {
61
- const { store } = useStore();
62
- const { regions } = useRegions({ limit: 9999 });
63
- const { price_preferences: pricePreferences } = usePricePreferences({});
64
- const { setCloseOnEscape } = useRouteModal();
65
- const columns = useVariantPriceGridColumns({
66
- currencies: store?.supported_currencies,
67
- regions,
68
- pricePreferences
69
- });
70
- const variants = useWatch({
71
- control: form.control,
72
- name: "variants"
73
- });
74
- const dataWithProductInfo = useMemo(() => {
75
- if (!variants?.length) return [];
76
- const productInfoRow = {
77
- id: `product-info-${product.id}`,
78
- title: product.title,
79
- isProductInfo: true,
80
- prices: {}
81
- };
82
- return [productInfoRow, ...variants];
83
- }, [variants, product.title, product.id]);
84
- return /* @__PURE__ */ jsx(
85
- DataGrid,
86
- {
87
- columns,
88
- data: dataWithProductInfo,
89
- state: form,
90
- onEditingChange: (editing) => setCloseOnEscape(!editing)
91
- }
92
- );
93
- };
94
- var columnHelper = createDataGridHelper();
95
- var useVariantPriceGridColumns = ({
96
- currencies = [],
97
- regions: _regions = [],
98
- pricePreferences = []
99
- }) => {
100
- const { t } = useTranslation();
101
- return useMemo(() => {
102
- return [
103
- columnHelper.column({
104
- id: t("fields.title"),
105
- header: t("fields.title"),
106
- cell: (context) => {
107
- const entity = context.row.original;
108
- const isProductInfo = entity.isProductInfo;
109
- return /* @__PURE__ */ jsx(DataGrid.ReadonlyCell, { context, children: /* @__PURE__ */ jsx(
110
- "div",
111
- {
112
- className: `flex h-full w-full items-center gap-x-2 overflow-hidden ${isProductInfo ? "bg-ui-bg-field text-ui-fg-disabled" : "text-ui-fg-subtle"}`,
113
- children: /* @__PURE__ */ jsx(Text, { as: "span", className: "truncate", children: entity.title })
114
- }
115
- ) });
116
- },
117
- disableHiding: true
118
- }),
119
- ...createDataGridPriceColumns({
120
- currencies: currencies.map((c) => c.currency_code),
121
- pricePreferences,
122
- isReadyOnly: (context) => context.row.original.isProductInfo,
123
- getFieldName: (context, value) => {
124
- const entity = context.row.original;
125
- if (entity.isProductInfo) return null;
126
- return `variants.${context.row.index - 1}.prices.${value}`;
127
- },
128
- t
129
- })
130
- ];
131
- }, [t, currencies, pricePreferences]);
132
- };
133
-
134
- // src/pages/products/[id]/prices/pricing-edit.tsx
135
- import { jsx as jsx2, jsxs } from "react/jsx-runtime";
136
- var UpdateVariantPricesSchema = zod.object({
137
- variants: zod.array(
138
- zod.object({
139
- prices: zod.record(zod.string(), zod.string().or(zod.number()).optional()).optional()
140
- })
141
- )
142
- });
143
- var PricingEdit = ({
144
- product,
145
- variantId
146
- }) => {
147
- const { t } = useTranslation2();
148
- const { handleSuccess } = useRouteModal();
149
- const { mutateAsync, isPending } = useUpdateProductVariant(
150
- product.id,
151
- variantId
152
- );
153
- const { regions } = useRegions({ limit: 9999 });
154
- const regionsCurrencyMap = useMemo2(() => {
155
- if (!regions?.length) {
156
- return {};
157
- }
158
- return regions.reduce(
159
- (acc, reg) => {
160
- acc[reg.id] = reg.currency_code;
161
- return acc;
162
- },
163
- {}
164
- );
165
- }, [regions]);
166
- const variants = variantId ? product.variants?.filter((v) => v.id === variantId) : product.variants;
167
- const form = useForm({
168
- defaultValues: {
169
- variants: variants?.map((variant) => ({
170
- title: variant.title,
171
- prices: variant.prices?.reduce(
172
- (acc, price) => {
173
- const priceWithRules = price;
174
- if (priceWithRules.rules?.region_id) {
175
- acc[priceWithRules.rules.region_id] = price.amount;
176
- } else {
177
- acc[price.currency_code] = price.amount;
178
- }
179
- return acc;
180
- },
181
- {}
182
- ) || {}
183
- }))
184
- },
185
- resolver: zodResolver(UpdateVariantPricesSchema, {})
186
- });
187
- const handleSubmit = form.handleSubmit(async (values) => {
188
- const reqData = values.variants.map((variant, ind) => {
189
- const currentVariant = variants?.[ind];
190
- if (!currentVariant) {
191
- return null;
192
- }
193
- return {
194
- ...currentVariant,
195
- prices: Object.entries(variant.prices || {}).filter(
196
- ([_, value]) => value !== "" && typeof value !== "undefined"
197
- // deleted cells
198
- ).map(([currencyCodeOrRegionId, value]) => {
199
- const regionId = currencyCodeOrRegionId.startsWith("reg_") ? currencyCodeOrRegionId : void 0;
200
- const currencyCode = currencyCodeOrRegionId.startsWith("reg_") ? regionsCurrencyMap[regionId] : currencyCodeOrRegionId;
201
- let existingId;
202
- if (regionId && currentVariant.prices) {
203
- existingId = currentVariant.prices.find((p) => {
204
- const priceWithRules = p;
205
- return priceWithRules.rules?.region_id === regionId;
206
- })?.id;
207
- } else if (currentVariant.prices) {
208
- existingId = currentVariant.prices.find((p) => {
209
- const priceWithRules = p;
210
- return p.currency_code === currencyCode && Object.keys(priceWithRules.rules ?? {}).length === 0;
211
- })?.id;
212
- }
213
- const amount = castNumber(value);
214
- return {
215
- id: existingId,
216
- currency_code: currencyCode || "",
217
- amount,
218
- ...regionId ? { rules: { region_id: regionId } } : {}
219
- };
220
- })
221
- };
222
- });
223
- const data = reqData[0];
224
- if (!data) {
225
- return;
226
- }
227
- const cleanData = {
228
- title: data.title || void 0,
229
- sku: data.sku || void 0,
230
- prices: data.prices
231
- };
232
- await mutateAsync(cleanData, {
233
- onSuccess: () => {
234
- handleSuccess("..");
235
- }
236
- });
237
- });
238
- return /* @__PURE__ */ jsx2(RouteFocusModal.Form, { form, children: /* @__PURE__ */ jsxs(KeyboundForm, { onSubmit: handleSubmit, className: "flex size-full flex-col", children: [
239
- /* @__PURE__ */ jsx2(RouteFocusModal.Header, {}),
240
- /* @__PURE__ */ jsx2(RouteFocusModal.Body, { className: "flex flex-col overflow-hidden", children: /* @__PURE__ */ jsx2(VariantPricingForm, { form, product }) }),
241
- /* @__PURE__ */ jsx2(RouteFocusModal.Footer, { children: /* @__PURE__ */ jsxs("div", { className: "flex w-full items-center justify-end gap-x-2", children: [
242
- /* @__PURE__ */ jsx2(RouteFocusModal.Close, { asChild: true, children: /* @__PURE__ */ jsx2(Button, { variant: "secondary", size: "small", children: t("actions.cancel") }) }),
243
- /* @__PURE__ */ jsx2(
244
- Button,
245
- {
246
- type: "submit",
247
- variant: "primary",
248
- size: "small",
249
- isLoading: isPending,
250
- children: t("actions.save")
251
- }
252
- )
253
- ] }) })
254
- ] }) });
255
- };
256
-
257
- // src/pages/products/[id]/prices/index.tsx
258
- import { jsx as jsx3 } from "react/jsx-runtime";
259
- var Component = () => {
260
- const { id, product_id, variant_id } = useParams();
261
- const productId = id || product_id;
262
- const { product, isLoading, isError, error } = useProduct(productId);
263
- if (isError) {
264
- throw error;
265
- }
266
- return /* @__PURE__ */ jsx3(RouteFocusModal, { children: !isLoading && product && /* @__PURE__ */ jsx3(PricingEdit, { product, variantId: variant_id }) });
267
- };
268
- export {
269
- Component
270
- };