@mercurjs/vendor 2.2.0-canary.2 → 2.2.0-canary.21

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 (266) hide show
  1. package/dist/{[id]-KRLGIVLR.js → [id]-3JICOSAI.js} +133 -41
  2. package/dist/[id]-CR76L5TG.js +3102 -0
  3. package/dist/{[id]-7BAKUHUO.js → [id]-DDGHFRSB.js} +5 -5
  4. package/dist/{[id]-KVWYLDN3.js → [id]-E7DYRMMO.js} +162 -71
  5. package/dist/{[id]-4OBGG7OH.js → [id]-FIP4UMQ4.js} +197 -105
  6. package/dist/{[id]-3EC6HYXL.js → [id]-FZRXOJWL.js} +22 -21
  7. package/dist/{[id]-ZWWMJAKI.js → [id]-PD3ISUL5.js} +7 -7
  8. package/dist/{[id]-UUUQK22M.js → [id]-Q5AXQ5XO.js} +460 -581
  9. package/dist/{[id]-KJIQTFGE.js → [id]-VSNA6SV5.js} +15 -15
  10. package/dist/{[id]-Y2ISCLUD.js → [id]-XUKQKCDN.js} +3 -3
  11. package/dist/{[id]-K2CT7BXQ.js → [id]-YPCO3DJV.js} +1 -1
  12. package/dist/{[id]-LUFRJLAU.js → [id]-ZEFQ7FQQ.js} +36 -33
  13. package/dist/{[id]-COLO4TQJ.js → [id]-ZW7TBWDU.js} +24 -23
  14. package/dist/{[province_id]-H2QAPKVH.js → [province_id]-CHOO7ERP.js} +14 -14
  15. package/dist/{add-FIWTANZX.js → add-GYXNRUAE.js} +40 -37
  16. package/dist/{add-PBZQCIZQ.js → add-IC5R27X3.js} +95 -32
  17. package/dist/{add-customer-groups-RAHCP67U.js → add-customer-groups-KIGBZT5G.js} +20 -23
  18. package/dist/{add-products-N3V2MVLD.js → add-products-ALJVIFXU.js} +23 -22
  19. package/dist/{add-promotions-CSCAJZHV.js → add-promotions-EQ5MMQKG.js} +8 -8
  20. package/dist/{add-to-campaign-DLP7PSQB.js → add-to-campaign-C6JDNB6F.js} +4 -4
  21. package/dist/{address-7F5SN7PV.js → address-UKLDTSTP.js} +13 -13
  22. package/dist/{adjust-inventory-SZF4W7LR.js → adjust-inventory-5XPGE44Y.js} +2 -2
  23. package/dist/allocate-items-URVRAFPS.js +685 -0
  24. package/dist/{areas-7Y6BVS5A.js → areas-64VXOFYS.js} +6 -6
  25. package/dist/{attributes-MBZ76HVZ.js → attributes-YQNW5JBY.js} +2 -2
  26. package/dist/{breadcrumb-HND5FFWC.js → breadcrumb-26G7BS3Q.js} +3 -3
  27. package/dist/{breadcrumb-7PURSRTT.js → breadcrumb-2AYN2SV7.js} +12 -12
  28. package/dist/{breadcrumb-ZCG2RHIU.js → breadcrumb-4KKLMVC3.js} +12 -12
  29. package/dist/{breadcrumb-WRG4SITG.js → breadcrumb-4XSHX5RV.js} +13 -13
  30. package/dist/{breadcrumb-QV2IAX7N.js → breadcrumb-E5OF4L2J.js} +2 -2
  31. package/dist/breadcrumb-JC5FUQYF.js +28 -0
  32. package/dist/{breadcrumb-YBBYFQYG.js → breadcrumb-LBO2I4OJ.js} +1 -1
  33. package/dist/breadcrumb-PIDJ23EZ.js +13 -0
  34. package/dist/{breadcrumb-65SAGUUL.js → breadcrumb-RWYEU5JK.js} +3 -3
  35. package/dist/{breadcrumb-VWELWDB2.js → breadcrumb-VXKAO6GP.js} +1 -1
  36. package/dist/{breadcrumb-FLDHJRVY.js → breadcrumb-WMNG4P6C.js} +9 -8
  37. package/dist/{breadcrumb-EDPMEN2P.js → breadcrumb-XPQETVMM.js} +2 -2
  38. package/dist/{campaigns-L6ULR6KR.js → campaigns-4I2T6EDZ.js} +5 -5
  39. package/dist/{categories-FUZQKBXV.js → categories-3P2DRH5V.js} +10 -8
  40. package/dist/{chunk-EZ3JOAUS.js → chunk-22CIYLKO.js} +1 -1
  41. package/dist/{chunk-RZLN2Q6G.js → chunk-247L47JD.js} +1 -1
  42. package/dist/{chunk-SFQKKIHA.js → chunk-27WLUOI2.js} +1 -1
  43. package/dist/{chunk-M7KSRYRI.js → chunk-2ECD67FO.js} +2 -2
  44. package/dist/{chunk-36L54SQQ.js → chunk-2H4FGZ4U.js} +1 -1
  45. package/dist/{chunk-X2FVFUET.js → chunk-2NUZTTBU.js} +27 -8
  46. package/dist/chunk-2OY4NW7L.js +185 -0
  47. package/dist/{chunk-K4X324QP.js → chunk-36WXPGD2.js} +6 -5
  48. package/dist/{chunk-PXYDR7WQ.js → chunk-3BXCPHN6.js} +3 -2
  49. package/dist/chunk-3EDZQSKG.js +33 -0
  50. package/dist/{chunk-2DXNJURE.js → chunk-3L2DVCOC.js} +1 -1
  51. package/dist/chunk-42R54Z2X.js +8 -0
  52. package/dist/{chunk-CNMY5HVP.js → chunk-4EQIJMQT.js} +3 -3
  53. package/dist/{chunk-UAF2S447.js → chunk-4OIOYUQE.js} +3 -3
  54. package/dist/{chunk-UORPTGV2.js → chunk-4R5GESED.js} +10 -14
  55. package/dist/{chunk-WUPJADSO.js → chunk-4RFPRO2W.js} +2 -2
  56. package/dist/chunk-4YWKKCTT.js +32 -0
  57. package/dist/{chunk-XFQJU6FA.js → chunk-5QG6P6EU.js} +1 -1
  58. package/dist/{chunk-N4MVIBFM.js → chunk-5Y6RDTW2.js} +3 -3
  59. package/dist/{chunk-DZIXC7OE.js → chunk-6FLSBL4Q.js} +30 -85
  60. package/dist/{chunk-DVEKYLPV.js → chunk-6QS6IZC6.js} +1 -1
  61. package/dist/chunk-6ZGQ3SOR.js +127 -0
  62. package/dist/{chunk-NXNJQZCP.js → chunk-7FIPNQM2.js} +1 -1
  63. package/dist/{chunk-NSZQERLE.js → chunk-7GGWRJJF.js} +2 -2
  64. package/dist/{chunk-QS6RWIBL.js → chunk-7RGUD6PI.js} +34 -20
  65. package/dist/{chunk-5L2DCA4W.js → chunk-7ZPJGL4C.js} +57 -6
  66. package/dist/{chunk-KD7RYE6R.js → chunk-AG6KIAUD.js} +2 -2
  67. package/dist/{chunk-UCQKXXLD.js → chunk-AKKIZD2P.js} +32 -34
  68. package/dist/chunk-CHBURL76.js +438 -0
  69. package/dist/{chunk-PBD36EZJ.js → chunk-CI4YXVQF.js} +2 -2
  70. package/dist/{chunk-7LBY5JLV.js → chunk-DAV7WS53.js} +1 -1
  71. package/dist/{chunk-6BS2AVGJ.js → chunk-DNXMONCL.js} +6 -6
  72. package/dist/{chunk-TNVYTMBL.js → chunk-E4O5PARZ.js} +4 -4
  73. package/dist/{chunk-L7QKFC5N.js → chunk-E6W57UP3.js} +32 -122
  74. package/dist/chunk-EEBJYXWA.js +15 -0
  75. package/dist/chunk-FP6U6BPH.js +61 -0
  76. package/dist/{chunk-SGR4DMCW.js → chunk-FRYZRBLA.js} +1 -1
  77. package/dist/chunk-FWPGOIFA.js +22 -0
  78. package/dist/chunk-GL7F6NDU.js +30 -0
  79. package/dist/chunk-H7BVANDX.js +407 -0
  80. package/dist/{chunk-FDR22JMM.js → chunk-HFRHHT36.js} +8 -63
  81. package/dist/{chunk-FJUUGFXL.js → chunk-HOUDNM5M.js} +1 -1
  82. package/dist/{chunk-6Y53VZ3C.js → chunk-HZCSJLGH.js} +11 -11
  83. package/dist/chunk-I75SROQZ.js +315 -0
  84. package/dist/{chunk-JQV7CXEC.js → chunk-II3ACSV2.js} +17 -2
  85. package/dist/{chunk-DARJTN4I.js → chunk-IMJ62GAP.js} +10 -5
  86. package/dist/{chunk-PPLC4IKI.js → chunk-IV57G2CB.js} +14 -1
  87. package/dist/{chunk-7SLWXX6L.js → chunk-J434WDD3.js} +5 -6
  88. package/dist/chunk-J6XCRFBW.js +30 -0
  89. package/dist/{chunk-KAZ5BYTQ.js → chunk-KCHYLLVG.js} +6 -4
  90. package/dist/{chunk-YGRTRAWX.js → chunk-KDE4HKH2.js} +1 -0
  91. package/dist/{chunk-GXIAIITP.js → chunk-KZYRC3WR.js} +36 -39
  92. package/dist/chunk-L57USMYC.js +39 -0
  93. package/dist/chunk-LFX6WU4A.js +36 -0
  94. package/dist/{chunk-EROX26D4.js → chunk-LRMWYKSF.js} +1 -1
  95. package/dist/{chunk-LWJF63JW.js → chunk-LTQQRVZG.js} +89 -14
  96. package/dist/chunk-LYYM7H7H.js +59 -0
  97. package/dist/{chunk-NHFEY3EI.js → chunk-M3YUT5AY.js} +2 -2
  98. package/dist/{chunk-H6LZ77GX.js → chunk-MJCL3WID.js} +1 -1
  99. package/dist/{chunk-X4INVIWL.js → chunk-MZRZVLWD.js} +3 -3
  100. package/dist/{chunk-DDH7ULIQ.js → chunk-N6MGVXXQ.js} +1 -1
  101. package/dist/{chunk-QXLRABYH.js → chunk-O7VOGTLX.js} +1 -1
  102. package/dist/{chunk-35G3SZRN.js → chunk-P3SOE76R.js} +1 -1
  103. package/dist/{chunk-PZ44R4AS.js → chunk-P7Q5ZSZD.js} +1 -1
  104. package/dist/{chunk-5ATEALH7.js → chunk-PFJFS3F4.js} +1 -5
  105. package/dist/chunk-POOTMH3K.js +62 -0
  106. package/dist/{chunk-GGWUWT55.js → chunk-QJI4OET7.js} +23 -36
  107. package/dist/{chunk-NJMNYS7G.js → chunk-QS35HWC5.js} +1 -1
  108. package/dist/{chunk-RTBNJQOV.js → chunk-R4JLYNUA.js} +419 -538
  109. package/dist/{chunk-DIW4GRTI.js → chunk-RT3G3GEK.js} +47 -31
  110. package/dist/{chunk-QT7YFHCA.js → chunk-S23FD6FA.js} +12 -0
  111. package/dist/{chunk-U2ZFCAPX.js → chunk-SITRHMZZ.js} +11 -8
  112. package/dist/chunk-SPFLYPY6.js +6 -0
  113. package/dist/{chunk-EIUYXS7E.js → chunk-SZBERGA4.js} +1 -1
  114. package/dist/chunk-T6DSYOY5.js +173 -0
  115. package/dist/{chunk-4LVP635F.js → chunk-TKSKCYM3.js} +128 -126
  116. package/dist/{chunk-QNNJN4H6.js → chunk-TSTUAL6N.js} +59 -0
  117. package/dist/{chunk-LNM2D2I4.js → chunk-TZMNEN7A.js} +7 -6
  118. package/dist/chunk-UM7ZR3VU.js +14 -0
  119. package/dist/{chunk-X22KTLZ7.js → chunk-UO6IX5Y7.js} +1 -1
  120. package/dist/chunk-VCUUITW6.js +35 -0
  121. package/dist/{chunk-LQD232FW.js → chunk-WJ5EU3KW.js} +1 -1
  122. package/dist/{chunk-AIF2KTEE.js → chunk-WKRW5OPL.js} +12 -2
  123. package/dist/{chunk-6YA3C4NB.js → chunk-XBKWFLJG.js} +4 -13
  124. package/dist/{chunk-WBHFU3MG.js → chunk-XJYQ4SW5.js} +2 -2
  125. package/dist/chunk-XQUF3WIS.js +159 -0
  126. package/dist/chunk-YBF45CX5.js +23 -0
  127. package/dist/{chunk-AVOIZO63.js → chunk-YQZBAP3S.js} +4 -2
  128. package/dist/chunk-ZHFFTT3I.js +17 -0
  129. package/dist/{chunk-TODJFRLH.js → chunk-ZHR77OQI.js} +2 -2
  130. package/dist/chunk-ZUHIKMQL.js +353 -0
  131. package/dist/{chunk-44RQ5PTN.js → chunk-ZZIJSTXN.js} +225 -90
  132. package/dist/{collections-YCAAFGSW.js → collections-7M7O23NO.js} +28 -26
  133. package/dist/{configuration-UOSNP45I.js → configuration-5IDQRYJQ.js} +4 -4
  134. package/dist/{configuration-C4IGBNXH.js → configuration-TXRAYMI4.js} +1 -1
  135. package/dist/{create-BJ4OO6LS.js → create-2N73Y6FO.js} +14 -14
  136. package/dist/{create-R7K3ECN6.js → create-3MUVY3UY.js} +1 -1
  137. package/dist/{create-SFU3W3ZH.js → create-6DRXGPYA.js} +1 -1
  138. package/dist/{create-XAD5NMSJ.js → create-6KM5AZCG.js} +20 -20
  139. package/dist/{create-YDDBH4VQ.js → create-A6CPQMMH.js} +27 -26
  140. package/dist/create-B4EWCX7X.js +1798 -0
  141. package/dist/{create-YBF4YGWG.js → create-BHSMHOFN.js} +1 -1
  142. package/dist/{create-XVHOCZHJ.js → create-BVUZWMET.js} +1 -1
  143. package/dist/create-CJEZCYN6.js +1179 -0
  144. package/dist/create-DAVMJNC2.js +1931 -0
  145. package/dist/{create-35MYQPVM.js → create-E4HTVPP7.js} +17 -17
  146. package/dist/{create-JDGM5KXE.js → create-G4TF2M7G.js} +88 -42
  147. package/dist/{create-UQNYMVBM.js → create-LOP7AF5N.js} +6 -6
  148. package/dist/{create-UPYB65PD.js → create-MKFDE32U.js} +1 -1
  149. package/dist/{create-B5ZXTK3K.js → create-NR7ULWQS.js} +37 -34
  150. package/dist/{create-HI5UI2EZ.js → create-SJSLOXOW.js} +31 -26
  151. package/dist/{create-GB3ZA4LH.js → create-SYI6DVKM.js} +4 -4
  152. package/dist/{create-ORXYT74H.js → create-ZAGMLDR4.js} +13 -13
  153. package/dist/create-ZP4LSJYQ.js +216 -0
  154. package/dist/customer-group-add-customers-GTM556QA.js +251 -0
  155. package/dist/customer-group-create-OYHAXX2T.js +140 -0
  156. package/dist/customer-group-detail-KW62TLWA.js +58 -0
  157. package/dist/customer-group-edit-WH7O4N4L.js +137 -0
  158. package/dist/customer-groups-UJFZBZ2B.js +276 -0
  159. package/dist/{customers-ETXVNM3G.js → customers-4WKIFPUU.js} +7 -7
  160. package/dist/{edit-UGEC27HP.js → edit-3EN2H52W.js} +39 -36
  161. package/dist/{edit-ZMERG3L7.js → edit-3VNT35DW.js} +1 -1
  162. package/dist/{edit-ORXS3A2Y.js → edit-6DUTTLEV.js} +1 -1
  163. package/dist/edit-6K3NSVI7.js +103 -0
  164. package/dist/{edit-REDDBLTA.js → edit-6Z6RIJRZ.js} +4 -4
  165. package/dist/{edit-2Q7TRUTL.js → edit-CVSO5CX7.js} +14 -14
  166. package/dist/{edit-ZAHCMF5U.js → edit-FQDSESVI.js} +1 -1
  167. package/dist/edit-GZXLWSTL.js +176 -0
  168. package/dist/edit-LLNKSZR4.js +871 -0
  169. package/dist/{edit-O4JLGKQR.js → edit-MKVDAUA5.js} +1 -1
  170. package/dist/{edit-ZCXUG42Q.js → edit-NDUSRTWY.js} +13 -13
  171. package/dist/{edit-522DG3BY.js → edit-RBREBAQQ.js} +1 -1
  172. package/dist/{edit-Q3UQIOLS.js → edit-RQHOHZR6.js} +1 -1
  173. package/dist/{edit-VKT62KHG.js → edit-SAB6F3ZG.js} +36 -15
  174. package/dist/{edit-C4OCKQVU.js → edit-SM2GHVKW.js} +1 -1
  175. package/dist/{edit-KAKVPHZZ.js → edit-UVY3TEHD.js} +1 -1
  176. package/dist/{edit-SGUY2CCK.js → edit-V7WLYLOQ.js} +16 -16
  177. package/dist/{edit-FKXIQ6ZI.js → edit-XMZSLH4O.js} +16 -16
  178. package/dist/{edit-L5ZZLMAY.js → edit-YTS77SJS.js} +43 -32
  179. package/dist/{edit-budget-L3CCEWNF.js → edit-budget-4JMGEPNF.js} +1 -1
  180. package/dist/{edit-inventory-item-6B7ITDGD.js → edit-inventory-item-G22KFCYY.js} +2 -2
  181. package/dist/{edit-inventory-item-attributes-Y7MQZLXI.js → edit-inventory-item-attributes-RJSM4MEI.js} +2 -2
  182. package/dist/edit-price-K6K2FTMF.js +196 -0
  183. package/dist/edit-stock-6TUSJD5R.js +229 -0
  184. package/dist/fulfillment-VEF6HG6D.js +641 -0
  185. package/dist/{fulfillment-providers-DQAU43JZ.js → fulfillment-providers-VKBWFH45.js} +24 -24
  186. package/dist/index.css +107 -10
  187. package/dist/index.js +302 -183
  188. package/dist/{inventory-KAUVPMPZ.js → inventory-OCIGVZ4V.js} +6 -6
  189. package/dist/{offer-inventory-batch-page-WKCWNDNK.js → inventory-T7BRSFKY.js} +16 -16
  190. package/dist/{invite-CI2P4GF6.js → invite-J6L3Q7MQ.js} +12 -12
  191. package/dist/{invite-Q6EYDZVQ.js → invite-VWNUFOFI.js} +21 -21
  192. package/dist/loader-2EQ4ROTD.js +34 -0
  193. package/dist/loader-HYUC2XZX.js +33 -0
  194. package/dist/{login-KY342RMK.js → login-WOZMCEFY.js} +12 -12
  195. package/dist/{manage-locations-WNHEBS3A.js → manage-locations-R3ASMF5B.js} +1 -1
  196. package/dist/{media-B6ME2WXY.js → media-KIIJ6WSZ.js} +18 -17
  197. package/dist/media-RJHUSBXL.js +315 -0
  198. package/dist/{metadata-WR4RFXO5.js → metadata-45S6CFKY.js} +14 -14
  199. package/dist/{metadata-2CMH4I6U.js → metadata-FCATUWIZ.js} +14 -14
  200. package/dist/{metadata-GWI6R4ES.js → metadata-L5GBBXC4.js} +14 -14
  201. package/dist/{metadata-TLDUF5KV.js → metadata-R4ZRMAO6.js} +14 -14
  202. package/dist/{metadata-NUXUC2JA.js → metadata-RM5VVAOS.js} +14 -14
  203. package/dist/{offer-create-page-4Z6L63BU.js → offer-create-page-DV4JCIL2.js} +190 -195
  204. package/dist/offer-detail-page-TIBYGQBS.js +590 -0
  205. package/dist/offer-variant-detail-page-ORH56HZI.js +421 -0
  206. package/dist/offers-VA63KV3C.js +54 -0
  207. package/dist/{onboarding-43LQQQGQ.js → onboarding-L5RRKT65.js} +12 -12
  208. package/dist/{orders-ZV4D6L2V.js → orders-KKJD6EWZ.js} +27 -27
  209. package/dist/{organization-ZTQGRJWS.js → organization-6YPU2RQP.js} +53 -89
  210. package/dist/{organize-K6QMAMEN.js → organize-LR7FWK2J.js} +3 -3
  211. package/dist/{organize-HNJUHEEG.js → organize-SUG4SGVR.js} +3 -3
  212. package/dist/pages/index.d.ts +40 -16
  213. package/dist/pages/index.js +73 -73
  214. package/dist/{payment-details-64US5XWD.js → payment-details-UVEIHQA5.js} +13 -13
  215. package/dist/{payouts-UXJDTXDL.js → payouts-D4A4CILI.js} +8 -8
  216. package/dist/{price-lists-KBPUVSZI.js → price-lists-WJFXFGEV.js} +10 -10
  217. package/dist/{pricing-DF6C5XK4.js → pricing-QEVR2Z4K.js} +19 -19
  218. package/dist/{offer-pricing-edit-page-4TYGGSOE.js → pricing-XJUUCYL5.js} +24 -18
  219. package/dist/{product-tags-6MZB4W5R.js → product-tags-MW2JMRFY.js} +36 -33
  220. package/dist/{product-types-UUHBV4IZ.js → product-types-XXU7X42K.js} +6 -6
  221. package/dist/product-variant-detail-XZWTSH3H.js +369 -0
  222. package/dist/{product-variant-edit-YYNPHE4L.js → product-variant-edit-A2KO3E7B.js} +41 -44
  223. package/dist/{products-MZBU5MEV.js → products-TZS2OPK3.js} +37 -37
  224. package/dist/{products-IWKTGZS6.js → products-XSXEUKIB.js} +23 -22
  225. package/dist/{professional-details-5T2VS6MM.js → professional-details-ELUEJPOH.js} +13 -13
  226. package/dist/{profile-6XGHAT7H.js → profile-EDVGIBW6.js} +16 -16
  227. package/dist/{promotions-O7U4BTK6.js → promotions-JYO23G6N.js} +8 -8
  228. package/dist/receive-47SMYKIJ.js +578 -0
  229. package/dist/refund-IU7B77FV.js +268 -0
  230. package/dist/{register-N6WOSMLA.js → register-SR2SYX4Q.js} +14 -14
  231. package/dist/{reset-password-EICPAY2N.js → reset-password-N22YRMR3.js} +1 -1
  232. package/dist/{return-reasons-IX3LIOCU.js → return-reasons-POR5YPTF.js} +18 -15
  233. package/dist/{sales-channels-JW3QUYR7.js → sales-channels-ETB6QRRY.js} +8 -8
  234. package/dist/{sales-channels-B6FULRWI.js → sales-channels-YXRRARDL.js} +7 -7
  235. package/dist/{settings-MV53ZZ53.js → settings-MHBYIZ2I.js} +38 -35
  236. package/dist/shipment-ZX6PQ32L.js +241 -0
  237. package/dist/shipping-W4SPR3JO.js +122 -0
  238. package/dist/{shipping-profile-Y4SNEPZX.js → shipping-profile-L5CFXVEE.js} +4 -8
  239. package/dist/{shipping-profiles-2NWKCEJK.js → shipping-profiles-QBJUWXVQ.js} +17 -17
  240. package/dist/{stock-7CSVEJJU.js → stock-FW4DOVFV.js} +14 -14
  241. package/dist/{store-X23G3JCJ.js → store-NWWBV2UO.js} +75 -144
  242. package/dist/{store-closure-P5PD2RSV.js → store-closure-O3CBSOJD.js} +19 -14
  243. package/dist/{store-select-TREPDS3G.js → store-select-C7GI5MKK.js} +13 -13
  244. package/dist/{tax-regions-YXZW7UVX.js → tax-regions-2JCIB4T7.js} +2 -2
  245. package/dist/{team-SPP5OY5W.js → team-MY24J5WO.js} +20 -20
  246. package/package.json +2 -2
  247. package/dist/[id]-LTNOHLGE.js +0 -1219
  248. package/dist/allocate-items-SDFS5GYN.js +0 -533
  249. package/dist/chunk-432S4FGR.js +0 -0
  250. package/dist/chunk-AIZM66CG.js +0 -66
  251. package/dist/chunk-BDZOSMAX.js +0 -23
  252. package/dist/chunk-CFRWIQIZ.js +0 -43
  253. package/dist/chunk-GKZHBXZK.js +0 -426
  254. package/dist/chunk-RXZFEFNV.js +0 -73
  255. package/dist/chunk-T6LHVNWO.js +0 -27
  256. package/dist/chunk-WLT7K7K7.js +0 -63
  257. package/dist/create-FCKGCZSM.js +0 -210
  258. package/dist/edit-GQNIINRR.js +0 -192
  259. package/dist/fulfillment-75Z4H23W.js +0 -559
  260. package/dist/loader-FBB5OQRT.js +0 -31
  261. package/dist/metadata-5BPOBBU2.js +0 -45
  262. package/dist/offer-detail-page-6MAHNNIO.js +0 -488
  263. package/dist/offer-edit-page-DYQFU6JU.js +0 -151
  264. package/dist/offers-ZG6OTDZ2.js +0 -32
  265. package/dist/product-variant-detail-RVWEYVPC.js +0 -220
  266. package/dist/shipment-Q33QBMXX.js +0 -176
@@ -0,0 +1,685 @@
1
+ import {
2
+ getReservationsLimitCount
3
+ } from "./chunk-EEBJYXWA.js";
4
+ import {
5
+ getFulfillableQuantity
6
+ } from "./chunk-RXM4B6HR.js";
7
+ import "./chunk-TKGWSUEI.js";
8
+ import {
9
+ KeyboundForm
10
+ } from "./chunk-SITRHMZZ.js";
11
+ import {
12
+ RouteFocusModal,
13
+ useRouteModal
14
+ } from "./chunk-GDWBOQI5.js";
15
+ import {
16
+ Form
17
+ } from "./chunk-3QSRE5LS.js";
18
+ import {
19
+ Thumbnail
20
+ } from "./chunk-WIYFXWRI.js";
21
+ import {
22
+ useStockLocations
23
+ } from "./chunk-NBPMNUKZ.js";
24
+ import {
25
+ ordersQueryKeys,
26
+ useCreateReservationItem,
27
+ useOrder,
28
+ useReservationItems
29
+ } from "./chunk-7RGUD6PI.js";
30
+ import "./chunk-TSTUAL6N.js";
31
+ import "./chunk-A5DJIOHN.js";
32
+ import {
33
+ queryClient
34
+ } from "./chunk-RHKRREUU.js";
35
+ import "./chunk-ZA2KFUFR.js";
36
+ import "./chunk-RIN4CBRB.js";
37
+ import "./chunk-NBMM2TZK.js";
38
+
39
+ // src/pages/orders/[id]/allocate-items/index.tsx
40
+ import { useParams } from "react-router-dom";
41
+
42
+ // src/pages/orders/[id]/allocate-items/order-create-fulfillment-form/order-allocate-items-form.tsx
43
+ import { zodResolver } from "@hookform/resolvers/zod";
44
+ import { useEffect, useMemo as useMemo2, useState as useState2 } from "react";
45
+ import { useTranslation as useTranslation2 } from "react-i18next";
46
+ import { Alert, Button, Heading, Input as Input2, Select, toast } from "@medusajs/ui";
47
+ import { useForm, useWatch as useWatch2 } from "react-hook-form";
48
+
49
+ // src/pages/orders/[id]/allocate-items/order-create-fulfillment-form/constants.ts
50
+ import { z } from "zod";
51
+ var AllocateItemsSchema = z.object({
52
+ location_id: z.string(),
53
+ quantity: z.record(z.string(), z.number().or(z.string())),
54
+ // Keyed by line item id. Defaults to selected; deselected items are
55
+ // excluded from the allocation payload.
56
+ selected: z.record(z.string(), z.boolean())
57
+ });
58
+
59
+ // src/pages/orders/[id]/allocate-items/order-create-fulfillment-form/order-allocate-items-item.tsx
60
+ import { useMemo, useState } from "react";
61
+ import { useTranslation } from "react-i18next";
62
+ import {
63
+ Component,
64
+ ExclamationCircleSolid,
65
+ TriangleDownMini
66
+ } from "@medusajs/icons";
67
+ import { useWatch } from "react-hook-form";
68
+ import { Checkbox, Input, Text, clx } from "@medusajs/ui";
69
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
70
+ var resolveInventoryItemId = (link) => link.inventory_item?.id ?? link.inventory_item_id ?? null;
71
+ function OrderAllocateItemsItem({
72
+ item,
73
+ form,
74
+ locationId,
75
+ onQuantityChange,
76
+ onToggleSelected
77
+ }) {
78
+ const { t } = useTranslation();
79
+ const inventoryLinks = item.offer?.inventory_item_link ?? [];
80
+ const [isOpen, setIsOpen] = useState(false);
81
+ const quantityField = useWatch({
82
+ control: form.control,
83
+ name: "quantity"
84
+ });
85
+ const isSelected = useWatch({
86
+ control: form.control,
87
+ name: `selected.${item.id}`
88
+ }) !== false;
89
+ const hasInventoryKit = inventoryLinks.length > 1;
90
+ const firstLink = inventoryLinks[0];
91
+ const firstLinkId = firstLink ? resolveInventoryItemId(firstLink) : null;
92
+ const { availableQuantity, inStockQuantity } = useMemo(() => {
93
+ if (!firstLink || !locationId) {
94
+ return {};
95
+ }
96
+ const locationInventory = firstLink.inventory_item?.location_levels?.find(
97
+ (inv) => inv.location_id === locationId
98
+ );
99
+ if (!locationInventory) {
100
+ return {};
101
+ }
102
+ return {
103
+ availableQuantity: locationInventory.available_quantity,
104
+ inStockQuantity: locationInventory.stocked_quantity
105
+ };
106
+ }, [firstLink, locationId]);
107
+ const hasQuantityError = !hasInventoryKit && availableQuantity && firstLinkId && quantityField[`${item.id}-${firstLinkId}`] && Number(quantityField[`${item.id}-${firstLinkId}`]) > availableQuantity;
108
+ const minValue = 0;
109
+ const maxValue = Math.min(
110
+ getFulfillableQuantity(item) ?? 0,
111
+ availableQuantity || Number.MAX_SAFE_INTEGER
112
+ );
113
+ return /* @__PURE__ */ jsxs(
114
+ "div",
115
+ {
116
+ className: clx(
117
+ "bg-ui-bg-subtle shadow-elevation-card-rest min-w-[720px] divide-y divide-dashed rounded-xl",
118
+ !isSelected && "opacity-60"
119
+ ),
120
+ children: [
121
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-x-3 p-3 text-sm", children: [
122
+ /* @__PURE__ */ jsx(
123
+ Checkbox,
124
+ {
125
+ checked: isSelected,
126
+ onCheckedChange: (value) => onToggleSelected(item.id, value === true),
127
+ "data-testid": `allocate-item-${item.id}-checkbox`
128
+ }
129
+ ),
130
+ /* @__PURE__ */ jsx("div", { className: "flex flex-1 items-center", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-x-3", children: [
131
+ hasQuantityError && /* @__PURE__ */ jsx(ExclamationCircleSolid, { className: "text-ui-fg-error" }),
132
+ /* @__PURE__ */ jsx(Thumbnail, { src: item.thumbnail }),
133
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col", children: [
134
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-row items-center gap-x-1", children: [
135
+ /* @__PURE__ */ jsx(Text, { size: "small", weight: "plus", as: "span", children: item.product_title }),
136
+ (item.offer?.sku ?? item.variant_sku) && /* @__PURE__ */ jsxs(
137
+ Text,
138
+ {
139
+ size: "small",
140
+ weight: "plus",
141
+ as: "span",
142
+ className: "text-ui-fg-subtle",
143
+ children: [
144
+ "(",
145
+ item.offer?.sku ?? item.variant_sku,
146
+ ")"
147
+ ]
148
+ }
149
+ ),
150
+ hasInventoryKit && /* @__PURE__ */ jsx(Component, { className: "text-ui-fg-muted ml-1 overflow-visible" })
151
+ ] }),
152
+ /* @__PURE__ */ jsx(Text, { as: "div", className: "text-ui-fg-subtle txt-small", children: item.title })
153
+ ] })
154
+ ] }) }),
155
+ /* @__PURE__ */ jsxs(
156
+ "div",
157
+ {
158
+ className: clx(
159
+ "flex flex-1 items-center gap-x-3",
160
+ hasInventoryKit ? "justify-end" : "justify-between"
161
+ ),
162
+ children: [
163
+ !hasInventoryKit && /* @__PURE__ */ jsxs(Fragment, { children: [
164
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
165
+ /* @__PURE__ */ jsx("div", { className: "bg-ui-border-strong block h-[12px] w-[1px]" }),
166
+ /* @__PURE__ */ jsxs("div", { className: "txt-small flex flex-col", children: [
167
+ /* @__PURE__ */ jsx("span", { className: "text-ui-fg-subtle font-medium", children: t("labels.available") }),
168
+ /* @__PURE__ */ jsxs("span", { className: "text-ui-fg-muted", children: [
169
+ availableQuantity || "-",
170
+ availableQuantity && !hasInventoryKit && firstLinkId && quantityField[`${item.id}-${firstLinkId}`] && /* @__PURE__ */ jsxs("span", { className: "text-ui-fg-error txt-small ml-1", children: [
171
+ "-",
172
+ quantityField[`${item.id}-${firstLinkId}`]
173
+ ] })
174
+ ] })
175
+ ] })
176
+ ] }),
177
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
178
+ /* @__PURE__ */ jsx("div", { className: "bg-ui-border-strong block h-[12px] w-[1px]" }),
179
+ /* @__PURE__ */ jsxs("div", { className: "txt-small flex flex-col", children: [
180
+ /* @__PURE__ */ jsx("span", { className: "text-ui-fg-subtle font-medium", children: t("labels.inStock") }),
181
+ /* @__PURE__ */ jsx("span", { className: "text-ui-fg-muted", children: inStockQuantity || "-" })
182
+ ] })
183
+ ] })
184
+ ] }),
185
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
186
+ /* @__PURE__ */ jsx("div", { className: "bg-ui-border-strong block h-[12px] w-[1px]" }),
187
+ /* @__PURE__ */ jsxs("div", { className: "text-ui-fg-subtle txt-small mr-2 flex flex-row items-center gap-2", children: [
188
+ /* @__PURE__ */ jsx(
189
+ Form.Field,
190
+ {
191
+ control: form.control,
192
+ name: hasInventoryKit && firstLinkId ? `quantity.${item.id}-` : `quantity.${item.id}-${firstLinkId ?? ""}`,
193
+ rules: {
194
+ required: !hasInventoryKit,
195
+ min: !hasInventoryKit ? minValue : void 0,
196
+ max: maxValue > 0 ? maxValue : void 0
197
+ },
198
+ render: ({ field }) => {
199
+ return /* @__PURE__ */ jsx(Form.Item, { children: /* @__PURE__ */ jsx(Form.Control, { children: /* @__PURE__ */ jsx(
200
+ Input,
201
+ {
202
+ className: "bg-ui-bg-base txt-small w-[46px] rounded-lg text-right [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none",
203
+ type: "number",
204
+ ...field,
205
+ disabled: !locationId || !isSelected,
206
+ onChange: (e) => {
207
+ const val = e.target.value === "" ? null : Number(e.target.value);
208
+ if (firstLink) {
209
+ onQuantityChange(
210
+ firstLink,
211
+ item,
212
+ hasInventoryKit,
213
+ val,
214
+ true
215
+ );
216
+ }
217
+ }
218
+ }
219
+ ) }) });
220
+ }
221
+ }
222
+ ),
223
+ " ",
224
+ "/ ",
225
+ item.quantity,
226
+ " ",
227
+ t("fields.qty")
228
+ ] })
229
+ ] })
230
+ ]
231
+ }
232
+ )
233
+ ] }),
234
+ hasInventoryKit && /* @__PURE__ */ jsx("div", { className: "px-4 py-2", children: /* @__PURE__ */ jsxs(
235
+ "div",
236
+ {
237
+ onClick: () => setIsOpen((o) => !o),
238
+ className: "flex items-center gap-x-2",
239
+ children: [
240
+ /* @__PURE__ */ jsx(
241
+ TriangleDownMini,
242
+ {
243
+ style: { transform: `rotate(${isOpen ? -90 : 0}deg)` },
244
+ className: "text-ui-fg-muted -mt-[1px]"
245
+ }
246
+ ),
247
+ /* @__PURE__ */ jsx("span", { className: "txt-small text-ui-fg-muted cursor-pointer", children: t("orders.allocateItems.consistsOf", {
248
+ num: inventoryLinks.length
249
+ }) })
250
+ ]
251
+ }
252
+ ) }),
253
+ isOpen && inventoryLinks.map((link, ind) => {
254
+ const inventoryItemId = resolveInventoryItemId(link);
255
+ const location = link.inventory_item?.location_levels?.find(
256
+ (l) => l.location_id === locationId
257
+ );
258
+ const required = link.required_quantity ?? 1;
259
+ const quantityKey = `${item.id}-${inventoryItemId ?? ""}`;
260
+ const childHasError = !!quantityField[quantityKey] && location && Number(quantityField[quantityKey]) > (location.available_quantity ?? 0);
261
+ return /* @__PURE__ */ jsxs(
262
+ "div",
263
+ {
264
+ className: "txt-small flex items-center gap-x-3 p-4",
265
+ children: [
266
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-1 flex-row items-center gap-3", children: [
267
+ childHasError && /* @__PURE__ */ jsx(ExclamationCircleSolid, { className: "text-ui-fg-error" }),
268
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col", children: [
269
+ /* @__PURE__ */ jsx("span", { className: "text-ui-fg-subtle", children: link.inventory_item?.title ?? link.inventory_item?.sku ?? `Inventory Item ${ind + 1}` }),
270
+ /* @__PURE__ */ jsx("span", { className: "text-ui-fg-muted", children: t("orders.allocateItems.requires", {
271
+ num: required
272
+ }) })
273
+ ] })
274
+ ] }),
275
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-1 flex-row justify-between", children: [
276
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
277
+ /* @__PURE__ */ jsx("div", { className: "bg-ui-border-strong block h-[12px] w-[1px]" }),
278
+ /* @__PURE__ */ jsxs("div", { className: "txt-small flex flex-col", children: [
279
+ /* @__PURE__ */ jsx("span", { className: "text-ui-fg-subtle font-medium", children: t("labels.available") }),
280
+ /* @__PURE__ */ jsxs("span", { className: "text-ui-fg-muted", children: [
281
+ location?.available_quantity || "-",
282
+ location?.available_quantity && quantityField[quantityKey] && /* @__PURE__ */ jsxs("span", { className: "text-ui-fg-error txt-small ml-1", children: [
283
+ "-",
284
+ quantityField[quantityKey]
285
+ ] })
286
+ ] })
287
+ ] })
288
+ ] }),
289
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
290
+ /* @__PURE__ */ jsx("div", { className: "bg-ui-border-strong block h-[12px] w-[1px]" }),
291
+ /* @__PURE__ */ jsxs("div", { className: "txt-small flex flex-col", children: [
292
+ /* @__PURE__ */ jsx("span", { className: "text-ui-fg-subtle font-medium", children: t("labels.inStock") }),
293
+ /* @__PURE__ */ jsx("span", { className: "text-ui-fg-muted", children: location?.stocked_quantity || "-" })
294
+ ] })
295
+ ] }),
296
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
297
+ /* @__PURE__ */ jsx("div", { className: "bg-ui-border-strong block h-[12px] w-[1px]" }),
298
+ /* @__PURE__ */ jsxs("div", { className: "text-ui-fg-subtle txt-small mr-1 flex flex-row items-center gap-2", children: [
299
+ /* @__PURE__ */ jsx(
300
+ Form.Field,
301
+ {
302
+ control: form.control,
303
+ name: `quantity.${item.id}-${inventoryItemId ?? ""}`,
304
+ rules: {
305
+ required: true,
306
+ min: 0,
307
+ max: location?.available_quantity ?? void 0
308
+ },
309
+ render: ({ field }) => {
310
+ return /* @__PURE__ */ jsx(Form.Item, { children: /* @__PURE__ */ jsx(Form.Control, { children: /* @__PURE__ */ jsx(
311
+ Input,
312
+ {
313
+ className: "bg-ui-bg-base txt-small w-[46px] rounded-lg text-right [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none",
314
+ type: "number",
315
+ ...field,
316
+ disabled: !locationId || !isSelected,
317
+ onChange: (e) => {
318
+ const val = e.target.value === "" ? null : Number(e.target.value);
319
+ onQuantityChange(
320
+ link,
321
+ item,
322
+ hasInventoryKit,
323
+ val
324
+ );
325
+ }
326
+ }
327
+ ) }) });
328
+ }
329
+ }
330
+ ),
331
+ "/ ",
332
+ item.quantity * required,
333
+ " ",
334
+ t("fields.qty")
335
+ ] })
336
+ ] })
337
+ ] })
338
+ ]
339
+ },
340
+ link.id ?? inventoryItemId ?? `link-${ind}`
341
+ );
342
+ })
343
+ ]
344
+ }
345
+ );
346
+ }
347
+
348
+ // src/pages/orders/[id]/allocate-items/order-create-fulfillment-form/utils.ts
349
+ function getAllocatableItems(items, reservations) {
350
+ const reserved = new Set(
351
+ reservations.map((r) => r.line_item_id).filter((id) => !!id)
352
+ );
353
+ return items.filter(
354
+ (item) => !!item.offer?.inventory_item_link?.length && item.quantity - (item.detail?.fulfilled_quantity ?? 0) > 0 && !reserved.has(item.id)
355
+ );
356
+ }
357
+ function buildAllocationPayload(quantity, selected) {
358
+ const rows = Object.entries(quantity).filter(([key]) => !key.endsWith("-")).map(([key, value]) => {
359
+ const separatorIndex = key.indexOf("-");
360
+ return {
361
+ lineItemId: key.slice(0, separatorIndex),
362
+ inventoryItemId: key.slice(separatorIndex + 1),
363
+ value
364
+ };
365
+ }).filter((row) => selected[row.lineItemId] !== false);
366
+ if (rows.length === 0) {
367
+ return { ok: false, reason: "no-items" };
368
+ }
369
+ const items = [];
370
+ for (const row of rows) {
371
+ if (row.value === "" || row.value === null || row.value === void 0) {
372
+ return { ok: false, reason: "invalid-quantity" };
373
+ }
374
+ const quantityNumber = Number(row.value);
375
+ if (!Number.isFinite(quantityNumber) || quantityNumber <= 0) {
376
+ return { ok: false, reason: "invalid-quantity" };
377
+ }
378
+ items.push({
379
+ line_item_id: row.lineItemId,
380
+ inventory_item_id: row.inventoryItemId,
381
+ quantity: quantityNumber
382
+ });
383
+ }
384
+ return { ok: true, items };
385
+ }
386
+
387
+ // src/pages/orders/[id]/allocate-items/order-create-fulfillment-form/order-allocate-items-form.tsx
388
+ import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
389
+ function OrderAllocateItemsForm({ order }) {
390
+ const { t } = useTranslation2();
391
+ const { handleSuccess } = useRouteModal();
392
+ const [disableSubmit, setDisableSubmit] = useState2(false);
393
+ const [filterTerm, setFilterTerm] = useState2("");
394
+ const { mutateAsync: allocateItems, isPending: isMutating } = useCreateReservationItem();
395
+ const { reservations } = useReservationItems(
396
+ {
397
+ line_item_id: order?.items?.map((i) => i.id),
398
+ limit: getReservationsLimitCount(order)
399
+ },
400
+ { enabled: Array.isArray(order?.items) }
401
+ );
402
+ const itemsToAllocate = useMemo2(
403
+ () => getAllocatableItems(
404
+ order.items,
405
+ reservations ?? []
406
+ ),
407
+ [order.items, reservations]
408
+ );
409
+ const filteredItems = useMemo2(() => {
410
+ return itemsToAllocate.filter(
411
+ (i) => i.variant_title?.toLowerCase().includes(filterTerm) || i.product_title?.toLowerCase().includes(filterTerm)
412
+ );
413
+ }, [itemsToAllocate, filterTerm]);
414
+ const form = useForm({
415
+ defaultValues: {
416
+ location_id: "",
417
+ quantity: defaultAllocations(itemsToAllocate),
418
+ selected: defaultSelected(itemsToAllocate)
419
+ },
420
+ resolver: zodResolver(AllocateItemsSchema)
421
+ });
422
+ const { stock_locations = [] } = useStockLocations();
423
+ const handleSubmit = form.handleSubmit(async (data) => {
424
+ try {
425
+ const result = buildAllocationPayload(data.quantity, data.selected);
426
+ if (!result.ok) {
427
+ form.setError("root.quantityNotAllocated", {
428
+ type: "manual",
429
+ message: result.reason === "no-items" ? t("orders.allocateItems.error.noItemsSelected") : t("orders.allocateItems.error.quantityNotAllocated")
430
+ });
431
+ return;
432
+ }
433
+ const allocatableIds = new Set(itemsToAllocate.map((i) => i.id));
434
+ const allocations = result.items.filter(
435
+ (item) => allocatableIds.has(item.line_item_id)
436
+ );
437
+ if (allocations.length === 0) {
438
+ form.setError("root.quantityNotAllocated", {
439
+ type: "manual",
440
+ message: t("orders.allocateItems.error.noItemsSelected")
441
+ });
442
+ return;
443
+ }
444
+ const promises = allocations.map(
445
+ (item) => allocateItems({
446
+ location_id: data.location_id,
447
+ inventory_item_id: item.inventory_item_id,
448
+ line_item_id: item.line_item_id,
449
+ quantity: item.quantity
450
+ })
451
+ );
452
+ await Promise.all(promises);
453
+ await queryClient.invalidateQueries({
454
+ queryKey: ordersQueryKeys.details()
455
+ });
456
+ handleSuccess(`/orders/${order.id}`);
457
+ toast.success(t("general.success"), {
458
+ description: t("orders.allocateItems.toast.created")
459
+ });
460
+ } catch (e) {
461
+ toast.error(t("general.error"), {
462
+ description: e instanceof Error ? e.message : "An unknown error occurred"
463
+ });
464
+ }
465
+ });
466
+ const onToggleSelected = (itemId, checked) => {
467
+ form.setValue(`selected.${itemId}`, checked);
468
+ form.clearErrors("root.quantityNotAllocated");
469
+ };
470
+ const onQuantityChange = (link, lineItem, hasInventoryKit, value, isRoot) => {
471
+ let shouldDisableSubmit = false;
472
+ const inventoryItemId = resolveInventoryItemId2(link);
473
+ const key = isRoot && hasInventoryKit ? `quantity.${lineItem.id}-` : `quantity.${lineItem.id}-${inventoryItemId ?? ""}`;
474
+ form.setValue(key, value ?? "");
475
+ const levels = link.inventory_item?.location_levels;
476
+ if (value && levels) {
477
+ const location = levels.find((l) => l.location_id === selectedLocationId);
478
+ if (location && (location.available_quantity ?? 0) < value) {
479
+ shouldDisableSubmit = true;
480
+ }
481
+ }
482
+ if (hasInventoryKit && !isRoot) {
483
+ form.resetField(`quantity.${lineItem.id}-`, { defaultValue: "" });
484
+ }
485
+ if (hasInventoryKit && isRoot) {
486
+ const item = itemsToAllocate.find((i) => i.id === lineItem.id);
487
+ if (!item || !item.offer?.inventory_item_link) return;
488
+ item.offer.inventory_item_link.forEach((childLink) => {
489
+ const num = value || 0;
490
+ const childInventoryItemId = resolveInventoryItemId2(childLink);
491
+ if (!childInventoryItemId) return;
492
+ const required = childLink.required_quantity ?? 1;
493
+ form.setValue(
494
+ `quantity.${lineItem.id}-${childInventoryItemId}`,
495
+ num * required
496
+ );
497
+ const childLevels = childLink.inventory_item?.location_levels;
498
+ if (value && childLevels) {
499
+ const location = childLevels.find(
500
+ (l) => l.location_id === selectedLocationId
501
+ );
502
+ if (location && (location.available_quantity ?? 0) < num * required) {
503
+ shouldDisableSubmit = true;
504
+ }
505
+ }
506
+ });
507
+ }
508
+ form.clearErrors("root.quantityNotAllocated");
509
+ setDisableSubmit(shouldDisableSubmit);
510
+ };
511
+ const selectedLocationId = useWatch2({
512
+ name: "location_id",
513
+ control: form.control
514
+ });
515
+ useEffect(() => {
516
+ if (selectedLocationId) {
517
+ form.setValue(
518
+ "quantity",
519
+ defaultAllocations(itemsToAllocate, selectedLocationId)
520
+ );
521
+ }
522
+ }, [
523
+ selectedLocationId,
524
+ form,
525
+ itemsToAllocate
526
+ ]);
527
+ const allocationError = form.formState.errors?.root?.quantityNotAllocated?.message;
528
+ return /* @__PURE__ */ jsx2(RouteFocusModal.Form, { form, children: /* @__PURE__ */ jsxs2(
529
+ KeyboundForm,
530
+ {
531
+ onSubmit: handleSubmit,
532
+ className: "flex h-full flex-col overflow-hidden",
533
+ children: [
534
+ /* @__PURE__ */ jsx2(RouteFocusModal.Header, {}),
535
+ /* @__PURE__ */ jsx2(RouteFocusModal.Body, { className: "flex h-full w-full flex-col items-center divide-y overflow-y-auto", children: /* @__PURE__ */ jsx2("div", { className: "flex size-full flex-col items-center overflow-auto p-16", children: /* @__PURE__ */ jsx2("div", { className: "flex w-full max-w-[736px] flex-col justify-center px-2 pb-2", children: /* @__PURE__ */ jsxs2("div", { className: "flex flex-col gap-8 divide-y divide-dashed", children: [
536
+ /* @__PURE__ */ jsx2(Heading, { children: t("orders.allocateItems.title") }),
537
+ /* @__PURE__ */ jsxs2("div", { className: "flex-1 divide-y divide-dashed pt-8", children: [
538
+ /* @__PURE__ */ jsx2(
539
+ Form.Field,
540
+ {
541
+ control: form.control,
542
+ name: "location_id",
543
+ render: ({ field: { onChange, ref, ...field } }) => {
544
+ return /* @__PURE__ */ jsxs2(Form.Item, { children: [
545
+ /* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-3", children: [
546
+ /* @__PURE__ */ jsxs2("div", { className: "flex-1", children: [
547
+ /* @__PURE__ */ jsx2(Form.Label, { children: t("fields.location") }),
548
+ /* @__PURE__ */ jsx2(Form.Hint, { children: t("orders.allocateItems.locationDescription") })
549
+ ] }),
550
+ /* @__PURE__ */ jsx2("div", { className: "flex-1", children: /* @__PURE__ */ jsx2(Form.Control, { children: /* @__PURE__ */ jsxs2(Select, { onValueChange: onChange, ...field, children: [
551
+ /* @__PURE__ */ jsx2(
552
+ Select.Trigger,
553
+ {
554
+ className: "bg-ui-bg-base",
555
+ ref,
556
+ children: /* @__PURE__ */ jsx2(Select.Value, {})
557
+ }
558
+ ),
559
+ /* @__PURE__ */ jsx2(Select.Content, { children: stock_locations.map((l) => /* @__PURE__ */ jsx2(Select.Item, { value: l.id, children: l.name }, l.id)) })
560
+ ] }) }) })
561
+ ] }),
562
+ /* @__PURE__ */ jsx2(Form.ErrorMessage, {})
563
+ ] });
564
+ }
565
+ }
566
+ ),
567
+ /* @__PURE__ */ jsxs2(Form.Item, { className: "mt-8 pt-8", children: [
568
+ /* @__PURE__ */ jsxs2("div", { className: "flex flex-row items-center", children: [
569
+ /* @__PURE__ */ jsxs2("div", { className: "flex-1", children: [
570
+ /* @__PURE__ */ jsx2(Form.Label, { children: t("orders.allocateItems.itemsToAllocate") }),
571
+ /* @__PURE__ */ jsx2(Form.Hint, { children: t("orders.allocateItems.itemsToAllocateDesc") })
572
+ ] }),
573
+ /* @__PURE__ */ jsx2("div", { className: "flex-1", children: /* @__PURE__ */ jsx2(
574
+ Input2,
575
+ {
576
+ value: filterTerm,
577
+ onChange: (e) => setFilterTerm(e.target.value),
578
+ placeholder: t("orders.allocateItems.search"),
579
+ autoComplete: "off",
580
+ type: "search"
581
+ }
582
+ ) })
583
+ ] }),
584
+ allocationError && /* @__PURE__ */ jsx2(Alert, { className: "mb-4", dismissible: true, variant: "error", children: allocationError }),
585
+ /* @__PURE__ */ jsx2("div", { className: "flex flex-col gap-y-2", children: filteredItems.map((item) => /* @__PURE__ */ jsx2(
586
+ OrderAllocateItemsItem,
587
+ {
588
+ form,
589
+ item,
590
+ locationId: selectedLocationId,
591
+ onQuantityChange,
592
+ onToggleSelected
593
+ },
594
+ item.id
595
+ )) })
596
+ ] })
597
+ ] })
598
+ ] }) }) }) }),
599
+ /* @__PURE__ */ jsx2(RouteFocusModal.Footer, { children: /* @__PURE__ */ jsxs2("div", { className: "flex items-center justify-end gap-x-2", children: [
600
+ /* @__PURE__ */ jsx2(RouteFocusModal.Close, { asChild: true, children: /* @__PURE__ */ jsx2(Button, { size: "small", variant: "secondary", children: t("actions.cancel") }) }),
601
+ /* @__PURE__ */ jsx2(
602
+ Button,
603
+ {
604
+ size: "small",
605
+ type: "submit",
606
+ isLoading: isMutating,
607
+ disabled: !selectedLocationId || disableSubmit,
608
+ children: t("orders.allocateItems.action")
609
+ }
610
+ )
611
+ ] }) })
612
+ ]
613
+ }
614
+ ) });
615
+ }
616
+ var resolveInventoryItemId2 = (link) => link.inventory_item?.id ?? link.inventory_item_id ?? null;
617
+ var clampToAvailable = (desired, link, locationId) => {
618
+ if (!locationId) {
619
+ return desired;
620
+ }
621
+ const level = link.inventory_item?.location_levels?.find(
622
+ (l) => l.location_id === locationId
623
+ );
624
+ const available = level?.available_quantity ?? Number.MAX_SAFE_INTEGER;
625
+ return Math.max(0, Math.min(desired, available));
626
+ };
627
+ function defaultAllocations(items, locationId) {
628
+ const ret = {};
629
+ items.forEach((item) => {
630
+ const links = item.offer?.inventory_item_link ?? [];
631
+ const hasInventoryKit = links.length > 1;
632
+ const firstLink = links[0];
633
+ const firstInventoryItemId = resolveInventoryItemId2(firstLink ?? {});
634
+ const fulfillable = getFulfillableQuantity(
635
+ item
636
+ );
637
+ if (hasInventoryKit) {
638
+ ret[`${item.id}-`] = fulfillable;
639
+ links.forEach((link) => {
640
+ const id = resolveInventoryItemId2(link);
641
+ if (!id) return;
642
+ const required = link.required_quantity ?? 1;
643
+ ret[`${item.id}-${id}`] = clampToAvailable(
644
+ fulfillable * required,
645
+ link,
646
+ locationId
647
+ );
648
+ });
649
+ } else {
650
+ ret[`${item.id}-${firstInventoryItemId ?? ""}`] = clampToAvailable(
651
+ fulfillable,
652
+ firstLink ?? {},
653
+ locationId
654
+ );
655
+ }
656
+ });
657
+ return ret;
658
+ }
659
+ function defaultSelected(items) {
660
+ const ret = {};
661
+ items.forEach((item) => {
662
+ ret[item.id] = true;
663
+ });
664
+ return ret;
665
+ }
666
+
667
+ // src/pages/orders/[id]/allocate-items/index.tsx
668
+ import { jsx as jsx3 } from "react/jsx-runtime";
669
+ var Component2 = () => {
670
+ const { id } = useParams();
671
+ const { order, isLoading, isError, error } = useOrder(id, {
672
+ // `*foo,*foo.bar` or `+foo.bar.baz` makes Medusa's query parser try
673
+ // to look up a literal property `*items` / `+items` on Order and
674
+ // 500. Use `<rel>.*` plus bare scalar names.
675
+ fields: "currency_code,items.*,items.variant.*,items.variant.product.title,items.offer.*,items.offer.inventory_item_link.*,items.offer.inventory_item_link.required_quantity,items.offer.inventory_item_link.inventory_item.*,items.offer.inventory_item_link.inventory_item.location_levels.*,shipping_address.*"
676
+ });
677
+ if (isError) {
678
+ throw error;
679
+ }
680
+ const ready = !isLoading && order;
681
+ return /* @__PURE__ */ jsx3(RouteFocusModal, { children: ready && /* @__PURE__ */ jsx3(OrderAllocateItemsForm, { order }) });
682
+ };
683
+ export {
684
+ Component2 as Component
685
+ };