@commercelayer/react-components 4.21.0-beta.2 → 4.22.0-beta.0

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 (1013) hide show
  1. package/lib/cjs/components/ExternalFunction.d.ts +7 -0
  2. package/lib/cjs/components/ExternalFunction.js +2 -0
  3. package/lib/cjs/components/MetadataInput.d.ts +5 -0
  4. package/lib/cjs/components/MetadataInput.js +2 -0
  5. package/lib/cjs/components/SubmitButton.d.ts +10 -0
  6. package/lib/cjs/components/SubmitButton.js +2 -0
  7. package/lib/cjs/components/addresses/Address.d.ts +31 -0
  8. package/lib/cjs/components/addresses/Address.js +2 -0
  9. package/lib/cjs/components/addresses/AddressCountrySelector.d.ts +34 -0
  10. package/lib/cjs/components/addresses/AddressCountrySelector.js +2 -0
  11. package/lib/cjs/components/addresses/AddressField.d.ts +61 -0
  12. package/lib/cjs/components/addresses/AddressField.js +2 -0
  13. package/lib/cjs/components/addresses/AddressInput.d.ts +34 -0
  14. package/lib/cjs/components/addresses/AddressInput.js +2 -0
  15. package/lib/cjs/components/addresses/AddressInputSelect.d.ts +29 -0
  16. package/lib/cjs/components/addresses/AddressInputSelect.js +2 -0
  17. package/lib/cjs/components/addresses/AddressStateSelector.d.ts +50 -0
  18. package/lib/cjs/components/addresses/AddressStateSelector.js +2 -0
  19. package/lib/cjs/components/addresses/AddressesContainer.d.ts +40 -0
  20. package/lib/cjs/components/addresses/AddressesContainer.js +2 -0
  21. package/lib/cjs/components/addresses/AddressesEmpty.d.ts +26 -0
  22. package/lib/cjs/components/addresses/AddressesEmpty.js +2 -0
  23. package/lib/cjs/components/addresses/BillingAddressContainer.d.ts +6 -0
  24. package/lib/cjs/components/addresses/BillingAddressContainer.js +2 -0
  25. package/lib/cjs/components/addresses/BillingAddressForm.d.ts +34 -0
  26. package/lib/cjs/components/addresses/BillingAddressForm.js +2 -0
  27. package/lib/cjs/components/addresses/SaveAddressesButton.d.ts +18 -0
  28. package/lib/cjs/components/addresses/SaveAddressesButton.js +2 -0
  29. package/lib/cjs/components/addresses/ShippingAddressContainer.d.ts +7 -0
  30. package/lib/cjs/components/addresses/ShippingAddressContainer.js +2 -0
  31. package/lib/cjs/components/addresses/ShippingAddressForm.d.ts +31 -0
  32. package/lib/cjs/components/addresses/ShippingAddressForm.js +2 -0
  33. package/lib/cjs/components/auth/CommerceLayer.d.ts +25 -0
  34. package/lib/cjs/components/auth/CommerceLayer.js +2 -0
  35. package/lib/cjs/components/customers/CustomerAddressForm.d.ts +13 -0
  36. package/lib/cjs/components/customers/CustomerAddressForm.js +2 -0
  37. package/lib/cjs/components/customers/CustomerContainer.d.ts +38 -0
  38. package/lib/cjs/components/customers/CustomerContainer.js +2 -0
  39. package/lib/cjs/components/customers/CustomerField.d.ts +25 -0
  40. package/lib/cjs/components/customers/CustomerField.js +2 -0
  41. package/lib/cjs/components/customers/CustomerInput.d.ts +11 -0
  42. package/lib/cjs/components/customers/CustomerInput.js +2 -0
  43. package/lib/cjs/components/customers/CustomerPaymentSource.d.ts +11 -0
  44. package/lib/cjs/components/customers/CustomerPaymentSource.js +2 -0
  45. package/lib/cjs/components/customers/CustomerPaymentSourceEmpty.d.ts +14 -0
  46. package/lib/cjs/components/customers/CustomerPaymentSourceEmpty.js +2 -0
  47. package/lib/cjs/components/customers/MyAccountLink.d.ts +38 -0
  48. package/lib/cjs/components/customers/MyAccountLink.js +2 -0
  49. package/lib/cjs/components/customers/MyIdentityLink.d.ts +59 -0
  50. package/lib/cjs/components/customers/MyIdentityLink.js +2 -0
  51. package/lib/cjs/components/customers/SaveCustomerButton.d.ts +12 -0
  52. package/lib/cjs/components/customers/SaveCustomerButton.js +2 -0
  53. package/lib/cjs/components/errors/Errors.d.ts +31 -0
  54. package/lib/cjs/components/errors/Errors.js +2 -0
  55. package/lib/cjs/components/gift_cards/GiftCard.d.ts +10 -0
  56. package/lib/cjs/components/gift_cards/GiftCard.js +2 -0
  57. package/lib/cjs/components/gift_cards/GiftCardContainer.d.ts +6 -0
  58. package/lib/cjs/components/gift_cards/GiftCardContainer.js +2 -0
  59. package/lib/cjs/components/gift_cards/GiftCardCurrencySelector.d.ts +7 -0
  60. package/lib/cjs/components/gift_cards/GiftCardCurrencySelector.js +2 -0
  61. package/lib/cjs/components/gift_cards/GiftCardInput.d.ts +7 -0
  62. package/lib/cjs/components/gift_cards/GiftCardInput.js +2 -0
  63. package/lib/cjs/components/gift_cards/GiftCardOrCouponCode.d.ts +16 -0
  64. package/lib/cjs/components/gift_cards/GiftCardOrCouponCode.js +2 -0
  65. package/lib/cjs/components/gift_cards/GiftCardOrCouponForm.d.ts +15 -0
  66. package/lib/cjs/components/gift_cards/GiftCardOrCouponForm.js +2 -0
  67. package/lib/cjs/components/gift_cards/GiftCardOrCouponInput.d.ts +11 -0
  68. package/lib/cjs/components/gift_cards/GiftCardOrCouponInput.js +2 -0
  69. package/lib/cjs/components/gift_cards/GiftCardOrCouponRemoveButton.d.ts +20 -0
  70. package/lib/cjs/components/gift_cards/GiftCardOrCouponRemoveButton.js +2 -0
  71. package/lib/cjs/components/gift_cards/GiftCardOrCouponSubmit.d.ts +10 -0
  72. package/lib/cjs/components/gift_cards/GiftCardOrCouponSubmit.js +2 -0
  73. package/lib/cjs/components/gift_cards/GiftCardRecipientInput.d.ts +0 -0
  74. package/lib/cjs/components/gift_cards/GiftCardRecipientInput.js +2 -0
  75. package/lib/cjs/components/in_stock_subscriptions/InStockSubscriptionButton.d.ts +36 -0
  76. package/lib/cjs/components/in_stock_subscriptions/InStockSubscriptionButton.js +2 -0
  77. package/lib/cjs/components/in_stock_subscriptions/InStockSubscriptionsContainer.d.ts +10 -0
  78. package/lib/cjs/components/in_stock_subscriptions/InStockSubscriptionsContainer.js +2 -0
  79. package/lib/cjs/components/line_items/LineItem.d.ts +8 -0
  80. package/lib/cjs/components/line_items/LineItem.js +2 -0
  81. package/lib/cjs/components/line_items/LineItemAmount.d.ts +7 -0
  82. package/lib/cjs/components/line_items/LineItemAmount.js +2 -0
  83. package/lib/cjs/components/line_items/LineItemCode.d.ts +13 -0
  84. package/lib/cjs/components/line_items/LineItemCode.js +2 -0
  85. package/lib/cjs/components/line_items/LineItemField.d.ts +14 -0
  86. package/lib/cjs/components/line_items/LineItemField.js +2 -0
  87. package/lib/cjs/components/line_items/LineItemImage.d.ts +17 -0
  88. package/lib/cjs/components/line_items/LineItemImage.js +2 -0
  89. package/lib/cjs/components/line_items/LineItemName.d.ts +12 -0
  90. package/lib/cjs/components/line_items/LineItemName.js +2 -0
  91. package/lib/cjs/components/line_items/LineItemOption.d.ts +19 -0
  92. package/lib/cjs/components/line_items/LineItemOption.js +2 -0
  93. package/lib/cjs/components/line_items/LineItemOptions.d.ts +16 -0
  94. package/lib/cjs/components/line_items/LineItemOptions.js +2 -0
  95. package/lib/cjs/components/line_items/LineItemQuantity.d.ts +21 -0
  96. package/lib/cjs/components/line_items/LineItemQuantity.js +2 -0
  97. package/lib/cjs/components/line_items/LineItemRemoveLink.d.ts +14 -0
  98. package/lib/cjs/components/line_items/LineItemRemoveLink.js +2 -0
  99. package/lib/cjs/components/line_items/LineItemsContainer.d.ts +9 -0
  100. package/lib/cjs/components/line_items/LineItemsContainer.js +2 -0
  101. package/lib/cjs/components/line_items/LineItemsCount.d.ts +12 -0
  102. package/lib/cjs/components/line_items/LineItemsCount.js +2 -0
  103. package/lib/cjs/components/line_items/LineItemsEmpty.d.ts +12 -0
  104. package/lib/cjs/components/line_items/LineItemsEmpty.js +2 -0
  105. package/lib/cjs/components/orders/AddToCartButton.d.ts +95 -0
  106. package/lib/cjs/components/orders/AddToCartButton.js +2 -0
  107. package/lib/cjs/components/orders/AdjustmentAmount.d.ts +4 -0
  108. package/lib/cjs/components/orders/AdjustmentAmount.js +2 -0
  109. package/lib/cjs/components/orders/CartLink.d.ts +47 -0
  110. package/lib/cjs/components/orders/CartLink.js +2 -0
  111. package/lib/cjs/components/orders/CheckoutLink.d.ts +28 -0
  112. package/lib/cjs/components/orders/CheckoutLink.js +2 -0
  113. package/lib/cjs/components/orders/DiscountAmount.d.ts +4 -0
  114. package/lib/cjs/components/orders/DiscountAmount.js +2 -0
  115. package/lib/cjs/components/orders/GiftCardAmount.d.ts +4 -0
  116. package/lib/cjs/components/orders/GiftCardAmount.js +2 -0
  117. package/lib/cjs/components/orders/HostedCart.d.ts +58 -0
  118. package/lib/cjs/components/orders/HostedCart.js +2 -0
  119. package/lib/cjs/components/orders/OrderContainer.d.ts +62 -0
  120. package/lib/cjs/components/orders/OrderContainer.js +2 -0
  121. package/lib/cjs/components/orders/OrderList.d.ts +83 -0
  122. package/lib/cjs/components/orders/OrderList.js +2 -0
  123. package/lib/cjs/components/orders/OrderListEmpty.d.ts +17 -0
  124. package/lib/cjs/components/orders/OrderListEmpty.js +2 -0
  125. package/lib/cjs/components/orders/OrderListPaginationButtons.d.ts +48 -0
  126. package/lib/cjs/components/orders/OrderListPaginationButtons.js +2 -0
  127. package/lib/cjs/components/orders/OrderListPaginationInfo.d.ts +29 -0
  128. package/lib/cjs/components/orders/OrderListPaginationInfo.js +2 -0
  129. package/lib/cjs/components/orders/OrderListRow.d.ts +29 -0
  130. package/lib/cjs/components/orders/OrderListRow.js +2 -0
  131. package/lib/cjs/components/orders/OrderNumber.d.ts +5 -0
  132. package/lib/cjs/components/orders/OrderNumber.js +2 -0
  133. package/lib/cjs/components/orders/OrderStorage.d.ts +31 -0
  134. package/lib/cjs/components/orders/OrderStorage.js +2 -0
  135. package/lib/cjs/components/orders/PaymentMethodAmount.d.ts +4 -0
  136. package/lib/cjs/components/orders/PaymentMethodAmount.js +2 -0
  137. package/lib/cjs/components/orders/PlaceOrderButton.d.ts +35 -0
  138. package/lib/cjs/components/orders/PlaceOrderButton.js +2 -0
  139. package/lib/cjs/components/orders/PlaceOrderContainer.d.ts +8 -0
  140. package/lib/cjs/components/orders/PlaceOrderContainer.js +2 -0
  141. package/lib/cjs/components/orders/PrivacyAndTermsCheckbox.d.ts +4 -0
  142. package/lib/cjs/components/orders/PrivacyAndTermsCheckbox.js +2 -0
  143. package/lib/cjs/components/orders/ShippingAmount.d.ts +4 -0
  144. package/lib/cjs/components/orders/ShippingAmount.js +2 -0
  145. package/lib/cjs/components/orders/SubTotalAmount.d.ts +4 -0
  146. package/lib/cjs/components/orders/SubTotalAmount.js +2 -0
  147. package/lib/cjs/components/orders/TaxesAmount.d.ts +4 -0
  148. package/lib/cjs/components/orders/TaxesAmount.js +2 -0
  149. package/lib/cjs/components/orders/TotalAmount.d.ts +4 -0
  150. package/lib/cjs/components/orders/TotalAmount.js +2 -0
  151. package/lib/cjs/components/parcels/ParcelField.d.ts +14 -0
  152. package/lib/cjs/components/parcels/ParcelField.js +2 -0
  153. package/lib/cjs/components/parcels/ParcelLineItem.d.ts +7 -0
  154. package/lib/cjs/components/parcels/ParcelLineItem.js +2 -0
  155. package/lib/cjs/components/parcels/ParcelLineItemField.d.ts +14 -0
  156. package/lib/cjs/components/parcels/ParcelLineItemField.js +2 -0
  157. package/lib/cjs/components/parcels/ParcelLineItemsCount.d.ts +18 -0
  158. package/lib/cjs/components/parcels/ParcelLineItemsCount.js +2 -0
  159. package/lib/cjs/components/parcels/Parcels.d.ts +7 -0
  160. package/lib/cjs/components/parcels/Parcels.js +2 -0
  161. package/lib/cjs/components/parcels/ParcelsCount.d.ts +18 -0
  162. package/lib/cjs/components/parcels/ParcelsCount.js +2 -0
  163. package/lib/cjs/components/payment_gateways/AdyenGateway.d.ts +5 -0
  164. package/lib/cjs/components/payment_gateways/AdyenGateway.js +2 -0
  165. package/lib/cjs/components/payment_gateways/BraintreeGateway.d.ts +5 -0
  166. package/lib/cjs/components/payment_gateways/BraintreeGateway.js +2 -0
  167. package/lib/cjs/components/payment_gateways/CheckoutComGateway.d.ts +5 -0
  168. package/lib/cjs/components/payment_gateways/CheckoutComGateway.js +2 -0
  169. package/lib/cjs/components/payment_gateways/ExternalGateway.d.ts +5 -0
  170. package/lib/cjs/components/payment_gateways/ExternalGateway.js +2 -0
  171. package/lib/cjs/components/payment_gateways/KlarnaGateway.d.ts +5 -0
  172. package/lib/cjs/components/payment_gateways/KlarnaGateway.js +2 -0
  173. package/lib/cjs/components/payment_gateways/PaymentGateway.d.ts +16 -0
  174. package/lib/cjs/components/payment_gateways/PaymentGateway.js +2 -0
  175. package/lib/cjs/components/payment_gateways/PaypalGateway.d.ts +5 -0
  176. package/lib/cjs/components/payment_gateways/PaypalGateway.js +2 -0
  177. package/lib/cjs/components/payment_gateways/StripeGateway.d.ts +5 -0
  178. package/lib/cjs/components/payment_gateways/StripeGateway.js +2 -0
  179. package/lib/cjs/components/payment_gateways/WireTransferGateway.d.ts +5 -0
  180. package/lib/cjs/components/payment_gateways/WireTransferGateway.js +2 -0
  181. package/lib/cjs/components/payment_methods/PaymentMethod.d.ts +45 -0
  182. package/lib/cjs/components/payment_methods/PaymentMethod.js +2 -0
  183. package/lib/cjs/components/payment_methods/PaymentMethodName.d.ts +10 -0
  184. package/lib/cjs/components/payment_methods/PaymentMethodName.js +2 -0
  185. package/lib/cjs/components/payment_methods/PaymentMethodPrice.d.ts +8 -0
  186. package/lib/cjs/components/payment_methods/PaymentMethodPrice.js +2 -0
  187. package/lib/cjs/components/payment_methods/PaymentMethodRadioButton.d.ts +17 -0
  188. package/lib/cjs/components/payment_methods/PaymentMethodRadioButton.js +2 -0
  189. package/lib/cjs/components/payment_methods/PaymentMethodsContainer.d.ts +8 -0
  190. package/lib/cjs/components/payment_methods/PaymentMethodsContainer.js +2 -0
  191. package/lib/cjs/components/payment_source/AdyenPayment.d.ts +66 -0
  192. package/lib/cjs/components/payment_source/AdyenPayment.js +2 -0
  193. package/lib/cjs/components/payment_source/BraintreePayment.d.ts +32 -0
  194. package/lib/cjs/components/payment_source/BraintreePayment.js +2 -0
  195. package/lib/cjs/components/payment_source/CheckoutComPayment.d.ts +23 -0
  196. package/lib/cjs/components/payment_source/CheckoutComPayment.js +2 -0
  197. package/lib/cjs/components/payment_source/ExternalPayment.d.ts +24 -0
  198. package/lib/cjs/components/payment_source/ExternalPayment.js +2 -0
  199. package/lib/cjs/components/payment_source/KlarnaPayment.d.ts +10 -0
  200. package/lib/cjs/components/payment_source/KlarnaPayment.js +2 -0
  201. package/lib/cjs/components/payment_source/PaymentSource.d.ts +19 -0
  202. package/lib/cjs/components/payment_source/PaymentSource.js +2 -0
  203. package/lib/cjs/components/payment_source/PaymentSourceBrandIcon.d.ts +15 -0
  204. package/lib/cjs/components/payment_source/PaymentSourceBrandIcon.js +2 -0
  205. package/lib/cjs/components/payment_source/PaymentSourceBrandName.d.ts +12 -0
  206. package/lib/cjs/components/payment_source/PaymentSourceBrandName.js +2 -0
  207. package/lib/cjs/components/payment_source/PaymentSourceDetail.d.ts +15 -0
  208. package/lib/cjs/components/payment_source/PaymentSourceDetail.js +2 -0
  209. package/lib/cjs/components/payment_source/PaymentSourceEditButton.d.ts +10 -0
  210. package/lib/cjs/components/payment_source/PaymentSourceEditButton.js +2 -0
  211. package/lib/cjs/components/payment_source/PaypalPayment.d.ts +12 -0
  212. package/lib/cjs/components/payment_source/PaypalPayment.js +2 -0
  213. package/lib/cjs/components/payment_source/StripeExpressPayment.d.ts +6 -0
  214. package/lib/cjs/components/payment_source/StripeExpressPayment.js +2 -0
  215. package/lib/cjs/components/payment_source/StripePayment.d.ts +22 -0
  216. package/lib/cjs/components/payment_source/StripePayment.js +2 -0
  217. package/lib/cjs/components/payment_source/WireTransferPayment.d.ts +12 -0
  218. package/lib/cjs/components/payment_source/WireTransferPayment.js +2 -0
  219. package/lib/cjs/components/prices/Price.d.ts +35 -0
  220. package/lib/cjs/components/prices/Price.js +2 -0
  221. package/lib/cjs/components/prices/PricesContainer.d.ts +41 -0
  222. package/lib/cjs/components/prices/PricesContainer.js +2 -0
  223. package/lib/cjs/components/shipments/Shipment.d.ts +10 -0
  224. package/lib/cjs/components/shipments/Shipment.js +2 -0
  225. package/lib/cjs/components/shipments/ShipmentField.d.ts +12 -0
  226. package/lib/cjs/components/shipments/ShipmentField.js +2 -0
  227. package/lib/cjs/components/shipments/ShipmentsContainer.d.ts +6 -0
  228. package/lib/cjs/components/shipments/ShipmentsContainer.js +2 -0
  229. package/lib/cjs/components/shipments/ShipmentsCount.d.ts +18 -0
  230. package/lib/cjs/components/shipments/ShipmentsCount.js +2 -0
  231. package/lib/cjs/components/shipping_methods/ShippingMethod.d.ts +8 -0
  232. package/lib/cjs/components/shipping_methods/ShippingMethod.js +2 -0
  233. package/lib/cjs/components/shipping_methods/ShippingMethodName.d.ts +11 -0
  234. package/lib/cjs/components/shipping_methods/ShippingMethodName.js +2 -0
  235. package/lib/cjs/components/shipping_methods/ShippingMethodPrice.d.ts +20 -0
  236. package/lib/cjs/components/shipping_methods/ShippingMethodPrice.js +2 -0
  237. package/lib/cjs/components/shipping_methods/ShippingMethodRadioButton.d.ts +17 -0
  238. package/lib/cjs/components/shipping_methods/ShippingMethodRadioButton.js +2 -0
  239. package/lib/cjs/components/skus/AvailabilityContainer.d.ts +34 -0
  240. package/lib/cjs/components/skus/AvailabilityContainer.js +2 -0
  241. package/lib/cjs/components/skus/AvailabilityTemplate.d.ts +52 -0
  242. package/lib/cjs/components/skus/AvailabilityTemplate.js +2 -0
  243. package/lib/cjs/components/skus/DeliveryLeadTime.d.ts +10 -0
  244. package/lib/cjs/components/skus/DeliveryLeadTime.js +2 -0
  245. package/lib/cjs/components/skus/SkuField.d.ts +25 -0
  246. package/lib/cjs/components/skus/SkuField.js +2 -0
  247. package/lib/cjs/components/skus/SkuList.d.ts +10 -0
  248. package/lib/cjs/components/skus/SkuList.js +2 -0
  249. package/lib/cjs/components/skus/SkuListsContainer.d.ts +6 -0
  250. package/lib/cjs/components/skus/SkuListsContainer.js +2 -0
  251. package/lib/cjs/components/skus/Skus.d.ts +18 -0
  252. package/lib/cjs/components/skus/Skus.js +2 -0
  253. package/lib/cjs/components/skus/SkusContainer.d.ts +31 -0
  254. package/lib/cjs/components/skus/SkusContainer.js +2 -0
  255. package/lib/cjs/components/stock_transfers/StockTransfer.d.ts +7 -0
  256. package/lib/cjs/components/stock_transfers/StockTransfer.js +2 -0
  257. package/lib/cjs/components/stock_transfers/StockTransferField.d.ts +10 -0
  258. package/lib/cjs/components/stock_transfers/StockTransferField.js +2 -0
  259. package/lib/cjs/components/utils/AddressCardsTemplate.d.ts +26 -0
  260. package/lib/cjs/components/utils/AddressCardsTemplate.js +2 -0
  261. package/lib/cjs/components/utils/BaseField.d.ts +8 -0
  262. package/lib/cjs/components/utils/BaseField.js +2 -0
  263. package/lib/cjs/components/utils/BaseInput.d.ts +5 -0
  264. package/lib/cjs/components/utils/BaseInput.js +2 -0
  265. package/lib/cjs/components/utils/BaseOrderPrice.d.ts +6 -0
  266. package/lib/cjs/components/utils/BaseOrderPrice.js +2 -0
  267. package/lib/cjs/components/utils/BaseSelect.d.ts +5 -0
  268. package/lib/cjs/components/utils/BaseSelect.js +2 -0
  269. package/lib/cjs/components/utils/ErrorBoundary.d.ts +14 -0
  270. package/lib/cjs/components/utils/ErrorBoundary.js +2 -0
  271. package/lib/cjs/components/utils/GenericFieldComponent.d.ts +58 -0
  272. package/lib/cjs/components/utils/GenericFieldComponent.js +2 -0
  273. package/lib/cjs/components/utils/Parent.d.ts +6 -0
  274. package/lib/cjs/components/utils/Parent.js +2 -0
  275. package/lib/cjs/components/utils/PaymentCardsTemplate.d.ts +41 -0
  276. package/lib/cjs/components/utils/PaymentCardsTemplate.js +2 -0
  277. package/lib/cjs/components/utils/PriceTemplate.d.ts +8 -0
  278. package/lib/cjs/components/utils/PriceTemplate.js +2 -0
  279. package/lib/cjs/components/utils/getAllErrors.d.ts +16 -0
  280. package/lib/cjs/components/utils/getAllErrors.js +2 -0
  281. package/lib/cjs/config/currency.d.ts +5 -0
  282. package/lib/cjs/config/currency.js +2 -0
  283. package/lib/cjs/context/AddressChildrenContext.d.ts +6 -0
  284. package/lib/cjs/context/AddressChildrenContext.js +2 -0
  285. package/lib/cjs/context/AddressContext.d.ts +18 -0
  286. package/lib/cjs/context/AddressContext.js +2 -0
  287. package/lib/cjs/context/AvailabilityContext.d.ts +2 -0
  288. package/lib/cjs/context/AvailabilityContext.js +2 -0
  289. package/lib/cjs/context/BillingAddressContext.d.ts +9 -0
  290. package/lib/cjs/context/BillingAddressContext.js +2 -0
  291. package/lib/cjs/context/BillingAddressFormContext.d.ts +22 -0
  292. package/lib/cjs/context/BillingAddressFormContext.js +2 -0
  293. package/lib/cjs/context/CommerceLayerContext.d.ts +6 -0
  294. package/lib/cjs/context/CommerceLayerContext.js +2 -0
  295. package/lib/cjs/context/CouponAndGiftCardFormContext.d.ts +8 -0
  296. package/lib/cjs/context/CouponAndGiftCardFormContext.js +2 -0
  297. package/lib/cjs/context/CustomerAddressFormContext.d.ts +17 -0
  298. package/lib/cjs/context/CustomerAddressFormContext.js +2 -0
  299. package/lib/cjs/context/CustomerContext.d.ts +29 -0
  300. package/lib/cjs/context/CustomerContext.js +2 -0
  301. package/lib/cjs/context/CustomerPaymentSourceContext.d.ts +11 -0
  302. package/lib/cjs/context/CustomerPaymentSourceContext.js +2 -0
  303. package/lib/cjs/context/ExternalFunctionContext.d.ts +11 -0
  304. package/lib/cjs/context/ExternalFunctionContext.js +2 -0
  305. package/lib/cjs/context/GiftCardContext.d.ts +10 -0
  306. package/lib/cjs/context/GiftCardContext.js +2 -0
  307. package/lib/cjs/context/InStockSubscriptionContext.d.ts +6 -0
  308. package/lib/cjs/context/InStockSubscriptionContext.js +2 -0
  309. package/lib/cjs/context/LineItemChildrenContext.d.ts +8 -0
  310. package/lib/cjs/context/LineItemChildrenContext.js +2 -0
  311. package/lib/cjs/context/LineItemContext.d.ts +7 -0
  312. package/lib/cjs/context/LineItemContext.js +2 -0
  313. package/lib/cjs/context/LineItemOptionChildrenContext.d.ts +9 -0
  314. package/lib/cjs/context/LineItemOptionChildrenContext.js +2 -0
  315. package/lib/cjs/context/OrderContext.d.ts +30 -0
  316. package/lib/cjs/context/OrderContext.js +2 -0
  317. package/lib/cjs/context/OrderListChildrenContext.d.ts +73 -0
  318. package/lib/cjs/context/OrderListChildrenContext.js +2 -0
  319. package/lib/cjs/context/OrderListPaginationContext.d.ts +15 -0
  320. package/lib/cjs/context/OrderListPaginationContext.js +2 -0
  321. package/lib/cjs/context/OrderStorageContext.d.ts +10 -0
  322. package/lib/cjs/context/OrderStorageContext.js +2 -0
  323. package/lib/cjs/context/ParcelChildrenContext.d.ts +6 -0
  324. package/lib/cjs/context/ParcelChildrenContext.js +2 -0
  325. package/lib/cjs/context/ParcelLineItemChildrenContext.d.ts +6 -0
  326. package/lib/cjs/context/ParcelLineItemChildrenContext.js +2 -0
  327. package/lib/cjs/context/PaymentMethodChildrenContext.d.ts +10 -0
  328. package/lib/cjs/context/PaymentMethodChildrenContext.js +2 -0
  329. package/lib/cjs/context/PaymentMethodContext.d.ts +13 -0
  330. package/lib/cjs/context/PaymentMethodContext.js +2 -0
  331. package/lib/cjs/context/PaymentSourceContext.d.ts +14 -0
  332. package/lib/cjs/context/PaymentSourceContext.js +2 -0
  333. package/lib/cjs/context/PlaceOrderContext.d.ts +12 -0
  334. package/lib/cjs/context/PlaceOrderContext.js +2 -0
  335. package/lib/cjs/context/PricesContext.d.ts +6 -0
  336. package/lib/cjs/context/PricesContext.js +2 -0
  337. package/lib/cjs/context/ShipmentChildrenContext.d.ts +13 -0
  338. package/lib/cjs/context/ShipmentChildrenContext.js +2 -0
  339. package/lib/cjs/context/ShipmentContext.d.ts +10 -0
  340. package/lib/cjs/context/ShipmentContext.js +2 -0
  341. package/lib/cjs/context/ShippingAddressContext.d.ts +9 -0
  342. package/lib/cjs/context/ShippingAddressContext.js +2 -0
  343. package/lib/cjs/context/ShippingAddressFormContext.d.ts +3 -0
  344. package/lib/cjs/context/ShippingAddressFormContext.js +2 -0
  345. package/lib/cjs/context/ShippingMethodChildrenContext.d.ts +9 -0
  346. package/lib/cjs/context/ShippingMethodChildrenContext.js +2 -0
  347. package/lib/cjs/context/SkuChildrenContext.d.ts +8 -0
  348. package/lib/cjs/context/SkuChildrenContext.js +2 -0
  349. package/lib/cjs/context/SkuContext.d.ts +8 -0
  350. package/lib/cjs/context/SkuContext.js +2 -0
  351. package/lib/cjs/context/SkuListsContext.d.ts +5 -0
  352. package/lib/cjs/context/SkuListsContext.js +2 -0
  353. package/lib/cjs/context/StockTransferChildrenContext.d.ts +6 -0
  354. package/lib/cjs/context/StockTransferChildrenContext.js +2 -0
  355. package/lib/cjs/hooks/useCommerceLayer.d.ts +12 -0
  356. package/lib/cjs/hooks/useCommerceLayer.js +2 -0
  357. package/lib/cjs/hooks/useCustomerContainer.d.ts +12 -0
  358. package/lib/cjs/hooks/useCustomerContainer.js +2 -0
  359. package/lib/cjs/hooks/useOrderContainer.d.ts +16 -0
  360. package/lib/cjs/hooks/useOrderContainer.js +2 -0
  361. package/lib/cjs/index.d.ts +107 -0
  362. package/lib/cjs/index.js +2 -0
  363. package/lib/cjs/reducers/AddressReducer.d.ts +80 -0
  364. package/lib/cjs/reducers/AddressReducer.js +2 -0
  365. package/lib/cjs/reducers/AvailabilityReducer.d.ts +53 -0
  366. package/lib/cjs/reducers/AvailabilityReducer.js +2 -0
  367. package/lib/cjs/reducers/BillingAddressReducer.d.ts +31 -0
  368. package/lib/cjs/reducers/BillingAddressReducer.js +2 -0
  369. package/lib/cjs/reducers/CustomerReducer.d.ts +183 -0
  370. package/lib/cjs/reducers/CustomerReducer.js +2 -0
  371. package/lib/cjs/reducers/GiftCardReducer.d.ts +66 -0
  372. package/lib/cjs/reducers/GiftCardReducer.js +2 -0
  373. package/lib/cjs/reducers/InStockSubscriptionReducer.d.ts +33 -0
  374. package/lib/cjs/reducers/InStockSubscriptionReducer.js +2 -0
  375. package/lib/cjs/reducers/LineItemReducer.d.ts +47 -0
  376. package/lib/cjs/reducers/LineItemReducer.js +2 -0
  377. package/lib/cjs/reducers/OrderReducer.d.ts +171 -0
  378. package/lib/cjs/reducers/OrderReducer.js +2 -0
  379. package/lib/cjs/reducers/PaymentMethodReducer.d.ts +161 -0
  380. package/lib/cjs/reducers/PaymentMethodReducer.js +2 -0
  381. package/lib/cjs/reducers/PlaceOrderReducer.d.ts +72 -0
  382. package/lib/cjs/reducers/PlaceOrderReducer.js +2 -0
  383. package/lib/cjs/reducers/PriceReducer.d.ts +35 -0
  384. package/lib/cjs/reducers/PriceReducer.js +2 -0
  385. package/lib/cjs/reducers/ShipmentReducer.d.ts +41 -0
  386. package/lib/cjs/reducers/ShipmentReducer.js +2 -0
  387. package/lib/cjs/reducers/ShippingAddressReducer.d.ts +32 -0
  388. package/lib/cjs/reducers/ShippingAddressReducer.js +2 -0
  389. package/lib/cjs/reducers/SkuListsReducer.d.ts +21 -0
  390. package/lib/cjs/reducers/SkuListsReducer.js +2 -0
  391. package/lib/cjs/reducers/SkuReducer.d.ts +21 -0
  392. package/lib/cjs/reducers/SkuReducer.js +2 -0
  393. package/lib/cjs/typings/errors.d.ts +15 -0
  394. package/lib/cjs/typings/errors.js +2 -0
  395. package/lib/cjs/typings/globals.d.ts +6 -0
  396. package/lib/cjs/typings/globals.js +2 -0
  397. package/lib/cjs/typings/index.d.ts +117 -0
  398. package/lib/cjs/typings/index.js +2 -0
  399. package/lib/cjs/utils/PropsType.d.ts +33 -0
  400. package/lib/cjs/utils/PropsType.js +2 -0
  401. package/lib/cjs/utils/addressesManager.d.ts +64 -0
  402. package/lib/cjs/utils/addressesManager.js +2 -0
  403. package/lib/cjs/utils/adyen/manageGiftCard.d.ts +16 -0
  404. package/lib/cjs/utils/adyen/manageGiftCard.js +2 -0
  405. package/lib/cjs/utils/baseReducer.d.ts +3 -0
  406. package/lib/cjs/utils/baseReducer.js +2 -0
  407. package/lib/cjs/utils/browserInfo.d.ts +12 -0
  408. package/lib/cjs/utils/browserInfo.js +2 -0
  409. package/lib/cjs/utils/canPlaceOrder.d.ts +5 -0
  410. package/lib/cjs/utils/canPlaceOrder.js +2 -0
  411. package/lib/cjs/utils/checkIncludeResource.d.ts +8 -0
  412. package/lib/cjs/utils/checkIncludeResource.js +2 -0
  413. package/lib/cjs/utils/compareObjAttribute.d.ts +7 -0
  414. package/lib/cjs/utils/compareObjAttribute.js +2 -0
  415. package/lib/cjs/utils/countryStateCity.d.ts +801 -0
  416. package/lib/cjs/utils/countryStateCity.js +2 -0
  417. package/lib/cjs/utils/customMessages.d.ts +2 -0
  418. package/lib/cjs/utils/customMessages.js +2 -0
  419. package/lib/cjs/utils/customerOrderOptions.d.ts +3 -0
  420. package/lib/cjs/utils/customerOrderOptions.js +2 -0
  421. package/lib/cjs/utils/events.d.ts +5 -0
  422. package/lib/cjs/utils/events.js +2 -0
  423. package/lib/cjs/utils/expressPaymentHelper.d.ts +92 -0
  424. package/lib/cjs/utils/expressPaymentHelper.js +2 -0
  425. package/lib/cjs/utils/filterChildren.d.ts +12 -0
  426. package/lib/cjs/utils/filterChildren.js +2 -0
  427. package/lib/cjs/utils/formCleaner.d.ts +4 -0
  428. package/lib/cjs/utils/formCleaner.js +2 -0
  429. package/lib/cjs/utils/getAmount.d.ts +7 -0
  430. package/lib/cjs/utils/getAmount.js +2 -0
  431. package/lib/cjs/utils/getApplicationLink.d.ts +35 -0
  432. package/lib/cjs/utils/getApplicationLink.js +2 -0
  433. package/lib/cjs/utils/getCardDetails.d.ts +16 -0
  434. package/lib/cjs/utils/getCardDetails.js +2 -0
  435. package/lib/cjs/utils/getCustomerIdByToken.d.ts +6 -0
  436. package/lib/cjs/utils/getCustomerIdByToken.js +2 -0
  437. package/lib/cjs/utils/getDomain.d.ts +4 -0
  438. package/lib/cjs/utils/getDomain.js +2 -0
  439. package/lib/cjs/utils/getErrors.d.ts +19 -0
  440. package/lib/cjs/utils/getErrors.js +2 -0
  441. package/lib/cjs/utils/getLineItemsCount.d.ts +10 -0
  442. package/lib/cjs/utils/getLineItemsCount.js +2 -0
  443. package/lib/cjs/utils/getLoaderComponent.d.ts +3 -0
  444. package/lib/cjs/utils/getLoaderComponent.js +2 -0
  445. package/lib/cjs/utils/getPaymentAttributes.d.ts +17 -0
  446. package/lib/cjs/utils/getPaymentAttributes.js +2 -0
  447. package/lib/cjs/utils/getPrices.d.ts +6 -0
  448. package/lib/cjs/utils/getPrices.js +2 -0
  449. package/lib/cjs/utils/getPublicIp.d.ts +1 -0
  450. package/lib/cjs/utils/getPublicIp.js +2 -0
  451. package/lib/cjs/utils/getSdk.d.ts +3 -0
  452. package/lib/cjs/utils/getSdk.js +2 -0
  453. package/lib/cjs/utils/getSkus.d.ts +3 -0
  454. package/lib/cjs/utils/getSkus.js +2 -0
  455. package/lib/cjs/utils/hasSubscriptions.d.ts +7 -0
  456. package/lib/cjs/utils/hasSubscriptions.js +2 -0
  457. package/lib/cjs/utils/hooks/useCustomContext.d.ts +21 -0
  458. package/lib/cjs/utils/hooks/useCustomContext.js +2 -0
  459. package/lib/cjs/utils/hooks/useExternalScript.d.ts +1 -0
  460. package/lib/cjs/utils/hooks/useExternalScript.js +2 -0
  461. package/lib/cjs/utils/icons.d.ts +2 -0
  462. package/lib/cjs/utils/icons.js +2 -0
  463. package/lib/cjs/utils/isDate.d.ts +1 -0
  464. package/lib/cjs/utils/isDate.js +2 -0
  465. package/lib/cjs/utils/isEmpty.d.ts +1 -0
  466. package/lib/cjs/utils/isEmpty.js +2 -0
  467. package/lib/cjs/utils/isGuestToken.d.ts +6 -0
  468. package/lib/cjs/utils/isGuestToken.js +2 -0
  469. package/lib/cjs/utils/isJSON.d.ts +1 -0
  470. package/lib/cjs/utils/isJSON.js +2 -0
  471. package/lib/cjs/utils/jwt.d.ts +27 -0
  472. package/lib/cjs/utils/jwt.js +2 -0
  473. package/lib/cjs/utils/localStorage.d.ts +11 -0
  474. package/lib/cjs/utils/localStorage.js +2 -0
  475. package/lib/cjs/utils/omit.d.ts +1 -0
  476. package/lib/cjs/utils/omit.js +2 -0
  477. package/lib/cjs/utils/organization.d.ts +18 -0
  478. package/lib/cjs/utils/organization.js +2 -0
  479. package/lib/cjs/utils/payment-methods/sortPaymentMethods.d.ts +2 -0
  480. package/lib/cjs/utils/payment-methods/sortPaymentMethods.js +2 -0
  481. package/lib/cjs/utils/pick.d.ts +1 -0
  482. package/lib/cjs/utils/pick.js +2 -0
  483. package/lib/cjs/utils/placeholderImages.d.ts +2 -0
  484. package/lib/cjs/utils/placeholderImages.js +2 -0
  485. package/lib/cjs/utils/promisify.d.ts +1 -0
  486. package/lib/cjs/utils/promisify.js +2 -0
  487. package/lib/cjs/utils/replace.d.ts +2 -0
  488. package/lib/cjs/utils/replace.js +2 -0
  489. package/lib/cjs/utils/scrollbarWidth.d.ts +1 -0
  490. package/lib/cjs/utils/scrollbarWidth.js +2 -0
  491. package/lib/cjs/utils/shipments.d.ts +3 -0
  492. package/lib/cjs/utils/shipments.js +2 -0
  493. package/lib/cjs/utils/snakeToCamelCase.d.ts +5 -0
  494. package/lib/cjs/utils/snakeToCamelCase.js +2 -0
  495. package/lib/cjs/utils/stripe/retrievePaymentIntent.d.ts +14 -0
  496. package/lib/cjs/utils/stripe/retrievePaymentIntent.js +2 -0
  497. package/lib/cjs/utils/triggerAttributeHelper.d.ts +31 -0
  498. package/lib/cjs/utils/triggerAttributeHelper.js +2 -0
  499. package/lib/cjs/utils/updateOrderSubscriptionCustomerPaymentSource.d.ts +8 -0
  500. package/lib/cjs/utils/updateOrderSubscriptionCustomerPaymentSource.js +2 -0
  501. package/lib/cjs/utils/validateFormFields.d.ts +16 -0
  502. package/lib/cjs/utils/validateFormFields.js +2 -0
  503. package/lib/esm/components/ExternalFunction.d.ts +7 -0
  504. package/lib/esm/components/ExternalFunction.js +2 -0
  505. package/lib/esm/components/MetadataInput.d.ts +5 -0
  506. package/lib/esm/components/MetadataInput.js +2 -0
  507. package/lib/esm/components/SubmitButton.d.ts +10 -0
  508. package/lib/esm/components/SubmitButton.js +2 -0
  509. package/lib/esm/components/addresses/Address.d.ts +31 -0
  510. package/lib/esm/components/addresses/Address.js +2 -0
  511. package/lib/esm/components/addresses/AddressCountrySelector.d.ts +34 -0
  512. package/lib/esm/components/addresses/AddressCountrySelector.js +2 -0
  513. package/lib/esm/components/addresses/AddressField.d.ts +61 -0
  514. package/lib/esm/components/addresses/AddressField.js +2 -0
  515. package/lib/esm/components/addresses/AddressInput.d.ts +34 -0
  516. package/lib/esm/components/addresses/AddressInput.js +2 -0
  517. package/lib/esm/components/addresses/AddressInputSelect.d.ts +29 -0
  518. package/lib/esm/components/addresses/AddressInputSelect.js +2 -0
  519. package/lib/esm/components/addresses/AddressStateSelector.d.ts +50 -0
  520. package/lib/esm/components/addresses/AddressStateSelector.js +2 -0
  521. package/lib/esm/components/addresses/AddressesContainer.d.ts +40 -0
  522. package/lib/esm/components/addresses/AddressesContainer.js +2 -0
  523. package/lib/esm/components/addresses/AddressesEmpty.d.ts +26 -0
  524. package/lib/esm/components/addresses/AddressesEmpty.js +2 -0
  525. package/lib/esm/components/addresses/BillingAddressContainer.d.ts +6 -0
  526. package/lib/esm/components/addresses/BillingAddressContainer.js +2 -0
  527. package/lib/esm/components/addresses/BillingAddressForm.d.ts +34 -0
  528. package/lib/esm/components/addresses/BillingAddressForm.js +2 -0
  529. package/lib/esm/components/addresses/SaveAddressesButton.d.ts +18 -0
  530. package/lib/esm/components/addresses/SaveAddressesButton.js +2 -0
  531. package/lib/esm/components/addresses/ShippingAddressContainer.d.ts +7 -0
  532. package/lib/esm/components/addresses/ShippingAddressContainer.js +2 -0
  533. package/lib/esm/components/addresses/ShippingAddressForm.d.ts +31 -0
  534. package/lib/esm/components/addresses/ShippingAddressForm.js +2 -0
  535. package/lib/esm/components/auth/CommerceLayer.d.ts +25 -0
  536. package/lib/esm/components/auth/CommerceLayer.js +2 -0
  537. package/lib/esm/components/customers/CustomerAddressForm.d.ts +13 -0
  538. package/lib/esm/components/customers/CustomerAddressForm.js +2 -0
  539. package/lib/esm/components/customers/CustomerContainer.d.ts +38 -0
  540. package/lib/esm/components/customers/CustomerContainer.js +2 -0
  541. package/lib/esm/components/customers/CustomerField.d.ts +25 -0
  542. package/lib/esm/components/customers/CustomerField.js +2 -0
  543. package/lib/esm/components/customers/CustomerInput.d.ts +11 -0
  544. package/lib/esm/components/customers/CustomerInput.js +2 -0
  545. package/lib/esm/components/customers/CustomerPaymentSource.d.ts +11 -0
  546. package/lib/esm/components/customers/CustomerPaymentSource.js +2 -0
  547. package/lib/esm/components/customers/CustomerPaymentSourceEmpty.d.ts +14 -0
  548. package/lib/esm/components/customers/CustomerPaymentSourceEmpty.js +2 -0
  549. package/lib/esm/components/customers/MyAccountLink.d.ts +38 -0
  550. package/lib/esm/components/customers/MyAccountLink.js +2 -0
  551. package/lib/esm/components/customers/MyIdentityLink.d.ts +59 -0
  552. package/lib/esm/components/customers/MyIdentityLink.js +2 -0
  553. package/lib/esm/components/customers/SaveCustomerButton.d.ts +12 -0
  554. package/lib/esm/components/customers/SaveCustomerButton.js +2 -0
  555. package/lib/esm/components/errors/Errors.d.ts +31 -0
  556. package/lib/esm/components/errors/Errors.js +2 -0
  557. package/lib/esm/components/gift_cards/GiftCard.d.ts +10 -0
  558. package/lib/esm/components/gift_cards/GiftCard.js +2 -0
  559. package/lib/esm/components/gift_cards/GiftCardContainer.d.ts +6 -0
  560. package/lib/esm/components/gift_cards/GiftCardContainer.js +2 -0
  561. package/lib/esm/components/gift_cards/GiftCardCurrencySelector.d.ts +7 -0
  562. package/lib/esm/components/gift_cards/GiftCardCurrencySelector.js +2 -0
  563. package/lib/esm/components/gift_cards/GiftCardInput.d.ts +7 -0
  564. package/lib/esm/components/gift_cards/GiftCardInput.js +2 -0
  565. package/lib/esm/components/gift_cards/GiftCardOrCouponCode.d.ts +16 -0
  566. package/lib/esm/components/gift_cards/GiftCardOrCouponCode.js +2 -0
  567. package/lib/esm/components/gift_cards/GiftCardOrCouponForm.d.ts +15 -0
  568. package/lib/esm/components/gift_cards/GiftCardOrCouponForm.js +2 -0
  569. package/lib/esm/components/gift_cards/GiftCardOrCouponInput.d.ts +11 -0
  570. package/lib/esm/components/gift_cards/GiftCardOrCouponInput.js +2 -0
  571. package/lib/esm/components/gift_cards/GiftCardOrCouponRemoveButton.d.ts +20 -0
  572. package/lib/esm/components/gift_cards/GiftCardOrCouponRemoveButton.js +2 -0
  573. package/lib/esm/components/gift_cards/GiftCardOrCouponSubmit.d.ts +10 -0
  574. package/lib/esm/components/gift_cards/GiftCardOrCouponSubmit.js +2 -0
  575. package/lib/esm/components/gift_cards/GiftCardRecipientInput.d.ts +0 -0
  576. package/lib/esm/components/gift_cards/GiftCardRecipientInput.js +2 -0
  577. package/lib/esm/components/in_stock_subscriptions/InStockSubscriptionButton.d.ts +36 -0
  578. package/lib/esm/components/in_stock_subscriptions/InStockSubscriptionButton.js +2 -0
  579. package/lib/esm/components/in_stock_subscriptions/InStockSubscriptionsContainer.d.ts +10 -0
  580. package/lib/esm/components/in_stock_subscriptions/InStockSubscriptionsContainer.js +2 -0
  581. package/lib/esm/components/line_items/LineItem.d.ts +8 -0
  582. package/lib/esm/components/line_items/LineItem.js +2 -0
  583. package/lib/esm/components/line_items/LineItemAmount.d.ts +7 -0
  584. package/lib/esm/components/line_items/LineItemAmount.js +2 -0
  585. package/lib/esm/components/line_items/LineItemCode.d.ts +13 -0
  586. package/lib/esm/components/line_items/LineItemCode.js +2 -0
  587. package/lib/esm/components/line_items/LineItemField.d.ts +14 -0
  588. package/lib/esm/components/line_items/LineItemField.js +2 -0
  589. package/lib/esm/components/line_items/LineItemImage.d.ts +17 -0
  590. package/lib/esm/components/line_items/LineItemImage.js +2 -0
  591. package/lib/esm/components/line_items/LineItemName.d.ts +12 -0
  592. package/lib/esm/components/line_items/LineItemName.js +2 -0
  593. package/lib/esm/components/line_items/LineItemOption.d.ts +19 -0
  594. package/lib/esm/components/line_items/LineItemOption.js +2 -0
  595. package/lib/esm/components/line_items/LineItemOptions.d.ts +16 -0
  596. package/lib/esm/components/line_items/LineItemOptions.js +2 -0
  597. package/lib/esm/components/line_items/LineItemQuantity.d.ts +21 -0
  598. package/lib/esm/components/line_items/LineItemQuantity.js +2 -0
  599. package/lib/esm/components/line_items/LineItemRemoveLink.d.ts +14 -0
  600. package/lib/esm/components/line_items/LineItemRemoveLink.js +2 -0
  601. package/lib/esm/components/line_items/LineItemsContainer.d.ts +9 -0
  602. package/lib/esm/components/line_items/LineItemsContainer.js +2 -0
  603. package/lib/esm/components/line_items/LineItemsCount.d.ts +12 -0
  604. package/lib/esm/components/line_items/LineItemsCount.js +2 -0
  605. package/lib/esm/components/line_items/LineItemsEmpty.d.ts +12 -0
  606. package/lib/esm/components/line_items/LineItemsEmpty.js +2 -0
  607. package/lib/esm/components/orders/AddToCartButton.d.ts +95 -0
  608. package/lib/esm/components/orders/AddToCartButton.js +2 -0
  609. package/lib/esm/components/orders/AdjustmentAmount.d.ts +4 -0
  610. package/lib/esm/components/orders/AdjustmentAmount.js +2 -0
  611. package/lib/esm/components/orders/CartLink.d.ts +47 -0
  612. package/lib/esm/components/orders/CartLink.js +2 -0
  613. package/lib/esm/components/orders/CheckoutLink.d.ts +28 -0
  614. package/lib/esm/components/orders/CheckoutLink.js +2 -0
  615. package/lib/esm/components/orders/DiscountAmount.d.ts +4 -0
  616. package/lib/esm/components/orders/DiscountAmount.js +2 -0
  617. package/lib/esm/components/orders/GiftCardAmount.d.ts +4 -0
  618. package/lib/esm/components/orders/GiftCardAmount.js +2 -0
  619. package/lib/esm/components/orders/HostedCart.d.ts +58 -0
  620. package/lib/esm/components/orders/HostedCart.js +2 -0
  621. package/lib/esm/components/orders/OrderContainer.d.ts +62 -0
  622. package/lib/esm/components/orders/OrderContainer.js +2 -0
  623. package/lib/esm/components/orders/OrderList.d.ts +83 -0
  624. package/lib/esm/components/orders/OrderList.js +2 -0
  625. package/lib/esm/components/orders/OrderListEmpty.d.ts +17 -0
  626. package/lib/esm/components/orders/OrderListEmpty.js +2 -0
  627. package/lib/esm/components/orders/OrderListPaginationButtons.d.ts +48 -0
  628. package/lib/esm/components/orders/OrderListPaginationButtons.js +2 -0
  629. package/lib/esm/components/orders/OrderListPaginationInfo.d.ts +29 -0
  630. package/lib/esm/components/orders/OrderListPaginationInfo.js +2 -0
  631. package/lib/esm/components/orders/OrderListRow.d.ts +29 -0
  632. package/lib/esm/components/orders/OrderListRow.js +2 -0
  633. package/lib/esm/components/orders/OrderNumber.d.ts +5 -0
  634. package/lib/esm/components/orders/OrderNumber.js +2 -0
  635. package/lib/esm/components/orders/OrderStorage.d.ts +31 -0
  636. package/lib/esm/components/orders/OrderStorage.js +2 -0
  637. package/lib/esm/components/orders/PaymentMethodAmount.d.ts +4 -0
  638. package/lib/esm/components/orders/PaymentMethodAmount.js +2 -0
  639. package/lib/esm/components/orders/PlaceOrderButton.d.ts +35 -0
  640. package/lib/esm/components/orders/PlaceOrderButton.js +2 -0
  641. package/lib/esm/components/orders/PlaceOrderContainer.d.ts +8 -0
  642. package/lib/esm/components/orders/PlaceOrderContainer.js +2 -0
  643. package/lib/esm/components/orders/PrivacyAndTermsCheckbox.d.ts +4 -0
  644. package/lib/esm/components/orders/PrivacyAndTermsCheckbox.js +2 -0
  645. package/lib/esm/components/orders/ShippingAmount.d.ts +4 -0
  646. package/lib/esm/components/orders/ShippingAmount.js +2 -0
  647. package/lib/esm/components/orders/SubTotalAmount.d.ts +4 -0
  648. package/lib/esm/components/orders/SubTotalAmount.js +2 -0
  649. package/lib/esm/components/orders/TaxesAmount.d.ts +4 -0
  650. package/lib/esm/components/orders/TaxesAmount.js +2 -0
  651. package/lib/esm/components/orders/TotalAmount.d.ts +4 -0
  652. package/lib/esm/components/orders/TotalAmount.js +2 -0
  653. package/lib/esm/components/parcels/ParcelField.d.ts +14 -0
  654. package/lib/esm/components/parcels/ParcelField.js +2 -0
  655. package/lib/esm/components/parcels/ParcelLineItem.d.ts +7 -0
  656. package/lib/esm/components/parcels/ParcelLineItem.js +2 -0
  657. package/lib/esm/components/parcels/ParcelLineItemField.d.ts +14 -0
  658. package/lib/esm/components/parcels/ParcelLineItemField.js +2 -0
  659. package/lib/esm/components/parcels/ParcelLineItemsCount.d.ts +18 -0
  660. package/lib/esm/components/parcels/ParcelLineItemsCount.js +2 -0
  661. package/lib/esm/components/parcels/Parcels.d.ts +7 -0
  662. package/lib/esm/components/parcels/Parcels.js +2 -0
  663. package/lib/esm/components/parcels/ParcelsCount.d.ts +18 -0
  664. package/lib/esm/components/parcels/ParcelsCount.js +2 -0
  665. package/lib/esm/components/payment_gateways/AdyenGateway.d.ts +5 -0
  666. package/lib/esm/components/payment_gateways/AdyenGateway.js +2 -0
  667. package/lib/esm/components/payment_gateways/BraintreeGateway.d.ts +5 -0
  668. package/lib/esm/components/payment_gateways/BraintreeGateway.js +2 -0
  669. package/lib/esm/components/payment_gateways/CheckoutComGateway.d.ts +5 -0
  670. package/lib/esm/components/payment_gateways/CheckoutComGateway.js +2 -0
  671. package/lib/esm/components/payment_gateways/ExternalGateway.d.ts +5 -0
  672. package/lib/esm/components/payment_gateways/ExternalGateway.js +2 -0
  673. package/lib/esm/components/payment_gateways/KlarnaGateway.d.ts +5 -0
  674. package/lib/esm/components/payment_gateways/KlarnaGateway.js +2 -0
  675. package/lib/esm/components/payment_gateways/PaymentGateway.d.ts +16 -0
  676. package/lib/esm/components/payment_gateways/PaymentGateway.js +2 -0
  677. package/lib/esm/components/payment_gateways/PaypalGateway.d.ts +5 -0
  678. package/lib/esm/components/payment_gateways/PaypalGateway.js +2 -0
  679. package/lib/esm/components/payment_gateways/StripeGateway.d.ts +5 -0
  680. package/lib/esm/components/payment_gateways/StripeGateway.js +2 -0
  681. package/lib/esm/components/payment_gateways/WireTransferGateway.d.ts +5 -0
  682. package/lib/esm/components/payment_gateways/WireTransferGateway.js +2 -0
  683. package/lib/esm/components/payment_methods/PaymentMethod.d.ts +45 -0
  684. package/lib/esm/components/payment_methods/PaymentMethod.js +2 -0
  685. package/lib/esm/components/payment_methods/PaymentMethodName.d.ts +10 -0
  686. package/lib/esm/components/payment_methods/PaymentMethodName.js +2 -0
  687. package/lib/esm/components/payment_methods/PaymentMethodPrice.d.ts +8 -0
  688. package/lib/esm/components/payment_methods/PaymentMethodPrice.js +2 -0
  689. package/lib/esm/components/payment_methods/PaymentMethodRadioButton.d.ts +17 -0
  690. package/lib/esm/components/payment_methods/PaymentMethodRadioButton.js +2 -0
  691. package/lib/esm/components/payment_methods/PaymentMethodsContainer.d.ts +8 -0
  692. package/lib/esm/components/payment_methods/PaymentMethodsContainer.js +2 -0
  693. package/lib/esm/components/payment_source/AdyenPayment.d.ts +66 -0
  694. package/lib/esm/components/payment_source/AdyenPayment.js +2 -0
  695. package/lib/esm/components/payment_source/BraintreePayment.d.ts +32 -0
  696. package/lib/esm/components/payment_source/BraintreePayment.js +2 -0
  697. package/lib/esm/components/payment_source/CheckoutComPayment.d.ts +23 -0
  698. package/lib/esm/components/payment_source/CheckoutComPayment.js +2 -0
  699. package/lib/esm/components/payment_source/ExternalPayment.d.ts +24 -0
  700. package/lib/esm/components/payment_source/ExternalPayment.js +2 -0
  701. package/lib/esm/components/payment_source/KlarnaPayment.d.ts +10 -0
  702. package/lib/esm/components/payment_source/KlarnaPayment.js +2 -0
  703. package/lib/esm/components/payment_source/PaymentSource.d.ts +19 -0
  704. package/lib/esm/components/payment_source/PaymentSource.js +2 -0
  705. package/lib/esm/components/payment_source/PaymentSourceBrandIcon.d.ts +15 -0
  706. package/lib/esm/components/payment_source/PaymentSourceBrandIcon.js +2 -0
  707. package/lib/esm/components/payment_source/PaymentSourceBrandName.d.ts +12 -0
  708. package/lib/esm/components/payment_source/PaymentSourceBrandName.js +2 -0
  709. package/lib/esm/components/payment_source/PaymentSourceDetail.d.ts +15 -0
  710. package/lib/esm/components/payment_source/PaymentSourceDetail.js +2 -0
  711. package/lib/esm/components/payment_source/PaymentSourceEditButton.d.ts +10 -0
  712. package/lib/esm/components/payment_source/PaymentSourceEditButton.js +2 -0
  713. package/lib/esm/components/payment_source/PaypalPayment.d.ts +12 -0
  714. package/lib/esm/components/payment_source/PaypalPayment.js +2 -0
  715. package/lib/esm/components/payment_source/StripeExpressPayment.d.ts +6 -0
  716. package/lib/esm/components/payment_source/StripeExpressPayment.js +2 -0
  717. package/lib/esm/components/payment_source/StripePayment.d.ts +22 -0
  718. package/lib/esm/components/payment_source/StripePayment.js +2 -0
  719. package/lib/esm/components/payment_source/WireTransferPayment.d.ts +12 -0
  720. package/lib/esm/components/payment_source/WireTransferPayment.js +2 -0
  721. package/lib/esm/components/prices/Price.d.ts +35 -0
  722. package/lib/esm/components/prices/Price.js +2 -0
  723. package/lib/esm/components/prices/PricesContainer.d.ts +41 -0
  724. package/lib/esm/components/prices/PricesContainer.js +2 -0
  725. package/lib/esm/components/shipments/Shipment.d.ts +10 -0
  726. package/lib/esm/components/shipments/Shipment.js +2 -0
  727. package/lib/esm/components/shipments/ShipmentField.d.ts +12 -0
  728. package/lib/esm/components/shipments/ShipmentField.js +2 -0
  729. package/lib/esm/components/shipments/ShipmentsContainer.d.ts +6 -0
  730. package/lib/esm/components/shipments/ShipmentsContainer.js +2 -0
  731. package/lib/esm/components/shipments/ShipmentsCount.d.ts +18 -0
  732. package/lib/esm/components/shipments/ShipmentsCount.js +2 -0
  733. package/lib/esm/components/shipping_methods/ShippingMethod.d.ts +8 -0
  734. package/lib/esm/components/shipping_methods/ShippingMethod.js +2 -0
  735. package/lib/esm/components/shipping_methods/ShippingMethodName.d.ts +11 -0
  736. package/lib/esm/components/shipping_methods/ShippingMethodName.js +2 -0
  737. package/lib/esm/components/shipping_methods/ShippingMethodPrice.d.ts +20 -0
  738. package/lib/esm/components/shipping_methods/ShippingMethodPrice.js +2 -0
  739. package/lib/esm/components/shipping_methods/ShippingMethodRadioButton.d.ts +17 -0
  740. package/lib/esm/components/shipping_methods/ShippingMethodRadioButton.js +2 -0
  741. package/lib/esm/components/skus/AvailabilityContainer.d.ts +34 -0
  742. package/lib/esm/components/skus/AvailabilityContainer.js +2 -0
  743. package/lib/esm/components/skus/AvailabilityTemplate.d.ts +52 -0
  744. package/lib/esm/components/skus/AvailabilityTemplate.js +2 -0
  745. package/lib/esm/components/skus/DeliveryLeadTime.d.ts +10 -0
  746. package/lib/esm/components/skus/DeliveryLeadTime.js +2 -0
  747. package/lib/esm/components/skus/SkuField.d.ts +25 -0
  748. package/lib/esm/components/skus/SkuField.js +2 -0
  749. package/lib/esm/components/skus/SkuList.d.ts +10 -0
  750. package/lib/esm/components/skus/SkuList.js +2 -0
  751. package/lib/esm/components/skus/SkuListsContainer.d.ts +6 -0
  752. package/lib/esm/components/skus/SkuListsContainer.js +2 -0
  753. package/lib/esm/components/skus/Skus.d.ts +18 -0
  754. package/lib/esm/components/skus/Skus.js +2 -0
  755. package/lib/esm/components/skus/SkusContainer.d.ts +31 -0
  756. package/lib/esm/components/skus/SkusContainer.js +2 -0
  757. package/lib/esm/components/stock_transfers/StockTransfer.d.ts +7 -0
  758. package/lib/esm/components/stock_transfers/StockTransfer.js +2 -0
  759. package/lib/esm/components/stock_transfers/StockTransferField.d.ts +10 -0
  760. package/lib/esm/components/stock_transfers/StockTransferField.js +2 -0
  761. package/lib/esm/components/utils/AddressCardsTemplate.d.ts +26 -0
  762. package/lib/esm/components/utils/AddressCardsTemplate.js +2 -0
  763. package/lib/esm/components/utils/BaseField.d.ts +8 -0
  764. package/lib/esm/components/utils/BaseField.js +2 -0
  765. package/lib/esm/components/utils/BaseInput.d.ts +5 -0
  766. package/lib/esm/components/utils/BaseInput.js +2 -0
  767. package/lib/esm/components/utils/BaseOrderPrice.d.ts +6 -0
  768. package/lib/esm/components/utils/BaseOrderPrice.js +2 -0
  769. package/lib/esm/components/utils/BaseSelect.d.ts +5 -0
  770. package/lib/esm/components/utils/BaseSelect.js +2 -0
  771. package/lib/esm/components/utils/ErrorBoundary.d.ts +14 -0
  772. package/lib/esm/components/utils/ErrorBoundary.js +2 -0
  773. package/lib/esm/components/utils/GenericFieldComponent.d.ts +58 -0
  774. package/lib/esm/components/utils/GenericFieldComponent.js +2 -0
  775. package/lib/esm/components/utils/Parent.d.ts +6 -0
  776. package/lib/esm/components/utils/Parent.js +2 -0
  777. package/lib/esm/components/utils/PaymentCardsTemplate.d.ts +41 -0
  778. package/lib/esm/components/utils/PaymentCardsTemplate.js +2 -0
  779. package/lib/esm/components/utils/PriceTemplate.d.ts +8 -0
  780. package/lib/esm/components/utils/PriceTemplate.js +2 -0
  781. package/lib/esm/components/utils/getAllErrors.d.ts +16 -0
  782. package/lib/esm/components/utils/getAllErrors.js +2 -0
  783. package/lib/esm/config/currency.d.ts +5 -0
  784. package/lib/esm/config/currency.js +2 -0
  785. package/lib/esm/context/AddressChildrenContext.d.ts +6 -0
  786. package/lib/esm/context/AddressChildrenContext.js +2 -0
  787. package/lib/esm/context/AddressContext.d.ts +18 -0
  788. package/lib/esm/context/AddressContext.js +2 -0
  789. package/lib/esm/context/AvailabilityContext.d.ts +2 -0
  790. package/lib/esm/context/AvailabilityContext.js +2 -0
  791. package/lib/esm/context/BillingAddressContext.d.ts +9 -0
  792. package/lib/esm/context/BillingAddressContext.js +2 -0
  793. package/lib/esm/context/BillingAddressFormContext.d.ts +22 -0
  794. package/lib/esm/context/BillingAddressFormContext.js +2 -0
  795. package/lib/esm/context/CommerceLayerContext.d.ts +6 -0
  796. package/lib/esm/context/CommerceLayerContext.js +2 -0
  797. package/lib/esm/context/CouponAndGiftCardFormContext.d.ts +8 -0
  798. package/lib/esm/context/CouponAndGiftCardFormContext.js +2 -0
  799. package/lib/esm/context/CustomerAddressFormContext.d.ts +17 -0
  800. package/lib/esm/context/CustomerAddressFormContext.js +2 -0
  801. package/lib/esm/context/CustomerContext.d.ts +29 -0
  802. package/lib/esm/context/CustomerContext.js +2 -0
  803. package/lib/esm/context/CustomerPaymentSourceContext.d.ts +11 -0
  804. package/lib/esm/context/CustomerPaymentSourceContext.js +2 -0
  805. package/lib/esm/context/ExternalFunctionContext.d.ts +11 -0
  806. package/lib/esm/context/ExternalFunctionContext.js +2 -0
  807. package/lib/esm/context/GiftCardContext.d.ts +10 -0
  808. package/lib/esm/context/GiftCardContext.js +2 -0
  809. package/lib/esm/context/InStockSubscriptionContext.d.ts +6 -0
  810. package/lib/esm/context/InStockSubscriptionContext.js +2 -0
  811. package/lib/esm/context/LineItemChildrenContext.d.ts +8 -0
  812. package/lib/esm/context/LineItemChildrenContext.js +2 -0
  813. package/lib/esm/context/LineItemContext.d.ts +7 -0
  814. package/lib/esm/context/LineItemContext.js +2 -0
  815. package/lib/esm/context/LineItemOptionChildrenContext.d.ts +9 -0
  816. package/lib/esm/context/LineItemOptionChildrenContext.js +2 -0
  817. package/lib/esm/context/OrderContext.d.ts +30 -0
  818. package/lib/esm/context/OrderContext.js +2 -0
  819. package/lib/esm/context/OrderListChildrenContext.d.ts +73 -0
  820. package/lib/esm/context/OrderListChildrenContext.js +2 -0
  821. package/lib/esm/context/OrderListPaginationContext.d.ts +15 -0
  822. package/lib/esm/context/OrderListPaginationContext.js +2 -0
  823. package/lib/esm/context/OrderStorageContext.d.ts +10 -0
  824. package/lib/esm/context/OrderStorageContext.js +2 -0
  825. package/lib/esm/context/ParcelChildrenContext.d.ts +6 -0
  826. package/lib/esm/context/ParcelChildrenContext.js +2 -0
  827. package/lib/esm/context/ParcelLineItemChildrenContext.d.ts +6 -0
  828. package/lib/esm/context/ParcelLineItemChildrenContext.js +2 -0
  829. package/lib/esm/context/PaymentMethodChildrenContext.d.ts +10 -0
  830. package/lib/esm/context/PaymentMethodChildrenContext.js +2 -0
  831. package/lib/esm/context/PaymentMethodContext.d.ts +13 -0
  832. package/lib/esm/context/PaymentMethodContext.js +2 -0
  833. package/lib/esm/context/PaymentSourceContext.d.ts +14 -0
  834. package/lib/esm/context/PaymentSourceContext.js +2 -0
  835. package/lib/esm/context/PlaceOrderContext.d.ts +12 -0
  836. package/lib/esm/context/PlaceOrderContext.js +2 -0
  837. package/lib/esm/context/PricesContext.d.ts +6 -0
  838. package/lib/esm/context/PricesContext.js +2 -0
  839. package/lib/esm/context/ShipmentChildrenContext.d.ts +13 -0
  840. package/lib/esm/context/ShipmentChildrenContext.js +2 -0
  841. package/lib/esm/context/ShipmentContext.d.ts +10 -0
  842. package/lib/esm/context/ShipmentContext.js +2 -0
  843. package/lib/esm/context/ShippingAddressContext.d.ts +9 -0
  844. package/lib/esm/context/ShippingAddressContext.js +2 -0
  845. package/lib/esm/context/ShippingAddressFormContext.d.ts +3 -0
  846. package/lib/esm/context/ShippingAddressFormContext.js +2 -0
  847. package/lib/esm/context/ShippingMethodChildrenContext.d.ts +9 -0
  848. package/lib/esm/context/ShippingMethodChildrenContext.js +2 -0
  849. package/lib/esm/context/SkuChildrenContext.d.ts +8 -0
  850. package/lib/esm/context/SkuChildrenContext.js +2 -0
  851. package/lib/esm/context/SkuContext.d.ts +8 -0
  852. package/lib/esm/context/SkuContext.js +2 -0
  853. package/lib/esm/context/SkuListsContext.d.ts +5 -0
  854. package/lib/esm/context/SkuListsContext.js +2 -0
  855. package/lib/esm/context/StockTransferChildrenContext.d.ts +6 -0
  856. package/lib/esm/context/StockTransferChildrenContext.js +2 -0
  857. package/lib/esm/hooks/useCommerceLayer.d.ts +12 -0
  858. package/lib/esm/hooks/useCommerceLayer.js +2 -0
  859. package/lib/esm/hooks/useCustomerContainer.d.ts +12 -0
  860. package/lib/esm/hooks/useCustomerContainer.js +2 -0
  861. package/lib/esm/hooks/useOrderContainer.d.ts +16 -0
  862. package/lib/esm/hooks/useOrderContainer.js +2 -0
  863. package/lib/esm/index.d.ts +107 -0
  864. package/lib/esm/index.js +2 -0
  865. package/lib/esm/reducers/AddressReducer.d.ts +80 -0
  866. package/lib/esm/reducers/AddressReducer.js +2 -0
  867. package/lib/esm/reducers/AvailabilityReducer.d.ts +53 -0
  868. package/lib/esm/reducers/AvailabilityReducer.js +2 -0
  869. package/lib/esm/reducers/BillingAddressReducer.d.ts +31 -0
  870. package/lib/esm/reducers/BillingAddressReducer.js +2 -0
  871. package/lib/esm/reducers/CustomerReducer.d.ts +183 -0
  872. package/lib/esm/reducers/CustomerReducer.js +2 -0
  873. package/lib/esm/reducers/GiftCardReducer.d.ts +66 -0
  874. package/lib/esm/reducers/GiftCardReducer.js +2 -0
  875. package/lib/esm/reducers/InStockSubscriptionReducer.d.ts +33 -0
  876. package/lib/esm/reducers/InStockSubscriptionReducer.js +2 -0
  877. package/lib/esm/reducers/LineItemReducer.d.ts +47 -0
  878. package/lib/esm/reducers/LineItemReducer.js +2 -0
  879. package/lib/esm/reducers/OrderReducer.d.ts +171 -0
  880. package/lib/esm/reducers/OrderReducer.js +2 -0
  881. package/lib/esm/reducers/PaymentMethodReducer.d.ts +161 -0
  882. package/lib/esm/reducers/PaymentMethodReducer.js +2 -0
  883. package/lib/esm/reducers/PlaceOrderReducer.d.ts +72 -0
  884. package/lib/esm/reducers/PlaceOrderReducer.js +2 -0
  885. package/lib/esm/reducers/PriceReducer.d.ts +35 -0
  886. package/lib/esm/reducers/PriceReducer.js +2 -0
  887. package/lib/esm/reducers/ShipmentReducer.d.ts +41 -0
  888. package/lib/esm/reducers/ShipmentReducer.js +2 -0
  889. package/lib/esm/reducers/ShippingAddressReducer.d.ts +32 -0
  890. package/lib/esm/reducers/ShippingAddressReducer.js +2 -0
  891. package/lib/esm/reducers/SkuListsReducer.d.ts +21 -0
  892. package/lib/esm/reducers/SkuListsReducer.js +2 -0
  893. package/lib/esm/reducers/SkuReducer.d.ts +21 -0
  894. package/lib/esm/reducers/SkuReducer.js +2 -0
  895. package/lib/esm/typings/errors.d.ts +15 -0
  896. package/lib/esm/typings/errors.js +2 -0
  897. package/lib/esm/typings/globals.d.ts +6 -0
  898. package/lib/esm/typings/globals.js +2 -0
  899. package/lib/esm/typings/index.d.ts +117 -0
  900. package/lib/esm/typings/index.js +2 -0
  901. package/lib/esm/utils/PropsType.d.ts +33 -0
  902. package/lib/esm/utils/PropsType.js +2 -0
  903. package/lib/esm/utils/addressesManager.d.ts +64 -0
  904. package/lib/esm/utils/addressesManager.js +2 -0
  905. package/lib/esm/utils/adyen/manageGiftCard.d.ts +16 -0
  906. package/lib/esm/utils/adyen/manageGiftCard.js +2 -0
  907. package/lib/esm/utils/baseReducer.d.ts +3 -0
  908. package/lib/esm/utils/baseReducer.js +2 -0
  909. package/lib/esm/utils/browserInfo.d.ts +12 -0
  910. package/lib/esm/utils/browserInfo.js +2 -0
  911. package/lib/esm/utils/canPlaceOrder.d.ts +5 -0
  912. package/lib/esm/utils/canPlaceOrder.js +2 -0
  913. package/lib/esm/utils/checkIncludeResource.d.ts +8 -0
  914. package/lib/esm/utils/checkIncludeResource.js +2 -0
  915. package/lib/esm/utils/compareObjAttribute.d.ts +7 -0
  916. package/lib/esm/utils/compareObjAttribute.js +2 -0
  917. package/lib/esm/utils/countryStateCity.d.ts +801 -0
  918. package/lib/esm/utils/countryStateCity.js +2 -0
  919. package/lib/esm/utils/customMessages.d.ts +2 -0
  920. package/lib/esm/utils/customMessages.js +2 -0
  921. package/lib/esm/utils/customerOrderOptions.d.ts +3 -0
  922. package/lib/esm/utils/customerOrderOptions.js +2 -0
  923. package/lib/esm/utils/events.d.ts +5 -0
  924. package/lib/esm/utils/events.js +2 -0
  925. package/lib/esm/utils/expressPaymentHelper.d.ts +92 -0
  926. package/lib/esm/utils/expressPaymentHelper.js +2 -0
  927. package/lib/esm/utils/filterChildren.d.ts +12 -0
  928. package/lib/esm/utils/filterChildren.js +2 -0
  929. package/lib/esm/utils/formCleaner.d.ts +4 -0
  930. package/lib/esm/utils/formCleaner.js +2 -0
  931. package/lib/esm/utils/getAmount.d.ts +7 -0
  932. package/lib/esm/utils/getAmount.js +2 -0
  933. package/lib/esm/utils/getApplicationLink.d.ts +35 -0
  934. package/lib/esm/utils/getApplicationLink.js +2 -0
  935. package/lib/esm/utils/getCardDetails.d.ts +16 -0
  936. package/lib/esm/utils/getCardDetails.js +2 -0
  937. package/lib/esm/utils/getCustomerIdByToken.d.ts +6 -0
  938. package/lib/esm/utils/getCustomerIdByToken.js +2 -0
  939. package/lib/esm/utils/getDomain.d.ts +4 -0
  940. package/lib/esm/utils/getDomain.js +2 -0
  941. package/lib/esm/utils/getErrors.d.ts +19 -0
  942. package/lib/esm/utils/getErrors.js +2 -0
  943. package/lib/esm/utils/getLineItemsCount.d.ts +10 -0
  944. package/lib/esm/utils/getLineItemsCount.js +2 -0
  945. package/lib/esm/utils/getLoaderComponent.d.ts +3 -0
  946. package/lib/esm/utils/getLoaderComponent.js +2 -0
  947. package/lib/esm/utils/getPaymentAttributes.d.ts +17 -0
  948. package/lib/esm/utils/getPaymentAttributes.js +2 -0
  949. package/lib/esm/utils/getPrices.d.ts +6 -0
  950. package/lib/esm/utils/getPrices.js +2 -0
  951. package/lib/esm/utils/getPublicIp.d.ts +1 -0
  952. package/lib/esm/utils/getPublicIp.js +2 -0
  953. package/lib/esm/utils/getSdk.d.ts +3 -0
  954. package/lib/esm/utils/getSdk.js +2 -0
  955. package/lib/esm/utils/getSkus.d.ts +3 -0
  956. package/lib/esm/utils/getSkus.js +2 -0
  957. package/lib/esm/utils/hasSubscriptions.d.ts +7 -0
  958. package/lib/esm/utils/hasSubscriptions.js +2 -0
  959. package/lib/esm/utils/hooks/useCustomContext.d.ts +21 -0
  960. package/lib/esm/utils/hooks/useCustomContext.js +2 -0
  961. package/lib/esm/utils/hooks/useExternalScript.d.ts +1 -0
  962. package/lib/esm/utils/hooks/useExternalScript.js +2 -0
  963. package/lib/esm/utils/icons.d.ts +2 -0
  964. package/lib/esm/utils/icons.js +2 -0
  965. package/lib/esm/utils/isDate.d.ts +1 -0
  966. package/lib/esm/utils/isDate.js +2 -0
  967. package/lib/esm/utils/isEmpty.d.ts +1 -0
  968. package/lib/esm/utils/isEmpty.js +2 -0
  969. package/lib/esm/utils/isGuestToken.d.ts +6 -0
  970. package/lib/esm/utils/isGuestToken.js +2 -0
  971. package/lib/esm/utils/isJSON.d.ts +1 -0
  972. package/lib/esm/utils/isJSON.js +2 -0
  973. package/lib/esm/utils/jwt.d.ts +27 -0
  974. package/lib/esm/utils/jwt.js +2 -0
  975. package/lib/esm/utils/localStorage.d.ts +11 -0
  976. package/lib/esm/utils/localStorage.js +2 -0
  977. package/lib/esm/utils/omit.d.ts +1 -0
  978. package/lib/esm/utils/omit.js +2 -0
  979. package/lib/esm/utils/organization.d.ts +18 -0
  980. package/lib/esm/utils/organization.js +2 -0
  981. package/lib/esm/utils/payment-methods/sortPaymentMethods.d.ts +2 -0
  982. package/lib/esm/utils/payment-methods/sortPaymentMethods.js +2 -0
  983. package/lib/esm/utils/pick.d.ts +1 -0
  984. package/lib/esm/utils/pick.js +2 -0
  985. package/lib/esm/utils/placeholderImages.d.ts +2 -0
  986. package/lib/esm/utils/placeholderImages.js +2 -0
  987. package/lib/esm/utils/promisify.d.ts +1 -0
  988. package/lib/esm/utils/promisify.js +2 -0
  989. package/lib/esm/utils/replace.d.ts +2 -0
  990. package/lib/esm/utils/replace.js +2 -0
  991. package/lib/esm/utils/scrollbarWidth.d.ts +1 -0
  992. package/lib/esm/utils/scrollbarWidth.js +2 -0
  993. package/lib/esm/utils/shipments.d.ts +3 -0
  994. package/lib/esm/utils/shipments.js +2 -0
  995. package/lib/esm/utils/snakeToCamelCase.d.ts +5 -0
  996. package/lib/esm/utils/snakeToCamelCase.js +2 -0
  997. package/lib/esm/utils/stripe/retrievePaymentIntent.d.ts +14 -0
  998. package/lib/esm/utils/stripe/retrievePaymentIntent.js +2 -0
  999. package/lib/esm/utils/triggerAttributeHelper.d.ts +31 -0
  1000. package/lib/esm/utils/triggerAttributeHelper.js +2 -0
  1001. package/lib/esm/utils/updateOrderSubscriptionCustomerPaymentSource.d.ts +8 -0
  1002. package/lib/esm/utils/updateOrderSubscriptionCustomerPaymentSource.js +2 -0
  1003. package/lib/esm/utils/validateFormFields.d.ts +16 -0
  1004. package/lib/esm/utils/validateFormFields.js +2 -0
  1005. package/lib/tsconfig.prod.esm.tsbuildinfo +1 -0
  1006. package/lib/tsconfig.prod.tsbuildinfo +1 -0
  1007. package/package.json +170 -35
  1008. package/dist/index.cjs +0 -3
  1009. package/dist/index.cjs.map +0 -1
  1010. package/dist/index.d.cts +0 -3271
  1011. package/dist/index.d.ts +0 -3271
  1012. package/dist/index.js +0 -3
  1013. package/dist/index.js.map +0 -1
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/context/ExternalFunctionContext.ts","../src/components/ExternalFunction.tsx","../src/components/utils/Parent.tsx","../src/components/utils/BaseInput.tsx","../src/components/MetadataInput.tsx","../src/components/SubmitButton.tsx","../src/context/AddressChildrenContext.ts","../src/context/CustomerContext.ts","../src/context/BillingAddressContext.ts","../src/context/ShippingAddressContext.ts","../src/components/addresses/Address.tsx","../src/utils/baseReducer.ts","../src/utils/organization.ts","../src/utils/getDomain.ts","../src/utils/jwt.ts","../src/utils/getSdk.ts","../src/utils/validateFormFields.ts","../src/utils/addressesManager.ts","../src/utils/formCleaner.ts","../src/reducers/AddressReducer.ts","../src/context/AddressContext.ts","../src/context/OrderContext.ts","../src/utils/localStorage.ts","../src/utils/getErrors.ts","../src/utils/events.ts","../src/utils/getApplicationLink.ts","../src/reducers/OrderReducer.ts","../src/components/utils/AddressCardsTemplate.tsx","../src/components/utils/BaseSelect.tsx","../src/context/BillingAddressFormContext.ts","../src/context/ShippingAddressFormContext.ts","../src/utils/countryStateCity.ts","../src/context/CustomerAddressFormContext.ts","../src/components/addresses/AddressCountrySelector.tsx","../src/components/addresses/AddressField.tsx","../src/components/addresses/AddressInput.tsx","../src/components/addresses/AddressInputSelect.tsx","../src/components/addresses/AddressStateSelector.tsx","../src/context/CommerceLayerContext.ts","../src/components/addresses/AddressesContainer.tsx","../src/components/addresses/AddressesEmpty.tsx","../src/reducers/BillingAddressReducer.ts","../src/components/addresses/BillingAddressContainer.tsx","../src/components/addresses/BillingAddressForm.tsx","../src/components/addresses/SaveAddressesButton.tsx","../src/reducers/ShippingAddressReducer.ts","../src/components/addresses/ShippingAddressContainer.tsx","../src/components/addresses/ShippingAddressForm.tsx","../src/components/utils/ErrorBoundary.tsx","../src/components/auth/CommerceLayer.tsx","../src/components/customers/CustomerAddressForm.tsx","../src/utils/getCustomerIdByToken.ts","../src/utils/triggerAttributeHelper.ts","../src/reducers/CustomerReducer.ts","../src/utils/isGuestToken.ts","../src/components/customers/CustomerContainer.tsx","../src/utils/placeholderImages.ts","../src/components/utils/GenericFieldComponent.tsx","../src/components/customers/CustomerField.tsx","../src/components/customers/CustomerInput.tsx","../src/components/customers/SaveCustomerButton.tsx","../src/reducers/GiftCardReducer.ts","../src/context/GiftCardContext.ts","../src/utils/pick.ts","../src/utils/customMessages.ts","../src/components/utils/getAllErrors.tsx","../src/context/LineItemContext.ts","../src/context/LineItemChildrenContext.ts","../src/utils/snakeToCamelCase.ts","../src/utils/replace.ts","../src/reducers/PaymentMethodReducer.ts","../src/context/PaymentMethodContext.ts","../src/context/PaymentMethodChildrenContext.ts","../src/utils/canPlaceOrder.ts","../src/reducers/ShipmentReducer.ts","../src/context/ShipmentContext.ts","../src/context/InStockSubscriptionContext.ts","../src/components/errors/Errors.tsx","../src/components/gift_cards/GiftCard.tsx","../src/components/gift_cards/GiftCardContainer.tsx","../src/config/currency.ts","../src/components/gift_cards/GiftCardCurrencySelector.tsx","../src/components/gift_cards/GiftCardInput.tsx","../src/utils/adyen/manageGiftCard.ts","../src/components/gift_cards/GiftCardOrCouponCode.tsx","../src/context/CouponAndGiftCardFormContext.ts","../src/components/gift_cards/GiftCardOrCouponForm.tsx","../src/components/gift_cards/GiftCardOrCouponInput.tsx","../src/components/gift_cards/GiftCardOrCouponRemoveButton.tsx","../src/components/gift_cards/GiftCardOrCouponSubmit.tsx","../src/utils/hooks/useCustomContext.ts","../src/components/in_stock_subscriptions/InStockSubscriptionButton.tsx","../src/reducers/InStockSubscriptionReducer.ts","../src/components/in_stock_subscriptions/InStockSubscriptionsContainer.tsx","../src/context/ShipmentChildrenContext.ts","../src/components/line_items/LineItem.tsx","../src/utils/getAmount.ts","../src/components/line_items/LineItemAmount.tsx","../src/components/line_items/LineItemCode.tsx","../src/components/line_items/LineItemField.tsx","../src/components/line_items/LineItemImage.tsx","../src/components/line_items/LineItemName.tsx","../src/context/LineItemOptionChildrenContext.ts","../src/components/line_items/LineItemOption.tsx","../src/utils/isJSON.ts","../src/components/line_items/LineItemOptions.tsx","../src/components/line_items/LineItemQuantity.tsx","../src/components/line_items/LineItemRemoveLink.tsx","../src/reducers/LineItemReducer.ts","../src/components/line_items/LineItemsContainer.tsx","../src/utils/getLineItemsCount.ts","../src/components/line_items/LineItemsCount.tsx","../src/components/line_items/LineItemsEmpty.tsx","../src/reducers/SkuListsReducer.ts","../src/context/SkuListsContext.ts","../src/context/SkuChildrenContext.ts","../src/components/orders/AddToCartButton.tsx","../src/components/utils/BaseOrderPrice.tsx","../src/components/orders/AdjustmentAmount.tsx","../src/components/orders/CartLink.tsx","../src/components/orders/CheckoutLink.tsx","../src/components/orders/DiscountAmount.tsx","../src/components/orders/GiftCardAmount.tsx","../src/context/OrderStorageContext.ts","../src/utils/compareObjAttribute.ts","../src/components/orders/OrderContainer.tsx","../src/context/OrderListChildrenContext.ts","../src/context/OrderListPaginationContext.ts","../src/utils/icons.tsx","../src/utils/filterChildren.ts","../src/components/orders/OrderList.tsx","../src/components/orders/OrderListEmpty.tsx","../src/utils/isDate.ts","../src/components/orders/OrderListRow.tsx","../src/components/utils/BaseField.tsx","../src/components/orders/OrderNumber.tsx","../src/components/orders/OrderStorage.tsx","../src/components/orders/PaymentMethodAmount.tsx","../src/utils/shipments.ts","../src/utils/customerOrderOptions.ts","../src/utils/hasSubscriptions.ts","../src/utils/updateOrderSubscriptionCustomerPaymentSource.ts","../src/reducers/PlaceOrderReducer.ts","../src/context/PlaceOrderContext.ts","../src/utils/getCardDetails.ts","../src/utils/stripe/retrievePaymentIntent.ts","../src/components/orders/PlaceOrderButton.tsx","../src/components/orders/PlaceOrderContainer.tsx","../src/components/orders/PrivacyAndTermsCheckbox.tsx","../src/components/orders/ShippingAmount.tsx","../src/components/orders/SubTotalAmount.tsx","../src/components/orders/TaxesAmount.tsx","../src/components/orders/TotalAmount.tsx","../src/context/ParcelChildrenContext.ts","../src/components/parcels/ParcelField.tsx","../src/context/ParcelLineItemChildrenContext.ts","../src/components/parcels/ParcelLineItem.tsx","../src/components/parcels/ParcelLineItemField.tsx","../src/components/parcels/ParcelLineItemsCount.tsx","../src/components/parcels/Parcels.tsx","../src/components/parcels/ParcelsCount.tsx","../src/utils/getLoaderComponent.tsx","../src/utils/getPaymentAttributes.ts","../src/utils/isEmpty.ts","../src/utils/expressPaymentHelper.ts","../src/utils/payment-methods/sortPaymentMethods.ts","../src/components/payment_methods/PaymentMethod.tsx","../src/components/payment_methods/PaymentMethodName.tsx","../src/components/payment_methods/PaymentMethodPrice.tsx","../src/components/payment_methods/PaymentMethodRadioButton.tsx","../src/components/payment_methods/PaymentMethodsContainer.tsx","../src/context/PaymentSourceContext.ts","../src/utils/browserInfo.ts","../src/utils/getPublicIp.ts","../src/components/payment_source/AdyenPayment.tsx","../src/components/utils/PaymentCardsTemplate.tsx","../src/components/payment_gateways/AdyenGateway.tsx","../src/components/payment_source/StripeExpressPayment.tsx","../src/components/payment_source/StripePayment.tsx","../src/components/payment_gateways/StripeGateway.tsx","../src/utils/promisify.ts","../src/components/payment_source/BraintreePayment.tsx","../src/components/payment_gateways/BraintreeGateway.tsx","../src/components/payment_source/PaypalPayment.tsx","../src/components/payment_gateways/PaypalGateway.tsx","../src/components/payment_source/WireTransferPayment.tsx","../src/components/payment_gateways/WireTransferGateway.tsx","../src/components/payment_source/CheckoutComPayment.tsx","../src/utils/hooks/useExternalScript.ts","../src/components/payment_gateways/CheckoutComGateway.tsx","../src/components/payment_source/KlarnaPayment.tsx","../src/components/payment_gateways/KlarnaGateway.tsx","../src/components/payment_source/ExternalPayment.tsx","../src/components/payment_gateways/ExternalGateway.tsx","../src/components/payment_gateways/PaymentGateway.tsx","../src/components/payment_source/PaymentSource.tsx","../src/context/CustomerPaymentSourceContext.ts","../src/components/payment_source/PaymentSourceBrandIcon.tsx","../src/components/payment_source/PaymentSourceBrandName.tsx","../src/components/payment_source/PaymentSourceDetail.tsx","../src/components/payment_source/PaymentSourceEditButton.tsx","../src/components/utils/PriceTemplate.tsx","../src/utils/getPrices.tsx","../src/reducers/PriceReducer.ts","../src/context/PricesContext.ts","../src/components/prices/Price.tsx","../src/context/SkuContext.ts","../src/components/prices/PricesContainer.tsx","../src/components/shipments/Shipment.tsx","../src/components/shipments/ShipmentField.tsx","../src/components/shipments/ShipmentsContainer.tsx","../src/components/shipments/ShipmentsCount.tsx","../src/context/ShippingMethodChildrenContext.ts","../src/components/shipping_methods/ShippingMethod.tsx","../src/components/shipping_methods/ShippingMethodName.tsx","../src/components/shipping_methods/ShippingMethodPrice.tsx","../src/components/shipping_methods/ShippingMethodRadioButton.tsx","../src/reducers/AvailabilityReducer.ts","../src/context/AvailabilityContext.ts","../src/components/skus/AvailabilityContainer.tsx","../src/components/skus/AvailabilityTemplate.tsx","../src/components/skus/DeliveryLeadTime.tsx","../src/components/skus/SkuField.tsx","../src/components/skus/SkuList.tsx","../src/components/skus/SkuListsContainer.tsx","../src/components/skus/Skus.tsx","../src/reducers/SkuReducer.ts","../src/components/skus/SkusContainer.tsx","../src/context/StockTransferChildrenContext.ts","../src/components/stock_transfers/StockTransfer.tsx","../src/components/stock_transfers/StockTransferField.tsx","../src/hooks/useOrderContainer.ts","../src/hooks/useCommerceLayer.ts","../src/hooks/useCustomerContainer.ts"],"names":["callExternalFunction","_0","__async","url","data","response","ExternalFunctionContext","createContext","ExternalFunctionContext_default","ExternalFunction","children","jsx","Parent","_a","_b","p","__objRest","Child","__spreadValues","BaseInput","props","ref","input","__spreadProps","BaseInput_default","React","MetadataInput","SubmitButton","label","parentProps","isFunction","initial","AddressChildrenContext","AddressChildrenContext_default","defaultCustomerContext","CustomerContext","CustomerContext_default","defaultBillingAddressContext","BillingAddressContext","BillingAddressContext_default","defaultShippingAddressContext","ShippingAddressContext","ShippingAddressContext_default","baseReducer","state","action","actionTypes","baseReducer_default","getDomain","endpoint","slug","jwt","accessToken","jwtDecode","getOrganizationSlug","org","domain","getOrganizationConfig","config","market","organization","getSdk","getMfeConfig","Sdk","EMAIL_PATTERN","validateValue","val","name","type","resource","isString","validateFormFields","fields","required","resourceType","errors","values","map","v","attrName","error","isEmpty","fieldsExist","address","schema","addressFields","without","validAddress","keys","k","businessOptionalFields","customerOptionalFields","businessMandatoryField","fieldName","isBusiness","validateFormFields_default","billingAddressController","billing_address","billingAddressId","requiresBillingInfo","invertAddresses","shipToDifferentAddress","shippingDisable","requiredMetadataFields","billingDisable","formFields","shippingAddressController","shipping_address","shippingAddressId","formField","countryLockController","addresses","countryCodeLock","lineItems","lineItem","addressLocked","a","invertedAddressesHandler","order","billingAddress","customerEmail","shippingAddress","sdk","_c","currentShippingAddressRef","orderAttributes","hasMetadata","key","metadataKey","addressesController","sanitizeMetadataFields","formCleaner","keyCleaned","addressInitialState","setAddressErrors","dispatch","currentErrors","billingErrors","e","shippingErrors","finalErrors","setAddress","payload","setCloneAddress","id","camelCase","saveAddresses","updateOrder","customerAddress","_d","billingAddressForm","shippingAddressForm","billingAddressCloneId","shippingAddressCloneId","doNotShipItems","currentBillingAddressRef","billingAddressWithMeta","shippingAddressWithMeta","orderUpdated","addressReducer","reducer","AddressReducer_default","defaultAddressContext","AddressesContext","AddressContext_default","getLocalOrder","setLocalOrder","value","deleteLocalOrder","getSavePaymentSourceToCustomerWallet","getSaveBillingAddressToAddressBook","getSaveShippingAddressToAddressBook","setCustomerOrderParam","getErrors","field","attributes","setErrors","newErrors","filterBy","errorsDifference","differenceBy","mergeErrors","publish","eventName","event","getApplicationLink","orderId","applicationType","modeType","clientId","scope","returnUrl","resetPasswordUrl","customDomain","env","t","c","s","r","params","domainName","application","actionType","createOrder","persistKey","metadata","o","getApiOrder","clearWhenPlaced","options","include","setOrderErrors","paymentSourceRequest","requestType","setOrder","addResourceToInclude","resourcesIncluded","newResource","newResourceLoaded","resourceIncludedLoaded","resources","includeLoaded","payloadIncludeLoaded","addToCart","_e","_f","skuCode","bundleCode","quantity","buyNowMode","checkoutUrl","lineItemOption","openMiniCart","imageUrl","frequency","externalPrice","attrs","newLineItem","skuOptionId","skuOption","lineItemRel","lineItemOptionsAttributes","href","organizationConfig","redirectUrl","saveAddressToCustomerAddressBook","setGiftCardOrCouponCode","code","codeType","success","currentOrder","removeGiftCardOrCouponCode","orderInitialState","orderReducer","OrderReducer_default","defaultOrderContext","OrderContext","OrderContext_default","AddressCardsTemplate","customerAddresses","deselect","countryLock","selected","selectedClassName","className","disabledClassName","handleSelect","setShippingAddress","useContext","disabled","selectedClass","addressSelectedClass","finalClassName","customerAddressId","onClick","Address","onSelect","addressesContext","setBillingAddress","billingCustomerAddressId","shippingCustomerAddressId","setSelected","useState","items","useEffect","addressId","components","addressProps","Fragment","BaseSelect","placeholder","option","Options","BaseSelect_default","BillingAddressFormContext","BillingAddressFormContext_default","ShippingAddressFormContext","ShippingAddressFormContext_default","getCountries","countries","defaultCountries","getStateOfCountry","countryCode","states","defaultStates","isValidState","stateCode","isEmptyStates","countriesWithPredefinedStateOptions","statesIt","statesUs","CustomerAddressFormContext","CustomerAddressFormContext_default","AddressCountrySelector","hasError","useMemo","errorClassName","classNameComputed","AddressField","text","deleteCustomerAddress","handleClick","AddressInput","mandatoryField","reqField","AddressInputSelect","AddressStateSelector","inputClassName","selectClassName","addressErrors","setHasError","setCountryCode","setVal","stateOptions","_g","_h","_i","_j","_k","_l","_m","_n","billingCountryCode","shippingCountryCode","changeBillingCountry","changeShippingCountry","fieldError","CommerceLayerContext","CommerceLayerContext_default","AddressesContainer","useReducer","contextValue","AddressesEmpty","emptyText","billingAddressInitialState","setBillingCustomerAddressId","billingAddressReducer","BillingAddressReducer_default","BillingAddressContainer","BillingAddressForm","autoComplete","reset","customFieldMessageError","fieldEvent","validation","resetForm","setValueForm","setErrorForm","useRapidForm","useRef","inError","customMessage","errorMsg","element","isValid","message","fieldInError","formErrors","checkboxChecked","providerValues","SaveAddressesButton","email","isGuest","createCustomerAddress","forceDisable","setForceDisable","isValidEmail","shippingAddressCleaned","acc","countryLockDisable","disable","shippingAddressInitialState","setShippingCustomerAddressId","shippingAddressReducer","ShippingAddressReducer_default","ShippingAddressContainer","ShippingAddressForm","ErrorBoundary","Component","__publicField","errorInfo","ErrorBoundary_default","CommerceLayer","CustomerAddressForm","getCustomerIdByToken","triggerAttributeHelper","attribute","saveCustomerUser","setCustomerErrors","setCustomerEmail","getCustomerAddresses","isOrderAvailable","pageSize","b","newAddresses","reference","getCustomerPaymentSources","payments","getCustomerOrders","pageNumber","owner","orders","getCustomerSubscriptions","subscriptions","addressWithMeta","upAddress","updatedAddresses","newAddress","newCustomerAddress","getCustomerPayments","getCustomerInfo","customerId","customers","setResourceTrigger","reloadList","customerInitialState","customerReducer","CustomerReducer_default","isGuestToken","CustomerContainer","withoutIncludes","getCustomerData","defaultImgUrl","defaultGiftCardImgUrl","GenericFieldComponent","tagElement","context","resourceContext","attributeValue","keysContext","keyResource","Tag","CustomerField","CustomerInput","saveOnBlur","onBlur","setError","handleOnBlur","checkValue","currentError","SaveCustomerButton","giftCardInitialState","addGiftCardRecipient","recipient","addGiftCardLoading","loading","addGiftCard","_1","getOrder","firstName","lastName","giftCardValue","giftCard","recipientValues","item","addGiftCardError","giftCardReducer","GiftCardReducer_default","GiftCardContext","GiftCardContext_default","pick","object","result","customMessages","messages","objFiltered","msg","getAllErrors","allErrors","returnHtml","objMsg","getAllErrors_default","LineItemContext","LineItemContext_default","LineItemChildrenContext","LineItemChildrenContext_default","snakeToCamelCase","words","first","firstLetter","second","replace","replacement","setLoading","setPaymentRef","paymentMethodInitialState","setPaymentMethodErrors","getPaymentMethods","paymentMethods","paymentMethod","paymentSource","setPaymentMethod","paymentMethodId","paymentResource","setPaymentSource","customerPaymentSourceId","paymentSourceId","isAlreadyPlaced","updatePaymentSource","err","destroyPaymentSource","setPaymentMethodConfig","getPaymentConfig","resourceKeys","paymentMethodReducer","PaymentMethodReducer_default","defaultPaymentMethodContext","PaymentMethodContext","PaymentMethodContext_default","PaymentMethodChildrenContext","PaymentMethodChildrenContext_default","canPlaceOrder","shipmentInitialState","setShipmentErrors","getShipments","shipments","allDeliveryLeadTimes","currentPage","totalPages","setShippingMethod","shipmentId","shippingMethodId","shipmentReducer","ShipmentReducer_default","defaultShipmentContext","ShipmentContext","ShipmentContext_default","InStockSubscriptionContext","InStockSubscriptionContext_default","Errors","payment","orderErrors","giftCardErrors","lineItemErrors","customerErrors","shipmentErrors","inStockSubscriptionErrors","paymentMethodErrors","currentPaymentMethodType","currentPaymentMethodId","addressesErrors","msgErrors","GiftCard","onSubmit","currentForm","elements","GiftCardContainer","currency_default","GiftCardCurrencySelector","GiftCardInput","manageGiftCard","getPaymentSource","additionalData","amount","giftCardData","formattedOrderTotal","formattedCurrentBalance","GiftCardOrCouponCode","manageAdyenGiftCard","hide","CouponAndGiftCardFormContext","CouponAndGiftCardFormContext_default","GiftCardOrCouponForm","setType","handleSubmit","GiftCardOrCouponInput","placeholderTranslation","placeholderLabel","GiftCardOrCouponRemoveButton","res","GiftCardOrCouponSubmit","useCustomContext","currentComponentName","contextComponentName","currentContext","isProduction","InStockSubscriptionButton","show","loadingLabel","setInStockSubscription","get","inStockSubscriptionInitialState","inStockSubscriptionReducer","InStockSubscriptionsContainer","ShipmentChildrenContext","ShipmentChildrenContext_default","LineItem","shipmentLineItems","l","check","lineProps","getAmount","args","format","obj","base","typeOne","typeTwo","typeThree","typeFourth","LineItemAmount","price","setPrice","LineItemCode","labelName","LineItemField","LineItemImage","itemType","src","parenProps","LineItemName","LineItemOptionChildrenContext","LineItemOptionChildrenContext_default","isJSON","str","LineItemOption","valueClassName","tagContainer","showAll","TagElement","TagContainer","jsxs","LineItemOptions","title","showName","titleTagElement","titleClassName","lineItemOptions","TitleTagElement","showTitle","valueProps","LineItemQuantity","max","readonly","hasExternalPrice","updateLineItem","i","handleChange","LineItemRemoveLink","deleteLineItem","handleRemove","lineItemId","lineItemInitialState","lineItemReducer","LineItemReducer_default","LineItemsContainer","loader","lineItemValue","getLineItemsCount","typeAccepted","LineItemsCount","setQuantity","qty","LineItemsEmpty","skuListsInitialState","getSkuList","listIds","skuLists","skuCodes","skuListsReducer","SkuListsReducer_default","SkuListsContext","SkuListsContext_default","SkuChildrenContext","SkuChildrenContext_default","AddToCartButton","skuListId","redirectToHostedCart","hostedCartUrl","protocol","sku","sCode","BaseOrderPrice","cents","setCents","BaseOrderPrice_default","AdjustmentAmount","CartLink","CheckoutLink","hostedCheckout","currentHref","DiscountAmount","GiftCardAmount","OrderStorageContext","OrderStorageContext_default","sortObj","compareObjAttribute","returnObj","compare","elementSorted","compareSorted","OrderContainer","fetchOrder","lock","setLock","lockOrder","setLockOrder","localOrder","updateAttributes","startRequest","orderValue","OrderListChildrenContext","OrderListChildrenContext_default","ctx","OrderListPaginationContext_default","sortDescIcon","sortAscIcon","filterChildren","componentName","child","rowComponents","paginationComponents","OrderList","columns","loadingElement","showActions","showPagination","sortBy","paginationContainerClassName","actionsComponent","actionsContainerClassName","theadClassName","rowTrClassName","sorting","setSorting","pageIndex","currentPageSize","setPagination","cols","pagination","pageCount","table","useReactTable","getSortedRowModel","getCoreRowModel","getPaginationRowModel","TableHtmlElement","TheadHtmlElement","TbodyHtmlElement","ThHtmlElement","TrHtmlElement","LoadingComponent","headerComponent","headerGroup","columnsComponents","header","sortLabel","flexRender","rowsComponents","row","childProps","pagComponents","totalRows","Pagination","OrderListEmpty","isDate","OrderListRow","cell","isLastRow","last","As","ActionRow","cellValue","createElement","BaseField","setField","BaseField_default","OrderNumber","OrderStorage","PaymentMethodAmount","shipmentsFilled","filled","compact","shipment","isDoNotShip","itemDoNotShip","item_type","saveToWallet","saveBillingAddress","saveShippingAddress","hasSubscriptions","updateOrderSubscriptionCustomerPaymentSource","paymentType","paymentSourceToken","getPaymentSourceToken","customerPaymentSources","customerPaymentSource","setButtonRef","placeOrderInitialState","setPlaceOrderErrors","placeOrderPermitted","isPermitted","doNotShip","setPlaceOrder","currentCustomerPaymentSourceId","lastOrderStatus","ps","currentUrl","total","setPlaceOrderStatus","status","placeOrderReducer","PlaceOrderReducer_default","defaultPlaceOrderContext","PlaceOrderContext","PlaceOrderContext_default","getCardDetails","customerPayment","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","_y","_z","_A","_B","_C","_D","source","authorized","last4","brand","retrievePaymentIntent","publicApiKey","paymentIntentClientSecret","stripe","loadStripe","paymentIntentValidation","paymentIntent","checkPaymentIntent","paymentIntentResult","PlaceOrderButton","autoPlaceOrder","notPermitted","setNotPermitted","isLoading","setIsLoading","currentPaymentMethodRef","isFree","card","getPaymentIntent","resultCode","paymentDetails","errorCode","checkPaymentSource","placed","disabledButton","labelButton","PlaceOrderContainer","PrivacyAndTermsCheckbox","forceDisabled","setForceDisabled","checked","setChecked","ShippingAmount","SubTotalAmount","TaxesAmount","TotalAmount","ParcelChildrenContext_default","ParcelField","ParcelLineItemChildrenContext_default","ParcelLineItem","parcel","parcelLineItem","ParcelLineItemField","ParcelLineItemsCount","childrenProps","Parcels","parcels","ParcelsCount","getLoaderComponent","getPaymentAttributes","keysCamelCase","currentResource","getPaypalAttributes","getExternalPaymentAttributes","getStripeAttributes","availablePaymentMethods","getAvailableExpressPayments","setExpressFakeAddress","fakeAddress","getExpressShippingMethods","isSingleShipment","shippingMethods","method","shippingOptionsAmount","methods","firstMethod","setExpressShippingMethod","selectFirst","selectedShippingMethodId","firstShippingMethodId","setExpressPlaceOrder","placeTheOrder","expressRedirectUrl","sortPaymentMethods","labels","indexA","indexB","loadingResource","PaymentMethod","activeClass","clickableContainer","autoSelectSinglePaymentMethod","expressPayments","paymentSelected","setPaymentSelected","paymentSourceCreated","setPaymentSourceCreated","setLoadingPlaceOrder","sortedPaymentMethods","isActive","paymentMethodProps","onClickable","updatedOrder","PaymentMethodName","htmlFor","paymentGateway","PaymentMethodPrice","labelFree","priceCents","setPriceCents","PaymentMethodRadioButton","onChange","setDisabled","handleOnChange","PaymentMethodsContainer","credentials","getPayMethods","defaultPaymentSourceContext","PaymentSourceContext","PaymentSourceContext_default","getBrowserInfo","screenWidth","screenHeight","colorDepth","userAgent","javaEnabled","acceptHeader","language","timeZoneOffset","cleanUrlBy","symbol","currentLocation","splitLocation","getPublicIP","defaultConfig","AdyenPayment","clientKey","templateCustomerSaveToWallet","environment","locale","cardContainerClassName","styles","onDisableStoredPaymentMethod","loadAdyen","setLoadAdyen","checkout","setCheckout","placeOrderButtonRef","dropinRef","savePaymentSourceToCustomerWallet","handleOnAdditionalDetails","component","pSource","shopperIp","control","controlCode","paymentMethodType","availableGiftCardAmount","totalPartialAmount","firstAuthorization","issuerType","paymentMethodsResponse","showStoredPaymentMethods","actions","initializeAdyen","AdyenCheckout","dropin","Dropin","recurringDetailReference","shopperReference","AdyenPayment_default","PaymentCardsTemplate","customerPayments","AdyenGateway","showCard","handleEditClick","templateCustomerCards","loaderComponent","adyenConfig","paymentConfig","hasStoredPaymentMethods","AdyenGateway_default","StripeExpressPayment","clientSecret","useStripe","paymentRequest","setPaymentRequest","pr","ev","orderWithShipments","shippingOptions","line","placeOrderParams","confirmError","PaymentRequestButtonElement","defaultOptions","defaultAppearance","StripePaymentForm","useElements","billingInfo","billingDetails","cleanUrl","PaymentElement","StripePayment","publishableKey","isLoaded","setIsLoaded","setStripe","containerClassName","fonts","appearance","divProps","elementsOptions","Elements","StripePayment_default","StripeGateway","stripeConfig","StripeGateway_default","promisify","cb","resolve","reject","BraintreePayment","authorization","fieldsContainerClassName","expDateContainerClassName","fieldLabelClassName","cvvContainerClassName","inputWrapperClassName","cardDetailsContainerClassName","loadBraintree","setLoadBraintree","handleSubmitForm","hostedFieldsInstance","threeDSInstance","verifyCardOptions","_data","next","braintreeClient","hostedFields","threeDSecure","clientErr","clientInstance","hostedFieldsErr","threeDSecureErr","BraintreePayment_default","BraintreeGateway","braintreeConfig","BraintreeGateway_default","defaultMessage","PaypalPayment","infoMessage","PaypalPayment_default","PaypalGateway","PaypalGateway_default","WireTransferPayment","dataTestId","WireTransferPayment_default","WireTransferGateway","wireTransferConfig","WireTransferGateway_default","useExternalScript","loaded","setLoaded","script","scriptUrl","systemLanguages","CheckoutComPayment","publicKey","successUrl","failureUrl","lang","localization","Frames","CardNumber","ExpiryDate","Cvv","CheckoutComPayment_default","CheckoutComGateway","CheckoutComGateway_default","typeOfLine","lineItemType","klarnaOrderLines","KlarnaPayment","clientToken","placeOrderCallback","klarna","setKlarna","kl","paymentMethodCategories","klarnaData","KlarnaGateway","klarnaConfig","KlarnaGateway_default","ExternalPayment","ExternalPayment_default","ExternalGateway","getConfig","ExternalGateway_default","PaymentGateway","onClickCustomerCards","setPaymentSources","gatewayConfig","PaymentGateway_default","PaymentSource","setShow","setShowCard","isCustomerPaymentSource","gatewayProps","defaultCustomerPaymentSourceContext","CustomerPaymentSourceContext","CustomerPaymentSourceContext_default","PaymentSourceBrandIcon","width","customerCardBrand","customerIssuerType","cardBrand","defaultSrc","handleError","PaymentSourceBrandName","brandName","capitalize","PaymentSourceDetail","customerCard","cardObj","PaymentSourceEditButton","PriceTemplate","showCompare","formattedCompare","compareClassName","formattedAmount","PriceTemplate_default","getPricesComponent","skuPrices","getPrices","prices","priceInitialState","setSkuCodes","getSkusPrice","perPage","filters","allPrices","pricesObj","meta","pageResponse","typeAction","priceReducer","PriceReducer_default","PricesContext","PricesContext_default","Price","pricesSkuCode","setSkuPrices","pricesComponent","SkuContext","SkuContext_default","PricesContainer","priceValue","Shipment","autoSelectSingleShippingMethod","deliveryLeadTimes","isSingle","shippingMethod","shipmentLineItem","currentShippingMethodId","stockTransfers","times","time","shipmentProps","ShipmentField","keyNumber","ShipmentsContainer","ShipmentsCount","ShippingMethodChildrenContext","ShippingMethodChildrenContext_default","ShippingMethod","setItems","deliveryLeadTimeForShipment","delivery","deliveryShippingMethodId","shippingProps","ShippingMethodName","ShippingMethodPrice","labelFreeOver","labelExternal","scheme","pCents","finalPrice","ShippingMethodRadioButton","availabilityInitialState","getAvailability","skuId","skuInventory","level","availabilityReducer","AvailabilityReducer_default","AvailabilityContext","AvailabilityContext_default","AvailabilityContainer","getQuantity","memoized","AvailabilityTemplate","timeFormat","showShippingMethodName","showShippingMethodPrice","min","mn","mx","shippingMethodPrice","DeliveryLeadTime","setText","SkuField","SkuList","SkuListsContainer","Skus","skus","skuInitialState","getSku","queryParams","allSkus","getPage","skuReducer","SkusContainer","loadSkus","StockTransferChildrenContext","StockTransferChildrenContext_default","StockTransfer","st","stockTransfer","stockTransferProps","StockTransferField","useOrderContainer","useCommerceLayer","useCustomerContainer"],"mappings":"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AAM,EAC7B,CAAE,KAAA,CAAO,MAAO,KAAO,CAAA,KAAM,EAC7B,CAAE,KAAA,CAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,KAAO,CAAA,KAAA,CAAO,MAAO,KAAM,CAAA,CAC7B,CAAE,KAAA,CAAO,MAAO,KAAO,CAAA,KAAM,EAC7B,CAAE,KAAA,CAAO,MAAO,KAAO,CAAA,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAAA,CAC7B,CAAE,KAAO,CAAA,KAAA,CAAO,KAAO,CAAA,KAAM,EAC7B,CAAE,KAAA,CAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,KAAO,CAAA,KAAA,CAAO,MAAO,KAAM,CAAA,CAC7B,CAAE,KAAA,CAAO,MAAO,KAAO,CAAA,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAAA,CAC7B,CAAE,KAAO,CAAA,KAAA,CAAO,KAAO,CAAA,KAAM,EAC7B,CAAE,KAAA,CAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,KAAO,CAAA,KAAA,CAAO,MAAO,KAAM,CAAA,CAC7B,CAAE,KAAA,CAAO,MAAO,KAAO,CAAA,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAAA,CAC7B,CAAE,KAAO,CAAA,KAAA,CAAO,KAAO,CAAA,KAAM,EAC7B,CAAE,KAAA,CAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,KAAO,CAAA,KAAA,CAAO,MAAO,KAAM,CAAA,CAC7B,CAAE,KAAA,CAAO,MAAO,KAAO,CAAA,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAAA,CAC7B,CAAE,KAAO,CAAA,KAAA,CAAO,KAAO,CAAA,KAAM,EAC7B,CAAE,KAAA,CAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,KAAO,CAAA,KAAA,CAAO,MAAO,KAAM,CAAA,CAC7B,CAAE,KAAA,CAAO,MAAO,KAAO,CAAA,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAAA,CAC7B,CAAE,KAAO,CAAA,KAAA,CAAO,KAAO,CAAA,KAAM,EAC7B,CAAE,KAAA,CAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,KAAO,CAAA,KAAA,CAAO,MAAO,KAAM,CAAA,CAC7B,CAAE,KAAA,CAAO,MAAO,KAAO,CAAA,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAAA,CAC7B,CAAE,KAAO,CAAA,KAAA,CAAO,MAAO,KAAM,CAAA,CAC7B,CAAE,KAAO,CAAA,KAAA,CAAO,KAAO,CAAA,KAAM,EAC7B,CAAE,KAAA,CAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,KAAO,CAAA,KAAA,CAAO,MAAO,KAAM,CAAA,CAC7B,CAAE,KAAO,CAAA,KAAA,CAAO,MAAO,KAAM,CAAA,CAC7B,CAAE,KAAA,CAAO,MAAO,KAAO,CAAA,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAAA,CAC7B,CAAE,KAAO,CAAA,KAAA,CAAO,MAAO,KAAM,CAAA,CAC7B,CAAE,KAAO,CAAA,KAAA,CAAO,KAAO,CAAA,KAAM,EAC7B,CAAE,KAAA,CAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,KAAO,CAAA,KAAA,CAAO,MAAO,KAAM,CAAA,CAC7B,CAAE,KAAA,CAAO,MAAO,KAAO,CAAA,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAAA,CAC7B,CAAE,KAAO,CAAA,KAAA,CAAO,KAAO,CAAA,KAAM,EAC7B,CAAE,KAAA,CAAO,MAAO,KAAO,CAAA,KAAM,EAC7B,CAAE,KAAA,CAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,KAAO,CAAA,KAAA,CAAO,MAAO,KAAM,CAAA,CAC7B,CAAE,KAAA,CAAO,MAAO,KAAO,CAAA,KAAM,EAC7B,CAAE,KAAA,CAAO,MAAO,KAAO,CAAA,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAAA,CAC7B,CAAE,KAAO,CAAA,KAAA,CAAO,KAAO,CAAA,KAAM,EAC7B,CAAE,KAAA,CAAO,MAAO,KAAO,CAAA,KAAM,EAC7B,CAAE,KAAA,CAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,KAAO,CAAA,KAAA,CAAO,MAAO,KAAM,CAAA,CAC7B,CAAE,KAAA,CAAO,MAAO,KAAO,CAAA,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAAA,CAC7B,CAAE,KAAO,CAAA,KAAA,CAAO,KAAO,CAAA,KAAM,EAC7B,CAAE,KAAA,CAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,KAAO,CAAA,KAAA,CAAO,MAAO,KAAM,CAAA,CAC7B,CAAE,KAAA,CAAO,MAAO,KAAO,CAAA,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAAA,CAC7B,CAAE,KAAO,CAAA,KAAA,CAAO,KAAO,CAAA,KAAM,EAC7B,CAAE,KAAA,CAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,KAAO,CAAA,KAAA,CAAO,MAAO,KAAM,CAAA,CAC7B,CAAE,KAAA,CAAO,MAAO,KAAO,CAAA,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAAA,CAC7B,CAAE,KAAO,CAAA,KAAA,CAAO,KAAO,CAAA,KAAM,EAC7B,CAAE,KAAA,CAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,KAAO,CAAA,KAAA,CAAO,MAAO,KAAM,CAAA,CAC7B,CAAE,KAAA,CAAO,MAAO,KAAO,CAAA,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAAA,CAC7B,CAAE,KAAO,CAAA,KAAA,CAAO,KAAO,CAAA,KAAM,EAC7B,CAAE,KAAA,CAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,KAAO,CAAA,KAAA,CAAO,MAAO,KAAM,CAAA,CAC7B,CAAE,KAAA,CAAO,MAAO,KAAO,CAAA,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAAA,CAC7B,CAAE,KAAO,CAAA,KAAA,CAAO,KAAO,CAAA,KAAM,EAC7B,CAAE,KAAA,CAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,KAAO,CAAA,KAAA,CAAO,MAAO,KAAM,CAAA,CAC7B,CAAE,KAAO,CAAA,KAAA,CAAO,MAAO,KAAM,CAAA,CAC7B,CAAE,KAAA,CAAO,MAAO,KAAO,CAAA,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAAA,CAC7B,CAAE,KAAO,CAAA,KAAA,CAAO,MAAO,KAAM,CAAA,CAC7B,CAAE,KAAO,CAAA,KAAA,CAAO,KAAO,CAAA,KAAM,EAC7B,CAAE,KAAA,CAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,KAAO,CAAA,KAAA,CAAO,MAAO,KAAM,CAAA,CAC7B,CAAE,KAAO,CAAA,KAAA,CAAO,MAAO,KAAM,CAAA,CAC7B,CAAE,KAAA,CAAO,MAAO,KAAO,CAAA,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAAA,CAC7B,CAAE,KAAO,CAAA,KAAA,CAAO,KAAO,CAAA,KAAM,EAC7B,CAAE,KAAA,CAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,KAAO,CAAA,KAAA,CAAO,MAAO,KAAM,CAAA,CAC7B,CAAE,KAAA,CAAO,MAAO,KAAO,CAAA,KAAM,EAC7B,CAAE,KAAA,CAAO,MAAO,KAAO,CAAA,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAAA,CAC7B,CAAE,KAAO,CAAA,KAAA,CAAO,KAAO,CAAA,KAAM,EAC7B,CAAE,KAAA,CAAO,MAAO,KAAO,CAAA,KAAM,EAC7B,CAAE,KAAA,CAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,KAAO,CAAA,KAAA,CAAO,MAAO,KAAM,CAAA,CAC7B,CAAE,KAAA,CAAO,MAAO,KAAO,CAAA,KAAM,EAC7B,CAAE,KAAA,CAAO,MAAO,KAAO,CAAA,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAAA,CAC7B,CAAE,KAAO,CAAA,KAAA,CAAO,KAAO,CAAA,KAAM,EAC7B,CAAE,KAAA,CAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,KAAO,CAAA,KAAA,CAAO,MAAO,KAAM,CAAA,CAC7B,CAAE,KAAA,CAAO,MAAO,KAAO,CAAA,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAAA,CAC7B,CAAE,KAAO,CAAA,KAAA,CAAO,KAAO,CAAA,KAAM,EAC7B,CAAE,KAAA,CAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,KAAO,CAAA,KAAA,CAAO,MAAO,KAAM,CAAA,CAC7B,CAAE,KAAA,CAAO,MAAO,KAAO,CAAA,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAAA,CAC7B,CAAE,KAAO,CAAA,KAAA,CAAO,KAAO,CAAA,KAAM,EAC7B,CAAE,KAAA,CAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,KAAO,CAAA,KAAA,CAAO,MAAO,KAAM,CAAA,CAC7B,CAAE,KAAA,CAAO,MAAO,KAAO,CAAA,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAAA,CAC7B,CAAE,KAAO,CAAA,KAAA,CAAO,KAAO,CAAA,KAAM,EAC7B,CAAE,KAAA,CAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,KAAO,CAAA,KAAA,CAAO,MAAO,KAAM,CAAA,CAC7B,CAAE,KAAA,CAAO,MAAO,KAAO,CAAA,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAAA,CAC7B,CAAE,KAAO,CAAA,KAAA,CAAO,KAAO,CAAA,KAAM,EAC7B,CAAE,KAAA,CAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,KAAO,CAAA,KAAA,CAAO,MAAO,KAAM,CAAA,CAC7B,CAAE,KAAA,CAAO,MAAO,KAAO,CAAA,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAAA,CAC7B,CAAE,KAAO,CAAA,KAAA,CAAO,MAAO,KAAM,CAAA,CAC7B,CAAE,KAAO,CAAA,KAAA,CAAO,KAAO,CAAA,KAAM,EAC7B,CAAE,KAAA,CAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,KAAO,CAAA,KAAA,CAAO,MAAO,KAAM,CAAA,CAC7B,CAAE,KAAO,CAAA,KAAA,CAAO,MAAO,KAAM,CAAA,CAC7B,CAAE,KAAA,CAAO,MAAO,KAAO,CAAA,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAAA,CAC7B,CAAE,KAAO,CAAA,KAAA,CAAO,MAAO,KAAM,CAAA,CAC7B,CAAE,KAAO,CAAA,KAAA,CAAO,KAAO,CAAA,KAAM,EAC7B,CAAE,KAAA,CAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAC7B,CAAA,CAAE,KAAO,CAAA,KAAA,CAAO,MAAO,KAAM,CAAA,CAC7B,CAAE,KAAA,CAAO,MAAO,KAAO,CAAA,KAAM,CAC7B,CAAA,CAAE,MAAO,KAAO,CAAA,KAAA,CAAO,KAAM,CAAA,CAC7B,CAAE,KAAO,CAAA,KAAA,CAAO,KAAO,CAAA,KAAM,EAC7B,CAAE,KAAA,CAAO,MAAO,KAAO,CAAA,KAAM,CAC/B,CClLS,CADF,SAASC,EAAyBpiB,CAAAA,CAAAA,CAA2B,CAClE,OAAOT,IAAC0R,EAAAnR,CAAAA,CAAAA,CAAA,CAAW,OAAA,CAASqiB,GAAiB,IAAK,CAAA,cAAA,CAAA,CAAmBniB,EAAO,CAC9E,CCDO,SAASqiB,EAAAA,CAAcriB,EAA2B,CACvD,IAAmCP,CAAAO,CAAAA,CAAAA,CAA3B,aAAA8Q,CAAc,CAAA,EAZxB,CAYqCrR,CAAAA,CAAAA,CAANE,EAAAC,CAAMH,CAAAA,CAAAA,CAAN,CAArB,aACR,CAAA,CAAA,CAAA,OAAOF,IAACa,EAAAN,CAAAA,CAAAA,CAAA,CAAU,WAAA,CAAagR,GAAiBnR,CAAG,CAAA,CACrD,CCIO,SAAS2iB,EAAAA,CAAe,CAAE,KAAApc,CAAAA,CAAM,CAA8B,CAAA,CAlBrE,IAAAzG,CAAAC,CAAAA,CAAAA,CAAA6G,CAAA0B,CAAAA,CAAAA,CAAA2E,EAAAC,CAAA6G,CAAAA,CAAAA,CAAAC,CAAAC,CAAAA,CAAAA,CAAAC,EAAAC,CAoBE,CAAA,GADI,CAAC5N,CAAAA,EACD,EAACA,CAAA,EAAA,IAAA,EAAAA,EAAO,cAAgB,CAAA,CAAA,OAAO,KACnC,IAAMqc,CAAAA,CAAAA,CAAAA,CACJ9iB,CAAAyG,CAAAA,CAAAA,CAAM,iBAAN,IAAAzG,CAAAA,MAAAA,CAAAA,CAAAA,CAAsB,IAAS,IAAA,gBAAA,CAC3ByG,EAAM,cACN,CAAA,IAAA,CAKN,GAJI,CAACqc,GAID,EADFhc,CAAAA,CAAAA,CAAAA,CAAAA,CAAA7G,EAAA6iB,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAkB,oBAAlB,GAAA,IAAA,CAAA,MAAA,CAAA7iB,CAAwC,CAAA,cAAA,GAAxC,YAAA6G,CAAwD,CAAA,IAAA,IAAS,UAClD,CAAA,CAAA,OAAO,KAExB,IAAMic,CAAAA,CAAAA,CAAiBva,CAAAsa,CAAAA,CAAAA,EAAA,YAAAA,CAAkB,CAAA,gBAAA,GAAlB,YAAAta,CAAoC,CAAA,cAAA,CAErDwa,GAAS5V,CAAAD,CAAAA,CAAAA,CAAAA,CAAA2V,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAkB,gBAAlB,GAAA,IAAA,CAAA,MAAA,CAAA3V,CAAoC,CAAA,MAAA,GAApC,YAAAC,CAA4C,CAAA,KAAA,CACrD6V,CAA6B,CAAA,CACjC,YAAaF,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAgB,WAC7B,CAAA,mBAAA,CACEC,GAAA,IAAAA,CAAAA,CAAAA,CAAU,MAAO,CAAA,QAAA,CAASD,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAgB,mBAAmB,CAAA,CAC/D,uBAAwBA,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAgB,CAAA,sBAAA,CACxC,WACE9O,CAAA8O,CAAAA,CAAAA,EAAA,YAAAA,CAAgB,CAAA,qBAAA,GAAhB,KAAA9O,CAAyC8O,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAgB,cAC3D,qBAAuBA,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAgB,mBACzC,CAKMG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAHJzc,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAO,6BAAiC,GAAA,IAAA,CAAA,CACpCA,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,+BAAgCwc,CAAa,CAAA,mBAAA,CACpD,CACoC,EAAA,GAAA,EAAK,gBAC7C/O,CAAAzN,CAAAA,CAAAA,CAAM,aAAN,GAAA,IAAA,CAAAyN,EAAuB,IACvB,CAAA,CACE,KAAO,CAAA,UAAA,CACP,UAAUC,CAAA1N,CAAAA,CAAAA,EAAA,YAAAA,CAAO,CAAA,aAAA,GAAP,KAAA0N,CAAwB,CAAA,KACpC,CACF,CAAA,CACMgP,GACJF,CAAa,CAAA,mBAAA,CAAsB,GACnC,EAAA,cAAA,CAAA,CAAe7O,EAAA3N,CAAM,CAAA,aAAA,GAAN,IAAA2N,CAAAA,CAAAA,CAAuB,KAAM,CAC5C,KAAA,CAAO,UACP,CAAA,QAAA,CAAA,CAAUC,EAAA5N,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAO,CAAA,aAAA,GAAP,KAAA4N,CAAwB,CAAA,KACpC,CAAC,CAAA,CACD,OAAA4O,CAAa,CAAA,qBAAA,CAAwBE,CAC9BziB,CAAAA,CAAAA,CAAAL,EAAA,EAAK4iB,CAAAA,CAAAA,CAAAA,CAAL,CAAmB,mBAAAC,CAAAA,CAAoB,EAChD,CC1CO,SAASE,EAAqBpjB,CAAAA,CAAAA,CAIP,CAJO,IAAAC,EAAAD,CACnC,CAAA,CAAA,QAAA,CAAAH,CACA,CAAA,IAAA,CAAA0D,CAtBF,CAoBqCtD,CAAAA,CAAAA,CAGhCM,EAAAJ,CAHgCF,CAAAA,CAAAA,CAGhC,CAFH,UACA,CAAA,MAAA,CAAA,CAAA,CAGA,GAAM,CAAE,MAAAwG,CAAO,CAAA,mBAAA,CAAA4c,CAAoB,CAAA,CAAItT,WAAWX,CAAY,CAAA,CAC1DT,CAAWpL,CAAAA,CAAAA,CAAQ,GAAGA,CAAI,CAAA,KAAA,CAAA,CAAoB,OAC9C,CAACA,CAAAA,EAAQkD,GAAS,aAAiBA,GAAAA,CAAAA,EAASA,CAAM,CAAA,WAAA,GAAgB,GACpEkI,CAAW,CAAA,aAAA,CACHpL,CAAMoL,GAAAA,CAAAA,CAAW,kBAC3B,IAAMD,CAAAA,CAAOjI,CAASkI,EAAAA,CAAAA,CAAWlI,EAAMkI,CAAQ,CAAA,CAAI,EAC/C2U,CAAAA,CAAAA,CAAO,EAAE7c,CAASiI,EAAAA,CAAAA,CAAAA,CACtB,GAAI2U,CAAAA,EAAuB9f,IAAS,WAAa,CAAA,CAC/C,IAAM0f,CAAAA,CAAeJ,GAAe,CAAE,KAAA,CAAApc,CAAM,CAAC,EAG7C,GAFA,OAAA,CAAQ,IAAI,OAASA,CAAAA,CAAK,EAC1B,OAAQ,CAAA,GAAA,CAAI,cAAgBwc,CAAAA,CAAY,EACpC,CAACA,CAAAA,CAAc,OAAO,IAAA,CAC1BK,EAAO,KACP,CAAA,IAAMtiB,CAA6BN,CAAAA,CAAAA,CAAAL,EAAA,EAC9BE,CAAAA,CAAAA,CAAAA,CAD8B,CAEjC,IAAM,CAAA,CAAA,EAAG0iB,EAAa,SAAS,CAAA,CAAA,EAAIA,CAAa,CAAA,WAAW,GAC3D,IAAAK,CAAAA,CACF,CACA,CAAA,CAAA,OAAOzjB,EACLC,GAACC,CAAAA,CAAAA,CAAAW,CAAAL,CAAAA,CAAAA,CAAA,GAAWW,CAAX,CAAA,CAAA,CAAyB,SAAAnB,CAAS,CAAA,CAAA,CAAA,CACjCyjB,EAAO,IACTxjB,CAAAA,GAAAA,CAAC,MAAAY,CAAAA,CAAAA,CAAAL,EAAA,EAASE,CAAAA,CAAAA,CAAAA,CAAT,CAAiB,QAAA,CAAAmO,GAAK,CAE3B,CACA,IAAM1N,CAAAA,CAA6BN,EAAAL,CAAA,CAAA,EAAA,CAC9BE,CAD8B,CAAA,CAAA,CAEjC,KAAAmO,CACA,CAAA,IAAA,CAAA4U,CACA,CAAA,mBAAA,CAAqB7c,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,qBAC5B,CAAA,mBAAA,CAAqBA,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,qBAC5B,CAAA,uBAAA,CAAyBA,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,yBAClC,CACA,CAAA,CAAA,OAAO5G,EACLC,GAACC,CAAAA,CAAAA,CAAAW,CAAAL,CAAAA,CAAAA,CAAA,GAAWW,CAAX,CAAA,CAAA,CAAyB,QAAAnB,CAAAA,CAAAA,CAAAA,CAAS,EACjCyjB,CAAO,CAAA,IAAA,CACTxjB,GAAC,CAAA,MAAA,CAAAY,EAAAL,CAAA,CAAA,EAAA,CAASE,GAAT,CAAiB,QAAA,CAAAmO,GAAK,CAE3B,CCpDA,IAAM6U,EAA+B7jB,CAAAA,aAAAA,CAA8B,EAAE,EAE9D8jB,EAAQD,CAAAA,EAAAA,CCMR,SAASE,EAAAA,CAAqBljB,CAAkC,CAAA,CACrE,IAAoEP,CAAAO,CAAAA,CAAAA,CAA5D,UAAAV,CAAU,CAAA,QAAA,CAAA8O,EAAU,YAAAgH,CAAAA,CAAAA,CAAe,IAAM,CAAA,QAAA,CAAA2M,CAnBnD,CAmBsEtiB,CAAAA,CAAAA,CAANE,CAAAC,CAAAA,CAAAA,CAAMH,EAAN,CAAtD,UAAA,CAAU,UAAU,CAAA,cAAA,CAAqB,aAC3C,CAAE,UAAA,CAAA+V,EAAY,MAAAhS,CAAAA,CAAAA,CAAQ,MAAA6R,CAAM,CAAA,CAAIO,YAAa,EAAA,CAC7C,CAAE,uBAAA1H,CAAAA,CAAAA,CAAyB,KAAAhI,CAAAA,CAAAA,CAAO,OAAA3C,CAAQ,CAAA,cAAA,CAAAwI,CAAe,CAAA,CAC7DyD,WAAWX,CAAY,CAAA,CACnB5O,EAAM4V,MAAwB,CAAA,IAAI,EAClC,CAAC7S,CAAAA,CAAMmgB,CAAO,CAAA,CAAI7S,SAASlC,CAAQ,CAAA,CACzCoC,SAAU,CAAA,IAAM,CAzBlB,IAAA/Q,CAAAA,CAAAC,CAAA6G,CAAAA,CAAAA,CAAA0B,EA0BI,GACEjF,CAAAA,EAAQ,QACRvD,CAAA+D,CAAAA,CAAAA,CAAOR,CAAI,CAAX,GAAA,IAAA,CAAA,MAAA,CAAAvD,CAAc,CAAA,KAAA,IAAU,IACxB8D,CAAU,EAAA,IAAA,EACVA,CAAO,CAAA,MAAA,CAAS,EAChB,CACA,IAAM4b,CAAM5b,CAAAA,CAAAA,CAAO,OAAQ+D,CAAMA,EAAAA,CAAAA,CAAE,KAAUtE,GAAAA,CAAI,EACjD+I,CAAeoT,CAAAA,CAAG,CACd4C,CAAAA,CAAAA,EACFA,EAAS,CAAE,KAAA,CAAA,CAAOriB,CAAA8D,CAAAA,CAAAA,CAAOR,CAAI,CAAX,GAAA,IAAA,CAAA,MAAA,CAAAtD,CAAc,CAAA,KAAA,CAAO,QAAS,KAAM,CAAC,EAE3D,CACIsD,CAAAA,EAAQ,QAAQuD,CAAA/C,CAAAA,CAAAA,CAAOR,CAAI,CAAA,GAAX,YAAAuD,CAAc,CAAA,KAAA,IAAU,EAC1CwF,GAAAA,CAAAA,CAAe,EAAE,CAAA,CACbgW,CACFA,EAAAA,CAAAA,CAAS,CAAE,KAAO9Z,CAAAA,CAAAA,CAAAA,CAAAzE,EAAOR,CAAI,CAAA,GAAX,YAAAiF,CAAc,CAAA,KAAA,CAAO,OAAS,CAAA,KAAM,CAAC,CAG7D,EAAA,CAAA,CAAG,CAACzE,CAAM,CAAC,CAEXgN,CAAAA,SAAAA,CAAU,IAAM,CACVpC,GAAY,IACVlI,EAAAA,CAAAA,EAAA,MAAAA,CAAO,CAAA,cAAA,EAAkB,EAACA,CAAA,EAAA,IAAA,EAAAA,CAAO,CAAA,WAAA,CAAA,EACnCid,EAAQ,aAAa,CAAA,CAEnB,EAACjd,CAAAA,EAAA,MAAAA,CAAO,CAAA,cAAA,CAAA,GAAkBA,CAAA,EAAA,IAAA,EAAAA,EAAO,WACnCid,CAAAA,EAAAA,CAAAA,CAAQ,gBAAgB,CAAA,CAEtB,EAACjd,CAAA,EAAA,IAAA,EAAAA,CAAO,CAAA,cAAA,CAAA,EAAkB,EAACA,CAAA,EAAA,IAAA,EAAAA,CAAO,CAAA,WAAA,CAAA,EAEpCid,EAAQ,0BAA2C,CAAA,EAGrDA,CAAQ/U,CAAAA,CAAQ,EAEpB,CAAG,CAAA,CAAClI,CAAK,CAAC,CAAA,CAEV,IAAMkd,CACJ9b,CAAAA,CAAAA,EACkBxI,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CAjEtB,IAAAW,CAkEI6H,CAAAA,CAAAA,CAAE,cAAe,EAAA,CACjB,IAAM6G,CACJnL,CAAAA,CAAAA,EAAQ,IAAQQ,EAAAA,CAAAA,CAAOR,CAAI,CAAK,EAAA,IAAA,CAAOQ,EAAOR,CAAI,CAAA,CAAE,MAAQ,MAC9D,CAAA,GAAImL,CAAQ,EAAA,IAAA,EAAQD,GAA2B,IAAQlL,EAAAA,CAAAA,EAAQ,IAAM,CAAA,CACnE,GAAM,CAAE,OAAA,CAAAqL,CAAS,CAAA,KAAA,CAAAnI,CAAM,CAAI,CAAA,MAAMgI,EAAwB,CACvD,IAAA,CAAAC,EAEA,QAAUnL,CAAAA,CACZ,CAAC,CAAA,CACKmG,GAAQ1J,CAAA+D,CAAAA,CAAAA,CAAOR,CAAI,CAAA,GAAX,YAAAvD,CAAc,CAAA,KAAA,CACxBsiB,CACFA,EAAAA,CAAAA,CAAS,CACP,OAAA1T,CAAAA,CAAAA,CACA,KAAAlF,CAAAA,CAAAA,CACA,MAAAjD,CACF,CAAC,CAECmI,CAAAA,CAAAA,EAASgH,EAAM/N,CAAC,EACtB,CACF,CAAA,CAAA,CACA,OACE8G,CAAY,EAAA,IAAA,EAAA,CACZlI,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAQkI,CAAa,CAAA,GAAA,IAAA,EAAA,CACrBlI,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAQkI,MAAc,EAIhBlI,EAAAA,CAAAA,EAAA,IAAAA,EAAAA,CAAAA,CAAO,iBAAkBA,CAAA,EAAA,IAAA,EAAAA,CAAO,CAAA,WAAA,CAAA,EACtCA,GAAS,IAHF,CAAA,IAAA,CAIP3G,GAAC0jB,CAAAA,EAAAA,CAA6B,SAA7B,CACC,KAAA,CAAO,CAAE,UAAAzN,CAAAA,CAAAA,CAAY,SAAUxS,CAAK,CAAA,CAEpC,QAAAzD,CAAAA,GAAAA,CAAC,OAAAY,CAAAL,CAAAA,CAAAA,CAAA,CACC,GAAA,CAAKG,EACL,YAAcmV,CAAAA,CAAAA,CACd,QAAW9N,CAAAA,CAAAA,EAAM,CACf8b,CAAa9b,CAAAA,CAAC,EAChB,CACI3H,CAAAA,CAAAA,CAAAA,CAAAA,CANL,CAQE,QAAAL,CAAAA,CAAAA,CAAAA,CACH,CACF,CAAA,CAEJ,CC9FO,SAAS+jB,EAAAA,CAAsBrjB,EAAkC,CACtE,IAOIP,EAAAO,CANF,CAAA,CAAA,WAAA,CAAA8Q,EAAc,EACd,CAAA,QAAA,CAAAzN,CACA,CAAA,KAAA,CAAA8F,EACA,sBAAAma,CAAAA,CAAAA,CACA,IAAAvgB,CAAAA,CAtBJ,EAwBMtD,CADCE,CAAAA,CAAAA,CAAAC,CACDH,CAAAA,CAAAA,CADC,CALH,aACA,CAAA,UAAA,CACA,QACA,wBACA,CAAA,MAAA,CAAA,CAAA,CAGI,CAAE,UAAA+V,CAAAA,CAAAA,CAAY,QAAApH,CAAAA,CAAS,EAAIoB,UAAWyT,CAAAA,EAA4B,CACpEM,CAAAA,CAAAA,CAAmBzS,EACvB,OAAIwS,CAAAA,EAA0BlV,CAC5BmV,GAAAA,CAAAA,CAAmBD,EAAuBlV,CAAQ,CAAA,CAAA,CAE7CA,GAAY,IAAO,CAAA,IAAA,CACxB7O,IAACa,EAAAN,CAAAA,CAAAA,CAAA,CACC,IAAA,CAAK,OACL,IAAMsO,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,CAAAA,CAAY,2BAClB,GAAKoH,CAAAA,CAAAA,CACL,QAAUnS,CAAAA,CAAAA,GAAa,OAAYA,CAAW,CAAA,IAAA,CAC9C,YAAakgB,CACb,CAAA,YAAA,CAAcpa,GACVxJ,CACN,CAAA,CAEJ,CCpBO,SAAS6jB,EAAAA,CAA6BxjB,CAAkC,CAAA,CAC7E,IAA4DP,CAAAO,CAAAA,CAAAA,CAApD,CAAAV,QAAAA,CAAAA,CAAAA,CAAU,MAAAkB,CAAQ,CAAA,QAAA,CAAU,OAAAsP,CAAAA,CAAAA,CAAS,KAAA9M,CAtB/C,CAAA,CAsB8DvD,CAANE,CAAAA,CAAAA,CAAAC,EAAMH,CAAN,CAAA,CAA9C,UAAU,CAAA,OAAA,CAAkB,UAAS,MACvC,CAAA,CAAA,CAAA,CACJ,MAAAyG,CACA,CAAA,0BAAA,CAAAqI,EACA,mBAAAuU,CAAAA,CAAAA,CACA,oBAAA9W,CAAAA,CACF,EAAIwD,UAAWX,CAAAA,CAAY,CACvBT,CAAAA,CAAAA,CAAWpL,EAAQ,CAAGA,EAAAA,CAAI,CAAoB,KAAA,CAAA,CAAA,MAAA,CAC9C,CAACA,CAAQkD,EAAAA,CAAAA,EAAS,gBAAiBA,CAASA,EAAAA,CAAAA,CAAM,cAAgB,EACpEkI,CAAAA,CAAAA,CAAW,aACHpL,CAAAA,CAAAA,GAAMoL,EAAW,gBAC3B,CAAA,CAAA,IAAMD,CAAOjI,CAAAA,CAAAA,EAASkI,EAAWlI,CAAMkI,CAAAA,CAAQ,CAAI,CAAA,EAAA,CAC/C2U,EAAO,EAAE7c,CAAAA,EAASiI,GAChB0E,CAAc,CAAA,IAA2B/T,EAAA,IAnCjD,CAAA,IAAA,CAAA,WAAA,CAAA,IAAAW,CAoCI,CAAA,GAAIqjB,GAAuB1U,CAAa,GAAA,gBAAA,EAAoBlI,CAAS,EAAA,IAAA,CAAM,CACzE,OAAQ,CAAA,GAAA,CAAI,wBAAwB,CAAA,CACpC,IAAM0B,CAAKnI,CAAAA,CAAAA,CAAAA,CAAAyG,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAO,cAAP,GAAA,IAAA,CAAA,MAAA,CAAAzG,CAAuB,CAAA,EAAA,CAElC,GADA,OAAQ,CAAA,GAAA,CAAI,IAAMmI,CAAAA,CAAE,EAChBA,CAAM,EAAA,IAAA,CAAM,CACd,IAAM6b,EAAM,MAAMzX,CAAAA,CAAqB,CACrC,QAAU,CAAA,gBAAA,CACV,YAAa,QACb,CAAA,UAAA,CAAY,CACV,EAAA,CAAApE,EACA,oBAAsB,CAAA,EACxB,CAAA,CACA,MAAA1B,CACF,CAAC,CACG4J,CAAAA,CAAAA,EAAW,MAAQ2T,CAAO,EAAA,IAAA,EAAM3T,EAAQ2T,CAAG,EACjD,CACF,CAAWrV,KAAAA,GAAAA,CAAAA,EAAY,IAAQG,EAAAA,CAAAA,EAA8B,KAAM,CACjE,IAAMtP,CAAW,CAAA,MAAMsP,EAA2B,CAAE,QAAA,CAAAH,CAAS,CAAC,EAC1D0B,CAAW,EAAA,IAAA,EAAQ7Q,GAAY,IAAM6Q,EAAAA,CAAAA,CAAQ7Q,CAAQ,EAC3D,CACF,CACA,CAAA,CAAA,GAAI6jB,GAAuB9f,CAAS,GAAA,WAAA,CAAa,CAE/C,GAAI,CADiBsf,EAAe,CAAA,CAAE,KAAApc,CAAAA,CAAM,CAAC,CAC1B,CAAA,OAAO,IAC1B6c,CAAAA,CAAAA,CAAO,MACP,IAAMtiB,CAAAA,CAAcN,CAAAL,CAAAA,CAAAA,CAAA,GACfH,CADe,CAAA,CAAA,CAElB,KAAAa,CAAAA,CAAAA,CACA,YAAAqS,CACA,CAAA,QAAA,CAAAzE,CACF,CAAA,CAAA,CACA,OAAO9O,CACLC,CAAAA,GAAAA,CAACC,EAAAW,CAAAL,CAAAA,CAAAA,CAAA,GAAWW,CAAX,CAAA,CAAA,CAAyB,QAAAnB,CAAAA,CAAAA,CAAAA,CAAS,EACjCyjB,CAAO,CAAA,IAAA,CACTxjB,GAAC,CAAA,QAAA,CAAAY,EAAAL,CAAA,CAAA,CACC,IAAK,CAAA,QAAA,CACL,QAAS,IAAM,CACb+S,IACF,CAAA,CAAA,CACIlT,GALL,CAOE,QAAA,CAAAa,CACH,CAAA,CAAA,CAEJ,CACA,IAAMC,CAAAA,CAAcN,CAAAL,CAAAA,CAAAA,CAAA,GACfH,CADe,CAAA,CAAA,CAElB,KAAAa,CAAAA,CAAAA,CACA,YAAAqS,CACA,CAAA,QAAA,CAAAzE,CACF,CACA,CAAA,CAAA,OAAO9O,EACLC,GAACC,CAAAA,CAAAA,CAAAW,CAAAL,CAAAA,CAAAA,CAAA,GAAWW,CAAX,CAAA,CAAA,CAAyB,QAAAnB,CAAAA,CAAAA,CAAAA,CAAS,EACjCyjB,CAAO,CAAA,IAAA,CACTxjB,GAAC,CAAA,QAAA,CAAAY,EAAAL,CAAA,CAAA,CACC,KAAK,QACL,CAAA,OAAA,CAAS,IAAM,CACb+S,CAAAA,GACF,CAAA,CAAA,CACIlT,GALL,CAOE,QAAA,CAAAa,CACH,CAAA,CAAA,CAEJ,CCzFO,SAASkjB,GAAuB1jB,CAA2B,CAAA,CAChE,IAA6CP,CAAAO,CAAAA,CAAAA,CAArC,UAAAV,CAAU,CAAA,KAAA,CAAAkB,CAAQ,CAAA,QAZ5B,EAY+Cf,CAANE,CAAAA,CAAAA,CAAAC,CAAMH,CAAAA,CAAAA,CAAN,CAA/B,UAAU,CAAA,OAAA,CAAA,CAAA,CACZgB,CAAcN,CAAAA,CAAAA,CAAAL,EAAA,EACfH,CAAAA,CAAAA,CAAAA,CADe,CAElB,KAAAa,CAAAA,CACF,GACA,OAAOlB,CAAAA,CACLC,GAACC,CAAAA,CAAAA,CAAAW,EAAAL,CAAA,CAAA,EAAA,CAAWW,CAAX,CAAA,CAAA,CAAyB,SAAAnB,CAAS,CAAA,CAAA,CAAA,CAEnCC,GAAC,CAAA,QAAA,CAAAY,EAAAL,CAAA,CAAA,CAAO,KAAK,QAAaH,CAAAA,CAAAA,CAAAA,CAAAA,CAAzB,CACE,QAAAa,CAAAA,CAAAA,CAAAA,CACH,CAEJ,CCHe,SAARmjB,GAAqC,CAC1C,OAAA,CAAAjJ,CACA,CAAA,GAAA,CAAA/T,EACA,oBAAAid,CAAAA,CAAAA,CACA,oBAAAC,CAAAA,CACF,EAAkB,CAChB,IAAMC,CAAiBtU,CAAAA,UAAAA,CAAckL,CAAO,CACtCqJ,CAAAA,CAAAA,CAAe,OAAQ,CAAA,GAAA,CAAI,WAAa,YACxC7G,CAAAA,CAAAA,CAAM,CAAe0G,YAAAA,EAAAA,CAAoB,kBAAkBC,CAAoB,CAAA,EAAA,CAAA,CAGrF,GADIld,CAAO,EAAA,IAAA,EAAQA,KAAOmd,CACtBnd,EAAAA,CAAAA,EAAO,IAAQmd,EAAAA,CAAAA,EAAkB,KAAM,OAAOA,CAAAA,CAClD,GAAIC,CAAAA,CAAc,QAAQ,KAAM7G,CAAAA,CAAG,CAC9B,CAAA,KAAA,MAAM,IAAI,KAAMA,CAAAA,CAAG,EACxB,OAAO4G,CACT,CCIO,SAASE,EAA0BvkB,CAAAA,CAAAA,CASZ,CATY,IAAAC,EAAAD,CACxC,CAAA,CAAA,OAAA,CAAAqN,EACA,aAAA1G,CAAAA,CAAAA,CACA,SAAA9G,CACA,CAAA,OAAA,CAAAwQ,CACA,CAAA,IAAA,CAAAmU,EAAO,KACP,CAAA,KAAA,CAAAzjB,CAAQ,CAAA,WAAA,CACR,aAAA0jB,CAAe,CAAA,YA/CjB,CAwC0CxkB,CAAAA,CAAAA,CAQrCM,EAAAJ,CARqCF,CAAAA,CAAAA,CAQrC,CAPH,SACA,CAAA,eAAA,CACA,WACA,SACA,CAAA,MAAA,CACA,OACA,CAAA,cAAA,CAAA,CAAA,CAGA,GAAM,CAAE,sBAAA,CAAAykB,CAAuB,CAAA,CAAIR,GAAiB,CAClD,OAAA,CAAS3C,EACT,CAAA,oBAAA,CAAsB,gCACtB,oBAAsB,CAAA,2BAAA,CACtB,IAAK,wBACP,CAAC,EACK,CAAE,WAAA,CAAAhf,CAAY,CAAA,CAAIwN,WAAWgF,CAAoB,CAAA,CACjD,CAACqH,CAAAA,CAASsC,CAAU,CAAI7N,CAAAA,QAAAA,CAAS,KAAK,CAAA,CACtCuC,EAAc,IAA2B/T,CAAAA,CAAA,sBAC7C,GAAIkD,CAAAA,EAAe,MAAQoE,CAAiB,EAAA,IAAA,CAAM,CAChD,IAAMge,EAAMriB,EAAIC,CAAAA,CAAW,CAC3B,CAAA,GAAA,CAAIoiB,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAK,KAAS,GAAA,IAAA,CAAM,CACtB,OAAQ,CAAA,KAAA,CAAM,uBAAuB,CACrC,CAAA,MACF,CACF,CACA,GAAID,CAA0B,EAAA,IAAA,CAAM,CAClC,OAAQ,CAAA,KAAA,CAAM,yCAAyC,CAAA,CACvD,MACF,CACAhG,CAAAA,CAAW,IAAI,CAAA,CACf,IAAMsF,CAAM,CAAA,MAAMU,CAAuB,CAAA,CACvC,cAAA/d,CACA,CAAA,OAAA,CAAA0G,CACF,CAAC,EACGgD,CAAW,EAAA,IAAA,EACbA,CAAQ2T,CAAAA,CAAG,EAEbtF,CAAW,CAAA,KAAK,EAClB,CAAA,CAAA,CACA,GAAI7e,CAAY,EAAA,IAAA,CAAM,CACpB,IAAMmB,CAAAA,CAAuCX,EAAA,CAC3C,OAAA,CAAAgN,CACA,CAAA,aAAA,CAAA1G,EACA,OAAA0J,CAAAA,CAAAA,CACA,IAAAmU,CAAAA,CAAAA,CACA,MAAAzjB,CACA,CAAA,YAAA,CAAA0jB,CACGlkB,CAAAA,CAAAA,CAAAA,CAAAA,CAEL,OAAOT,GAACC,CAAAA,CAAAA,CAAAW,EAAAL,CAAA,CAAA,EAAA,CAAWW,GAAX,CAAyB,QAAA,CAAAnB,CAAS,CAAA,CAAA,CAC5C,CACA,OAAQ2kB,CAAAA,CACN1kB,GAAC,CAAA,QAAA,CAAAY,EAAAL,CAAA,CAAA,CACC,OAAS,CAAA,IAAM,CACb+S,CAAY,GACd,EACA,QAAUgJ,CAAAA,CAAAA,CAAAA,CACN7b,GALL,CAOE,QAAA,CAAA6b,CAAUqI,CAAAA,CAAAA,CAAe1jB,GAC5B,CATa,CAAA,IAWjB,CCrFA,IAAM8K,GAA8C,CAAC,WAAW,CAEnD+Y,CAAAA,EAAAA,CAA4D,CACvE,MAAQ,CAAA,EACV,CAqBA,CAAA,SAAsBF,GAEpBtlB,CAKmC,CAAA,CAAA,OAAAC,CAAA,CAAA,IAAA,CAAA,SAAA,CAAA,UALnC,CACA,MAAAwD,CAAAA,CAAAA,CACA,aAAA8D,CAAAA,CAAAA,CACA,QAAA0G,CACA,CAAA,QAAA,CAAA3F,CACF,CAAA,CAAqC,CACnC,GAAI,CACF,GAAI7E,CAAU,EAAA,IAAA,CAAM,MAAM,IAAI,KAAA,CAAM,uCAAuC,CAAA,CAC3E,IAAMgE,CAAM7D,CAAAA,CAAAA,CAAOH,CAAM,CAAA,CAEnBqH,EAAwC,CAC5C,QAAA,CAAUmD,CACZ,CAAA,CACA,OAAI1G,CAAiB,EAAA,IAAA,GACnBuD,EAAW,cAAiBvD,CAAAA,CAAAA,CAAAA,CAE9B,MAAME,CAAI,CAAA,sBAAA,CAAuB,MAAOqD,CAAAA,CAAU,EAC3C,CAAE,OAAA,CAAS,CAAK,CAAA,CACzB,OAAS/F,CAAY,CAAA,CACnB,IAAML,CAAAA,CAASkG,GAAU,CACvB,KAAA,CAAA7F,EACA,QAAU,CAAA,wBACZ,CAAC,CACD,CAAA,OAAIuD,CAAY,EAAA,IAAA,EACdA,EAAS,CACP,IAAA,CAAM,WACN,CAAA,OAAA,CAAS,CACP,MAAA5D,CAAAA,CACF,CACF,CAAC,EAEI,CAAE,OAAA,CAAS,KAAM,CAC1B,CACF,CAEe,CAAA,CAAA,SAAR+gB,EACL9iB,CAAAA,CAAAA,CACAoH,EAC0B,CAC1B,OAAOjH,EAILH,CAAAA,CAAAA,CAAOoH,EAAS0C,EAAU,CAC9B,CCtEO,SAASiZ,EAA8B,CAAA,CAC5C,QAAAjlB,CAAAA,CACF,EAA8B,CAC5B,IAAMgD,CAASqhB,CAAAA,EAAAA,CAAiB,CAC9B,OAASnP,CAAAA,CAAAA,CACT,oBAAsB,CAAA,eAAA,CACtB,qBAAsB,+BACtB,CAAA,GAAA,CAAK,aACP,CAAC,CAAA,CACK,CAAChT,CAAO2F,CAAAA,CAAQ,CAAIuN,CAAAA,UAAAA,CACxB4P,GACAD,EACF,CAAA,CACMlb,CAA2ChJ,CAAAA,CAAAA,CAAAL,EAAA,EAC5C0B,CAAAA,CAAAA,CAAAA,CAD4C,CAE/C,sBAAA,CAA+B3C,GAA4BC,CAAA,CAAA,IAAA,CAAA,CAA5BD,GAA4B,UAA5B,CAAE,cAAAuH,CAAe,CAAA,OAAA,CAAA0G,CAAQ,CAAA,CAAG,CACzD,OAAMqX,MAAAA,EAAAA,CAAuB,CAC3B,aAAA,CAAA/d,EACA,OAAA0G,CAAAA,CAAAA,CACA,MAAAxK,CAAAA,CAAAA,CACA,SAAA6E,CACF,CAAC,CACL,CAAA,CAAA,CAAA,CAAA,CACA,OACE5H,GAACyhB,CAAAA,EAAAA,CAA2B,QAA3B,CAAA,CAAoC,MAAO7X,CACzC,CAAA,QAAA,CAAA7J,CACH,CAAA,CAEJ,CC1BA,IAAMqB,EAAAA,CAAkC,CACtC,SAAW,CAAA,CAAA,CACX,SAAW,CAAA,GACX,eAAiB,CAAA,EACjB,CAAA,cAAA,CAAgB,EAClB,CAAA,CAEM6jB,EAA0BrlB,CAAAA,aAAAA,CAAsCwB,EAAO,CAEtE8jB,CAAAA,EAAAA,CAAQD,GCTR,SAASE,GAAS1kB,CAA2B,CAAA,CAClD,GAAM,CAAE,KAAAgD,CAAO,CAAA,MAAA,CAAQ,QAAA1D,CAAAA,CAAS,EAAIU,CAC9B,CAAA,CAAE,UAAA6F,CAAU,CAAA,CAAI2J,WAAWiO,EAAe,CAAA,CAC1C,CAAE,SAAA,CAAWkH,CAAkB,CAAInV,CAAAA,UAAAA,CAAWiV,EAAuB,CAAA,CACrElU,EACJoU,CAAqBA,EAAAA,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAmB,QAAS,CAC7CA,CAAAA,CAAAA,CACA9e,CACA6K,CAAAA,CAAAA,CAAaH,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CACf,MAAQqU,CAAAA,CAAAA,EAAAA,CAAMA,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAG,SAAc5hB,IAAAA,CAAAA,CAAAA,CAChC,IAAI,CAAC8C,CAAAA,CAAUzB,CAAGwgB,CAAAA,CAAAA,GAAU,CA/BjC,IAAAplB,CAAAA,CAsCM,IALEqG,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAU,SAAc,IAAA,SAAA,EACxBzB,CAAI,CAAA,CAAA,EAAA,CAAA,CACJ5E,EAAAolB,CAAMxgB,CAAAA,CAAAA,CAAI,CAAC,CAAA,GAAX,YAAA5E,CAAc,CAAA,WAAA,IAAgBqG,CAAS,CAAA,WAAA,EAAA,CAIvCA,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAU,aAAc,YACxBA,GAAAA,CAAAA,EAAA,MAAAA,CAAU,CAAA,kBAAA,CAAA,EAAA,CACVA,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAU,kBAAsB,GAAA,CAAA,CAEhC,OAAO,IAAA,CACT,IAAMgf,CAA4C,CAAA,CAChD,QAAAhf,CAAAA,CACF,EACA,OACEvG,GAAAA,CAACoe,GAAwB,QAAxB,CAAA,CAAoD,MAAOmH,CACzD,CAAA,QAAA,CAAAxlB,CADoCwG,CAAAA,CAAAA,CAAAA,EAAA,YAAAA,CAAU,CAAA,EAEjD,CAEJ,CAAA,CAAA,CACF,OAAOvG,GAAAqR,CAAAA,QAAAA,CAAA,CAAG,QAAA,CAAAF,EAAW,CACvB,CC7Ce,SAARqU,EAAAA,CAAuCC,EAKP,CACrC,GAAM,CAAE,MAAA,CAAAC,EAAQ,IAAAjiB,CAAAA,CAAAA,CAAM,IAAAkiB,CAAK,CAAA,IAAA,CAAAC,CAAK,CAAIH,CAAAA,CAAAA,CAChCthB,CACJ,CAAA,OAAAU,GAAK8gB,CAAG,CAAA,CAAE,OAAS7gB,CAAAA,CAAAA,EAAc,CAC/B,IAAMsC,CAAAA,CAAMtC,CAAE,CAAA,WAAA,GACR+gB,CAAU,CAAA,CAAA,EAAGH,CAAM,CAAIjiB,CAAAA,EAAAA,CAAI,IAAImiB,CAAI,CAAA,CAAA,CAAG,WAAY,EAAA,CAClDE,EAAU,CAAGriB,EAAAA,CAAI,CAAImiB,CAAAA,EAAAA,CAAI,IAAIF,CAAM,CAAA,CAAA,CAAG,WAAY,EAAA,CAClDK,EAAY,CAAGL,EAAAA,CAAM,IAAIE,CAAI,CAAA,CAAA,EAAIniB,CAAI,CAAG,CAAA,CAAA,WAAA,EACxCuiB,CAAAA,CAAAA,CAAa,GAAGJ,CAAI,CAAA,CAAA,EAAIniB,CAAI,CAAA,CAAA,EAAIiiB,CAAM,CAAG,CAAA,CAAA,WAAA,EAC3Cte,CAAAA,CAAAA,GAAQye,IACV1hB,CAAIwhB,CAAAA,CAAAA,CAAI7gB,CAAC,CAAA,CAAA,CAEPsC,IAAQ0e,CACV3hB,GAAAA,CAAAA,CAAIwhB,CAAI7gB,CAAAA,CAAC,GAEPsC,CAAQ2e,GAAAA,CAAAA,GACV5hB,CAAIwhB,CAAAA,CAAAA,CAAI7gB,CAAC,CAEPsC,CAAAA,CAAAA,CAAAA,GAAQ4e,CACV7hB,GAAAA,CAAAA,CAAIwhB,EAAI7gB,CAAC,CAAA,EAEb,CAAC,CACMX,CAAAA,CACT,CC3BO,SAAS8hB,GAAexlB,CAA2B,CAAA,CACxD,IAAuDP,CAAAA,CAAAO,EAA/C,CAAAilB,MAAAA,CAAAA,CAAAA,CAAS,WAAa,CAAA,IAAA,CAAAjiB,EAAO,OAXvC,CAAA,CAWyDvD,EAANE,CAAAC,CAAAA,CAAAA,CAAMH,EAAN,CAAzC,QAAA,CAAsB,MACxB,CAAA,CAAA,CAAA,CAAE,SAAAqG,CAAS,CAAA,CAAI0J,UAAWmO,CAAAA,EAAuB,EACjD,CAAC8H,CAAAA,CAAOC,CAAQ,CAAA,CAAIpV,SAAS,EAAE,CAAA,CACrCE,UAAU,IAAM,CACd,GAAI1K,CAAU,CAAA,CACZ,IAAMnG,CAAAA,CAAIolB,GAAU,CAClB,IAAA,CAAM,QACN,CAAA,IAAA,CAAA/hB,EACA,MAAAiiB,CAAAA,CAAAA,CACA,GAAKnf,CAAAA,CACP,CAAC,CACD4f,CAAAA,CAAAA,CAAS/lB,CAAC,EACZ,CACA,OAAO,IAAY,CACjB+lB,CAAAA,CAAS,EAAE,EACb,CACF,CAAG,CAAA,CAAC5f,CAAQ,CAAC,CAAA,CACb,IAAMrF,CAAAA,CAAcX,EAAA,CAClB,KAAA,CAAA2lB,GACG9lB,CAEL,CAAA,CAAA,OAAOK,EAAM,QACXT,CAAAA,GAAAA,CAACC,CAAAW,CAAAA,CAAAA,CAAAL,EAAA,EAAWW,CAAAA,CAAAA,CAAAA,CAAX,CAAyB,QAAA,CAAAT,EAAM,QAAS,CAAA,CAAA,CAAA,CAEzCT,GAAC,CAAA,MAAA,CAAAY,EAAAL,CAAA,CAAA,EAAA,CAASH,GAAT,CAAa,QAAA,CAAA8lB,GAAM,CAExB,CCrBO,SAASE,EAAalmB,CAAAA,CAAAA,CAIN,CAJM,IAAAC,EAAAD,CAC3B,CAAA,CAAA,IAAA,CAAAuD,EAAO,UACP,CAAA,QAAA,CAAA1D,CAlBF,CAgB6BI,CAAAA,CAAAA,CAGxBC,CAAAC,CAAAA,CAAAA,CAHwBF,EAGxB,CAFH,MAAA,CACA,UAGA,CAAA,CAAA,CAAA,GAAM,CAAE,QAAAoG,CAAAA,CAAS,CAAI0J,CAAAA,UAAAA,CAAWmO,EAAuB,CACjDiI,CAAAA,CAAAA,CAAY9f,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAW9C,CACvBvC,CAAAA,CAAAA,CAAAA,CAAcX,CAAA,CAAA,CAClB,SAAAgG,CACA,CAAA,OAAA,CAAS8f,CACNjmB,CAAAA,CAAAA,CAAAA,CAAAA,CAEL,OAAOL,CACLC,CAAAA,GAAAA,CAACC,CAAAW,CAAAA,CAAAA,CAAAL,EAAA,EAAWW,CAAAA,CAAAA,CAAAA,CAAX,CAAyB,QAAAnB,CAAAA,CAAAA,CAAAA,CAAS,EAEnCC,GAAC,CAAA,GAAA,CAAAY,CAAAL,CAAAA,CAAAA,CAAA,GAAMH,CAAN,CAAA,CAAA,CAAU,QAAAimB,CAAAA,CAAAA,CAAAA,CAAU,CAEzB,CCVO,SAASC,EAA+B7lB,CAAAA,CAAAA,CAAuB,CACpE,IAA2DP,CAAAA,CAAAO,EAAnD,CAAAkY,SAAAA,CAAAA,CAAAA,CAAW,UAAAuC,CAAAA,CAAAA,CAAa,OAAQ,QAAAnb,CAAAA,CAxB1C,CAwB6DG,CAAAA,CAAAA,CAANE,EAAAC,CAAMH,CAAAA,CAAAA,CAAN,CAA7C,WAAA,CAAW,aAAqB,UACxC,CAAA,CAAA,CAAA,OACEF,IAACib,EAAAra,CAAAA,CAAAA,CAAAL,EAAA,CACC,QAAA,CAAS,UACT,CAAA,SAAA,CAAWoY,EACX,UAAYuC,CAAAA,CAAAA,CACZ,OAASkD,CAAAA,EAAAA,CAAAA,CACLhe,GALL,CAOE,QAAA,CAAAL,CACH,CAAA,CAAA,CAEJ,CCfO,SAASwmB,EAAc9lB,CAAAA,CAAAA,CAAkC,CArBhE,IAAAN,CAAAA,CAAA6G,CAsBE,CAAA,IAAwC9G,EAAAO,CAAhC,CAAA,CAAA,WAAA,CAAA8Q,CAAa,CAAA,QAAA,CAAAxR,CAtBvB,CAsB0CG,CAAAA,CAAAA,CAANE,EAAAC,CAAMH,CAAAA,CAAAA,CAAN,CAA1B,aAAa,CAAA,UAAA,CAAA,CAAA,CACf,CAAE,QAAA,CAAAqG,CAAS,CAAI0J,CAAAA,UAAAA,CAAWmO,EAAuB,CAAA,CACjDoI,EAAWjgB,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAU,CAAA,SAAA,CACvBkgB,EAAMlgB,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAU,SACfkgB,CAAAA,CAAAA,GACClV,GAAA,IAAAA,EAAAA,CAAAA,CAAciV,CAChBC,CAAAA,CAAAA,CAAAA,CAAMlV,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAciV,CAEpBC,CAAAA,CAAAA,CAAAA,CAAMD,IAAa,YAAexL,CAAAA,EAAAA,CAAwBD,EAG9D,CAAA,CAAA,IAAM2L,EAAanmB,CAAA,CAAA,CACjB,SAAAgG,CACA,CAAA,GAAA,CAAAkgB,EACA,WAAAlV,CAAAA,CAAAA,CAAAA,CACGnR,CAEL,CAAA,CAAA,OAAOL,EACLC,GAACC,CAAAA,CAAAA,CAAAW,CAAAL,CAAAA,CAAAA,CAAA,GAAWmmB,CAAX,CAAA,CAAA,CAAwB,QAAA3mB,CAAAA,CAAAA,CAAAA,CAAS,EAC/B0mB,CACHzmB,CAAAA,GAAAA,CAAC,KAAAO,CAAAA,CAAAA,CAAA,CACC,aAAa,CAAA,CAAA,gBAAA,EAAA,CAAmBJ,CAAAoG,CAAAA,CAAAA,EAAA,YAAAA,CAAU,CAAA,QAAA,GAAV,IAAApG,CAAAA,CAAAA,CAAsB,EAAE,CACxD,CAAA,CAAA,GAAA,CAAA,CAAK6G,CAAAT,CAAAA,CAAAA,EAAA,YAAAA,CAAU,CAAA,IAAA,GAAV,KAAAS,CAAkB,CAAA,EAAA,CACvB,IAAKyf,CACDrmB,CAAAA,CAAAA,CAAAA,CACN,CANS,CAAA,IAQb,CClCO,SAASumB,EAAAA,CAAalmB,EAA2B,CAfxD,IAAAP,EAgBE,GAAM,CAAE,SAAAqG,CAAS,CAAA,CAAI0J,UAAWmO,CAAAA,EAAuB,EACjDnd,CAAQsF,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAU,KAClBrF,CAAcX,CAAAA,CAAAA,CAAA,CAClB,KAAA,CAAAU,EACA,QAAAsF,CAAAA,CAAAA,CAAAA,CACG9F,GAEL,OAAOA,CAAAA,CAAM,SACXT,GAACC,CAAAA,CAAAA,CAAAW,CAAAL,CAAAA,CAAAA,CAAA,GAAWW,CAAX,CAAA,CAAA,CAAyB,QAAAT,CAAAA,CAAAA,CAAM,UAAS,CAEzCT,CAAAA,GAAAA,CAAC,GAAAY,CAAAA,CAAAA,CAAAL,EAAA,CAAE,aAAA,CAAa,CAAkBL,eAAAA,EAAAA,CAAAA,CAAAA,CAAAqG,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAU,QAAV,GAAA,IAAA,CAAArG,EAAsB,EAAE,CAAA,CAAA,CAAA,CAAQO,CAAjE,CAAA,CAAA,CACE,SAAAQ,CACH,CAAA,CAAA,CAEJ,CCpBA,IAAMG,EAAAA,CAAkC,CACtC,cAAA,CAAgB,EAClB,CAAA,CAEMwlB,EACJhnB,CAAAA,aAAAA,CAAsCwB,EAAO,CAExCylB,CAAAA,EAAAA,CAAQD,ECff,CCFe,SAARE,GAAwBC,CAAsB,CAAA,CACnD,GAAI,CACF,OAAA,IAAA,CAAK,KAAMA,CAAAA,CAAG,EACP,CACT,CAAA,CAAA,MAAShf,CAAG,CAAA,CACV,OAAO,MACT,CACF,CDiBO,SAASif,GAAevmB,CAA2B,CAAA,CAxB1D,IAAAN,CAAAA,CAyBE,IAQID,CAAAO,CAAAA,CAAAA,CAPF,CAAA+C,IAAAA,CAAAA,CAAAA,CACA,SAAAzD,CACA,CAAA,cAAA,CAAAknB,CACA,CAAA,GAAA,CAAA7f,EACA,UAAA8T,CAAAA,CAAAA,CAAa,IACb,CAAA,YAAA,CAAAgM,EAAe,IA/BnB,CAAA,CAiCMhnB,CADCE,CAAAA,CAAAA,CAAAC,EACDH,CADC,CAAA,CANH,MACA,CAAA,UAAA,CACA,iBACA,KACA,CAAA,YAAA,CACA,cAGI,CAAA,CAAA,CAAA,CAAE,eAAA0N,CAAgB,CAAA,OAAA,CAAAuZ,CAAQ,CAAIlX,CAAAA,UAAAA,CAAW4W,EAA6B,CACtE3lB,CAAAA,CAAAA,CAAcN,CAAAL,CAAAA,CAAAA,CAAA,GACfE,CADe,CAAA,CAAA,CAElB,cAAAmN,CAAAA,CACF,GACMwZ,CAAalM,CAAAA,CAAAA,CACbmM,CAAeH,CAAAA,CAAAA,CACfjmB,EAAQuC,CAAQ,EAAA,IAAA,CAAA,CAAOrD,EAAAyN,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAgB,OAAhB,GAAA,IAAA,CAAA,MAAA,CAAAzN,CAA0BqD,CAAAA,CAAAA,CAAAA,CAAQ,GACzD2N,CACJgW,CAAAA,CAAAA,EAAWL,EAAO,CAAA,IAAA,CAAK,UAAUlZ,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAgB,CAAA,OAAO,CAAC,CACvD1J,CAAAA,EAAAA,CAAI0J,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAgB,QAAS,CAAChE,CAAAA,CAAexC,CAEzCkgB,GAAAA,IAAAA,CAACF,EAAAxmB,CAAAL,CAAAA,CAAAA,CAAA,EAAyBH,CAAAA,CAAAA,CAAAA,CAAzB,CACE,QAAGgH,CAAAA,CAAAA,CAAAA,EAAAA,CAAG,CACPpH,CAAAA,CAAAA,CAAAA,GAAAA,CAAC,QAAK,SAAWinB,CAAAA,CAAAA,CAAiB,YAAGrd,CAAK,CAAA,CAAA,CAAG,KAF9BxC,CAGjB,CAEH,CACC5D,CAAAA,CAAAA,EAAQ,OACVoK,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAgB,CAAA,OAAA,GAAW,MAC3BpK,CAAQoK,IAAAA,CAAAA,CAAe,OACvB0Z,CAAAA,IAAAA,CAACF,EAAAxmB,CAAAL,CAAAA,CAAAA,CAAA,GAAyBH,CAAzB,CAAA,CAAA,CACE,aAAGoD,CAAI,CAAA,CAAA,CAAA,CACRxD,GAAC,CAAA,MAAA,CAAAY,EAAAL,CAAA,CAAA,CAAK,SAAW0mB,CAAAA,CAAAA,CAAAA,CAAoB7mB,GAApC,CACE,QAAA,CAAAa,CAAA,EAAA,IAAA,CAAAA,EAAS,EACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAJemG,CAKjB,CACE,CAAA,IAAA,CACN,OAAOrH,CACLC,CAAAA,GAAAA,CAACC,CAAAW,CAAAA,CAAAA,CAAAL,EAAA,EAAWW,CAAAA,CAAAA,CAAAA,CAAX,CAAyB,QAAA,CAAAT,EAAM,QAAS,CAAA,CAAA,CAAA,CAEzCT,GAACqnB,CAAAA,CAAAA,CAAA,CAAc,QAAAlW,CAAAA,CAAAA,CAAW,CAE9B,CE3CO,SAASoW,EAAAA,CAAgB9mB,CAA2B,CAAA,CACzD,IAUIP,CAAAO,CAAAA,CAAAA,CATF,CAAA0N,WAAAA,CAAAA,CAAAA,CACA,MAAAqZ,CACA,CAAA,QAAA,CAAAznB,CACA,CAAA,QAAA,CAAA0nB,EAAW,IACX,CAAA,OAAA,CAAAN,CACA,CAAA,SAAA,CAAAtX,EACA,eAAA6X,CAAAA,CAAAA,CAAkB,IAClB,CAAA,cAAA,CAAAC,CAjCJ,CAmCMznB,CAAAA,CAAAA,CADCE,EAAAC,CACDH,CAAAA,CAAAA,CADC,CARH,aACA,CAAA,OAAA,CACA,UACA,CAAA,UAAA,CACA,UACA,WACA,CAAA,iBAAA,CACA,gBAGI,CAAA,CAAA,CAAA,CAAE,SAAAqG,CAAS,CAAA,CAAI0J,UAAWmO,CAAAA,EAAuB,EACjDwJ,CACJrhB,CAAAA,CAAAA,EAAY,MAAOA,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAU,iBAAqB,GAAA,EAAK,CAAA,GACnDshB,CAAkBH,CAAAA,CAAAA,CAClBpb,CAAUsb,CAAAA,CAAAA,CACb,OAAQzb,CACHgb,EAAAA,CAAAA,CAAgB,IAEbhb,CAAAA,CAAAA,CAAE,WAAY,CAAA,EAAA,GAAOgC,CAC7B,CACA,CAAA,GAAA,CAAI,CAAChC,CAAGrH,CAAAA,CAAAA,GAAM,CACb,IAAMgjB,EAAYL,CAChBznB,CAAAA,GAAAA,CAAC6nB,CAAA,CAAA,CAAgB,UAAWF,CACzB,CAAA,QAAA,CAAAH,CAASrb,EAAAA,CAAAA,CAAE,KACd,CACE,CAAA,IAAA,CACE4b,CAAa,CAAA,CACjB,eAAgB5b,CAChB,CAAA,OAAA,CAAAgb,CACF,CAAA,CACA,OACEG,IAAC,CAAA,KAAA,CAAA1mB,CAAAL,CAAAA,CAAAA,CAAA,CAAI,SAAWsP,CAAAA,CAAAA,CAAAA,CAAuBzP,CAAtC,CAAA,CAAA,CACE,UAAA0nB,CACD9nB,CAAAA,GAAAA,CAAC6mB,GAA8B,QAA9B,CAAA,CAAuC,MAAOkB,CAC5C,CAAA,QAAA,CAAAhoB,CACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAJ8B+E,CAKhC,CAEJ,CAAC,CACH,CAAA,OAAO9E,IAAAqR,QAAA,CAAA,CAAG,QAAA/E,CAAAA,CAAAA,CAAQ,CACpB,CCxCO,SAAS0b,EAAAA,CAAiBvnB,EAA2B,CA1B5D,IAAAN,CA2BE,CAAA,IAA+DD,EAAAO,CAAvD,CAAA,CAAA,GAAA,CAAAwnB,CAAM,CAAA,EAAA,CAAI,SAAAC,CAAW,CAAA,KAAA,CAAO,iBAAAC,CA3BtC,CAAA,CA2BiEjoB,EAANE,CAAAC,CAAAA,CAAAA,CAAMH,CAAN,CAAA,CAAjD,MAAU,UAAkB,CAAA,kBAAA,CAAA,CAAA,CAC9B,CAAE,QAAA,CAAAqG,CAAS,CAAI0J,CAAAA,UAAAA,CAAWmO,EAAuB,CAAA,CACjD,CAAE,cAAAgK,CAAAA,CAAe,CAAInY,CAAAA,UAAAA,CAAWiO,EAAe,CAC/C5R,CAAAA,CAAAA,CAAuB,EAAC,CAC9B,QAAS+b,CAAI,CAAA,CAAA,CAAGA,CAAKJ,EAAAA,CAAAA,CAAKI,IACxB/b,CAAQ,CAAA,IAAA,CACNtM,GAAC,CAAA,QAAA,CAAA,CAAe,MAAO,CAAGqoB,EAAAA,CAAC,GACxB,QAAAA,CAAAA,CAAAA,CAAAA,CADUA,CAEb,CACF,CAAA,CAEF,IAAMC,CAAAA,CAAgBvgB,GAAkD,CACtE,IAAM0F,CAAW,CAAA,MAAA,CAAO1F,EAAE,MAAO,CAAA,KAAK,CAClCqgB,CAAAA,CAAAA,EAAkB7hB,GACpB6hB,CAAe7hB,CAAAA,CAAAA,CAAS,GAAIkH,CAAU0a,CAAAA,CAAgB,EAE1D,CACM1a,CAAAA,CAAAA,CAAWlH,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAU,QACrBrF,CAAAA,CAAAA,CAAcX,CAAA,CAAA,CAClB,aAAA+nB,CACA,CAAA,QAAA,CAAA7a,CACA,CAAA,QAAA,CAAAlH,GACG9F,CAEL,CAAA,CAAA,OAAOA,EAAM,QACXT,CAAAA,GAAAA,CAACC,EAAAW,CAAAL,CAAAA,CAAAA,CAAA,EAAWW,CAAAA,CAAAA,CAAAA,CAAX,CAAyB,QAAAT,CAAAA,CAAAA,CAAM,QAAS,CAAA,CAAA,CAAA,CACvCynB,EACFloB,GAAC,CAAA,MAAA,CAAAY,CAAAL,CAAAA,CAAAA,CAAA,GAASH,CAAT,CAAA,CAAA,CAAa,SAAAqN,CAAS,CAAA,CAAA,CAAA,CAEvBzN,IAAC,QAAAY,CAAAA,CAAAA,CAAAL,CAAA,CAAA,CACC,cAAagG,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAU,CAAA,QAAA,CACvB,OAAOpG,CAAAoG,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAU,OAAV,IAAApG,CAAAA,CAAAA,CAAkB,GACzB,KAAOsN,CAAAA,CAAAA,CACP,SAAU6a,CACNloB,CAAAA,CAAAA,CAAAA,CAAAA,CALL,CAOE,QAAA,CAAAkM,GACH,CAEJ,CC9CO,SAASic,EAAmB9nB,CAAAA,CAAAA,CAA2B,CApB9D,IAAAP,CAAAA,CAqBE,GAAM,CAAE,KAAA,CAAAe,CAAQ,CAAA,QAAA,CAAU,QAAAsP,CAAQ,CAAA,CAAI9P,CAChC,CAAA,CAAE,SAAA8F,CAAS,CAAA,CAAI6d,EAAiB,CAAA,CACpC,QAAShG,EACT,CAAA,oBAAA,CAAsB,WACtB,oBAAsB,CAAA,oBAAA,CACtB,IAAK,UACP,CAAC,CACK,CAAA,CAAE,eAAAoK,CAAe,CAAA,CAAIvY,UAAWiO,CAAAA,EAAe,EAC/CuK,CAAgB1gB,CAAAA,CAAAA,EAAiD,CACrEA,CAAAA,CAAE,gBACEygB,CAAAA,CAAAA,EAAkB,IAAQjiB,EAAAA,CAAAA,EAAY,MACxCiiB,CAAejiB,CAAAA,CAAAA,CAAS,EAAE,CAAA,CACxBgK,GAAW,IAAMA,EAAAA,CAAAA,CAAQxI,CAAC,EAChC,EACM7G,CAAcX,CAAAA,CAAAA,CAAA,CAClB,YAAA,CAAAkoB,EACA,QAAAliB,CAAAA,CAAAA,CAAAA,CACG9F,GAEL,OAAOA,CAAAA,CAAM,SACXT,GAACC,CAAAA,CAAAA,CAAAW,CAAAL,CAAAA,CAAAA,CAAA,GAAWW,CAAX,CAAA,CAAA,CAAyB,QAAAT,CAAAA,CAAAA,CAAM,UAAS,CAEzCT,CAAAA,GAAAA,CAAC,GAAAY,CAAAA,CAAAA,CAAAL,EAAA,CACC,aAAA,CAAa,0BAAyBL,CAAAqG,CAAAA,CAAAA,EAAA,YAAAA,CAAU,CAAA,QAAA,GAAV,IAAArG,CAAAA,CAAAA,CAAsB,EAAE,CAC1DO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAFL,CAGC,IAAA,CAAK,IACL,OAASgoB,CAAAA,CAAAA,CAER,QAAAxnB,CAAAA,CAAAA,CAAAA,CACH,CAEJ,CC+CA,SAAsBmnB,GACpBxc,CACe,CAAA,CAAA,OAAArM,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CACf,GAAM,CACJ,MAAA,CAAAwD,CACA,CAAA,UAAA,CAAA2lB,EACA,QAAAjb,CAAAA,CAAAA,CACA,gBAAA0a,CAAAA,CAAAA,CACA,SAAA1L,CACA,CAAA,OAAA,CAAA1R,CACA,CAAA,QAAA,CAAAnD,CACF,CAAIgE,CAAAA,CAAAA,CACE7E,CAAM7D,CAAAA,CAAAA,CAAOH,CAAM,CACzB,CAAA,GAAI,CACF,MAAMgE,EAAI,UAAW,CAAA,MAAA,CAAO,CAC1B,EAAI2hB,CAAAA,CAAAA,CACJ,SAAAjb,CACA,CAAA,eAAA,CAAiB0a,CACnB,CAAC,EACD1L,CAAa,GAAA,MAAMA,CAAS1R,CAAAA,CAAO,GACnCnD,CAAS,CAAA,CACP,IAAM,CAAA,WAAA,CACN,QAAS,CACP,MAAA,CAAQ,EACV,CACF,CAAC,EACH,CAAA,MAASvD,CAAY,CAAA,CACnB,IAAML,CAASkG,CAAAA,EAAAA,CAAU,CACvB,KAAA,CAAA7F,EACA,QAAU,CAAA,YAAA,CACV,UAAY,CAAA,CACV,GAAIqkB,CACN,CACF,CAAC,CACD9gB,CAAAA,CAAAA,CAAS,CACP,IAAM,CAAA,WAAA,CACN,OAAS,CAAA,CACP,OAAA5D,CACF,CACF,CAAC,EACH,CACF,CAEO,CAAA,CAAA,IAAMwkB,EAAwC5c,CAAAA,CAAAA,EAAWrM,EAAA,MAC9D,CAAA,IAAA,CAAA,WAAA,CAAA,GAAM,CAAE,MAAA,CAAAwD,EAAQ,UAAA2lB,CAAAA,CAAAA,CAAY,QAAAjM,CAAAA,CAAAA,CAAU,QAAA1R,CAAS,CAAA,QAAA,CAAAnD,CAAS,CAAA,CAAIgE,EACtD7E,CAAM7D,CAAAA,CAAAA,CAAOH,CAAM,CAAA,CACzB,GAAI,CACF,MAAMgE,EAAI,UAAW,CAAA,MAAA,CAAO2hB,CAAU,CACtCjM,CAAAA,CAAAA,GAAa,MAAMA,CAAAA,CAAS1R,CAAO,CACnCnD,CAAAA,CAAAA,CAAAA,CAAS,CACP,IAAA,CAAM,YACN,OAAS,CAAA,CACP,MAAQ,CAAA,EACV,CACF,CAAC,EACH,CAASvD,MAAAA,CAAAA,CAAY,CACnB,IAAML,CAAAA,CAASkG,EAAU,CAAA,CACvB,MAAA7F,CACA,CAAA,QAAA,CAAU,YACZ,CAAC,EACDuD,CAAS,CAAA,CACP,IAAM,CAAA,WAAA,CACN,QAAS,CACP,MAAA,CAAA5D,CACF,CACF,CAAC,EACH,CACF,CAAA,CAAA,CAEa2kB,EAAsC,CAAA,CACjD,QAAS,KACT,CAAA,MAAA,CAAQ,EAAC,CACT,UAAW,EACb,CAIM5c,CAAAA,EAAAA,CAAmC,CACvC,cACA,CAAA,WAAA,CACA,YACF,CAEM6c,CAAAA,EAAAA,CAAkB,CACtB3mB,CACAoH,CAAAA,CAAAA,GAEAjH,EACEH,CAAAA,CAAAA,CACAoH,EACA0C,EACF,CAAA,CAEK8c,EAAQD,CAAAA,EAAAA,CC7KR,SAASE,EAAAA,CAAmBroB,EAA2B,CAC5D,GAAM,CAAE,QAAAV,CAAAA,CAAAA,CAAU,OAAAgpB,CAAS,CAAA,YAAa,CAAItoB,CAAAA,CAAAA,CACtC,CACJ,KAAAkG,CAAAA,CAAAA,CACA,oBAAAiG,CAAAA,CAAAA,CACA,QAAAL,CACA,CAAA,OAAA,CAAAxB,CACA,CAAA,QAAA,CAAA0R,EACA,aAAAvP,CAAAA,CACF,EAAI+C,UAAWX,CAAAA,CAAY,EACrBvM,CAASkN,CAAAA,UAAAA,CAAWgF,CAAoB,CAAA,CACxC,CAAChT,CAAO2F,CAAAA,CAAQ,CAAIuN,CAAAA,UAAAA,CAAW0T,GAAiBF,EAAoB,CAAA,CAC1E1X,SAAU,CAAA,IAAM,CACT1E,CAAA,EAAA,IAAA,EAAAA,EAAS,QAAS,CAAA,yCAAA,CAAA,CAIXW,GAAA,IAAAA,EAAAA,CAAAA,CAAgB,yCAC1BN,CAAAA,EAAAA,CAAAA,CAAqB,CACnB,iBAAmB,CAAA,CACjB,yCAA2C,CAAA,IAC7C,CACF,CAAC,CAAA,CARDA,CAAqB,CAAA,CACnB,YAAa,CAAC,yCAAyC,CACzD,CAAC,EAQEL,CAAA,EAAA,IAAA,EAAAA,CAAS,CAAA,QAAA,CAAS,mBAIXW,CAAA,EAAA,IAAA,EAAAA,CAAgB,CAAA,iBAAA,CAAA,EAC1BN,EAAqB,CACnB,iBAAA,CAAmB,CACjB,iBAAA,CAAmB,IACrB,CACF,CAAC,EARDA,CAAqB,CAAA,CACnB,YAAa,CAAC,iBAAiB,CACjC,CAAC,EAQL,CAAG,CAAA,CAACL,CAASW,CAAAA,CAAa,CAAC,CAC3B+D,CAAAA,SAAAA,CAAU,IAAM,CACVtK,GAAA,IAAAA,EAAAA,CAAAA,CAAO,YACTiB,CAAS,CAAA,CACP,KAAM,cACN,CAAA,OAAA,CAAS,CAAE,SAAA,CAAWjB,EAAM,UAAW,CACzC,CAAC,EAEL,EAAG,CAACA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,UAAU,CAAC,CAAA,CAEtB,IAAMqiB,CAAsCpoB,CAAAA,CAAAA,CAAAL,EAAA,EACvC0B,CAAAA,CAAAA,CAAAA,CADuC,CAE1C,MAAA,CAAA8mB,EACA,cAAgB,CAAA,CAAOL,CAAYjb,CAAAA,CAAAA,CAAW,EAAG0a,CAAqB5oB,GAAAA,CAAAA,CAAA,IACpE,CAAA,IAAA,CAAA,WAAA,CAAA,MAAM6oB,GAAe,CACnB,UAAA,CAAAM,CACA,CAAA,QAAA,CAAAjb,EACA,gBAAA0a,CAAAA,CAAAA,CACA,QAAAvgB,CAAAA,CAAAA,CACA,OAAA7E,CACA,CAAA,QAAA,CAAA0Z,CACA,CAAA,OAAA,CAAS1R,GAAA,IAAAA,CAAAA,CAAAA,CAAW,EACpB,CAAA,MAAA,CAAQ9I,EAAM,MAChB,CAAC,EACH,CACA,CAAA,CAAA,cAAA,CAAuBymB,GAAenpB,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CACpC,MAAMipB,EAAAA,CAAe,CACnB,UAAAE,CAAAA,CAAAA,CACA,QAAA9gB,CAAAA,CAAAA,CACA,OAAA7E,CACA,CAAA,QAAA,CAAA0Z,CACA,CAAA,OAAA,CAAS1R,GAAA,IAAAA,CAAAA,CAAAA,CAAW,GACpB,MAAQ9I,CAAAA,CAAAA,CAAM,MAChB,CAAC,EACH,CACF,CAAA,CAAA,CAAA,CACA,OACEjC,GAACke,CAAAA,EAAAA,CAAgB,QAAhB,CAAA,CAAyB,MAAO8K,CAC9B,CAAA,QAAA,CAAA/mB,CAAM,CAAA,OAAA,CAAU8mB,EAAShpB,CAC5B,CAAA,CAEJ,CCjFe,SAARkpB,GAAmC,CACxC,SAAA,CAAA3iB,CACA,CAAA,QAAA,CAAAmH,EAAW,CACX,CAAA,YAAA,CAAAyb,CAAe,CAAA,CAAC,OAAQ,YAAc,CAAA,SAAA,CAAW,aAAa,CAChE,EAAiB,CACf,OAAA5iB,CACG,CAAA,MAAA,CACE+e,GACC6D,CAAa,CAAA,QAAA,CAAS7D,CAAE,CAAA,SAAyB,IACjDA,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAG,CAAA,kBAAA,GAAsB,OACzBA,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAG,kBAAsB,GAAA,CAC7B,EACC,OAASA,CAAAA,CAAAA,EAAM,CACVA,CAAAA,CAAE,WAAU5X,CAAY4X,EAAAA,CAAAA,CAAE,QAChC,EAAA,CAAC,EACI5X,CACT,CCdO,SAAS0b,EAAAA,CAAe1oB,EAA2B,CACxD,IAAyCP,EAAAO,CAAjC,CAAA,CAAA,QAAA,CAAAV,CAAU,CAAA,YAAA,CAAAmpB,CAjBpB,CAiB2ChpB,CAAAA,CAAAA,CAANE,CAAAC,CAAAA,CAAAA,CAAMH,EAAN,CAA3B,UAAA,CAAU,cACZ,CAAA,CAAA,CAAA,CAAE,UAAAoG,CAAU,CAAA,CAAI8d,GAAiB,CACrC,OAAA,CAASlG,GACT,oBAAsB,CAAA,oBAAA,CACtB,oBAAsB,CAAA,gBAAA,CACtB,IAAK,WACP,CAAC,CACK,CAAA,CAACzQ,EAAU2b,CAAW,CAAA,CAAIrY,QAAS,CAAA,CAAC,EAC1CE,SAAU,CAAA,IAAM,CACd,GAAI3K,CAAAA,EAAaA,EAAU,MAAS,CAAA,CAAA,CAAG,CACrC,IAAM+iB,EAAMJ,EAAkB,CAAA,CAC5B,SAAW3iB,CAAAA,CAAAA,EAAa,EACxB,CAAA,YAAA,CAAA4iB,CACF,CAAC,EACDE,CAAYC,CAAAA,CAAG,EACjB,CACA,OAAO,IAAY,CACjBD,CAAAA,CAAY,CAAC,EACf,CACF,CAAG,CAAA,CAAC9iB,CAAW4iB,CAAAA,CAAY,CAAC,CAC5B,CAAA,IAAMhoB,CAAcX,CAAAA,CAAAA,CAAA,CAClB,QAAAkN,CAAAA,CAAAA,CACA,aAAAyb,CACG9oB,CAAAA,CAAAA,CAAAA,CAAAA,CAEL,OAAOL,CACLC,CAAAA,GAAAA,CAACC,CAAAW,CAAAA,CAAAA,CAAAL,EAAA,EAAWW,CAAAA,CAAAA,CAAAA,CAAX,CAAyB,QAAA,CAAAnB,GAAS,CAEnCC,CAAAA,GAAAA,CAAC,MAAAY,CAAAA,CAAAA,CAAAL,EAAA,EAASH,CAAAA,CAAAA,CAAAA,CAAT,CAAa,QAAAqN,CAAAA,CAAAA,CAAAA,CAAS,CAE3B,CC/BO,SAAS6b,EAAAA,CAAe7oB,EAAkC,CAC/D,IAAgEP,CAAAO,CAAAA,CAAAA,CAAxD,UAAAV,CAAU,CAAA,IAAA,CAAAqT,CAAO,CAAA,4BAjB3B,EAiBkElT,CAANE,CAAAA,CAAAA,CAAAC,CAAMH,CAAAA,CAAAA,CAAN,CAAlD,UAAU,CAAA,MAAA,CAAA,CAAA,CACZ,CAAE,SAAA,CAAAoG,CAAU,CAAI2J,CAAAA,UAAAA,CAAWiO,EAAe,CAC1C,CAAA,CAACzQ,EAAU2b,CAAW,CAAA,CAAIrY,QAA6B,EAAA,CACvDuE,EAAY7H,CAAa,GAAA,CAAA,CAAIzN,GAAC,CAAA,MAAA,CAAAY,EAAAL,CAAA,CAAA,EAAA,CAASH,CAAT,CAAA,CAAA,CAAa,SAAAgT,CAAK,CAAA,CAAA,CAAA,CAAU,KAChEnC,SAAU,CAAA,IAAM,CACd,GAAI3K,CAAAA,CACF,GAAIA,CAAAA,CAAU,OAAS,CAAG,CAAA,CACxB,IAAM+iB,CAAAA,CAAMJ,GAAkB,CAAE,SAAA,CAAW3iB,CAAa,EAAA,EAAG,CAAC,CAAA,CAC5D8iB,EAAYC,CAAG,EACjB,MACED,CAAY,CAAA,CAAC,CAGjB,CAAA,OAAO,IAAY,CACjBA,CAAAA,CAAY,MAAS,EACvB,CACF,CAAG,CAAA,CAAC9iB,CAAS,CAAC,EACd,IAAMpF,CAAAA,CAAcX,CAAA,CAAA,CAClB,SAAAkN,CACA,CAAA,IAAA,CAAA2F,CACGhT,CAAAA,CAAAA,CAAAA,CAAAA,CAEL,OAAOL,CAAWC,CAAAA,GAAAA,CAACC,CAAAW,CAAAA,CAAAA,CAAAL,EAAA,EAAWW,CAAAA,CAAAA,CAAAA,CAAX,CAAyB,QAAA,CAAAnB,GAAS,CAAYuV,CAAAA,CACnE,CCjCA,IAAMvJ,EAAAA,CAAmC,CAAC,YAAA,CAAc,YAAY,CAOvDwd,CAAAA,EAAAA,CAAsC,CACjD,OAAA,CAAS,EACX,CAAA,CAcaC,GAAgClqB,CAAkCC,EAAAA,CAAAA,CAAA,QAAlCD,CAAkC,CAAA,CAAA,UAAlC,CAAE,OAAA,CAAAmqB,EAAS,MAAA1mB,CAAAA,CAAAA,CAAQ,QAAA6E,CAAAA,CAAS,EAAM,CAC7E,IAAM8hB,CAAgC,CAAA,GACtC,GAAI,CACF,IAAM3iB,CAAM7D,CAAAA,CAAAA,CAAOH,CAAM,CAEzB0mB,CAAAA,CAAAA,CAAQ,OAAephB,CAAAA,CAAAA,EAAO9I,EAAA,KAK5B,CAAA,CAAA,IAAA,CAAA,WAAA,CAAA,IAAMoqB,CAJU,CAAA,CAAA,MAAM5iB,EAAI,SAAU,CAAA,QAAA,CAASsB,CAAI,CAAA,CAC/C,QAAS,CAAC,MAAM,CAChB,CAAA,MAAA,CAAQ,CAAE,IAAM,CAAA,CAAC,MAAM,CAAE,CAC3B,CAAC,CAAA,EACwB,IACzBqhB,CAAAA,CAAAA,CAASrhB,CAAE,CAAIshB,CAAAA,EACjB,CAAC,CAAA,CAAA,CACD/hB,EAAS,CACP,OAAA,CAAS,CACP,QAAA8hB,CAAAA,CACF,EACA,IAAM,CAAA,YACR,CAAC,EACH,OAASrlB,CAAY,CAAA,CACnB,OAAQ,CAAA,KAAA,CAAMA,CAAK,EACrB,CACF,CAEMulB,CAAAA,CAAAA,EAAAA,CAAkB,CACtB3nB,CACAoH,CAAAA,CAAAA,GAEAjH,GACEH,CACAoH,CAAAA,CAAAA,CACA0C,EACF,CAEK8d,CAAAA,EAAAA,CAAQD,EC7DR,CAAA,IAAME,GAAkBlqB,aAAc2pB,CAAAA,EAAoB,CAE1DQ,CAAAA,EAAAA,CAAQD,GCEf,IAAM1oB,EAA6B,CAAA,GAE7B4oB,EAAqBpqB,CAAAA,aAAAA,CAAiCwB,EAAO,CAE5D6oB,CAAAA,EAAAA,CAAQD,ECkQX,CAlJG,SAASE,EAAgBzpB,CAAAA,CAAAA,CAA2B,CA3H3D,IAAAN,CAAAA,CA4HE,IAeID,CAAAA,CAAAO,EAdF,CAAAQ,KAAAA,CAAAA,CAAAA,CAAQ,cACR,QAAAlB,CAAAA,CAAAA,CACA,QAAAwN,CACA,CAAA,UAAA,CAAAC,CACA,CAAA,SAAA,CAAA2c,EACA,QAAA5jB,CAAAA,CAAAA,CACA,UAAAmH,CAAAA,CAAAA,CAAa,MACb,WAAAC,CAAAA,CAAAA,CACA,oBAAAyc,CAAAA,CAAAA,CACA,cAAAC,CACA,CAAA,QAAA,CAAA5c,EACA,cAAAG,CAAAA,CAAAA,CACA,SAAA0c,CAAW,CAAA,OAzIf,CA2IMpqB,CAAAA,CAAAA,CADCE,EAAAC,CACDH,CAAAA,CAAAA,CADC,CAbH,OAAA,CACA,WACA,SACA,CAAA,YAAA,CACA,WACA,CAAA,UAAA,CACA,aACA,aACA,CAAA,sBAAA,CACA,gBACA,UACA,CAAA,gBAAA,CACA,aAGI,CAAE,WAAA,CAAAuC,CAAa,CAAA,QAAA,CAAAH,CAAS,CAAI8hB,CAAAA,EAAAA,CAAiB,CACjD,OAAA,CAASnP,EACT,oBAAsB,CAAA,eAAA,CACtB,oBAAsB,CAAA,iBAAA,CACtB,IAAK,aACP,CAAC,EACK,CAAE,SAAA,CAAA7H,EAAW,OAAArC,CAAAA,CAAAA,CAAS,QAAA0R,CAAAA,CAAAA,CAAU,eAAAjQ,CAAe,CAAA,CAAI4X,EAAiB,CAAA,CACxE,QAAS9U,CACT,CAAA,oBAAA,CAAsB,gBACtB,CAAA,oBAAA,CAAsB,kBACtB,GAAK,CAAA,WACP,CAAC,CAAA,CACK,CAAE,GAAA9P,CAAAA,CAAAA,CAAK,oBAAAH,CAAAA,CAAqB,EAAI4Q,UAAWpQ,CAAAA,EAAuB,CAClE,CAAA,CAAE,SAAA6pB,CAAS,CAAA,CAAIzZ,UAAW8Z,CAAAA,EAAe,EACzC,CAAE,GAAA,CAAAQ,CAAI,CAAIta,CAAAA,UAAAA,CAAWga,EAAkB,CACvCO,CAAAA,CAAAA,CAAAA,CAAQrqB,CAAAoqB,CAAAA,CAAAA,EAAA,YAAAA,CAAK,CAAA,IAAA,GAAL,IAAApqB,CAAAA,CAAAA,CAAaoN,EACrB+F,CAAc,CAAA,IAOf/T,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CAnKP,IAAAW,CAAAC,CAAAA,CAAAA,CAAA6G,EAoKI,IAAMqiB,CAAAA,CAAc5b,GAAY,IAAO,CAAA,MAAA,CAAO,QAASA,CAAAA,CAAQ,EAAI,CACnE,CAAA,GAAIic,CAAY,EAAA,IAAA,EAAQS,GAAa3qB,CAC/B2qB,EAAAA,CAAAA,IAAaT,CAAU,CAAA,CACzB,IAAMpjB,CAAYpG,CAAAA,CAAAA,CAAAA,CAAAwpB,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAWS,KAAX,IAAAjqB,CAAAA,MAAAA,CAAAA,CAAAA,CAAuB,GAAKqN,CAAAA,CAAAA,GACrC,CACL,OAAAA,CAAAA,CAAAA,CACA,QAAU8b,CAAAA,CAAAA,CACV,iBAAkB,CACpB,CAAA,CAAA,CAAA,CAEF,OAAO,MAAMhqB,EAAqB,CAChC,GAAA,CAAAG,EACA,IAAM,CAAA,CACJ,aAAc,QACd,CAAA,MAAA,CAAQ,CACN,CACE,GAAIuL,CACJ,CAAA,SAAA,CAAAzE,CACF,CACF,CACF,CACF,CAAC,CACE,CAAA,IAAA,CAAY4d,GAAQ3kB,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CACnB,OAAAkd,CAAY1R,EAAAA,CAAAA,GAAY,MAAM0R,CAAS1R,CAAAA,CAAO,CACzC2C,CAAAA,CAAAA,CAAAA,EACH/C,GAAQ,WAAW,CAAA,CAEduZ,CACT,CAAA,CAAC,EACA,KAAM,CAAA,CAAC,CAAE,QAAA,CAAAxkB,CAAS,CACb8M,IAAAA,CAAAA,EAAgBA,EAAe9M,CAAS,CAAA,IAAI,EACzCA,CACR,CAAA,CACL,CAEF,GAAI,CAACF,CAAO4N,EAAAA,CAAAA,EAAa,IAAM,CAAA,CAC7B,IAAM8W,CAAM,CAAA,MAAM9W,CAAU,CAAA,CAC1B,WAAAI,CACA,CAAA,OAAA,CAASgd,EACT,QAAUnB,CAAAA,CAAAA,CACV,eAAAzb,CACA,CAAA,QAAA,CAAArH,CACA,CAAA,UAAA,CAAAmH,EACA,WAAAC,CAAAA,CACF,CAAC,CAAA,CACD,GAAIyc,CAAwB3nB,EAAAA,CAAAA,EAAe,IAAQH,EAAAA,CAAAA,EAAY,KAAM,CACnE,GAAM,CAAE,IAAA,CAAAC,EAAM,MAAAM,CAAAA,CAAO,CAAIR,CAAAA,EAAAA,CAAUC,CAAQ,CACrCyI,CAAAA,CAAAA,CAAUmZ,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAK,OACrB,CAAA,GAAImG,CAAiBtf,EAAAA,CAAAA,CACnB,SAAS,IAAO,CAAA,CAAA,EAAGuf,CAAQ,CAAMD,GAAAA,EAAAA,CAAa,IAAItf,CAAO,CAAA,aAAA,EAAgBtI,CAAW,CAAA,CAAA,CAAA,KAAA,GAC3EsI,GAAWxI,CAAM,CAAA,CAC1B,IAAMQ,CAAAA,CAAS,MAAMD,EAAsB,CAAA,CACzC,WAAAL,CAAAA,CAAAA,CACA,SAAAH,CACA,CAAA,MAAA,CAAQ,CACN,OAAAyI,CAAAA,CAAAA,CACA,YAAAtI,CACA,CAAA,IAAA,CAAAF,CACF,CACF,CAAC,CACD,CAAA,QAAA,CAAS,IACPyE,CAAAA,CAAAA,CAAAA,CAAAA,CAAA7G,EAAA4C,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAQ,CAAA,KAAA,GAAR,YAAA5C,CAAe,CAAA,IAAA,GAAf,KAAA6G,CACA8D,CAAAA,EAAAA,CAAmB,CACjB,OAAAC,CAAAA,CAAAA,CACA,IAAAxI,CAAAA,CAAAA,CACA,YAAAE,CACA,CAAA,MAAA,CAAAI,CACA,CAAA,eAAA,CAAiB,MACnB,CAAC,EACL,CACF,CACA,OAAOqhB,CACT,CAAA,KAAA,GAAW1kB,EACT,OAAO,MAAMH,EAAqB,CAChC,GAAA,CAAAG,CACA,CAAA,IAAA,CAAM,CACJ,UAAAgO,CAAAA,CAAAA,CACA,OAASgd,CAAAA,CAAAA,CACT,SAAUnB,CACV,CAAA,cAAA,CAAAzb,CACA,CAAA,QAAA,CAAArH,EACA,UAAAmH,CAAAA,CAAAA,CACA,YAAAC,CACF,CACF,CAAC,CACE,CAAA,IAAA,CAAYuW,CAAQ3kB,EAAAA,CAAAA,CAAA,sBACnB,OAAAkd,CAAAA,EAAY1R,CAAY,GAAA,MAAM0R,EAAS1R,CAAO,CAAA,CAAA,CACzC2C,CACH/C,EAAAA,EAAAA,CAAQ,WAAW,CAEduZ,CAAAA,CACT,EAAC,CACA,CAAA,KAAA,CAAM,CAAC,CAAE,QAAA,CAAAxkB,CAAS,CAAA,IACb8M,GAAgBA,CAAe9M,CAAAA,CAAAA,CAAS,IAAI,CAAA,CACzCA,EACR,CAGP,CAAA,CAAA,CACMwB,CAAcX,CAAAA,CAAAA,CAAA,CAClB,WAAA+S,CAAAA,CAAAA,CACA,MAAArS,CACGR,CAAAA,CAAAA,CAAAA,CAAAA,CAEL,OAAOV,CACLC,CAAAA,GAAAA,CAACC,CAAAW,CAAAA,CAAAA,CAAAL,EAAA,EAAWW,CAAAA,CAAAA,CAAAA,CAAX,CAAyB,QAAA,CAAAnB,GAAS,CAEnCC,CAAAA,GAAAA,CAAC,QAAAY,CAAAA,CAAAA,CAAAL,EAAA,EACKH,CAAAA,CAAAA,CAAAA,CADL,CAEC,OAAA,CAAS,IAAM,CACbkT,CAAAA,GACF,CAAA,CAEC,SAAArS,CACH,CAAA,CAAA,CAEJ,CC1QO,SAASwpB,EAAehqB,CAAAA,CAAAA,CAAyC,CACtE,IAA6DP,CAAAA,CAAAO,CAArD,CAAA,CAAA,MAAA,CAAAilB,EAAS,WAAa,CAAA,IAAA,CAAAE,CAAM,CAAA,IAAA,CAAAniB,EAAM,QAAA1D,CAAAA,CAf5C,EAe+DG,CAANE,CAAAA,CAAAA,CAAAC,EAAMH,CAAN,CAAA,CAA/C,QAAsB,CAAA,MAAA,CAAM,OAAM,UACpC,CAAA,CAAA,CAAA,CAAE,KAAAyG,CAAAA,CAAM,EAAIsJ,UAAWX,CAAAA,CAAY,CACnC,CAAA,CAAC4W,EAAOC,CAAQ,CAAA,CAAIpV,SAAS,EAAE,CAAA,CAC/B,CAAC2Z,CAAOC,CAAAA,CAAQ,CAAI5Z,CAAAA,QAAAA,CAAS,CAAC,CACpCE,CAAAA,SAAAA,CAAU,IAAM,CACd,IAAM7Q,CAAIolB,CAAAA,EAAAA,CAAU,CAClB,IAAA,CAAAI,EACA,IAAAniB,CAAAA,CAAAA,CACA,MAAQiiB,CAAAA,CAAAA,CACR,IAAK/e,CAAS,EAAA,EAChB,CAAC,EACK8E,CAAI+Z,CAAAA,EAAAA,CAAkB,CAC1B,IAAA,CAAAI,EACA,IAAAniB,CAAAA,CAAAA,CACA,MAAQ,CAAA,OAAA,CACR,IAAKkD,CAAS,EAAA,EAChB,CAAC,CAAA,CACD,OAAAwf,CAAS/lB,CAAAA,CAAC,CACVuqB,CAAAA,CAAAA,CAASlf,CAAC,CACH,CAAA,IAAY,CACbnH,EAAAA,CAAQqC,CAAK,CACfwf,EAAAA,CAAAA,CAAS,EAAE,EAEf,CACF,CAAG,CAAA,CAACxf,CAAK,CAAC,CAAA,CACV,IAAMzF,CAAcX,CAAAA,CAAAA,CAAA,CAClB,UAAA,CAAYmqB,EACZ,KAAAxE,CAAAA,CAAAA,CAAAA,CACG9lB,CAEL,CAAA,CAAA,OAAOL,EACLC,GAACC,CAAAA,CAAAA,CAAAW,CAAAL,CAAAA,CAAAA,CAAA,GAAWW,CAAX,CAAA,CAAA,CAAyB,SAAAnB,CAAS,CAAA,CAAA,CAAA,CAEnCC,IAAC,MAAAY,CAAAA,CAAAA,CAAAL,CAAA,CAAA,EAAA,CAASH,GAAT,CAAa,QAAA,CAAA8lB,CAAM,CAAA,CAAA,CAExB,CAEA,IAAO0E,EAAAA,CAAQH,EC9CN,CADF,SAASI,EAAiBpqB,CAAAA,CAAAA,CAAyC,CACxE,OAAOT,GAAAA,CAAC4qB,EAAArqB,CAAAA,CAAAA,CAAA,CAAe,IAAK,CAAA,QAAA,CAAS,IAAK,CAAA,YAAA,CAAA,CAAiBE,EAAO,CACpE,CCgDO,SAASqqB,GAASrqB,CAAkC,CAAA,CACzD,IAAsDP,CAAAA,CAAAO,EAA9C,CAAAQ,KAAAA,CAAAA,CAAAA,CAAO,QAAAlB,CAAAA,CAAAA,CAAU,KAAA0D,CAAM,CAAA,YAAA,CAAA6H,CAxDjC,CAAA,CAwDwDpL,EAANE,CAAAC,CAAAA,CAAAA,CAAMH,EAAN,CAAxC,OAAA,CAAO,WAAU,MAAM,CAAA,cAAA,CAAA,CAAA,CACzB,CAAE,KAAA,CAAAyG,EAAO,WAAAqF,CAAAA,CAAY,CAAIiE,CAAAA,UAAAA,CAAWX,CAAY,CAChD,CAAA,CAAE,WAAA7M,CAAAA,CAAAA,CAAa,SAAAH,CAAS,CAAA,CAAI2N,WAAWgF,CAAoB,CAAA,CACjE,GAAIxS,CAAe,EAAA,IAAA,CACjB,MAAM,IAAI,MAAM,kDAAkD,CAAA,CACpE,GAAIH,CAAAA,EAAY,KACd,MAAM,IAAI,KAAM,CAAA,kDAAkD,EACpE,GAAM,CAAE,OAAAO,CAAQ,CAAA,IAAA,CAAAN,CAAK,CAAIF,CAAAA,EAAAA,CAAUC,CAAQ,CAAA,CACrCiM,EACJhM,CAAQoE,GAAAA,CAAAA,EAAA,IAAAA,EAAAA,CAAAA,CAAO,IACXmE,EAAmB,CAAA,CACjB,IAAAvI,CAAAA,CAAAA,CACA,QAASoE,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAO,EAChB,CAAA,WAAA,CAAAlE,EACA,MAAAI,CAAAA,CAAAA,CACA,eAAiB,CAAA,MAAA,CACjB,aAAAyI,CACF,CAAC,CACD,CAAA,MAAA,CACAgI,EACJzI,CACkBtL,EAAAA,CAAAA,CAAA,IA7EtB,CAAA,IAAA,CAAA,WAAA,CAAA,IAAAW,EAAAC,CAAA6G,CAAAA,CAAAA,CAAA0B,EAAA2E,CA+EI,CAAA,GADAxC,EAAM,cAAe,EAAA,CACjBpH,CAAS,GAAA,MAAA,CACX,GAAIkD,CAAA,EAAA,IAAA,EAAAA,CAAO,CAAA,EAAA,CAAI,CACb,IAAM5D,CAAAA,CAAS,MAAMD,EAAAA,CAAsB,CACzC,WAAAL,CAAAA,CAAAA,CACA,SAAAH,CACA,CAAA,MAAA,CAAQ,CACN,OAASqE,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,GAChB,WAAAlE,CAAAA,CAAAA,CACA,IAAAF,CAAAA,CACF,CACF,CAAC,CAAA,CACD,QAAS,CAAA,IAAA,CAAA,CAAOyE,GAAA7G,CAAAD,CAAAA,CAAAA,CAAAA,CAAA6C,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAQ,KAAR,GAAA,IAAA,CAAA,MAAA,CAAA7C,CAAe,CAAA,IAAA,GAAf,KAAAC,CAAuBoO,CAAAA,CAAAA,GAAvB,IAAAvH,CAAAA,CAAAA,CAA+B,GACjD,CAAO,KAAA,CACL,IAAM+D,CAAAA,CAAU,MAAMiB,CAAY,CAAA,EAAE,CAC9BjJ,CAAAA,CAAAA,CAAS,MAAMD,EAAsB,CAAA,CACzC,WAAAL,CAAAA,CAAAA,CACA,SAAAH,CACA,CAAA,MAAA,CAAQ,CACN,OAAA,CAASqE,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,EAChB,CAAA,WAAA,CAAAlE,EACA,IAAAF,CAAAA,CACF,CACF,CAAC,CAAA,CACGA,IACF,QAAS,CAAA,IAAA,CAAA,CACP8K,CAAA3E,CAAAA,CAAAA,CAAAA,CAAA3F,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAQ,KAAR,GAAA,IAAA,CAAA,MAAA,CAAA2F,EAAe,IAAf,GAAA,IAAA,CAAA2E,CACAvC,CAAAA,EAAAA,CAAmB,CACjB,IAAAvI,CAAAA,CAAAA,CACA,QAAAwI,CACA,CAAA,WAAA,CAAAtI,EACA,MAAAI,CAAAA,CAAAA,CACA,eAAiB,CAAA,MAAA,CACjB,aAAAyI,CACF,CAAC,CAEP,EAAA,CAAA,KAEAX,GAAQ,WAAW,EAEvB,CACMzJ,CAAAA,CAAAA,CAAAA,CAAcX,EAAA,CAClB,WAAA,CAAA+S,CACA,CAAA,KAAA,CAAArS,EACA,IAAAsN,CAAAA,CAAAA,CACA,OAAS5H,CAAAA,CAAAA,EAAA,YAAAA,CAAO,CAAA,EAAA,CAChB,WAAAlE,CAAAA,CAAAA,CAAAA,CACGrC,GAEL,OAAKqC,CAAAA,CACE1C,CACLC,CAAAA,GAAAA,CAACC,EAAAW,CAAAL,CAAAA,CAAAA,CAAA,GAAWW,CAAX,CAAA,CAAA,CAAyB,SAAAnB,CAAS,CAAA,CAAA,CAAA,CAEnCC,GAAC,CAAA,GAAA,CAAAY,EAAAL,CAAA,CAAA,CACC,IAAMgO,CAAAA,CAAAA,CACN,QAAUxG,CAAM,EAAA,CACduL,CAAYvL,CAAAA,CAAC,EACf,CACI3H,CAAAA,CAAAA,CAAAA,CAAAA,CALL,CAOE,QAAAa,CAAAA,CAAAA,CAAAA,CACH,EAZuB,IAc3B,CC1GO,SAAS8pB,EAAatqB,CAAAA,CAAAA,CAA2B,CAnCxD,IAAAN,EAoCE,IAAkED,CAAAA,CAAAO,EAA1D,CAAAQ,KAAAA,CAAAA,CAAAA,CAAO,eAAA+pB,CAAiB,CAAA,IAAA,CAAM,QAAAjrB,CAAAA,CAAAA,CAAU,QAAAwQ,CApClD,CAAA,CAoCoErQ,CAANE,CAAAA,CAAAA,CAAAC,EAAMH,CAAN,CAAA,CAApD,OAAO,CAAA,gBAAA,CAAuB,WAAU,SAC1C,CAAA,CAAA,CAAA,CAAE,KAAAyG,CAAAA,CAAM,EAAIsJ,UAAWX,CAAAA,CAAY,CACnC,CAAA,CAAE,YAAA7M,CAAa,CAAA,QAAA,CAAAH,CAAS,CAAA,CAAI2N,WAAWgF,CAAoB,CAAA,CACjE,GAAIxS,CAAAA,EAAe,MAAQH,CAAY,EAAA,IAAA,CACrC,MAAM,IAAI,KAAA,CAAM,sDAAsD,CACxE,CAAA,GAAM,CAAE,MAAA,CAAAO,EAAQ,IAAAN,CAAAA,CAAK,CAAIF,CAAAA,EAAAA,CAAUC,CAAQ,CACrCiM,CAAAA,CAAAA,CACJyc,CAAkBrkB,GAAAA,CAAAA,EAAA,MAAAA,CAAO,CAAA,EAAA,CAAA,CACrBmE,GAAmB,CACjB,IAAA,CAAAvI,EACA,OAASoE,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,GAChB,WAAAlE,CAAAA,CAAAA,CACA,eAAiB,CAAA,UAAA,CACjB,OAAAI,CACF,CAAC,CACA1C,CAAAA,CAAAA,CAAAA,CAAAwG,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,eAAP,IAAAxG,CAAAA,CAAAA,CAAuB,GACxBe,CAAcX,CAAAA,CAAAA,CAAA,CAClB,WAAA,CAAaoG,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,YACpB,CAAA,cAAA,CAAAqkB,EACA,KAAA/pB,CAAAA,CAAAA,CACA,IAAAsN,CAAAA,CAAAA,CAAAA,CACGnO,GAEL,SAASkT,CAAAA,CACPvL,EACM,CACNA,CAAAA,CAAE,gBACFA,CAAAA,CAAAA,CAAE,eAAgB,EAAA,CAClB,IAAMkjB,CAAcljB,CAAAA,CAAAA,CAAE,aAAc,CAAA,IAAA,CAChCtF,GAAeH,CAAYqE,GAAAA,CAAAA,EAAA,IAAAA,EAAAA,CAAAA,CAAO,IACpC7D,EAAsB,CAAA,CACpB,YAAAL,CACA,CAAA,QAAA,CAAAH,EACA,MAAQ,CAAA,CACN,WAAAG,CAAAA,CAAAA,CACA,KAAAF,CACA,CAAA,OAAA,CAASoE,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAO,EAClB,CACF,CAAC,CAAA,CAAE,KAAM5D,CAAW,EAAA,CA1E1B,IAAA7C,CA2EYA,CAAAA,CAAAA,CAAAA,CAAA6C,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAQ,KAAR,GAAA,IAAA,EAAA7C,EAAe,QACjB,CAAA,MAAA,CAAO,IAAK6C,CAAAA,CAAAA,CAAO,MAAM,QAAU,CAAA,MAAM,CAEzC,CAAA,MAAA,CAAO,KAAKkoB,CAAa,CAAA,MAAM,EAEnC,CAAC,CAAA,CAED,OAAO,IAAKA,CAAAA,CAAAA,CAAa,MAAM,EAEnC,CACA,OAAOlrB,CAAAA,CACLC,GAACC,CAAAA,CAAAA,CAAAW,EAAAL,CAAA,CAAA,EAAA,CAAWW,CAAX,CAAA,CAAA,CAAyB,SAAAnB,CAAS,CAAA,CAAA,CAAA,CAEnCC,GAAC,CAAA,GAAA,CAAAY,EAAAL,CAAA,CAAA,CAAE,IAAMgO,CAAAA,CAAAA,CAAM,QAAS+E,CAAiBlT,CAAAA,CAAAA,CAAAA,CAAAA,CAAxC,CACE,QAAA,CAAAa,GACH,CAEJ,CCvFO,SAASiqB,EAAAA,CAAezqB,EAAyC,CACtE,OAAOT,IAAC4qB,EAAArqB,CAAAA,CAAAA,CAAA,CAAe,IAAA,CAAK,SAAS,IAAK,CAAA,UAAA,CAAA,CAAeE,CAAO,CAAA,CAClE,CCCO,SAAS0qB,EAAe1qB,CAAAA,CAAAA,CAAgD,CAC7E,GAAM,CAAE,mBAAA8iB,CAAAA,CAAAA,CAAqB,MAAA5c,CAAM,CAAA,CAAIsJ,UAAWX,CAAAA,CAAY,EAC9D,GAAIiU,CAAAA,CAAqB,CACvB,IAAMJ,EAAeJ,EAAe,CAAA,CAAE,MAAApc,CAAM,CAAC,EAC7C,GAAI,CAACwc,CAAc,CAAA,OAAO,KAC1B,IAAMjiB,CAAAA,CAAcX,CAAA,CAAA,CAClB,WAAY4iB,CAAa,CAAA,mBAAA,CACzB,KAAO,CAAA,CAAA,CAAA,EAAIA,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAc,qBAAqB,CAAA,CAAA,CAAA,CAC3C1iB,GAEL,OAAOA,CAAAA,CAAM,QACXT,CAAAA,GAAAA,CAACC,EAAAW,CAAAL,CAAAA,CAAAA,CAAA,EAAWW,CAAAA,CAAAA,CAAAA,CAAX,CAAyB,QAAAT,CAAAA,CAAAA,CAAM,QAAS,CAAA,CAAA,CAAA,CAEzCT,IAAC,MAAAY,CAAAA,CAAAA,CAAAL,EAAA,EAASE,CAAAA,CAAAA,CAAAA,CAAT,CAAiB,QAAI0iB,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAc,qBAAqB,CAAG,CAAA,CAAA,CAAA,CAEhE,CACA,OAAOnjB,IAAC4qB,EAAArqB,CAAAA,CAAAA,CAAA,CAAe,IAAA,CAAK,SAAS,IAAK,CAAA,WAAA,CAAA,CAAgBE,EAAO,CACnE,CCVA,IAAMW,EAAAA,CAA8B,CAClC,UAAY,CAAA,EAAA,CACZ,gBAAiB,IACjB,CAAA,aAAA,CAAAsI,EACA,CAAA,aAAA,CAAAC,GACA,gBAAAE,CAAAA,EACF,CAEMuhB,CAAAA,EAAAA,CAAsBxrB,cAAkCwB,EAAO,CAAA,CAE9DiqB,EAAQD,CAAAA,EAAAA,CClBf,SAASE,EAAwB3F,CAAAA,CAAAA,CAAc,CAC7C,OAAO,OAAO,IAAKA,CAAAA,CAAG,CACnB,CAAA,IAAA,GACA,MAAa,CAAA,CAACpI,CAAQnW,CAAAA,CAAAA,IACrBmW,EAAOnW,CAAG,CAAA,CAAIue,CAAIve,CAAAA,CAAG,EACdmW,CACN,CAAA,CAAA,EAAE,CACT,CAEe,SAARgO,EAAqE,CAAA,CAC1E,UAAAnhB,CAAAA,CAAAA,CACA,OAAAkT,CACF,CAAA,CAAsB,CACpB,IAAMkO,EAAkB,EAAC,CACzB,OAAO,MAAA,CAAA,IAAA,CAAKlO,CAAM,CAAE,CAAA,OAAA,CAASnZ,GAAM,CACjC,IAAMuS,EAAUtM,CAAWjG,CAAAA,CAAC,CACtBsnB,CAAAA,CAAAA,CAAUnO,EAAOnZ,CAAC,CAAA,CACxB,GAAI,OAAOuS,GAAY,QAAYA,EAAAA,CAAAA,CAAS,CAC1C,IAAMgV,EAAgBJ,EAAQ5U,CAAAA,CAAO,EAC/BiV,CAAgBL,CAAAA,EAAAA,CAAQG,CAAO,CACjC,CAAA,IAAA,CAAK,SAAUC,CAAAA,CAAa,IAAM,IAAK,CAAA,SAAA,CAAUC,CAAa,CAAA,GAChEH,EAAUrnB,CAAC,CAAA,CAAIuS,CAEnB,EAAA,CACI,OAAOA,CAAY,EAAA,QAAA,EAAYA,GAAWA,CAAY+U,GAAAA,CAAAA,GACxDD,EAAUrnB,CAAC,CAAA,CAAIuS,CAEnB,EAAA,CAAC,EACM8U,CACT,CCsDO,SAASI,EAAAA,CAAenrB,CAA2B,CAAA,CA1F1D,IAAAP,CAAAC,CAAAA,CAAAA,CAAA6G,EA2FE,GAAM,CACJ,QAAA+D,CACA,CAAA,QAAA,CAAAhL,CACA,CAAA,QAAA,CAAAmM,EACA,UAAA9B,CAAAA,CAAAA,CACA,UAAAyhB,CAAAA,CAAAA,CACA,oBAAAtI,CACF,CAAA,CAAI9iB,CACE,CAAA,CAACwB,EAAO2F,CAAQ,CAAA,CAAIuN,WAAWhG,EAAcF,CAAAA,EAAiB,EAC9D,CAAC6c,CAAAA,CAAMC,CAAO,CAAA,CAAIhb,SAAS,KAAK,CAAA,CAChC,CAACib,CAAAA,CAAWC,CAAY,CAAIlb,CAAAA,QAAAA,CAAS,IAAI,CAAA,CACzChO,EAASqhB,EAAiB,CAAA,CAC9B,QAASnP,CACT,CAAA,oBAAA,CAAsB,gBACtB,oBAAsB,CAAA,gBAAA,CACtB,GAAK,CAAA,aACP,CAAC,CACK,CAAA,CACJ,UAAAhJ,CAAAA,CAAAA,CACA,gBAAAI,CACA,CAAA,aAAA,CAAA3C,CACA,CAAA,aAAA,CAAAC,EACA,gBAAAE,CAAAA,CACF,CAAIoG,CAAAA,UAAAA,CAAWob,EAAmB,CAC5B5O,CAAAA,CAAAA,CAAkByP,CAA8C3sB,EAAAA,CAAAA,CAAA,sBAEpE2sB,CACG,GAAA,MAAM9f,EAAY,CAAA,CACjB,GAAI8f,CACJ,CAAA,QAAA,CAAAtkB,CACA,CAAA,MAAA,CAAA7E,EACA,UAAAkJ,CAAAA,CAAAA,CACA,gBAPsB,CAAC,EAAEA,GAAcI,CAQvC,CAAA,CAAA,gBAAA,CAAAxC,CACA,CAAA,KAAA,CAAA5H,CACF,CAAC,CAAA,EACL,CACAgP,CAAAA,CAAAA,SAAAA,CAAU,IAAM,CACd,IAAMib,CAAajgB,CAAAA,CAAAA,CAAavC,EAAcuC,CAAU,CAAA,CAAIlB,EACxD9I,CAAA,EAAA,IAAA,EAAAA,EAAO,OACLiqB,GAAAA,CAAAA,EAAc,IAAQjqB,EAAAA,CAAAA,CAAM,UAAYiqB,CAC1CzP,CAAAA,CAAAA,CAASyP,CAAU,CAAA,CAEnBtkB,EAAS,CACP,IAAA,CAAM,YACN,CAAA,OAAA,CAAS,CACP,OAAS,CAAA,MAAA,CACT,MAAO,MACT,CACF,CAAC,CAGP,EAAA,CAAA,CAAG,CAACqE,CAAU,CAAC,CACfgF,CAAAA,SAAAA,CAAU,IAAM,CACThP,EAAM,eACT2F,EAAAA,CAAAA,CAAS,CACP,IAAA,CAAM,aACN,OAAS,CAAA,CACP,OAAS,CAAA,IACX,CACF,CAAC,EAEL,CAAG,CAAA,CAAC3F,EAAM,eAAe,CAAC,CAE1BgP,CAAAA,SAAAA,CAAU,IAAM,CACd,GAAI7G,CAAcnI,GAAAA,CAAAA,EAAA,MAAAA,CAAO,CAAA,KAAA,CAAA,EAAS,CAAC6pB,CAAM,CAAA,CACvC,IAAMK,CAAmBZ,CAAAA,EAAAA,CAAoB,CAC3C,UAAA,CAAAnhB,EACA,MAAQnI,CAAAA,CAAAA,CAAM,KAChB,CAAC,EACG,MAAO,CAAA,IAAA,CAAKkqB,CAAgB,CAAA,CAAE,OAAS,CACzC3jB,GAAAA,EAAAA,CAAY,CACV,EAAIvG,CAAAA,CAAAA,CAAM,MAAM,EAChB,CAAA,UAAA,CAAYkqB,CACZ,CAAA,QAAA,CAAAvkB,EACA,MAAA7E,CAAAA,CAAAA,CACA,OAASd,CAAAA,CAAAA,CAAM,QACf,KAAAA,CAAAA,CACF,CAAC,CAAA,CACD8pB,EAAQ,IAAI,CAAA,EAEhB,CACA,OAAO,IAAM,CACX,GAAI3hB,CAAAA,GAAcnI,CAAA,EAAA,IAAA,EAAAA,EAAO,KAAO,CAAA,CAAA,CAC9B,IAAMkqB,CAAAA,CAAmBZ,GAAoB,CAC3C,UAAA,CAAAnhB,CACA,CAAA,MAAA,CAAQnI,EAAM,KAChB,CAAC,CACGA,CAAAA,CAAAA,CAAM,OAAS,MAAO,CAAA,IAAA,CAAKkqB,CAAgB,CAAA,CAAE,SAAW,CAC1DJ,EAAAA,CAAAA,CAAQ,KAAK,EAEjB,CACF,CACF,CAAA,CAAG,CAAC3hB,CAAAA,CAAYnI,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,MAAO6pB,CAAI,CAAC,EACnC7a,SAAU,CAAA,IAAM,CAzLlB,IAAA/Q,EAAAC,CA0LI,CAAA,IAAM+rB,CAAajgB,CAAAA,CAAAA,CAAavC,EAAcuC,CAAU,CAAA,CAAIlB,CACtDqhB,CAAAA,CAAAA,CAAe,OAAO,IAAKnqB,CAAAA,CAAAA,CAAAA,EAAA,YAAAA,CAAO,CAAA,aAAA,GAAiB,EAAE,CAAA,CAAE,MAC1DmF,CAAAA,CAAAA,EAAK,CA5LZ,IAAAlH,CAAAA,CA4Le,OAAAA,CAAAA,CAAAA,CAAAA,CAAA+B,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,aAAP,GAAA,IAAA,CAAA,MAAA,CAAA/B,EAAuBkH,CAA6B,CAAA,IAAA,IAAA,CAC/D,EACA,OAAIrE,CAAAA,CAAO,aAAed,CAAM,CAAA,OAAA,GAAY,KAASA,EAAAA,CAAAA,CAAAA,EAAA,YAAAA,CAAO,CAAA,KAAA,GAAS,IAEjEiqB,CAAAA,CAAAA,CAAAA,EACA,CAACjqB,CAAM,CAAA,KAAA,EAAA,CAAA,CACP/B,CAAA+B,CAAAA,CAAAA,CAAM,UAAN,IAAA/B,CAAAA,MAAAA,CAAAA,CAAAA,CAAe,UAAWksB,CAAa,CAAA,MAAA,EACvC,CAACnqB,CAAM,CAAA,eAAA,EACP,CAAC+pB,CAAAA,EAID/pB,EAAM,eACN,EAAA,EAAA,CAAC9B,CAAA8B,CAAAA,CAAAA,CAAM,UAAN,IAAA9B,EAAAA,CAAAA,CAAe,MAChBisB,CAAAA,EAAAA,CAAAA,CAAa,SAAW,CAExB3P,GAAAA,CAAAA,CAASyP,CAAU,CAGrB,CAAA,CACEnpB,EAAO,WACPd,CAAAA,CAAAA,CAAM,KAAS,EAAA,IAAA,CACfA,EAAM,OACNA,CAAAA,CAAAA,CAAM,eACR,CAAA,CAAE,MAAM,OAAO,CAAA,CAEf2F,CAAS,CAAA,CACP,KAAM,YACN,CAAA,OAAA,CAAS,CACP,OAAS,CAAA,KACX,CACF,CAAC,CAAA,CAED,CACE7E,CAAAA,CAAO,YACPd,CAAM,CAAA,KAAA,EAAS,IACfA,CAAAA,CAAAA,CAAM,QACNA,CAAM,CAAA,eAAA,GAAoB,KAC5B,CAAA,CAAE,MAAM,OAAO,CAAA,EAEf2F,EAAS,CACP,IAAA,CAAM,aACN,OAAS,CAAA,CACP,OAAS,CAAA,KACX,CACF,CAAC,CAAA,CAEI,IAAM,CA3OjB,IAAA1H,CAAAC,CAAAA,CAAAA,CA6OQ8B,CAAM,CAAA,KAAA,EAAS,MACfA,CAAM,CAAA,OAAA,EACNA,CAAM,CAAA,eAAA,GAAoB,UAEtB/B,CAAA+B,CAAAA,CAAAA,CAAM,OAAN,GAAA,IAAA,CAAA,MAAA,CAAA/B,EAAe,MAAW,IAAA,CAAA,EAAKksB,CAAa,CAAA,MAAA,CAAS,EACvDxkB,CAAS,CAAA,CACP,IAAM,CAAA,YAAA,CACN,QAAS,CACP,OAAA,CAAS,KACX,CACF,CAAC,EACQ3F,CAAM,CAAA,OAAA,EAAA,CAAA,CAAW9B,CAAA8B,CAAAA,CAAAA,CAAM,UAAN,IAAA9B,CAAAA,MAAAA,CAAAA,CAAAA,CAAe,MAAS,EAAA,CAAA,GAClDyH,EAAS,CACP,IAAA,CAAM,qBACN,CAAA,OAAA,CAAS,CACP,OAAS,CAAA,EACX,CACF,CAAC,EACDqkB,CAAa,CAAA,KAAK,CAGxB,CAAA,EAAA,CACF,EAAG,CACDlpB,CAAAA,CAAO,WACP,CAAA,MAAA,CAAO,MAAK7C,CAAA+B,CAAAA,CAAAA,CAAM,aAAN,GAAA,IAAA,CAAA/B,EAAuB,EAAE,EAAE,MACvCC,CAAAA,CAAAA,CAAAA,CAAA8B,EAAM,OAAN,GAAA,IAAA,CAAA,MAAA,CAAA9B,CAAe,CAAA,MAAA,CACf4K,EACA,MAAO,CAAA,IAAA,CAAA,CAAK/D,CAAA/E,CAAAA,CAAAA,EAAA,YAAAA,CAAO,CAAA,KAAA,GAAP,IAAA+E,CAAAA,CAAAA,CAAgB,EAAE,CAAA,CAAE,MAChC/E,CAAAA,CAAAA,CAAM,QACNA,CAAM,CAAA,eAAA,CACN+pB,CACF,CAAC,EACD,IAAMK,CAAAA,CAAarZ,OAAQ,CAAA,KACrB6Y,GAAc,IAAQ5pB,EAAAA,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,QAAS,IACxC4pB,EAAAA,CAAAA,CAAW5pB,EAAM,KAAK,CAAA,CAEjBrB,EAAAL,CAAA,CAAA,EAAA,CACF0B,CADE,CAAA,CAAA,CAEL,oBAAAshB,CACA,CAAA,oBAAA,CACE3X,CACyCrM,EAAAA,CAAAA,CAAA,sBACzC,OAAMkN,MAAAA,EAAAA,CAAqB7L,CAAAL,CAAAA,CAAAA,CAAA,GAAKqL,CAAL,CAAA,CAAA,CAAa,SAAAhE,CAAU,CAAA,KAAA,CAAA3F,EAAO,MAAAc,CAAAA,CAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CACnE,SAAW4D,CAAiB,EAAA,CAC1BgG,EAAShG,CAAAA,CAAAA,CAAOiB,CAAQ,EAC1B,CAAA,CACA,QAAiBS,CAAAA,CAAAA,EAAwC9I,EAAA,IACvD,CAAA,IAAA,CAAA,WAAA,CAAA,OAAA,MAAM6M,GAAY,CAAE,EAAA,CAAA/D,EAAI,QAAAT,CAAAA,CAAAA,CAAU,MAAA7E,CAAAA,CAAAA,CAAQ,MAAAd,CAAM,CAAC,CACnD,CAAA,CAAA,CAAA,cAAA,CAAiB+B,GACfwI,EAAe,CAAA,CAAE,QAAA5E,CAAAA,CAAAA,CAAU,OAAA5D,CAAO,CAAC,CACrC,CAAA,WAAA,CAAa,IAA0BzE,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CACrC,OAAMyM,MAAAA,EAAAA,CAAY,CAChB,UAAAC,CAAAA,CAAAA,CACA,QAAArE,CAAAA,CAAAA,CACA,OAAA7E,CACA,CAAA,KAAA,CAAAd,CACA,CAAA,aAAA,CAAeiK,EACf,eAAiB9B,CAAAA,CAAAA,CACjB,cAAAT,CACF,CAAC,IACH,SACEiC,CAAAA,CAAAA,EAC8BrM,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CAC9B,aAAM6N,EAAUxM,CAAAA,CAAAA,CAAAL,CAAA,CAAA,EAAA,CACXqL,GADW,CAEd,UAAA,CAAAK,CACA,CAAA,QAAA,CAAArE,EACA,KAAA3F,CAAAA,CAAAA,CACA,OAAAc,CACA,CAAA,MAAA,CAAQd,EAAM,MACd,CAAA,aAAA,CAAeiK,CAAY,EAAA,GAC3B,eAAiB9B,CAAAA,CAAAA,CACjB,aAAAT,CAAAA,CACF,EAAC,CACH,CAAA,CAAA,CAAA,gCAAA,CACE8b,CACG,EAAA,CACHrW,GAAoB,gCAAiCxO,CAAAA,CAAAA,CAAAL,EAAA,EAChDklB,CAAAA,CAAAA,CAAAA,CADgD,CAEnD,QAAA7d,CAAAA,CACF,CAAC,CAAA,EACH,EACA,uBAAgCtI,CAAAA,CAAAA,EAM7BC,CAAA,CAAA,IAAA,CAAA,CAN6BD,GAM7B,UAN6B,CAC9B,IAAAsP,CAAAA,CAAAA,CACA,SAAAC,CACF,CAAA,CAGG,CACD,OAAMO,MAAAA,EAAAA,CAAoB,wBAAwB,CAChD,IAAA,CAAAR,CACA,CAAA,QAAA,CAAAC,EACA,QAAAjH,CAAAA,CAAAA,CACA,KAAO3F,CAAAA,CAAAA,CAAM,MACb,MAAAc,CAAAA,CAAAA,CACA,OAASd,CAAAA,CAAAA,CAAM,QACf,KAAAA,CAAAA,CACF,CAAC,CACH,CAAA,CAAA,CAAA,0BAAA,CAAmC3C,GAIhCC,CAAA,CAAA,IAAA,CAAA,CAJgCD,CAIhC,CAAA,CAAA,UAJgC,CACjC,QAAAuP,CAAAA,CACF,CAEG,CAAA,CACD,aAAMO,EAAoB,CAAA,0BAAA,CAA2B,CACnD,QAAA,CAAAP,EACA,QAAAjH,CAAAA,CAAAA,CACA,MAAO3F,CAAM,CAAA,KAAA,CACb,OAAAc,CACA,CAAA,OAAA,CAASd,CAAM,CAAA,OAAA,CACf,MAAAA,CACF,CAAC,CACH,CAAA,CAAA,CAAA,oBAAA,CAAuBwjB,GAA+B,CACpDrW,EAAAA,CAAoB,oBAAqBxO,CAAAA,CAAAA,CAAAL,EAAA,EACpCklB,CAAAA,CAAAA,CAAAA,CADoC,CAEvC,QAAA7d,CAAAA,CAAAA,CACA,kBAAmB3F,CAAM,CAAA,OAAA,CACzB,sBAAwBA,CAAAA,CAAAA,CAAM,aAChC,CAAC,CAAA,EACH,CACA,CAAA,WAAA,CAAoBwjB,GAAuBlmB,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CACzC,OAAM6P,MAAAA,EAAAA,CAAoB,YAAYxO,CAAAL,CAAAA,CAAAA,CAAA,EACjCklB,CAAAA,CAAAA,CAAAA,CADiC,CAEpC,QAAA7d,CAAAA,CAAAA,CACA,MAAA7E,CAAAA,CAAAA,CACA,QAASd,CAAM,CAAA,OAAA,CACf,KAAAA,CAAAA,CACF,EAAC,CACL,CAAA,CAAA,CAAA,CAAA,CAAA,CACC,CAACA,CAAAA,CAAOc,EAAO,WAAakJ,CAAAA,CAAU,CAAC,CAC1C,CAAA,OACEjM,IAACsP,CAAa,CAAA,QAAA,CAAb,CAAsB,KAAA,CAAO+c,EAAa,QAAAtsB,CAAAA,CAAAA,CAAS,CAExD,CCjUA,IAAMqB,EAAAA,CAAmC,CACvC,WAAa,CAAA,KACf,CAEMkrB,CAAAA,EAAAA,CAA2B1sB,cAAuCwB,EAAO,CAAA,CAExEmrB,EAAQD,CAAAA,EAAAA,CCtCf,IAAME,EAAAA,CAAM5sB,cAAiD,IAAI,CAAA,CAE1D6sB,EAAQD,CAAAA,EAAAA,CClBR,IAAME,EACX1sB,CAAAA,GAAAA,CAAC,KACC,CAAA,CAAA,KAAA,CAAM,6BACN,KAAO,CAAA,EAAA,CACP,IAAK,CAAA,MAAA,CACL,QAAQ,WACR,CAAA,MAAA,CAAO,cAEP,CAAA,QAAA,CAAAA,IAAC,MACC,CAAA,CAAA,aAAA,CAAc,QACd,cAAe,CAAA,OAAA,CACf,YAAa,CACb,CAAA,CAAA,CAAE,8CACJ,CAAA,CAAA,CACF,EAGW2sB,EACX3sB,CAAAA,GAAAA,CAAC,KACC,CAAA,CAAA,KAAA,CAAM,6BACN,KAAO,CAAA,EAAA,CACP,IAAK,CAAA,MAAA,CACL,QAAQ,WACR,CAAA,MAAA,CAAO,eAEP,QAAAA,CAAAA,GAAAA,CAAC,QACC,aAAc,CAAA,OAAA,CACd,cAAe,CAAA,OAAA,CACf,YAAa,CACb,CAAA,CAAA,CAAE,8CACJ,CAAA,CAAA,CACF,EClBa,SAAR4sB,EAAAA,CAA4C,CACjD,QAAA,CAAA7sB,EACA,QAAAwK,CAAAA,CAAAA,CACA,cAAAsiB,CACF,CAAA,CAAiD,CAI/C,GAHwB,KAAA,CAAM,OAAQ9sB,CAAAA,CAAQ,EAC1CA,CAAS,CAAA,MAAA,CAAQ+sB,CAAU,EAAA,OAAOA,EAAM,IAAS,EAAA,QAAQ,CAAE,CAAA,MAAA,CAAS,EACpE,OAAO/sB,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAU,OAAS,QAE5B,CAAA,MAAM,IAAI,KAAA,CACR,6CAA6C8sB,CAAa,CAAA,EAAA,CAC5D,CAEF,CAAA,OAAI,MAAM,OAAQ9sB,CAAAA,CAAQ,CAEjBA,CAAAA,CAAAA,CAAS,OAAQ+sB,CAAUviB,EAAAA,CAAAA,CAAS,SAASuiB,CAAM,CAAA,IAAA,CAAK,WAAW,CAAC,CAAA,CAEtE/sB,CACT,CCJA,IAAMgtB,EAAAA,CAAgC,CAAC,cAAgB,CAAA,gBAAgB,EACjEC,EAA8C,CAAA,CAClD,0BACA,4BACF,CAAA,CA+FO,SAASC,EAAAA,CAAU/sB,EAgBH,CAhBG,IAAAC,CAAAD,CAAAA,CAAAA,CACxB,IAAAmI,CACA,CAAA,IAAA,CAAA5E,CAAO,CAAA,QAAA,CACP,SAAA1D,CACA,CAAA,OAAA,CAAAmtB,EACA,cAAAC,CAAAA,CAAAA,CACA,YAAAC,CAAc,CAAA,KAAA,CACd,cAAAC,CAAAA,CAAAA,CAAiB,MACjB,MAAAC,CAAAA,CAAAA,CAAS,CAAC,CAAE,GAAI,QAAU,CAAA,IAAA,CAAM,IAAK,CAAC,EACtC,QAAArU,CAAAA,CAAAA,CAAW,GACX,4BAAAsU,CAAAA,CAAAA,CACA,iBAAAC,CACA,CAAA,yBAAA,CAAAC,CACA,CAAA,cAAA,CAAAC,EACA,cAAAC,CAAAA,CA5IF,CA8H0BxtB,CAAAA,CAAAA,CAerBC,EAAAC,CAfqBF,CAAAA,CAAAA,CAerB,CAdH,IAAA,CACA,OACA,UACA,CAAA,SAAA,CACA,iBACA,aACA,CAAA,gBAAA,CACA,SACA,UACA,CAAA,8BAAA,CACA,kBACA,CAAA,2BAAA,CACA,iBACA,gBA5IF,CAAA,CAAA,CAAA,IAAAD,EAAAC,CAAAA,EAAAA,CAAA6G,GAAA0B,EAAA2E,CAAAA,EAAAA,CA+IE,GAAM,CAACiP,EAASsC,CAAU,CAAA,CAAI7N,SAAS,IAAI,CAAA,CACrC,CAAC6c,CAASC,CAAAA,CAAU,CAAI9c,CAAAA,QAAAA,CAAuBuc,CAAM,CACrD,CAAA,CAAC,CAAE,SAAA,CAAAQ,EAAW,QAAUC,CAAAA,CAAgB,CAAGC,CAAAA,CAAa,EAC5Djd,QAA0B,CAAA,CACxB,UAAW,CACX,CAAA,QAAA,CAAAkI,CACF,CAAC,CAAA,CACG,CAAE,MAAA,CAAAS,EAAQ,aAAAE,CAAAA,CAAAA,CAAe,iBAAAL,CAAAA,CAAAA,CAAmB,yBAAAI,CAAyB,CAAA,CACzE1J,UAAWxO,CAAAA,CAAe,EAC5BwP,SAAU,CAAA,IAAM,CACVxN,CAAAA,GAAS,UAAY8V,CAAqB,EAAA,IAAA,EAC5CA,CAAkB,CAAA,CAChB,WAAYuU,CAAY,CAAA,CAAA,CACxB,QAAUC,CAAAA,CACZ,CAAC,CAECtqB,CAAAA,CAAAA,GAAS,eAAmBkW,EAAAA,CAAAA,EAA4B,MAC1DA,CAAyB,CAAA,CACvB,WAAYmU,CAAY,CAAA,CAAA,CACxB,SAAUC,CACV,CAAA,EAAA,CAAA1lB,CACF,CAAC,EAEL,CAAG,CAAA,CAACylB,CAAWC,CAAAA,CAAAA,CAAiB1lB,GAAM,IAAI,CAAC,CAC3C,CAAA,IAAM5I,EAAOuT,OAAQ,CAAA,IAAM,CAvK7B,IAAA9S,EAAAA,CAwKI,OAAIuD,CAAS,GAAA,QAAA,CACJiW,CAAA,EAAA,IAAA,CAAAA,EAAU,EAAC,CAGhBrR,CAAM,EAAA,IAAA,CACDuR,GAAA,IAAAA,CAAAA,CAAAA,CAAiB,EAAC,CAAA,CAAA,CAGvB1Z,GAAA0Z,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAgB,CAAhB,CAAA,GAAA,IAAA,CAAA,MAAA,CAAA1Z,GAAoB,IAAS,IAAA,QAAA,CACxB0Z,CAGF,CAAA,EACT,CAAG,CAAA,CAACF,CAAQE,CAAAA,CAAa,CAAC,CACpBqU,CAAAA,CAAAA,CAAOjb,OACX,CAAA,IAAMka,EACN,CAACA,CAAO,CACV,CAAA,CACMgB,EAAalb,OACjB,CAAA,KAAO,CACL,SAAA,CAAA8a,EACA,QAAUC,CAAAA,CACZ,CACA,CAAA,CAAA,CAACD,EAAWC,CAAe,CAC7B,CACMI,CAAAA,CAAAA,CAAAA,CAAYhuB,IAAAD,EAAAwZ,CAAAA,CAAAA,EAAA,YAAAA,CAAQ,CAAA,SAAA,GAAR,KAAAxZ,EAAqB0Z,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAe,YAApC,IAAAzZ,CAAAA,EAAAA,CAAiD,EAC7DiuB,CAAAA,CAAAA,CAAQC,cAA4C,CACxD,IAAA,CAAA5uB,CACA,CAAA,OAAA,CAASwuB,EACT,iBAAmBK,CAAAA,iBAAAA,GACnB,eAAiBC,CAAAA,eAAAA,GACjB,qBAAuBC,CAAAA,qBAAAA,EACvB,CAAA,gBAAA,CAAkB,KAClB,SAAAL,CAAAA,CAAAA,CACA,KAAO,CAAA,CACL,QAAAP,CACA,CAAA,UAAA,CAAAM,CACF,CAAA,CACA,gBAAiBL,CACjB,CAAA,kBAAA,CAAoBG,CACtB,CAAC,CAAA,CACKS,EAAmB,OACnBC,CAAAA,CAAAA,CAAmB,OACnBC,CAAAA,CAAAA,CAAmB,QACnBC,CAAgB,CAAA,IAAA,CAChBC,CAAgB,CAAA,IAAA,CAEtB5d,UAAU,KACJxN,CAAAA,GAAS,QAAYiW,EAAAA,CAAAA,EAAU,MACjCkF,CAAW,CAAA,KAAK,CAEdnb,CAAAA,CAAAA,GAAS,iBAAmBmW,CAAiB,EAAA,IAAA,EAC/CgF,CAAW,CAAA,KAAK,EAEX,IAAM,CACXA,CAAW,CAAA,IAAI,EACjB,CACC,CAAA,CAAA,CAAClF,CAAQE,CAAAA,CAAa,CAAC,CAC1B,CAAA,IAAMkV,EAAmB3B,CAAkBntB,EAAAA,GAAAA,CAAC,OAAI,QAAU,CAAA,YAAA,CAAA,CAAA,CACpD+uB,CAAkBX,CAAAA,CAAAA,CAAM,iBAAkB,CAAA,GAAA,CAAKY,EAAgB,EAAA,CACnE,IAAMC,EAAoBD,CAAAA,EAAAA,CAAY,OAAQ,CAAA,GAAA,CAAI,CAACE,EAAQpqB,CAAAA,EAAAA,GAAM,CApOrE,IAAA5E,EAAAA,CAAAC,GAAA6G,EAAA0B,CAAAA,EAAAA,CAqOM,IAAMymB,EAAAA,CACJD,GAAO,MAAO,CAAA,WAAA,EAAkB,GAAA,KAAA,CAAQA,GAAO,MAAO,CAAA,WAAA,EAAgB,CAAA,EAAA,CACxE,OACElvB,GAAC4uB,CAAAA,CAAAA,CAAA,CACC,aAAa,CAAA,CAAA,MAAA,EAAS9pB,EAAC,CACvB,CAAA,CAAA,WAAA,CAAW,CAAGqqB,EAAAA,EAAAA,EAAa,EAAE,CAE7B,CAAA,CAAA,SAAA,CAAA,CAAWjvB,EAAAgtB,CAAAA,CAAAA,CAAQpoB,EAAC,CAAT,GAAA,IAAA,CAAA,MAAA,CAAA5E,EAAY,CAAA,SAAA,CAEvB,SAAAonB,IAAC,CAAA,MAAA,CAAA,CAEG,UAAW,CAAGtgB,EAAAA,CAAAA,EAAAA,CAAAA,CAAA7G,GAAA+sB,CAAQpoB,CAAAA,EAAC,CAAT,GAAA,IAAA,CAAA,MAAA,CAAA3E,GAAY,cAAZ,GAAA,IAAA,CAAA6G,EAA8B,CAAA,EAAE,IAC5CkoB,EAAO,CAAA,MAAA,CAAO,UAAW,EAAA,CAAI,6BAA+B,EAC9D,CAAA,CAAA,CACA,QAASA,EAAO,CAAA,MAAA,CAAO,yBAIvB,CAAA,QAAA,CAAA,CAAAE,UACEF,CAAAA,EAAAA,CAAO,OAAO,SAAU,CAAA,MAAA,CACxBA,EAAO,CAAA,UAAA,EACT,CAEDxmB,CAAAA,CAAAA,EAAAA,CAAA,CACC,GAAA,CAAKikB,GACL,IAAMD,CAAAA,EACR,EAAEwC,EAAO,CAAA,MAAA,CAAO,aAAuB,CAAA,GAHtC,IAAAxmB,CAAAA,EAAAA,CAG2C,MAC9C,CArBKwmB,CAAAA,CAAAA,EAAAA,CAAO,EAsBd,CAEJ,CAAC,CACD,CAAA,OACElvB,GAAC6uB,CAAAA,CAAAA,CAAA,CAAoC,QAAAI,CAAAA,EAAAA,CAAAA,CAAjBD,GAAY,EAAuB,CAE3D,CAAC,CACKK,CAAAA,CAAAA,CAAiBzC,EAAe,CAAA,CACpC,SAAA7sB,CACA,CAAA,QAAA,CAAUgtB,EACV,CAAA,aAAA,CAAe,WACjB,CAAC,CAAA,CACK5b,CAAaid,CAAAA,CAAAA,CAAM,aAAc,CAAA,IAAA,CAAK,GAAKkB,CAAAA,EAAAA,EAAQ,CACvD,IAAMC,EAAAA,CAAa,CACjB,IAAA,CAAA9rB,EACA,MAAQA,CAAAA,CAAAA,GAAS,QAAWiW,CAAAA,CAAAA,CAASE,EACrC,KAAO0V,CAAAA,EAAAA,CAAI,QACX,CAAA,GAAA,CAAAA,GACA,WAAAlC,CAAAA,CAAAA,CACA,iBAAAI,CACA,CAAA,yBAAA,CAAAC,CACF,CACA,CAAA,OACEztB,GAAC6uB,CAAAA,CAAAA,CAAA,CAAc,SAAWlB,CAAAA,CAAAA,CACxB,QAAA3tB,CAAAA,GAAAA,CAACusB,GAAyB,QAAzB,CAAA,CAAkC,KAAOgD,CAAAA,EAAAA,CACvC,SAAAF,CACH,CAAA,CAAA,CAAA,CAH6CC,GAAI,EAInD,CAEJ,CAAC,CACKE,CAAAA,CAAAA,CAAgB5C,EAAe,CAAA,CACnC,SAAA7sB,CACA,CAAA,QAAA,CAAUitB,EACV,CAAA,aAAA,CAAe,WACjB,CAAC,CAAA,CACKyC,CACJhsB,CAAAA,CAAAA,GAAS,UACLuD,EAAA0S,CAAAA,CAAAA,EAAA,YAAAA,CAAQ,CAAA,IAAA,CAAK,cAAb,IAAA1S,CAAAA,EAAAA,CAA4B,CAC5B0B,CAAAA,CAAAA,EAAAA,CAAAkR,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAe,IAAK,CAAA,WAAA,GAApB,KAAAlR,EAAmC,CAAA,CAAA,CAEnCgnB,EAAa,CAAA,IAChBrC,EACCrtB,GAACysB,CAAAA,EAAAA,CAAoB,QAApB,CAAA,CACC,MAAO,CACL,WAAA,CAAa2B,CAAM,CAAA,cAAA,GACnB,eAAiBA,CAAAA,CAAAA,CAAM,kBAAmB,EAAA,CAC1C,SAAUA,CAAM,CAAA,YAAA,CAChB,QAAUA,CAAAA,CAAAA,CAAM,SAChB,SAAWA,CAAAA,CAAAA,CAAM,cACjB,CAAA,SAAA,CAAWA,EAAM,QAAS,EAAA,CAAE,UAAW,CAAA,SAAA,CACvC,YAAaA,CAAM,CAAA,cAAA,EACnB,CAAA,QAAA,CAAUA,EAAM,QAAS,EAAA,CAAE,UAAW,CAAA,QAAA,CACtC,aAAcA,CAAM,CAAA,YAAA,CACpB,YAAaA,CAAM,CAAA,WAAA,CACnB,UAAAqB,CACF,CAAA,CAEC,QAAAD,CAAAA,CAAAA,CACH,EAjBgB,IAmBpB,CAAA,OAAIlT,CAAY5C,GAAAA,CAAAA,EAAU,MAAQE,CAAiB,EAAA,IAAA,CAAA,CAC1C5Z,GAAAqR,CAAAA,QAAAA,CAAA,CAAG,QAAAyd,CAAAA,CAAAA,CAAiB,IAErBzhB,EAAA5J,CAAAA,CAAAA,GAAS,SAAWiW,CAASE,CAAAA,CAAAA,GAA7B,IAAAvM,CAAAA,MAAAA,CAAAA,EAAAA,CAA6C,UAAW,CAC9Dia,CAAAA,IAAAA,CAACiF,EAAyB,CAAA,QAAA,CAAzB,CACC,KAAO,CAAA,CAAE,MAAQ9oB,CAAAA,CAAAA,GAAS,SAAWiW,CAASE,CAAAA,CAAc,CAE3D,CAAA,QAAA,CAAA,CAAAyV,EACDrvB,GAAC0vB,CAAAA,EAAAA,CAAA,EAAW,CAAA,CAAA,CACd,EAEApI,IAAAjW,CAAAA,QAAAA,CAAA,CACE,QAAA,CAAA,CAAAiW,KAACmH,CAAA7tB,CAAAA,CAAAA,CAAAL,CAAA,CAAA,EAAA,CAAqBH,GAArB,CACC,QAAA,CAAA,CAAAJ,IAAC0uB,CAAA,CAAA,CAAiB,UAAWhB,CAC1B,CAAA,QAAA,CAAAqB,CACH,CAAA,CAAA,CACA/uB,IAAC2uB,CAAA,CAAA,CAAkB,QAAAxd,CAAAA,CAAAA,CAAW,IAChC,CACCse,CAAAA,CAAAA,EAAaxW,CAAW,CAAA,IAAA,CACvBjZ,IAAC,KAAI,CAAA,CAAA,SAAA,CAAWutB,EACd,QAAAvtB,CAAAA,GAAAA,CAAC0vB,GAAA,EAAW,CAAA,CACd,CAEJ,CAAA,CAAA,CAEJ,CCtUO,SAASC,EAAAA,CAAelvB,EAAkC,CAC/D,IAA8DP,EAAAO,CAAtD,CAAA,CAAA,QAAA,CAAAV,EAAU,SAAAuV,CAAAA,CAAAA,CAAY,qBAjBhC,CAAA,CAiBgEpV,EAANE,CAAAC,CAAAA,CAAAA,CAAMH,CAAN,CAAA,CAAhD,WAAU,WACZ,CAAA,CAAA,CAAA,CAAE,MAAAwZ,CAAAA,CAAO,EAAIzJ,UAAWsc,CAAAA,EAAwB,EAChDrrB,CAAcX,CAAAA,CAAAA,CAAA,CAAE,SAAA+U,CAAAA,CAAAA,CAAAA,CAAclV,CACpC,CAAA,CAAA,OAAIsZ,GAAU,IAAQA,EAAAA,CAAAA,CAAO,MAAS,CAAA,CAAA,CAC7B,KAEF3Z,CAAa,GAAA,MAAA,CAClBC,GAACC,CAAAA,CAAAA,CAAAW,EAAAL,CAAA,CAAA,EAAA,CAAWW,GAAX,CAAyB,QAAA,CAAAnB,GAAS,CAEnCC,CAAAA,GAAAA,CAAC,MAAAY,CAAAA,CAAAA,CAAAL,EAAA,EAASH,CAAAA,CAAAA,CAAAA,CAAT,CAAa,QAAA,CAAAkV,GAAU,CAE5B,CAEAqa,EAAe,CAAA,WAAA,CAAc,iBC9Bd,SAARC,GAAwBhmB,CAAwB,CAAA,CACrD,OAAO,CAAC,MAAM,IAAK,CAAA,KAAA,CAAMA,CAAK,CAAC,CACjC,CCkCO,SAASimB,GAAa3vB,CAA+C,CAAA,CAA/C,IAAAC,CAAAA,CAAAD,EAAE,CAAAiK,KAAAA,CAAAA,CAAAA,CAAO,QAAApK,CAAAA,CApCtC,EAoC6BI,CAAsBC,CAAAA,CAAAA,CAAAC,CAAtBF,CAAAA,CAAAA,CAAsB,CAApB,OAAO,CAAA,UAAA,CAAA,CAAA,CApCtC,IAAAD,CAAAA,CAqCE,GAAM,CACJ,KAAA,CAAAyG,CACA,CAAA,GAAA,CAAA2oB,EACA,WAAAlC,CAAAA,CAAAA,CACA,iBAAAI,CACA,CAAA,yBAAA,CAAAC,CACF,CAAIxd,CAAAA,UAAAA,CAAWsc,EAAwB,CAAA,CACjCuD,EAAOR,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAK,CAAA,eAAA,EAAA,CAAkB,OAAQQ,CAASA,EAAAA,CAAAA,CAAK,MAAO,CAAA,EAAA,GAAO3lB,GAClE4lB,CAAY7vB,CAAAA,CAAAA,CAAAA,CAAAA,CAAA8vB,GAAKV,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAK,eAAiB,EAAA,CAAA,GAA3B,IAAApvB,CAAAA,MAAAA,CAAAA,CAAAA,CAA8B,OAAO,EAAOiK,IAAAA,CAAAA,CACxD8lB,CAAK,CAAA,IAAA,CACLC,EAAY,IAEb9C,CAAAA,EAAe2C,CAAavC,EAAAA,CAAAA,EAC3BxtB,IAACiwB,CAAArvB,CAAAA,CAAAA,CAAAL,EAAA,CACC,aAAA,CAAY,eACRH,CAFL,CAAA,CAAA,CAGC,SAAWqtB,CAAAA,CAAAA,CAEX,SAAAztB,GAACC,CAAAA,CAAAA,CAAAW,CAAAL,CAAAA,CAAAA,CAAA,GAAWW,CAAX,CAAA,CAAA,CAAyB,QAAAssB,CAAAA,CAAAA,CAAAA,CAAiB,GAC7C,CAEF,EAAA,IAAA,CAGEtsB,CAAcN,CAAAA,CAAAA,CAAAL,EAAA,EACfH,CAAAA,CAAAA,CAAAA,CADe,CAElB,KAAA,CAAA+J,EACA,KAAAxD,CAAAA,CAAAA,CACA,GAAA2oB,CAAAA,CAAAA,CACA,KAAAQ,CACF,CAAA,CAAA,CACA,OAAO/vB,CAAAA,CACLunB,KAAAjW,QAAA,CAAA,CACE,UAAArR,GAACiwB,CAAAA,CAAAA,CAAA,CACC,QAAAjwB,CAAAA,GAAAA,CAACC,CAAAW,CAAAA,CAAAA,CAAAL,EAAA,EAAWW,CAAAA,CAAAA,CAAAA,CAAX,CAAyB,QAAA,CAAAnB,GAAS,CACrC,CAAA,CAAA,CACAC,GAACkwB,CAAAA,CAAAA,CAAA,EAAU,CACb,CAAA,CAAA,CAAA,CAEA5I,KAAAjW,QAAA,CAAA,CACG,UAAAye,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAM,CAAA,GAAA,CAAI,CAACA,CAAMhrB,CAAAA,CAAAA,GAAM,CACtB,IAAMqrB,EAAYL,CAAK,CAAA,QAAA,EACjBlmB,CAAAA,CAAAA,CAAQgmB,GAAOO,CAAS,CAAA,CAC1B,IAAI,IAAK,CAAA,IAAA,CAAK,MAAMA,CAAS,CAAC,CAAE,CAAA,cAAA,GAC/Bf,UACCU,CAAAA,CAAAA,CAAK,MAAO,CAAA,SAAA,CAAU,KACtBA,CAAK,CAAA,UAAA,EACP,CAAA,CACJ,OACEM,aAACH,CAAAA,CAAAA,CAAArvB,CAAAL,CAAAA,CAAAA,CAAA,CAAG,aAAa,CAAA,CAAA,KAAA,EAAQuE,CAAC,CAAA,CAAA,CAAA,CAAQ1E,GAAjC,CAAoC,GAAA,CAAK0vB,CAAK,CAAA,EAAA,CAAA,CAAA,CAC5ClmB,CACH,CAEJ,CAAA,CAAA,CACA5J,GAACkwB,CAAAA,CAAAA,CAAA,EAAU,CACb,CAAA,CAAA,CAEJ,CAEAL,EAAa,CAAA,WAAA,CAAc,eCpF3B,IAAMQ,EAAgDnwB,CAAAA,CAAAA,EAIhD,CAJgD,IAAAC,CAAAA,CAAAD,EACpD,CAAAH,QAAAA,CAAAA,CAAAA,CACA,UAAA4Y,CAdF,CAAA,CAYsDxY,CAGjDC,CAAAA,CAAAA,CAAAC,EAHiDF,CAGjD,CAAA,CAFH,UACA,CAAA,WAAA,CAAA,CAAA,CAGA,GAAM,CAAE,KAAA,CAAAwG,CAAM,CAAA,CAAIsJ,WAAWX,CAAY,CAAA,CACnC,CAACnF,CAAOmmB,CAAAA,CAAQ,EAAIvf,QAAoC,CAAA,EAAE,CAChEE,CAAAA,SAAAA,CAAU,KACJtK,CAASgS,EAAAA,CAAAA,IAAahS,CAAO2pB,EAAAA,CAAAA,CAAS3pB,EAAMgS,CAAS,CAAC,CACnD,CAAA,IAAM,CACX2X,CAAS,CAAA,EAAE,EACb,CACC,CAAA,CAAA,CAAC3pB,CAAK,CAAC,CAAA,CACV,IAAMzF,CAAAA,CAAcX,EAAA,CAAE,SAAA,CAAW4J,CAAU/J,CAAAA,CAAAA,CAAAA,CAAAA,CAC3C,OAAOL,CACLC,CAAAA,GAAAA,CAACC,CAAAW,CAAAA,CAAAA,CAAAL,EAAA,EAAWW,CAAAA,CAAAA,CAAAA,CAAX,CAAyB,QAAAnB,CAAAA,CAAAA,CAAAA,CAAS,EAEnCC,GAAC,CAAA,MAAA,CAAAY,CAAAL,CAAAA,CAAAA,CAAA,GAASH,CAAT,CAAA,CAAA,CAAa,QAAA+J,CAAAA,CAAAA,CAAAA,CAAM,CAExB,CAEOomB,CAAAA,EAAAA,CAAQF,EC1BN,CADF,SAASG,GAAY/vB,CAA2B,CAAA,CACrD,OAAOT,GAACuwB,CAAAA,EAAAA,CAAAhwB,CAAA,CAAA,CAAU,UAAU,QAAaE,CAAAA,CAAAA,CAAAA,CAAO,CAClD,CC6BO,SAASgwB,EAAAA,CAAahwB,EAA2B,CACtD,IAAmDP,EAAAO,CAA3C,CAAA,CAAA,QAAA,CAAAV,EAAU,eAAAsM,CAAAA,CAAAA,CAAkB,IAtCtC,CAAA,CAsCqDnM,EAANE,CAAAC,CAAAA,CAAAA,CAAMH,CAAN,CAAA,CAArC,WAAU,iBAClB,CAAA,CAAA,CAAA,OACEF,GAACqrB,CAAAA,EAAAA,CAAoB,SAApB,CACC,KAAA,CAAOzqB,CAAAL,CAAAA,CAAAA,CAAA,GACFH,CADE,CAAA,CAAA,CAEL,aAAAuJ,CAAAA,EAAAA,CACA,cAAAD,EACA,CAAA,gBAAA,CAAAG,EACA,CAAA,eAAA,CAAAwC,CACF,CAEC,CAAA,CAAA,QAAA,CAAAtM,CACH,CAAA,CAEJ,CC/CO,SAAS2wB,EAAAA,CAAoBjwB,EAAyC,CAC3E,OAAOT,GAAC4qB,CAAAA,EAAAA,CAAArqB,EAAA,CAAe,IAAA,CAAK,QAAS,CAAA,IAAA,CAAK,kBAAqBE,CAAO,CAAA,CACxE,CCHO,SAASkwB,EAAAA,CAAgB/P,EAAgC,CAC9D,IAAMgQ,EAASC,EACbjQ,CAAAA,CAAAA,CAAU,MAAQkQ,CAAAA,CAAAA,EAAa,CAACxsB,EAAQwsB,CAAAA,CAAAA,CAAS,eAAe,CAAC,CACnE,CACA,CAAA,OAAO,CAACxsB,EAAAA,CAAQssB,CAAM,CACxB,CAEO,SAASG,EAAAA,CAAYzqB,EAAwC,CAClE,IAAM0qB,CAA2B,CAAA,GAC3BhgB,CAAQ1K,CAAAA,CAAAA,CACVA,CAEG,CAAA,MAAA,CAAO,CAAC,CAAE,SAAA,CAAA2qB,CAAU,CAAA,GAAMA,IAAc,MAAM,CAAA,CAC9C,IAAK1qB,CAAa,EAAA,CAjB3B,IAAArG,CAmBU,CAAA,OAAA,CAAIA,CAAAqG,CAAAA,CAAAA,CAAS,OAAT,IAAArG,EAAAA,CAAAA,CAAe,WACjB8wB,EAAAA,CAAAA,CAAc,KAAK,IAAI,CAAA,CAElBzqB,CACT,CAAC,EACH,EAAC,CACL,OAAOyqB,CAAc,CAAA,MAAA,CAAS,GAAKA,CAAc,CAAA,MAAA,GAAWhgB,CAAM,CAAA,MACpE,CCpBO,SAASkgB,EAAAA,EAAwB,CACtC,OAAOpnB,IACT,CACO,SAASqnB,EAAAA,EAA8B,CAC5C,OAAOpnB,EAAAA,EACT,CACO,SAASqnB,IAA+B,CAC7C,OAAOpnB,EAAoC,EAC7C,CCPO,SAASqnB,EAAAA,CAAiB1qB,CAAuB,CAAA,CAPxD,IAAAzG,CAQE,CAAA,OAAA,CAAA,CACEA,CAAAyG,CAAAA,CAAAA,CAAM,aAAN,IAAAzG,CAAAA,MAAAA,CAAAA,CAAAA,CAAkB,IAAM6c,CAAAA,CAAAA,EAAS,CATrC,IAAA7c,CAAAA,CAUM,OAAO6c,CAAAA,CAAK,aAAa7c,CAAA6c,CAAAA,CAAAA,CAAK,SAAL,GAAA,IAAA,CAAA,MAAA,CAAA7c,EAAgB,MAAS,EAAA,CACpD,CACAyG,CAAAA,GAAAA,CAAAA,CAAAA,EAAA,YAAAA,CAAO,CAAA,uBAAA,GAA2B,MAClC,KAEJ,CCPO,SAAS2qB,EACd3qB,CAAAA,CAAAA,CACA4qB,CACAxqB,CAAAA,CAAAA,CACM,CACFJ,CAAM,CAAA,uBAAA,EAA2B,IACnCI,EAAAA,CAAAA,CAAI,OACD,QAASJ,CAAAA,CAAAA,CAAM,EAAI,CAAA,CAClB,QAAS,CAAC,oBAAA,CAAsB,gBAAgB,CAClD,CAAC,EACA,IAAMA,CAAAA,CAAAA,EAAU,CACf,GACEA,EAAM,sBAA0B,EAAA,IAAA,EAChCA,CAAM,CAAA,kBAAA,EAAsB,KAC5B,CACA,IAAM6qB,CAAqBC,CAAAA,EAAAA,CAAsB9qB,EAAO4qB,CAAW,CAAA,CAC/DC,GAAsB,IACOzqB,EAAAA,CAAAA,CAAI,yBAAyB,IAAK,CAAA,CAC/D,OAAS,CAAA,CACP,wBAAyByqB,CAC3B,CACF,CAAC,CAAA,CACsB,KAAME,CAA2B,EAAA,CA9BpE,IAAAxxB,CAAAA,CA+Bc,GACEwxB,CAAuB,CAAA,MAAA,CAAS,GAChC/qB,CAAM,CAAA,kBAAA,EAAsB,KAC5B,CACA,IAAMgrB,CAAwBD,CAAAA,CAAAA,CAAuB,CAAC,CAClDC,CAAAA,CAAAA,EAAyB,IAC3B5qB,EAAAA,CAAAA,CAAI,oBAAoB,MAAO,CAAA,CAC7B,EAAI7G,CAAAA,CAAAA,CAAAA,CAAAyG,EAAM,kBAAN,GAAA,IAAA,CAAA,MAAA,CAAAzG,EAA0B,EAC9B,CAAA,uBAAA,CACE6G,EAAI,wBAAyB,CAAA,YAAA,CAC3B4qB,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAuB,EACzB,CACJ,CAAC,EAEL,CACF,CAAC,EAEL,CACF,CAAC,EAEP,CAEA,SAASF,GACP9qB,CACA4qB,CAAAA,CAAAA,CACoB,CAxDtB,IAAArxB,CAAAA,CAAAC,CAyDE,CAAA,OAAQoxB,GACN,KAAK,oBACH,CAAA,OACE5qB,EAAM,cAAkB,EAAA,IAAA,EACxBA,CAAM,CAAA,cAAA,CAAe,OAAS,oBAC9BA,EAAAA,CAAAA,CAAM,eAAe,OAAW,EAAA,IAAA,CAEzBA,EAAM,cAAe,CAAA,OAAA,CAAQ,oBAEtC,CAAA,MAAA,CAEF,QACE,OAAOxG,CAAAA,CAAAA,CAAAA,CAAAD,CAAAyG,CAAAA,CAAAA,EAAA,YAAAA,CAAO,CAAA,sBAAA,GAAP,IAAAzG,CAAAA,MAAAA,CAAAA,CAAAA,CAAgC,oBAAhC,IAAAC,CAAAA,CAAAA,CAAwD,MAEnE,CACF,CCdO,SAASyxB,EAAAA,CACdlxB,CACAkH,CAAAA,CAAAA,CACM,EACFlH,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAK,CAAA,OAAA,GAAW,MAClBkH,CAAS,CAAA,CACP,IAAM,CAAA,cAAA,CACN,QAAS,CACP,mBAAA,CAAqBlH,CACvB,CACF,CAAC,EAEL,CASO,IAAMmxB,EAA0C,CAAA,CACrD,OAAQ,EAAC,CACT,WAAa,CAAA,KAAA,CACb,OAAQ,SACV,CAAA,CAEO,SAASC,EAAAA,CACd9tB,EACA4D,CACM,CAAA,CACFA,GACFA,CAAS,CAAA,CACP,KAAM,WACN,CAAA,OAAA,CAAS,CACP,MAAA,CAAA5D,CACF,CACF,CAAC,EAEL,CAUO,SAAS+tB,EAAoB,CAAA,CAClC,MAAAhvB,CAAAA,CAAAA,CACA,MAAA4D,CACA,CAAA,QAAA,CAAAiB,EACA,OAAA0E,CAAAA,CACF,EAAqC,CAhHrC,IAAApM,CAiHE,CAAA,GAAIyG,GAAS5D,CAAQ,CAAA,CACnB,IAAIivB,CAAAA,CAAc,KACdrrB,CAAM,CAAA,WAAA,EAAeA,CAAM,CAAA,SAAA,GAC7BqrB,EAAc,YAAa,CAAA,OAAA,CAAQ,eAAe,CAAA,GAAM,QAE1D,IAAMprB,CAAAA,CAAiBD,CAAM,CAAA,eAAA,CACvBG,EAAkBH,CAAM,CAAA,gBAAA,CACxBsrB,CAAYlB,CAAAA,EAAAA,CAAYpqB,EAAM,UAAU,CAAA,CACxCia,CAAYja,CAAAA,CAAAA,CAAM,UAClBmqB,CAAWlQ,CAAAA,CAAAA,EAAa+P,GAAgB/P,CAAS,CAAA,CACjD1B,EAAgBvY,CAAM,CAAA,cAAA,CACtBwY,CAAgBxY,CAAAA,CAAAA,CAAM,eACxBA,CAAM,CAAA,6BAAA,GAAkC,CAAKrC,EAAAA,EAAAA,CAAQ4a,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAe,EAAE,CAAA,GACxE8S,EAAc,KACZ1tB,CAAAA,CAAAA,EAAAA,CAAQsC,CAAc,CAAGorB,GAAAA,CAAAA,CAAc,OACvC1tB,EAAQwC,CAAAA,CAAe,CAAK,EAAA,CAACmrB,IAAWD,CAAc,CAAA,KAAA,CAAA,CACtD,CAAC1tB,EAAAA,CAAQsc,CAAS,CAAK,EAAA,CAACkQ,CAAUkB,GAAAA,CAAAA,CAAc,OAEhD7S,CAAA,EAAA,IAAA,EAAAA,EAAe,kBAAoB6S,GAAAA,CAAAA,CAAc,OACrDpqB,CAAS,CAAA,CACP,IAAM,CAAA,wBAAA,CACN,QAAS,CACP,WAAA,CAAAoqB,CACA,CAAA,WAAA,CAAa9S,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAe,mBAE5B,CAAA,aAAA,CAAeC,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAe,aAE9B,CAAA,SAAA,CAAA,CAAWjf,EAAAif,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAe,CAAA,OAAA,GAAf,YAAAjf,CAAwB,CAAA,EAAA,CACnC,aAAAif,CAAAA,CAAAA,CACA,QAAA7S,CACF,CACF,CAAC,EACH,CACF,CAaA,SAAsB4lB,GAAc5yB,CAajC,CAAA,CAAA,OAAAC,EAAA,IAbiC,CAAA,SAAA,CAAA,UAAA,CAClC,KAAA0C,CAAAA,CAAAA,CACA,MAAA0E,CACA,CAAA,MAAA,CAAA5D,CACA,CAAA,cAAA,CAAAyJ,EACA,aAAA2S,CAAAA,CAAAA,CACA,QAAAxS,CAAAA,CAAAA,CACA,QAAAJ,CACA,CAAA,8BAAA,CAAA4lB,CACF,CAIG,CAAA,CA5KH,IAAAjyB,CAAAC,CAAAA,CAAAA,CAAA6G,CAAA0B,CAAAA,CAAAA,CAAA2E,EAAAC,CAAA6G,CAAAA,CAAAA,CA6KE,IAAMzU,CAAAA,CAAW,CACf,MAAQ,CAAA,KACV,CACA,CAAA,GAAIuC,GAASc,CAAU4D,EAAAA,CAAAA,CAAO,CAE5B,GADwBA,CAAAA,CAAAA,EAAA,YAAAA,CAAO,CAAA,MAAA,IAAW,QAExC,CAAA,OAAO,CACL,MAAQ,CAAA,IAAA,CACR,KAAAA,CAAAA,CACF,EAEF,IAAMI,CAAAA,CAAM7D,CAAOH,CAAAA,CAAM,EACnB,CAAE,OAAA,CAAAuJ,EAAS,WAAAilB,CAAAA,CAAY,EAAItvB,CACjC,CAAA,GAAI,CAEF,IAAMmwB,EAAkB,MAAMrrB,CAAAA,CAAI,MAAO,CAAA,QAAA,CAASJ,EAAM,EAAE,CAAA,CAC1D,GAAIyrB,CAAAA,CAAgB,SAAW,QAC7B,CAAA,OAAO,CACL,MAAQ,CAAA,CAAA,CAAA,CACR,MAAOA,CACT,CAAA,CAEF,GACEb,CAAAA,GAAgB,oBAChBpS,CAAA,EAAA,IAAA,CAAA,KAAA,CAAA,CAAAA,CAAe,CAAA,IAAA,IAAS,kBACxB,CACA,GAAI,EAAC7S,CAAAA,EAAA,MAAAA,CAAS,CAAA,aAAA,CAAA,GAAiB6S,GAAA,IAAAA,EAAAA,CAAAA,CAAe,cAC5C,OAAO,MAAA,CAAA,QAAA,CAAS,IAAOA,CAAAA,CAAAA,EAAA,YAAAA,CAAe,CAAA,YAAA,CAC/Bzf,CAET,CAAA,MAAMqH,EAAIwqB,CAAW,CAAA,CAAE,MAAO,CAAA,CAC5B,GAAIpS,CAAc,CAAA,EAAA,CAClB,gBAAiB7S,CAAA,EAAA,IAAA,CAAA,KAAA,CAAA,CAAAA,EAAS,aAC5B,CAAC,EACH,CACA,GACEilB,CAAgB,GAAA,uBAAA,EAChBpS,CACAjf,GAAAA,CAAAA,CAAAA,CAAAoM,GAAA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAS,WAAT,GAAA,IAAA,EAAApM,EAAsB,UACtB,CAAA,CAAA,CACA,IAAMyhB,CAAAA,CAAU,MAAM5a,CAAIwqB,CAAAA,CAAW,CAAE,CAAA,MAAA,CAAO,CAC5C,EAAIpS,CAAAA,CAAAA,CAAc,EAClB,CAAA,QAAA,CAAU,GACV,UAAYhf,CAAAA,CAAAA,CAAAA,CAAAmM,CAAA,EAAA,IAAA,CAAA,KAAA,CAAA,CAAAA,EAAS,WAAT,GAAA,IAAA,CAAA,KAAA,CAAA,CAAAnM,EAAsB,UACpC,CAAC,EAED,GAAI6G,CAAAA,CAAAA,CAAAA,CAAA2a,CAAA,EAAA,IAAA,CAAA,KAAA,CAAA,CAAAA,EAAS,gBAAT,GAAA,IAAA,CAAA,KAAA,CAAA,CAAA3a,CAA2B,CAAA,MAAA,IAAW,aAAc,CAEtD,GAAM,CAAC9E,CAAM,IAAIwG,CAAAiZ,CAAAA,CAAAA,EAAA,YAAAA,CAAS,CAAA,gBAAA,GAAT,YAAAjZ,CAA2B,CAAA,OAAA,GAAW,CAAC,EAAE,EAU1D,MAAM,CAAE,MAToB,CAAA,CAC1B,CACE,IAAM,CAAA,oCAAA,CACN,OAASxG,CAAAA,CAAAA,EAAA,YAAAA,CAAQ,CAAA,gBAAA,CACjB,SAAU,QACV,CAAA,KAAA,CAAO,uBACT,CACF,CAEe,CACjB,CACF,CACA,IAAMiqB,CAAAA,CAAgC,CACpC,EAAA,CAAIxlB,EAAM,EACV,CAAA,MAAA,CAAQ,CACV,CAAA,CAAA,CAaA,GAZIwqB,EAAmB,EAAA,GACrB,MAAMpqB,CAAAA,CAAI,OAAO,MAAO,CAAA,CACtB,EAAIJ,CAAAA,CAAAA,CAAM,GACV,8CAAgD,CAAA,CAAA,CAClD,CAAC,CAAA,CAAA,CAECyqB,IACF,GAAA,MAAMrqB,CAAI,CAAA,MAAA,CAAO,OAAO,CACtB,EAAA,CAAIJ,EAAM,EACV,CAAA,+CAAA,CAAiD,EACnD,CAAC,CAAA,CAAA,CAEC4qB,CAAgB,GAAA,iBAAA,EAAqBpS,GAAiB,IAAM,CAAA,CAC9D,IAAMkT,CAAAA,CAAKlT,EACLmT,CAAa,CAAA,MAAA,CAAO,QAAS,CAAA,IAAA,CAE7BlnB,GAAYiC,CAAAglB,CAAAA,CAAAA,EAAA,YAAAA,CAAI,CAAA,OAAA,GAAJ,YAAAhlB,CAAa,CAAA,UAAA,CAC3BilB,CAAelnB,GAAAA,CAAAA,GACjB,MAAMrE,CAAIwqB,CAAAA,CAAW,CAAE,CAAA,MAAA,CAAO,CAC5B,EAAIpS,CAAAA,CAAAA,CAAc,EAClB,CAAA,OAAA,CAAS,CACP,UAAYmT,CAAAA,CACd,CACF,CAAC,CAAA,EAEL,CASA,OAPEjB,EAAAA,CAAiB1qB,CAAK,CAAA,EAAA,CACtB5D,GAAA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAQ,WAAe,GAAA,IAAA,EACvB,CAAC4X,EAAa5X,CAAAA,CAAAA,CAAO,WAAW,CAAA,EAChCovB,GAAkC,IAElCloB,EAAAA,EAAAA,CAAsB,yCAA2C,CAAA,MAAM,EAEjEsnB,CAAa,EACnB,KAAK,oBAAA,CAAsB,CACzB,IAAMgB,CAAAA,CAAAA,CAAQjlB,CAAA3G,CAAAA,CAAAA,EAAA,YAAAA,CAAO,CAAA,kBAAA,GAAP,IAAA2G,CAAAA,CAAAA,CAA6B,EAC3C,MAAM,OAAA,CAAQ,IAAI,CAChB4jB,EAAAA,IACEqB,CAAQ,CAAA,CAAA,EACRxrB,CAAI,CAAA,MAAA,CAAO,OAAO,CAChB,EAAA,CAAIJ,CAAM,CAAA,EAAA,CACV,wCAAyC,CAC3C,CAAA,CAAC,CACL,CAAC,EACD,IAAMwC,CAAAA,CAAe,MAAMpC,CAAI,CAAA,MAAA,CAAO,OAAOolB,CAAkB,CAAA,CAC7D,OAAA5f,CAAAA,CACF,CAAC,CACD,CAAA,OAAII,CAAUA,EAAAA,CAAAA,CAASxD,CAAY,CAC/BqD,CAAAA,CAAAA,EAAgBA,CAAe,CAAA,EAAE,CACrC8kB,CAAAA,EAAAA,CACEnoB,EACAooB,CACAxqB,CAAAA,CACF,EACO,CACL,MAAA,CAAQ,CACR,CAAA,CAAA,KAAA,CAAOoC,CACT,CACF,CACA,QAAS,CACP,IAAMA,CAAe,CAAA,MAAMpC,CAAI,CAAA,MAAA,CAAO,OAAOolB,CAAkB,CAAA,CAC7D,QAAA5f,CACF,CAAC,EACKgmB,CAAQpe,CAAAA,CAAAA,CAAAA,CAAAhL,CAAA,EAAA,IAAA,CAAA,KAAA,CAAA,CAAAA,EAAc,kBAAd,GAAA,IAAA,CAAAgL,CAAoC,CAAA,CAAA,CAClD,OAAIxH,CAAUA,EAAAA,CAAAA,CAASxD,CAAY,CAAA,CACnC,MAAM,OAAQ,CAAA,GAAA,CAAI,CAChB+nB,EAAa,EAAA,EACXqB,EAAQ,CACRxrB,EAAAA,CAAAA,CAAI,MACD,CAAA,MAAA,CAAO,CACN,EAAIJ,CAAAA,CAAAA,CAAM,EACV,CAAA,uCAAA,CAAyC,EAC3C,CAAC,CAAA,CACA,KAAOtC,CAAAA,CAAAA,EAAU,CAEhB,IAAML,CAAAA,CAASkG,GAAU,CACvB,KAAA,CAAA7F,EACA,QAAU,CAAA,QAAA,CACV,KAAOktB,CAAAA,CACT,CAAC,CACG/kB,CAAAA,CAAAA,EAAgBA,CAAexI,CAAAA,CAAM,EAC3C,CAAC,CACP,CAAC,CAAA,CAAE,KAAK,IAAM,CACZstB,GACEnoB,CACAooB,CAAAA,CAAAA,CACAxqB,CACF,EACF,CAAC,CACM,CAAA,CACL,OAAQ,CACR,CAAA,CAAA,KAAA,CAAOoC,CACT,CACF,CACF,CAEF,CAAA,MAAS9E,CAAY,CAAA,CACnB,IAAML,CAASkG,CAAAA,EAAAA,CAAU,CACvB,KAAA,CAAA7F,EACA,QAAU,CAAA,QAAA,CACV,KAAOktB,CAAAA,CACT,CAAC,CACD,CAAA,OAAI/kB,CAAgBA,EAAAA,CAAAA,CAAexI,CAAM,CAClCpD,CAAAA,CAAAA,CAAAL,CAAA,CAAA,EAAA,CACFb,GADE,CAEL,MAAA,CAAAsE,CACF,CACF,CAAA,CACF,CACA,OAAOtE,CACT,CAEO,CAAA,CAAA,SAAS8yB,GAAoB,CAClC,MAAA,CAAAC,CACA,CAAA,QAAA,CAAA7qB,CACF,CAGS,CAAA,CACHA,CAAY,EAAA,IAAA,EACdA,EAAS,CACP,IAAA,CAAM,YACN,OAAS,CAAA,CACP,OAAA6qB,CACF,CACF,CAAC,EAEL,CAEA,IAAMhvB,EAAAA,CAA+B,CACnC,WAAA,CACA,yBACA,cACA,CAAA,WACF,CAEMivB,CAAAA,EAAAA,CAAoB,CACxBzwB,CACAoH,CAAAA,CAAAA,GAEAjH,GACEH,CACAoH,CAAAA,CAAAA,CACA5F,EACF,CAEKkvB,CAAAA,EAAAA,CAAQD,ECjXR,CAAA,IAAME,GAA2C,CACtD,mBAAA,CAAAJ,EACA,CAAA,mBAAA,CAAAV,GACA,MAAQ,CAAA,SACV,CAEMe,CAAAA,EAAAA,CAAoBjzB,cACxBgzB,EACF,CAAA,CAEOE,EAAQD,CAAAA,EAAAA,CCNA,SAARE,EAAgC,CAAA,CACrC,WAAAxB,CAAAA,CAAAA,CACA,gBAAAyB,CACF,CAAA,CAAsB,CAvBtB,IAAA9yB,EAAAC,CAAA6G,CAAAA,CAAAA,CAAA0B,CAAA2E,CAAAA,CAAAA,CAAAC,EAAA6G,CAAAC,CAAAA,CAAAA,CAAAC,EAAAC,CAAAC,CAAAA,CAAAA,CAAAC,EAAAC,CAAAC,CAAAA,CAAAA,CAAAue,CAAAC,CAAAA,CAAAA,CAAAC,EAAAC,CAAAC,CAAAA,CAAAA,CAAAC,CAAAC,CAAAA,CAAAA,CAAAC,EAAAC,CAAAC,CAAAA,CAAAA,CAAAC,CAAAC,CAAAA,CAAAA,CAAAC,EAAAC,CAAAC,CAAAA,CAAAA,CAAAC,EAwBE,OAAQzC,CAAAA,EACN,KAAK,uBAAA,CAAyB,CAC5B,IAAMc,EACJW,CAAgB,CAAA,cAAA,CACZiB,CAAS/zB,CAAAA,CAAAA,CAAAA,CAAAmyB,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAI,gBAAJ,GAAA,IAAA,CAAA,MAAA,CAAAnyB,EAAsB,MACrC,CAAA,GAAI+zB,EACF,OAAO,CACL,MAAOA,CAAO,CAAA,MAAA,CAAO,WAAY,EAAA,CACjC,UAAWA,CAAO,CAAA,YAAA,CAClB,QAAUA,CAAAA,CAAAA,CAAO,YACjB,KAAOA,CAAAA,CAAAA,CAAO,KAChB,CAAA,CAEF,KACF,CACA,KAAK,iBAAmB,CAAA,CACtB,IAAM5B,CACJW,CAAAA,CAAAA,CAAgB,cACZiB,CAAAA,CAAAA,CAAAA,CAAAA,CACJ5mB,GAAA3E,CAAAvI,CAAAA,CAAAA,CAAAA,CAAAkyB,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAI,OAAJ,GAAA,IAAA,CAAA,MAAA,CAAAlyB,CAAa,CAAA,IAAA,GAAb,KAAAuI,CAAqB1B,CAAAA,CAAAA,CAAAA,CAAAqrB,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAI,iBAAJ,IAAArrB,CAAAA,MAAAA,CAAAA,CAAAA,CAAoB,IAAzC,GAAA,IAAA,CAAAqG,EAAiDglB,CAAA,EAAA,IAAA,EAAAA,CAAI,CAAA,kBAAA,EACjD,CACE,KAAO/kB,CAAAA,CAAAA,CAAAA,CAAA+kB,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAI,kBAAJ,GAAA,IAAA,CAAA,MAAA,CAAA/kB,EAAyB,SAChC,CAAA,SAAA,CAAA,CAAW6G,EAAAke,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAI,CAAA,kBAAA,GAAJ,YAAAle,CAAyB,CAAA,iBAAA,CACpC,QAAUC,CAAAA,CAAAA,CAAAA,CAAAie,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAI,kBAAJ,GAAA,IAAA,CAAA,MAAA,CAAAje,EAAyB,gBACnC,CAAA,KAAA,CAAA,CAAOC,EAAAge,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAI,kBAAJ,GAAA,IAAA,CAAA,MAAA,CAAAhe,CAAyB,CAAA,gBAAA,CAChC,aAAaC,CAAA+d,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAI,qBAAJ,IAAA/d,CAAAA,MAAAA,CAAAA,CAAAA,CAAyB,WACxC,CAAA,CACA,OACN,GAAI2f,CAAAA,CAAAA,EAAA,YAAAA,CAAQ,CAAA,KAAA,GAAS,KACnB,OAAO1zB,CAAAA,CAAA,EACF0zB,CAAAA,CAAAA,CAAAA,CAGP,KACF,CACA,KAAK,iBAAmB,CAAA,CACtB,IAAM5B,CACJW,CAAAA,CAAAA,CAAgB,cACZiB,CAAAA,CAAAA,CAAAA,CACJ5B,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAI,aAAc,IAAQA,EAAAA,CAAAA,CAAAA,EAAA,YAAAA,CAAI,CAAA,kBAAA,GAAsB,IAChD,CAAA,CACE,MAAO,QACP,CAAA,SAAA,CAAW,EACX,CAAA,QAAA,CAAU,GACV,KAAO,CAAA,EAAA,CACP,WAAa9d,CAAAA,CAAAA,CAAAA,CAAA8d,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAI,qBAAJ,IAAA9d,CAAAA,MAAAA,CAAAA,CAAAA,CAAyB,WACxC,CACA,CAAA,MAAA,CACN,GAAI0f,CAAAA,CACF,OAAO1zB,CAAA,CAAA,EAAA,CACF0zB,CAGP,CAAA,CAAA,KACF,CACA,KAAK,oBAAA,CAAsB,CACzB,IAAM5B,EACJW,CAAgB,CAAA,cAAA,CACZiB,GAASzf,CAAA6d,CAAAA,CAAAA,EAAA,YAAAA,CAAI,CAAA,OAAA,GAAJ,IAAA7d,CAAAA,MAAAA,CAAAA,CAAAA,CAAa,KAC5B,GAAIyf,CAAAA,CACF,OAAO1zB,CAAAA,CAAA,GACF0zB,CAGP,CAAA,CAAA,KACF,CACA,KAAK,iBAAkB,CACrB,IAAM5B,CACJW,CAAAA,CAAAA,CAAgB,eACZiB,CAASxf,CAAAA,CAAAA,CAAAA,CAAA4d,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAI,oBAAJ,GAAA,IAAA,CAAA,MAAA,CAAA5d,CAA0B,CAAA,cAAA,CACnCyf,IAAaxf,CAAA2d,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAI,mBAAJ,IAAA3d,CAAAA,MAAAA,CAAAA,CAAAA,CAAsB,cAAe,YAClDyf,CAAAA,CAAAA,CAAAA,CACJd,GAAAD,CAAAF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAD,CAAAZ,CAAAA,CAAAA,EAAA,YAAAA,CAAI,CAAA,gBAAA,GAAJ,IAAAY,CAAAA,MAAAA,CAAAA,CAAAA,CAAuB,iBAAvB,IAAAC,CAAAA,MAAAA,CAAAA,CAAAA,CAA0C,WAA1C,GAAA,IAAA,CAAAE,GACAD,CAAAd,CAAAA,CAAAA,EAAA,YAAAA,CAAI,CAAA,kBAAA,GAAJ,YAAAc,CAAyB,CAAA,gBAAA,GADzB,IAAAE,CAAAA,CAAAA,CAEA,OACF,GAAIY,CAAAA,EAAUC,CAAY,CAAA,CACxB,IAAME,CACJH,CAAAA,CAAAA,CAAO,IAAS,GAAA,QAAA,CAAA,CACZX,EAAAW,CAAO,CAAA,KAAA,GAAP,KAAAX,CAAgB,CAAA,aAAA,CAChBW,EAAO,IAAK,CAAA,OAAA,CAAQ,UAAY,CAAA,EAAE,EACxC,OAAOrzB,CAAAA,CAAAL,CAAA,CAAA,EAAA,CACF0zB,GADE,CAEL,KAAA,CAAAE,CACA,CAAA,KAAA,CAAAC,CACF,CACF,CAAA,CACA,KACF,CACA,QAAS,CACP,IAAM/B,CACJW,CAAAA,CAAAA,CAAgB,eACZiB,CAASD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAT,CAAAlB,CAAAA,CAAAA,EAAA,YAAAA,CAAI,CAAA,QAAA,GAAJ,IAAAkB,CAAAA,MAAAA,CAAAA,CAAAA,CAAe,OAAf,IAAAS,CAAAA,CAAAA,CAA0B,CACvC,KAAOP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAD,EAAAnB,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAI,CAAA,kBAAA,GAAJ,YAAAmB,CAAyB,CAAA,WAAA,CAAe,OAAQ,CAAA,GAAA,CAAK,OAArD,IAAAC,CAAAA,CAAAA,CAA6D,EACpE,CAAA,KAAA,CAAA,CAAOE,GAAAD,CAAArB,CAAAA,CAAAA,EAAA,YAAAA,CAAI,CAAA,QAAA,GAAJ,YAAAqB,CAAe,CAAA,KAAA,GAAf,IAAAC,CAAAA,CAAAA,CAA2B,GAClC,SAAWE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAD,CAAAvB,CAAAA,CAAAA,EAAA,YAAAA,CAAI,CAAA,QAAA,GAAJ,IAAAuB,CAAAA,MAAAA,CAAAA,CAAAA,CAAe,YAAf,IAAAC,CAAAA,CAAAA,CAA+B,GAC1C,QAAUE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAD,EAAAzB,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAI,CAAA,QAAA,GAAJ,YAAAyB,CAAe,CAAA,QAAA,GAAf,IAAAC,CAAAA,CAAAA,CAA8B,EAC1C,CACA,CAAA,GAAIE,CACF,CAAA,OAAO1zB,EAAA,EACF0zB,CAAAA,CAAAA,CAAAA,CAGP,KACF,CACF,CACA,OAAO,CACL,KAAO,CAAA,EAAA,CACP,UAAW,IACX,CAAA,QAAA,CAAU,IACV,CAAA,KAAA,CAAO,OACP,WAAa,CAAA,EACf,CACF,CC7HA,SAAeI,EAAAA,CAAsB/0B,EAGqB,CAAAC,OAAAA,CAAAA,CAAA,IAHrB,CAAA,SAAA,CAAA,UAAA,CACnC,aAAA+0B,CACA,CAAA,yBAAA,CAAAC,CACF,CAAA,CAA0D,CACxD,IAAMC,CAAAA,CAAS,MAAMC,UAAAA,CAAWH,CAAY,CAC5C,CAAA,GAAI,CAIF,OAHsB,MAAME,GAAA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAQ,qBAClCD,CAAAA,CAAAA,CAGJ,OAASlwB,CAAO,CAAA,CACd,OAAQ,OAAA,CAAA,KAAA,CAAM,mCAAoCA,CAAK,CAAA,CAChD,IACT,CACF,GAQA,SAASqwB,EAAAA,CAAwB,CAC/B,aAAAC,CAAAA,CACF,EAA2D,CAEzD,OADeA,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAe,MACd,EACd,KAAK,WAAA,CACL,KAAK,kBACH,CAAA,OAAO,OACT,CAAA,KAAK,aACH,OAAO,YAAA,CACT,KAAK,yBACH,CAAA,OAAO,UACT,QACE,OAAO,SACX,CACF,CAYA,SAAsBC,EAAAA,CAAmBt1B,CAGyB,CAAA,CAAA,OAAAC,EAAA,IAHzB,CAAA,SAAA,CAAA,UAAA,CACvC,YAAA+0B,CAAAA,CAAAA,CACA,0BAAAC,CACF,CAAA,CAAkE,CAChE,IAAMM,CAAAA,CAAsB,MAAMR,EAAsB,CAAA,CACtD,YAAAC,CAAAA,CAAAA,CACA,0BAAAC,CACF,CAAC,CACD,CAAA,GAAI,CAACM,CACH,CAAA,OAAO,CAAE,MAAA,CAAQ,UAAW,OAAS,CAAA,0BAA2B,EAElE,IAAMF,CAAAA,CAAgBE,EAAoB,aACpCxwB,CAAAA,CAAAA,CAAQswB,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAe,kBACvBlC,CAAAA,CAAAA,CAASiC,EAAwB,CAAA,CAAE,cAAAC,CAAc,CAAC,CACxD,CAAA,OAAO,CACL,MAAAlC,CAAAA,CAAAA,CACA,QAASA,CAAW,GAAA,SAAA,EAAA,CAAapuB,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,OAAW,GAAA,IAAA,CAAOA,EAAM,OAAU,CAAA,EAC5E,CACF,CAAA,CAAA,CC3BO,SAASywB,EAAAA,CAAiBr0B,EAA2B,CAnD5D,IAAAN,CAAA6G,CAAAA,CAAAA,CAAA0B,EAAA2E,CAoDE,CAAA,IAAM3M,CAAM4V,CAAAA,MAAAA,CAAO,IAAI,CASnBpW,CAAAA,CAAAA,CAAAO,CAPF,CAAA,CAAA,QAAA,CAAAV,EACA,KAAAkB,CAAAA,CAAAA,CAAQ,aACR,CAAA,YAAA,CAAA0jB,EAAe,YACf,CAAA,cAAA,CAAAoQ,EAAiB,IACjB,CAAA,QAAA,CAAA7kB,EACA,OAAAK,CAAAA,CA3DJ,CA6DMrQ,CAAAA,CAAAA,CADCE,EAAAC,CACDH,CAAAA,CAAAA,CADC,CANH,UAAA,CACA,QACA,cACA,CAAA,gBAAA,CACA,UACA,CAAA,SAAA,CAAA,CAAA,CAGI,CACJ,WAAA8xB,CAAAA,CAAAA,CACA,cAAAE,CACA,CAAA,OAAA,CAAA5lB,EACA,WAAAilB,CAAAA,CAAAA,CACA,YAAAK,CAAAA,CAAAA,CACA,oBAAAY,CACA,CAAA,MAAA,CAAAC,CACF,CAAA,CAAIxiB,WAAW6iB,EAAiB,CAAA,CAC1B,CAACkC,CAAAA,CAAcC,CAAe,CAAIlkB,CAAAA,QAAAA,CAAS,IAAI,CAC/C,CAAA,CAACsG,EAAcC,CAAe,CAAA,CAAIvG,QAASb,CAAAA,CAAQ,EACnD,CAACglB,CAAAA,CAAWC,CAAY,CAAA,CAAIpkB,SAAS,KAAK,CAAA,CAC1C,CACJ,uBAAA,CAAAqkB,EACA,OAAA9Y,CAAAA,CAAAA,CACA,wBAAA6F,CAAAA,CAAAA,CACA,cAAAhD,CACA,CAAA,gBAAA,CAAAI,CACA,CAAA,sBAAA,CAAAR,EACA,8BAAAoT,CAAAA,CACF,CAAIliB,CAAAA,UAAAA,CAAWoQ,CAAoB,CAC7B,CAAA,CAAE,KAAA1Z,CAAAA,CAAM,EAAIsJ,UAAWX,CAAAA,CAAY,EACnC+lB,CAAS1uB,CAAAA,CAAAA,CAAAA,EAAA,YAAAA,CAAO,CAAA,6BAAA,IAAkC,CAExDsK,CAAAA,SAAAA,CAAU,IAAM,CAtFlB,IAAA/Q,CAuFI,CAAA,GAAIoc,EAAS2Y,CAAgB3Y,CAAAA,CAAO,CAE9BiV,CAAAA,KAAAA,GAAAA,CAAAA,GAAgBpP,GAA4BoP,CAAa,CAAA,CAC3D,IAAM+D,CAAOvC,CAAAA,EAAAA,CAAe,CAC1B,eAAiB,CAAA,CACf,cAAgB5T,CAAAA,CAClB,EACA,WAAAoS,CAAAA,CACF,CAAC,CAAA,CAECY,GAAkC,IAClChT,EAAAA,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAe,MAAOgT,CACtBmD,EAAAA,CAAAA,CAAK,QAAU,EAGfA,GAAAA,CAAAA,CAAK,MAAQ,aAGXD,CAAAA,CAAAA,CAAAA,CAAAA,EAAUrD,CACV9xB,EAAAA,CAAAA,CAAAA,CAAAk1B,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAyB,OAAzB,GAAA,IAAA,EAAAl1B,EAAkC,QAClCo1B,EAAAA,CAAAA,CAAK,KACPtD,GAAAA,CAAAA,EAEAiD,EAAgB,KAAK,EAEzB,CACEA,KAAAA,CAAAA,CADS,EAAAI,CAAUrD,EAAAA,CAAAA,CACE,CAKzB,CAAA,OAAO,IAAM,CACXiD,CAAAA,CAAgB,IAAI,EACtB,CACF,CAAG,CAAA,CACDjD,CACAT,CAAAA,CAAAA,CAAAA,CACApxB,EAAAi1B,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAyB,OAAzB,GAAA,IAAA,CAAA,MAAA,CAAAj1B,EAAkC,QAClCmc,CAAAA,CAAAA,CACA6F,CACAxb,CAAAA,CAAAA,CACAwY,CACF,CAAC,CAAA,CAEDlO,SAAU,CAAA,IAAM,CAGZsgB,CAAgB,GAAA,iBAAA,GAChBjlB,CAAA,EAAA,IAAA,EAAAA,EAAS,aACT3F,CAAAA,GAAAA,CAAAA,EAAA,MAAAA,CAAO,CAAA,MAAA,CAAA,EACP,CAAC,OAAS,CAAA,SAAS,CAAE,CAAA,QAAA,CAASA,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,MAAM,CAAA,EAC3CouB,GAEAzhB,CAAY,GAEhB,CAAG,CAAA,CAAChH,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAS,cAAeilB,CAAW,CAAC,EAExCtgB,SAAU,CAAA,IAAM,CAhJlB,IAAA/Q,EAAAC,CAAA6G,CAAAA,CAAAA,CAAA0B,CAkJI,CAAA,GACE6oB,IAAgB,iBAChBrxB,GAAAA,CAAAA,CAAAA,CAAAoM,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAS,MAAT,GAAA,IAAA,EAAApM,EAAiB,yBAEjBC,CAAAA,GAAAA,CAAAA,CAAAA,CAAAwG,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,cAAP,GAAA,IAAA,EAAAxG,EAAuB,eACvBwG,CAAAA,GAAAA,CAAAA,EAAA,IAAAA,EAAAA,CAAAA,CAAO,SACP,CAAC,OAAA,CAAS,SAAS,CAAA,CAAE,SAASA,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAO,MAAM,CAAA,EAC3CouB,EACA,CAEA,IAAMT,EAAettB,CAAAA,CAAAA,CAAAA,CAAAL,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,cAAP,GAAA,IAAA,CAAA,MAAA,CAAAK,EAAuB,eACtCutB,CAAAA,EAAAA,CAAAA,CACJ7rB,CAAA4D,CAAAA,CAAAA,EAAA,YAAAA,CAAS,CAAA,MAAA,GAAT,YAAA5D,CAAiB,CAAA,yBAAA,CAEb6sB,GAAmB,IAA2Bh2B,CAAAA,CAAA,IAClD,CAAA,IAAA,CAAA,WAAA,CAAA,IAAMs1B,GAAsB,MAAMD,EAAAA,CAAmB,CACnD,YAAA,CAAAN,GACA,yBAAAC,CAAAA,EACF,CAAC,CAAA,CACD,OAAQM,EAAoB,CAAA,MAAA,EAC1B,KAAK,OAAA,CACHvhB,GACA,CAAA,MACF,KAAK,YAAA,CAEH,WAAW,IAAM,CACfiiB,EAAiB,GACnB,EAAG,GAAI,CAAA,CACP,MACF,KAAK,UACHxW,CAAuB,CAAA,CACrB,CACE,IAAA,CAAM,wCACN,QAAU,CAAA,iBAAA,CACV,KAAOoD,CAAAA,CAAAA,CACP,QAAS0S,EAAoB,CAAA,OAC/B,CACF,CAAC,EACD,KACJ,CACF,CACAU,CAAAA,CAAAA,EAAAA,GACF,CACF,CAAA,CAAG,GACDvuB,CAAAsF,CAAAA,CAAAA,EAAA,YAAAA,CAAS,CAAA,MAAA,GAAT,IAAAtF,CAAAA,MAAAA,CAAAA,CAAAA,CAAiB,4BAA6B,IAC9CuqB,CAAAA,CAAAA,EAAe,IACf5qB,CAAAA,CAAAA,CAAAA,EAAA,YAAAA,CAAO,CAAA,cAAA,GAAkB,IAC3B,CAAC,EAEDsK,SAAU,CAAA,IAAM,CAnMlB,IAAA/Q,CAAAA,CAAAC,EAAA6G,CAAA0B,CAAAA,CAAAA,CAAA2E,EAAAC,CAAAA,EAAAA,CAAA6G,GAAAC,EAAAC,CAAAA,EAAAA,CAAAC,EAAAC,CAAAA,EAAAA,CAAAC,GAqMI,GAAI7N,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,SAAU,IAAQ,EAAA,CAAC,QAAS,SAAS,CAAA,CAAE,SAASA,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAO,CAAA,MAAM,EAAG,CACzE,IAAM6uB,EAEJr1B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAD,EAAAyG,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAO,CAAA,cAAA,GAAP,YAAAzG,CAAuB,CAAA,gBAAA,GAAvB,YAAAC,CAAyC,CAAA,UAAA,IAAe,aACpDs1B,EAEJ/sB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA1B,CAAAL,CAAAA,CAAAA,EAAA,YAAAA,CAAO,CAAA,cAAA,GAAP,IAAAK,CAAAA,MAAAA,CAAAA,CAAAA,CAAuB,0BAAvB,IAAA0B,CAAAA,MAAAA,CAAAA,CAAAA,CAAgD,OAAW,GAAA,IAAA,CAC7D,GACE6oB,CAAgB,GAAA,gBAAA,GAAA,CAChBlkB,GAAAf,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAS,KAAT,GAAA,IAAA,EAAAe,EAAgB,CAAA,cAAA,CAAA,EAChB,CAACooB,EACD,CAAA,CACA,IAAMrrB,EAAAA,CAAa,CACjB,uBAAyB,CAAA,CACvB,OAAS,CAAA,CACP,gBAAgBkD,EAAAhB,CAAAA,CAAAA,EAAA,YAAAA,CAAS,CAAA,KAAA,GAAT,YAAAgB,EAAgB,CAAA,cAClC,CACF,CAAA,CACA,SAAU,CACZ,CAAA,CACAiS,CAAiB,CAAA,CACf,gBAAiBJ,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAe,CAAA,EAAA,CAChC,gBAAiB,gBACjB,CAAA,UAAA,CAAA/U,EACF,CAAC,CAAA,CAAE,KAAM8Z,EAAQ,EAAA,CA7NzB,IAAAhkB,EAAAA,CAAAC,GAAA6G,EA+NU,CAAA,IAAMwuB,EAAqBt1B,CAAAA,CAAAA,EAAAA,CAAAgkB,IAAA,IAAAA,CAAAA,MAAAA,CAAAA,EAAAA,CAAK,gBAAL,GAAA,IAAA,CAAA,MAAA,CAAAhkB,GAAuB,UAE5Cw1B,CAAAA,EAAAA,CAAAA,CAAYv1B,EAAA+jB,CAAAA,EAAAA,EAAA,YAAAA,EAAK,CAAA,gBAAA,GAAL,IAAA/jB,CAAAA,MAAAA,CAAAA,EAAAA,CAAuB,UAEnCyW,EAAU5P,CAAAA,CAAAA,EAAAA,CAAAkd,EAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,GAAK,gBAAL,GAAA,IAAA,CAAA,MAAA,CAAAld,EAAuB,CAAA,OAAA,CAErC,CAAC,YAAc,CAAA,SAAA,CAAW,UAAU,CAAE,CAAA,QAAA,CAASwuB,EAAU,CACzDT,EAAAA,CAAAA,CAEAzhB,CAAY,EAAA,CACHoiB,IAAa,IACtB3W,EAAAA,CAAAA,CAAuB,CACrB,CACE,KAAM,uCACN,CAAA,QAAA,CAAU,iBACV,CAAA,KAAA,CAAOoD,EACP,OAAAvL,CAAAA,EACF,CACF,CAAC,EAEL,CAAC,EACH,CAAA,KAAA,CACE2a,CAAgB,GAAA,gBAAA,GAAA,CAChBpd,GAAA7H,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAS,CAAA,KAAA,GAAT,MAAA6H,EAAgB,CAAA,EAAA,CAAA,GAAA,CAChBC,EAAA9H,CAAAA,CAAAA,EAAA,YAAAA,CAAS,CAAA,KAAA,GAAT,MAAA8H,EAAgB,CAAA,KAAA,CAAA,EAChB2gB,GAIAxD,CAAgB,GAAA,gBAAA,EAChBiE,EAEAnhB,EAAAA,CAAAA,CAAAA,EAAAA,CAAA3T,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAK,OAAL,GAAA,IAAA,CAAA,MAAA,CAAA2T,GAAc,QAAa,IAAA,KAAA,EAC3B8d,CAAkC,EAAA,IAAA,EAClC4C,GACAtC,CAAW,GAAA,SAAA,EAAA,CAKTje,IAAAD,EAAAD,CAAAA,CAAAA,EAAAA,CAAA3N,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,cAAP,GAAA,IAAA,CAAA,MAAA,CAAA2N,GAAuB,gBAAvB,GAAA,IAAA,CAAA,MAAA,CAAAC,EAAyC,CAAA,iBAAA,GAAzC,MAAAC,EAA4D,CAAA,QAAA,CAC1D7N,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAO,MAGT2M,CAAAA,GAAAA,CAAAA,GAGN,CACF,CAAA,CAAG,CACDhH,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAS,CAAA,KAAA,CACTilB,GAEAlkB,CAAA3E,CAAAA,CAAAA,CAAAA,CAAA/B,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAO,cAAP,GAAA,IAAA,CAAA,MAAA,CAAA+B,CAAuB,CAAA,gBAAA,GAAvB,YAAA2E,CAAyC,CAAA,UAC3C,CAAC,CACD4D,CAAAA,SAAAA,CAAU,IAAM,CAEZtK,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,UAAW,QAClBA,EAAAA,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,kBAAmB,YAC1B4qB,EAAAA,CAAAA,GAAgB,gBAGhBhhB,GAAAA,CAAAA,EAAA,MAAAA,CAAU,CAAA,CACR,OAAQ,IACR,CAAA,KAAA,CAAO5J,CACT,CAEJ,CAAA,EAAA,CAAA,CAAG,CAACA,CAAAA,CAAOA,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,cAAgBA,CAAAA,CAAAA,EAAA,YAAAA,CAAO,CAAA,MAAA,CAAQ4qB,CAAahhB,CAAAA,CAAO,CAAC,CAEtEU,CAAAA,SAAAA,CAAU,IAAM,CAnSlB,IAAA/Q,CAsSMqxB,CAAAA,CAAAA,GAAgB,uBAChBrxB,GAAAA,CAAAA,CAAAA,CAAAoM,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAS,WAAT,GAAA,IAAA,EAAApM,EAAsB,UACtByG,CAAAA,GAAAA,CAAAA,EAAA,IAAAA,EAAAA,CAAAA,CAAO,SACP,CAAC,OAAA,CAAS,SAAS,CAAE,CAAA,QAAA,CAASA,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,MAAM,CAAA,EAC3CouB,GAEAzhB,CAAY,GAEhB,CAAG,CAAA,CAAChH,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAS,WAAailB,CAAAA,CAAW,CAAC,CAEtCtgB,CAAAA,SAAAA,CAAU,IAAM,CACVvQ,CAAAA,CAAAA,EAAA,YAAAA,CAAK,CAAA,OAAA,GAAW,IAAQkxB,EAAAA,CAAAA,EAAgB,MAC1CA,CAAalxB,CAAAA,CAAG,EAEpB,CAAA,CAAG,CAACA,CAAG,CAAC,CACR,CAAA,IAAM4S,EACJvL,CACkBxI,EAAAA,CAAAA,CAAA,sBAvTtB,IAAAW,EAAAA,CAAAC,GAAA6G,EAAA0B,CAAAA,EAAAA,CAAA2E,EAwTItF,CAAAA,CAAAA,EAAA,MAAAA,CAAG,CAAA,cAAA,EAAA,CACHA,CAAA,EAAA,IAAA,EAAAA,EAAG,eACHotB,EAAAA,CAAAA,CAAAA,CAAa,IAAI,CAAA,CACjB,IAAIxe,CAAU,CAAA,IAAA,CACdW,CAAgB,CAAA,IAAI,EACpB,IAAMqe,CAAAA,CACJpE,CAAgB,GAAA,iBAAA,CACZ,MAAMhS,CAAiB,CAAA,CAErB,eAAiBgS,CAAAA,CAAAA,CACjB,gBAAiBpS,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAe,CAAA,EAClC,CAAC,CACDA,CAAAA,CAAAA,CACAmW,EACJ/D,CACAwB,EAAAA,EAAAA,CAAe,CACb,WAAAxB,CAAAA,CAAAA,CACA,eAAiB,CAAA,CAAE,eAAgBoE,CAAmB,CACxD,CAAC,CAAA,CAAA,CAEDz1B,GAAAk1B,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAyB,CAAA,OAAA,GAAzB,MAAAl1B,EAAkC,CAAA,QAAA,EAClC,CACE,EAACoM,CAAAA,EAAA,MAAAA,CAAS,CAAA,aAAA,CAAA,CACV,EAACnM,CAAAA,EAAAA,CAAAmM,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAS,KAAT,GAAA,IAAA,EAAAnM,GAAgB,EACjB,CAAA,CAAA,EAAA,CAAC6G,EAAAsF,CAAAA,CAAAA,EAAA,YAAAA,CAAS,CAAA,WAAA,GAAT,MAAAtF,EAAsB,CAAA,UAAA,CACzB,EAAE,KAAM,CAAA,OAAO,CAEf2P,EAAAA,CAAAA,CAAW,OAAMjO,EAAA0sB,CAAAA,CAAAA,CAAwB,OAAxB,GAAA,IAAA,CAAA,MAAA,CAAA1sB,GAAiC,QAAS,CAAA,CAEzD,aAAeitB,CAAAA,CAAAA,CACf,cAAAzD,CACA,CAAA,eAAA,CAAiB3hB,CACnB,CAAA,CAAA,CAEE,CAACoG,CAEDtJ,EAAAA,CAAAA,CAAAA,EAAAA,CAAAsoB,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAoB,gBAApB,GAAA,IAAA,CAAA,MAAA,CAAAtoB,EAAsC,CAAA,UAAA,IAAe,eAErDsJ,CAAU,CAAA,IAAA,CAAA,EAEH2e,CAAA,EAAA,IAAA,EAAAA,EAAM,KACf3e,GAAAA,CAAAA,CAAU,MAERA,CAAW6b,EAAAA,CAAAA,EAAuB,MACpCA,CAAoB,CAAA,CAAE,MAAQ,CAAA,SAAU,CAAC,CAE3C,CAAA,IAAMoD,EACJjf,CAAAA,CAAAA,EACAub,IACCyD,CAAsBN,EAAAA,CAAAA,CAAAA,GACtB,MAAMnD,CAAAA,CAAc,CACnB,aAAeyD,CAAAA,CAAAA,CACf,+BAAAxD,CACF,CAAC,GACCyD,EAAUpD,EAAAA,CAAAA,EAAuB,IAC/BoD,CAAAA,EAAAA,CAAO,QACTpD,CAAoB,CAAA,CAAE,MAAQ,CAAA,SAAU,CAAC,CACzCjiB,CAAAA,CAAAA,EAAA,IAAAA,EAAAA,CAAAA,CAAUqlB,MAEVte,CAAgB,CAAA,KAAK,EACrB/G,CAAA,EAAA,IAAA,EAAAA,EAAUqlB,EACVT,CAAAA,CAAAA,CAAAA,CAAa,KAAK,CAAA,CAClB3C,EAAoB,CAAE,MAAA,CAAQ,SAAU,CAAC,IAG3Clb,CAAgB,CAAA,KAAK,CACrB6d,CAAAA,CAAAA,CAAa,KAAK,CAEtB,EAAA,CAAA,CAAA,CACMU,EAAiB3lB,CAAa,GAAA,MAAA,CAAYA,EAAW8kB,CACrDc,CAAAA,CAAAA,CAAcZ,CAChBvQ,CAAAA,CAAAA,CACA,OAAO1jB,CAAU,EAAA,UAAA,CACfA,CAAM,EAAA,CACNA,EACAC,CAAcN,CAAAA,CAAAA,CAAAL,CAAA,CAAA,EAAA,CACfH,GADe,CAElB,KAAA,CAAAa,EACA,QAAU40B,CAAAA,CAAAA,CACV,YAAAviB,CACA,CAAA,SAAA,CAAW5S,CACX,CAAA,SAAA,CAAAw0B,CACF,CACA,CAAA,CAAA,OAAOn1B,CACLC,CAAAA,GAAAA,CAACC,EAAAW,CAAAL,CAAAA,CAAAA,CAAA,EAAWW,CAAAA,CAAAA,CAAAA,CAAX,CAAyB,QAAAnB,CAAAA,CAAAA,CAAAA,CAAS,EAEnCC,GAAC,CAAA,QAAA,CAAAY,EAAAL,CAAA,CAAA,CACC,GAAKG,CAAAA,CAAAA,CACL,KAAK,QACL,CAAA,QAAA,CAAUm1B,CAAkBxe,EAAAA,CAAAA,CAC5B,QAAUtP,CAAM,EAAA,CACduL,CAAYvL,CAAAA,CAAC,EACf,CACI3H,CAAAA,CAAAA,CAAAA,CAAAA,CAPL,CASE,QAAA01B,CAAAA,CAAAA,CAAAA,CACH,CAEJ,CCjYO,SAASC,EAAAA,CAAoBt1B,EAA2B,CAC7D,GAAM,CAAE,QAAA,CAAAV,EAAU,OAAAuM,CAAAA,CAAQ,CAAI7L,CAAAA,CAAAA,CACxB,CAACwB,CAAO2F,CAAAA,CAAQ,CAAIuN,CAAAA,UAAAA,CACxBwd,GACAd,EACF,CAAA,CACM,CACJ,KAAA,CAAAlrB,EACA,QAAAgG,CAAAA,CAAAA,CACA,eAAAH,CACA,CAAA,OAAA,CAAAD,EACA,oBAAAK,CAAAA,CAAAA,CACA,aAAAM,CAAAA,CACF,EAAIkX,EAAiB,CAAA,CACnB,OAAS9U,CAAAA,CAAAA,CACT,qBAAsB,gBACtB,CAAA,oBAAA,CAAsB,qBACtB,CAAA,GAAA,CAAK,OACP,CAAC,CAAA,CACKvM,EAASkN,UAAWgF,CAAAA,CAAoB,EAC9ChE,SAAU,CAAA,IAAM,CACT1E,CAAAA,EAAA,MAAAA,CAAS,CAAA,QAAA,CAAS,sCAUXW,CAAAA,CAAAA,CAAAA,EAAA,MAAAA,CAAgB,CAAA,sCAAA,CAAA,EAC1BN,CAAqB,CAAA,CACnB,kBAAmB,CACjB,sCAAA,CAAwC,KACxC,sCAAwC,CAAA,IAAA,CACxC,4BAA6B,IAC7B,CAAA,qCAAA,CAAuC,IACvC,CAAA,0BAAA,CAA4B,IAC9B,CACF,CAAC,CAlBDA,CAAAA,CAAAA,CAAqB,CACnB,WAAa,CAAA,CACX,sCACA,CAAA,sCAAA,CACA,4BACA,qCACA,CAAA,0BACF,CACF,CAAC,EAYEL,CAAA,EAAA,IAAA,EAAAA,CAAS,CAAA,QAAA,CAAS,mBAIXW,CAAA,EAAA,IAAA,EAAAA,CAAe,CAAA,eAAA,EACzBN,EAAqB,CACnB,iBAAA,CAAmB,CAAE,eAAA,CAAiB,IAAK,CAC7C,CAAC,EANDA,CAAqB,CAAA,CACnB,YAAa,iBACf,CAAC,CAMEL,CAAAA,CAAAA,EAAA,MAAAA,CAAS,CAAA,QAAA,CAAS,kBAKXW,CAAAA,CAAAA,CAAAA,EAAA,MAAAA,CAAe,CAAA,gBAAA,EACzBN,CAAqB,CAAA,CACnB,kBAAmB,CAAE,gBAAA,CAAkB,IAAK,CAC9C,CAAC,EAPDA,CAAqB,CAAA,CACnB,WAAa,CAAA,kBAAA,CACb,kBAAmBL,CACrB,CAAC,CAMC5F,CAAAA,CAAAA,EACForB,GAAoB,CAClB,MAAA,CAAAhvB,CACA,CAAA,QAAA,CAAA6E,EACA,KAAAjB,CAAAA,CAAAA,CACA,QAASpG,CAAA,CAAA,EAAA,CACJ+L,EAEP,CAAC,EAEL,CAAG,CAAA,CAAC3F,EAAO4F,CAASW,CAAAA,CAAa,CAAC,CAAA,CAClC,IAAMkI,CAAexU,CAAAA,CAAAA,CAAAL,CAAA,CAAA,EAAA,CAChB0B,GADgB,CAEnB,aAAA,CAAsB3C,CAQnBC,EAAAA,CAAAA,CAAA,MARmBD,CAQnB,CAAA,CAAA,UARmB,CACpB,aAAA,CAAA6f,EACA,8BAAAgT,CAAAA,CACF,CAKG,CAAA,CACD,aAAMD,EAAc,CAAA,CAClB,MAAAnvB,CAAAA,CAAAA,CACA,MAAA4D,CACA,CAAA,KAAA,CAAA1E,EACA,cAAAuK,CAAAA,CAAAA,CACA,cAAA2S,CACA,CAAA,OAAA,CAAA5S,CACA,CAAA,QAAA,CAAAI,EACA,8BAAAwlB,CAAAA,CACF,CAAC,CAAA,CAAA,CAAA,CACH,oBAAqB,CAAC,CACpB,MAAAM,CAAAA,CACF,IAAiD,CAC/CD,EAAAA,CAAoB,CAAE,MAAAC,CAAAA,CAAAA,CAAQ,SAAA7qB,CAAS,CAAC,EAC1C,CAAA,CACA,oBAAqB,IAAM,CACzBmqB,EAAoB,CAAA,CAClB,OAAAhvB,CACA,CAAA,QAAA,CAAA6E,CACA,CAAA,KAAA,CAAAjB,EACA,OAASpG,CAAAA,CAAAA,CAAA,GACJ+L,CAEP,CAAA,CAAC,EACH,CACA,CAAA,YAAA,CAAe5L,CAA6C,EAAA,CAC1DkxB,GAAalxB,CAAKkH,CAAAA,CAAQ,EAC5B,CACF,GACA,OACE5H,GAAAA,CAAC8yB,EAAkB,CAAA,QAAA,CAAlB,CAA2B,KAAO1d,CAAAA,CAAAA,CAChC,SAAArV,CACH,CAAA,CAEJ,CCzIO,SAASi2B,EACdv1B,CAAAA,CAAAA,CACa,CACb,GAAM,CAAE,MAAAkG,CAAM,CAAA,CAAIsJ,WAAWX,CAAY,CAAA,CACnC,CAAE,mBAAA,CAAAyiB,CAAoB,CAAI9hB,CAAAA,UAAAA,CAAW6iB,EAAiB,CAAA,CACtD,CAACmD,CAAeC,CAAAA,CAAgB,CAAInlB,CAAAA,QAAAA,CAAS,IAAI,CACjD,CAAA,CAAColB,EAASC,CAAU,CAAA,CAAIrlB,SAAS,KAAK,CAAA,CACtC7L,CAAY,CAAA,eAAA,CACZojB,EAAqBvgB,CAAiD,EAAA,CAb9E,IAAA7H,CAAAA,CAcI,IAAMiE,CAAIjE,CAAAA,CAAAA,CAAAA,CAAA6H,CAAE,CAAA,MAAA,GAAF,YAAA7H,CAAU,CAAA,OAAA,CACpBk2B,EAAWjyB,CAAC,CAAA,CACZ,aAAa,OAAQe,CAAAA,CAAAA,CAAWf,CAAE,CAAA,QAAA,EAAU,CACxC4tB,CAAAA,CAAAA,EAAqBA,CAAoB,GAC/C,EACA,OAAA9gB,SAAAA,CAAU,KACJtK,CAAAA,EAAA,MAAAA,CAAO,CAAA,WAAA,GAAeA,CAAA,EAAA,IAAA,EAAAA,EAAO,SAAWuvB,CAAAA,EAAAA,CAAAA,CAAiB,KAAK,CAAA,CAC7DC,GAAS,YAAa,CAAA,OAAA,CAAQjxB,CAAWixB,CAAAA,CAAAA,CAAQ,UAAU,CAAA,CACzD,IAAM,CACXD,EAAiB,IAAI,CAAA,CACrB,aAAa,UAAWhxB,CAAAA,CAAS,EACnC,CACC,CAAA,CAAA,CAACyB,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAO,WAAaA,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,SAAS,CAAC,CAAA,CAEvC3G,GAACa,CAAAA,EAAAA,CAAAN,EAAA,CACC,IAAA,CAAK,WACL,IAAM2E,CAAAA,CAAAA,CACN,SAAU+wB,CACV,CAAA,QAAA,CAAU3N,CACV,CAAA,OAAA,CAAS6N,GACL11B,CACN,CAAA,CAEJ,CChCO,SAAS41B,EAAe51B,CAAAA,CAAAA,CAAyC,CACtE,OAAOT,GAAAA,CAAC4qB,GAAArqB,CAAA,CAAA,CAAe,KAAK,QAAS,CAAA,IAAA,CAAK,UAAeE,CAAAA,CAAAA,CAAAA,CAAO,CAClE,CCFO,SAAS61B,EAAe71B,CAAAA,CAAAA,CAAyC,CACtE,OAAOT,IAAC4qB,EAAArqB,CAAAA,CAAAA,CAAA,CAAe,IAAA,CAAK,SAAS,IAAK,CAAA,UAAA,CAAA,CAAeE,CAAO,CAAA,CAClE,CCFO,SAAS81B,GAAY91B,CAAyC,CAAA,CACnE,OAAOT,GAAAA,CAAC4qB,GAAArqB,CAAA,CAAA,CAAe,KAAK,QAAS,CAAA,IAAA,CAAK,aAAgBE,CAAO,CAAA,CACnE,CCCO,SAAS+1B,EAAAA,CAAY/1B,CAAgD,CAAA,CAC1E,GAAM,CAAE,mBAAA,CAAA8iB,EAAqB,KAAA5c,CAAAA,CAAM,EAAIsJ,UAAWX,CAAAA,CAAY,CAC9D,CAAA,GAAIiU,EAAqB,CACvB,IAAMJ,CAAeJ,CAAAA,EAAAA,CAAe,CAAE,KAAApc,CAAAA,CAAM,CAAC,CAAA,CAC7C,GAAI,CAACwc,CAAAA,CAAc,OAAO,IAC1B,CAAA,IAAMjiB,EAAcX,CAAA,CAAA,CAClB,KAAO,CAAA,CAAA,EAAG4iB,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAc,mBAAmB,CAAA,CAAA,CAAA,CACxC1iB,GAEL,OAAOA,CAAAA,CAAM,QACXT,CAAAA,GAAAA,CAACC,EAAAW,CAAAL,CAAAA,CAAAA,CAAA,EAAWW,CAAAA,CAAAA,CAAAA,CAAX,CAAyB,QAAAT,CAAAA,CAAAA,CAAM,QAAS,CAAA,CAAA,CAAA,CAEzCT,IAAC,MAAAY,CAAAA,CAAAA,CAAAL,CAAA,CAAA,EAAA,CAASE,GAAT,CAAiB,QAAA,CAAA,CAAA,EAAG0iB,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAc,mBAAmB,CAAA,CAAA,CAAA,CAAG,CAE7D,CACA,OAAOnjB,IAAC4qB,EAAArqB,CAAAA,CAAAA,CAAA,CAAe,IAAA,CAAK,eAAe,IAAK,CAAA,YAAA,CAAA,CAAiBE,CAAO,CAAA,CAC1E,CCjBA,IAAMW,EAAgC,CAAA,GAE/Bq1B,EAAQ72B,CAAAA,aAAAA,CAAoCwB,EAAO,CCetD,CAHG,SAASs1B,EAA6Bj2B,CAAAA,CAAAA,CAAuB,CAClE,IAA2DP,EAAAO,CAAnD,CAAA,CAAA,SAAA,CAAAkY,CAAW,CAAA,UAAA,CAAAuC,EAAa,MAAQ,CAAA,QAAA,CAAAnb,CAtB1C,CAsB6DG,CAAAA,CAAAA,CAANE,EAAAC,CAAMH,CAAAA,CAAAA,CAAN,CAA7C,WAAA,CAAW,aAAqB,UACxC,CAAA,CAAA,CAAA,OACEF,GAACib,CAAAA,EAAAA,CAAAra,EAAAL,CAAA,CAAA,CACC,QAAS,CAAA,QAAA,CACT,UAAWoY,CACX,CAAA,UAAA,CAAYuC,EACZ,OAASub,CAAAA,EAAAA,CAAAA,CACLr2B,GALL,CAOE,QAAA,CAAAL,CACH,CAAA,CAAA,CAEJ,CC3BA,IAAMqB,EAAwC,CAAA,EAEvCu1B,CAAAA,EAAAA,CAAQ/2B,cAA4CwB,EAAO,CAAA,CCA3D,SAASw1B,EAAe,CAAA,CAAE,SAAA72B,CAAS,CAAA,CAAuB,CATjE,IAAAG,EAUE,GAAM,CAAE,OAAA22B,CAAO,CAAA,CAAI5mB,WAAWwmB,EAAqB,CAAA,CAC7CtlB,CAAajR,CAAAA,CAAAA,CAAAA,CAAA22B,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAQ,iBAAR,GAAA,IAAA,CAAA,MAAA,CAAA32B,EAA2B,GAAI,CAAA,CAAC42B,CAAgB1vB,CAAAA,CAAAA,GAE/DpH,IAAC22B,EAA8B,CAAA,QAAA,CAA9B,CAEC,KAAO,CAAA,CAAE,eAAAG,CAAe,CAAA,CAEvB,QAAA/2B,CAAAA,CAAAA,CAAAA,CAHIqH,CAIP,CAGJ,CAAA,CAAA,OAAOpH,GAAAqR,CAAAA,QAAAA,CAAA,CAAG,QAAAF,CAAAA,CAAAA,CAAW,CACvB,CCGO,SAAS4lB,EAAAA,CAAqCt2B,EAAuB,CAC1E,IAA2DP,CAAAO,CAAAA,CAAAA,CAAnD,WAAAkY,CAAW,CAAA,UAAA,CAAAuC,CAAa,CAAA,MAAA,CAAQ,SAAAnb,CA1B1C,CAAA,CA0B6DG,CAANE,CAAAA,CAAAA,CAAAC,EAAMH,CAAN,CAAA,CAA7C,YAAW,YAAqB,CAAA,UAAA,CAAA,CAAA,CACxC,OACEF,GAACib,CAAAA,EAAAA,CAAAra,CAAAL,CAAAA,CAAAA,CAAA,CACC,QAAS,CAAA,gBAAA,CACT,SAAWoY,CAAAA,CAAAA,CACX,WAAYuC,CACZ,CAAA,OAAA,CAASyb,EACLv2B,CAAAA,CAAAA,CAAAA,CAAAA,CALL,CAOE,QAAAL,CAAAA,CAAAA,CAAAA,CACH,CAEJ,CCfO,SAASi3B,EAAqB92B,CAAAA,CAAAA,CAAwC,CAAxC,IAAAC,CAAAA,CAAAD,CAAE,CAAA,CAAA,QAAA,CAAAH,CAvBvC,CAuBqCI,CAAAA,CAAAA,CAAeC,CAAAC,CAAAA,CAAAA,CAAfF,EAAe,CAAb,UAAA,CAAA,CAAA,CAvBvC,IAAAD,CAAAC,CAAAA,CAAAA,CAwBE,GAAM,CAAE,MAAA,CAAA02B,CAAO,CAAA,CAAIzS,GAAiB,CAClC,OAAA,CAASqS,EACT,CAAA,oBAAA,CAAsB,UACtB,oBAAsB,CAAA,sBAAA,CACtB,GAAK,CAAA,QACP,CAAC,CACKhpB,CAAAA,CAAAA,CAAAA,CAAWtN,CAAAD,CAAAA,CAAAA,CAAAA,CAAA22B,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAQ,iBAAR,GAAA,IAAA,CAAA,MAAA,CAAA32B,EAA2B,MAA3B,GAAA,IAAA,CAAAC,CAAqC,CAAA,CAAA,CAChD82B,EAA+Br2B,CAAAL,CAAAA,CAAAA,CAAA,EAChCH,CAAAA,CAAAA,CAAAA,CADgC,CAEnC,QAAAqN,CAAAA,CAAAA,CACA,OAAAopB,CACF,CAAA,CAAA,CACA,OAAO92B,CACLC,CAAAA,GAAAA,CAACC,CAAAW,CAAAA,CAAAA,CAAAL,EAAA,EAAW02B,CAAAA,CAAAA,CAAAA,CAAX,CAA2B,QAAA,CAAAl3B,GAAS,CAErCC,CAAAA,GAAAA,CAAC,MAAAY,CAAAA,CAAAA,CAAAL,EAAA,EAASH,CAAAA,CAAAA,CAAAA,CAAT,CAAa,QAAAqN,CAAAA,CAAAA,CAAAA,CAAS,CAE3B,CChCO,SAASypB,EAAQ,CAAA,CAAE,SAAAn3B,CAAU,CAAA,QAAA,CAAAwK,CAAS,CAAuB,CAAA,CAClE,GAAM,CAAE,OAAA,CAAA4sB,CAAQ,CAAA,CAAIlnB,WAAWiV,EAAuB,CAAA,CAChD/T,CAAagmB,CAAAA,CAAAA,EAAA,YAAAA,CACf,CAAA,MAAA,CAAQN,CAAQ,EAAA,CAZtB,IAAA32B,CAYyB,CAAA,OAAA,CAAAA,CAAAqK,CAAAA,CAAAA,EAAA,YAAAA,CAAU,CAAA,QAAA,CAASssB,CAAO,CAAA,EAAA,CAAA,GAA1B,KAAA32B,CAAiC,CAAA,IAAA,CAAA,CAAA,CACrD,GAAI,CAAA,CAAC22B,EAAQzvB,CAEVpH,GAAAA,GAAAA,CAACy2B,EAAsB,CAAA,QAAA,CAAtB,CAAyC,KAAO,CAAA,CAAE,OAAAI,CAAO,CAAA,CACvD,SAAA92B,CADkCqH,CAAAA,CAAAA,CAErC,CAGN,CAAA,CAAA,OAAOpH,IAAAqR,QAAA,CAAA,CAAG,QAAAF,CAAAA,CAAAA,CAAW,CACvB,CCEO,SAASimB,EAAal3B,CAAAA,CAAAA,CAAwC,CAAxC,IAAAC,CAAAA,CAAAD,EAAE,CAAAH,QAAAA,CAAAA,CAvB/B,CAuB6BI,CAAAA,CAAAA,CAAeC,EAAAC,CAAfF,CAAAA,CAAAA,CAAe,CAAb,UAAA,CAAA,CAAA,CAvB/B,IAAAD,CAwBE,CAAA,GAAM,CAAE,OAAA,CAAAi3B,CAAQ,CAAI/S,CAAAA,EAAAA,CAAiB,CACnC,OAASc,CAAAA,EAAAA,CACT,qBAAsB,oBACtB,CAAA,oBAAA,CAAsB,cACtB,CAAA,GAAA,CAAK,SACP,CAAC,CAAA,CACKzX,CAAWvN,CAAAA,CAAAA,CAAAA,CAAAi3B,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAS,MAAT,GAAA,IAAA,CAAAj3B,EAAmB,CAC9B+2B,CAAAA,CAAAA,CAA+Br2B,EAAAL,CAAA,CAAA,EAAA,CAChCH,GADgC,CAEnC,QAAA,CAAAqN,CACA,CAAA,OAAA,CAAA0pB,CACF,CACA,CAAA,CAAA,OAAOp3B,CACLC,CAAAA,GAAAA,CAACC,EAAAW,CAAAL,CAAAA,CAAAA,CAAA,EAAW02B,CAAAA,CAAAA,CAAAA,CAAX,CAA2B,QAAAl3B,CAAAA,CAAAA,CAAAA,CAAS,EAErCC,GAAC,CAAA,MAAA,CAAAY,EAAAL,CAAA,CAAA,EAAA,CAASH,CAAT,CAAA,CAAA,CAAa,SAAAqN,CAAS,CAAA,CAAA,CAE3B,CCrCe,SAAR4pB,EAAAA,CAAoCtO,CAAiC,CAAA,CAC1E,OAAO/oB,GAAAqR,CAAAA,QAAAA,CAAA,CAAG,QAAA,CAAA0X,EAAO,CACnB,CCoBO,SAASuO,EAAAA,CAGd1rB,EAA4D,CAC5D,GAAM,CAAE,QAAAlI,CAAAA,CAAAA,CAAU,OAAAX,CAAQ,CAAA,IAAA,CAAA8B,CAAK,CAAA,CAAI+G,EAC7BxB,CAAa2V,CAAAA,EAAAA,CAAiBrc,CAAUX,CAAAA,CAAM,EAC9Cw0B,CAAmC1yB,CAAAA,CAAAA,CAAK,GAAKuC,CAAAA,CAAAA,EAAQ,CACzD,IAAMtC,CAAAA,CAAI4Z,EACRA,CAAAA,EAAAA,CAAQtX,EAAK,UAAY,CAAA,SAAS,CAClC,CAAA,WAAA,CACA,UACF,CACA,CAAA,OAAOiX,EAAiBvZ,CAAAA,CAAC,CAC3B,CAAC,CAAA,CACK0yB,CAAkBnZ,CAAAA,EAAAA,CACtBK,GAAQA,EAAQhb,CAAAA,CAAAA,CAAU,WAAY,SAAS,CAAA,CAAG,YAAa,UAAU,CAC3E,CACA,CAAA,OAAO0G,GAAc,IAAQotB,EAAAA,CAAAA,IAAmBptB,CAC5CiT,CAAAA,EAAAA,CAAKjT,EAAYmtB,CAAa,CAAA,CAC9B,MACN,CAEO,SAASE,EACdnY,CAAAA,CAAAA,CACAvc,EAC6D,CAC7D,IAAMqH,EAAaktB,EAAqB,CAAA,CACtC,QAAUhY,CAAAA,CAAAA,CACV,OAAAvc,CACA,CAAA,IAAA,CAAM,CAAC,iBAAiB,CAC1B,CAAC,CAAA,CACD,OAAOqH,CAAAA,CAAAA,EAAA,YAAAA,CAAY,CAAA,aAAA,GAAiB,MAAQ,eAAmBA,GAAAA,CAAAA,CAC3DiT,GAAKjT,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAY,CAAA,aAAA,CAAe,CAAC,YAAc,CAAA,YAAY,CAAC,CAAA,CAC5D,MACN,CAEO,SAASstB,EACdpY,CAAAA,CAAAA,CACAvc,EAC2D,CAC3D,IAAMqH,CAAaktB,CAAAA,EAAAA,CAAqB,CACtC,QAAUhY,CAAAA,CAAAA,CACV,MAAAvc,CAAAA,CAAAA,CACA,KAAM,CAAC,mBAAmB,CAC5B,CAAC,EACD,OAAOqH,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAY,kBAAmB,IAAQ,EAAA,iBAAA,GAAqBA,EAC/DiT,EAAKjT,CAAAA,CAAAA,EAAA,YAAAA,CAAY,CAAA,eAAA,CAAiB,CAAC,sBAAsB,CAAC,CAC1D,CAAA,MACN,CAEO,SAASutB,GACdrY,CACAvc,CAAAA,CAAAA,CAC8C,CAC9C,IAAMqH,EAAaktB,EAAqB,CAAA,CACtC,SAAUhY,CACV,CAAA,MAAA,CAAAvc,EACA,IAAM,CAAA,CAAC,iBAAiB,CAC1B,CAAC,CACD,CAAA,OAAA,CAAOqH,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAY,aAAiB,GAAA,IAAA,EAAQ,eAAmBA,GAAAA,CAAAA,CAC3DiT,GAAKjT,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAY,aAAe,CAAA,CAAC,YAAY,CAAC,CAAA,CAC9C,MACN,CCxFO,SAAS9F,EAAWsF,CAAAA,CAAAA,CAAmB,CAC5C,GAAIA,GAAS,IAAM,CAAA,OAAO,KAI1B,CAAA,GAHI,MAAM,OAAQA,CAAAA,CAAK,CAGnB,EAAA,OAAOA,GAAU,QACnB,CAAA,OAAOA,CAAM,CAAA,MAAA,GAAW,EAE1B,GAAI,OAAOA,CAAU,EAAA,QAAA,CACnB,OAAO,MAAO,CAAA,IAAA,CAAKA,CAAK,CAAA,CAAE,SAAW,CAEvC,CAAA,MAAM,IAAI,KAAM,CAAA,oCAAoC,CACtD,CCGA,IAAMguB,EAA0B,CAAA,CAAC,iBAAiB,CAE3C,CAAA,SAASC,EACd5Y,CAAAA,CAAAA,CACiB,CACjB,OAAOA,CAAAA,CAAe,MAAQ0C,CAAAA,CAAAA,EACvBA,EAAQ,mBACNiW,CAAAA,EAAAA,CAAwB,SAASjW,CAAQ,CAAA,mBAAmB,EAD1B,KAE1C,CACH,CAqBA,SAAsBmW,GAAsBx4B,CAKL,CAAA,CAAA,OAAAC,CAAA,CAAA,IAAA,CAAA,SAAA,CAAA,UALK,CAC1C,OAAAwL,CAAAA,CAAAA,CACA,MAAAhI,CAAAA,CAAAA,CACA,QAAAyB,CACA,CAAA,KAAA,CAAA0S,CACF,CAAuC,CAAA,CACrC,IAAMtL,CAA8B,CAAA,CAClC,OAAS,CAAA,CAAC,sCAAsC,CAClD,CAAA,CACM7E,CAAM7D,CAAAA,CAAAA,CAAOH,CAAM,CACnBg1B,CAAAA,CAAAA,CAAc,MAAMhxB,CAAAA,CAAI,UAAU,MAAOvC,CAAAA,CAAO,EAChDd,CAAwB,CAAA,CAC5B,GAAIqH,CACJ,CAAA,eAAA,CAAiBhE,CAAI,CAAA,SAAA,CAAU,aAAagxB,CAAY,CAAA,EAAE,CAC1D,CAAA,iCAAA,CAAmC,IACrC,CACA,CAAA,OAAI7gB,CAAS,EAAA,IAAA,GAAMxT,EAAS,cAAiBwT,CAAAA,CAAAA,CAAAA,CAC7C,MAAMnQ,CAAI,CAAA,MAAA,CAAO,OAAOrD,CAAUkI,CAAAA,CAAM,CACjC,CAAA,MAAM7E,EAAI,MAAO,CAAA,QAAA,CAASgE,CAASa,CAAAA,CAAM,CAClD,CAEO,CAAA,CAAA,SAASosB,EACdrxB,CAAAA,CAAAA,CACuC,CApEzC,IAAAzG,CAAAA,CAAAC,EAqEE,IAAM83B,CAAAA,CAAAA,CAAAA,CAAmB/3B,EAAAyG,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAO,CAAA,SAAA,GAAP,YAAAzG,CAAkB,CAAA,MAAA,IAAW,CAChDg4B,CAAAA,CAAAA,CAAAA,CAAkB/3B,EAAAwG,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAO,CAAA,SAAA,GAAP,YAAAxG,CAAkB,CAAA,GAAA,CACvC2wB,GAAaA,CAAS,CAAA,0BAAA,CAAA,CAEzB,GAAImH,CACF,CAAA,OAAIC,CAAmB,EAAA,IAAA,CAAa,KAC7BA,CAAgB,CAAA,IAAA,EAAO,CAAA,GAAA,CAAKC,GAAW,CA3ElD,IAAAj4B,CAAAC,CAAAA,CAAAA,CAAA6G,EAkFM,OANqD,CACnD,EAAI9G,CAAAA,CAAAA,CAAAA,CAAAi4B,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAQ,EAAR,GAAA,IAAA,CAAAj4B,EAAc,EAClB,CAAA,KAAA,CAAA,CAAOC,CAAAg4B,CAAAA,CAAAA,EAAA,YAAAA,CAAQ,CAAA,IAAA,GAAR,IAAAh4B,CAAAA,CAAAA,CAAgB,GACvB,MAAQ6G,CAAAA,CAAAA,CAAAA,CAAAmxB,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAQ,kCAAR,IAAAnxB,CAAAA,CAAAA,CAA2C,CACnD,CAAA,MAAA,CAAQ,EACV,CAEF,CAAC,CAEH,CAAA,GAAIkxB,GAAmB,IAAM,CAAA,OAAO,IACpC,CAAA,IAAME,EAAkC,EAAC,CAEzC,OAAAF,CAAgB,CAAA,OAAA,CAASG,GAAY,CAxFvC,IAAAn4B,CAyFI,CAAA,GAAIm4B,GAAW,IAAM,CAAA,CACnB,GAAM,CAACC,CAAW,CAAID,CAAAA,CAAAA,CAClBC,CAAe,EAAA,IAAA,EACjBF,EAAsB,IACpBl4B,CAAAA,CAAAA,CAAAA,CAAAo4B,EAAY,+BAAZ,GAAA,IAAA,CAAAp4B,EAA+C,CACjD,EAEJ,CACF,CAAC,EACuD,CACtD,CACE,EAAI,CAAA,UAAA,CACJ,MAAO,UACP,CAAA,MAAA,CAAQk4B,CAAsB,CAAA,MAAA,CAAO,CAAC3xB,CAAGyS,CAAAA,CAAAA,GAAMzS,CAAIyS,CAAAA,CAAAA,CAAG,CAAC,CACvD,CAAA,MAAA,CAAQ,EACV,CACF,CAEF,CAgCA,SAAsBqf,EAAyBj5B,CAAAA,CAAAA,CAMK,QAAAC,CAAA,CAAA,IAAA,CAAA,SAAA,CAAA,UANL,CAC7C,MAAA,CAAAwD,EACA,OAAAgI,CAAAA,CAAAA,CACA,YAAAytB,CAAc,CAAA,IAAA,CACd,yBAAAC,CACA,CAAA,MAAA,CAAA7sB,CACF,CAAA,CAAoD,CAjJpD,IAAA1L,CAAAA,CAAAC,CAAA6G,CAAAA,CAAAA,CAkJE,IAAMD,CAAM7D,CAAAA,CAAAA,CAAOH,CAAM,CAAA,CACnB4D,EAAQ,MAAMI,CAAAA,CAAI,OAAO,QAASgE,CAAAA,CAAAA,CAASa,CAAM,CACjDssB,CAAAA,CAAAA,CAAkBF,EAA0BrxB,CAAAA,CAAK,EACvD,GAAIA,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,YAAa,IAAM,CAAA,MAAM,IAAI,KAAA,CAAM,oBAAoB,CAClE,CAAA,IAAMsxB,EAAmBtxB,CAAM,CAAA,SAAA,CAAU,SAAW,CAC9C,CAAA,CAACsa,CAAU,CAAA,CAAIta,EAAM,SAAU,CAAA,GAAA,CAAKmqB,CAAaA,EAAAA,CAAAA,CAAS,EAAE,CAClE,CAAA,GAAI7P,CAAc,EAAA,IAAA,CAAM,MAAM,IAAI,KAAA,CAAM,mBAAmB,CAAA,CAC3D,GAAIiX,CAAmB,EAAA,IAAA,EAAA,CAAQA,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAiB,MAAW,IAAA,CAAA,CACzD,MAAM,IAAI,MAAM,2BAA2B,CAAA,CAC7C,GAAID,CAAAA,CACF,GAAIO,CAAa,CAAA,CACf,GAAM,CAACE,CAAqB,EAAIR,CAAgB,CAAA,GAAA,CAAKC,CAAWA,EAAAA,CAAAA,CAAO,EAAE,CACrEO,CAAAA,CAAAA,EAAyB,IAC3B,GAAA,MAAM3xB,EAAI,SAAU,CAAA,MAAA,CAAO,CACzB,EAAA,CAAIka,EACJ,eAAiBla,CAAAA,CAAAA,CAAI,iBAAiB,YACpC2xB,CAAAA,CACF,CACF,CAAC,CAAA,EAEL,CACMD,KAAAA,CAAAA,EAA4B,OAC9B,MAAM1xB,CAAAA,CAAI,SAAU,CAAA,MAAA,CAAO,CACzB,EAAIka,CAAAA,CAAAA,CACJ,eAAiBla,CAAAA,CAAAA,CAAI,iBAAiB,YACpC0xB,CAAAA,CACF,CACF,CAAC,CAAA,CAAA,CAAA,aAIM3H,CAAY5wB,IAAAA,CAAAA,CAAAA,CAAAyG,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAO,SAAP,GAAA,IAAA,CAAAzG,CAAoB,CAAA,GAAI,CAC7C,GAAM,CAACw4B,CAAqB,GAC1B1xB,CAAA7G,CAAAA,CAAAA,CAAAA,CAAA2wB,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAU,6BAAV,IAAA3wB,CAAAA,MAAAA,CAAAA,CAAAA,CAAsC,GAAKg4B,CAAAA,CAAAA,EAAWA,EAAO,EAA7D,CAAA,GAAA,IAAA,CAAAnxB,CAAoE,CAAA,GAClE0xB,CAAyB,EAAA,IAAA,GAC3B,MAAM3xB,CAAAA,CAAI,UAAU,MAAO,CAAA,CACzB,GAAI+pB,CAAS,CAAA,EAAA,CACb,gBAAiB/pB,CAAI,CAAA,gBAAA,CAAiB,YACpC2xB,CAAAA,CACF,CACF,CAAC,CAAA,EAEL,CAEF,OAAO,MAAM3xB,CAAI,CAAA,MAAA,CAAO,QAASJ,CAAAA,CAAAA,CAAM,GAAIiF,CAAM,CACnD,GAiCA,SAAsB+sB,EAAAA,CAAqBr5B,EAMK,CAAAC,OAAAA,CAAAA,CAAA,IANL,CAAA,SAAA,CAAA,UAAA,CACzC,OAAAwD,CACA,CAAA,OAAA,CAAAgI,CACA,CAAA,eAAA,CAAAuU,EACA,eAAAG,CAAAA,CAAAA,CACA,aAAAmZ,CAAAA,CAAAA,CAAgB,KAClB,CAAgD,CAAA,CAC9C,IAAM7xB,CAAM7D,CAAAA,CAAAA,CAAOH,CAAM,CACzB,CAAA,GAAI,CAAC61B,CAAAA,EAAiBtZ,GAAmB,IAAQG,EAAAA,CAAAA,EAAmB,IAAM,CAAA,CACxE,IAAMlT,CAAU,CAAA,CACd,2BACA,CAAA,gBAAA,CACA,gBACF,CACA,CAAA,OAAA,MAAMxF,CAAI,CAAA,MAAA,CAAO,SAASgE,CAAS,CAAA,CACjC,OAAAwB,CAAAA,CACF,CAAC,CACD,CAAA,MAAMxF,CAAIuY,CAAAA,CAAe,EAAE,MAAO,CAAA,CAChC,EAAIG,CAAAA,CAAAA,CACJ,MAAO1Y,CAAI,CAAA,MAAA,CAAO,aAAagE,CAAO,CACxC,CAAC,CACD,CAAA,MAAMhE,CAAI,CAAA,MAAA,CAAO,OAAO,CACtB,EAAA,CAAIgE,CACJ,CAAA,cAAA,CAAgBhE,EAAIuY,CAAe,CAAA,CAAE,YAAaG,CAAAA,CAAe,CACnE,CAAC,CAAA,CACD,MAAM1Y,CAAIuY,CAAAA,CAAe,EAAE,MAAO,CAAA,CAChC,EAAIG,CAAAA,CAAAA,CACJ,QAAS,IACX,CAAC,CACM,CAAA,MAAM1Y,EAAI,MAAO,CAAA,QAAA,CAASgE,CAAS,CAAA,CACxC,QAAAwB,CACF,CAAC,CACH,CACA,OAAO,MAAMxF,CAAI,CAAA,MAAA,CAAO,MAAO,CAAA,CAC7B,GAAIgE,CACJ,CAAA,MAAA,CAAQ,IACV,CAAC,CACH,CAaA,CAAA,CAAA,SAAsB8tB,EAAmBv5B,CAAAA,CAAAA,CAGI,QAAAC,CAAA,CAAA,IAAA,CAAA,SAAA,CAAA,UAHJ,CACvC,KAAA,CAAAoH,EACA,MAAQ,CAAA,CAAE,WAAAlE,CAAAA,CAAAA,CAAa,SAAAH,CAAS,CAClC,CAA6C,CAAA,CArR7C,IAAApC,CAAAC,CAAAA,CAAAA,CAsRE,GAAIsC,CAAAA,EAAe,KAAM,MAAM,IAAI,MAAM,uBAAuB,CAAA,CAChE,GAAIH,CAAY,EAAA,IAAA,CAAM,MAAM,IAAI,MAAM,mBAAmB,CAAA,CACzD,GAAM,CAAE,KAAAC,CAAM,CAAA,MAAA,CAAAM,CAAO,CAAA,CAAIR,GAAUC,CAAQ,CAAA,CAC3C,GAAIC,CAAQ,EAAA,IAAA,CAAM,MAAM,IAAI,KAAA,CAAM,eAAe,CAAA,CACjD,IAAMQ,CAAS,CAAA,MAAMD,EAAsB,CAAA,CACzC,YAAAL,CACA,CAAA,QAAA,CAAAH,CACA,CAAA,MAAA,CAAQ,CACN,WAAAG,CAAAA,CAAAA,CACA,KAAAF,CACA,CAAA,OAAA,CAASoE,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,EAClB,CACF,CAAC,CACK4H,CAAAA,CAAAA,CAAAA,CAAAA,CACJrO,CAAA6C,CAAAA,CAAAA,EAAA,YAAAA,CAAQ,CAAA,KAAA,GAAR,IAAA7C,CAAAA,MAAAA,CAAAA,CAAAA,CAAe,WAAY,IACvBC,CAAAA,CAAAA,CAAAA,CAAA4C,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAQ,KAAR,GAAA,IAAA,CAAA,MAAA,CAAA5C,CAAe,CAAA,QAAA,CACf2K,GAAmB,CACjB,IAAA,CAAAvI,CACA,CAAA,OAAA,CAASoE,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,EAChB,CAAA,WAAA,CAAAlE,EACA,eAAiB,CAAA,UAAA,CACjB,OAAAI,CACF,CAAC,EACiB,CAAC,MAAA,CAAO,QAAS,CAAA,QAAA,CAAS,SAAS,OAAO,CAAA,CAEhE,MAAO,CAAA,QAAA,CAAS,QAEhB,CAAA,MAAA,CAAO,IAAK0L,CAAAA,CAAAA,CAAM,MAAM,EAE5B,CAAA,CAAA,CCjTO,SAASuqB,EACdT,CAAAA,CAAAA,CACAU,EACiB,CACjB,OAAOV,CAAQ,CAAA,IAAA,CAAK,CAAC5xB,CAAGyS,CAAAA,CAAAA,GAAM,CAC5B,IAAM8f,EAASD,CAAO,CAAA,OAAA,CAAQtyB,CAAE,CAAA,mBAAmB,EAC7CwyB,CAASF,CAAAA,CAAAA,CAAO,QAAQ7f,CAAE,CAAA,mBAAmB,EACnD,OAAI8f,CAAAA,GAAW,EAAMC,EAAAA,CAAAA,GAAW,GAAW,CACvCD,CAAAA,CAAAA,GAAW,EAAW,CAAA,CAAA,CACtBC,IAAW,EAAW,CAAA,EAAA,CACnBD,CAASC,CAAAA,CAClB,CAAC,CACH,CC2DA,IAAIC,EAAAA,CAAkB,MAEf,SAASC,EAAAA,CAAcj5B,CAYP,CAAA,CAZO,IAAAC,CAAAD,CAAAA,CAAAA,CAC5B,CAAAH,QAAAA,CAAAA,CAAAA,CACA,UAAA8P,CACA,CAAA,WAAA,CAAAupB,EACA,MAAArQ,CAAAA,CAAAA,CAAS,aACT,kBAAAsQ,CAAAA,CAAAA,CACA,6BAAAC,CAAAA,CAAAA,CACA,gBAAAC,CACA,CAAA,IAAA,CAAA/V,CACA,CAAA,OAAA,CAAAjT,EACA,MAAA+c,CAAAA,CArFF,CA2E8BntB,CAAAA,CAAAA,CAWzBC,EAAAC,CAXyBF,CAAAA,CAAAA,CAWzB,CAVH,UACA,CAAA,WAAA,CACA,cACA,QACA,CAAA,oBAAA,CACA,+BACA,CAAA,iBAAA,CACA,OACA,SACA,CAAA,QAAA,CAAA,CAAA,CAGA,GAAM,CAACmc,EAASsC,CAAU,CAAA,CAAI7N,QAAS,CAAA,IAAI,EACrC,CAACyoB,CAAAA,CAAiBC,CAAkB,CAAI1oB,CAAAA,QAAAA,CAAS,EAAE,CACnD,CAAA,CAAC2oB,CAAsBC,CAAAA,CAAuB,EAAI5oB,QAAS,CAAA,KAAK,CAChE,CAAA,CACJ,eAAAkO,CACA,CAAA,sBAAA,CAAAmD,CACA,CAAA,gBAAA,CAAAhD,EACA,UAAYwa,CAAAA,CAAAA,CACZ,aAAAza,CAAAA,CAAAA,CACA,iBAAAI,CACA,CAAA,MAAA,CAAAxc,CACF,CAAA,CAAIqhB,GAAiB,CACnB,OAAA,CAAS/D,CACT,CAAA,oBAAA,CAAsB,0BACtB,oBAAsB,CAAA,eAAA,CACtB,GAAK,CAAA,gBACP,CAAC,CACK,CAAA,CAAE,MAAA1Z,CAAM,CAAA,CAAIsJ,WAAWX,CAAY,CAAA,CACnC,CAAE,yBAAA,CAAA+J,CAA0B,CAAIpJ,CAAAA,UAAAA,CAAWxO,CAAe,CAAA,CAC1D,CAAE,MAAAgxB,CAAAA,CAAO,CAAIxiB,CAAAA,UAAAA,CAAW6iB,EAAiB,CAC/C7hB,CAAAA,SAAAA,CAAU,IAAM,CACd,GAAIgO,GAAkB,IAAQ,EAAA,CAAC3a,EAAQ2a,CAAAA,CAAc,GAAKsa,CAAiB,CAAA,CACzE,GAAM,CAACra,CAAa,CAAI2Y,CAAAA,EAAAA,CAA4B5Y,CAAc,CAAA,CAC9D,CAACE,CAAiBD,EAAAA,CAAAA,EAAiB,MACmB3f,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CACtDq6B,EAAqB,CAAE,OAAA,CAAS,IAAK,CAAC,EACtCH,CAAmBva,CAAAA,CAAAA,CAAc,EAAE,CAAA,CACnC,IAAMG,CAAkBH,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAe,GACjCI,CACJJ,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAe,oBACjB,MAAME,CAAAA,CAAiB,CAAE,eAAA,CAAAE,EAAiB,eAAAD,CAAAA,CAAgB,CAAC,CAAA,CAC3D,IAAMgT,CAAK,CAAA,MAAM9S,CAAiB,CAAA,CAChC,gBAAAD,CACA,CAAA,KAAA,CAAA3Y,CACF,CAAC,CAAA,CACG0rB,GAAMnT,CAAiB3O,EAAAA,CAAAA,EAAW,IACpCA,GAAAA,CAAAA,CAAQ,CAAE,OAAS2O,CAAAA,CAAAA,CAAe,KAAAvY,CAAAA,CAAAA,CAAO,cAAe0rB,CAAG,CAAC,CAC5D,CAAA,UAAA,CAAW,IAAM,CACfzT,CAAAA,CAAW,KAAK,EAClB,CAAA,CAAG,GAAG,CAERgb,CAAAA,CAAAA,CAAAA,CAAqB,CAAE,OAAA,CAAS,KAAM,CAAC,EACzC,CAGJ,EAAA,CACF,EAAG,CAAC,CAACt1B,EAAQ2a,CAAAA,CAAc,EAAGsa,CAAe,CAAC,EAC9CtoB,SAAU,CAAA,IAAM,CAEZgO,CAAkB,EAAA,IAAA,EAClB,CAACya,CAAAA,EACD,CAACR,EACD,EAAA,CAAC50B,EAAQ2a,CAAAA,CAAc,IAEvBia,EAAkB,CAAA,IAAA,CACdI,CAAiC,EAAA,IAAA,EAAQ,CAACC,CACEh6B,EAAAA,CAAAA,CAAA,IAE5C,CAAA,IAAA,CAAA,WAAA,CAAA,GADiB0f,EAAe,MAAW,GAAA,CAAA,CAC7B,CACZ,GAAM,CAACC,CAAa,CAAA,CAAID,CAAA,EAAA,IAAA,CAAAA,EAAkB,EAAC,CAC3C,GAAIC,CAAAA,EAAiB,CAACC,CAAe,CAAA,CACnCya,EAAqB,CAAE,OAAA,CAAS,IAAK,CAAC,CAAA,CACtCH,CAAmBva,CAAAA,CAAAA,CAAc,EAAE,CACnC,CAAA,IAAMG,CAAkBH,CAAAA,CAAAA,EAAA,YAAAA,CAAe,CAAA,EAAA,CACjCI,CACJJ,CAAAA,CAAAA,EAAA,YAAAA,CAAe,CAAA,mBAAA,CACjB,MAAME,CAAiB,CAAA,CAAE,gBAAAE,CAAiB,CAAA,eAAA,CAAAD,CAAgB,CAAC,EAC3D,IAAIjV,CAAAA,CAAkD,EAAC,CACnDrH,GAAU,IAAQuc,EAAAA,CAAAA,GAAoB,iBACxClV,GAAAA,CAAAA,CAAaqtB,GAAoBnY,CAAiBvc,CAAAA,CAAM,GAEtDA,CAAU,EAAA,IAAA,EAAQuc,IAAoB,mBACxClV,GAAAA,CAAAA,CAAastB,EACXpY,CAAAA,CAAAA,CACAvc,CACF,CAEF,CAAA,CAAA,IAAMsvB,CAAK,CAAA,MAAM9S,EAAiB,CAChC,eAAA,CAAAD,CACA,CAAA,KAAA,CAAA3Y,EACA,UAAAyD,CAAAA,CACF,CAAC,CACGioB,CAAAA,CAAAA,EAAMnT,GAAiB3O,CAAW,EAAA,IAAA,GACpCopB,CAAwB,CAAA,IAAI,EAC5BppB,CAAQ,CAAA,CAAE,OAAS2O,CAAAA,CAAAA,CAAe,MAAAvY,CAAO,CAAA,aAAA,CAAe0rB,CAAG,CAAC,EAC5D,UAAW,CAAA,IAAM,CACfzT,CAAW,CAAA,KAAK,EAClB,CAAG,CAAA,GAAG,CAEJvF,CAAAA,CAAAA,CAAAA,EACFA,GAEFugB,CAAAA,CAAAA,CAAqB,CAAE,OAAA,CAAS,KAAM,CAAC,EACzC,CACI,OAAON,GAAkC,UAC3CA,EAAAA,CAAAA,GAEJ,CACE,KAAA,UAAA,CAAW,IAAM,CACf1a,CAAAA,CAAW,KAAK,EAClB,EAAG,GAAG,EAEV,CAIN,CAAA,EAAA,CAAA,CAAG,CAAC,CAACta,EAAAA,CAAQ2a,CAAc,CAAA,CAAA,CAAGtY,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,iBAAkB,IAAI,CAAC,EAC5DsK,SAAU,CAAA,KACJgO,CACeA,GAAAA,CAAAA,CAAe,SAAW,CAC3Bqa,EAAAA,CAAAA,CACVna,CACF,EAAA,UAAA,CAAW,IAAM,CACfP,CAAAA,CAAW,KAAK,EAClB,EAAG,GAAG,CAAA,CAGRA,CAAW,CAAA,KAAK,GAGhBwD,CAAwBqX,EAAAA,CAAAA,CAAmBrX,CAAsB,CAAA,CAC9D,IAAM,CACXxD,CAAAA,CAAW,IAAI,CAAA,CACf6a,EAAmB,EAAE,EACvB,CACC,CAAA,CAAA,CAACxa,EAAgBmD,CAAsB,CAAC,EAE3C,IAAMyX,CAAAA,CACJ5a,GAAkB,IAAQqO,EAAAA,CAAAA,EAAU,IAChCwL,CAAAA,EAAAA,CAAmB7Z,EAAgBqO,CAAM,CAAA,CACzCrO,CAEA9N,CAAAA,CAAAA,CAAa0oB,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CACf,MAAQlY,CAAAA,CAAAA,EAAY,CACpB,GAAI,KAAA,CAAM,QAAQ6B,CAAI,CAAA,CAAG,CACvB,IAAMyQ,CAAAA,CAAStS,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAS,mBACxB,CAAA,OAAO,EAAC6B,CAAAA,EAAA,MAAAA,CAAM,CAAA,QAAA,CAASyQ,CACzB,CAAA,CAAA,CAAA,KAAA,GAAW,OAAOzQ,CAAS,EAAA,UAAA,CACzB,OAAOA,CAAK7B,CAAAA,CAAO,EAErB,OAAO,KACT,CACC,CAAA,CAAA,GAAA,CAAI,CAACA,CAAS,CAAA,CAAA,GAAM,CACnB,IAAMmY,EAAW1X,CAA2BT,IAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAS,IAC/CoY,CAAqB,CAAA,CACzB,OAAApY,CAAAA,CAAAA,CACA,mBAAA0X,CACA,CAAA,eAAA,CAAAG,CACA,CAAA,kBAAA,CAAAC,EACA,eAAAF,CAAAA,CACF,CACMja,CAAAA,CAAAA,CAAkBqC,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAS,mBAC3BqY,CAAAA,CAAAA,CAAeX,EAEVtxB,CAAkCxI,EAAAA,CAAAA,CAAA,sBAlPnD,IAAAW,CAAAA,CAmPY6H,EAAE,eAAgB,EAAA,CAClB,IAAMsX,CAAAA,CAAkBsC,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAS,EAC3BS,CAAAA,CAAAA,CAAAA,CAAyBliB,EAAAyG,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAO,CAAA,cAAA,GAAP,YAAAzG,CAAuB,CAAA,EAAA,CAEtD,GADImf,CAAoB+C,GAAAA,CAAAA,EACpBqQ,IAAW,SAAW,CAAA,OAC1BmH,CAAqB,CAAA,CAAE,QAAS,IAAK,CAAC,CACtCH,CAAAA,CAAAA,CAAmB9X,EAAQ,EAAE,CAAA,CAC7B,GAAM,CAAE,MAAOsY,CAAa,CAAA,CAAI,MAAM7a,CAAiB,CAAA,CACrD,gBAAAE,CACA,CAAA,eAAA,CAAAD,CACF,CAAC,EACG9O,CAASA,EAAAA,CAAAA,CAAQ,CAAE,OAAA,CAAAoR,EAAS,KAAOsY,CAAAA,CAAa,CAAC,CAAA,CACrDL,EAAqB,CAAE,OAAA,CAAS,KAAM,CAAC,EACzC,CAfA,CAAA,CAAA,MAAA,CAgBJ,OACE55B,GAAAA,CAAC,MAAAY,CAAAL,CAAAA,CAAAA,CAAA,CACC,aAAA,CAAa+e,EAEb,SAAW,CAAA,CAAA,EAAGzP,CAAA,EAAA,IAAA,CAAAA,EAAa,EAAE,CAAA,CAAA,EAC3BiqB,GAAYV,CAAe,EAAA,IAAA,CAAOA,EAAc,EAClD,CAAA,CAAA,CACA,OAAUrxB,CAAAA,CAAAA,EAAM,CACViyB,CAAe,EAAA,IAAA,EACjBA,CAAYjyB,CAAAA,CAAC,EAEjB,CACI3H,CAAAA,CAAAA,CAAAA,CAAAA,CAXL,CAaC,QAAA,CAAAJ,IAACugB,EAA6B,CAAA,QAAA,CAA7B,CAAsC,KAAOwZ,CAAAA,CAAAA,CAC3C,SAAAh6B,CACH,CAAA,CAAA,CAAA,CAAA,CAbK,CAcP,CAEJ,GACF,OAAQuc,CAAAA,CAA8B+a,EAAmBtO,CAAAA,CAAM,EAA7C/oB,GAAAqR,CAAAA,QAAAA,CAAA,CAAG,QAAA,CAAAF,EAAW,CAClC,CCvQO,SAAS+oB,EAAkBz5B,CAAAA,CAAAA,CAA2B,CAC3D,GAAM,CAAE,OAAAkhB,CAAAA,CAAQ,CAAIyC,CAAAA,EAAAA,CAAiB,CACnC,OAAS7D,CAAAA,EAAAA,CACT,oBAAsB,CAAA,eAAA,CACtB,qBAAsB,mBACtB,CAAA,GAAA,CAAK,SACP,CAAC,CAAA,CACK8F,EAAY1E,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAS,CAAA,IAAA,CACrBwY,EAAUxY,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAS,CAAA,mBAAA,CACnByY,EAAiBzY,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAS,CAAA,eAAA,CAC1BzgB,EAAcX,CAAA,CAAA,CAClB,QAAA45B,CACA,CAAA,SAAA,CAAA9T,EACA,cAAA+T,CAAAA,CAAAA,CAAAA,CACG35B,CAEL,CAAA,CAAA,OAAOA,EAAM,QACXT,CAAAA,GAAAA,CAACC,CAAAW,CAAAA,CAAAA,CAAAL,EAAA,EAAWW,CAAAA,CAAAA,CAAAA,CAAX,CAAyB,QAAA,CAAAT,EAAM,QAAS,CAAA,CAAA,CAAA,CAEzCT,IAAC,OAAAY,CAAAA,CAAAA,CAAAL,EAAA,CAAM,OAAA,CAAS45B,CAAa15B,CAAAA,CAAAA,CAAAA,CAAAA,CAA5B,CACE,QAAA4lB,CAAAA,CAAAA,CAAAA,CACH,CAEJ,CC1BO,SAASgU,EAAAA,CAAmB55B,EAA2B,CAC5D,IAKIP,CAAAO,CAAAA,CAAAA,CAJF,QAAAilB,CAAS,CAAA,WAAA,CACT,IAAAjiB,CAAAA,CAAAA,CAAO,SACP,SAAA62B,CAAAA,CAAAA,CAAY,MAhBhB,CAAA,CAkBMp6B,EADCE,CAAAC,CAAAA,CAAAA,CACDH,CADC,CAAA,CAHH,SACA,MACA,CAAA,WAAA,CAAA,CAAA,CAGI,CAAE,OAAA,CAAAyhB,CAAQ,CAAIyC,CAAAA,EAAAA,CAAiB,CACnC,OAAA,CAAS7D,GACT,oBAAsB,CAAA,eAAA,CACtB,oBAAsB,CAAA,oBAAA,CACtB,IAAK,SACP,CAAC,EACK,CAAC2F,CAAAA,CAAOC,CAAQ,CAAIpV,CAAAA,QAAAA,CAAS,EAAE,CAAA,CAC/B,CAACwpB,CAAYC,CAAAA,CAAa,CAAIzpB,CAAAA,QAAAA,CAAS,CAAC,CAC9CE,CAAAA,SAAAA,CAAU,IAAM,CACd,GAAI0Q,CAAS,CAAA,CACX,IAAMvhB,CAAIolB,CAAAA,EAAAA,CAAU,CAAE,IAAM,CAAA,OAAA,CAAS,IAAA/hB,CAAAA,CAAAA,CAAM,OAAAiiB,CAAQ,CAAA,GAAA,CAAK/D,CAAQ,CAAC,EACjEwE,CAAS/lB,CAAAA,CAAC,CACV,CAAA,IAAMqL,EAAI+Z,EAAkB,CAAA,CAC1B,KAAM,OACN,CAAA,IAAA,CAAA/hB,EACA,MAAQ,CAAA,OAAA,CACR,GAAKke,CAAAA,CACP,CAAC,CACD6Y,CAAAA,CAAAA,CAAc/uB,CAAC,EACjB,CACA,OAAO,IAAY,CACjB0a,CAAAA,CAAS,EAAE,CACXqU,CAAAA,CAAAA,CAAc,CAAC,EACjB,CACF,CAAG,CAAA,CAAC7Y,CAAO,CAAC,EACZ,IAAMzgB,CAAAA,CAAcX,CAAA,CAAA,CAClB,UAAA+5B,CACA,CAAA,KAAA,CAAApU,CACA,CAAA,UAAA,CAAAqU,GACGn6B,CAEL,CAAA,CAAA,OAAOK,EAAM,QACXT,CAAAA,GAAAA,CAACC,EAAAW,CAAAL,CAAAA,CAAAA,CAAA,EAAWW,CAAAA,CAAAA,CAAAA,CAAX,CAAyB,QAAAT,CAAAA,CAAAA,CAAM,QAAS,CAAA,CAAA,CAAA,CAEzCT,IAAC,MAAAY,CAAAA,CAAAA,CAAAL,CAAA,CAAA,EAAA,CAASH,GAAT,CAAa,QAAA,CAAAm6B,IAAe,CAAID,CAAAA,CAAAA,CAAYpU,GAAM,CAEvD,CC7BO,SAASuU,GAAyBh6B,CAA2B,CAAA,CA1BpE,IAAAN,CA2BE,CAAA,IAA2BD,EAAAO,CAAnB,CAAA,CAAA,QAAA,CAAAi6B,CA3BV,CAAA,CA2B6Bx6B,EAANE,CAAAC,CAAAA,CAAAA,CAAMH,CAAN,CAAA,CAAb,aACF,CAAE,OAAA,CAAAyhB,CAAS,CAAA,eAAA,CAAA6X,EAAiB,kBAAAC,CAAAA,CAAAA,CAAoB,kBAAAJ,CAAAA,CAAmB,EACvEjV,EAAiB,CAAA,CACf,OAAS7D,CAAAA,EAAAA,CACT,qBAAsB,eACtB,CAAA,oBAAA,CAAsB,0BACtB,CAAA,GAAA,CAAK,SACP,CAAC,CAAA,CACG,CAAE,KAAA,CAAA5Z,CAAM,CAAIsJ,CAAAA,UAAAA,CAAWX,CAAY,CACnC,CAAA,CAAE,iBAAA8P,CAAkB,CAAA,UAAA,CAAAR,CAAW,CAAA,CAAI3O,WAAWoQ,CAAoB,CAAA,CAClE,CAAE,MAAA,CAAAoS,CAAO,CAAIxiB,CAAAA,UAAAA,CAAW6iB,EAAiB,CAAA,CACzC,CAAC5iB,CAAUyqB,CAAAA,CAAW,EAAI5pB,QAAS,CAAA,KAAK,EACxChG,CAAUpE,CAAAA,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,KAAM,EACvB2Y,CAAAA,CAAAA,CAAkBqC,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAS,mBAC3BtC,CAAAA,CAAAA,CAAAA,CAAkBlf,CAAAwhB,CAAAA,CAAAA,EAAA,YAAAA,CAAS,CAAA,EAAA,GAAT,KAAAxhB,CAAe,CAAA,EAAA,CACjCqD,EAAO,CAAWuH,QAAAA,EAAAA,CAAO,CACzBorB,CAAAA,CAAAA,CAAAA,CAAUqD,KAAoB7X,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAS,CAAA,EAAA,CAAA,CAC7C1Q,UAAU,IAAM,CAEZ0pB,CADElI,CAAAA,CAAAA,GAAW,SACG,EAIpB,CAAA,CAAG,CAACA,CAAM,CAAC,EAEX,IAAMmI,CAAAA,CACJ7yB,CACkBxI,EAAAA,CAAAA,CAAA,sBAElB,GADAwI,CAAAA,CAAE,eAAgB,EAAA,CACd,CAAAouB,CAGJ,CAAA,CAAA,GAFIsD,CAAoBA,EAAAA,CAAAA,CAAmBpa,CAAe,CAC1DT,CAAAA,CAAAA,CAAW,CAAE,OAAS,CAAA,IAAK,CAAC,CACxB,CAAA,CAACya,CAAoB,CAAA,CACvB,GAAM,CAAE,KAAA,CAAA1yB,CAAM,CAAA,CAAI,MAAMyY,CAAiB,CAAA,CACvC,eAAAE,CAAAA,CAAAA,CACA,gBAAAD,CACF,CAAC,EACGqb,CAAUA,EAAAA,CAAAA,CAAS,CAAE,OAAA/Y,CAAAA,CAAAA,CAAS,KAAAhb,CAAAA,CAAM,CAAC,EAC3C,CACAiY,CAAW,CAAA,CAAE,QAAS,KAAM,CAAC,EAC/B,CAAA,CAAA,CAAA,CACMvW,EAAKsZ,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAS,mBACdzgB,CAAAA,CAAAA,CAAcX,EAAA,CAClB,cAAA,CAAAq6B,CACA,CAAA,OAAA,CAAAzE,EACA,EAAA9tB,CAAAA,CAAAA,CACA,IAAA7E,CAAAA,CAAAA,CACA,SAAA0M,CACGzP,CAAAA,CAAAA,CAAAA,CAAAA,CAEL,OAAOA,CAAAA,CAAM,SACXT,GAACC,CAAAA,CAAAA,CAAAW,CAAAL,CAAAA,CAAAA,CAAA,GAAWW,CAAX,CAAA,CAAA,CAAyB,QAAAT,CAAAA,CAAAA,CAAM,UAAS,CAEzCT,CAAAA,GAAAA,CAAC,OAAAO,CAAAA,CAAAA,CAAA,CACC,KAAOiD,CAAAA,CAAAA,CACP,IAAK,CAAA,OAAA,CACL,GAAI6E,CACJ,CAAA,QAAA,CAAWN,GAAM,CACf6yB,CAAAA,CAAe7yB,CAAC,EAClB,CAAA,CACA,OAASouB,CAAAA,CAAAA,CACT,SAAUjmB,CACN9P,CAAAA,CAAAA,CAAAA,CACN,CAEJ,CC7DO,SAASy6B,EAAwBp6B,CAAAA,CAAAA,CAA2B,CACjE,GAAM,CAAE,QAAAV,CAAAA,CAAAA,CAAU,OAAAgD,CAAO,CAAA,CAAItC,CACvB,CAAA,CAACwB,EAAO2F,CAAQ,CAAA,CAAIuN,WACxB+K,EACApB,CAAAA,EACF,EACM,CACJ,KAAA,CAAAnY,CACA,CAAA,QAAA,CAAA8V,EACA,cAAAjQ,CAAAA,CAAAA,CACA,OAAAD,CAAAA,CAAAA,CACA,qBAAAK,CACA,CAAA,WAAA,CAAApE,CACA,CAAA,aAAA,CAAA0E,CACF,CAAIkX,CAAAA,EAAAA,CAAiB,CACnB,OAAA,CAAS9U,EACT,oBAAsB,CAAA,gBAAA,CACtB,oBAAsB,CAAA,yBAAA,CACtB,IAAK,OACP,CAAC,CACKwrB,CAAAA,CAAAA,CAAc7qB,WAAWgF,CAAoB,CAAA,CACnD,SAAe8lB,CAAAA,EAA+B,QAAAx7B,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CAC5CoH,IAAU,MAAMqY,EAAAA,CAAkB,CAAE,KAAArY,CAAAA,CAAAA,CAAO,QAAAiB,CAAAA,CAAS,CAAC,CACvD,EAAA,CAAA,CAAA,CACAqJ,SAAU,CAAA,IAAM,CACT1E,CAAA,EAAA,IAAA,EAAAA,CAAS,CAAA,QAAA,CAAS,6BAUXW,CAAA,EAAA,IAAA,EAAAA,EAAe,yBACzBN,EAAAA,CAAAA,CAAqB,CACnB,iBAAmB,CAAA,CACjB,yBAA2B,CAAA,IAAA,CAC3B,eAAgB,IAChB,CAAA,cAAA,CAAgB,IAChB,CAAA,yCAAA,CAA2C,KAC3C,iBAAmB,CAAA,IACrB,CACF,CAAC,EAlBDA,CAAqB,CAAA,CACnB,YAAa,CACX,2BAAA,CACA,iBACA,gBACA,CAAA,yCAAA,CACA,iBACF,CACF,CAAC,CAYC7J,CAAAA,CAAAA,EAAUuB,EAAQrC,CAAAA,CAAAA,CAAM,MAAM,CAChC6d,EAAAA,EAAAA,CAAuB/c,CAAQ6E,CAAAA,CAAQ,EACrCkzB,CAAen0B,EAAAA,CAAAA,EAAS,CAAC1E,CAAAA,CAAM,gBACjC84B,CAAc,EAAA,CAEZp0B,CAAA,EAAA,IAAA,EAAAA,EAAO,cACTiB,EAAAA,CAAAA,CAAS,CACP,IAAA,CAAM,mBACN,OAAS,CAAA,CACP,aAAejB,CAAAA,CAAAA,EAAA,YAAAA,CAAO,CAAA,cACxB,CACF,CAAC,CAAA,CAAA,CAECA,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,cAAmB,IAAA,IAAA,GAE5BsD,GAAsB,yCAA2C,CAAA,OAAO,CACxErC,CAAAA,CAAAA,CAAS,CACP,IAAM,CAAA,kBAAA,CACN,OAAS,CAAA,CACP,cAAe,MACjB,CACF,CAAC,CAEL,EAAA,CAAA,CAAG,CACDjB,CACAm0B,CAAAA,CAAAA,CACAvuB,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAS,MACT,CAAA,MAAA,CAAO,IAAKW,CAAAA,CAAAA,EAAA,KAAAA,CAAiB,CAAA,EAAE,CAAA,CAAE,MACnC,CAAC,CAAA,CACD,IAAMkI,CAAepC,CAAAA,OAAAA,CAAQ,IACpBpS,CAAAL,CAAAA,CAAAA,CAAA,EACF0B,CAAAA,CAAAA,CAAAA,CADE,CAEL,UAAY,CAAA,CAAC,CAAE,OAAA,CAAAqa,CAAQ,CAA4B,GAAA,CACjD6D,EAA4B,CAAA,UAAA,CAAW,CAAE,OAAA7D,CAAAA,CAAAA,CAAS,SAAA1U,CAAS,CAAC,EAC9D,CACA,CAAA,aAAA,CAAe,CAAC,CAAE,IAAAlH,CAAI,CAAA,GAA2B,CAC/Cme,EAAAA,CAAc,CAAE,GAAAne,CAAAA,CAAAA,CAAK,QAAAkH,CAAAA,CAAS,CAAC,EACjC,CAAA,CACA,uBAAyB5D,CAAwB,EAAA,CAC/Cmc,GAA4B,sBAAuBnc,CAAAA,CAAAA,CAAQ4D,CAAQ,EACrE,EACA,gBAAyB6d,CAAAA,CAAAA,EAAWlmB,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CAClC,aAAM4gB,EAA4B,CAAA,gBAAA,CAAiBvf,CAAAL,CAAAA,CAAAA,CAAA,GAC9CklB,CAD8C,CAAA,CAAA,CAEjD,OAAQqV,CACR,CAAA,WAAA,CAAAtyB,EACA,KAAA7B,CAAAA,CAAAA,CACA,QAAAiB,CAAAA,CAAAA,CACA,eAAA4E,CACF,CAAA,CAAC,CACH,CAAA,CAAA,CAAA,gBAAA,CAAyBiZ,GAAWlmB,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CAClC,OAAM4gB,MAAAA,EAAAA,CAA4B,iBAAiBvf,CAAAL,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,GAC9C0B,CACAwjB,CAAAA,CAAAA,CAAAA,CAAAA,CAF8C,CAGjD,MAAQqV,CAAAA,CAAAA,CACR,QAAAlzB,CAAAA,CAAAA,CACA,SAAA6U,CACA,CAAA,WAAA,CAAAjU,CACA,CAAA,KAAA,CAAA7B,CACF,CAAC,CAAA,CAAA,CAAA,CAAA,CACH,mBAA4B8e,CAAAA,CAAAA,EAAclmB,EAAA,IACxC,CAAA,IAAA,CAAA,WAAA,CAAA,MAAM4gB,EAA4B,CAAA,mBAAA,CAAoBvf,EAAAL,CAAA,CAAA,EAAA,CACjDklB,CADiD,CAAA,CAAA,CAEpD,OAAQqV,CACR,CAAA,QAAA,CAAAlzB,CACF,CAAA,CAAC,EACH,CACA,CAAA,CAAA,oBAAA,CAA6B6d,CAAclmB,EAAAA,CAAAA,CAAA,sBACzC,MAAM4gB,EAAAA,CAA4B,qBAAqBvf,CAAAL,CAAAA,CAAAA,CAAA,GAClDklB,CADkD,CAAA,CAAA,CAErD,QAAA7d,CAAAA,CAAAA,CACA,OAAQkzB,CACR,CAAA,WAAA,CAAAtyB,CACA,CAAA,OAAA,CAAS7B,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,EAClB,CAAA,CAAC,EACH,CACF,CAAA,CAAA,CAAA,CACC,CAAC1E,CAAK,CAAC,EACV,OACEjC,GAAAA,CAACqgB,CAAqB,CAAA,QAAA,CAArB,CAA8B,KAAOjL,CAAAA,CAAAA,CACnC,QAAArV,CAAAA,CAAAA,CACH,CAEJ,CCxIO,IAAMi7B,EAAAA,CAA8B,EAAC,CAEtCC,GAAuBr7B,aAC3Bo7B,CAAAA,EACF,CAEOE,CAAAA,EAAAA,CAAQD,GCpBA,SAARE,EAAAA,EAA2C,CAChD,IAAMC,CAAAA,CAAc,MAAQ,EAAA,IAAA,EAAA,MAAA,CAAA,MAAA,CAAS,OAAO,MAAO,CAAA,KAAA,CAAQ,EACrDC,CAAAA,CAAAA,CAAe,qBAAQ,MAAS,CAAA,MAAA,CAAO,OAAO,MAAS,CAAA,EAAA,CACvDC,EAAa,MAAQ,EAAA,IAAA,EAAA,MAAA,CAAA,MAAA,CAAS,MAAO,CAAA,MAAA,CAAO,WAAa,EACzDC,CAAAA,CAAAA,CAAY,MAAQ,EAAA,IAAA,EAAA,MAAA,CAAA,SAAA,CAAY,OAAO,SAAU,CAAA,SAAA,CAAY,EAC7DC,CAAAA,CAAAA,CAAc,qBAAQ,SAAY,CAAA,SAAA,CAAU,aAAgB,CAAA,KAAA,CAC5DC,EACJ,uFAEEC,CAAAA,CAAAA,CAAW,EACX,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAQ,YAAWA,CAAW,CAAA,MAAA,CAAO,SAAU,CAAA,QAAA,CAAA,CAGnD,IAAMC,CADI,CAAA,IAAI,IAAK,EAAA,CACM,mBAazB,CAAA,OAXoB,CAClB,WAAA,CAAAP,EACA,YAAAC,CAAAA,CAAAA,CACA,UAAAC,CAAAA,CAAAA,CACA,UAAAC,CACA,CAAA,cAAA,CAAAI,CACA,CAAA,QAAA,CAAAD,EACA,WAAAF,CAAAA,CAAAA,CACA,YAAAC,CAAAA,CACF,CAGF,CAEO,SAASG,GAAWC,CAAiB,CAAA,GAAA,CAAa,CACvD,IAAMC,CAAAA,CAAkB,MAAQ,EAAA,IAAA,CAAA,MAAA,CAAA,MAAA,CAAA,QAAA,CAAS,KACnC,CAACC,CAAa,CAAID,CAAAA,CAAAA,CAAgB,MAAMD,CAAM,CAAA,CACpD,OAAOE,CAAAA,EAAA,KAAAA,CAAiBD,CAAAA,CAC1B,CC3CA,SAAsBE,EAAAA,EAA+B,QAAAz8B,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CACnD,GAAI,CACF,IAAMG,CAAW,CAAA,MAAM,KAAM,CAAA,mCAAmC,EAChE,GAAI,CAACA,CAAS,CAAA,EAAA,CACZ,MAAM,IAAI,KAAA,CAAM,6BAA6B,CAG/C,CAAA,OAAA,CADa,MAAMA,CAAS,CAAA,IAAA,EAChB,EAAA,EACd,OAAS2E,CAAO,CAAA,CACd,OAAQ,OAAA,CAAA,KAAA,CAAM,oCAAqCA,CAAK,CAAA,CACjD,EACT,CACF,GC4EA,IAAM43B,EAAAA,CAAoC,EAAC,CAEpC,SAASC,EAAa,CAAA,CAC3B,SAAAC,CAAAA,CAAAA,CACA,OAAAp5B,CACA,CAAA,4BAAA,CAAAq5B,CACA,CAAA,WAAA,CAAAC,EAAc,MACd,CAAA,MAAA,CAAAC,EAAS,OACX,CAAA,CAA8B,CAC5B,GAAM,CAAE,sBAAAC,CAAAA,CAAAA,CAAwB,OAAAC,CAAQ,CAAA,4BAAA,CAAAC,CAA6B,CAAA,CAAIl8B,IAAA,EACpE07B,CAAAA,EAAAA,CAAAA,CACAl5B,CAEC,CAAA,CAAA,CAAC25B,EAAWC,CAAY,CAAA,CAAI5rB,SAAS,KAAK,CAAA,CAC1C,CAAC6rB,CAAUC,CAAAA,CAAW,CAAI9rB,CAAAA,QAAAA,GAG1B,CACJ,gBAAA,CAAAwO,CACA,CAAA,aAAA,CAAAJ,EACA,sBAAAJ,CAAAA,CAAAA,CACA,wBAAAoD,CAAAA,CAAAA,CACA,cAAAtD,CACA,CAAA,8BAAA,CAAAsT,CACF,CAAIliB,CAAAA,UAAAA,CAAWoQ,CAAoB,CAC7B,CAAA,CAAE,KAAA1Z,CAAAA,CAAAA,CAAO,YAAA6B,CAAY,CAAA,CAAIyH,UAAWX,CAAAA,CAAY,EAChD,CAAE,mBAAA,CAAAwtB,CAAqB,CAAA,aAAA,CAAA5K,CAAc,CAAIjiB,CAAAA,UAAAA,CAAW6iB,EAAiB,CAAA,CACrE,CAAE,SAAAzY,CAAAA,CAAU,CAAIpK,CAAAA,UAAAA,CAAWxO,CAAe,CAC1Cf,CAAAA,CAAAA,CAAM4V,MAA+B,CAAA,IAAI,EACzCymB,CAAYzmB,CAAAA,MAAAA,CAAsB,IAAI,CAAA,CACtCuN,EACJ9b,CACqBxI,EAAAA,CAAAA,CAAA,sBAxHzB,IAAAW,CAAAA,CAAAC,EAyHI,IAAM68B,CAAAA,CAAAA,CAEJ78B,CAAAD,CAAAA,CAAAA,CAAAA,CAAA6H,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAG,QAAH,GAAA,IAAA,CAAA,MAAA,CAAA7H,EAAa,sCAAb,GAAA,IAAA,CAAA,MAAA,CAAAC,CAAqD,CAAA,OAAA,CACvD,OAAI68B,CACF/yB,EAAAA,EAAAA,CACE,0CACA+yB,CACF,CAAA,CACED,EAAU,OACZA,EAAAA,CAAAA,CAAU,OAAQ,CAAA,MAAA,GAEb,KACT,CAAA,CAAA,CACMzU,CAAsBrmB,CAAAA,CAAAA,EAAuC1C,EAAA,IAC7D0C,CAAAA,IAAAA,CAAAA,WAAAA,CAAAA,CAAAA,CAAM,OACJvB,EAAAA,CAAAA,CAAI,UACNA,CAAI,CAAA,OAAA,CAAQ,SAAW,IAAYnB,CAAAA,CAAA,sBACjC,OAAO,MAAMskB,CACXnjB,CAAAA,CAAAA,CAAI,OACN,CACF,CAAA,CAAA,CACAme,CAAc,CAAA,CAAE,IAAAne,CAAI,CAAC,CAG3B,EAAA,CAAA,CAAA,CACMu8B,EAA4B,CAChCh7B,CAAAA,CACAi7B,CAC0C39B,GAAAA,CAAAA,CAAA,sBArJ9C,IAAAW,CAAAA,CAAAC,CAsJI,CAAA,IAAMiK,EAAa,CACjB,uBAAA,CAAyBnI,CAAM,CAAA,IAAA,CAC/B,SAAU,CACZ,CAAA,CACA,GAAI,CACF,IAAMk7B,CACJhe,CAAAA,CAAAA,GACC,MAAMI,CAAiB,CAAA,CACtB,gBAAiBJ,CAAc,CAAA,EAAA,CAC/B,eAAiB,CAAA,gBAAA,CACjB,WAAA/U,CACF,CAAC,CAEGorB,CAAAA,CAAAA,CAAAA,CAAAA,CAAat1B,EAAAi9B,CAAA,EAAA,IAAA,CAAA,KAAA,CAAA,CAAAA,CAAS,CAAA,gBAAA,GAAT,YAAAj9B,CAA2B,CAAA,UAAA,CAC9C,GAAI,CAAC,YAAA,CAAc,UAAW,UAAU,CAAA,CAAE,QAASs1B,CAAAA,CAAU,EAC3D,OAAIsH,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAqB,UAAW,IAC9BA,GAAAA,CAAAA,CAAoB,OAAQ,CAAA,QAAA,GAC9BA,EAAoB,OAAQ,CAAA,QAAA,CAAW,IAEzCA,CAAoB,CAAA,OAAA,CAAQ,OAEvB,CAAA,CAAA,CACL,UAAAtH,CAAAA,CACF,EAEF,GAAI,CAAC,WAAa,CAAA,SAAS,EAAE,QAASA,CAAAA,CAAU,CAAG,CAAA,CAEjD,IAAM5e,CAAUzW,CAAAA,CAAAA,CAAAA,CAAAg9B,CAAA,EAAA,IAAA,CAAA,KAAA,CAAA,CAAAA,EAAS,gBAAT,GAAA,IAAA,CAAA,KAAA,CAAA,CAAAh9B,CAA2B,CAAA,aAAA,CAC3C4e,EAAuB,CACrB,CACE,IAAM,CAAA,uCAAA,CACN,SAAU,iBACV,CAAA,KAAA,CAAOoD,CACP,CAAA,OAAA,CAAAvL,CACF,CACF,CAAC,EACGsmB,CACFA,EAAAA,CAAAA,CAAU,MAAM,eAAe,EAEnC,CACA,OAAO,CACL,UAAA1H,CAAAA,CACF,CACF,CAAA,MAASnxB,EAAgB,CACvB,OAAA,OAAA,CAAQ,KAAM,CAAA,iCAAA,CAAmCA,CAAK,CAC/C,CAAA,CACL,WAAY,OACd,CACF,CACF,CACMme,CAAAA,CAAAA,CAAAA,CAAW,CACfvgB,CAAAA,CACAi7B,IAC2E39B,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CA3M/E,IAAAW,CAAAA,CAAAC,EAAA6G,CAAA0B,CAAAA,CAAAA,CAAA2E,CAAAC,CAAAA,CAAAA,CAAA6G,GAAAC,EAAAC,CAAAA,EAAAA,CAAAC,GAAAC,EAAAC,CAAAA,EAAAA,CAAAC,GAAAC,EAAAue,CAAAA,EAAAA,CA4MI,IAAMzzB,CAAAA,CAAMo8B,IACN,CAAA,CAAE,IAAMzZ,CAAAA,CAAyB,EAAIlgB,CAAM,CAAA,IAAA,CAAK,aAChDm7B,CAAAA,CAAAA,CAAY,MAAMpB,EAAY,EAAA,CAC9BqB,EAAU,MAAM9d,CAAAA,CAAiB,CACrC,eAAiBJ,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAe,GAChC,eAAiB,CAAA,gBACnB,CAAC,CAAA,CACD,QAAQ,GAAI,CAAA,SAAA,CAAWke,CAAO,CAAA,CAE9B,IAAMC,CAAcp9B,CAAAA,CAAAA,CAAAA,CAAAm9B,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAS,mBAAT,IAAAn9B,CAAAA,MAAAA,CAAAA,CAAAA,CAA2B,UACzCq9B,CAAAA,CAAAA,CAAAA,CAEJjwB,GAAAtG,CAAA7G,CAAAA,CAAAA,CAAAA,CAAAk9B,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAS,gBAAT,GAAA,IAAA,CAAA,MAAA,CAAAl9B,CAA2B,CAAA,aAAA,GAA3B,YAAA6G,CAA0C,CAAA,IAAA,GAA1C,KAAAsG,CAEAD,CAAAA,CAAAA,CAAAA,CAAAA,CAAA3E,EAAA20B,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAS,CAAA,oBAAA,GAAT,YAAA30B,CAA+B,CAAA,cAAA,GAA/B,IAAA2E,CAAAA,MAAAA,CAAAA,CAAAA,CAA+C,KACjD,GAAIiwB,CAAAA,GAAgB,YAAgBC,EAAAA,CAAAA,GAAsB,WACxD,OAAO,CACL,WAAYD,CACd,CAAA,CAGF,IAAMlzB,CAAkB,CAAA,CACtB,oBAAsBxJ,CAAAA,CAAAA,CAAAL,EAAA,EACjB0B,CAAAA,CAAAA,CAAM,IADW,CAAA,CAAA,CAEpB,eAAgBA,CAAM,CAAA,IAAA,CAAK,aAC3B,CAAA,UAAA,CAAYzC,EACZ,MAAQ,CAAA,MAAA,CAAO,QAAS,CAAA,MAAA,CACxB,4BAA6B,KAC7B,CAAA,UAAA,CAAY49B,CACZ,CAAA,kBAAA,CAAoB,YACpB,wBAA0B,CAAA,YAAA,CAC1B,YAAc78B,CAAAA,CAAAA,CAAA,GACT46B,EAAY,EAAA,CAEnB,CACF,CAAA,CAAA,CAEA,OAAO/wB,CAAW,CAAA,oBAAA,CAAqB,cACvC,GAAI,CAMF,GALA,MAAMmV,CAAAA,CAAiB,CACrB,eAAA,CAAiBJ,GAAA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAe,EAChC,CAAA,eAAA,CAAiB,iBACjB,UAAA/U,CAAAA,CACF,CAAC,CAAA,CAAA,CACGzD,GAAA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAO,KAAM,IACf,CAAA,OAAA,OAAA,CAAQ,MAAM,qBAAqB,CAAA,CAC5B,CACL,UAAA,CAAY,OACd,CAKF,CAAA,GAHA,OAAQ,CAAA,GAAA,CAAI,eAAgB22B,CAAW,CAAA,CACvC,OAAQ,CAAA,GAAA,CAAI,sBAAuBC,CAAiB,CAAA,CAGlD,CAAC,WAAa,CAAA,SAAS,EAAE,QAASD,CAAAA,CAAW,CAC7CC,EAAAA,CAAAA,GAAsB,YACtBpb,CAA6B,GAAA,UAAA,CAC7B,CACA,IAAMqb,GAA0B,MAAO,CAAA,QAAA,CAAA,CAErCppB,EAAAD,CAAAA,CAAAA,EAAAA,CAAAkpB,GAAA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAS,gBAAT,GAAA,IAAA,CAAA,KAAA,CAAA,CAAAlpB,GAA2B,cAA3B,GAAA,IAAA,CAAA,KAAA,CAAA,CAAAC,EACI,CAAA,mBACN,EACMqpB,EACJ92B,CAAAA,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAO,gCAAiC,IACxC62B,EAAAA,EAAAA,EAA2B,IACvB72B,CAAAA,CAAAA,CAAAA,EAAA,YAAAA,CAAO,CAAA,6BAAA,EAAgC62B,GACvC,CACN,CAAA,OAAA,OAAA,CAAQ,IAAI,oBAAsBC,CAAAA,EAAkB,CACpD,CAAA,MAAMj1B,EAAY,CAChB,EAAA,CAAI7B,CAAM,CAAA,EAAA,CACV,WAAY,CACV,2BAAA,CAA6B82B,EAC7B,CAAA,MAAA,CAAQ,EACV,CACF,CAAC,EACD,OAAQ,CAAA,GAAA,CAAI,oCAAoC,CAChD,CAAA,MAAMle,CAAiB,CAAA,CACrB,gBAAiBJ,CAAA,EAAA,IAAA,CAAA,KAAA,CAAA,CAAAA,CAAe,CAAA,EAAA,CAChC,gBAAiB,gBACjB,CAAA,UAAA,CAAY,CAEV,oBAAA,CAAsBke,GAAA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAS,oBACjC,CACF,CAAC,EACD,MAAM70B,CAAAA,CAAY,CAChB,EAAA,CAAI7B,EAAM,EACV,CAAA,UAAA,CAAY,CACV,UAAA,CAAY,EACd,CACF,CAAC,CAEM,CAAA,CACL,WAAY,YACZ,CAAA,iBAAA,CAAmBwb,CACrB,CACF,CAEA,GAAIA,CAAAA,GAA6B,UAAY,CAAA,CAC3C,IAAMub,EAAqB,CAAA,MAAMne,CAAiB,CAAA,CAChD,gBAAiBJ,CAAA,EAAA,IAAA,CAAA,KAAA,CAAA,CAAAA,CAAe,CAAA,EAAA,CAChC,gBAAiB,gBACjB,CAAA,UAAA,CAAY,CACV,UAAY,CAAA,CACd,CACF,CAAC,CAAA,CACD,OAAQ,OAAA,CAAA,GAAA,CAAI,gCAAiCue,EAAkB,CAAA,CA8BxD,CACL,UAAA,CAAY,aACZ,iBAAmBvb,CAAAA,CACrB,CACF,CACA,IAAM+B,EAAM,CAAA,MAAM3E,EAAiB,CACjC,eAAA,CAAiBJ,GAAA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAe,EAChC,CAAA,eAAA,CAAiB,iBACjB,UAAY,CAAA,CACV,UAAY,CAAA,CACd,CACF,CAAC,CAAA,CAEKjd,EAASmS,CAAAA,CAAAA,EAAAA,CAAA6P,IAAA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,EAAAA,CAAK,mBAAL,IAAA7P,CAAAA,KAAAA,CAAAA,CAAAA,EAAAA,CAAuB,OAEhCmhB,EAAalhB,CAAAA,CAAAA,EAAAA,CAAA4P,EAAA,EAAA,IAAA,CAAA,KAAA,CAAA,CAAAA,GAAK,gBAAL,GAAA,IAAA,CAAA,KAAA,CAAA,CAAA5P,EAAuB,CAAA,UAAA,CAC1C,GAAIpS,EAAU,EAAA,IAAA,CACZ,OAAO,CACL,WAAAszB,EACA,CAAA,MAAA,CAAAtzB,EACF,CAIF,CAAA,IAAMy7B,IAAappB,EAAA2P,CAAAA,EAAAA,EAAA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,EAAAA,CAAK,qBAAL,IAAA3P,CAAAA,KAAAA,CAAAA,CAAAA,EAAAA,CAAyB,WAC5C,CAAA,GAAI,CAAC,YAAc,CAAA,SAAA,CAAW,UAAU,CAAA,CAAE,SAASihB,EAAU,CAAA,CAC3D,OACE,CAAC,WAAA,CAAa,YAAY,CAAE,CAAA,QAAA,CAASmI,EAAU,CAAA,EAC/CzL,GAAiB,IAEjB,EAAA,MAAMA,CAAc,CAAA,CAClB,cAAehO,EACf,CAAA,8BAAA,CAAAiO,CACF,CAAC,EACM,CACL,UAAA,CAAAqD,EACF,CAEEsH,GAAAA,CAAAA,CAAAA,EAAA,YAAAA,CAAqB,CAAA,OAAA,GAAW,IAC9BA,GAAAA,CAAAA,CAAoB,QAAQ,QAC9BA,GAAAA,CAAAA,CAAoB,OAAQ,CAAA,QAAA,CAAW,IAEzCA,CAAoB,CAAA,OAAA,CAAQ,KAAM,EAAA,CAAA,CAE7B,CACL,UAAAtH,CAAAA,EACF,GAEF,GAAI,CAAC,YAAa,SAAS,CAAA,CAAE,QAASA,CAAAA,EAAU,EAAG,CAEjD,IAAM5e,EAAUpC,CAAAA,CAAAA,EAAAA,CAAA0P,IAAA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,EAAAA,CAAK,gBAAL,GAAA,IAAA,CAAA,KAAA,CAAA,CAAA1P,GAAuB,aACvCuK,CAAAA,CAAAA,CAAuB,CACrB,CACE,KAAM,uCACN,CAAA,QAAA,CAAU,iBACV,CAAA,KAAA,CAAOoD,EACP,OAAAvL,CAAAA,EACF,CACF,CAAC,EACGsmB,CACFA,EAAAA,CAAAA,CAAU,KAAM,CAAA,eAAe,EAEnC,CAGA,GAAA,CADkBzoB,GAAAyP,EAAA,EAAA,IAAA,CAAA,KAAA,CAAA,CAAAA,GAAK,gBAAL,GAAA,IAAA,CAAA,KAAA,CAAA,CAAAzP,EAAuB,CAAA,SAAA,CAIvC,KADkBC,EAAAwP,CAAAA,EAAAA,EAAA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,EAAAA,CAAK,mBAAL,IAAAxP,CAAAA,KAAAA,CAAAA,CAAAA,EAAAA,CAAuB,SACvB,IAAA,QAAA,CAChB8N,EAASvgB,CAAOi7B,CAAAA,CAAS,OACpB,CAEL,IAAMtmB,IAAUqc,EAAA/O,CAAAA,EAAAA,EAAA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,EAAAA,CAAK,mBAAL,IAAA+O,CAAAA,KAAAA,CAAAA,CAAAA,EAAAA,CAAuB,OACvClU,CAAAA,CAAAA,CAAuB,CACrB,CACE,IAAA,CAAM,uCACN,CAAA,QAAA,CAAU,kBACV,KAAOoD,CAAAA,CAAAA,CACP,QAAAvL,EACF,CACF,CAAC,EACH,CAEF,OAAO,CACL,WAAA4e,EACA,CAAA,iBAAA,CAAmBrT,CACrB,CACF,OAAS9d,EAAgB,CAAA,CACvB,GAAM,CAAE,QAAAuS,EAAQ,CAAA,CAAIvS,EACpB,CAAA,OAAA0a,EAAuB,CACrB,CACE,IAAM,CAAA,uCAAA,CACN,SAAU,iBACV,CAAA,KAAA,CAAOoD,CACP,CAAA,OAAA,CAASvL,IAAA,IAAAA,CAAAA,EAAAA,CAAW,mBACtB,CACF,CAAC,CACM,CAAA,CACL,WAAY,OACd,CACF,CACF,CAGA,CAAA,CAAA,OAAA3F,SAAU,CAAA,IAAM,CA5blB,IAAA/Q,CAAAA,CAAAC,CAAA6G,CAAAA,CAAAA,CAAA0B,EA6bI,IAAMk1B,CAAAA,CAAyB,CAE7B,cAAA,CAAA,CAAgB19B,EAAAif,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAe,eAAf,GAAA,IAAA,EAAAjf,EAAgC,cAE5Cif,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAe,gBAAgB,cAC/B,CAAA,EAEJ,CAAA,oBAAA,CAAA,CAAsBhf,EAAAgf,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAe,CAAA,eAAA,GAAf,MAAAhf,CAAgC,CAAA,oBAAA,CAElDgf,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAe,gBAAgB,oBAC/B,CAAA,EACN,CAAA,CACIye,EAAuB,cAAe,CAAA,MAAA,GAAW,CACnD,EAAA,OAAA,CAAQ,MACN,4EACF,CAAA,CAEF,IAAMC,CAAAA,CAAAA,CAAAA,CAEJ72B,EAAAmY,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAe,CAAA,eAAA,GAAf,YAAAnY,CAAgC,CAAA,oBAAA,GAAwB,IAEpDsF,CAAAA,CAAAA,CAAU,CACd,MAAQ5D,CAAAA,CAAAA,CAAAA,CAAA/B,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAO,aAAP,GAAA,IAAA,CAAA+B,CAAwB4zB,CAAAA,CAAAA,CAChC,YAAAD,CACA,CAAA,SAAA,CAAAF,EACA,MAAQ,CAAA,CACN,UAAUx1B,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAO,CAAA,aAAA,GAAiB,GAClC,KAAOA,CAAAA,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,gCAAiC,CACjD,CAAA,CACA,WAAaA,CAAAA,CAAAA,CAAAA,EAAA,YAAAA,CAAO,CAAA,YAAA,GAAgB,GACpC,sBAAAi3B,CAAAA,CAAAA,CACA,cAAe,KACf,CAAA,mBAAA,CAAqB,CAAC37B,CAAAA,CAAOyU,EAASonB,CAAY,GAAA,CACOv+B,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CACrD,GAAM,CAAE,UAAA,CAAAi2B,CAAW,CAAA,CAAI,MAAMyH,CAA0Bh7B,CAAAA,CAAAA,CAAOyU,CAAO,CACjE,CAAA,CAAC,YAAa,SAAS,CAAA,CAAE,QAAS8e,CAAAA,CAAU,EAC9CsI,CAAQ,CAAA,MAAA,EAERA,CAAAA,CAAAA,CAAQ,QAAQ,CACd,UAAA,CAAAtI,CACF,CAAC,EAEL,CAEF,EAAA,CAAA,CACA,SAAWvzB,CAAU,EAAA,CACnBqmB,EAAarmB,CAAK,EACpB,CACA,CAAA,QAAA,CAAU,CAACA,CAAOyU,CAAAA,CAAAA,CAASonB,CAAY,GAAA,CACWv+B,EAAA,IA9exD,CAAA,IAAA,CAAA,WAAA,CAAA,IAAAW,CAAAC,CAAAA,CAAAA,CA+eU,GAAM,CAAE,UAAA,CAAAq1B,EAAY,MAAAtzB,CAAAA,CAAO,EAAI,MAAMsgB,CAAAA,CAASvgB,CAAOyU,CAAAA,CAAO,EACxD,CAAC,WAAA,CAAa,SAAS,CAAA,CAAE,SAAS8e,CAAU,CAAA,CAC9CsI,CAAQ,CAAA,MAAA,GACC57B,CAAU,EAAA,IAAA,CAAA,CACnBhC,EAAA68B,CAAU,CAAA,OAAA,GAAV,MAAA78B,CAAmB,CAAA,YAAA,CAAagC,CAEhC47B,CAAAA,EAAAA,CAAAA,CAAQ,QAAQ,CACd,UAAA,CAAAtI,CACF,CAAC,GACDr1B,CAAA48B,CAAAA,CAAAA,CAAU,OAAV,GAAA,IAAA,EAAA58B,EAAmB,KAAM,CAAA,eAAA,CAAA,EAE7B,GAEF,CACF,CAAA,CAGA,GAFI,CAACO,CAAAA,EAAOy7B,CACVlyB,EAAAA,EAAAA,CAAsB,0CAA2C,OAAO,CAAA,CACtEkyB,CAAa,EAAA,CAACO,GAAa,MAAU,EAAA,CAACE,CAAU,CAAA,CAClD,IAAMmB,CAAkB,CAAA,IAA2Bx+B,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CAjgBzD,IAAAW,CAAAC,CAAAA,CAAAA,CAAA6G,CAkgBQ,CAAA,IAAM41B,EAAW,MAAMoB,aAAAA,CAAc1xB,CAAO,CAAA,CACtC2xB,EAAS,IAAIC,MAAAA,CAAOtB,CAAU,CAAA,CAClC,sBAAuB,IACvB,CAAA,6BAAA,CAA+BiB,EAC/B,mBAAqB,CAAA,CAAC,WAAY,WAAW,CAAA,CAC7C,2BAA6Bt9B,CAAAA,CAAAA,CAAA,CAC3B,wBAAAs9B,CAAAA,CAAAA,CACA,MAAQt9B,CAAAA,CAAAA,CAAA,CACN,aAAe,CAAA,IAAA,CACf,KAAOi8B,CAAAA,CAAAA,EAAA,YAAAA,CAAQ,CAAA,MAAA,CAAA,CAAA,CACZt8B,EAAA6C,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAQ,2BAAR,GAAA,IAAA,CAAA,MAAA,CAAA7C,CAAqC,CAAA,MAAA,CAAA,CAE1C,KAAMK,CAAA,CAAA,CACJ,kBAAoBs9B,CAAAA,CAAAA,CACpB,OAAQrB,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAQ,CAAA,IAAA,CAChB,mBAAoB,KACjBr8B,CAAAA,CAAAA,CAAAA,CAAAA,CAAA4C,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAQ,8BAAR,IAAA5C,CAAAA,MAAAA,CAAAA,CAAAA,CAAqC,IAE1C,CAAA,CAAA,QAAA,CAAUI,EAAA,CACR,aAAA,CAAe,IACZyG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAjE,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAQ,2BAAR,GAAA,IAAA,CAAA,MAAA,CAAAiE,EAAqC,QAEvCjE,CAAAA,CAAAA,CAAAA,CAAAA,EAAA,YAAAA,CAAQ,CAAA,2BAAA,CAAA,CAEb,6BAA+Bd,CAAU,EAAA,CA1hBnD,IAAA/B,EAAAA,CA2hBY,IAAMi+B,CAA2Bl8B,CAAAA,CAAAA,CAC3Bm8B,EAAmBl+B,CAAAA,CAAAA,EAAAA,CAAAma,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAW,iBAAX,GAAA,IAAA,CAAAna,GAAgC,MACrDu8B,CAAAA,CAAAA,EAAgC,MAClCA,CAA6B,CAAA,CAC3B,yBAAA0B,CACA,CAAA,gBAAA,CAAAC,EACF,CAAC,EACE,IAAM1+B,CAAAA,EAAAA,EAAa,CACdA,EAAAA,CACF6f,EAAiB,CACf,eAAA,CAAiB,gBACjB,CAAA,KAAA,CAAA5Y,EACA,UAAY,CAAA,EACd,CAAC,CAAA,CAED,QAAQ,KAAM,CAAA,oCAAoC,EAEtD,CAAC,EACA,KAAOtC,CAAAA,EAAAA,EAAU,CAChB,OAAA,CAAQ,MAAM,oCAAsCA,CAAAA,EAAK,EAC3D,CAAC,EAEP,CACA,CAAA,QAAA,CAAW64B,GAAc,CACvB,IAAM70B,EAAa60B,CAAU,CAAA,GAAA,CACzB70B,CAAG,CAAA,MAAA,CAAO,QAAQ,CAAM,GAAA,EAAA,EACtB3H,CAAI,CAAA,OAAA,GACF2H,EAAG,MAAO,CAAA,QAAQ,CAAM,GAAA,EAAA,CAC1B3H,EAAI,OAAQ,CAAA,QAAA,CAAW,IAAYnB,CAAAA,CAAA,sBACjC,OAAO,MAAMskB,CACXnjB,CAAAA,CAAAA,CAAI,OACN,CACF,CAAA,CAAA,CAEAA,CAAI,CAAA,OAAA,CAAQ,SAAW,IAEzBme,CAAAA,CAAAA,CAAc,CAAE,GAAA,CAAAne,CAAI,CAAC,CAAA,EAG3B,CACF,CAAC,CAAA,CAAE,MAAM,eAAe,CAAA,CACpBu9B,CAAUrB,EAAAA,CAAAA,GACZG,EAAU,OAAUkB,CAAAA,CAAAA,CACpBpB,CAAYoB,CAAAA,CAAM,EAClBtB,CAAa,CAAA,IAAI,CAErB,EAAA,CAAA,CAAA,CACKI,EAAU,OACbgB,EAAAA,CAAAA,GAEJ,CACA,OAAO,IAAM,CACXlf,CAAAA,CAAc,CAAE,GAAA,CAAK,CAAE,OAAS,CAAA,IAAK,CAAE,CAAC,EACxC8d,CAAa,CAAA,KAAK,EACpB,CACF,EAAG,CAACR,CAAAA,CAAWz7B,GAAO,IAAI,CAAC,EACpB,CAACy7B,CAAAA,EAAa,CAACO,CAAAA,EAAa,CAACE,CAAW,CAAA,IAAA,CAC7CtV,IAAC,CAAA,MAAA,CAAA,CACC,IAAK5mB,CACL,CAAA,QAAA,CAAWqH,CAAM,EAAA,CACf8b,EAAa9b,CAAC,EAChB,EAEA,QAAA/H,CAAAA,CAAAA,GAAAA,CAAC,OAAI,SAAWu8B,CAAAA,CAAAA,CAAwB,EAAG,CAAA,cAAA,CAAe,EACzDH,CACCp8B,EAAAA,GAAAA,CAACC,CAAA,CAAA,CAAa,KAAM,wCACjB,CAAA,QAAA,CAAAm8B,CACH,CAAA,CAAA,CAAA,CAEJ,CAEJ,CAEA,IAAOiC,GAAQnC,ECnmBf,CAgDe,SAARoC,EAAAA,CAAsC,CAC3C,gBAAA,CAAAC,EACA,QAAAx+B,CAAAA,CAAAA,CACA,eAAAuf,CAAAA,CACF,EAAuB,CACrB,GAAM,CAAE,gBAAAC,CAAAA,CAAiB,EAAItP,UAAWoQ,CAAAA,CAAoB,CAsBtDzW,CAAAA,CAAAA,CAAQ,CACZ,gBAtBe20B,CAAAA,CAAAA,CAAiB,GAAKvL,CAAAA,CAAAA,EAAoB,CAvD7D,IAAA9yB,CAAAA,CAAAC,CAAA6G,CAAAA,CAAAA,CAwDI,IAAMoD,CAAa4oB,CAAAA,CAAAA,CACbsC,EAAOvC,EAAe,CAAA,CAC1B,gBAAAC,CACA,CAAA,WAAA,CAAa1T,CACf,CAAC,EACGgW,CAAK,CAAA,KAAA,GAAU,EACjBA,GAAAA,CAAAA,CAAK,OAEHtuB,CAAA7G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAD,CAAA8yB,CAAAA,CAAAA,CAAgB,iBAAhB,IAAA9yB,CAAAA,MAAAA,CAAAA,CAAAA,CAAgC,kBAAhC,GAAA,IAAA,CAAA,MAAA,CAAAC,EAAoD,WAApD,GAAA,IAAA,CAAA6G,CACA,CAAA,aAAA,CAAA,CAEJ,IAAMsM,CAAqBvL,CAAAA,CAAAA,EAAiCxI,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CAC1DwI,EAAE,eAAgB,EAAA,CAClB,MAAMwX,CAAAA,CAAiB,CACrB,eAAAD,CAAAA,CAAAA,CACA,wBAAyB0T,CAAgB,CAAA,EAC3C,CAAC,EACH,CAAA,CAAA,CACA,OAAOpyB,CAAAA,CAAAL,EAAA,EAAK6J,CAAAA,CAAAA,CAAAA,CAAL,CAAiB,IAAA,CAAAkrB,EAAM,WAAAhiB,CAAAA,CAAY,CAC5C,CAAA,CAAC,EAGC,qBAAuB4nB,CAAAA,EAAAA,CAAqB,QAC9C,CACA,CAAA,OAAOl7B,IAACC,CAAAW,CAAAA,CAAAA,CAAAL,CAAA,CAAA,EAAA,CAAWqJ,GAAX,CAAmB,QAAA,CAAA7J,CAAS,CAAA,CAAA,CACtC,CC9DO,SAASy+B,EAAAA,CAAa/9B,EAAkC,CAnB/D,IAAAN,CAAA6G,CAAAA,CAAAA,CAoBE,IAUI9G,CAAAO,CAAAA,CAAAA,CATF,CAAAynB,QAAAA,CAAAA,CAAAA,CACA,SAAAuW,CACA,CAAA,eAAA,CAAAC,CACA,CAAA,QAAA,CAAA3+B,EACA,qBAAA4+B,CAAAA,CAAAA,CACA,OAAAriB,CAAAA,CAAAA,CACA,gBAAAsiB,CACA,CAAA,4BAAA,CAAAxC,CA5BJ,CAAA,CA8BMl8B,EADCE,CAAAC,CAAAA,CAAAA,CACDH,CADC,CAAA,CARH,WACA,UACA,CAAA,iBAAA,CACA,UACA,CAAA,uBAAA,CACA,UACA,iBACA,CAAA,8BAAA,CAAA,CAAA,CAGI,CAAE,KAAAyG,CAAAA,CAAM,EAAIsJ,UAAWX,CAAAA,CAAY,CACnC,CAAA,CAAE,YAAA7M,CAAY,CAAA,CAAIwN,UAAWgF,CAAAA,CAAoB,EACjD,CAAE,OAAA,CAAA0M,CAAQ,CAAA,CAAI1R,WAAWsQ,EAA4B,CAAA,CACrD,CAAE,QAAAjH,CAAAA,CAAAA,CAAU,QAAAnC,CAAQ,CAAA,CAAIlH,UAAWxO,CAAAA,CAAe,EAClD,CAAE,sBAAA,CAAA2gB,CAAwB,CAAA,MAAA,CAAArf,EAAQ,aAAAoc,CAAAA,CAAc,CACpDlP,CAAAA,UAAAA,CAAWoQ,CAAoB,CAC3Bf,CAAAA,CAAAA,CAAmC,iBACnCgd,CAAS31B,CAAAA,CAAAA,EAAA,YAAAA,CAAO,CAAA,aAAA,CACtB,GAAI,CAACuhB,IAAYvG,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAS,CAAA,EAAA,IAAOS,EAAwB,OAAO,IAAA,CAEhE,IAAM+Z,CAAAA,CAAYhd,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAe,UAC3Bkd,CAAAA,CAAAA,CAAc55B,GAAeD,EAAIC,CAAAA,CAAW,CAAE,CAAA,IAAA,CAAO,OAAS,MAC9Do8B,CAAAA,CAAAA,CAAcvH,EAAqB,CAAA,CACvC,SAAUhY,CACV,CAAA,MAAA,CAAQvc,CAAA,EAAA,IAAA,CAAAA,EAAU,EAAC,CACnB,KAAM,CAAC,gBAAgB,CACzB,CAAC,CAAA,CACK+7B,CAAgBD,CAAAA,CAAAA,EAAA,YAAAA,CAAa,CAAA,YAAA,CAC7BN,CACJ,CAAA,CAACj6B,GAAQgV,CAAQ,CAAA,EAAKA,CAClBA,CAAAA,CAAAA,CAAS,OAAQ0Z,CAAoB,EAAA,CAnD7C,IAAA9yB,CAoDU,CAAA,OAAA,CAAA,CACEA,EAAA8yB,CAAgB,CAAA,cAAA,GAAhB,IAAA9yB,CAAAA,MAAAA,CAAAA,CAAAA,CAAgC,QAAS,gBACzC8yB,EAAAA,CAAAA,CAAgB,cAAkB,EAAA,IAEtC,CAAC,CACD,CAAA,EACN,CAAA,GAAI9K,GAAYuW,CAAU,CAAA,CACxB,IAAMnJ,CAAOvC,CAAAA,EAAAA,CAAe,CAC1B,eAAiB,CAAA,CACf,cAAgB5T,CAAAA,CAClB,EACA,WAAaG,CAAAA,CACf,CAAC,CAAA,CACK1V,EAAQhJ,CAAAL,CAAAA,CAAAA,CAAA,EAAK+0B,CAAAA,CAAAA,CAAAA,CAAL,CAAW,QAAAmJ,CAAAA,CAAAA,CAAU,gBAAAC,CAAiB,CAAA,QAAA,CAAAxW,CAAS,CAC7D,CAAA,CAAA,OAAO5jB,EAAQgxB,CAAAA,CAAI,EAAI,IACrBt1B,CAAAA,GAAAA,CAACk7B,EAAqB,CAAA,QAAA,CAArB,CAA8B,KAAOtxB,CAAAA,CAAAA,CACnC,QAAA7J,CAAAA,CAAAA,CACH,CAEJ,CACA,IAAMg/B,IAEJ5+B,CAAAgf,CAAAA,CAAAA,EAAA,YAAAA,CAAe,CAAA,eAAA,GAAf,IAAAhf,CAAAA,MAAAA,CAAAA,CAAAA,CAAgC,uBAAwB,IAExD6G,EAAAA,CAAAA,CAAAA,CAAAA,CAAAmY,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAe,eAAf,GAAA,IAAA,CAAA,MAAA,CAAAnY,CAAgC,CAAA,oBAAA,CAAqB,QAAS,CAChE,CAAA,OAAI,CAACmQ,CAAWwnB,EAAAA,CAAAA,CAEZrX,KAAAjW,QAAA,CAAA,CACG,QAAA0tB,CAAAA,CAAAA,CAAAA,EAA2Bz6B,GAAQi6B,CAAgB,CAAA,CAAI,IACtDv+B,CAAAA,GAAAA,CAAC,OAAI,SAAWI,CAAAA,CAAAA,CAAE,SAChB,CAAA,QAAA,CAAAJ,IAACs+B,EAAA,CAAA,CAA2B,gBAAAhf,CAAiB,CAAA,gBAAA,CAAAif,EAC1C,QAAAI,CAAAA,CAAAA,CACH,CACF,CAAA,CAAA,CAEF3+B,IAACq+B,EAAA,CAAA,CACC,4BAA8BjC,CAAAA,CAAAA,CAC9B,UAAWD,CACX,CAAA,MAAA,CAAQG,CACR,CAAA,WAAA,CAAaD,EACb,MAAQyC,CAAAA,CAAAA,CACV,CACF,CAAA,CAAA,CAAA,CAIF9+B,IAACq+B,EAAA,CAAA,CACC,SAAWlC,CAAAA,CAAAA,CACX,OAAQG,CACR,CAAA,MAAA,CAAQwC,CACR,CAAA,WAAA,CAAazC,EACf,CAEJ,CAEA,IAAO2C,EAAAA,CAAQR,GCrFR,SAASS,EAAAA,CAAqB,CACnC,YAAAC,CAAAA,CACF,EAA8B,CAC5B,IAAM1K,EAAS2K,SAAU,EAAA,CACnB,CAACC,CAAAA,CAAgBC,CAAiB,CAAItuB,CAAAA,QAAAA,CAC1C,IACF,CAAA,CACM,CAAE,WAAAtO,CAAAA,CAAAA,CAAa,QAAAH,CAAAA,CAAS,EAAI2N,UAAWgF,CAAAA,CAAoB,CAC3D,CAAA,CAAE,MAAAtO,CAAM,CAAA,CAAIsJ,UAAWX,CAAAA,CAAY,EACnC,CAAE,cAAA,CAAA2P,CAAgB,CAAA,aAAA,CAAAE,CAAc,CAAIlP,CAAAA,UAAAA,CAAWoQ,CAAoB,CAAA,CA6BzE,OA3BApP,SAAU,CAAA,IAAM,CAjClB,IAAA/Q,CAAAA,CAAAC,EAAA6G,CAAA0B,CAAAA,CAAAA,CAAA2E,CAkCI,CAAA,GAAImnB,GAAU,IAAQ7tB,EAAAA,CAAAA,EAAS,IAC7B,CAAA,OAEF,IAAM24B,CAAK9K,CAAAA,CAAAA,CAAO,cAAe,CAAA,CAC/B,SAASt0B,CAAAyG,CAAAA,CAAAA,EAAA,YAAAA,CAAO,CAAA,YAAA,GAAP,KAAAzG,CAAuB,CAAA,IAAA,CAChC,QAAU8G,CAAAA,CAAAA,CAAAA,CAAAA,CAAA7G,EAAAwG,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAO,CAAA,aAAA,GAAP,YAAAxG,CAAsB,CAAA,WAAA,EAAA,GAAtB,IAAA6G,CAAAA,CAAAA,CAAuC,GACjD,KAAO,CAAA,CACL,MAAO,CAAI0B,CAAAA,EAAAA,CAAAA,CAAAA,CAAA/B,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,MAAP,GAAA,IAAA,CAAA+B,EAAiB,EAAE,CAAA,CAAA,CAC9B,MAAQ2E,CAAAA,CAAAA,CAAAA,CAAA1G,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,6BAAP,GAAA,IAAA,CAAA0G,EAAwC,CAClD,CAAA,CACA,gBAAkB,CAAA,IAAA,CAClB,kBAAmB,IACnB,CAAA,iBAAA,CAAmB,IACnB,CAAA,eAAA,CAAiB,IACnB,CAAC,CAAA,CACDiyB,CAAG,CAAA,cAAA,GACA,IAAM/hB,CAAAA,CAAAA,EAAW,CACZA,CAAAA,EACF8hB,EAAkBC,CAAE,EAExB,CAAC,CACA,CAAA,KAAA,CAAO1f,GAAQ,CACd,OAAA,CAAQ,KAAM,CAAA,mBAAA,CAAqBA,CAAG,EACxC,CAAC,EACL,CAAA,CAAG,CAACtb,EAAQkwB,CAAAA,CAAM,CAAGlwB,CAAAA,EAAAA,CAAQqC,CAAK,CAAC,CAAC,EAEhCy4B,CAAkB,EAAA,IAAA,EAAQ5K,GAAU,IACtC4K,EAAAA,CAAAA,CAAe,EAAG,CAAA,uBAAA,CAAgCG,GAAOhgC,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CA7D7D,IAAAW,CAAAA,CAAAC,EAAA6G,CAAA0B,CAAAA,CAAAA,CAAA2E,CAAAC,CAAAA,CAAAA,CAAA6G,EA8DM,GAAIxN,CAAAA,EAAS,MAAQlE,CAAe,EAAA,IAAA,EAAQH,GAAY,IAAM,CAAA,CAC5D,IAAMkD,CAAAA,CAAAA,CAAsBtF,EAAAyG,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAO,CAAA,qBAAA,GAAP,KAAAzG,CAAgC,CAAA,KAAA,CACtDs/B,CAAqB,CAAA,MAAM1H,GAAsB,CACrD,OAAA,CAASnxB,EAAM,EACf,CAAA,MAAA,CAAQ,CACN,WAAAlE,CAAAA,CAAAA,CACA,QAAAH,CAAAA,CACF,EACA,OAAS,CAAA,CACP,UAAY,CAAA,WAAA,CACZ,UAAW,eACX,CAAA,YAAA,CAAA,CAAcnC,CAAAo/B,CAAAA,CAAAA,CAAG,gBAAgB,OAAnB,GAAA,IAAA,CAAAp/B,EAA8B,EAC5C,CAAA,MAAA,CAAQ,kBACR,IAAM6G,CAAAA,CAAAA,CAAAA,CAAAu4B,CAAG,CAAA,eAAA,CAAgB,OAAnB,IAAAv4B,CAAAA,CAAAA,CAA2B,WACjC,CAAA,QAAA,CAAA,CAAU0B,EAAA62B,CAAG,CAAA,eAAA,CAAgB,UAAnB,GAAA,IAAA,CAAA72B,EAAiC,OAC3C,CAAA,UAAA,CAAA,CAAY2E,EAAAkyB,CAAG,CAAA,eAAA,CAAgB,SAAnB,IAAAlyB,CAAAA,CAAAA,CAA6B,YACzC,CAAA,KAAA,CAAO,aACP,YAAc7H,CAAAA,CAAAA,CAAsB,mBAAsB,CAAA,MAC5D,CACF,CAAC,CAAA,CACKi6B,CAAkBzH,CAAAA,EAAAA,CAA0BwH,CAAkB,CAChEC,CAAAA,CAAAA,EAAmB,MAAQ,CAACn7B,EAAAA,CAAQm7B,CAAe,CACrDF,CAAAA,CAAAA,CAAG,UAAW,CAAA,CACZ,OAAQ,SACR,CAAA,eAAA,CAAAE,CACA,CAAA,KAAA,CAAO,CACL,KAAO,CAAA,CAAA,CAAA,EAAA,CAAInyB,CAAAkyB,CAAAA,CAAAA,EAAA,YAAAA,CAAoB,CAAA,MAAA,GAApB,IAAAlyB,CAAAA,CAAAA,CAA8B,EAAE,CAC3C,CAAA,CAAA,MAAA,CAAA,CAAQ6G,CAAAqrB,CAAAA,CAAAA,EAAA,YAAAA,CAAoB,CAAA,6BAAA,GAApB,IAAArrB,CAAAA,CAAAA,CAAqD,CAC/D,CACF,CAAC,CAEDorB,CAAAA,CAAAA,CAAG,WAAW,CACZ,MAAA,CAAQ,0BACV,CAAC,EAEL,MACEA,CAAG,CAAA,UAAA,CAAW,CACZ,MAAA,CAAQ,MACV,CAAC,EAEL,CAAC,CAAA,CAAA,CACDH,EAAe,EAAG,CAAA,sBAAA,CAA+BG,CAAOhgC,EAAAA,CAAAA,CAAA,sBAvG5D,IAAAW,CAAAA,CAAAC,EAwGM,GAAIwG,CAAAA,EAAS,MAAQlE,CAAe,EAAA,IAAA,EAAQH,CAAY,EAAA,IAAA,CAAM,CAC5D,IAAM23B,CAAAA,CAAe,MAAM1B,EAAAA,CAAyB,CAClD,OAAS5xB,CAAAA,CAAAA,CAAM,EACf,CAAA,MAAA,CAAQ,CACN,WAAAlE,CAAAA,CAAAA,CACA,SAAAH,CACF,CAAA,CACA,YAAa,KACb,CAAA,wBAAA,CAA0Bi9B,CAAG,CAAA,cAAA,CAAe,GAC5C,MAAQ,CAAA,CACN,OAAS,CAAA,CAAC,sCAAsC,CAClD,CACF,CAAC,CAAA,CACDA,EAAG,UAAW,CAAA,CACZ,MAAQ,CAAA,SAAA,CACR,MAAO,CACL,KAAA,CAAO,CAAIr/B,CAAAA,EAAAA,CAAAA,CAAAA,CAAA+5B,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAc,MAAd,GAAA,IAAA,CAAA/5B,EAAwB,EAAE,CAAA,CAAA,CACrC,MAAQC,CAAAA,CAAAA,CAAAA,CAAA85B,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAc,gCAAd,IAAA95B,CAAAA,CAAAA,CAA+C,CACzD,CACF,CAAC,EACH,CAAA,KACEo/B,EAAG,UAAW,CAAA,CACZ,MAAQ,CAAA,MACV,CAAC,EAEL,CAAA,CAAC,CACDH,CAAAA,CAAAA,CAAe,GAAG,eAAwBG,CAAAA,CAAAA,EAAOhgC,EAAA,IAlIrD,CAAA,IAAA,CAAA,WAAA,CAAA,IAAAW,EAAAC,CAAA6G,CAAAA,CAAAA,CAAA0B,CAAA2E,CAAAA,CAAAA,CAAAC,EAAA6G,CAAAC,CAAAA,CAAAA,CAAAC,CAAAC,CAAAA,CAAAA,CAAAC,EAAAC,CAAAC,CAAAA,CAAAA,CAAAC,CAAAue,CAAAA,CAAAA,CAAAC,EAmIM,GAAIvsB,CAAAA,CAAAA,EAAA,YAAAA,CAAO,CAAA,EAAA,GAAM,KAAM,MAAM,IAAI,KAAM,CAAA,eAAe,EACtD,GAAIsY,CAAAA,EAAkB,IAAM,CAAA,MAAM,IAAI,KAAM,CAAA,0BAA0B,CACtE,CAAA,GAAM,CAACC,CAAa,CAAA,CAAI2Y,EAA4B5Y,CAAAA,CAAc,EAClE,GAAIC,CAAAA,EAAiB,IAAM,CAAA,MAAM,IAAI,KAAM,CAAA,wBAAwB,CACnE,CAAA,GAAIC,GAAiB,IAAM,CAAA,MAAM,IAAI,KAAA,CAAM,wBAAwB,CACnE,CAAA,IAAM3Z,GAAsBtF,CAAAyG,CAAAA,CAAAA,EAAA,YAAAA,CAAO,CAAA,qBAAA,GAAP,IAAAzG,CAAAA,CAAAA,CAAgC,MACtDof,CACJJ,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAe,oBACjB,GAAIzc,CAAAA,EAAe,IAAQH,EAAAA,CAAAA,EAAY,KAAM,CAC3C,GAAM,CAACoa,CAAWC,CAAAA,CAAQ,GAAI3V,CAAA7G,CAAAA,CAAAA,CAAAA,CAAAo/B,CAAG,CAAA,SAAA,GAAH,YAAAp/B,CAAc,CAAA,KAAA,CAAM,GAApB,CAAA,GAAA,IAAA,CAAA6G,EAA4B,EAAC,CACrD,CAAC04B,CAAI,GAAIryB,CAAA3E,CAAAA,CAAAA,CAAAA,CAAA62B,EAAG,eAAH,GAAA,IAAA,CAAA,MAAA,CAAA72B,EAAoB,WAApB,GAAA,IAAA,CAAA2E,CAAmC,CAAA,EAAA,CAC5C6J,GAAQ5J,CAAAiyB,CAAAA,CAAAA,CAAG,UAAH,GAAA,IAAA,CAAAjyB,EAAiB,EAC/B,CAAA,MAAMwqB,EAAsB,CAAA,CAC1B,QAASnxB,CAAM,CAAA,EAAA,CACf,OAAQ,CACN,WAAA,CAAAlE,EACA,QAAAH,CAAAA,CACF,CACA,CAAA,OAAA,CAAS,CACP,UAAYoa,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,CAAAA,CAAa,YACzB,SAAWC,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,CAAAA,CAAY,gBACvB,YAAcvI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAD,EAAAorB,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAI,eAAJ,GAAA,IAAA,CAAA,MAAA,CAAAprB,CAAqB,CAAA,OAAA,GAArB,KAAAC,CAAgC,CAAA,EAAA,CAC9C,MAAQsrB,CAAAA,CAAAA,EAAA,KAAAA,CAAQ,CAAA,iBAAA,CAChB,IAAMprB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAD,EAAAkrB,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAI,eAAJ,GAAA,IAAA,CAAA,MAAA,CAAAlrB,EAAqB,IAArB,GAAA,IAAA,CAAAC,CAA6B,CAAA,WAAA,CACnC,UAAUE,CAAAD,CAAAA,CAAAA,CAAAA,CAAAgrB,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAI,eAAJ,GAAA,IAAA,CAAA,MAAA,CAAAhrB,CAAqB,CAAA,UAAA,GAArB,KAAAC,CAAmC,CAAA,OAAA,CAC7C,YAAYE,CAAAD,CAAAA,CAAAA,CAAAA,CAAA8qB,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAI,eAAJ,GAAA,IAAA,CAAA,MAAA,CAAA9qB,EAAqB,MAArB,GAAA,IAAA,CAAAC,CAA+B,CAAA,YAAA,CAC3C,OAAOue,CAAAsM,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAI,aAAJ,IAAAtM,CAAAA,CAAAA,CAAkB,YACzB,CAAA,YAAA,CAAcztB,EAAsB,mBAAsB,CAAA,MAC5D,CACA,CAAA,KAAA,CAAA0R,CACF,CAAC,CAAA,CACD,MAAMqhB,EAAAA,CAAyB,CAC7B,OAAS5xB,CAAAA,CAAAA,CAAM,EACf,CAAA,MAAA,CAAQ,CACN,WAAAlE,CAAAA,CAAAA,CACA,SAAAH,CACF,CAAA,CACA,YAAa,KACb,CAAA,wBAAA,CAAA,CAA0B4wB,CAAAqM,CAAAA,CAAAA,EAAA,YAAAA,CAAI,CAAA,cAAA,GAAJ,IAAArM,CAAAA,MAAAA,CAAAA,CAAAA,CAAoB,GAC9C,MAAQ,CAAA,CACN,OAAS,CAAA,CAAC,sCAAsC,CAClD,CACF,CAAC,CACD,CAAA,IAAMyM,EAAgD,CACpD,MAAA,CAAQ,CACN,WAAA,CAAAl9B,EACA,QAAAH,CAAAA,CACF,CACA,CAAA,OAAA,CAASqE,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,EAChB,CAAA,eAAA,CAAA2Y,EACA,eAAiBH,CAAAA,CAAAA,EAAA,YAAAA,CAAe,CAAA,EAClC,EACA,MAAMwZ,EAAAA,CAAqBgH,CAAgB,CAAA,CAE3C,GAAM,CAAE,aAAA,CAAAhL,CAAe,CAAA,KAAA,CAAOiL,CAAa,CACzC,CAAA,MAAMpL,CAAO,CAAA,kBAAA,CACX0K,EACA,CAAE,cAAA,CAAgBK,CAAG,CAAA,aAAA,CAAc,EAAG,CACtC,CAAA,CAAE,aAAe,CAAA,KAAM,CACzB,CACF,CAAA,GAAIK,CAIFL,CAAAA,CAAAA,CAAG,SAAS,MAAM,CAAA,CAClB,OAAQ,CAAA,KAAA,CAAM,wBAAyBK,CAAY,CAAA,CAAA,KAAA,GAInDL,EAAG,QAAS,CAAA,SAAS,EAIjB5K,CAAc,CAAA,MAAA,GAAW,iBAAmB,CAAA,CAE9C,GAAM,CAAE,KAAA,CAAAtwB,CAAM,CAAA,CAAI,MAAMmwB,CAAO,CAAA,kBAAA,CAAmB0K,CAAY,CAAA,CAC9D,GAAI76B,CAEF,CAAA,OAAA,CAAQ,MAAM,uBAAyBA,CAAAA,CAAK,OACvC,CAEL,IAAMs7B,CAAgD,CAAA,CACpD,OAAQ,CACN,WAAA,CAAAl9B,CACA,CAAA,QAAA,CAAAH,CACF,CACA,CAAA,OAAA,CAASqE,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAO,EAChB,CAAA,aAAA,CAAe,IACjB,CACA,CAAA,GAAI,CACF,IAAMA,CAAAA,CAAQ,MAAMgyB,EAAAA,CAAqBgH,CAAgB,CACzDJ,CAAAA,CAAAA,CAAG,QAAS,CAAA,SAAS,EACrB,MAAM1G,EAAAA,CAAmB,CACvB,KAAA,CAAAlyB,EACA,MAAQ,CAAA,CACN,WAAAlE,CAAAA,CAAAA,CACA,SAAAH,CACF,CACF,CAAC,EACH,OAASsd,CAAK,CAAA,CACZ,OAAQ,CAAA,KAAA,CAAM,eAAgBA,CAAG,CAAA,CACjC2f,CAAG,CAAA,QAAA,CAAS,MAAM,EACpB,CACF,CACF,CAAO,KAAA,CAEL,IAAMI,CAAgD,CAAA,CACpD,MAAQ,CAAA,CACN,YAAAl9B,CACA,CAAA,QAAA,CAAAH,CACF,CAAA,CACA,QAASqE,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAO,CAAA,EAAA,CAChB,cAAe,IACjB,CAAA,CACA,GAAI,CACF,IAAMA,EAAQ,MAAMgyB,EAAAA,CAAqBgH,CAAgB,CAAA,CACzDJ,EAAG,QAAS,CAAA,SAAS,CACrB,CAAA,MAAM1G,GAAmB,CACvB,KAAA,CAAAlyB,CACA,CAAA,MAAA,CAAQ,CACN,WAAAlE,CAAAA,CAAAA,CACA,SAAAH,CACF,CACF,CAAC,EACH,CAAA,MAASsd,CAAK,CAAA,CACZ,QAAQ,KAAM,CAAA,cAAA,CAAgBA,CAAG,CAAA,CACjC2f,EAAG,QAAS,CAAA,MAAM,EACpB,CACF,CAEJ,CACF,CAAA,CAAC,EAECv/B,GAAAqR,CAAAA,QAAAA,CAAA,CACE,QAAArR,CAAAA,GAAAA,CAAC6/B,2BAAA,CAAA,CACC,UAAU,EACV,CAAA,OAAA,CAAS,CAAE,cAAA,CAAAT,CAAe,CAC5B,CAAA,CAAA,CACF,CAIG,EAAA,IACT,CCtOA,IAAMU,EAAAA,CAA8C,CAClD,MAAA,CAAQ,CACN,IAAM,CAAA,WAAA,CACN,gBAAkB,CAAA,KAAA,CAClB,OAAQ,IACR,CAAA,oBAAA,CAAsB,KACxB,CAAA,CACA,OAAQ,CAAE,cAAA,CAAgB,OAAQ,CACpC,CAAA,CAEMC,GAAyD,CAC7D,KAAA,CAAO,QACP,CAAA,SAAA,CAAW,CACT,SAAW,CAAA,SAAA,CACX,UAAY,CAAA,yCACd,CACF,CAEA,CAAA,SAASC,EAAkB,CAAA,CACzB,QAAA1zB,CAAUwzB,CAAAA,EAAAA,CACV,6BAAA1D,CACF,CAAA,CAAwC,CACtC,IAAM17B,CAAAA,CAAM4V,MAA+B,CAAA,IAAI,EACzC,CAAE,wBAAA,CAAA6L,CAA0B,CAAA,sBAAA,CAAApD,EAAwB,aAAAF,CAAAA,CAAc,CACtE5O,CAAAA,UAAAA,CAAWoQ,CAAoB,CAC3B,CAAA,CAAE,KAAA1Z,CAAAA,CAAM,EAAIsJ,UAAWX,CAAAA,CAAY,CACnCklB,CAAAA,CAAAA,CAAS2K,WACTzc,CAAAA,CAAAA,CAAWud,WAAY,EAAA,CAC7BhvB,UAAU,KACJvQ,CAAAA,CAAI,OAAW8zB,EAAAA,CAAAA,EAAU9R,IAC3BhiB,CAAI,CAAA,OAAA,CAAQ,SAAW,IAAYnB,CAAAA,CAAA,sBACjC,OAAO,MAAMijB,CAAS,CAAA,CACpB,MAAO9hB,CAAI,CAAA,OAAA,CACX,MAAA8zB,CAAAA,CAAAA,CACA,SAAA9R,CACF,CAAC,CACH,CAAA,CAAA,CACA7D,EAAc,CAAE,GAAA,CAAAne,CAAI,CAAC,CAAA,CAAA,CAEhB,IAAM,CACXme,CAAAA,CAAc,CAAE,GAAA,CAAK,CAAE,OAAS,CAAA,IAAK,CAAE,CAAC,EAC1C,CACC,CAAA,CAAA,CAACne,CAAK8zB,CAAAA,CAAAA,CAAQ9R,CAAQ,CAAC,CAAA,CAC1B,IAAMF,CAAkBljB,CAAAA,CAAAA,EAIcC,EAAA,IAJdD,CAAAA,CAAAA,CAAAA,CAAAA,CAIc,UAJd,CACtB,MAAAuL,CACA,CAAA,MAAA,CAAA2pB,CACA,CAAA,QAAA,CAAA9R,CACF,CAAsC,CAAA,CA3FxC,IAAAxiB,CAAAA,CAAAC,EAAA6G,CAAA0B,CAAAA,CAAAA,CAAA2E,CAAAC,CAAAA,CAAAA,CAAA6G,EA4FI,GAAI,CAACqgB,CAAQ,CAAA,OAAO,OAEpB,IAAMwI,CAAAA,CAAAA,CAEJ78B,CAAAD,CAAAA,CAAAA,CAAAA,CAAA2K,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,QAAP,GAAA,IAAA,CAAA,MAAA,CAAA3K,EAAiB,sCAAjB,GAAA,IAAA,CAAA,MAAA,CAAAC,EAAyD,OAM3D,CAAA,GALI68B,GACF/yB,EACE,CAAA,yCAAA,CACA+yB,CACF,CAAA,CACEta,GAAY,IAAM,CAAA,CACpB,IAAMwd,CAAAA,CAAcv5B,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,eACrBuQ,CAAAA,CAAAA,CAAAA,CAAQlQ,EAAAL,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAO,cAAP,GAAA,IAAA,CAAAK,EAAyB,EACjCm5B,CAAAA,CAAAA,CAAiB,CACrB,IAAA,CAAA,CAAMz3B,EAAAw3B,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAa,CAAA,SAAA,GAAb,KAAAx3B,CAA0B,CAAA,EAAA,CAChC,KAAAwO,CAAAA,CAAAA,CACA,MAAOgpB,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAa,KACpB,CAAA,OAAA,CAAS,CACP,IAAMA,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAa,KACnB,OAASA,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAa,aACtB,KAAOA,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAa,OACpB,KAAO7yB,CAAAA,CAAAA,CAAAA,CAAA6yB,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAa,MAAb,GAAA,IAAA,CAAA7yB,CAAuB,CAAA,EAAA,CAC9B,aAAaC,CAAA4yB,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAa,WAAb,IAAA5yB,CAAAA,CAAAA,CAAyB,EACtC,CAAA,KAAA,CAAO4yB,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAa,UACtB,CACF,CAAA,CACM1gC,EAAM,IAAI,GAAA,CAAI,MAAO,CAAA,QAAA,CAAS,IAAI,CAClC4gC,CAAAA,CAAAA,CAAW,CAAG5gC,EAAAA,CAAAA,CAAI,MAAM,CAAGA,EAAAA,CAAAA,CAAI,QAAQ,CAAA,aAAA,EAAgBA,EAAI,YAAa,CAAA,GAAA,CAAI,aAAa,CAAC,CAAA,CAAA,CAC1F,CAAE,KAAA6E,CAAAA,CAAM,CAAI,CAAA,MAAMmwB,EAAO,cAAe,CAAA,CAC5C,QAAA9R,CAAAA,CAAAA,CACA,cAAe,CACb,UAAA,CAAY0d,CACZ,CAAA,mBAAA,CAAqB,CACnB,eAAiBD,CAAAA,CACnB,CACF,CACA,CAAA,QAAA,CAAU,aACZ,CAAC,CAAA,CACD,OAAI97B,CAAAA,EACF,QAAQ,KAAMA,CAAAA,CAAK,CACnB0a,CAAAA,CAAAA,CAAuB,CACrB,CACE,IAAA,CAAM,uCACN,CAAA,QAAA,CAAU,kBACV,KAAOoD,CAAAA,CAAAA,CACP,SAAShO,CAAA9P,CAAAA,CAAAA,CAAM,UAAN,IAAA8P,CAAAA,CAAAA,CAAiB,EAC5B,CACF,CAAC,CACM,CAAA,KAAA,EAEA,IAEX,CACA,OAAO,MACT,CAAA,CAAA,CAEA,OACEmT,IAAAA,CAAC,QAAK,GAAK5mB,CAAAA,CAAAA,CAET,UAAAV,GAACqgC,CAAAA,cAAAA,CAAA,CACC,EAAG,CAAA,iBAAA,CACH,OAAS9/B,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,GAAKu/B,EAAmBxzB,CAAAA,CAAAA,CAAAA,CAAAA,CACnC,CACC8vB,CAAAA,CAAAA,EACCp8B,IAACC,CAAA,CAAA,CAAa,IAAM,CAAA,wCAAA,CACjB,SAAAm8B,CACH,CAAA,CAAA,CAAA,CAEJ,CAEJ,CAYO,SAASkE,GAAcpgC,CAQA,CAAA,CARA,IAAAC,CAAAA,CAAAD,EAC5B,CAAAqgC,cAAAA,CAAAA,CAAAA,CACA,IAAA7b,CAAAA,CAAAA,CACA,QAAApY,CACA,CAAA,YAAA,CAAA4yB,CACA,CAAA,MAAA,CAAA5C,EAAS,MACT,CAAA,eAAA,CAAA/C,EAAkB,KApLpB,CAAA,CA8K8Bp5B,EAOzBC,CAAAC,CAAAA,CAAAA,CAPyBF,CAOzB,CAAA,CANH,iBACA,MACA,CAAA,SAAA,CACA,cACA,CAAA,QAAA,CACA,oBAGA,GAAM,CAACqgC,CAAUC,CAAAA,CAAW,EAAI1vB,QAAS,CAAA,KAAK,CACxC,CAAA,CAACyjB,EAAQkM,CAAS,CAAA,CAAI3vB,QAAwB,CAAA,IAAI,EAOpD7Q,CAAAE,CAAAA,CAAAA,CALF,CAAAugC,kBAAAA,CAAAA,CAAAA,CACA,6BAAAvE,CACA,CAAA,KAAA,CAAAwE,CAAQ,CAAA,GACR,UAAAC,CAAAA,CA7LJ,EA+LM3gC,CADC4gC,CAAAA,CAAAA,CAAAzgC,EACDH,CADC,CAAA,CAJH,oBACA,CAAA,8BAAA,CACA,QACA,YAGF+Q,CAAAA,CAAAA,CAAAA,SAAAA,CAAU,KACJyT,CAAAA,EAAQ6b,GACV,OAAO,mBAAmB,CAAE,CAAA,IAAA,CAAK,CAAC,CAAE,UAAA,CAAA9L,CAAW,CAAM,GAAA,CACNl1B,EAAA,IAC3C,CAAA,IAAA,CAAA,WAAA,CAAA,IAAM2kB,CAAM,CAAA,MAAMuQ,EAAW8L,CAAgB,CAAA,CAC3C,MAAAjE,CAAAA,CACF,CAAC,CACGpY,CAAAA,CAAAA,EAAO,IACTwc,GAAAA,CAAAA,CAAUxc,CAAG,CACbuc,CAAAA,CAAAA,CAAY,IAAI,CAEpB,EAAA,CAAA,EAEF,CAAC,CAEI,CAAA,IAAM,CACXA,CAAAA,CAAY,KAAK,EACnB,CAAA,CAAA,CACC,CAAC/b,CAAAA,CAAM6b,CAAc,CAAC,CAAA,CACzB,IAAMQ,CAAAA,CAAyC,CAC7C,YAAA7B,CAAAA,CAAAA,CACA,UAAY3+B,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,GAAKw/B,EAAsBc,CAAAA,CAAAA,CAAAA,CAAAA,CACvC,KAAAD,CAAAA,CACF,EACA,OAAOJ,CAAAA,EAAYhM,CAAU,EAAA,IAAA,EAAQ0K,GAAgB,IACnDl/B,CAAAA,GAAAA,CAAC,KAAAY,CAAAA,CAAAA,CAAAL,EAAA,CAAI,SAAA,CAAWogC,GAAwBG,CAAvC,CAAA,CAAA,CACC,SAAA9gC,GAACghC,CAAAA,QAAAA,CAAA,CAAS,MAAA,CAAQxM,EAAQ,OAASuM,CAAAA,CAAAA,CAChC,QAAAxH,CAAAA,CAAAA,CACCv5B,IAACi/B,EAAA,CAAA,CAAqB,YAAcC,CAAAA,CAAAA,CAAc,EAElDl/B,GAACggC,CAAAA,EAAAA,CAAA,CACC,OAAS1zB,CAAAA,CAAAA,CACT,6BAA8B8vB,CAChC,CAAA,CAAA,CAEJ,CACF,CAAA,CAAA,CAAA,CACE,IACN,CAEA,IAAO6E,EAAQX,CAAAA,EAAAA,CCrNR,SAASY,GAAczgC,CAAkC,CAAA,CAnBhE,IAAAN,CAAAA,CAAA6G,EAoBE,IAWI9G,CAAAA,CAAAO,CAVF,CAAA,CAAA,QAAA,CAAAynB,EACA,QAAAuW,CAAAA,CAAAA,CACA,eAAAC,CAAAA,CAAAA,CACA,SAAA3+B,CACA,CAAA,qBAAA,CAAA4+B,CACA,CAAA,IAAA,CAAAja,EACA,OAAApI,CAAAA,CAAAA,CACA,eAAAsiB,CAAAA,CAAAA,CACA,6BAAAxC,CA7BJ,CAAA,CA+BMl8B,CADCE,CAAAA,CAAAA,CAAAC,EACDH,CADC,CAAA,CATH,WACA,UACA,CAAA,iBAAA,CACA,WACA,uBACA,CAAA,MAAA,CACA,SACA,CAAA,iBAAA,CACA,iCAGI,CAAE,KAAA,CAAAyG,CAAM,CAAA,CAAIsJ,WAAWX,CAAY,CAAA,CACnC,CAAE,OAAA,CAAAqS,EAAS,eAAA4X,CAAAA,CAAgB,EAAItpB,UAAWsQ,CAAAA,EAA4B,EACtE,CAAE,QAAA,CAAAjH,CAAU,CAAA,OAAA,CAAAnC,CAAQ,CAAIlH,CAAAA,UAAAA,CAAWxO,CAAe,CAAA,CAClD,CAAE,sBAAA2gB,CAAAA,CAAAA,CAAwB,MAAArf,CAAAA,CAAAA,CAAQ,cAAAoc,CAAc,CAAA,CACpDlP,WAAWoQ,CAAoB,CAAA,CAC3Bf,EAAmC,iBACnCgd,CAAAA,CAAAA,CAAS31B,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAO,aAEtB,CAAA,GAAI,CAACuhB,CAAAA,EAAAA,CAAYvG,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAS,EAAOS,IAAAA,CAAAA,CAAwB,OAAO,IAEhE,CAAA,IAAMme,EAAiBphB,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAe,eAEhC+f,CAAAA,CAAAA,CAAe/f,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAe,aAC9BgiB,CAAAA,CAAAA,CAAep+B,CACjBgd,CAAAA,EAAAA,CAAoCT,EAAiBvc,CAAM,CAAA,CAAE,aAC7D,CAAA,GACEw7B,CACJ,CAAA,CAACj6B,GAAQgV,CAAQ,CAAA,EAAKA,EAClBA,CAAS,CAAA,MAAA,CAAQ0Z,CAAoB,EAAA,CAlD7C,IAAA9yB,CAmDU,CAAA,OAAA,CAAA,CAAOA,CAAA8yB,CAAAA,CAAAA,CAAgB,iBAAhB,IAAA9yB,CAAAA,MAAAA,CAAAA,CAAAA,CAAgC,IAASof,IAAAA,CAClD,CAAC,CACD,CAAA,GACN,GAAI4I,CAAAA,EAAYuW,EAAU,CACxB,IAAMnJ,CAAOvC,CAAAA,EAAAA,CAAe,CAC1B,eAAiB,CAAA,CACf,cAAgB5T,CAAAA,CAClB,EACA,WAAaG,CAAAA,CACf,CAAC,CAAA,CAAA,CACGgW,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAM,SAAU,EAClBA,GAAAA,CAAAA,CAAK,OAEHtuB,CAAA7G,CAAAA,CAAAA,CAAAA,CAAAgf,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAe,kBAAf,GAAA,IAAA,CAAA,MAAA,CAAAhf,CAAmC,CAAA,WAAA,GAAnC,KAAA6G,CAAkD,CAAA,aAAA,CAAA,CAEtD,IAAM4C,CAAAA,CAAQhJ,EAAAL,CAAA,CAAA,EAAA,CACT+0B,CADS,CAAA,CAAA,CAEZ,SAAAmJ,CACA,CAAA,eAAA,CAAAC,CACA,CAAA,QAAA,CAAAxW,EACA,aAAA/I,CAAAA,CACF,CACA,CAAA,CAAA,OAAA,CAAOmW,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAM,KAAS,GAAA,IAAA,CAAO,KAC3Bt1B,GAACk7B,CAAAA,EAAAA,CAAqB,SAArB,CAA8B,KAAA,CAAOtxB,EACnC,QAAA7J,CAAAA,CAAAA,CACH,CAEJ,CACA,OAAI,CAACoX,CAAAA,EAAWwnB,CAEZrX,CAAAA,IAAAA,CAAAjW,SAAA,CACG,QAAA,CAAA,CAAA/M,EAAQi6B,CAAAA,CAAgB,EAAI,IAC3Bv+B,CAAAA,GAAAA,CAAC,OAAI,SAAWI,CAAAA,CAAAA,CAAE,UAChB,QAAAJ,CAAAA,GAAAA,CAACs+B,EAAA,CAAA,CAA2B,gBAAAhf,CAAiB,CAAA,gBAAA,CAAAif,CAC1C,CAAA,QAAA,CAAAI,EACH,CACF,CAAA,CAAA,CAEF3+B,GAACihC,CAAAA,EAAAA,CAAA1gC,EAAA,CACC,IAAA,CAAMmkB,EACN,4BAA8B0X,CAAAA,CAAAA,CAC9B,eAAgBmE,CAChB,CAAA,YAAA,CAAcrB,CACd,CAAA,eAAA,CAAiB3F,EACjB,MAAQ+C,CAAAA,CAAAA,CAAAA,CACJ6E,CACN,CAAA,CAAA,CAAA,CACF,EAIFnhC,GAACihC,CAAAA,EAAAA,CAAA1gC,CAAA,CAAA,CACC,KAAMmkB,CACN,CAAA,cAAA,CAAgB6b,CAChB,CAAA,YAAA,CAAcrB,EACd,MAAQ5C,CAAAA,CAAAA,CACR,eAAiB/C,CAAAA,CAAAA,CAAAA,CACb4H,EACN,CAEJ,CAEA,IAAOC,EAAAA,CAAQF,GC9Gf,SAAOG,EAAAA,CAAiCC,CAAS11B,CAAAA,CAAAA,CAA4B,QAAArM,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CAC3E,OAAO,MAAM,IAAI,OAAa,CAAA,CAACgiC,EAASC,CAAW,GAAA,CAMxCrgC,EAAWmgC,CAAAA,CAAAA,EAAA,YAAAA,CAAI,CAAA,QAAQ,EAC9BA,CAAA,EAAA,IAAA,EAAAA,CAAI,CAAA,QAAA,CAAS,CAAC1hB,CAAUzX,CAAAA,CAAAA,GAAiB,CACnCyX,CAAAA,EAAK4hB,EAAO5hB,CAAG,CAAA,CACnB2hB,CAAQp5B,CAAAA,CAAO,EACjB,CAEAm5B,CAAAA,CAAAA,CAAAA,CAAG,CAAC1hB,CAAAA,CAAUsE,IAAa,CACrBtE,CAAAA,EAAK4hB,CAAO5hB,CAAAA,CAAG,EACnB2hB,CAAQrd,CAAAA,CAAG,EACb,CAAC,EACL,CAAC,CACH,CC2RU,CAAA,CAvPV,IAAM+X,GAAiC,CACrC,MAAA,CAAQ,CAEN,KAAA,CAAO,CACL,WAAa,CAAA,MAAA,CACb,KAAO,CAAA,SACT,EAIA,SAAW,CAAA,CACT,aAAe,CAAA,WACjB,EAGA,QAAU,CAAA,CACR,MAAO,MACT,CAAA,CACA,SAAU,CACR,KAAA,CAAO,OACT,CAAA,CACA,WAAY,CACV,KAAA,CAAO,KACT,CAAA,CAIA,uCAAwC,CAEtC,KAAA,CAAO,CACL,WAAA,CAAa,MACf,CACF,CACF,EACA,MAAQ,CAAA,CACN,OAAQ,CACN,KAAA,CAAO,aACP,CAAA,QAAA,CAAU,eACV,WAAa,CAAA,qBACf,CACA,CAAA,GAAA,CAAK,CACH,KAAO,CAAA,KAAA,CACP,QAAU,CAAA,MAAA,CACV,YAAa,KACf,CAAA,CACA,eAAgB,CACd,KAAA,CAAO,kBACP,QAAU,CAAA,kBAAA,CACV,WAAa,CAAA,SACf,CACF,CACA,CAAA,WAAA,CAAa,oBACf,CAAA,CAEO,SAASwF,EAAiB,CAAA,CAC/B,aAAAC,CAAAA,CAAAA,CACA,OAAA3+B,CACA,CAAA,4BAAA,CAAAq5B,CACF,CAA8B,CAAA,CAnH9B,IAAAl8B,CAAAC,CAAAA,CAAAA,CAAA6G,CAoHE,CAAA,GAAM,CACJ,MAAAnD,CAAAA,CAAAA,CACA,MAAA24B,CAAAA,CAAAA,CACA,mBAAAmE,CACA,CAAA,sBAAA,CAAApE,CACA,CAAA,wBAAA,CAAAoF,EACA,yBAAAC,CAAAA,CAAAA,CACA,oBAAAC,CACA,CAAA,qBAAA,CAAAC,EACA,qBAAAC,CAAAA,CAAAA,CACA,6BAAAC,CAAAA,CACF,EAAIzhC,CAAA,CAAA,CAAA,CAAA,EAAA,CAAK07B,EAAkBl5B,CAAAA,CAAAA,CAAAA,CAAAA,CACrB,CAACk/B,CAAeC,CAAAA,CAAgB,CAAInxB,CAAAA,QAAAA,CAAS,KAAK,CAClD,CAAA,CACJ,iBAAAwO,CACA,CAAA,aAAA,CAAAJ,EACA,sBAAAJ,CAAAA,CAAAA,CACA,wBAAAoD,CAAAA,CAAAA,CACA,cAAAtD,CACF,CAAA,CAAI5O,UAAWoQ,CAAAA,CAAoB,EAC7B,CAAE,KAAA,CAAA1Z,CAAM,CAAA,CAAIsJ,WAAWX,CAAY,CAAA,CACnC5O,CAAM4V,CAAAA,MAAAA,CAA+B,IAAI,CACzC6rB,CAAAA,CAAAA,CAA0B7iC,CAIKC,EAAAA,CAAAA,CAAA,MAJLD,CAIK,CAAA,CAAA,UAJL,CAC9B,KAAA,CAAAuL,EACA,oBAAAu3B,CAAAA,CAAAA,CACA,eAAAC,CAAAA,CACF,EAAqC,CA9IvC,IAAAniC,EAAAC,CAAA6G,CAAAA,CAAAA,CAAA0B,EAAA2E,CAAAC,CAAAA,CAAAA,CAAA6G,CA+II,CAAA,IAAM6oB,GAEJ78B,CAAAD,CAAAA,CAAAA,CAAAA,CAAA2K,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAO,QAAP,GAAA,IAAA,CAAA,MAAA,CAAA3K,CAAiB,CAAA,sCAAA,GAAjB,YAAAC,CAAyD,CAAA,OAAA,CAM3D,GALI68B,CACF/yB,EAAAA,EAAAA,CACE,0CACA+yB,CACF,CAAA,CACEoF,CACF,CAAA,GAAI,CACF,IAAMj6B,CAAAA,CAAU,MAAMk5B,EAAAA,CAAUe,CAAoB,CAAE,CAAA,IAAA,CACnDj6B,CAAYA,EAAAA,CACf,EACMvB,CAAiBD,CAAAA,CAAAA,EAAA,YAAAA,CAAO,CAAA,eAAA,CACxB27B,EAEF,CACF,KAAA,CAAOn6B,CAAQ,CAAA,KAAA,CACf,IAAKA,CAAQ,CAAA,OAAA,CAAQ,GACrB,CAAA,MAAA,CAAQ,GAAGxB,CAAA,EAAA,IAAA,CAAA,KAAA,CAAA,CAAAA,CAAO,CAAA,6BAA6B,GAC/C,KAAOK,CAAAA,CAAAA,CAAAA,CAAAL,CAAA,EAAA,IAAA,CAAA,KAAA,CAAA,CAAAA,EAAO,cAAP,GAAA,IAAA,CAAAK,CAAyB,CAAA,EAAA,CAChC,eAAgB,CACd,SAAA,CAAA,CAAW0B,CAAA9B,CAAAA,CAAAA,EAAA,YAAAA,CAAgB,CAAA,UAAA,GAAhB,IAAA8B,CAAAA,CAAAA,CAA8B,GACzC,OAAS2E,CAAAA,CAAAA,CAAAA,CAAAzG,GAAA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAgB,YAAhB,IAAAyG,CAAAA,CAAAA,CAA6B,EACtC,CAAA,WAAA,CAAazG,GAAA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAgB,KAC7B,CAAA,aAAA,CAAeA,GAAA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAgB,MAC/B,CAAA,iBAAA,CAAmBA,GAAA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAgB,aACnC,UAAY0G,CAAAA,CAAAA,CAAAA,CAAA1G,GAAA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAgB,QAAhB,GAAA,IAAA,CAAA0G,EAA4B,EACxC,CAAA,MAAA,CAAQ1G,CAAA,EAAA,IAAA,CAAA,KAAA,CAAA,CAAAA,EAAgB,UACxB,CAAA,QAAA,CAAUA,CAAA,EAAA,IAAA,CAAA,KAAA,CAAA,CAAAA,EAAgB,IAC5B,CAAA,CACA,iBAAkB,CAAC27B,CAAAA,CAAYC,KAAc,CAC3CA,EAAAA,GACF,CACF,EACM9iC,CAAY,CAAA,MAAM2iC,CAAgB,CAAA,UAAA,CACtCC,CACF,CAIA,CAAA,GAAA,CAFE5iC,CAAA,EAAA,IAAA,CAAA,KAAA,CAAA,CAAAA,EAAU,sBAA2B,IAAA,CAAA,CAAA,EAAA,CACrCA,CAAA,EAAA,IAAA,CAAA,KAAA,CAAA,CAAAA,EAAU,gBAAqB,IAAA,CAAA,CAAA,EACdyf,CAAiB,EAAA,IAAA,CAClC,aAAMI,CAAiB,CAAA,CACrB,eAAiBJ,CAAAA,CAAAA,CAAc,GAC/B,eAAiB,CAAA,oBAAA,CACjB,UAAY,CAAA,CACV,qBAAsBzf,CAAS,CAAA,KAAA,CAC/B,QAAS,CACP,EAAA,CAAIA,EAAS,KACb,CAAA,IAAA,CAAM,CACJ,KAAA,CAAOA,EAAS,OAAQ,CAAA,QAAA,CACxB,QAAUA,CAAAA,CAAAA,CAAS,QAAQ,cAC3B,CAAA,SAAA,CAAWA,CAAS,CAAA,OAAA,CAAQ,gBAC5B,KAAOA,CAAAA,CAAAA,CAAS,QAAQ,QAAS,CAAA,WAAA,EACnC,CACF,CACF,CACF,CAAC,EACM,CAEP,CAAA,CAAA,MAAM,IAAI,KAAA,CACR,sCAAqCyU,CAAAzU,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAU,mBAAV,IAAAyU,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAA4B,MAAM,CACzE,CAAA,CAEJ,OAAS9P,CAAY,CAAA,CACnB,OAAQ,OAAA,CAAA,KAAA,CAAMA,CAAK,CACnB0a,CAAAA,CAAAA,CAAuB,CACrB,CACE,KAAM,uCACN,CAAA,QAAA,CAAU,iBACV,CAAA,KAAA,CAAOoD,EACP,OAAS9d,CAAAA,CAAAA,CAAM,OACjB,CACF,CAAC,EACM,KACT,CAEF,OAAO,MACT,GACA,OAAA4M,SAAAA,CAAU,IAAM,CA9NlB,IAAA/Q,CAiOI,CAAA,GAFI,CAACQ,CAAAA,EAAOghC,GACVz3B,EAAsB,CAAA,yCAAA,CAA2C,OAAO,CACtEy3B,CAAAA,CAAAA,EAAiB,CAACO,CAAiB,EAAA,CAAC39B,EAAQ,CAAA,MAAM,EAAG,CACvD,IAAMm+B,CAAkB,CAAA,EAAA,CAAQ,sBAAsB,CAChDC,CAAAA,CAAAA,CAAe,EAAQ,CAAA,6BAA6B,EACpDC,CAAe,CAAA,EAAA,CAAQ,8BAA8B,CAC3DF,CAAAA,CAAAA,CAAgB,OACd,CACE,aAAA,CAAAf,CACA,CAAA,kBAAA,CAAA,CAAoBxhC,EAAA6C,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAQ,CAAA,kBAAA,GAAR,KAAA7C,CAA8B,CAAA,IACpD,CACA,CAAA,CAAC0iC,EAAgBC,CAAwB,GAAA,CACvC,GAAID,CAAW,CAAA,CACb,QAAQ,KAAMA,CAAAA,CAAS,CACvB,CAAA,MACF,CACAF,CAAa,CAAA,MAAA,CACX,CACE,MAAA,CAAQG,EACR,MAAQh/B,CAAAA,CAAAA,CACR,MAAA24B,CAAAA,CACF,EACA,CACEsG,CAAAA,CACAV,CACG,GAAA,CACH,GAAIU,CAAiB,CAAA,CACnB,OAAQ,CAAA,KAAA,CAAMA,CAAe,CAC7B,CAAA,MACF,CACAZ,CAAAA,CAAiB,IAAI,CACrBS,CAAAA,CAAAA,CAAa,MACX,CAAA,CACE,cAAAjB,CACA,CAAA,OAAA,CAAS,CACX,CACA,CAAA,CAACqB,EAAsBV,CAAkC,GAAA,CACnDU,CAEF,GAAA,OAAA,CAAQ,MAAM,gBAAkBA,CAAAA,CAAe,CAC/ChkB,CAAAA,CAAAA,CAAuB,CACrB,CACE,IAAA,CAAM,uCACN,CAAA,QAAA,CAAU,kBACV,KAAOoD,CAAAA,CAAAA,CACP,QAAS4gB,CAAgB,CAAA,OAC3B,CACF,CAAC,CAAA,CAAA,CAECriC,CAAI,CAAA,OAAA,GACNA,EAAI,OAAQ,CAAA,QAAA,CAAkBye,CAAuB5f,EAAAA,CAAAA,CAAA,sBACnD,OAAO,MAAM4iC,CAAiB,CAAA,CAC5B,MAAOzhC,CAAI,CAAA,OAAA,CACX,qBAAA0hC,CACA,CAAA,eAAA,CAAAC,EACA,aAAAljB,CAAAA,CACF,CAAC,CACH,GACAN,CAAc,CAAA,CAAE,GAAAne,CAAAA,CAAI,CAAC,CAEzB,EAAA,CACF,EACF,CACF,EACF,CACF,EACF,CACA,OAAO,IAAM,CACXme,CAAAA,CAAc,CAAE,GAAA,CAAK,CAAE,OAAS,CAAA,IAAK,CAAE,CAAC,EACxCqjB,CAAiB,CAAA,KAAK,EACxB,CACF,EAAG,CAACR,CAAAA,CAAehhC,CAAG,CAAC,CAAA,CAChB,CAACghC,CAAiB,EAAA,CAACO,CAAgB,CAAA,IAAA,CACxCjiC,IAAC,KAAI,CAAA,CAAA,SAAA,CAAW2gC,CACd,CAAA,QAAA,CAAArZ,KAAC,MACC,CAAA,CAAA,GAAA,CAAK5mB,CACL,CAAA,EAAA,CAAG,iBACH,QAAUyhC,CAAAA,CAAAA,CACV,UAAWxB,CAEX,CAAA,QAAA,CAAA,CAAArZ,KAAC,KAAI,CAAA,CAAA,SAAA,CAAWqa,CACd,CAAA,QAAA,CAAA,CAAAra,KAAC,KAAI,CAAA,CAAA,SAAA,CAAWiV,CACd,CAAA,QAAA,CAAA,CAAAv8B,IAAC,OAAM,CAAA,CAAA,SAAA,CAAW6hC,CAAqB,CAAA,OAAA,CAAQ,cAC5C,QAAA3hC,CAAAA,CAAAA,CAAAA,CAAA2D,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAQ,SAAR,IAAA3D,CAAAA,MAAAA,CAAAA,CAAAA,CAAgB,KACnB,CAAA,CAAA,CACAF,IAAC,KAAI,CAAA,CAAA,SAAA,CAAW+hC,CAAuB,CAAA,EAAA,CAAG,cAAc,CAC1D,CAAA,CAAA,CAAA,CACAza,IAAC,CAAA,KAAA,CAAA,CAAI,UAAW0a,CACd,CAAA,QAAA,CAAA,CAAA1a,IAAC,CAAA,KAAA,CAAA,CAAI,UAAWsa,CACd,CAAA,QAAA,CAAA,CAAA5hC,GAAC,CAAA,OAAA,CAAA,CAAM,UAAW6hC,CAAqB,CAAA,OAAA,CAAQ,iBAC5C,CAAA,QAAA,CAAA,CAAA1hC,EAAA0D,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAQ,CAAA,cAAA,GAAR,YAAA1D,CAAwB,CAAA,KAAA,CAC3B,EACAH,GAAC,CAAA,KAAA,CAAA,CAAI,UAAW+hC,CAAuB,CAAA,EAAA,CAAG,iBAAkB,CAAA,CAAA,CAAA,CAC9D,EACAza,IAAC,CAAA,KAAA,CAAA,CAAI,SAAWwa,CAAAA,CAAAA,CACd,UAAA9hC,GAAC,CAAA,OAAA,CAAA,CAAM,SAAW6hC,CAAAA,CAAAA,CAAqB,QAAQ,KAC5C,CAAA,QAAA,CAAA,CAAA76B,EAAAnD,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAQ,GAAR,GAAA,IAAA,CAAA,MAAA,CAAAmD,CAAa,CAAA,KAAA,CAChB,EACAhH,GAAC,CAAA,KAAA,CAAA,CAAI,SAAW+hC,CAAAA,CAAAA,CAAuB,GAAG,KAAM,CAAA,CAAA,CAAA,CAClD,CACF,CAAA,CAAA,CAAA,CAAA,CACF,EACA/hC,GAAC,CAAA,KAAA,CAAA,CAAI,UAAW2hC,CACb,CAAA,QAAA,CAAAvF,GACCp8B,GAACC,CAAAA,CAAAA,CAAA,CAAa,IAAA,CAAM,yCACjB,QAAAm8B,CAAAA,CAAAA,CACH,CAEJ,CAAA,CAAA,CAAA,CACF,EACF,CAEJ,CAEA,IAAO4G,EAAAA,CAAQvB,GChUR,SAASwB,EAAiBxiC,CAAAA,CAAAA,CAAkC,CACjE,IAUIP,EAAAO,CATF,CAAA,CAAA,QAAA,CAAAynB,EACA,QAAAuW,CAAAA,CAAAA,CACA,gBAAAC,CACA,CAAA,QAAA,CAAA3+B,CACA,CAAA,qBAAA,CAAA4+B,EACA,OAAAriB,CAAAA,CAAAA,CACA,eAAAsiB,CAAAA,CAAAA,CACA,6BAAAxC,CA1BJ,CAAA,CA4BMl8B,CADCE,CAAAA,CAAAA,CAAAC,EACDH,CADC,CAAA,CARH,WACA,UACA,CAAA,iBAAA,CACA,WACA,uBACA,CAAA,SAAA,CACA,iBACA,CAAA,8BAAA,CAAA,CAAA,CAGI,CAAE,KAAAyG,CAAAA,CAAM,CAAIsJ,CAAAA,UAAAA,CAAWX,CAAY,CACnC,CAAA,CAAE,OAAAqS,CAAAA,CAAQ,EAAI1R,UAAWsQ,CAAAA,EAA4B,EACrD,CAAE,QAAA,CAAAjH,EAAU,OAAAnC,CAAAA,CAAQ,CAAIlH,CAAAA,UAAAA,CAAWxO,CAAe,CAClD,CAAA,CAAE,sBAAA2gB,CAAAA,CAAAA,CAAwB,OAAArf,CAAQ,CAAA,aAAA,CAAAoc,CAAc,CAAA,CACpDlP,WAAWoQ,CAAoB,CAAA,CAC3Bf,CAAmC,CAAA,oBAAA,CACnCgd,EAAS31B,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAO,CAAA,aAAA,CAEtB,GAAI,CAACuhB,CAAAA,EAAAA,CAAYvG,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAS,EAAOS,IAAAA,CAAAA,CAAwB,OAAO,IAAA,CAEhE,IAAMsf,CAAgBviB,CAAAA,CAAAA,EAAA,YAAAA,CAAe,CAAA,YAAA,CAC/B+jB,EAAkB5L,EAAqB,CAAA,CAC3C,QAAUhY,CAAAA,CAAAA,CACV,OAAQvc,CAAA,EAAA,IAAA,CAAAA,CAAU,CAAA,GAClB,IAAM,CAAA,CAAC,oBAAoB,CAC7B,CAAC,CACK+7B,CAAAA,CAAAA,CAAgBoE,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAiB,iBACjC3E,CACJ,CAAA,CAACj6B,EAAQgV,CAAAA,CAAQ,GAAKA,CAClBA,CAAAA,CAAAA,CAAS,MAAQ0Z,CAAAA,CAAAA,EAAoB,CAhD7C,IAAA9yB,CAAAA,CAiDU,OAAOA,CAAAA,CAAAA,CAAAA,CAAA8yB,EAAgB,cAAhB,GAAA,IAAA,CAAA,MAAA,CAAA9yB,EAAgC,IAAS,IAAA,oBAClD,CAAC,CACD,CAAA,EACN,CAAA,GAAIgoB,GAAYuW,CAAU,CAAA,CACxB,IAAMnJ,CAAAA,CAAOvC,GAAe,CAC1B,eAAA,CAAiB,CACf,cAAA,CAAgB5T,CAClB,CACA,CAAA,WAAA,CAAaG,CACf,CAAC,EACK1V,CAAQhJ,CAAAA,CAAAA,CAAAL,CAAA,CAAA,EAAA,CAAK+0B,GAAL,CAAW,QAAA,CAAAmJ,CAAU,CAAA,eAAA,CAAAC,EAAiB,QAAAxW,CAAAA,CAAS,CAC7D,CAAA,CAAA,OAAO5jB,GAAQgxB,CAAI,CAAA,CAAI,KACrBt1B,GAACk7B,CAAAA,EAAAA,CAAqB,SAArB,CAA8B,KAAA,CAAOtxB,CACnC,CAAA,QAAA,CAAA7J,EACH,CAEJ,CACA,OAAI,CAACoX,GAAWwnB,CAEZrX,CAAAA,IAAAA,CAAAjW,QAAA,CAAA,CACG,UAAA/M,EAAQi6B,CAAAA,CAAgB,EAAI,IAC3Bv+B,CAAAA,GAAAA,CAAC,OAAI,SAAWI,CAAAA,CAAAA,CAAE,SAChB,CAAA,QAAA,CAAAJ,IAACs+B,EAAA,CAAA,CAA2B,eAAAhf,CAAAA,CAAAA,CAAiB,iBAAAif,CAC1C,CAAA,QAAA,CAAAI,CACH,CAAA,CAAA,CACF,EAEF3+B,GAACgjC,CAAAA,EAAAA,CAAA,CACC,4BAA8B5G,CAAAA,CAAAA,CAC9B,cAAesF,CACf,CAAA,MAAA,CAAQpF,CACR,CAAA,MAAA,CAAQwC,EACV,CACF,CAAA,CAAA,CAAA,CAIF9+B,GAACgjC,CAAAA,EAAAA,CAAA,CACC,MAAQ1G,CAAAA,CAAAA,CACR,aAAeoF,CAAAA,CAAAA,CACf,OAAQ5C,CACV,CAAA,CAEJ,CAEA,IAAOqE,GAAQF,EC7Ff,CAYA,IAAMG,EAAAA,CACJ,0GAIK,SAASC,EAAAA,CAAcnjC,EAGA,CAHA,IAAAC,CAAAD,CAAAA,CAAAA,CAC5B,aAAAojC,CAnBF,CAAA,CAkB8BnjC,CAEzBC,CAAAA,CAAAA,CAAAC,EAFyBF,CAEzB,CAAA,CADH,aAGA,CAAA,CAAA,CAAA,IAAMO,EAAM4V,MAA+B,CAAA,IAAI,EACzC,CACJ,gBAAA,CAAAiJ,EACA,aAAAJ,CAAAA,CAAAA,CACA,wBAAAgD,CAAAA,CAAAA,CACA,cAAAtD,CACF,CAAA,CAAI5O,UAAWoQ,CAAAA,CAAoB,EACnCpP,SAAU,CAAA,KAENvQ,CAAI,CAAA,OAAA,EACJye,GACAgD,CAEAhD,GAAAA,CAAAA,EAAA,MAAAA,CAAe,CAAA,YAAA,CAAA,GAEfze,EAAI,OAAQ,CAAA,QAAA,CAAW,IAAYnB,CAAAA,CAAA,sBACjC,OAAO,MAAM+T,CAAY,EAC3B,GACAuL,CAAc,CAAA,CAAE,GAAAne,CAAAA,CAAI,CAAC,CAEhB,CAAA,CAAA,IAAM,CACXme,CAAc,CAAA,CAAE,IAAK,CAAE,OAAA,CAAS,IAAK,CAAE,CAAC,EAC1C,CAAA,CAAA,CACC,CAACne,CAAAA,CAAKye,EAAegD,CAAwB,CAAC,CACjD,CAAA,IAAM7O,EAAc,IAA8B/T,CAAAA,CAAA,sBAChD,GAAI4f,CAAAA,EAAiBgD,EACnB,GAAI,CACF,OAAM5C,MAAAA,CAAAA,CAAiB,CACrB,eAAiBJ,CAAAA,CAAAA,CAAc,EAC/B,CAAA,eAAA,CAAiBgD,EACjB,UAAY,CAAA,CACV,QAAU,CAAA,CACR,KAAM,CACJ,EAAA,CAAIhD,EAAc,EAClB,CAAA,KAAA,CAAO,SACP,KAAO,CAAA,EACT,CACF,CACF,CACF,CAAC,CAAA,CACM,CACT,CAAA,CAAA,MAASpX,EAAG,CACV,OAAO,MACT,CAEF,OAAO,MACT,CAAA,CAAA,CACA,OACE/H,GAAC,CAAA,MAAA,CAAA,CAAK,IAAKU,CACT,CAAA,QAAA,CAAAV,GAAC,CAAA,KAAA,CAAAY,EAAAL,CAAA,CAAA,EAAA,CAAQH,CAAR,CAAA,CAAA,CACC,SAAAJ,GAAC,CAAA,MAAA,CAAA,CAAK,SAAWsjC,CAAAA,CAAAA,EAAA,YAAAA,CAAa,CAAA,SAAA,CAC3B,QAAAniC,CAAAA,EAAAA,CAAWmiC,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAa,IAAI,CAAA,CACzBA,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAa,IACbA,EAAAA,CAAAA,CAAAA,CAAAA,EAAA,YAAAA,CAAa,CAAA,IAAA,GAAQF,EAC3B,CAAA,CAAA,CAAA,CACF,EACF,CAEJ,CAEA,IAAOG,EAAQF,CAAAA,EAAAA,CCpER,SAASG,EAAc/iC,CAAAA,CAAAA,CAAkC,CAdhE,IAAAN,EAeE,IAAgED,CAAAA,CAAAO,EAAxD,CAAAynB,QAAAA,CAAAA,CAAAA,CAAU,SAAAuW,CAAU,CAAA,eAAA,CAAAC,CAAiB,CAAA,QAAA,CAAA3+B,CAf/C,CAekEG,CAAAA,CAAAA,CAANE,CAAAC,CAAAA,CAAAA,CAAMH,EAAN,CAAlD,UAAA,CAAU,UAAU,CAAA,iBAAA,CAAiB,aACvC,CAAE,KAAA,CAAAyG,CAAM,CAAIsJ,CAAAA,UAAAA,CAAWX,CAAY,CACnC,CAAA,CAAE,OAAAqS,CAAAA,CAAQ,EAAI1R,UAAWsQ,CAAAA,EAA4B,CACrD,CAAA,CAAE,uBAAA6B,CAAwB,CAAA,MAAA,CAAArf,CAAQ,CAAA,aAAA,CAAAoc,CAAc,CACpDlP,CAAAA,UAAAA,CAAWoQ,CAAoB,CAAA,CAC3Bf,EAAmC,iBAEzC,CAAA,GAAI,CAAC4I,CAAAA,EAAAA,CAAYvG,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAS,EAAOS,IAAAA,CAAAA,CAAwB,OAAO,IAChE,CAAA,GAAI8F,CAAU,CAAA,CACZ,IAAMoN,CAAOvC,CAAAA,EAAAA,CAAe,CAC1B,eAAiB,CAAA,CACf,gBAAgBpsB,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAO,CAAA,cAAA,GAAkBwY,CAC3C,CACA,CAAA,WAAA,CAAaG,CACf,CAAC,EACK1V,CAAQhJ,CAAAA,CAAAA,CAAAL,CAAA,CAAA,EAAA,CAAK+0B,GAAL,CAAW,QAAA,CAAAmJ,EAAU,eAAAC,CAAAA,CAAAA,CAAiB,SAAAxW,CAAS,CAAA,CAAA,CAC7D,OAAO5jB,EAAAA,CAAQgxB,CAAI,CAAI,CAAA,IAAA,CACrBt1B,GAACk7B,CAAAA,EAAAA,CAAqB,SAArB,CAA8B,KAAA,CAAOtxB,CACnC,CAAA,QAAA,CAAA7J,EACH,CAEJ,CACA,IAAMqK,CAAaktB,CAAAA,EAAAA,CAAqB,CACtC,QAAUhY,CAAAA,CAAAA,CACV,MAAQvc,CAAAA,CAAAA,EAAA,KAAAA,CAAU,CAAA,EAClB,CAAA,IAAA,CAAM,CAAC,iBAAiB,CAC1B,CAAC,CAAA,CACKugC,GAAcnjC,CAAAiK,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAY,gBAAZ,IAAAjK,CAAAA,MAAAA,CAAAA,CAAAA,CAA2B,WAC/C,CAAA,OAAA,OAAOC,EAAE,IACT,CAAA,OAAOA,CAAE,CAAA,qBAAA,CACT,OAAOA,CAAE,CAAA,4BAAA,CACT,OAAOA,CAAAA,CAAE,QACT,OAAOA,CAAAA,CAAE,gBACT,OAAOA,CAAAA,CAAE,qBACFJ,GAACujC,CAAAA,EAAAA,CAAA3iC,CAAAL,CAAAA,CAAAA,CAAA,GAAkBH,CAAlB,CAAA,CAAA,CAAqB,WAAakjC,CAAAA,CAAAA,CAAAA,CAAa,CACzD,CAEA,IAAOG,EAAQD,CAAAA,EAAAA,CC1Cf,IAAMJ,EACJ,CAAA,wFAAA,CAKK,SAASM,EAAAA,CAAoBxjC,EAA2C,CAA3C,IAAAC,CAAAD,CAAAA,CAAAA,CAAE,aAAAojC,CAhBtC,CAAA,CAgBoCnjC,EAAkBC,CAAAC,CAAAA,CAAAA,CAAlBF,EAAkB,CAAhB,aAAA,CAAA,CAAA,CAhBtC,IAAAD,CAAAA,CAiBE,GAAM,CAAE,SAAA,CAAA2P,CAAW,CAAA,aAAA,CAAe8zB,CAAW,CAAIvjC,CAAAA,CAAAA,CAC3CM,CAAM4V,CAAAA,MAAAA,CAA+B,IAAI,CACzC,CAAA,CACJ,iBAAAiJ,CACA,CAAA,aAAA,CAAAJ,EACA,wBAAAgD,CAAAA,CAAAA,CACA,aAAAtD,CAAAA,CACF,EAAI5O,UAAWoQ,CAAAA,CAAoB,CACnCpP,CAAAA,SAAAA,CAAU,KACJvQ,CAAI,CAAA,OAAA,EAAWye,CAAiBgD,EAAAA,CAAAA,GAClCzhB,EAAI,OAAQ,CAAA,QAAA,CAAW,IAAYnB,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CACjC,OAAO,MAAM+T,CAAAA,EACf,CAAA,CAAA,CACAuL,EAAc,CAAE,GAAA,CAAAne,CAAI,CAAC,GAEhB,IAAM,CACXme,CAAc,CAAA,CAAE,IAAK,CAAE,OAAA,CAAS,IAAK,CAAE,CAAC,EAC1C,CACC,CAAA,CAAA,CAACne,CAAKye,CAAAA,CAAAA,CAAegD,CAAwB,CAAC,CAAA,CACjD,IAAM7O,CAAAA,CAAc,IAA8B/T,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CAChD,GAAI4f,CAAAA,EAAiBgD,EACnB,GAAI,CACF,aAAM5C,CAAiB,CAAA,CACrB,gBAAiBJ,CAAc,CAAA,EAAA,CAC/B,eAAiBgD,CAAAA,CAAAA,CACjB,WAAY,CACV,QAAA,CAAU,CACR,IAAA,CAAM,CACJ,EAAIhD,CAAAA,CAAAA,CAAc,EAClB,CAAA,KAAA,CAAO,gBACP,KAAO,CAAA,EACT,CACF,CACF,CACF,CAAC,CAAA,CACM,CACT,CAAA,CAAA,MAAS9a,EAAO,CACd,OAAO,MACT,CAEF,OAAO,MACT,CAAA,CAAA,CACA,OACErE,GAAAA,CAAC,QAAK,GAAKU,CAAAA,CAAAA,CACT,SAAAV,GAAC,CAAA,KAAA,CAAA,CAAI,UAAW6P,CAAW,CAAA,aAAA,CAAa8zB,CACtC,CAAA,QAAA,CAAA3jC,IAAC,MAAK,CAAA,CAAA,SAAA,CAAWsjC,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAa,SAC3B,CAAA,QAAA,CAAA,CAAApjC,CAAAojC,CAAAA,CAAAA,EAAA,YAAAA,CAAa,CAAA,IAAA,GAAb,KAAApjC,CAAqBkjC,CAAAA,EAAAA,CACxB,EACF,CACF,CAAA,CAEJ,CAEA,IAAOQ,GAAQF,EC3Df,CAKO,SAASG,GAAoBpjC,CAAkC,CAAA,CACpE,IAAgEP,CAAAO,CAAAA,CAAAA,CAAxD,CAAAynB,QAAAA,CAAAA,CAAAA,CAAU,SAAAuW,CAAU,CAAA,eAAA,CAAAC,CAAiB,CAAA,QAAA,CAAA3+B,CAjB/C,CAiBkEG,CAAAA,CAAAA,CAANE,CAAAC,CAAAA,CAAAA,CAAMH,EAAN,CAAlD,UAAA,CAAU,UAAU,CAAA,iBAAA,CAAiB,aACvC,CAAE,OAAA,CAAAyhB,CAAQ,CAAA,CAAI1R,WAAWsQ,EAA4B,CAAA,CACrD,CAAE,KAAA,CAAA5Z,CAAM,CAAIsJ,CAAAA,UAAAA,CAAWX,CAAY,CAAA,CACnC,CAAE,sBAAA8S,CAAAA,CAAAA,CAAwB,OAAArf,CAAQ,CAAA,aAAA,CAAAoc,CAAc,CACpDlP,CAAAA,UAAAA,CAAWoQ,CAAoB,CAAA,CAC3Bf,EAAmC,gBAEzC,CAAA,GAAI,CAAC4I,CAAAA,EAAAA,CAAYvG,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAS,EAAOS,IAAAA,CAAAA,CAAwB,OAAO,IAChE,CAAA,GAAI8F,EAAU,CACZ,IAAMoN,EAAOvC,EAAe,CAAA,CAC1B,eAAiB,CAAA,CACf,gBAAgBpsB,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAO,CAAA,cAAA,GAAkBwY,CAC3C,CACA,CAAA,WAAA,CAAaG,CACf,CAAC,EACK1V,CAAQhJ,CAAAA,CAAAA,CAAAL,EAAA,EAAK+0B,CAAAA,CAAAA,CAAAA,CAAL,CAAW,QAAAmJ,CAAAA,CAAAA,CAAU,eAAAC,CAAAA,CAAAA,CAAiB,SAAAxW,CAAS,CAAA,CAAA,CAC7D,OAAO5jB,EAAAA,CAAQgxB,CAAI,CAAI,CAAA,IAAA,CACrBt1B,GAACk7B,CAAAA,EAAAA,CAAqB,SAArB,CAA8B,KAAA,CAAOtxB,CACnC,CAAA,QAAA,CAAA7J,EACH,CAEJ,CACA,IAAM+jC,CAAAA,CACJ/gC,GAAUuc,CACNS,CAAAA,EAAAA,CAAmCT,CAAiBvc,CAAAA,CAAM,EAC1D,EAAC,CACP,OAAO/C,GAAAA,CAAC4jC,GAAArjC,CAAA,CAAA,CAAA,CAAA,EAAA,CAAwBH,GAAO0jC,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAoB,YAAc,CAAA,CAC3E,CAEA,IAAOC,GAAQF,EC9Cf,CCEe,SAARG,EAAAA,CAAmCxkC,EAAsB,CAC9D,GAAM,CAACykC,CAAAA,CAAQC,CAAS,CAAInzB,CAAAA,QAAAA,CAAS,KAAK,CAAA,CAC1C,OAAAE,SAAU,CAAA,IAAM,CACd,IAAMkzB,EAAS,QAAS,CAAA,aAAA,CAAc,QAAQ,CAC9C,CAAA,OAAAA,EAAO,GAAM3kC,CAAAA,CAAAA,CACb2kC,CAAO,CAAA,KAAA,CAAQ,KACf,QAAS,CAAA,IAAA,CAAK,WAAYA,CAAAA,CAAM,EAChCA,CAAO,CAAA,MAAA,CAAS,IAAM,CACpBD,EAAU,IAAI,EAChB,EACO,IAAM,CACX,SAAS,IAAK,CAAA,WAAA,CAAYC,CAAM,CAAA,CAChCD,EAAU,KAAK,EACjB,CACF,CAAA,CAAG,CAAC1kC,CAAG,CAAC,CACDykC,CAAAA,CACT,CDCA,IAAMG,EAAAA,CAAY,6CAcZC,CAAAA,EAAAA,CAAqC,CACzC,OACA,CAAA,OAAA,CACA,QACA,OACA,CAAA,OAAA,CACA,QACA,OACF,CAAA,CAEMvE,EAAiB,CAAA,CACrB,MAAO,CACL,IAAA,CAAM,CACJ,KAAA,CAAO,QACP,QAAU,CAAA,MACZ,CACA,CAAA,QAAA,CAAU,CACR,eAAiB,CAAA,QACnB,EACA,KAAO,CAAA,CACL,MAAO,MACT,CAAA,CACA,KAAO,CAAA,CACL,MAAO,MACT,CAAA,CACA,KAAO,CAAA,CACL,MAAO,OACT,CAAA,CACA,OAAS,CAAA,CACP,MAAO,KACT,CAAA,CACA,WAAa,CAAA,CACX,KAAM,CACJ,KAAA,CAAO,MACT,CAAA,CACA,MAAO,CACL,MAAA,CAAQ,gBACV,CACF,CACF,CACF,CAAA,CAUO,SAASwE,EAAAA,CAAmBpkC,EAKL,CALK,IAAAC,EAAAD,CACjC,CAAA,CAAA,SAAA,CAAAqkC,EACA,OAAAj4B,CAAAA,CAAAA,CAAUwzB,EACV,CAAA,MAAA,CAAAxD,EAAS,OAtFX,CAAA,CAmFmCn8B,CAI9BC,CAAAA,CAAAA,CAAAC,EAJ8BF,CAI9B,CAAA,CAHH,WACA,CAAA,SAAA,CACA,WAGA,IAAMO,CAAAA,CAAM4V,OAA+B,IAAI,CAAA,CACzC2tB,EAASD,EAAkBI,CAAAA,EAAS,CACpC,CAAA,CACJ,cAAAvlB,CACA,CAAA,wBAAA,CAAAsD,CACA,CAAA,aAAA,CAAAhD,EACA,gBAAAI,CAAAA,CAAAA,CACA,sBAAAR,CAAAA,CACF,EAAI9O,UAAWoQ,CAAAA,CAAoB,EAC7B,CAAE,KAAA,CAAA1Z,CAAM,CAAIsJ,CAAAA,UAAAA,CAAWX,CAAY,CAAA,CAQrCpP,EAAAE,CANF,CAAA,CAAA,kBAAA,CAAAugC,CACA,CAAA,4BAAA,CAAAvE,EACA,UAAAoI,CAAAA,CAAAA,CAAa,MAAO,CAAA,QAAA,CAAS,KAC7B,UAAAC,CAAAA,CAAAA,CAAa,MAAO,CAAA,QAAA,CAAS,KAC7B,IAAA/f,CAAAA,CAxGJ,CA0GMxkB,CAAAA,CAAAA,CADC4gC,EAAAzgC,CACDH,CAAAA,CAAAA,CADC,CALH,oBAAA,CACA,+BACA,YACA,CAAA,YAAA,CACA,MAGI2jB,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,IAA8BtkB,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CA3GrD,IAAAW,CAAAC,CAAAA,CAAAA,CAAA6G,EAAA0B,CAAA2E,CAAAA,CAAAA,CAAAC,CAAA6G,CAAAA,CAAAA,CAAAC,EAAAC,CAAAC,CAAAA,CAAAA,CAAAC,CAAAC,CAAAA,CAAAA,CAAAC,EA4GI,IAAMuoB,CAAAA,CAAAA,CAEJh2B,CAAA7G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAD,EAAAQ,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAK,OAAL,GAAA,IAAA,CAAA,MAAA,CAAAR,EAAc,QAAd,GAAA,IAAA,CAAA,MAAA,CAAAC,CAAwB,CAAA,sCAAA,GAAxB,YAAA6G,CAAgE,CAAA,OAAA,CAOlE,GANIg2B,CAAAA,EACF/yB,GACE,yCACA+yB,CAAAA,CACF,CAEE,CAAA,MAAA,CAAO,OAAQ,CACjB,MAAA,CAAO,OAAO,UAAa,CAAA,CACzB,MAAMt0B,CAAA/B,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,kBAAP,IAAA+B,CAAAA,MAAAA,CAAAA,CAAAA,CAAwB,SAC9B,CAAA,cAAA,CAAgB,CACd,YAAc2E,CAAAA,CAAAA,CAAAA,CAAA1G,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAO,eAAP,GAAA,IAAA,CAAA,MAAA,CAAA0G,CAAwB,CAAA,MAAA,CACtC,cAAc8G,CAAA7G,CAAAA,CAAAA,CAAAA,CAAA3G,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAO,eAAP,GAAA,IAAA,CAAA,MAAA,CAAA2G,CAAwB,CAAA,MAAA,GAAxB,KAAA6G,CAAkC,CAAA,EAAA,CAChD,GAAKE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAD,EAAAzN,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAO,eAAP,GAAA,IAAA,CAAA,MAAA,CAAAyN,EAAwB,QAAxB,GAAA,IAAA,CAAAC,CAAoC,CAAA,EAAA,CACzC,MAAMC,CAAA3N,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,kBAAP,IAAA2N,CAAAA,MAAAA,CAAAA,CAAAA,CAAwB,IAC9B,CAAA,KAAA,CAAA,CAAOC,EAAA5N,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAO,eAAP,GAAA,IAAA,CAAA,MAAA,CAAA4N,EAAwB,UAC/B,CAAA,OAAA,CAAA,CAASC,CAAA7N,CAAAA,CAAAA,EAAA,YAAAA,CAAO,CAAA,eAAA,GAAP,IAAA6N,CAAAA,MAAAA,CAAAA,CAAAA,CAAwB,YACnC,CACA,CAAA,KAAA,CAAA,CAAOC,CAAA9N,CAAAA,CAAAA,EAAA,YAAAA,CAAO,CAAA,eAAA,GAAP,YAAA8N,CAAwB,CAAA,KACjC,EACA,GAAI,CACF,IAAMhV,CAAAA,CAAO,MAAM,MAAO,CAAA,MAAA,CAAO,UAAW,EAAA,CAC5C,GAAIA,CAAK,CAAA,KAAA,EAAS0f,CAAiBgD,EAAAA,CAAAA,CAA0B,CAC3D,IAAMkQ,CAAAA,CAAM,MAAM9S,CAAiB,CAAA,CACjC,gBAAiBJ,CAAc,CAAA,EAAA,CAC/B,eAAiBgD,CAAAA,CAAAA,CACjB,WAAY,CACV,KAAA,CAAO1iB,CAAK,CAAA,KAAA,CACZ,aAAc,OACd,CAAA,WAAA,CAAa+kC,CACb,CAAA,WAAA,CAAaC,EACb,UAAY,CAAA,CAAA,CACd,CACF,CAAC,CAAA,CACGpS,GAAA,IAAAA,EAAAA,CAAAA,CAAI,YACN,GAAA,MAAA,CAAO,SAAS,IAAOA,CAAAA,CAAAA,CAAG,YAE9B,EAAA,CACF,OAAShuB,CAAY,CAAA,CACnB,OAAQ,CAAA,KAAA,CAAMA,CAAK,CACnB0a,CAAAA,CAAAA,CAAuB,CACrB,CACE,IAAA,CAAM,wCACN,QAAU,CAAA,iBAAA,CACV,KAAOoD,CAAAA,CAAAA,CACP,QAAS9d,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAO,CAAA,OAClB,CACF,CAAC,EACH,CACF,CACA,OAAO,MACT,CAAA,CAAA,CACMqgC,EACJ,CAAGpI,EAAAA,CAAAA,CAAO,aAAa,CAAA,CAAA,EAAIA,CAAO,CAAA,WAAA,EAAa,CAC3CqI,CAAAA,CAAAA,CAAAA,CAAeN,EAAgB,CAAA,QAAA,CAASK,CAAI,CAAIA,CAAAA,CAAAA,CAAO,OAC7D,CAAA,OAAOT,GAAUvf,CACf4C,CAAAA,IAAAA,CAAC,MAAK,CAAA,CAAA,GAAA,CAAK5mB,EACT,QAAAV,CAAAA,CAAAA,GAAAA,CAAC,KAAAY,CAAAA,CAAAA,CAAAL,EAAA,CAAI,SAAA,CAAWogC,CAAwBG,CAAAA,CAAAA,CAAAA,CAAAA,CAAvC,CACC,QAAAxZ,CAAAA,IAAAA,CAACsd,MAAA,CAAA,CACC,OAAQrkC,CAAA,CAAA,CACN,MAAO,IACP,CAAA,SAAA,CAAAgkC,EACA,YAAAI,CAAAA,CAAAA,CAAAA,CACGr4B,CAEL,CAAA,CAAA,qBAAA,CAAwBvE,GAAM,CACxBA,CAAAA,CAAE,OAAWrH,EAAAA,CAAAA,CAAI,UACnBA,CAAI,CAAA,OAAA,CAAQ,QAAW,CAAA,IAAYnB,EAAA,IACjC,CAAA,IAAA,CAAA,WAAA,CAAA,OAAO,MAAMskB,CAAa,EAC5B,GACAhF,CAAc,CAAA,CAAE,GAAAne,CAAAA,CAAI,CAAC,CAEzB,EAAA,CAAA,CACA,aAAgBjB,CAAAA,CAAAA,EAASA,EAEzB,QAAAO,CAAAA,CAAAA,GAAAA,CAAC6kC,UAAA,CAAA,EAAW,EACZ7kC,GAAC8kC,CAAAA,UAAAA,CAAA,EAAW,CACZ9kC,CAAAA,GAAAA,CAAC+kC,IAAA,EAAI,CAAA,CAAA,CACP,CACF,CAAA,CAAA,CAAA,CACC3I,GACCp8B,GAACC,CAAAA,CAAAA,CAAA,CAAa,IAAA,CAAM,yCACjB,QAAAm8B,CAAAA,CAAAA,CACH,CAEJ,CAAA,CAAA,CAAA,CACE,IACN,CAEA,IAAO4I,EAAQV,CAAAA,EAAAA,CEpLR,SAASW,GAAmBxkC,CAAkC,CAAA,CACnE,IAWIP,CAAAO,CAAAA,CAAAA,CAVF,UAAAynB,CACA,CAAA,QAAA,CAAAuW,CACA,CAAA,eAAA,CAAAC,EACA,QAAA3+B,CAAAA,CAAAA,CACA,qBAAA4+B,CAAAA,CAAAA,CACA,KAAAja,CACA,CAAA,OAAA,CAAApI,CACA,CAAA,eAAA,CAAAsiB,EACA,4BAAAxC,CAAAA,CA7BJ,EA+BMl8B,CADCE,CAAAA,CAAAA,CAAAC,EACDH,CADC,CAAA,CATH,UACA,CAAA,UAAA,CACA,kBACA,UACA,CAAA,uBAAA,CACA,MACA,CAAA,SAAA,CACA,kBACA,8BAGI,CAAA,CAAA,CAAA,CAAE,KAAAyG,CAAAA,CAAM,EAAI7F,EAAM,CAAA,UAAA,CAAWwO,CAAY,CACzC,CAAA,CAAE,QAAAqS,CAAQ,CAAA,CAAI7gB,EAAM,CAAA,UAAA,CAAWyf,EAA4B,CAC3D,CAAA,CAAE,QAAAjH,CAAAA,CAAAA,CAAU,QAAAnC,CAAQ,CAAA,CAAIrW,EAAM,CAAA,UAAA,CAAWW,CAAe,CACxD,CAAA,CAAE,sBAAA2gB,CAAAA,CAAAA,CAAwB,OAAArf,CAAQ,CAAA,aAAA,CAAAoc,CAAc,CAAA,CACpDre,GAAM,UAAWuf,CAAAA,CAAoB,CACjCf,CAAAA,CAAAA,CAAmC,wBACnCgd,CAAS31B,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,cAEtB,GAAI,CAACuhB,IAAYvG,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAS,EAAOS,IAAAA,CAAAA,CAAwB,OAAO,IAAA,CAEhE,IAAMmiB,CAAYplB,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAe,WAC3B2f,CAAgB/7B,CAAAA,CAAAA,CAClBgd,EAA0CT,CAAAA,CAAAA,CAAiBvc,CAAM,CACjE,CAAA,GACEw7B,CACJ,CAAA,CAACj6B,GAAQgV,CAAQ,CAAA,EAAKA,CAClBA,CAAAA,CAAAA,CAAS,OAAQ0Z,CAAoB,EAAA,CAhD7C,IAAA9yB,CAAAA,CAiDU,SAAOA,CAAA8yB,CAAAA,CAAAA,CAAgB,cAAhB,GAAA,IAAA,CAAA,MAAA,CAAA9yB,EAAgC,IAASof,IAAAA,CAClD,CAAC,CACD,CAAA,GACN,GAAI4I,CAAAA,EAAYuW,CAAU,CAAA,CACxB,IAAMnJ,CAAOvC,CAAAA,EAAAA,CAAe,CAC1B,eAAA,CAAiB,CACf,cAAgB5T,CAAAA,CAClB,CACA,CAAA,WAAA,CAAaG,CACf,CAAC,CAAA,CACK1V,EAAQhJ,CAAAL,CAAAA,CAAAA,CAAA,GAAK+0B,CAAL,CAAA,CAAA,CAAW,QAAAmJ,CAAAA,CAAAA,CAAU,gBAAAC,CAAiB,CAAA,QAAA,CAAAxW,CAAS,CAAA,CAAA,CAC7D,OAAQoN,CAAK,CAAA,KAAA,CACXt1B,GAACk7B,CAAAA,EAAAA,CAAqB,SAArB,CAA8B,KAAA,CAAOtxB,EACnC,QAAA7J,CAAAA,CAAAA,CACH,EAHmB,IAKvB,CACA,OAAI,CAACoX,GAAWwnB,CAEZrX,CAAAA,IAAAA,CAAAjW,QAAA,CAAA,CACG,UAAA/M,EAAQi6B,CAAAA,CAAgB,CAAI,CAAA,IAAA,CAC3Bv+B,IAAC,KAAI,CAAA,CAAA,SAAA,CAAWI,EAAE,SAChB,CAAA,QAAA,CAAAJ,IAACs+B,EAAA,CAAA,CAA2B,eAAAhf,CAAAA,CAAAA,CAAiB,iBAAAif,CAC1C,CAAA,QAAA,CAAAI,CACH,CAAA,CAAA,CACF,EAEF3+B,GAACglC,CAAAA,EAAAA,CAAAzkC,CAAA,CAAA,CACC,KAAMmkB,CACN,CAAA,4BAAA,CAA8B0X,EAC9B,SAAWmI,CAAAA,CAAAA,CACX,OAAQjI,CACJwC,CAAAA,CAAAA,CAAAA,CACN,CACF,CAAA,CAAA,CAAA,CAKF9+B,IAACglC,EAAAzkC,CAAAA,CAAAA,CAAA,CACC,IAAA,CAAMmkB,EACN,SAAW6f,CAAAA,CAAAA,CACX,MAAQjI,CAAAA,CAAAA,CAAAA,CACJwC,EACN,CAEJ,CAEA,IAAOoG,EAAAA,CAAQD,GCxEf,SAASE,GACPC,CACmB,CAAA,CACnB,OAAQA,CAAc,EACpB,KAAK,gCAAA,CACH,OAAO,UACT,CAAA,KAAK,WACH,CAAA,OAAO,eACT,KAAK,MAAA,CACH,OAAO,UAAA,CACT,KAAK,iBACL,CAAA,QACE,OAAO,IACX,CACF,CAUA,SAASC,EAAAA,CAAiB/+B,CAA4C,CAAA,CACpE,OAAOA,CAEHA,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAW,IAAKyW,CAAS,EAAA,CACvB,IAAMtZ,CAAAA,CAAOsZ,EAAK,SAAYooB,CAAAA,EAAAA,CAAWpoB,EAAK,SAAS,CAAA,CAAI,KAC3D,OAAO,CAEL,QAAUA,CAAAA,CAAAA,CAAK,SACf,YAAcA,CAAAA,CAAAA,CAAK,kBACnB,CAAA,UAAA,CAAYA,EAAK,iBACjB,CAAA,IAAA,CAAAtZ,CACF,CACF,GACA,EACN,CAEe,SAAR6hC,GAA+BplC,CAKK,CAAA,CALL,IAAAC,CAAAA,CAAAD,EACpC,CAAAqlC,WAAAA,CAAAA,CAAAA,CACA,kBAAAC,CAAAA,CAAAA,CACA,OAAAlJ,CAAS,CAAA,IApEX,CAiEsCn8B,CAAAA,CAAAA,CAIjCC,EAAAC,CAJiCF,CAAAA,CAAAA,CAIjC,CAHH,aACA,CAAA,oBAAA,CACA,WAGA,IAAMO,CAAAA,CAAM4V,MAA+B,CAAA,IAAI,EACzC,CACJ,aAAA,CAAA6I,CACA,CAAA,wBAAA,CAAAgD,EACA,aAAAtD,CAAAA,CAAAA,CACA,gBAAAU,CAAAA,CACF,EAAItP,UAAWoQ,CAAAA,CAAoB,EAC7B,CAAE,KAAA,CAAA1Z,CAAM,CAAIsJ,CAAAA,UAAAA,CAAWX,CAAY,CAAA,CACnC20B,EAASD,EAAkB,CAAA,0CAA0C,CACrE,CAAA,CAACyB,EAAQC,CAAS,CAAA,CAAI30B,QAAc,EAAA,CACE7Q,EAAAE,CAApC,CAAA,CAAA,kBAAA,CAAAugC,CAjFV,CAiF8CzgC,CAAAA,CAAAA,CAAb4gC,EAAAzgC,CAAaH,CAAAA,CAAAA,CAAb,CAAvB,oBAAA,CAAA,CAAA,CACR+Q,UAAU,IAAM,CACVgzB,CAAU,EAAA,CAAA,MAAA,EAAA,IAAA,CAAA,MAAA,CAAA,MAAA,CAAQ,UAAW,MAC/ByB,EAAAA,CAAAA,CAAU,MAAO,CAAA,MAAM,EAE3B,CAAG,CAAA,CAACzB,CAAQ,CAAA,MAAA,CAAO,MAAM,CAAC,CAAA,CAC1BhzB,SAAU,CAAA,KAENvQ,EAAI,OACJye,EAAAA,CAAAA,EACAgD,CACA8hB,EAAAA,CAAAA,EACAwB,IAEA/kC,CAAI,CAAA,OAAA,CAAQ,QAAkBD,CAAAA,CAAAA,EAAelB,EAAA,IAC3C+T,CAAAA,IAAAA,CAAAA,WAAAA,CAAAA,CAAAA,CAAYmyB,EAAQhlC,CAAK,EAC3B,GACAoe,CAAc,CAAA,CAAE,GAAAne,CAAAA,CAAI,CAAC,CAEhB,CAAA,CAAA,IAAM,CACXme,CAAAA,CAAc,CAAE,GAAK,CAAA,CAAE,OAAS,CAAA,IAAK,CAAE,CAAC,EAC1C,GACC,CAACne,CAAAA,CAAKye,EAAegD,CAA0B8hB,CAAAA,CAAAA,CAAQwB,CAAM,CAAC,EACjE,IAAMnyB,CAAAA,CAAc,CAACqyB,CAAAA,CAASllC,IAAqB,CAxGrD,IAAAP,CAAAC,CAAAA,CAAAA,CAAA6G,EAAA0B,CAAA2E,CAAAA,CAAAA,CAAAC,EAAA6G,CAAAC,CAAAA,CAAAA,CAAAC,EAAAC,CAAAC,CAAAA,CAAAA,CAAAC,CAAAC,CAAAA,CAAAA,CAAAC,EAAAue,CAAAC,CAAAA,CAAAA,CA0GI,GAAM,CAAC3U,CAAK,CAAIY,CAAAA,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAe,kBAAmB,MAC5CymB,CAAAA,CAAAA,CAA0BrnB,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,WACjC3X,CAAiB,CAAA,CACrB,UAAY1G,CAAAA,CAAAA,CAAAA,CAAAyG,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,eAAP,GAAA,IAAA,CAAA,MAAA,CAAAzG,EAAwB,UACpC,CAAA,WAAA,CAAA,CAAaC,CAAAwG,CAAAA,CAAAA,EAAA,YAAAA,CAAO,CAAA,eAAA,GAAP,YAAAxG,CAAwB,CAAA,SAAA,CACrC,MAAOwG,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAO,CAAA,cAAA,CACd,gBAAgBK,CAAAL,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,kBAAP,IAAAK,CAAAA,MAAAA,CAAAA,CAAAA,CAAwB,MACxC,CAAA,eAAA,CAAiB,KACjB,iBAAmB,CAAA,IAAA,CACnB,aAAa0B,CAAA/B,CAAAA,CAAAA,EAAA,YAAAA,CAAO,CAAA,eAAA,GAAP,IAAA+B,CAAAA,MAAAA,CAAAA,CAAAA,CAAwB,SACrC,IAAM2E,CAAAA,CAAAA,CAAAA,CAAA1G,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAO,eAAP,GAAA,IAAA,CAAA,MAAA,CAAA0G,CAAwB,CAAA,IAAA,CAC9B,QAAQC,CAAA3G,CAAAA,CAAAA,EAAA,YAAAA,CAAO,CAAA,eAAA,GAAP,YAAA2G,CAAwB,CAAA,UAAA,CAChC,KAAO6G,CAAAA,CAAAA,CAAAA,CAAAxN,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,eAAP,GAAA,IAAA,CAAA,MAAA,CAAAwN,EAAwB,KAC/B,CAAA,OAAA,CAAA,CAASC,CAAAzN,CAAAA,CAAAA,EAAA,YAAAA,CAAO,CAAA,eAAA,GAAP,IAAAyN,CAAAA,MAAAA,CAAAA,CAAAA,CAAwB,YACnC,CACMtN,CAAAA,CAAAA,CAAkB,CACtB,UAAA,CAAA,CAAYuN,EAAA1N,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAO,CAAA,gBAAA,GAAP,YAAA0N,CAAyB,CAAA,UAAA,CACrC,WAAaC,CAAAA,CAAAA,CAAAA,CAAA3N,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,mBAAP,IAAA2N,CAAAA,MAAAA,CAAAA,CAAAA,CAAyB,UACtC,KAAO3N,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,eACd,cAAgB4N,CAAAA,CAAAA,CAAAA,CAAA5N,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAO,gBAAP,GAAA,IAAA,CAAA,MAAA,CAAA4N,CAAyB,CAAA,MAAA,CACzC,gBAAiB,IACjB,CAAA,WAAA,CAAA,CAAaC,EAAA7N,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAO,gBAAP,GAAA,IAAA,CAAA,MAAA,CAAA6N,CAAyB,CAAA,QAAA,CACtC,kBAAmB,IACnB,CAAA,IAAA,CAAA,CAAMC,CAAA9N,CAAAA,CAAAA,EAAA,YAAAA,CAAO,CAAA,gBAAA,GAAP,IAAA8N,CAAAA,MAAAA,CAAAA,CAAAA,CAAyB,KAC/B,MAAQC,CAAAA,CAAAA,CAAAA,CAAA/N,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,mBAAP,IAAA+N,CAAAA,MAAAA,CAAAA,CAAAA,CAAyB,UACjC,CAAA,KAAA,CAAA,CAAOue,EAAAtsB,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAO,CAAA,gBAAA,GAAP,YAAAssB,CAAyB,CAAA,KAAA,CAChC,OAASC,CAAAA,CAAAA,CAAAA,CAAAvsB,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,mBAAP,IAAAusB,CAAAA,MAAAA,CAAAA,CAAAA,CAAyB,YACpC,CACM2S,CAAAA,CAAAA,CAAa,CACjB,aAAA,CAAel/B,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,EACtB,CAAA,gBAAA,CAAkBA,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,YACzB,CAAA,iBAAA,CAAmBA,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,cAC1B,MAAA21B,CAAAA,CAAAA,CACA,iBAAkBx1B,CAClB,CAAA,eAAA,CAAiBF,CACjB,CAAA,YAAA,CAAcD,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,kBACrB,CAAA,WAAA,CAAa0+B,GAAiB1+B,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAO,CAAA,UAAU,EAC/C,gBAAkBA,CAAAA,CAAAA,EAAA,YAAAA,CAAO,CAAA,sBAC3B,EACAg/B,CAAG,CAAA,QAAA,CAAS,SACVplC,CAAAA,CAAAA,CAAA,CACE,uBAAyBqlC,CAAAA,CAAAA,CAAAA,CACtBC,CAEE3hB,CAAAA,CAAAA,CAAAA,EAAwB3kB,EAAA,IAC7B,CAAA,IAAA,CAAA,WAAA,CAAA,GAAI2kB,CAAI,CAAA,QAAA,EAAY/E,GAAiBgD,CAA0B,CAAA,CAC7D,IAAMkQ,CAAK,CAAA,MAAM9S,EAAiB,CAChC,eAAA,CAAiBJ,CAAc,CAAA,EAAA,CAC/B,gBAAiBgD,CACjB,CAAA,UAAA,CAAY,CACV,UAAA,CAAY+B,EAAI,mBAClB,CACF,CAAC,CAAA,CACD,GAAIzjB,CAAM,CAAA,aAAA,EAAiB,IAAM,CAAA,CAC/B,IAAMm1B,EAAS,CAAA,MAAMn1B,CAAM,CAAA,aAAA,CAAc,CAAE,aAAe4xB,CAAAA,CAAG,CAAC,CAAA,CAC1DuD,IAAUn1B,CAAM,CAAA,eAAA,EAAmB,IACrCA,EAAAA,CAAAA,CAAM,gBAAgBm1B,EAAM,EAEhC,CACF,CACF,CAAA,CACF,EACF,CACA,CAAA,GAAI6P,CAAUF,EAAAA,CAAAA,CAAa,CAEzB,GAAM,CAAChnB,CAAK,CAAA,CAAA,CAAIY,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAe,eAAmB,GAAA,MAAA,CAClDsmB,EAAO,QAAS,CAAA,IAAA,CAAK,CACnB,YAAcF,CAAAA,CAChB,CAAC,CACDE,CAAAA,CAAAA,CAAO,QAAS,CAAA,IAAA,CAAK,CACnB,SAAW,CAAA,4BAAA,CACX,uBAAyBlnB,CAAAA,CAAAA,EAAA,YAAAA,CAAO,CAAA,UAClC,CAAC,EACH,CACA,OACEve,GAAAA,CAAC,QAAK,GAAKU,CAAAA,CAAAA,CACT,SAAAV,GAAC,CAAA,KAAA,CAAAY,CAAAL,CAAAA,CAAAA,CAAA,CAAI,SAAWogC,CAAAA,CAAAA,CAAAA,CAAwBG,CAAvC,CAAA,CAAA,CACC,SAAA9gC,GAAC,CAAA,KAAA,CAAA,CAAI,EAAG,CAAA,2BAAA,CAA4B,GACtC,CACF,CAAA,CAEJ,CCzKO,SAAS8lC,GAAcrlC,CAAkC,CAAA,CAC9D,IASIP,CAAAA,CAAAO,EARF,CAAAynB,QAAAA,CAAAA,CAAAA,CACA,SAAAuW,CACA,CAAA,eAAA,CAAAC,EACA,QAAA3+B,CAAAA,CAAAA,CACA,qBAAA4+B,CAAAA,CAAAA,CACA,QAAAriB,CACA,CAAA,eAAA,CAAAsiB,CA1BJ,CAAA,CA4BM1+B,EADCE,CAAAC,CAAAA,CAAAA,CACDH,CADC,CAAA,CAPH,WACA,UACA,CAAA,iBAAA,CACA,WACA,uBACA,CAAA,SAAA,CACA,oBAGI,CAAE,KAAA,CAAAyG,CAAM,CAAA,CAAI7F,GAAM,UAAWwO,CAAAA,CAAY,CACzC,CAAA,CAAE,QAAAqS,CAAQ,CAAA,CAAI7gB,EAAM,CAAA,UAAA,CAAWyf,EAA4B,CAC3D,CAAA,CAAE,SAAAjH,CAAU,CAAA,OAAA,CAAAnC,CAAQ,CAAIrW,CAAAA,EAAAA,CAAM,UAAWW,CAAAA,CAAe,EACxD,CAAE,sBAAA,CAAA2gB,CAAwB,CAAA,MAAA,CAAArf,EAAQ,aAAAoc,CAAAA,CAAc,CACpDre,CAAAA,EAAAA,CAAM,WAAWuf,CAAoB,CAAA,CACjCf,CAAmC,CAAA,iBAAA,CACnCgd,EAAS31B,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAO,CAAA,aAAA,CAEtB,GAAI,CAACuhB,CAAAA,EAAAA,CAAYvG,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAS,EAAOS,IAAAA,CAAAA,CAAwB,OAAO,IAAA,CAEhE,IAAMmjB,CAAcpmB,CAAAA,CAAAA,EAAA,YAAAA,CAAe,CAAA,YAAA,CAC7B4mB,EAAehjC,CACjBgd,CAAAA,EAAAA,CAAoCT,CAAiBvc,CAAAA,CAAM,EAC3D,EAAC,CACCw7B,CACJ,CAAA,CAACj6B,GAAQgV,CAAQ,CAAA,EAAKA,CAClBA,CAAAA,CAAAA,CAAS,OAAQ0Z,CAAoB,EAAA,CA7C7C,IAAA9yB,CA8CU,CAAA,OAAA,CAAA,CAAOA,EAAA8yB,CAAgB,CAAA,cAAA,GAAhB,IAAA9yB,CAAAA,MAAAA,CAAAA,CAAAA,CAAgC,QAASof,CAClD,CAAC,CACD,CAAA,GAEN,GAAI4I,CAAAA,EAAYuW,CAAU,CAAA,CACxB,IAAMnJ,CAAOvC,CAAAA,EAAAA,CAAe,CAC1B,eAAiB,CAAA,CACf,eAAgB5T,CAClB,CAAA,CACA,WAAaG,CAAAA,CACf,CAAC,CACK1V,CAAAA,CAAAA,CAAQhJ,CAAAL,CAAAA,CAAAA,CAAA,GAAK+0B,CAAL,CAAA,CAAA,CAAW,QAAAmJ,CAAAA,CAAAA,CAAU,gBAAAC,CAAiB,CAAA,QAAA,CAAAxW,CAAS,CAAA,CAAA,CAC7D,OAAO5jB,EAAQgxB,CAAAA,CAAI,CAAI,CAAA,IAAA,CACrBt1B,IAACk7B,EAAqB,CAAA,QAAA,CAArB,CAA8B,KAAA,CAAOtxB,EACnC,QAAA7J,CAAAA,CAAAA,CACH,CAEJ,CACA,OAAI,CAACoX,CAAAA,EAAWwnB,EAEZrX,IAAAjW,CAAAA,QAAAA,CAAA,CACG,QAAA/M,CAAAA,CAAAA,EAAAA,CAAQi6B,CAAgB,CAAA,CAAI,KAC3Bv+B,GAAC,CAAA,KAAA,CAAA,CAAI,SAAWI,CAAAA,CAAAA,CAAE,UAChB,QAAAJ,CAAAA,GAAAA,CAACs+B,EAAA,CAAA,CAA2B,gBAAAhf,CAAiB,CAAA,gBAAA,CAAAif,EAC1C,QAAAI,CAAAA,CAAAA,CACH,EACF,CAEF3+B,CAAAA,GAAAA,CAACslC,EAAA/kC,CAAAA,CAAAA,CAAA,CACC,WAAaglC,CAAAA,CAAAA,CACb,MAAQjJ,CAAAA,CAAAA,CAAAA,CACJyJ,EACN,CACF,CAAA,CAAA,CAAA,CAKF/lC,GAACslC,CAAAA,EAAAA,CAAA/kC,EAAA,CACC,WAAA,CAAaglC,EACb,MAAQjJ,CAAAA,CAAAA,CAAAA,CACJyJ,EACN,CAEJ,CAEA,IAAOC,EAAAA,CAAQF,GC9DR,SAASG,EAAgBxlC,CAAAA,CAAAA,CAAkC,CAChE,GAAM,CAAE,aAAAoe,CAAAA,CAAc,CAAI5O,CAAAA,UAAAA,CAAWoQ,CAAoB,CACnD,CAAA,CAAE,KAAA1Z,CAAAA,CAAAA,CAAO,YAAA6B,CAAY,CAAA,CAAIyH,WAAWX,CAAY,CAAA,CAChD5O,EAAM4V,MAA+B,CAAA,IAAI,CAC/CrF,CAAAA,SAAAA,CAAU,IAAM,CACVvQ,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAK,UAAW,IAClBA,GAAAA,CAAAA,CAAI,OAAQ,CAAA,QAAA,CAAW,IAAYnB,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CACjC,OAAO,KACT,CAAA,CAAA,CACAsf,EAAc,CAAE,GAAA,CAAAne,CAAI,CAAC,GAEzB,CAAG,CAAA,CAACA,CAAG,CAAC,EACR,IAAMQ,CAAAA,CAAcN,CAAAL,CAAAA,CAAAA,CAAA,GACfE,CADe,CAAA,CAAA,CAElB,MAAAkG,CACA,CAAA,WAAA,CAAA6B,CACF,CACA,CAAA,CAAA,OAAA,CAAO/H,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAO,eAAmB,GAAA,IAAA,EAAQA,CAAM,CAAA,IAAA,CAC7C6mB,KAAC,MAAK,CAAA,CAAA,GAAA,CAAK5mB,CACT,CAAA,QAAA,CAAA,CAAAV,IAACC,CAAAW,CAAAA,CAAAA,CAAAL,EAAA,EAAWW,CAAAA,CAAAA,CAAAA,CAAX,CAAyB,QAAAT,CAAAA,CAAAA,CAAM,eAAgB,CAAA,CAAA,CAAA,CAAA,CAC/CA,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,4BAAgC,GAAA,IAAA,EACtCT,IAACC,CAAA,CAAA,CAAa,IAAM,CAAA,wCAAA,CACjB,SAAAQ,CAAM,CAAA,4BAAA,CACT,GAEJ,CACE,CAAA,IACN,CAEA,IAAOylC,EAAAA,CAAQD,EC9Cf,CAMO,SAASE,EAAgB1lC,CAAAA,CAAAA,CAAkC,CAChE,IAWIP,CAAAA,CAAAO,CAVF,CAAA,CAAA,QAAA,CAAAynB,EACA,QAAAuW,CAAAA,CAAAA,CACA,eAAAC,CAAAA,CAAAA,CACA,SAAA3+B,CACA,CAAA,qBAAA,CAAA4+B,CACA,CAAA,IAAA,CAAAja,EACA,OAAApI,CAAAA,CAAAA,CACA,gBAAAsiB,CACA,CAAA,4BAAA,CAAAxC,CA7BJ,CA+BMl8B,CAAAA,CAAAA,CADCE,CAAAC,CAAAA,CAAAA,CACDH,EADC,CATH,UAAA,CACA,UACA,CAAA,iBAAA,CACA,WACA,uBACA,CAAA,MAAA,CACA,SACA,CAAA,iBAAA,CACA,iCAGI,CAAE,KAAA,CAAAyG,CAAM,CAAA,CAAI7F,GAAM,UAAWwO,CAAAA,CAAY,CACzC,CAAA,CAAE,QAAAqS,CAAQ,CAAA,CAAI7gB,EAAM,CAAA,UAAA,CAAWyf,EAA4B,CAC3D,CAAA,CAAE,QAAAjH,CAAAA,CAAAA,CAAU,QAAAnC,CAAQ,CAAA,CAAIrW,GAAM,UAAWW,CAAAA,CAAe,EACxD,CAAE,sBAAA,CAAA2gB,CAAwB,CAAA,MAAA,CAAArf,EAAQ,aAAAoc,CAAAA,CAAc,CACpDre,CAAAA,EAAAA,CAAM,WAAWuf,CAAoB,CAAA,CACjCf,CAAmC,CAAA,mBAAA,CACnCgd,EAAS31B,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAO,aAEtB,CAAA,GAAI,CAACuhB,CAAYvG,EAAAA,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAS,MAAOS,CAAwB,CAAA,OAAO,IAEhE,CAAA,IAAMoP,EAAqBrS,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAe,CAAA,oBAAA,CACpCinB,EAAYrjC,CACdgd,CAAAA,EAAAA,CAAsCT,EAAiBvc,CAAM,CAAA,CAC7D,EACE+7B,CAAAA,CAAAA,CAAgBsH,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAW,eAC3B7H,CAAAA,CAAAA,CACJ,CAACj6B,EAAAA,CAAQgV,CAAQ,CAAKA,EAAAA,CAAAA,CAClBA,CAAS,CAAA,MAAA,CAAQ0Z,GAAoB,CAjD7C,IAAA9yB,CAkDU,CAAA,OAAA,CAAA,CAAOA,EAAA8yB,CAAgB,CAAA,cAAA,GAAhB,IAAA9yB,CAAAA,MAAAA,CAAAA,CAAAA,CAAgC,QAASof,CAClD,CAAC,CACD,CAAA,GAEN,GAAI4I,CAAAA,EAAYuW,CAAU,CAAA,CACxB,IAAMnJ,CAAOvC,CAAAA,EAAAA,CAAe,CAC1B,eAAiB,CAAA,CACf,eAAgB5T,CAClB,CAAA,CACA,WAAaG,CAAAA,CACf,CAAC,CACK1V,CAAAA,CAAAA,CAAQhJ,CAAAL,CAAAA,CAAAA,CAAA,GAAK+0B,CAAL,CAAA,CAAA,CAAW,QAAAmJ,CAAAA,CAAAA,CAAU,gBAAAC,CAAiB,CAAA,QAAA,CAAAxW,CAAS,CAC7D,CAAA,CAAA,OAAO5jB,GAAQgxB,CAAI,CAAA,CAAI,IACrBt1B,CAAAA,GAAAA,CAACk7B,GAAqB,QAArB,CAAA,CAA8B,KAAOtxB,CAAAA,CAAAA,CACnC,SAAA7J,CACH,CAAA,CAEJ,CACA,OAAI,CAACoX,CAAWwnB,EAAAA,CAAAA,CAEZrX,KAAAjW,QAAA,CAAA,CACG,UAAA/M,EAAQi6B,CAAAA,CAAgB,CAAI,CAAA,IAAA,CAC3Bv+B,IAAC,KAAI,CAAA,CAAA,SAAA,CAAWI,CAAE,CAAA,SAAA,CAChB,SAAAJ,GAACs+B,CAAAA,EAAAA,CAAA,CAA2B,eAAA,CAAAhf,EAAiB,gBAAAif,CAAAA,CAAAA,CAC1C,QAAAI,CAAAA,CAAAA,CACH,EACF,CAEF3+B,CAAAA,GAAAA,CAACkmC,EAAA3lC,CAAAA,CAAAA,CAAA,CACC,IAAMmkB,CAAAA,CAAAA,CACN,4BAA8B0X,CAAAA,CAAAA,CAC9B,mBAAoB5K,CACpB,CAAA,MAAA,CAAQ8K,CACJwC,CAAAA,CAAAA,CAAAA,CACN,GACF,CAIF9+B,CAAAA,GAAAA,CAACkmC,GAAA3lC,CAAA,CAAA,CACC,KAAMmkB,CACN,CAAA,kBAAA,CAAoB8M,CACpB,CAAA,MAAA,CAAQ8K,GACJwC,CACN,CAAA,CAEJ,CAEA,IAAOuH,GAAQF,EC0DF,CAvHN,SAASG,EAAepmC,CAAAA,CAAAA,CAWD,CAXC,IAAAC,CAAAA,CAAAD,EAC7B,CAAAgoB,QAAAA,CAAAA,CAAAA,CACA,QAAAuW,CAAAA,CAAAA,CACA,gBAAAC,CACA,CAAA,QAAA,CAAA3+B,CACA,CAAA,qBAAA,CAAA4+B,EACA,4BAAAvC,CAAAA,CAAAA,CACA,oBAAAmK,CAAAA,CAAAA,CACA,KAAA7hB,CACA,CAAA,MAAA,CAAAqE,EAAS,YA9CX,CAAA,CAqC+B5oB,EAU1BC,CAAAC,CAAAA,CAAAA,CAV0BF,CAU1B,CAAA,CATH,WACA,UACA,CAAA,iBAAA,CACA,UACA,CAAA,uBAAA,CACA,+BACA,sBACA,CAAA,MAAA,CACA,QA9CF,CAAA,CAAA,CAAA,IAAAD,EAiDE,IAAM0+B,CAAAA,CAAkBvH,GAAmBtO,CAAM,CAAA,CAC3C,CAACzM,CAASsC,CAAAA,CAAU,CAAI7N,CAAAA,QAAAA,CAAS,IAAI,CACrC,CAAA,CAAE,OAAA4Q,CAAAA,CAAAA,CAAS,gBAAA4X,CAAgB,CAAA,CAAItpB,UAAWsQ,CAAAA,EAA4B,EACtE,CAAE,KAAA,CAAA5Z,CAAM,CAAIsJ,CAAAA,UAAAA,CAAWX,CAAY,CACnC,CAAA,CAAE,yBAAA+J,CAAAA,CAA0B,EAAIpJ,UAAWxO,CAAAA,CAAe,CAC1D,CAAA,CAAE,OAAAgxB,CAAO,CAAA,CAAIxiB,UAAW6iB,CAAAA,EAAiB,EACzC,CACJ,sBAAA,CAAA1Q,EACA,MAAArf,CAAAA,CAAAA,CACA,yBAAAof,CACA,CAAA,gBAAA,CAAA5C,CACA,CAAA,aAAA,CAAAJ,CACF,CAAIlP,CAAAA,UAAAA,CAAWoQ,CAAoB,CAAA,CAC7Bf,EAAkB4I,CACpB/F,CAAAA,CAAAA,CACCR,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAS,mBACd1Q,CAAAA,SAAAA,CAAU,IAAM,CAjElB,IAAA/Q,EAAAC,CAAA6G,CAAAA,CAAAA,CAkEI,GACE2a,CAAAA,CAAAA,EAAA,YAAAA,CAAS,CAAA,EAAA,IAAOS,CAChB9C,EAAAA,CAAAA,EAAAA,CAAAA,CACApf,EAAAyG,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAO,CAAA,cAAA,GAAP,YAAAzG,CAAuB,CAAA,mBAAA,IAAwBof,CAC/C,EAAA,CAACia,EACD,CACA,IAAInvB,CAAkD,CAAA,GAClDrH,CAAU,EAAA,IAAA,EAAQuc,CAAoB,GAAA,iBAAA,GACxClV,EAAaqtB,EAAoBnY,CAAAA,CAAAA,CAAiBvc,CAAM,CAAA,CAAA,CAEtDA,GAAU,IAAQuc,EAAAA,CAAAA,GAAoB,sBACxClV,CAAastB,CAAAA,EAAAA,CAA6BpY,EAAiBvc,CAAM,CAAA,CAAA,CAE/DA,CAAU,EAAA,IAAA,EAAQuc,IAAoB,iBACxClV,GAAAA,CAAAA,CAAautB,EAAoBrY,CAAAA,CAAAA,CAAiBvc,CAAM,CACpDqH,CAAAA,CAAAA,EAAc,IAAQA,EAAAA,CAAAA,CAAW,YAAiB,IACpDA,GAAAA,CAAAA,CAAW,WAAgB,MAAO,CAAA,QAAA,CAAS,OAG/C,IAAMo8B,CAAAA,CAAoB,IAA2BjnC,CAAAA,CAAA,sBAC/CoH,CAAS,EAAA,IAAA,GACX,MAAM4Y,CAAAA,CAAiB,CACrB,eAAAD,CAAAA,CAAAA,CACA,KAAA3Y,CAAAA,CAAAA,CACA,WAAAyD,CACF,CAAC,GAECiP,CAA2BA,EAAAA,CAAAA,GACjC,CAEE,CAAA,CAAA,CAAA,CAAC8F,CACDxY,GAAAA,CAAAA,EAAA,MAAAA,CAAO,CAAA,cAAA,CAAe,EACtB+d,CAAAA,EAAAA,CAAAA,EACA,CAAC6U,CAIC,EAAA,CAAA,CAACpa,CAAiB,EAAA,CAACoa,IACnBpa,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAe,CAAA,IAAA,IAASG,IAC1BoF,CAEA8hB,GAAAA,CAAAA,EAGErnB,CAAAA,CAAAA,EAAA,MAAAA,CAAe,CAAA,kBAAA,EAAsBuF,CACvC8hB,EAAAA,CAAAA,KAEErmC,CAAAwG,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,iBAAP,IAAAxG,CAAAA,MAAAA,CAAAA,CAAAA,CAAuB,KAAM,IAC/Bye,EAAAA,CAAAA,CAAW,KAAK,EAEpB,CACA,OAAI2a,CAAAA,EAAmB7U,GAAM9F,CAAW,CAAA,KAAK,CAE3CjY,CAAAA,CAAAA,CAAAA,EAAA,YAAAA,CAAO,CAAA,MAAA,GAAU,IACjB,EAAA,CAAC,CAAC,OAAS,CAAA,SAAS,EAAE,QAASA,CAAAA,CAAAA,EAAA,YAAAA,CAAO,CAAA,MAAM,CAC5C+d,EAAAA,CAAAA,EAAAA,CAAAA,CACA1d,EAAAL,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAO,CAAA,cAAA,GAAP,YAAAK,CAAuB,CAAA,EAAA,GAAM,IAE7B4X,EAAAA,CAAAA,CAAW,KAAK,CAEX,CAAA,IAAM,CACXA,CAAW,CAAA,IAAI,EACjB,CACF,CAAA,CAAG,CAAC1e,CAAAA,CAAAA,CAAAyG,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,cAAP,GAAA,IAAA,CAAA,MAAA,CAAAzG,EAAuB,EAAIwkB,CAAAA,CAAAA,CAAMvF,CAAa,CAAC,EAEnDlO,SAAU,CAAA,KACJwhB,CAAW,GAAA,SAAA,EAAW7T,EAAW,IAAI,CAAA,CACrC6T,CAAW,GAAA,SAAA,EAAanW,GAASsC,CAAW,CAAA,KAAK,CAC9C,CAAA,IAAM,CACXA,CAAW,CAAA,IAAI,EACjB,CAAA,CAAA,CACC,CAAC6T,CAAM,CAAC,EAEX,IAAMgU,CAAAA,CAAgBlmC,EAAA,CACpB,QAAA,CAAA2nB,CACA,CAAA,QAAA,CAAAuW,EACA,eAAAC,CAAAA,CAAAA,CACA,QAAA3+B,CAAAA,CAAAA,CACA,sBAAA4+B,CACA,CAAA,IAAA,CAAAja,CACA,CAAA,OAAA,CAAApI,EACA,oBAAAiqB,CAAAA,CAAAA,CACA,gBAAA3H,CACA,CAAA,4BAAA,CAAAxC,GACGh8B,CAEL,CAAA,CAAA,GAAI+hB,CAA6B7C,GAAAA,CAAAA,CAAiB,OAAO,IACzD,CAAA,GAAIhD,CAAS,CAAA,OAAOsiB,EACpB,OAAQtf,CAAAA,EACN,KAAK,iBACH,OAAOtf,GAAAA,CAACg/B,GAAAp+B,CAAAL,CAAAA,CAAAA,CAAA,GAAiBkmC,CAAjB,CAAA,CAAA,CAAiC,QAAA1mC,CAAAA,CAAAA,CAAAA,CAAS,EACpD,KAAK,oBAAA,CACH,OAAOC,GAAAA,CAACmjC,GAAAviC,CAAAL,CAAAA,CAAAA,CAAA,EAAqBkmC,CAAAA,CAAAA,CAAAA,CAArB,CAAqC,QAAA1mC,CAAAA,CAAAA,CAAAA,CAAS,EACxD,KAAK,uBAAA,CACH,OACEC,GAACklC,CAAAA,EAAAA,CAAAtkC,CAAAL,CAAAA,CAAAA,CAAA,GAAuBkmC,CAAvB,CAAA,CAAA,CAAuC,QAAA1mC,CAAAA,CAAAA,CAAAA,CAAS,EAErD,KAAK,mBAAA,CACH,OAAOC,GAAAA,CAACqmC,GAAAzlC,CAAAL,CAAAA,CAAAA,CAAA,GAAoBkmC,CAApB,CAAA,CAAA,CAAoC,SAAA1mC,CAAS,CAAA,CAAA,CAAA,CACvD,KAAK,iBAAA,CACH,OAAOC,GAACgmC,CAAAA,EAAAA,CAAAplC,CAAAL,CAAAA,CAAAA,CAAA,GAAkBkmC,CAAlB,CAAA,CAAA,CAAkC,QAAA1mC,CAAAA,CAAAA,CAAAA,CAAS,EACrD,KAAK,iBAAA,CACH,OAAOC,GAACohC,CAAAA,EAAAA,CAAAxgC,EAAAL,CAAA,CAAA,EAAA,CAAkBkmC,CAAlB,CAAA,CAAA,CAAkC,SAAA1mC,CAAS,CAAA,CAAA,CAAA,CACrD,KAAK,gBAAA,CACH,OACEC,GAAC+jC,CAAAA,EAAAA,CAAAnjC,CAAAL,CAAAA,CAAAA,CAAA,GAAwBkmC,CAAxB,CAAA,CAAA,CAAwC,SAAA1mC,CAAS,CAAA,CAAA,CAAA,CAEtD,KAAK,iBACH,CAAA,OAAOC,GAACyjC,CAAAA,EAAAA,CAAA7iC,EAAAL,CAAA,CAAA,EAAA,CAAkBkmC,CAAlB,CAAA,CAAA,CAAkC,SAAA1mC,CAAS,CAAA,CAAA,CAAA,CACrD,QACE,OAAO,IACX,CACF,CAEA,IAAO2mC,EAAAA,CAAQJ,GCrJR,SAASK,GAAclmC,CAAwC,CAAA,CACpE,GAAM,CAAE,SAAAynB,CAAS,CAAA,CAAIznB,CACf,CAAA,CAAE,QAAAkhB,CAAS,CAAA,eAAA,CAAA4X,CAAgB,CAAItpB,CAAAA,UAAAA,CAAWsQ,EAA4B,CACtE,CAAA,CAAE,KAAA5Z,CAAAA,CAAM,EAAIsJ,UAAWX,CAAAA,CAAY,CACnC,CAAA,CAAE,SAAAgK,CAAS,CAAA,CAAIrJ,UAAWxO,CAAAA,CAAe,EACzC,CACJ,sBAAA,CAAA2gB,EACA,aAAAjD,CAAAA,CAAAA,CACA,qBAAAU,CACA,CAAA,wBAAA,CAAAsC,CACA,CAAA,8BAAA,CAAAgQ,CACF,CAAIliB,CAAAA,UAAAA,CAAWoQ,CAAoB,CAAA,CAC7B,CAACqE,CAAMkiB,CAAAA,CAAO,CAAI71B,CAAAA,QAAAA,CAAS,KAAK,CAChC,CAAA,CAAC0tB,EAAUoI,CAAW,CAAA,CAAI91B,SAAS,KAAK,CAAA,CAE9CE,SAAU,CAAA,IAAM,CACd,IAAM61B,CAAAA,CACJ3U,CAAkC,EAAA,IAAA,EAClCA,KAAmChT,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAe,CAAA,EAAA,CAAA,CACpD,GAAI+I,CACF0e,CAAAA,CAAAA,CAAQ,IAAI,CAAA,CACZC,EAAY,IAAI,CAAA,CAAA,KAAA,GAAA,CAAA,CAEfllB,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAS,EAAOS,IAAAA,CAAAA,EAA0B0kB,CAC3C,GAAA,CAACvN,EACD,CACAqN,CAAAA,CAAQ,IAAI,CAAA,CACZ,IAAMtR,CAAOvC,CAAAA,EAAAA,CAAe,CAC1B,WAAapR,CAAAA,CAAAA,EAAA,YAAAA,CAAS,CAAA,mBAAA,CACtB,eAAiB,CAAA,CACf,eAAgBxC,CAClB,CACF,CAAC,CAAA,CACG2nB,GAA2BxR,CAAK,CAAA,KAAA,GAAU,EAE5CA,GAAAA,CAAAA,CAAK,MACHA,CAAK,CAAA,WAAA,EAAe,MAAQA,CAAK,CAAA,WAAA,GAAgB,GAC7CA,CAAK,CAAA,WAAA,CACL,aAEJA,CAAAA,CAAAA,CAAAA,CAAK,OACPuR,CAAY,CAAA,IAAI,EAEpB,CAAA,KAIED,EAHA,CAAArN,EAAAA,CAAAA,EACApX,CAA6B,GAAA,iBAAA,CAEjB,EAEd,OAAO,IAAM,CACXykB,CAAQ,CAAA,KAAK,EACbC,CAAY,CAAA,KAAK,EACnB,CACF,EAAG,CACDzkB,CAAAA,CACAjD,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAe,EACf7F,CAAAA,CAAAA,EAAY,IACZqI,CAAAA,CAAAA,EAAW,KACXuG,CACAvhB,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,OACP4yB,CACF,CAAC,CACD,CAAA,IAAMmF,EAAyB32B,CAAiCxI,EAAAA,CAAAA,CAAA,IAE9D,CAAA,IAAA,CAAA,WAAA,CAAA,GADAwI,EAAE,eAAgB,EAAA,CACdoX,CAAe,CAAA,CACjB,IAAMM,CAAkBN,CAAAA,CAAAA,EAAA,YAAAA,CAAe,CAAA,EAAA,CACvC,MAAMU,CAAqB,CAAA,CACzB,eAAAJ,CAAAA,CAAAA,CACA,gBAAiBkC,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAS,CAAA,mBAC5B,CAAC,EACH,CACAklB,CAAY,CAAA,CAACpI,CAAQ,CACrBmI,CAAAA,CAAAA,CAAQ,IAAI,EACd,CAAA,CAAA,CACMG,EAAenmC,CAAAL,CAAAA,CAAAA,CAAA,EAAKE,CAAAA,CAAAA,CAAAA,CAAL,CAAY,IAAAikB,CAAAA,CAAAA,CAAM,QAAA+Z,CAAAA,CAAAA,CAAU,gBAAAC,CAAiB,CAAA,QAAA,CAAAxW,CAAS,CAAA,CAAA,CAC3E,OAAOloB,GAAC0mC,CAAAA,EAAAA,CAAAnmC,EAAA,EAAmBwmC,CAAAA,CAAAA,CAAc,CAC3C,CChGO,IAAMC,EAAsC,CAAA,GAE7CC,EAA+BrnC,CAAAA,aAAAA,CACnConC,EACF,CAEOE,CAAAA,EAAAA,CAAQD,GCER,SAASE,GAAuBjnC,CAKhB,CAAA,CALgB,IAAAC,CAAAA,CAAAD,EACrC,CAAAumB,GAAAA,CAAAA,CAAAA,CACA,KAAA2gB,CAAAA,CAAAA,CAAQ,GACR,QAAArnC,CAAAA,CAtBF,EAmBuCI,CAIlCC,CAAAA,CAAAA,CAAAC,EAJkCF,CAIlC,CAAA,CAHH,KACA,CAAA,OAAA,CACA,aAtBF,IAAAD,CAAAA,CAAAC,CAyBE,CAAA,GAAM,CAAE,KAAAi0B,CAAAA,CAAAA,CAAO,WAAauJ,CAAAA,CAAW,EAAI1tB,UAAWirB,CAAAA,EAAoB,EACpE,CAAE,KAAA,CAAOmM,EAAmB,WAAaC,CAAAA,CAAmB,CAChEr3B,CAAAA,UAAAA,CAAWi3B,EAA4B,CACnCK,CAAAA,CAAAA,CAAAA,CACJpnC,CAAAD,CAAAA,CAAAA,CAAAA,CAAAk0B,GAAA,IAAAA,CAAAA,CAAAA,CAASiT,CAAT,GAAA,IAAA,CAAAnnC,EAA8By9B,CAA9B,GAAA,IAAA,CAAAx9B,EAA4CmnC,CACxC5mC,CAAAA,CAAAA,CAAM4V,OAAyB,IAAI,CAAA,CACnCkxB,CACJ,CAAA,iFAAA,CACIhoC,EACJinB,CACA,EAAA,CAAA,gEAAA,EACE8gB,CAAA,EAAA,IAAA,CAAAA,EAAa,aACf,CAAA,IAAA,CAAA,CACIE,CAAc,CAAA,IAAY,CAC1B/mC,CAAI,CAAA,OAAA,GAASA,CAAI,CAAA,OAAA,CAAQ,IAAM8mC,CACrC,EAAA,CAAA,CACMtmC,CAAcX,CAAAA,CAAAA,CAAA,CAClB,KAAOgnC,CAAAA,CAAAA,CACP,UAAAC,CAAAA,CAAAA,CACA,IAAAhoC,CACA,CAAA,KAAA,CAAA4nC,CACGhnC,CAAAA,CAAAA,CAAAA,CAAAA,CAEL,OAAOL,CACLC,CAAAA,GAAAA,CAACC,EAAAW,CAAAL,CAAAA,CAAAA,CAAA,GAAWW,CAAX,CAAA,CAAA,CAAyB,QAAAnB,CAAAA,CAAAA,CAAAA,CAAS,EAEnCC,GAAC,CAAA,KAAA,CAAAO,CAAA,CAAA,CAAI,IAAKG,CAAK,CAAA,GAAA,CAAKlB,CAAK,CAAA,OAAA,CAASioC,EAAa,KAAOL,CAAAA,CAAAA,CAAAA,CAAWhnC,EAAG,CAExE,CCnCO,SAASsnC,EAAuBxnC,CAAAA,CAAAA,CAIhB,CAJgB,IAAAC,EAAAD,CACrC,CAAA,CAAA,QAAA,CAAAH,EACA,KAAAkB,CAAAA,CApBF,EAkBuCd,CAGlCM,CAAAA,CAAAA,CAAAJ,CAHkCF,CAAAA,CAAAA,CAGlC,CAFH,UACA,CAAA,OAAA,CAAA,CAAA,CAGA,GAAM,CAAE,MAAAi0B,CAAM,CAAA,CAAInkB,UAAWirB,CAAAA,EAAoB,EAC3C,CAAE,KAAA,CAAOmM,CAAkB,CAAA,CAAIp3B,WAAWi3B,EAA4B,CAAA,CACtEK,CAAYnT,CAAAA,CAAAA,EAAA,KAAAA,CAASiT,CAAAA,CAAAA,CACrBM,CAAYJ,CAAAA,CAAAA,EAAaK,GAAWL,CAAU,CAAA,OAAA,CAAQ,OAAS,CAAA,GAAG,CAAC,CACnErmC,CAAAA,CAAAA,CAAcX,EAAA,CAClB,KAAA,CAAOonC,EACP,KAAA1mC,CAAAA,CAAAA,CAAAA,CACGR,CAEL,CAAA,CAAA,OAAOV,EACLC,GAACC,CAAAA,CAAAA,CAAAW,CAAAL,CAAAA,CAAAA,CAAA,GAAWW,CAAX,CAAA,CAAA,CAAyB,QAAAnB,CAAAA,CAAAA,CAAAA,CAAS,EAEnCC,GAAC,CAAA,MAAA,CAAAY,EAAAL,CAAA,CAAA,EAAA,CAASE,GAAT,CAAiB,QAAA,CAAAQ,CAAS2mC,EAAAA,EAAAA,CAAWD,CAAS,CAAE,CAAA,CAAA,CAErD,CClBO,SAASE,EAAAA,CAAoB3nC,EAIb,CAJa,IAAAC,EAAAD,CAClC,CAAA,CAAA,IAAA,CAAAuD,CACA,CAAA,QAAA,CAAA1D,CArBF,CAmBoCI,CAAAA,CAAAA,CAG/BC,CAAAC,CAAAA,CAAAA,CAH+BF,EAG/B,CAFH,MAAA,CACA,UAGA,CAAA,CAAA,CAAA,IAAMm1B,EAAOrlB,UAAWirB,CAAAA,EAAoB,CACtC4M,CAAAA,CAAAA,CAAe73B,WAAWi3B,EAA4B,CAAA,CACtDa,CAAU,CAAA,MAAA,CAAO,KAAKzS,CAAI,CAAA,CAAE,MAAS,CAAA,CAAA,CAAIA,EAAOwS,CAChD10B,CAAAA,CAAAA,CACJ3P,CAAQskC,IAAAA,CAAAA,EAAWA,EAAQtkC,CAAI,CAAA,EAAK,KAChCskC,CAAQtkC,CAAAA,CAAI,EACZA,CAAS,GAAA,OAAA,CACP,MACA,CAAA,IAAA,CACFvC,EAAcX,CAAA,CAAA,CAClB,IAAAkD,CAAAA,CAAAA,CACA,KAAA2P,CACGhT,CAAAA,CAAAA,CAAAA,CAAAA,CAEL,OAAOL,CAAAA,CACLC,IAACC,CAAAW,CAAAA,CAAAA,CAAAL,EAAA,EAAWW,CAAAA,CAAAA,CAAAA,CAAX,CAAyB,QAAAnB,CAAAA,CAAAA,CAAAA,CAAS,CAEnCC,CAAAA,GAAAA,CAAC,OAAAY,CAAAL,CAAAA,CAAAA,CAAA,EAASH,CAAAA,CAAAA,CAAAA,CAAT,CAAa,QAAAgT,CAAAA,CAAAA,CAAAA,CAAK,CAEvB,CChCO,SAAS40B,EAAAA,CAAwB9nC,CAIV,CAAA,CAJU,IAAAC,CAAAD,CAAAA,CAAAA,CACtC,CAAAH,QAAAA,CAAAA,CAAAA,CACA,MAAAkB,CAAQ,CAAA,MAbV,CAWwCd,CAAAA,CAAAA,CAGnCM,EAAAJ,CAHmCF,CAAAA,CAAAA,CAGnC,CAFH,UACA,CAAA,OAAA,CAAA,CAAA,CAGA,GAAM,CAAE,QAAA,CAAAs+B,CAAU,CAAA,eAAA,CAAAC,EAAiB,QAAAxW,CAAAA,CAAS,CAC1CjY,CAAAA,UAAAA,CAAWirB,EAAoB,CAC3Bh6B,CAAAA,CAAAA,CAAcX,CAAA,CAAA,CAClB,SAAAk+B,CACA,CAAA,KAAA,CAAAx9B,EACA,eAAAy9B,CAAAA,CAAAA,CAAAA,CACGj+B,GAEL,OAAOV,CAAAA,CACLC,GAACC,CAAAA,CAAAA,CAAAW,EAAAL,CAAA,CAAA,EAAA,CAAWW,CAAX,CAAA,CAAA,CAAyB,SAAAnB,CAAS,CAAA,CAAA,CAAA,CAChCmoB,CAID,CAAA,IAAA,CAHFloB,IAAC,QAAAY,CAAAA,CAAAA,CAAAL,EAAA,EAAWE,CAAAA,CAAAA,CAAAA,CAAX,CAAkB,OAASi+B,CAAAA,CAAAA,CACzB,QAAAz9B,CAAAA,CAAAA,CAAAA,CACH,CAEJ,CCtBO,SAASgnC,EAAcxnC,CAAAA,CAAAA,CAAoC,CAChE,IAQIP,CAAAA,CAAAO,CAPF,CAAA,CAAA,WAAA,CAAAynC,EACA,gBAAAC,CAAAA,CAAAA,CACA,gBAAAC,CAAAA,CAAAA,CACA,UAAAv4B,CACA,CAAA,eAAA,CAAAw4B,CACA,CAAA,OAAA,CAAA96B,CAhBJ,CAkBMrN,CAAAA,CAAAA,CADCE,CAAAC,CAAAA,CAAAA,CACDH,EADC,CANH,aAAA,CACA,kBACA,CAAA,kBAAA,CACA,YACA,iBACA,CAAA,SAAA,CAAA,CAAA,CAGF,OACEonB,IAAAA,CAAAjW,SAAA,CACE,QAAA,CAAA,CAAArR,GAAC,CAAA,MAAA,CAAAY,EAAAL,CAAA,CAAA,CAAK,cAAa,CAASgN,MAAAA,EAAAA,CAAAA,EAAA,KAAAA,CAAW,CAAA,EAAE,CAAI,CAAA,CAAA,SAAA,CAAWsC,GAAezP,CAAtE,CAAA,CAAA,CACE,QAAAioC,CAAAA,CAAAA,CAAAA,CACH,EACCH,CACCloC,EAAAA,GAAAA,CAAC,MAAAY,CAAAA,CAAAA,CAAAL,EAAA,CACC,aAAA,CAAa,WAAWgN,CAAA,EAAA,IAAA,CAAAA,EAAW,EAAE,CAAA,CAAA,CACrC,SAAW66B,CAAAA,CAAAA,EAAoB,IAC3BhoC,CAHL,CAAA,CAAA,CAKE,QAAA+nC,CAAAA,CAAAA,CAAAA,CACH,GAEJ,CAEJ,CAEA,IAAOG,EAAAA,CAAQL,GCvBR,SAASM,EAAAA,CACdC,CACA/nC,CAAAA,CAAAA,CAC6B,CAC7B,OAAI,CAAC+nC,CAAaA,EAAAA,CAAAA,CAAU,SAAW,CAC9BxoC,CAAAA,GAAAA,CAACsoC,EAAA/nC,CAAAA,CAAAA,CAAA,GAAkBE,CAAO,CAAA,CAAA,CAE5B+nC,CAAU,CAAA,GAAA,CAAI,CAACpoC,CAAG0E,CAAAA,CAAAA,GAAM,CAC7B,IAAMojC,EACH,OAAOznC,CAAAA,CAAM,WAAgB,EAAA,WAAA,EAAA,CAC5BL,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAG,uBAA2B,GAAA,IAAA,EAAA,CAC9BA,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAG,0BAA0BA,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAG,YAClCK,CAAAA,EAAAA,CAAAA,CAAM,WACR,CAAA,OACE2vB,cAACkY,EAAA1nC,CAAAA,CAAAA,CAAAL,CAAA,CAAA,EAAA,CACKE,GADL,CAEC,GAAA,CAAKqE,CACL,CAAA,WAAA,CAAaojC,EACb,eAAiB9nC,CAAAA,CAAAA,CAAE,iBACnB,gBAAkBA,CAAAA,CAAAA,CAAE,4BACpB,OAASA,CAAAA,CAAAA,CAAE,QACb,CAAA,CAAA,CAEJ,CAAC,CACH,CAEe,SAARqoC,EAAAA,CACLC,EACqB,CA1CvB,IAAAxoC,CA2CE,CAAA,IAAMylB,EAA2B,EAAC,CAClC,GAAI,KAAM,CAAA,OAAA,CAAQ+iB,CAAM,CACtB,CAAA,IAAA,IAAWtoC,CAAKsoC,IAAAA,CAAAA,CAAQ,CACtB,IAAMne,CAAAA,CAAAA,CAAMrqB,CAAAE,CAAAA,CAAAA,EAAA,YAAAA,CAAG,CAAA,QAAA,GAAH,IAAAF,CAAAA,CAAAA,CAAe,GACvBqqB,CAAO5E,IAAAA,CAAAA,CACTA,CAAI4E,CAAAA,CAAG,EAAE,IAAKnqB,CAAAA,CAAC,CAEfulB,CAAAA,CAAAA,CAAI4E,CAAG,CAAI,CAAA,CAACnqB,CAAC,EAEjB,CAEF,OAAOulB,CACT,CC3BO,IAAMgjB,GAAgC,CAC3C,OAAA,CAAS,KACT,MAAQ,CAAA,GACR,QAAU,CAAA,EACV,CAAA,MAAA,CAAQ,EACV,CAAA,CAEO,SAASC,EAAAA,CAAY,CAC1B,QAAAjf,CAAAA,CAAAA,CACA,QAAA/hB,CAAAA,CACF,EAGS,CACHA,CAAAA,EACFA,EAAS,CACP,IAAA,CAAM,cACN,OAAS,CAAA,CAAE,QAAA+hB,CAAAA,CAAS,CACtB,CAAC,EAEL,CAEO,SAASkf,GACdlf,CACA,CAAA,CACE,MAAA5mB,CAAAA,CAAAA,CACA,SAAA6E,CACA,CAAA,OAAA,CAAAkhC,EACA,OAAAC,CAAAA,CACF,EAMM,CACN,IAAIC,CAAY,CAAA,GACVjiC,CAAM7D,CAAAA,CAAAA,CAAOH,CAAM,CAAA,CACzBgE,EAAI,MACD,CAAA,IAAA,CAAK,CACJ,OAAA,CAASxG,EAAA,CAAE,WAAA,CAAaopB,EAAS,IAAK,CAAA,GAAG,GAAMof,CAC/C,CAAA,CAAA,QAAA,CAAUD,CACZ,CAAC,EACA,IAAYppC,CAAAA,CAAAA,EAAaH,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CACxB,IAAM0pC,CAAYR,CAAAA,EAAAA,CAAU/oC,CAAQ,CAAA,CACpCspC,EAAYzoC,CAAA,CAAA,CAAA,CAAA,EAAA,CAAKyoC,GAAcC,CAC/BrhC,CAAAA,CAAAA,CAAAA,CAAS,CACP,IAAM,CAAA,WAAA,CACN,OAAS,CAAA,CAAE,OAAQohC,CAAU,CAC/B,CAAC,CAAA,CACDphC,EAAS,CACP,IAAA,CAAM,YACN,CAAA,OAAA,CAAS,CAAE,OAAS,CAAA,KAAM,CAC5B,CAAC,CAAA,CACD,IAAMshC,CAAOxpC,CAAAA,CAAAA,CAAS,IACtB,CAAA,GAAIwpC,EAAK,SAAY,CAAA,CAAA,CACnB,IACM1vB,IAAAA,CAAAA,CAAa0vB,EAAK,WAAc,CAAA,CAAA,CACpC1vB,CAAc0vB,EAAAA,CAAAA,CAAK,UACnB1vB,CACA,EAAA,CAAA,CACA,IAAM2vB,CAAe,CAAA,MAAMpiC,EAAI,MAAO,CAAA,IAAA,CAAK,CACzC,OAAA,CAASxG,EAAA,CAAE,WAAA,CAAaopB,CAAS,CAAA,IAAA,CAAK,GAAG,CAAMof,CAAAA,CAAAA,CAAAA,CAAAA,CAC/C,QAAUD,CAAAA,CAAAA,CACV,WAAAtvB,CACF,CAAC,CACKyvB,CAAAA,CAAAA,CAAYR,GAAUU,CAAY,CAAA,CACxCH,CAAYzoC,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,GAAKyoC,CAAcC,CAAAA,CAAAA,CAAAA,CAAAA,CAC/BrhC,CAAS,CAAA,CACP,KAAM,WACN,CAAA,OAAA,CAAS,CAAE,MAAA,CAAQohC,CAAU,CAC/B,CAAC,EACH,CAEJ,CAAA,CAAC,EACA,KAAO3kC,CAAAA,CAAAA,EAAqB,CAC3B,IAAML,EAASkG,EAAU,CAAA,CACvB,KAAA7F,CAAAA,CAAAA,CACA,SAAU,QACZ,CAAC,CACDuD,CAAAA,CAAAA,CAAS,CACP,IAAM,CAAA,WAAA,CACN,QAAS,CACP,MAAA,CAAA5D,CACF,CACF,CAAC,EACH,CAAC,EACL,CAuBA,IAAMolC,EAAgC,CAAA,CACpC,aACA,WACA,CAAA,aAAA,CACA,WACF,CAAA,CAEMC,GAAe,CAACpnC,CAAAA,CAAmBoH,IACvCjH,EACEH,CAAAA,CAAAA,CACAoH,EACA+/B,EACF,CAAA,CAEKE,EAAQD,CAAAA,EAAAA,CCjJf,IAAME,EAAgB3pC,CAAAA,aAAAA,CAAc+oC,EAAiB,CAAA,CAE9Ca,GAAQD,ECPf,CAuCO,SAASE,EAAAA,CAAMhpC,CAAgC,CAAA,CACpD,GAAM,CAAE,QAAA,CAAAV,CAAU,CAAA,OAAA,CAAAwN,EAAU,EAAG,CAAA,CAAI9M,EAC7B,CACJ,MAAA,CAAAioC,EACA,OAASgB,CAAAA,CAAAA,CACT,OAAAptB,CAAAA,CAAAA,CACA,SAAAqN,CACA,CAAA,WAAA,CAAAif,CACA,CAAA,MAAA,CAAA7f,CACF,CAAI9Y,CAAAA,UAAAA,CAAWu5B,EAAa,CAAA,CACtB,CAAE,GAAAjf,CAAAA,CAAI,EAAIta,UAAWga,CAAAA,EAAkB,EACvC,CAACue,CAAAA,CAAWmB,CAAY,CAAA,CAAI54B,SAAsB,EAAE,CACpDyZ,CAAAA,CAAAA,CAAQkf,GAAiBn8B,CAAWgd,GAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAK,OAAQ,EACvDtZ,CAAAA,SAAAA,CAAU,KACJy3B,CAAU,EAAA,IAAA,EAAQ,GAAGle,CAAK,CAAA,CAAA,GAAMke,CAClCiB,CAAAA,CAAAA,CAAajB,EAAOle,CAAK,CAAgB,CAErCA,CAAAA,CAAAA,EAAS,CAACb,CAAS,CAAA,QAAA,CAASa,CAAK,CAAA,GACnCb,EAAS,IAAKa,CAAAA,CAAK,CACfoe,CAAAA,CAAAA,EAAaA,EAAY,CAAE,QAAA,CAAAjf,CAAS,CAAC,GAGtC,IAAY,CACjBggB,CAAa,CAAA,EAAE,EACjB,CAAA,CAAA,CACC,CAACjB,CAAAA,CAAQle,CAAK,CAAC,CAAA,CAClB,IAAMtpB,CAAcX,CAAAA,CAAAA,CAAA,CAClB,OAAA+b,CAAAA,CAAAA,CACA,MAAAyM,CAAAA,CAAAA,CACA,OAAQyf,CACL/nC,CAAAA,CAAAA,CAAAA,CAAAA,CAECmpC,CACJlB,CAAAA,CAAAA,EAAU,MAAQF,CAAa,EAAA,IAAA,CAC3B,IACAD,CAAAA,EAAAA,CAAmBC,EAAW/nC,CAAK,CAAA,CACzC,OAAOV,CACLC,CAAAA,GAAAA,CAACC,EAAAW,CAAAL,CAAAA,CAAAA,CAAA,EAAWW,CAAAA,CAAAA,CAAAA,CAAX,CAAyB,QAAAnB,CAAAA,CAAAA,CAAAA,CAAS,CAEnCC,CAAAA,GAAAA,CAAAqR,SAAA,CAAG,QAAA,CAAAiL,CAAWstB,EAAAA,CAAAA,EAAmB,KAAO7gB,CAAS6gB,CAAAA,CAAAA,CAAgB,CAErE,CC7EA,IAAMC,EAAAA,CAAajqC,aAA+B,CAAA,EAAE,CAE7CkqC,CAAAA,EAAAA,CAAQD,GC0CR,SAASE,EAAAA,CAAgBtpC,CAA2B,CAAA,CACzD,GAAM,CACJ,QAAA,CAAAV,CACA,CAAA,OAAA,CAAAwN,EAAU,EACV,CAAA,MAAA,CAAAwb,CAAS,CAAA,YAAA,CACT,QAAA+f,CAAU,CAAA,EAAA,CACV,QAAAC,CAAU,CAAA,EACZ,CAAItoC,CAAAA,CAAAA,CACE,CAACwB,CAAAA,CAAO2F,CAAQ,CAAIuN,CAAAA,UAAAA,CAAWm0B,EAAcX,CAAAA,EAAiB,EAC9D5lC,CAASkN,CAAAA,UAAAA,CAAWgF,CAAoB,CAAA,CACxC,CAAE,QAAA0U,CAAAA,CAAS,EAAI1Z,UAAW65B,CAAAA,EAAU,EACtC,CAAC7nC,CAAAA,CAAM,QAAS,CAAA,QAAA,CAASsL,CAAO,CAAKA,EAAAA,CAAAA,EAAStL,CAAM,CAAA,QAAA,CAAS,KAAKsL,CAAO,CAAA,CAC7E,IAAMid,CAAAA,CAAQb,IAAYA,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAU,MAAS,EAAA,CAAA,CAAI,GAAKpc,CAAA,EAAA,IAAA,CAAAA,CAAW,CAAA,EAAA,CACjE0D,UAAU,IAAM,CAEZhP,CAAM,CAAA,QAAA,CAAS,SAAW,CAC1B0nB,EAAAA,CAAAA,EAAY,IACZA,EAAAA,CAAAA,CAAS,OAAS,CAClB1nB,EAAAA,CAAAA,CAAM,WAAe,EAAA,IAAA,EAErBA,EAAM,WAAY,CAAA,CAAE,QAAA0nB,CAAAA,CAAAA,CAAU,SAAA/hB,CAAS,CAAC,CAEtC7E,CAAAA,CAAAA,CAAO,cACLd,CAAM,CAAA,QAAA,CAAS,MAAS,CAAA,CAAA,EAAKuoB,IAC/Bqe,EAAcre,CAAAA,CAAAA,EAAS,CAACA,CAAK,CAAA,EAAMvoB,EAAM,QAAU,CAAA,CACjD,MAAAc,CAAAA,CAAAA,CACA,SAAA6E,CACA,CAAA,OAAA,CAAAkhC,CACA,CAAA,OAAA,CAAAC,CACF,CAAC,EAGP,CAAG,CAAA,CAAChmC,EAAO,WAAaynB,CAAAA,CAAAA,CAAOvoB,EAAM,QAAS,CAAA,MAAM,CAAC,CACrD,CAAA,IAAM+nC,CAAiCppC,CAAAA,CAAAA,CAAAL,EAAA,EAClC0B,CAAAA,CAAAA,CAAAA,CADkC,CAErC,OAAA,CAASuoB,EACT,MAAAzB,CAAAA,CAAAA,CACA,WAAcnd,CAAAA,CAAAA,EAAyD,CACrEg9B,EAAYhoC,CAAAA,CAAAA,CAAAL,EAAA,EAAKqL,CAAAA,CAAAA,CAAAA,CAAL,CAAa,QAAAhE,CAAAA,CAAS,CAAC,CAAA,EACrC,CACF,CACA,CAAA,CAAA,OACE5H,GAACwpC,CAAAA,EAAAA,CAAc,SAAd,CAAuB,KAAA,CAAOQ,CAC5B,CAAA,QAAA,CAAAjqC,EACH,CAEJ,CC/EO,SAASkqC,EAAAA,CAAS,CACvB,QAAA,CAAAlqC,EACA,MAAAgpB,CAAAA,CAAAA,CAAS,aACT,8BAAAmhB,CAAAA,CAAAA,CAAiC,KACnC,CAA+B,CAAA,CAC7B,GAAM,CAAC5tB,EAASsC,CAAU,CAAA,CAAI7N,QAAS,CAAA,IAAI,EACrC,CAAE,SAAA,CAAA6P,CAAW,CAAA,iBAAA,CAAAupB,EAAmB,iBAAAnpB,CAAAA,CAAkB,EACtD/Q,UAAWsR,CAAAA,EAAe,EACtB,CAAE,KAAA,CAAA5a,CAAM,CAAA,CAAIsJ,WAAWX,CAAY,CAAA,CACzC2B,SAAU,CAAA,KACJ2P,GAAa,IACXspB,GAAAA,CAAAA,CAC4C3qC,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CA5BtD,IAAAW,CA6BU,CAAA,IAAA,IAAW4wB,KAAYlQ,CAAW,CAAA,CAChC,IAAMwpB,CAAWlqC,CAAAA,CAAAA,CAAAA,CAAAA,CAAA4wB,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAU,0BAAV,GAAA,IAAA,CAAA,MAAA,CAAA5wB,CAAsC,CAAA,MAAA,IAAW,EAClE,GAAI,EAAC4wB,CAAA,EAAA,IAAA,EAAAA,EAAU,eAAmBsZ,CAAAA,EAAAA,CAAAA,CAAU,CAC1C,GAAM,CAACC,CAAc,CAAA,CAAA,CACnBvZ,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAU,0BAA8B,GAAA,EAC1C,CAAA,GAAIuZ,GAAkBrpB,CAAqB,EAAA,IAAA,CAAM,CAC/C,GAAM,CAAE,OAAAlS,CAAAA,CAAAA,CAAS,MAAAnI,CAAM,CAAA,CAAI,MAAMqa,CAC/B8P,CAAAA,CAAAA,CAAS,EACTuZ,CAAAA,CAAAA,CAAe,EACjB,CAEE,CAAA,OAAOH,CAAmC,EAAA,UAAA,EAC1Cp7B,GAEAo7B,CAA+BvjC,CAAAA,CAAK,EAExC,CACF,MACE,UAAW,CAAA,IAAM,CACfiY,CAAW,CAAA,KAAK,EAClB,CAAG,CAAA,GAAG,EAEV,CACF,GAGAA,CAAW,CAAA,KAAK,CAGb,CAAA,CAAA,IAAM,CACXA,CAAW,CAAA,IAAI,EACjB,CAAA,CAAA,CAEC,CAACgC,CAAa,EAAA,IAAA,CAAMA,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAW,OAAQja,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAO,CAAA,wBAAwB,CAAC,CAC1E,CAAA,IAAMwK,CAAayP,CAAAA,CAAAA,EAAA,YAAAA,CAAW,CAAA,GAAA,CAAI,CAACkQ,CAAAA,CAAUhsB,IAAM,CA/DrD,IAAA5E,EAAAC,CAgEI,CAAA,IAAMilB,EAAoB0L,CAAS,CAAA,gBAAA,CAC7BxqB,CAAY8e,CAAAA,CAAAA,EAAA,YAAAA,CAAmB,CAAA,GAAA,CAAKklB,CAAqB,EAAA,CAC7D,IAAMjlB,CAAIilB,CAAAA,CAAAA,CAAiB,SAC3B,CAAA,OAAIjlB,IAAGA,CAAE,CAAA,QAAA,CAAWilB,EAAiB,QAC9BjlB,CAAAA,CAAAA,CACT,GACM6S,CAAkBpH,CAAAA,CAAAA,CAAS,0BAC3ByZ,CAAAA,CAAAA,CACJL,GACAhS,CACAA,EAAAA,CAAAA,CAAgB,MAAW,GAAA,CAAA,CAAA,CACvBh4B,EAAAg4B,CAAgB,CAAA,CAAC,CAAjB,GAAA,IAAA,CAAA,MAAA,CAAAh4B,EAAoB,EACpBC,CAAAA,CAAAA,CAAAA,CAAA2wB,EAAS,eAAT,GAAA,IAAA,CAAA,MAAA,CAAA3wB,EAA0B,EAC1BqqC,CAAAA,CAAAA,CAAiB1Z,CAAS,CAAA,eAAA,CAC1BqG,EAAUrG,CAAS,CAAA,OAAA,CACnB2Z,CAAQN,CAAAA,CAAAA,EAAA,YAAAA,CAAmB,CAAA,MAAA,CAC9BO,CAAM,EAAA,CAhFb,IAAAxqC,CAAAC,CAAAA,CAAAA,CAgFgB,SAAAD,CAAAwqC,CAAAA,CAAAA,CAAK,iBAAL,IAAAxqC,CAAAA,MAAAA,CAAAA,CAAAA,CAAqB,EAAOC,KAAAA,CAAAA,CAAAA,CAAA2wB,EAAS,cAAT,GAAA,IAAA,CAAA,MAAA,CAAA3wB,CAAyB,CAAA,EAAA,CAAA,CAAA,CAAA,CAE3DwqC,EAAwC,CAC5C,OAAA,CAAAxT,CACA,CAAA,SAAA,CAAA7wB,EACA,eAAA4xB,CAAAA,CAAAA,CACA,uBAAAqS,CAAAA,CAAAA,CACA,eAAAC,CACA,CAAA,iBAAA,CAAmBC,CACnB,CAAA,QAAA,CAAA3Z,EACA,SAAWA,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAU,EACvB,CACA,CAAA,OACE9wB,GAACklB,CAAAA,EAAAA,CAAwB,SAAxB,CAAyC,KAAA,CAAOylB,EAC9C,QAAA5qC,CAAAA,CAAAA,CAAAA,CADoC+E,CAEvC,CAEJ,CAAA,CAAA,CACA,OAAQwX,CAAAA,CAA8B+a,GAAmBtO,CAAM,CAAA,CAA7C/oB,GAAAqR,CAAAA,QAAAA,CAAA,CAAG,QAAAF,CAAAA,CAAAA,CAAW,CAClC,CC1EO,SAASy5B,GAAcnqC,CAA2B,CAAA,CACvD,GAAM,CAAE,KAAA+C,CAAK,CAAA,CAAI/C,CACX,CAAA,CAAE,SAAAqwB,CAAU,CAAA,SAAA,CAAA+Z,CAAU,CAAI56B,CAAAA,UAAAA,CAAWiV,EAAuB,CAC5D9d,CAAAA,CAAAA,CAAM5D,CACN4P,CAAAA,CAAAA,CAAOhM,IAAQ,YAAeyd,CAAAA,EAAAA,CAAIiM,CAAU1pB,CAAAA,CAAG,EAAIyjC,CACnD3pC,CAAAA,CAAAA,CAAcX,CAAA,CAAA,CAClB,SAAAuwB,CACGrwB,CAAAA,CAAAA,CAAAA,CAAAA,CAEL,OAAOA,CAAAA,CAAM,SACXT,GAACC,CAAAA,CAAAA,CAAAW,CAAAL,CAAAA,CAAAA,CAAA,GAAWW,CAAX,CAAA,CAAA,CAAyB,QAAAT,CAAAA,CAAAA,CAAM,UAAS,CAEzCT,CAAAA,GAAAA,CAAC,MAAAY,CAAAA,CAAAA,CAAAL,EAAA,EAASE,CAAAA,CAAAA,CAAAA,CAAT,CAAiB,QAAA2S,CAAAA,CAAAA,CAAAA,CAAK,CAE3B,CCdO,SAAS03B,EAAmBrqC,CAAAA,CAAAA,CAA2B,CAC5D,GAAM,CAAE,QAAAV,CAAAA,CAAS,EAAIU,CACf,CAAA,CAACwB,CAAO2F,CAAAA,CAAQ,EAAIuN,UAAWiM,CAAAA,EAAAA,CAAiBX,EAAoB,CAAA,CACpE,CAAE,KAAA9Z,CAAAA,CAAAA,CAAO,SAAA8V,CAAU,CAAA,OAAA,CAAAlQ,EAAS,oBAAAK,CAAAA,CAAAA,CAAsB,aAAAM,CAAAA,CAAc,EACpE+C,UAAWX,CAAAA,CAAY,CACnBvM,CAAAA,CAAAA,CAASkN,WAAWgF,CAAoB,CAAA,CAC9ChE,SAAU,CAAA,IAAM,CACT1E,CAAA,EAAA,IAAA,EAAAA,CAAS,CAAA,QAAA,CAAS,wCAWXW,CAAA,EAAA,IAAA,EAAAA,CAAgB,CAAA,sCAAA,CAAA,EAC1BN,EAAqB,CACnB,iBAAA,CAAmB,CACjB,sCAAA,CAAwC,KACxC,sCAAwC,CAAA,IAAA,CACxC,2BAA6B,CAAA,IAAA,CAC7B,sCAAuC,IACvC,CAAA,0BAAA,CAA4B,KAC5B,qCAAuC,CAAA,IACzC,CACF,CAAC,CAAA,CApBDA,CAAqB,CAAA,CACnB,YAAa,CACX,sCAAA,CACA,sCACA,CAAA,2BAAA,CACA,sCACA,0BACA,CAAA,qCACF,CACF,CAAC,EAaL,CAAG,CAAA,CAACL,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAS,OAAQW,CAAiB,EAAA,IAAI,CAAC,CAAA,CAC3C+D,UAAU,IAAM,CACVtK,CAAS,EAAA,IAAA,EAAQ,CAACrC,EAAQvB,CAAAA,CAAM,CAAK4D,EAAAA,CAAAA,CAAM,WAC7Cga,EAAa,CAAA,CAAE,MAAAha,CAAO,CAAA,QAAA,CAAAiB,EAAU,MAAA7E,CAAAA,CAAO,CAAC,EAE5C,EAAG,CAAC4D,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,SAAS,CAAC,CAAA,CACrBsK,SAAU,CAAA,KACJtK,IACEA,CAAM,CAAA,SAAA,EAAaA,EAAM,SAAU,CAAA,MAAA,CAAS,GACnBA,CAAM,CAAA,SAAA,CAAU,GAAKmqB,CAAAA,CAAAA,EAE5CA,EAAS,0BACTA,EAAAA,CAAAA,CAAS,0BAA2B,CAAA,MAAA,CAAS,CAEhD,CACsB,CAAA,QAAA,CAAS,KAAK,CAAA,EACnCpQ,GACE,CACE,GAAIze,EAAM,MAAU,EAAA,GACpB,CACE,IAAA,CAAM,qBACN,CAAA,OAAA,CAAS,sBACT,QAAU,CAAA,WACZ,CACF,CAAA,CACA2F,CACF,CAGAjB,CAAAA,CAAAA,CAAM,UAAcA,EAAAA,CAAAA,CAAM,WAAW,MAAS,CAAA,CAAA,EAC9BA,EAAM,UACrB,CAAA,MAAA,CAAO,CAAC,CAAE,SAAA,CAAW6f,CAAS,CAAA,GAAMA,IAAa,MAAM,CAAA,CACvD,GAAKjgB,CAAAA,CAAAA,EAAa,CAvF7B,IAAArG,CAAAA,CAAAC,CAAA6G,CAAAA,CAAAA,CAAA0B,EA+FY,OAAO,CAAC,IALNxI,CAAAqG,CAAAA,CAAAA,CAAS,OAAT,IAAArG,CAAAA,MAAAA,CAAAA,CAAAA,CAAe,WAEfC,IAAAA,CAAAA,CAAAA,CAAAoG,EAAS,IAAT,GAAA,IAAA,CAAA,MAAA,CAAApG,CAAe,CAAA,YAAA,CAAA,EAAA,CAAA,CAEfuI,GAAA1B,CAAAT,CAAAA,CAAAA,CAAS,IAAT,GAAA,IAAA,CAAA,MAAA,CAAAS,EAAe,SAAf,GAAA,IAAA,CAAA,MAAA,CAAA0B,CAA0B,CAAA,QAAA,IAAYnC,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAU,QAEpD,CAAA,CAAA,CAAC,EACW,QAAS,CAAA,KAAK,CAC1Bma,EAAAA,EAAAA,CACE,CACE,GAAIze,CAAAA,CAAM,MAAU,EAAA,GACpB,CACE,IAAA,CAAM,eACN,OAAS,CAAA,oBAAA,CACT,SAAU,YACZ,CACF,CACA2F,CAAAA,CACF,GAIC,IAAM,CACX8Y,EAAkB,CAAA,GAAI9Y,CAAQ,EAChC,CACC,CAAA,CAAA,CAACjB,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAO,SAAS,CAAC,CAAA,CACrB,IAAMyO,CAAepC,CAAAA,OAAAA,CAAQ,IACpBpS,CAAAA,CAAAL,EAAA,EACF0B,CAAAA,CAAAA,CAAAA,CADE,CAEL,iBAAA,CAAoB+B,GAAwB,CAC1Cqd,EAAAA,CAAuB,iBAAkBrd,CAAAA,CAAAA,CAAQ4D,CAAQ,EAC3D,CAAA,CACA,kBAAmB,CAAOqZ,CAAAA,CAAoBC,IAA0B3hB,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CACtE,OAAMyhB,MAAAA,EAAAA,CAAkB,CACtB,gBAAAE,CAAAA,CAAAA,CACA,UAAAD,CAAAA,CAAAA,CACA,OAAAle,CACA,CAAA,QAAA,CAAA0Z,CACA,CAAA,KAAA,CAAA9V,CACF,CAAC,CAAA,CAAA,CACL,CACC,CAAA,CAAA,CAAC1E,CAAK,CAAC,CAAA,CACV,OACEjC,GAAAA,CAACuhB,GAAgB,QAAhB,CAAA,CAAyB,KAAOnM,CAAAA,CAAAA,CAC9B,SAAArV,CACH,CAAA,CAEJ,CClHO,SAASgrC,GAAe7qC,CAAwC,CAAA,CAAxC,IAAAC,CAAAD,CAAAA,CAAAA,CAAE,CAAAH,QAAAA,CAAAA,CAvBjC,EAuB+BI,CAAeC,CAAAA,CAAAA,CAAAC,CAAfF,CAAAA,CAAAA,CAAe,CAAb,UAvBjC,CAAA,CAAA,CAAA,IAAAD,CAwBE,CAAA,GAAM,CAAE,SAAA0gB,CAAAA,CAAU,EAAIwD,EAAiB,CAAA,CACrC,QAAS7C,EACT,CAAA,oBAAA,CAAsB,oBACtB,CAAA,oBAAA,CAAsB,iBACtB,GAAK,CAAA,WACP,CAAC,CAAA,CACK9T,GAAWvN,CAAA0gB,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAW,SAAX,IAAA1gB,CAAAA,CAAAA,CAAqB,EAChC+2B,CAA+Br2B,CAAAA,CAAAA,CAAAL,EAAA,EAChCH,CAAAA,CAAAA,CAAAA,CADgC,CAEnC,QAAA,CAAAqN,EACA,SAAAmT,CAAAA,CACF,CACA,CAAA,CAAA,OAAO7gB,EACLC,GAACC,CAAAA,CAAAA,CAAAW,CAAAL,CAAAA,CAAAA,CAAA,GAAW02B,CAAX,CAAA,CAAA,CAA2B,QAAAl3B,CAAAA,CAAAA,CAAAA,CAAS,EAErCC,GAAC,CAAA,MAAA,CAAAY,CAAAL,CAAAA,CAAAA,CAAA,GAASH,CAAT,CAAA,CAAA,CAAa,QAAAqN,CAAAA,CAAAA,CAAAA,CAAS,CAE3B,CC/BA,IAAMrM,EAAAA,CAAwC,EAExC4pC,CAAAA,EAAAA,CACJprC,aAA4CwB,CAAAA,EAAO,EAE9C6pC,EAAQD,CAAAA,EAAAA,CCCR,SAASE,EAAAA,CAAezqC,CAA2B,CAAA,CACxD,GAAM,CACJ,QAAA,CAAAV,CACA,CAAA,QAAA,CAAAmoB,EACA,SAAA5S,CAAAA,CAAAA,CAAY,6CACd,CAAA,CAAI7U,EACE,CACJ,eAAA,CAAAy3B,EACA,uBAAAqS,CAAAA,CAAAA,CACA,kBAAAJ,CACA,CAAA,QAAA,CAAArZ,CACF,CAAA,CAAI7gB,WAAWiV,EAAuB,CAAA,CAChC,CAAClU,CAAAA,CAAOm6B,CAAQ,CAAIp6B,CAAAA,QAAAA,CAAwB,EAAE,EACpDE,SAAU,CAAA,IAAM,CACd,IAAMonB,CAAAA,CAAUH,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CACZ,MAAQxsB,CAAAA,CAAAA,EACJwc,EAAiBxc,CAAE,CAAA,EAAA,GAAO6+B,CACvB,CAAA,IAAA,CAAA,CAER,IAAI,CAACF,CAAAA,CAAgBvlC,CAAM,GAAA,CAnClC,IAAA5E,CAoCQ,CAAA,GAAM,CAACkrC,CAA2B,CAAA,CAAA,CAChClrC,EAAAiqC,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAmB,CAAA,MAAA,CAAQkB,GAAa,CArClD,IAAAnrC,CAsCY,CAAA,IAAMorC,GAA2BprC,CAAAmrC,CAAAA,CAAAA,CAAS,eAAT,GAAA,IAAA,CAAA,MAAA,CAAAnrC,EAA0B,EAC3D,CAAA,OAAOmqC,EAAe,EAAOiB,GAAAA,CAC/B,KAHA,IAAAprC,CAAAA,CAAAA,CAGM,EAAC,CACHqrC,EAAgB,CACpB,UAAA,CAAYza,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAU,EACtB,CAAA,cAAA,CAAAuZ,CACA,CAAA,uBAAA,CAAAE,EACA,2BAAAa,CAAAA,CACF,EACA,OACEprC,GAAAA,CAACirC,GAA8B,QAA9B,CAAA,CAA+C,KAAOM,CAAAA,CAAAA,CACpD,SAAAxrC,CAD0C+E,CAAAA,CAAAA,CAE7C,CAEJ,CAAA,CAAA,CACF,OAAIuzB,CAAS8S,EAAAA,CAAAA,CAAS9S,CAAO,CAAA,CACtB,IAAM,CACX8S,CAAAA,CAAS,EAAE,EACb,CACF,CAAA,CAAG,CAACZ,CAAAA,CAAyBJ,EAAmBjS,CAAe,CAAC,CAChE,CAAA,IAAM/mB,EAAc,CAAC7M,EAAAA,CAAQ0M,CAAK,CAAA,EAAKA,GAAUsE,CACjD,CAAA,OAAOtV,IAAAqR,QAAA,CAAA,CAAG,SAAAF,CAAW,CAAA,CACvB,CC9CO,SAASq6B,EAAAA,CAAmB/qC,CAA2B,CAAA,CAd9D,IAAAP,CAeE,CAAA,GAAM,CAAE,cAAAmqC,CAAAA,CAAAA,CAAgB,4BAAAe,CAA6B,CAAA,UAAA,CAAAnqB,CAAW,CAAA,CAC9DhR,WAAWg7B,EAA6B,CAAA,CACpC9Q,CACJ,CAAA,CAAA,SAAA,EAAYlZ,GAAA,IAAAA,CAAAA,CAAAA,CAAc,EAAE,CAAA,CAAA,EAAA,CAAI/gB,EAAAmqC,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAgB,EAAhB,GAAA,IAAA,CAAAnqC,EAAsB,EAAE,CAAA,CAAA,EAAM,EAC1DmmB,CAAAA,CAAAA,CAAYgkB,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAgB,IAC5BnpC,CAAAA,CAAAA,CAAcX,EAAA,CAClB,cAAA,CAAA8pC,CACA,CAAA,2BAAA,CAAAe,EACA,KAAO/kB,CAAAA,CAAAA,CACP,OAAA8T,CAAAA,CAAAA,CAAAA,CACG15B,GAEL,OAAOA,CAAAA,CAAM,QACXT,CAAAA,GAAAA,CAACC,EAAAW,CAAAL,CAAAA,CAAAA,CAAA,EAAWW,CAAAA,CAAAA,CAAAA,CAAX,CAAyB,QAAAT,CAAAA,CAAAA,CAAM,QAAS,CAAA,CAAA,CAAA,CAEzCT,IAAC,OAAAY,CAAAA,CAAAA,CAAAL,EAAA,CAAM,OAAA,CAAS45B,GAAa15B,CAA5B,CAAA,CAAA,CACE,QAAA4lB,CAAAA,CAAAA,CAAAA,CACH,CAEJ,CCRO,SAASolB,EAAoBhrC,CAAAA,CAAAA,CAA2B,CAC7D,IAOIP,CAAAA,CAAAO,CANF,CAAA,CAAA,IAAA,CAAAmlB,EAAO,cACP,CAAA,IAAA,CAAAniB,CAAO,CAAA,cAAA,CACP,OAAAiiB,CAAS,CAAA,WAAA,CACT,aAAAgmB,CAAAA,CAAAA,CAAgB,OAChB,aAAAC,CAAAA,CAAAA,CAAgB,qDAhCpB,CAkCMzrC,CAAAA,CAAAA,CADCE,EAAAC,CACDH,CAAAA,CAAAA,CADC,CALH,MAAA,CACA,OACA,QACA,CAAA,eAAA,CACA,eAGI,CAAA,CAAA,CAAA,CAAE,eAAAmqC,CAAe,CAAA,CAAIp6B,UAAWg7B,CAAAA,EAA6B,EAC7D,CAAC/kB,CAAAA,CAAOC,CAAQ,CAAA,CAAIpV,SAAS,EAAE,CAAA,CAC/B,CAACwpB,CAAAA,CAAYC,CAAa,CAAIzpB,CAAAA,QAAAA,CAAS,CAAC,CAAA,CACxC66B,EAASvB,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAgB,CAAA,MAAA,CAC/Bp5B,UAAU,IAAM,CACd,GAAIo5B,CAAgB,CAAA,CAClB,IAAMjqC,CAAIolB,CAAAA,EAAAA,CAAU,CAClB,IAAA,CAAAI,EACA,IAAAniB,CAAAA,CAAAA,CACA,MAAAiiB,CAAAA,CAAAA,CACA,IAAK2kB,CACP,CAAC,CACDlkB,CAAAA,CAAAA,CAAS/lB,CAAC,CACV,CAAA,IAAMyrC,EAASrmB,EAAkB,CAAA,CAC/B,KAAM,cACN,CAAA,IAAA,CAAM,cACN,CAAA,MAAA,CAAQ,QACR,GAAK6kB,CAAAA,CACP,CAAC,CAAA,CACD7P,EAAcqR,CAAM,EACtB,CACA,OAAO,IAAY,CACjB1lB,CAAAA,CAAS,EAAE,CACXqU,CAAAA,CAAAA,CAAc,CAAC,EACjB,CACF,CAAG,CAAA,CAAC6P,CAAc,CAAC,CAAA,CACnB,IAAMnpC,CAAAA,CAAcX,EAAA,CAClB,KAAA,CAAA2lB,CACA,CAAA,MAAA,CAAA0lB,GACGxrC,CAEC0rC,CAAAA,CAAAA,CAAAA,CAAavR,IAAe,CAAImR,CAAAA,CAAAA,CAAgBxlB,EACtD,OAAOzlB,CAAAA,CAAM,QACXT,CAAAA,GAAAA,CAACC,EAAAW,CAAAL,CAAAA,CAAAA,CAAA,EAAWW,CAAAA,CAAAA,CAAAA,CAAX,CAAyB,QAAAT,CAAAA,CAAAA,CAAM,QAAS,CAAA,CAAA,CAAA,CAEzCT,IAAC,MAAAY,CAAAA,CAAAA,CAAAL,EAAA,EAASH,CAAAA,CAAAA,CAAAA,CAAT,CAAa,QAAAwrC,CAAAA,CAAAA,GAAW,UAAaD,CAAAA,CAAAA,CAAgBG,GAAW,CAErE,CClDO,SAASC,EAAAA,CAA0BtrC,EAA2B,CACnE,IAAqCP,CAAAO,CAAAA,CAAAA,CAA7B,UAAAi6B,CAAU,CAAA,QAAA,CAAA36B,CAvBpB,CAAA,CAuBuCG,EAANE,CAAAC,CAAAA,CAAAA,CAAMH,CAAN,CAAA,CAAvB,WAAU,UACZ,CAAA,CAAA,CAAA,CAACi2B,EAASC,CAAU,CAAA,CAAIrlB,SAAS,KAAK,CAAA,CACtC,CAACb,CAAAA,CAAUyqB,CAAW,CAAI5pB,CAAAA,QAAAA,CAAS,KAAK,CAAA,CACxC,CAAE,cAAAs5B,CAAAA,CAAAA,CAAgB,uBAAAE,CAAAA,CAAAA,CAAyB,WAAAtpB,CAAW,CAAA,CAAIhR,UAC9Dg7B,CAAAA,EACF,EACM,CAAE,iBAAA,CAAAjqB,CAAkB,CAAA,CAAI/Q,WAAWsR,EAAe,CAAA,CAClDL,CAAmBmpB,CAAAA,CAAAA,EAAA,YAAAA,CAAgB,CAAA,EAAA,CACnC7mC,CAAO,CAAA,CAAA,SAAA,EAAYyd,GAAA,IAAAA,CAAAA,CAAAA,CAAc,EAAE,CACnC5Y,CAAAA,CAAAA,CAAAA,CAAK,GAAG7E,CAAI,CAAA,CAAA,EAAI0d,CAAA,EAAA,IAAA,CAAAA,EAAoB,EAAE,CAAA,CAAA,CAC5CjQ,SAAU,CAAA,KAENmlB,EADElV,CAAqBqpB,GAAAA,CACR,CAEV,CAAA,IAAM,CACXnU,CAAW,CAAA,KAAK,EAClB,CACC,CAAA,CAAA,CAACmU,EAAyBrpB,CAAgB,CAAC,CAE9C,CAAA,IAAM0Z,EAAiB,IAA2Br7B,CAAAA,CAAA,IAEhD,CAAA,IAAA,CAAA,WAAA,CAAA,GADAo7B,EAAY,IAAI,CAAA,CACZ1Z,CACEC,EAAAA,CAAAA,EAAoBF,GAAqB,IAAM,CAAA,CACjD,GAAM,CAAE,KAAA,CAAAra,CAAM,CAAI,CAAA,MAAMqa,CAAkBC,CAAAA,CAAAA,CAAYC,CAAgB,CAClEmpB,CAAAA,CAAAA,EAAkB3P,CAAY,EAAA,IAAA,EAChCA,EAAS,CACP,cAAA,CAAA2P,CACA,CAAA,UAAA,CAAAppB,EACA,KAAAta,CAAAA,CACF,CAAC,EACL,CAEFg0B,CAAY,CAAA,KAAK,EACnB,CAAA,CAAA,CACMz5B,EAAcX,CAAA,CAAA,CAClB,cAAA8pC,CAAAA,CAAAA,CACA,WAAAppB,CACA,CAAA,cAAA,CAAA2Z,CACA,CAAA,IAAA,CAAAp3B,EACA,EAAA6E,CAAAA,CAAAA,CACA,SAAA6H,CACGzP,CAAAA,CAAAA,CAAAA,CAAAA,CAEL,OAAOV,CACLC,CAAAA,GAAAA,CAACC,CAAAW,CAAAA,CAAAA,CAAAL,EAAA,EAAWW,CAAAA,CAAAA,CAAAA,CAAX,CAAyB,QAAA,CAAAnB,GAAS,CAEnCC,CAAAA,GAAAA,CAAC,OAAAO,CAAAA,CAAAA,CAAA,CACC,QAAU2P,CAAAA,CAAAA,CACV,KAAK,OACL,CAAA,IAAA,CAAM1M,EACN,EAAI6E,CAAAA,CAAAA,CACJ,QAAWN,CAAAA,CAAAA,EAAM,CACfA,CAAE,CAAA,cAAA,EACFA,CAAAA,CAAAA,CAAE,iBACF6yB,CAAAA,CAAAA,GACF,CAAA,CACA,QAASzE,CACL/1B,CAAAA,CAAAA,CAAAA,CACN,CAEJ,CC7BO,IAAM4rC,GAA8C,EAAC,CAE5D,SAAsBC,EAAAA,CAAgB3sC,EAUpB,CAAAC,OAAAA,CAAAA,CAAA,IAVoB,CAAA,SAAA,CAAA,UAAA,CACpC,QAAAgO,CACA,CAAA,KAAA,CAAA2+B,CACA,CAAA,QAAA,CAAAtkC,EACA,MAAA7E,CAAAA,CACF,CAKkB,CAAA,CAlElB,IAAA7C,CAmEE,CAAA,IAAM6G,CAAM7D,CAAAA,CAAAA,CAAOH,CAAM,CACzB,CAAA,GAAI,CACF,GAAM,CAACwnB,CAAG,CACR2hB,CAAAA,CAAAA,EAAS,IACL,CAAA,CAAC,CAAE,EAAIA,CAAAA,CAAM,CAAC,CAAA,CACd3+B,GAAW,IACT,CAAA,MAAMxG,CAAI,CAAA,IAAA,CAAK,KAAK,CAClB,MAAA,CAAQ,CAAE,IAAM,CAAA,CAAC,IAAI,CAAE,CAAA,CACvB,OAAS,CAAA,CAAE,QAASwG,CAAQ,CAC9B,CAAC,CAAA,CACD,EACR,CAAA,GAAIgd,CAAK,CAAA,CACP,IAAM4hB,CAAgB,CAAA,MAAMplC,EAAI,IAAK,CAAA,QAAA,CAASwjB,EAAI,EAAI,CAAA,CACpD,MAAQ,CAAA,CAAE,KAAM,CAAC,WAAW,CAAE,CAChC,CAAC,CACK,CAAA,CAAC6hB,CAAK,CAAA,CAAA,CAAA,CAAIlsC,EAAAisC,CAAa,CAAA,SAAA,GAAb,YAAAjsC,CAAwB,CAAA,MAAA,GAAU,EAC5C,CAAA,CAACmrC,CAAQ,CAAA,CAAA,CAAIe,GAAA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA,CAAO,mBAAuB,GAAA,GACjDxkC,CAAS,CAAA,CACP,IAAM,CAAA,iBAAA,CACN,QAAShH,CAAAL,CAAAA,CAAAA,CAAA,GACJ8qC,CADI,CAAA,CAAA,CAEP,SAAUc,CAAa,CAAA,SAAA,CAAU,QACjC,CAAA,OAAA,CAAA5+B,CACF,CACF,CAAA,CAAC,EACH,CACF,OAASlJ,CAAO,CAAA,CACd,OAAQ,CAAA,KAAA,CAAM,uBAAwBA,CAAK,EAC7C,CACF,CAIA,CAAA,CAAA,IAAM+kC,GAAuC,CAAC,iBAAA,CAAmB,WAAW,CAAA,CAEtEiD,GAAsB,CAC1BpqC,CAAAA,CACAoH,CAEAjH,GAAAA,EAAAA,CACEH,EACAoH,CACA+/B,CAAAA,EACF,CAEKkD,CAAAA,EAAAA,CAAQD,GC7Gf,IAAME,GAAsB3sC,aAAcosC,CAAAA,EAAwB,CAE3DQ,CAAAA,EAAAA,CAAQD,GCsCR,SAASE,GAAsB,CACpC,QAAA,CAAA1sC,CACA,CAAA,OAAA,CAAAwN,EACA,KAAA2+B,CAAAA,CAAAA,CACA,WAAAQ,CAAAA,CACF,EAAuB,CACrB,GAAM,CAAE,QAAA,CAAAnmC,CAAS,CAAI0J,CAAAA,UAAAA,CAAWmO,EAAuB,CAAA,CACjD,CAAE,GAAAmM,CAAAA,CAAI,CAAIta,CAAAA,UAAAA,CAAWga,EAAkB,CACvC,CAAA,CAAE,YAAAxnB,CAAa,CAAA,QAAA,CAAAH,CAAS,CAAI8hB,CAAAA,EAAAA,CAAiB,CACjD,OAAA,CAASnP,EACT,oBAAsB,CAAA,eAAA,CACtB,oBAAsB,CAAA,uBAAA,CACtB,IAAK,aACP,CAAC,CACK,CAAA,CAAChT,EAAO2F,CAAQ,CAAA,CAAIuN,WACxBm3B,EACAN,CAAAA,EACF,EACMxhB,CAAQjd,CAAAA,CAAAA,GAAWhH,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAU,QAAYgkB,CAAAA,GAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAK,MACpDtZ,SAAU,CAAA,IAAM,CACd,GAAIxO,GAAe,IAAQA,EAAAA,CAAAA,GAAgB,GAAI,CAC7C,IAAMM,EAAS,CAAE,WAAA,CAAAN,CAAa,CAAA,QAAA,CAAAH,CAAS,CACnCkoB,CAAAA,CAAAA,CAAAA,EAAS,IAAQ0hB,EAAAA,CAAAA,EAAS,OAC5BD,EAAgB,CAAA,CAAE,OAASzhB,CAAAA,CAAAA,CAAO,MAAA0hB,CAAO,CAAA,MAAA,CAAAnpC,CAAQ,CAAA,QAAA,CAAA6E,CAAS,CAAC,EAE/D,CACA,OAAO,IAAY,CACjBA,CAAAA,CAAS,CACP,IAAA,CAAM,kBACN,OAAS,CAAA,EACX,CAAC,EACH,CACF,CAAA,CAAG,CAACnF,CAAa+nB,CAAAA,CAAAA,CAAO0hB,CAAK,CAAC,CAAA,CAC9Bj7B,SAAU,CAAA,IAAM,CACVy7B,CAAe,EAAA,IAAA,EAAA,CAAQzqC,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAO,QAAY,GAAA,IAAA,EAC5CyqC,CAAYzqC,CAAAA,CAAAA,EAAA,YAAAA,CAAO,CAAA,QAAQ,EAC/B,CAAG,CAAA,CAACA,EAAM,QAAQ,CAAC,CACnB,CAAA,IAAM0qC,EAAW35B,OAAQ,CAAA,IAChBpS,CAAAL,CAAAA,CAAAA,CAAA,GAAK0B,CAAL,CAAA,CAAA,CAAY,MAAQ,CAAA,IAAK,GAC/B,CAACA,CAAK,CAAC,CACV,CAAA,OACEjC,IAACwsC,EAAoB,CAAA,QAAA,CAApB,CAA6B,KAAA,CAAOG,EAClC,QAAA5sC,CAAAA,CAAAA,CACH,CAEJ,CCxBO,SAAS6sC,EAAAA,CAAqBnsC,EAA2B,CAhEhE,IAAAN,CAAA6G,CAAAA,CAAAA,CAAA0B,EAiEE,IAOIxI,CAAAA,CAAAO,CANF,CAAA,CAAA,UAAA,CAAAosC,EACA,sBAAAC,CAAAA,CAAAA,CACA,uBAAAC,CAAAA,CAAAA,CACA,SAAAhtC,CACA,CAAA,MAAA,CAAAg5B,CAtEJ,CAAA,CAwEM74B,EADCE,CAAAC,CAAAA,CAAAA,CACDH,EADC,CALH,YAAA,CACA,yBACA,yBACA,CAAA,UAAA,CACA,QAGI,CAAA,CAAA,CAAA,CACJ,IAAA8sC,CACA,CAAA,GAAA,CAAA/kB,CACA,CAAA,eAAA,CAAiBoiB,EACjB,QAAA58B,CAAAA,CAAAA,CACA,OAAAF,CAAAA,CACF,EAAI6W,EAAiB,CAAA,CACnB,QAASooB,EACT,CAAA,oBAAA,CAAsB,wBACtB,oBAAsB,CAAA,sBAAA,CACtB,GAAK,CAAA,QACP,CAAC,CACKp5B,CAAAA,CAAAA,CAAiB,EAAC,CAClB65B,EAAKD,CAAO,EAAA,IAAA,EAAQH,CAAc,EAAA,IAAA,CAAOG,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAMH,GAAc,EAC7DK,CAAAA,CAAAA,CAAKjlB,GAAO,IAAQ4kB,EAAAA,CAAAA,EAAc,IAAO5kB,CAAAA,CAAAA,EAAA,YAAAA,CAAM4kB,CAAAA,CAAAA,CAAAA,CAAc,EAC7DM,CAAAA,CAAAA,CACJJ,IAA2B1C,CAAA,EAAA,IAAA,EAAAA,CAAgB,CAAA,sBAAA,CAAA,CACvC,IAAIA,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAgB,sBAAsB,CAAA,CAAA,CAAA,CAC1C,GACA7mC,CACJspC,CAAAA,CAAAA,EAA0BzC,CACtB,CAAA,CAAA,KAAA,EAAQA,EAAe,IAAI,CAAA,CAAA,CAC3B,EACF58B,CAAAA,CAAAA,EAAY,OACVA,CAAW,CAAA,CAAA,EACb2F,CAAK,CAAA,IAAA,CAAA,CAAKjT,EAAA44B,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAQ,SAAR,GAAA,IAAA,CAAA54B,EAAqB,WAAW,CAAA,CACtC8sC,CAAMC,EAAAA,CAAAA,EAAML,GACdz5B,CAAK,CAAA,IAAA,CACH,CAAM65B,GAAAA,EAAAA,CAAE,MAAMC,CAAE,CAAA,CAAA,EAAIL,CAAU,CAAA,CAAA,EAAIrpC,CAAI,CAAI2pC,CAAAA,EAAAA,CAAmB,EAC/D,CAEO1/B,EAAAA,CAAAA,GAAa,EACtB2F,CAAK,CAAA,IAAA,CAAA,CAAKpM,CAAA+xB,CAAAA,CAAAA,EAAA,YAAAA,CAAQ,CAAA,UAAA,GAAR,IAAA/xB,CAAAA,CAAAA,CAAsB,cAAc,CACrCyG,CAAAA,CAAAA,CAAW,CACpB2F,EAAAA,CAAAA,CAAK,MAAK1K,CAAAqwB,CAAAA,CAAAA,EAAA,YAAAA,CAAQ,CAAA,aAAA,GAAR,KAAArwB,CAAyB,CAAA,cAAc,CAGrD,CAAA,CAAA,IAAMxH,EAAcX,CAAA,CAAA,CAClB,GAAAysC,CAAAA,CAAAA,CACA,IAAA/kB,CACA,CAAA,eAAA,CAAiBoiB,CACjB,CAAA,QAAA,CAAA58B,EACA,IAAM2F,CAAAA,CAAAA,CAAK,IAAK,CAAA,GAAG,GAChB3S,CAEL,CAAA,CAAA,OAAOV,CACLC,CAAAA,GAAAA,CAACC,EAAAW,CAAAL,CAAAA,CAAAA,CAAA,EAAWW,CAAAA,CAAAA,CAAAA,CAAX,CAAyB,QAAAnB,CAAAA,CAAAA,CAAAA,CAAS,CAEnCC,CAAAA,GAAAA,CAAC,OAAAY,CAAAL,CAAAA,CAAAA,CAAA,CAAK,aAAagN,CAAAA,CAAAA,CAAU,gBAAgBA,CAAO,CAAA,CAAA,CAAK,EAAQnN,CAAAA,CAAAA,CAAAA,CAAAA,CAAhE,CACE,QAAAgT,CAAAA,CAAAA,CAAK,IAAK,CAAA,GAAG,GAChB,CAEJ,CC3GO,SAASg6B,EAAAA,CAAiB3sC,EAA2B,CAC1D,IAAuBP,CAAAO,CAAAA,CAAAA,CAAf,MAAAgD,CAnBV,CAAA,CAmByBvD,CAANE,CAAAA,CAAAA,CAAAC,EAAMH,CAAN,CAAA,CAAT,SACF,CAACkT,CAAAA,CAAMi6B,CAAO,CAAIt8B,CAAAA,QAAAA,EAClB,CAAA,CAAE,4BAAAq6B,CAA4B,CAAA,CAAIn7B,UACtCg7B,CAAAA,EACF,EACAh6B,SAAU,CAAA,KACJm6B,CAAA,EAAA,IAAA,EAAAA,EAA8B3nC,CAChC4pC,CAAAA,EAAAA,CAAAA,CAAQjC,CAA4B3nC,CAAAA,CAAI,CAAC,CACpC,CAAA,IAAM,CACX4pC,CAAAA,CAAQ,EAAE,EACZ,CAAA,CAAA,CACC,CAACjC,CAA2B,CAAC,CAChC,CAAA,IAAMlqC,CAAcX,CAAAA,CAAAA,CAAA,CAClB,IAAA6S,CAAAA,CAAAA,CAAAA,CACGhT,GAEL,OAAOK,CAAAA,CAAM,SACXT,GAACC,CAAAA,CAAAA,CAAAW,CAAAL,CAAAA,CAAAA,CAAA,GAAWW,CAAX,CAAA,CAAA,CAAyB,QAAAT,CAAAA,CAAAA,CAAM,UAAS,CAEzCT,CAAAA,GAAAA,CAAC,MAAAY,CAAAA,CAAAA,CAAAL,EAAA,EAASH,CAAAA,CAAAA,CAAAA,CAAT,CAAa,QAAAgT,CAAAA,CAAAA,CAAAA,CAAK,CAEvB,CCPO,SAASk6B,EAA0B7sC,CAAAA,CAAAA,CAAuB,CAC/D,IAA2DP,EAAAO,CAAnD,CAAA,CAAA,SAAA,CAAAkY,CAAW,CAAA,UAAA,CAAAuC,EAAa,MAAQ,CAAA,QAAA,CAAAnb,CAlC1C,CAkC6DG,CAAAA,CAAAA,CAANE,EAAAC,CAAMH,CAAAA,CAAAA,CAAN,CAA7C,WAAA,CAAW,aAAqB,UACxC,CAAA,CAAA,CAAA,OACEF,GAACib,CAAAA,EAAAA,CAAAra,EAAAL,CAAA,CAAA,CACC,QAAS,CAAA,KAAA,CACT,UAAWoY,CACX,CAAA,UAAA,CAAYuC,CACZ,CAAA,OAAA,CAAS+O,IACL7pB,CALL,CAAA,CAAA,CAOE,QAAAL,CAAAA,CAAAA,CAAAA,CACH,CAEJ,CCnCO,SAASwtC,EAAQ9sC,CAAAA,CAAAA,CAA2B,CACjD,GAAM,CAAE,EAAA4H,CAAAA,CAAAA,CAAI,SAAAtI,CAAS,CAAA,CAAIU,CACnB,CAAA,CAAE,QAAAgpB,CAAQ,CAAA,CAAIxZ,UAAW8Z,CAAAA,EAAe,EAC9C,OAAA9Y,SAAAA,CAAU,IAAM,CACVwY,CAAAA,EAAW,CAACA,CAAQ,CAAA,QAAA,CAASphB,CAAE,CAAA,EACjCohB,EAAQ,IAAKphB,CAAAA,CAAE,EAEnB,CAAA,CAAG,EAAE,CAAA,CACErI,GAAAqR,CAAAA,QAAAA,CAAA,CAAG,QAAAtR,CAAAA,CAAAA,CAAS,CACrB,CCRO,SAASytC,EAAkB/sC,CAAAA,CAAAA,CAA2B,CAC3D,GAAM,CAAE,QAAAV,CAAAA,CAAS,EAAIU,CACf,CAAA,CAACwB,EAAO2F,CAAQ,CAAA,CAAIuN,UAAW0U,CAAAA,EAAAA,CAAiBN,EAAoB,CACpExmB,CAAAA,CAAAA,CAASkN,UAAWgF,CAAAA,CAAoB,EAC9C,OAAAhE,SAAAA,CAAU,IAAM,CACVhP,EAAM,OAAWA,EAAAA,CAAAA,CAAM,QAAQ,MAAS,CAAA,CAAA,EAAKc,EAAO,WACtDymB,EAAAA,EAAAA,CAAW,CAAE,OAAA,CAASvnB,EAAM,OAAS,CAAA,QAAA,CAAA2F,CAAU,CAAA,MAAA,CAAA7E,EAAQ,KAAAd,CAAAA,CAAM,CAAC,EAElE,EAAG,CAACc,CAAAA,CAAO,WAAW,CAAC,CAAA,CAErB/C,IAAC+pB,EAAgB,CAAA,QAAA,CAAhB,CAAyB,KAAA,CAAO9nB,EAC9B,QAAAlC,CAAAA,CAAAA,CACH,CAEJ,CCNO,SAAS0tC,GAAsB,CAAE,QAAA,CAAA1tC,CAAS,CAAA,CAAmB,CAClE,GAAM,CAAE,IAAA2tC,CAAAA,CAAK,EAAIz9B,UAAW65B,CAAAA,EAAU,CAChC34B,CAAAA,CAAAA,CAAau8B,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAM,GAAI,CAAA,CAACnjB,EAAKnjB,CAAQ,GAAA,CACzC,IAAMwC,CAAAA,CAAQ,CAAE,GAAA2gB,CAAAA,CAAI,CACpB,CAAA,OACEvqB,IAACiqB,EAAmB,CAAA,QAAA,CAAnB,CAAsC,KAAA,CAAOrgB,EAC3C,QAAA7J,CAAAA,CAAAA,CAAAA,CAD+BqH,CAElC,CAEJ,CAAA,CAAA,CACA,OAAOpH,GAAAqR,CAAAA,QAAAA,CAAA,CAAG,QAAA,CAAAF,EAAW,CACvB,CChBA,IAAMpF,EAAAA,CAA8B,CAAC,SAAS,CAAA,CAEjC4hC,EAA4B,CAAA,CACvC,KAAM,EAAC,CACP,QAAS,IACT,CAAA,QAAA,CAAU,EACZ,CAAA,CASA,SAAsBC,EAAAA,CAAyBtuC,EAK1B,CAAAC,OAAAA,CAAAA,CAAA,IAL0B,CAAA,SAAA,CAAA,UAAA,CAC7C,OAAAwD,CACA,CAAA,IAAA,CAAA2qC,CACA,CAAA,QAAA,CAAA9lC,EACA,WAAAimC,CAAAA,CACF,EAAqB,CAEnB,GADI,CAAC9qC,CAAO,CAAA,WAAA,EACR2qC,CAAK,CAAA,MAAA,GAAW,EAAG,OACvB,IAAM3mC,CAAM7D,CAAAA,CAAAA,CAAOH,CAAM,CACrB+qC,CAAAA,CAAAA,CAAiB,EAAC,CAChBjpB,EAAM,MAAM9d,CAAAA,CAAI,IAAK,CAAA,IAAA,CAAKnG,EAAAL,CAAA,CAAA,EAAA,CAC3BstC,CAD2B,CAAA,CAAA,CAE9B,QAASjtC,CAAAL,CAAAA,CAAAA,CAAA,EAAKstC,CAAAA,CAAAA,EAAA,YAAAA,CAAa,CAAA,OAAA,CAAA,CAAlB,CAA2B,OAAA,CAASH,EAAK,IAAK,CAAA,GAAG,CAAE,CAC9D,CAAA,CAAA,CAAC,EACDI,CAAU,CAAA,CAAC,GAAGjpB,CAAG,EACjB,IAAMqkB,CAAAA,CAAOrkB,CAAI,CAAA,IAAA,CACjB,GAAIqkB,CAAK,CAAA,SAAA,CAAY,CACnB,CAAA,IAAA,IACM1vB,EAAa0vB,CAAK,CAAA,WAAA,CAAc,EACpC1vB,CAAc0vB,EAAAA,CAAAA,CAAK,UACnB1vB,CACA,EAAA,CAAA,CACA,IAAMu0B,CAAAA,CAAU,MAAMhnC,CAAI,CAAA,IAAA,CAAK,IAAKnG,CAAAA,CAAAA,CAAAL,EAAA,EAC/BstC,CAAAA,CAAAA,CAAAA,CAD+B,CAElC,OAAA,CAASjtC,EAAAL,CAAA,CAAA,EAAA,CAAKstC,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAa,SAAlB,CAA2B,OAAA,CAASH,CAAK,CAAA,IAAA,CAAK,GAAG,CAAE,CAAA,CAAA,CAC5D,UAAAl0B,CAAAA,CACF,EAAC,CACDs0B,CAAAA,CAAAA,CAAU,CAAC,GAAGA,EAAS,GAAGC,CAAO,EACnC,CAEFnmC,EAAS,CACP,IAAA,CAAM,SACN,CAAA,OAAA,CAAS,CACP,IAAMkmC,CAAAA,CAAAA,CACN,OAAS,CAAA,KAAA,CACT,SAAUJ,CACZ,CACF,CAAC,EACH,GAEe,SAARM,EAAAA,CACL/rC,EACAoH,CACU,CAAA,CACV,OAAOjH,EACLH,CAAAA,CAAAA,CACAoH,CACA0C,CAAAA,EACF,CACF,CC7CO,SAASkiC,GAA+BxtC,CAAuB,CAAA,CACpE,GAAM,CAAE,KAAAitC,CAAM,CAAA,QAAA,CAAA3tC,CAAU,CAAA,WAAA,CAAA8tC,CAAY,CAAIptC,CAAAA,CAAAA,CAClC,CAACwB,CAAAA,CAAO2F,CAAQ,CAAIuN,CAAAA,UAAAA,CAAW64B,GAAYL,EAAe,CAAA,CAC1D5qC,EAASkN,UAAWgF,CAAAA,CAAoB,CACxCi5B,CAAAA,CAAAA,CAAW,IAA2B3uC,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CAC1C,MAAMquC,EAAAA,CAAO,CAAE,MAAA7qC,CAAAA,CAAAA,CAAQ,QAAA6E,CAAAA,CAAAA,CAAU,KAAA8lC,CAAM,CAAA,WAAA,CAAAG,CAAY,CAAC,EACtD,GACA58B,SAAU,CAAA,KACJlO,CAAO,CAAA,WAAA,GAAed,GAAA,IAAAA,EAAAA,CAAAA,CAAO,IAC3BA,CAAAA,EAAAA,CAAAA,CAAAA,EAAA,YAAAA,CAAO,CAAA,IAAA,CAAK,MAAW,IAAA,CAAA,EACzBisC,GAGG,CAAA,IAAM,CACXtmC,CAAS,CAAA,CACP,KAAM,YACN,CAAA,OAAA,CAAS,CACP,OAAA,CAAS,IACX,CACF,CAAC,EACH,CAAA,CAAA,CACC,CAAC7E,CAAQ2qC,CAAAA,CAAI,CAAC,CAAA,CACjB,IAAMt4B,CAAepC,CAAAA,OAAAA,CAAQ,IAAM/Q,CAAO,CAAA,CAACA,CAAK,CAAC,CAAA,CACjD,OACEjC,GAAAA,CAAC8pC,GAAW,QAAX,CAAA,CAAoB,KAAO10B,CAAAA,CAAAA,CAAe,SAAArV,CAAS,CAAA,CAExD,CCrDA,IAAMqB,EAAAA,CAAuC,EAAC,CAExC+sC,GACJvuC,aAA2CwB,CAAAA,EAAO,CAE7CgtC,CAAAA,EAAAA,CAAQD,GCGR,SAASE,EAAc5tC,CAAAA,CAAAA,CAA2B,CACvD,GAAM,CAAE,QAAAV,CAAAA,CAAS,EAAIU,CACf,CAAA,CAAE,cAAA+pC,CAAAA,CAAAA,CAAgB,UAAAlkC,CAAU,CAAA,CAAI2J,UAAWiV,CAAAA,EAAuB,EAClE/T,CAAaq5B,CAAAA,CAAAA,EAAA,YAAAA,CACf,CAAA,MAAA,CAAQ8D,GAAO,CAAC,EAAChoC,CAAA,EAAA,IAAA,EAAAA,EAAW,IAAM+e,CAAAA,CAAAA,EAAAA,CAAMA,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAG,QAAaipB,KAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAI,aAC7D,GAAI,CAAA,CAACC,EAA0CzpC,CAAM,GAAA,CACpD,IAAM0pC,CAAkD,CAAA,CACtD,aACED,CAAAA,CAAAA,CAAc,OAAS,YACnBA,CAAAA,CAAAA,CACAA,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAe,SACvB,CAAA,CACA,OACEvuC,GAAAA,CAACouC,GAA6B,QAA7B,CAAA,CAEC,MAAOI,CAEN,CAAA,QAAA,CAAAzuC,GAHI+E,CAIP,CAEJ,CACF,CAAA,CAAA,OAAO9E,IAAAqR,QAAA,CAAA,CAAG,QAAAF,CAAAA,CAAAA,CAAW,CACvB,CCfO,SAASs9B,EAAoChuC,CAAAA,CAAAA,CAAuB,CACzE,IAA2DP,CAAAA,CAAAO,EAAnD,CAAAkY,SAAAA,CAAAA,CAAAA,CAAW,UAAAuC,CAAAA,CAAAA,CAAa,OAAQ,QAAAnb,CAAAA,CAvB1C,CAuB6DG,CAAAA,CAAAA,CAANE,EAAAC,CAAMH,CAAAA,CAAAA,CAAN,CAA7C,WAAA,CAAW,aAAqB,UACxC,CAAA,CAAA,CAAA,OACEF,IAACib,EAAAra,CAAAA,CAAAA,CAAAL,EAAA,CACC,QAAA,CAAS,eACT,CAAA,SAAA,CAAWoY,EACX,UAAYuC,CAAAA,CAAAA,CACZ,OAASkzB,CAAAA,EAAAA,CAAAA,CACLhuC,GALL,CAOE,QAAA,CAAAL,CACH,CAAA,CAAA,CAEJ,CCMO,SAAS2uC,IAAkC,CAChD,IAAMliB,CAAMvc,CAAAA,UAAAA,CAAWX,CAAY,CACnC,CAAA,GAAI,OAAWkd,GAAAA,CAAAA,CACb,OAAO,CACL,KAAA,CAAOA,CAAI,CAAA,KAAA,CACX,YAAa,IAAYjtB,CAAAA,CAAA,sBA9C/B,IAAAW,CAAAA,CAAAC,EA+CQ,GAAID,CAAAA,CAAAA,CAAAssB,CAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAK,KAAL,GAAA,IAAA,EAAAtsB,CAAY,CAAA,EAAA,CAAI,OAAO,MAAMssB,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAK,UAASrsB,CAAAqsB,CAAAA,CAAAA,EAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAK,QAAL,IAAArsB,CAAAA,MAAAA,CAAAA,CAAAA,CAAY,EAE7D,CAAA,CAAA,CAAA,CACA,UAAkByL,CAAWrM,EAAAA,CAAAA,CAAA,IAC3B,CAAA,IAAA,CAAA,WAAA,CAAA,OAAIitB,GAAA,IAAAA,EAAAA,CAAAA,CAAK,SAAkB,CAAA,MAAMA,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAK,UAAU5gB,CACzC,CAAA,CAAA,CACL,QAAS,KACX,CACF,CACA,CAAA,CAAA,WAAA,CAAoBA,GAAWrM,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,WAAA,CAC7B,GAAIitB,CAAAA,EAAA,MAAAA,CAAK,CAAA,WAAA,CAAa,OAAO,MAAMA,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAK,YAAY5gB,CAEtD,CAAA,CAAA,CACF,EAEF,MAAM,IAAI,KAAM,CAAA,6DAA6D,CAC/E,CChDO,SAAS+iC,EAAAA,EAAgC,CAC9C,IAAMniB,EAAMvc,UAAWgF,CAAAA,CAAoB,EAC3C,GAAI,aAAA,GAAiBuX,EACnB,OAAO,CACL,WAAaA,CAAAA,CAAAA,CAAI,YACjB,SAAW,CAAA,IAAM,CACf,GAAA,CAAIA,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAK,WAAe,GAAA,IAAA,EAAA,CAAQA,GAAA,IAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAK,WAAY,IAC/C,CAAA,OAAOtpB,EAAO,CACZ,WAAA,CAAaspB,CAAI,CAAA,WAAA,CACjB,SAAUA,CAAI,CAAA,QAChB,CAAC,CAEL,CACF,CAEF,CAAA,MAAM,IAAI,KAAA,CAAM,2DAA2D,CAC7E,CCbO,SAASoiB,EAAAA,EAAwC,CACtD,IAAMpiB,EAAMvc,UAAWxO,CAAAA,CAAe,CACtC,CAAA,GAAI,cAAe+qB,CACjB,CAAA,OAAO,CACL,SAAA,CAAWA,EAAI,SACf,CAAA,QAAA,CAAUA,EAAI,QACd,CAAA,MAAA,CAAQA,EAAI,MACZ,CAAA,aAAA,CAAeA,CAAI,CAAA,aAAA,CACnB,cAAeA,CAAI,CAAA,aAAA,CACnB,SAAWA,CAAAA,CAAAA,CAAI,UACf,kBAAoBA,CAAAA,CAAAA,CAAI,kBACxB,CAAA,uBAAA,CAAyBA,EAAI,uBAC/B,CAAA,CAEF,MAAM,IAAI,KAAA,CACR,mEACF,CACF","file":"index.js","sourcesContent":["import { createContext } from 'react'\n\ninterface Context {\n url: string | null\n callExternalFunction: CallExternalFunction\n}\n\ntype CallExternalFunction = (params: {\n url: string\n data: Record<string, any>\n}) => Promise<Record<string, any>>\n\nexport const callExternalFunction: CallExternalFunction = async ({\n url,\n data\n}) => {\n const response = await fetch(url, {\n method: 'POST',\n body: JSON.stringify(data),\n headers: {\n 'Content-Type': 'application/json'\n }\n })\n\n if (!response.ok) {\n throw new Error('Failed to call external function')\n }\n\n return await response.json()\n}\n\nconst ExternalFunctionContext = createContext<Context>({\n url: null,\n callExternalFunction\n})\n\nexport default ExternalFunctionContext\n","import ExternalFunctionContext, {\n callExternalFunction\n} from '#context/ExternalFunctionContext'\nimport type { ReactNode, JSX } from 'react';\n\ninterface Props {\n children: ReactNode\n url: string\n}\n\nexport function ExternalFunction({ children, url }: Props): JSX.Element {\n return (\n <ExternalFunctionContext.Provider value={{ url, callExternalFunction }}>\n {children}\n </ExternalFunctionContext.Provider>\n )\n}\n\nexport default ExternalFunction\n","import type { Component, ForwardedRef, JSX } from 'react';\n\nexport interface ParentProps {\n // Add parent ref to child\n parentRef?: ForwardedRef<any>\n children?: typeof Component | ((P: any) => JSX.Element | null)\n}\n\nexport default function Parent({\n children,\n ...p\n}: ParentProps): JSX.Element | null {\n const Child = children\n return Child !== undefined ? <Child {...p} /> : null\n}\n","import React, { type ForwardRefRenderFunction, type JSX } from 'react';\nimport type { BaseInputComponentProps } from '#typings/index'\nimport Parent from './Parent'\n\nexport type BaseInputProps = BaseInputComponentProps &\n Omit<JSX.IntrinsicElements['input'], 'children' | 'pattern'> &\n Omit<JSX.IntrinsicElements['textarea'], 'children' | 'pattern'>\n\nconst BaseInput: ForwardRefRenderFunction<any, BaseInputProps> = (\n props,\n ref\n) => {\n const { children, ...p } = props\n const input =\n props.type === 'textarea' ? (\n <textarea ref={ref} {...p} />\n ) : (\n <input ref={ref} {...p} />\n )\n return children ? (\n <Parent parentRef={ref} {...p}>\n {children}\n </Parent>\n ) : (\n input\n )\n}\n\nexport default React.forwardRef(BaseInput)\n","import BaseInput from '#components/utils/BaseInput'\nimport type { BaseInputComponentProps } from '#typings'\n\nimport type { JSX } from \"react\";\n\ntype Props = BaseInputComponentProps &\n JSX.IntrinsicElements['input'] &\n JSX.IntrinsicElements['textarea']\n\nexport function MetadataInput(props: Props): JSX.Element {\n return <BaseInput data-metadata={true} {...props} />\n}\n\nexport default MetadataInput\n","import type { ReactNode, JSX } from \"react\"\nimport Parent from \"#components/utils/Parent\"\nimport type { ChildrenFunction } from \"#typings/index\"\nimport isFunction from \"lodash-es/isFunction\"\n\ninterface ChildrenProps extends Omit<Props, \"children\"> {}\n\ninterface Props\n extends Omit<JSX.IntrinsicElements[\"button\"], \"children\" | \"ref\"> {\n children?: ChildrenFunction<ChildrenProps>\n label?: string | ReactNode\n}\n\nexport function SubmitButton(props: Props): JSX.Element {\n const { children, label = \"Submit\", ...p } = props\n const parentProps = {\n ...p,\n label,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <button type=\"submit\" {...p}>\n {isFunction(label) ? label() : label}\n </button>\n )\n}\n\nexport default SubmitButton\n","import { createContext } from 'react'\nimport type { Address } from '@commercelayer/sdk'\n\nexport interface InitialAddressContext {\n address: Address | undefined\n}\n\nconst initial: InitialAddressContext = {\n address: undefined\n}\n\nconst AddressChildrenContext = createContext<InitialAddressContext>(initial)\n\nexport default AddressChildrenContext\n","import type {\n SetCustomerErrors,\n deleteCustomerAddress,\n CustomerState,\n getCustomerPaymentSources,\n setCustomerEmail,\n TCustomerAddress,\n getCustomerAddresses,\n getCustomerOrders,\n getCustomerSubscriptions,\n setResourceTrigger\n} from '#reducers/CustomerReducer'\nimport { createContext } from 'react'\n\nexport type InitialCustomerContext = Partial<\n {\n saveCustomerUser: (customerEmail: string) => Promise<void>\n setCustomerErrors: SetCustomerErrors\n setCustomerEmail: typeof setCustomerEmail\n getCustomerPaymentSources: typeof getCustomerPaymentSources\n deleteCustomerAddress: typeof deleteCustomerAddress\n getCustomerAddresses: typeof getCustomerAddresses\n createCustomerAddress: (address: TCustomerAddress) => Promise<void>\n setResourceTrigger: typeof setResourceTrigger\n getCustomerOrders: (\n props: Partial<Parameters<typeof getCustomerOrders>[0]>\n ) => Promise<void>\n getCustomerSubscriptions: (\n props: Partial<Parameters<typeof getCustomerSubscriptions>[0]>\n ) => Promise<void>\n reloadCustomerAddresses: () => Promise<void>\n } & CustomerState\n>\n\nexport const defaultCustomerContext = {}\n\nconst CustomerContext = createContext<InitialCustomerContext>(\n defaultCustomerContext\n)\n\nexport default CustomerContext\n","import { createContext } from 'react'\nimport type { BillingAddressState } from '#reducers/BillingAddressReducer'\n\ntype DefaultContext = {\n setBillingAddress?: (\n id: string,\n options?: {\n customerAddressId: string\n }\n ) => Promise<void>\n} & BillingAddressState\n\nexport const defaultBillingAddressContext = {}\n\nconst BillingAddressContext = createContext<DefaultContext>(\n defaultBillingAddressContext\n)\n\nexport default BillingAddressContext\n","import { createContext } from 'react'\nimport type { ShippingAddressState } from '#reducers/ShippingAddressReducer'\n\ntype DefaultContext = {\n setShippingAddress?: (\n id: string,\n options?: {\n customerAddressId: string\n }\n ) => Promise<void>\n} & ShippingAddressState\n\nexport const defaultShippingAddressContext = {}\n\nconst ShippingAddressContext = createContext<DefaultContext>(\n defaultShippingAddressContext\n)\n\nexport default ShippingAddressContext\n","import { useContext, useState, useEffect, type JSX } from \"react\"\nimport AddressChildrenContext from \"#context/AddressChildrenContext\"\nimport CustomerContext from \"#context/CustomerContext\"\nimport BillingAddressContext from \"#context/BillingAddressContext\"\nimport ShippingAddressContext from \"#context/ShippingAddressContext\"\nimport type { Address as AddressType } from \"@commercelayer/sdk\"\nimport isEmpty from \"lodash-es/isEmpty\"\nimport AddressContext from \"#context/AddressContext\"\nimport OrderContext from \"#context/OrderContext\"\nimport AddressCardsTemplate, {\n type AddressCardsTemplateChildren,\n type CustomerAddress,\n type HandleSelect,\n} from \"#components/utils/AddressCardsTemplate\"\nimport type { DefaultChildrenType } from \"#typings/globals\"\n\ninterface Props\n extends Omit<JSX.IntrinsicElements[\"div\"], \"children\" | \"onSelect\"> {\n children: DefaultChildrenType | AddressCardsTemplateChildren\n selectedClassName?: string\n disabledClassName?: string\n onSelect?: (address: AddressType) => void\n addresses?: AddressType[]\n deselect?: boolean\n}\n\n/**\n * The Address component is aimed to read from active context the list of available addresses to generate for each of them a suitable and interactive wrapper ready to deal with addresses data.\n *\n * It accept:\n * - a `selectedClassName` prop to define the className of selected generated address wrapper.\n * - a `disabledClassName` prop to define the className of disabled generated address wrapper.\n * - an `onSelect` prop to define a custom method triggered when an address wrapper is clicked.\n * - an `addresses` prop to define a list of addresses to be used instead of the ones available from active context.\n * - a `deselect` prop to define if the current address is deselected through a custom logic.\n *\n * <span title='Requirements' type='warning'>\n * Must be a child of the `<AddressesContainer>` component.\n * </span>\n * <span title='Children' type='info'>\n * `<AddressField>`,\n * </span>\n */\nexport function Address(props: Props): JSX.Element {\n const {\n children,\n className,\n selectedClassName = \"\",\n disabledClassName = \"\",\n onSelect,\n addresses = [],\n deselect = false,\n ...p\n } = props\n const { addresses: addressesContext } = useContext(CustomerContext)\n const { setBillingAddress, billingCustomerAddressId } = useContext(\n BillingAddressContext,\n )\n const { setShippingAddress, shippingCustomerAddressId } = useContext(\n ShippingAddressContext,\n )\n const { shipToDifferentAddress, billingAddressId, shippingAddressId } =\n useContext(AddressContext)\n const { order } = useContext(OrderContext)\n const [selected, setSelected] = useState<null | number | undefined>(null)\n const items = !isEmpty(addresses)\n ? addresses\n : (addressesContext && addressesContext) || []\n useEffect(() => {\n if (items && !deselect) {\n items.forEach((address, k) => {\n if (billingCustomerAddressId) {\n const preselected = address.reference === billingCustomerAddressId\n if (preselected && selected === null) {\n setSelected(k)\n }\n }\n if (\n !billingAddressId &&\n k === selected &&\n setBillingAddress &&\n address.reference != null\n ) {\n setBillingAddress(address.id, {\n customerAddressId: address.reference,\n })\n }\n if (shippingCustomerAddressId) {\n const preselected = address.reference === shippingCustomerAddressId\n preselected && selected === null && setSelected(k)\n }\n if (\n !shippingAddressId &&\n k === selected &&\n setShippingAddress &&\n address.reference != null\n ) {\n setShippingAddress(address.id, {\n customerAddressId: address.reference,\n })\n }\n })\n }\n if (deselect) {\n const disabledSaveButton = async (): Promise<void> => {\n setBillingAddress && (await setBillingAddress(\"\"))\n setShippingAddress && (await setShippingAddress(\"\"))\n }\n disabledSaveButton()\n }\n }, [\n deselect,\n billingCustomerAddressId,\n shippingCustomerAddressId,\n addressesContext,\n shipToDifferentAddress,\n ])\n const handleSelect: HandleSelect = async (\n k,\n addressId,\n customerAddressId,\n disabled,\n address,\n ) => {\n !disabled && setSelected(k)\n setBillingAddress &&\n (await setBillingAddress(addressId, { customerAddressId }))\n !disabled &&\n setShippingAddress &&\n (await setShippingAddress(addressId, { customerAddressId }))\n if (onSelect) onSelect(address)\n }\n const countryLock = order?.shipping_country_code_lock\n const components =\n typeof children === \"function\"\n ? []\n : items\n .filter((address) => {\n if (\n setShippingAddress &&\n countryLock &&\n countryLock !== address.country_code\n ) {\n return false\n }\n return true\n })\n .map((address, k) => {\n const addressProps = {\n address,\n }\n const disabled =\n (setShippingAddress &&\n countryLock &&\n countryLock !== address.country_code) ||\n false\n const selectedClass = deselect ? \"\" : selectedClassName\n const addressSelectedClass =\n selected === k ? `${className || \"\"} ${selectedClass}` : className\n const customerAddressId: string = address?.reference || \"\"\n const finalClassName = disabled\n ? `${className || \"\"} ${disabledClassName}`\n : addressSelectedClass\n return (\n <AddressChildrenContext.Provider key={k} value={addressProps}>\n <div\n className={finalClassName}\n onClick={() => {\n handleSelect(\n k,\n address.id,\n customerAddressId,\n disabled,\n address,\n )\n }}\n data-disabled={disabled}\n {...p}\n >\n {children}\n </div>\n </AddressChildrenContext.Provider>\n )\n })\n const parentProps = {\n customerAddresses: items as CustomerAddress[],\n selected,\n handleSelect,\n countryLock,\n ...props,\n }\n return typeof children === \"function\" ? (\n <AddressCardsTemplate {...parentProps}>{children}</AddressCardsTemplate>\n ) : (\n <>{components}</>\n )\n}\n\nexport default Address\n","import type { BaseReducer } from '#typings'\n\nconst baseReducer: BaseReducer = (state, action, actionTypes) => {\n const actions = actionTypes\n if (actions.includes(action.type)) {\n const data = action.payload\n state = { ...state, ...data }\n }\n return state\n}\n\nexport default baseReducer\n","import { useState, useEffect } from 'react'\nimport { getDomain } from './getDomain'\nimport getSdk from './getSdk'\nimport {\n type DefaultMfeConfig,\n getMfeConfig\n} from '@commercelayer/organization-config'\nimport { jwt } from './jwt'\n\ninterface ReturnObj {\n organization: string\n domain: string\n}\n\nexport function getOrganizationSlug<E extends string>(endpoint: E): ReturnObj {\n const org = {\n organization: '',\n domain: 'commercelayer.io'\n }\n const { domain, slug } = getDomain(endpoint)\n return {\n organization: slug,\n domain: domain || org.domain\n }\n}\n\nexport interface OrganizationConfig {\n accessToken: string\n endpoint: string\n params: Parameters<typeof getMfeConfig>[0]['params']\n}\n\n/**\n * Get organization config from Commerce Layer\n *\n */\nexport async function getOrganizationConfig(\n config: OrganizationConfig\n): Promise<DefaultMfeConfig | null> {\n const { market } = jwt(config.accessToken)\n const sdk = getSdk(config)\n const organization = await sdk.organization.retrieve({\n fields: {\n organizations: ['id', 'config']\n }\n })\n return getMfeConfig({\n jsonConfig: organization.config ?? {},\n market: `market:id:${market.id.join(',')}`,\n params: config.params\n })\n}\n\nexport function useOrganizationConfig({\n accessToken,\n endpoint,\n params\n}: Partial<OrganizationConfig>): DefaultMfeConfig | null {\n const [organizationConfig, setOrganizationConfig] =\n useState<DefaultMfeConfig | null>(null)\n useEffect(() => {\n if (accessToken == null || endpoint == null) return\n getOrganizationConfig({\n accessToken,\n endpoint,\n params\n }).then((config) => {\n setOrganizationConfig(config)\n })\n }, [accessToken, endpoint])\n return organizationConfig\n}\n","export function getDomain(endpoint: string): { slug: string; domain: string } {\n const url = new URL(endpoint)\n const [slug] = url.hostname.split('.')\n const domain = url.hostname.replace(`${slug ?? ''}.`, '')\n return {\n domain,\n slug: slug ?? ''\n }\n}\n","import { jwtDecode } from 'jwt-decode'\n\ninterface JWT {\n application: {\n id: string\n kind: 'sales_channel' | 'integration'\n public: boolean\n }\n exp: number\n market: {\n id: string[]\n price_list_id: string\n stock_location_ids: string[]\n geocoder_id: null | string\n allows_external_prices: boolean\n }\n organization: {\n id: string\n slug: string\n }\n owner: { id: string; type: 'Customer' }\n rand: number\n test: boolean\n}\n\nexport function jwt(accessToken: string): JWT {\n return jwtDecode<JWT>(accessToken)\n}\n","import { getOrganizationSlug } from './organization'\nimport Sdk from '@commercelayer/sdk'\nimport type { CommerceLayerConfig } from '#context/CommerceLayerContext'\n\nexport default function getSdk({\n endpoint,\n accessToken\n}: CommerceLayerConfig): ReturnType<typeof Sdk> {\n if (accessToken == null || endpoint == null)\n throw new Error('accessToken and endpoint are required parameters')\n const org = getOrganizationSlug(endpoint)\n return Sdk({\n accessToken,\n ...org\n })\n}\n","// TODO: Remove lodash\nimport isEmpty from \"lodash-es/isEmpty\"\nimport isString from \"lodash-es/isString\"\nimport without from \"lodash-es/without\"\nimport keys from \"lodash-es/keys\"\nimport map from \"lodash-es/map\"\nimport type { BaseState } from \"#typings/index\"\nimport type { BaseError } from \"#typings/errors\"\nimport { type AddressField, addressFields } from \"#reducers/AddressReducer\"\nimport type { AddressCreate } from \"@commercelayer/sdk\"\nimport type { AddressInputName } from \"#typings\"\nimport type { TResourceError } from \"#components/errors/Errors\"\n\nconst EMAIL_PATTERN =\n // eslint-disable-next-line no-useless-escape\n /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\n\ntype FormField = HTMLInputElement | HTMLSelectElement\n\nexport type ValidateFormFields = <R extends string[]>(\n fields: HTMLFormControlsCollection,\n required: R,\n resourceType: TResourceError,\n) => {\n errors: BaseError[]\n values: BaseState\n}\n\nexport type ValidateValue = <\n V extends string | boolean,\n N extends string,\n T extends string,\n B extends TResourceError,\n>(\n val: V,\n name: N,\n type: T,\n resource: B,\n) => BaseError | Record<string, any>\n\nexport const validateValue: ValidateValue = (val, name, type, resource) => {\n if (!val) {\n return {\n field: name,\n code: \"VALIDATION_ERROR\",\n message: `${name} - is required`,\n resource,\n }\n }\n if (type === \"email\" && isString(val) && !val.match(EMAIL_PATTERN)) {\n return {\n field: name,\n code: \"VALIDATION_ERROR\",\n message: `please enter a valid format`,\n resource,\n }\n }\n return {}\n}\n\nconst validateFormFields: ValidateFormFields = (\n fields,\n required,\n resourceType,\n) => {\n const errors: BaseError[] = []\n let values = { metadata: {} }\n map(fields, (v: FormField) => {\n const isTick = \"checked\" in v\n const val = isTick || (v.value === \"on\" ? false : v.value)\n const attrName = v.getAttribute(\"name\")\n if ((attrName && required.includes(attrName)) || v.required) {\n const error = validateValue(val, v.name, v.type, resourceType)\n if (!isEmpty(error)) {\n errors.push(error as BaseError)\n }\n values = { ...values, [`${v.name}`]: val }\n }\n if (v.getAttribute(\"name\")) {\n const isMetadata = !!v.getAttribute(\"data-metadata\")\n values = isMetadata\n ? {\n ...values,\n metadata: { ...values.metadata, [`${v.name}`]: val },\n }\n : { ...values, [`${v.name}`]: val }\n }\n })\n return { errors, values }\n}\n\nexport function fieldsExist(\n address: AddressCreate,\n schema: Array<AddressField | string> = addressFields,\n): boolean {\n if (!address.business) {\n const required = without(schema, \"line_2\", \"company\", \"state_code\")\n const validAddress = keys(address).filter((k) => required.includes(k))\n return required.length > validAddress.length\n } else {\n const required = without(\n schema,\n \"first_name\",\n \"last_name\",\n \"line_2\",\n \"state_code\",\n )\n const validAddress = keys(address).filter((k) => required.includes(k))\n return required.length > validAddress.length\n }\n}\n\ntype CustomerOptionalField =\n | Extract<\n AddressInputName,\n | \"billing_address_line_2\"\n | \"billing_address_company\"\n | \"shipping_address_line_2\"\n | \"shipping_address_company\"\n >\n | \"company\"\n | \"line_2\"\n\ntype BusinessOptionalField =\n | Extract<\n AddressInputName,\n | \"billing_address_first_name\"\n | \"billing_address_last_name\"\n | \"shipping_address_first_name\"\n | \"shipping_address_last_name\"\n >\n | \"first_name\"\n | \"last_name\"\n\nconst businessOptionalFields: BusinessOptionalField[] = [\n \"billing_address_first_name\",\n \"billing_address_last_name\",\n \"shipping_address_first_name\",\n \"shipping_address_last_name\",\n \"first_name\",\n \"last_name\",\n]\n\nconst customerOptionalFields: CustomerOptionalField[] = [\n \"billing_address_company\",\n \"shipping_address_company\",\n \"company\",\n]\n\nexport function businessMandatoryField(\n fieldName: AddressInputName,\n isBusiness?: boolean,\n): boolean {\n if (\n isBusiness &&\n businessOptionalFields.includes(fieldName as BusinessOptionalField)\n ) {\n return false\n }\n if (\n !isBusiness &&\n customerOptionalFields.includes(fieldName as CustomerOptionalField)\n ) {\n return false\n }\n return true\n}\n\nexport default validateFormFields\n","/* eslint-disable @typescript-eslint/no-dynamic-delete */\n/* eslint-disable @typescript-eslint/naming-convention */\nimport isEmpty from \"lodash-es/isEmpty\"\nimport { fieldsExist } from \"#utils/validateFormFields\"\nimport type { BaseError } from \"#typings/errors\"\nimport { type AddressField, addressFields } from \"#reducers/AddressReducer\"\nimport type {\n OrderUpdate,\n Order,\n CommerceLayerClient,\n LineItem,\n Address,\n AddressCreate,\n} from \"@commercelayer/sdk\"\nimport type { TCustomerAddress } from \"#reducers/CustomerReducer\"\n\ninterface BillingAddressControllerProps {\n billing_address?: AddressCreate\n billingAddressId?: string\n errors?: BaseError[]\n requiresBillingInfo?: boolean | null\n invertAddresses?: boolean\n shippingDisable?: boolean\n shipToDifferentAddress?: boolean\n requiredMetadataFields?: string[]\n}\n\nexport function billingAddressController({\n billing_address,\n billingAddressId,\n errors,\n requiresBillingInfo = false,\n invertAddresses = false,\n shipToDifferentAddress,\n shippingDisable,\n requiredMetadataFields,\n}: BillingAddressControllerProps): boolean {\n let billingDisable = invertAddresses\n ? !!(!shippingDisable && shipToDifferentAddress)\n : !isEmpty(errors) || isEmpty(billing_address)\n if (isEmpty(errors) && !isEmpty(billing_address)) {\n let formFields: Array<AddressField | string> = [...addressFields]\n if (requiredMetadataFields != null && requiredMetadataFields.length > 0)\n formFields = [...formFields, ...requiredMetadataFields]\n if (invertAddresses) {\n billingDisable = !!(\n billing_address && fieldsExist(billing_address, formFields)\n )\n } else {\n if (requiresBillingInfo) formFields = [...formFields, \"billing_info\"]\n billingDisable = !!(\n billing_address && fieldsExist(billing_address, formFields)\n )\n }\n }\n if (\n billingDisable &&\n !isEmpty(billingAddressId) &&\n isEmpty(billing_address)\n ) {\n billingDisable = false\n }\n return billingDisable\n}\n\ninterface ShippingAddressControllerProps {\n billingDisable?: boolean\n errors?: BaseError[]\n requiresBillingInfo?: boolean | null\n shipToDifferentAddress?: boolean\n shipping_address?: AddressCreate\n shippingAddressId?: string\n invertAddresses?: boolean\n requiredMetadataFields?: string[]\n}\n\nexport function shippingAddressController({\n billingDisable,\n errors,\n shipToDifferentAddress,\n shipping_address,\n shippingAddressId,\n invertAddresses = false,\n requiresBillingInfo = false,\n requiredMetadataFields,\n}: ShippingAddressControllerProps): boolean {\n let shippingDisable = invertAddresses\n ? !isEmpty(errors) || isEmpty(shipping_address)\n : !!(!billingDisable && shipToDifferentAddress)\n\n if (isEmpty(errors) && !isEmpty(shipping_address)) {\n let formField: Array<AddressField | string> = [...addressFields]\n if (requiredMetadataFields != null && requiredMetadataFields.length > 0)\n formField = [...formField, ...requiredMetadataFields]\n if (invertAddresses) {\n if (requiresBillingInfo) formField = [...formField, \"billing_info\"]\n shippingDisable = !!(\n shipping_address && fieldsExist(shipping_address, formField)\n )\n } else if (shipToDifferentAddress) {\n delete shipping_address?.billing_info\n shippingDisable = !!(\n shipping_address && fieldsExist(shipping_address, formField)\n )\n }\n }\n if (\n shippingDisable &&\n !isEmpty(shippingAddressId) &&\n isEmpty(shipping_address)\n ) {\n shippingDisable = false\n }\n return shippingDisable\n}\n\ninterface CountryLockControllerProps {\n addresses?: Address[] | null\n billing_address?: TCustomerAddress\n billingAddressId?: string\n countryCodeLock?: string | null\n shipToDifferentAddress?: boolean\n shipping_address?: AddressCreate\n shippingAddressId?: string\n lineItems?: LineItem[] | null\n}\n\nexport function countryLockController({\n addresses,\n billing_address,\n billingAddressId,\n countryCodeLock,\n shipToDifferentAddress,\n shipping_address,\n shippingAddressId,\n lineItems,\n}: CountryLockControllerProps): boolean {\n const doNotShipItems = lineItems\n ?.filter(\n (lineItem) =>\n lineItem?.item?.type != null &&\n [\"skus\", \"bundles\"].includes(lineItem?.item?.type),\n )\n ?.every(\n (lineItem) =>\n // @ts-expect-error no type for do_not_ship on SDK\n lineItem?.item?.do_not_ship === true,\n )\n if (doNotShipItems) return false\n if (\n countryCodeLock &&\n !isEmpty(addresses) &&\n billingAddressId &&\n !shipToDifferentAddress\n ) {\n const addressLocked = addresses?.find(\n (a) =>\n (a?.id === billingAddressId || a?.reference === billingAddressId) &&\n a?.country_code !== countryCodeLock,\n )\n if (!isEmpty(addressLocked)) return true\n }\n if (countryCodeLock && !isEmpty(billing_address) && !shipToDifferentAddress) {\n return billing_address?.country_code !== countryCodeLock\n }\n if (countryCodeLock && !isEmpty(shipping_address) && shipToDifferentAddress) {\n return shipping_address?.country_code !== countryCodeLock\n }\n if (\n countryCodeLock &&\n !isEmpty(addresses) &&\n shippingAddressId &&\n shipToDifferentAddress\n ) {\n const addressLocked = addresses?.find(\n (a) =>\n (a?.id === shippingAddressId || a?.reference === shippingAddressId) &&\n a?.country_code !== countryCodeLock,\n )\n if (!isEmpty(addressLocked)) return true\n }\n return false\n}\n\ninterface InvertedAddressesHandlerParams {\n billingAddress?: AddressCreate\n billingAddressId?: string\n customerEmail?: string\n order: Order\n shipToDifferentAddress?: boolean\n shippingAddress?: AddressCreate\n shippingAddressId?: string\n sdk: CommerceLayerClient\n}\n\nexport async function invertedAddressesHandler({\n order,\n billingAddress,\n billingAddressId,\n customerEmail,\n shipToDifferentAddress,\n shippingAddress,\n shippingAddressId,\n sdk,\n}: InvertedAddressesHandlerParams): Promise<OrderUpdate | null> {\n const currentShippingAddressRef = order?.shipping_address?.reference\n const orderAttributes: OrderUpdate = {\n id: order?.id,\n _billing_address_clone_id: shippingAddressId,\n _shipping_address_clone_id: shippingAddressId,\n customer_email: customerEmail,\n }\n if (currentShippingAddressRef === shippingAddressId) {\n orderAttributes._billing_address_clone_id = order?.billing_address?.id\n orderAttributes._shipping_address_clone_id = order?.shipping_address?.id\n }\n if (\n shippingAddress != null &&\n Object.keys(shippingAddress).length > 0 &&\n !shippingAddressId\n ) {\n delete orderAttributes._billing_address_clone_id\n delete orderAttributes._shipping_address_clone_id\n orderAttributes._billing_address_same_as_shipping = true\n const hasMetadata = Object.keys(shippingAddress).filter((key) => {\n if (key.startsWith(\"metadata_\")) {\n return true\n }\n return false\n })\n if (hasMetadata?.length > 0) {\n hasMetadata.forEach((key) => {\n const metadataKey = key.replace(\"metadata_\", \"\")\n shippingAddress.metadata = {\n ...(shippingAddress.metadata || {}),\n // @ts-expect-error type mismatch\n [metadataKey]: shippingAddress[key],\n }\n // @ts-expect-error type mismatch\n delete shippingAddress[key]\n })\n }\n const address = await sdk.addresses.create(shippingAddress)\n orderAttributes.shipping_address = sdk.addresses.relationship(address.id)\n }\n if (shipToDifferentAddress) {\n delete orderAttributes._billing_address_same_as_shipping\n if (billingAddressId)\n orderAttributes._billing_address_clone_id = billingAddressId\n if (billingAddress != null && Object.keys(billingAddress).length > 0) {\n delete orderAttributes._billing_address_clone_id\n const hasMetadata = Object.keys(billingAddress).filter((key) => {\n if (key.startsWith(\"metadata_\")) {\n return true\n }\n return false\n })\n if (hasMetadata?.length > 0) {\n hasMetadata.forEach((key) => {\n const metadataKey = key.replace(\"metadata_\", \"\")\n billingAddress.metadata = {\n ...(billingAddress.metadata || {}),\n // @ts-expect-error type mismatch\n [metadataKey]: billingAddress[key],\n }\n // @ts-expect-error type mismatch\n delete billingAddress[key]\n })\n }\n const address = await sdk.addresses.create(billingAddress)\n orderAttributes.billing_address = sdk.addresses.relationship(address.id)\n }\n }\n return orderAttributes\n}\n\ninterface AddressControllerProps {\n billing_address?: AddressCreate\n billingAddressId?: string\n shipToDifferentAddress?: boolean\n shipping_address?: AddressCreate\n shippingAddressId?: string\n errors?: BaseError[]\n requiresBillingInfo?: boolean | null\n invertAddresses?: boolean\n requiredMetadataFields?: string[]\n}\n\nexport function addressesController({\n billing_address,\n billingAddressId,\n shipToDifferentAddress,\n shipping_address,\n shippingAddressId,\n errors,\n requiresBillingInfo,\n invertAddresses,\n requiredMetadataFields,\n}: AddressControllerProps): {\n billingDisable: boolean\n shippingDisable: boolean\n} {\n if (invertAddresses) {\n const shippingDisable = shippingAddressController({\n errors,\n shipToDifferentAddress,\n shipping_address,\n shippingAddressId,\n invertAddresses,\n requiresBillingInfo,\n requiredMetadataFields,\n })\n const billingDisable = billingAddressController({\n shippingDisable,\n billing_address,\n billingAddressId,\n errors,\n requiresBillingInfo,\n invertAddresses,\n requiredMetadataFields,\n })\n return {\n shippingDisable,\n billingDisable,\n }\n }\n const billingDisable = billingAddressController({\n billing_address,\n billingAddressId,\n errors,\n requiresBillingInfo,\n requiredMetadataFields,\n })\n const shippingDisable = shippingAddressController({\n billingDisable,\n errors,\n shipToDifferentAddress,\n shipping_address,\n shippingAddressId,\n requiredMetadataFields,\n })\n return {\n billingDisable,\n shippingDisable,\n }\n}\n\nexport function sanitizeMetadataFields(address: AddressCreate): AddressCreate {\n const hasMetadata = Object.keys(address).filter((key) => {\n if (key.startsWith(\"metadata_\")) {\n return true\n }\n return false\n })\n if (hasMetadata?.length > 0) {\n hasMetadata.forEach((key) => {\n const metadataKey = key.replace(\"metadata_\", \"\")\n address.metadata = {\n ...(address.metadata || {}),\n [metadataKey]: address[key as keyof AddressCreate],\n }\n delete address[key as keyof AddressCreate]\n })\n }\n return address\n}\n","/* eslint-disable @typescript-eslint/no-dynamic-delete */\nimport type { TCustomerAddress } from '#reducers/CustomerReducer'\n\ntype CombinedAddressType = TCustomerAddress | undefined\n\nexport function formCleaner(address: CombinedAddressType): CombinedAddressType {\n if (!address) {\n return address\n }\n Object.keys(address).forEach((key) => {\n const keyCleaned = key\n .replace('shipping_address_', '')\n .replace('billing_address_', '')\n const isNotCleaned =\n key.startsWith('shipping_address_') || key.startsWith('billing_address_')\n if (isNotCleaned) {\n address[keyCleaned] = address[key]\n delete address[key]\n }\n if (keyCleaned === 'save_to_customer_book') {\n delete address[keyCleaned]\n }\n })\n return address\n}\n","import baseReducer from \"#utils/baseReducer\"\nimport type { Dispatch } from \"react\"\nimport type { CodeErrorType, BaseError } from \"#typings/errors\"\nimport type { CommerceLayerConfig } from \"#context/CommerceLayerContext\"\nimport type { OrderUpdate, Address, Order } from \"@commercelayer/sdk\"\nimport getSdk from \"#utils/getSdk\"\nimport type { updateOrder } from \"./OrderReducer\"\nimport camelCase from \"lodash-es/camelCase\"\nimport type { TCustomerAddress } from \"./CustomerReducer\"\nimport type { TResourceError } from \"#components/errors/Errors\"\nimport {\n invertedAddressesHandler,\n sanitizeMetadataFields,\n} from \"#utils/addressesManager\"\nimport { formCleaner } from \"#utils/formCleaner\"\nimport type { AddressValuesKeys } from \"#context/BillingAddressFormContext\"\nimport type { AddressInputName } from \"#typings/index\"\n\n// TODO: Move in the future\nexport type CustomFieldMessageError = (props: {\n field: Extract<AddressValuesKeys, AddressInputName> | string\n code?: Extract<CodeErrorType, \"EMPTY_ERROR\" | \"VALIDATION_ERROR\"> | undefined\n message?: string | undefined\n value: string\n values?: Record<string, any>\n}) =>\n | string\n | null\n | Array<{\n field: Extract<AddressValuesKeys, AddressInputName> | string\n value: string\n isValid: boolean\n message?: string\n }>\n\nexport type AddressActionType =\n | \"setErrors\"\n | \"setAddress\"\n | \"setShipToDifferentAddress\"\n | \"setCloneAddress\"\n | \"cleanup\"\n\nexport type AddressField =\n | \"city\"\n | \"company\"\n | \"country_code\"\n | \"first_name\"\n | \"last_name\"\n | \"line_1\"\n | \"line_2\"\n | \"phone\"\n | \"state_code\"\n | \"zip_code\"\n | \"billing_info\"\n\nexport type AddressFieldView = AddressField | \"full_address\" | \"full_name\"\n\nexport const addressFields: AddressField[] = [\n \"city\",\n \"company\",\n \"country_code\",\n \"first_name\",\n \"last_name\",\n \"line_1\",\n \"line_2\",\n \"phone\",\n \"state_code\",\n \"zip_code\",\n]\n\nexport type AddressResource = Extract<\n TResourceError,\n \"billing_address\" | \"shipping_address\"\n>\n\nexport type AddressSchema = Omit<\n Address,\n \"created_at\" | \"updated_at\" | \"id\" | \"type\"\n>\n\nexport interface AddressActionPayload {\n errors: BaseError[]\n billing_address: TCustomerAddress\n shipping_address: TCustomerAddress\n shipToDifferentAddress: boolean\n billingAddressId: string\n shippingAddressId: string\n isBusiness: boolean\n invertAddresses: boolean\n}\n\nexport type AddressState = Partial<AddressActionPayload>\n\nexport interface AddressAction {\n type: AddressActionType\n payload: Partial<AddressActionPayload>\n}\n\nexport const addressInitialState: AddressState = {\n errors: [],\n}\n\nexport type SetAddressErrors = <V extends BaseError[]>(args: {\n errors: V\n resource: Extract<TResourceError, \"billing_address\" | \"shipping_address\">\n dispatch?: Dispatch<AddressAction>\n currentErrors?: V\n}) => void\n\nexport interface SetAddressParams<V extends TCustomerAddress> {\n values: V\n resource: AddressResource\n dispatch?: Dispatch<AddressAction>\n}\n\nexport const setAddressErrors: SetAddressErrors = ({\n errors,\n dispatch,\n currentErrors = [],\n resource,\n}) => {\n const billingErrors =\n resource === \"billing_address\"\n ? errors.filter((e) => e.resource === resource)\n : currentErrors.filter((e) => e.resource === \"billing_address\")\n const shippingErrors =\n resource === \"shipping_address\"\n ? errors.filter((e) => e.resource === resource)\n : currentErrors.filter((e) => e.resource === \"shipping_address\")\n const finalErrors = [...billingErrors, ...shippingErrors]\n if (dispatch)\n dispatch({\n type: \"setErrors\",\n payload: {\n errors: finalErrors,\n },\n })\n}\n\nexport function setAddress<V extends TCustomerAddress>({\n values,\n resource,\n dispatch,\n}: SetAddressParams<V>): void {\n const payload = {\n [`${resource}`]: {\n ...formCleaner(values),\n },\n }\n if (dispatch)\n dispatch({\n type: \"setAddress\",\n payload,\n })\n}\n\ntype SetCloneAddress = (\n id: string,\n resource: AddressResource,\n dispatch: Dispatch<AddressAction>,\n) => void\n\nexport const setCloneAddress: SetCloneAddress = (id, resource, dispatch) => {\n dispatch({\n type: \"setCloneAddress\",\n payload: {\n [`${camelCase(resource)}Id`]: id,\n },\n })\n}\n\nexport interface ICustomerAddress {\n id: string | undefined\n resource: AddressResource\n}\n\ninterface TSaveAddressesParams {\n orderId?: string\n order?: Order | null\n updateOrder?: typeof updateOrder\n config: CommerceLayerConfig\n state: AddressState\n dispatch: Dispatch<AddressAction>\n getCustomerAddresses?: () => Promise<void>\n customerEmail?: string\n customerAddress?: ICustomerAddress\n}\n\nexport async function saveAddresses({\n config,\n updateOrder,\n order,\n state,\n customerEmail,\n customerAddress,\n}: TSaveAddressesParams): Promise<{\n success: boolean\n order?: Order\n error?: unknown\n}> {\n const {\n shipToDifferentAddress,\n invertAddresses,\n billing_address: billingAddressForm,\n shipping_address: shippingAddressForm,\n billingAddressId,\n shippingAddressId,\n } = state\n try {\n const sdk = getSdk(config)\n const billingAddress = formCleaner(billingAddressForm)\n const shippingAddress = formCleaner(shippingAddressForm)\n if (order) {\n let orderAttributes: OrderUpdate | null = null\n const billingAddressCloneId =\n customerAddress?.resource === \"billing_address\"\n ? customerAddress?.id\n : billingAddressId\n const shippingAddressCloneId =\n customerAddress?.resource === \"shipping_address\"\n ? customerAddress?.id\n : shippingAddressId\n if (invertAddresses) {\n orderAttributes = await invertedAddressesHandler({\n billingAddress,\n billingAddressId: billingAddressCloneId,\n customerEmail,\n order,\n shipToDifferentAddress,\n shippingAddress,\n shippingAddressId: shippingAddressCloneId,\n sdk,\n })\n } else {\n const doNotShipItems = order?.line_items?.every(\n // @ts-expect-error no type for do_not_ship on SDK\n (lineItem) => lineItem?.item?.do_not_ship === true,\n )\n const currentBillingAddressRef = order?.billing_address?.reference\n orderAttributes = {\n id: order?.id,\n _billing_address_clone_id: billingAddressCloneId,\n _shipping_address_clone_id: billingAddressCloneId,\n customer_email: customerEmail,\n }\n if (currentBillingAddressRef === billingAddressCloneId) {\n orderAttributes._billing_address_clone_id = order?.billing_address?.id\n orderAttributes._shipping_address_clone_id =\n order?.shipping_address?.id\n }\n if (\n billingAddress != null &&\n Object.keys(billingAddress).length > 0 &&\n !billingAddressCloneId\n ) {\n delete orderAttributes._billing_address_clone_id\n delete orderAttributes._shipping_address_clone_id\n if (!doNotShipItems) {\n orderAttributes._shipping_address_same_as_billing = true\n }\n const billingAddressWithMeta = sanitizeMetadataFields(billingAddress)\n const address = await sdk.addresses.create(billingAddressWithMeta)\n orderAttributes.billing_address = sdk.addresses.relationship(\n address.id,\n )\n }\n if (shipToDifferentAddress) {\n delete orderAttributes._shipping_address_same_as_billing\n if (shippingAddressCloneId)\n orderAttributes._shipping_address_clone_id = shippingAddressCloneId\n if (\n shippingAddress != null &&\n Object.keys(shippingAddress).length > 0\n ) {\n delete orderAttributes._shipping_address_clone_id\n const shippingAddressWithMeta =\n sanitizeMetadataFields(shippingAddress)\n const address = await sdk.addresses.create(shippingAddressWithMeta)\n orderAttributes.shipping_address = sdk.addresses.relationship(\n address.id,\n )\n }\n }\n }\n if (orderAttributes != null && updateOrder) {\n const orderUpdated = await updateOrder({\n id: order.id,\n attributes: orderAttributes,\n })\n return { success: true, order: orderUpdated?.order }\n }\n }\n return { success: false }\n } catch (error) {\n console.error(error)\n return { success: false, error }\n }\n}\n\nconst type: AddressActionType[] = [\n \"setErrors\",\n \"setAddress\",\n \"setShipToDifferentAddress\",\n \"setCloneAddress\",\n \"cleanup\",\n]\n\nconst addressReducer = (\n state: AddressState,\n reducer: AddressAction,\n): AddressState =>\n baseReducer<AddressState, AddressAction, AddressActionType[]>(\n state,\n reducer,\n type,\n )\n\nexport default addressReducer\n","import { createContext } from 'react'\nimport {\n type AddressState,\n setAddress,\n type AddressResource,\n type saveAddresses,\n type ICustomerAddress\n} from '#reducers/AddressReducer'\nimport type { BaseError } from '#typings/errors'\n\ntype DefaultContext = {\n saveAddresses?: (params: {\n customerEmail?: string\n customerAddress?: ICustomerAddress\n }) => ReturnType<typeof saveAddresses>\n setCloneAddress: (id: string, resource: AddressResource) => void\n setAddress: typeof setAddress\n setAddressErrors: (errors: BaseError[], resource: AddressResource) => void\n} & AddressState\n\nexport const defaultAddressContext = {\n setCloneAddress: () => {},\n setAddress,\n setAddressErrors: () => {}\n}\n\nconst AddressesContext = createContext<DefaultContext>(defaultAddressContext)\n\nexport default AddressesContext\n","import { createContext } from \"react\"\nimport type { Order } from \"@commercelayer/sdk\"\nimport {\n type OrderState,\n type SaveAddressToCustomerAddressBook,\n createOrder,\n paymentSourceRequest,\n setGiftCardOrCouponCode,\n removeGiftCardOrCouponCode,\n saveAddressToCustomerAddressBook,\n addResourceToInclude,\n updateOrder,\n type getOrderContext,\n type addToCart,\n} from \"#reducers/OrderReducer\"\nimport type { BaseError } from \"#typings/errors\"\n\ninterface DefaultContext extends OrderState {\n createOrder: typeof createOrder\n addToCart?: typeof addToCart\n setOrderErrors: (errors: BaseError[]) => void\n setGiftCardOrCouponCode?: typeof setGiftCardOrCouponCode\n removeGiftCardOrCouponCode?: typeof removeGiftCardOrCouponCode\n saveAddressToCustomerAddressBook: SaveAddressToCustomerAddressBook\n addResourceToInclude: typeof addResourceToInclude\n getOrder: getOrderContext\n updateOrder: typeof updateOrder\n setOrder: (order: Order) => void\n paymentSourceRequest: typeof paymentSourceRequest\n}\n\nexport const defaultOrderContext = {\n createOrder,\n setOrderErrors: () => {},\n setOrder: () => {},\n setGiftCardOrCouponCode,\n removeGiftCardOrCouponCode,\n saveAddressToCustomerAddressBook,\n addResourceToInclude,\n getOrder: async () => undefined,\n updateOrder,\n paymentSourceRequest,\n}\n\nconst OrderContext = createContext<DefaultContext>(defaultOrderContext)\n\nexport default OrderContext\n","export type GetLocalOrder = (key: string) => string | null\n\nexport const getLocalOrder: GetLocalOrder = (key) => {\n return localStorage.getItem(key)\n}\n\nexport type SetLocalOrder = (key: string, value: string) => void\n\nexport const setLocalOrder: SetLocalOrder = (key, value) => {\n localStorage.setItem(key, value)\n}\n\nexport type DeleteLocalOrder = (key: string) => void\n\nexport const deleteLocalOrder: DeleteLocalOrder = (key) => {\n localStorage.removeItem(key)\n}\n\nexport const getSavePaymentSourceToCustomerWallet = (): boolean => {\n return (\n localStorage.getItem('_save_payment_source_to_customer_wallet') === 'true'\n )\n}\n\nexport const getSaveBillingAddressToAddressBook = (): boolean => {\n return (\n localStorage.getItem('_save_billing_address_to_customer_address_book') ===\n 'true'\n )\n}\n\nexport const getSaveShippingAddressToAddressBook = (): boolean => {\n return (\n localStorage.getItem('_save_shipping_address_to_customer_address_book') ===\n 'true'\n )\n}\n\nexport type CustomerOrderParams =\n | '_save_payment_source_to_customer_wallet'\n | '_save_billing_address_to_customer_address_book'\n | '_save_shipping_address_to_customer_address_book'\n\nexport function setCustomerOrderParam<T extends CustomerOrderParams>(\n key: T,\n value: string\n): void {\n setLocalOrder(key, value)\n}\n","import type { TResourceError } from \"#components/errors/Errors\"\nimport type { BaseError, TAPIError } from \"#typings/errors\"\nimport differenceBy from \"lodash-es/differenceBy\"\nimport type { Dispatch } from \"react\"\n\ninterface GetErrorsParams {\n error: TAPIError\n resource: TResourceError\n field?: string\n attributes?: Record<string, unknown>\n}\n\nexport default function getErrors({\n error,\n resource,\n field,\n attributes,\n}: GetErrorsParams): BaseError[] {\n return error?.errors?.map((e: any) => {\n return {\n ...e,\n resource,\n ...(field != null && field !== \"\" && { field }),\n ...(attributes != null && attributes),\n }\n })\n}\n\ninterface SetErrorsArgs<D> {\n currentErrors?: BaseError[]\n newErrors?: BaseError[]\n dispatch?: D\n filterBy?: keyof BaseError\n}\n\nexport function setErrors<D extends Dispatch<any>>({\n currentErrors = [],\n newErrors = [],\n dispatch,\n filterBy = \"code\",\n}: SetErrorsArgs<D>): BaseError[] {\n const errorsDifference = differenceBy(currentErrors, newErrors, filterBy)\n const mergeErrors = currentErrors?.length === 0 ? newErrors : errorsDifference\n const errors = [...(currentErrors || []), ...mergeErrors]\n if (dispatch != null) {\n dispatch({\n type: \"setErrors\",\n payload: {\n errors,\n },\n })\n }\n return errors\n}\n","type TEvent = 'open-cart'\n\nfunction subscribe(\n eventName: TEvent,\n listener: EventListenerOrEventListenerObject\n): void {\n document.addEventListener(eventName, listener)\n}\n\nfunction unsubscribe(\n eventName: TEvent,\n listener: EventListenerOrEventListenerObject\n): void {\n document.removeEventListener(eventName, listener)\n}\n\nfunction publish(eventName: TEvent, data?: any): void {\n const event = new CustomEvent(eventName, { detail: data })\n document.dispatchEvent(event)\n}\n\nexport { publish, subscribe, unsubscribe }\n","type ApplicationType = 'checkout' | 'cart' | 'my-account' | 'identity'\n\ntype ApplicationTypeProps<T extends ApplicationType = ApplicationType> =\n T extends 'my-account'\n ? {\n applicationType: T\n orderId?: string\n modeType?: 'login' | 'signup'\n clientId?: string\n scope?: string\n returnUrl?: string\n resetPasswordUrl?: string\n }\n : T extends 'identity'\n ? {\n applicationType: T\n orderId?: string\n modeType: 'login' | 'signup'\n clientId: string\n scope: string\n returnUrl: string\n resetPasswordUrl?: string\n }\n : {\n applicationType: Omit<T, 'my-account' | 'identity'>\n orderId: string\n modeType?: 'login' | 'signup'\n clientId?: string\n scope?: string\n returnUrl?: string\n resetPasswordUrl?: string\n }\n\ninterface TArgs {\n accessToken: string\n slug: string\n domain: string\n customDomain?: string\n}\n\ntype Props = ApplicationTypeProps & TArgs\n\nexport function getApplicationLink({\n orderId,\n accessToken,\n slug,\n domain,\n applicationType,\n modeType,\n clientId,\n scope,\n returnUrl,\n resetPasswordUrl,\n customDomain\n}: Props): string {\n const env = domain === 'commercelayer.io' ? '' : 'stg.'\n const t =\n applicationType === 'identity' ? (modeType === 'login' ? '' : 'signup') : ''\n const c = clientId ? `&clientId=${clientId}` : ''\n const s = scope ? `&scope=${scope}` : ''\n const r = returnUrl ? `&returnUrl=${returnUrl}` : ''\n const p = resetPasswordUrl ? `&resetPasswordUrl=${resetPasswordUrl}` : ''\n const params = applicationType === 'identity' ? `${c}${s}${r}${p}` : ''\n const domainName = customDomain ?? `${slug}.${env}commercelayer.app`\n const application = customDomain ? '' : `/${applicationType.toString()}`\n return `https://${domainName}${application}/${\n orderId ?? t ?? ''\n }?accessToken=${accessToken}${params}`\n}\n","import type { Dispatch } from \"react\"\nimport {\n type SetLocalOrder,\n type DeleteLocalOrder,\n setCustomerOrderParam,\n type CustomerOrderParams,\n} from \"#utils/localStorage\"\nimport type { CommerceLayerConfig } from \"#context/CommerceLayerContext\"\nimport baseReducer from \"#utils/baseReducer\"\nimport isEmpty from \"lodash-es/isEmpty\"\nimport type { BaseMetadataObject } from \"#typings/index\"\nimport type { BaseError } from \"#typings/errors\"\nimport getSdk from \"#utils/getSdk\"\nimport getErrors, { setErrors } from \"../utils/getErrors\"\nimport type { AddressResource } from \"./AddressReducer\"\nimport type {\n Order,\n LineItemCreate,\n LineItemOptionCreate,\n OrderUpdate,\n QueryParamsRetrieve,\n CommerceLayerClient,\n ResourceUpdate,\n AdyenPaymentUpdate,\n} from \"@commercelayer/sdk\"\nimport { getOrganizationConfig } from \"#utils/organization\"\nimport type { LooseAutocomplete } from \"#typings/globals\"\nimport { publish } from \"#utils/events\"\nimport { getDomain } from \"#utils/getDomain\"\nimport { getApplicationLink } from \"#utils/getApplicationLink\"\n\nexport type GetOrderParams = Partial<{\n clearWhenPlaced: boolean\n config: CommerceLayerConfig\n deleteLocalOrder: DeleteLocalOrder\n dispatch: Dispatch<OrderActions>\n id: string\n persistKey: string\n state: OrderState\n}>\n\nexport type GetOrder = (params: GetOrderParams) => Promise<undefined | Order>\n\ntype CreateOrderParams = Pick<\n AddToCartParams,\n | \"config\"\n | \"dispatch\"\n | \"persistKey\"\n | \"state\"\n | \"orderMetadata\"\n | \"orderAttributes\"\n | \"setLocalOrder\"\n>\n\nexport interface AddToCartImportParams\n extends Omit<\n AddToCartParams,\n \"skuCode\" | \"skuId\" | \"quantity\" | \"option\" | \"lineItem\"\n > {\n lineItems: CustomLineItem[]\n}\n\nexport type AddToCartReturn = Promise<{\n success: boolean\n orderId: string | undefined\n}>\n\nexport type AddToCartImport = (params: AddToCartImportParams) => AddToCartReturn\n\nexport type UnsetOrderState = (dispatch: Dispatch<OrderActions>) => void\n\nexport type ResourceIncluded =\n | \"billing_address\"\n | \"shipping_address\"\n | \"line_items.line_item_options.sku_option\"\n | \"line_items.item\"\n | \"available_customer_payment_sources.payment_source\"\n | \"available_customer_payment_sources.payment_method\"\n | \"shipments.available_shipping_methods\"\n | \"shipments.stock_transfers\"\n | \"shipments.stock_transfers.line_item\"\n | \"shipments.stock_line_items.line_item\"\n | \"shipments.shipping_method\"\n | \"shipments.stock_location\"\n | \"shipments.parcels\"\n | \"shipments.parcels.parcel_line_items\"\n | \"payment_source\"\n | \"available_payment_methods\"\n | \"payment_method\"\n\ntype ResourceIncludedLoaded = Partial<Record<ResourceIncluded, boolean>>\n\nexport interface OrderPayload {\n loading?: boolean\n orderId?: string\n order?: Order\n errors?: BaseError[]\n include?: ResourceIncluded[] | undefined\n includeLoaded?: ResourceIncludedLoaded\n withoutIncludes?: boolean\n manageAdyenGiftCard?: boolean\n}\n\nexport type AddToCartImportValues = Pick<AddToCartImportParams, \"lineItems\">\n\nexport type getOrderContext = (id: string) => Promise<undefined | Order>\n\nexport type OrderState = Partial<OrderPayload>\n\nexport interface OrderActions {\n type: OrderActionType\n payload: OrderPayload\n}\n\nexport type OrderActionType =\n | \"setLoading\"\n | \"setOrderId\"\n | \"setOrder\"\n | \"setSingleQuantity\"\n | \"setCurrentSkuCodes\"\n | \"setCurrentSkuPrices\"\n | \"setCurrentItem\"\n | \"setErrors\"\n | \"setSaveAddressToCustomerAddressBook\"\n | \"setGiftCardOrCouponCode\"\n | \"setIncludesResource\"\n\nconst actionType: OrderActionType[] = [\n \"setLoading\",\n \"setOrderId\",\n \"setOrder\",\n \"setSingleQuantity\",\n \"setCurrentSkuCodes\",\n \"setCurrentSkuPrices\",\n \"setErrors\",\n \"setCurrentItem\",\n \"setSaveAddressToCustomerAddressBook\",\n \"setIncludesResource\",\n]\n\nexport async function createOrder(params: CreateOrderParams): Promise<string> {\n if (params) {\n const {\n persistKey,\n state,\n dispatch,\n config,\n orderMetadata: metadata,\n orderAttributes = {},\n setLocalOrder,\n } = params\n if (state?.orderId) return state.orderId\n const sdk = config != null ? getSdk(config) : undefined\n try {\n if (sdk == null) return \"\"\n const o = await sdk?.orders.create({ metadata, ...orderAttributes })\n if (dispatch) {\n dispatch({\n type: \"setOrderId\",\n payload: {\n orderId: o?.id,\n },\n })\n }\n persistKey && setLocalOrder && setLocalOrder(persistKey, o.id)\n return o.id\n } catch (error: any) {\n const errors = getErrors({\n error,\n resource: \"orders\",\n })\n console.error(\"Create order\", errors)\n if (dispatch)\n setErrors({\n currentErrors: state?.errors,\n newErrors: errors,\n dispatch,\n })\n }\n }\n return \"\"\n}\n\nexport const getApiOrder: GetOrder = async (\n params,\n): Promise<Order | undefined> => {\n const {\n id,\n dispatch,\n config,\n clearWhenPlaced,\n persistKey,\n deleteLocalOrder,\n state,\n } = params\n const sdk = config != null ? getSdk(config) : undefined\n try {\n if (sdk == null) return undefined\n const options: QueryParamsRetrieve = {}\n if (state?.include && state.include.length > 0) {\n options.include = state.include\n }\n const order = await sdk.orders.retrieve(id ?? \"\", options)\n if (clearWhenPlaced && order.editable === false) {\n persistKey && deleteLocalOrder && deleteLocalOrder(persistKey)\n if (dispatch) {\n dispatch({\n type: \"setOrder\",\n payload: {\n order: undefined,\n orderId: \"\",\n },\n })\n }\n } else {\n if (dispatch) {\n dispatch({\n type: \"setOrder\",\n payload: {\n order,\n orderId: order.id,\n },\n })\n }\n }\n return order\n } catch (error: any) {\n const errors = getErrors({\n error,\n resource: \"orders\",\n })\n console.error(\"Retrieve order\", errors)\n if (dispatch)\n setErrors({\n currentErrors: state?.errors,\n newErrors: errors,\n dispatch,\n })\n return undefined\n }\n}\n\nexport interface UpdateOrderArgs {\n id: string\n attributes: Omit<OrderUpdate, \"id\">\n dispatch?: Dispatch<OrderActions>\n include?: string[]\n config?: CommerceLayerConfig\n state?: OrderState\n}\n\nexport async function updateOrder({\n id,\n attributes,\n dispatch,\n config,\n include,\n state,\n}: UpdateOrderArgs): Promise<{\n success: boolean\n error?: unknown\n order?: Order\n}> {\n const sdk = config != null ? getSdk(config) : undefined\n try {\n if (sdk == null) return { success: false }\n const resource = { ...attributes, id }\n // const order = await sdk.orders.update(resource, { include })\n await sdk.orders.update(resource, { include })\n // NOTE: Retrieve doesn't response with attributes updated\n const order = await getApiOrder({ id, config, dispatch, state })\n dispatch && order && dispatch({ type: \"setOrder\", payload: { order } })\n return { success: true, order }\n } catch (error: any) {\n const errors = getErrors({\n error,\n resource: \"orders\",\n })\n if (dispatch) {\n setOrderErrors({ errors, dispatch })\n dispatch({\n type: \"setErrors\",\n payload: {\n errors,\n },\n })\n }\n return { success: false, error }\n }\n}\n\ninterface TResourceRequest {\n resource: Extract<keyof CommerceLayerClient, \"adyen_payments\">\n requestType: \"update\"\n attributes: TResourceRequest[\"resource\"] extends \"adyen_payments\"\n ? AdyenPaymentUpdate\n : ResourceUpdate\n order: Order\n dispatch?: Dispatch<OrderActions>\n config?: CommerceLayerConfig\n state?: OrderState\n}\n\nexport async function paymentSourceRequest({\n resource,\n requestType,\n dispatch,\n attributes,\n config,\n order,\n state,\n}: TResourceRequest): Promise<{ success: boolean; order?: Order }> {\n const sdk = config != null ? getSdk(config) : undefined\n try {\n if (sdk == null) return { success: false }\n const sdkResource = sdk[resource]\n await sdkResource[requestType](attributes)\n const orderUpdated = await updateOrder({\n id: order.id,\n attributes: {},\n config,\n include: state?.include,\n dispatch,\n state,\n })\n return { success: true, order: orderUpdated?.order }\n } catch (error: any) {\n console.error(\"Resource request\", error)\n const errors = getErrors({ error, resource: \"orders\" })\n console.error(\"Remove gift card o coupon code\", errors)\n dispatch && setOrderErrors({ errors, dispatch })\n return { success: false }\n }\n}\n\nexport const setOrder = (\n order: Order,\n dispatch?: Dispatch<OrderActions>,\n): void => {\n if (dispatch) {\n dispatch({\n type: \"setOrder\",\n payload: {\n order,\n },\n })\n }\n}\n\nexport interface AddResourceToInclude {\n resourcesIncluded?: ResourceIncluded[]\n dispatch?: Dispatch<OrderActions>\n newResource?: ResourceIncluded | ResourceIncluded[]\n resourceIncludedLoaded?: ResourceIncludedLoaded\n newResourceLoaded?: ResourceIncludedLoaded\n}\n\ninterface IncludesType {\n include: ResourceIncluded[] | undefined\n includeLoaded:\n | {\n [K in ResourceIncluded]?: boolean\n }\n | undefined\n}\n\nexport function addResourceToInclude({\n resourcesIncluded = [],\n dispatch,\n newResource,\n newResourceLoaded,\n resourceIncludedLoaded,\n}: AddResourceToInclude): void {\n const payload: IncludesType = {\n include: undefined,\n includeLoaded: undefined,\n }\n if (newResource) {\n const resources =\n typeof newResource === \"string\" ? [newResource] : newResource\n payload.include = [...new Set([...resourcesIncluded, ...resources])]\n resources.forEach((resource) => {\n const includeLoaded = {\n ...payload.includeLoaded,\n ...{ [resource]: true },\n }\n payload.includeLoaded = includeLoaded\n })\n } else {\n delete payload.include\n }\n const payloadIncludeLoaded = {\n ...resourceIncludedLoaded,\n ...newResourceLoaded,\n ...(payload.includeLoaded && payload.includeLoaded),\n }\n payload.includeLoaded = payloadIncludeLoaded\n if (dispatch)\n dispatch({\n type: \"setIncludesResource\",\n payload: {\n ...payload,\n withoutIncludes: false,\n },\n })\n}\n\nexport interface LineItemOption {\n /**\n * SKU Option ID. Ex: mNJEgsJwBn\n */\n skuOptionId: string\n /**\n * Set of key-value pairs that represent the selected options. Ex: { message: 'This is a option message' }\n */\n options: Record<string, string>\n quantity?: number\n}\n\ntype TFrequency =\n | \"hourly\"\n | \"daily\"\n | \"weekly\"\n | \"monthly\"\n | \"two-month\"\n | \"three-month\"\n | \"four-month\"\n | \"six-month\"\n | \"yearly\"\n\nexport interface CustomLineItem {\n name?: string\n imageUrl?: string | null\n metadata?: Record<string, string>\n frequency?: LooseAutocomplete<TFrequency>\n externalPrice?: boolean\n _update_quantity?: boolean\n}\n\nexport type AddToCartParams = Partial<{\n bundleCode: string\n skuCode: string\n persistKey: string\n config: CommerceLayerConfig\n dispatch: Dispatch<OrderActions>\n state: Partial<OrderState>\n quantity: number\n lineItemOption: LineItemOption\n lineItem: CustomLineItem\n orderMetadata: BaseMetadataObject\n orderAttributes: Record<string, any>\n errors: BaseError[]\n setLocalOrder: SetLocalOrder\n buyNowMode: boolean\n checkoutUrl: string\n openMiniCart: boolean\n}>\n\nexport async function addToCart(\n params: AddToCartParams,\n): Promise<{ success: boolean; orderId?: string }> {\n const {\n skuCode,\n bundleCode,\n quantity,\n config,\n dispatch,\n lineItem,\n state,\n errors = [],\n buyNowMode,\n checkoutUrl,\n lineItemOption,\n openMiniCart = true,\n } = params\n try {\n if (config) {\n const sdk = getSdk(config)\n const id = await createOrder(params)\n if (id) {\n const order = sdk.orders.relationship(id)\n const name = lineItem?.name\n const imageUrl = lineItem?.imageUrl\n const metadata = lineItem?.metadata\n const frequency = lineItem?.frequency\n const externalPrice = lineItem?.externalPrice\n if (buyNowMode) {\n if (!state?.order?.line_items) {\n const { line_items: lineItems } = await sdk.orders.retrieve(id, {\n fields: [\"line_items\"],\n include: [\"line_items\"],\n })\n if (lineItems && lineItems?.length > 0) {\n await Promise.all(\n lineItems.map(async (lineItem) => {\n await sdk.line_items.delete(lineItem.id)\n }),\n )\n }\n } else {\n await Promise.all(\n state?.order?.line_items.map(async (lineItem) => {\n await sdk.line_items.delete(lineItem.id)\n }),\n )\n }\n }\n const attrs: LineItemCreate = {\n order,\n sku_code: skuCode,\n name,\n image_url: imageUrl,\n quantity: quantity ?? 1,\n _update_quantity: lineItem?._update_quantity ?? true,\n bundle_code: bundleCode,\n metadata,\n frequency: frequency as string,\n }\n if (externalPrice === true) {\n attrs._external_price = externalPrice\n }\n const newLineItem = await sdk.line_items.create(attrs)\n if (lineItemOption != null) {\n const { skuOptionId, options, quantity } = lineItemOption\n const skuOption = sdk.sku_options.relationship(skuOptionId)\n const lineItemRel = sdk.line_items.relationship(newLineItem.id)\n const lineItemOptionsAttributes: LineItemOptionCreate = {\n quantity: quantity ?? 1,\n options,\n sku_option: skuOption,\n line_item: lineItemRel,\n }\n await sdk.line_item_options.create(lineItemOptionsAttributes)\n await getApiOrder({ id, ...params })\n } else {\n await getApiOrder({ id, ...params, state })\n }\n if (!isEmpty(errors) && dispatch) {\n dispatch({\n type: \"setErrors\",\n payload: {\n errors: [],\n },\n })\n }\n if (\n buyNowMode &&\n id &&\n config?.accessToken != null &&\n config?.endpoint != null\n ) {\n const params = `${id}?accessToken=${config.accessToken ?? \"\"}`\n const { domain, slug } = getDomain(config.endpoint)\n const href = getApplicationLink({\n slug,\n orderId: id,\n accessToken: config.accessToken,\n applicationType: \"checkout\",\n domain,\n })\n const organizationConfig = await getOrganizationConfig({\n accessToken: config.accessToken,\n endpoint: config.endpoint,\n params: {\n accessToken: config.accessToken,\n orderId: order?.id,\n slug,\n },\n })\n const redirectUrl = checkoutUrl\n ? `${checkoutUrl}/${params}`\n : (organizationConfig?.links?.checkout ?? href)\n location.href = redirectUrl\n } else if (openMiniCart) {\n publish(\"open-cart\")\n }\n return { success: true, orderId: id }\n }\n }\n return { success: false }\n } catch (error: any) {\n const errors = getErrors({\n error,\n resource: \"orders\",\n })\n console.error(\"Add to cart\", errors)\n if (dispatch)\n setErrors({\n currentErrors: state?.errors,\n newErrors: errors,\n dispatch,\n })\n return { success: false }\n }\n}\n\nexport const unsetOrderState: UnsetOrderState = (dispatch) => {\n dispatch({\n type: \"setOrderId\",\n payload: {\n orderId: \"\",\n },\n })\n dispatch({\n type: \"setOrder\",\n payload: {\n order: undefined,\n },\n })\n}\n\ninterface OrderErrors {\n dispatch?: Dispatch<OrderActions>\n errors: BaseError[]\n}\n\nexport function setOrderErrors({ dispatch, errors = [] }: OrderErrors): {\n success: boolean\n} {\n if (dispatch)\n dispatch({\n type: \"setErrors\",\n payload: {\n errors,\n },\n })\n return { success: false }\n}\n\nexport type SaveAddressToCustomerAddressBook = (params: {\n dispatch?: Dispatch<OrderActions>\n type: AddressResource\n value: boolean\n}) => void\nexport const saveAddressToCustomerAddressBook: SaveAddressToCustomerAddressBook =\n ({ type, value, dispatch }) => {\n const k: CustomerOrderParams = `_save_${type}_to_customer_address_book`\n const v = `${value.toString()}`\n setCustomerOrderParam(k, v)\n if (dispatch)\n dispatch({\n type: \"setSaveAddressToCustomerAddressBook\",\n payload: {\n [k]: v,\n },\n })\n }\n\ninterface TSetGiftCardOrCouponCodeParams {\n code: string\n codeType: OrderCodeType\n dispatch?: Dispatch<OrderActions>\n config?: CommerceLayerConfig\n order?: Order\n include?: string[]\n state?: OrderState\n}\n\nexport async function setGiftCardOrCouponCode({\n code,\n codeType,\n dispatch,\n config,\n order,\n include,\n state,\n}: TSetGiftCardOrCouponCodeParams): Promise<{\n success: boolean\n order?: Order\n}> {\n try {\n if (config && order && code && dispatch) {\n const attributes: Omit<OrderUpdate, \"id\"> = {\n [codeType]: code,\n }\n const {\n success,\n order: currentOrder,\n error,\n } = await updateOrder({\n id: order.id,\n attributes,\n config,\n include,\n dispatch,\n state,\n })\n if (!success) throw error\n dispatch({\n type: \"setErrors\",\n payload: {\n errors: [],\n },\n })\n return { success, order: currentOrder }\n }\n return { success: false }\n } catch (error: any) {\n const errors = getErrors({\n error,\n resource: \"orders\",\n field: codeType,\n })\n dispatch && setOrderErrors({ errors, dispatch })\n return { success: false }\n }\n}\n\nexport type CodeType = \"coupon\" | \"gift_card\"\nexport type OrderCodeType = `${CodeType}_code`\n\ninterface TRemoveGiftCardOrCouponCodeParams {\n codeType: OrderCodeType\n dispatch?: Dispatch<OrderActions>\n config?: CommerceLayerConfig\n order?: Order\n include?: string[]\n state?: OrderState\n}\n\nexport async function removeGiftCardOrCouponCode({\n codeType,\n dispatch,\n config,\n order,\n include,\n state,\n}: TRemoveGiftCardOrCouponCodeParams): Promise<{\n success: boolean\n order?: Order\n}> {\n try {\n if (config && order && dispatch) {\n const attributes: Omit<OrderUpdate, \"id\"> = {\n [codeType]: \"\",\n }\n const orderUpdated = await updateOrder({\n id: order.id,\n attributes,\n config,\n include,\n dispatch,\n state,\n })\n dispatch({\n type: \"setErrors\",\n payload: {\n errors: [],\n },\n })\n return { success: true, order: orderUpdated?.order }\n }\n return { success: false }\n } catch (error: any) {\n const errors = getErrors({ error, resource: \"orders\", field: codeType })\n console.error(\"Remove gift card o coupon code\", errors)\n dispatch && setOrderErrors({ errors, dispatch })\n return { success: false }\n }\n}\n\nexport const orderInitialState: Partial<OrderState> = {\n loading: true,\n orderId: \"\",\n order: undefined,\n errors: [],\n include: undefined,\n withoutIncludes: true,\n}\n\nconst orderReducer = (state: OrderState, reducer: OrderActions): OrderState =>\n baseReducer<OrderState, OrderActions, OrderActionType[]>(\n state,\n reducer,\n actionType,\n )\n\nexport default orderReducer\n","import Parent from '#components/utils/Parent'\nimport { useContext, type JSX } from 'react';\nimport type { Address } from '@commercelayer/sdk'\nimport AddressChildrenContext from '#context/AddressChildrenContext'\nimport ShippingAddressContext from '#context/ShippingAddressContext'\nimport type { ChildrenFunction } from '#typings'\n\nexport interface TAddressCards\n extends Pick<Props, 'customerAddresses' | 'className'> {\n AddressProvider: typeof AddressChildrenContext.Provider\n}\n\nexport interface CustomerAddress extends Address {\n onClick: () => void\n handleSelect?: () => void\n}\n\nexport type AddressCardsTemplateChildren = ChildrenFunction<TAddressCards>\n\nexport type HandleSelect = (\n k: number,\n addressId: string,\n customerAddressId: string,\n disabled: boolean,\n address: Address\n) => Promise<void>\n\ninterface Props {\n customerAddresses: CustomerAddress[]\n countryLock?: string | null\n children: AddressCardsTemplateChildren\n selectedClassName?: string\n disabledClassName?: string\n deselect?: boolean\n selected?: number | null\n className?: string\n handleSelect: HandleSelect\n}\n\nexport default function AddressCardsTemplate({\n customerAddresses,\n children,\n deselect,\n countryLock,\n selected,\n selectedClassName,\n className,\n disabledClassName,\n handleSelect\n}: Props): JSX.Element {\n const { setShippingAddress } = useContext(ShippingAddressContext)\n const addresses = customerAddresses.map((address, k) => {\n const attributes = address\n const disabled =\n (setShippingAddress &&\n countryLock &&\n countryLock !== address.country_code) ||\n false\n const selectedClass = deselect ? '' : selectedClassName\n const addressSelectedClass =\n selected === k ? `${className ?? ''} ${selectedClass ?? ''}` : className\n const finalClassName = disabled\n ? `${className ?? ''} ${disabledClassName ?? ''}`\n : addressSelectedClass\n const customerAddressId: string = address?.reference || ''\n const onClick = async (): Promise<void> => {\n await handleSelect(k, address.id, customerAddressId, disabled, address)\n }\n return {\n ...attributes,\n className: finalClassName,\n onClick\n }\n })\n const value = {\n customerAddresses: addresses,\n AddressProvider: AddressChildrenContext.Provider\n }\n return <Parent {...value}>{children}</Parent>\n}\n","import React, { type ForwardRefRenderFunction } from 'react'\nimport Parent from './Parent'\nimport type { BaseSelectComponentProps } from '#typings'\n\nexport type BaseSelectProps = BaseSelectComponentProps\n\nconst BaseSelect: ForwardRefRenderFunction<any, BaseSelectProps> = (\n props,\n ref\n) => {\n const {\n options = [],\n children,\n placeholder = { label: 'Select an option', value: '' },\n value = '',\n ...p\n } = props\n if (placeholder != null) {\n const isPlaceholderInOptions = options.some((option) => option.value === placeholder.value)\n if (!isPlaceholderInOptions) {\n options.unshift(placeholder)\n }\n }\n const Options = options.map((o, k) => {\n const { label, ...option } = o\n return (\n <option key={k} {...option}>\n {label}\n </option>\n )\n })\n const parentProps = {\n options,\n ref,\n ...p\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <select ref={ref} defaultValue={value} {...p}>\n {Options}\n </select>\n )\n}\n\nexport default React.forwardRef(BaseSelect)\n","import { createContext } from 'react'\nimport type { Address } from '@commercelayer/sdk'\n\nexport type AddressValuesKeys =\n | `${keyof Address}`\n | `billing_address_${keyof Address}`\n | `shipping_address_${keyof Address}`\n | `billing_address_${`metadata_${string}`}`\n | `shipping_address_${`metadata_${string}`}`\n\nexport interface DefaultContextAddress {\n // eslint-disable-next-line @typescript-eslint/no-invalid-void-type\n validation?: void\n setValue?: (\n name: AddressValuesKeys,\n value: string | number | readonly string[]\n ) => void\n errors?: Record<\n string,\n {\n code: string\n message: string\n error: boolean\n }\n >\n errorClassName?: string\n requiresBillingInfo?: boolean\n resetField?: (name: string) => void\n values?: {\n [T in AddressValuesKeys]: string | { value: string }\n }\n isBusiness?: boolean\n}\n\nconst BillingAddressFormContext = createContext<DefaultContextAddress>({})\n\nexport default BillingAddressFormContext\n","import { createContext } from 'react'\nimport type { DefaultContextAddress } from './BillingAddressFormContext'\n\nconst ShippingAddressFormContext = createContext<DefaultContextAddress>({})\n\nexport default ShippingAddressFormContext\n","import isEmpty from \"lodash-es/isEmpty\"\n\n/**\n * Validate the list of countries the user can optionally pass or returns our default list\n * @param countries - Optional list of countries to override default ones\n * @returns List of countries\n */\nexport function getCountries(countries?: Country[]): Country[] {\n if (\n !isEmpty(countries) &&\n countries?.every((c) => \"value\" in c && \"label\" in c)\n ) {\n return countries\n }\n return [...defaultCountries]\n}\n\n/**\n * Get the list of states for a given country, if the user pass a list of states we use that one\n * otherwise we use our default list.\n * If no states are found for the given country we return an empty array.\n * @param countryCode - code of selected country (e.g. IT)\n * @param states - Optional list of states to override our default list\n * @returns List of states for the selected country or empty array\n */\nexport function getStateOfCountry({\n countryCode,\n states,\n}: {\n countryCode: string\n states?: States\n}): State[] {\n const statesToUse = {\n ...defaultStates,\n ...states,\n }\n return statesToUse[countryCode as CountryCode] ?? []\n}\n\n/**\n * Check if the given state is valid for the given country.\n * If the user is overriding our default states list, it must be passed as option.\n * @param stateCode - code of selected state\n * @param countryCode - code of selected country\n * @param states - Optional list of states to override our default list\n * @returns Boolean - true if the state is valid for the given country\n */\nexport function isValidState({\n stateCode,\n countryCode,\n states,\n}: {\n stateCode: string\n countryCode: string\n states?: States\n}): boolean {\n const statesToUse = {\n ...defaultStates,\n ...states,\n }\n return Boolean(\n statesToUse[countryCode as CountryCode]?.find(\n (state) => state.value === stateCode,\n ),\n )\n}\n\n/**\n * Check if the given country has a pre-defined list of states as select options.\n * If the user is overriding our default states list, it must be specified by passing an array of countries as option.\n */\nexport function isEmptyStates({\n countryCode,\n countriesWithPredefinedStateOptions,\n}: {\n countryCode: string\n countriesWithPredefinedStateOptions?: string[]\n}): boolean {\n const countryLock =\n countriesWithPredefinedStateOptions == null ||\n isEmpty(countriesWithPredefinedStateOptions)\n ? Object.keys(defaultStates)\n : countriesWithPredefinedStateOptions\n return !countryLock.includes(countryCode)\n}\n\nconst defaultCountries = [\n {\n label: \"Afghanistan\",\n value: \"AF\",\n },\n {\n label: \"Aland Islands\",\n value: \"AX\",\n },\n {\n label: \"Albania\",\n value: \"AL\",\n },\n {\n label: \"Algeria\",\n value: \"DZ\",\n },\n {\n label: \"American Samoa\",\n value: \"AS\",\n },\n {\n label: \"Andorra\",\n value: \"AD\",\n },\n {\n label: \"Angola\",\n value: \"AO\",\n },\n {\n label: \"Anguilla\",\n value: \"AI\",\n },\n {\n label: \"Antarctica\",\n value: \"AQ\",\n },\n {\n label: \"Antigua And Barbuda\",\n value: \"AG\",\n },\n {\n label: \"Argentina\",\n value: \"AR\",\n },\n {\n label: \"Armenia\",\n value: \"AM\",\n },\n {\n label: \"Aruba\",\n value: \"AW\",\n },\n {\n label: \"Australia\",\n value: \"AU\",\n },\n {\n label: \"Austria\",\n value: \"AT\",\n },\n {\n label: \"Azerbaijan\",\n value: \"AZ\",\n },\n {\n label: \"Bahamas The\",\n value: \"BS\",\n },\n {\n label: \"Bahrain\",\n value: \"BH\",\n },\n {\n label: \"Bangladesh\",\n value: \"BD\",\n },\n {\n label: \"Barbados\",\n value: \"BB\",\n },\n {\n label: \"Belarus\",\n value: \"BY\",\n },\n {\n label: \"Belgium\",\n value: \"BE\",\n },\n {\n label: \"Belize\",\n value: \"BZ\",\n },\n {\n label: \"Benin\",\n value: \"BJ\",\n },\n {\n label: \"Bermuda\",\n value: \"BM\",\n },\n {\n label: \"Bhutan\",\n value: \"BT\",\n },\n {\n label: \"Bolivia\",\n value: \"BO\",\n },\n {\n label: \"Bonaire, Sint Eustatius and Saba\",\n value: \"BQ\",\n },\n {\n label: \"Bosnia and Herzegovina\",\n value: \"BA\",\n },\n {\n label: \"Botswana\",\n value: \"BW\",\n },\n {\n label: \"Bouvet Island\",\n value: \"BV\",\n },\n {\n label: \"Brazil\",\n value: \"BR\",\n },\n {\n label: \"British Indian Ocean Territory\",\n value: \"IO\",\n },\n {\n label: \"Brunei\",\n value: \"BN\",\n },\n {\n label: \"Bulgaria\",\n value: \"BG\",\n },\n {\n label: \"Burkina Faso\",\n value: \"BF\",\n },\n {\n label: \"Burundi\",\n value: \"BI\",\n },\n {\n label: \"Cambodia\",\n value: \"KH\",\n },\n {\n label: \"Cameroon\",\n value: \"CM\",\n },\n {\n label: \"Canada\",\n value: \"CA\",\n },\n {\n label: \"Cape Verde\",\n value: \"CV\",\n },\n {\n label: \"Cayman Islands\",\n value: \"KY\",\n },\n {\n label: \"Central African Republic\",\n value: \"CF\",\n },\n {\n label: \"Chad\",\n value: \"TD\",\n },\n {\n label: \"Chile\",\n value: \"CL\",\n },\n {\n label: \"China\",\n value: \"CN\",\n },\n {\n label: \"Christmas Island\",\n value: \"CX\",\n },\n {\n label: \"Cocos (Keeling) Islands\",\n value: \"CC\",\n },\n {\n label: \"Colombia\",\n value: \"CO\",\n },\n {\n label: \"Comoros\",\n value: \"KM\",\n },\n {\n label: \"Congo\",\n value: \"CG\",\n },\n {\n label: \"Cook Islands\",\n value: \"CK\",\n },\n {\n label: \"Costa Rica\",\n value: \"CR\",\n },\n {\n label: \"Cote D'Ivoire (Ivory Coast)\",\n value: \"CI\",\n },\n {\n label: \"Croatia\",\n value: \"HR\",\n },\n {\n label: \"Cuba\",\n value: \"CU\",\n },\n {\n label: \"Curaçao\",\n value: \"CW\",\n },\n {\n label: \"Cyprus\",\n value: \"CY\",\n },\n {\n label: \"Czech Republic\",\n value: \"CZ\",\n },\n {\n label: \"Democratic Republic of the Congo\",\n value: \"CD\",\n },\n {\n label: \"Denmark\",\n value: \"DK\",\n },\n {\n label: \"Djibouti\",\n value: \"DJ\",\n },\n {\n label: \"Dominica\",\n value: \"DM\",\n },\n {\n label: \"Dominican Republic\",\n value: \"DO\",\n },\n {\n label: \"East Timor\",\n value: \"TL\",\n },\n {\n label: \"Ecuador\",\n value: \"EC\",\n },\n {\n label: \"Egypt\",\n value: \"EG\",\n },\n {\n label: \"El Salvador\",\n value: \"SV\",\n },\n {\n label: \"Equatorial Guinea\",\n value: \"GQ\",\n },\n {\n label: \"Eritrea\",\n value: \"ER\",\n },\n {\n label: \"Estonia\",\n value: \"EE\",\n },\n {\n label: \"Ethiopia\",\n value: \"ET\",\n },\n {\n label: \"Falkland Islands\",\n value: \"FK\",\n },\n {\n label: \"Faroe Islands\",\n value: \"FO\",\n },\n {\n label: \"Fiji Islands\",\n value: \"FJ\",\n },\n {\n label: \"Finland\",\n value: \"FI\",\n },\n {\n label: \"France\",\n value: \"FR\",\n },\n {\n label: \"French Guiana\",\n value: \"GF\",\n },\n {\n label: \"French Polynesia\",\n value: \"PF\",\n },\n {\n label: \"French Southern Territories\",\n value: \"TF\",\n },\n {\n label: \"Gabon\",\n value: \"GA\",\n },\n {\n label: \"Gambia The\",\n value: \"GM\",\n },\n {\n label: \"Georgia\",\n value: \"GE\",\n },\n {\n label: \"Germany\",\n value: \"DE\",\n },\n {\n label: \"Ghana\",\n value: \"GH\",\n },\n {\n label: \"Gibraltar\",\n value: \"GI\",\n },\n {\n label: \"Greece\",\n value: \"GR\",\n },\n {\n label: \"Greenland\",\n value: \"GL\",\n },\n {\n label: \"Grenada\",\n value: \"GD\",\n },\n {\n label: \"Guadeloupe\",\n value: \"GP\",\n },\n {\n label: \"Guam\",\n value: \"GU\",\n },\n {\n label: \"Guatemala\",\n value: \"GT\",\n },\n {\n label: \"Guernsey and Alderney\",\n value: \"GG\",\n },\n {\n label: \"Guinea\",\n value: \"GN\",\n },\n {\n label: \"Guinea-Bissau\",\n value: \"GW\",\n },\n {\n label: \"Guyana\",\n value: \"GY\",\n },\n {\n label: \"Haiti\",\n value: \"HT\",\n },\n {\n label: \"Heard Island and McDonald Islands\",\n value: \"HM\",\n },\n {\n label: \"Honduras\",\n value: \"HN\",\n },\n {\n label: \"Hong Kong S.A.R.\",\n value: \"HK\",\n },\n {\n label: \"Hungary\",\n value: \"HU\",\n },\n {\n label: \"Iceland\",\n value: \"IS\",\n },\n {\n label: \"India\",\n value: \"IN\",\n },\n {\n label: \"Indonesia\",\n value: \"ID\",\n },\n {\n label: \"Iran\",\n value: \"IR\",\n },\n {\n label: \"Iraq\",\n value: \"IQ\",\n },\n {\n label: \"Ireland\",\n value: \"IE\",\n },\n {\n label: \"Israel\",\n value: \"IL\",\n },\n {\n label: \"Italy\",\n value: \"IT\",\n },\n {\n label: \"Jamaica\",\n value: \"JM\",\n },\n {\n label: \"Japan\",\n value: \"JP\",\n },\n {\n label: \"Jersey\",\n value: \"JE\",\n },\n {\n label: \"Jordan\",\n value: \"JO\",\n },\n {\n label: \"Kazakhstan\",\n value: \"KZ\",\n },\n {\n label: \"Kenya\",\n value: \"KE\",\n },\n {\n label: \"Kiribati\",\n value: \"KI\",\n },\n {\n label: \"Kosovo\",\n value: \"XK\",\n },\n {\n label: \"Kuwait\",\n value: \"KW\",\n },\n {\n label: \"Kyrgyzstan\",\n value: \"KG\",\n },\n {\n label: \"Laos\",\n value: \"LA\",\n },\n {\n label: \"Latvia\",\n value: \"LV\",\n },\n {\n label: \"Lebanon\",\n value: \"LB\",\n },\n {\n label: \"Lesotho\",\n value: \"LS\",\n },\n {\n label: \"Liberia\",\n value: \"LR\",\n },\n {\n label: \"Libya\",\n value: \"LY\",\n },\n {\n label: \"Liechtenstein\",\n value: \"LI\",\n },\n {\n label: \"Lithuania\",\n value: \"LT\",\n },\n {\n label: \"Luxembourg\",\n value: \"LU\",\n },\n {\n label: \"Macau S.A.R.\",\n value: \"MO\",\n },\n {\n label: \"Macedonia\",\n value: \"MK\",\n },\n {\n label: \"Madagascar\",\n value: \"MG\",\n },\n {\n label: \"Malawi\",\n value: \"MW\",\n },\n {\n label: \"Malaysia\",\n value: \"MY\",\n },\n {\n label: \"Maldives\",\n value: \"MV\",\n },\n {\n label: \"Mali\",\n value: \"ML\",\n },\n {\n label: \"Malta\",\n value: \"MT\",\n },\n {\n label: \"Man (Isle of)\",\n value: \"IM\",\n },\n {\n label: \"Marshall Islands\",\n value: \"MH\",\n },\n {\n label: \"Martinique\",\n value: \"MQ\",\n },\n {\n label: \"Mauritania\",\n value: \"MR\",\n },\n {\n label: \"Mauritius\",\n value: \"MU\",\n },\n {\n label: \"Mayotte\",\n value: \"YT\",\n },\n {\n label: \"Mexico\",\n value: \"MX\",\n },\n {\n label: \"Micronesia\",\n value: \"FM\",\n },\n {\n label: \"Moldova\",\n value: \"MD\",\n },\n {\n label: \"Monaco\",\n value: \"MC\",\n },\n {\n label: \"Mongolia\",\n value: \"MN\",\n },\n {\n label: \"Montenegro\",\n value: \"ME\",\n },\n {\n label: \"Montserrat\",\n value: \"MS\",\n },\n {\n label: \"Morocco\",\n value: \"MA\",\n },\n {\n label: \"Mozambique\",\n value: \"MZ\",\n },\n {\n label: \"Myanmar\",\n value: \"MM\",\n },\n {\n label: \"Namibia\",\n value: \"NA\",\n },\n {\n label: \"Nauru\",\n value: \"NR\",\n },\n {\n label: \"Nepal\",\n value: \"NP\",\n },\n {\n label: \"Netherlands\",\n value: \"NL\",\n },\n {\n label: \"New Caledonia\",\n value: \"NC\",\n },\n {\n label: \"New Zealand\",\n value: \"NZ\",\n },\n {\n label: \"Nicaragua\",\n value: \"NI\",\n },\n {\n label: \"Niger\",\n value: \"NE\",\n },\n {\n label: \"Nigeria\",\n value: \"NG\",\n },\n {\n label: \"Niue\",\n value: \"NU\",\n },\n {\n label: \"Norfolk Island\",\n value: \"NF\",\n },\n {\n label: \"North Korea\",\n value: \"KP\",\n },\n {\n label: \"Northern Mariana Islands\",\n value: \"MP\",\n },\n {\n label: \"Norway\",\n value: \"NO\",\n },\n {\n label: \"Oman\",\n value: \"OM\",\n },\n {\n label: \"Pakistan\",\n value: \"PK\",\n },\n {\n label: \"Palau\",\n value: \"PW\",\n },\n {\n label: \"Palestinian Territory Occupied\",\n value: \"PS\",\n },\n {\n label: \"Panama\",\n value: \"PA\",\n },\n {\n label: \"Papua new Guinea\",\n value: \"PG\",\n },\n {\n label: \"Paraguay\",\n value: \"PY\",\n },\n {\n label: \"Peru\",\n value: \"PE\",\n },\n {\n label: \"Philippines\",\n value: \"PH\",\n },\n {\n label: \"Pitcairn Island\",\n value: \"PN\",\n },\n {\n label: \"Poland\",\n value: \"PL\",\n },\n {\n label: \"Portugal\",\n value: \"PT\",\n },\n {\n label: \"Puerto Rico\",\n value: \"PR\",\n },\n {\n label: \"Qatar\",\n value: \"QA\",\n },\n {\n label: \"Reunion\",\n value: \"RE\",\n },\n {\n label: \"Romania\",\n value: \"RO\",\n },\n {\n label: \"Russia\",\n value: \"RU\",\n },\n {\n label: \"Rwanda\",\n value: \"RW\",\n },\n {\n label: \"Saint Helena\",\n value: \"SH\",\n },\n {\n label: \"Saint Kitts And Nevis\",\n value: \"KN\",\n },\n {\n label: \"Saint Lucia\",\n value: \"LC\",\n },\n {\n label: \"Saint Pierre and Miquelon\",\n value: \"PM\",\n },\n {\n label: \"Saint Vincent And The Grenadines\",\n value: \"VC\",\n },\n {\n label: \"Saint-Barthelemy\",\n value: \"BL\",\n },\n {\n label: \"Saint-Martin (French part)\",\n value: \"MF\",\n },\n {\n label: \"Samoa\",\n value: \"WS\",\n },\n {\n label: \"San Marino\",\n value: \"SM\",\n },\n {\n label: \"Sao Tome and Principe\",\n value: \"ST\",\n },\n {\n label: \"Saudi Arabia\",\n value: \"SA\",\n },\n {\n label: \"Senegal\",\n value: \"SN\",\n },\n {\n label: \"Serbia\",\n value: \"RS\",\n },\n {\n label: \"Seychelles\",\n value: \"SC\",\n },\n {\n label: \"Sierra Leone\",\n value: \"SL\",\n },\n {\n label: \"Singapore\",\n value: \"SG\",\n },\n {\n label: \"Sint Maarten (Dutch part)\",\n value: \"SX\",\n },\n {\n label: \"Slovakia\",\n value: \"SK\",\n },\n {\n label: \"Slovenia\",\n value: \"SI\",\n },\n {\n label: \"Solomon Islands\",\n value: \"SB\",\n },\n {\n label: \"Somalia\",\n value: \"SO\",\n },\n {\n label: \"South Africa\",\n value: \"ZA\",\n },\n {\n label: \"South Georgia\",\n value: \"GS\",\n },\n {\n label: \"South Korea\",\n value: \"KR\",\n },\n {\n label: \"South Sudan\",\n value: \"SS\",\n },\n {\n label: \"Spain\",\n value: \"ES\",\n },\n {\n label: \"Sri Lanka\",\n value: \"LK\",\n },\n {\n label: \"Sudan\",\n value: \"SD\",\n },\n {\n label: \"Suriname\",\n value: \"SR\",\n },\n {\n label: \"Svalbard And Jan Mayen Islands\",\n value: \"SJ\",\n },\n {\n label: \"Swaziland\",\n value: \"SZ\",\n },\n {\n label: \"Sweden\",\n value: \"SE\",\n },\n {\n label: \"Switzerland\",\n value: \"CH\",\n },\n {\n label: \"Syria\",\n value: \"SY\",\n },\n {\n label: \"Taiwan\",\n value: \"TW\",\n },\n {\n label: \"Tajikistan\",\n value: \"TJ\",\n },\n {\n label: \"Tanzania\",\n value: \"TZ\",\n },\n {\n label: \"Thailand\",\n value: \"TH\",\n },\n {\n label: \"Togo\",\n value: \"TG\",\n },\n {\n label: \"Tokelau\",\n value: \"TK\",\n },\n {\n label: \"Tonga\",\n value: \"TO\",\n },\n {\n label: \"Trinidad And Tobago\",\n value: \"TT\",\n },\n {\n label: \"Tunisia\",\n value: \"TN\",\n },\n {\n label: \"Turkey\",\n value: \"TR\",\n },\n {\n label: \"Turkmenistan\",\n value: \"TM\",\n },\n {\n label: \"Turks And Caicos Islands\",\n value: \"TC\",\n },\n {\n label: \"Tuvalu\",\n value: \"TV\",\n },\n {\n label: \"Uganda\",\n value: \"UG\",\n },\n {\n label: \"Ukraine\",\n value: \"UA\",\n },\n {\n label: \"United Arab Emirates\",\n value: \"AE\",\n },\n {\n label: \"United Kingdom\",\n value: \"GB\",\n },\n {\n label: \"United States\",\n value: \"US\",\n },\n {\n label: \"United States Minor Outlying Islands\",\n value: \"UM\",\n },\n {\n label: \"Uruguay\",\n value: \"UY\",\n },\n {\n label: \"Uzbekistan\",\n value: \"UZ\",\n },\n {\n label: \"Vanuatu\",\n value: \"VU\",\n },\n {\n label: \"Vatican City State (Holy See)\",\n value: \"VA\",\n },\n {\n label: \"Venezuela\",\n value: \"VE\",\n },\n {\n label: \"Vietnam\",\n value: \"VN\",\n },\n {\n label: \"Virgin Islands (British)\",\n value: \"VG\",\n },\n {\n label: \"Virgin Islands (US)\",\n value: \"VI\",\n },\n {\n label: \"Wallis And Futuna Islands\",\n value: \"WF\",\n },\n {\n label: \"Western Sahara\",\n value: \"EH\",\n },\n {\n label: \"Yemen\",\n value: \"YE\",\n },\n {\n label: \"Zambia\",\n value: \"ZM\",\n },\n {\n label: \"Zimbabwe\",\n value: \"ZW\",\n },\n] as const\n\nconst statesIt: State[] = [\n {\n label: \"Agrigento\",\n value: \"AG\",\n },\n {\n label: \"Alessandria\",\n value: \"AL\",\n },\n {\n label: \"Ancona\",\n value: \"AN\",\n },\n {\n label: \"Aosta\",\n value: \"AO\",\n },\n {\n label: \"Arezzo\",\n value: \"AR\",\n },\n {\n label: \"Ascoli Piceno\",\n value: \"AP\",\n },\n {\n label: \"Asti\",\n value: \"AT\",\n },\n {\n label: \"Avellino\",\n value: \"AV\",\n },\n {\n label: \"Bari\",\n value: \"BA\",\n },\n {\n label: \"Barletta-Andria-Trani\",\n value: \"BT\",\n },\n {\n label: \"Belluno\",\n value: \"BL\",\n },\n {\n label: \"Benevento\",\n value: \"BN\",\n },\n {\n label: \"Bergamo\",\n value: \"BG\",\n },\n {\n label: \"Biella\",\n value: \"BI\",\n },\n {\n label: \"Bologna\",\n value: \"BO\",\n },\n {\n label: \"Bolzano\",\n value: \"BZ\",\n },\n {\n label: \"Brescia\",\n value: \"BS\",\n },\n {\n label: \"Brindisi\",\n value: \"BR\",\n },\n {\n label: \"Cagliari\",\n value: \"CA\",\n },\n {\n label: \"Caltanissetta\",\n value: \"CL\",\n },\n {\n label: \"Campobasso\",\n value: \"CB\",\n },\n {\n label: \"Carbonia-Iglesias\",\n value: \"CI\",\n },\n {\n label: \"Caserta\",\n value: \"CE\",\n },\n {\n label: \"Catania\",\n value: \"CT\",\n },\n {\n label: \"Catanzaro\",\n value: \"CZ\",\n },\n {\n label: \"Chieti\",\n value: \"CH\",\n },\n {\n label: \"Como\",\n value: \"CO\",\n },\n {\n label: \"Cosenza\",\n value: \"CS\",\n },\n {\n label: \"Cremona\",\n value: \"CR\",\n },\n {\n label: \"Crotone\",\n value: \"KR\",\n },\n {\n label: \"Cuneo\",\n value: \"CN\",\n },\n {\n label: \"Enna\",\n value: \"EN\",\n },\n {\n label: \"Fermo\",\n value: \"FM\",\n },\n {\n label: \"Ferrara\",\n value: \"FE\",\n },\n {\n label: \"Florence\",\n value: \"FI\",\n },\n {\n label: \"Foggia\",\n value: \"FG\",\n },\n {\n label: \"Forlì-Cesena\",\n value: \"FC\",\n },\n {\n label: \"Frosinone\",\n value: \"FR\",\n },\n {\n label: \"Genoa\",\n value: \"GE\",\n },\n {\n label: \"Gorizia\",\n value: \"GO\",\n },\n {\n label: \"Grosseto\",\n value: \"GR\",\n },\n {\n label: \"Imperia\",\n value: \"IM\",\n },\n {\n label: \"Isernia\",\n value: \"IS\",\n },\n {\n label: \" L'Aquila\",\n value: \"AQ\",\n },\n {\n label: \"La Spezia\",\n value: \"SP\",\n },\n {\n label: \"Latina\",\n value: \"LT\",\n },\n {\n label: \"Lecce\",\n value: \"LE\",\n },\n {\n label: \"Lecco\",\n value: \"LC\",\n },\n {\n label: \"Livorno\",\n value: \"LI\",\n },\n {\n label: \"Lodi\",\n value: \"LO\",\n },\n {\n label: \"Lucca\",\n value: \"LU\",\n },\n {\n label: \"Macerata\",\n value: \"MC\",\n },\n {\n label: \"Mantua\",\n value: \"MN\",\n },\n {\n label: \"Massa and Carrara\",\n value: \"MS\",\n },\n {\n label: \"Matera\",\n value: \"MT\",\n },\n {\n label: \"Medio Campidano\",\n value: \"VS\",\n },\n {\n label: \"Messina\",\n value: \"ME\",\n },\n {\n label: \"Milan\",\n value: \"MI\",\n },\n {\n label: \"Modena\",\n value: \"MO\",\n },\n {\n label: \"Monza and Brianza\",\n value: \"MB\",\n },\n {\n label: \"Naples\",\n value: \"NA\",\n },\n {\n label: \"Novara\",\n value: \"NO\",\n },\n {\n label: \"Nuoro\",\n value: \"NU\",\n },\n {\n label: \"Ogliastra\",\n value: \"OG\",\n },\n {\n label: \"Olbia-Tempio\",\n value: \"OT\",\n },\n {\n label: \"Oristano\",\n value: \"OR\",\n },\n {\n label: \"Padua\",\n value: \"PD\",\n },\n {\n label: \"Palermo\",\n value: \"PA\",\n },\n {\n label: \"Parma\",\n value: \"PR\",\n },\n {\n label: \"Pavia\",\n value: \"PV\",\n },\n {\n label: \"Perugia\",\n value: \"PG\",\n },\n {\n label: \"Pesaro and Urbino\",\n value: \"PU\",\n },\n {\n label: \"Pescara\",\n value: \"PE\",\n },\n {\n label: \"Piacenza\",\n value: \"PC\",\n },\n {\n label: \"Pisa\",\n value: \"PI\",\n },\n {\n label: \"Pistoia\",\n value: \"PT\",\n },\n {\n label: \"Pordenone\",\n value: \"PN\",\n },\n {\n label: \"Potenza\",\n value: \"PZ\",\n },\n {\n label: \"Prato\",\n value: \"PO\",\n },\n {\n label: \"Ragusa\",\n value: \"RG\",\n },\n {\n label: \"Ravenna\",\n value: \"RA\",\n },\n {\n label: \"Reggio Calabria\",\n value: \"RC\",\n },\n {\n label: \"Reggio Emilia\",\n value: \"RE\",\n },\n {\n label: \"Rieti\",\n value: \"RI\",\n },\n {\n label: \"Rimini\",\n value: \"RN\",\n },\n {\n label: \"Rome\",\n value: \"RM\",\n },\n {\n label: \"Rovigo\",\n value: \"RO\",\n },\n {\n label: \"Salerno\",\n value: \"SA\",\n },\n {\n label: \"Sassari\",\n value: \"SS\",\n },\n {\n label: \"Savona\",\n value: \"SV\",\n },\n {\n label: \"Siena\",\n value: \"SI\",\n },\n {\n label: \"Sondrio\",\n value: \"SO\",\n },\n {\n label: \"South Sardinia\",\n value: \"SU\",\n },\n {\n label: \"Syracuse\",\n value: \"SR\",\n },\n {\n label: \"Taranto\",\n value: \"TA\",\n },\n {\n label: \"Teramo\",\n value: \"TE\",\n },\n {\n label: \"Terni\",\n value: \"TR\",\n },\n {\n label: \"Trapani\",\n value: \"TP\",\n },\n {\n label: \"Trento\",\n value: \"TN\",\n },\n {\n label: \"Treviso\",\n value: \"TV\",\n },\n {\n label: \"Trieste\",\n value: \"TS\",\n },\n {\n label: \"Turin\",\n value: \"TO\",\n },\n {\n label: \"Udine\",\n value: \"UD\",\n },\n {\n label: \"Varese\",\n value: \"VA\",\n },\n {\n label: \"Venice\",\n value: \"VE\",\n },\n {\n label: \"Verbano-Cusio-Ossola\",\n value: \"VB\",\n },\n {\n label: \"Vercelli\",\n value: \"VC\",\n },\n {\n label: \"Verona\",\n value: \"VR\",\n },\n {\n label: \"Vibo Valentia\",\n value: \"VV\",\n },\n {\n label: \"Vicenza\",\n value: \"VI\",\n },\n {\n label: \"Viterbo\",\n value: \"VT\",\n },\n]\n\nconst statesUs: State[] = [\n {\n label: \"Alabama\",\n value: \"AL\",\n },\n {\n label: \"Alaska\",\n value: \"AK\",\n },\n {\n label: \"Arizona\",\n value: \"AZ\",\n },\n {\n label: \"Arkansas\",\n value: \"AR\",\n },\n {\n label: \"California\",\n value: \"CA\",\n },\n {\n label: \"Colorado\",\n value: \"CO\",\n },\n {\n label: \"Connecticut\",\n value: \"CT\",\n },\n {\n label: \"Delaware\",\n value: \"DE\",\n },\n {\n label: \"District of Columbia\",\n value: \"DC\",\n },\n {\n label: \"Florida\",\n value: \"FL\",\n },\n {\n label: \"Georgia\",\n value: \"GA\",\n },\n {\n label: \"Hawaii\",\n value: \"HI\",\n },\n {\n label: \"Idaho\",\n value: \"ID\",\n },\n {\n label: \"Illinois\",\n value: \"IL\",\n },\n {\n label: \"Indiana\",\n value: \"IN\",\n },\n {\n label: \"Iowa\",\n value: \"IA\",\n },\n {\n label: \"Kansas\",\n value: \"KS\",\n },\n {\n label: \"Kentucky\",\n value: \"KY\",\n },\n {\n label: \"Louisiana\",\n value: \"LA\",\n },\n {\n label: \"Maine\",\n value: \"ME\",\n },\n {\n label: \"Maryland\",\n value: \"MD\",\n },\n {\n label: \"Massachusetts\",\n value: \"MA\",\n },\n {\n label: \"Michigan\",\n value: \"MI\",\n },\n {\n label: \"Minnesota\",\n value: \"MN\",\n },\n {\n label: \"Mississippi\",\n value: \"MS\",\n },\n {\n label: \"Missouri\",\n value: \"MO\",\n },\n {\n label: \"Montana\",\n value: \"MT\",\n },\n {\n label: \"Nebraska\",\n value: \"NE\",\n },\n {\n label: \"Nevada\",\n value: \"NV\",\n },\n {\n label: \"New Hampshire\",\n value: \"NH\",\n },\n {\n label: \"New Jersey\",\n value: \"NJ\",\n },\n {\n label: \"New Mexico\",\n value: \"NM\",\n },\n {\n label: \"New York\",\n value: \"NY\",\n },\n {\n label: \"North Carolina\",\n value: \"NC\",\n },\n {\n label: \"North Dakota\",\n value: \"ND\",\n },\n {\n label: \"Ohio\",\n value: \"OH\",\n },\n {\n label: \"Oklahoma\",\n value: \"OK\",\n },\n {\n label: \"Oregon\",\n value: \"OR\",\n },\n {\n label: \"Pennsylvania\",\n value: \"PA\",\n },\n {\n label: \"Rhode Island\",\n value: \"RI\",\n },\n {\n label: \"South Carolina\",\n value: \"SC\",\n },\n {\n label: \"South Dakota\",\n value: \"SD\",\n },\n {\n label: \"Tennessee\",\n value: \"TN\",\n },\n {\n label: \"Texas\",\n value: \"TX\",\n },\n {\n label: \"Utah\",\n value: \"UT\",\n },\n {\n label: \"Vermont\",\n value: \"VT\",\n },\n {\n label: \"Virginia\",\n value: \"VA\",\n },\n {\n label: \"Washington\",\n value: \"WA\",\n },\n {\n label: \"West Virginia\",\n value: \"WV\",\n },\n {\n label: \"Wisconsin\",\n value: \"WI\",\n },\n {\n label: \"Wyoming\",\n value: \"WY\",\n },\n]\n\ntype CountryCode = (typeof defaultCountries)[number][\"value\"]\n\nexport interface Country {\n value: CountryCode\n label: string\n}\n\ninterface State {\n label: string\n value: string\n}\n\nexport type States = Partial<Record<CountryCode, State[]>>\n\nconst defaultStates: States = {\n US: statesUs,\n IT: statesIt,\n}\n","import { createContext } from 'react'\nimport type { AddressCountrySelectName, AddressInputName } from '#typings'\nimport type { AddressField } from '#reducers/AddressReducer'\n\nexport interface DefaultContextAddress {\n // biome-ignore lint/suspicious/noConfusingVoidType: <explanation>\n validation?: void\n setValue?: (\n name: AddressField | AddressInputName | AddressCountrySelectName,\n value: any\n ) => void\n errors?: Record<\n string,\n {\n code: string\n message: string\n error: boolean\n }\n >\n errorClassName?: string\n requiresBillingInfo?: boolean\n resetField?: (name: string) => void\n values?: Record<string, any>\n}\n\nconst CustomerAddressFormContext = createContext<DefaultContextAddress>({})\n\nexport default CustomerAddressFormContext\n","import { useContext, useEffect, useMemo, type JSX } from 'react';\nimport BaseSelect from '../utils/BaseSelect'\nimport type { BaseSelectComponentProps } from '#typings'\nimport BillingAddressFormContext, {\n type AddressValuesKeys\n} from '#context/BillingAddressFormContext'\nimport ShippingAddressFormContext from '#context/ShippingAddressFormContext'\nimport { getCountries, type Country } from '#utils/countryStateCity'\nimport CustomerAddressFormContext from '#context/CustomerAddressFormContext'\n\ntype TCountryFieldName =\n | 'billing_address_country_code'\n | 'shipping_address_country_code'\n | 'customer_address_country_code'\n\ninterface Props\n extends Omit<BaseSelectComponentProps, 'options' | 'name'>,\n Pick<JSX.IntrinsicElements['select'], 'className' | 'id' | 'style'> {\n name: Extract<AddressValuesKeys, TCountryFieldName>\n required?: boolean\n disabled?: boolean\n /**\n * Optional country list to override default ones.\n */\n countries?: Country[]\n}\n\n/**\n * The AddressInput component creates a form `select` related to the `country_code` attribute of the `address` object.\n *\n * It requires a `name` prop to define the field name associated with the select and accepts most of HTML `select` tag standard props.\n *\n * <span title=\"Name prop\" type=\"info\">\n * The `name` prop must respect the convention of mentioning one of the available addresses forms (`billing_address` or `shipping_address` or `customer_address`) concatenated to the `country_code` address attribute with a `_` separator. Eg.: `billing_address_country_code`.\n * </span>\n *\n * <span title=\"Requirement\" type=\"warning\">\n * It must to be used inside either the `<BillingAddressForm>` or the `<ShippingAddressForm>` component.\n * </span>\n *\n * <span title=\"Fields\" type=\"info\">\n * Check the `addresses` resource from our [Core API documentation](https://docs.commercelayer.io/core/v/api-reference/addresses/object)\n * for more details about the available attributes to render.\n * </span>\n */\nexport function AddressCountrySelector(props: Props): JSX.Element {\n const { required = true, value, name, className, countries, ...p } = props\n const billingAddress = useContext(BillingAddressFormContext)\n const shippingAddress = useContext(ShippingAddressFormContext)\n const customerAddress = useContext(CustomerAddressFormContext)\n useEffect(() => {\n if (value && billingAddress?.setValue) {\n billingAddress.setValue(name, value)\n }\n if (value && shippingAddress?.setValue) {\n shippingAddress.setValue(name, value)\n }\n if (value && customerAddress?.setValue) {\n customerAddress.setValue(name, value)\n }\n }, [value])\n\n const hasError = useMemo(() => {\n if (billingAddress?.errors?.[name]?.error) {\n return true\n }\n if (shippingAddress?.errors?.[name]?.error) {\n return true\n }\n if (customerAddress?.errors?.[name]?.error) {\n return true\n }\n return false\n }, [\n value,\n billingAddress?.errors,\n shippingAddress?.errors,\n customerAddress?.errors\n ])\n const errorClassName =\n billingAddress?.errorClassName ||\n shippingAddress?.errorClassName ||\n customerAddress?.errorClassName\n const classNameComputed = `${className ?? ''} ${\n hasError && errorClassName ? errorClassName : ''\n }`\n return (\n <BaseSelect\n className={classNameComputed}\n ref={\n (billingAddress?.validation as any) ||\n shippingAddress?.validation ||\n customerAddress?.validation\n }\n required={required}\n options={getCountries(countries)}\n name={name}\n value={value}\n {...p}\n />\n )\n}\n\nexport default AddressCountrySelector\n","import { useContext, type ReactNode, type JSX } from 'react';\nimport AddressChildrenContext from '#context/AddressChildrenContext'\nimport Parent from '#components/utils/Parent'\nimport type { AddressFieldView } from '#reducers/AddressReducer'\nimport type { Address } from '@commercelayer/sdk'\nimport CustomerContext from '#context/CustomerContext'\nimport type { ChildrenFunction } from '#typings/index'\n\ninterface ChildrenProps extends Omit<Props, 'children' | 'name'> {\n address: Address\n}\n\ntype ChildrenProp = ChildrenFunction<ChildrenProps>\n\ntype Props =\n | {\n type?: 'field'\n label?: never\n onClick?: never\n children?: ChildrenProp\n name: AddressFieldView\n className?: string\n }\n | {\n type?: 'edit'\n label: string | ReactNode\n onClick: (address: Address) => void\n children?: ChildrenProp\n name?: AddressFieldView\n className?: string\n }\n | {\n type?: 'delete'\n label: string\n onClick: () => void\n children?: ChildrenProp\n name?: AddressFieldView\n className?: string\n }\n | {\n type?: 'edit' | 'field' | 'delete'\n label?: never\n onClick?: never\n children: ChildrenProp\n name?: never\n className?: string\n }\n\n/**\n * The AddressField component displays any attribute of the `address` object set in the state of the parent `<Address>` component.\n *\n * It accepts a `name` prop to define the attribute to be shown.\n * It also accepts:\n * - a `type` props to enable different kind of behaviors like `field` (default), `edit` or `delete`.\n * - a `label` props to show a custom label if chosen `type` is `edit` or `delete`.\n * - an `onClick` props to define a custom click behavior.\n *\n * <span title=\"Type `delete`\" type=\"info\">\n * Only in case `type` is set to `delete` a default `onClick` behavior will be set to manage current address removal.\n * </span>\n *\n * <span title=\"Requirement\" type=\"warning\">\n * It must to be used inside the `<Address>` component.\n * </span>\n *\n * <span title=\"Fields\" type=\"info\">\n * Check the `addresses` resource from our [Core API documentation](https://docs.commercelayer.io/core/v/api-reference/addresses/object)\n * for more details about the available attributes to render.\n * </span>\n */\nexport function AddressField(props: Props): JSX.Element {\n const { name, type = 'field', label, onClick, ...p } = props\n const { address } = useContext(AddressChildrenContext)\n const text = name && address ? address?.[name] : ''\n const { deleteCustomerAddress } = useContext(CustomerContext)\n const handleClick = (e: React.MouseEvent<HTMLAnchorElement>): void => {\n e.stopPropagation()\n e.preventDefault()\n if (type === 'delete' && deleteCustomerAddress && address?.reference) {\n deleteCustomerAddress({ customerAddressId: address?.reference })\n }\n address && onClick && onClick(address)\n }\n const parentProps = {\n address,\n ...props\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : type === 'field' ? (\n <p data-testid={`address-field-${name ?? ''}`} {...{ ...p, name }}>\n {text}\n </p>\n ) : (\n <a data-testid={`address-field-${name ?? ''}`} {...p} onClick={handleClick}>\n {label}\n </a>\n )\n}\n\nexport default AddressField\n","import { useContext, useEffect, useMemo, type JSX } from 'react';\nimport BaseInput from '#components/utils/BaseInput'\nimport type { BaseInputComponentProps, AddressInputName } from '#typings'\nimport BillingAddressFormContext, {\n type AddressValuesKeys\n} from '#context/BillingAddressFormContext'\nimport ShippingAddressFormContext from '#context/ShippingAddressFormContext'\nimport { businessMandatoryField } from '#utils/validateFormFields'\nimport CustomerAddressFormContext from '#context/CustomerAddressFormContext'\n\ntype Props = {\n /**\n * The name of the input.\n */\n name: Extract<AddressValuesKeys, AddressInputName>\n /**\n * @deprecated\n * Used to add a custom validation rule. Accept a regex as param.\n */\n pattern?: RegExp\n} & Omit<BaseInputComponentProps, 'name'> &\n Omit<JSX.IntrinsicElements['input'], 'pattern'> &\n Omit<JSX.IntrinsicElements['textarea'], 'children' | 'pattern'>\n\n/**\n * The AddressInput component creates a form `input` related to a particular address attribute.\n *\n * It requires a `name` prop to define the field name associated with the input and accepts most of HTML `input` tag standard props.\n *\n * <span title=\"Name prop\" type=\"info\">\n * The `name` prop must respect the convention of mentioning one of the available addresses forms (`billing_address` or `shipping_address` or `customer_address`) concatenated to the address attribute name with a `_` separator. Eg.: `billing_address_first_name`.\n * </span>\n *\n * <span title=\"Requirement\" type=\"warning\">\n * It must to be used inside either the `<BillingAddressForm>` or the `<ShippingAddressForm>` component.\n * </span>\n *\n * <span title=\"Fields\" type=\"info\">\n * Check the `addresses` resource from our [Core API documentation](https://docs.commercelayer.io/core/v/api-reference/addresses/object)\n * for more details about the available attributes to render.\n * </span>\n */\nexport function AddressInput(props: Props): JSX.Element | null {\n const { placeholder = '', required, value, className, ...p } = props\n const billingAddress = useContext(BillingAddressFormContext)\n const shippingAddress = useContext(ShippingAddressFormContext)\n const customerAddress = useContext(CustomerAddressFormContext)\n useEffect(() => {\n if (value && billingAddress?.setValue) {\n billingAddress.setValue(p.name, value)\n }\n if (value && shippingAddress?.setValue) {\n shippingAddress.setValue(p.name, value)\n }\n if (value && customerAddress?.setValue) {\n customerAddress.setValue(p.name, value)\n }\n }, [value])\n\n const hasError = useMemo(() => {\n if (billingAddress?.errors?.[p.name]?.error) {\n return true\n }\n if (shippingAddress?.errors?.[p.name]?.error) {\n return true\n }\n if (customerAddress?.errors?.[p.name]?.error) {\n return true\n }\n return false\n }, [\n value,\n billingAddress?.errors,\n shippingAddress?.errors,\n customerAddress?.errors\n ])\n\n const mandatoryField = billingAddress?.isBusiness\n ? businessMandatoryField(p.name, billingAddress.isBusiness)\n : businessMandatoryField(p.name, shippingAddress.isBusiness)\n const reqField = required !== undefined ? required : mandatoryField\n const errorClassName =\n billingAddress?.errorClassName || shippingAddress?.errorClassName\n const classNameComputed = `${className || ''} ${\n hasError && errorClassName ? errorClassName : ''\n }`\n if (\n p.name === 'billing_address_billing_info' &&\n billingAddress.requiresBillingInfo === false &&\n required === undefined\n )\n return null\n if (\n p.name === 'shipping_address_billing_info' &&\n shippingAddress.requiresBillingInfo === false &&\n required === undefined\n )\n return null\n return (\n <BaseInput\n ref={\n (billingAddress?.validation as any) ||\n shippingAddress?.validation ||\n customerAddress?.validation\n }\n className={classNameComputed}\n required={reqField}\n placeholder={placeholder}\n defaultValue={value}\n {...p}\n />\n )\n}\n\nexport default AddressInput\n","import { useContext, useEffect, useMemo, type JSX } from 'react';\nimport BaseSelect from '../utils/BaseSelect'\nimport type { BaseSelectComponentProps } from '#typings'\nimport BillingAddressFormContext, {\n type AddressValuesKeys\n} from '#context/BillingAddressFormContext'\nimport ShippingAddressFormContext from '#context/ShippingAddressFormContext'\n\ntype SelectFieldName =\n | `billing_address_${`metadata_${string}`}`\n | `shipping_address_${`metadata_${string}`}`\n\ninterface Props\n extends Omit<BaseSelectComponentProps, 'name'>,\n Pick<JSX.IntrinsicElements['select'], 'className' | 'id' | 'style'> {\n name: Extract<AddressValuesKeys, SelectFieldName>\n required?: boolean\n disabled?: boolean\n}\n\n/**\n * The AddressInputSelect component creates a form `select` related to the `metadata` attribute of the `address` object.\n *\n * It requires a `name` prop to define the field name associated with the select and accepts most of HTML `select` tag standard props.\n *\n * <span title=\"Name prop\" type=\"info\">\n * The `name` prop must respect the convention of mentioning one of the available addresses forms (`billing_address` or `shipping_address`) concatenated to the `metadata` address attribute with a `_` separator. Eg.: `billing_address_metadata_your-key`.\n * </span>\n *\n * <span title=\"Requirement\" type=\"warning\">\n * It must to be used inside either the `<BillingAddressForm>` or the `<ShippingAddressForm>` component.\n * </span>\n *\n * <span title=\"Fields\" type=\"info\">\n * Check the `addresses` resource from our [Core API documentation](https://docs.commercelayer.io/core/v/api-reference/addresses/object)\n * for more details about the available attributes to render.\n * </span>\n */\nexport function AddressInputSelect(props: Props): JSX.Element {\n const { required = true, value, name, className, options, ...p } = props\n const billingAddress = useContext(BillingAddressFormContext)\n const shippingAddress = useContext(ShippingAddressFormContext)\n useEffect(() => {\n if (value && billingAddress?.setValue) {\n billingAddress.setValue(name, value)\n }\n if (value && shippingAddress?.setValue) {\n shippingAddress.setValue(name, value)\n }\n }, [value])\n\n const hasError = useMemo(() => {\n if (billingAddress?.errors?.[name]?.error) {\n return true\n }\n if (shippingAddress?.errors?.[name]?.error) {\n return true\n }\n return false\n }, [value, billingAddress?.errors, shippingAddress?.errors])\n const errorClassName =\n billingAddress?.errorClassName || shippingAddress?.errorClassName\n const classNameComputed = `${className ?? ''} ${\n hasError && errorClassName ? errorClassName : ''\n }`\n return (\n <BaseSelect\n className={classNameComputed}\n ref={(billingAddress?.validation as any) || shippingAddress?.validation}\n required={required}\n options={options}\n name={name}\n value={value}\n {...p}\n />\n )\n}\n\nexport default AddressInputSelect\n","import { useContext, useEffect, useMemo, useState, type JSX } from \"react\"\nimport BaseSelect from \"#components/utils/BaseSelect\"\nimport type { AddressStateSelectName, BaseSelectComponentProps } from \"#typings\"\nimport BillingAddressFormContext from \"#context/BillingAddressFormContext\"\nimport ShippingAddressFormContext from \"#context/ShippingAddressFormContext\"\nimport isEmpty from \"lodash-es/isEmpty\"\nimport {\n getStateOfCountry,\n isValidState,\n type States,\n} from \"#utils/countryStateCity\"\nimport AddressesContext from \"#context/AddressContext\"\nimport BaseInput from \"#components/utils/BaseInput\"\nimport CustomerAddressFormContext from \"#context/CustomerAddressFormContext\"\n\ntype Props = Omit<BaseSelectComponentProps, \"options\" | \"name\"> & {\n name: AddressStateSelectName\n required?: boolean\n disabled?: boolean\n inputClassName?: string\n selectClassName?: string\n /**\n * Optional states list to extend the default one.\n * This component will try to render a select getting as options the states found for the selected country.\n * If the country has no states, it will render a text input field instead.\n */\n states?: States\n} & Pick<JSX.IntrinsicElements[\"select\"], \"className\" | \"id\" | \"style\">\n\n/**\n * The AddressInput component creates a form `select` related to the `state_code` attribute of the `address` object.\n *\n * It requires a `name` prop to define the field name associated with the select and accepts most of HTML `select` tag standard props.\n *\n * <span title=\"Name prop\" type=\"info\">\n * The `name` prop must respect the convention of mentioning one of the available addresses forms (`billing_address` or `shipping_address`) concatenated to the `state_code` address attribute with a `_` separator. Eg.: `billing_address_state_code`.\n * </span>\n *\n * <span title=\"Requirement\" type=\"warning\">\n * It must to be used inside either the `<BillingAddressForm>` or the `<ShippingAddressForm>` component.\n * </span>\n *\n * <span title=\"Fields\" type=\"info\">\n * Check the `addresses` resource from our [Core API documentation](https://docs.commercelayer.io/core/v/api-reference/addresses/object)\n * for more details about the available attributes to render.\n * </span>\n */\nexport function AddressStateSelector(props: Props): JSX.Element {\n const {\n required = false,\n value,\n name,\n className = \"\",\n inputClassName = \"\",\n selectClassName = \"\",\n states,\n ...p\n } = props\n const billingAddress = useContext(BillingAddressFormContext)\n const shippingAddress = useContext(ShippingAddressFormContext)\n const customerAddress = useContext(CustomerAddressFormContext)\n const { errors: addressErrors } = useContext(AddressesContext)\n const [hasError, setHasError] = useState(false)\n const [countryCode, setCountryCode] = useState(\"\")\n const [val, setVal] = useState(value ?? \"\")\n\n const stateOptions = useMemo(() => {\n if (isEmpty(countryCode)) {\n return []\n }\n return getStateOfCountry({\n countryCode,\n states,\n })\n }, [states, countryCode])\n\n const isEmptyStates = useMemo(\n () => () => isEmpty(stateOptions),\n [stateOptions],\n )\n\n useEffect(() => {\n const billingCountryCode =\n typeof billingAddress?.values?.billing_address_country_code === \"string\"\n ? billingAddress?.values?.billing_address_country_code\n : billingAddress?.values?.billing_address_country_code?.value\n if (billingCountryCode && billingCountryCode !== countryCode)\n setCountryCode(billingCountryCode)\n const shippingCountryCode =\n typeof shippingAddress?.values?.shipping_address_country_code === \"string\"\n ? shippingAddress?.values?.shipping_address_country_code\n : shippingAddress?.values?.shipping_address_country_code?.value\n if (shippingCountryCode && shippingCountryCode !== countryCode)\n setCountryCode(shippingCountryCode)\n const changeBillingCountry = [\n Object.keys(billingAddress).length > 0,\n billingCountryCode,\n countryCode !== billingCountryCode,\n ].every(Boolean)\n if (\n !changeBillingCountry &&\n value != null &&\n value !== \"\" &&\n value !== val\n ) {\n if (billingAddress.setValue != null) {\n billingAddress?.setValue(name, value)\n }\n setVal(value)\n }\n if (\n changeBillingCountry &&\n billingCountryCode &&\n !isValidState({\n stateCode: val ?? \"\",\n countryCode: billingCountryCode,\n states,\n }) &&\n !isEmptyStates()\n ) {\n if (billingAddress.resetField) billingAddress?.resetField(name)\n setVal(\"\")\n }\n const changeShippingCountry = [\n !isEmpty(shippingAddress),\n shippingCountryCode,\n countryCode !== shippingCountryCode,\n ].every(Boolean)\n if (\n !changeShippingCountry &&\n value != null &&\n value !== \"\" &&\n value !== val\n ) {\n if (shippingAddress.setValue != null) {\n shippingAddress?.setValue(name, value)\n }\n setVal(value)\n }\n if (\n changeShippingCountry &&\n shippingCountryCode &&\n !isValidState({\n stateCode: val ?? \"\",\n countryCode: shippingCountryCode,\n states,\n }) &&\n !isEmptyStates()\n ) {\n if (shippingAddress.resetField) shippingAddress?.resetField(name)\n setVal(\"\")\n }\n if (!isEmpty(billingAddress)) {\n const fieldError = billingAddress?.errors?.[name]?.error\n if (!fieldError) setHasError(false)\n else setHasError(true)\n }\n if (!isEmpty(customerAddress)) {\n const fieldError = customerAddress?.errors?.[name]?.error\n if (!fieldError) setHasError(false)\n else setHasError(true)\n }\n if (!isEmpty(shippingAddress)) {\n const fieldError = shippingAddress?.errors?.[name]?.error\n if (!fieldError) setHasError(false)\n else setHasError(true)\n }\n return () => {\n setHasError(false)\n }\n }, [\n value,\n billingAddress?.values?.billing_address_country_code,\n shippingAddress?.values?.shipping_address_country_code,\n addressErrors,\n customerAddress,\n ])\n const errorClassName =\n billingAddress?.errorClassName ||\n shippingAddress?.errorClassName ||\n customerAddress?.errorClassName ||\n \"\"\n const classNameComputed = !isEmptyStates()\n ? `${className} ${selectClassName} ${hasError ? errorClassName : \"\"}`\n : `${className} ${inputClassName} ${hasError ? errorClassName : \"\"}`\n return !isEmptyStates() ? (\n <BaseSelect\n {...p}\n className={classNameComputed}\n ref={\n (billingAddress?.validation as any) ||\n shippingAddress?.validation ||\n customerAddress?.validation\n }\n required={required}\n options={stateOptions}\n name={name}\n value={val}\n />\n ) : (\n <BaseInput\n {...(p as any)}\n name={name}\n ref={\n (billingAddress?.validation as any) ||\n shippingAddress?.validation ||\n customerAddress?.validation\n }\n className={classNameComputed}\n required={required}\n placeholder={p.placeholder?.label || \"\"}\n defaultValue={val}\n type=\"text\"\n onChange={(e) => {\n setVal(e.target.value)\n if (billingAddress.setValue != null) {\n billingAddress.setValue(name, e.target.value)\n }\n if (shippingAddress.setValue != null) {\n shippingAddress.setValue(name, e.target.value)\n }\n }}\n />\n )\n}\n\nexport default AddressStateSelector\n","import { createContext } from 'react'\n\nexport interface CommerceLayerConfig {\n accessToken?: string\n endpoint?: string\n}\n\nconst initial: CommerceLayerConfig = {}\n\nconst CommerceLayerContext = createContext(initial)\n\nexport default CommerceLayerContext\n","import AddressesContext, {\n defaultAddressContext\n} from '#context/AddressContext'\nimport { type ReactNode, useContext, useEffect, useReducer, type JSX } from 'react';\nimport addressReducer, {\n addressInitialState,\n type AddressResource,\n setAddressErrors,\n type SetAddressParams,\n setCloneAddress,\n saveAddresses,\n type ICustomerAddress\n} from '#reducers/AddressReducer'\nimport type { BaseError } from '#typings/errors'\nimport OrderContext from '#context/OrderContext'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport { setCustomerOrderParam } from '#utils/localStorage'\nimport type { TCustomerAddress } from '#reducers/CustomerReducer'\n\ninterface Props {\n children: ReactNode\n /**\n * If true, the shipping address will be considered. Default is false.\n */\n shipToDifferentAddress?: boolean\n /**\n * If true, the address will be considered a business address.\n */\n isBusiness?: boolean\n /**\n * If true, the shipping address will be considered as primary address. Default is false.\n */\n invertAddresses?: boolean\n}\n\n/**\n * Main container for the Addresses components.\n * It provides demanded functionalities to show/manage an address or a series of addresses depending on the context in use.\n * In addition it provides order oriented functionalities to manage billing and shipping addresses.\n *\n * It accept:\n * - a `shipToDifferentAddress` prop to define if the order related shipping address will be different from the billing one.\n * - a `isBusiness` prop to define if the current address needs to be threated as a `business` address during creation/update.\n *\n * <span title='Requirements' type='warning'>\n * Must be a child of the `<CommerceLayer>` component.\n * </span>\n * <span title='Children' type='info'>\n * `<BillingAddressContainer>`,\n * `<BillingAddressForm>`,\n * `<ShippingAddressContainer>`,\n * `<ShippingAddressForm>`,\n * `<CustomerAddressForm>`,\n * `<AddressesEmpty>`,\n * `<Addresses>`\n * </span>\n */\nexport function AddressesContainer(props: Props): JSX.Element {\n const {\n children,\n shipToDifferentAddress = false,\n isBusiness,\n invertAddresses = false\n } = props\n const [state, dispatch] = useReducer(addressReducer, addressInitialState)\n const { order, orderId, updateOrder } = useContext(OrderContext)\n const config = useContext(CommerceLayerContext)\n useEffect(() => {\n setCustomerOrderParam(\n '_save_billing_address_to_customer_address_book',\n 'false'\n )\n setCustomerOrderParam(\n '_save_shipping_address_to_customer_address_book',\n 'false'\n )\n }, [])\n useEffect(() => {\n dispatch({\n type: 'setShipToDifferentAddress',\n payload: {\n shipToDifferentAddress,\n isBusiness,\n invertAddresses\n }\n })\n return () => {\n dispatch({\n type: 'cleanup',\n payload: {}\n })\n }\n }, [shipToDifferentAddress, isBusiness, invertAddresses])\n const contextValue = {\n ...state,\n setAddressErrors: (errors: BaseError[], resource: AddressResource) => {\n setAddressErrors({\n errors,\n resource,\n dispatch,\n currentErrors: state.errors\n })\n },\n setAddress: (params: SetAddressParams<TCustomerAddress>) => {\n defaultAddressContext.setAddress({ ...params, dispatch })\n },\n saveAddresses: async (params: {\n customerEmail?: string\n customerAddress?: ICustomerAddress\n }): ReturnType<typeof saveAddresses> =>\n await saveAddresses({\n config,\n dispatch,\n updateOrder,\n order,\n orderId,\n state,\n ...params\n }),\n setCloneAddress: (id: string, resource: AddressResource): void => {\n setCloneAddress(id, resource, dispatch)\n }\n }\n return (\n <AddressesContext.Provider value={contextValue}>\n {children}\n </AddressesContext.Provider>\n )\n}\n\nexport default AddressesContainer\n","import Parent from '#components/utils/Parent'\nimport CustomerContext from '#context/CustomerContext'\nimport type { ChildrenFunction } from '#typings/index'\nimport { useContext, type JSX } from 'react';\n\ninterface Props extends Omit<JSX.IntrinsicElements['span'], 'children'> {\n /**\n * Function allow you to customize the component\n */\n children?: ChildrenFunction<Omit<Props, 'children'>>\n /**\n * Label to show. Default: 'No addresses available.'\n */\n emptyText?: string\n}\n\n/**\n * The AddressesEmpty component is aimed to display a message in case no customer address is available, otherwise it won't show.\n *\n * It accepts an optional `emptyText` prop to customize default message.\n *\n * It is also possible to wrap inside this component any children elements to create a completely custom experience regarding the absence of customer addresses.\n *\n * <span title=\"Requirement\" type=\"warning\">\n * It must to be used inside the `<AddressesContainer>` component.\n * </span>\n *\n */\nexport function AddressesEmpty(props: Props): JSX.Element | null {\n const { children, emptyText = 'No addresses available.', ...p } = props\n const { addresses } = useContext(CustomerContext)\n const parentProps = { emptyText, ...p }\n if (addresses == null || addresses.length > 0) {\n return null\n }\n return children !== undefined ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <span data-testid='addresses-empty' {...p}>\n {emptyText}\n </span>\n )\n}\n\nexport default AddressesEmpty\n","import baseReducer from '#utils/baseReducer'\nimport type { Dispatch } from 'react'\nimport type { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport type { AddressUpdate, Order } from '@commercelayer/sdk'\nimport getSdk from '#utils/getSdk'\nimport type { AddressResource } from './AddressReducer'\n\nexport type BillingAddressActionType =\n | 'setBillingAddress'\n | 'setBillingCustomerAddressId'\n | 'cleanup'\n\nexport interface BillingAddressActionPayload {\n _billing_address_clone_id: string\n billingCustomerAddressId: string\n}\n\nexport type BillingAddressState = Partial<BillingAddressActionPayload>\n\nexport interface BillingAddressAction {\n type: BillingAddressActionType\n payload: Partial<BillingAddressActionPayload>\n}\n\nexport const billingAddressInitialState: BillingAddressState = {\n _billing_address_clone_id: ''\n}\n\nexport type SetBillingAddress = (\n id: string,\n options?: {\n config: CommerceLayerConfig\n dispatch: Dispatch<BillingAddressAction>\n order?: Order\n shipToDifferentAddress?: boolean\n customerAddressId?: string\n }\n) => Promise<void>\n\nexport const setBillingAddress: SetBillingAddress = async (id, options) => {\n try {\n if (options?.order) {\n if (options.customerAddressId) {\n const sdk = getSdk(options.config)\n const attributes: AddressUpdate = {\n id,\n reference: options.customerAddressId\n }\n await sdk.addresses.update(attributes)\n }\n options.dispatch({\n type: 'setBillingAddress',\n payload: {\n _billing_address_clone_id: id\n }\n })\n }\n } catch (error) {\n console.error('Set billing address', error)\n }\n}\n\ninterface SetBillingCustomerAddressIdParams {\n dispatch: Dispatch<BillingAddressAction>\n order: Order\n setCloneAddress: (id: string, resource: AddressResource) => void\n}\n\nexport function setBillingCustomerAddressId({\n dispatch,\n order,\n setCloneAddress\n}: SetBillingCustomerAddressIdParams): void {\n const customerAddressId = order?.billing_address?.reference\n try {\n if (customerAddressId) {\n dispatch({\n type: 'setBillingCustomerAddressId',\n payload: { billingCustomerAddressId: customerAddressId }\n })\n setCloneAddress(customerAddressId, 'billing_address')\n }\n } catch (error) {\n console.error('error', error)\n }\n}\n\nconst type: BillingAddressActionType[] = [\n 'setBillingAddress',\n 'setBillingCustomerAddressId',\n 'cleanup'\n]\n\nconst billingAddressReducer = (\n state: BillingAddressState,\n reducer: BillingAddressAction\n): BillingAddressState =>\n baseReducer<\n BillingAddressState,\n BillingAddressAction,\n BillingAddressActionType[]\n >(state, reducer, type)\n\nexport default billingAddressReducer\n","import BillingAddressContext from '#context/BillingAddressContext'\nimport { type ReactNode, useContext, useEffect, useReducer, type JSX } from 'react';\nimport billingAddressReducer, {\n billingAddressInitialState,\n setBillingAddress,\n setBillingCustomerAddressId\n} from '#reducers/BillingAddressReducer'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport OrderContext from '#context/OrderContext'\nimport AddressContext from '#context/AddressContext'\n\ninterface Props {\n children: ReactNode\n}\nexport function BillingAddressContainer(props: Props): JSX.Element {\n const { children } = props\n const [state, dispatch] = useReducer(\n billingAddressReducer,\n billingAddressInitialState\n )\n const config = useContext(CommerceLayerContext)\n const { order, include, addResourceToInclude } = useContext(OrderContext)\n const { shipToDifferentAddress, setCloneAddress } = useContext(AddressContext)\n useEffect(() => {\n if (!include?.includes('billing_address')) {\n addResourceToInclude({\n newResource: 'billing_address',\n resourcesIncluded: include\n })\n }\n if (order && config) {\n setBillingCustomerAddressId({\n dispatch,\n order,\n setCloneAddress\n })\n }\n return () => {\n dispatch({\n type: 'cleanup',\n payload: {}\n })\n }\n }, [order, include])\n const contextValue = {\n ...state,\n setBillingAddress: async (\n id: string,\n options?: { customerAddressId: string }\n ) => {\n await setBillingAddress(id, {\n config,\n dispatch,\n order,\n shipToDifferentAddress,\n customerAddressId: options?.customerAddressId\n })\n setCloneAddress(id, 'billing_address')\n }\n }\n return (\n <BillingAddressContext.Provider value={contextValue}>\n {children}\n </BillingAddressContext.Provider>\n )\n}\n\nexport default BillingAddressContainer\n","import AddressesContext from '#context/AddressContext'\nimport { useRapidForm } from 'rapid-form'\nimport { type ReactNode, useContext, useEffect, useRef, type JSX } from 'react';\nimport BillingAddressFormContext, {\n type AddressValuesKeys,\n type DefaultContextAddress\n} from '#context/BillingAddressFormContext'\nimport type { BaseError, CodeErrorType } from '#typings/errors'\nimport OrderContext from '#context/OrderContext'\nimport { getSaveBillingAddressToAddressBook } from '#utils/localStorage'\nimport type { CustomFieldMessageError } from '#reducers/AddressReducer'\n\ntype Props = {\n children: ReactNode\n /**\n * Define if current form needs to be reset over a defined boolean condition\n */\n reset?: boolean\n /**\n * Define children input and select classnames assigned in case of validation error.\n */\n errorClassName?: string\n fieldEvent?: 'blur' | 'change'\n /**\n * Callback to customize the error message for a specific field. Called for each error in the form.\n */\n customFieldMessageError?: CustomFieldMessageError\n} & Omit<JSX.IntrinsicElements['form'], 'onSubmit'>\n\n/**\n * Form container for creating or editing an order related billing address or a customer address, depending on the context in use.\n *\n * <span title='Requirements' type='warning'>\n * Must be a child of the `<AddressesContainer>` component.\n * Can optionally be a child of the `<OrderContainer>` component, when it needs to be used in the checkout process and store the billing address in the order object.\n * </span>\n * <span title='Children' type='info'>\n * `<AddressInput>`,\n * `<AddressCountrySelector>`,\n * `<AddressStateSelector>`,\n * `<SaveAddressesButton>`\n * </span>\n */\nexport function BillingAddressForm(props: Props): JSX.Element {\n const {\n children,\n errorClassName,\n autoComplete = 'on',\n reset = false,\n customFieldMessageError,\n fieldEvent = 'change',\n ...p\n } = props\n const {\n validation,\n values,\n errors,\n reset: resetForm,\n setValue: setValueForm,\n setError: setErrorForm\n } = useRapidForm({ fieldEvent })\n const { setAddressErrors, setAddress, isBusiness } =\n useContext(AddressesContext)\n const {\n saveAddressToCustomerAddressBook,\n order,\n include,\n addResourceToInclude,\n includeLoaded\n } = useContext(OrderContext)\n const ref = useRef<HTMLFormElement | null>(null)\n useEffect(() => {\n if (!include?.includes('billing_address')) {\n addResourceToInclude({\n newResource: 'billing_address'\n })\n } else if (!includeLoaded?.billing_address) {\n addResourceToInclude({\n newResourceLoaded: { billing_address: true }\n })\n }\n if (customFieldMessageError != null && Object.keys(values).length > 0) {\n for (const name in values) {\n if (Object.prototype.hasOwnProperty.call(values, name)) {\n const field = values[name]\n const fieldName = field.name\n const value = field.value\n const inError = errors[fieldName] != null\n if (\n customFieldMessageError != null &&\n fieldName != null &&\n value != null\n ) {\n values[fieldName.replace('shipping_address_', '')] = value\n const customMessage = customFieldMessageError({\n field: fieldName,\n value,\n values\n })\n if (customMessage != null) {\n if (typeof customMessage === 'string') {\n if (inError) {\n const errorMsg = errors[fieldName]?.message\n if (errorMsg != null && errorMsg !== customMessage) {\n // @ts-expect-error no type\n errors[fieldName].message = customMessage\n }\n } else {\n setErrorForm({\n name: fieldName,\n code: 'VALIDATION_ERROR',\n message: customMessage\n })\n }\n } else {\n const elements = customMessage\n elements.forEach((element) => {\n const { field, value, isValid, message } = element\n const fieldInError = errors[field] != null\n if (!isValid) {\n if (fieldInError) {\n const errorMsg = errors[field]?.message\n if (errorMsg != null && errorMsg !== message) {\n // @ts-expect-error no type\n errors[field].message = message\n setValueForm(field, value ?? '')\n }\n } else {\n setErrorForm({\n name: field,\n code: 'VALIDATION_ERROR',\n message\n })\n }\n } else {\n if (fieldInError) {\n delete errors[field]\n setValueForm(field, value ?? '')\n }\n }\n })\n }\n }\n }\n }\n }\n }\n if (errors != null && Object.keys(errors).length > 0) {\n const formErrors: BaseError[] = []\n for (const fieldName in errors) {\n const code = errors[fieldName]?.code\n const message = errors[fieldName]?.message\n formErrors.push({\n code: code as CodeErrorType,\n message: message ?? '',\n resource: 'billing_address',\n field: fieldName\n })\n }\n setAddressErrors(formErrors, 'billing_address')\n } else if (values && Object.keys(values).length > 0) {\n setAddressErrors([], 'billing_address')\n for (const name in values) {\n const field = values[name]\n if (\n field?.value ||\n (field?.required === false && field?.type !== 'checkbox')\n ) {\n values[name.replace('billing_address_', '')] = field.value\n \n delete values[name]\n }\n if (field?.type === 'checkbox') {\n \n delete values[name]\n saveAddressToCustomerAddressBook({\n type: 'billing_address',\n value: field.checked\n })\n }\n }\n setAddress({\n // @ts-expect-error no type\n values: {\n ...values,\n ...(isBusiness && { business: isBusiness })\n },\n resource: 'billing_address'\n })\n }\n const checkboxChecked =\n ref.current?.querySelector(\n '[name=\"billing_address_save_to_customer_book\"]'\n // @ts-expect-error no type no types\n )?.checked || getSaveBillingAddressToAddressBook()\n if (\n reset &&\n ((values != null && Object.keys(values).length > 0) ||\n (errors != null && Object.keys(errors).length > 0) ||\n checkboxChecked)\n ) {\n if (saveAddressToCustomerAddressBook) {\n saveAddressToCustomerAddressBook({\n type: 'billing_address',\n value: false\n })\n }\n if (ref) {\n ref.current?.reset()\n // @ts-expect-error no type\n resetForm({ target: ref.current })\n setAddressErrors([], 'billing_address')\n // @ts-expect-error no type\n setAddress({ values: {}, resource: 'billing_address' })\n }\n }\n }, [errors, values, reset, include, includeLoaded, isBusiness])\n const setValue = (\n name: AddressValuesKeys,\n value: string | number | readonly string[]\n ): void => {\n setValueForm(name, value as string)\n const field: any = {\n [name.replace('billing_address_', '')]: value\n }\n setAddress({\n values: {\n ...values,\n ...field,\n ...(isBusiness && { business: isBusiness })\n },\n resource: 'billing_address'\n })\n }\n const providerValues = {\n isBusiness,\n values: values as DefaultContextAddress['values'],\n validation,\n setValue,\n errorClassName,\n requiresBillingInfo: order?.requires_billing_info || false,\n errors: errors as any,\n resetField: (name: string) => {\n // @ts-expect-error no type\n resetForm({ currentTarget: ref.current }, name)\n }\n }\n return (\n <BillingAddressFormContext.Provider value={providerValues}>\n <form ref={ref} autoComplete={autoComplete} {...p}>\n {children}\n </form>\n </BillingAddressFormContext.Provider>\n )\n}\n\nexport default BillingAddressForm\n","import { type ReactNode, useContext, useState, type JSX } from \"react\"\nimport Parent from \"#components/utils/Parent\"\nimport type { ChildrenFunction } from \"#typings/index\"\nimport AddressContext from \"#context/AddressContext\"\nimport {\n countryLockController,\n addressesController,\n} from \"#utils/addressesManager\"\nimport OrderContext from \"#context/OrderContext\"\nimport CustomerContext from \"#context/CustomerContext\"\nimport isFunction from \"lodash-es/isFunction\"\nimport type { TCustomerAddress } from \"#reducers/CustomerReducer\"\nimport type { Order } from \"@commercelayer/sdk\"\nimport { validateValue } from \"#utils/validateFormFields\"\nimport { formCleaner } from \"#utils/formCleaner\"\n\ninterface TOnClick {\n success: boolean\n order?: Order\n}\n\ninterface ChildrenProps extends Omit<Props, \"children\"> {}\n\ninterface Props\n extends Omit<JSX.IntrinsicElements[\"button\"], \"children\" | \"onClick\"> {\n children?: ChildrenFunction<ChildrenProps>\n label?: string | ReactNode\n onClick?: (params: TOnClick) => void\n addressId?: string\n requiredMetadataFields?: string[]\n}\n\nexport function SaveAddressesButton(props: Props): JSX.Element {\n const {\n children,\n label = \"Continue to delivery\",\n resource,\n disabled = false,\n addressId,\n requiredMetadataFields,\n onClick,\n ...p\n } = props\n const {\n errors,\n billing_address: billingAddress,\n shipToDifferentAddress,\n shipping_address: shippingAddress,\n saveAddresses,\n billingAddressId,\n shippingAddressId,\n invertAddresses,\n } = useContext(AddressContext)\n const { order } = useContext(OrderContext)\n const {\n customerEmail: email,\n addresses,\n isGuest,\n createCustomerAddress,\n } = useContext(CustomerContext)\n const [forceDisable, setForceDisable] = useState(disabled)\n let customerEmail = !!(\n !!(isGuest === true || typeof isGuest === \"undefined\") &&\n !order?.customer_email\n )\n if (email != null && email !== \"\") {\n const isValidEmail = validateValue(\n email,\n \"customer_email\",\n \"email\",\n \"orders\",\n )\n customerEmail = Object.keys(isValidEmail).length > 0\n }\n const shippingAddressCleaned: any = Object.keys(shippingAddress ?? {}).reduce(\n (acc, key) => {\n return {\n ...acc,\n // @ts-expect-error type mismatch\n [key.replace(`shipping_address_`, \"\")]: shippingAddress[key].value,\n }\n },\n {},\n )\n const { billingDisable, shippingDisable } = addressesController({\n invertAddresses,\n requiresBillingInfo: order?.requires_billing_info,\n billing_address: billingAddress,\n shipping_address: shippingAddressCleaned,\n shipToDifferentAddress,\n shippingAddressId,\n billingAddressId,\n errors,\n requiredMetadataFields,\n })\n const countryLockDisable = countryLockController({\n countryCodeLock: order?.shipping_country_code_lock,\n addresses,\n shipToDifferentAddress,\n billingAddressId,\n billing_address: billingAddress,\n shipping_address: shippingAddress,\n shippingAddressId,\n lineItems: order?.line_items,\n })\n // NOTE: This is a temporary fix to avoid the button to be disabled when the user is editing an address\n const invertAddressesDisable =\n invertAddresses && shippingAddressId ? false : shippingDisable\n const disable =\n disabled ||\n customerEmail ||\n billingDisable ||\n invertAddressesDisable ||\n countryLockDisable\n\n const handleClick = async (): Promise<void> => {\n if (errors && Object.keys(errors).length === 0 && !disable) {\n let response: {\n success: boolean\n order?: Order\n } = {\n success: false,\n }\n setForceDisable(true)\n // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check\n switch (true) {\n case order != null &&\n addressId != null &&\n createCustomerAddress != null &&\n saveAddresses != null: {\n response = await saveAddresses({\n customerEmail: email,\n customerAddress: {\n resource: invertAddresses\n ? \"shipping_address\"\n : \"billing_address\",\n id: addressId,\n },\n })\n break\n }\n case order != null && saveAddresses != null: {\n response = await saveAddresses({\n customerEmail: email,\n })\n break\n }\n case createCustomerAddress != null: {\n const address = invertAddresses\n ? { ...formCleaner(shippingAddress) }\n : { ...formCleaner(billingAddress) }\n if (addressId) address.id = addressId\n createCustomerAddress(address as TCustomerAddress)\n response = {\n success: true,\n }\n break\n }\n }\n setForceDisable(false)\n if (onClick && response.success) onClick(response)\n }\n }\n\n const parentProps = {\n ...p,\n label,\n resource,\n handleClick,\n disabled: disable,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <button\n type=\"button\"\n disabled={disable || forceDisable}\n onClick={() => {\n handleClick()\n }}\n {...p}\n >\n {isFunction(label) ? label() : label}\n </button>\n )\n}\n\nexport default SaveAddressesButton\n","import baseReducer from '#utils/baseReducer'\nimport type { Dispatch } from 'react'\nimport type { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport type { Order, AddressUpdate } from '@commercelayer/sdk'\nimport type { getOrderContext } from '#reducers/OrderReducer'\nimport type { AddressResource } from './AddressReducer'\nimport getSdk from '#utils/getSdk'\n\nexport type ShippingAddressActionType =\n | 'setShippingAddress'\n | 'setShippingCustomerAddressId'\n | 'cleanup'\n\nexport interface ShippingAddressActionPayload {\n _shipping_address_clone_id: string\n shippingCustomerAddressId: string\n}\n\nexport type ShippingAddressState = Partial<ShippingAddressActionPayload>\n\nexport interface ShippingAddressAction {\n type: ShippingAddressActionType\n payload: Partial<ShippingAddressActionPayload>\n}\n\nexport const shippingAddressInitialState: ShippingAddressState = {\n _shipping_address_clone_id: ''\n}\n\nexport type SetShippingAddress = (\n id: string,\n options?: {\n config: CommerceLayerConfig\n dispatch: Dispatch<ShippingAddressAction>\n order?: Order | null\n getOrder?: getOrderContext\n customerAddressId?: string\n }\n) => Promise<void>\n\nexport const setShippingAddress: SetShippingAddress = async (id, options) => {\n try {\n if (options?.order) {\n if (options.customerAddressId) {\n const sdk = getSdk(options.config)\n const attributes: AddressUpdate = {\n id,\n reference: options.customerAddressId\n }\n await sdk.addresses.update(attributes)\n }\n options.dispatch({\n type: 'setShippingAddress',\n payload: {\n _shipping_address_clone_id: id\n }\n })\n }\n } catch (error) {\n console.error(error)\n }\n}\n\ninterface SetShippingCustomerAddressIdParams {\n dispatch: Dispatch<ShippingAddressAction>\n order: Order\n setCloneAddress: (id: string, resource: AddressResource) => void\n}\n\nexport function setShippingCustomerAddressId({\n dispatch,\n order,\n setCloneAddress\n}: SetShippingCustomerAddressIdParams): void {\n const customerAddressId = order?.shipping_address?.reference\n try {\n if (customerAddressId) {\n dispatch({\n type: 'setShippingCustomerAddressId',\n payload: { shippingCustomerAddressId: customerAddressId }\n })\n setCloneAddress(customerAddressId, 'shipping_address')\n }\n } catch (error) {\n console.error('error', error)\n }\n}\n\nconst type: ShippingAddressActionType[] = [\n 'setShippingAddress',\n 'setShippingCustomerAddressId',\n 'cleanup'\n]\n\nconst shippingAddressReducer = (\n state: ShippingAddressState,\n reducer: ShippingAddressAction\n): ShippingAddressState =>\n baseReducer<\n ShippingAddressState,\n ShippingAddressAction,\n ShippingAddressActionType[]\n >(state, reducer, type)\n\nexport default shippingAddressReducer\n","import ShippingAddressContext from '#context/ShippingAddressContext'\nimport { useContext, useEffect, useReducer, type JSX } from 'react';\nimport shippingAddressReducer, {\n setShippingAddress,\n shippingAddressInitialState,\n setShippingCustomerAddressId\n} from '#reducers/ShippingAddressReducer'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport OrderContext from '#context/OrderContext'\nimport AddressContext from '#context/AddressContext'\nimport type { DefaultChildrenType } from '#typings/globals'\n\ninterface Props {\n children: DefaultChildrenType\n}\n\nexport function ShippingAddressContainer(props: Props): JSX.Element {\n const { children } = props\n const [state, dispatch] = useReducer(\n shippingAddressReducer,\n shippingAddressInitialState\n )\n const config = useContext(CommerceLayerContext)\n const { order } = useContext(OrderContext)\n const { setCloneAddress } = useContext(AddressContext)\n useEffect(() => {\n if (order && config) {\n setShippingCustomerAddressId({\n dispatch,\n order,\n setCloneAddress\n })\n }\n return () => {\n dispatch({\n type: 'cleanup',\n payload: {}\n })\n }\n }, [config, order])\n const contextValue = {\n ...state,\n setShippingAddress: async (\n id: string,\n options?: { customerAddressId: string }\n ) => {\n await setShippingAddress(id, {\n config,\n dispatch,\n order,\n customerAddressId: options?.customerAddressId\n })\n setCloneAddress(id, 'shipping_address')\n }\n }\n return (\n <ShippingAddressContext.Provider value={contextValue}>\n {children}\n </ShippingAddressContext.Provider>\n )\n}\n\nexport default ShippingAddressContainer\n","import AddressesContext from '#context/AddressContext'\nimport { useRapidForm } from 'rapid-form'\nimport { type ReactNode, useContext, useEffect, useRef, type JSX } from 'react';\nimport ShippingAddressFormContext from '#context/ShippingAddressFormContext'\nimport type { BaseError, CodeErrorType } from '#typings/errors'\nimport OrderContext from '#context/OrderContext'\nimport { getSaveShippingAddressToAddressBook } from '#utils/localStorage'\nimport type { AddressValuesKeys } from '#context/BillingAddressFormContext'\nimport type { CustomFieldMessageError } from '#reducers/AddressReducer'\n\ninterface Props extends Omit<JSX.IntrinsicElements['form'], 'onSubmit'> {\n children: ReactNode\n reset?: boolean\n errorClassName?: string\n fieldEvent?: 'blur' | 'change'\n /**\n * Callback to customize the error message for a specific field. Called for each error in the form.\n */\n customFieldMessageError?: CustomFieldMessageError\n}\n\n/**\n * Form container for creating or editing an order related shipping address.\n *\n * It accept:\n * - a `reset` prop to define if current form needs to be reset over a defined boolean condition.\n * - a `errorClassName` prop to define children input and select classnames assigned in case of validation error.\n *\n * <span title='Requirements' type='warning'>\n * Must be a child of the `<AddressesContainer>` component.\n * </span>\n * <span title='Children' type='info'>\n * `<AddressInput>`,\n * `<AddressCountrySelector>`,\n * `<AddressStateSelector>`,\n * `<SaveAddressesButton>`\n * </span>\n */\nexport function ShippingAddressForm(props: Props): JSX.Element {\n const {\n children,\n errorClassName,\n autoComplete = 'on',\n fieldEvent = 'change',\n reset = false,\n customFieldMessageError,\n ...p\n } = props\n const {\n validation,\n values,\n errors,\n reset: resetForm,\n setValue: setValueForm,\n setError: setErrorForm\n } = useRapidForm({ fieldEvent })\n const {\n setAddressErrors,\n setAddress,\n shipToDifferentAddress,\n isBusiness,\n invertAddresses\n } = useContext(AddressesContext)\n const {\n saveAddressToCustomerAddressBook,\n include,\n addResourceToInclude,\n includeLoaded\n } = useContext(OrderContext)\n const ref = useRef<HTMLFormElement>(null)\n useEffect(() => {\n if (!include?.includes('shipping_address')) {\n addResourceToInclude({\n newResource: 'shipping_address'\n })\n } else if (!includeLoaded?.shipping_address) {\n addResourceToInclude({\n newResourceLoaded: { shipping_address: true }\n })\n }\n if (customFieldMessageError != null && Object.keys(values).length > 0) {\n for (const name in values) {\n if (Object.prototype.hasOwnProperty.call(values, name)) {\n const field = values[name]\n const fieldName = field.name\n const value = field.value\n const inError = errors[fieldName] != null\n if (\n customFieldMessageError != null &&\n fieldName != null &&\n value != null\n ) {\n values[fieldName.replace('shipping_address_', '')] = value\n const customMessage = customFieldMessageError({\n field: fieldName,\n value,\n values\n })\n if (customMessage != null) {\n if (typeof customMessage === 'string') {\n if (inError) {\n const errorMsg = errors[fieldName]?.message\n if (errorMsg != null && errorMsg !== customMessage) {\n // @ts-expect-error no type\n errors[fieldName].message = customMessage\n }\n } else {\n setErrorForm({\n name: fieldName,\n code: 'VALIDATION_ERROR',\n message: customMessage\n })\n }\n } else {\n const elements = customMessage\n elements.forEach((element) => {\n const { field, value, isValid, message } = element\n const fieldInError = errors[field] != null\n if (!isValid) {\n if (fieldInError) {\n const errorMsg = errors[field]?.message\n if (errorMsg != null && errorMsg !== message) {\n // @ts-expect-error no type\n errors[field].message = message\n setValueForm(field, value ?? '')\n }\n } else {\n setErrorForm({\n name: field,\n code: 'VALIDATION_ERROR',\n message: message\n })\n }\n } else {\n if (fieldInError) {\n delete errors[field]\n setValueForm(field, value ?? '')\n }\n }\n })\n }\n }\n }\n }\n }\n }\n if (errors != null && Object.keys(errors).length > 0) {\n const formErrors: BaseError[] = []\n for (const fieldName in errors) {\n const code = errors[fieldName]?.code\n const message = errors[fieldName]?.message\n formErrors.push({\n code: code as CodeErrorType,\n message: message ?? '',\n resource: 'shipping_address',\n field: fieldName\n })\n }\n if (shipToDifferentAddress || invertAddresses) {\n setAddressErrors(formErrors, 'shipping_address')\n }\n } else if (\n values &&\n Object.keys(values).length > 0 &&\n (shipToDifferentAddress || invertAddresses)\n ) {\n setAddressErrors([], 'shipping_address')\n for (const name in values) {\n const field = values[name]\n if (\n field?.value ||\n (field?.required === false && field?.type !== 'checkbox')\n ) {\n values[name.replace('shipping_address_', '')] = field.value\n delete values[name]\n }\n if (field?.type === 'checkbox') {\n delete values[name]\n saveAddressToCustomerAddressBook({\n type: 'shipping_address',\n value: field.checked\n })\n }\n }\n setAddress({\n // @ts-expect-error no type\n values: {\n ...values,\n ...(isBusiness && { business: isBusiness })\n },\n resource: 'shipping_address'\n })\n }\n const checkboxChecked =\n ref.current?.querySelector(\n '[name=\"shipping_address_save_to_customer_book\"]'\n // @ts-expect-error no type\n )?.checked || getSaveShippingAddressToAddressBook()\n if (\n reset &&\n ((values != null && Object.keys(values).length > 0) ||\n (errors != null && Object.keys(errors).length > 0) ||\n checkboxChecked)\n ) {\n if (saveAddressToCustomerAddressBook) {\n saveAddressToCustomerAddressBook({\n type: 'shipping_address',\n value: false\n })\n }\n if (ref) {\n ref.current?.reset()\n // @ts-expect-error no type\n resetForm({ target: ref.current })\n setAddressErrors([], 'shipping_address')\n // @ts-expect-error no type\n setAddress({ values: {}, resource: 'shipping_address' })\n }\n }\n }, [\n values,\n errors,\n shipToDifferentAddress,\n reset,\n include,\n includeLoaded,\n isBusiness\n ])\n const setValue = (\n name: AddressValuesKeys,\n value: string | number | readonly string[]\n ): void => {\n setValueForm(name, value as string)\n const field: any = {\n [name.replace('shipping_address_', '')]: value\n }\n setAddress({\n values: {\n ...values,\n ...field,\n ...(isBusiness && { business: isBusiness })\n },\n resource: 'shipping_address'\n })\n }\n const providerValues = {\n values,\n validation,\n setValue,\n errorClassName,\n errors: errors as any,\n resetField: (name: string) => {\n // @ts-expect-error no type\n resetForm({ currentTarget: ref.current }, name)\n }\n } as any\n return (\n <ShippingAddressFormContext.Provider value={providerValues}>\n <form ref={ref} autoComplete={autoComplete} {...p}>\n {children}\n </form>\n </ShippingAddressFormContext.Provider>\n )\n}\n\nexport default ShippingAddressForm\n","import { Component, type ErrorInfo, type JSX } from 'react';\n\ninterface Props {\n children: JSX.Element\n}\n\ninterface State {\n hasError: boolean\n}\n\nexport class ErrorBoundary extends Component<Props, State> {\n public state: State = {\n hasError: false\n }\n\n public static getDerivedStateFromError(): State {\n return { hasError: true }\n }\n\n public componentDidCatch(error: Error, errorInfo: ErrorInfo): void {\n if (process.env.NODE_ENV !== 'test') {\n console.error('Uncaught error:', error, errorInfo)\n } else {\n throw error\n }\n }\n\n public render(): JSX.Element {\n if (this.state.hasError) {\n return <h1>Sorry.. there was an error, check the console.</h1>\n }\n return this.props.children\n }\n}\n\nexport default ErrorBoundary\n","import CommerceLayerContext from '#context/CommerceLayerContext'\nimport ErrorBoundary from '#components/utils/ErrorBoundary'\nimport type { DefaultChildrenType } from '#typings/globals'\nimport { jwt } from '#utils/jwt'\n\nimport type { JSX } from \"react\";\n\ninterface Props {\n /**\n * Accept a React node as children.\n */\n children: DefaultChildrenType\n /**\n * The access token to authenticate the API calls.\n */\n accessToken: string\n /**\n * The endpoint to make the API calls. e.g. https://yourdomain.commercelayer.io\n */\n endpoint?: string\n /**\n * The domain to make the API calls. e.g. commercelayer.io\n */\n domain?: string\n}\n\n/**\n * CommerceLayer component\n */\nexport function CommerceLayer(props: Props): JSX.Element {\n const { children, ...p } = props\n if (!p.endpoint) {\n const { organization } = jwt(p.accessToken)\n p.endpoint = `https://${organization.slug}.${\n p.domain ?? 'commercelayer.io'\n }`\n }\n return (\n <ErrorBoundary>\n <CommerceLayerContext.Provider value={{ ...p }}>\n {children}\n </CommerceLayerContext.Provider>\n </ErrorBoundary>\n )\n}\n\nexport default CommerceLayer\n","import AddressesContext from '#context/AddressContext'\nimport { useRapidForm } from 'rapid-form'\nimport { type ReactNode, useContext, useEffect, useRef, type JSX } from 'react';\nimport CustomerAddressFormContext from '#context/CustomerAddressFormContext'\nimport type { BaseError, CodeErrorType } from '#typings/errors'\nimport type { AddressField } from '#reducers/AddressReducer'\nimport type { AddressCountrySelectName, AddressInputName } from '#typings'\nimport OrderContext from '#context/OrderContext'\nimport { isEmptyStates } from '#utils/countryStateCity'\nimport type { TCustomerAddress } from '#reducers/CustomerReducer'\n\ninterface Props extends Omit<JSX.IntrinsicElements['form'], 'onSubmit'> {\n children: ReactNode\n reset?: boolean\n errorClassName?: string\n /**\n * Array of countries that have states has select options. Ignore this if you are not overriding the default states list.\n * If you are overriding the default states list, you must pass the countries that have states as select options.\n */\n countriesWithPredefinedStateOptions?: string[]\n}\n\nexport function CustomerAddressForm(props: Props): JSX.Element {\n const {\n children,\n errorClassName,\n autoComplete = 'on',\n reset = false,\n countriesWithPredefinedStateOptions,\n ...p\n } = props\n const { validation, values, errors, reset: resetForm } = useRapidForm()\n const { setAddressErrors, setAddress } = useContext(AddressesContext)\n const { order } = useContext(OrderContext)\n const ref = useRef<HTMLFormElement | null>(null)\n useEffect(() => {\n if (Object.keys(errors).length > 0) {\n const formErrors: BaseError[] = []\n for (const fieldName in errors) {\n const code = errors[fieldName]?.code\n const message = errors[fieldName]?.message || ''\n if (fieldName === 'billing_address_state_code') {\n if (values['state_code']) {\n \n delete errors[fieldName]\n } else {\n formErrors.push({\n code: code as CodeErrorType,\n message,\n resource: 'billing_address',\n field: fieldName\n })\n }\n } else {\n formErrors.push({\n code: code as CodeErrorType,\n message,\n resource: 'billing_address',\n field: fieldName\n })\n }\n }\n setAddressErrors(formErrors, 'billing_address')\n } else if (Object.keys(values).length > 0) {\n setAddressErrors([], 'billing_address')\n for (const name in values) {\n const field = values[name]\n if (field?.value) {\n values[name.replace('billing_address_', '')] = field.value\n \n delete values[name]\n }\n if (['billing_address_state_code'].includes(name)) {\n const countryCode = (values['billing_address_country_code']?.value ||\n values['country_code']) as string\n if (\n !isEmptyStates({\n countryCode,\n countriesWithPredefinedStateOptions\n }) &&\n !field.value\n ) {\n \n delete values['billing_address_state_code']\n }\n }\n }\n setAddress({\n values: values as TCustomerAddress,\n resource: 'billing_address'\n })\n }\n if (\n reset &&\n (Object.keys(values).length > 0 || Object.keys(errors).length > 0)\n ) {\n if (ref) {\n ref.current?.reset()\n // @ts-expect-error no type\n resetForm({ target: ref.current })\n setAddressErrors([], 'billing_address')\n // @ts-expect-error Check this type\n setAddress({ values: {}, resource: 'billing_address' })\n }\n }\n }, [errors, values, reset])\n const setValue = (\n name: AddressField | AddressInputName | AddressCountrySelectName,\n value: any\n ): void => {\n const field = {\n [name.replace('billing_address_', '')]: value\n }\n setAddress({\n values: { ...(values as TCustomerAddress), ...field },\n resource: 'billing_address'\n })\n }\n const providerValues = {\n values,\n validation,\n setValue,\n errorClassName,\n requiresBillingInfo: order?.requires_billing_info || false,\n errors: errors as any,\n resetField: (name: string) => {\n // @ts-expect-error no type\n resetForm({ currentTarget: ref.current }, name)\n }\n }\n return (\n <CustomerAddressFormContext.Provider value={providerValues}>\n <form ref={ref} autoComplete={autoComplete} {...p}>\n {children}\n </form>\n </CustomerAddressFormContext.Provider>\n )\n}\n\nexport default CustomerAddressForm\n","import { jwt } from './jwt'\n\n/**\n * Get the customer id from the token\n * @param accessToken The access token\n * @returns string\n */\nexport function getCustomerIdByToken(accessToken: string): string | undefined {\n return jwt(accessToken)?.owner?.id\n}\n","import type { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport type { Order, OrderSubscription } from '@commercelayer/sdk'\nimport getSdk from './getSdk'\n\nexport type HelperRequestResource = 'orders' | 'order_subscriptions'\n\nexport type TriggerAttributeHelper = {\n /**\n * CommerceLayer config\n */\n config: CommerceLayerConfig\n /**\n * The resource id\n */\n id: string\n} & (\n | {\n /**\n * The resource name\n */\n resource: 'orders'\n /**\n * The attribute to trigger\n */\n attribute: '_place' | '_refresh' | '_create_subscriptions'\n }\n | {\n resource: 'order_subscriptions'\n attribute: '_active' | '_deactivate' | '_cancel'\n }\n)\n\ntype TriggerAttributeHelperResponse = Promise<Order | OrderSubscription>\n\n/**\n * Helper to trigger an attribute on a resource\n */\nexport async function triggerAttributeHelper({\n config,\n id,\n attribute,\n resource\n}: TriggerAttributeHelper): TriggerAttributeHelperResponse {\n const sdk = getSdk(config)\n return await sdk[resource].update({\n id,\n [attribute]: true\n })\n}\n","import baseReducer from '#utils/baseReducer'\nimport type { Dispatch } from 'react'\nimport type { BaseError } from '#typings/errors'\nimport type {\n Address,\n AddressCreate,\n AddressUpdate,\n Customer,\n CustomerPaymentSource,\n ListResponse,\n Order,\n OrderSubscription,\n OrderUpdate,\n QueryPageSize\n} from '@commercelayer/sdk'\nimport type { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport type { updateOrder } from './OrderReducer'\nimport getSdk from '#utils/getSdk'\nimport getErrors from '#utils/getErrors'\nimport { jwt } from '#utils/jwt'\nimport { getCustomerIdByToken } from '#utils/getCustomerIdByToken'\nimport {\n type TriggerAttributeHelper,\n triggerAttributeHelper\n} from '#utils/triggerAttributeHelper'\nimport { sanitizeMetadataFields } from '#utils/addressesManager'\n\nexport type CustomerActionType =\n | 'setErrors'\n | 'setCustomerEmail'\n | 'setAddresses'\n | 'setPayments'\n | 'setOrders'\n | 'setSubscriptions'\n | 'setCustomers'\n\nexport interface CustomerActionPayload {\n addresses: Address[] | null\n payments: CustomerPaymentSource[] | null\n customerEmail: string\n errors: BaseError[]\n orders: ListResponse<Order>\n subscriptions: ListResponse<OrderSubscription> | ListResponse<Order> | null\n isGuest: boolean\n customers: Customer\n}\n\nexport type CustomerState = Partial<CustomerActionPayload>\n\nexport interface CustomerAction {\n type: CustomerActionType\n payload: Partial<CustomerActionPayload>\n}\n\nexport type SetSaveOnBlur = (args: {\n saveOnBlur: boolean\n dispatch: Dispatch<CustomerAction>\n}) => void\n\nexport interface SaveCustomerUser {\n /**\n * The Commerce Layer Config\n */\n config: CommerceLayerConfig\n /**\n * The customer email\n */\n customerEmail: string\n /**\n * The Customer dispatch function\n */\n dispatch: Dispatch<CustomerAction>\n /**\n * The Commerce Layer Order resource\n */\n order?: Order\n /**\n * The function to update the order resource\n */\n updateOrder: typeof updateOrder\n}\n\nexport async function saveCustomerUser({\n customerEmail,\n order,\n updateOrder\n}: SaveCustomerUser): Promise<void> {\n if (order) {\n const attributes: OrderUpdate = {\n customer_email: customerEmail,\n id: order.id\n }\n await updateOrder({ id: order.id, attributes })\n }\n}\n\nexport type SetCustomerErrors = <V extends BaseError[]>(\n errors: V,\n dispatch?: Dispatch<CustomerAction>\n) => void\n\nexport function setCustomerErrors(\n /**\n * @param errors - An array of errors\n */\n errors: BaseError[],\n /**\n * @param dispatch - The dispatch function\n */\n dispatch?: Dispatch<CustomerAction>\n): void {\n if (dispatch)\n dispatch({\n type: 'setErrors',\n payload: {\n errors\n }\n })\n}\n\nexport function setCustomerEmail(\n /**\n * @param customerEmail The email address of the customer\n */\n customerEmail: string,\n /**\n * @param dispatch The dispatch function\n */\n dispatch?: Dispatch<CustomerAction>\n): void {\n if (dispatch)\n dispatch({\n type: 'setCustomerEmail',\n payload: {\n customerEmail\n }\n })\n}\n\nexport interface GetCustomerAddresses {\n /**\n * The Commerce Layer config\n */\n config: CommerceLayerConfig\n /**\n * The Customer dispatch function\n */\n dispatch: Dispatch<CustomerAction>\n /**\n * Order details\n */\n isOrderAvailable?: boolean\n /**\n * The page size\n * default: 10\n */\n pageSize?: QueryPageSize\n}\n\nexport async function getCustomerAddresses({\n config,\n dispatch,\n isOrderAvailable,\n pageSize = 10\n}: GetCustomerAddresses): Promise<void> {\n try {\n const addresses = [] as Address[]\n const sdk = getSdk(config)\n const customerAddresses = await sdk.customer_addresses.list({\n include: ['address'],\n pageSize\n })\n customerAddresses.forEach((customerAddress) => {\n if (customerAddress.address) {\n if (customerAddress.address.reference == null) {\n customerAddress.address.reference = customerAddress.id\n }\n if (\n customerAddress.id !== customerAddress.address.reference &&\n !isOrderAvailable\n ) {\n customerAddress.address.reference = customerAddress.id\n }\n addresses.push(customerAddress.address)\n }\n })\n addresses.sort((a, b) => {\n if (a.full_name && b.full_name)\n return a.full_name.localeCompare(b.full_name)\n return 0\n })\n dispatch({\n type: 'setAddresses',\n payload: { addresses }\n })\n } catch (error: any) {\n const errors = getErrors({ error, resource: 'addresses' })\n dispatch({\n type: 'setErrors',\n payload: {\n errors\n }\n })\n }\n}\n\nexport interface DeleteCustomerAddress {\n config?: CommerceLayerConfig\n dispatch?: Dispatch<CustomerAction>\n customerAddressId: string\n addresses?: Address[] | null\n}\n\nexport async function deleteCustomerAddress({\n config,\n dispatch,\n customerAddressId,\n addresses\n}: DeleteCustomerAddress): Promise<void> {\n if (config && addresses && dispatch && config) {\n try {\n const sdk = getSdk(config)\n await sdk.customer_addresses.delete(customerAddressId)\n const newAddresses = addresses.filter(\n ({ reference }) => reference !== customerAddressId\n )\n dispatch({\n type: 'setAddresses',\n payload: {\n addresses: newAddresses\n }\n })\n } catch (error) {\n throw new Error(\"Couldn't delete address\")\n }\n }\n}\n\nexport interface GetCustomerPaymentSources {\n /**\n * The Customer dispatch function\n */\n dispatch?: Dispatch<CustomerAction>\n /**\n * The Commerce Layer Order resource\n */\n order?: Order\n}\n\nexport function getCustomerPaymentSources(\n params?: GetCustomerPaymentSources\n): void {\n if (params) {\n const { order, dispatch } = params\n const payments = order?.available_customer_payment_sources\n if (payments != null && payments.length > 0 && dispatch) {\n dispatch({\n type: 'setPayments',\n payload: { payments }\n })\n }\n }\n}\n\ninterface GetCustomerOrdersProps {\n /**\n * The Commerce Layer config\n */\n config: CommerceLayerConfig\n /**\n * The Customer dispatch function\n */\n dispatch: Dispatch<CustomerAction>\n /**\n * The page size\n */\n pageSize?: QueryPageSize\n /**\n * The page number\n */\n pageNumber?: number\n /**\n * Retrieve a specific subscription or order by id\n */\n id?: string\n}\n\nexport async function getCustomerOrders({\n config,\n dispatch,\n pageSize = 10,\n pageNumber = 1\n}: GetCustomerOrdersProps): Promise<void> {\n if (config.accessToken) {\n const { owner } = jwt(config.accessToken)\n if (owner?.id) {\n const sdk = getSdk(config)\n const orders = await sdk.customers.orders(owner.id, {\n filters: { status_not_in: 'draft,pending' },\n pageSize,\n pageNumber\n })\n dispatch({\n type: 'setOrders',\n payload: { orders }\n })\n }\n }\n}\n\nexport async function getCustomerSubscriptions({\n id,\n config,\n dispatch,\n pageSize = 10,\n pageNumber = 1\n}: GetCustomerOrdersProps): Promise<void> {\n if (config.accessToken) {\n const { owner } = jwt(config.accessToken)\n if (owner?.id) {\n const sdk = getSdk(config)\n if (id != null) {\n const subscriptions = await sdk.customers.orders(owner.id, {\n filters: { order_subscription_id_eq: id },\n include: ['authorizations'],\n pageSize,\n pageNumber\n })\n dispatch({\n type: 'setSubscriptions',\n payload: { subscriptions }\n })\n } else {\n const subscriptions = await sdk.customers.order_subscriptions(\n owner.id,\n {\n pageSize,\n pageNumber\n }\n )\n dispatch({\n type: 'setSubscriptions',\n payload: { subscriptions }\n })\n }\n }\n }\n}\n\nexport type TCustomerAddress = AddressCreate &\n AddressUpdate &\n Record<string, string | null | undefined>\n\ninterface TCreateCustomerAddress {\n /**\n * Customer address dispatch function\n */\n dispatch?: Dispatch<CustomerAction>\n /**\n * The Commerce Layer Config\n */\n config?: CommerceLayerConfig\n /**\n * The address to create or update if there is an id\n */\n address: TCustomerAddress\n /**\n * Current state of the customer\n */\n state?: CustomerState\n}\n\nexport async function createCustomerAddress({\n address,\n config,\n dispatch,\n state\n}: TCreateCustomerAddress): Promise<void> {\n if (config && address) {\n const sdk = getSdk(config)\n const { id } = address\n try {\n if (id) {\n const addressWithMeta = sanitizeMetadataFields(address) as AddressUpdate\n const upAddress = await sdk.addresses.update(addressWithMeta)\n const updatedAddresses = state?.addresses?.map((a) => {\n if (a.id === upAddress.id) return upAddress\n return a\n })\n if (dispatch) {\n dispatch({\n type: 'setAddresses',\n payload: { addresses: updatedAddresses }\n })\n }\n } else {\n const addressWithMeta = sanitizeMetadataFields(address)\n const newAddress = await sdk.addresses.create(addressWithMeta)\n if (state?.customers?.id && newAddress?.id) {\n // @ts-expect-error Expected customer_email\n const newCustomerAddress = await sdk.customer_addresses.create({\n customer: sdk.customers.relationship(state?.customers?.id),\n address: sdk.addresses.relationship(newAddress.id)\n })\n await sdk.addresses.update({\n id: newAddress.id,\n reference: newCustomerAddress.id\n })\n if (dispatch && state?.addresses) {\n newAddress.reference = newCustomerAddress.id\n dispatch({\n type: 'setAddresses',\n payload: { addresses: [...state.addresses, newAddress] }\n })\n }\n }\n }\n } catch (error) {\n throw new Error(\"Couldn't create customer address\")\n }\n }\n}\n\ninterface GetCustomerPaymentsParams extends GetCustomerOrdersProps {}\n\nexport async function getCustomerPayments({\n config,\n dispatch,\n pageSize = 10,\n pageNumber = 1\n}: GetCustomerPaymentsParams): Promise<void> {\n if (config?.accessToken != null && dispatch != null) {\n const sdk = getSdk(config)\n const { owner } = jwt(config.accessToken)\n if (owner?.id) {\n const payments = await sdk.customer_payment_sources.list({\n include: ['payment_source'],\n pageNumber,\n pageSize\n })\n dispatch({\n type: 'setPayments',\n payload: {\n payments\n }\n })\n }\n }\n}\n\nexport async function getCustomerInfo({\n config,\n dispatch\n}: GetCustomerPaymentsParams): Promise<void> {\n if (config.accessToken && dispatch != null) {\n const sdk = getSdk(config)\n const customerId = getCustomerIdByToken(config.accessToken)\n if (customerId) {\n const customers = await sdk.customers.retrieve(customerId)\n const customerEmail = customers.email\n dispatch({\n type: 'setCustomers',\n payload: {\n customers,\n customerEmail\n }\n })\n }\n }\n}\n\nexport type SetResourceTriggerParams = {\n /**\n * The CommerceLayer config\n */\n config?: CommerceLayerConfig\n /**\n * The dispatch function\n */\n dispatch?: Dispatch<CustomerAction>\n /**\n * The page size\n */\n pageSize?: QueryPageSize\n /**\n * The page number\n */\n pageNumber?: number\n /**\n * Reload the list of orders or subscriptions if the trigger is successful. Default: false\n */\n reloadList?: boolean\n} & TriggerAttributeHelper\n\n/**\n * Helper to trigger and activate an attribute on a resource\n */\nexport async function setResourceTrigger({\n config,\n dispatch,\n resource,\n attribute,\n id,\n pageSize = 10,\n pageNumber = 1,\n reloadList = false\n}: SetResourceTriggerParams): Promise<boolean> {\n if (config.accessToken) {\n const { owner } = jwt(config.accessToken)\n if (owner?.id) {\n const params = {\n config,\n resource,\n attribute,\n id\n }\n const response = await triggerAttributeHelper(\n params as TriggerAttributeHelper\n )\n if (response != null && dispatch != null && reloadList) {\n switch (resource) {\n case 'orders':\n await getCustomerOrders({\n config,\n dispatch,\n pageSize,\n pageNumber\n })\n break\n case 'order_subscriptions':\n await getCustomerSubscriptions({\n config,\n dispatch,\n pageSize,\n pageNumber\n })\n break\n default:\n return false\n }\n return true\n }\n }\n }\n return false\n}\n\nexport const customerInitialState: CustomerState = {\n errors: [],\n addresses: null,\n payments: null\n}\n\nconst type: CustomerActionType[] = [\n 'setErrors',\n 'setCustomerEmail',\n 'setAddresses',\n 'setPayments',\n 'setOrders',\n 'setSubscriptions',\n 'setCustomers'\n]\n\nconst customerReducer = (\n state: CustomerState,\n reducer: CustomerAction\n): CustomerState =>\n baseReducer<CustomerState, CustomerAction, CustomerActionType[]>(\n state,\n reducer,\n type\n )\n\nexport default customerReducer\n","import { jwt } from './jwt'\n\n/**\n * Check if the token is a sales channel token\n * @param accessToken The access token\n * @returns boolean\n */\nexport function isGuestToken(accessToken: string): boolean {\n return jwt(accessToken).owner == null\n}\n","import { useContext, useEffect, useReducer, useMemo, type JSX } from 'react';\nimport customerReducer, {\n customerInitialState,\n getCustomerAddresses,\n getCustomerOrders,\n getCustomerPaymentSources,\n setCustomerEmail,\n setCustomerErrors,\n deleteCustomerAddress,\n createCustomerAddress,\n type TCustomerAddress,\n saveCustomerUser,\n getCustomerPayments,\n getCustomerSubscriptions,\n getCustomerInfo,\n type SetResourceTriggerParams,\n setResourceTrigger\n} from '#reducers/CustomerReducer'\nimport OrderContext from '#context/OrderContext'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport CustomerContext from '#context/CustomerContext'\nimport type { BaseError } from '#typings/errors'\nimport type { DefaultChildrenType } from '#typings/globals'\nimport { isGuestToken } from '#utils/isGuestToken'\nimport type { QueryPageSize } from '@commercelayer/sdk'\n\ninterface Props {\n children: DefaultChildrenType\n /**\n * Customer type\n */\n isGuest?: boolean\n /**\n * The page size\n * default: 10\n */\n addressesPageSize?: QueryPageSize\n}\n\n/**\n * Main container for the Customers components.\n * It stores - in its context - the details of an active customer, if present.\n *\n * It also accept a `isGuest` prop to define if no customer is currently set as active.\n *\n * <span title='Requirements' type='warning'>\n * Must be a child of the `<CommerceLayer>` component.\n * </span>\n * <span title='Children' type='info'>\n * `<CustomerField>`,\n * `<CustomerInput>`,\n * `<SaveCustomerButton>`,\n * `<AddressesContainer>`,\n * `<AddressesEmpty>`,\n * `<CustomerPaymentSource>`,\n * `<CustomerPaymentSourceEmpty>`,\n * `<PaymentMethodsContainer>`,\n * `<OrdersList>`\n * </span>\n */\nexport function CustomerContainer(props: Props): JSX.Element {\n const { children, isGuest, addressesPageSize: pageSize } = props\n const [state, dispatch] = useReducer(customerReducer, customerInitialState)\n const {\n order,\n addResourceToInclude,\n include,\n updateOrder,\n includeLoaded,\n withoutIncludes\n } = useContext(OrderContext)\n const config = useContext(CommerceLayerContext)\n useEffect(() => {\n if (config.accessToken) {\n const guestToken =\n isGuest == null ? isGuestToken(config.accessToken) : isGuest\n if (guestToken) {\n return\n }\n if (\n !include?.includes('available_customer_payment_sources.payment_source')\n ) {\n addResourceToInclude({\n newResource: [\n 'available_customer_payment_sources.payment_source',\n 'available_customer_payment_sources.payment_method'\n ]\n })\n } else if (\n !includeLoaded?.['available_customer_payment_sources.payment_source']\n ) {\n addResourceToInclude({\n newResourceLoaded: {\n 'available_customer_payment_sources.payment_source': true,\n 'available_customer_payment_sources.payment_method': true\n }\n })\n }\n }\n }, [\n config.accessToken,\n include?.length,\n Object.keys(includeLoaded ?? {}).length\n ])\n\n useEffect(() => {\n if (config.accessToken) {\n const guestToken =\n isGuest == null ? isGuestToken(config.accessToken) : isGuest\n if (guestToken) {\n return\n }\n if (state.customers == null) {\n getCustomerInfo({ config, dispatch })\n }\n if (state.addresses == null) {\n getCustomerAddresses({\n config,\n dispatch,\n isOrderAvailable: withoutIncludes != null,\n pageSize\n })\n }\n if (order?.available_customer_payment_sources) {\n getCustomerPaymentSources({ dispatch, order })\n }\n if (\n config.accessToken &&\n order == null &&\n include == null &&\n includeLoaded == null &&\n withoutIncludes === undefined\n ) {\n async function getCustomerData(): Promise<void> {\n await getCustomerOrders({ config, dispatch })\n await getCustomerSubscriptions({ config, dispatch })\n await getCustomerPayments({ config, dispatch })\n }\n getCustomerData()\n }\n }\n }, [config.accessToken, order?.payment_source != null, isGuest])\n const contextValue = useMemo(() => {\n return {\n isGuest,\n ...state,\n saveCustomerUser: async (customerEmail: string) => {\n await saveCustomerUser({\n config,\n customerEmail,\n dispatch,\n updateOrder,\n order\n })\n },\n setCustomerErrors: (errors: BaseError[]) => {\n setCustomerErrors(errors, dispatch)\n },\n setCustomerEmail: (customerEmail: string) => {\n setCustomerEmail(customerEmail, dispatch)\n },\n getCustomerPaymentSources: () => {\n getCustomerPaymentSources({ dispatch, order })\n },\n deleteCustomerAddress: async ({\n customerAddressId\n }: {\n customerAddressId: string\n }) => {\n await deleteCustomerAddress({\n customerAddressId,\n dispatch,\n config,\n addresses: state.addresses\n })\n },\n setResourceTrigger: async (\n props: Omit<SetResourceTriggerParams, 'dispatch' | 'config'>\n ): Promise<boolean> => {\n // @ts-expect-error strange type error\n return await setResourceTrigger({\n ...props,\n dispatch,\n config\n })\n },\n createCustomerAddress: async (address: TCustomerAddress) => {\n await createCustomerAddress({ address, config, dispatch, state })\n },\n getCustomerOrders: async ({\n pageNumber,\n pageSize\n }: {\n pageNumber?: number\n pageSize?: QueryPageSize\n }) => {\n await getCustomerOrders({\n config,\n dispatch,\n pageNumber,\n pageSize\n })\n },\n getCustomerSubscriptions: async ({\n pageNumber,\n pageSize,\n id\n }: {\n pageNumber?: number\n pageSize?: QueryPageSize\n id?: string\n }) => {\n await getCustomerSubscriptions({\n config,\n dispatch,\n pageNumber,\n pageSize,\n id\n })\n },\n reloadCustomerAddresses: async () => {\n await getCustomerAddresses({\n config,\n dispatch,\n isOrderAvailable: withoutIncludes != null,\n pageSize\n })\n }\n }\n }, [state, isGuest])\n return (\n <CustomerContext.Provider value={contextValue}>\n {children}\n </CustomerContext.Provider>\n )\n}\n\nexport default CustomerContainer\n","export const defaultImgUrl =\n 'https://data.commercelayer.app/assets/images/placeholders/img_placeholder.svg'\nexport const defaultGiftCardImgUrl =\n 'https://data.commercelayer.app/assets/images/placeholders/gift_placeholder.svg'\n","import type { InitialSkuContext } from '#context/SkuChildrenContext'\nimport type { InitialStockTransferContext } from '#context/StockTransferChildrenContext'\nimport type {\n Customer,\n LineItem,\n Sku,\n Parcel,\n ParcelLineItem\n} from '@commercelayer/sdk'\nimport Parent from './Parent'\nimport type { InitialLineItemChildrenContext } from '#context/LineItemChildrenContext'\nimport { type Context, useContext, type JSX } from 'react';\nimport { defaultImgUrl } from '#utils/placeholderImages'\nimport type { InitialCustomerContext } from '#context/CustomerContext'\nimport type { InitialParcelContext } from '#context/ParcelChildrenContext'\nimport type { InitialParcelLineItemContext } from '#context/ParcelLineItemChildrenContext'\n\nexport interface TResources {\n StockTransfer: LineItem & { resource: 'stockTransfer' }\n Sku: Sku & { resource: 'sku' }\n LineItem: LineItem & { resource: 'lineItem' }\n Customer: Customer & { resource: 'customers' }\n Parcel: Parcel & { resource: 'parcel' }\n ParcelLineItem: Pick<\n ParcelLineItem,\n 'quantity' | 'sku_code' | 'name' | 'image_url'\n > & {\n resource: 'parcelLineItem'\n }\n}\n\nexport type TResourceKey = {\n [K in keyof TResources]: K\n}\n\nexport type TGenericChildrenProps<E extends TResources[keyof TResources]> =\n Omit<Props<E>, 'children' | 'attribute' | 'context' | 'tagElement'> & {\n attributeValue: E[keyof E]\n }\n\ninterface ResourceContext {\n stockTransfer: InitialStockTransferContext\n sku: InitialSkuContext\n lineItem: InitialLineItemChildrenContext\n customers: InitialCustomerContext\n parcel: InitialParcelContext\n parcelLineItem: InitialParcelLineItemContext\n}\n\ntype GenericContext<K extends keyof ResourceContext> = Context<\n ResourceContext[K]\n>\n\ninterface Props<E extends TResources[keyof TResources]> {\n children?: (props: TGenericChildrenProps<E>) => JSX.Element\n resource: E['resource']\n /**\n * Resource attribute to display.\n */\n attribute: keyof E\n /**\n * Html tag to render. When tag is `img` the value will be used to fill the `src` attribute.\n */\n tagElement: keyof JSX.IntrinsicElements\n context: GenericContext<E['resource']>\n}\n\nexport default function GenericFieldComponent<R extends keyof TResources>(\n props: Props<TResources[R]>\n): JSX.Element {\n const { children, tagElement, attribute, context, resource, ...p } = props\n const resourceContext = useContext(context)\n let attributeValue = ''\n const keysContext = Object.keys(resourceContext).filter(\n (key) => key === resource\n ) as [keyof ResourceContext[keyof ResourceContext]]\n if (keysContext.length === 1) {\n const [keyResource] = keysContext\n if (keyResource && attribute) {\n attributeValue = resourceContext[keyResource][attribute]\n }\n }\n const Tag = tagElement || 'span'\n if (Tag === 'img' && !children) {\n const src = attributeValue || defaultImgUrl\n const name = ''\n return <img alt={name} src={src} {...(p as Omit<JSX.IntrinsicElements['img'], 'ref' | 'children'>)} />\n }\n const parentProps = {\n attributeValue,\n tagElement,\n ...p\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <Tag key={attributeValue} data-testid={attributeValue} {...p}>\n {attributeValue}\n </Tag>\n )\n}\n","import type { ConditionalElement } from '#typings'\nimport GenericFieldComponent, {\n type TGenericChildrenProps,\n type TResourceKey,\n type TResources\n} from '#components/utils/GenericFieldComponent'\nimport CustomerContext from '#context/CustomerContext'\n\nimport type { JSX } from \"react\";\n\ntype StockTransferFieldChildrenProps = TGenericChildrenProps<\n TResources['Customer']\n>\n\ntype TCondition = ConditionalElement<\n Exclude<TResources['Customer'], 'resource'>\n>\n\ntype Props = {\n children?: (props: StockTransferFieldChildrenProps) => JSX.Element\n} & TCondition\n\n/**\n * The CustomerField component displays any attribute of the `customer` set in the state of the parent `<CustomerContainer>` component.\n *\n * It also accepts a `tagElement` props to enable specific tag-related props.\n * For examples, when `tagElement` is set to `img` it will also accept props related to `<img>` tag such as `height` and `width`.\n *\n * <span title=\"Requirement\" type=\"warning\">\n * It must to be used inside the `<CustomerContainer>` component.\n * </span>\n *\n * <span title=\"Fields\" type=\"info\">\n * Check the `customers` resource from our [Core API documentation](https://docs.commercelayer.io/core/v/api-reference/customers/object)\n * for more details about the available attributes to render.\n * </span>\n */\nexport function CustomerField<P extends Props>(props: P): JSX.Element {\n const { attribute, tagElement = 'span', children, ...p } = props\n return (\n <GenericFieldComponent<TResourceKey['Customer']>\n resource='customers'\n attribute={attribute}\n tagElement={tagElement}\n context={CustomerContext}\n {...p}\n >\n {children}\n </GenericFieldComponent>\n )\n}\n\nexport default CustomerField\n","/* eslint-disable @typescript-eslint/no-unsafe-argument */\nimport { useContext, useEffect, useState, type JSX } from 'react';\nimport BaseInput from '#components-utils/BaseInput'\nimport type { BaseInputComponentProps } from '#typings'\nimport { useRapidForm } from 'rapid-form'\nimport CustomerContext from '#context/CustomerContext'\nimport type { BaseError, CodeErrorType } from '#typings/errors'\nimport { validateValue } from '#utils/validateFormFields'\nimport OrderContext from '#context/OrderContext'\n\ntype Props = {\n name?: 'customer_email' | string\n type?: 'email' | string\n saveOnBlur?: boolean\n onBlur?: (email: string) => void\n errorClassName?: string\n} & Omit<BaseInputComponentProps, 'name' | 'type' | 'onBlur'> &\n Omit<JSX.IntrinsicElements['input'], 'children'> &\n Omit<JSX.IntrinsicElements['textarea'], 'children'>\n\nexport function CustomerInput(props: Props): JSX.Element {\n const {\n name = 'customer_email',\n placeholder = '',\n required = true,\n saveOnBlur = false,\n type = 'email',\n value,\n onBlur,\n className,\n errorClassName,\n ...p\n } = props\n const { validation, values, errors, setError } = useRapidForm({\n fieldEvent: 'blur'\n })\n const { saveCustomerUser, setCustomerErrors, setCustomerEmail } =\n useContext(CustomerContext)\n const { setOrderErrors } = useContext(OrderContext)\n const [hasError, setHasError] = useState(false)\n const handleOnBlur = async (\n e:\n | React.FocusEvent<HTMLInputElement, Element>\n | React.FocusEvent<HTMLTextAreaElement, Element>\n ): Promise<void> => {\n const v = e?.target?.value\n const checkValue = validateValue(v, name, type, 'orders')\n const isValid = Object.keys(checkValue).length === 0\n if (saveOnBlur && Object.keys(values).length > 0) {\n if (saveCustomerUser != null) {\n await saveCustomerUser(values[name].value)\n if (onBlur) onBlur(values[name].value)\n }\n }\n if (!isValid) {\n const currentError = {\n ...checkValue,\n name: checkValue?.field\n }\n setError(currentError)\n }\n }\n useEffect(() => {\n if (Object.keys(errors).length > 0) {\n const formErrors: BaseError[] = []\n for (const fieldName in errors) {\n const code = errors[fieldName]?.code\n const message = errors[fieldName]?.message\n formErrors.push({\n code: code as CodeErrorType,\n message: message || '',\n resource: 'orders',\n field: fieldName\n })\n }\n if (formErrors.length > 0) {\n setHasError(true)\n if (setCustomerErrors) setCustomerErrors(formErrors)\n }\n } else {\n if (setCustomerErrors) setCustomerErrors([])\n if (setOrderErrors) setOrderErrors([])\n setHasError(false)\n }\n if (Object.keys(values).length > 0) {\n if (setCustomerEmail) setCustomerEmail(values[name].value)\n }\n return () => {\n setHasError(false)\n }\n }, [errors])\n const classNameComputed = `${className ?? ''} ${\n hasError && errorClassName ? errorClassName : ''\n }`\n return (\n <BaseInput\n name={name}\n type={type}\n ref={validation as any}\n required={required}\n placeholder={placeholder}\n defaultValue={value}\n onBlur={(e) => {\n handleOnBlur(e)\n }}\n className={classNameComputed}\n {...p}\n />\n )\n}\n\nexport default CustomerInput\n","import { type ReactNode, useContext, type JSX } from \"react\"\nimport Parent from \"#components/utils/Parent\"\nimport type { ChildrenFunction } from \"#typings/index\"\nimport isEmpty from \"lodash-es/isEmpty\"\nimport CustomerContext from \"#context/CustomerContext\"\n\ninterface ChildrenProps extends Omit<Props, \"children\"> {\n handleClick: () => void\n}\n\ninterface Props extends Omit<JSX.IntrinsicElements[\"button\"], \"children\"> {\n children?: ChildrenFunction<ChildrenProps>\n label?: string | ReactNode\n onClick?: () => void\n}\n\nexport function SaveCustomerButton(props: Props): JSX.Element {\n const { children, label = \"Save\", resource, disabled, onClick, ...p } = props\n const { errors, saveCustomerUser, customerEmail } =\n useContext(CustomerContext)\n const disable = disabled || !isEmpty(errors) || isEmpty(customerEmail)\n const handleClick = async (): Promise<void> => {\n if (isEmpty(errors) && !disable && customerEmail != null) {\n saveCustomerUser && (await saveCustomerUser(customerEmail))\n if (onClick) onClick()\n }\n }\n const parentProps = {\n ...p,\n label,\n resource,\n handleClick,\n disabled: disable,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <button\n type=\"button\"\n disabled={disable}\n onClick={() => {\n handleClick()\n }}\n {...p}\n >\n {label}\n </button>\n )\n}\n\nexport default SaveCustomerButton\n","/* eslint-disable @typescript-eslint/no-unsafe-argument */\nimport baseReducer from \"#utils/baseReducer\"\nimport type {\n Customer,\n Market,\n GiftCardRecipient,\n GiftCardRecipientCreate,\n Order,\n GiftCardRecipientUpdate,\n} from \"@commercelayer/sdk\"\nimport type { BaseMetadata } from \"#typings\"\nimport type { Dispatch } from \"react\"\nimport type { CommerceLayerConfig } from \"#context/CommerceLayerContext\"\nimport isEmpty from \"lodash-es/isEmpty\"\nimport type { BaseError } from \"#typings/errors\"\nimport getErrors from \"#utils/getErrors\"\nimport getSdk from \"#utils/getSdk\"\nimport type {\n createOrder as makeOrder,\n getOrderContext,\n} from \"#reducers/OrderReducer\"\n\nexport type GiftCardActionType =\n | \"setAvailability\"\n | \"setGiftCardRecipient\"\n | \"setGiftCardErrors\"\n | \"setGiftCardLoading\"\n\nexport interface GiftCardRecipientI {\n email: string\n firstName?: string\n lastName?: string\n referenceOrigin?: string\n reference?: string\n metadata?: BaseMetadata\n customer?: Customer\n}\n\nexport interface GiftCardI {\n currencyCode?: string\n balanceCent?: number\n balanceMaxCents?: number\n singleUse?: boolean\n rechargeable?: boolean\n imageUrl?: string\n expiresAt?: null | Date\n firstName?: string\n lastName?: string\n email?: string\n referenceOrigin?: string\n recipientEmail?: string\n reference?: string\n metadata?: BaseMetadata\n orderId?: string\n}\n\nexport interface GiftCardActionPayload extends GiftCardI {\n market?: Market\n giftCardRecipient?: GiftCardRecipient\n errors?: BaseError[]\n loading?: boolean\n}\n\nexport interface GiftCardState extends GiftCardActionPayload {\n currencyCode: string\n balanceCent: number\n addGiftCardRecipient?: (\n values: GiftCardRecipientI & Record<string, any>,\n ) => void\n addGiftCard?: (values: GiftCardI & Record<string, any>) => void\n addGiftCardError?: (errors: BaseError[]) => void\n addGiftCardLoading?: (loading: boolean) => void\n}\n\nexport interface GiftCardAction {\n type: GiftCardActionType\n payload: GiftCardActionPayload\n}\n\nexport const giftCardInitialState: GiftCardState = {\n currencyCode: \"\",\n balanceCent: 0,\n singleUse: false,\n rechargeable: true,\n loading: false,\n expiresAt: null,\n errors: [],\n}\n\nexport type AddGiftCardError = <V extends BaseError[]>(\n errors: V,\n dispatch: Dispatch<GiftCardAction>,\n) => void\n\nexport type AddGiftCardLoading = <V extends boolean>(\n loading: V,\n dispatch: Dispatch<GiftCardAction>,\n) => void\n\nexport async function addGiftCardRecipient<V extends GiftCardRecipientCreate>(\n values: V,\n config: CommerceLayerConfig,\n dispatch: Dispatch<GiftCardAction>,\n): Promise<void> {\n try {\n const sdk = getSdk(config)\n const recipient = await sdk.gift_card_recipients.create(values)\n dispatch({\n type: \"setGiftCardRecipient\",\n payload: {\n giftCardRecipient: recipient,\n },\n })\n } catch (error) {\n console.error(error)\n }\n}\n\nexport const addGiftCardLoading: AddGiftCardLoading = (loading, dispatch) => {\n dispatch({\n type: \"setGiftCardLoading\",\n payload: {\n loading,\n },\n })\n}\n\nexport async function addGiftCard<V extends GiftCardI>(\n values: V,\n {\n config,\n dispatch,\n getOrder,\n createOrder,\n order,\n }: {\n getOrder?: getOrderContext\n createOrder?: typeof makeOrder\n config: CommerceLayerConfig\n dispatch: Dispatch<GiftCardAction>\n order?: Order\n },\n): Promise<void> {\n try {\n const sdk = getSdk(config)\n addGiftCardLoading(true, dispatch)\n const { firstName, lastName, email, ...val } = values\n // TODO: Change any type\n const giftCardValue: any = {\n recipient_email: email,\n ...val,\n }\n const giftCard = await sdk.gift_cards.create(giftCardValue, {\n include: [\"gift_card_recipient\"],\n })\n const recipientValues: GiftCardRecipientUpdate = {\n id: giftCard.gift_card_recipient?.id ?? \"\",\n }\n if (firstName) recipientValues.first_name = firstName\n if (lastName) recipientValues.last_name = lastName\n if (!isEmpty(recipientValues)) {\n await sdk.gift_card_recipients.update(recipientValues)\n }\n if (createOrder && getOrder) {\n const id = order ? order.id : await createOrder({})\n if (id) {\n const order = sdk.orders.relationship(id)\n const item = sdk.gift_cards.relationship(giftCard.id)\n await sdk.line_items.create({\n quantity: 1,\n order,\n item,\n })\n await getOrder(id)\n }\n }\n dispatch({\n type: \"setGiftCardRecipient\",\n payload: {\n ...giftCardValue,\n },\n })\n addGiftCardLoading(false, dispatch)\n } catch (error: any) {\n const errors = getErrors({ error, resource: \"gift_cards\" })\n dispatch({\n type: \"setGiftCardErrors\",\n payload: {\n errors,\n },\n })\n addGiftCardLoading(false, dispatch)\n }\n}\n\nexport const addGiftCardError: AddGiftCardError = (errors, dispatch) => {\n dispatch({\n type: \"setGiftCardErrors\",\n payload: {\n errors,\n },\n })\n}\n\nconst type: GiftCardActionType[] = [\n \"setAvailability\",\n \"setGiftCardRecipient\",\n \"setGiftCardErrors\",\n \"setGiftCardLoading\",\n]\n\nconst giftCardReducer = (\n state: GiftCardState,\n reducer: GiftCardAction,\n): GiftCardState =>\n baseReducer<GiftCardState, GiftCardAction, GiftCardActionType[]>(\n state,\n reducer,\n type,\n )\n\nexport default giftCardReducer\n","import { createContext } from 'react'\nimport {\n giftCardInitialState,\n type GiftCardState,\n type GiftCardRecipientI,\n type GiftCardI\n} from '#reducers/GiftCardReducer'\nimport type { BaseError } from '#typings/errors'\n\nexport interface GCContext extends GiftCardState {\n addGiftCardRecipient: (values: GiftCardRecipientI & object) => void\n addGiftCard: (values: GiftCardI & object) => void\n addGiftCardError: (errors: BaseError[]) => void\n addGiftCardLoading: (loading: boolean) => void\n}\n\nconst GiftCardContext = createContext(giftCardInitialState as GCContext)\n\nexport default GiftCardContext\n","export function pick<T, K extends keyof T>(object: T, keys: K[]): Pick<T, K> {\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const result: T = {} as T\n for (const key of keys) {\n result[key] = object[key]\n }\n return result\n}\n","import type { BaseError } from '#typings/errors'\nimport { pick } from './pick'\n\nexport default function customMessages(\n messages: BaseError[] = [],\n v: BaseError\n): null | BaseError | undefined {\n const objFiltered = pick(v, ['field', 'code', 'resource', 'detail'])\n const [msg] = messages.filter((item) => {\n switch (true) {\n case item.field === objFiltered.field &&\n item.code === objFiltered.code &&\n item.resource === objFiltered.resource:\n return true\n case item.field != null &&\n objFiltered.detail?.includes(item.field) &&\n item.code === objFiltered.code &&\n item.resource === objFiltered.resource:\n return true\n case item.code === objFiltered.code &&\n item.resource === objFiltered.resource &&\n objFiltered.field == null &&\n item.field == null:\n return true\n default:\n return false\n }\n })\n return msg != null ? msg : null\n}\n","import customMessages from '#utils/customMessages'\nimport type { LineItem } from '@commercelayer/sdk'\nimport type { BaseError } from '#typings/errors'\nimport type { TResourceError } from '#components/errors/Errors'\n\nimport type { JSX } from \"react\";\n\nexport interface AllErrorsParams {\n allErrors: BaseError[]\n messages: BaseError[]\n field?: string\n props: Omit<JSX.IntrinsicElements['span'], 'ref'>\n lineItem?: LineItem | null\n resource?: TResourceError\n returnHtml?: boolean\n}\n\nexport type GetAllErrors = <P extends AllErrorsParams>(\n params: P\n) => Array<JSX.Element | string | undefined>\n\nconst getAllErrors: GetAllErrors = (params) => {\n const {\n allErrors,\n messages,\n field,\n props,\n lineItem,\n resource,\n returnHtml = true\n } = params\n return allErrors\n .map((v, k): JSX.Element | string | undefined => {\n const objMsg = customMessages(messages, v)\n let text =\n v?.title && v?.detail != null && !v.detail?.includes(v.title)\n ? `${v.title} - ${v.detail}`.trim()\n : `${v?.detail || v.message}`.trim()\n if (objMsg?.message) text = objMsg?.message.trim()\n const isEmpty = text.length === 0\n if (field) {\n if (v.resource === 'line_items') {\n if (lineItem && v.id === lineItem.id) {\n return isEmpty ? undefined : returnHtml ? (\n <span key={k} {...props}>\n {text}\n </span>\n ) : (\n text\n )\n }\n }\n if (\n (field === v.field || v.detail?.includes(field)) &&\n resource === v.resource\n ) {\n return isEmpty ? undefined : returnHtml ? (\n <span key={k} {...props}>\n {text}\n </span>\n ) : (\n text\n )\n }\n }\n if (resource === v.resource && !field) {\n return isEmpty ? undefined : returnHtml ? (\n <span key={k} {...props}>\n {text}\n </span>\n ) : (\n text\n )\n }\n return undefined\n })\n .filter((v) => v !== undefined)\n}\n\nexport default getAllErrors\n","import { createContext } from 'react'\nimport type { LineItemState } from '#reducers/LineItemReducer'\nimport type { LineItem } from '@commercelayer/sdk'\n\nexport interface LineItemContextValue extends LineItemState {\n lineItems?: LineItem[] | null\n}\n\nconst initial: LineItemContextValue = {}\n\nconst LineItemContext = createContext<LineItemContextValue>(initial)\n\nexport default LineItemContext\n","import { createContext } from 'react'\nimport type { LineItem } from '@commercelayer/sdk'\n\nexport type InitialLineItemChildrenContext = Partial<{\n lineItem: LineItem | null | undefined\n}>\n\nconst initial: InitialLineItemChildrenContext = {}\n\nconst LineItemChildrenContext =\n createContext<InitialLineItemChildrenContext>(initial)\n\nexport default LineItemChildrenContext\n","export type SnakeToCamelCase<S extends string> =\n S extends `${infer T}_${infer U}`\n ? `${Lowercase<T>}${Capitalize<SnakeToCamelCase<U>>}`\n : S\n\nexport type SnakeToCamelCaseNested<T> = T extends object\n ? {\n [K in keyof T as SnakeToCamelCase<K & string>]: SnakeToCamelCaseNested<\n T[K]\n >\n }\n : T\n\nexport function snakeToCamelCase<S extends string>(\n value: S\n): SnakeToCamelCase<S> {\n const words = value.toLowerCase().split('_')\n const first = words[0] ?? ''\n const firstLetter = words[1]?.[0]?.toUpperCase() ?? ''\n const second = words[1]?.substring(1) ?? ''\n return `${first}${firstLetter}${second}` as SnakeToCamelCase<S>\n}\n","export type StringReplace<\n TString extends string,\n TToReplace extends string,\n TReplacement extends string\n> = TString extends `${infer TPrefix}${TToReplace}${infer TSuffix}`\n ? `${TPrefix}${TReplacement}${StringReplace<\n TSuffix,\n TToReplace,\n TReplacement\n >}`\n : TString\n\nexport function replace<V extends string, R extends string, P extends string>(\n value: V,\n replace: R,\n replacement: P\n): StringReplace<V, R, P> {\n return value.replace(replace, replacement) as StringReplace<V, R, P>\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-argument */\nimport type { AdyenPaymentConfig } from \"#components/payment_source/AdyenPayment\";\nimport type { BraintreeConfig } from \"#components/payment_source/BraintreePayment\";\nimport type { PaypalConfig } from \"#components/payment_source/PaypalPayment\";\nimport type { StripeConfig } from \"#components/payment_source/StripePayment\";\nimport type { WireTransferConfig } from \"#components/payment_source/WireTransferPayment\";\nimport type { CommerceLayerConfig } from \"#context/CommerceLayerContext\";\nimport type { getOrderContext, updateOrder } from \"#reducers/OrderReducer\";\nimport type { BaseError } from \"#typings/errors\";\nimport baseReducer from \"#utils/baseReducer\";\nimport getErrors, { setErrors } from \"#utils/getErrors\";\nimport getSdk from \"#utils/getSdk\";\nimport type {\n Order,\n PaymentMethod,\n StripePayment,\n WireTransfer,\n AdyenPayment,\n BraintreePayment,\n CheckoutComPayment,\n ExternalPayment,\n PaypalPayment,\n KlarnaPayment,\n} from \"@commercelayer/sdk\";\nimport type { Dispatch, MutableRefObject } from \"react\";\nimport type { CheckoutComConfig } from \"#components/payment_source/CheckoutComPayment\";\nimport type { ExternalPaymentConfig } from \"#components/payment_source/ExternalPayment\";\nimport { snakeToCamelCase } from \"#utils/snakeToCamelCase\";\nimport { replace } from \"#utils/replace\";\nimport { pick } from \"#utils/pick\";\nimport type { ResourceKeys } from \"#utils/getPaymentAttributes\";\n\nexport type PaymentSourceType = Order[\"payment_source\"];\n\ninterface Card {\n type: string;\n brand: string;\n last4: string;\n exp_year: number;\n exp_month: number;\n}\n\nexport interface PaymentSourceObject {\n adyen_payments: AdyenPayment & {\n payment_request_data?: {\n payment_method?: Card;\n };\n payment_response?: {\n resultCode?: \"Authorised\";\n };\n };\n braintree_payments: BraintreePayment & {\n options?: {\n card: Card;\n };\n };\n external_payments: ExternalPayment & {\n payment_source_token?: string;\n };\n paypal_payments: PaypalPayment;\n stripe_payments: StripePayment & {\n options?: {\n card: Card;\n };\n payment_method?: {\n card: Card;\n type: string | \"klarna\" | \"card\";\n };\n };\n wire_transfers: WireTransfer;\n checkout_com_payments: CheckoutComPayment & {\n payment_response: {\n source?: Pick<Card, \"last4\"> & {\n scheme: string;\n expiry_year: number;\n expiry_month: number;\n };\n };\n };\n klarna_payments: KlarnaPayment;\n}\n\nexport type PaymentMethodActionType =\n | \"setErrors\"\n | \"setPaymentMethods\"\n | \"setPaymentMethodConfig\"\n | \"setPaymentSource\"\n | \"setPaymentRef\"\n | \"setLoading\";\n\nexport type PaymentRef = MutableRefObject<null | HTMLFormElement>;\n\nexport interface PaymentMethodActionPayload {\n errors: BaseError[];\n paymentMethods: PaymentMethod[] | null;\n currentPaymentMethodType: PaymentResource;\n currentPaymentMethodId: string;\n currentPaymentMethodRef: PaymentRef;\n currentCustomerPaymentSourceId: string | null;\n config: PaymentMethodConfig;\n paymentSource: Order[\"payment_source\"] | null;\n loading: boolean;\n}\n\nexport function setLoading({\n loading,\n dispatch,\n}: {\n loading: boolean;\n dispatch?: Dispatch<PaymentMethodAction>;\n}): void {\n if (dispatch)\n dispatch({\n type: \"setLoading\",\n payload: { loading },\n });\n}\n\nexport type SetPaymentRef = (args: {\n ref: PaymentRef;\n dispatch?: Dispatch<PaymentMethodAction>;\n}) => void;\n\nexport const setPaymentRef: SetPaymentRef = ({ ref, dispatch }) => {\n if (ref && dispatch) {\n dispatch({\n type: \"setPaymentRef\",\n payload: {\n currentPaymentMethodRef: ref,\n },\n });\n }\n};\n\nexport type PaymentMethodState = Partial<PaymentMethodActionPayload>;\n\nexport interface PaymentMethodAction {\n type: PaymentMethodActionType;\n payload: Partial<PaymentMethodActionPayload>;\n}\n\nexport const paymentMethodInitialState: PaymentMethodState = {\n errors: [],\n paymentMethods: undefined,\n};\n\nexport type SetPaymentMethodErrors = <V extends BaseError[]>(\n errors: V,\n dispatch?: Dispatch<PaymentMethodAction>,\n) => void;\n\nexport const setPaymentMethodErrors: SetPaymentMethodErrors = (\n errors,\n dispatch,\n) => {\n if (dispatch)\n dispatch({\n type: \"setErrors\",\n payload: {\n errors,\n },\n });\n};\n\ntype GetPaymentMethods = (args: {\n order: Order;\n dispatch: Dispatch<PaymentMethodAction>;\n}) => Promise<void>;\n\nexport const getPaymentMethods: GetPaymentMethods = async ({\n order,\n dispatch,\n}) => {\n const paymentMethods = order.available_payment_methods;\n const paymentMethod = order.payment_method;\n const paymentSource = order.payment_source;\n dispatch({\n type: \"setPaymentMethods\",\n payload: {\n paymentMethods,\n currentPaymentMethodId: paymentMethod?.id,\n currentPaymentMethodType:\n paymentMethod?.payment_source_type as PaymentResource,\n paymentSource,\n },\n });\n};\n\nexport type PaymentResource = keyof PaymentSourceObject;\n\nexport type PaymentResourceKey =\n | \"braintreePayment\"\n | \"stripePayment\"\n | \"klarnaPayment\"\n | \"wireTransfer\"\n | \"paypalPayment\"\n | \"adyenPayment\"\n | \"checkoutComPayment\";\n\nexport type SDKPaymentResource =\n | \"AdyenPayment\"\n | \"BraintreePayment\"\n | \"ExternalPayment\"\n | \"PaypalPayment\"\n | \"StripePayment\"\n | \"WireTransfer\"\n | \"CheckoutComPayment\";\n\ninterface TSetPaymentMethodParams {\n config?: CommerceLayerConfig;\n dispatch?: Dispatch<PaymentMethodAction>;\n updateOrder?: typeof updateOrder;\n setOrderErrors?: (collection: any) => { success: boolean };\n order?: Order;\n paymentMethodId: string;\n paymentResource?: PaymentResource;\n}\n\nexport async function setPaymentMethod({\n config,\n dispatch,\n order,\n paymentMethodId,\n updateOrder,\n setOrderErrors,\n paymentResource,\n}: TSetPaymentMethodParams): Promise<{ success: boolean; order?: Order }> {\n let response: { success: boolean; order?: Order } = {\n success: false,\n };\n try {\n if (config && order && dispatch && paymentResource) {\n localStorage.removeItem(\"_save_payment_source_to_customer_wallet\");\n const sdk = getSdk(config);\n const attributes = {\n payment_method: sdk.payment_methods.relationship(paymentMethodId),\n };\n if (updateOrder != null) {\n const currentOrder = await updateOrder({ id: order.id, attributes });\n response = currentOrder;\n }\n dispatch({\n type: \"setPaymentMethods\",\n payload: {\n currentPaymentMethodId: paymentMethodId,\n currentPaymentMethodType: paymentResource,\n errors: [],\n },\n });\n if (setOrderErrors) setOrderErrors([]);\n }\n return response;\n } catch (error: any) {\n const errors = getErrors({\n error,\n resource: \"orders\",\n field: paymentResource,\n });\n console.error(\"Set payment method\", errors);\n return response;\n }\n}\n\ntype PaymentSourceTypes =\n | (StripePayment & WireTransfer)\n | (StripePayment | WireTransfer);\n\nexport type SetPaymentSourceResponse = {\n order: Order;\n paymentSource: PaymentSourceTypes;\n} | null;\n\nexport interface SetPaymentSourceParams\n extends Omit<PaymentMethodState, \"config\"> {\n config?: CommerceLayerConfig;\n dispatch?: Dispatch<PaymentMethodAction>;\n getOrder?: getOrderContext;\n attributes?: Record<string, unknown>;\n order?: Order;\n paymentResource: PaymentResource;\n paymentSourceId?: string;\n customerPaymentSourceId?: string;\n updateOrder?: typeof updateOrder;\n}\n\nexport async function setPaymentSource({\n config,\n dispatch,\n getOrder,\n attributes,\n order,\n paymentResource,\n customerPaymentSourceId,\n paymentSourceId,\n updateOrder,\n errors: currentErrors,\n}: SetPaymentSourceParams): Promise<PaymentSourceType | undefined | null> {\n try {\n const isAlreadyPlaced = order?.status === \"placed\";\n if (config && order && !isAlreadyPlaced) {\n let paymentSource: PaymentSourceType;\n const sdk = getSdk(config);\n if (!customerPaymentSourceId) {\n if (!paymentSourceId) {\n const attrs: any = {\n ...attributes,\n order: sdk.orders.relationship(order.id),\n };\n paymentSource = await sdk[paymentResource].create(attrs);\n } else {\n const attrs = {\n id: paymentSourceId,\n ...attributes,\n };\n paymentSource =\n attributes != null\n ? await sdk[paymentResource].update(attrs)\n : await sdk[paymentResource].retrieve(paymentSourceId);\n }\n getOrder && (await getOrder(order.id));\n if (dispatch) {\n dispatch({\n type: \"setPaymentSource\",\n payload: {\n paymentSource,\n errors: [],\n currentCustomerPaymentSourceId: null,\n },\n });\n }\n return paymentSource;\n } else {\n if (updateOrder != null) {\n const { order: orderUpdated } = await updateOrder({\n id: order.id,\n attributes: {\n _customer_payment_source_id: customerPaymentSourceId,\n },\n });\n if (dispatch != null && orderUpdated != null) {\n dispatch({\n type: \"setPaymentSource\",\n payload: {\n paymentSource: orderUpdated.payment_source,\n currentCustomerPaymentSourceId: orderUpdated.payment_source?.id,\n },\n });\n }\n }\n }\n }\n } catch (error: any) {\n const errors = getErrors({\n error,\n resource: \"payment_methods\",\n field: paymentResource,\n });\n if (errors != null && errors?.length > 0) {\n const [error] = errors;\n if (error?.status === \"401\" && getOrder != null && order != null) {\n const currentOrder = await getOrder(order?.id);\n if (\n currentOrder?.status != null &&\n ![\"placed\", \"approved\"].includes(currentOrder.status)\n ) {\n console.error(\"Set payment source:\", errors);\n setErrors({\n currentErrors,\n newErrors: errors,\n dispatch,\n });\n }\n }\n } else {\n setErrors({\n currentErrors,\n newErrors: errors,\n dispatch,\n });\n }\n }\n return undefined;\n}\n\nexport type UpdatePaymentSource = (args: {\n id: string;\n attributes: Record<string, any>;\n paymentResource: PaymentResource;\n config?: CommerceLayerConfig;\n dispatch?: Dispatch<PaymentMethodAction>;\n}) => Promise<void>;\n\nexport const updatePaymentSource: UpdatePaymentSource = async ({\n id,\n attributes,\n config,\n dispatch,\n paymentResource,\n}) => {\n if (config) {\n try {\n const sdk = getSdk(config);\n const paymentSource = await sdk[paymentResource].update({\n id,\n ...attributes,\n });\n if (dispatch) {\n dispatch({\n type: \"setPaymentSource\",\n payload: { paymentSource },\n });\n }\n } catch (err) {\n console.error(\"Update payment source:\", err);\n }\n }\n};\n\nexport type DestroyPaymentSource = (args: {\n paymentSourceId: string;\n paymentResource: PaymentResource;\n dispatch?: Dispatch<PaymentMethodAction>;\n updateOrder?: typeof updateOrder;\n orderId?: string;\n}) => Promise<void>;\n\nexport const destroyPaymentSource: DestroyPaymentSource = async ({\n paymentSourceId,\n paymentResource,\n dispatch,\n // updateOrder,\n // orderId,\n}) => {\n if (paymentSourceId && paymentResource) {\n // await updateOrder({\n // id: orderId,\n // attributes: {\n // payment_source: {},\n // },\n // })\n if (dispatch)\n dispatch({\n type: \"setPaymentSource\",\n payload: { paymentSource: undefined },\n });\n }\n};\n\nexport interface PaymentMethodConfig {\n adyenPayment?: AdyenPaymentConfig;\n braintreePayment?: BraintreeConfig;\n checkoutComPayment?: CheckoutComConfig;\n externalPayment?: ExternalPaymentConfig;\n klarnaPayment?: Pick<AdyenPaymentConfig, \"placeOrderCallback\"> &\n Pick<StripeConfig, \"containerClassName\">;\n paypalPayment?: PaypalConfig;\n stripePayment?: StripeConfig;\n wireTransfer?: Partial<WireTransferConfig>;\n}\n\ntype SetPaymentMethodConfig = (\n config: PaymentMethodConfig,\n dispatch: Dispatch<PaymentMethodAction>,\n) => void;\n\nexport const setPaymentMethodConfig: SetPaymentMethodConfig = (\n config,\n dispatch,\n) => {\n dispatch({\n type: \"setPaymentMethodConfig\",\n payload: { config },\n });\n};\n\nexport function getPaymentConfig<\n R extends PaymentResource = PaymentResource,\n K extends PaymentMethodConfig = PaymentMethodConfig,\n>(paymentResource: R, config: K): Pick<K, ResourceKeys<R>> {\n const resourceKeys = replace(\n replace(paymentResource, \"payments\", \"payment\"),\n \"transfers\",\n \"transfer\",\n );\n const resource = snakeToCamelCase(resourceKeys);\n return pick(config, [resource]);\n}\n\nconst type: PaymentMethodActionType[] = [\n \"setErrors\",\n \"setPaymentMethodConfig\",\n \"setPaymentMethods\",\n \"setPaymentSource\",\n \"setPaymentRef\",\n \"setLoading\",\n];\n\nconst paymentMethodReducer = (\n state: PaymentMethodState,\n reducer: PaymentMethodAction,\n): PaymentMethodState =>\n baseReducer<\n PaymentMethodState,\n PaymentMethodAction,\n PaymentMethodActionType[]\n >(state, reducer, type);\n\nexport default paymentMethodReducer;\n","import { createContext } from 'react'\nimport {\n type UpdatePaymentSource,\n updatePaymentSource,\n type PaymentMethodState,\n type SetPaymentMethodErrors,\n setPaymentMethodErrors,\n setPaymentSource,\n setPaymentMethod,\n destroyPaymentSource,\n type DestroyPaymentSource,\n type SetPaymentRef,\n setPaymentRef,\n setLoading\n} from '#reducers/PaymentMethodReducer'\n\ntype DefaultContext = {\n setPaymentMethodErrors: SetPaymentMethodErrors\n setPaymentMethod: typeof setPaymentMethod\n setPaymentSource: typeof setPaymentSource\n setPaymentRef: SetPaymentRef\n destroyPaymentSource: DestroyPaymentSource\n updatePaymentSource: UpdatePaymentSource\n setLoading: typeof setLoading\n} & PaymentMethodState\n\nexport const defaultPaymentMethodContext: DefaultContext = {\n setPaymentMethodErrors,\n setPaymentMethod,\n setPaymentSource,\n setPaymentRef,\n destroyPaymentSource,\n updatePaymentSource,\n setLoading\n}\n\nconst PaymentMethodContext = createContext<DefaultContext>(\n defaultPaymentMethodContext\n)\n\nexport default PaymentMethodContext\n","import { createContext } from 'react'\nimport type { PaymentMethod } from '@commercelayer/sdk'\n\nexport interface InitialPaymentMethodChildrenContext {\n payment?: PaymentMethod\n clickableContainer?: boolean\n paymentSelected?: string\n setPaymentSelected?: (paymentId: string) => void\n expressPayments?: boolean\n}\n\nconst initial: InitialPaymentMethodChildrenContext = {}\n\nconst PaymentMethodChildrenContext =\n createContext<InitialPaymentMethodChildrenContext>(initial)\n\nexport default PaymentMethodChildrenContext\n","import type { Order } from '@commercelayer/sdk'\n\n/**\n * Check if the order can be placed\n */\nexport function canPlaceOrder(order: Order): boolean {\n return ['draft', 'pending'].includes(order.status)\n}\n","import baseReducer from '#utils/baseReducer'\nimport type { Dispatch } from 'react'\nimport type { BaseError } from '#typings/errors'\nimport type {\n DeliveryLeadTime,\n LineItem,\n Order,\n Shipment\n} from '@commercelayer/sdk'\nimport type { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport type { getOrderContext } from './OrderReducer'\nimport getSdk from '#utils/getSdk'\nimport { canPlaceOrder } from '#utils/canPlaceOrder'\n\nexport type ShipmentActionType =\n | 'setErrors'\n | 'setShipments'\n | 'setShippingMethod'\n\nexport type ShipmentLineItem = LineItem & { line_item: LineItem }\n\nexport interface ShipmentActionPayload {\n errors: BaseError[]\n shipments: Shipment[] | null\n deliveryLeadTimes: DeliveryLeadTime[]\n}\n\nexport type ShipmentState = Partial<ShipmentActionPayload>\n\nexport interface ShipmentAction {\n type: ShipmentActionType\n payload: Partial<ShipmentActionPayload>\n}\n\nexport const shipmentInitialState: ShipmentState = {\n errors: []\n}\n\nexport type SetShipmentErrors = <V extends BaseError[]>(\n errors: V,\n dispatch?: Dispatch<ShipmentAction>\n) => void\n\nexport const setShipmentErrors: SetShipmentErrors = (errors, dispatch) => {\n if (dispatch) {\n dispatch({\n type: 'setErrors',\n payload: {\n errors\n }\n })\n }\n}\n\ntype GetShipments = (args: {\n order: Order\n dispatch: Dispatch<ShipmentAction>\n config: CommerceLayerConfig\n}) => Promise<void>\n\nexport const getShipments: GetShipments = async ({\n order,\n dispatch,\n config\n}) => {\n try {\n const sdk = getSdk(config)\n const shipments = order.shipments\n let allDeliveryLeadTimes: DeliveryLeadTime[] = []\n let currentPage = 1\n let totalPages = 1\n do {\n const response = await sdk.delivery_lead_times.list({\n include: ['shipping_method', 'stock_location'],\n pageNumber: currentPage\n })\n allDeliveryLeadTimes = allDeliveryLeadTimes.concat(response)\n totalPages = response.meta.pageCount\n currentPage++\n } while (currentPage <= totalPages)\n dispatch({\n type: 'setShipments',\n payload: {\n shipments,\n deliveryLeadTimes: allDeliveryLeadTimes\n }\n })\n } catch (error) {\n console.error(error)\n }\n}\n\ninterface TSetShippingMethodParams {\n config: CommerceLayerConfig\n shipmentId: string\n shippingMethodId: string\n order?: Order\n getOrder?: getOrderContext\n}\n\nexport async function setShippingMethod({\n config,\n shipmentId,\n shippingMethodId,\n getOrder,\n order\n}: TSetShippingMethodParams): Promise<{ success: boolean; order?: Order }> {\n try {\n if (order != null && !canPlaceOrder(order)) {\n return { success: false, order }\n }\n if (shippingMethodId) {\n const sdk = getSdk(config)\n await sdk.shipments.update({\n id: shipmentId,\n shipping_method: sdk.shipping_methods.relationship(shippingMethodId)\n })\n if (getOrder != null && order != null) {\n const currentOrder = await getOrder(order.id)\n return { success: true, order: currentOrder }\n }\n }\n return { success: false }\n } catch (error) {\n console.error(error)\n return { success: false }\n }\n}\n\nconst type: ShipmentActionType[] = [\n 'setErrors',\n 'setShipments',\n 'setShippingMethod'\n]\n\nconst shipmentReducer = (\n state: ShipmentState,\n reducer: ShipmentAction\n): ShipmentState =>\n baseReducer<ShipmentState, ShipmentAction, ShipmentActionType[]>(\n state,\n reducer,\n type\n )\n\nexport default shipmentReducer\n","import { createContext } from 'react'\nimport {\n type ShipmentState,\n type SetShipmentErrors,\n setShipmentErrors,\n type setShippingMethod\n} from '#reducers/ShipmentReducer'\n\ntype DefaultContext = {\n setShipmentErrors: SetShipmentErrors\n setShippingMethod?: (\n shipmentId: string,\n shippingMethodId: string\n ) => ReturnType<typeof setShippingMethod>\n} & ShipmentState\n\nexport const defaultShipmentContext = {\n setShipmentErrors\n}\n\nconst ShipmentContext = createContext<DefaultContext>(defaultShipmentContext)\n\nexport default ShipmentContext\n","import type {\n setInStockSubscription,\n InStockSubscriptionState\n} from '#reducers/InStockSubscriptionReducer'\nimport { createContext } from 'react'\n\nexport interface InitialInStockSubscriptionContext\n extends InStockSubscriptionState {\n setInStockSubscription?: typeof setInStockSubscription\n}\n\nconst initial: InitialInStockSubscriptionContext = {}\n\nconst InStockSubscriptionContext =\n createContext<InitialInStockSubscriptionContext>(initial)\n\nexport default InStockSubscriptionContext\n","import { useContext, useMemo, type JSX } from 'react';\nimport Parent from '#components/utils/Parent'\nimport GiftCardContext from '#context/GiftCardContext'\nimport OrderContext from '#context/OrderContext'\nimport AddressContext from '#context/AddressContext'\nimport getAllErrors from '#components-utils/getAllErrors'\nimport LineItemContext from '#context/LineItemContext'\nimport LineItemChildrenContext from '#context/LineItemChildrenContext'\nimport type { CodeErrorType } from '#typings/errors'\nimport CustomerContext from '#context/CustomerContext'\nimport PaymentMethodContext from '#context/PaymentMethodContext'\nimport PaymentMethodChildrenContext from '#context/PaymentMethodChildrenContext'\nimport ShipmentContext from '#context/ShipmentContext'\nimport type { ChildrenFunction } from '#typings/index'\nimport InStockSubscriptionContext from '#context/InStockSubscriptionContext'\n\nexport type TResourceError =\n | 'addresses'\n | 'billing_address'\n | 'gift_cards'\n | 'gift_card_or_coupon_code'\n | 'line_items'\n | 'orders'\n | 'payment_methods'\n | 'prices'\n | 'shipments'\n | 'shipping_address'\n | 'customer_address'\n | 'sku_options'\n | 'variant'\n | 'in_stock_subscriptions'\ntype ErrorChildrenComponentProps = ChildrenFunction<\n Omit<TErrorComponent, 'children'> & { errors: string[] }\n>\n\nexport interface TErrorComponent\n extends Omit<JSX.IntrinsicElements['span'], 'children'> {\n /**\n * Resource which get the error\n */\n resource: TResourceError\n children?: ErrorChildrenComponentProps\n /**\n * Field which get the error\n */\n field?: string\n /**\n * Error message which you can translate\n */\n messages?: Array<{\n code: CodeErrorType\n message: string\n resource?: TResourceError\n field?: string\n id?: string\n }>\n}\n\ntype Props = TErrorComponent\n\nexport function Errors(props: Props): JSX.Element {\n const { children, messages = [], resource, field, ...p } = props\n const { payment } = useContext(PaymentMethodChildrenContext)\n const { errors: orderErrors } = useContext(OrderContext)\n const { errors: giftCardErrors } = useContext(GiftCardContext)\n const { errors: lineItemErrors } = useContext(LineItemContext)\n const { errors: addressErrors } = useContext(AddressContext)\n const { errors: customerErrors } = useContext(CustomerContext)\n const { errors: shipmentErrors } = useContext(ShipmentContext)\n const { errors: inStockSubscriptionErrors } = useContext(\n InStockSubscriptionContext\n )\n const {\n errors: paymentMethodErrors,\n currentPaymentMethodType,\n currentPaymentMethodId\n } = useContext(PaymentMethodContext)\n const { lineItem } = useContext(LineItemChildrenContext)\n const allErrors = useMemo(\n () => [\n ...(giftCardErrors || []),\n ...(orderErrors || []),\n ...(lineItemErrors || []),\n ...(customerErrors || []),\n ...(shipmentErrors || []),\n ...(inStockSubscriptionErrors || []),\n ...(paymentMethodErrors?.filter(\n (v) =>\n v.field === currentPaymentMethodType &&\n payment?.id === currentPaymentMethodId\n ) || [])\n ],\n [\n giftCardErrors,\n orderErrors,\n lineItemErrors,\n customerErrors,\n shipmentErrors,\n inStockSubscriptionErrors,\n paymentMethodErrors\n ]\n ).filter((v, k, a) => v?.code !== a[k - 1]?.code)\n const addressesErrors = useMemo(\n () => [...(addressErrors || [])],\n [addressErrors]\n )\n const msgErrors = getAllErrors({\n allErrors: [...allErrors, ...addressesErrors],\n field,\n messages,\n props: p,\n lineItem,\n resource,\n returnHtml: !children\n })\n const parentProps = { messages, resource, field, errors: msgErrors, ...p }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <>{msgErrors}</>\n )\n}\n\nexport default Errors\n","import { useRef, useContext, type RefObject, type JSX } from \"react\"\nimport validateFormFields from \"#utils/validateFormFields\"\nimport isEmpty from \"lodash-es/isEmpty\"\nimport GiftCardContext from \"#context/GiftCardContext\"\nimport type { GiftCardI } from \"#reducers/GiftCardReducer\"\nimport type { BaseState } from \"#typings/index\"\nimport type { DefaultChildrenType } from \"#typings/globals\"\n\ntype RequiredFields = \"currencyCode\" | \"balanceCents\"\n\ninterface Props\n extends Omit<JSX.IntrinsicElements[\"form\"], \"children\" | \"ref\"> {\n children: DefaultChildrenType\n onSubmit?: (values: BaseState) => void\n ref?: RefObject<HTMLFormElement | null>\n}\n\nexport function GiftCard(props: Props): JSX.Element {\n const { children, onSubmit } = props\n const name = \"giftCardForm\"\n const ref: RefObject<HTMLFormElement | null> = useRef<HTMLFormElement>(null)\n const { addGiftCard, addGiftCardError } = useContext(GiftCardContext)\n const handleSubmit = (e: React.FormEvent<HTMLFormElement>): void => {\n e.preventDefault()\n const currentForm = ref.current\n const elements = currentForm?.elements\n const { errors, values } = validateFormFields<RequiredFields[]>(\n // @ts-expect-error type undefined\n elements,\n [\"currencyCode\", \"balanceCents\"],\n \"gift_cards\",\n )\n if (isEmpty(errors)) {\n addGiftCard(values as GiftCardI)\n currentForm?.reset()\n if (onSubmit) {\n onSubmit(values)\n }\n } else {\n addGiftCardError(errors)\n }\n }\n return (\n <>\n <form key={name} name={name} onSubmit={handleSubmit}>\n {children}\n </form>\n </>\n )\n}\n\nexport default GiftCard\n","import { useReducer, useContext, type ReactNode, type JSX } from 'react';\nimport GiftCardContext from '#context/GiftCardContext'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport giftCardReducer, {\n giftCardInitialState,\n addGiftCardRecipient,\n addGiftCard,\n addGiftCardError,\n addGiftCardLoading\n} from '#reducers/GiftCardReducer'\nimport OrderContext from '#context/OrderContext'\n\nexport interface Props {\n children: ReactNode\n}\n\nexport function GiftCardContainer(props: Props): JSX.Element {\n const { children } = props\n const [state, dispatch] = useReducer(giftCardReducer, giftCardInitialState)\n const config = useContext(CommerceLayerContext)\n const { getOrder, createOrder, order } = useContext(OrderContext)\n const giftCardValue = {\n ...state,\n addGiftCardRecipient: async (values: any) => {\n await addGiftCardRecipient(values, config, dispatch)\n },\n addGiftCard: async (values: any) => {\n await addGiftCard(\n { ...values },\n { config, dispatch, getOrder, createOrder, order }\n )\n },\n addGiftCardError: (errors: any): void => {\n addGiftCardError(errors, dispatch)\n },\n addGiftCardLoading: (loading: boolean): void => {\n addGiftCardLoading(loading, dispatch)\n }\n }\n return (\n <GiftCardContext.Provider value={giftCardValue}>\n {children}\n </GiftCardContext.Provider>\n )\n}\n\nexport default GiftCardContainer\n","export default [\n { value: 'AED', label: 'AED' },\n { value: 'AFN', label: 'AFN' },\n { value: 'ALL', label: 'ALL' },\n { value: 'AMD', label: 'AMD' },\n { value: 'ANG', label: 'ANG' },\n { value: 'AOA', label: 'AOA' },\n { value: 'ARS', label: 'ARS' },\n { value: 'AUD', label: 'AUD' },\n { value: 'AWG', label: 'AWG' },\n { value: 'AZN', label: 'AZN' },\n { value: 'BAM', label: 'BAM' },\n { value: 'BBD', label: 'BBD' },\n { value: 'BDT', label: 'BDT' },\n { value: 'BGN', label: 'BGN' },\n { value: 'BHD', label: 'BHD' },\n { value: 'BIF', label: 'BIF' },\n { value: 'BMD', label: 'BMD' },\n { value: 'BND', label: 'BND' },\n { value: 'BOB', label: 'BOB' },\n { value: 'BRL', label: 'BRL' },\n { value: 'BSD', label: 'BSD' },\n { value: 'BTN', label: 'BTN' },\n { value: 'BWP', label: 'BWP' },\n { value: 'BYN', label: 'BYN' },\n { value: 'BYR', label: 'BYR' },\n { value: 'BZD', label: 'BZD' },\n { value: 'CAD', label: 'CAD' },\n { value: 'CDF', label: 'CDF' },\n { value: 'CHF', label: 'CHF' },\n { value: 'CLF', label: 'CLF' },\n { value: 'CLP', label: 'CLP' },\n { value: 'CNY', label: 'CNY' },\n { value: 'COP', label: 'COP' },\n { value: 'CRC', label: 'CRC' },\n { value: 'CUC', label: 'CUC' },\n { value: 'CUP', label: 'CUP' },\n { value: 'CVE', label: 'CVE' },\n { value: 'CZK', label: 'CZK' },\n { value: 'DJF', label: 'DJF' },\n { value: 'DKK', label: 'DKK' },\n { value: 'DOP', label: 'DOP' },\n { value: 'DZD', label: 'DZD' },\n { value: 'EGP', label: 'EGP' },\n { value: 'ERN', label: 'ERN' },\n { value: 'ETB', label: 'ETB' },\n { value: 'EUR', label: 'EUR' },\n { value: 'FJD', label: 'FJD' },\n { value: 'FKP', label: 'FKP' },\n { value: 'GBP', label: 'GBP' },\n { value: 'GEL', label: 'GEL' },\n { value: 'GHS', label: 'GHS' },\n { value: 'GIP', label: 'GIP' },\n { value: 'GMD', label: 'GMD' },\n { value: 'GNF', label: 'GNF' },\n { value: 'GTQ', label: 'GTQ' },\n { value: 'GYD', label: 'GYD' },\n { value: 'HKD', label: 'HKD' },\n { value: 'HNL', label: 'HNL' },\n { value: 'HRK', label: 'HRK' },\n { value: 'HTG', label: 'HTG' },\n { value: 'HUF', label: 'HUF' },\n { value: 'IDR', label: 'IDR' },\n { value: 'ILS', label: 'ILS' },\n { value: 'INR', label: 'INR' },\n { value: 'IQD', label: 'IQD' },\n { value: 'IRR', label: 'IRR' },\n { value: 'ISK', label: 'ISK' },\n { value: 'JMD', label: 'JMD' },\n { value: 'JOD', label: 'JOD' },\n { value: 'JPY', label: 'JPY' },\n { value: 'KES', label: 'KES' },\n { value: 'KGS', label: 'KGS' },\n { value: 'KHR', label: 'KHR' },\n { value: 'KMF', label: 'KMF' },\n { value: 'KPW', label: 'KPW' },\n { value: 'KRW', label: 'KRW' },\n { value: 'KWD', label: 'KWD' },\n { value: 'KYD', label: 'KYD' },\n { value: 'KZT', label: 'KZT' },\n { value: 'LAK', label: 'LAK' },\n { value: 'LBP', label: 'LBP' },\n { value: 'LKR', label: 'LKR' },\n { value: 'LRD', label: 'LRD' },\n { value: 'LSL', label: 'LSL' },\n { value: 'LTL', label: 'LTL' },\n { value: 'LVL', label: 'LVL' },\n { value: 'LYD', label: 'LYD' },\n { value: 'MAD', label: 'MAD' },\n { value: 'MDL', label: 'MDL' },\n { value: 'MGA', label: 'MGA' },\n { value: 'MKD', label: 'MKD' },\n { value: 'MMK', label: 'MMK' },\n { value: 'MNT', label: 'MNT' },\n { value: 'MOP', label: 'MOP' },\n { value: 'MRO', label: 'MRO' },\n { value: 'MUR', label: 'MUR' },\n { value: 'MVR', label: 'MVR' },\n { value: 'MWK', label: 'MWK' },\n { value: 'MXN', label: 'MXN' },\n { value: 'MYR', label: 'MYR' },\n { value: 'MZN', label: 'MZN' },\n { value: 'NAD', label: 'NAD' },\n { value: 'NGN', label: 'NGN' },\n { value: 'NIO', label: 'NIO' },\n { value: 'NOK', label: 'NOK' },\n { value: 'NPR', label: 'NPR' },\n { value: 'NZD', label: 'NZD' },\n { value: 'OMR', label: 'OMR' },\n { value: 'PAB', label: 'PAB' },\n { value: 'PEN', label: 'PEN' },\n { value: 'PGK', label: 'PGK' },\n { value: 'PHP', label: 'PHP' },\n { value: 'PKR', label: 'PKR' },\n { value: 'PLN', label: 'PLN' },\n { value: 'PYG', label: 'PYG' },\n { value: 'QAR', label: 'QAR' },\n { value: 'RON', label: 'RON' },\n { value: 'RSD', label: 'RSD' },\n { value: 'RUB', label: 'RUB' },\n { value: 'RWF', label: 'RWF' },\n { value: 'SAR', label: 'SAR' },\n { value: 'SBD', label: 'SBD' },\n { value: 'SCR', label: 'SCR' },\n { value: 'SDG', label: 'SDG' },\n { value: 'SEK', label: 'SEK' },\n { value: 'SGD', label: 'SGD' },\n { value: 'SHP', label: 'SHP' },\n { value: 'SKK', label: 'SKK' },\n { value: 'SLL', label: 'SLL' },\n { value: 'SOS', label: 'SOS' },\n { value: 'SRD', label: 'SRD' },\n { value: 'SSP', label: 'SSP' },\n { value: 'STD', label: 'STD' },\n { value: 'SVC', label: 'SVC' },\n { value: 'SYP', label: 'SYP' },\n { value: 'SZL', label: 'SZL' },\n { value: 'THB', label: 'THB' },\n { value: 'TJS', label: 'TJS' },\n { value: 'TMT', label: 'TMT' },\n { value: 'TND', label: 'TND' },\n { value: 'TOP', label: 'TOP' },\n { value: 'TRY', label: 'TRY' },\n { value: 'TTD', label: 'TTD' },\n { value: 'TWD', label: 'TWD' },\n { value: 'TZS', label: 'TZS' },\n { value: 'UAH', label: 'UAH' },\n { value: 'UGX', label: 'UGX' },\n { value: 'USD', label: 'USD' },\n { value: 'UYU', label: 'UYU' },\n { value: 'UZS', label: 'UZS' },\n { value: 'VEF', label: 'VEF' },\n { value: 'VND', label: 'VND' },\n { value: 'VUV', label: 'VUV' },\n { value: 'WST', label: 'WST' },\n { value: 'XAF', label: 'XAF' },\n { value: 'XAG', label: 'XAG' },\n { value: 'XAU', label: 'XAU' },\n { value: 'XBA', label: 'XBA' },\n { value: 'XBB', label: 'XBB' },\n { value: 'XBC', label: 'XBC' },\n { value: 'XBD', label: 'XBD' },\n { value: 'XCD', label: 'XCD' },\n { value: 'XDR', label: 'XDR' },\n { value: 'XOF', label: 'XOF' },\n { value: 'XPD', label: 'XPD' },\n { value: 'XPF', label: 'XPF' },\n { value: 'XPT', label: 'XPT' },\n { value: 'XTS', label: 'XTS' },\n { value: 'YER', label: 'YER' },\n { value: 'ZAR', label: 'ZAR' },\n { value: 'ZMK', label: 'ZMK' },\n { value: 'ZMW', label: 'ZMW' },\n { value: 'BTC', label: 'BTC' },\n { value: 'JEP', label: 'JEP' },\n { value: 'GGP', label: 'GGP' },\n { value: 'IMP', label: 'IMP' },\n { value: 'XFU', label: 'XFU' },\n { value: 'GBX', label: 'GBX' },\n { value: 'CNH', label: 'CNH' },\n { value: 'EEK', label: 'EEK' },\n { value: 'GHS', label: 'GHS' },\n { value: 'MTL', label: 'MTL' },\n { value: 'TMM', label: 'TMM' },\n { value: 'JPY', label: 'JPY' },\n { value: 'ZWD', label: 'ZWD' },\n { value: 'ZWL', label: 'ZWL' },\n { value: 'ZWN', label: 'ZWN' },\n { value: 'ZWR', label: 'ZWR' }\n]\n","import BaseSelect from '#components/utils/BaseSelect'\nimport currencyOptions from '#config/currency'\nimport type { BaseSelectComponentProps } from '#typings'\n\nimport type { JSX } from \"react\";\n\ntype Props = Omit<BaseSelectComponentProps, 'options' | 'name'> & {\n required?: boolean\n} & Pick<JSX.IntrinsicElements['select'], 'className' | 'id' | 'style'>\n\nexport function GiftCardCurrencySelector(props: Props): JSX.Element {\n return <BaseSelect options={currencyOptions} name='currencyCode' {...props} />\n}\n\nexport default GiftCardCurrencySelector\n","import BaseInput from '#components/utils/BaseInput'\nimport type { BaseInputComponentProps, GiftCardInputName } from '#typings'\n\nimport type { JSX } from \"react\";\n\ntype Props = {\n name: GiftCardInputName\n} & Omit<BaseInputComponentProps, 'name'> &\n Omit<JSX.IntrinsicElements['input'], 'children'> &\n Omit<JSX.IntrinsicElements['textarea'], 'children'>\n\nexport function GiftCardInput(props: Props): JSX.Element {\n const { placeholder = '', ...p } = props\n return <BaseInput placeholder={placeholder} {...p} />\n}\n\nexport default GiftCardInput\n","import type { Order } from \"@commercelayer/sdk\"\n\nexport interface GiftCardData {\n cardSummary: string\n currentBalanceValue: number\n currentBalanceCurrency: string\n formattedBalanceValue: string\n cardBrand: string\n}\n\ninterface Props {\n order?: Order\n}\n\ninterface ReturnTypes extends GiftCardData {\n formattedOrderTotal: string\n}\n\nexport function manageGiftCard({ order }: Props): ReturnTypes | null {\n if (!order) return null\n if (!order?.payment_source) return null\n const getPaymentSource =\n order.payment_source?.type === \"adyen_payments\"\n ? order.payment_source\n : null\n if (!getPaymentSource) return null\n const isGiftCard =\n // @ts-expect-error No type for payment_request_data\n getPaymentSource?.payment_request_data?.payment_method?.type === \"giftcard\"\n if (!isGiftCard) return null\n // @ts-expect-error No type for payment_response additionalData\n const additionalData = getPaymentSource?.payment_response?.additionalData\n // @ts-expect-error No type for payment_response amount\n const amount = getPaymentSource?.payment_response?.amount?.value as number\n const giftCardData: GiftCardData = {\n cardSummary: additionalData?.cardSummary,\n currentBalanceValue:\n amount ?? Number.parseInt(additionalData?.currentBalanceValue),\n currentBalanceCurrency: additionalData?.currentBalanceCurrency,\n cardBrand:\n additionalData?.originalSelectedBrand ?? additionalData?.paymentMethod,\n formattedBalanceValue: additionalData?.currentBalanceValue,\n }\n const orderTotal =\n order?.total_amount_with_taxes_cents != null\n ? order?.total_amount_with_taxes_cents - giftCardData.currentBalanceValue\n : 0\n const formattedOrderTotal = (orderTotal / 100).toLocaleString(\n order.language_code ?? \"en\",\n {\n style: \"currency\",\n currency: order?.currency_code ?? \"USD\",\n },\n )\n const formattedCurrentBalance = (\n giftCardData.currentBalanceValue / 100\n ).toLocaleString(order.language_code ?? \"en\", {\n style: \"currency\",\n currency: order?.currency_code ?? \"USD\",\n })\n giftCardData.formattedBalanceValue = formattedCurrentBalance\n return { ...giftCardData, formattedOrderTotal }\n}\n","import { useContext, type JSX } from \"react\"\nimport type { ChildrenFunction } from \"#typings\"\nimport Parent from \"#components/utils/Parent\"\nimport OrderContext from \"#context/OrderContext\"\nimport type { CodeType } from \"#reducers/OrderReducer\"\nimport { manageGiftCard } from \"#utils/adyen/manageGiftCard\"\n\ninterface ChildrenProps extends Omit<Props, \"children\" | \"type\"> {\n code?: string | null\n hide?: boolean\n discountAmountCents?: number | null\n discountAmountFloat?: number | null\n formattedDiscountAmount?: string | null\n}\n\ninterface Props extends Omit<JSX.IntrinsicElements[\"span\"], \"children\"> {\n type?: CodeType\n children?: ChildrenFunction<ChildrenProps>\n}\n\nexport function GiftCardOrCouponCode({\n children,\n type,\n ...props\n}: Props): JSX.Element | null {\n const { order, manageAdyenGiftCard } = useContext(OrderContext)\n let codeType = type ? (`${type}_code` as const) : undefined\n if (!type && order && \"coupon_code\" in order && order.coupon_code !== \"\")\n codeType = \"coupon_code\"\n else if (!type) codeType = \"gift_card_code\"\n const code = order && codeType ? order[codeType] : \"\"\n let hide = !(order && code)\n if (manageAdyenGiftCard && type === \"gift_card\") {\n const giftCardData = manageGiftCard({ order })\n console.log(\"order\", order)\n console.log(\"giftCardData\", giftCardData)\n if (!giftCardData) return null\n hide = false\n const parentProps: ChildrenProps = {\n ...props,\n code: `${giftCardData.cardBrand} ${giftCardData.cardSummary}`,\n hide,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : hide ? null : (\n <span {...props}>{code}</span>\n )\n }\n const parentProps: ChildrenProps = {\n ...props,\n code,\n hide,\n discountAmountCents: order?.discount_amount_cents,\n discountAmountFloat: order?.discount_amount_float,\n formattedDiscountAmount: order?.formatted_discount_amount,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : hide ? null : (\n <span {...props}>{code}</span>\n )\n}\n\nexport default GiftCardOrCouponCode\n","import type { OrderCodeType } from '#reducers/OrderReducer'\nimport { createContext } from 'react'\n\ninterface DefaultContext {\n // biome-ignore lint/suspicious/noConfusingVoidType: <explanation>\n validation?: void\n setValue?: (name: string, value: string) => void\n codeType?: OrderCodeType\n}\n\nconst CouponAndGiftCardFormContext = createContext<DefaultContext>({})\n\nexport default CouponAndGiftCardFormContext\n","import { useRapidForm } from 'rapid-form'\nimport { useContext, useEffect, useRef, useState, type JSX } from 'react';\nimport CouponAndGiftCardFormContext from '#context/CouponAndGiftCardFormContext'\nimport OrderContext from '#context/OrderContext'\nimport type { OrderCodeType } from '#reducers/OrderReducer'\nimport type { Order } from '@commercelayer/sdk'\nimport type { DefaultChildrenType } from '#typings/globals'\n\ninterface Props extends Omit<JSX.IntrinsicElements['form'], 'onSubmit'> {\n codeType?: OrderCodeType\n children: DefaultChildrenType\n onSubmit?: (response: {\n success: boolean\n value: string\n order?: Order\n }) => void\n}\n\nexport function GiftCardOrCouponForm(props: Props): JSX.Element | null {\n const { children, codeType, autoComplete = 'on', onSubmit, ...p } = props\n const { validation, values, reset } = useRapidForm()\n const { setGiftCardOrCouponCode, order, errors, setOrderErrors } =\n useContext(OrderContext)\n const ref = useRef<HTMLFormElement>(null)\n const [type, setType] = useState(codeType)\n useEffect(() => {\n if (\n type != null &&\n values[type]?.value === '' &&\n errors != null &&\n errors.length > 0\n ) {\n const err = errors.filter((e) => e.field === type)\n setOrderErrors(err)\n if (onSubmit) {\n onSubmit({ value: values[type]?.value, success: false })\n }\n }\n if (type != null && values[type]?.value === '') {\n setOrderErrors([])\n if (onSubmit) {\n onSubmit({ value: values[type]?.value, success: false })\n }\n }\n }, [values])\n\n useEffect(() => {\n if (codeType == null) {\n if (order?.gift_card_code && !order?.coupon_code) {\n setType('coupon_code')\n }\n if (!order?.gift_card_code && order?.coupon_code) {\n setType('gift_card_code')\n }\n if (!order?.gift_card_code && !order?.coupon_code) {\n // TODO: Remove the `as` assertion\n setType('gift_card_or_coupon_code' as OrderCodeType)\n }\n } else {\n setType(codeType)\n }\n }, [order])\n\n const handleSubmit = async (\n e: React.FormEvent<HTMLFormElement>\n ): Promise<void> => {\n e.preventDefault()\n const code =\n type != null && values[type] != null ? values[type].value : undefined\n if (code != null && setGiftCardOrCouponCode != null && type != null) {\n const { success, order } = await setGiftCardOrCouponCode({\n code,\n // TODO: Remove the `as` assertion\n codeType: type as OrderCodeType\n })\n const value = values[type]?.value\n if (onSubmit) {\n onSubmit({\n success,\n value,\n order\n })\n }\n if (success) reset(e)\n }\n }\n if (\n codeType != null &&\n order?.[codeType] != null &&\n order?.[codeType] !== ''\n ) {\n return null\n }\n return (order?.gift_card_code && order?.coupon_code) ||\n order == null ? null : (\n <CouponAndGiftCardFormContext.Provider\n value={{ validation, codeType: type }}\n >\n <form\n ref={ref}\n autoComplete={autoComplete}\n onSubmit={(e) => {\n handleSubmit(e)\n }}\n {...p}\n >\n {children}\n </form>\n </CouponAndGiftCardFormContext.Provider>\n )\n}\n\nexport default GiftCardOrCouponForm\n","import { useContext, type JSX } from 'react';\nimport BaseInput from '#components/utils/BaseInput'\nimport CouponAndGiftCardFormContext from '#context/CouponAndGiftCardFormContext'\nimport type { BaseInputComponentProps } from '#typings'\nimport type { OrderCodeType } from '#reducers/OrderReducer'\n\ntype FieldName = 'gift_card_code' | 'coupon_code'\n\ntype Props = {\n name?: FieldName\n type?: 'text'\n placeholderTranslation?: (codeType: OrderCodeType) => string\n} & Omit<BaseInputComponentProps, 'name' | 'type'> &\n Omit<JSX.IntrinsicElements['input'], 'children'> &\n Omit<JSX.IntrinsicElements['textarea'], 'children'>\n\nexport function GiftCardOrCouponInput(props: Props): JSX.Element | null {\n const {\n placeholder = '',\n required,\n value,\n placeholderTranslation,\n name,\n ...p\n } = props\n const { validation, codeType } = useContext(CouponAndGiftCardFormContext)\n let placeholderLabel = placeholder\n if (placeholderTranslation && codeType) {\n placeholderLabel = placeholderTranslation(codeType)\n }\n return codeType == null ? null : (\n <BaseInput\n type='text'\n name={codeType ?? 'gift_card_or_coupon_code'}\n ref={validation as any}\n required={required !== undefined ? required : true}\n placeholder={placeholderLabel}\n defaultValue={value}\n {...p}\n />\n )\n}\n\nexport default GiftCardOrCouponInput\n","import { type ReactNode, useContext, type JSX } from \"react\"\nimport Parent from \"#components/utils/Parent\"\nimport type { ChildrenFunction } from \"#typings/index\"\nimport OrderContext from \"#context/OrderContext\"\nimport type { CodeType, OrderCodeType } from \"#reducers/OrderReducer\"\nimport type { Order } from \"@commercelayer/sdk\"\nimport { manageGiftCard } from \"#utils/adyen/manageGiftCard\"\n\ninterface ChildrenProps extends Omit<Props, \"children\" | \"onClick\"> {\n codeType?: OrderCodeType\n hide?: boolean\n handleClick?: () => void\n}\n\ntype Props = {\n type?: CodeType\n children?: ChildrenFunction<ChildrenProps>\n label?: string | ReactNode\n onClick?: (response: { success: boolean; order?: Order }) => void\n} & Omit<JSX.IntrinsicElements[\"button\"], \"type\" | \"onClick\">\n\nexport function GiftCardOrCouponRemoveButton(props: Props): JSX.Element | null {\n const { children, label = \"Remove\", onClick, type, ...p } = props\n const {\n order,\n removeGiftCardOrCouponCode,\n manageAdyenGiftCard,\n paymentSourceRequest,\n } = useContext(OrderContext)\n let codeType = type ? (`${type}_code` as const) : undefined\n if (!type && order && \"coupon_code\" in order && order.coupon_code !== \"\")\n codeType = \"coupon_code\"\n else if (!type) codeType = \"gift_card_code\"\n const code = order && codeType ? order[codeType] : \"\"\n let hide = !(order && code)\n const handleClick = async (): Promise<void> => {\n if (manageAdyenGiftCard && codeType === \"gift_card_code\" && order != null) {\n console.log(\"handle click gift card\")\n const id = order?.payment_source?.id\n console.log(\"id\", id)\n if (id != null) {\n const res = await paymentSourceRequest({\n resource: \"adyen_payments\",\n requestType: \"update\",\n attributes: {\n id,\n payment_request_data: {},\n },\n order,\n })\n if (onClick != null && res != null) onClick(res)\n }\n } else if (codeType != null && removeGiftCardOrCouponCode != null) {\n const response = await removeGiftCardOrCouponCode({ codeType })\n if (onClick != null && response != null) onClick(response)\n }\n }\n if (manageAdyenGiftCard && type === \"gift_card\") {\n const giftCardData = manageGiftCard({ order })\n if (!giftCardData) return null\n hide = false\n const parentProps = {\n ...p,\n label,\n handleClick,\n codeType,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : hide ? null : (\n <button\n type=\"button\"\n onClick={() => {\n handleClick()\n }}\n {...p}\n >\n {label}\n </button>\n )\n }\n const parentProps = {\n ...p,\n label,\n handleClick,\n codeType,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : hide ? null : (\n <button\n type=\"button\"\n onClick={() => {\n handleClick()\n }}\n {...p}\n >\n {label}\n </button>\n )\n}\n\nexport default GiftCardOrCouponRemoveButton\n","import type { ReactNode, JSX } from 'react';\nimport Parent from '#components/utils/Parent'\nimport type { ChildrenFunction } from '#typings/index'\n\ninterface ChildrenProps extends Omit<Props, 'children'> {}\n\ninterface Props extends Omit<JSX.IntrinsicElements['button'], 'children'> {\n children?: ChildrenFunction<ChildrenProps>\n label?: string | ReactNode\n}\n\nexport function GiftCardOrCouponSubmit(props: Props): JSX.Element {\n const { children, label = 'Submit', ...p } = props\n const parentProps = {\n ...p,\n label\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <button type='submit' {...p}>\n {label}\n </button>\n )\n}\n\nexport default GiftCardOrCouponSubmit\n","import { type Context, useContext } from 'react'\n\ninterface TParams<C> {\n /**\n * Context to check\n */\n context: Context<C>\n /**\n * Name of the component has the context\n */\n contextComponentName: string\n /**\n * Name of the current component\n */\n currentComponentName: string\n /**\n * Key of the context to check\n */\n key: string\n}\n\nexport default function useCustomContext<T>({\n context,\n key,\n currentComponentName,\n contextComponentName\n}: TParams<T>): T {\n const currentContext = useContext<T>(context)\n const isProduction = process.env.NODE_ENV === 'production'\n const msg = `Cannot use <${currentComponentName}/> outside of <${contextComponentName}/>`\n // @ts-expect-error no type type is not assignable to currentContext\n if (key != null && key in currentContext) return currentContext\n if (key == null && currentContext != null) return currentContext\n if (isProduction) console.error(msg)\n else throw new Error(msg)\n return currentContext\n}\n","import Parent from '#components/utils/Parent'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport InStockSubscriptionContext from '#context/InStockSubscriptionContext'\nimport type { ChildrenFunction } from '#typings/index'\nimport useCustomContext from '#utils/hooks/useCustomContext'\nimport { jwt } from '#utils/jwt'\nimport { useContext, useState, type JSX } from 'react';\n\ninterface Props\n extends Omit<JSX.IntrinsicElements['button'], 'children' | 'onClick'> {\n /**\n * The code of the sku.\n */\n skuCode: string\n /**\n * The label to display.\n */\n label?: string | JSX.Element\n /**\n * The label to display when the button is loading.\n */\n loadingLabel?: string | JSX.Element\n /**\n * The email of the customer.\n */\n customerEmail?: string\n /**\n * The children of the component.\n */\n children?: ChildrenFunction<Omit<Props, 'children'>>\n /**\n * Show the button.\n */\n show?: boolean\n /**\n * The callback function to call when the button is clicked.\n */\n onClick?: (response: { success: boolean }) => void\n}\n\nexport function InStockSubscriptionButton({\n skuCode,\n customerEmail,\n children,\n onClick,\n show = false,\n label = 'Subscribe',\n loadingLabel = 'Loading...',\n ...props\n}: Props): JSX.Element | null {\n const { setInStockSubscription } = useCustomContext({\n context: InStockSubscriptionContext,\n contextComponentName: 'InStockSubscriptionsContainer',\n currentComponentName: 'InStockSubscriptionButton',\n key: 'setInStockSubscription'\n })\n const { accessToken } = useContext(CommerceLayerContext)\n const [loading, setLoading] = useState(false)\n const handleClick = async (): Promise<void> => {\n if (accessToken != null && customerEmail == null) {\n const get = jwt(accessToken)\n if (get?.owner == null) {\n console.error('Missing customerEmail')\n return\n }\n }\n if (setInStockSubscription == null) {\n console.error('Missing <InStockSubscriptionsContainer>')\n return\n }\n setLoading(true)\n const res = await setInStockSubscription({\n customerEmail,\n skuCode\n })\n if (onClick != null) {\n onClick(res)\n }\n setLoading(false)\n }\n if (children != null) {\n const parentProps: Omit<Props, 'children'> = {\n skuCode,\n customerEmail,\n onClick,\n show,\n label,\n loadingLabel,\n ...props\n }\n return <Parent {...parentProps}>{children}</Parent>\n }\n return !show ? null : (\n <button\n onClick={() => {\n handleClick()\n }}\n disabled={loading}\n {...props}\n >\n {loading ? loadingLabel : label}\n </button>\n )\n}\n\nexport default InStockSubscriptionButton\n","import baseReducer from '#utils/baseReducer'\nimport type { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport getSdk from '#utils/getSdk'\nimport type { BaseAction } from '#typings'\nimport type { Dispatch } from 'react'\nimport type { BaseError } from '#typings/errors'\nimport type { InStockSubscriptionCreate } from '@commercelayer/sdk'\nimport getErrors from '#utils/getErrors'\n\ntype InStockSubscriptionActionType = 'setErrors'\ntype InStockSubscriptionAction = BaseAction<\n InStockSubscriptionActionType,\n InStockSubscriptionState\n>\nexport interface InStockSubscriptionState {\n errors?: BaseError[]\n}\n\nconst actionType: InStockSubscriptionActionType[] = ['setErrors']\n\nexport const inStockSubscriptionInitialState: InStockSubscriptionState = {\n errors: []\n}\n\ninterface TSetInStockSubscriptionParams {\n /**\n * Commerce Layer config\n */\n config?: CommerceLayerConfig\n /**\n * Customer email\n */\n customerEmail?: string\n /**\n * Sku code\n */\n skuCode: string\n /**\n * Dispatch function\n */\n dispatch?: Dispatch<InStockSubscriptionAction>\n}\n\nexport async function setInStockSubscription<\n T extends TSetInStockSubscriptionParams\n>({\n config,\n customerEmail,\n skuCode,\n dispatch\n}: T): Promise<{ success: boolean }> {\n try {\n if (config == null) throw new Error('Access token and endpoint is required')\n const sdk = getSdk(config)\n // @ts-expect-error OpenAPI schema is not updated\n const attributes: InStockSubscriptionCreate = {\n sku_code: skuCode\n }\n if (customerEmail != null) {\n attributes.customer_email = customerEmail\n }\n await sdk.in_stock_subscriptions.create(attributes)\n return { success: true }\n } catch (error: any) {\n const errors = getErrors({\n error,\n resource: 'in_stock_subscriptions'\n })\n if (dispatch != null) {\n dispatch({\n type: 'setErrors',\n payload: {\n errors\n }\n })\n }\n return { success: false }\n }\n}\n\nexport default function inStockSubscriptionReducer(\n state: InStockSubscriptionState,\n reducer: InStockSubscriptionAction\n): InStockSubscriptionState {\n return baseReducer<\n InStockSubscriptionState,\n InStockSubscriptionAction,\n InStockSubscriptionActionType[]\n >(state, reducer, actionType)\n}\n","import CommerceLayerContext from '#context/CommerceLayerContext'\nimport InStockSubscriptionContext, {\n type InitialInStockSubscriptionContext\n} from '#context/InStockSubscriptionContext'\nimport inStockSubscriptionReducer, {\n inStockSubscriptionInitialState,\n setInStockSubscription\n} from '#reducers/InStockSubscriptionReducer'\nimport type { DefaultChildrenType } from '#typings/globals'\nimport useCustomContext from '#utils/hooks/useCustomContext'\nimport { useReducer, type JSX } from 'react';\n\ninterface Props {\n /**\n * The children of the component.\n */\n children: DefaultChildrenType\n}\n\nexport function InStockSubscriptionsContainer({\n children\n}: Props): JSX.Element | null {\n const config = useCustomContext({\n context: CommerceLayerContext,\n contextComponentName: 'CommerceLayer',\n currentComponentName: 'InStockSubscriptionsContainer',\n key: 'accessToken'\n })\n const [state, dispatch] = useReducer(\n inStockSubscriptionReducer,\n inStockSubscriptionInitialState\n )\n const value: InitialInStockSubscriptionContext = {\n ...state,\n setInStockSubscription: async ({ customerEmail, skuCode }) =>\n await setInStockSubscription({\n customerEmail,\n skuCode,\n config,\n dispatch\n })\n }\n return (\n <InStockSubscriptionContext.Provider value={value}>\n {children}\n </InStockSubscriptionContext.Provider>\n )\n}\n\nexport default InStockSubscriptionsContainer\n","import { createContext } from 'react'\nimport type {\n DeliveryLeadTime,\n LineItem,\n Parcel,\n Shipment,\n ShippingMethod,\n StockTransfer\n} from '@commercelayer/sdk'\n\nexport interface InitialShipmentContext {\n currentShippingMethodId?: string\n deliveryLeadTimes?: DeliveryLeadTime[] | null | undefined\n keyNumber: number | string\n lineItems?: Array<LineItem | null | undefined>\n parcels?: Parcel[] | null | undefined\n shipment?: Shipment\n shippingMethods?: ShippingMethod[] | null | undefined\n stockTransfers?: StockTransfer[] | null | undefined\n}\n\nconst initial: InitialShipmentContext = {\n keyNumber: 0,\n lineItems: [],\n shippingMethods: [],\n stockTransfers: []\n}\n\nconst ShipmentChildrenContext = createContext<InitialShipmentContext>(initial)\n\nexport default ShipmentChildrenContext\n","import { useContext, type JSX } from 'react';\nimport LineItemContext from '#context/LineItemContext'\nimport LineItemChildrenContext, {\n type InitialLineItemChildrenContext\n} from '#context/LineItemChildrenContext'\nimport ShipmentChildrenContext from '#context/ShipmentChildrenContext'\n\nexport type TLineItem =\n | 'gift_cards'\n | 'payment_methods'\n | 'promotions'\n | 'shipments'\n | 'skus'\n | 'bundles'\n | 'adjustments'\n\ninterface Props {\n children: JSX.Element | JSX.Element[]\n type?: TLineItem\n}\n\nexport function LineItem(props: Props): JSX.Element {\n const { type = 'skus', children } = props\n const { lineItems } = useContext(LineItemContext)\n const { lineItems: shipmentLineItems } = useContext(ShipmentChildrenContext)\n const items =\n shipmentLineItems && shipmentLineItems?.length > 0\n ? shipmentLineItems\n : lineItems\n const components = items\n ?.filter((l) => l?.item_type === type)\n .map((lineItem, k, check) => {\n if (\n lineItem?.item_type === 'bundles' &&\n k > 0 &&\n check[k - 1]?.bundle_code === lineItem.bundle_code\n )\n return null\n if (\n lineItem?.item_type === 'gift_cards' &&\n lineItem?.total_amount_cents &&\n lineItem?.total_amount_cents <= 0\n )\n return null\n const lineProps: InitialLineItemChildrenContext = {\n lineItem\n }\n return (\n <LineItemChildrenContext.Provider key={lineItem?.id} value={lineProps}>\n {children}\n </LineItemChildrenContext.Provider>\n )\n })\n return <>{components}</>\n}\n\nexport default LineItem\n","import keys from \"lodash-es/keys\"\n\nexport type GetAmountInterface<T = any> = (\n base: string,\n type: string,\n format: string,\n obj: Record<string, any>,\n) => T extends number ? number : string\n\nexport default function getAmount<T = string>(args: {\n base: string\n type: string\n format: string\n obj: Record<string, any>\n}): T extends number ? number : string {\n const { format, type, obj, base } = args\n let v: any\n keys(obj).forEach((k: string) => {\n const key = k.toLowerCase()\n const typeOne = `${format}_${type}_${base}`.toLowerCase()\n const typeTwo = `${type}_${base}_${format}`.toLowerCase()\n const typeThree = `${format}_${base}_${type}`.toLowerCase()\n const typeFourth = `${base}_${type}_${format}`.toLowerCase()\n if (key === typeOne) {\n v = obj[k]\n }\n if (key === typeTwo) {\n v = obj[k]\n }\n if (key === typeThree) {\n v = obj[k]\n }\n if (key === typeFourth) {\n v = obj[k]\n }\n })\n return v\n}\n","import { useState, useEffect, useContext, type JSX } from 'react';\nimport getAmount from '#utils/getAmount'\nimport LineItemChildrenContext from '#context/LineItemChildrenContext'\nimport Parent from '#components/utils/Parent'\nimport type { BaseAmountComponent, BasePriceType } from '#typings/index'\n\ntype Props = BaseAmountComponent & {\n type?: BasePriceType\n}\n\nexport function LineItemAmount(props: Props): JSX.Element {\n const { format = 'formatted', type = 'total', ...p } = props\n const { lineItem } = useContext(LineItemChildrenContext)\n const [price, setPrice] = useState('')\n useEffect(() => {\n if (lineItem) {\n const p = getAmount({\n base: 'amount',\n type,\n format,\n obj: lineItem\n })\n setPrice(p)\n }\n return (): void => {\n setPrice('')\n }\n }, [lineItem])\n const parentProps = {\n price,\n ...p\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <span {...p}>{price}</span>\n )\n}\n\nexport default LineItemAmount\n","import { useContext, type JSX } from 'react';\nimport LineItemChildrenContext from '#context/LineItemChildrenContext'\nimport Parent from '#components/utils/Parent'\nimport type { LineItem } from '@commercelayer/sdk'\nimport type { ChildrenFunction } from '#typings/index'\n\nexport interface TLineItemCode extends Omit<Props, 'children'> {\n lineItem: LineItem\n skuCode: string\n}\n\ninterface Props extends Omit<JSX.IntrinsicElements['p'], 'children'> {\n children?: ChildrenFunction<TLineItemCode>\n type?: 'sku_code' | 'bundle_code'\n}\n\nexport function LineItemCode({\n type = 'sku_code',\n children,\n ...p\n}: Props): JSX.Element {\n const { lineItem } = useContext(LineItemChildrenContext)\n const labelName = lineItem?.[type]\n const parentProps = {\n lineItem,\n skuCode: labelName,\n ...p\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <p {...p}>{labelName}</p>\n )\n}\n\nexport default LineItemCode\n","import LineItemChildrenContext from '#context/LineItemChildrenContext'\nimport type { ConditionalElement } from '#typings'\nimport GenericFieldComponent, {\n type TGenericChildrenProps,\n type TResourceKey,\n type TResources\n} from '#components/utils/GenericFieldComponent'\n\nimport type { JSX } from \"react\";\n\ntype LineItemFieldChildrenProps = TGenericChildrenProps<TResources['LineItem']>\n\ntype TCondition = ConditionalElement<\n Exclude<TResources['LineItem'], 'resource'>\n>\n\ntype Props = {\n children?: (props: LineItemFieldChildrenProps) => JSX.Element\n} & TCondition\n/**\n * @param props {@link Props}\n * @returns\n */\nexport function LineItemField<P extends Props>(props: P): JSX.Element {\n const { attribute, tagElement = 'span', children, ...p } = props\n return (\n <GenericFieldComponent<TResourceKey['LineItem']>\n resource='lineItem'\n attribute={attribute}\n tagElement={tagElement}\n context={LineItemChildrenContext}\n {...p}\n >\n {children}\n </GenericFieldComponent>\n )\n}\n\nexport default LineItemField\n","import { useContext, type JSX } from 'react';\nimport LineItemChildrenContext from '#context/LineItemChildrenContext'\nimport type { LineItem } from '@commercelayer/sdk'\nimport type { ChildrenFunction } from '#typings'\nimport { defaultGiftCardImgUrl, defaultImgUrl } from '#utils/placeholderImages'\nimport Parent from '#components/utils/Parent'\nimport type { TLineItem } from './LineItem'\n\nexport interface TLineItemImage extends Omit<Props, 'children'> {\n src: string\n lineItem: LineItem\n}\n\ntype Props = {\n children?: ChildrenFunction<TLineItemImage>\n width?: number\n placeholder?: {\n [K in TLineItem]?: string\n }\n} & Omit<JSX.IntrinsicElements['img'], 'src' | 'srcSet' | 'placeholder'>\n\nexport function LineItemImage(props: Props): JSX.Element | null {\n const { placeholder, children, ...p } = props\n const { lineItem } = useContext(LineItemChildrenContext)\n const itemType = lineItem?.item_type as TLineItem\n let src = lineItem?.image_url\n if (!src) {\n if (placeholder?.[itemType]) {\n src = placeholder?.[itemType]\n } else {\n src = itemType === 'gift_cards' ? defaultGiftCardImgUrl : defaultImgUrl\n }\n }\n const parenProps = {\n lineItem,\n src,\n placeholder,\n ...p\n }\n return children ? (\n <Parent {...parenProps}>{children}</Parent>\n ) : !src ? null : (\n <img\n data-testid={`line-item-image-${lineItem?.sku_code ?? ''}`}\n alt={lineItem?.name ?? ''}\n src={src}\n {...p}\n />\n )\n}\n\nexport default LineItemImage\n","import { useContext, type JSX } from 'react';\nimport LineItemChildrenContext from '#context/LineItemChildrenContext'\nimport Parent from '#components/utils/Parent'\nimport type { LineItem } from '@commercelayer/sdk'\nimport type { ChildrenFunction } from '#typings/index'\n\nexport interface TLineItemName extends Omit<Props, 'children'> {\n label: string\n lineItem: LineItem\n}\n\ninterface Props extends Omit<JSX.IntrinsicElements['p'], 'children'> {\n children?: ChildrenFunction<TLineItemName>\n}\n\nexport function LineItemName(props: Props): JSX.Element {\n const { lineItem } = useContext(LineItemChildrenContext)\n const label = lineItem?.name\n const parentProps = {\n label,\n lineItem,\n ...props\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <p data-testid={`line-item-name-${lineItem?.sku_code ?? ''}`} {...props}>\n {label}\n </p>\n )\n}\n\nexport default LineItemName\n","import { createContext } from 'react'\nimport type { LineItemOption } from '@commercelayer/sdk'\n\nexport interface TLineItemOptions extends LineItemOption {}\n\nexport interface InitialLineItemContext {\n lineItemOption: Partial<TLineItemOptions>\n showAll?: boolean\n}\n\nconst initial: InitialLineItemContext = {\n lineItemOption: {}\n}\n\nconst LineItemOptionChildrenContext =\n createContext<InitialLineItemContext>(initial)\n\nexport default LineItemOptionChildrenContext\n","import { useContext, type CSSProperties, type JSX } from \"react\"\nimport LineItemOptionChildrenContext from \"#context/LineItemOptionChildrenContext\"\nimport map from \"lodash-es/map\"\nimport Parent from \"#components/utils/Parent\"\nimport type { LineItemOption as LineItemOptionType } from \"@commercelayer/sdk\"\nimport type { ChildrenFunction } from \"#typings/index\"\nimport isJSON from \"#utils/isJSON\"\n\nexport interface TLineItemOption extends Omit<Props, \"children\"> {\n lineItemOption: LineItemOptionType\n}\n\ninterface Props {\n id?: string\n className?: string\n key?: string\n style?: CSSProperties\n children?: ChildrenFunction<TLineItemOption>\n name?: string\n valueClassName?: string\n tagElement?: keyof JSX.IntrinsicElements\n tagContainer?: keyof JSX.IntrinsicElements\n}\n\nexport function LineItemOption(props: Props): JSX.Element {\n const {\n name,\n children,\n valueClassName,\n key,\n tagElement = \"li\",\n tagContainer = \"ul\",\n ...p\n } = props\n const { lineItemOption, showAll } = useContext(LineItemOptionChildrenContext)\n const parentProps = {\n ...props,\n lineItemOption,\n }\n const TagElement = tagElement as any\n const TagContainer = tagContainer\n const label = name != null ? lineItemOption?.options?.[name] : \"\"\n const components =\n showAll && isJSON(JSON.stringify(lineItemOption?.options)) ? (\n map(lineItemOption?.options, (value: string, key) => {\n return (\n <TagElement key={key} {...p}>\n {`${key}:`}\n <span className={valueClassName}>{`${value}`}</span>\n </TagElement>\n )\n })\n ) : name != null &&\n lineItemOption?.options != null &&\n name in lineItemOption.options ? (\n <TagElement key={key} {...p}>\n {`${name}:`}\n <span className={valueClassName} {...p}>\n {label ?? \"\"}\n </span>\n </TagElement>\n ) : null\n return children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <TagContainer>{components}</TagContainer>\n )\n}\n\nexport default LineItemOption\n","export default function isJSON(str: string): boolean {\n try {\n JSON.parse(str)\n return true\n } catch (e) {\n return false\n }\n}\n","import { useContext, type ReactNode, type JSX } from 'react';\nimport LineItemChildrenContext from '#context/LineItemChildrenContext'\nimport LineItemOptionChildrenContext, {\n type TLineItemOptions\n} from '#context/LineItemOptionChildrenContext'\n\ntype Props = {\n children: ReactNode\n title?: string\n showName?: boolean\n titleTagElement?: keyof JSX.IntrinsicElements\n titleClassName?: string\n} & Omit<JSX.IntrinsicElements['div'], 'children'> &\n (\n | {\n skuOptionId: string\n showAll?: never\n }\n | {\n skuOptionId?: never\n showAll: true\n }\n )\n\nexport function LineItemOptions(props: Props): JSX.Element {\n const {\n skuOptionId,\n title,\n children,\n showName = true,\n showAll,\n className,\n titleTagElement = 'h6',\n titleClassName,\n ...p\n } = props\n const { lineItem } = useContext(LineItemChildrenContext)\n const lineItemOptions =\n lineItem != null ? lineItem?.line_item_options || [] : []\n const TitleTagElement = titleTagElement as any\n const options = lineItemOptions\n .filter((o) => {\n if (showAll) return true\n // @ts-expect-error no type\n return o.skuOption().id === skuOptionId\n })\n .map((o, k) => {\n const showTitle = showName ? (\n <TitleTagElement className={titleClassName}>\n {title || o.name}\n </TitleTagElement>\n ) : null\n const valueProps = {\n lineItemOption: o as TLineItemOptions,\n showAll\n }\n return (\n <div className={className} key={k} {...p}>\n {showTitle}\n <LineItemOptionChildrenContext.Provider value={valueProps}>\n {children}\n </LineItemOptionChildrenContext.Provider>\n </div>\n )\n })\n return <>{options}</>\n}\n\nexport default LineItemOptions\n","import { useContext, type ReactNode, type JSX } from 'react';\nimport LineItemChildrenContext from '#context/LineItemChildrenContext'\nimport LineItemContext from '#context/LineItemContext'\nimport Parent from '#components/utils/Parent'\nimport type { ChildrenFunction } from '#typings'\nimport type { LineItem } from '@commercelayer/sdk'\n\ninterface ChildrenProps extends Omit<Props, 'children'> {\n quantity: number\n handleChange: (event: React.MouseEvent<HTMLSelectElement>) => void\n lineItem?: LineItem\n}\n\ntype Props = {\n children?: ChildrenFunction<ChildrenProps>\n max?: number\n disabled?: boolean\n readonly?: boolean\n /**\n * force the update of the line item price using `_external_price: true` attribute\n * @link https://docs.commercelayer.io/core/external-resources/external-prices\n */\n hasExternalPrice?: boolean\n} & (Omit<JSX.IntrinsicElements['select'], 'children'> &\n Omit<JSX.IntrinsicElements['span'], 'children'>)\n\nexport function LineItemQuantity(props: Props): JSX.Element {\n const { max = 50, readonly = false, hasExternalPrice, ...p } = props\n const { lineItem } = useContext(LineItemChildrenContext)\n const { updateLineItem } = useContext(LineItemContext)\n const options: ReactNode[] = []\n for (let i = 1; i <= max; i++) {\n options.push(\n <option key={i} value={`${i}`}>\n {i}\n </option>\n )\n }\n const handleChange = (e: React.ChangeEvent<HTMLSelectElement>): void => {\n const quantity = Number(e.target.value)\n if (updateLineItem && lineItem) {\n updateLineItem(lineItem.id, quantity, hasExternalPrice)\n }\n }\n const quantity = lineItem?.quantity\n const parentProps = {\n handleChange,\n quantity,\n lineItem,\n ...props\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : readonly ? (\n <span {...p}>{quantity}</span>\n ) : (\n <select\n data-testid={lineItem?.sku_code}\n title={lineItem?.name ?? ''}\n value={quantity}\n onChange={handleChange}\n {...p}\n >\n {options}\n </select>\n )\n}\n\nexport default LineItemQuantity\n","import { useContext, type PropsWithoutRef, type JSX } from 'react';\nimport LineItemChildrenContext from '#context/LineItemChildrenContext'\nimport LineItemContext from '#context/LineItemContext'\nimport Parent from '#components/utils/Parent'\nimport type { ChildrenFunction } from '#typings/index'\nimport useCustomContext from '#utils/hooks/useCustomContext'\nimport type { LineItem } from '@commercelayer/sdk'\n\ninterface ChildrenProps extends Omit<Props, 'children'> {\n handleRemove: (event: React.MouseEvent<HTMLAnchorElement>) => void\n label?: string\n lineItem?: LineItem\n}\n\ninterface Props\n extends PropsWithoutRef<Omit<JSX.IntrinsicElements['a'], 'children'>> {\n children?: ChildrenFunction<ChildrenProps>\n label?: string\n}\n\nexport function LineItemRemoveLink(props: Props): JSX.Element {\n const { label = 'Remove', onClick } = props\n const { lineItem } = useCustomContext({\n context: LineItemChildrenContext,\n contextComponentName: 'LineItem',\n currentComponentName: 'LineItemRemoveLink',\n key: 'lineItem'\n })\n const { deleteLineItem } = useContext(LineItemContext)\n const handleRemove = (e: React.MouseEvent<HTMLAnchorElement>): void => {\n e.preventDefault()\n if (deleteLineItem != null && lineItem != null)\n deleteLineItem(lineItem.id)\n if (onClick != null) onClick(e)\n }\n const parentProps = {\n handleRemove,\n lineItem,\n ...props\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <a\n data-testid={`line-item-remove-link-${lineItem?.sku_code ?? ''}`}\n {...props}\n href='#'\n onClick={handleRemove}\n >\n {label}\n </a>\n )\n}\n\nexport default LineItemRemoveLink\n","import baseReducer from '#utils/baseReducer'\nimport type { Dispatch } from 'react'\nimport type { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport type { getOrderContext } from './OrderReducer'\nimport type { LoaderType } from '#typings'\nimport type { BaseError } from '#typings/errors'\nimport type { Order, LineItem } from '@commercelayer/sdk'\nimport getSdk from '#utils/getSdk'\nimport getErrors from '#utils/getErrors'\n\nexport interface UpdateLineItemParams {\n lineItemId: string\n quantity?: number\n hasExternalPrice?: boolean\n dispatch: Dispatch<LineItemAction>\n config: CommerceLayerConfig\n getOrder: getOrderContext | undefined\n orderId: string\n errors: BaseError[] | undefined\n}\n\nexport type UpdateLineItem = (params: UpdateLineItemParams) => Promise<void>\n\nexport type DeleteLineItemParam = Record<string, any> & UpdateLineItemParams\n\nexport type DeleteLineItem = (params: DeleteLineItemParam) => Promise<void>\n\nexport interface GetLineItemsParams {\n dispatch: Dispatch<LineItemAction>\n config: CommerceLayerConfig\n order: Order | null\n filters: Record<string, any>\n}\n\nexport type GetLineItems = (params: GetLineItemsParams) => void\n\nexport interface LineItemPayload {\n loading?: boolean\n loader?: LoaderType\n lineItems?: LineItem[] | null\n errors?: BaseError[]\n}\n\nexport interface LineItemState extends LineItemPayload {\n updateLineItem?: (\n lineItemId: string,\n quantity?: number,\n hasExternalPrice?: boolean\n ) => Promise<void>\n deleteLineItem?: (lineItemId: string) => Promise<void>\n}\n\nexport interface LineItemAction {\n type: LineItemActionType\n payload: LineItemPayload\n}\n\nexport const getLineItems: GetLineItems = (params) => {\n const { order, dispatch, config } = params\n const sdk = getSdk(config)\n let allLineItems: LineItem[] = []\n order &&\n sdk.orders\n .retrieve(order?.id, {\n include: ['line_items', 'line_items.line_item_options.sku_option'],\n fields: {\n orders: ['line_items']\n }\n })\n .then((response) => {\n dispatch({\n type: 'setLoading',\n payload: {\n loading: false\n }\n })\n const items = response.line_items || []\n allLineItems = [...allLineItems, ...items]\n dispatch({\n type: 'setLineItems',\n payload: {\n lineItems: allLineItems\n }\n })\n })\n .catch((error) => {\n const errors = getErrors({\n error,\n resource: 'line_items'\n })\n dispatch({\n type: 'setErrors',\n payload: {\n errors\n }\n })\n })\n}\n\nexport async function updateLineItem(\n params: UpdateLineItemParams\n): Promise<void> {\n const {\n config,\n lineItemId,\n quantity,\n hasExternalPrice,\n getOrder,\n orderId,\n dispatch\n } = params\n const sdk = getSdk(config)\n try {\n await sdk.line_items.update({\n id: lineItemId,\n quantity,\n _external_price: hasExternalPrice\n })\n getOrder && (await getOrder(orderId))\n dispatch({\n type: 'setErrors',\n payload: {\n errors: []\n }\n })\n } catch (error: any) {\n const errors = getErrors({\n error,\n resource: 'line_items',\n attributes: {\n id: lineItemId\n }\n })\n dispatch({\n type: 'setErrors',\n payload: {\n errors\n }\n })\n }\n}\n\nexport const deleteLineItem: DeleteLineItem = async (params) => {\n const { config, lineItemId, getOrder, orderId, dispatch } = params\n const sdk = getSdk(config)\n try {\n await sdk.line_items.delete(lineItemId)\n getOrder && (await getOrder(orderId))\n dispatch({\n type: 'setErrors',\n payload: {\n errors: []\n }\n })\n } catch (error: any) {\n const errors = getErrors({\n error,\n resource: 'line_items'\n })\n dispatch({\n type: 'setErrors',\n payload: {\n errors\n }\n })\n }\n}\n\nexport const lineItemInitialState: LineItemState = {\n loading: false,\n errors: [],\n lineItems: []\n}\n\nexport type LineItemActionType = 'setLineItems' | 'setErrors' | 'setLoading'\n\nconst actionType: LineItemActionType[] = [\n 'setLineItems',\n 'setErrors',\n 'setLoading'\n]\n\nconst lineItemReducer = (\n state: LineItemState,\n reducer: LineItemAction\n): LineItemState =>\n baseReducer<LineItemState, LineItemAction, LineItemActionType[]>(\n state,\n reducer,\n actionType\n )\n\nexport default lineItemReducer\n","import { useEffect, useReducer, useContext, type JSX } from 'react';\nimport lineItemReducer, {\n lineItemInitialState,\n updateLineItem,\n deleteLineItem\n} from '#reducers/LineItemReducer'\nimport OrderContext from '#context/OrderContext'\nimport LineItemContext, {\n type LineItemContextValue\n} from '#context/LineItemContext'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport type { DefaultChildrenType } from '#typings/globals'\n\ninterface Props {\n children: DefaultChildrenType\n filters?: Record<string, any>\n loader?: JSX.Element\n}\n\nexport function LineItemsContainer(props: Props): JSX.Element {\n const { children, loader = 'Loading...' } = props\n const {\n order,\n addResourceToInclude,\n include,\n orderId,\n getOrder,\n includeLoaded\n } = useContext(OrderContext)\n const config = useContext(CommerceLayerContext)\n const [state, dispatch] = useReducer(lineItemReducer, lineItemInitialState)\n useEffect(() => {\n if (!include?.includes('line_items.line_item_options.sku_option')) {\n addResourceToInclude({\n newResource: ['line_items.line_item_options.sku_option']\n })\n } else if (!includeLoaded?.['line_items.line_item_options.sku_option']) {\n addResourceToInclude({\n newResourceLoaded: {\n 'line_items.line_item_options.sku_option': true\n }\n })\n }\n if (!include?.includes('line_items.item')) {\n addResourceToInclude({\n newResource: ['line_items.item']\n })\n } else if (!includeLoaded?.['line_items.item']) {\n addResourceToInclude({\n newResourceLoaded: {\n 'line_items.item': true\n }\n })\n }\n }, [include, includeLoaded])\n useEffect(() => {\n if (order?.line_items) {\n dispatch({\n type: 'setLineItems',\n payload: { lineItems: order.line_items }\n })\n }\n }, [order?.line_items])\n\n const lineItemValue: LineItemContextValue = {\n ...state,\n loader,\n updateLineItem: async (lineItemId, quantity = 1, hasExternalPrice) => {\n await updateLineItem({\n lineItemId,\n quantity,\n hasExternalPrice,\n dispatch,\n config,\n getOrder,\n orderId: orderId ?? '',\n errors: state.errors\n })\n },\n deleteLineItem: async (lineItemId) => {\n await deleteLineItem({\n lineItemId,\n dispatch,\n config,\n getOrder,\n orderId: orderId ?? '',\n errors: state.errors\n })\n }\n }\n return (\n <LineItemContext.Provider value={lineItemValue}>\n {state.loading ? loader : children}\n </LineItemContext.Provider>\n )\n}\n\nexport default LineItemsContainer\n","import type { TLineItem } from '#components/line_items/LineItem'\nimport type { LineItem } from '@commercelayer/sdk'\n\nexport type TypeAccepted = Extract<\n TLineItem,\n 'skus' | 'gift_cards' | 'bundles' | 'adjustments'\n>\n\ninterface Args {\n lineItems: LineItem[]\n quantity?: number\n typeAccepted?: TypeAccepted[]\n}\n\nexport default function getLineItemsCount({\n lineItems,\n quantity = 0,\n typeAccepted = ['skus', 'gift_cards', 'bundles', 'adjustments']\n}: Args): number {\n lineItems\n .filter(\n (l) =>\n typeAccepted.includes(l.item_type as TypeAccepted) &&\n l?.total_amount_cents != null &&\n l?.total_amount_cents >= 0\n )\n .forEach((l) => {\n if (l.quantity) quantity += l.quantity\n })\n return quantity\n}\n","import { useState, useEffect, type JSX } from 'react';\nimport Parent from '#components/utils/Parent'\nimport getLineItemsCount, { type TypeAccepted } from '#utils/getLineItemsCount'\nimport LineItemContext from '#context/LineItemContext'\nimport type { ChildrenFunction } from '#typings/index'\nimport useCustomContext from '#utils/hooks/useCustomContext'\n\ninterface ChildrenProps extends Omit<Props, 'children'> {\n quantity: number\n}\n\ninterface Props extends Omit<JSX.IntrinsicElements['span'], 'children'> {\n children?: ChildrenFunction<ChildrenProps>\n typeAccepted?: TypeAccepted[]\n}\n\nexport function LineItemsCount(props: Props): JSX.Element {\n const { children, typeAccepted, ...p } = props\n const { lineItems } = useCustomContext({\n context: LineItemContext,\n contextComponentName: 'LineItemsContainer',\n currentComponentName: 'LineItemsCount',\n key: 'lineItems'\n })\n const [quantity, setQuantity] = useState(0)\n useEffect(() => {\n if (lineItems && lineItems.length > 0) {\n const qty = getLineItemsCount({\n lineItems: lineItems || [],\n typeAccepted\n })\n setQuantity(qty)\n }\n return (): void => {\n setQuantity(0)\n }\n }, [lineItems, typeAccepted])\n const parentProps = {\n quantity,\n typeAccepted,\n ...p\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <span {...p}>{quantity}</span>\n )\n}\n\nexport default LineItemsCount\n","import { useContext, useState, useEffect, type JSX } from 'react';\nimport Parent from '#components/utils/Parent'\nimport getLineItemsCount from '#utils/getLineItemsCount'\nimport LineItemContext from '#context/LineItemContext'\nimport type { ChildrenFunction } from '#typings/index'\n\ninterface ChildrenProps extends Omit<Props, 'children'> {\n quantity: number\n text: string\n}\n\ninterface Props extends Omit<JSX.IntrinsicElements['span'], 'children'> {\n children?: ChildrenFunction<ChildrenProps>\n text?: string\n}\n\nexport function LineItemsEmpty(props: Props): JSX.Element | null {\n const { children, text = 'Your shopping bag is empty', ...p } = props\n const { lineItems } = useContext(LineItemContext)\n const [quantity, setQuantity] = useState<undefined | number>()\n const emptyText = quantity === 0 ? <span {...p}>{text}</span> : null\n useEffect(() => {\n if (lineItems) {\n if (lineItems.length > 0) {\n const qty = getLineItemsCount({ lineItems: lineItems || [] })\n setQuantity(qty)\n } else {\n setQuantity(0)\n }\n }\n return (): void => {\n setQuantity(undefined)\n }\n }, [lineItems])\n const parentProps = {\n quantity,\n text,\n ...p\n }\n return children ? <Parent {...parentProps}>{children}</Parent> : emptyText\n}\n\nexport default LineItemsEmpty\n","import baseReducer from '#utils/baseReducer'\nimport type { Dispatch } from 'react'\nimport type { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport getSdk from '#utils/getSdk'\n\ntype SkuListsActionType = 'getSkuList' | 'setSkuList'\n\nconst actionType: SkuListsActionType[] = ['getSkuList', 'setSkuList']\n\nexport type SkuListsState = Partial<{\n listIds: string[]\n skuLists: Record<string, any>\n}>\n\nexport const skuListsInitialState: SkuListsState = {\n listIds: []\n}\n\nexport interface SkuListsAction {\n payload: Partial<SkuListsState>\n type: SkuListsActionType\n}\n\nexport type GetSkuList = (params: {\n config: CommerceLayerConfig\n dispatch: Dispatch<SkuListsAction>\n listIds: string[]\n state: SkuListsState\n}) => Promise<void>\n\nexport const getSkuList: GetSkuList = async ({ listIds, config, dispatch }) => {\n const skuLists: Record<string, any> = {}\n try {\n const sdk = getSdk(config)\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n listIds.forEach(async (id) => {\n const skuList = await sdk.sku_lists.retrieve(id, {\n include: ['skus'],\n fields: { skus: ['code'] }\n })\n const skuCodes = skuList.skus\n skuLists[id] = skuCodes\n })\n dispatch({\n payload: {\n skuLists\n },\n type: 'getSkuList'\n })\n } catch (error: any) {\n console.error(error)\n }\n}\n\nconst skuListsReducer = (\n state: SkuListsState,\n reducer: SkuListsAction\n): SkuListsState =>\n baseReducer<SkuListsState, SkuListsAction, SkuListsActionType[]>(\n state,\n reducer,\n actionType\n )\n\nexport default skuListsReducer\n","import { createContext } from 'react'\nimport { skuListsInitialState } from '#reducers/SkuListsReducer'\n\nexport const SkuListsContext = createContext(skuListsInitialState)\n\nexport default SkuListsContext\n","import { createContext } from 'react'\nimport type { Sku } from '@commercelayer/sdk'\n\nexport type InitialSkuContext = Partial<{\n sku: Sku\n}>\n\nconst initial: InitialSkuContext = {}\n\nconst SkuChildrenContext = createContext<InitialSkuContext>(initial)\n\nexport default SkuChildrenContext\n","/* eslint-disable @typescript-eslint/no-unsafe-argument */\nimport { useContext, type PropsWithoutRef, type JSX } from \"react\"\nimport Parent from \"../utils/Parent\"\nimport OrderContext from \"#context/OrderContext\"\nimport type { ChildrenFunction } from \"#typings/index\"\nimport type {\n AddToCartReturn,\n CustomLineItem,\n LineItemOption,\n} from \"#reducers/OrderReducer\"\nimport SkuListsContext from \"#context/SkuListsContext\"\nimport ExternalFunctionContext from \"#context/ExternalFunctionContext\"\nimport SkuChildrenContext from \"#context/SkuChildrenContext\"\nimport { getApplicationLink } from \"#utils/getApplicationLink\"\nimport CommerceLayerContext from \"#context/CommerceLayerContext\"\nimport useCustomContext from \"#utils/hooks/useCustomContext\"\nimport { getDomain } from \"#utils/getDomain\"\nimport { publish } from \"#utils/events\"\nimport { getOrganizationConfig } from \"#utils/organization\"\n\ninterface TAddToCartButton extends Omit<Props, \"children\"> {\n handleClick: () => AddToCartReturn\n}\n\ntype BuyNowMode =\n | {\n /**\n * Once item has been added, it redirects to the hosted checkout micro-frontend.\n */\n buyNowMode: true\n /**\n * If you have a self-hosted checkout, you can pass the url to redirect to it.\n */\n checkoutUrl?: string\n }\n | {\n buyNowMode?: false\n checkoutUrl?: never\n }\n\ntype THostedCart =\n | {\n /**\n * Once item has been added, it redirects to the hosted cart micro-frontend.\n */\n redirectToHostedCart: true\n /**\n * If you have a self-hosted cart, you can pass the url to redirect to it.\n */\n hostedCartUrl?: string\n /**\n * If you have a self-hosted cart, you can pass the protocol to redirect to it.\n */\n protocol?: \"http\" | \"https\"\n }\n | {\n redirectToHostedCart?: false\n hostedCartUrl?: never\n protocol?: never\n }\n\ntype TButton = PropsWithoutRef<\n Omit<JSX.IntrinsicElements[\"button\"], \"children\">\n>\n\ntype Props = {\n /**\n * Code of a bundle\n */\n bundleCode?: string\n children?: ChildrenFunction<TAddToCartButton>\n /**\n * Disable the cart button\n */\n disabled?: boolean\n /**\n * Label to display\n */\n label?: string | JSX.Element\n /**\n * Line item which allow you customize the cart item\n */\n lineItem?: CustomLineItem\n /**\n * Line item option to add to cart\n */\n lineItemOption?: LineItemOption\n /**\n * Quantity of the item\n */\n quantity?: string\n /**\n * SKU code to add to cart\n */\n skuCode?: string\n /**\n * SKU list to add to cart\n */\n skuListId?: string\n} & TButton &\n BuyNowMode &\n THostedCart\n\n/**\n * This component adds `line_items` to the cart (aka draft order), see the [how to create a shopping cart](https://docs.commercelayer.io/core/v/how-tos/placing-orders/shopping-cart/create-a-shopping-cart) documentation,\n * for a general understanding of the process.\n *\n * It can be used to add `skus` or `bundle` by receiving `skuCode` or `bundleCode` from props.\n * When `skuListId` is passed as prop , it will add all the `skus` in the `sku_list` to the cart.\n *\n * It's possible to select the quantity of the item to add to cart by passing the `quantity` prop.\n *\n * When this component is used inside a `<Skus>` or `<SkuList>` component, it will automatically get the `skuCode` and quantity from the context,\n * so you don't need to pass it as prop.\n *\n * It can automatically redirect to the cart page of the application using the `redirectToHostedCart` prop and optionally a `hostedCartUrl`.\n *\n * With a similar logic, you can enable a \"Buy Now\" experience and automatically redirect the customer to the checkout page using the `buyNowMode` prop and optionally a `checkoutUrl`.\n *\n * <span title=\"Requirement\" type=\"warning\">\n * Must be a child of the `<OrderContainer>` component.\n * </span>\n */\nexport function AddToCartButton(props: Props): JSX.Element {\n const {\n label = \"Add to cart\",\n children,\n skuCode,\n bundleCode,\n skuListId,\n lineItem,\n buyNowMode = false,\n checkoutUrl,\n redirectToHostedCart,\n hostedCartUrl,\n quantity,\n lineItemOption,\n protocol = \"https\",\n ...p\n } = props\n const { accessToken, endpoint } = useCustomContext({\n context: CommerceLayerContext,\n contextComponentName: \"CommerceLayer\",\n currentComponentName: \"AddToCartButton\",\n key: \"accessToken\",\n })\n const { addToCart, orderId, getOrder, setOrderErrors } = useCustomContext({\n context: OrderContext,\n contextComponentName: \"OrderContainer\",\n currentComponentName: \"AddToCartButton\",\n key: \"addToCart\",\n })\n const { url, callExternalFunction } = useContext(ExternalFunctionContext)\n const { skuLists } = useContext(SkuListsContext)\n const { sku } = useContext(SkuChildrenContext)\n const sCode = sku?.code ?? skuCode\n const handleClick = async (): Promise<\n | {\n success: boolean\n orderId?: string\n }\n | Record<string, any>\n | undefined\n > => {\n const qty: number = quantity != null ? Number.parseInt(quantity) : 1\n if (skuLists != null && skuListId && url) {\n if (skuListId in skuLists) {\n const lineItems = skuLists?.[skuListId]?.map((skuCode: string) => {\n return {\n skuCode,\n quantity: qty,\n _update_quantity: 1,\n }\n })\n return await callExternalFunction({\n url,\n data: {\n resourceType: \"orders\",\n inputs: [\n {\n id: orderId,\n lineItems,\n },\n ],\n },\n })\n .then(async (res) => {\n getOrder && orderId && (await getOrder(orderId))\n if (!buyNowMode) {\n publish(\"open-cart\")\n }\n return res\n })\n .catch(({ response }) => {\n if (setOrderErrors) setOrderErrors(response.data)\n return response\n })\n }\n }\n if (!url && addToCart != null) {\n const res = await addToCart({\n bundleCode,\n skuCode: sCode,\n quantity: qty,\n lineItemOption,\n lineItem,\n buyNowMode,\n checkoutUrl,\n })\n if (redirectToHostedCart && accessToken != null && endpoint != null) {\n const { slug, domain } = getDomain(endpoint)\n const orderId = res?.orderId\n if (hostedCartUrl && orderId) {\n location.href = `${protocol}://${hostedCartUrl}/${orderId}?accessToken=${accessToken}`\n } else if (orderId && slug) {\n const config = await getOrganizationConfig({\n accessToken,\n endpoint,\n params: {\n orderId,\n accessToken,\n slug,\n },\n })\n location.href =\n config?.links?.cart ??\n getApplicationLink({\n orderId,\n slug,\n accessToken,\n domain,\n applicationType: \"cart\",\n })\n }\n }\n return res\n } else if (url) {\n return await callExternalFunction({\n url,\n data: {\n bundleCode,\n skuCode: sCode,\n quantity: qty,\n lineItemOption,\n lineItem,\n buyNowMode,\n checkoutUrl,\n },\n })\n .then(async (res) => {\n getOrder && orderId && (await getOrder(orderId))\n if (!buyNowMode) {\n publish(\"open-cart\")\n }\n return res\n })\n .catch(({ response }) => {\n if (setOrderErrors) setOrderErrors(response.data)\n return response\n })\n }\n return undefined\n }\n const parentProps = {\n handleClick,\n label,\n ...props,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <button\n {...p}\n onClick={() => {\n handleClick()\n }}\n >\n {label}\n </button>\n )\n}\n\nexport default AddToCartButton\n","import OrderContext from \"#context/OrderContext\"\nimport getAmount from \"#utils/getAmount\"\nimport Parent from \"./Parent\"\nimport { useState, useEffect, useContext, type JSX } from \"react\"\nimport type { PropsType } from \"#utils/PropsType\"\nimport type { baseOrderPricePropTypes } from \"#typings\"\nimport isEmpty from \"lodash-es/isEmpty\"\n\nexport type BaseOrderPriceProps = PropsType<\n typeof baseOrderPricePropTypes,\n unknown\n> &\n Omit<JSX.IntrinsicElements[\"span\"], \"children\" | \"ref\">\n\nexport function BaseOrderPrice(props: BaseOrderPriceProps): JSX.Element {\n const { format = \"formatted\", base, type, children, ...p } = props\n const { order } = useContext(OrderContext)\n const [price, setPrice] = useState(\"\")\n const [cents, setCents] = useState(0)\n useEffect(() => {\n const p = getAmount({\n base,\n type,\n format: format as string,\n obj: order || {},\n })\n const c = getAmount<number>({\n base,\n type,\n format: \"cents\",\n obj: order || {},\n })\n setPrice(p)\n setCents(c)\n return (): void => {\n if (isEmpty(order)) {\n setPrice(\"\")\n }\n }\n }, [order])\n const parentProps = {\n priceCents: cents,\n price,\n ...p,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <span {...p}>{price}</span>\n )\n}\n\nexport default BaseOrderPrice\n","import BaseOrderPrice from '../utils/BaseOrderPrice'\nimport type { BaseAmountComponent } from '#typings'\n\nimport type { JSX } from \"react\";\n\nexport function AdjustmentAmount(props: BaseAmountComponent): JSX.Element {\n return <BaseOrderPrice base='amount' type='adjustment' {...props} />\n}\n\nexport default AdjustmentAmount\n","import { type MouseEvent, type ReactNode, useContext, type JSX } from 'react';\nimport OrderContext from '#context/OrderContext'\nimport Parent from '../utils/Parent'\nimport type { ChildrenFunction } from '#typings/index'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport { getApplicationLink } from '#utils/getApplicationLink'\nimport { getDomain } from '#utils/getDomain'\nimport { publish } from '#utils/events'\nimport { getOrganizationConfig } from '#utils/organization'\n\ninterface ChildrenProps extends Omit<Props, 'children'> {\n /**\n * The url of the cart\n */\n href: string\n /**\n * Callback to dispatch the click event\n * @param e: MouseEvent<HTMLAnchorElement>\n * @returns Promise<void>\n */\n handleClick?: (e: MouseEvent<HTMLAnchorElement>) => Promise<void>\n /**\n * The order id\n */\n orderId?: string\n /**\n * The access token\n */\n accessToken?: string\n}\n\ninterface Props extends Omit<JSX.IntrinsicElements['a'], 'children'> {\n children?: ChildrenFunction<ChildrenProps>\n /**\n * Label to display\n */\n label?: string | ReactNode\n /**\n * The type of the cart. Defaults to undefined. If set to 'mini', the cart will open in a modal.\n */\n type?: 'mini'\n /**\n * The domain of your forked application\n */\n customDomain?: string\n}\n\n/**\n * This component generates a link to the hosted mfe-cart application.\n * In this way you can connect your shop application with our hosted micro-frontend.\n *\n * <span title=\"Requirement\" type=\"warning\">\n * Must be a child of the `<OrderContainer>` component. <br />\n * </span>\n */\nexport function CartLink(props: Props): JSX.Element | null {\n const { label, children, type, customDomain, ...p } = props\n const { order, createOrder } = useContext(OrderContext)\n const { accessToken, endpoint } = useContext(CommerceLayerContext)\n if (accessToken == null)\n throw new Error('Cannot use `CartLink` outside of `CommerceLayer`')\n if (endpoint == null)\n throw new Error('Cannot use `CartLink` outside of `CommerceLayer`')\n const { domain, slug } = getDomain(endpoint)\n const href =\n slug && order?.id\n ? getApplicationLink({\n slug,\n orderId: order?.id,\n accessToken,\n domain,\n applicationType: 'cart',\n customDomain\n })\n : undefined\n const handleClick = async (\n event: MouseEvent<HTMLAnchorElement>\n ): Promise<void> => {\n event.preventDefault()\n if (type !== 'mini') {\n if (order?.id) {\n const config = await getOrganizationConfig({\n accessToken,\n endpoint,\n params: {\n orderId: order?.id,\n accessToken,\n slug\n }\n })\n location.href = config?.links?.cart ?? href ?? ''\n } else {\n const orderId = await createOrder({})\n const config = await getOrganizationConfig({\n accessToken,\n endpoint,\n params: {\n orderId: order?.id,\n accessToken,\n slug\n }\n })\n if (slug) {\n location.href =\n config?.links?.cart ??\n getApplicationLink({\n slug,\n orderId,\n accessToken,\n domain,\n applicationType: 'cart',\n customDomain\n })\n }\n }\n } else {\n publish('open-cart')\n }\n }\n const parentProps = {\n handleClick,\n label,\n href,\n orderId: order?.id,\n accessToken,\n ...p\n }\n if (!accessToken) return null\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <a\n href={href}\n onClick={(e) => {\n handleClick(e)\n }}\n {...p}\n >\n {label}\n </a>\n )\n}\n\nexport default CartLink\n","import { useContext, type JSX } from \"react\"\nimport OrderContext from \"#context/OrderContext\"\nimport Parent from \"../utils/Parent\"\nimport type { ChildrenFunction } from \"#typings/index\"\nimport CommerceLayerContext from \"#context/CommerceLayerContext\"\nimport { getApplicationLink } from \"#utils/getApplicationLink\"\nimport { getDomain } from \"#utils/getDomain\"\nimport { getOrganizationConfig } from \"#utils/organization\"\n\ninterface ChildrenProps extends Omit<Props, \"children\"> {\n checkoutUrl: string\n href: string\n}\n\ninterface Props extends Omit<JSX.IntrinsicElements[\"a\"], \"children\"> {\n children?: ChildrenFunction<ChildrenProps>\n /**\n * Label for the checkout link\n */\n label?: string\n /**\n * Ignores `order.checkout_url` and redirects to the hosted checkout micro-frontend.\n * @default true\n */\n hostedCheckout?: boolean\n}\n\n/**\n * This component generates a link to the hosted mfe-checkout application.\n * In this way you can connect your shop application with our hosted micro-frontend.\n *\n * By default it will takes the customer to our hosted checkout micro-frontend,\n * but if `hostedCheckout` is set as `false` it will use the `checkout_url` attribute\n * found in the `order` object.\n */\nexport function CheckoutLink(props: Props): JSX.Element {\n const { label, hostedCheckout = true, children, onClick, ...p } = props\n const { order } = useContext(OrderContext)\n const { accessToken, endpoint } = useContext(CommerceLayerContext)\n if (accessToken == null || endpoint == null)\n throw new Error(\"Cannot use `CheckoutLink` outside of `CommerceLayer`\")\n const { domain, slug } = getDomain(endpoint)\n const href =\n hostedCheckout && order?.id\n ? getApplicationLink({\n slug,\n orderId: order?.id,\n accessToken,\n applicationType: \"checkout\",\n domain,\n })\n : (order?.checkout_url ?? \"\")\n const parentProps = {\n checkoutUrl: order?.checkout_url,\n hostedCheckout,\n label,\n href,\n ...p,\n }\n function handleClick(\n e: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n ): void {\n e.preventDefault()\n e.stopPropagation()\n const currentHref = e.currentTarget.href\n if (accessToken && endpoint && order?.id) {\n getOrganizationConfig({\n accessToken,\n endpoint,\n params: {\n accessToken,\n slug,\n orderId: order?.id,\n },\n }).then((config) => {\n if (config?.links?.checkout) {\n window.open(config.links.checkout, \"_top\")\n } else {\n window.open(currentHref, \"_top\")\n }\n })\n } else {\n window.open(currentHref, \"_top\")\n }\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <a href={href} onClick={handleClick} {...p}>\n {label}\n </a>\n )\n}\n\nexport default CheckoutLink\n","import BaseOrderPrice from '../utils/BaseOrderPrice'\nimport type { BaseAmountComponent } from '#typings'\n\nimport type { JSX } from \"react\";\n\nexport function DiscountAmount(props: BaseAmountComponent): JSX.Element {\n return <BaseOrderPrice base='amount' type='discount' {...props} />\n}\n\nexport default DiscountAmount\n","import BaseOrderPrice from \"../utils/BaseOrderPrice\"\nimport type { BaseAmountComponent } from \"#typings\"\n\nimport { useContext, type JSX } from \"react\"\nimport OrderContext from \"#context/OrderContext\"\nimport { manageGiftCard } from \"#utils/adyen/manageGiftCard\"\nimport Parent from \"#components/utils/Parent\"\n\nexport function GiftCardAmount(props: BaseAmountComponent): JSX.Element | null {\n const { manageAdyenGiftCard, order } = useContext(OrderContext)\n if (manageAdyenGiftCard) {\n const giftCardData = manageGiftCard({ order })\n if (!giftCardData) return null\n const parentProps = {\n priceCents: giftCardData.currentBalanceValue,\n price: `-${giftCardData?.formattedBalanceValue}`,\n ...props,\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <span {...props}>{`-${giftCardData?.formattedBalanceValue}`}</span>\n )\n }\n return <BaseOrderPrice base=\"amount\" type=\"gift_card\" {...props} />\n}\n\nexport default GiftCardAmount\n","import { createContext } from 'react'\nimport {\n getLocalOrder,\n setLocalOrder,\n deleteLocalOrder\n} from '#utils/localStorage'\n\nexport interface OrderStorageConfig {\n persistKey: string\n clearWhenPlaced: boolean\n getLocalOrder: typeof getLocalOrder\n setLocalOrder: typeof setLocalOrder\n deleteLocalOrder: typeof deleteLocalOrder\n}\n\nconst initial: OrderStorageConfig = {\n persistKey: '',\n clearWhenPlaced: true,\n getLocalOrder,\n setLocalOrder,\n deleteLocalOrder\n}\n\nconst OrderStorageContext = createContext<OrderStorageConfig>(initial)\n\nexport default OrderStorageContext\n","type Item = Record<string, any>\n\ninterface TArgs<A, B> {\n attributes: A\n object: B\n}\n\nfunction sortObj<T extends Item>(obj: T): Item {\n return Object.keys(obj)\n .sort()\n .reduce<Item>((result, key) => {\n result[key] = obj[key]\n return result\n }, {})\n}\n\nexport default function compareObjAttribute<A extends Item, B extends Item>({\n attributes,\n object\n}: TArgs<A, B>): Item {\n const returnObj: Item = {}\n Object.keys(object).forEach((v) => {\n const element = attributes[v]\n const compare = object[v]\n if (typeof element === 'object' && element) {\n const elementSorted = sortObj(element)\n const compareSorted = sortObj(compare)\n if (JSON.stringify(elementSorted) !== JSON.stringify(compareSorted)) {\n returnObj[v] = element\n }\n }\n if (typeof element !== 'object' && element && element !== compare) {\n returnObj[v] = element\n }\n })\n return returnObj\n}\n","import {\n useEffect,\n useReducer,\n useContext,\n useMemo,\n useState,\n type JSX,\n} from \"react\"\nimport orderReducer, {\n createOrder,\n getApiOrder,\n setOrderErrors,\n setOrder,\n type OrderCodeType,\n type AddResourceToInclude,\n orderInitialState,\n type UpdateOrderArgs,\n type SaveAddressToCustomerAddressBook,\n updateOrder,\n type ResourceIncluded,\n addToCart,\n paymentSourceRequest,\n} from \"#reducers/OrderReducer\"\nimport CommerceLayerContext from \"#context/CommerceLayerContext\"\nimport OrderContext, { defaultOrderContext } from \"#context/OrderContext\"\nimport type { BaseMetadataObject } from \"#typings\"\nimport OrderStorageContext from \"#context/OrderStorageContext\"\nimport type { OrderCreate, Order } from \"@commercelayer/sdk\"\nimport type { BaseError } from \"#typings/errors\"\nimport compareObjAttribute from \"#utils/compareObjAttribute\"\nimport useCustomContext from \"#utils/hooks/useCustomContext\"\nimport type { DefaultChildrenType } from \"#typings/globals\"\n\ninterface Props {\n children: DefaultChildrenType\n /**\n * Metadata to add when creates a new order\n */\n metadata?: BaseMetadataObject\n /**\n * Attribute to add when creates/updates an order\n */\n attributes?: OrderCreate\n /**\n * ID of the order\n */\n orderId?: string\n /**\n * Callback called when the order is updated\n */\n fetchOrder?: (order: Order) => void\n /**\n * Indicate if Adyen gift card management is enabled\n */\n manageAdyenGiftCard?: boolean\n}\n\n/**\n * This component is responsible for fetching the order and store it in its context.\n * It also provides the `fetchOrder` callback that is triggered every time the order is updated (it returns the updated order object as argument).\n * When the order is not placed yet, its possible to pass the `metadata` and `attributes` props to update the order.\n *\n * <span title=\"Requirement\" type=\"warning\">\n * Must be a child of the `<CommerceLayer>` component. <br />\n * Can be a child of the `<OrderStorage>` component and receive the `orderId` from it.\n * </span>\n *\n * <span title=\"Children\" type=\"info\">\n * `<AddToCartButton>`,\n * `<AdjustmentAmount>`,\n * `<CartLink>`,\n * `<CheckoutLink>`,\n * `<DiscountAmount>`,\n * `<GiftCardAmount>`,\n * `<HostedCart>`,\n * `<OrderNumber>`,\n * `<PaymentMethodAmount>`,\n * `<PlaceOrderButton>`,\n * `<PlaceOrderContainer>`,\n * `<PrivacyAndTermsCheckbox>`,\n * `<Shipping Amount>`,\n * `<SubTotalAmount>`,\n * `<TaxesAmount>`,\n * `<TotalAmount>`,\n * </span>\n *\n * <span title=\"Core API\" type=\"info\">\n * Check the `orders` resource from our [Core API documentation](https://docs.commercelayer.io/core/v/api-reference/orders/object).\n * </span>\n */\nexport function OrderContainer(props: Props): JSX.Element {\n const {\n orderId,\n children,\n metadata,\n attributes,\n fetchOrder,\n manageAdyenGiftCard,\n } = props\n const [state, dispatch] = useReducer(orderReducer, orderInitialState)\n const [lock, setLock] = useState(false)\n const [lockOrder, setLockOrder] = useState(true)\n const config = useCustomContext({\n context: CommerceLayerContext,\n contextComponentName: \"CommerceLayer\",\n currentComponentName: \"OrderContainer\",\n key: \"accessToken\",\n })\n const {\n persistKey,\n clearWhenPlaced,\n getLocalOrder,\n setLocalOrder,\n deleteLocalOrder,\n } = useContext(OrderStorageContext)\n const getOrder = async (localOrder?: string | null): Promise<void> => {\n const removeOrderPlaced = !!(persistKey && clearWhenPlaced)\n localOrder &&\n (await getApiOrder({\n id: localOrder,\n dispatch,\n config,\n persistKey,\n clearWhenPlaced: removeOrderPlaced,\n deleteLocalOrder,\n state,\n }))\n }\n useEffect(() => {\n const localOrder = persistKey ? getLocalOrder(persistKey) : orderId\n if (state?.orderId) {\n if (localOrder != null && state.orderId !== localOrder) {\n getOrder(localOrder)\n } else {\n dispatch({\n type: \"setOrderId\",\n payload: {\n orderId: undefined,\n order: undefined,\n },\n })\n }\n }\n }, [persistKey])\n useEffect(() => {\n if (!state.withoutIncludes) {\n dispatch({\n type: \"setLoading\",\n payload: {\n loading: true,\n },\n })\n }\n }, [state.withoutIncludes])\n\n useEffect(() => {\n if (attributes && state?.order && !lock) {\n const updateAttributes = compareObjAttribute({\n attributes,\n object: state.order,\n })\n if (Object.keys(updateAttributes).length > 0) {\n updateOrder({\n id: state.order.id,\n attributes: updateAttributes,\n dispatch,\n config,\n include: state.include,\n state,\n })\n setLock(true)\n }\n }\n return () => {\n if (attributes && state?.order) {\n const updateAttributes = compareObjAttribute({\n attributes,\n object: state.order,\n })\n if (state.order && Object.keys(updateAttributes).length === 0) {\n setLock(false)\n }\n }\n }\n }, [attributes, state?.order, lock])\n useEffect(() => {\n const localOrder = persistKey ? getLocalOrder(persistKey) : orderId\n const startRequest = Object.keys(state?.includeLoaded || {}).filter(\n (key) => state?.includeLoaded?.[key as ResourceIncluded] === true,\n )\n if (config.accessToken && state.loading === false && state?.order == null) {\n if (\n localOrder &&\n !state.order &&\n state.include?.length === startRequest.length &&\n !state.withoutIncludes &&\n !lockOrder\n ) {\n getOrder(localOrder)\n } else if (\n state.withoutIncludes &&\n !state.include?.length &&\n startRequest.length === 0\n ) {\n getOrder(localOrder)\n }\n } else if (\n [\n config.accessToken,\n state.order == null,\n state.loading,\n state.withoutIncludes,\n ].every(Boolean)\n ) {\n dispatch({\n type: \"setLoading\",\n payload: {\n loading: false,\n },\n })\n } else if (\n [\n config.accessToken,\n state.order == null,\n state.loading,\n state.withoutIncludes === false,\n ].every(Boolean)\n ) {\n dispatch({\n type: \"setLoading\",\n payload: {\n loading: false,\n },\n })\n }\n return () => {\n if (\n state.order == null &&\n state.loading &&\n state.withoutIncludes === false\n ) {\n if (state.include?.length === 0 && startRequest.length > 0) {\n dispatch({\n type: \"setLoading\",\n payload: {\n loading: false,\n },\n })\n } else if (state.include && state.include?.length > 0) {\n dispatch({\n type: \"setIncludesResource\",\n payload: {\n include: [],\n },\n })\n setLockOrder(false)\n }\n }\n }\n }, [\n config.accessToken,\n Object.keys(state.includeLoaded ?? {}).length,\n state.include?.length,\n orderId,\n Object.keys(state?.order ?? {}).length,\n state.loading,\n state.withoutIncludes,\n lockOrder,\n ])\n const orderValue = useMemo(() => {\n if (fetchOrder != null && state?.order != null) {\n fetchOrder(state.order)\n }\n return {\n ...state,\n manageAdyenGiftCard,\n paymentSourceRequest: async (\n params: Parameters<typeof paymentSourceRequest>[number],\n ): ReturnType<typeof paymentSourceRequest> =>\n await paymentSourceRequest({ ...params, dispatch, state, config }),\n setOrder: (order: Order) => {\n setOrder(order, dispatch)\n },\n getOrder: async (id: string): Promise<Order | undefined> =>\n await getApiOrder({ id, dispatch, config, state }),\n setOrderErrors: (errors: BaseError[]) =>\n setOrderErrors({ dispatch, errors }),\n createOrder: async (): Promise<string> =>\n await createOrder({\n persistKey,\n dispatch,\n config,\n state,\n orderMetadata: metadata,\n orderAttributes: attributes,\n setLocalOrder,\n }),\n addToCart: async (\n params: Parameters<typeof addToCart>[number],\n ): ReturnType<typeof addToCart> =>\n await addToCart({\n ...params,\n persistKey,\n dispatch,\n state,\n config,\n errors: state.errors,\n orderMetadata: metadata || {},\n orderAttributes: attributes,\n setLocalOrder,\n }),\n saveAddressToCustomerAddressBook: (\n args: Parameters<SaveAddressToCustomerAddressBook>[0],\n ) => {\n defaultOrderContext.saveAddressToCustomerAddressBook({\n ...args,\n dispatch,\n })\n },\n setGiftCardOrCouponCode: async ({\n code,\n codeType,\n }: {\n code: string\n codeType: OrderCodeType\n }) =>\n await defaultOrderContext.setGiftCardOrCouponCode({\n code,\n codeType,\n dispatch,\n order: state.order,\n config,\n include: state.include,\n state,\n }),\n removeGiftCardOrCouponCode: async ({\n codeType,\n }: {\n codeType: OrderCodeType\n }) =>\n await defaultOrderContext.removeGiftCardOrCouponCode({\n codeType,\n dispatch,\n order: state.order,\n config,\n include: state.include,\n state,\n }),\n addResourceToInclude: (args: AddResourceToInclude) => {\n defaultOrderContext.addResourceToInclude({\n ...args,\n dispatch,\n resourcesIncluded: state.include,\n resourceIncludedLoaded: state.includeLoaded,\n })\n },\n updateOrder: async (args: UpdateOrderArgs) =>\n await defaultOrderContext.updateOrder({\n ...args,\n dispatch,\n config,\n include: state.include,\n state,\n }),\n }\n }, [state, config.accessToken, persistKey])\n return (\n <OrderContext.Provider value={orderValue}>{children}</OrderContext.Provider>\n )\n}\n\nexport default OrderContainer\n","import type { Order, OrderSubscription } from '@commercelayer/sdk'\nimport type { Row } from '@tanstack/react-table'\nimport { createContext, type JSX } from 'react';\n\nexport type TOrderList = 'orders' | 'subscriptions'\n\nexport type TableAccessor<T extends TOrderList> = T extends 'orders'\n ? keyof Order\n : keyof OrderSubscription\n\nexport type OrderListContent<T extends TOrderList> = T extends 'orders'\n ? Order\n : OrderSubscription\n\nexport type InitialOrderListContext = Partial<{\n type: TOrderList\n /**\n * The current order\n */\n order: OrderListContent<TOrderList> | null\n /**\n * The list of orders\n */\n orders: OrderListContent<TOrderList>[] | null | undefined\n /**\n * The current row\n */\n row: Row<OrderListContent<TOrderList>>\n /**\n * Show the row actions\n */\n showActions: boolean\n /**\n * Function to assign as custom row renderer\n */\n actionsComponent: (props: {\n order: OrderListContent<TOrderList>\n }) => JSX.Element\n /**\n * Class name to assign as custom row renderer\n */\n actionsContainerClassName: string\n /**\n * Infinite scroll enabled\n */\n infiniteScroll: boolean\n}>\n\nconst initial: InitialOrderListContext = {\n showActions: false\n}\n\nconst OrderListChildrenContext = createContext<InitialOrderListContext>(initial)\n\nexport default OrderListChildrenContext\n","import { createContext } from 'react'\n\nexport interface OrderListPaginationContext {\n canNextPage: boolean\n canPreviousPage: boolean\n gotoPage: (page: number) => void\n nextPage: () => void\n pageCount: number\n pageIndex: number\n pageOptions: number[]\n pageSize: number\n previousPage: () => void\n setPageSize: (pageCount: number) => void\n totalRows: number\n}\n\nconst ctx = createContext<OrderListPaginationContext | null>(null)\n\nexport default ctx\n","export const sortDescIcon = (\n <svg\n xmlns='http://www.w3.org/2000/svg'\n width={20}\n fill='none'\n viewBox='0 0 24 24'\n stroke='currentColor'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n strokeWidth={2}\n d='M3 4h13M3 8h9m-9 4h9m5-4v12m0 0l-4-4m4 4l4-4'\n />\n </svg>\n)\n\nexport const sortAscIcon = (\n <svg\n xmlns='http://www.w3.org/2000/svg'\n width={20}\n fill='none'\n viewBox='0 0 24 24'\n stroke='currentColor'\n >\n <path\n strokeLinecap='round'\n strokeLinejoin='round'\n strokeWidth={2}\n d='M3 4h13M3 8h9m-9 4h6m4 0l4-4m0 0l4 4m-4-4v12'\n />\n </svg>\n)\n","import type { DefaultChildrenType } from '#typings/globals'\n\nimport type { JSX } from \"react\";\n\ninterface Props<T> {\n children: DefaultChildrenType\n filterBy: T[]\n componentName: string\n}\n\n/**\n * Filter children by component display name\n */\nexport default function filterChildren<T = string>({\n children,\n filterBy,\n componentName\n}: Props<T>): JSX.Element | JSX.Element[] | null {\n const wrongComponents = Array.isArray(children)\n ? children.filter((child) => typeof child.type === 'string').length > 0\n : typeof children?.type === 'string'\n if (wrongComponents) {\n throw new Error(\n `Only library components are allowed into <${componentName}/>`\n )\n }\n if (Array.isArray(children)) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n return children.filter((child) => filterBy.includes(child.type.displayName))\n }\n return children\n}\n","import { useContext, useMemo, useState, useEffect, type ReactNode, type JSX } from 'react';\nimport CustomerContext from '#context/CustomerContext'\nimport OrderListChildrenContext, {\n type TOrderList,\n type InitialOrderListContext,\n type OrderListContent\n} from '#context/OrderListChildrenContext'\nimport OrderListPagination from '#context/OrderListPaginationContext'\nimport {\n useReactTable,\n getCoreRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n type ColumnDef,\n type SortingState,\n flexRender,\n type PaginationState\n} from '@tanstack/react-table'\nimport { sortDescIcon, sortAscIcon } from '#utils/icons'\nimport filterChildren from '#utils/filterChildren'\nimport type { DefaultChildrenType, TRange } from '#typings/globals'\nimport type { QueryPageSize } from '@commercelayer/sdk'\n\ntype RowComponent = 'OrderListRow' | 'OrderListEmpty'\ntype PaginationComponent =\n | 'OrderListPaginationInfo'\n | 'OrderListPaginationButtons'\nconst rowComponents: RowComponent[] = ['OrderListRow', 'OrderListEmpty']\nconst paginationComponents: PaginationComponent[] = [\n 'OrderListPaginationInfo',\n 'OrderListPaginationButtons'\n]\n\ntype OrderListColumn<T extends TOrderList = 'orders'> = ColumnDef<\n OrderListContent<T>\n> & {\n className?: string\n titleClassName?: string\n}\n\nexport type TOrderListColumn<T extends TOrderList = 'orders'> =\n OrderListColumn<T>\n\ntype PaginationProps =\n | {\n /**\n * Show table pagination. Default is false.\n */\n showPagination: true\n /**\n * Number of rows per page. Default is 10. Max is 25.\n */\n pageSize?: TRange<1, 26>\n }\n | {\n /**\n * Show table pagination. Default is false.\n */\n showPagination?: false\n pageSize?: never\n }\n\ntype SubscriptionFields =\n | {\n /**\n * Subscriptions id - Use to fetch subscriptions and shows its orders\n */\n id?: string\n type?: 'subscriptions'\n }\n | {\n id?: never\n type?: 'orders'\n }\n\ntype Props = {\n /**\n * Type of list to render\n */\n type?: TOrderList\n /**\n * Children components to render\n */\n children: DefaultChildrenType\n /**\n * Columns to show\n */\n columns: OrderListColumn<TOrderList>[]\n /**\n * Custom loader component\n */\n loadingElement?: string | JSX.Element\n /**\n * Function to assign as custom row renderer\n */\n actionsComponent?: InitialOrderListContext['actionsComponent']\n /**\n * Class name to assign to the custom row container\n */\n actionsContainerClassName?: string\n /**\n * Show actions column. Default is false.\n */\n showActions?: boolean\n /**\n * Sort by column. Default is `number` column descending.\n */\n sortBy?: SortingState\n /**\n * Class name to assign to pagination container.\n */\n paginationContainerClassName?: string\n\n // sortBy?:\n /**\n * Class name to assign to the table header.\n */\n theadClassName?: string\n /**\n * Class name to assign to the table row.\n */\n rowTrClassName?: string\n} & Omit<JSX.IntrinsicElements['table'], 'children'> &\n PaginationProps &\n SubscriptionFields\n\nexport function OrderList({\n id,\n type = 'orders',\n children,\n columns,\n loadingElement,\n showActions = false,\n showPagination = false,\n sortBy = [{ id: 'number', desc: true }],\n pageSize = 10,\n paginationContainerClassName,\n actionsComponent,\n actionsContainerClassName,\n theadClassName,\n rowTrClassName,\n ...p\n}: Props): JSX.Element {\n const [loading, setLoading] = useState(true)\n const [sorting, setSorting] = useState<SortingState>(sortBy)\n const [{ pageIndex, pageSize: currentPageSize }, setPagination] =\n useState<PaginationState>({\n pageIndex: 0,\n pageSize\n })\n const { orders, subscriptions, getCustomerOrders, getCustomerSubscriptions } =\n useContext(CustomerContext)\n useEffect(() => {\n if (type === 'orders' && getCustomerOrders != null) {\n getCustomerOrders({\n pageNumber: pageIndex + 1,\n pageSize: currentPageSize as QueryPageSize\n })\n }\n if (type === 'subscriptions' && getCustomerSubscriptions != null) {\n getCustomerSubscriptions({\n pageNumber: pageIndex + 1,\n pageSize: currentPageSize as QueryPageSize,\n id\n })\n }\n }, [pageIndex, currentPageSize, id != null])\n const data = useMemo(() => {\n if (type === 'orders') {\n return orders ?? []\n }\n\n if (id == null) {\n return subscriptions ?? []\n }\n\n if (subscriptions?.[0]?.type === 'orders') {\n return subscriptions\n }\n\n return []\n }, [orders, subscriptions])\n const cols = useMemo<ColumnDef<OrderListContent<TOrderList>>[]>(\n () => columns,\n [columns]\n )\n const pagination = useMemo(\n () => ({\n pageIndex,\n pageSize: currentPageSize\n }),\n [pageIndex, currentPageSize]\n )\n const pageCount = orders?.pageCount ?? subscriptions?.pageCount ?? -1\n const table = useReactTable<OrderListContent<TOrderList>>({\n data,\n columns: cols,\n getSortedRowModel: getSortedRowModel(),\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n manualPagination: true,\n pageCount,\n state: {\n sorting,\n pagination\n },\n onSortingChange: setSorting,\n onPaginationChange: setPagination\n })\n const TableHtmlElement = 'table'\n const TheadHtmlElement = 'thead'\n const TbodyHtmlElement = 'tbody'\n const ThHtmlElement = 'th'\n const TrHtmlElement = 'tr'\n\n useEffect(() => {\n if (type === 'orders' && orders != null) {\n setLoading(false)\n }\n if (type === 'subscriptions' && subscriptions != null) {\n setLoading(false)\n }\n return () => {\n setLoading(true)\n }\n }, [orders, subscriptions])\n const LoadingComponent = loadingElement || <div>Loading...</div>\n const headerComponent = table.getHeaderGroups().map((headerGroup) => {\n const columnsComponents = headerGroup.headers.map((header, k) => {\n const sortLabel =\n header.column.getIsSorted() !== false ? header.column.getIsSorted() : ''\n return (\n <ThHtmlElement\n data-testid={`thead-${k}`}\n data-sort={`${sortLabel || ''}`}\n key={header.id}\n className={columns[k]?.className}\n >\n <span\n {...{\n className: `${columns[k]?.titleClassName ?? ''} ${\n header.column.getCanSort() ? 'cursor-pointer select-none' : ''\n }`,\n onClick: header.column.getToggleSortingHandler()\n }}\n >\n {\n flexRender(\n header.column.columnDef.header,\n header.getContext()\n ) as ReactNode\n }\n {{\n asc: sortAscIcon,\n desc: sortDescIcon\n }[header.column.getIsSorted() as string] ?? null}\n </span>\n </ThHtmlElement>\n )\n })\n return (\n <TrHtmlElement key={headerGroup.id}>{columnsComponents}</TrHtmlElement>\n )\n })\n const rowsComponents = filterChildren({\n children,\n filterBy: rowComponents,\n componentName: 'OrderList'\n })\n const components = table.getRowModel().rows.map((row) => {\n const childProps = {\n type,\n orders: type === 'orders' ? orders : subscriptions,\n order: row.original,\n row,\n showActions,\n actionsComponent,\n actionsContainerClassName\n }\n return (\n <TrHtmlElement className={rowTrClassName} key={row.id}>\n <OrderListChildrenContext.Provider value={childProps}>\n {rowsComponents}\n </OrderListChildrenContext.Provider>\n </TrHtmlElement>\n )\n })\n const pagComponents = filterChildren({\n children,\n filterBy: paginationComponents,\n componentName: 'OrderList'\n })\n const totalRows =\n type === 'orders'\n ? orders?.meta.recordCount ?? 0\n : subscriptions?.meta.recordCount ?? 0\n\n const Pagination = (): JSX.Element | null =>\n !showPagination ? null : (\n <OrderListPagination.Provider\n value={{\n canNextPage: table.getCanNextPage(),\n canPreviousPage: table.getCanPreviousPage(),\n gotoPage: table.setPageIndex,\n nextPage: table.nextPage,\n pageCount: table.getPageCount(),\n pageIndex: table.getState().pagination.pageIndex,\n pageOptions: table.getPageOptions(),\n pageSize: table.getState().pagination.pageSize,\n previousPage: table.previousPage,\n setPageSize: table.setPageSize,\n totalRows\n }}\n >\n {pagComponents}\n </OrderListPagination.Provider>\n )\n if (loading && (orders == null || subscriptions == null)) {\n return <>{LoadingComponent}</>\n }\n return (type === 'orders' ? orders : subscriptions)?.length === 0 ? (\n <OrderListChildrenContext.Provider\n value={{ orders: type === 'orders' ? orders : subscriptions }}\n >\n {rowsComponents}\n <Pagination />\n </OrderListChildrenContext.Provider>\n ) : (\n <>\n <TableHtmlElement {...p}>\n <TheadHtmlElement className={theadClassName}>\n {headerComponent}\n </TheadHtmlElement>\n <TbodyHtmlElement>{components}</TbodyHtmlElement>\n </TableHtmlElement>\n {totalRows <= pageSize ? null : (\n <div className={paginationContainerClassName}>\n <Pagination />\n </div>\n )}\n </>\n )\n}\n\nexport default OrderList\n","import Parent from '#components/utils/Parent'\nimport OrderListChildrenContext from '#context/OrderListChildrenContext'\nimport type { ChildrenFunction } from '#typings/index'\nimport { useContext, type JSX } from 'react';\n\ninterface Props extends Omit<JSX.IntrinsicElements['span'], 'children'> {\n /**\n * Function allow you to customize the component\n */\n children?: ChildrenFunction<Omit<Props, 'children'>>\n /**\n * Label to show. Default: 'No orders available.'\n */\n emptyText?: string\n}\n\nexport function OrderListEmpty(props: Props): JSX.Element | null {\n const { children, emptyText = 'No orders available', ...p } = props\n const { orders } = useContext(OrderListChildrenContext)\n const parentProps = { emptyText, ...p }\n if (orders != null && orders.length > 0) {\n return null\n }\n return children !== undefined ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <span {...p}>{emptyText}</span>\n )\n}\n\nOrderListEmpty.displayName = 'OrderListEmpty'\n\nexport default OrderListEmpty\n","export default function isDate(value: string): boolean {\n return !isNaN(Date.parse(value))\n}\n","import { type ReactNode, useContext, type JSX } from \"react\"\nimport Parent from \"#components/utils/Parent\"\nimport OrderListChildrenContext, {\n type TOrderList,\n type OrderListContent,\n type TableAccessor,\n} from \"#context/OrderListChildrenContext\"\nimport isDate from \"#utils/isDate\"\nimport last from \"lodash-es/last\"\nimport { flexRender, type Row } from \"@tanstack/react-table\"\n\ninterface ChildrenProps extends Omit<Props, \"children\"> {\n /**\n * The order resource\n */\n order: OrderListContent<TOrderList>\n /**\n * The current row\n */\n row: Row<OrderListContent<TOrderList>>\n /**\n * The current cell\n */\n cell: Array<\n ReturnType<Row<OrderListContent<TOrderList>>[\"getVisibleCells\"]>[number]\n >\n}\n\ninterface Props extends Omit<JSX.IntrinsicElements[\"td\"], \"children\"> {\n children?: (props: ChildrenProps) => JSX.Element\n /**\n * The order field to show\n */\n field: TableAccessor<TOrderList>\n}\n\nexport function OrderListRow({ field, children, ...p }: Props): JSX.Element {\n const {\n order,\n row,\n showActions,\n actionsComponent,\n actionsContainerClassName,\n } = useContext(OrderListChildrenContext)\n const cell = row?.getVisibleCells().filter((cell) => cell.column.id === field)\n const isLastRow = last(row?.getVisibleCells())?.column.id === field\n const As = \"td\"\n const ActionRow = (): JSX.Element | null => {\n return (\n (showActions && isLastRow && actionsComponent && (\n <As\n data-testid=\"action-cell\"\n {...p}\n className={actionsContainerClassName}\n >\n <Parent {...parentProps}>{actionsComponent}</Parent>\n </As>\n )) ||\n null\n )\n }\n const parentProps = {\n ...p,\n field,\n order,\n row,\n cell,\n }\n return children ? (\n <>\n <As>\n <Parent {...parentProps}>{children}</Parent>\n </As>\n <ActionRow />\n </>\n ) : (\n <>\n {cell?.map((cell, k) => {\n const cellValue = cell.getValue<string>()\n const value = isDate(cellValue)\n ? new Date(Date.parse(cellValue)).toLocaleString()\n : (flexRender(\n cell.column.columnDef.cell,\n cell.getContext(),\n ) as ReactNode)\n return (\n <As data-testid={`cell-${k}`} {...p} key={cell.id}>\n {value}\n </As>\n )\n })}\n <ActionRow />\n </>\n )\n}\n\nOrderListRow.displayName = \"OrderListRow\"\n\nexport default OrderListRow\n","import OrderContext from '#context/OrderContext'\nimport { type FunctionComponent, useContext, useEffect, useState, type JSX } from 'react';\nimport Parent from './Parent'\n\ntype BaseFieldChildren = Omit<BaseFieldProps, 'children'>\n\nexport interface BaseFieldProps\n extends Omit<JSX.IntrinsicElements['span'], 'children' | 'ref'> {\n attribute: 'number' | 'id'\n children?: (props: BaseFieldChildren) => JSX.Element\n}\n\nconst BaseField: FunctionComponent<BaseFieldProps> = ({\n children,\n attribute,\n ...p\n}) => {\n const { order } = useContext(OrderContext)\n const [field, setField] = useState<string | undefined | null>('')\n useEffect(() => {\n if (order && attribute in order) setField(order[attribute])\n return () => {\n setField('')\n }\n }, [order])\n const parentProps = { attribute: field, ...p }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <span {...p}>{field}</span>\n )\n}\n\nexport default BaseField\n","import BaseField, { type BaseFieldProps } from '../utils/BaseField'\n\nimport type { JSX } from \"react\";\n\ntype Props = Omit<BaseFieldProps, 'attribute'>\n\nexport function OrderNumber(props: Props): JSX.Element {\n return <BaseField attribute='number' {...props} />\n}\n\nexport default OrderNumber\n","import type { ReactNode, JSX } from 'react';\nimport OrderStorageContext from '#context/OrderStorageContext'\nimport {\n getLocalOrder,\n setLocalOrder,\n deleteLocalOrder\n} from '#utils/localStorage'\n\ninterface Props {\n children: ReactNode\n /**\n * The key used to persist the order id in the browser local storage.\n */\n persistKey: string\n /**\n * Removes the saved order id from the local storage when order is placed.\n * @default true\n */\n clearWhenPlaced?: boolean\n}\n\n/**\n * This component handle the persistence of the order id in the browser local storage.\n * When adding a product into the cart and the order does not exist yet, in will be created by the `OrderContainer` and\n * the order id will then be automatically saved in the local storage using `OrderStorage` context.\n * In this way on page refresh or components remounting, the `OrderContainer` will be able to load the order getting the id from this context.\n *\n * By default, the localStorage key will be deleted once the order has been placed, but you can disable this behavior via `clearWhenPlaced` prop.\n *\n * <span title=\"Requirement\" type=\"warning\">\n * Must be a child of the `<CommerceLayer>` component. <br />\n * </span>\n *\n * <span title=\"Children\" type=\"info\">\n * `<OrderContainer>`,\n * </span>\n */\nexport function OrderStorage(props: Props): JSX.Element {\n const { children, clearWhenPlaced = true, ...p } = props\n return (\n <OrderStorageContext.Provider\n value={{\n ...p,\n setLocalOrder,\n getLocalOrder,\n deleteLocalOrder,\n clearWhenPlaced\n }}\n >\n {children}\n </OrderStorageContext.Provider>\n )\n}\n\nexport default OrderStorage\n","import BaseOrderPrice from '#components/utils/BaseOrderPrice'\nimport type { BaseAmountComponent } from '#typings'\n\nimport type { JSX } from \"react\";\n\nexport function PaymentMethodAmount(props: BaseAmountComponent): JSX.Element {\n return <BaseOrderPrice base='amount' type='payment_method' {...props} />\n}\n\nexport default PaymentMethodAmount\n","import type { LineItem, Shipment } from \"@commercelayer/sdk\"\nimport compact from \"lodash-es/compact\"\nimport isEmpty from \"lodash-es/isEmpty\"\n\nexport function shipmentsFilled(shipments: Shipment[]): boolean {\n const filled = compact(\n shipments.filter((shipment) => !isEmpty(shipment.shipping_method)),\n )\n return !isEmpty(filled)\n}\n\nexport function isDoNotShip(lineItems?: LineItem[] | null): boolean {\n const itemDoNotShip: boolean[] = []\n const items = lineItems\n ? lineItems\n // eslint-disable-next-line @typescript-eslint/naming-convention\n .filter(({ item_type }) => item_type === \"skus\")\n .map((lineItem) => {\n // @ts-expect-error missing type\n if (lineItem.item?.do_not_ship) {\n itemDoNotShip.push(true)\n }\n return lineItem\n })\n : []\n return itemDoNotShip.length > 0 && itemDoNotShip.length === items.length\n}\n","import {\n getSaveBillingAddressToAddressBook,\n getSavePaymentSourceToCustomerWallet,\n getSaveShippingAddressToAddressBook\n} from './localStorage'\n\nexport function saveToWallet(): boolean {\n return getSavePaymentSourceToCustomerWallet()\n}\nexport function saveBillingAddress(): boolean {\n return getSaveBillingAddressToAddressBook()\n}\nexport function saveShippingAddress(): boolean {\n return getSaveShippingAddressToAddressBook()\n}\n","import type { Order } from '@commercelayer/sdk'\n\n/**\n * Check if a given `order` has subscriptions by checking the `frequency` attribute of the `line_items` (in case of brand new `order_subscription`) or the `subscription_created_at` attribute of the `order` itself (in case `order_subscription` is already existing)\n * @param order Order\n * @returns boolean\n */\nexport function hasSubscriptions(order: Order): boolean {\n return (\n order.line_items?.some((item) => {\n return item.frequency && item.frequency?.length > 0\n }) ||\n order?.subscription_created_at != null ||\n false\n )\n}\n","import type { PaymentResource } from '#reducers/PaymentMethodReducer'\nimport type { CommerceLayerClient, Order } from '@commercelayer/sdk'\n\n/**\n * Check if a given `order` has a linked `order_subscription` to replace its `customer_payment_source` with the `order`'s `payment_source`.\n * @param order Order\n * @returns void\n */\nexport function updateOrderSubscriptionCustomerPaymentSource(\n order: Order,\n paymentType: PaymentResource | undefined,\n sdk: CommerceLayerClient\n): void {\n if (order.subscription_created_at != null) {\n sdk.orders\n .retrieve(order.id, {\n include: ['order_subscription', 'payment_source']\n })\n .then((order) => {\n if (\n order.payment_source_details != null &&\n order.order_subscription != null\n ) {\n const paymentSourceToken = getPaymentSourceToken(order, paymentType)\n if (paymentSourceToken != null) {\n const customerPaymentSources = sdk.customer_payment_sources.list({\n filters: {\n payment_source_token_eq: paymentSourceToken\n }\n })\n customerPaymentSources.then((customerPaymentSources) => {\n if (\n customerPaymentSources.length > 0 &&\n order.order_subscription != null\n ) {\n const customerPaymentSource = customerPaymentSources[0]\n if (customerPaymentSource != null) {\n sdk.order_subscriptions.update({\n id: order.order_subscription?.id,\n customer_payment_source:\n sdk.customer_payment_sources.relationship(\n customerPaymentSource?.id\n )\n })\n }\n }\n })\n }\n }\n })\n }\n}\n\nfunction getPaymentSourceToken(\n order: Order,\n paymentType: PaymentResource | undefined\n): string | undefined {\n switch (paymentType) {\n case 'braintree_payments': {\n if (\n order.payment_source != null &&\n order.payment_source.type === 'braintree_payments' &&\n order.payment_source.options != null\n ) {\n return order.payment_source.options['payment_method_token']\n }\n return undefined\n }\n default: {\n return order?.payment_source_details?.['payment_method_id'] ?? undefined\n }\n }\n}\n","import baseReducer from \"#utils/baseReducer\"\nimport type { Dispatch, RefObject } from \"react\"\nimport type { CommerceLayerConfig } from \"#context/CommerceLayerContext\"\nimport type { BaseError } from \"#typings/errors\"\nimport type { Order, OrderUpdate, StripePayment } from \"@commercelayer/sdk\"\nimport isEmpty from \"lodash-es/isEmpty\"\nimport { isDoNotShip, shipmentsFilled } from \"#utils/shipments\"\nimport type { PaymentResource, PaymentSourceType } from \"./PaymentMethodReducer\"\nimport {\n saveBillingAddress,\n saveShippingAddress,\n saveToWallet,\n} from \"#utils/customerOrderOptions\"\nimport getSdk from \"#utils/getSdk\"\nimport getErrors from \"#utils/getErrors\"\nimport { isGuestToken } from \"#utils/isGuestToken\"\nimport { setCustomerOrderParam } from \"#utils/localStorage\"\nimport { hasSubscriptions } from \"#utils/hasSubscriptions\"\nimport { updateOrderSubscriptionCustomerPaymentSource } from \"#utils/updateOrderSubscriptionCustomerPaymentSource\"\n\nexport type PlaceOrderActionType =\n | \"setErrors\"\n | \"setPlaceOrderPermitted\"\n | \"setButtonRef\"\n | \"setStatus\"\n\nexport interface PlaceOrderOptions {\n paypalPayerId?: string\n adyen?: {\n MD?: string\n PaRes?: string\n redirectResult?: string\n }\n checkoutCom?: {\n session_id: string\n }\n stripe?: {\n /**\n * @deprecated\n * Use `paymentIntentClientSecret` instead\n */\n redirectStatus?: string\n paymentIntentClientSecret: string\n }\n}\n\nexport interface PlaceOrderActionPayload {\n errors: BaseError[]\n isPermitted: boolean\n paymentType: PaymentResource\n paymentSecret: string\n paymentId: string\n paymentSource: PaymentSourceType\n options?: PlaceOrderOptions\n placeOrderButtonRef?: RefObject<HTMLButtonElement | null>\n status: \"placing\" | \"standby\"\n}\n\nexport function setButtonRef(\n ref: RefObject<HTMLButtonElement | null>,\n dispatch: Dispatch<PlaceOrderAction>,\n): void {\n if (ref?.current != null) {\n dispatch({\n type: \"setButtonRef\",\n payload: {\n placeOrderButtonRef: ref,\n },\n })\n }\n}\n\nexport type PlaceOrderState = Partial<PlaceOrderActionPayload>\n\nexport interface PlaceOrderAction {\n type: PlaceOrderActionType\n payload: Partial<PlaceOrderActionPayload>\n}\n\nexport const placeOrderInitialState: PlaceOrderState = {\n errors: [],\n isPermitted: false,\n status: \"standby\",\n}\n\nexport function setPlaceOrderErrors<V extends BaseError[]>(\n errors: V,\n dispatch: Dispatch<PlaceOrderAction>,\n): void {\n if (dispatch) {\n dispatch({\n type: \"setErrors\",\n payload: {\n errors,\n },\n })\n }\n}\n\ninterface TPlaceOrderPermittedParams {\n config?: CommerceLayerConfig\n dispatch: Dispatch<PlaceOrderAction>\n order?: Order\n // TODO: Remove it soon\n options?: PlaceOrderOptions\n}\n\nexport function placeOrderPermitted({\n config,\n order,\n dispatch,\n options,\n}: TPlaceOrderPermittedParams): void {\n if (order && config) {\n let isPermitted = true\n if (order.privacy_url && order.terms_url) {\n isPermitted = localStorage.getItem(\"privacy-terms\") === \"true\"\n }\n const billingAddress = order.billing_address\n const shippingAddress = order.shipping_address\n const doNotShip = isDoNotShip(order.line_items)\n const shipments = order.shipments\n const shipment = shipments && shipmentsFilled(shipments)\n const paymentMethod = order.payment_method\n const paymentSource = order.payment_source\n if (order.total_amount_with_taxes_cents !== 0 && isEmpty(paymentMethod?.id))\n isPermitted = false\n if (isEmpty(billingAddress)) isPermitted = false\n if (isEmpty(shippingAddress) && !doNotShip) isPermitted = false\n if (!isEmpty(shipments) && !shipment) isPermitted = false\n // @ts-expect-error no type\n if (paymentSource?.mismatched_amounts) isPermitted = false\n dispatch({\n type: \"setPlaceOrderPermitted\",\n payload: {\n isPermitted,\n paymentType: paymentMethod?.payment_source_type as PaymentResource,\n // @ts-expect-error no type\n paymentSecret: paymentSource?.client_secret,\n // @ts-expect-error no type\n paymentId: paymentSource?.options?.id,\n paymentSource,\n options,\n },\n })\n }\n}\n\ninterface TSetPlaceOrderParams {\n config?: CommerceLayerConfig\n order?: Order\n state?: PlaceOrderState\n setOrderErrors?: (errors: BaseError[]) => void\n paymentSource?: PaymentSourceType\n include?: string[]\n setOrder?: (order: Order) => void\n currentCustomerPaymentSourceId?: string | null\n}\n\nexport async function setPlaceOrder({\n state,\n order,\n config,\n setOrderErrors,\n paymentSource,\n setOrder,\n include,\n currentCustomerPaymentSourceId,\n}: TSetPlaceOrderParams): Promise<{\n placed: boolean\n errors?: BaseError[]\n order?: Order\n}> {\n const response = {\n placed: false,\n }\n if (state && config && order) {\n const isAlreadyPlaced = order?.status === \"placed\"\n if (isAlreadyPlaced) {\n return {\n placed: true,\n order,\n }\n }\n const sdk = getSdk(config)\n const { options, paymentType } = state\n try {\n // Prevent extra place order\n const lastOrderStatus = await sdk.orders.retrieve(order.id)\n if (lastOrderStatus.status === \"placed\") {\n return {\n placed: true,\n order: lastOrderStatus,\n }\n }\n if (\n paymentType === \"paypal_payments\" &&\n paymentSource?.type === \"paypal_payments\"\n ) {\n if (!options?.paypalPayerId && paymentSource?.approval_url) {\n window.location.href = paymentSource?.approval_url\n return response\n }\n await sdk[paymentType].update({\n id: paymentSource.id,\n paypal_payer_id: options?.paypalPayerId,\n })\n }\n if (\n paymentType === \"checkout_com_payments\" &&\n paymentSource &&\n options?.checkoutCom?.session_id\n ) {\n const payment = await sdk[paymentType].update({\n id: paymentSource.id,\n _details: true,\n session_id: options?.checkoutCom?.session_id,\n })\n // @ts-expect-error no type\n if (payment?.payment_response?.status !== \"Authorized\") {\n // @ts-expect-error no type\n const [action] = payment?.payment_response?.actions || [\"\"]\n const errors: BaseError[] = [\n {\n code: \"PAYMENT_NOT_APPROVED_FOR_EXECUTION\",\n message: action?.response_summary,\n resource: \"orders\",\n field: \"checkout_com_payments\",\n },\n ]\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw { errors }\n }\n }\n const updateAttributes: OrderUpdate = {\n id: order.id,\n _place: true,\n }\n if (saveBillingAddress()) {\n await sdk.orders.update({\n id: order.id,\n _save_billing_address_to_customer_address_book: true,\n })\n }\n if (saveShippingAddress()) {\n await sdk.orders.update({\n id: order.id,\n _save_shipping_address_to_customer_address_book: true,\n })\n }\n if (paymentType === \"stripe_payments\" && paymentSource != null) {\n const ps = paymentSource as StripePayment\n const currentUrl = window.location.href\n // @ts-expect-error no type\n const returnUrl = ps?.options?.return_url\n if (currentUrl !== returnUrl) {\n await sdk[paymentType].update({\n id: paymentSource.id,\n options: {\n return_url: currentUrl,\n },\n })\n }\n }\n if (\n hasSubscriptions(order) &&\n config?.accessToken != null &&\n !isGuestToken(config.accessToken) &&\n currentCustomerPaymentSourceId == null\n ) {\n setCustomerOrderParam(\"_save_payment_source_to_customer_wallet\", \"true\")\n }\n switch (paymentType) {\n case \"braintree_payments\": {\n const total = order?.total_amount_cents ?? 0\n await Promise.all([\n saveToWallet() &&\n total > 0 &&\n sdk.orders.update({\n id: order.id,\n _save_payment_source_to_customer_wallet: true,\n }),\n ])\n const orderUpdated = await sdk.orders.update(updateAttributes, {\n include,\n })\n if (setOrder) setOrder(orderUpdated)\n if (setOrderErrors) setOrderErrors([])\n updateOrderSubscriptionCustomerPaymentSource(\n orderUpdated,\n paymentType,\n sdk,\n )\n return {\n placed: true,\n order: orderUpdated,\n }\n }\n default: {\n const orderUpdated = await sdk.orders.update(updateAttributes, {\n include,\n })\n const total = orderUpdated?.total_amount_cents ?? 0\n if (setOrder) setOrder(orderUpdated)\n await Promise.all([\n saveToWallet() &&\n total > 0 &&\n sdk.orders\n .update({\n id: order.id,\n _save_payment_source_to_customer_wallet: true,\n })\n .catch((error) => {\n // Avoid to interrupt the process if the order is already placed\n const errors = getErrors({\n error,\n resource: \"orders\",\n field: paymentType,\n })\n if (setOrderErrors) setOrderErrors(errors)\n }),\n ]).then(() => {\n updateOrderSubscriptionCustomerPaymentSource(\n orderUpdated,\n paymentType,\n sdk,\n )\n })\n return {\n placed: true,\n order: orderUpdated,\n }\n }\n }\n // biome-ignore lint/suspicious/noExplicitAny: <explanation>\n } catch (error: any) {\n const errors = getErrors({\n error,\n resource: \"orders\",\n field: paymentType,\n })\n if (setOrderErrors) setOrderErrors(errors)\n return {\n ...response,\n errors,\n }\n }\n }\n return response\n}\n\nexport function setPlaceOrderStatus({\n status,\n dispatch,\n}: {\n status: \"placing\" | \"standby\"\n dispatch?: Dispatch<PlaceOrderAction>\n}): void {\n if (dispatch != null) {\n dispatch({\n type: \"setStatus\",\n payload: {\n status,\n },\n })\n }\n}\n\nconst type: PlaceOrderActionType[] = [\n \"setErrors\",\n \"setPlaceOrderPermitted\",\n \"setButtonRef\",\n \"setStatus\",\n]\n\nconst placeOrderReducer = (\n state: PlaceOrderState,\n reducer: PlaceOrderAction,\n): PlaceOrderState =>\n baseReducer<PlaceOrderState, PlaceOrderAction, PlaceOrderActionType[]>(\n state,\n reducer,\n type,\n )\n\nexport default placeOrderReducer\n","import { createContext, type RefObject } from 'react'\nimport {\n type PlaceOrderState,\n type setPlaceOrder,\n setPlaceOrderErrors,\n setPlaceOrderStatus\n} from '#reducers/PlaceOrderReducer'\n\ntype DefaultContext = {\n setPlaceOrderErrors?: typeof setPlaceOrderErrors\n setPlaceOrder?: typeof setPlaceOrder\n placeOrderPermitted?: () => void\n setButtonRef?: (ref: RefObject<HTMLButtonElement | null>) => void\n setPlaceOrderStatus?: typeof setPlaceOrderStatus\n} & PlaceOrderState\n\nexport const defaultPlaceOrderContext: DefaultContext = {\n setPlaceOrderStatus,\n setPlaceOrderErrors,\n status: 'standby'\n}\n\nconst PlaceOrderContext = createContext<DefaultContext>(\n defaultPlaceOrderContext\n)\n\nexport default PlaceOrderContext\n","import type { IconBrand } from '#context/PaymentSourceContext'\nimport type {\n PaymentResource,\n PaymentSourceObject\n} from '#reducers/PaymentMethodReducer'\nimport type { CustomerPaymentSource } from '@commercelayer/sdk'\n\ninterface CardDetails {\n brand: IconBrand | string\n last4: string\n exp_month: number | string\n exp_year: number | string\n issuer_type?: string\n}\n\ninterface Args {\n paymentType: PaymentResource\n customerPayment: Partial<CustomerPaymentSource>\n}\n\nexport default function getCardDetails({\n paymentType,\n customerPayment\n}: Args): CardDetails {\n switch (paymentType) {\n case 'checkout_com_payments': {\n const ps =\n customerPayment.payment_source as PaymentSourceObject[typeof paymentType]\n const source = ps?.payment_response?.source\n if (source) {\n return {\n brand: source.scheme.toLowerCase() as IconBrand,\n exp_month: source.expiry_month,\n exp_year: source.expiry_year,\n last4: source.last4\n }\n }\n break\n }\n case 'stripe_payments': {\n const ps =\n customerPayment.payment_source as PaymentSourceObject[typeof paymentType]\n const source =\n ps?.options?.card ?? ps?.payment_method?.card ?? ps?.payment_instrument\n ? {\n brand: ps?.payment_instrument?.['card_type'],\n exp_month: ps?.payment_instrument?.['card_expiry_month'],\n exp_year: ps?.payment_instrument?.['card_expiry_year'],\n last4: ps?.payment_instrument?.['card_last_digits'],\n issuer_type: ps?.payment_instrument?.['issuer_type']\n }\n : undefined\n if (source?.brand != null) {\n return {\n ...source\n }\n }\n break\n }\n case 'klarna_payments': {\n const ps =\n customerPayment.payment_source as PaymentSourceObject[typeof paymentType]\n const source =\n ps?.auth_token != null && ps?.payment_instrument != null\n ? {\n brand: 'klarna',\n exp_month: '',\n exp_year: '',\n last4: '',\n issuer_type: ps?.payment_instrument?.['issuer_type']\n }\n : undefined\n if (source) {\n return {\n ...source\n }\n }\n break\n }\n case 'braintree_payments': {\n const ps =\n customerPayment.payment_source as PaymentSourceObject[typeof paymentType]\n const source = ps?.options?.card\n if (source) {\n return {\n ...source\n }\n }\n break\n }\n case 'adyen_payments': {\n const ps =\n customerPayment.payment_source as PaymentSourceObject[typeof paymentType]\n const source = ps?.payment_request_data?.payment_method\n const authorized = ps?.payment_response?.resultCode === 'Authorised'\n const last4 =\n ps?.payment_response?.['additionalData']?.cardSummary ??\n ps?.payment_instrument?.['card_last_digits'] ??\n '****'\n if (source && authorized) {\n const brand =\n source.type === 'scheme'\n ? source.brand ?? 'credit-card'\n : source.type.replace('_account', '')\n return {\n ...source,\n last4,\n brand\n }\n }\n break\n }\n default: {\n const ps =\n customerPayment.payment_source as PaymentSourceObject[typeof paymentType]\n const source = ps?.metadata?.['card'] ?? {\n brand: ps?.payment_instrument?.['issuer_type'].replace('_', '-') ?? '',\n last4: ps?.metadata?.['last4'] ?? '',\n exp_month: ps?.metadata?.['exp_month'] ?? '',\n exp_year: ps?.metadata?.['exp_year'] ?? ''\n }\n if (source) {\n return {\n ...source\n }\n }\n break\n }\n }\n return {\n brand: '',\n exp_month: '**',\n exp_year: '**',\n last4: '****',\n issuer_type: ''\n }\n}\n","import { loadStripe, type PaymentIntentResult } from '@stripe/stripe-js'\n\ninterface StripePaymentIntentParams {\n publicApiKey: string\n paymentIntentClientSecret: string\n}\n\ntype PaymentIntentResultPromise = Promise<\n PaymentIntentResult | undefined | null\n>\n\nasync function retrievePaymentIntent({\n publicApiKey,\n paymentIntentClientSecret\n}: StripePaymentIntentParams): PaymentIntentResultPromise {\n const stripe = await loadStripe(publicApiKey)\n try {\n const paymentIntent = await stripe?.retrievePaymentIntent(\n paymentIntentClientSecret\n )\n return paymentIntent\n } catch (error) {\n console.error('Error retrieving payment intent:', error)\n return null\n }\n}\n\ninterface PaymentIntentValidationProps {\n paymentIntent: PaymentIntentResult['paymentIntent']\n}\n\ntype PaymentVerificationState = 'valid' | 'invalid' | 'processing'\n\nfunction paymentIntentValidation({\n paymentIntent\n}: PaymentIntentValidationProps): PaymentVerificationState {\n const status = paymentIntent?.status\n switch (status) {\n case 'succeeded':\n case 'requires_capture':\n return 'valid'\n case 'processing':\n return 'processing'\n case 'requires_payment_method':\n return 'invalid'\n default:\n return 'invalid'\n }\n}\n\ntype PaymentProcessingFeedback =\n | {\n status: Exclude<PaymentVerificationState, 'invalid'>\n message?: string\n }\n | {\n status: 'invalid'\n message: string\n }\n\nexport async function checkPaymentIntent({\n publicApiKey,\n paymentIntentClientSecret\n}: StripePaymentIntentParams): Promise<PaymentProcessingFeedback> {\n const paymentIntentResult = await retrievePaymentIntent({\n publicApiKey,\n paymentIntentClientSecret\n })\n if (!paymentIntentResult) {\n return { status: 'invalid', message: 'Payment intent not found' }\n }\n const paymentIntent = paymentIntentResult.paymentIntent\n const error = paymentIntent?.last_payment_error\n const status = paymentIntentValidation({ paymentIntent })\n return {\n status,\n message: status === 'invalid' && error?.message != null ? error.message : ''\n }\n}\n","import {\n type ReactNode,\n useContext,\n useEffect,\n useRef,\n useState,\n type MouseEvent,\n type JSX,\n} from \"react\"\nimport Parent from \"../utils/Parent\"\nimport type { ChildrenFunction } from \"#typings/index\"\nimport PlaceOrderContext from \"#context/PlaceOrderContext\"\nimport PaymentMethodContext from \"#context/PaymentMethodContext\"\nimport OrderContext from \"#context/OrderContext\"\nimport getCardDetails from \"#utils/getCardDetails\"\nimport type { BaseError } from \"#typings/errors\"\nimport type { Order } from \"@commercelayer/sdk\"\nimport { checkPaymentIntent } from \"#utils/stripe/retrievePaymentIntent\"\n\ninterface ChildrenProps extends Omit<Props, \"children\"> {\n /**\n * Callback function to place the order\n */\n handleClick: () => Promise<void>\n}\n\ninterface Props\n extends Omit<JSX.IntrinsicElements[\"button\"], \"children\" | \"onClick\"> {\n children?: ChildrenFunction<ChildrenProps>\n /**\n * The label of the button\n */\n label?: string | ReactNode | (() => ReactNode)\n /**\n * The label of the button when it's loading\n */\n loadingLabel?: string | ReactNode\n /**\n * If false, the button doesn't place the order automatically. Default: true\n */\n autoPlaceOrder?: boolean\n /**\n * Callback function that is fired when the button is clicked\n */\n onClick?: (response: {\n placed: boolean\n order?: Order\n errors?: BaseError[]\n }) => void\n}\n\nexport function PlaceOrderButton(props: Props): JSX.Element {\n const ref = useRef(null)\n const {\n children,\n label = \"Place order\",\n loadingLabel = \"Placing...\",\n autoPlaceOrder = true,\n disabled,\n onClick,\n ...p\n } = props\n const {\n isPermitted,\n setPlaceOrder,\n options,\n paymentType,\n setButtonRef,\n setPlaceOrderStatus,\n status,\n } = useContext(PlaceOrderContext)\n const [notPermitted, setNotPermitted] = useState(true)\n const [forceDisable, setForceDisable] = useState(disabled)\n const [isLoading, setIsLoading] = useState(false)\n const {\n currentPaymentMethodRef,\n loading,\n currentPaymentMethodType,\n paymentSource,\n setPaymentSource,\n setPaymentMethodErrors,\n currentCustomerPaymentSourceId,\n } = useContext(PaymentMethodContext)\n const { order } = useContext(OrderContext)\n const isFree = order?.total_amount_with_taxes_cents === 0\n // biome-ignore lint/correctness/useExhaustiveDependencies: Need to test\n useEffect(() => {\n if (loading) setNotPermitted(loading)\n else {\n if (paymentType === currentPaymentMethodType && paymentType) {\n const card = getCardDetails({\n customerPayment: {\n payment_source: paymentSource,\n },\n paymentType,\n })\n if (\n currentCustomerPaymentSourceId != null &&\n paymentSource?.id === currentCustomerPaymentSourceId &&\n card.brand === \"\"\n ) {\n // Force creadit card icon for customer payment source imported by API\n card.brand = \"credit-card\"\n }\n if (\n ((isFree && isPermitted) ||\n currentPaymentMethodRef?.current?.onsubmit ||\n card.brand) &&\n isPermitted\n ) {\n setNotPermitted(false)\n }\n } else if (isFree && isPermitted) {\n setNotPermitted(false)\n } else {\n setNotPermitted(true)\n }\n }\n return () => {\n setNotPermitted(true)\n }\n }, [\n isPermitted,\n paymentType,\n currentPaymentMethodRef?.current?.onsubmit,\n loading,\n currentPaymentMethodType,\n order,\n paymentSource,\n ])\n // biome-ignore lint/correctness/useExhaustiveDependencies: Need to test\n useEffect(() => {\n // PayPal redirect flow\n if (\n paymentType === \"paypal_payments\" &&\n options?.paypalPayerId &&\n order?.status &&\n [\"draft\", \"pending\"].includes(order?.status) &&\n autoPlaceOrder\n ) {\n handleClick()\n }\n }, [options?.paypalPayerId, paymentType])\n // biome-ignore lint/correctness/useExhaustiveDependencies: Need to test\n useEffect(() => {\n // Stripe redirect flow\n if (\n paymentType === \"stripe_payments\" &&\n options?.stripe?.paymentIntentClientSecret &&\n // @ts-expect-error no type\n order?.payment_source?.publishable_key &&\n order?.status &&\n [\"draft\", \"pending\"].includes(order?.status) &&\n autoPlaceOrder\n ) {\n // @ts-expect-error no type\n const publicApiKey = order?.payment_source?.publishable_key\n const paymentIntentClientSecret =\n options?.stripe?.paymentIntentClientSecret\n\n const getPaymentIntent = async (): Promise<void> => {\n const paymentIntentResult = await checkPaymentIntent({\n publicApiKey,\n paymentIntentClientSecret,\n })\n switch (paymentIntentResult.status) {\n case \"valid\":\n handleClick()\n break\n case \"processing\":\n // Set a timeout to check the payment intent status again\n setTimeout(() => {\n getPaymentIntent()\n }, 1000)\n break\n case \"invalid\":\n setPaymentMethodErrors([\n {\n code: \"PAYMENT_INTENT_AUTHENTICATION_FAILURE\",\n resource: \"payment_methods\",\n field: currentPaymentMethodType,\n message: paymentIntentResult.message,\n },\n ])\n break\n }\n }\n getPaymentIntent()\n }\n }, [\n options?.stripe?.paymentIntentClientSecret != null,\n paymentType != null,\n order?.payment_source != null,\n ])\n // biome-ignore lint/correctness/useExhaustiveDependencies: Need to test\n useEffect(() => {\n // Adyen redirect flow\n if (order?.status != null && [\"draft\", \"pending\"].includes(order?.status)) {\n const resultCode =\n // @ts-expect-error no type\n order?.payment_source?.payment_response?.resultCode === \"Authorised\"\n const paymentDetails =\n // @ts-expect-error no type\n order?.payment_source?.payment_request_details?.details != null\n if (\n paymentType === \"adyen_payments\" &&\n options?.adyen?.redirectResult &&\n !paymentDetails\n ) {\n const attributes = {\n payment_request_details: {\n details: {\n redirectResult: options?.adyen?.redirectResult,\n },\n },\n _details: 1,\n }\n setPaymentSource({\n paymentSourceId: paymentSource?.id,\n paymentResource: \"adyen_payments\",\n attributes,\n }).then((res) => {\n // @ts-expect-error no type\n const resultCode: string = res?.payment_response?.resultCode\n // @ts-expect-error no type\n const errorCode = res?.payment_response?.errorCode\n // @ts-expect-error no type\n const message = res?.payment_response?.message\n if (\n [\"Authorised\", \"Pending\", \"Received\"].includes(resultCode) &&\n autoPlaceOrder\n ) {\n handleClick()\n } else if (errorCode != null) {\n setPaymentMethodErrors([\n {\n code: \"PAYMENT_INTENT_AUTHENTICATION_FAILURE\",\n resource: \"payment_methods\",\n field: currentPaymentMethodType,\n message,\n },\n ])\n }\n })\n } else if (\n paymentType === \"adyen_payments\" &&\n options?.adyen?.MD &&\n options?.adyen?.PaRes &&\n autoPlaceOrder\n ) {\n handleClick()\n } else if (\n paymentType === \"adyen_payments\" &&\n resultCode &&\n // @ts-expect-error no type\n ref?.current?.disabled === false &&\n currentCustomerPaymentSourceId == null &&\n autoPlaceOrder &&\n status === \"standby\"\n ) {\n // NOTE: This is a workaround for the case when the user reloads the page after selecting a customer payment source\n if (\n // @ts-expect-error no type\n order?.payment_source?.payment_response?.merchantReference?.includes(\n order?.number,\n )\n ) {\n handleClick()\n }\n }\n }\n }, [\n options?.adyen,\n paymentType,\n // @ts-expect-error no type\n order?.payment_source?.payment_response?.resultCode,\n ])\n useEffect(() => {\n if (\n order?.status === \"placed\" &&\n order?.payment_status === \"authorized\" &&\n paymentType === \"adyen_payments\"\n ) {\n // Dispatch the onClick callback when the order is placed and the payment status is authorized (Adyen with gift card)\n onClick?.({\n placed: true,\n order: order,\n })\n }\n }, [order, order?.payment_status, order?.status, paymentType, onClick])\n // biome-ignore lint/correctness/useExhaustiveDependencies: Need to test\n useEffect(() => {\n // Checkout.com redirect flow\n if (\n paymentType === \"checkout_com_payments\" &&\n options?.checkoutCom?.session_id &&\n order?.status &&\n [\"draft\", \"pending\"].includes(order?.status) &&\n autoPlaceOrder\n ) {\n handleClick()\n }\n }, [options?.checkoutCom, paymentType])\n // biome-ignore lint/correctness/useExhaustiveDependencies: Need to test\n useEffect(() => {\n if (ref?.current != null && setButtonRef != null) {\n setButtonRef(ref)\n }\n }, [ref])\n const handleClick = async (\n e?: MouseEvent<HTMLButtonElement>,\n ): Promise<void> => {\n e?.preventDefault()\n e?.stopPropagation()\n setIsLoading(true)\n let isValid = true\n setForceDisable(true)\n const checkPaymentSource =\n paymentType !== \"stripe_payments\"\n ? await setPaymentSource({\n // @ts-expect-error no type not be undefined\n paymentResource: paymentType,\n paymentSourceId: paymentSource?.id,\n })\n : paymentSource\n const card =\n paymentType &&\n getCardDetails({\n paymentType,\n customerPayment: { payment_source: checkPaymentSource },\n })\n if (\n currentPaymentMethodRef?.current?.onsubmit &&\n [\n !options?.paypalPayerId,\n !options?.adyen?.MD,\n !options?.checkoutCom?.session_id,\n ].every(Boolean)\n ) {\n isValid = (await currentPaymentMethodRef.current?.onsubmit({\n // @ts-expect-error no type\n paymentSource: checkPaymentSource,\n setPlaceOrder,\n onclickCallback: onClick,\n })) as boolean\n if (\n !isValid &&\n // @ts-expect-error no type\n checkPaymentSource?.payment_response?.resultCode === \"Authorised\"\n ) {\n isValid = true\n }\n } else if (card?.brand) {\n isValid = true\n }\n if (isValid && setPlaceOrderStatus != null) {\n setPlaceOrderStatus({ status: \"placing\" })\n }\n const placed =\n isValid &&\n setPlaceOrder &&\n (checkPaymentSource || isFree) &&\n (await setPlaceOrder({\n paymentSource: checkPaymentSource,\n currentCustomerPaymentSourceId,\n }))\n if (placed && setPlaceOrderStatus != null) {\n if (placed.placed) {\n setPlaceOrderStatus({ status: \"placing\" })\n onClick?.(placed)\n } else {\n setForceDisable(false)\n onClick?.(placed)\n setIsLoading(false)\n setPlaceOrderStatus({ status: \"standby\" })\n }\n } else {\n setForceDisable(false)\n setIsLoading(false)\n }\n }\n const disabledButton = disabled !== undefined ? disabled : notPermitted\n const labelButton = isLoading\n ? loadingLabel\n : typeof label === \"function\"\n ? label()\n : label\n const parentProps = {\n ...p,\n label,\n disabled: disabledButton,\n handleClick,\n parentRef: ref,\n isLoading,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <button\n ref={ref}\n type=\"button\"\n disabled={disabledButton || forceDisable}\n onClick={(e) => {\n handleClick(e)\n }}\n {...p}\n >\n {labelButton}\n </button>\n )\n}\n\nexport default PlaceOrderButton\n","import PlaceOrderContext from '#context/PlaceOrderContext'\nimport {\n type ReactNode,\n type RefObject,\n useContext,\n useEffect,\n useReducer,\n type JSX,\n} from 'react';\nimport placeOrderReducer, {\n placeOrderInitialState,\n type PlaceOrderOptions,\n placeOrderPermitted,\n setButtonRef,\n setPlaceOrderStatus\n} from '#reducers/PlaceOrderReducer'\nimport OrderContext from '#context/OrderContext'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport { setPlaceOrder } from '../../reducers/PlaceOrderReducer'\nimport useCustomContext from '#utils/hooks/useCustomContext'\n\ninterface Props {\n children: ReactNode\n options?: PlaceOrderOptions\n}\nexport function PlaceOrderContainer(props: Props): JSX.Element {\n const { children, options } = props\n const [state, dispatch] = useReducer(\n placeOrderReducer,\n placeOrderInitialState\n )\n const {\n order,\n setOrder,\n setOrderErrors,\n include,\n addResourceToInclude,\n includeLoaded\n } = useCustomContext({\n context: OrderContext,\n contextComponentName: 'OrderContainer',\n currentComponentName: 'PlaceOrderContainer',\n key: 'order'\n })\n const config = useContext(CommerceLayerContext)\n useEffect(() => {\n if (!include?.includes('shipments.available_shipping_methods')) {\n addResourceToInclude({\n newResource: [\n 'shipments.available_shipping_methods',\n 'shipments.stock_line_items.line_item',\n 'shipments.shipping_method',\n 'shipments.stock_transfers.line_item',\n 'shipments.stock_location'\n ]\n })\n } else if (!includeLoaded?.['shipments.available_shipping_methods']) {\n addResourceToInclude({\n newResourceLoaded: {\n 'shipments.available_shipping_methods': true,\n 'shipments.stock_line_items.line_item': true,\n 'shipments.shipping_method': true,\n 'shipments.stock_transfers.line_item': true,\n 'shipments.stock_location': true\n }\n })\n }\n if (!include?.includes('billing_address')) {\n addResourceToInclude({\n newResource: 'billing_address'\n })\n } else if (!includeLoaded?.billing_address) {\n addResourceToInclude({\n newResourceLoaded: { billing_address: true }\n })\n }\n if (!include?.includes('shipping_address')) {\n addResourceToInclude({\n newResource: 'shipping_address',\n resourcesIncluded: include\n })\n } else if (!includeLoaded?.shipping_address) {\n addResourceToInclude({\n newResourceLoaded: { shipping_address: true }\n })\n }\n if (order) {\n placeOrderPermitted({\n config,\n dispatch,\n order,\n options: {\n ...options\n }\n })\n }\n }, [order, include, includeLoaded])\n const contextValue = {\n ...state,\n setPlaceOrder: async ({\n paymentSource,\n currentCustomerPaymentSourceId\n }: {\n paymentSource?: Parameters<typeof setPlaceOrder>['0']['paymentSource']\n currentCustomerPaymentSourceId?: Parameters<\n typeof setPlaceOrder\n >['0']['currentCustomerPaymentSourceId']\n }) =>\n await setPlaceOrder({\n config,\n order,\n state,\n setOrderErrors,\n paymentSource,\n include,\n setOrder,\n currentCustomerPaymentSourceId\n }),\n setPlaceOrderStatus: ({\n status\n }: Parameters<typeof setPlaceOrderStatus>[0]) => {\n setPlaceOrderStatus({ status, dispatch })\n },\n placeOrderPermitted: () => {\n placeOrderPermitted({\n config,\n dispatch,\n order,\n options: {\n ...options\n }\n })\n },\n setButtonRef: (ref: RefObject<HTMLButtonElement | null>) => {\n setButtonRef(ref, dispatch)\n }\n }\n return (\n <PlaceOrderContext.Provider value={contextValue}>\n {children}\n </PlaceOrderContext.Provider>\n )\n}\n\nexport default PlaceOrderContainer\n","import OrderContext from '#context/OrderContext'\nimport PlaceOrderContext from '#context/PlaceOrderContext'\nimport { useContext, useEffect, useState, type JSX } from 'react';\nimport BaseInput, { type BaseInputProps } from '../utils/BaseInput'\n\nexport function PrivacyAndTermsCheckbox(\n props: Partial<BaseInputProps>\n): JSX.Element {\n const { order } = useContext(OrderContext)\n const { placeOrderPermitted } = useContext(PlaceOrderContext)\n const [forceDisabled, setForceDisabled] = useState(true)\n const [checked, setChecked] = useState(false)\n const fieldName = 'privacy-terms'\n const handleChange: any = (e: React.ChangeEvent<HTMLInputElement>): void => {\n const v = e.target?.checked\n setChecked(v)\n localStorage.setItem(fieldName, v.toString())\n if (placeOrderPermitted) placeOrderPermitted()\n }\n useEffect(() => {\n if (order?.privacy_url && order?.terms_url) setForceDisabled(false)\n if (!checked) localStorage.setItem(fieldName, checked.toString())\n return () => {\n setForceDisabled(true)\n localStorage.removeItem(fieldName)\n }\n }, [order?.privacy_url, order?.terms_url])\n return (\n <BaseInput\n type='checkbox'\n name={fieldName}\n disabled={forceDisabled}\n onChange={handleChange}\n checked={checked}\n {...props}\n />\n )\n}\n\nexport default PrivacyAndTermsCheckbox\n","import BaseOrderPrice from '../utils/BaseOrderPrice'\nimport type { BaseAmountComponent } from '#typings'\n\nimport type { JSX } from \"react\";\n\nexport function ShippingAmount(props: BaseAmountComponent): JSX.Element {\n return <BaseOrderPrice base='amount' type='shipping' {...props} />\n}\n\nexport default ShippingAmount\n","import BaseOrderPrice from '../utils/BaseOrderPrice'\nimport type { BaseAmountComponent } from '#typings'\n\nimport type { JSX } from \"react\";\n\nexport function SubTotalAmount(props: BaseAmountComponent): JSX.Element {\n return <BaseOrderPrice base='amount' type='subtotal' {...props} />\n}\n\nexport default SubTotalAmount\n","import BaseOrderPrice from '../utils/BaseOrderPrice'\nimport type { BaseAmountComponent } from '#typings'\n\nimport type { JSX } from \"react\";\n\nexport function TaxesAmount(props: BaseAmountComponent): JSX.Element {\n return <BaseOrderPrice base='amount' type='total_tax' {...props} />\n}\n\nexport default TaxesAmount\n","import BaseOrderPrice from \"../utils/BaseOrderPrice\"\nimport type { BaseAmountComponent } from \"#typings\"\n\nimport { useContext, type JSX } from \"react\"\nimport Parent from \"#components/utils/Parent\"\nimport OrderContext from \"#context/OrderContext\"\nimport { manageGiftCard } from \"#utils/adyen/manageGiftCard\"\n\nexport function TotalAmount(props: BaseAmountComponent): JSX.Element | null {\n const { manageAdyenGiftCard, order } = useContext(OrderContext)\n if (manageAdyenGiftCard) {\n const giftCardData = manageGiftCard({ order })\n if (!giftCardData) return null\n const parentProps = {\n price: `${giftCardData?.formattedOrderTotal}`,\n ...props,\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <span {...props}>{`${giftCardData?.formattedOrderTotal}`}</span>\n )\n }\n return <BaseOrderPrice base=\"total_amount\" type=\"with_taxes\" {...props} />\n}\n\nexport default TotalAmount\n","import { createContext } from 'react'\nimport type { Parcel } from '@commercelayer/sdk'\n\nexport interface InitialParcelContext {\n parcel?: Parcel\n}\n\nconst initial: InitialParcelContext = {}\n\nexport default createContext<InitialParcelContext>(initial)\n","import type { ConditionalElement } from '#typings'\nimport GenericFieldComponent, {\n type TGenericChildrenProps,\n type TResourceKey,\n type TResources\n} from '#components/utils/GenericFieldComponent'\nimport ParcelChildrenContext from '#context/ParcelChildrenContext'\n\nimport type { JSX } from \"react\";\n\ntype ParcelFieldChildrenProps = TGenericChildrenProps<TResources['Parcel']>\n\ntype TCondition = ConditionalElement<Exclude<TResources['Parcel'], 'resource'>>\n\ntype Props = {\n children?: (props: ParcelFieldChildrenProps) => JSX.Element\n} & TCondition\n/**\n * @param props {@link Props}\n * @returns\n */\nexport function ParcelField<P extends Props>(props: P): JSX.Element {\n const { attribute, tagElement = 'span', children, ...p } = props\n return (\n <GenericFieldComponent<TResourceKey['Parcel']>\n resource='parcel'\n attribute={attribute}\n tagElement={tagElement}\n context={ParcelChildrenContext}\n {...p}\n >\n {children}\n </GenericFieldComponent>\n )\n}\n\nexport default ParcelField\n","import { createContext } from 'react'\nimport type { ParcelLineItem } from '@commercelayer/sdk'\n\nexport interface InitialParcelLineItemContext {\n parcelLineItem?: ParcelLineItem\n}\n\nconst initial: InitialParcelLineItemContext = {}\n\nexport default createContext<InitialParcelLineItemContext>(initial)\n","import ParcelChildrenContext from '#context/ParcelChildrenContext'\nimport ParcelLineItemChildrenContext from '#context/ParcelLineItemChildrenContext'\nimport type { DefaultChildrenType } from '#typings/globals'\nimport { useContext, type JSX } from 'react';\n\ninterface Props {\n children: DefaultChildrenType\n}\n\nexport function ParcelLineItem({ children }: Props): JSX.Element {\n const { parcel } = useContext(ParcelChildrenContext)\n const components = parcel?.parcel_line_items?.map((parcelLineItem, key) => {\n return (\n <ParcelLineItemChildrenContext.Provider\n key={key}\n value={{ parcelLineItem }}\n >\n {children}\n </ParcelLineItemChildrenContext.Provider>\n )\n })\n return <>{components}</>\n}\n\nexport default ParcelLineItem\n","import type { ConditionalElement } from '#typings'\nimport GenericFieldComponent, {\n type TGenericChildrenProps,\n type TResourceKey,\n type TResources\n} from '#components/utils/GenericFieldComponent'\nimport ParcelLineItemChildrenContext from '#context/ParcelLineItemChildrenContext'\n\nimport type { JSX } from \"react\";\n\ntype ParcelLineItemFieldChildrenProps = TGenericChildrenProps<\n TResources['ParcelLineItem']\n>\n\ntype TCondition = ConditionalElement<\n Exclude<TResources['ParcelLineItem'], 'resource'>\n>\n\ntype Props = {\n children?: (props: ParcelLineItemFieldChildrenProps) => JSX.Element\n} & TCondition\n/**\n * @param props {@link Props}\n * @returns\n */\nexport function ParcelLineItemField<P extends Props>(props: P): JSX.Element {\n const { attribute, tagElement = 'span', children, ...p } = props\n return (\n <GenericFieldComponent<TResourceKey['ParcelLineItem']>\n resource='parcelLineItem'\n attribute={attribute}\n tagElement={tagElement}\n context={ParcelLineItemChildrenContext}\n {...p}\n >\n {children}\n </GenericFieldComponent>\n )\n}\n\nexport default ParcelLineItemField\n","import Parent from '#components/utils/Parent'\nimport ParcelChildrenContext from '#context/ParcelChildrenContext'\nimport type { ChildrenFunction } from '#typings/index'\nimport useCustomContext from '#utils/hooks/useCustomContext'\nimport type { Parcel } from '@commercelayer/sdk'\n\nimport type { JSX } from \"react\";\n\ninterface ChildrenProps extends Omit<Props, 'children'> {\n /**\n * Parcel of the current shipment\n */\n parcel?: Parcel\n /**\n * Quantity of the parcel line items\n */\n quantity: number\n}\n\ninterface Props extends Omit<JSX.IntrinsicElements['span'], 'children'> {\n children?: ChildrenFunction<ChildrenProps>\n}\n\nexport function ParcelLineItemsCount({ children, ...p }: Props): JSX.Element {\n const { parcel } = useCustomContext({\n context: ParcelChildrenContext,\n contextComponentName: 'Parcels',\n currentComponentName: 'ParcelLineItemsCount',\n key: 'parcel'\n })\n const quantity = parcel?.parcel_line_items?.length ?? 0\n const childrenProps: ChildrenProps = {\n ...p,\n quantity,\n parcel\n }\n return children ? (\n <Parent {...childrenProps}>{children}</Parent>\n ) : (\n <span {...p}>{quantity}</span>\n )\n}\n\nexport default ParcelLineItemsCount\n","import ParcelChildrenContext from '#context/ParcelChildrenContext'\nimport ShipmentChildrenContext from '#context/ShipmentChildrenContext'\nimport { useContext, type JSX } from 'react';\n\ninterface Props {\n children: JSX.Element | JSX.Element[]\n filterBy?: string[]\n}\n\nexport function Parcels({ children, filterBy }: Props): JSX.Element {\n const { parcels } = useContext(ShipmentChildrenContext)\n const components = parcels\n ?.filter((parcel) => filterBy?.includes(parcel.id) ?? true)\n .map((parcel, key): JSX.Element => {\n return (\n <ParcelChildrenContext.Provider key={key} value={{ parcel }}>\n {children}\n </ParcelChildrenContext.Provider>\n )\n })\n return <>{components}</>\n}\n\nexport default Parcels\n","import Parent from '#components/utils/Parent'\nimport ShipmentChildrenContext from '#context/ShipmentChildrenContext'\nimport type { ChildrenFunction } from '#typings/index'\nimport useCustomContext from '#utils/hooks/useCustomContext'\nimport type { Parcel } from '@commercelayer/sdk'\n\nimport type { JSX } from \"react\";\n\ninterface ChildrenProps extends Omit<Props, 'children'> {\n /**\n * Shipments of the current order\n */\n parcels?: Parcel[] | null\n /**\n * Quantity of the parcels\n */\n quantity: number\n}\n\ninterface Props extends Omit<JSX.IntrinsicElements['span'], 'children'> {\n children?: ChildrenFunction<ChildrenProps>\n}\n\nexport function ParcelsCount({ children, ...p }: Props): JSX.Element {\n const { parcels } = useCustomContext({\n context: ShipmentChildrenContext,\n contextComponentName: 'ShipmentsContainer',\n currentComponentName: 'ParcelsCount',\n key: 'parcels'\n })\n const quantity = parcels?.length ?? 0\n const childrenProps: ChildrenProps = {\n ...p,\n quantity,\n parcels\n }\n return children ? (\n <Parent {...childrenProps}>{children}</Parent>\n ) : (\n <span {...p}>{quantity}</span>\n )\n}\n\nexport default ParcelsCount\n","import type { LoaderType } from '#typings'\n\nimport type { JSX } from \"react\";\n\nexport default function getLoaderComponent(loader: LoaderType): JSX.Element {\n return <>{loader}</>\n}\n","import type { PaypalConfig } from '#components/payment_source/PaypalPayment'\nimport {\n getPaymentConfig,\n type PaymentMethodConfig,\n type PaymentResource\n} from '#reducers/PaymentMethodReducer'\nimport type { ExternalPayment } from '@commercelayer/sdk'\nimport { pick } from './pick'\nimport { replace, type StringReplace } from './replace'\nimport { type SnakeToCamelCase, snakeToCamelCase } from './snakeToCamelCase'\nimport type { StripeConfig } from '#components/payment_source/StripePayment'\n\ninterface Params<R extends PaymentResource, C extends PaymentMethodConfig> {\n resource: R\n config: C\n keys: R[]\n}\n\nexport type ResourceKeys<K extends PaymentResource> = SnakeToCamelCase<\n StringReplace<\n StringReplace<K, 'payments', 'payment'>,\n 'transfers',\n 'transfer'\n >\n>\n\nexport function getPaymentAttributes<\n R extends PaymentResource = PaymentResource,\n C extends PaymentMethodConfig = PaymentMethodConfig\n>(params: Params<R, C>): Pick<C, ResourceKeys<R>> | undefined {\n const { resource, config, keys } = params\n const attributes = getPaymentConfig(resource, config)\n const keysCamelCase: ResourceKeys<R>[] = keys.map((key) => {\n const k = replace(\n replace(key, 'payments', 'payment'),\n 'transfers',\n 'transfer'\n )\n return snakeToCamelCase(k)\n })\n const currentResource = snakeToCamelCase(\n replace(replace(resource, 'payments', 'payment'), 'transfers', 'transfer')\n )\n return attributes != null && currentResource in attributes\n ? pick(attributes, keysCamelCase)\n : undefined\n}\n\nexport function getPaypalAttributes(\n paymentResource: PaymentResource,\n config: PaymentMethodConfig\n): Pick<PaypalConfig, 'return_url' | 'cancel_url'> | undefined {\n const attributes = getPaymentAttributes({\n resource: paymentResource,\n config,\n keys: ['paypal_payments']\n })\n return attributes?.paypalPayment != null && 'paypalPayment' in attributes\n ? pick(attributes?.paypalPayment, ['return_url', 'cancel_url'])\n : undefined\n}\n\nexport function getExternalPaymentAttributes(\n paymentResource: PaymentResource,\n config: PaymentMethodConfig\n): Pick<ExternalPayment, 'payment_source_token'> | undefined {\n const attributes = getPaymentAttributes({\n resource: paymentResource,\n config,\n keys: ['external_payments']\n })\n return attributes?.externalPayment != null && 'externalPayment' in attributes\n ? pick(attributes?.externalPayment, ['payment_source_token'])\n : undefined\n}\n\nexport function getStripeAttributes(\n paymentResource: PaymentResource,\n config: PaymentMethodConfig\n): Pick<StripeConfig, 'return_url'> | undefined {\n const attributes = getPaymentAttributes({\n resource: paymentResource,\n config,\n keys: ['stripe_payments']\n })\n return attributes?.stripePayment != null && 'stripePayment' in attributes\n ? pick(attributes?.stripePayment, ['return_url'])\n : undefined\n}\n","export function isEmpty<V>(value: V): boolean {\n if (value == null) return true\n if (Array.isArray(value)) {\n return value.length === 0\n }\n if (typeof value === 'string') {\n return value.length === 0\n }\n if (typeof value === 'object') {\n return Object.keys(value).length === 0\n }\n throw new Error('Invalid value for isEmpty function')\n}\n","import type { CommerceLayerConfig } from \"#context/CommerceLayerContext\"\nimport type {\n OrderUpdate,\n Order,\n PaymentMethod,\n QueryParamsRetrieve,\n AddressCreate,\n} from \"@commercelayer/sdk\"\nimport getSdk from \"./getSdk\"\nimport type { PaymentRequestShippingOption } from \"@stripe/stripe-js\"\nimport type { PaymentResource } from \"#reducers/PaymentMethodReducer\"\nimport { getDomain } from \"./getDomain\"\nimport { getOrganizationConfig } from \"./organization\"\nimport { getApplicationLink } from \"./getApplicationLink\"\n\nconst availablePaymentMethods = [\"stripe_payments\"]\n\nexport function getAvailableExpressPayments(\n paymentMethods: PaymentMethod[],\n): PaymentMethod[] {\n return paymentMethods.filter((payment) => {\n if (!payment.payment_source_type) return false\n return availablePaymentMethods.includes(payment.payment_source_type)\n })\n}\n\ninterface TFakeAddressParams {\n /**\n * The order id\n */\n orderId: string\n /**\n * The Commerce Layer config\n */\n config: Required<CommerceLayerConfig>\n /**\n * The address resource\n */\n address: AddressCreate\n /**\n * The customer email\n */\n email?: string\n}\n\nexport async function setExpressFakeAddress({\n orderId,\n config,\n address,\n email,\n}: TFakeAddressParams): Promise<Order> {\n const params: QueryParamsRetrieve = {\n include: [\"shipments.available_shipping_methods\"],\n }\n const sdk = getSdk(config)\n const fakeAddress = await sdk.addresses.create(address)\n const resource: OrderUpdate = {\n id: orderId,\n billing_address: sdk.addresses.relationship(fakeAddress.id),\n _shipping_address_same_as_billing: true,\n }\n if (email != null) resource.customer_email = email\n await sdk.orders.update(resource, params)\n return await sdk.orders.retrieve(orderId, params)\n}\n\nexport function getExpressShippingMethods(\n order: Order,\n): PaymentRequestShippingOption[] | null {\n const isSingleShipment = order?.shipments?.length === 1\n const shippingMethods = order?.shipments?.map(\n (shipment) => shipment.available_shipping_methods,\n )\n if (isSingleShipment) {\n if (shippingMethods == null) return null\n return shippingMethods.flat().map((method) => {\n const shippingOption: PaymentRequestShippingOption = {\n id: method?.id ?? \"\",\n label: method?.name ?? \"\",\n amount: method?.price_amount_for_shipment_cents ?? 0,\n detail: \"\",\n }\n return shippingOption\n })\n }\n if (shippingMethods == null) return null\n const shippingOptionsAmount: number[] = []\n // biome-ignore lint/complexity/noForEach: Need to refactor\n shippingMethods.forEach((methods) => {\n if (methods != null) {\n const [firstMethod] = methods\n if (firstMethod != null) {\n shippingOptionsAmount.push(\n firstMethod.price_amount_for_shipment_cents ?? 0,\n )\n }\n }\n })\n const shippingOptions: PaymentRequestShippingOption[] = [\n {\n id: \"shipping\",\n label: \"Shipping\",\n amount: shippingOptionsAmount.reduce((a, b) => a + b, 0),\n detail: \"\",\n },\n ]\n return shippingOptions\n}\n\ntype TSetExpressShippingMethodParams = {\n /**\n * The Commerce Layer config\n */\n config: CommerceLayerConfig\n /**\n * The order id\n */\n orderId: string\n /**\n * The query params\n */\n params?: QueryParamsRetrieve\n} & (\n | {\n /**\n * Select the first shipping method\n */\n selectFirst: false\n /**\n * The selected shipping method id\n */\n selectedShippingMethodId?: string\n }\n | {\n selectFirst?: true\n selectedShippingMethodId?: never\n }\n)\n\nexport async function setExpressShippingMethod({\n config,\n orderId,\n selectFirst = true,\n selectedShippingMethodId,\n params,\n}: TSetExpressShippingMethodParams): Promise<Order> {\n const sdk = getSdk(config)\n const order = await sdk.orders.retrieve(orderId, params)\n const shippingMethods = getExpressShippingMethods(order)\n if (order?.shipments == null) throw new Error(\"No shipments found\")\n const isSingleShipment = order.shipments.length === 1\n const [shipmentId] = order.shipments.map((shipment) => shipment.id)\n if (shipmentId == null) throw new Error(\"No shipment found\")\n if (shippingMethods == null || shippingMethods?.length === 0)\n throw new Error(\"No shipping methods found\")\n if (isSingleShipment) {\n if (selectFirst) {\n const [firstShippingMethodId] = shippingMethods.map((method) => method.id)\n if (firstShippingMethodId != null) {\n await sdk.shipments.update({\n id: shipmentId,\n shipping_method: sdk.shipping_methods.relationship(\n firstShippingMethodId,\n ),\n })\n }\n } else {\n if (selectedShippingMethodId != null) {\n await sdk.shipments.update({\n id: shipmentId,\n shipping_method: sdk.shipping_methods.relationship(\n selectedShippingMethodId,\n ),\n })\n }\n }\n } else {\n for (const shipment of order?.shipments ?? []) {\n const [firstShippingMethodId] =\n shipment?.available_shipping_methods?.map((method) => method.id) ?? []\n if (firstShippingMethodId != null) {\n await sdk.shipments.update({\n id: shipment.id,\n shipping_method: sdk.shipping_methods.relationship(\n firstShippingMethodId,\n ),\n })\n }\n }\n }\n return await sdk.orders.retrieve(order.id, params)\n}\n\nexport type TSetExpressPlaceOrderParams = {\n /**\n * The Commerce Layer config\n */\n config: CommerceLayerConfig\n /**\n * The order id\n */\n orderId: string\n} & (\n | {\n /**\n * The payment resource\n */\n paymentResource: PaymentResource\n /**\n * The payment source id\n */\n paymentSourceId: string\n /**\n * Place the order\n */\n placeTheOrder?: false\n }\n | {\n paymentResource?: never\n paymentSourceId?: never\n placeTheOrder?: true\n }\n)\n\nexport async function setExpressPlaceOrder({\n config,\n orderId,\n paymentResource,\n paymentSourceId,\n placeTheOrder = false,\n}: TSetExpressPlaceOrderParams): Promise<Order> {\n const sdk = getSdk(config)\n if (!placeTheOrder && paymentResource != null && paymentSourceId != null) {\n const include = [\n \"shipments.shipping_method\",\n \"payment_source\",\n \"payment_method\",\n ]\n await sdk.orders.retrieve(orderId, {\n include,\n })\n await sdk[paymentResource].update({\n id: paymentSourceId,\n order: sdk.orders.relationship(orderId),\n })\n await sdk.orders.update({\n id: orderId,\n payment_source: sdk[paymentResource].relationship(paymentSourceId),\n })\n await sdk[paymentResource].update({\n id: paymentSourceId,\n _update: true,\n })\n return await sdk.orders.retrieve(orderId, {\n include,\n })\n }\n return await sdk.orders.update({\n id: orderId,\n _place: true,\n })\n}\n\ninterface TExpressRedirectUrlParams {\n /**\n * Order resource\n */\n order: Order\n /**\n * The Commerce Layer config\n */\n config: CommerceLayerConfig\n}\n\nexport async function expressRedirectUrl({\n order,\n config: { accessToken, endpoint },\n}: TExpressRedirectUrlParams): Promise<void> {\n if (accessToken == null) throw new Error(\"No access token found\")\n if (endpoint == null) throw new Error(\"No endpoint found\")\n const { slug, domain } = getDomain(endpoint)\n if (slug == null) throw new Error(\"No slug found\")\n const config = await getOrganizationConfig({\n accessToken,\n endpoint,\n params: {\n accessToken,\n slug,\n orderId: order?.id,\n },\n })\n const href =\n config?.links?.checkout != null\n ? config?.links?.checkout\n : getApplicationLink({\n slug,\n orderId: order?.id,\n accessToken,\n applicationType: \"checkout\",\n domain,\n })\n const isOnTheCheckout = !window.location.pathname.includes(\"/cart\")\n if (isOnTheCheckout) {\n window.location.reload()\n } else {\n window.open(href, \"_top\")\n }\n}\n","import type { PaymentMethod } from '@commercelayer/sdk'\n\nexport function sortPaymentMethods(\n methods: PaymentMethod[],\n labels: PaymentMethod['payment_source_type'][]\n): PaymentMethod[] {\n return methods.sort((a, b) => {\n const indexA = labels.indexOf(a.payment_source_type)\n const indexB = labels.indexOf(b.payment_source_type)\n if (indexA === -1 && indexB === -1) return 0\n if (indexA === -1) return 1\n if (indexB === -1) return -1\n return indexA - indexB\n })\n}\n","import {\n useState,\n useEffect,\n type MouseEvent,\n useContext,\n type JSX\n} from 'react'\nimport PaymentMethodContext from '#context/PaymentMethodContext'\nimport PaymentMethodChildrenContext from '#context/PaymentMethodChildrenContext'\nimport type { LoaderType } from '#typings'\nimport getLoaderComponent from '#utils/getLoaderComponent'\nimport type {\n Order,\n PaymentMethod as PaymentMethodType\n} from '@commercelayer/sdk'\nimport type { PaymentResource } from '#reducers/PaymentMethodReducer'\nimport useCustomContext from '#utils/hooks/useCustomContext'\nimport type { DefaultChildrenType } from '#typings/globals'\nimport OrderContext from '#context/OrderContext'\nimport CustomerContext from '#context/CustomerContext'\nimport {\n getExternalPaymentAttributes,\n getPaypalAttributes\n} from '#utils/getPaymentAttributes'\nimport { isEmpty } from '#utils/isEmpty'\nimport { getAvailableExpressPayments } from '#utils/expressPaymentHelper'\nimport PlaceOrderContext from '#context/PlaceOrderContext'\nimport { sortPaymentMethods } from '#utils/payment-methods/sortPaymentMethods'\n\nexport interface PaymentMethodOnClickParams {\n payment?: PaymentMethodType | Record<string, any>\n order?: Order\n paymentSource?: Order['payment_source']\n}\n\ntype Props = {\n /**\n * Hide payment methods by an array of strings or a function that returns a boolean\n */\n hide?: PaymentResource[] | ((payment: PaymentMethodType) => boolean)\n children: DefaultChildrenType\n /**\n * Set CSS classes when the payment method is selected\n */\n activeClass?: string\n /**\n * Customize the loader component\n */\n loader?: LoaderType\n /**\n * Auto select the payment method when there is only one available\n */\n autoSelectSinglePaymentMethod?: boolean | (() => void)\n /**\n * Enable express payment. Other payment methods will be disabled.\n */\n expressPayments?: boolean\n /**\n * Sort payment methods by an array of strings\n */\n sortBy?: Array<PaymentMethodType['payment_source_type']>\n} & Omit<JSX.IntrinsicElements['div'], 'onClick' | 'children'> &\n (\n | {\n clickableContainer: true\n onClick?: (params: PaymentMethodOnClickParams) => void\n }\n | {\n clickableContainer?: never\n onClick?: never\n }\n )\n\nlet loadingResource = false\n\nexport function PaymentMethod({\n children,\n className,\n activeClass,\n loader = 'Loading...',\n clickableContainer,\n autoSelectSinglePaymentMethod,\n expressPayments,\n hide,\n onClick,\n sortBy,\n ...p\n}: Props): JSX.Element {\n const [loading, setLoading] = useState(true)\n const [paymentSelected, setPaymentSelected] = useState('')\n const [paymentSourceCreated, setPaymentSourceCreated] = useState(false)\n const {\n paymentMethods,\n currentPaymentMethodId,\n setPaymentMethod,\n setLoading: setLoadingPlaceOrder,\n paymentSource,\n setPaymentSource,\n config\n } = useCustomContext({\n context: PaymentMethodContext,\n contextComponentName: 'PaymentMethodsContainer',\n currentComponentName: 'PaymentMethod',\n key: 'paymentMethods'\n })\n const { order } = useContext(OrderContext)\n const { getCustomerPaymentSources } = useContext(CustomerContext)\n const { status } = useContext(PlaceOrderContext)\n useEffect(() => {\n if (paymentMethods != null && !isEmpty(paymentMethods) && expressPayments) {\n const [paymentMethod] = getAvailableExpressPayments(paymentMethods)\n if (!paymentSource && paymentMethod != null) {\n const selectExpressPayment = async (): Promise<void> => {\n setLoadingPlaceOrder({ loading: true })\n setPaymentSelected(paymentMethod.id)\n const paymentMethodId = paymentMethod?.id\n const paymentResource =\n paymentMethod?.payment_source_type as PaymentResource\n await setPaymentMethod({ paymentResource, paymentMethodId })\n const ps = await setPaymentSource({\n paymentResource,\n order\n })\n if (ps && paymentMethod && onClick != null) {\n onClick({ payment: paymentMethod, order, paymentSource: ps })\n setTimeout(() => {\n setLoading(false)\n }, 200)\n }\n setLoadingPlaceOrder({ loading: false })\n }\n selectExpressPayment()\n }\n }\n }, [!isEmpty(paymentMethods), expressPayments])\n useEffect(() => {\n if (\n paymentMethods != null &&\n !paymentSourceCreated &&\n !loadingResource &&\n !isEmpty(paymentMethods)\n ) {\n loadingResource = true\n if (autoSelectSinglePaymentMethod != null && !expressPayments) {\n const autoSelect = async (): Promise<void> => {\n const isSingle = paymentMethods.length === 1\n if (isSingle) {\n const [paymentMethod] = paymentMethods ?? []\n if (paymentMethod && !paymentSource) {\n setLoadingPlaceOrder({ loading: true })\n setPaymentSelected(paymentMethod.id)\n const paymentMethodId = paymentMethod?.id\n const paymentResource =\n paymentMethod?.payment_source_type as PaymentResource\n await setPaymentMethod({ paymentResource, paymentMethodId })\n let attributes: Record<string, unknown> | undefined = {}\n if (config != null && paymentResource === 'paypal_payments') {\n attributes = getPaypalAttributes(paymentResource, config)\n }\n if (config != null && paymentResource === 'external_payments') {\n attributes = getExternalPaymentAttributes(\n paymentResource,\n config\n )\n }\n const ps = await setPaymentSource({\n paymentResource,\n order,\n attributes\n })\n if (ps && paymentMethod && onClick != null) {\n setPaymentSourceCreated(true)\n onClick({ payment: paymentMethod, order, paymentSource: ps })\n setTimeout(() => {\n setLoading(false)\n }, 200)\n }\n if (getCustomerPaymentSources) {\n getCustomerPaymentSources()\n }\n setLoadingPlaceOrder({ loading: false })\n }\n if (typeof autoSelectSinglePaymentMethod === 'function') {\n autoSelectSinglePaymentMethod()\n }\n } else {\n setTimeout(() => {\n setLoading(false)\n }, 200)\n }\n }\n autoSelect()\n }\n }\n }, [!isEmpty(paymentMethods), order?.payment_source != null])\n useEffect(() => {\n if (paymentMethods) {\n const isSingle = paymentMethods.length === 1\n if (isSingle && autoSelectSinglePaymentMethod) {\n if (paymentSource) {\n setTimeout(() => {\n setLoading(false)\n }, 200)\n }\n } else {\n setLoading(false)\n }\n }\n if (currentPaymentMethodId) setPaymentSelected(currentPaymentMethodId)\n return () => {\n setLoading(true)\n setPaymentSelected('')\n }\n }, [paymentMethods, currentPaymentMethodId])\n\n const sortedPaymentMethods =\n paymentMethods != null && sortBy != null\n ? sortPaymentMethods(paymentMethods, sortBy)\n : paymentMethods\n\n const components = sortedPaymentMethods\n ?.filter((payment) => {\n if (Array.isArray(hide)) {\n const source = payment?.payment_source_type as PaymentResource\n return !hide?.includes(source)\n } else if (typeof hide === 'function') {\n return hide(payment)\n }\n return true\n })\n .map((payment, k) => {\n const isActive = currentPaymentMethodId === payment?.id\n const paymentMethodProps = {\n payment,\n clickableContainer,\n paymentSelected,\n setPaymentSelected,\n expressPayments\n }\n const paymentResource = payment?.payment_source_type as PaymentResource\n const onClickable = !clickableContainer\n ? undefined\n : async (e: MouseEvent<HTMLDivElement>) => {\n e.stopPropagation()\n const paymentMethodId = payment?.id\n const currentPaymentMethodId = order?.payment_method?.id\n if (paymentMethodId === currentPaymentMethodId) return\n if (status === 'placing') return\n setLoadingPlaceOrder({ loading: true })\n setPaymentSelected(payment.id)\n const { order: updatedOrder } = await setPaymentMethod({\n paymentResource,\n paymentMethodId\n })\n if (onClick) onClick({ payment, order: updatedOrder })\n setLoadingPlaceOrder({ loading: false })\n }\n return (\n <div\n data-testid={paymentResource}\n key={k}\n className={`${className ?? ''} ${\n isActive && activeClass != null ? activeClass : ''\n }`}\n onClick={(e) => {\n if (onClickable != null) {\n onClickable(e)\n }\n }}\n {...p}\n >\n <PaymentMethodChildrenContext.Provider value={paymentMethodProps}>\n {children}\n </PaymentMethodChildrenContext.Provider>\n </div>\n )\n })\n return !loading ? <>{components}</> : getLoaderComponent(loader)\n}\n\nexport default PaymentMethod\n","import PaymentMethodChildrenContext from '#context/PaymentMethodChildrenContext'\nimport Parent from '#components/utils/Parent'\nimport useCustomContext from '#utils/hooks/useCustomContext'\nimport type { ChildrenFunction } from '#typings/index'\n\nimport type { JSX } from \"react\";\n\ninterface ChildrenProps extends Omit<Props, 'children'> {\n labelName: string\n}\n\ninterface Props extends Omit<JSX.IntrinsicElements['label'], 'children'> {\n children?: ChildrenFunction<ChildrenProps>\n}\n\nexport function PaymentMethodName(props: Props): JSX.Element {\n const { payment } = useCustomContext({\n context: PaymentMethodChildrenContext,\n contextComponentName: 'PaymentMethod',\n currentComponentName: 'PaymentMethodName',\n key: 'payment'\n })\n const labelName = payment?.name\n const htmlFor = payment?.payment_source_type\n const paymentGateway = payment?.payment_gateway\n const parentProps = {\n htmlFor,\n labelName,\n paymentGateway,\n ...props\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <label htmlFor={htmlFor} {...props}>\n {labelName}\n </label>\n )\n}\n\nexport default PaymentMethodName\n","import { useState, useEffect, type JSX } from 'react';\nimport getAmount from '#utils/getAmount'\nimport PaymentMethodChildrenContext from '#context/PaymentMethodChildrenContext'\nimport Parent from '#components/utils/Parent'\nimport type { BaseAmountComponent } from '#typings/index'\nimport useCustomContext from '#utils/hooks/useCustomContext'\n\ninterface Props extends BaseAmountComponent {\n type?: 'amount'\n labelFree?: string\n}\n\nexport function PaymentMethodPrice(props: Props): JSX.Element {\n const {\n format = 'formatted',\n type = 'amount',\n labelFree = 'Free',\n ...p\n } = props\n const { payment } = useCustomContext({\n context: PaymentMethodChildrenContext,\n contextComponentName: 'PaymentMethod',\n currentComponentName: 'PaymentMethodPrice',\n key: 'payment'\n })\n const [price, setPrice] = useState('')\n const [priceCents, setPriceCents] = useState(0)\n useEffect(() => {\n if (payment) {\n const p = getAmount({ base: 'price', type, format, obj: payment })\n setPrice(p)\n const c = getAmount<number>({\n base: 'price',\n type,\n format: 'cents',\n obj: payment\n })\n setPriceCents(c)\n }\n return (): void => {\n setPrice('')\n setPriceCents(0)\n }\n }, [payment])\n const parentProps = {\n labelFree,\n price,\n priceCents,\n ...p\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <span {...p}>{priceCents === 0 ? labelFree : price}</span>\n )\n}\n\nexport default PaymentMethodPrice\n","import { useContext, useEffect, useState, type ChangeEvent, type JSX } from 'react';\nimport PaymentMethodChildrenContext from '#context/PaymentMethodChildrenContext'\nimport Parent from '#components/utils/Parent'\nimport PaymentMethodContext from '#context/PaymentMethodContext'\nimport type { Order, PaymentMethod } from '@commercelayer/sdk'\nimport type { PaymentResource } from '#reducers/PaymentMethodReducer'\nimport OrderContext from '#context/OrderContext'\nimport useCustomContext from '#utils/hooks/useCustomContext'\nimport type { ChildrenFunction } from '#typings/index'\nimport PlaceOrderContext from '#context/PlaceOrderContext'\n\ninterface ChildrenProps extends Omit<Props, 'children'> {\n checked: boolean\n handleOnChange: (event: ChangeEvent<HTMLInputElement>) => Promise<void>\n}\n\ninterface TOnChangeParams {\n payment?: PaymentMethod | Record<string, any>\n order?: Order\n}\n\ntype Props = {\n children?: ChildrenFunction<ChildrenProps>\n onChange?: (params: TOnChangeParams) => void\n} & JSX.IntrinsicElements['input']\n\nexport function PaymentMethodRadioButton(props: Props): JSX.Element {\n const { onChange, ...p } = props\n const { payment, paymentSelected, setPaymentSelected, clickableContainer } =\n useCustomContext({\n context: PaymentMethodChildrenContext,\n contextComponentName: 'PaymentMethod',\n currentComponentName: 'PaymentMethodRadioButton',\n key: 'payment'\n })\n const { order } = useContext(OrderContext)\n const { setPaymentMethod, setLoading } = useContext(PaymentMethodContext)\n const { status } = useContext(PlaceOrderContext)\n const [disabled, setDisabled] = useState(false)\n const orderId = order?.id || ''\n const paymentResource = payment?.payment_source_type as PaymentResource\n const paymentMethodId = payment?.id ?? ''\n const name = `payment-${orderId}`\n const checked = paymentSelected === payment?.id\n useEffect(() => {\n if (status === 'placing') {\n setDisabled(true)\n } else {\n setDisabled(false)\n }\n }, [status])\n\n const handleOnChange = async (\n e: ChangeEvent<HTMLInputElement>\n ): Promise<void> => {\n e.stopPropagation()\n if (checked) return\n if (setPaymentSelected) setPaymentSelected(paymentMethodId)\n setLoading({ loading: true })\n if (!clickableContainer) {\n const { order } = await setPaymentMethod({\n paymentResource,\n paymentMethodId\n })\n if (onChange) onChange({ payment, order })\n }\n setLoading({ loading: false })\n }\n const id = payment?.payment_source_type\n const parentProps = {\n handleOnChange,\n checked,\n id,\n name,\n disabled,\n ...props\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <input\n title={name}\n type='radio'\n id={id}\n onChange={(e) => {\n handleOnChange(e)\n }}\n checked={checked}\n disabled={disabled}\n {...p}\n />\n )\n}\n\nexport default PaymentMethodRadioButton\n","/* eslint-disable @typescript-eslint/no-unsafe-argument */\nimport PaymentMethodContext, {\n defaultPaymentMethodContext\n} from '#context/PaymentMethodContext'\nimport {\n type ReactNode,\n useContext,\n useEffect,\n useReducer,\n useMemo,\n type JSX\n} from 'react'\nimport paymentMethodReducer, {\n paymentMethodInitialState,\n getPaymentMethods,\n type PaymentMethodConfig,\n setPaymentMethodConfig,\n type PaymentRef,\n setPaymentRef\n} from '#reducers/PaymentMethodReducer'\nimport OrderContext from '#context/OrderContext'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport type { BaseError } from '#typings/errors'\nimport useCustomContext from '#utils/hooks/useCustomContext'\nimport { isEmpty } from '#utils/isEmpty'\nimport { setCustomerOrderParam } from '#utils/localStorage'\n\ninterface Props {\n children: ReactNode\n config?: PaymentMethodConfig\n}\nexport function PaymentMethodsContainer(props: Props): JSX.Element {\n const { children, config } = props\n const [state, dispatch] = useReducer(\n paymentMethodReducer,\n paymentMethodInitialState\n )\n const {\n order,\n getOrder,\n setOrderErrors,\n include,\n addResourceToInclude,\n updateOrder,\n includeLoaded\n } = useCustomContext({\n context: OrderContext,\n contextComponentName: 'OrderContainer',\n currentComponentName: 'PaymentMethodsContainer',\n key: 'order'\n })\n const credentials = useContext(CommerceLayerContext)\n async function getPayMethods(): Promise<void> {\n order && (await getPaymentMethods({ order, dispatch }))\n }\n useEffect(() => {\n if (!include?.includes('available_payment_methods')) {\n addResourceToInclude({\n newResource: [\n 'available_payment_methods',\n 'payment_source',\n 'payment_method',\n 'line_items.line_item_options.sku_option',\n 'line_items.item'\n ]\n })\n } else if (!includeLoaded?.available_payment_methods) {\n addResourceToInclude({\n newResourceLoaded: {\n available_payment_methods: true,\n payment_source: true,\n payment_method: true,\n 'line_items.line_item_options.sku_option': true,\n 'line_items.item': true\n }\n })\n }\n if (config && isEmpty(state.config))\n setPaymentMethodConfig(config, dispatch)\n if (credentials && order && !state.paymentMethods) {\n getPayMethods()\n }\n if (order?.payment_source) {\n dispatch({\n type: 'setPaymentSource',\n payload: {\n paymentSource: order?.payment_source\n }\n })\n }\n if (order?.payment_source === null) {\n // Reset save customer payment source to wallet param if the payment source is null\n setCustomerOrderParam('_save_payment_source_to_customer_wallet', 'false')\n dispatch({\n type: 'setPaymentSource',\n payload: {\n paymentSource: undefined\n }\n })\n }\n }, [\n order,\n credentials,\n include?.length,\n Object.keys(includeLoaded ?? []).length\n ])\n const contextValue = useMemo(() => {\n return {\n ...state,\n setLoading: ({ loading }: { loading: boolean }) => {\n defaultPaymentMethodContext.setLoading({ loading, dispatch })\n },\n setPaymentRef: ({ ref }: { ref: PaymentRef }) => {\n setPaymentRef({ ref, dispatch })\n },\n setPaymentMethodErrors: (errors: BaseError[]) => {\n defaultPaymentMethodContext.setPaymentMethodErrors(errors, dispatch)\n },\n setPaymentMethod: async (args: any) =>\n await defaultPaymentMethodContext.setPaymentMethod({\n ...args,\n config: credentials,\n updateOrder,\n order,\n dispatch,\n setOrderErrors\n }),\n setPaymentSource: async (args: any) =>\n await defaultPaymentMethodContext.setPaymentSource({\n ...state,\n ...args,\n config: credentials,\n dispatch,\n getOrder,\n updateOrder,\n order\n }),\n updatePaymentSource: async (args: any) => {\n await defaultPaymentMethodContext.updatePaymentSource({\n ...args,\n config: credentials,\n dispatch\n })\n },\n destroyPaymentSource: async (args: any) => {\n await defaultPaymentMethodContext.destroyPaymentSource({\n ...args,\n dispatch,\n config: credentials,\n updateOrder,\n orderId: order?.id\n })\n }\n }\n }, [state])\n return (\n <PaymentMethodContext.Provider value={contextValue}>\n {children}\n </PaymentMethodContext.Provider>\n )\n}\n\nexport default PaymentMethodsContainer\n","import { createContext } from 'react'\n\nexport type IconBrand =\n | 'visa'\n | 'credit-card'\n | 'amex'\n | 'mastercard'\n | 'jcb'\n | 'wire-transfer'\n | 'maestro'\n | 'cirrus'\n | 'paypal'\n\ninterface DefaultContext {\n brand?: IconBrand | string\n exp_month?: number | string\n exp_year?: number | string\n last4?: string\n issuer_type?: string\n showCard?: boolean\n readonly?: boolean\n handleEditClick?: (e: MouseEvent) => void\n}\n\nexport const defaultPaymentSourceContext = {}\n\nconst PaymentSourceContext = createContext<DefaultContext>(\n defaultPaymentSourceContext\n)\n\nexport default PaymentSourceContext\n","interface TReturn {\n screenWidth: string | number\n screenHeight: string | number\n colorDepth: string | number\n userAgent: string\n timeZoneOffset: number\n language: string\n javaEnabled: boolean\n}\n\nexport default function getBrowserInfo(): TReturn {\n const screenWidth = window?.screen ? window.screen.width : ''\n const screenHeight = window?.screen ? window.screen.height : ''\n const colorDepth = window?.screen ? window.screen.colorDepth : ''\n const userAgent = window?.navigator ? window.navigator.userAgent : ''\n const javaEnabled = window?.navigator ? navigator.javaEnabled() : false\n const acceptHeader =\n 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8'\n\n let language = ''\n if (window?.navigator) language = window.navigator.language\n\n const d = new Date()\n const timeZoneOffset = d.getTimezoneOffset()\n\n const browserInfo = {\n screenWidth,\n screenHeight,\n colorDepth,\n userAgent,\n timeZoneOffset,\n language,\n javaEnabled,\n acceptHeader\n }\n\n return browserInfo\n}\n\nexport function cleanUrlBy(symbol: string = '&'): string {\n const currentLocation = window?.location.href\n const [splitLocation] = currentLocation.split(symbol)\n return splitLocation ?? currentLocation\n}\n","export async function getPublicIP(): Promise<string> {\n try {\n const response = await fetch('https://api.ipify.org?format=json')\n if (!response.ok) {\n throw new Error('Network response was not ok')\n }\n const data = await response.json()\n return data.ip\n } catch (error) {\n console.error('Error fetching public IP address:', error)\n return ''\n }\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-argument */\nimport {\n type FormEvent,\n useContext,\n useEffect,\n useRef,\n useState,\n type JSX,\n} from \"react\"\nimport PaymentMethodContext from \"#context/PaymentMethodContext\"\nimport type { PaymentSourceProps } from \"./PaymentSource\"\nimport { setCustomerOrderParam } from \"#utils/localStorage\"\nimport {\n type AdditionalDetailsData,\n AdyenCheckout,\n type CardConfiguration,\n type CheckoutAdvancedFlowResponse,\n type CoreConfiguration,\n Dropin,\n type DropinConfiguration,\n type OnChangeData,\n type PayPalConfiguration,\n type SubmitData,\n type UIElement,\n type UIElementProps,\n} from \"@adyen/adyen-web/auto\"\nimport Parent from \"#components/utils/Parent\"\nimport browserInfo, { cleanUrlBy } from \"#utils/browserInfo\"\nimport PlaceOrderContext from \"#context/PlaceOrderContext\"\nimport OrderContext from \"#context/OrderContext\"\nimport { getPublicIP } from \"#utils/getPublicIp\"\nimport CustomerContext from \"#context/CustomerContext\"\n\ninterface PaymentMethodsStyle {\n card?: CardConfiguration[\"styles\"]\n paypal?: PayPalConfiguration[\"style\"]\n}\n\n/**\n * Configuration options for the Adyen payment component.\n */\nexport interface AdyenPaymentConfig {\n /**\n * Optional CSS class name for the card container.\n */\n cardContainerClassName?: string\n\n /**\n * Optional CSS class name for the 3D Secure container.\n * @deprecated\n */\n threeDSecureContainerClassName?: string\n\n /**\n * Callback function to be called when an order is placed.\n * @param response - An object containing the placement status.\n */\n placeOrderCallback?: (response: { placed: boolean }) => void\n\n /**\n * Optional styles for the payment methods.\n */\n styles?: PaymentMethodsStyle\n\n /**\n * Configuration options for the payment methods.\n */\n paymentMethodsConfiguration?: DropinConfiguration[\"paymentMethodsConfiguration\"]\n\n /**\n * Callback function to disable a stored payment method.\n * @param props - An object containing the recurring detail reference and shopper reference.\n * @returns A promise that resolves to a boolean indicating whether the stored payment method was disabled.\n */\n onDisableStoredPaymentMethod?: (props: {\n recurringDetailReference: string\n shopperReference: string | undefined\n }) => Promise<boolean>\n}\n\ninterface Props {\n clientKey?: string\n config?: AdyenPaymentConfig\n templateCustomerSaveToWallet?: PaymentSourceProps[\"templateCustomerSaveToWallet\"]\n locale?: CoreConfiguration[\"locale\"]\n environment?: CoreConfiguration[\"environment\"]\n}\n\nconst defaultConfig: AdyenPaymentConfig = {}\n\nexport function AdyenPayment({\n clientKey,\n config,\n templateCustomerSaveToWallet,\n environment = \"test\",\n locale = \"en_US\",\n}: Props): JSX.Element | null {\n const { cardContainerClassName, styles, onDisableStoredPaymentMethod } = {\n ...defaultConfig,\n ...config,\n }\n const [loadAdyen, setLoadAdyen] = useState(false)\n const [checkout, setCheckout] = useState<\n UIElement<UIElementProps> | undefined\n >()\n const {\n setPaymentSource,\n paymentSource,\n setPaymentMethodErrors,\n currentPaymentMethodType,\n setPaymentRef,\n currentCustomerPaymentSourceId,\n } = useContext(PaymentMethodContext)\n const { order, updateOrder } = useContext(OrderContext)\n const { placeOrderButtonRef, setPlaceOrder } = useContext(PlaceOrderContext)\n const { customers } = useContext(CustomerContext)\n const ref = useRef<null | HTMLFormElement>(null)\n const dropinRef = useRef<Dropin | null>(null)\n const handleSubmit = async (\n e: FormEvent<HTMLFormElement>,\n ): Promise<boolean> => {\n const savePaymentSourceToCustomerWallet: string =\n // @ts-expect-error no type\n e?.elements?.save_payment_source_to_customer_wallet?.checked\n if (savePaymentSourceToCustomerWallet)\n setCustomerOrderParam(\n \"_save_payment_source_to_customer_wallet\",\n savePaymentSourceToCustomerWallet,\n )\n if (dropinRef.current) {\n dropinRef.current.submit()\n }\n return false\n }\n const handleChange = async (state: OnChangeData): Promise<void> => {\n if (state.isValid) {\n if (ref.current) {\n ref.current.onsubmit = async () => {\n return await handleSubmit(\n ref.current as unknown as FormEvent<HTMLFormElement>,\n )\n }\n setPaymentRef({ ref })\n }\n }\n }\n const handleOnAdditionalDetails = async (\n state: AdditionalDetailsData,\n component?: UIElement<UIElementProps>,\n ): Promise<CheckoutAdvancedFlowResponse> => {\n const attributes = {\n payment_request_details: state.data,\n _details: 1,\n }\n try {\n const pSource =\n paymentSource &&\n (await setPaymentSource({\n paymentSourceId: paymentSource.id,\n paymentResource: \"adyen_payments\",\n attributes,\n }))\n // @ts-expect-error no type\n const resultCode = pSource?.payment_response?.resultCode\n if ([\"Authorised\", \"Pending\", \"Received\"].includes(resultCode)) {\n if (placeOrderButtonRef?.current != null) {\n if (placeOrderButtonRef.current.disabled) {\n placeOrderButtonRef.current.disabled = false\n }\n placeOrderButtonRef.current.click()\n }\n return {\n resultCode,\n }\n }\n if ([\"Cancelled\", \"Refused\"].includes(resultCode)) {\n // @ts-expect-error no type\n const message = pSource?.payment_response?.refusalReason\n setPaymentMethodErrors([\n {\n code: \"PAYMENT_INTENT_AUTHENTICATION_FAILURE\",\n resource: \"payment_methods\",\n field: currentPaymentMethodType,\n message,\n },\n ])\n if (component) {\n component.mount(\"#adyen-dropin\")\n }\n }\n return {\n resultCode,\n }\n } catch (error: unknown) {\n console.error(\"Adyen additional details error:\", error)\n return {\n resultCode: \"Error\",\n }\n }\n }\n const onSubmit = async (\n state: SubmitData,\n component: UIElement<UIElementProps>,\n ): Promise<CheckoutAdvancedFlowResponse & { paymentMethodType?: string }> => {\n const url = cleanUrlBy()\n const { type: currentPaymentMethodType } = state.data.paymentMethod\n const shopperIp = await getPublicIP()\n const control = await setPaymentSource({\n paymentSourceId: paymentSource?.id,\n paymentResource: \"adyen_payments\",\n })\n console.log(\"Control\", control)\n // @ts-expect-error no type\n const controlCode = control?.payment_response?.resultCode\n const paymentMethodType =\n // @ts-expect-error no type\n control?.payment_response?.paymentMethod?.type ??\n // @ts-expect-error no type\n control?.payment_request_data?.payment_method?.type\n if (controlCode === \"Authorised\" && paymentMethodType !== \"giftcard\") {\n return {\n resultCode: controlCode,\n }\n }\n // biome-ignore lint/suspicious/noExplicitAny: No types\n const attributes: any = {\n payment_request_data: {\n ...state.data,\n payment_method: state.data.paymentMethod,\n return_url: url,\n origin: window.location.origin,\n redirect_from_issuer_method: \"GET\",\n shopper_ip: shopperIp,\n shopperInteraction: \"Ecommerce\",\n recurringProcessingModel: \"CardOnFile\",\n browser_info: {\n ...browserInfo(),\n },\n },\n }\n // biome-ignore lint/performance/noDelete: Need to test\n delete attributes.payment_request_data.paymentMethod\n try {\n await setPaymentSource({\n paymentSourceId: paymentSource?.id,\n paymentResource: \"adyen_payments\",\n attributes,\n })\n if (order?.id == null) {\n console.error(\"Order id is missing\")\n return {\n resultCode: \"Error\",\n }\n }\n console.log(\"Control code\", controlCode)\n console.log(\"Payment method type\", paymentMethodType)\n // Authorize remaining amount with other payment method after gift card\n if (\n [\"Cancelled\", \"Refused\"].includes(controlCode) &&\n paymentMethodType === \"giftcard\" &&\n currentPaymentMethodType !== \"giftcard\"\n ) {\n const availableGiftCardAmount = Number.parseInt(\n // @ts-expect-error no type\n control?.payment_response?.additionalData\n ?.currentBalanceValue as string,\n )\n const totalPartialAmount =\n order?.total_amount_with_taxes_cents != null &&\n availableGiftCardAmount != null\n ? order?.total_amount_with_taxes_cents - availableGiftCardAmount\n : 0\n console.log(\"totalPartialAmount\", totalPartialAmount)\n await updateOrder({\n id: order.id,\n attributes: {\n _authorization_amount_cents: totalPartialAmount,\n _place: true,\n },\n })\n console.log(\"Authorize first credit card amount\")\n await setPaymentSource({\n paymentSourceId: paymentSource?.id,\n paymentResource: \"adyen_payments\",\n attributes: {\n // @ts-expect-error no type\n payment_request_data: control?.payment_request_data,\n },\n })\n await updateOrder({\n id: order.id,\n attributes: {\n _authorize: true,\n },\n })\n // Add gift card amount as payment method attribute\n return {\n resultCode: \"Authorised\",\n paymentMethodType: currentPaymentMethodType,\n }\n }\n // First gift card authorization for partial or total amount\n if (currentPaymentMethodType === \"giftcard\") {\n const firstAuthorization = await setPaymentSource({\n paymentSourceId: paymentSource?.id,\n paymentResource: \"adyen_payments\",\n attributes: {\n _authorize: 1,\n },\n })\n console.log(\"First gift card authorization\", firstAuthorization)\n // if (\n // [\"Cancelled\", \"Refused\"].includes(\n // // @ts-expect-error no type\n // firstAuthorization?.payment_response?.resultCode,\n // )\n // ) {\n // const availableGiftCardAmount =\n // // @ts-expect-error no type\n // firstAuthorization?.payment_response?.additionalData\n // ?.currentBalanceValue as string\n // setCurrentGiftCard({\n // availableGiftCardAmount: Number.parseInt(availableGiftCardAmount),\n // paymentMethodAttributes: attributes,\n // })\n // console.log(\"Save gift card amount\", availableGiftCardAmount)\n // // await updateOrder({\n // // id: order.id,\n // // attributes: {\n // // _authorization_amount_cents: Number.parseInt(\n // // availableGiftCardAmount,\n // // ),\n // // _place: true,\n // // },\n // // })\n // return {\n // resultCode: \"Authorised\",\n // paymentMethodType: currentPaymentMethodType,\n // }\n // }\n return {\n resultCode: \"Authorised\",\n paymentMethodType: currentPaymentMethodType,\n }\n }\n const res = await setPaymentSource({\n paymentSourceId: paymentSource?.id,\n paymentResource: \"adyen_payments\",\n attributes: {\n _authorize: 1,\n },\n })\n // @ts-expect-error no type\n const action = res?.payment_response?.action\n // @ts-expect-error no type\n const resultCode = res?.payment_response?.resultCode\n if (action != null) {\n return {\n resultCode,\n action,\n }\n }\n\n // @ts-expect-error no type\n const issuerType = res?.payment_instrument?.issuer_type\n if ([\"Authorised\", \"Pending\", \"Received\"].includes(resultCode)) {\n if (\n [\"apple pay\", \"google pay\"].includes(issuerType) &&\n setPlaceOrder != null\n ) {\n await setPlaceOrder({\n paymentSource: res,\n currentCustomerPaymentSourceId,\n })\n return {\n resultCode,\n }\n }\n if (placeOrderButtonRef?.current != null) {\n if (placeOrderButtonRef.current.disabled) {\n placeOrderButtonRef.current.disabled = false\n }\n placeOrderButtonRef.current.click()\n }\n return {\n resultCode,\n }\n }\n if ([\"Cancelled\", \"Refused\"].includes(resultCode)) {\n // @ts-expect-error no type\n const message = res?.payment_response?.refusalReason\n setPaymentMethodErrors([\n {\n code: \"PAYMENT_INTENT_AUTHENTICATION_FAILURE\",\n resource: \"payment_methods\",\n field: currentPaymentMethodType,\n message,\n },\n ])\n if (component) {\n component.mount(\"#adyen-dropin\")\n }\n }\n // @ts-expect-error no type\n const errorType = res?.payment_response?.errorType\n if (errorType) {\n // @ts-expect-error no type\n const errorCode = res?.payment_response?.errorCode\n if (errorCode === \"14_006\") {\n onSubmit(state, component)\n } else {\n // @ts-expect-error no type\n const message = res?.payment_response?.message\n setPaymentMethodErrors([\n {\n code: \"PAYMENT_INTENT_AUTHENTICATION_FAILURE\",\n resource: \"payment_methods\",\n field: currentPaymentMethodType,\n message,\n },\n ])\n }\n }\n return {\n resultCode,\n paymentMethodType: currentPaymentMethodType,\n }\n } catch (error: unknown) {\n const { message } = error as Record<string, string>\n setPaymentMethodErrors([\n {\n code: \"PAYMENT_INTENT_AUTHENTICATION_FAILURE\",\n resource: \"payment_methods\",\n field: currentPaymentMethodType,\n message: message ?? \"An error occurred\",\n },\n ])\n return {\n resultCode: \"Error\",\n }\n }\n }\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: <explanation>\n useEffect(() => {\n const paymentMethodsResponse = {\n // @ts-expect-error no type\n paymentMethods: paymentSource?.payment_methods?.paymentMethods\n ? // @ts-expect-error no type\n paymentSource?.payment_methods.paymentMethods\n : [],\n // @ts-expect-error no type\n storedPaymentMethods: paymentSource?.payment_methods?.storedPaymentMethods\n ? // @ts-expect-error no type\n paymentSource?.payment_methods.storedPaymentMethods\n : [],\n }\n if (paymentMethodsResponse.paymentMethods.length === 0) {\n console.error(\n \"Payment methods are not available. Please, check your Adyen configuration.\",\n )\n }\n const showStoredPaymentMethods =\n // @ts-expect-error no type\n paymentSource?.payment_methods?.storedPaymentMethods != null ?? false\n\n const options = {\n locale: order?.language_code ?? locale,\n environment,\n clientKey,\n amount: {\n currency: order?.currency_code || \"\",\n value: order?.total_amount_with_taxes_cents || 0,\n },\n countryCode: order?.country_code || \"\",\n paymentMethodsResponse,\n showPayButton: false,\n onAdditionalDetails: (state, element, actions) => {\n const onAdditionalDetails = async (): Promise<void> => {\n const { resultCode } = await handleOnAdditionalDetails(state, element)\n if ([\"Cancelled\", \"Refused\"].includes(resultCode)) {\n actions.reject()\n } else {\n actions.resolve({\n resultCode,\n })\n }\n }\n onAdditionalDetails()\n },\n onChange: (state) => {\n handleChange(state)\n },\n onSubmit: (state, element, actions) => {\n const handleSubmit = async (): Promise<void> => {\n const { resultCode, action } = await onSubmit(state, element)\n if ([\"Cancelled\", \"Refused\"].includes(resultCode)) {\n actions.reject()\n } else if (action != null) {\n dropinRef.current?.handleAction(action)\n } else {\n actions.resolve({\n resultCode,\n })\n dropinRef.current?.mount(\"#adyen-dropin\")\n }\n }\n handleSubmit()\n },\n } satisfies CoreConfiguration\n if (!ref && clientKey)\n setCustomerOrderParam(\"_save_payment_source_to_customer_wallet\", \"false\")\n if (clientKey && !loadAdyen && window && !checkout) {\n const initializeAdyen = async (): Promise<void> => {\n const checkout = await AdyenCheckout(options)\n const dropin = new Dropin(checkout, {\n disableFinalAnimation: true,\n showRemovePaymentMethodButton: showStoredPaymentMethods,\n instantPaymentTypes: [\"applepay\", \"googlepay\"],\n paymentMethodsConfiguration: {\n showStoredPaymentMethods,\n paypal: {\n showPayButton: true,\n style: styles?.paypal,\n ...config?.paymentMethodsConfiguration?.paypal,\n },\n card: {\n enableStoreDetails: showStoredPaymentMethods,\n styles: styles?.card,\n holderNameRequired: false,\n ...config?.paymentMethodsConfiguration?.card,\n },\n giftcard: {\n showPayButton: true,\n ...config?.paymentMethodsConfiguration?.giftcard,\n },\n ...config?.paymentMethodsConfiguration,\n },\n onDisableStoredPaymentMethod: (state) => {\n const recurringDetailReference = state\n const shopperReference = customers?.shopper_reference ?? undefined\n if (onDisableStoredPaymentMethod != null) {\n onDisableStoredPaymentMethod({\n recurringDetailReference,\n shopperReference,\n })\n .then((response) => {\n if (response) {\n setPaymentSource({\n paymentResource: \"adyen_payments\",\n order,\n attributes: {},\n })\n } else {\n console.error(\"onDisableStoredPaymentMethod error\")\n }\n })\n .catch((error) => {\n console.error(\"onDisableStoredPaymentMethod error\", error)\n })\n }\n },\n onSelect: (component) => {\n const id: string = component._id\n if (id.search(\"scheme\") === -1) {\n if (ref.current) {\n if (id.search(\"paypal\") === -1) {\n ref.current.onsubmit = async () => {\n return await handleSubmit(\n ref.current as unknown as FormEvent<HTMLFormElement>,\n )\n }\n } else {\n ref.current.onsubmit = null\n }\n setPaymentRef({ ref })\n }\n }\n },\n }).mount(\"#adyen-dropin\")\n if (dropin && checkout) {\n dropinRef.current = dropin\n setCheckout(dropin)\n setLoadAdyen(true)\n }\n }\n if (!dropinRef.current) {\n initializeAdyen()\n }\n }\n return () => {\n setPaymentRef({ ref: { current: null } })\n setLoadAdyen(false)\n }\n }, [clientKey, ref != null])\n return !clientKey && !loadAdyen && !checkout ? null : (\n <form\n ref={ref}\n onSubmit={(e) => {\n handleSubmit(e)\n }}\n >\n <div className={cardContainerClassName} id=\"adyen-dropin\" />\n {templateCustomerSaveToWallet && (\n <Parent {...{ name: \"save_payment_source_to_customer_wallet\" }}>\n {templateCustomerSaveToWallet}\n </Parent>\n )}\n </form>\n )\n}\n\nexport default AdyenPayment\n","import Parent from '#components/utils/Parent'\nimport { useContext, type JSX } from 'react';\nimport PaymentMethodContext from '#context/PaymentMethodContext'\nimport type { PaymentResource } from '#reducers/PaymentMethodReducer'\nimport PaymentSourceContext, {\n type IconBrand\n} from '#context/PaymentSourceContext'\nimport type { ChildrenFunction } from '#typings'\nimport getCardDetails from '#utils/getCardDetails'\nimport type { CustomerPaymentSource } from '@commercelayer/sdk'\n\ninterface ChildrenProps extends Pick<Props, 'customerPayments'> {\n PaymentSourceProvider: typeof PaymentSourceContext.Provider\n}\n\ninterface CustomerPayment extends CustomerPaymentSource {\n /**\n * Card details\n */\n card?: {\n /**\n * Card brand\n */\n brand: IconBrand\n /**\n * Card last 4 digits\n */\n last4: string\n }\n /**\n * Handle click event\n */\n handleClick?: () => void\n}\n\nexport type CustomerCardsTemplateChildren = ChildrenFunction<ChildrenProps>\n\ninterface Props {\n /**\n * Customer payments\n */\n customerPayments: CustomerPayment[]\n children: CustomerCardsTemplateChildren\n /**\n * Payment resource\n */\n paymentResource: PaymentResource\n}\n\nexport default function PaymentCardsTemplate({\n customerPayments,\n children,\n paymentResource\n}: Props): JSX.Element {\n const { setPaymentSource } = useContext(PaymentMethodContext)\n const payments = customerPayments.map((customerPayment) => {\n const attributes = customerPayment\n const card = getCardDetails({\n customerPayment,\n paymentType: paymentResource\n })\n if (card.brand === '') {\n card.brand =\n // @ts-expect-error missing type\n customerPayment.payment_source?.payment_instrument?.issuer_type ??\n 'credit-card'\n }\n const handleClick = async (e: MouseEvent): Promise<void> => {\n e.stopPropagation()\n await setPaymentSource({\n paymentResource,\n customerPaymentSourceId: customerPayment.id\n })\n }\n return { ...attributes, card, handleClick }\n })\n const value = {\n customerPayments: payments,\n PaymentSourceProvider: PaymentSourceContext.Provider\n }\n return <Parent {...value}>{children}</Parent>\n}\n","import type { GatewayBaseType } from \"#components/payment_gateways/PaymentGateway\"\nimport CommerceLayerContext from \"#context/CommerceLayerContext\"\nimport CustomerContext from \"#context/CustomerContext\"\nimport OrderContext from \"#context/OrderContext\"\nimport PaymentMethodChildrenContext from \"#context/PaymentMethodChildrenContext\"\nimport PaymentMethodContext from \"#context/PaymentMethodContext\"\nimport PaymentSourceContext from \"#context/PaymentSourceContext\"\nimport type { PaymentResource } from \"#reducers/PaymentMethodReducer\"\nimport type { StripeElementLocale } from \"@stripe/stripe-js\"\nimport isEmpty from \"lodash-es/isEmpty\"\nimport { useContext, type JSX } from \"react\"\nimport AdyenPayment from \"#components/payment_source/AdyenPayment\"\nimport PaymentCardsTemplate from \"../utils/PaymentCardsTemplate\"\nimport { jwt } from \"#utils/jwt\"\nimport getCardDetails from \"#utils/getCardDetails\"\nimport { getPaymentAttributes } from \"#utils/getPaymentAttributes\"\n\ntype Props = GatewayBaseType\n\nexport function AdyenGateway(props: Props): JSX.Element | null {\n const {\n readonly,\n showCard,\n handleEditClick,\n children,\n templateCustomerCards,\n loading,\n loaderComponent,\n templateCustomerSaveToWallet,\n ...p\n } = props\n const { order } = useContext(OrderContext)\n const { accessToken } = useContext(CommerceLayerContext)\n const { payment } = useContext(PaymentMethodChildrenContext)\n const { payments, isGuest } = useContext(CustomerContext)\n const { currentPaymentMethodId, config, paymentSource } =\n useContext(PaymentMethodContext)\n const paymentResource: PaymentResource = \"adyen_payments\"\n const locale = order?.language_code as StripeElementLocale\n if (!readonly && payment?.id !== currentPaymentMethodId) return null\n // @ts-expect-error no type\n const clientKey = paymentSource?.public_key\n const environment = accessToken && jwt(accessToken).test ? \"test\" : \"live\"\n const adyenConfig = getPaymentAttributes({\n resource: paymentResource,\n config: config ?? {},\n keys: [\"adyen_payments\"],\n })\n const paymentConfig = adyenConfig?.adyenPayment\n const customerPayments =\n !isEmpty(payments) && payments\n ? payments.filter((customerPayment) => {\n return (\n customerPayment.payment_source?.type === \"adyen_payments\" ||\n customerPayment.payment_method != null\n )\n })\n : []\n if (readonly || showCard) {\n const card = getCardDetails({\n customerPayment: {\n payment_source: paymentSource,\n },\n paymentType: paymentResource,\n })\n const value = { ...card, showCard, handleEditClick, readonly }\n return isEmpty(card) ? null : (\n <PaymentSourceContext.Provider value={value}>\n {children}\n </PaymentSourceContext.Provider>\n )\n }\n const hasStoredPaymentMethods =\n // @ts-expect-error missing type\n paymentSource?.payment_methods?.storedPaymentMethods != null &&\n // @ts-expect-error missing type\n paymentSource?.payment_methods?.storedPaymentMethods.length > 0\n if (!isGuest && templateCustomerCards) {\n return (\n <>\n {hasStoredPaymentMethods || isEmpty(customerPayments) ? null : (\n <div className={p.className}>\n <PaymentCardsTemplate {...{ paymentResource, customerPayments }}>\n {templateCustomerCards}\n </PaymentCardsTemplate>\n </div>\n )}\n <AdyenPayment\n templateCustomerSaveToWallet={templateCustomerSaveToWallet}\n clientKey={clientKey}\n locale={locale}\n environment={environment}\n config={paymentConfig}\n />\n </>\n )\n }\n return (\n <AdyenPayment\n clientKey={clientKey}\n locale={locale}\n config={paymentConfig}\n environment={environment}\n />\n )\n}\n\nexport default AdyenGateway\n","import CommerceLayerContext from \"#context/CommerceLayerContext\"\nimport OrderContext from \"#context/OrderContext\"\nimport PaymentMethodContext from \"#context/PaymentMethodContext\"\nimport type { PaymentResource } from \"#reducers/PaymentMethodReducer\"\nimport {\n type TSetExpressPlaceOrderParams,\n getAvailableExpressPayments,\n getExpressShippingMethods,\n setExpressFakeAddress,\n setExpressPlaceOrder,\n setExpressShippingMethod,\n expressRedirectUrl,\n} from \"#utils/expressPaymentHelper\"\nimport { isEmpty } from \"#utils/isEmpty\"\nimport { PaymentRequestButtonElement, useStripe } from \"@stripe/react-stripe-js\"\nimport type { PaymentRequest } from \"@stripe/stripe-js\"\nimport { useContext, useEffect, useState, type JSX } from \"react\"\n\ninterface Props {\n clientSecret: string\n}\n\nexport function StripeExpressPayment({\n clientSecret,\n}: Props): JSX.Element | null {\n const stripe = useStripe()\n const [paymentRequest, setPaymentRequest] = useState<null | PaymentRequest>(\n null,\n )\n const { accessToken, endpoint } = useContext(CommerceLayerContext)\n const { order } = useContext(OrderContext)\n const { paymentMethods, paymentSource } = useContext(PaymentMethodContext)\n\n useEffect(() => {\n if (stripe == null || order == null) {\n return\n }\n const pr = stripe.paymentRequest({\n country: order?.country_code ?? \"US\",\n currency: order?.currency_code?.toLowerCase() ?? \"\",\n total: {\n label: `#${order?.number ?? \"\"}`,\n amount: order?.total_amount_with_taxes_cents ?? 0,\n },\n requestPayerName: true,\n requestPayerEmail: true,\n requestPayerPhone: true,\n requestShipping: true,\n })\n pr.canMakePayment()\n .then((result) => {\n if (result) {\n setPaymentRequest(pr)\n }\n })\n .catch((err) => {\n console.error(\"Can make payment:\", err)\n })\n }, [isEmpty(stripe), isEmpty(order)])\n\n if (paymentRequest != null && stripe != null) {\n paymentRequest.on(\"shippingaddresschange\", async (ev) => {\n if (order != null && accessToken != null && endpoint != null) {\n const requiresBillingInfo = order?.requires_billing_info ?? false\n const orderWithShipments = await setExpressFakeAddress({\n orderId: order.id,\n config: {\n accessToken,\n endpoint,\n },\n address: {\n first_name: \"Fake name\",\n last_name: \"Fake lastname\",\n country_code: ev.shippingAddress.country ?? \"\",\n line_1: \"Fake street 123\",\n city: ev.shippingAddress.city ?? \"Fake city\",\n zip_code: ev.shippingAddress.postalCode ?? \"12345\",\n state_code: ev.shippingAddress.region ?? \"Fake state\",\n phone: \"1234567890\",\n billing_info: requiresBillingInfo ? \"Fake billing info\" : undefined,\n },\n })\n const shippingOptions = getExpressShippingMethods(orderWithShipments)\n if (shippingOptions != null && !isEmpty(shippingOptions)) {\n ev.updateWith({\n status: \"success\",\n shippingOptions,\n total: {\n label: `#${orderWithShipments?.number ?? \"\"}`,\n amount: orderWithShipments?.total_amount_with_taxes_cents ?? 0,\n },\n })\n } else {\n ev.updateWith({\n status: \"invalid_shipping_address\",\n })\n }\n } else {\n ev.updateWith({\n status: \"fail\",\n })\n }\n })\n paymentRequest.on(\"shippingoptionchange\", async (ev) => {\n if (order != null && accessToken != null && endpoint != null) {\n const updatedOrder = await setExpressShippingMethod({\n orderId: order.id,\n config: {\n accessToken,\n endpoint,\n },\n selectFirst: false,\n selectedShippingMethodId: ev.shippingOption.id,\n params: {\n include: [\"shipments.available_shipping_methods\"],\n },\n })\n ev.updateWith({\n status: \"success\",\n total: {\n label: `#${updatedOrder?.number ?? \"\"}`,\n amount: updatedOrder?.total_amount_with_taxes_cents ?? 0,\n },\n })\n } else {\n ev.updateWith({\n status: \"fail\",\n })\n }\n })\n paymentRequest.on(\"paymentmethod\", async (ev) => {\n if (order?.id == null) throw new Error(\"Order is null\")\n if (paymentMethods == null) throw new Error(\"Payment methods are null\")\n const [paymentMethod] = getAvailableExpressPayments(paymentMethods)\n if (paymentMethod == null) throw new Error(\"Payment method is null\")\n if (paymentSource == null) throw new Error(\"Payment source is null\")\n const requiresBillingInfo = order?.requires_billing_info ?? false\n const paymentResource =\n paymentMethod?.payment_source_type as PaymentResource\n if (accessToken != null && endpoint != null) {\n const [firstName, lastName] = ev.payerName?.split(\" \") ?? []\n const [line] = ev.shippingAddress?.addressLine ?? \"\"\n const email = ev.payerEmail ?? \"\"\n await setExpressFakeAddress({\n orderId: order.id,\n config: {\n accessToken,\n endpoint,\n },\n address: {\n first_name: firstName ?? \"Fake name\",\n last_name: lastName ?? \"Fake lastname\",\n country_code: ev?.shippingAddress?.country ?? \"\",\n line_1: line ?? \"Fake street 123\",\n city: ev?.shippingAddress?.city ?? \"Fake city\",\n zip_code: ev?.shippingAddress?.postalCode ?? \"12345\",\n state_code: ev?.shippingAddress?.region ?? \"Fake state\",\n phone: ev?.payerPhone ?? \"1234567890\",\n billing_info: requiresBillingInfo ? \"Fake billing info\" : undefined,\n },\n email,\n })\n await setExpressShippingMethod({\n orderId: order.id,\n config: {\n accessToken,\n endpoint,\n },\n selectFirst: false,\n selectedShippingMethodId: ev?.shippingOption?.id,\n params: {\n include: [\"shipments.available_shipping_methods\"],\n },\n })\n const placeOrderParams: TSetExpressPlaceOrderParams = {\n config: {\n accessToken,\n endpoint,\n },\n orderId: order?.id,\n paymentResource,\n paymentSourceId: paymentSource?.id,\n }\n await setExpressPlaceOrder(placeOrderParams)\n // Confirm the PaymentIntent without handling potential next actions (yet).\n const { paymentIntent, error: confirmError } =\n await stripe.confirmCardPayment(\n clientSecret,\n { payment_method: ev.paymentMethod.id },\n { handleActions: false },\n )\n if (confirmError) {\n // Report to the browser that the payment failed, prompting it to\n // re-show the payment interface, or show an error message and close\n // the payment interface.\n ev.complete(\"fail\")\n console.error(\"Confirm card payment:\", confirmError)\n } else {\n // Report to the browser that the confirmation was successful, prompting\n // it to close the browser payment method collection interface.\n ev.complete(\"success\")\n // Check if the PaymentIntent requires any actions and if so let Stripe.js\n // handle the flow. If using an API version older than \"2019-02-11\"\n // instead check for: `paymentIntent.status === \"requires_source_action\"`.\n if (paymentIntent.status === \"requires_action\") {\n // Let Stripe.js handle the rest of the payment flow.\n const { error } = await stripe.confirmCardPayment(clientSecret)\n if (error) {\n // The payment failed -- ask your customer for a new payment method.\n console.error(\"Confirm card payment:\", error)\n } else {\n // The payment has succeeded.\n const placeOrderParams: TSetExpressPlaceOrderParams = {\n config: {\n accessToken,\n endpoint,\n },\n orderId: order?.id,\n placeTheOrder: true,\n }\n try {\n const order = await setExpressPlaceOrder(placeOrderParams)\n ev.complete(\"success\")\n await expressRedirectUrl({\n order,\n config: {\n accessToken,\n endpoint,\n },\n })\n } catch (err) {\n console.error(\"Place order:\", err)\n ev.complete(\"fail\")\n }\n }\n } else {\n // The payment has succeeded.\n const placeOrderParams: TSetExpressPlaceOrderParams = {\n config: {\n accessToken,\n endpoint,\n },\n orderId: order?.id,\n placeTheOrder: true,\n }\n try {\n const order = await setExpressPlaceOrder(placeOrderParams)\n ev.complete(\"success\")\n await expressRedirectUrl({\n order,\n config: {\n accessToken,\n endpoint,\n },\n })\n } catch (err) {\n console.error(\"Place order:\", err)\n ev.complete(\"fail\")\n }\n }\n }\n }\n })\n return (\n <>\n <PaymentRequestButtonElement\n className=\"\"\n options={{ paymentRequest }}\n />\n </>\n )\n }\n\n return null\n}\n","import { useContext, useEffect, useRef, useState, type JSX } from 'react';\nimport PaymentMethodContext from '#context/PaymentMethodContext'\nimport {\n Elements,\n PaymentElement,\n useElements,\n useStripe\n} from '@stripe/react-stripe-js'\nimport type {\n Stripe,\n StripeElementLocale,\n StripeElements,\n StripeElementsOptions,\n StripePaymentElementOptions\n} from '@stripe/stripe-js'\nimport type { PaymentMethodConfig } from '#reducers/PaymentMethodReducer'\nimport type { PaymentSourceProps } from './PaymentSource'\nimport Parent from '#components/utils/Parent'\nimport { setCustomerOrderParam } from '#utils/localStorage'\nimport OrderContext from '#context/OrderContext'\nimport { StripeExpressPayment } from './StripeExpressPayment'\n\nexport interface StripeConfig {\n containerClassName?: string\n hintLabel?: string\n name?: string\n options?: StripePaymentElementOptions\n appearance?: StripeElementsOptions['appearance']\n [key: string]: any\n}\n\ninterface StripePaymentFormProps {\n options?: StripePaymentElementOptions\n templateCustomerSaveToWallet?: PaymentSourceProps['templateCustomerSaveToWallet']\n}\n\ntype SubmitEvent = React.FormEvent<HTMLFormElement>\n\ninterface OnSubmitArgs {\n event: SubmitEvent\n stripe: Stripe | null\n elements: StripeElements | null\n}\n\nconst defaultOptions: StripePaymentElementOptions = {\n layout: {\n type: 'accordion',\n defaultCollapsed: false,\n radios: true,\n spacedAccordionItems: false\n },\n fields: { billingDetails: 'never' }\n}\n\nconst defaultAppearance: StripeElementsOptions['appearance'] = {\n theme: 'stripe',\n variables: {\n colorText: '#32325d',\n fontFamily: '\"Helvetica Neue\", Helvetica, sans-serif'\n }\n}\n\nfunction StripePaymentForm({\n options = defaultOptions,\n templateCustomerSaveToWallet\n}: StripePaymentFormProps): JSX.Element {\n const ref = useRef<null | HTMLFormElement>(null)\n const { currentPaymentMethodType, setPaymentMethodErrors, setPaymentRef } =\n useContext(PaymentMethodContext)\n const { order } = useContext(OrderContext)\n const stripe = useStripe()\n const elements = useElements()\n useEffect(() => {\n if (ref.current && stripe && elements) {\n ref.current.onsubmit = async () => {\n return await onSubmit({\n event: ref.current as any,\n stripe,\n elements\n })\n }\n setPaymentRef({ ref })\n }\n return () => {\n setPaymentRef({ ref: { current: null } })\n }\n }, [ref, stripe, elements])\n const onSubmit = async ({\n event,\n stripe,\n elements\n }: OnSubmitArgs): Promise<boolean> => {\n if (!stripe) return false\n\n const savePaymentSourceToCustomerWallet: string =\n // @ts-expect-error no type\n event?.elements?.save_payment_source_to_customer_wallet?.checked\n if (savePaymentSourceToCustomerWallet)\n setCustomerOrderParam(\n '_save_payment_source_to_customer_wallet',\n savePaymentSourceToCustomerWallet\n )\n if (elements != null) {\n const billingInfo = order?.billing_address\n const email = order?.customer_email ?? ''\n const billingDetails = {\n name: billingInfo?.full_name ?? '',\n email,\n phone: billingInfo?.phone,\n address: {\n city: billingInfo?.city,\n country: billingInfo?.country_code,\n line1: billingInfo?.line_1,\n line2: billingInfo?.line_2 ?? '',\n postal_code: billingInfo?.zip_code ?? '',\n state: billingInfo?.state_code\n }\n }\n const url = new URL(window.location.href)\n const cleanUrl = `${url.origin}${url.pathname}?accessToken=${url.searchParams.get('accessToken')}`\n const { error } = await stripe.confirmPayment({\n elements,\n confirmParams: {\n return_url: cleanUrl,\n payment_method_data: {\n billing_details: billingDetails\n }\n },\n redirect: 'if_required'\n })\n if (error) {\n console.error(error)\n setPaymentMethodErrors([\n {\n code: 'PAYMENT_INTENT_AUTHENTICATION_FAILURE',\n resource: 'payment_methods',\n field: currentPaymentMethodType,\n message: error.message ?? ''\n }\n ])\n return false\n } else {\n return true\n }\n }\n return false\n }\n\n return (\n <form ref={ref}>\n {/* <CardElement options={{ ...defaultOptions, ...options }} /> */}\n <PaymentElement\n id='payment-element'\n options={{ ...defaultOptions, ...options }}\n />\n {templateCustomerSaveToWallet && (\n <Parent {...{ name: 'save_payment_source_to_customer_wallet' }}>\n {templateCustomerSaveToWallet}\n </Parent>\n )}\n </form>\n )\n}\n\ntype Props = PaymentMethodConfig['stripePayment'] &\n Omit<JSX.IntrinsicElements['div'], 'ref'> &\n Partial<PaymentSourceProps['templateCustomerSaveToWallet']> & {\n show?: boolean\n publishableKey: string\n locale?: StripeElementLocale\n clientSecret: string\n expressPayments?: boolean\n }\n\nexport function StripePayment({\n publishableKey,\n show,\n options,\n clientSecret,\n locale = 'auto',\n expressPayments = false,\n ...p\n}: Props): JSX.Element | null {\n const [isLoaded, setIsLoaded] = useState(false)\n const [stripe, setStripe] = useState<Stripe | null>(null)\n const {\n containerClassName,\n templateCustomerSaveToWallet,\n fonts = [],\n appearance,\n ...divProps\n } = p\n useEffect(() => {\n if (show && publishableKey) {\n import('@stripe/stripe-js').then(({ loadStripe }) => {\n const getStripe = async (): Promise<void> => {\n const res = await loadStripe(publishableKey, {\n locale\n })\n if (res != null) {\n setStripe(res)\n setIsLoaded(true)\n }\n }\n getStripe()\n })\n }\n return () => {\n setIsLoaded(false)\n }\n }, [show, publishableKey])\n const elementsOptions: StripeElementsOptions = {\n clientSecret,\n appearance: { ...defaultAppearance, ...appearance },\n fonts\n }\n return isLoaded && stripe != null && clientSecret != null ? (\n <div className={containerClassName} {...divProps}>\n <Elements stripe={stripe} options={elementsOptions}>\n {expressPayments ? (\n <StripeExpressPayment clientSecret={clientSecret} />\n ) : (\n <StripePaymentForm\n options={options}\n templateCustomerSaveToWallet={templateCustomerSaveToWallet}\n />\n )}\n </Elements>\n </div>\n ) : null\n}\n\nexport default StripePayment\n","import type { GatewayBaseType } from \"#components/payment_gateways/PaymentGateway\"\nimport StripePayment from \"#components/payment_source/StripePayment\"\nimport CustomerContext from \"#context/CustomerContext\"\nimport OrderContext from \"#context/OrderContext\"\nimport PaymentMethodChildrenContext from \"#context/PaymentMethodChildrenContext\"\nimport PaymentMethodContext from \"#context/PaymentMethodContext\"\nimport PaymentSourceContext from \"#context/PaymentSourceContext\"\nimport {\n getPaymentConfig,\n type PaymentResource,\n} from \"#reducers/PaymentMethodReducer\"\nimport getCardDetails from \"#utils/getCardDetails\"\nimport type { StripeElementLocale } from \"@stripe/stripe-js\"\nimport isEmpty from \"lodash-es/isEmpty\"\nimport { useContext, type JSX } from \"react\"\nimport PaymentCardsTemplate from \"../utils/PaymentCardsTemplate\"\n\ntype Props = GatewayBaseType\n\nexport function StripeGateway(props: Props): JSX.Element | null {\n const {\n readonly,\n showCard,\n handleEditClick,\n children,\n templateCustomerCards,\n show,\n loading,\n loaderComponent,\n templateCustomerSaveToWallet,\n ...p\n } = props\n const { order } = useContext(OrderContext)\n const { payment, expressPayments } = useContext(PaymentMethodChildrenContext)\n const { payments, isGuest } = useContext(CustomerContext)\n const { currentPaymentMethodId, config, paymentSource } =\n useContext(PaymentMethodContext)\n const paymentResource: PaymentResource = \"stripe_payments\"\n const locale = order?.language_code as StripeElementLocale\n\n if (!readonly && payment?.id !== currentPaymentMethodId) return null\n // @ts-expect-error no type\n const publishableKey = paymentSource?.publishable_key\n // @ts-expect-error no type\n const clientSecret = paymentSource?.client_secret\n const stripeConfig = config\n ? getPaymentConfig<\"stripe_payments\">(paymentResource, config).stripePayment\n : {}\n const customerPayments =\n !isEmpty(payments) && payments\n ? payments.filter((customerPayment) => {\n return customerPayment.payment_source?.type === paymentResource\n })\n : []\n if (readonly || showCard) {\n const card = getCardDetails({\n customerPayment: {\n payment_source: paymentSource,\n },\n paymentType: paymentResource,\n })\n if (card?.brand === \"\") {\n card.brand =\n // @ts-expect-error missing type\n paymentSource?.payment_instrument?.issuer_type ?? \"credit-card\"\n }\n const value = {\n ...card,\n showCard,\n handleEditClick,\n readonly,\n paymentSource,\n }\n return card?.brand == null ? null : (\n <PaymentSourceContext.Provider value={value}>\n {children}\n </PaymentSourceContext.Provider>\n )\n }\n if (!isGuest && templateCustomerCards) {\n return (\n <>\n {isEmpty(customerPayments) ? null : (\n <div className={p.className}>\n <PaymentCardsTemplate {...{ paymentResource, customerPayments }}>\n {templateCustomerCards}\n </PaymentCardsTemplate>\n </div>\n )}\n <StripePayment\n show={show}\n templateCustomerSaveToWallet={templateCustomerSaveToWallet}\n publishableKey={publishableKey}\n clientSecret={clientSecret}\n expressPayments={expressPayments}\n locale={locale}\n {...stripeConfig}\n />\n </>\n )\n }\n return (\n <StripePayment\n show={show}\n publishableKey={publishableKey}\n clientSecret={clientSecret}\n locale={locale}\n expressPayments={expressPayments}\n {...stripeConfig}\n />\n )\n}\n\nexport default StripeGateway\n","/* eslint-disable n/no-callback-literal */\nimport isFunction from \"lodash-es/isFunction\"\n\nexport default async function promisify(cb: any, params?: any): Promise<any> {\n return await new Promise<any>((resolve, reject) => {\n if (params)\n cb(params, (err: any, res: any) => {\n if (err) reject(err)\n resolve(res)\n })\n else if (isFunction(cb?.tokenize)) {\n cb?.tokenize((err: any, payload: any) => {\n if (err) reject(err)\n resolve(payload)\n })\n } else\n cb((err: any, res: any) => {\n if (err) reject(err)\n resolve(res)\n })\n })\n}\n","/* eslint-disable @typescript-eslint/no-var-requires */\nimport {\n type FormEvent,\n useContext,\n useEffect,\n useRef,\n useState,\n type JSX,\n} from \"react\"\nimport PaymentMethodContext from \"#context/PaymentMethodContext\"\nimport isEmpty from \"lodash-es/isEmpty\"\nimport OrderContext from \"#context/OrderContext\"\nimport Parent from \"#components/utils/Parent\"\nimport type { PaymentSourceProps } from \"./PaymentSource\"\nimport { setCustomerOrderParam } from \"#utils/localStorage\"\nimport promisify from \"#utils/promisify\"\nimport type { HostedFieldFieldOptions, ThreeDSecure } from \"braintree-web\"\nimport type { BraintreePayment as BraintreePaymentType } from \"@commercelayer/sdk\"\nimport type { HostedFieldsHostedFieldsFieldName } from \"braintree-web/hosted-fields\"\nimport type { ThreeDSecureVerifyOptions } from \"braintree-web/three-d-secure\"\ntype BraintreeHostedFields<Type> = {\n [Property in keyof Type]: {\n label?: string\n } & Type[Property]\n}\n\nexport interface BraintreeConfig {\n containerClassName?: string\n cardContainerClassName?: string\n expDateContainerClassName?: string\n fieldsContainerClassName?: string\n cvvContainerClassName?: string\n cardDetailsContainerClassName?: string\n fieldLabelClassName?: string\n inputWrapperClassName?: string\n fields?: BraintreeHostedFields<HostedFieldFieldOptions>\n styles?: Record<string, Record<string, string>>\n /**\n * Force challenge request for 3D Secure authentication. Default is true.\n */\n challengeRequested?: boolean\n}\n\ninterface Props {\n authorization: string\n config?: BraintreeConfig\n templateCustomerSaveToWallet?: PaymentSourceProps[\"templateCustomerSaveToWallet\"]\n locale?: string\n}\n\ninterface SubmitProps {\n event?: FormEvent<HTMLFormElement>\n hostedFieldsInstance: HostedFieldsHostedFieldsFieldName\n threeDSInstance: ThreeDSecure\n paymentSource?: BraintreePaymentType\n}\n\nconst defaultConfig: BraintreeConfig = {\n styles: {\n // Style all elements\n input: {\n \"font-size\": \"16px\",\n color: \"#3A3A3A\",\n },\n\n // Styling a specific field\n // Custom web fonts are not supported. Only use system installed fonts.\n \".number\": {\n \"font-family\": \"monospace\",\n },\n\n // Styling element state\n \":focus\": {\n color: \"blue\",\n },\n \".valid\": {\n color: \"green\",\n },\n \".invalid\": {\n color: \"red\",\n },\n\n // Media queries\n // Note that these apply to the iframe, not the root window.\n \"@media screen and (max-width: 700px)\": {\n // @ts-expect-error no type\n input: {\n \"font-size\": \"14px\",\n },\n },\n },\n fields: {\n number: {\n label: \"Card Number\",\n selector: \"#card-number\",\n placeholder: \"4111 1111 1111 1111\",\n },\n cvv: {\n label: \"CVV\",\n selector: \"#cvv\",\n placeholder: \"123\",\n },\n expirationDate: {\n label: \"Expiration Date\",\n selector: \"#expiration-date\",\n placeholder: \"10/2022\",\n },\n },\n submitLabel: \"Set payment method\",\n}\n\nexport function BraintreePayment({\n authorization,\n config,\n templateCustomerSaveToWallet,\n}: Props): JSX.Element | null {\n const {\n fields,\n styles,\n containerClassName,\n cardContainerClassName,\n fieldsContainerClassName,\n expDateContainerClassName,\n fieldLabelClassName,\n cvvContainerClassName,\n inputWrapperClassName,\n cardDetailsContainerClassName,\n } = { ...defaultConfig, ...config }\n const [loadBraintree, setLoadBraintree] = useState(false)\n const {\n setPaymentSource,\n paymentSource,\n setPaymentMethodErrors,\n currentPaymentMethodType,\n setPaymentRef,\n } = useContext(PaymentMethodContext)\n const { order } = useContext(OrderContext)\n const ref = useRef<null | HTMLFormElement>(null)\n const handleSubmitForm = async ({\n event,\n hostedFieldsInstance,\n threeDSInstance,\n }: SubmitProps): Promise<boolean> => {\n const savePaymentSourceToCustomerWallet: string =\n // @ts-expect-error no type\n event?.elements?.save_payment_source_to_customer_wallet?.checked\n if (savePaymentSourceToCustomerWallet)\n setCustomerOrderParam(\n \"_save_payment_source_to_customer_wallet\",\n savePaymentSourceToCustomerWallet,\n )\n if (hostedFieldsInstance) {\n try {\n const payload = await promisify(hostedFieldsInstance).then(\n (payload) => payload,\n )\n const billingAddress = order?.billing_address\n const verifyCardOptions: ThreeDSecureVerifyOptions & {\n onLookupComplete: unknown\n } = {\n nonce: payload.nonce,\n bin: payload.details.bin,\n amount: `${order?.total_amount_with_taxes_float}`,\n email: order?.customer_email ?? \"\",\n billingAddress: {\n givenName: billingAddress?.first_name ?? \"\",\n surname: billingAddress?.last_name ?? \"\",\n phoneNumber: billingAddress?.phone,\n streetAddress: billingAddress?.line_1,\n countryCodeAlpha2: billingAddress?.country_code,\n postalCode: billingAddress?.zip_code ?? \"\",\n region: billingAddress?.state_code,\n locality: billingAddress?.city,\n },\n onLookupComplete: (_data: any, next: any) => {\n next()\n },\n }\n const response = (await threeDSInstance.verifyCard(\n verifyCardOptions,\n )) as any\n const validStatus =\n response?.liabilityShiftPossible === true &&\n response?.liabilityShifted === true\n if (validStatus && paymentSource != null) {\n await setPaymentSource({\n paymentSourceId: paymentSource.id,\n paymentResource: \"braintree_payments\",\n attributes: {\n payment_method_nonce: response.nonce,\n options: {\n id: response.nonce,\n card: {\n last4: response.details.lastFour,\n exp_year: response.details.expirationYear,\n exp_month: response.details.expirationMonth,\n brand: response.details.cardType.toLowerCase(),\n },\n },\n },\n })\n return true\n } else {\n throw new Error(\n `3D Secure authentication failed - ${response?.threeDSecureInfo?.status}`,\n )\n }\n } catch (error: any) {\n console.error(error)\n setPaymentMethodErrors([\n {\n code: \"PAYMENT_INTENT_AUTHENTICATION_FAILURE\",\n resource: \"payment_methods\",\n field: currentPaymentMethodType,\n message: error.message as string,\n },\n ])\n return false\n }\n }\n return false\n }\n useEffect(() => {\n if (!ref && authorization)\n setCustomerOrderParam(\"_save_payment_source_to_customer_wallet\", \"false\")\n if (authorization && !loadBraintree && !isEmpty(window)) {\n const braintreeClient = require(\"braintree-web/client\")\n const hostedFields = require(\"braintree-web/hosted-fields\")\n const threeDSecure = require(\"braintree-web/three-d-secure\")\n braintreeClient.create(\n {\n authorization,\n challengeRequested: config?.challengeRequested ?? true,\n },\n (clientErr: any, clientInstance: any) => {\n if (clientErr) {\n console.error(clientErr)\n return\n }\n hostedFields.create(\n {\n client: clientInstance,\n fields: fields as HostedFieldFieldOptions,\n styles,\n },\n (\n hostedFieldsErr: any,\n hostedFieldsInstance: HostedFieldsHostedFieldsFieldName,\n ) => {\n if (hostedFieldsErr) {\n console.error(hostedFieldsErr)\n return\n }\n setLoadBraintree(true)\n threeDSecure.create(\n {\n authorization,\n version: 2,\n },\n (threeDSecureErr: any, threeDSInstance: ThreeDSecure) => {\n if (threeDSecureErr) {\n // Handle error in 3D Secure component creation\n console.error(\"3DSecure error\", threeDSecureErr)\n setPaymentMethodErrors([\n {\n code: \"PAYMENT_INTENT_AUTHENTICATION_FAILURE\",\n resource: \"payment_methods\",\n field: currentPaymentMethodType,\n message: threeDSecureErr.message as string,\n },\n ])\n }\n if (ref.current) {\n ref.current.onsubmit = async (paymentSource: any) => {\n return await handleSubmitForm({\n event: ref.current as any,\n hostedFieldsInstance,\n threeDSInstance,\n paymentSource,\n })\n }\n setPaymentRef({ ref })\n }\n },\n )\n },\n )\n },\n )\n }\n return () => {\n setPaymentRef({ ref: { current: null } })\n setLoadBraintree(false)\n }\n }, [authorization, ref])\n return !authorization && !loadBraintree ? null : (\n <div className={containerClassName}>\n <form\n ref={ref}\n id=\"braintree-form\"\n onSubmit={handleSubmitForm as any}\n className={containerClassName}\n >\n <div className={fieldsContainerClassName}>\n <div className={cardContainerClassName}>\n <label className={fieldLabelClassName} htmlFor=\"card-number\">\n {fields?.number?.label}\n </label>\n <div className={inputWrapperClassName} id=\"card-number\" />\n </div>\n <div className={cardDetailsContainerClassName}>\n <div className={expDateContainerClassName}>\n <label className={fieldLabelClassName} htmlFor=\"expiration-date\">\n {fields?.expirationDate?.label}\n </label>\n <div className={inputWrapperClassName} id=\"expiration-date\" />\n </div>\n <div className={cvvContainerClassName}>\n <label className={fieldLabelClassName} htmlFor=\"cvv\">\n {fields?.cvv?.label}\n </label>\n <div className={inputWrapperClassName} id=\"cvv\" />\n </div>\n </div>\n </div>\n <div className={fieldsContainerClassName}>\n {templateCustomerSaveToWallet && (\n <Parent {...{ name: \"save_payment_source_to_customer_wallet\" }}>\n {templateCustomerSaveToWallet}\n </Parent>\n )}\n </div>\n </form>\n </div>\n )\n}\n\nexport default BraintreePayment\n","import BraintreePayment from \"#components/payment_source/BraintreePayment\"\nimport type { GatewayBaseType } from \"#components/payment_gateways/PaymentGateway\"\nimport CustomerContext from \"#context/CustomerContext\"\nimport OrderContext from \"#context/OrderContext\"\nimport PaymentMethodChildrenContext from \"#context/PaymentMethodChildrenContext\"\nimport PaymentMethodContext from \"#context/PaymentMethodContext\"\nimport PaymentSourceContext from \"#context/PaymentSourceContext\"\nimport type { PaymentResource } from \"#reducers/PaymentMethodReducer\"\nimport getCardDetails from \"#utils/getCardDetails\"\nimport type { StripeElementLocale } from \"@stripe/stripe-js\"\nimport isEmpty from \"lodash-es/isEmpty\"\nimport { useContext, type JSX } from \"react\"\nimport PaymentCardsTemplate from \"../utils/PaymentCardsTemplate\"\nimport { getPaymentAttributes } from \"#utils/getPaymentAttributes\"\n\ntype Props = GatewayBaseType\n\nexport function BraintreeGateway(props: Props): JSX.Element | null {\n const {\n readonly,\n showCard,\n handleEditClick,\n children,\n templateCustomerCards,\n loading,\n loaderComponent,\n templateCustomerSaveToWallet,\n ...p\n } = props\n const { order } = useContext(OrderContext)\n const { payment } = useContext(PaymentMethodChildrenContext)\n const { payments, isGuest } = useContext(CustomerContext)\n const { currentPaymentMethodId, config, paymentSource } =\n useContext(PaymentMethodContext)\n const paymentResource: PaymentResource = \"braintree_payments\"\n const locale = order?.language_code as StripeElementLocale\n\n if (!readonly && payment?.id !== currentPaymentMethodId) return null\n // @ts-expect-error no type\n const authorization = paymentSource?.client_token\n const braintreeConfig = getPaymentAttributes({\n resource: paymentResource,\n config: config ?? {},\n keys: [\"braintree_payments\"],\n })\n const paymentConfig = braintreeConfig?.braintreePayment\n const customerPayments =\n !isEmpty(payments) && payments\n ? payments.filter((customerPayment) => {\n return customerPayment.payment_source?.type === \"braintree_payments\"\n })\n : []\n if (readonly || showCard) {\n const card = getCardDetails({\n customerPayment: {\n payment_source: paymentSource,\n },\n paymentType: paymentResource,\n })\n const value = { ...card, showCard, handleEditClick, readonly }\n return isEmpty(card) ? null : (\n <PaymentSourceContext.Provider value={value}>\n {children}\n </PaymentSourceContext.Provider>\n )\n }\n if (!isGuest && templateCustomerCards) {\n return (\n <>\n {isEmpty(customerPayments) ? null : (\n <div className={p.className}>\n <PaymentCardsTemplate {...{ paymentResource, customerPayments }}>\n {templateCustomerCards}\n </PaymentCardsTemplate>\n </div>\n )}\n <BraintreePayment\n templateCustomerSaveToWallet={templateCustomerSaveToWallet}\n authorization={authorization}\n locale={locale}\n config={paymentConfig}\n />\n </>\n )\n }\n return (\n <BraintreePayment\n locale={locale}\n authorization={authorization}\n config={paymentConfig}\n />\n )\n}\n\nexport default BraintreeGateway\n","import PaymentMethodContext from \"#context/PaymentMethodContext\"\nimport isFunction from \"lodash-es/isFunction\"\nimport { type ReactNode, useContext, useEffect, useRef, type JSX } from \"react\"\n\nexport interface PaypalConfig {\n return_url: string\n cancel_url: string\n infoMessage?: {\n text?: string | ReactNode\n className?: string\n }\n}\n\nconst defaultMessage =\n \"by placing the order, you will be redirected to the PayPal website to sign in and authorize the payment\"\n\ntype Props = Omit<PaypalConfig, \"return_url\" | \"cancel_url\"> &\n JSX.IntrinsicElements[\"div\"]\nexport function PaypalPayment({\n infoMessage,\n ...p\n}: Props): JSX.Element | null {\n const ref = useRef<null | HTMLFormElement>(null)\n const {\n setPaymentSource,\n paymentSource,\n currentPaymentMethodType,\n setPaymentRef,\n } = useContext(PaymentMethodContext)\n useEffect(() => {\n if (\n ref.current &&\n paymentSource &&\n currentPaymentMethodType &&\n // @ts-expect-error no type\n paymentSource?.approval_url\n ) {\n ref.current.onsubmit = async () => {\n return await handleClick()\n }\n setPaymentRef({ ref })\n }\n return () => {\n setPaymentRef({ ref: { current: null } })\n }\n }, [ref, paymentSource, currentPaymentMethodType])\n const handleClick = async (): Promise<boolean> => {\n if (paymentSource && currentPaymentMethodType) {\n try {\n await setPaymentSource({\n paymentSourceId: paymentSource.id,\n paymentResource: currentPaymentMethodType,\n attributes: {\n metadata: {\n card: {\n id: paymentSource.id,\n brand: \"paypal\",\n last4: \"\",\n },\n },\n },\n })\n return true\n } catch (e) {\n return false\n }\n }\n return false\n }\n return (\n <form ref={ref}>\n <div {...p}>\n <span className={infoMessage?.className}>\n {isFunction(infoMessage?.text)\n ? infoMessage?.text()\n : infoMessage?.text || defaultMessage}\n </span>\n </div>\n </form>\n )\n}\n\nexport default PaypalPayment\n","import type { GatewayBaseType } from \"#components/payment_gateways/PaymentGateway\"\nimport PaypalPayment from \"#components/payment_source/PaypalPayment\"\nimport OrderContext from \"#context/OrderContext\"\nimport PaymentMethodChildrenContext from \"#context/PaymentMethodChildrenContext\"\nimport PaymentMethodContext from \"#context/PaymentMethodContext\"\nimport PaymentSourceContext from \"#context/PaymentSourceContext\"\nimport type { PaymentResource } from \"#reducers/PaymentMethodReducer\"\nimport getCardDetails from \"#utils/getCardDetails\"\nimport { getPaymentAttributes } from \"#utils/getPaymentAttributes\"\nimport isEmpty from \"lodash-es/isEmpty\"\nimport { useContext, type JSX } from \"react\"\n\ntype Props = Partial<GatewayBaseType>\n\nexport function PaypalGateway(props: Props): JSX.Element | null {\n const { readonly, showCard, handleEditClick, children, ...p } = props\n const { order } = useContext(OrderContext)\n const { payment } = useContext(PaymentMethodChildrenContext)\n const { currentPaymentMethodId, config, paymentSource } =\n useContext(PaymentMethodContext)\n const paymentResource: PaymentResource = \"paypal_payments\"\n\n if (!readonly && payment?.id !== currentPaymentMethodId) return null\n if (readonly) {\n const card = getCardDetails({\n customerPayment: {\n payment_source: order?.payment_source || paymentSource,\n },\n paymentType: paymentResource,\n })\n const value = { ...card, showCard, handleEditClick, readonly }\n return isEmpty(card) ? null : (\n <PaymentSourceContext.Provider value={value}>\n {children}\n </PaymentSourceContext.Provider>\n )\n }\n const attributes = getPaymentAttributes({\n resource: paymentResource,\n config: config ?? {},\n keys: [\"paypal_payments\"],\n })\n const infoMessage = attributes?.paypalPayment?.infoMessage\n delete p.show\n delete p.templateCustomerCards\n delete p.templateCustomerSaveToWallet\n delete p.loading\n delete p.loaderComponent\n delete p.onClickCustomerCards\n return <PaypalPayment {...p} infoMessage={infoMessage} />\n}\n\nexport default PaypalGateway\n","import PaymentMethodContext from '#context/PaymentMethodContext'\nimport { useContext, useEffect, useRef, type JSX } from 'react';\n\nexport interface WireTransferConfig {\n infoMessage?: {\n text?: string | JSX.Element[]\n className?: string\n }\n}\n\nconst defaultMessage =\n 'after placing the order, you will need to manually complete the payment with your bank'\n\ntype Props = WireTransferConfig &\n JSX.IntrinsicElements['div'] & { 'data-testid'?: string }\n\nexport function WireTransferPayment({ infoMessage, ...p }: Props): JSX.Element {\n const { className, 'data-testid': dataTestId } = p\n const ref = useRef<null | HTMLFormElement>(null)\n const {\n setPaymentSource,\n paymentSource,\n currentPaymentMethodType,\n setPaymentRef\n } = useContext(PaymentMethodContext)\n useEffect(() => {\n if (ref.current && paymentSource && currentPaymentMethodType) {\n ref.current.onsubmit = async () => {\n return await handleClick()\n }\n setPaymentRef({ ref })\n }\n return () => {\n setPaymentRef({ ref: { current: null } })\n }\n }, [ref, paymentSource, currentPaymentMethodType])\n const handleClick = async (): Promise<boolean> => {\n if (paymentSource && currentPaymentMethodType) {\n try {\n await setPaymentSource({\n paymentSourceId: paymentSource.id,\n paymentResource: currentPaymentMethodType,\n attributes: {\n metadata: {\n card: {\n id: paymentSource.id,\n brand: 'wire-transfer',\n last4: ''\n }\n }\n }\n })\n return true\n } catch (error) {\n return false\n }\n }\n return false\n }\n return (\n <form ref={ref}>\n <div className={className} data-testid={dataTestId}>\n <span className={infoMessage?.className}>\n {infoMessage?.text ?? defaultMessage}\n </span>\n </div>\n </form>\n )\n}\n\nexport default WireTransferPayment\n","import type { GatewayBaseType } from \"#components/payment_gateways/PaymentGateway\"\nimport WireTransferPayment from \"#components/payment_source/WireTransferPayment\"\nimport OrderContext from \"#context/OrderContext\"\nimport PaymentMethodChildrenContext from \"#context/PaymentMethodChildrenContext\"\nimport PaymentMethodContext from \"#context/PaymentMethodContext\"\nimport PaymentSourceContext from \"#context/PaymentSourceContext\"\nimport {\n getPaymentConfig,\n type PaymentResource,\n} from \"#reducers/PaymentMethodReducer\"\nimport getCardDetails from \"#utils/getCardDetails\"\nimport isEmpty from \"lodash-es/isEmpty\"\nimport { useContext, type JSX } from \"react\"\n\ntype Props = GatewayBaseType\n\nexport function WireTransferGateway(props: Props): JSX.Element | null {\n const { readonly, showCard, handleEditClick, children, ...p } = props\n const { payment } = useContext(PaymentMethodChildrenContext)\n const { order } = useContext(OrderContext)\n const { currentPaymentMethodId, config, paymentSource } =\n useContext(PaymentMethodContext)\n const paymentResource: PaymentResource = \"wire_transfers\"\n\n if (!readonly && payment?.id !== currentPaymentMethodId) return null\n if (readonly) {\n const card = getCardDetails({\n customerPayment: {\n payment_source: order?.payment_source || paymentSource,\n },\n paymentType: paymentResource,\n })\n const value = { ...card, showCard, handleEditClick, readonly }\n return isEmpty(card) ? null : (\n <PaymentSourceContext.Provider value={value}>\n {children}\n </PaymentSourceContext.Provider>\n )\n }\n const wireTransferConfig =\n config && paymentResource\n ? getPaymentConfig<\"wire_transfers\">(paymentResource, config)\n : {}\n return <WireTransferPayment {...p} {...wireTransferConfig?.wireTransfer} />\n}\n\nexport default WireTransferGateway\n","import { useContext, useRef, type JSX } from 'react';\nimport type {\n PaymentMethodConfig,\n PaymentSourceObject\n} from '#reducers/PaymentMethodReducer'\nimport type { PaymentSourceProps } from './PaymentSource'\nimport useExternalScript from '#utils/hooks/useExternalScript'\nimport PaymentMethodContext from '#context/PaymentMethodContext'\nimport {\n Frames,\n CardNumber,\n ExpiryDate,\n Cvv,\n type FramesLanguages,\n type FramesStyle\n} from 'frames-react'\nimport OrderContext from '#context/OrderContext'\nimport Parent from '#components/utils/Parent'\nimport { setCustomerOrderParam } from '#utils/localStorage'\nconst scriptUrl = 'https://cdn.checkout.com/js/framesv2.min.js'\n\nexport interface CheckoutComConfig {\n containerClassName?: string\n hintLabel?: string\n name?: string\n success_url?: string\n failure_url?: string\n options?: {\n style: FramesStyle\n }\n [key: string]: unknown\n}\n\nconst systemLanguages: FramesLanguages[] = [\n 'DE-DE',\n 'EN-GB',\n 'ES-ES',\n 'FR-FR',\n 'IT-IT',\n 'KO-KR',\n 'NL-NL'\n]\n\nconst defaultOptions = {\n style: {\n base: {\n color: 'black',\n fontSize: '18px'\n },\n autofill: {\n backgroundColor: 'yellow'\n },\n hover: {\n color: 'blue'\n },\n focus: {\n color: 'blue'\n },\n valid: {\n color: 'green'\n },\n invalid: {\n color: 'red'\n },\n placeholder: {\n base: {\n color: 'gray'\n },\n focus: {\n border: 'solid 1px blue'\n }\n }\n }\n}\n\ntype Props = PaymentMethodConfig['checkoutComPayment'] &\n JSX.IntrinsicElements['div'] & {\n show?: boolean\n publicKey: string\n locale?: string\n templateCustomerSaveToWallet?: PaymentSourceProps['templateCustomerSaveToWallet']\n }\n\nexport function CheckoutComPayment({\n publicKey,\n options = defaultOptions,\n locale = 'EN-GB',\n ...p\n}: Props): JSX.Element | null {\n const ref = useRef<null | HTMLFormElement>(null)\n const loaded = useExternalScript(scriptUrl)\n const {\n setPaymentRef,\n currentPaymentMethodType,\n paymentSource,\n setPaymentSource,\n setPaymentMethodErrors\n } = useContext(PaymentMethodContext)\n const { order } = useContext(OrderContext)\n const {\n containerClassName,\n templateCustomerSaveToWallet,\n successUrl = window.location.href,\n failureUrl = window.location.href,\n show,\n ...divProps\n } = p\n const handleSubmit = async (): Promise<boolean> => {\n const savePaymentSourceToCustomerWallet: string =\n // @ts-expect-error no type\n ref?.current?.elements?.save_payment_source_to_customer_wallet?.checked\n if (savePaymentSourceToCustomerWallet) {\n setCustomerOrderParam(\n '_save_payment_source_to_customer_wallet',\n savePaymentSourceToCustomerWallet\n )\n }\n if (window.Frames) {\n window.Frames.cardholder = {\n name: order?.billing_address?.full_name,\n billingAddress: {\n addressLine1: order?.billing_address?.line_1,\n addressLine2: order?.billing_address?.line_2 ?? '',\n zip: order?.billing_address?.zip_code ?? '',\n city: order?.billing_address?.city,\n state: order?.billing_address?.state_code,\n country: order?.billing_address?.country_code\n },\n phone: order?.billing_address?.phone\n }\n try {\n const data = await window.Frames.submitCard()\n if (data.token && paymentSource && currentPaymentMethodType) {\n const ps = (await setPaymentSource({\n paymentSourceId: paymentSource.id,\n paymentResource: currentPaymentMethodType,\n attributes: {\n token: data.token,\n payment_type: 'token',\n success_url: successUrl,\n failure_url: failureUrl,\n _authorize: true\n }\n })) as PaymentSourceObject['checkout_com_payments']\n if (ps?.redirect_uri) {\n window.location.href = ps.redirect_uri\n }\n }\n } catch (error: any) {\n console.error(error)\n setPaymentMethodErrors([\n {\n code: 'PAYMENT_INTENT_AUTHENTICATION_FAILURE',\n resource: 'payment_methods',\n field: currentPaymentMethodType,\n message: error?.message as string\n }\n ])\n }\n }\n return false\n }\n const lang =\n `${locale.toUpperCase()}-${locale.toUpperCase()}` as FramesLanguages\n const localization = systemLanguages.includes(lang) ? lang : 'EN-GB'\n return loaded && show ? (\n <form ref={ref}>\n <div className={containerClassName} {...divProps}>\n <Frames\n config={{\n debug: true,\n publicKey,\n localization,\n ...options\n }}\n cardValidationChanged={(e) => {\n if (e.isValid && ref.current) {\n ref.current.onsubmit = async () => {\n return await handleSubmit()\n }\n setPaymentRef({ ref })\n }\n }}\n cardTokenized={(data) => data}\n >\n <CardNumber />\n <ExpiryDate />\n <Cvv />\n </Frames>\n </div>\n {templateCustomerSaveToWallet && (\n <Parent {...{ name: 'save_payment_source_to_customer_wallet' }}>\n {templateCustomerSaveToWallet}\n </Parent>\n )}\n </form>\n ) : null\n}\n\nexport default CheckoutComPayment\n","import { useEffect, useState } from 'react'\n\nexport default function useExternalScript(url: string): boolean {\n const [loaded, setLoaded] = useState(false)\n useEffect(() => {\n const script = document.createElement('script')\n script.src = url\n script.async = true\n document.body.appendChild(script)\n script.onload = () => {\n setLoaded(true)\n }\n return () => {\n document.body.removeChild(script)\n setLoaded(false)\n }\n }, [url])\n return loaded\n}\n","import CheckoutComPayment from \"#components/payment_source/CheckoutComPayment\"\nimport type { GatewayBaseType } from \"#components/payment_gateways/PaymentGateway\"\nimport CustomerContext from \"#context/CustomerContext\"\nimport OrderContext from \"#context/OrderContext\"\nimport PaymentMethodChildrenContext from \"#context/PaymentMethodChildrenContext\"\nimport PaymentMethodContext from \"#context/PaymentMethodContext\"\nimport PaymentSourceContext from \"#context/PaymentSourceContext\"\nimport {\n getPaymentConfig,\n type PaymentResource,\n} from \"#reducers/PaymentMethodReducer\"\nimport type { StripeElementLocale } from \"@stripe/stripe-js\"\nimport isEmpty from \"lodash-es/isEmpty\"\nimport React, { type JSX } from \"react\"\nimport PaymentCardsTemplate from \"#components/utils/PaymentCardsTemplate\"\nimport getCardDetails from \"#utils/getCardDetails\"\n\ntype Props = GatewayBaseType\n\nexport function CheckoutComGateway(props: Props): JSX.Element | null {\n const {\n readonly,\n showCard,\n handleEditClick,\n children,\n templateCustomerCards,\n show,\n loading,\n loaderComponent,\n templateCustomerSaveToWallet,\n ...p\n } = props\n const { order } = React.useContext(OrderContext)\n const { payment } = React.useContext(PaymentMethodChildrenContext)\n const { payments, isGuest } = React.useContext(CustomerContext)\n const { currentPaymentMethodId, config, paymentSource } =\n React.useContext(PaymentMethodContext)\n const paymentResource: PaymentResource = \"checkout_com_payments\"\n const locale = order?.language_code as StripeElementLocale\n\n if (!readonly && payment?.id !== currentPaymentMethodId) return null\n // @ts-expect-error no type\n const publicKey = paymentSource?.public_key\n const paymentConfig = config\n ? getPaymentConfig<\"checkout_com_payments\">(paymentResource, config)\n : {}\n const customerPayments =\n !isEmpty(payments) && payments\n ? payments.filter((customerPayment) => {\n return customerPayment.payment_source?.type === paymentResource\n })\n : []\n if (readonly || showCard) {\n const card = getCardDetails({\n customerPayment: {\n payment_source: paymentSource,\n },\n paymentType: paymentResource,\n })\n const value = { ...card, showCard, handleEditClick, readonly }\n return !card.brand ? null : (\n <PaymentSourceContext.Provider value={value}>\n {children}\n </PaymentSourceContext.Provider>\n )\n }\n if (!isGuest && templateCustomerCards) {\n return (\n <>\n {isEmpty(customerPayments) ? null : (\n <div className={p.className}>\n <PaymentCardsTemplate {...{ paymentResource, customerPayments }}>\n {templateCustomerCards}\n </PaymentCardsTemplate>\n </div>\n )}\n <CheckoutComPayment\n show={show}\n templateCustomerSaveToWallet={templateCustomerSaveToWallet}\n publicKey={publicKey}\n locale={locale}\n {...paymentConfig}\n />\n </>\n )\n }\n\n return (\n <CheckoutComPayment\n show={show}\n publicKey={publicKey}\n locale={locale}\n {...paymentConfig}\n />\n )\n}\n\nexport default CheckoutComGateway\n","import { useContext, useEffect, useRef, useState, type JSX } from \"react\"\nimport PaymentMethodContext from \"#context/PaymentMethodContext\"\nimport type { PaymentMethodConfig } from \"#reducers/PaymentMethodReducer\"\nimport type { PaymentSourceProps } from \"./PaymentSource\"\nimport OrderContext from \"#context/OrderContext\"\nimport useExternalScript from \"#utils/hooks/useExternalScript\"\nimport type { LineItem } from \"@commercelayer/sdk\"\n// import PlaceOrderContext from '#context/PlaceOrderContext'\n// import { tr } from '@faker-js/faker'\n\ninterface KlarnaResponse {\n show_form: boolean\n approved: boolean\n authorization_token?: string\n Error?: { invalid_fields: string[] }\n}\n\ntype KlarnaPaymentProps = PaymentMethodConfig[\"klarnaPayment\"] &\n JSX.IntrinsicElements[\"div\"] &\n Partial<PaymentSourceProps[\"templateCustomerSaveToWallet\"]> & {\n show?: boolean\n clientToken: string\n locale?: string | null\n }\n\nfunction typeOfLine(\n lineItemType: string | null | undefined,\n): OrderLine[\"type\"] {\n switch (lineItemType) {\n case \"percentage_discount_promotions\":\n return \"discount\"\n case \"shipments\":\n return \"shipping_fee\"\n case \"skus\":\n return \"physical\"\n case \"payment_methods\":\n default:\n return null\n }\n}\n\ntype OrderLine = Partial<{\n name: string\n quantity: number\n total_amount: number\n unit_price: number\n type: \"discount\" | \"physical\" | \"shipping_fee\" | null\n}>\n\nfunction klarnaOrderLines(lineItems?: LineItem[] | null): OrderLine[] {\n return lineItems\n ? // @ts-expect-error no type\n lineItems?.map((item) => {\n const type = item.item_type ? typeOfLine(item.item_type) : null\n return {\n // name: item.name,\n quantity: item.quantity,\n total_amount: item.total_amount_cents,\n unit_price: item.unit_amount_cents,\n type,\n }\n })\n : []\n}\n\nexport default function KlarnaPayment({\n clientToken,\n placeOrderCallback,\n locale = \"EN\",\n ...p\n}: KlarnaPaymentProps): JSX.Element | null {\n const ref = useRef<null | HTMLFormElement>(null)\n const {\n paymentSource,\n currentPaymentMethodType,\n setPaymentRef,\n setPaymentSource,\n } = useContext(PaymentMethodContext)\n const { order } = useContext(OrderContext)\n const loaded = useExternalScript(\"https://x.klarnacdn.net/kp/lib/v1/api.js\")\n const [klarna, setKlarna] = useState<any>()\n const { containerClassName, ...divProps } = p\n useEffect(() => {\n if (loaded && window?.Klarna !== undefined) {\n setKlarna(window.Klarna)\n }\n }, [loaded, window.Klarna])\n useEffect(() => {\n if (\n ref.current &&\n paymentSource &&\n currentPaymentMethodType &&\n loaded &&\n klarna\n ) {\n ref.current.onsubmit = async (props: any) => {\n handleClick(klarna, props)\n }\n setPaymentRef({ ref })\n }\n return () => {\n setPaymentRef({ ref: { current: null } })\n }\n }, [ref, paymentSource, currentPaymentMethodType, loaded, klarna])\n const handleClick = (kl: any, props: any): void => {\n // @ts-expect-error no type\n const [first] = paymentSource?.payment_methods || undefined\n const paymentMethodCategories = first?.identifier\n const billingAddress = {\n given_name: order?.billing_address?.first_name,\n family_name: order?.billing_address?.last_name,\n email: order?.customer_email,\n street_address: order?.billing_address?.line_1,\n street_address2: null,\n organization_name: null,\n postal_code: order?.billing_address?.zip_code,\n city: order?.billing_address?.city,\n region: order?.billing_address?.state_code,\n phone: order?.billing_address?.phone,\n country: order?.billing_address?.country_code,\n }\n const shippingAddress = {\n given_name: order?.shipping_address?.first_name,\n family_name: order?.shipping_address?.last_name,\n email: order?.customer_email,\n street_address: order?.shipping_address?.line_1,\n street_address2: null,\n postal_code: order?.shipping_address?.zip_code,\n organization_name: null,\n city: order?.shipping_address?.city,\n region: order?.shipping_address?.state_code,\n phone: order?.shipping_address?.phone,\n country: order?.shipping_address?.country_code,\n }\n const klarnaData = {\n merchant_data: order?.id,\n purchase_country: order?.country_code,\n purchase_currency: order?.currency_code,\n locale,\n shipping_address: shippingAddress,\n billing_address: billingAddress,\n order_amount: order?.total_amount_cents,\n order_lines: klarnaOrderLines(order?.line_items),\n order_tax_amount: order?.total_tax_amount_cents,\n }\n kl.Payments.authorize(\n {\n payment_method_category: paymentMethodCategories,\n ...klarnaData,\n },\n async (res: KlarnaResponse) => {\n if (res.approved && paymentSource && currentPaymentMethodType) {\n const ps = await setPaymentSource({\n paymentSourceId: paymentSource.id,\n paymentResource: currentPaymentMethodType,\n attributes: {\n auth_token: res.authorization_token,\n },\n })\n if (props.setPlaceOrder != null) {\n const placed = await props.setPlaceOrder({ paymentSource: ps })\n if (placed && props.onclickCallback != null) {\n props.onclickCallback(placed)\n }\n }\n }\n },\n )\n }\n if (klarna && clientToken) {\n // @ts-expect-error no type\n const [first] = paymentSource?.payment_methods || undefined\n klarna.Payments.init({\n client_token: clientToken,\n })\n klarna.Payments.load({\n container: \"#klarna-payments-container\",\n payment_method_category: first?.identifier,\n })\n }\n return (\n <form ref={ref}>\n <div className={containerClassName} {...divProps}>\n <div id=\"klarna-payments-container\" />\n </div>\n </form>\n )\n}\n","import React, { type JSX } from \"react\"\nimport KlarnaPayment from \"#components/payment_source/KlarnaPayment\"\nimport type { GatewayBaseType } from \"#components/payment_gateways/PaymentGateway\"\nimport CustomerContext from \"#context/CustomerContext\"\nimport OrderContext from \"#context/OrderContext\"\nimport PaymentMethodChildrenContext from \"#context/PaymentMethodChildrenContext\"\nimport PaymentMethodContext from \"#context/PaymentMethodContext\"\nimport PaymentSourceContext from \"#context/PaymentSourceContext\"\nimport {\n getPaymentConfig,\n type PaymentResource,\n} from \"#reducers/PaymentMethodReducer\"\nimport isEmpty from \"lodash-es/isEmpty\"\nimport PaymentCardsTemplate from \"#components/utils/PaymentCardsTemplate\"\nimport getCardDetails from \"#utils/getCardDetails\"\n\ntype Props = GatewayBaseType\n\nexport function KlarnaGateway(props: Props): JSX.Element | null {\n const {\n readonly,\n showCard,\n handleEditClick,\n children,\n templateCustomerCards,\n loading,\n loaderComponent,\n ...p\n } = props\n const { order } = React.useContext(OrderContext)\n const { payment } = React.useContext(PaymentMethodChildrenContext)\n const { payments, isGuest } = React.useContext(CustomerContext)\n const { currentPaymentMethodId, config, paymentSource } =\n React.useContext(PaymentMethodContext)\n const paymentResource: PaymentResource = \"klarna_payments\"\n const locale = order?.language_code\n\n if (!readonly && payment?.id !== currentPaymentMethodId) return null\n // @ts-expect-error no type\n const clientToken = paymentSource?.client_token\n const klarnaConfig = config\n ? getPaymentConfig<\"klarna_payments\">(paymentResource, config)\n : {}\n const customerPayments =\n !isEmpty(payments) && payments\n ? payments.filter((customerPayment) => {\n return customerPayment.payment_source?.type === paymentResource\n })\n : []\n\n if (readonly || showCard) {\n const card = getCardDetails({\n customerPayment: {\n payment_source: paymentSource,\n },\n paymentType: paymentResource,\n })\n const value = { ...card, showCard, handleEditClick, readonly }\n return isEmpty(card) ? null : (\n <PaymentSourceContext.Provider value={value}>\n {children}\n </PaymentSourceContext.Provider>\n )\n }\n if (!isGuest && templateCustomerCards) {\n return (\n <>\n {isEmpty(customerPayments) ? null : (\n <div className={p.className}>\n <PaymentCardsTemplate {...{ paymentResource, customerPayments }}>\n {templateCustomerCards}\n </PaymentCardsTemplate>\n </div>\n )}\n <KlarnaPayment\n clientToken={clientToken}\n locale={locale}\n {...klarnaConfig}\n />\n </>\n )\n }\n\n return (\n <KlarnaPayment\n clientToken={clientToken}\n locale={locale}\n {...klarnaConfig}\n />\n )\n}\n\nexport default KlarnaGateway\n","import Parent from '#components/utils/Parent'\nimport PaymentMethodContext from '#context/PaymentMethodContext'\nimport type { ChildrenFunction } from '#typings/index'\nimport type { StripeElementLocale } from '@stripe/stripe-js'\nimport { useContext, useEffect, useRef, type JSX } from 'react';\nimport type { PaymentSourceProps } from './PaymentSource'\nimport OrderContext from '#context/OrderContext'\n\nexport interface ExternalPaymentConfig {\n /**\n * Show the component. Default is false\n */\n show?: boolean\n /**\n * Use to display information about the external payment or whatever else.\n */\n customComponent?: ChildrenFunction<Omit<Props, 'customComponent'>>\n /**\n * The payment source token, as generated by the external gateway SDK. Credit Card numbers are rejected.\n */\n payment_source_token: string\n}\n\ninterface Props\n extends Omit<ExternalPaymentConfig, 'payment_source_token'>,\n Pick<PaymentSourceProps, 'templateCustomerSaveToWallet'> {\n paymentSourceToken: string\n locale?: StripeElementLocale\n}\n\nexport function ExternalPayment(props: Props): JSX.Element | null {\n const { setPaymentRef } = useContext(PaymentMethodContext)\n const { order, updateOrder } = useContext(OrderContext)\n const ref = useRef<null | HTMLFormElement>(null)\n useEffect(() => {\n if (ref?.current != null) {\n ref.current.onsubmit = async () => {\n return true\n }\n setPaymentRef({ ref })\n }\n }, [ref])\n const parentProps = {\n ...props,\n order,\n updateOrder\n }\n return props?.customComponent != null && props.show ? (\n <form ref={ref}>\n <Parent {...parentProps}>{props.customComponent}</Parent>\n {props?.templateCustomerSaveToWallet != null && (\n <Parent {...{ name: 'save_payment_source_to_customer_wallet' }}>\n {props.templateCustomerSaveToWallet}\n </Parent>\n )}\n </form>\n ) : null\n}\n\nexport default ExternalPayment\n","import type { GatewayBaseType } from \"#components/payment_gateways/PaymentGateway\"\nimport ExternalPayment from \"#components/payment_source/ExternalPayment\"\nimport CustomerContext from \"#context/CustomerContext\"\nimport OrderContext from \"#context/OrderContext\"\nimport PaymentMethodChildrenContext from \"#context/PaymentMethodChildrenContext\"\nimport PaymentMethodContext from \"#context/PaymentMethodContext\"\nimport PaymentSourceContext from \"#context/PaymentSourceContext\"\nimport {\n getPaymentConfig,\n type PaymentResource,\n} from \"#reducers/PaymentMethodReducer\"\nimport getCardDetails from \"#utils/getCardDetails\"\nimport type { StripeElementLocale } from \"@stripe/stripe-js\"\nimport isEmpty from \"lodash-es/isEmpty\"\nimport React, { type JSX } from \"react\"\nimport PaymentCardsTemplate from \"../utils/PaymentCardsTemplate\"\n\ntype Props = GatewayBaseType\n\nexport function ExternalGateway(props: Props): JSX.Element | null {\n const {\n readonly,\n showCard,\n handleEditClick,\n children,\n templateCustomerCards,\n show,\n loading,\n loaderComponent,\n templateCustomerSaveToWallet,\n ...p\n } = props\n const { order } = React.useContext(OrderContext)\n const { payment } = React.useContext(PaymentMethodChildrenContext)\n const { payments, isGuest } = React.useContext(CustomerContext)\n const { currentPaymentMethodId, config, paymentSource } =\n React.useContext(PaymentMethodContext)\n const paymentResource: PaymentResource = \"external_payments\"\n const locale = order?.language_code as StripeElementLocale\n\n if (!readonly && payment?.id !== currentPaymentMethodId) return null\n // @ts-expect-error no type\n const paymentSourceToken = paymentSource?.payment_source_token\n const getConfig = config\n ? getPaymentConfig<\"external_payments\">(paymentResource, config)\n : {}\n const paymentConfig = getConfig?.externalPayment\n const customerPayments =\n !isEmpty(payments) && payments\n ? payments.filter((customerPayment) => {\n return customerPayment.payment_source?.type === paymentResource\n })\n : []\n\n if (readonly || showCard) {\n const card = getCardDetails({\n customerPayment: {\n payment_source: paymentSource,\n },\n paymentType: paymentResource,\n })\n const value = { ...card, showCard, handleEditClick, readonly }\n return isEmpty(card) ? null : (\n <PaymentSourceContext.Provider value={value}>\n {children}\n </PaymentSourceContext.Provider>\n )\n }\n if (!isGuest && templateCustomerCards) {\n return (\n <>\n {isEmpty(customerPayments) ? null : (\n <div className={p.className}>\n <PaymentCardsTemplate {...{ paymentResource, customerPayments }}>\n {templateCustomerCards}\n </PaymentCardsTemplate>\n </div>\n )}\n <ExternalPayment\n show={show}\n templateCustomerSaveToWallet={templateCustomerSaveToWallet}\n paymentSourceToken={paymentSourceToken}\n locale={locale}\n {...paymentConfig}\n />\n </>\n )\n }\n return (\n <ExternalPayment\n show={show}\n paymentSourceToken={paymentSourceToken}\n locale={locale}\n {...paymentConfig}\n />\n )\n}\n\nexport default ExternalGateway\n","import OrderContext from '#context/OrderContext'\nimport PaymentMethodChildrenContext from '#context/PaymentMethodChildrenContext'\nimport PaymentMethodContext from '#context/PaymentMethodContext'\nimport type { PaymentResource } from '#reducers/PaymentMethodReducer'\nimport type { LoaderType } from '#typings'\nimport { useContext, useEffect, useState, type JSX } from 'react';\nimport type { PaymentSourceProps } from '../payment_source/PaymentSource'\nimport getLoaderComponent from '#utils/getLoaderComponent'\nimport AdyenGateway from './AdyenGateway'\nimport StripeGateway from './StripeGateway'\nimport BraintreeGateway from './BraintreeGateway'\nimport PaypalGateway from './PaypalGateway'\nimport WireTransferGateway from './WireTransferGateway'\nimport CustomerContext from '#context/CustomerContext'\nimport CheckoutComGateway from './CheckoutComGateway'\nimport KlarnaGateway from './KlarnaGateway'\nimport {\n getExternalPaymentAttributes,\n getPaypalAttributes,\n getStripeAttributes\n} from '#utils/getPaymentAttributes'\nimport ExternalGateway from './ExternalGateway'\nimport PlaceOrderContext from '#context/PlaceOrderContext'\n\nexport type GatewayBaseType = Props & {\n show: boolean\n loading: boolean\n loaderComponent: JSX.Element\n}\n\ntype Props = PaymentSourceProps & {\n showCard: boolean\n handleEditClick: (e: MouseEvent) => void\n show: boolean\n loader?: LoaderType\n}\n\nexport function PaymentGateway({\n readonly,\n showCard,\n handleEditClick,\n children,\n templateCustomerCards,\n templateCustomerSaveToWallet,\n onClickCustomerCards,\n show,\n loader = 'Loading...',\n ...p\n}: Props): JSX.Element | null {\n const loaderComponent = getLoaderComponent(loader)\n const [loading, setLoading] = useState(true)\n const { payment, expressPayments } = useContext(PaymentMethodChildrenContext)\n const { order } = useContext(OrderContext)\n const { getCustomerPaymentSources } = useContext(CustomerContext)\n const { status } = useContext(PlaceOrderContext)\n const {\n currentPaymentMethodId,\n config,\n currentPaymentMethodType,\n setPaymentSource,\n paymentSource\n } = useContext(PaymentMethodContext)\n const paymentResource = readonly\n ? currentPaymentMethodType\n : (payment?.payment_source_type as PaymentResource)\n useEffect(() => {\n if (\n payment?.id === currentPaymentMethodId &&\n paymentResource &&\n order?.payment_method?.payment_source_type === paymentResource &&\n !expressPayments\n ) {\n let attributes: Record<string, unknown> | undefined = {}\n if (config != null && paymentResource === 'paypal_payments') {\n attributes = getPaypalAttributes(paymentResource, config)\n }\n if (config != null && paymentResource === 'external_payments') {\n attributes = getExternalPaymentAttributes(paymentResource, config)\n }\n if (config != null && paymentResource === 'stripe_payments') {\n attributes = getStripeAttributes(paymentResource, config)\n if (attributes != null && attributes['return_url'] == null) {\n attributes['return_url'] = window.location.href\n }\n }\n const setPaymentSources = async (): Promise<void> => {\n if (order != null) {\n await setPaymentSource({\n paymentResource,\n order,\n attributes\n })\n }\n if (getCustomerPaymentSources) getCustomerPaymentSources()\n }\n if (\n !paymentSource &&\n order?.payment_method.id &&\n show &&\n !expressPayments\n ) {\n setPaymentSources()\n } else if (\n ((!paymentSource && !expressPayments) ||\n paymentSource?.type !== paymentResource) &&\n show\n ) {\n setPaymentSources()\n }\n // @ts-expect-error no type\n if (paymentSource?.mismatched_amounts && show) {\n setPaymentSources()\n }\n if (order?.payment_source?.id != null) {\n setLoading(false)\n }\n }\n if (expressPayments && show) setLoading(false)\n if (\n order?.status != null &&\n !['draft', 'pending'].includes(order?.status) &&\n show &&\n order?.payment_source?.id != null\n ) {\n setLoading(false)\n }\n return () => {\n setLoading(true)\n }\n }, [order?.payment_method?.id, show, paymentSource])\n\n useEffect(() => {\n if (status === 'placing') setLoading(true)\n if (status === 'standby' && loading) setLoading(false)\n return () => {\n setLoading(true)\n }\n }, [status])\n\n const gatewayConfig = {\n readonly,\n showCard,\n handleEditClick,\n children,\n templateCustomerCards,\n show,\n loading,\n onClickCustomerCards,\n loaderComponent,\n templateCustomerSaveToWallet,\n ...p\n }\n if (currentPaymentMethodType !== paymentResource) return null\n if (loading) return loaderComponent\n switch (paymentResource) {\n case 'adyen_payments':\n return <AdyenGateway {...gatewayConfig}>{children}</AdyenGateway>\n case 'braintree_payments':\n return <BraintreeGateway {...gatewayConfig}>{children}</BraintreeGateway>\n case 'checkout_com_payments':\n return (\n <CheckoutComGateway {...gatewayConfig}>{children}</CheckoutComGateway>\n )\n case 'external_payments':\n return <ExternalGateway {...gatewayConfig}>{children}</ExternalGateway>\n case 'klarna_payments':\n return <KlarnaGateway {...gatewayConfig}>{children}</KlarnaGateway>\n case 'stripe_payments':\n return <StripeGateway {...gatewayConfig}>{children}</StripeGateway>\n case 'wire_transfers':\n return (\n <WireTransferGateway {...gatewayConfig}>{children}</WireTransferGateway>\n )\n case 'paypal_payments':\n return <PaypalGateway {...gatewayConfig}>{children}</PaypalGateway>\n default:\n return null\n }\n}\n\nexport default PaymentGateway\n","import { useContext, useState, useEffect, type JSX } from 'react';\nimport PaymentMethodChildrenContext from '#context/PaymentMethodChildrenContext'\nimport PaymentMethodContext from '#context/PaymentMethodContext'\nimport CustomerContext from '#context/CustomerContext'\nimport PaymentGateway from '../payment_gateways/PaymentGateway'\nimport type { PaymentResource } from '#reducers/PaymentMethodReducer'\nimport type { LoaderType } from '#typings/index'\nimport type { CustomerCardsTemplateChildren } from '../utils/PaymentCardsTemplate'\nimport getCardDetails from '#utils/getCardDetails'\nimport OrderContext from '#context/OrderContext'\n\nexport interface CustomerCardsProps {\n handleClick: () => void\n}\n\nexport interface CustomerSaveToWalletProps {\n name: 'save_payment_source_to_customer_wallet'\n}\n\nexport interface PaymentSourceProps\n extends Omit<JSX.IntrinsicElements['div'], 'children'> {\n children?: JSX.Element | JSX.Element[]\n readonly?: boolean\n templateCustomerCards?: CustomerCardsTemplateChildren\n onClickCustomerCards?: () => void\n templateCustomerSaveToWallet?: (\n props: CustomerSaveToWalletProps\n ) => JSX.Element\n loader?: LoaderType\n}\n\nexport function PaymentSource(props: PaymentSourceProps): JSX.Element {\n const { readonly } = props\n const { payment, expressPayments } = useContext(PaymentMethodChildrenContext)\n const { order } = useContext(OrderContext)\n const { payments } = useContext(CustomerContext)\n const {\n currentPaymentMethodId,\n paymentSource,\n destroyPaymentSource,\n currentPaymentMethodType,\n currentCustomerPaymentSourceId\n } = useContext(PaymentMethodContext)\n const [show, setShow] = useState(false)\n const [showCard, setShowCard] = useState(false)\n\n useEffect(() => {\n const isCustomerPaymentSource =\n currentCustomerPaymentSourceId != null &&\n currentCustomerPaymentSourceId === paymentSource?.id\n if (readonly) {\n setShow(true)\n setShowCard(true)\n } else if (\n (payment?.id === currentPaymentMethodId || isCustomerPaymentSource) &&\n !expressPayments\n ) {\n setShow(true)\n const card = getCardDetails({\n paymentType: payment?.payment_source_type as PaymentResource,\n customerPayment: {\n payment_source: paymentSource\n }\n })\n if (isCustomerPaymentSource && card.brand === '') {\n // Force creadit card icon for customer payment source imported by API\n card.brand =\n card.issuer_type != null && card.issuer_type !== ''\n ? card.issuer_type\n : 'credit-card'\n }\n if (card.brand) {\n setShowCard(true)\n }\n } else if (\n expressPayments &&\n currentPaymentMethodType === 'stripe_payments'\n ) {\n setShow(true)\n } else setShow(false)\n return () => {\n setShow(false)\n setShowCard(false)\n }\n }, [\n currentPaymentMethodId,\n paymentSource?.id,\n payments != null,\n payment != null,\n readonly,\n order?.status,\n expressPayments\n ])\n const handleEditClick = async (e: MouseEvent): Promise<void> => {\n e.stopPropagation()\n if (paymentSource) {\n const paymentSourceId = paymentSource?.id\n await destroyPaymentSource({\n paymentSourceId,\n paymentResource: payment?.payment_source_type as PaymentResource\n })\n }\n setShowCard(!showCard)\n setShow(true)\n }\n const gatewayProps = { ...props, show, showCard, handleEditClick, readonly }\n return <PaymentGateway {...gatewayProps} />\n}\n\nexport default PaymentSource\n","import { createContext } from 'react'\nimport type { IconBrand } from './PaymentSourceContext'\n\ninterface DefaultContext {\n brand?: IconBrand | string\n exp_month?: number | string\n exp_year?: number | string\n last4?: string\n issuer_type?: string\n}\n\nexport const defaultCustomerPaymentSourceContext = {}\n\nconst CustomerPaymentSourceContext = createContext<DefaultContext>(\n defaultCustomerPaymentSourceContext\n)\n\nexport default CustomerPaymentSourceContext\n","import PaymentSourceContext, {\n type IconBrand\n} from '#context/PaymentSourceContext'\nimport { useContext, useRef, type JSX } from 'react';\nimport Parent from '#components/utils/Parent'\nimport type { ChildrenFunction } from '#typings'\nimport CustomerPaymentSourceContext from '#context/CustomerPaymentSourceContext'\n\ninterface ChildrenProps extends Omit<Props, 'children'> {\n brand: IconBrand\n defaultSrc: string\n url: string\n}\n\ninterface Props extends Omit<JSX.IntrinsicElements['img'], 'children'> {\n children?: ChildrenFunction<ChildrenProps>\n width?: number\n height?: number\n}\nexport function PaymentSourceBrandIcon({\n src,\n width = 32,\n children,\n ...p\n}: Props): JSX.Element {\n const { brand, issuer_type: issuerType } = useContext(PaymentSourceContext)\n const { brand: customerCardBrand, issuer_type: customerIssuerType } =\n useContext(CustomerPaymentSourceContext)\n const cardBrand =\n brand ?? customerCardBrand ?? issuerType ?? customerIssuerType\n const ref = useRef<HTMLImageElement>(null)\n const defaultSrc =\n '//data.commercelayer.app/assets/images/icons/credit-cards/color/credit-card.svg'\n const url =\n src ||\n `//data.commercelayer.app/assets/images/icons/credit-cards/color/${\n cardBrand ?? 'credit-card'\n }.svg`\n const handleError = (): void => {\n if (ref.current) ref.current.src = defaultSrc\n }\n const parentProps = {\n brand: cardBrand,\n defaultSrc,\n url,\n width,\n ...p\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <img ref={ref} src={url} onError={handleError} width={width} {...p} />\n )\n}\n\nexport default PaymentSourceBrandIcon\n","import PaymentSourceContext, {\n type IconBrand,\n} from \"#context/PaymentSourceContext\"\nimport capitalize from \"lodash-es/capitalize\"\nimport { useContext, type JSX } from \"react\"\nimport Parent from \"#components/utils/Parent\"\nimport type { ChildrenFunction } from \"#typings\"\nimport CustomerPaymentSourceContext from \"#context/CustomerPaymentSourceContext\"\n\ninterface CustomComponent extends Omit<Props, \"children\"> {\n brand: IconBrand\n}\n\ninterface Props extends Omit<JSX.IntrinsicElements[\"span\"], \"children\"> {\n children?: ChildrenFunction<CustomComponent>\n label?: string\n}\n\nexport function PaymentSourceBrandName({\n children,\n label,\n ...props\n}: Props): JSX.Element {\n const { brand } = useContext(PaymentSourceContext)\n const { brand: customerCardBrand } = useContext(CustomerPaymentSourceContext)\n const cardBrand = brand ?? customerCardBrand\n const brandName = cardBrand && capitalize(cardBrand.replace(/_|-/gm, \" \"))\n const parentProps = {\n brand: brandName,\n label,\n ...props,\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <span {...props}>{label || capitalize(brandName)}</span>\n )\n}\n\nexport default PaymentSourceBrandName\n","import PaymentSourceContext from '#context/PaymentSourceContext'\nimport { useContext, type JSX } from 'react';\nimport Parent from '#components/utils/Parent'\nimport type { ChildrenFunction } from '#typings'\nimport CustomerPaymentSourceContext from '#context/CustomerPaymentSourceContext'\n\nexport type PaymentSourceDetailType = 'last4' | 'exp_year' | 'exp_month'\n\ninterface ChildrenProps extends Omit<Props, 'children'> {\n text: string\n}\n\ninterface Props extends Omit<JSX.IntrinsicElements['span'], 'children'> {\n children?: ChildrenFunction<ChildrenProps>\n /**\n * Type of detail to display\n */\n type: PaymentSourceDetailType\n}\nexport function PaymentSourceDetail({\n type,\n children,\n ...p\n}: Props): JSX.Element {\n const card = useContext(PaymentSourceContext)\n const customerCard = useContext(CustomerPaymentSourceContext)\n const cardObj = Object.keys(card).length > 0 ? card : customerCard\n const text =\n type in cardObj && cardObj[type] != null\n ? cardObj[type]\n : type === 'last4'\n ? '****'\n : '**'\n const parentProps = {\n type,\n text,\n ...p\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <span {...p}>{text}</span>\n )\n}\n\nexport default PaymentSourceDetail\n","import PaymentSourceContext from '#context/PaymentSourceContext'\nimport { type ReactNode, useContext, type JSX } from 'react';\nimport Parent from '#components/utils/Parent'\nimport type { ChildrenFunction } from '#typings'\n\ninterface CustomComponent extends Omit<Props, 'children'> {}\n\ntype Props = {\n children?: ChildrenFunction<CustomComponent>\n label?: string | ReactNode\n} & Omit<JSX.IntrinsicElements['button'], 'onClick'>\nexport function PaymentSourceEditButton({\n children,\n label = 'Edit',\n ...props\n}: Props): JSX.Element | null {\n const { showCard, handleEditClick, readonly } =\n useContext(PaymentSourceContext)\n const parentProps = {\n showCard,\n label,\n handleEditClick,\n ...props\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : !readonly ? (\n <button {...props} onClick={handleEditClick as any}>\n {label}\n </button>\n ) : null\n}\n\nexport default PaymentSourceEditButton\n","import type { PriceProps } from '#components/prices/Price'\n\nimport type { JSX } from \"react\";\n\nexport type PTemplateProps = {\n formattedAmount?: string | null\n formattedCompare?: string | null\n} & Omit<PriceProps, 'children'>\n\nexport function PriceTemplate(props: PTemplateProps): JSX.Element {\n const {\n showCompare,\n formattedCompare,\n compareClassName,\n className,\n formattedAmount,\n skuCode,\n ...p\n } = props\n return (\n <>\n <span data-testid={`price-${skuCode ?? ''}`} className={className} {...p}>\n {formattedAmount}\n </span>\n {showCompare && (\n <span\n data-testid={`compare-${skuCode ?? ''}`}\n className={compareClassName || ''}\n {...p}\n >\n {formattedCompare}\n </span>\n )}\n </>\n )\n}\n\nexport default PriceTemplate\n","import type { Price } from \"@commercelayer/sdk\"\nimport PriceTemplate, {\n type PTemplateProps,\n} from \"#components/utils/PriceTemplate\"\n\nimport type { JSX } from \"react\"\n\nexport function getPriceByCode(\n skuPrices: Price[],\n code = \"\",\n): Price | undefined {\n return code ? skuPrices.find((p) => p.currency_code === code) : skuPrices[0]\n}\n\nexport function getPricesComponent(\n skuPrices: Price[],\n props: PTemplateProps,\n): JSX.Element[] | JSX.Element {\n if (!skuPrices || skuPrices.length === 0) {\n return <PriceTemplate {...props} />\n }\n return skuPrices.map((p, k) => {\n const showCompare =\n (typeof props.showCompare === \"undefined\" &&\n p?.compare_at_amount_cents != null &&\n p?.compare_at_amount_cents > p?.amount_cents) ||\n props.showCompare\n return (\n <PriceTemplate\n {...props}\n key={k}\n showCompare={showCompare}\n formattedAmount={p.formatted_amount}\n formattedCompare={p.formatted_compare_at_amount}\n skuCode={p.sku_code}\n />\n )\n })\n}\n\nexport default function getPrices<P extends Price>(\n prices: P[],\n): Record<string, P[]> {\n const obj: Record<string, any> = {}\n if (Array.isArray(prices)) {\n for (const p of prices) {\n const sku = p?.sku_code ?? \"\"\n if (sku in obj) {\n obj[sku].push(p)\n } else {\n obj[sku] = [p]\n }\n }\n }\n return obj\n}\n","import type { BaseAction, LoaderType } from '#typings'\nimport type { QueryPageSize, Price } from '@commercelayer/sdk'\nimport getPrices from '#utils/getPrices'\nimport type { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport type { Dispatch } from 'react'\nimport baseReducer from '#utils/baseReducer'\nimport type { BaseError, TAPIError } from '#typings/errors'\nimport getSdk from '#utils/getSdk'\nimport getErrors from '#utils/getErrors'\n\nexport type Prices = Record<string, Price | Price[]>\n\ntype SkuCodesPrice = string[]\n\nexport interface PriceState {\n loading: boolean\n prices: Prices\n skuCodes: SkuCodesPrice\n errors?: BaseError[]\n skuCode?: string\n setSkuCodes?: typeof setSkuCodes\n loader?: LoaderType\n}\n\nexport interface PriceAction extends BaseAction {\n type: PriceActionType\n}\n\nexport const priceInitialState: PriceState = {\n loading: true,\n prices: {},\n skuCodes: [],\n errors: []\n}\n\nexport function setSkuCodes({\n skuCodes,\n dispatch\n}: {\n skuCodes: SkuCodesPrice\n dispatch?: Dispatch<PriceAction>\n}): void {\n if (dispatch) {\n dispatch({\n type: 'setSkuCodes',\n payload: { skuCodes }\n })\n }\n}\n\nexport function getSkusPrice(\n skuCodes: SkuCodesPrice,\n {\n config,\n dispatch,\n perPage,\n filters\n }: {\n config: CommerceLayerConfig\n dispatch: Dispatch<PriceAction>\n perPage: QueryPageSize\n filters: Record<string, any>\n }\n): void {\n let allPrices = {}\n const sdk = getSdk(config)\n sdk.prices\n .list({\n filters: { sku_code_in: skuCodes.join(','), ...filters },\n pageSize: perPage\n })\n .then(async (response) => {\n const pricesObj = getPrices(response)\n allPrices = { ...allPrices, ...pricesObj }\n dispatch({\n type: 'setPrices',\n payload: { prices: allPrices }\n })\n dispatch({\n type: 'setLoading',\n payload: { loading: false }\n })\n const meta = response.meta\n if (meta.pageCount > 1) {\n for (\n let pageNumber = meta.currentPage + 1;\n pageNumber <= meta.pageCount;\n pageNumber++\n ) {\n const pageResponse = await sdk.prices.list({\n filters: { sku_code_in: skuCodes.join(','), ...filters },\n pageSize: perPage,\n pageNumber\n })\n const pricesObj = getPrices(pageResponse)\n allPrices = { ...allPrices, ...pricesObj }\n dispatch({\n type: 'setPrices',\n payload: { prices: allPrices }\n })\n }\n }\n })\n .catch((error: TAPIError) => {\n const errors = getErrors({\n error,\n resource: 'prices'\n })\n dispatch({\n type: 'setErrors',\n payload: {\n errors\n }\n })\n })\n}\n\nexport type UnsetPriceState = (dispatch: Dispatch<PriceAction>) => void\n\nexport const unsetPriceState: UnsetPriceState = (dispatch) => {\n dispatch({\n type: 'setPrices',\n payload: {\n prices: {}\n }\n })\n dispatch({\n type: 'setLoading',\n payload: { loading: false }\n })\n}\n\nexport type PriceActionType =\n | 'setLoading'\n | 'setPrices'\n | 'setSkuCodes'\n | 'setErrors'\n\nconst typeAction: PriceActionType[] = [\n 'setLoading',\n 'setPrices',\n 'setSkuCodes',\n 'setErrors'\n]\n\nconst priceReducer = (state: PriceState, reducer: PriceAction): PriceState =>\n baseReducer<PriceState, PriceAction, PriceActionType[]>(\n state,\n reducer,\n typeAction\n )\n\nexport default priceReducer\n","import { createContext } from 'react'\nimport { priceInitialState, type PriceState } from '#reducers/PriceReducer'\n\nexport interface PricesContextValue extends PriceState {\n skuCode: PriceState['skuCode']\n}\n\nconst PricesContext = createContext(priceInitialState)\n\nexport default PricesContext\n","import Parent from '#components/utils/Parent'\nimport PricesContext from '#context/PricesContext'\nimport { useState, useEffect, useContext, type JSX } from 'react';\nimport { getPricesComponent } from '#utils/getPrices'\nimport type { Price as PriceType } from '@commercelayer/sdk'\nimport type { ChildrenFunction, LoaderType } from '#typings/index'\nimport SkuChildrenContext from '#context/SkuChildrenContext'\n\ninterface PriceChildrenProps extends Omit<PriceProps, 'children'> {\n loading: boolean\n loader: LoaderType\n prices: PriceType[]\n}\n\nexport interface PriceProps\n extends Omit<JSX.IntrinsicElements['span'], 'children' | 'ref'> {\n children?: ChildrenFunction<PriceChildrenProps>\n /**\n * CSS class name to be added for the compare price\n */\n compareClassName?: string\n /**\n * When `false` the compare_at price will not be displayed\n * @default true\n */\n showCompare?: boolean\n /**\n * The `sku_code` of the price to be fetched\n */\n skuCode?: string | null\n}\n\n/**\n * To display the price of your products with localized currency, discounts, and personalization rules, as shown in the code snippets below.\n *\n * Each price has an amount (the actual selling price) and an optional compare-at amount (the full price that you want to display to the customer — typically with a strikethrough).\n * This component is the owner of the price information. It fetches the price of the specified SKU and dispatches it to the cl-price-amount children.\n * <span type='info'>\n * By default it shows the `formatted_amount` and `formatted_compare_at_amount` of the first price object, but it also allows to access to the full `Price`object via children props.\n * </span>\n */\nexport function Price(props: PriceProps): JSX.Element {\n const { children, skuCode = '' } = props\n const {\n prices,\n skuCode: pricesSkuCode,\n loading,\n skuCodes,\n setSkuCodes,\n loader\n } = useContext(PricesContext)\n const { sku } = useContext(SkuChildrenContext)\n const [skuPrices, setSkuPrices] = useState<PriceType[]>([])\n const sCode = pricesSkuCode || skuCode || sku?.code || ''\n useEffect(() => {\n if (prices != null && `${sCode}` in prices) {\n setSkuPrices(prices[sCode] as PriceType[])\n } else {\n if (sCode && !skuCodes.includes(sCode)) {\n skuCodes.push(sCode)\n if (setSkuCodes) setSkuCodes({ skuCodes })\n }\n }\n return (): void => {\n setSkuPrices([])\n }\n }, [prices, sCode])\n const parentProps = {\n loading,\n loader,\n prices: skuPrices,\n ...props\n }\n const pricesComponent =\n prices == null || skuPrices == null\n ? null\n : getPricesComponent(skuPrices, props)\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <>{loading || pricesComponent == null ? loader : pricesComponent}</>\n )\n}\n\nexport default Price\n","import type { SkuState } from '#reducers/SkuReducer'\nimport { createContext } from 'react'\n\nexport type SkuContextValue = SkuState\n\nconst SkuContext = createContext<SkuContextValue>({})\n\nexport default SkuContext\n","import { useEffect, useContext, useReducer, type JSX } from 'react';\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport priceReducer, {\n priceInitialState,\n getSkusPrice,\n setSkuCodes\n} from '#reducers/PriceReducer'\nimport PricesContext, { type PricesContextValue } from '#context/PricesContext'\nimport type { LoaderType } from '#typings'\nimport SkuContext from '#context/SkuContext'\nimport type { QueryPageSize } from '@commercelayer/sdk'\n\ninterface Props {\n /**\n * Any valid JSX.Element(s).\n * A single `<Price>` component or a list of them is expected to render the prices.\n */\n children: JSX.Element | JSX.Element[]\n /**\n * SDK query filter to fetch the prices when multiple prices are requested.\n */\n filters?: object\n /**\n * Loader component or string to be rendered while the prices are being fetched.\n * @default 'Loading...'\n */\n loader?: LoaderType\n /**\n * Prices per page to be fetched\n */\n perPage?: QueryPageSize\n /**\n * SKU code to fetch the prices for. If not provided, the `sku_code` will be retrieved from the `<Price>` component(s) nested as children.\n */\n skuCode?: string\n}\n\n/**\n * Main container for the Prices components. It stores the prices context.\n *\n * It can be used to fetch the prices for a specific `sku_code` passed as prop\n * or for the `sku_code` retrieved from all `<Price>` components nested as children.\n * <span title='Requirements' type='warning'>\n * Must be a child of the `<CommerceLayer>` component.\n * </span>\n * <span title='Children' type='info'>\n * `<Price>`\n * </span>\n */\nexport function PricesContainer(props: Props): JSX.Element {\n const {\n children,\n skuCode = '',\n loader = 'Loading...',\n perPage = 10,\n filters = {}\n } = props\n const [state, dispatch] = useReducer(priceReducer, priceInitialState)\n const config = useContext(CommerceLayerContext)\n const { skuCodes } = useContext(SkuContext)\n if (!state.skuCodes.includes(skuCode) && skuCode) state.skuCodes.push(skuCode)\n const sCode = skuCodes && skuCodes?.length > 0 ? '' : skuCode ?? ''\n useEffect(() => {\n if (\n state.skuCodes.length === 0 &&\n skuCodes != null &&\n skuCodes.length > 0 &&\n state.setSkuCodes != null\n ) {\n state.setSkuCodes({ skuCodes, dispatch })\n }\n if (config.accessToken) {\n if (state.skuCodes.length > 0 || sCode) {\n getSkusPrice((sCode && [sCode]) || state.skuCodes, {\n config,\n dispatch,\n perPage,\n filters\n })\n }\n }\n }, [config.accessToken, sCode, state.skuCodes.length])\n const priceValue: PricesContextValue = {\n ...state,\n skuCode: sCode,\n loader,\n setSkuCodes: (params: Parameters<typeof setSkuCodes>[number]): void => {\n setSkuCodes({ ...params, dispatch })\n }\n }\n return (\n <PricesContext.Provider value={priceValue}>\n {children}\n </PricesContext.Provider>\n )\n}\n\nexport default PricesContainer\n","import { useContext, type ReactNode, useState, useEffect, type JSX } from 'react';\nimport ShipmentContext from '#context/ShipmentContext'\nimport ShipmentChildrenContext, {\n type InitialShipmentContext\n} from '#context/ShipmentChildrenContext'\nimport getLoaderComponent from '#utils/getLoaderComponent'\nimport type { LoaderType } from '#typings'\nimport type { Order } from '@commercelayer/sdk'\nimport OrderContext from '#context/OrderContext'\n\ninterface ShipmentProps {\n children: ReactNode\n loader?: LoaderType\n autoSelectSingleShippingMethod?: boolean | ((order?: Order) => void)\n}\n\nexport function Shipment({\n children,\n loader = 'Loading...',\n autoSelectSingleShippingMethod = false\n}: ShipmentProps): JSX.Element {\n const [loading, setLoading] = useState(true)\n const { shipments, deliveryLeadTimes, setShippingMethod } =\n useContext(ShipmentContext)\n const { order } = useContext(OrderContext)\n useEffect(() => {\n if (shipments != null) {\n if (autoSelectSingleShippingMethod) {\n const autoSelect = async (): Promise<void> => {\n for (const shipment of shipments) {\n const isSingle = shipment?.available_shipping_methods?.length === 1\n if (!shipment?.shipping_method && isSingle) {\n const [shippingMethod] =\n shipment?.available_shipping_methods || []\n if (shippingMethod && setShippingMethod != null) {\n const { success, order } = await setShippingMethod(\n shipment.id,\n shippingMethod.id\n )\n if (\n typeof autoSelectSingleShippingMethod === 'function' &&\n success\n ) {\n autoSelectSingleShippingMethod(order)\n }\n }\n } else {\n setTimeout(() => {\n setLoading(false)\n }, 200)\n }\n }\n }\n autoSelect()\n } else {\n setLoading(false)\n }\n }\n return () => {\n setLoading(true)\n }\n // @ts-expect-error deprecate `gift_card_or_coupon_code`\n }, [shipments != null, shipments?.length, order?.gift_card_or_coupon_code])\n const components = shipments?.map((shipment, k) => {\n const shipmentLineItems = shipment.stock_line_items\n const lineItems = shipmentLineItems?.map((shipmentLineItem) => {\n const l = shipmentLineItem.line_item\n if (l) l.quantity = shipmentLineItem.quantity\n return l\n })\n const shippingMethods = shipment.available_shipping_methods\n const currentShippingMethodId =\n autoSelectSingleShippingMethod &&\n shippingMethods &&\n shippingMethods.length === 1\n ? shippingMethods[0]?.id\n : shipment.shipping_method?.id\n const stockTransfers = shipment.stock_transfers\n const parcels = shipment.parcels\n const times = deliveryLeadTimes?.filter(\n (time) => time.stock_location?.id === shipment.stock_location?.id\n )\n const shipmentProps: InitialShipmentContext = {\n parcels,\n lineItems,\n shippingMethods,\n currentShippingMethodId,\n stockTransfers,\n deliveryLeadTimes: times,\n shipment,\n keyNumber: shipment?.id\n }\n return (\n <ShipmentChildrenContext.Provider key={k} value={shipmentProps}>\n {children}\n </ShipmentChildrenContext.Provider>\n )\n })\n return !loading ? <>{components}</> : getLoaderComponent(loader)\n}\n\nexport default Shipment\n","import { useContext, type JSX } from \"react\"\nimport Parent from \"#components/utils/Parent\"\nimport get from \"lodash-es/get\"\nimport type { Shipment } from \"@commercelayer/sdk\"\nimport ShipmentChildrenContext from \"#context/ShipmentChildrenContext\"\n\ntype ShipmentFieldChildrenProps = Omit<Props, \"children\"> & {\n shipment: Shipment\n}\n\nexport type ShipmentAttribute =\n | \"number\"\n | \"currency_code\"\n | \"status\"\n | \"cost_amount_cents\"\n | \"cost_amount_float\"\n | \"formatted_cost_amount\"\n | \"key_number\"\n\ninterface Props\n extends Omit<JSX.IntrinsicElements[\"span\"], \"children\" | \"ref\"> {\n children?: (props: ShipmentFieldChildrenProps) => JSX.Element\n name: ShipmentAttribute\n}\n\nexport function ShipmentField(props: Props): JSX.Element {\n const { name } = props\n const { shipment, keyNumber } = useContext(ShipmentChildrenContext)\n const key = name\n const text = key !== \"key_number\" ? get(shipment, key) : keyNumber\n const parentProps = {\n shipment,\n ...props,\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <span {...props}>{text}</span>\n )\n}\n\nexport default ShipmentField\n","import ShipmentContext, {\n defaultShipmentContext,\n} from \"#context/ShipmentContext\"\nimport {\n type ReactNode,\n useContext,\n useEffect,\n useMemo,\n useReducer,\n type JSX,\n} from \"react\"\nimport shipmentReducer, {\n shipmentInitialState,\n setShipmentErrors,\n getShipments,\n setShippingMethod,\n} from \"#reducers/ShipmentReducer\"\nimport OrderContext from \"#context/OrderContext\"\nimport CommerceLayerContext from \"#context/CommerceLayerContext\"\nimport type { BaseError } from \"#typings/errors\"\nimport isEmpty from \"lodash-es/isEmpty\"\n\ninterface Props {\n children: ReactNode\n}\nexport function ShipmentsContainer(props: Props): JSX.Element {\n const { children } = props\n const [state, dispatch] = useReducer(shipmentReducer, shipmentInitialState)\n const { order, getOrder, include, addResourceToInclude, includeLoaded } =\n useContext(OrderContext)\n const config = useContext(CommerceLayerContext)\n useEffect(() => {\n if (!include?.includes(\"shipments.available_shipping_methods\")) {\n addResourceToInclude({\n newResource: [\n \"shipments.available_shipping_methods\",\n \"shipments.stock_line_items.line_item\",\n \"shipments.shipping_method\",\n \"shipments.stock_transfers.line_item\",\n \"shipments.stock_location\",\n \"shipments.parcels.parcel_line_items\",\n ],\n })\n } else if (!includeLoaded?.[\"shipments.available_shipping_methods\"]) {\n addResourceToInclude({\n newResourceLoaded: {\n \"shipments.available_shipping_methods\": true,\n \"shipments.stock_line_items.line_item\": true,\n \"shipments.shipping_method\": true,\n \"shipments.stock_transfers.line_item\": true,\n \"shipments.stock_location\": true,\n \"shipments.parcels.parcel_line_items\": true,\n },\n })\n }\n }, [include?.length, includeLoaded != null])\n useEffect(() => {\n if (order != null && !isEmpty(config) && order.shipments) {\n getShipments({ order, dispatch, config })\n }\n }, [order?.shipments])\n useEffect(() => {\n if (order) {\n if (order.shipments && order.shipments.length > 0) {\n const hasShippingMethods = order.shipments.map((shipment) => {\n return (\n shipment.available_shipping_methods &&\n shipment.available_shipping_methods.length > 0\n )\n })\n if (hasShippingMethods.includes(false)) {\n setShipmentErrors(\n [\n ...(state.errors || []),\n {\n code: \"NO_SHIPPING_METHODS\",\n message: \"No shipping methods\",\n resource: \"shipments\",\n },\n ],\n dispatch,\n )\n }\n }\n if (order.line_items && order.line_items.length > 0) {\n const hasStocks = order.line_items\n .filter(({ item_type: itemType }) => itemType === \"skus\")\n .map((lineItem) => {\n const conditions =\n // @ts-expect-error no type\n lineItem.item?.do_not_ship ||\n // @ts-expect-error no type\n lineItem.item?.do_not_track ||\n // @ts-expect-error no type\n lineItem.item?.inventory?.quantity >= lineItem?.quantity\n return !!conditions\n })\n if (hasStocks.includes(false)) {\n setShipmentErrors(\n [\n ...(state.errors || []),\n {\n code: \"OUT_OF_STOCK\",\n message: \"No stock available\",\n resource: \"line_items\",\n },\n ],\n dispatch,\n )\n }\n }\n }\n return () => {\n setShipmentErrors([], dispatch)\n }\n }, [order?.shipments])\n const contextValue = useMemo(() => {\n return {\n ...state,\n setShipmentErrors: (errors: BaseError[]) => {\n defaultShipmentContext.setShipmentErrors(errors, dispatch)\n },\n setShippingMethod: async (shipmentId: string, shippingMethodId: string) =>\n await setShippingMethod({\n shippingMethodId,\n shipmentId,\n config,\n getOrder,\n order,\n }),\n }\n }, [state])\n return (\n <ShipmentContext.Provider value={contextValue}>\n {children}\n </ShipmentContext.Provider>\n )\n}\n\nexport default ShipmentsContainer\n","import Parent from '#components/utils/Parent'\nimport ShipmentContext from '#context/ShipmentContext'\nimport type { ChildrenFunction } from '#typings/index'\nimport useCustomContext from '#utils/hooks/useCustomContext'\nimport type { Shipment } from '@commercelayer/sdk'\n\nimport type { JSX } from \"react\";\n\ninterface ChildrenProps extends Omit<Props, 'children'> {\n /**\n * Shipments of the current order\n */\n shipments?: Shipment[] | null\n /**\n * Quantity of the shipments\n */\n quantity: number\n}\n\ninterface Props extends Omit<JSX.IntrinsicElements['span'], 'children' | 'ref'> {\n children?: ChildrenFunction<ChildrenProps>\n}\n\nexport function ShipmentsCount({ children, ...p }: Props): JSX.Element {\n const { shipments } = useCustomContext({\n context: ShipmentContext,\n contextComponentName: 'ShipmentsContainer',\n currentComponentName: 'ShipmentsCount',\n key: 'shipments'\n })\n const quantity = shipments?.length ?? 0\n const childrenProps: ChildrenProps = {\n ...p,\n quantity,\n shipments\n }\n return children ? (\n <Parent {...childrenProps}>{children}</Parent>\n ) : (\n <span {...p}>{quantity}</span>\n )\n}\n\nexport default ShipmentsCount\n","import { createContext } from 'react'\nimport type { DeliveryLeadTime, ShippingMethod } from '@commercelayer/sdk'\n\nexport interface InitialShippingMethodContext {\n shippingMethod?: ShippingMethod\n deliveryLeadTimeForShipment?: DeliveryLeadTime\n currentShippingMethodId?: string\n shipmentId?: string\n}\n\nconst initial: InitialShippingMethodContext = {}\n\nconst ShippingMethodChildrenContext =\n createContext<InitialShippingMethodContext>(initial)\n\nexport default ShippingMethodChildrenContext\n","import {\n useContext,\n type ReactNode,\n useEffect,\n useState,\n type JSX,\n} from \"react\"\nimport ShippingMethodChildrenContext from \"#context/ShippingMethodChildrenContext\"\nimport ShipmentChildrenContext from \"#context/ShipmentChildrenContext\"\nimport isEmpty from \"lodash-es/isEmpty\"\n\ninterface Props {\n children: ReactNode\n readonly?: boolean\n emptyText?: string\n}\nexport function ShippingMethod(props: Props): JSX.Element {\n const {\n children,\n readonly,\n emptyText = `There are not any shipping method available`,\n } = props\n const {\n shippingMethods,\n currentShippingMethodId,\n deliveryLeadTimes,\n shipment,\n } = useContext(ShipmentChildrenContext)\n const [items, setItems] = useState<JSX.Element[]>([])\n useEffect(() => {\n const methods = shippingMethods\n ?.filter((s) => {\n if (readonly) return s.id === currentShippingMethodId\n return true\n })\n .map((shippingMethod, k) => {\n const [deliveryLeadTimeForShipment] =\n deliveryLeadTimes?.filter((delivery) => {\n const deliveryShippingMethodId = delivery.shipping_method?.id\n return shippingMethod.id === deliveryShippingMethodId\n }) ?? []\n const shippingProps = {\n shipmentId: shipment?.id,\n shippingMethod,\n currentShippingMethodId,\n deliveryLeadTimeForShipment,\n }\n return (\n <ShippingMethodChildrenContext.Provider key={k} value={shippingProps}>\n {children}\n </ShippingMethodChildrenContext.Provider>\n )\n })\n if (methods) setItems(methods)\n return () => {\n setItems([])\n }\n }, [currentShippingMethodId, deliveryLeadTimes, shippingMethods])\n const components = (!isEmpty(items) && items) || emptyText\n return <>{components}</>\n}\n\nexport default ShippingMethod\n","import { useContext, type JSX } from 'react';\nimport ShippingMethodChildrenContext from '#context/ShippingMethodChildrenContext'\nimport Parent from '#components/utils/Parent'\nimport type { ShippingMethod } from '@commercelayer/sdk'\n\ntype ChildrenProps = Omit<Props, 'children'> & {\n label: string\n shippingMethod: ShippingMethod\n}\n\ninterface Props extends Omit<JSX.IntrinsicElements['label'], 'children' | 'ref'> {\n children?: (props: ChildrenProps) => JSX.Element\n}\n\nexport function ShippingMethodName(props: Props): JSX.Element {\n const { shippingMethod, deliveryLeadTimeForShipment, shipmentId } =\n useContext(ShippingMethodChildrenContext)\n const htmlFor =\n `shipment-${shipmentId ?? ''}-${shippingMethod?.id ?? ''}` || ''\n const labelName = shippingMethod?.name\n const parentProps = {\n shippingMethod,\n deliveryLeadTimeForShipment,\n label: labelName,\n htmlFor,\n ...props\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <label htmlFor={htmlFor} {...props}>\n {labelName}\n </label>\n )\n}\n\nexport default ShippingMethodName\n","import { useState, useEffect, useContext, type JSX } from 'react';\nimport getAmount from '#utils/getAmount'\nimport ShippingMethodChildrenContext from '#context/ShippingMethodChildrenContext'\nimport Parent from '#components/utils/Parent'\nimport type { BaseAmountComponent } from '#typings/index'\n\ntype Props = BaseAmountComponent & {\n /**\n * The label to show when the price is free\n */\n labelFreeOver?: string\n /**\n * The label to show when the price is external\n */\n labelExternal?: string\n} & (\n | {\n type?: 'amount'\n base?: 'freeOver'\n }\n | {\n type?: 'amount' | 'amountForShipment'\n base?: 'price'\n }\n )\n\nexport function ShippingMethodPrice(props: Props): JSX.Element {\n const {\n base = 'price_amount',\n type = 'for_shipment',\n format = 'formatted',\n labelFreeOver = 'Free',\n labelExternal = 'Price estimates after the shipping method selection',\n ...p\n } = props\n const { shippingMethod } = useContext(ShippingMethodChildrenContext)\n const [price, setPrice] = useState('')\n const [priceCents, setPriceCents] = useState(0)\n const scheme = shippingMethod?.scheme\n useEffect(() => {\n if (shippingMethod) {\n const p = getAmount({\n base,\n type,\n format,\n obj: shippingMethod\n })\n setPrice(p)\n const pCents = getAmount<number>({\n base: 'price_amount',\n type: 'for_shipment',\n format: 'cents',\n obj: shippingMethod\n })\n setPriceCents(pCents)\n }\n return (): void => {\n setPrice('')\n setPriceCents(0)\n }\n }, [shippingMethod])\n const parentProps = {\n price,\n scheme,\n ...p\n }\n const finalPrice = priceCents === 0 ? labelFreeOver : price\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <span {...p}>{scheme === 'external' ? labelExternal : finalPrice}</span>\n )\n}\n\nexport default ShippingMethodPrice\n","import { useContext, useEffect, useState, type JSX } from 'react';\nimport ShippingMethodChildrenContext from '#context/ShippingMethodChildrenContext'\nimport Parent from '#components/utils/Parent'\nimport ShipmentContext from '#context/ShipmentContext'\nimport type { Order, ShippingMethod } from '@commercelayer/sdk'\n\ninterface ShippingMethodRadioButtonType extends Omit<Props, 'children'> {\n shippingMethod: ShippingMethod\n shipmentId: string\n}\n\ninterface TOnChange {\n shippingMethod: ShippingMethod\n shipmentId: string\n order?: Order\n}\n\ntype Props = {\n children?: (props: ShippingMethodRadioButtonType) => JSX.Element\n onChange?: (params: TOnChange) => void\n} & Omit<JSX.IntrinsicElements['input'], 'onChange' | 'ref' | 'children'>\n\nexport function ShippingMethodRadioButton(props: Props): JSX.Element {\n const { onChange, children, ...p } = props\n const [checked, setChecked] = useState(false)\n const [disabled, setDisabled] = useState(false)\n const { shippingMethod, currentShippingMethodId, shipmentId } = useContext(\n ShippingMethodChildrenContext\n )\n const { setShippingMethod } = useContext(ShipmentContext)\n const shippingMethodId = shippingMethod?.id\n const name = `shipment-${shipmentId ?? ''}`\n const id = `${name}-${shippingMethodId ?? ''}`\n useEffect(() => {\n if (shippingMethodId === currentShippingMethodId) {\n setChecked(true)\n } else setChecked(false)\n return () => {\n setChecked(false)\n }\n }, [currentShippingMethodId, shippingMethodId])\n\n const handleOnChange = async (): Promise<void> => {\n setDisabled(true)\n if (shipmentId) {\n if (shippingMethodId && setShippingMethod != null) {\n const { order } = await setShippingMethod(shipmentId, shippingMethodId)\n if (shippingMethod && onChange != null)\n onChange({\n shippingMethod,\n shipmentId,\n order\n })\n }\n }\n setDisabled(false)\n }\n const parentProps = {\n shippingMethod,\n shipmentId,\n handleOnChange,\n name,\n id,\n disabled,\n ...props\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <input\n disabled={disabled}\n type='radio'\n name={name}\n id={id}\n onChange={(e) => {\n e.preventDefault()\n e.stopPropagation()\n handleOnChange()\n }}\n checked={checked}\n {...p}\n />\n )\n}\n\nexport default ShippingMethodRadioButton\n","import baseReducer from '#utils/baseReducer'\nimport type { BaseError } from '#typings/errors'\nimport type { Sku } from '@commercelayer/sdk'\nimport type { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport type { Dispatch } from 'react'\nimport getSdk from '#utils/getSdk'\n\nexport interface DeliveryLeadTime {\n shipping_method: {\n name: string\n reference: string\n price_amount_cents: number\n free_over_amount_cents: number\n formatted_price_amount: string\n formatted_free_over_amount: string\n }\n min: LeadTimes\n max: LeadTimes\n}\n\ninterface Level {\n delivery_lead_times: Partial<DeliveryLeadTime>[]\n quantity: number\n}\n\ninterface Inventory {\n inventory: {\n available: boolean\n quantity: number\n levels: Level[]\n }\n}\n\nexport type SkuInventory = Sku & Inventory\n\nexport interface LeadTimes {\n hours: number\n days: number\n}\n\nexport type AvailabilityPayload = {\n skuCode?: string\n quantity?: number\n errors?: BaseError[]\n parent?: boolean\n} & Partial<DeliveryLeadTime>\n\nexport type AvailabilityState = AvailabilityPayload\n\nexport interface AvailabilityAction {\n type: AvailabilityActionType\n payload: AvailabilityPayload\n}\n\nexport const availabilityInitialState: AvailabilityState = {}\n\nexport async function getAvailability({\n skuCode,\n skuId,\n dispatch,\n config\n}: {\n skuCode?: string\n skuId?: string\n dispatch: Dispatch<AvailabilityAction>\n config: CommerceLayerConfig\n}): Promise<void> {\n const sdk = getSdk(config)\n try {\n const [sku] =\n skuId != null\n ? [{ id: skuId }]\n : skuCode != null\n ? await sdk.skus.list({\n fields: { skus: ['id'] },\n filters: { code_in: skuCode }\n })\n : []\n if (sku) {\n const skuInventory = (await sdk.skus.retrieve(sku.id, {\n fields: { skus: ['inventory'] }\n })) as SkuInventory\n const [level] = skuInventory.inventory?.levels || []\n const [delivery] = level?.delivery_lead_times || []\n dispatch({\n type: 'setAvailability',\n payload: {\n ...delivery,\n quantity: skuInventory.inventory.quantity,\n skuCode\n }\n })\n }\n } catch (error) {\n console.error('Get SKU availability', error)\n }\n}\n\nexport type AvailabilityActionType = 'setAvailability' | 'setErrors'\n\nconst typeAction: AvailabilityActionType[] = ['setAvailability', 'setErrors']\n\nconst availabilityReducer = (\n state: AvailabilityState,\n reducer: AvailabilityAction\n): AvailabilityState =>\n baseReducer<AvailabilityState, AvailabilityAction, AvailabilityActionType[]>(\n state,\n reducer,\n typeAction\n )\n\nexport default availabilityReducer\n","import { createContext } from 'react'\nimport { availabilityInitialState } from '#reducers/AvailabilityReducer'\n\nconst AvailabilityContext = createContext(availabilityInitialState)\n\nexport default AvailabilityContext\n","import { useContext, useReducer, useEffect, type ReactNode, useMemo, type JSX } from 'react';\nimport availabilityReducer, {\n availabilityInitialState,\n getAvailability\n} from '#reducers/AvailabilityReducer'\nimport AvailabilityContext from '#context/AvailabilityContext'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport LineItemChildrenContext from '#context/LineItemChildrenContext'\nimport SkuChildrenContext from '#context/SkuChildrenContext'\nimport useCustomContext from '#utils/hooks/useCustomContext'\n\ninterface Props {\n /**\n * The children component\n */\n children: ReactNode\n /**\n * The sku code\n */\n skuCode?: string\n /**\n * The sku id. If you use this prop, the skuCode will be ignored and the sku will be fetched by id improving the performance\n */\n skuId?: string\n /**\n * Callback called when the quantity is updated\n */\n getQuantity?: (quantity: number) => void\n}\n\n/**\n * Main container for the Availability components.\n * It stores - in its context - the sku quantity returned from the `inventory_model` and the `delivery_lead_time` for the first shipping method found in the inventory model.\n *\n * It can be used to fetch the quantities for a specific `sku_code` passed as prop.\n * <span title='Requirements' type='warning'>\n * Must be a child of the `<CommerceLayer>` component. <br/>\n * Can be a child of the `<SkusContainer>` component and receive the `sku_code` from its context.\n * </span>\n * <span title='Children' type='info'>\n * `<AvailabilityTemplate>`\n * </span>\n */\nexport function AvailabilityContainer({\n children,\n skuCode,\n skuId,\n getQuantity\n}: Props): JSX.Element {\n const { lineItem } = useContext(LineItemChildrenContext)\n const { sku } = useContext(SkuChildrenContext)\n const { accessToken, endpoint } = useCustomContext({\n context: CommerceLayerContext,\n contextComponentName: 'CommerceLayer',\n currentComponentName: 'AvailabilityContainer',\n key: 'accessToken'\n })\n const [state, dispatch] = useReducer(\n availabilityReducer,\n availabilityInitialState\n )\n const sCode = skuCode || lineItem?.sku_code || sku?.code\n useEffect(() => {\n if (accessToken != null && accessToken !== '') {\n const config = { accessToken, endpoint }\n if (sCode != null || skuId != null) {\n getAvailability({ skuCode: sCode, skuId, config, dispatch })\n }\n }\n return (): void => {\n dispatch({\n type: 'setAvailability',\n payload: {}\n })\n }\n }, [accessToken, sCode, skuId])\n useEffect(() => {\n if (getQuantity != null && state?.quantity != null)\n getQuantity(state?.quantity)\n }, [state.quantity])\n const memoized = useMemo(() => {\n return { ...state, parent: true }\n }, [state])\n return (\n <AvailabilityContext.Provider value={memoized}>\n {children}\n </AvailabilityContext.Provider>\n )\n}\n\nexport default AvailabilityContainer\n","import AvailabilityContext from '#context/AvailabilityContext'\nimport Parent from '#components/utils/Parent'\nimport type { TimeFormat, ChildrenFunction } from '#typings/index'\nimport type { DeliveryLeadTime } from '#reducers/AvailabilityReducer'\nimport useCustomContext from '#utils/hooks/useCustomContext'\n\nimport type { JSX } from \"react\";\n\ninterface AvailabilityTemplateChildrenProps\n extends Omit<Props, 'children'>,\n DeliveryLeadTime {\n text: string\n quantity: number\n}\n\ntype FormatRules =\n | {\n /**\n * Set time format for shipping method. When not set, ``delivery_lead_times`` will not be displayed.\n * When set, `delivery_lead_times` for the first shipping method found in the inventory model, will be displayed in the format specified.\n */\n timeFormat?: TimeFormat\n /**\n * Show shipping method name. Requires `timeFormat` to be set.\n */\n showShippingMethodName?: false\n /**\n * Show shipping method price. Requires `timeFormat` to be set.\n */\n showShippingMethodPrice?: false\n }\n | {\n timeFormat: TimeFormat\n showShippingMethodName: true\n showShippingMethodPrice?: boolean\n }\n | {\n timeFormat: TimeFormat\n showShippingMethodName?: boolean\n showShippingMethodPrice: true\n }\n\ntype Props = {\n children?: ChildrenFunction<AvailabilityTemplateChildrenProps>\n labels?: {\n available?: string\n outOfStock?: string\n negativeStock?: string\n }\n} & Omit<JSX.IntrinsicElements['span'], 'children' | 'ref'> &\n FormatRules\n\n/**\n * The AvailabilityTemplate component displays the availability of the SKU specified\n * in the parent `<AvailabilityContainer>` component.\n *\n * It is possible to customize the text displayed in case of `available`, `outOfStock` or `negativeStock.\n * It is also possible to show delivery lead time and either shipping method name and/or price.\n * This information will be retrieve from the first shipping method found in the inventory model.\n *\n * <span type=\"Requirement\" type=\"info\">\n * It must to be used inside the `<AvailabilityContainer>` component.\n * </span>\n */\nexport function AvailabilityTemplate(props: Props): JSX.Element {\n const {\n timeFormat,\n showShippingMethodName,\n showShippingMethodPrice,\n children,\n labels,\n ...p\n } = props\n const {\n min,\n max,\n shipping_method: shippingMethod,\n quantity,\n skuCode\n } = useCustomContext({\n context: AvailabilityContext,\n contextComponentName: 'AvailabilityContainer',\n currentComponentName: 'AvailabilityTemplate',\n key: 'parent'\n })\n const text: string[] = []\n const mn = min != null && timeFormat != null ? min?.[timeFormat] : ''\n const mx = max != null && timeFormat != null ? max?.[timeFormat] : ''\n const shippingMethodPrice =\n showShippingMethodPrice && shippingMethod?.formatted_price_amount\n ? `(${shippingMethod?.formatted_price_amount})`\n : ''\n const name =\n showShippingMethodName && shippingMethod\n ? `with ${shippingMethod.name}`\n : ''\n if (quantity != null) {\n if (quantity > 0) {\n text.push(labels?.available ?? 'Available')\n if (mn && mx && timeFormat) {\n text.push(\n `in ${mn} - ${mx} ${timeFormat} ${name} ${shippingMethodPrice}`\n )\n }\n } else if (quantity === 0) {\n text.push(labels?.outOfStock ?? 'Out of stock')\n } else if (quantity < 0) {\n text.push(labels?.negativeStock ?? 'Out of stock')\n }\n }\n const parentProps = {\n min,\n max,\n shipping_method: shippingMethod,\n quantity,\n text: text.join(' '),\n ...props\n }\n return children ? (\n <Parent {...parentProps}>{children}</Parent>\n ) : (\n <span data-testid={skuCode ? `availability-${skuCode}` : ''} {...p}>\n {text.join(' ')}\n </span>\n )\n}\n\nexport default AvailabilityTemplate\n","import { useContext, useState, useEffect, type JSX } from 'react';\nimport ShippingMethodChildrenContext from '#context/ShippingMethodChildrenContext'\nimport Parent from '../utils/Parent'\n\nexport type DeliveryLeadTimeField =\n | 'min_hours'\n | 'max_hours'\n | 'min_days'\n | 'max_days'\n\nexport type DeliveryLeadTimeComponentChildren = Omit<Props, 'children' | 'ref'>\n\ntype Props = Partial<Omit<JSX.IntrinsicElements['span'], 'ref'>> & {\n children?: (props: DeliveryLeadTimeComponentChildren) => JSX.Element\n type: DeliveryLeadTimeField\n text?: string\n}\n\nexport function DeliveryLeadTime(props: Props): JSX.Element {\n const { type, ...p } = props\n const [text, setText] = useState<string | number | null>()\n const { deliveryLeadTimeForShipment } = useContext(\n ShippingMethodChildrenContext\n )\n useEffect(() => {\n if (deliveryLeadTimeForShipment?.[type])\n setText(deliveryLeadTimeForShipment[type])\n return () => {\n setText('')\n }\n }, [deliveryLeadTimeForShipment])\n const parentProps = {\n text,\n ...p\n }\n return props.children ? (\n <Parent {...parentProps}>{props.children}</Parent>\n ) : (\n <span {...p}>{text}</span>\n )\n}\n\nexport default DeliveryLeadTime\n","import SkuChildrenContext from '#context/SkuChildrenContext'\nimport type { ConditionalElement } from '#typings'\nimport GenericFieldComponent, {\n type TGenericChildrenProps,\n type TResourceKey,\n type TResources\n} from '#components-utils/GenericFieldComponent'\n\nimport type { JSX } from \"react\";\n\ntype SkuFieldChildrenProps = TGenericChildrenProps<TResources['Sku']>\n\ntype TCondition = ConditionalElement<Exclude<TResources['Sku'], 'resource'>>\n\ntype Props = {\n children?: (props: SkuFieldChildrenProps) => JSX.Element\n} & TCondition\n\n/**\n * The SkuField component displays any attribute of the `sku` specified in the parent `<SkusContainer>` component.\n *\n * It also accepts a `tagElement` props to enable specific tag-related props.\n * For examples, when `tagElement` is set to `img` it will also accept props related to `<img>` tag such as `height` and `width`.\n *\n * <span title=\"Requirement\" type=\"warning\">\n * It must to be used inside the `<SkusContainer>` component.\n * </span>\n *\n * <span title=\"Fields\" type=\"info\">\n * Check the `skus` resource from our [Core API documentation](https://docs.commercelayer.io/core/v/api-reference/skus/object)\n * for more details about the available attributes to render.\n * </span>\n */\nexport function SkuField<P extends Props>(props: P): JSX.Element {\n const { attribute, tagElement = 'span', children, ...p } = props\n return (\n <GenericFieldComponent<TResourceKey['Sku']>\n resource='sku'\n attribute={attribute}\n tagElement={tagElement}\n context={SkuChildrenContext}\n {...p}\n >\n {children}\n </GenericFieldComponent>\n )\n}\n\nexport default SkuField\n","import { useContext, useEffect, type ReactNode, type JSX } from 'react';\nimport SkuListsContext from '#context/SkuListsContext'\n\ninterface Props {\n children: ReactNode\n /**\n * ID of the SKU list.\n */\n id: string\n}\n\nexport function SkuList(props: Props): JSX.Element {\n const { id, children } = props\n const { listIds } = useContext(SkuListsContext)\n useEffect(() => {\n if (listIds && !listIds.includes(id)) {\n listIds.push(id)\n }\n }, [])\n return <>{children}</>\n}\n\nexport default SkuList\n","import { useReducer, useContext, type ReactNode, useEffect, type JSX } from 'react';\nimport SkuListsContext from '#context/SkuListsContext'\nimport CommerceLayerContext from '#context/CommerceLayerContext'\nimport skuListsReducer, {\n skuListsInitialState,\n getSkuList\n} from '#reducers/SkuListsReducer'\n\ninterface Props {\n children: ReactNode\n}\n\nexport function SkuListsContainer(props: Props): JSX.Element {\n const { children } = props\n const [state, dispatch] = useReducer(skuListsReducer, skuListsInitialState)\n const config = useContext(CommerceLayerContext)\n useEffect(() => {\n if (state.listIds && state.listIds.length > 0 && config.accessToken) {\n getSkuList({ listIds: state.listIds, dispatch, config, state })\n }\n }, [config.accessToken])\n return (\n <SkuListsContext.Provider value={state}>\n {children}\n </SkuListsContext.Provider>\n )\n}\n\nexport default SkuListsContainer\n","import SkuChildrenContext from '#context/SkuChildrenContext'\nimport SkuContext from '#context/SkuContext'\nimport { type ReactNode, useContext, type JSX } from 'react';\n\ninterface Props {\n children: ReactNode\n}\n\n/**\n * The `Skus` components loop through the list of `skus` found in `SkusContainer` context and render the children filled with the proper sku value.\n * This means that the children will be rendered as many times as the number of skus found in the `skus` prop array\n * and there is no need to manually loop through them from your consumer app.\n *\n * <span title='Requirements' type='warning'>\n * Must be a child of the `<SkusContainer>` component.\n * </span>\n * <span title='Children' type='info'>\n * `<SkuField>`, `<AvailabilityContainer>`\n * </span>\n */\nexport function Skus<P extends Props>({ children }: P): JSX.Element {\n const { skus } = useContext(SkuContext)\n const components = skus?.map((sku, key) => {\n const value = { sku }\n return (\n <SkuChildrenContext.Provider key={key} value={value}>\n {children}\n </SkuChildrenContext.Provider>\n )\n })\n return <>{components}</>\n}\n\nexport default Skus\n","import type { QueryParamsList, Sku } from '@commercelayer/sdk'\nimport type { Dispatch } from 'react'\nimport type { CommerceLayerConfig } from '#context/CommerceLayerContext'\nimport type { BaseAction } from '#typings'\nimport baseReducer from '#utils/baseReducer'\nimport getSdk from '#utils/getSdk'\n\ntype SkuActionType = 'getSkus' | 'setLoading'\ntype SkuAction = BaseAction<SkuActionType, SkuState>\nexport type SkuState = Partial<{\n skus: Sku[]\n loading: boolean\n skuCodes: string[]\n}>\n\nconst actionType: SkuActionType[] = ['getSkus']\n\nexport const skuInitialState: SkuState = {\n skus: [],\n loading: true,\n skuCodes: []\n}\n\ninterface GetSku {\n config: CommerceLayerConfig\n skus: string[]\n dispatch: Dispatch<SkuAction>\n queryParams?: QueryParamsList\n}\n\nexport async function getSku<T extends GetSku>({\n config,\n skus,\n dispatch,\n queryParams\n}: T): Promise<void> {\n if (!config.accessToken) return\n if (skus.length === 0) return\n const sdk = getSdk(config)\n let allSkus: Sku[] = []\n const get = await sdk.skus.list({\n ...queryParams,\n filters: { ...queryParams?.filters, code_in: skus.join(',') }\n })\n allSkus = [...get]\n const meta = get.meta\n if (meta.pageCount > 1) {\n for (\n let pageNumber = meta.currentPage + 1;\n pageNumber <= meta.pageCount;\n pageNumber++\n ) {\n const getPage = await sdk.skus.list({\n ...queryParams,\n filters: { ...queryParams?.filters, code_in: skus.join(',') },\n pageNumber\n })\n allSkus = [...allSkus, ...getPage]\n }\n }\n dispatch({\n type: 'getSkus',\n payload: {\n skus: allSkus,\n loading: false,\n skuCodes: skus\n }\n })\n}\n\nexport default function skuReducer(\n state: SkuState,\n reducer: SkuAction\n): SkuState {\n return baseReducer<SkuState, SkuAction, SkuActionType[]>(\n state,\n reducer,\n actionType\n )\n}\n","import CommerceLayerContext from '#context/CommerceLayerContext'\nimport SkuContext from '#context/SkuContext'\nimport skuReducer, { getSku, skuInitialState } from '#reducers/SkuReducer'\nimport type { QueryParamsList } from '@commercelayer/sdk'\nimport { type ReactNode, useContext, useEffect, useMemo, useReducer, type JSX } from 'react';\n\ninterface Props {\n /**\n * An array of skus to display.\n */\n skus: string[]\n /**\n * Accept a React node and [Skus](./Skus.d.ts) component as children to display above the skus.\n */\n children: ReactNode\n /**\n * An object params to query the skus resource\n */\n queryParams?: QueryParamsList\n}\n\n/**\n * Main container for the SKUs components.\n * It stores - in its context - the details for each `sku` defined in the `skus` prop array.\n *\n * It also accept a `queryParams` prop to refine pagination, sorting, filtering and includes for the fetch request.\n *\n * <span title='Requirements' type='warning'>\n * Must be a child of the `<CommerceLayer>` component.\n * </span>\n * <span title='Children' type='info'>\n * `<Skus>`\n * </span>\n */\nexport function SkusContainer<P extends Props>(props: P): JSX.Element {\n const { skus, children, queryParams } = props\n const [state, dispatch] = useReducer(skuReducer, skuInitialState)\n const config = useContext(CommerceLayerContext)\n const loadSkus = async (): Promise<void> => {\n await getSku({ config, dispatch, skus, queryParams })\n }\n useEffect(() => {\n if (config.accessToken && state?.skus) {\n if (state?.skus.length === 0) {\n loadSkus()\n }\n }\n return () => {\n dispatch({\n type: 'setLoading',\n payload: {\n loading: true\n }\n })\n }\n }, [config, skus])\n const contextValue = useMemo(() => state, [state])\n return (\n <SkuContext.Provider value={contextValue}>{children}</SkuContext.Provider>\n )\n}\n\nexport default SkusContainer\n","import { createContext } from 'react'\nimport type { LineItem, StockTransfer } from '@commercelayer/sdk'\n\nexport interface InitialStockTransferContext {\n stockTransfer?: StockTransfer | null | LineItem\n}\n\nconst initial: InitialStockTransferContext = {}\n\nconst StockTransferChildrenContext =\n createContext<InitialStockTransferContext>(initial)\n\nexport default StockTransferChildrenContext\n","import { useContext, type JSX } from 'react';\nimport ShipmentChildrenContext from '#context/ShipmentChildrenContext'\nimport StockTransferChildrenContext, {\n type InitialStockTransferContext\n} from '#context/StockTransferChildrenContext'\nimport type {\n LineItem,\n StockTransfer as TStockTransfer\n} from '@commercelayer/sdk'\nimport type { DefaultChildrenType } from '#typings/globals'\n\ninterface Props {\n children: DefaultChildrenType\n}\n\nexport function StockTransfer(props: Props): JSX.Element {\n const { children } = props\n const { stockTransfers, lineItems } = useContext(ShipmentChildrenContext)\n const components = stockTransfers\n ?.filter((st) => !!lineItems?.find((l) => l?.sku_code !== st?.sku_code))\n .map((stockTransfer: TStockTransfer | LineItem, k) => {\n const stockTransferProps: InitialStockTransferContext = {\n stockTransfer:\n stockTransfer.type === 'line_items'\n ? stockTransfer\n : stockTransfer?.line_item\n }\n return (\n <StockTransferChildrenContext.Provider\n key={k}\n value={stockTransferProps}\n >\n {children}\n </StockTransferChildrenContext.Provider>\n )\n })\n return <>{components}</>\n}\n\nexport default StockTransfer\n","import StockTransferChildrenContext from '#context/StockTransferChildrenContext'\nimport type { ConditionalElement } from '#typings'\nimport GenericFieldComponent, {\n type TGenericChildrenProps,\n type TResourceKey,\n type TResources\n} from '#components/utils/GenericFieldComponent'\n\nimport type { JSX } from \"react\";\n\ntype StockTransferFieldChildrenProps = TGenericChildrenProps<\n TResources['StockTransfer']\n>\n\ntype TCondition = ConditionalElement<\n Exclude<TResources['StockTransfer'], 'resource'>\n>\n\ntype Props = {\n children?: (props: StockTransferFieldChildrenProps) => JSX.Element\n} & TCondition\n\nexport function StockTransferField<P extends Props>(props: P): JSX.Element {\n const { attribute, tagElement = 'span', children, ...p } = props\n return (\n <GenericFieldComponent<TResourceKey['StockTransfer']>\n resource='stockTransfer'\n attribute={attribute}\n tagElement={tagElement}\n context={StockTransferChildrenContext}\n {...p}\n >\n {children}\n </GenericFieldComponent>\n )\n}\n\nexport default StockTransferField\n","import OrderContext from '#context/OrderContext'\nimport type {\n createOrder,\n OrderState,\n addToCart\n} from '#reducers/OrderReducer'\nimport { useContext } from 'react'\n\ntype TAddToCartParams = Omit<\n Parameters<typeof addToCart>[number],\n | 'buyNowMode'\n | 'state'\n | 'dispatch'\n | 'setLocalOrder'\n | 'errors'\n | 'checkoutUrl'\n | 'persistKey'\n | 'config'\n>\n\ntype TCreateCartParams = Pick<\n Parameters<typeof createOrder>[number],\n 'orderAttributes' | 'orderMetadata'\n>\n\ninterface TReturnOrder\n extends Omit<\n OrderState,\n 'loading' | 'include' | 'includeLoaded' | 'withoutIncludes' | 'orderId'\n > {\n /** Refetch the current order and update the context */\n reloadOrder: () => Promise<OrderState['order']>\n /** Allow to add a SKU or a Bundle to the order stored in the context */\n addToCart: (params: TAddToCartParams) => ReturnType<typeof addToCart>\n /** Allow to create a new order and store it in the OrderContainer context */\n createOrder: (params: TCreateCartParams) => Promise<string | undefined>\n}\n\n/**\n * React Hook that provides access to the order context stored in the `<OrderContainer>` component.\n **/\nexport function useOrderContainer(): TReturnOrder {\n const ctx = useContext(OrderContext)\n if ('order' in ctx) {\n return {\n order: ctx.order,\n reloadOrder: async () => {\n if (ctx?.order?.id) return await ctx?.getOrder(ctx?.order?.id)\n return undefined\n },\n addToCart: async (params) => {\n if (ctx?.addToCart) return await ctx?.addToCart(params)\n return {\n success: false\n }\n },\n createOrder: async (params) => {\n if (ctx?.createOrder) return await ctx?.createOrder(params)\n return undefined\n }\n }\n }\n throw new Error('Cannot use `useOrderContainer` outside of <OrderContainer/>')\n}\n\nexport default useOrderContainer\n","import CommerceLayerContext from '#context/CommerceLayerContext'\nimport getSdk from '#utils/getSdk'\nimport type { CommerceLayerClient } from '@commercelayer/sdk'\nimport { useContext } from 'react'\n\ninterface ReturnProps {\n /** This is the access token used to initialize the sdk client. It need to be set as prop in the main `<CommerceLayer>` component */\n accessToken?: string\n /** This method can be used to initialize an sdk client and perform list, retrieve, update or delete operations on any resource */\n sdkClient: () => CommerceLayerClient | undefined\n}\n\n/**\n * React Hook that provides access to the official Commerce Layer SDK JS Client.\n **/\nexport function useCommerceLayer(): ReturnProps {\n const ctx = useContext(CommerceLayerContext)\n if ('accessToken' in ctx) {\n return {\n accessToken: ctx.accessToken,\n sdkClient: () => {\n if (ctx?.accessToken != null && ctx?.endpoint != null)\n return getSdk({\n accessToken: ctx.accessToken,\n endpoint: ctx.endpoint\n })\n return undefined\n }\n }\n }\n throw new Error('Cannot use `useCommerceLayer` outside of <CommerceLayer/>')\n}\n\nexport default useCommerceLayer\n","import CustomerContext, {\n type InitialCustomerContext\n} from '#context/CustomerContext'\nimport type {\n setResourceTrigger,\n CustomerState\n} from '#reducers/CustomerReducer'\nimport { useContext } from 'react'\n\ntype TCustomer = Omit<CustomerState, 'errors' | 'isGuest'> & {\n setResourceTrigger?: typeof setResourceTrigger\n} & Pick<InitialCustomerContext, 'reloadCustomerAddresses'>\n\ninterface TReturnCustomer extends Omit<TCustomer, 'errors' | 'isGuest'> {}\n\n/**\n * React Hook that provides access to the order context stored in the `<CustomerContainer>` component.\n **/\nexport function useCustomerContainer(): TReturnCustomer {\n const ctx = useContext(CustomerContext)\n if ('addresses' in ctx) {\n return {\n addresses: ctx.addresses,\n payments: ctx.payments,\n orders: ctx.orders,\n subscriptions: ctx.subscriptions,\n customerEmail: ctx.customerEmail,\n customers: ctx.customers,\n setResourceTrigger: ctx.setResourceTrigger,\n reloadCustomerAddresses: ctx.reloadCustomerAddresses\n }\n }\n throw new Error(\n 'Cannot use `useCustomerContainer` outside of <CustomerContainer/>'\n )\n}\n\nexport default useCustomerContainer\n"]}