addio-admin-sdk 1.7.21 → 1.7.23

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 (522) hide show
  1. package/.babelrc +17 -17
  2. package/.env +14 -14
  3. package/.env.dev +14 -14
  4. package/.github/workflows/publish_coverage.yaml +69 -69
  5. package/addio-sdk-doc.md +1380 -1380
  6. package/changelog.md +469 -469
  7. package/dist/Interfaces/Address/index.d.ts +21 -21
  8. package/dist/Interfaces/Address/index.js +16 -16
  9. package/dist/Interfaces/Algolia/index.d.ts +148 -148
  10. package/dist/Interfaces/Algolia/index.js +2 -2
  11. package/dist/Interfaces/Attachement/index.d.ts +5 -5
  12. package/dist/Interfaces/Attachement/index.js +2 -2
  13. package/dist/Interfaces/Attribute/index.d.ts +47 -47
  14. package/dist/Interfaces/Attribute/index.js +10 -10
  15. package/dist/Interfaces/BGJob/index.d.ts +56 -56
  16. package/dist/Interfaces/BGJob/index.js +36 -36
  17. package/dist/Interfaces/BaseClass/index.d.ts +8 -8
  18. package/dist/Interfaces/BaseClass/index.js +2 -2
  19. package/dist/Interfaces/Blog/IBlogArticle.d.ts +18 -18
  20. package/dist/Interfaces/Blog/IBlogArticle.js +2 -2
  21. package/dist/Interfaces/Blog/IBlogAuthor.d.ts +7 -7
  22. package/dist/Interfaces/Blog/IBlogAuthor.js +2 -2
  23. package/dist/Interfaces/Blog/IBlogCategory.d.ts +9 -9
  24. package/dist/Interfaces/Blog/IBlogCategory.js +2 -2
  25. package/dist/Interfaces/Blog/IBlogComment.d.ts +13 -13
  26. package/dist/Interfaces/Blog/IBlogComment.js +2 -2
  27. package/dist/Interfaces/Blog/IBlogKeywords.d.ts +9 -9
  28. package/dist/Interfaces/Blog/IBlogKeywords.js +2 -2
  29. package/dist/Interfaces/Booking/index.d.ts +68 -68
  30. package/dist/Interfaces/Booking/index.js +17 -17
  31. package/dist/Interfaces/Brand/index.d.ts +13 -13
  32. package/dist/Interfaces/Brand/index.js +2 -2
  33. package/dist/Interfaces/CMS/index.d.ts +25 -25
  34. package/dist/Interfaces/CMS/index.js +2 -2
  35. package/dist/Interfaces/Cart/IPandaPayload.d.ts +64 -64
  36. package/dist/Interfaces/Cart/IPandaPayload.js +18 -18
  37. package/dist/Interfaces/Cart/IPaymentCard.d.ts +22 -22
  38. package/dist/Interfaces/Cart/IPaymentCard.js +44 -44
  39. package/dist/Interfaces/Cart/IPaypalPayload.d.ts +9 -9
  40. package/dist/Interfaces/Cart/IPaypalPayload.js +2 -2
  41. package/dist/Interfaces/Cart/IPaysafePayload.d.ts +72 -72
  42. package/dist/Interfaces/Cart/IPaysafePayload.js +2 -2
  43. package/dist/Interfaces/Cart/IStripePayload.d.ts +66 -66
  44. package/dist/Interfaces/Cart/IStripePayload.js +2 -2
  45. package/dist/Interfaces/Cart/index.d.ts +410 -410
  46. package/dist/Interfaces/Cart/index.js +191 -191
  47. package/dist/Interfaces/Catalogue/index.d.ts +68 -68
  48. package/dist/Interfaces/Catalogue/index.js +37 -37
  49. package/dist/Interfaces/Category/index.d.ts +26 -26
  50. package/dist/Interfaces/Category/index.js +2 -2
  51. package/dist/Interfaces/Chart/index.d.ts +11 -11
  52. package/dist/Interfaces/Chart/index.js +2 -2
  53. package/dist/Interfaces/Class/index.d.ts +8 -8
  54. package/dist/Interfaces/Class/index.js +2 -2
  55. package/dist/Interfaces/Consent/index.d.ts +6 -6
  56. package/dist/Interfaces/Consent/index.js +2 -2
  57. package/dist/Interfaces/Context/IContextProps.d.ts +4 -4
  58. package/dist/Interfaces/Context/IContextProps.js +2 -2
  59. package/dist/Interfaces/Context/IContextState.d.ts +15 -15
  60. package/dist/Interfaces/Context/IContextState.js +2 -2
  61. package/dist/Interfaces/Customer/ICustomerBadge.d.ts +2 -2
  62. package/dist/Interfaces/Customer/ICustomerBadge.js +2 -2
  63. package/dist/Interfaces/Customer/ICustomerRating.d.ts +10 -10
  64. package/dist/Interfaces/Customer/ICustomerRating.js +2 -2
  65. package/dist/Interfaces/Customer/index.d.ts +95 -95
  66. package/dist/Interfaces/Customer/index.js +158 -158
  67. package/dist/Interfaces/Declination/index.d.ts +111 -111
  68. package/dist/Interfaces/Declination/index.js +77 -77
  69. package/dist/Interfaces/Document/index.d.ts +8 -8
  70. package/dist/Interfaces/Document/index.js +2 -2
  71. package/dist/Interfaces/Elastic/index.d.ts +89 -89
  72. package/dist/Interfaces/Elastic/index.js +2 -2
  73. package/dist/Interfaces/Email/CustomGR/I3DPrintEmail.d.ts +11 -11
  74. package/dist/Interfaces/Email/CustomGR/I3DPrintEmail.js +2 -2
  75. package/dist/Interfaces/Email/CustomGR/IBorrowToolsEmail.d.ts +15 -15
  76. package/dist/Interfaces/Email/CustomGR/IBorrowToolsEmail.js +2 -2
  77. package/dist/Interfaces/Email/CustomGR/IPickupMaterialsEmail.d.ts +12 -12
  78. package/dist/Interfaces/Email/CustomGR/IPickupMaterialsEmail.js +2 -2
  79. package/dist/Interfaces/Email/CustomGR/IPreMeetingFormEmail.d.ts +36 -36
  80. package/dist/Interfaces/Email/CustomGR/IPreMeetingFormEmail.js +2 -2
  81. package/dist/Interfaces/Email/CustomGR/ISponsorRequestEmail.d.ts +12 -12
  82. package/dist/Interfaces/Email/CustomGR/ISponsorRequestEmail.js +2 -2
  83. package/dist/Interfaces/Email/CustomGR/ITransportEmail.d.ts +12 -12
  84. package/dist/Interfaces/Email/CustomGR/ITransportEmail.js +2 -2
  85. package/dist/Interfaces/Email/CustomGR/ITransportQuoteEmail.d.ts +12 -12
  86. package/dist/Interfaces/Email/CustomGR/ITransportQuoteEmail.js +2 -2
  87. package/dist/Interfaces/Email/CustomGR/IVegetalsEmail.d.ts +16 -16
  88. package/dist/Interfaces/Email/CustomGR/IVegetalsEmail.js +2 -2
  89. package/dist/Interfaces/Email/CustomGR/IWishlistEmail.d.ts +15 -15
  90. package/dist/Interfaces/Email/CustomGR/IWishlistEmail.js +2 -2
  91. package/dist/Interfaces/Email/IAbandonnedCartEmail.d.ts +29 -29
  92. package/dist/Interfaces/Email/IAbandonnedCartEmail.js +2 -2
  93. package/dist/Interfaces/Email/IAccountConfirmationEmail.d.ts +22 -22
  94. package/dist/Interfaces/Email/IAccountConfirmationEmail.js +2 -2
  95. package/dist/Interfaces/Email/IApplicationEmail.d.ts +19 -19
  96. package/dist/Interfaces/Email/IApplicationEmail.js +2 -2
  97. package/dist/Interfaces/Email/IBackInStockEmail.d.ts +21 -21
  98. package/dist/Interfaces/Email/IBackInStockEmail.js +2 -2
  99. package/dist/Interfaces/Email/IContactEmail.d.ts +20 -20
  100. package/dist/Interfaces/Email/IContactEmail.js +2 -2
  101. package/dist/Interfaces/Email/ICustomerBookingAdminEmail.d.ts +15 -15
  102. package/dist/Interfaces/Email/ICustomerBookingAdminEmail.js +2 -2
  103. package/dist/Interfaces/Email/ICustomerBookingEmail.d.ts +14 -14
  104. package/dist/Interfaces/Email/ICustomerBookingEmail.js +2 -2
  105. package/dist/Interfaces/Email/IEmail.d.ts +20 -20
  106. package/dist/Interfaces/Email/IEmail.js +69 -69
  107. package/dist/Interfaces/Email/IOrderConfirmationEmail.d.ts +47 -47
  108. package/dist/Interfaces/Email/IOrderConfirmationEmail.js +2 -2
  109. package/dist/Interfaces/Email/IPasswordResetEmail.d.ts +17 -17
  110. package/dist/Interfaces/Email/IPasswordResetEmail.js +2 -2
  111. package/dist/Interfaces/Email/IPhotoShootEmail.d.ts +14 -14
  112. package/dist/Interfaces/Email/IPhotoShootEmail.js +2 -2
  113. package/dist/Interfaces/Email/IPickupConfirmation.d.ts +23 -23
  114. package/dist/Interfaces/Email/IPickupConfirmation.js +2 -2
  115. package/dist/Interfaces/Email/IShippingConfirmation.d.ts +23 -23
  116. package/dist/Interfaces/Email/IShippingConfirmation.js +2 -2
  117. package/dist/Interfaces/Email/IWelcomeEmail.d.ts +19 -19
  118. package/dist/Interfaces/Email/IWelcomeEmail.js +2 -2
  119. package/dist/Interfaces/ExportSchema/index.d.ts +7 -7
  120. package/dist/Interfaces/ExportSchema/index.js +2 -2
  121. package/dist/Interfaces/ExternalService/BaseExternalService.d.ts +12 -12
  122. package/dist/Interfaces/ExternalService/BaseExternalService.js +2 -2
  123. package/dist/Interfaces/ExternalService/index.d.ts +9 -9
  124. package/dist/Interfaces/ExternalService/index.js +2 -2
  125. package/dist/Interfaces/FirstOrderTracking/index.d.ts +5 -5
  126. package/dist/Interfaces/FirstOrderTracking/index.js +2 -2
  127. package/dist/Interfaces/G2/index.d.ts +556 -556
  128. package/dist/Interfaces/G2/index.js +36 -36
  129. package/dist/Interfaces/Indexed/Product/IIndexedLastSavedProduct.d.ts +20 -20
  130. package/dist/Interfaces/Indexed/Product/IIndexedLastSavedProduct.js +2 -2
  131. package/dist/Interfaces/Indexed/Product/index.d.ts +94 -94
  132. package/dist/Interfaces/Indexed/Product/index.js +287 -287
  133. package/dist/Interfaces/Inventory/index.d.ts +19 -19
  134. package/dist/Interfaces/Inventory/index.js +8 -8
  135. package/dist/Interfaces/Invoice/index.d.ts +4 -4
  136. package/dist/Interfaces/Invoice/index.js +2 -2
  137. package/dist/Interfaces/MarketplacePublication/MarketplaceOrderData.d.ts +3 -3
  138. package/dist/Interfaces/MarketplacePublication/MarketplaceOrderData.js +2 -2
  139. package/dist/Interfaces/MarketplacePublication/index.d.ts +23 -23
  140. package/dist/Interfaces/MarketplacePublication/index.js +33 -33
  141. package/dist/Interfaces/Operations/ICreatedBy.d.ts +6 -6
  142. package/dist/Interfaces/Operations/ICreatedBy.js +2 -2
  143. package/dist/Interfaces/Operations/IUpdate.d.ts +5 -5
  144. package/dist/Interfaces/Operations/IUpdate.js +2 -2
  145. package/dist/Interfaces/Order/index.d.ts +4 -4
  146. package/dist/Interfaces/Order/index.js +2 -2
  147. package/dist/Interfaces/Org/IRelUser.d.ts +9 -9
  148. package/dist/Interfaces/Org/IRelUser.js +2 -2
  149. package/dist/Interfaces/Org/index.d.ts +29 -29
  150. package/dist/Interfaces/Org/index.js +12 -12
  151. package/dist/Interfaces/Payment/index.d.ts +13 -13
  152. package/dist/Interfaces/Payment/index.js +2 -2
  153. package/dist/Interfaces/Product/IAttributeFamily.d.ts +6 -6
  154. package/dist/Interfaces/Product/IAttributeFamily.js +2 -2
  155. package/dist/Interfaces/Product/IImportProduct.d.ts +42 -42
  156. package/dist/Interfaces/Product/IImportProduct.js +971 -971
  157. package/dist/Interfaces/Product/IInventoryItem.d.ts +84 -84
  158. package/dist/Interfaces/Product/IInventoryItem.js +36 -36
  159. package/dist/Interfaces/Product/IPricing.d.ts +177 -177
  160. package/dist/Interfaces/Product/IPricing.js +174 -174
  161. package/dist/Interfaces/Product/index.d.ts +121 -121
  162. package/dist/Interfaces/Product/index.js +56 -56
  163. package/dist/Interfaces/ProductAttribute/index.d.ts +11 -11
  164. package/dist/Interfaces/ProductAttribute/index.js +2 -2
  165. package/dist/Interfaces/PromiseToPurchase/BankType.d.ts +41 -41
  166. package/dist/Interfaces/PromiseToPurchase/BankType.js +42 -42
  167. package/dist/Interfaces/PromiseToPurchase/IIndexedBankUsed.d.ts +33 -33
  168. package/dist/Interfaces/PromiseToPurchase/IIndexedBankUsed.js +15 -15
  169. package/dist/Interfaces/PromiseToPurchase/IIndexedCustomerPromiseToPurchase.d.ts +19 -19
  170. package/dist/Interfaces/PromiseToPurchase/IIndexedCustomerPromiseToPurchase.js +2 -2
  171. package/dist/Interfaces/PromiseToPurchase/index.d.ts +50 -50
  172. package/dist/Interfaces/PromiseToPurchase/index.js +13 -13
  173. package/dist/Interfaces/PurchaseOrder/index.d.ts +17 -17
  174. package/dist/Interfaces/PurchaseOrder/index.js +2 -2
  175. package/dist/Interfaces/Query/IBrandQueryOptions.d.ts +11 -11
  176. package/dist/Interfaces/Query/IBrandQueryOptions.js +2 -2
  177. package/dist/Interfaces/Query/ICategoryQueryOptions.d.ts +11 -11
  178. package/dist/Interfaces/Query/ICategoryQueryOptions.js +2 -2
  179. package/dist/Interfaces/Query/IProductQueryOptions.d.ts +16 -16
  180. package/dist/Interfaces/Query/IProductQueryOptions.js +2 -2
  181. package/dist/Interfaces/Quote/index.d.ts +5 -5
  182. package/dist/Interfaces/Quote/index.js +2 -2
  183. package/dist/Interfaces/Refunds/index.d.ts +106 -106
  184. package/dist/Interfaces/Refunds/index.js +2 -2
  185. package/dist/Interfaces/Rules/IDiscountRule.d.ts +137 -137
  186. package/dist/Interfaces/Rules/IDiscountRule.js +107 -107
  187. package/dist/Interfaces/Schedule/index.d.ts +47 -46
  188. package/dist/Interfaces/Schedule/index.js +2 -2
  189. package/dist/Interfaces/Services/IAddServiceResponse.d.ts +4 -4
  190. package/dist/Interfaces/Services/IAddServiceResponse.js +2 -2
  191. package/dist/Interfaces/Services/IService.d.ts +12 -12
  192. package/dist/Interfaces/Services/IService.js +2 -2
  193. package/dist/Interfaces/Services/IServiceSecret.d.ts +8 -8
  194. package/dist/Interfaces/Services/IServiceSecret.js +2 -2
  195. package/dist/Interfaces/Shipping/Shipstation/carriers.d.ts +10 -10
  196. package/dist/Interfaces/Shipping/Shipstation/carriers.js +2 -2
  197. package/dist/Interfaces/Shipping/Shipstation/order.d.ts +227 -227
  198. package/dist/Interfaces/Shipping/Shipstation/order.js +2 -2
  199. package/dist/Interfaces/Shipping/Shipstation/quote.d.ts +31 -31
  200. package/dist/Interfaces/Shipping/Shipstation/quote.js +2 -2
  201. package/dist/Interfaces/Shipping/Shiptime/order.d.ts +54 -54
  202. package/dist/Interfaces/Shipping/Shiptime/order.js +48 -48
  203. package/dist/Interfaces/Shipping/Shiptime/quote.d.ts +111 -111
  204. package/dist/Interfaces/Shipping/Shiptime/quote.js +2 -2
  205. package/dist/Interfaces/Slider/GR.d.ts +130 -130
  206. package/dist/Interfaces/Slider/GR.js +271 -271
  207. package/dist/Interfaces/Slider/index.d.ts +14 -14
  208. package/dist/Interfaces/Slider/index.js +2 -2
  209. package/dist/Interfaces/Space/IMember.d.ts +16 -16
  210. package/dist/Interfaces/Space/IMember.js +9 -9
  211. package/dist/Interfaces/Space/index.d.ts +387 -387
  212. package/dist/Interfaces/Space/index.js +123 -123
  213. package/dist/Interfaces/Specials/gr.d.ts +61 -61
  214. package/dist/Interfaces/Specials/gr.js +2 -2
  215. package/dist/Interfaces/StockNotification/index.d.ts +7 -7
  216. package/dist/Interfaces/StockNotification/index.js +2 -2
  217. package/dist/Interfaces/Store/index.d.ts +62 -62
  218. package/dist/Interfaces/Store/index.js +27 -27
  219. package/dist/Interfaces/Supplier/ICommand.d.ts +11 -11
  220. package/dist/Interfaces/Supplier/ICommand.js +2 -2
  221. package/dist/Interfaces/Supplier/index.d.ts +36 -36
  222. package/dist/Interfaces/Supplier/index.js +24 -24
  223. package/dist/Interfaces/Tag/index.d.ts +18 -18
  224. package/dist/Interfaces/Tag/index.js +2 -2
  225. package/dist/Interfaces/Tax/index.d.ts +12 -12
  226. package/dist/Interfaces/Tax/index.js +2 -2
  227. package/dist/Interfaces/TransferRequest/index.d.ts +59 -59
  228. package/dist/Interfaces/TransferRequest/index.js +31 -31
  229. package/dist/Interfaces/Translation/index.d.ts +4 -4
  230. package/dist/Interfaces/Translation/index.js +2 -2
  231. package/dist/Interfaces/Update/index.d.ts +10 -10
  232. package/dist/Interfaces/Update/index.js +2 -2
  233. package/dist/Interfaces/User/IUser.d.ts +65 -65
  234. package/dist/Interfaces/User/IUser.js +8 -8
  235. package/dist/Interfaces/Version/index.d.ts +11 -11
  236. package/dist/Interfaces/Version/index.js +2 -2
  237. package/dist/Interfaces/Wishlist/index.d.ts +7 -7
  238. package/dist/Interfaces/Wishlist/index.js +2 -2
  239. package/dist/constants/Interfaces/IBaseApi.d.ts +15 -15
  240. package/dist/constants/Interfaces/IBaseApi.js +2 -2
  241. package/dist/constants/Interfaces/IEndpointResult.d.ts +9 -9
  242. package/dist/constants/Interfaces/IEndpointResult.js +2 -2
  243. package/dist/constants/enums.d.ts +6 -6
  244. package/dist/constants/enums.js +10 -10
  245. package/dist/constants/version.d.ts +2 -2
  246. package/dist/constants/version.js +5 -5
  247. package/dist/index.d.ts +32 -32
  248. package/dist/index.js +416 -416
  249. package/dist/lib/Attribute/index.d.ts +14 -14
  250. package/dist/lib/Attribute/index.js +248 -248
  251. package/dist/lib/BGJob/index.d.ts +9 -9
  252. package/dist/lib/BGJob/index.js +376 -376
  253. package/dist/lib/BackgroundWorker/index.d.ts +34 -34
  254. package/dist/lib/BackgroundWorker/index.js +72 -72
  255. package/dist/lib/Blog/BlogArticle.d.ts +5 -5
  256. package/dist/lib/Blog/BlogArticle.js +28 -28
  257. package/dist/lib/Blog/BlogAuthor.d.ts +5 -5
  258. package/dist/lib/Blog/BlogAuthor.js +28 -28
  259. package/dist/lib/Blog/BlogCategory.d.ts +5 -5
  260. package/dist/lib/Blog/BlogCategory.js +28 -28
  261. package/dist/lib/Blog/BlogKeyword.d.ts +5 -5
  262. package/dist/lib/Blog/BlogKeyword.js +28 -28
  263. package/dist/lib/Booking/index.d.ts +65 -65
  264. package/dist/lib/Booking/index.js +839 -839
  265. package/dist/lib/Brand/index.d.ts +17 -17
  266. package/dist/lib/Brand/index.js +275 -275
  267. package/dist/lib/Cart/index.d.ts +186 -186
  268. package/dist/lib/Cart/index.js +3982 -3982
  269. package/dist/lib/Catalogue/index.d.ts +9 -9
  270. package/dist/lib/Catalogue/index.js +207 -207
  271. package/dist/lib/Category/index.d.ts +26 -26
  272. package/dist/lib/Category/index.js +361 -361
  273. package/dist/lib/Class/index.d.ts +12 -12
  274. package/dist/lib/Class/index.js +159 -159
  275. package/dist/lib/Consent/index.d.ts +4 -4
  276. package/dist/lib/Consent/index.js +79 -79
  277. package/dist/lib/Customer/index.d.ts +10 -10
  278. package/dist/lib/Customer/index.js +147 -147
  279. package/dist/lib/Declination/index.d.ts +9 -9
  280. package/dist/lib/Declination/index.js +84 -84
  281. package/dist/lib/Discount/index.d.ts +18 -18
  282. package/dist/lib/Discount/index.js +759 -759
  283. package/dist/lib/ElasticSearch/index.d.ts +8 -8
  284. package/dist/lib/ElasticSearch/index.js +101 -101
  285. package/dist/lib/Email/AbandonedCartEmail.d.ts +8 -8
  286. package/dist/lib/Email/AbandonedCartEmail.js +78 -78
  287. package/dist/lib/Email/AccountConfirmationEmail.d.ts +11 -11
  288. package/dist/lib/Email/AccountConfirmationEmail.js +95 -95
  289. package/dist/lib/Email/AdminOrderConfirmationEmail.d.ts +8 -8
  290. package/dist/lib/Email/AdminOrderConfirmationEmail.js +78 -78
  291. package/dist/lib/Email/ApplicationEmail.d.ts +8 -8
  292. package/dist/lib/Email/ApplicationEmail.js +78 -78
  293. package/dist/lib/Email/BackInStockEmail.d.ts +8 -8
  294. package/dist/lib/Email/BackInStockEmail.js +78 -78
  295. package/dist/lib/Email/ContactEmail.d.ts +8 -8
  296. package/dist/lib/Email/ContactEmail.js +78 -78
  297. package/dist/lib/Email/CustomerBookingAdminEmail.d.ts +8 -8
  298. package/dist/lib/Email/CustomerBookingAdminEmail.js +78 -78
  299. package/dist/lib/Email/CustomerBookingEmail.d.ts +8 -8
  300. package/dist/lib/Email/CustomerBookingEmail.js +78 -78
  301. package/dist/lib/Email/OrderConfirmationEmail.d.ts +8 -8
  302. package/dist/lib/Email/OrderConfirmationEmail.js +78 -78
  303. package/dist/lib/Email/OrderDenounciationEmail.d.ts +8 -8
  304. package/dist/lib/Email/OrderDenounciationEmail.js +78 -78
  305. package/dist/lib/Email/OrderSampleEmail.d.ts +8 -8
  306. package/dist/lib/Email/OrderSampleEmail.js +78 -78
  307. package/dist/lib/Email/OtherTypeEmails.d.ts +8 -8
  308. package/dist/lib/Email/OtherTypeEmails.js +90 -90
  309. package/dist/lib/Email/PasswordResetEmail.d.ts +8 -8
  310. package/dist/lib/Email/PasswordResetEmail.js +78 -78
  311. package/dist/lib/Email/PhotoShootEmail.d.ts +8 -8
  312. package/dist/lib/Email/PhotoShootEmail.js +78 -78
  313. package/dist/lib/Email/PickUpConfirmation.d.ts +8 -8
  314. package/dist/lib/Email/PickUpConfirmation.js +78 -78
  315. package/dist/lib/Email/ShippingConfirmation.d.ts +8 -8
  316. package/dist/lib/Email/ShippingConfirmation.js +78 -78
  317. package/dist/lib/Email/WelcomeEmail.d.ts +8 -8
  318. package/dist/lib/Email/WelcomeEmail.js +78 -78
  319. package/dist/lib/Email/index.d.ts +8 -8
  320. package/dist/lib/Email/index.js +82 -82
  321. package/dist/lib/ExternalService/Ebay.d.ts +62 -62
  322. package/dist/lib/ExternalService/Ebay.js +184 -184
  323. package/dist/lib/ExternalService/index.d.ts +5 -5
  324. package/dist/lib/ExternalService/index.js +28 -28
  325. package/dist/lib/FirstOrderTracking/index.d.ts +5 -5
  326. package/dist/lib/FirstOrderTracking/index.js +28 -28
  327. package/dist/lib/Indexed/IndexedCart.d.ts +13 -13
  328. package/dist/lib/Indexed/IndexedCart.js +194 -194
  329. package/dist/lib/Indexed/Product.d.ts +17 -17
  330. package/dist/lib/Indexed/Product.js +116 -116
  331. package/dist/lib/Inventory/index.d.ts +32 -32
  332. package/dist/lib/Inventory/index.js +579 -579
  333. package/dist/lib/Invoice/index.d.ts +5 -5
  334. package/dist/lib/Invoice/index.js +28 -28
  335. package/dist/lib/MarketplacePublication/index.d.ts +9 -9
  336. package/dist/lib/MarketplacePublication/index.js +220 -220
  337. package/dist/lib/MongoDB/BaseAPI.d.ts +18 -18
  338. package/dist/lib/MongoDB/BaseAPI.js +308 -308
  339. package/dist/lib/Order/index.d.ts +7 -7
  340. package/dist/lib/Order/index.js +62 -62
  341. package/dist/lib/Org/index.d.ts +26 -26
  342. package/dist/lib/Org/index.js +283 -283
  343. package/dist/lib/PandaPay/index.d.ts +16 -16
  344. package/dist/lib/PandaPay/index.js +218 -218
  345. package/dist/lib/Paysafe/index.d.ts +11 -11
  346. package/dist/lib/Paysafe/index.js +100 -100
  347. package/dist/lib/Product/index.d.ts +143 -143
  348. package/dist/lib/Product/index.js +1326 -1326
  349. package/dist/lib/ProductAttribute/index.d.ts +15 -15
  350. package/dist/lib/ProductAttribute/index.js +114 -114
  351. package/dist/lib/PromiseToPurchase/index.d.ts +37 -37
  352. package/dist/lib/PromiseToPurchase/index.js +475 -475
  353. package/dist/lib/PurchaseOrder/index.d.ts +9 -9
  354. package/dist/lib/PurchaseOrder/index.js +72 -72
  355. package/dist/lib/Schedule/index.d.ts +5 -5
  356. package/dist/lib/Schedule/index.js +30 -30
  357. package/dist/lib/Service/Enum/ServiceEnum.d.ts +3 -3
  358. package/dist/lib/Service/Enum/ServiceEnum.js +7 -7
  359. package/dist/lib/Service/index.d.ts +5 -5
  360. package/dist/lib/Service/index.js +57 -57
  361. package/dist/lib/Shipment/index.d.ts +28 -28
  362. package/dist/lib/Shipment/index.js +562 -562
  363. package/dist/lib/Slider/index.d.ts +16 -16
  364. package/dist/lib/Slider/index.js +235 -235
  365. package/dist/lib/Space/index.d.ts +801 -801
  366. package/dist/lib/Space/index.js +6862 -6862
  367. package/dist/lib/StockNotification/index.d.ts +4 -4
  368. package/dist/lib/StockNotification/index.js +26 -26
  369. package/dist/lib/Store/index.d.ts +5 -5
  370. package/dist/lib/Store/index.js +30 -30
  371. package/dist/lib/Supplier/Command.d.ts +5 -5
  372. package/dist/lib/Supplier/Command.js +28 -28
  373. package/dist/lib/Supplier/index.d.ts +25 -25
  374. package/dist/lib/Supplier/index.js +86 -86
  375. package/dist/lib/Tags/index.d.ts +6 -6
  376. package/dist/lib/Tags/index.js +84 -84
  377. package/dist/lib/Tax/index.d.ts +8 -8
  378. package/dist/lib/Tax/index.js +136 -136
  379. package/dist/lib/TransferRequest/index.d.ts +21 -21
  380. package/dist/lib/TransferRequest/index.js +302 -302
  381. package/dist/lib/Update/index.d.ts +10 -10
  382. package/dist/lib/Update/index.js +71 -71
  383. package/dist/lib/User/index.d.ts +33 -33
  384. package/dist/lib/User/index.js +360 -360
  385. package/dist/lib/Wishlist/index.d.ts +5 -5
  386. package/dist/lib/Wishlist/index.js +28 -28
  387. package/dist/lib/base.d.ts +14 -14
  388. package/dist/lib/base.js +135 -135
  389. package/dist/lib/baseService.d.ts +17 -17
  390. package/dist/lib/baseService.js +113 -113
  391. package/dist/rules/GR/constants/data.d.ts +25 -25
  392. package/dist/rules/GR/constants/data.js +54 -54
  393. package/dist/rules/GR/constants/products.d.ts +8 -8
  394. package/dist/rules/GR/constants/products.js +234 -234
  395. package/dist/rules/GR/interfaces/cart.d.ts +83 -83
  396. package/dist/rules/GR/interfaces/cart.js +51 -51
  397. package/dist/rules/GR/interfaces/data.d.ts +97 -97
  398. package/dist/rules/GR/interfaces/data.js +104 -104
  399. package/dist/rules/GR/interfaces/products.d.ts +61 -61
  400. package/dist/rules/GR/interfaces/products.js +10 -10
  401. package/dist/rules/GR/utils/cart.d.ts +53 -53
  402. package/dist/rules/GR/utils/cart.js +767 -767
  403. package/dist/rules/GR/utils/data.d.ts +3 -3
  404. package/dist/rules/GR/utils/data.js +25 -25
  405. package/dist/rules/GR/utils/expedition.d.ts +65 -65
  406. package/dist/rules/GR/utils/expedition.js +1676 -1676
  407. package/dist/rules/GR/utils/g2.d.ts +174 -174
  408. package/dist/rules/GR/utils/g2.js +1025 -1025
  409. package/dist/rules/GR/utils/invoices.d.ts +16 -16
  410. package/dist/rules/GR/utils/invoices.js +181 -181
  411. package/dist/rules/GR/utils/products.d.ts +96 -96
  412. package/dist/rules/GR/utils/products.js +1085 -1085
  413. package/dist/rules/GR/utils/upsells.d.ts +75 -75
  414. package/dist/rules/GR/utils/upsells.js +278 -278
  415. package/dist/services/database/BaseProvider.d.ts +29 -29
  416. package/dist/services/database/BaseProvider.js +77 -77
  417. package/dist/services/database/BatchUtils.d.ts +14 -14
  418. package/dist/services/database/BatchUtils.js +88 -88
  419. package/dist/services/database/Config.d.ts +2 -2
  420. package/dist/services/database/Config.js +5 -5
  421. package/dist/services/database/DatabaseService.d.ts +41 -41
  422. package/dist/services/database/DatabaseService.js +297 -297
  423. package/dist/services/database/FirebaseProvider.d.ts +17 -17
  424. package/dist/services/database/FirebaseProvider.js +312 -312
  425. package/dist/services/database/NotFirebaseProvider.d.ts +35 -35
  426. package/dist/services/database/NotFirebaseProvider.js +380 -380
  427. package/dist/services/g2/G2OrderSlip.d.ts +42 -42
  428. package/dist/services/g2/G2OrderSlip.js +264 -264
  429. package/dist/services/g2/utils.d.ts +9 -9
  430. package/dist/services/g2/utils.js +919 -919
  431. package/dist/services/logs/index.d.ts +20 -20
  432. package/dist/services/logs/index.js +126 -126
  433. package/dist/utils/algolia.d.ts +6 -6
  434. package/dist/utils/algolia.js +22 -22
  435. package/dist/utils/anonymisation.d.ts +30 -30
  436. package/dist/utils/anonymisation.js +264 -264
  437. package/dist/utils/array.d.ts +5 -5
  438. package/dist/utils/array.js +36 -36
  439. package/dist/utils/aws.d.ts +14 -14
  440. package/dist/utils/aws.js +220 -220
  441. package/dist/utils/booking.d.ts +22 -22
  442. package/dist/utils/booking.js +175 -175
  443. package/dist/utils/cart.d.ts +69 -69
  444. package/dist/utils/cart.js +656 -656
  445. package/dist/utils/cmv.d.ts +10 -10
  446. package/dist/utils/cmv.js +107 -107
  447. package/dist/utils/console.d.ts +6 -6
  448. package/dist/utils/console.js +121 -121
  449. package/dist/utils/context.d.ts +19 -19
  450. package/dist/utils/context.js +41 -41
  451. package/dist/utils/currency.d.ts +6 -6
  452. package/dist/utils/currency.js +62 -62
  453. package/dist/utils/data.d.ts +31 -31
  454. package/dist/utils/data.js +300 -300
  455. package/dist/utils/date.d.ts +1 -1
  456. package/dist/utils/date.js +16 -16
  457. package/dist/utils/dimensions.d.ts +3 -3
  458. package/dist/utils/dimensions.js +18 -18
  459. package/dist/utils/discount.d.ts +46 -46
  460. package/dist/utils/discount.js +981 -981
  461. package/dist/utils/errors.d.ts +113 -113
  462. package/dist/utils/errors.js +113 -113
  463. package/dist/utils/file-admin.d.ts +8 -8
  464. package/dist/utils/file-admin.js +94 -94
  465. package/dist/utils/file.d.ts +38 -38
  466. package/dist/utils/file.js +318 -318
  467. package/dist/utils/firebase-admin.d.ts +2 -2
  468. package/dist/utils/firebase-admin.js +118 -118
  469. package/dist/utils/firebase.d.ts +41 -41
  470. package/dist/utils/firebase.js +220 -220
  471. package/dist/utils/import.d.ts +1 -1
  472. package/dist/utils/import.js +81 -81
  473. package/dist/utils/inventories.d.ts +34 -34
  474. package/dist/utils/inventories.js +432 -432
  475. package/dist/utils/locale.d.ts +13 -13
  476. package/dist/utils/locale.js +67 -67
  477. package/dist/utils/mailchimp.d.ts +58 -58
  478. package/dist/utils/mailchimp.js +735 -735
  479. package/dist/utils/mongodb.d.ts +1 -1
  480. package/dist/utils/mongodb.js +68 -68
  481. package/dist/utils/object.d.ts +12 -12
  482. package/dist/utils/object.js +129 -129
  483. package/dist/utils/payment.d.ts +10 -10
  484. package/dist/utils/payment.js +25 -25
  485. package/dist/utils/products.d.ts +26 -26
  486. package/dist/utils/products.js +301 -301
  487. package/dist/utils/promiseToPurchase.d.ts +56 -56
  488. package/dist/utils/promiseToPurchase.js +228 -228
  489. package/dist/utils/prosprsearch.d.ts +21 -21
  490. package/dist/utils/prosprsearch.js +276 -276
  491. package/dist/utils/refunds.d.ts +2 -2
  492. package/dist/utils/refunds.js +21 -21
  493. package/dist/utils/sdc.d.ts +10 -10
  494. package/dist/utils/sdc.js +1308 -1308
  495. package/dist/utils/searchIndexes.d.ts +21 -21
  496. package/dist/utils/searchIndexes.js +318 -318
  497. package/dist/utils/services.d.ts +40 -40
  498. package/dist/utils/services.js +407 -407
  499. package/dist/utils/shipment.d.ts +110 -110
  500. package/dist/utils/shipment.js +410 -410
  501. package/dist/utils/simpletexting.d.ts +2 -2
  502. package/dist/utils/simpletexting.js +91 -91
  503. package/dist/utils/sliders.d.ts +4 -4
  504. package/dist/utils/sliders.js +70 -70
  505. package/dist/utils/string.d.ts +16 -16
  506. package/dist/utils/string.js +194 -194
  507. package/dist/utils/tools.d.ts +1 -1
  508. package/dist/utils/tools.js +49 -49
  509. package/dist/utils/transferRequests.d.ts +16 -16
  510. package/dist/utils/transferRequests.js +33 -33
  511. package/dist/utils/update.d.ts +7 -7
  512. package/dist/utils/update.js +245 -245
  513. package/dist/utils/weight.d.ts +3 -3
  514. package/dist/utils/weight.js +18 -18
  515. package/dist/utils/zones.d.ts +11 -11
  516. package/dist/utils/zones.js +313 -313
  517. package/package.json +110 -110
  518. package/publish.sh +143 -143
  519. package/readme.md +182 -182
  520. package/dist/lib/Queue/index.d.ts +0 -40
  521. package/dist/lib/Queue/index.js +0 -255
  522. package/dist/lib/Queue/index.js.map +0 -1
@@ -1,1086 +1,1086 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
- return new (P || (P = Promise))(function (resolve, reject) {
16
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
- step((generator = generator.apply(thisArg, _arguments || [])).next());
20
- });
21
- };
22
- var __generator = (this && this.__generator) || function (thisArg, body) {
23
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
- function verb(n) { return function (v) { return step([n, v]); }; }
26
- function step(op) {
27
- if (f) throw new TypeError("Generator is already executing.");
28
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
- if (y = 0, t) op = [op[0] & 2, t.value];
31
- switch (op[0]) {
32
- case 0: case 1: t = op; break;
33
- case 4: _.label++; return { value: op[1], done: false };
34
- case 5: _.label++; y = op[1]; op = [0]; continue;
35
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
- default:
37
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
- if (t[2]) _.ops.pop();
42
- _.trys.pop(); continue;
43
- }
44
- op = body.call(thisArg, _);
45
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
- }
48
- };
49
- var __rest = (this && this.__rest) || function (s, e) {
50
- var t = {};
51
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
52
- t[p] = s[p];
53
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
54
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
55
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
56
- t[p[i]] = s[p[i]];
57
- }
58
- return t;
59
- };
60
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
61
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
62
- if (ar || !(i in from)) {
63
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
64
- ar[i] = from[i];
65
- }
66
- }
67
- return to.concat(ar || Array.prototype.slice.call(from));
68
- };
69
- var __importDefault = (this && this.__importDefault) || function (mod) {
70
- return (mod && mod.__esModule) ? mod : { "default": mod };
71
- };
72
- Object.defineProperty(exports, "__esModule", { value: true });
73
- exports.shouldHideItemIfRegPriceIs0 = exports.getFormattedProdGR = exports.applyProCustomPromo = exports.shouldShowProCustomPromo = exports.fetchFeesBeforeCart = exports.getVracType = exports.getConcreteItemsByAvailability = exports.getConcreteQteText = exports.getInstallItemPrice = exports.getInstallationArray = exports.roundGrassQte = exports.handleGrassProductQtyRoundForShipping = exports.getGrassSubQuestionsByType = exports.getGrassServicesFees = exports.getGrassQteText = exports.getMinQtyFeeAmountText = exports.getMinQtyFeeText = exports.getAllMinGrassQuantities = exports.isMinQtyFee = exports.fuseGrassProducts = exports.getAllInstallFromItems = exports.checkIfProductIsInstallation = exports.checkIfProductIsOfType = exports.getProductFormOptions = exports.getParentProductCategoryGroup = exports.getProdName = exports.splitOnDashes = exports.getRoundedProductQuantities = exports.getDescriptionString = exports.getDescriptionLength = exports.getProductAttributes = exports.productUnitSupportsDecimals = exports.getCorrectPluralSellUnit = exports.getPluralUnitLabelWithSlug = exports.getUnitLabelWithSlug = exports.getProductSellUnitLabel = void 0;
74
- var ceil_1 = __importDefault(require("lodash/ceil"));
75
- var maxBy_1 = __importDefault(require("lodash/maxBy"));
76
- var orderBy_1 = __importDefault(require("lodash/orderBy"));
77
- var toNumber_1 = __importDefault(require("lodash/toNumber"));
78
- var round_1 = __importDefault(require("lodash/round"));
79
- var flatten_1 = __importDefault(require("lodash/flatten"));
80
- var uniqBy_1 = __importDefault(require("lodash/uniqBy"));
81
- var sumBy_1 = __importDefault(require("lodash/sumBy"));
82
- var Cart_1 = require("../../../Interfaces/Cart");
83
- var G2_1 = require("../../../Interfaces/G2");
84
- var IDiscountRule_1 = require("../../../Interfaces/Rules/IDiscountRule");
85
- var string_1 = require("../../../utils/string");
86
- var locale_1 = require("../../../utils/locale");
87
- var inventories_1 = require("../../../utils/inventories");
88
- var products_1 = require("../../../utils/products");
89
- var expedition_1 = require("./expedition");
90
- var products_2 = require("../constants/products");
91
- var g2_1 = require("./g2");
92
- var cart_1 = require("./cart");
93
- var products_3 = require("../interfaces/products");
94
- var data_1 = require("../interfaces/data");
95
- var cart_2 = require("../interfaces/cart");
96
- var upsells_1 = require("./upsells");
97
- var object_1 = require("../../../utils/object");
98
- var pluralSellUnits = {
99
- p2: { fr: 'pi²', en: 'sqft' },
100
- sac: { fr: 'sacs', en: 'bags' },
101
- unite: { fr: 'unités', en: 'units' },
102
- tonne: { fr: 'tonnes', en: 'tons' },
103
- rouleau: { fr: 'rouleaux', en: 'rolls' }
104
- };
105
- var pluralSellUnitsBySlug = {
106
- p2: { fr: 'pi²', en: 'sqft' },
107
- sac: { fr: 'sacs', en: 'bags' },
108
- unite: { fr: 'unités', en: 'units' },
109
- tonne: { fr: 'tonnes', en: 'tons' },
110
- roul: { fr: 'rouleaux', en: 'rolls' },
111
- pal: { fr: 'palettes', en: 'pallets' },
112
- rg: { fr: 'rangs', en: 'rows' },
113
- ensemble: { fr: 'ensembles', en: 'kits' },
114
- pl: { fr: 'pL', en: 'linear feet' },
115
- mcx: { fr: 'morceaux', en: 'pieces' },
116
- vg3: { fr: 'vg³', en: 'yd³' },
117
- demipalsm: { fr: 'Demi-palettes (petite)', en: 'Half-pallets (small)' },
118
- demipallg: { fr: 'Demi-palettes (lg)', en: 'Half-pallets (lg)' },
119
- tonnes: { fr: 'tonnes', en: 'tons' },
120
- bte: { fr: 'boîtes', en: 'boxes' },
121
- pqt: { fr: 'paquets', en: 'bundles' },
122
- '': { fr: 'unités', en: 'units' }
123
- };
124
- var sellUnitsBySlug = {
125
- p2: { fr: 'pi²', en: 'sqft' },
126
- sac: { fr: 'sac', en: 'bag' },
127
- unite: { fr: 'unité', en: 'unit' },
128
- tonne: { fr: 'tonne', en: 'ton' },
129
- roul: { fr: 'rouleau', en: 'roll' },
130
- pal: { fr: 'palette', en: 'pallet' },
131
- rg: { fr: 'rang', en: 'row' },
132
- ensemble: { fr: 'ensemble', en: 'kit' },
133
- pl: { fr: 'pL', en: 'linear feet' },
134
- mcx: { fr: 'morceau', en: 'piece' },
135
- vg3: { fr: 'vg³', en: 'yd³' },
136
- demipalsm: { fr: 'Demi-palette (petite)', en: 'Half-pallet (small)' },
137
- demipallg: { fr: 'Demi-palette (lg)', en: 'Half-pallet (lg)' },
138
- tonnes: { fr: 'tonne', en: 'ton' },
139
- bte: { fr: 'boîte', en: 'box' },
140
- pqt: { fr: 'paquet', en: 'bundle' },
141
- '': { fr: 'unité', en: 'unit' }
142
- };
143
- var getProductSellUnitLabel = function (otherUnits, locale, returnUnitForSlugs) {
144
- if (locale === void 0) { locale = 'fr'; }
145
- if (!!!otherUnits)
146
- return '';
147
- var sellingUnit = otherUnits.find(function (unit) { return !!unit.is_sale_unit; });
148
- if (!!!sellingUnit)
149
- return '';
150
- return sellingUnit.unit_slug === 'p2'
151
- ? (0, locale_1.translateILang)(pluralSellUnitsBySlug.p2, locale)
152
- : !!(0, inventories_1.getUnitShortDict)(sellingUnit.unit_slug, returnUnitForSlugs)
153
- ? (0, locale_1.translateILang)((0, inventories_1.getUnitShortDict)(sellingUnit.unit_slug, returnUnitForSlugs), locale)
154
- : sellingUnit.unit_slug;
155
- };
156
- exports.getProductSellUnitLabel = getProductSellUnitLabel;
157
- var getUnitLabelWithSlug = function (unitSlug, locale, getPluralVersion, returnUnitForSlugs) {
158
- if (locale === void 0) { locale = 'fr'; }
159
- if (getPluralVersion === void 0) { getPluralVersion = false; }
160
- if (!!getPluralVersion)
161
- return (0, exports.getPluralUnitLabelWithSlug)(unitSlug, locale, returnUnitForSlugs);
162
- if (!!returnUnitForSlugs && !!returnUnitForSlugs.includes(unitSlug)) {
163
- return (0, locale_1.translateILang)(sellUnitsBySlug['unite'], locale);
164
- }
165
- return !!sellUnitsBySlug[unitSlug]
166
- ? (0, locale_1.translateILang)(sellUnitsBySlug[unitSlug], locale)
167
- : !!(0, inventories_1.getUnitShortDict)(unitSlug)
168
- ? (0, locale_1.translateILang)((0, inventories_1.getUnitShortDict)(unitSlug), locale)
169
- : unitSlug;
170
- };
171
- exports.getUnitLabelWithSlug = getUnitLabelWithSlug;
172
- var getPluralUnitLabelWithSlug = function (unitSlug, locale, returnUnitForSlugs) {
173
- if (locale === void 0) { locale = 'fr'; }
174
- if (!!returnUnitForSlugs && !!returnUnitForSlugs.includes(unitSlug)) {
175
- return (0, locale_1.translateILang)(pluralSellUnitsBySlug['unite'], locale);
176
- }
177
- return !!pluralSellUnitsBySlug[unitSlug]
178
- ? (0, locale_1.translateILang)(pluralSellUnitsBySlug[unitSlug], locale)
179
- : !!(0, inventories_1.getUnitShortDict)(unitSlug)
180
- ? (0, locale_1.translateILang)((0, inventories_1.getUnitShortDict)(unitSlug), locale)
181
- : unitSlug;
182
- };
183
- exports.getPluralUnitLabelWithSlug = getPluralUnitLabelWithSlug;
184
- var getCorrectPluralSellUnit = function (sellUnit, locale) {
185
- if (locale === void 0) { locale = 'fr'; }
186
- if (!!!sellUnit.unit)
187
- return '';
188
- var frSellUnit = (0, string_1.string_to_slug)((0, locale_1.translateILang)(sellUnit.unit, 'fr'));
189
- return !!pluralSellUnits[frSellUnit]
190
- ? (0, locale_1.translateILang)(pluralSellUnits[frSellUnit], locale)
191
- : (0, locale_1.translateILang)(sellUnit.unit, locale);
192
- };
193
- exports.getCorrectPluralSellUnit = getCorrectPluralSellUnit;
194
- var productUnitSupportsDecimals = function (unitSlug, isService) {
195
- return !!isService || !!['p2', 'pl', 'vg3', 'tonne'].includes(unitSlug);
196
- };
197
- exports.productUnitSupportsDecimals = productUnitSupportsDecimals;
198
- var getProductAttributes = function (product) {
199
- var arrColor = !!product.attributes[data_1.AttributesIdEnumGR.SUBCOLOR]
200
- ? product.attributes[data_1.AttributesIdEnumGR.SUBCOLOR]
201
- : [];
202
- var arrDimensions = !!product.attributes[data_1.AttributesIdEnumGR.DIMENSIONS]
203
- ? product.attributes[data_1.AttributesIdEnumGR.DIMENSIONS]
204
- : [];
205
- var arrFormats = !!product.attributes[data_1.AttributesIdEnumGR.FORMATS]
206
- ? product.attributes[data_1.AttributesIdEnumGR.FORMATS]
207
- : [];
208
- return { colors: arrColor, dimensions: arrDimensions, formats: arrFormats };
209
- };
210
- exports.getProductAttributes = getProductAttributes;
211
- var getDescriptionLength = function (description, locale) {
212
- if (locale === void 0) { locale = 'fr'; }
213
- if (!!!description || !!!(0, locale_1.getLocaleOfDictionnary)(description, locale))
214
- return 0;
215
- return (0, string_1.stripHTML)((0, locale_1.getLocaleOfDictionnary)(description, locale)).length;
216
- };
217
- exports.getDescriptionLength = getDescriptionLength;
218
- var getDescriptionString = function (showFullDesc, maxLength, description, locale) {
219
- if (locale === void 0) { locale = 'fr'; }
220
- if (!!showFullDesc || (0, exports.getDescriptionLength)(description, locale) <= maxLength) {
221
- return (0, string_1.stripHTML)((0, locale_1.getLocaleOfDictionnary)(description, locale));
222
- }
223
- var truncated = (0, string_1.stripHTML)((0, locale_1.getLocaleOfDictionnary)(description, locale)).slice(0, maxLength).split(' ');
224
- truncated.pop();
225
- return truncated.join(' ') + ' [...]';
226
- };
227
- exports.getDescriptionString = getDescriptionString;
228
- var getRoundedProductQuantities = function (value, otherUnits, value2, targetIsSecondaryInput) {
229
- var _a;
230
- if (otherUnits === void 0) { otherUnits = []; }
231
- if (targetIsSecondaryInput === void 0) { targetIsSecondaryInput = false; }
232
- var saleUnit = otherUnits.find(function (unit) { return unit.is_sale_unit; });
233
- var commandUnit = otherUnits.find(function (unit) { return unit.is_command_unit; });
234
- var commandStep = otherUnits.find(function (unit) { return unit.is_command_step; });
235
- var roundedQuantities = {
236
- qte1: value,
237
- qte2: value2
238
- };
239
- if (!!targetIsSecondaryInput && typeof value2 === 'number') {
240
- if (!!commandStep && !!commandStep.fitting_unit && !!commandUnit && !!commandUnit.fitting_unit && !!saleUnit) {
241
- var nbCmdUnitPerCmdStep = (0, round_1.default)(commandStep.fitting_unit / commandUnit.fitting_unit, 2);
242
- var nbSaleUnitPerCmdStep = (0, round_1.default)(commandStep.fitting_unit / ((_a = saleUnit.fitting_unit) !== null && _a !== void 0 ? _a : 1), (0, exports.productUnitSupportsDecimals)(saleUnit.unit_slug) ? 2 : 0);
243
- var roundedValue = value2 === 0 ? 0 : _roundNbUnitPerCmdStep(value2, nbCmdUnitPerCmdStep);
244
- var nbOfRoundedCmdUnits = roundedValue / nbCmdUnitPerCmdStep;
245
- var nbOfRoundedSaleUnits = nbOfRoundedCmdUnits * nbSaleUnitPerCmdStep;
246
- roundedQuantities = {
247
- qte1: value2 === 0
248
- ? 0
249
- : (0, round_1.default)(nbOfRoundedSaleUnits, !!saleUnit && (0, exports.productUnitSupportsDecimals)(saleUnit.unit_slug) ? 2 : 0),
250
- qte2: roundedValue
251
- };
252
- }
253
- }
254
- else if (!!commandStep && !!commandStep.fitting_unit && !!saleUnit && !!saleUnit.fitting_unit) {
255
- var cmdStepFittingUnit = commandStep.fitting_unit;
256
- var saleFittingUnit = saleUnit.fitting_unit;
257
- var nbSaleUnitPerCmdStep = (0, round_1.default)(cmdStepFittingUnit / saleFittingUnit, (0, exports.productUnitSupportsDecimals)(saleUnit.unit_slug) ? 2 : 0);
258
- var roundedValue = value === 0
259
- ? 0
260
- : _roundNbUnitPerCmdStep(value, nbSaleUnitPerCmdStep, (0, exports.productUnitSupportsDecimals)(saleUnit.unit_slug));
261
- var commandUnitQty = undefined;
262
- if (!!commandUnit && !!commandUnit.fitting_unit) {
263
- if (value === 0) {
264
- commandUnitQty = 0;
265
- }
266
- else if (saleFittingUnit == 1) {
267
- commandUnitQty = (0, round_1.default)(roundedValue / commandUnit.fitting_unit, (0, exports.productUnitSupportsDecimals)(commandUnit.unit_slug) ? 2 : 0);
268
- }
269
- else {
270
- var nbOfCmdSteps = roundedValue / nbSaleUnitPerCmdStep;
271
- commandUnitQty =
272
- nbOfCmdSteps *
273
- (0, round_1.default)(cmdStepFittingUnit / commandUnit.fitting_unit, (0, exports.productUnitSupportsDecimals)(commandUnit.unit_slug) ? 2 : 0);
274
- }
275
- }
276
- roundedQuantities = {
277
- qte1: roundedValue,
278
- qte2: commandUnitQty
279
- };
280
- }
281
- return roundedQuantities;
282
- };
283
- exports.getRoundedProductQuantities = getRoundedProductQuantities;
284
- var _roundNbUnitPerCmdStep = function (value, nbUnitPerCmdStep, supportsDecimals) {
285
- var rounded = (0, round_1.default)(value / nbUnitPerCmdStep, !!supportsDecimals ? 2 : 0) * nbUnitPerCmdStep;
286
- var roundedUp = Math.ceil(value / nbUnitPerCmdStep) * nbUnitPerCmdStep;
287
- if (rounded == 0 && roundedUp > 0)
288
- return roundedUp;
289
- if (value > rounded)
290
- return roundedUp;
291
- if ((0, round_1.default)(rounded, !!supportsDecimals ? 2 : 0) % nbUnitPerCmdStep == 0)
292
- return rounded;
293
- return roundedUp;
294
- };
295
- var splitOnDashes = function (stringToSplit, dummyStringToReplace) {
296
- if (dummyStringToReplace === void 0) { dummyStringToReplace = { currentValue: '%%-%%', newValue: ' - ' }; }
297
- var splited = stringToSplit.split(' - ');
298
- if (splited.length === 1)
299
- splited = stringToSplit.split(' -');
300
- if (splited.length === 1)
301
- splited = stringToSplit.split('- ');
302
- return __spreadArray([
303
- splited[0].replace(dummyStringToReplace.currentValue, dummyStringToReplace.newValue)
304
- ], (!!splited[1]
305
- ? [splited.slice(1).join(' - ').replace(dummyStringToReplace.currentValue, dummyStringToReplace.newValue)]
306
- : []), true);
307
- };
308
- exports.splitOnDashes = splitOnDashes;
309
- var getProdName = function (product, locale) {
310
- var name;
311
- if (!!product.full_name) {
312
- name = (0, locale_1.getLocaleOfDictionnary)(product.full_name, locale);
313
- }
314
- else {
315
- name = (0, locale_1.getLocaleOfDictionnary)(product.name, locale);
316
- if (!!product.use_parent && !!product.parent_name) {
317
- if (typeof product.parent_name === 'string') {
318
- name = product.parent_name;
319
- }
320
- }
321
- }
322
- var newNameArray = [];
323
- var dashesToFind = [' - ', '- ', ' -'];
324
- if (name.includes('(')) {
325
- var newStr = '';
326
- var strWithParenthesisToCheck = name;
327
- while (strWithParenthesisToCheck.includes('(')) {
328
- var positionStart = strWithParenthesisToCheck.indexOf('(');
329
- var positionEnd = strWithParenthesisToCheck.indexOf(')');
330
- var substrToCheck = strWithParenthesisToCheck.substring(positionStart, positionEnd + 1);
331
- for (var _i = 0, dashesToFind_1 = dashesToFind; _i < dashesToFind_1.length; _i++) {
332
- var dash = dashesToFind_1[_i];
333
- substrToCheck = substrToCheck.replace(dash, '-');
334
- }
335
- newStr += strWithParenthesisToCheck.substring(0, positionStart) + substrToCheck;
336
- strWithParenthesisToCheck =
337
- positionEnd === strWithParenthesisToCheck.length - 1 ? '' : strWithParenthesisToCheck.substring(positionEnd + 1);
338
- }
339
- newStr += strWithParenthesisToCheck;
340
- var positionOfFirst = newStr.indexOf(')');
341
- var firstPart_1 = newStr.substring(0, positionOfFirst);
342
- if (positionOfFirst !== newStr.length - 1 && dashesToFind.some(function (str) { return firstPart_1.includes(str); })) {
343
- var secondPart = newStr.substring(positionOfFirst);
344
- for (var _a = 0, dashesToFind_2 = dashesToFind; _a < dashesToFind_2.length; _a++) {
345
- var str = dashesToFind_2[_a];
346
- firstPart_1.replace(str, '%%-%%');
347
- }
348
- newNameArray = (0, exports.splitOnDashes)("".concat(firstPart_1).concat(secondPart));
349
- }
350
- else {
351
- newNameArray = (0, exports.splitOnDashes)(newStr);
352
- }
353
- }
354
- else {
355
- newNameArray = (0, exports.splitOnDashes)(name);
356
- }
357
- return newNameArray;
358
- };
359
- exports.getProdName = getProdName;
360
- var getParentProductCategoryGroup = function (prod) {
361
- var type = 'other';
362
- if (!!prod.categories && !!prod.categories['lvl0']) {
363
- var categorySlug = prod.categories['lvl0'];
364
- switch (categorySlug) {
365
- case 'gazon':
366
- if (!!(0, exports.checkIfProductIsOfType)(prod, 'gazon')) {
367
- type = 'gazon';
368
- }
369
- break;
370
- case 'amenagement-paysager':
371
- if (!!(0, exports.checkIfProductIsOfType)(prod, 'beton')) {
372
- type = 'beton';
373
- }
374
- break;
375
- default:
376
- if (!!(0, exports.checkIfProductIsOfType)(prod, 'vrac')) {
377
- type = 'vrac';
378
- }
379
- break;
380
- }
381
- }
382
- return type;
383
- };
384
- exports.getParentProductCategoryGroup = getParentProductCategoryGroup;
385
- var getProductFormOptions = function (product, attributes) {
386
- var allColorOptions = [];
387
- var allDimensionOptions = [];
388
- var allFormatOptions = [];
389
- var product_attributes = (0, exports.getProductAttributes)(product);
390
- var overridenAttributes = product.declinations
391
- .map(function (declination) { return declination.overriden_attributes; })
392
- .filter(function (ova) { return !!ova; });
393
- overridenAttributes = (0, flatten_1.default)(overridenAttributes);
394
- overridenAttributes = (0, uniqBy_1.default)(overridenAttributes, 'slug');
395
- var getOverriddenValues = function (prodAttributes, attrId) {
396
- var overridenOptions = !!overridenAttributes.length
397
- ? overridenAttributes.filter(function (attr) { return attr.id === attrId; })
398
- : [];
399
- var finalOptions = [];
400
- for (var _i = 0, prodAttributes_1 = prodAttributes; _i < prodAttributes_1.length; _i++) {
401
- var attr = prodAttributes_1[_i];
402
- var isOverridden = false;
403
- for (var _a = 0, overridenOptions_1 = overridenOptions; _a < overridenOptions_1.length; _a++) {
404
- var ovOption = overridenOptions_1[_a];
405
- if (!isOverridden) {
406
- if (!!attr && attr.slug === ovOption.slug) {
407
- isOverridden = true;
408
- finalOptions = __spreadArray(__spreadArray([], finalOptions, true), [
409
- __assign(__assign({}, attr), { other_details: __assign(__assign({}, attr.other_details), { image: ovOption.overriden_values }) })
410
- ], false);
411
- }
412
- }
413
- }
414
- if (!isOverridden) {
415
- finalOptions = __spreadArray(__spreadArray([], finalOptions, true), [attr], false);
416
- }
417
- }
418
- return finalOptions;
419
- };
420
- var subColorsAttr = attributes.find(function (attr) { return attr.id === data_1.AttributesIdEnumGR.SUBCOLOR; });
421
- if (!!subColorsAttr) {
422
- var subColors = subColorsAttr.values;
423
- var colorsAttributes = subColors.filter(function (sub) { return product_attributes.colors.includes(sub.slug); });
424
- var finalColors = getOverriddenValues(colorsAttributes, data_1.AttributesIdEnumGR.SUBCOLOR);
425
- allColorOptions = (0, orderBy_1.default)(finalColors, function (color) {
426
- return product.declinations.findIndex(function (d) { return d.attributes[data_1.AttributesIdEnumGR.SUBCOLOR].includes(color.slug); });
427
- });
428
- }
429
- var dimensionsAttr = attributes.find(function (attr) { return attr.id === data_1.AttributesIdEnumGR.DIMENSIONS; });
430
- if (!!dimensionsAttr) {
431
- var dimensions = dimensionsAttr.values;
432
- var dimensionsAttributes = dimensions.filter(function (d) { return product_attributes.dimensions.includes(d.slug); });
433
- var finalDimensions = getOverriddenValues(dimensionsAttributes, data_1.AttributesIdEnumGR.DIMENSIONS);
434
- allDimensionOptions = finalDimensions;
435
- }
436
- var formatsAttr = attributes.find(function (attr) { return attr.id === data_1.AttributesIdEnumGR.FORMATS; });
437
- if (!!formatsAttr) {
438
- var formats = formatsAttr.values;
439
- allFormatOptions = formats.filter(function (f) { return product_attributes.formats.includes(f.slug); });
440
- }
441
- return {
442
- allColors: allColorOptions,
443
- allDimensions: allDimensionOptions,
444
- allFormats: allFormatOptions
445
- };
446
- };
447
- exports.getProductFormOptions = getProductFormOptions;
448
- var checkIfProductIsOfType = function (product, type, excludeUndefined) {
449
- var attr = !!product && !!product.attributes ? product.attributes : {};
450
- if (!!!attr[data_1.AttributesIdEnumGR.TYPE] && !!excludeUndefined)
451
- return true;
452
- return (!!attr[data_1.AttributesIdEnumGR.TYPE] &&
453
- Array.isArray(attr[data_1.AttributesIdEnumGR.TYPE]) &&
454
- attr[data_1.AttributesIdEnumGR.TYPE].includes(type));
455
- };
456
- exports.checkIfProductIsOfType = checkIfProductIsOfType;
457
- var checkIfProductIsInstallation = function (item) {
458
- return !!item.is_service && !!item.parent_slug && !!item.parent_slug.includes('installation');
459
- };
460
- exports.checkIfProductIsInstallation = checkIfProductIsInstallation;
461
- var getAllInstallFromItems = function (items) {
462
- return items.filter(function (i) {
463
- return (!!i.parent_slug && products_2.installationProductsSlugs.includes(i.parent_slug)) ||
464
- Object.values(products_2.installationProSpecSkus).includes(i.sku);
465
- });
466
- };
467
- exports.getAllInstallFromItems = getAllInstallFromItems;
468
- var fuseGrassProducts = function (recursiveItems, isPro) {
469
- var specialityGrass = recursiveItems[0];
470
- var kentuckyGrass = (specialityGrass.sub_items || []).find(function (sub) { return sub.sku === products_2.kentucky; });
471
- var newItems = [];
472
- if (!!kentuckyGrass) {
473
- var kentuckyPrice = (0, products_1.getLowestPrice)(kentuckyGrass);
474
- var regPriceKentucky = kentuckyGrass.regular_price.amount;
475
- var newGrassRegPrice = !!kentuckyPrice.promo ? regPriceKentucky : kentuckyPrice.price.amount;
476
- var newGrassDiscountPrice = (!!specialityGrass.discount_price
477
- ? specialityGrass.discount_price.amount
478
- : specialityGrass.regular_price.amount) +
479
- (!!kentuckyPrice.promo ? kentuckyPrice.price.amount : regPriceKentucky);
480
- var getLowestPriceSpecialityGrass_1 = (0, products_1.getLowestPrice)(specialityGrass);
481
- newItems = __spreadArray([
482
- __assign(__assign(__assign(__assign(__assign(__assign({}, specialityGrass), { regular_price: __assign(__assign({}, specialityGrass.regular_price), { amount: newGrassRegPrice + specialityGrass.regular_price.amount }) }), (!!newGrassDiscountPrice
483
- ? {
484
- discount_price: __assign(__assign({}, (specialityGrass.discount_price || { currency: 'CAD' })), { amount: newGrassDiscountPrice })
485
- }
486
- : {})), (!!specialityGrass.promo_price
487
- ? {
488
- promo_price: __assign(__assign({}, specialityGrass.promo_price), { amount: specialityGrass.promo_price.amount + kentuckyPrice.price.amount })
489
- }
490
- : {})), (!!!isPro && !!kentuckyGrass.tier_pricing
491
- ? {
492
- tier_pricing: kentuckyGrass.tier_pricing.map(function (t) { return (__assign(__assign({}, t), { price: __assign(__assign({}, t.price), { amount: t.price.amount + getLowestPriceSpecialityGrass_1.price.amount }) })); })
493
- }
494
- : {})), { sub_items: __spreadArray([
495
- __assign(__assign({}, kentuckyGrass), { hide_from_summary: true })
496
- ], (specialityGrass.sub_items || []).slice(1), true) })
497
- ], recursiveItems.slice(1), true);
498
- }
499
- return newItems;
500
- };
501
- exports.fuseGrassProducts = fuseGrassProducts;
502
- var isMinQtyFee = function (slug) {
503
- return ['minimum-facturable-commande', 'frais-minimum-gazon-pour-installation'].includes(slug);
504
- };
505
- exports.isMinQtyFee = isMinQtyFee;
506
- var getAllMinGrassQuantities = function (grassProduct, isPro) {
507
- return {
508
- pickup: (0, expedition_1.getMinGrassQte)(grassProduct, 'pickup', isPro),
509
- shipping: (0, expedition_1.getMinGrassQte)(grassProduct, 'shipping', isPro),
510
- install: (0, expedition_1.getMinQteInstall)(isPro)
511
- };
512
- };
513
- exports.getAllMinGrassQuantities = getAllMinGrassQuantities;
514
- var getMinQtyFeeText = function (parent_slug, grassProduct, isPro, locale, expeditionMethod, shortVersion) {
515
- if (parent_slug === void 0) { parent_slug = ''; }
516
- if (locale === void 0) { locale = 'fr'; }
517
- var type = parent_slug === 'frais-minimum-gazon-pour-installation' ? 'install' : 'order';
518
- var minQuantities = (0, exports.getAllMinGrassQuantities)(grassProduct, isPro);
519
- var localeSellUnit = (0, locale_1.translateILang)(pluralSellUnits.p2, locale);
520
- var localeStepUnit = (0, locale_1.translateILang)((0, inventories_1.getUnitShortDict)('roul'), locale).toLowerCase();
521
- var localeMinUnit = (0, locale_1.translateILang)((0, inventories_1.getUnitShortDict)('pal'), locale).toLowerCase();
522
- var str = '';
523
- var endStr = (0, locale_1.translateILang)({
524
- fr: " Ce frais correspond au prix du gazon choisi multipli\u00E9 par la diff\u00E9rence entre la quantit\u00E9 choisie et le minimum.",
525
- en: " Ce frais correspond au prix du gazon choisi multipli\u00E9 par la diff\u00E9rence entre la quantit\u00E9 choisie et le minimum."
526
- }, locale);
527
- if (!!!expeditionMethod && type === 'order' && minQuantities.pickup !== minQuantities.shipping) {
528
- var strMinShipping = "".concat(minQuantities.shipping).concat(localeSellUnit, " (").concat(minQuantities.shipping / 740, " ").concat(localeMinUnit, ")");
529
- var strMinPickup = !!minQuantities.pickup
530
- ? "".concat(minQuantities.pickup).concat(localeSellUnit, " (").concat(minQuantities.pickup / 740, " ").concat(localeMinUnit, ")")
531
- : '';
532
- str = (0, locale_1.translateILang)({
533
- fr: "Les commandes de gazon sont disponibles \u00E0 partir de 10".concat(localeSellUnit, " (1 ").concat(localeStepUnit, "), mais le minimum facturable pour la livraison est de ").concat(strMinShipping).concat(!!strMinPickup ? " et de ".concat(strMinPickup, " pour la cueillette.") : ""),
534
- en: "Sod orders are available starting at 10".concat(localeSellUnit, " (1 ").concat(localeStepUnit, "), but the minimum chargeable for delivery is ").concat(strMinShipping).concat(!!strMinPickup ? " and ".concat(strMinPickup, " for pick-up.") : "")
535
- }, locale);
536
- if (!!!shortVersion) {
537
- str += endStr;
538
- }
539
- return str;
540
- }
541
- var minBillableQty = type === 'install'
542
- ? minQuantities.install
543
- : expeditionMethod === 'pickup'
544
- ? minQuantities.pickup
545
- : minQuantities.shipping;
546
- var minQtyPallets = minBillableQty !== 0 ? minBillableQty / 740 : 0;
547
- var minBillableStr = "".concat(minBillableQty).concat(localeSellUnit).concat(type === 'order' ? ' (' + minQtyPallets + ' ' + localeMinUnit + ')' : '');
548
- str = (0, locale_1.translateILang)({
549
- fr: "".concat(type === 'install'
550
- ? "L'installation"
551
- : expeditionMethod === 'pickup'
552
- ? 'La cueillette'
553
- : expeditionMethod === 'delivery'
554
- ? 'La livraison'
555
- : 'La commande', " de gazon est disponible \u00E0 partir de 10").concat(localeSellUnit, " (1 ").concat(localeStepUnit, "), mais le minimum facturable est de ").concat(minBillableStr, "."),
556
- en: "Sod ".concat(type === 'install'
557
- ? 'installation'
558
- : expeditionMethod === 'pickup'
559
- ? 'pick-up'
560
- : expeditionMethod === 'delivery'
561
- ? 'delivery'
562
- : 'ordering', " is available starting at 10").concat(localeSellUnit, " (1 ").concat(localeStepUnit, "), but the minimum billable is ").concat(minBillableStr, ".")
563
- }, locale);
564
- if (!!!shortVersion) {
565
- str += endStr;
566
- }
567
- return str;
568
- };
569
- exports.getMinQtyFeeText = getMinQtyFeeText;
570
- var getMinQtyFeeAmountText = function (parent_slug, locale, servicesFees, showMinFeeAmount) {
571
- if (parent_slug === void 0) { parent_slug = ''; }
572
- if (locale === void 0) { locale = 'fr'; }
573
- if (showMinFeeAmount === void 0) { showMinFeeAmount = true; }
574
- var serviceOrFee = servicesFees.find(function (i) { return i.parent_slug === parent_slug; });
575
- if (!!!serviceOrFee)
576
- return '';
577
- var amount = (0, toNumber_1.default)(serviceOrFee.regular_price.amount) * serviceOrFee.qte;
578
- return (0, locale_1.translateILang)({
579
- fr: "Une diff\u00E9rence de ".concat(!!showMinFeeAmount ? amount.toFixed(2) + '$' : '%LOADER%', "%BOLD% vous sera charg\u00E9e si la quantit\u00E9 de gazon au panier est plus petite que le minimum requis."),
580
- en: "A difference of ".concat(!!showMinFeeAmount ? amount.toFixed(2) + '$' : '%LOADER%', "%BOLD% will be charged if the quantity of sod in the cart is less than the minimum required.")
581
- }, locale);
582
- };
583
- exports.getMinQtyFeeAmountText = getMinQtyFeeAmountText;
584
- var getGrassQteText = function (chosenDeclination, locale) {
585
- if (locale === void 0) { locale = 'fr'; }
586
- var txt = '';
587
- var nbRolls = 0;
588
- var nbSquareFeet = 0;
589
- var units = !!!chosenDeclination ? [] : chosenDeclination.other_units;
590
- if (!!units && !!units.length) {
591
- var itemRolls = units.find(function (measure) { return measure.unit_slug === 'roul'; });
592
- var itemSquareFeet = units.find(function (measure) { return measure.unit_slug === 'pal'; });
593
- if (!!itemSquareFeet && !!itemSquareFeet.fitting_unit) {
594
- nbSquareFeet = itemSquareFeet.fitting_unit;
595
- }
596
- if (!!itemRolls && !!itemRolls.fitting_unit && nbSquareFeet !== 0) {
597
- nbRolls = nbSquareFeet / itemRolls.fitting_unit;
598
- }
599
- }
600
- txt = (0, locale_1.translateILang)({
601
- fr: 'Pour ce produit, vous devez commander par pieds carrés. Une palette = *nbRolls* rouleaux (*nbSquareFeet*pi2)',
602
- en: 'For this product, you have to order by square feet. A pallet = *nbRolls* rolls (*nbSquareFeet*pi2)'
603
- }, locale);
604
- txt = txt.replace('*nbRolls*', String(nbRolls));
605
- txt = txt.replace('*nbSquareFeet*', String(nbSquareFeet));
606
- return txt;
607
- };
608
- exports.getGrassQteText = getGrassQteText;
609
- var getGrassServicesFees = function (grassProduct, isPro, useFees, expeditionMethod, fetchProduct, getIfAddressIsInsideZones, getDistanceFromAddress, locale, allStores, chosenGrass, baseGrass, customPriceList) { return __awaiter(void 0, void 0, void 0, function () {
610
- var installItems, cart, applied;
611
- return __generator(this, function (_a) {
612
- switch (_a.label) {
613
- case 0: return [4, (0, exports.getInstallationArray)(grassProduct.qte, (!!baseGrass ? baseGrass : chosenGrass).product_upsells, fetchProduct, locale, isPro, chosenGrass.sku, customPriceList, { engrais: true, roulage: true })];
614
- case 1:
615
- installItems = _a.sent();
616
- cart = __assign(__assign({}, (0, Cart_1.getDefaultCart)()), { items: __spreadArray(__spreadArray([
617
- chosenGrass
618
- ], (!!baseGrass ? [baseGrass] : []), true), installItems.filter(function (item) { return !!!(0, exports.isMinQtyFee)(item.parent_slug || ''); }), true) });
619
- return [4, (0, exports.fetchFeesBeforeCart)(!!useFees, cart, expeditionMethod, fetchProduct, getIfAddressIsInsideZones, getDistanceFromAddress, locale, allStores, isPro, grassProduct, undefined, { useStoreAddress: 'sainte-julie' }, customPriceList)];
620
- case 2:
621
- applied = _a.sent();
622
- return [2, __spreadArray(__spreadArray([], installItems, true), applied.itemsToAdd, true)];
623
- }
624
- });
625
- }); };
626
- exports.getGrassServicesFees = getGrassServicesFees;
627
- var getGrassSubQuestionsByType = function (type) {
628
- if (type === 'pro') {
629
- return products_2.otherGrassSubQuestions.filter(function (sub) { return !!sub.proOnly; });
630
- }
631
- return products_2.otherGrassSubQuestions.filter(function (sub) { return 'installation-gazon' === sub.associatedProductSlug || (!!sub.installOnly && !!!sub.proOnly); });
632
- };
633
- exports.getGrassSubQuestionsByType = getGrassSubQuestionsByType;
634
- var handleGrassProductQtyRoundForShipping = function (cartData, grassProduct) {
635
- if (!!!cartData || !!!grassProduct)
636
- return;
637
- var product = cartData.items.find(function (item) { return item.sku === grassProduct.sku; });
638
- if (!!!product)
639
- return;
640
- var productOtherUnits = product.other_units;
641
- if (!!!productOtherUnits)
642
- return;
643
- var palUnit = productOtherUnits.find(function (u) { return u.unit_slug === 'pal'; });
644
- var rounded = (0, exports.roundGrassQte)(product.qte, !!!cartData.is_pickup, palUnit);
645
- if (!!!rounded || rounded === grassProduct.qte)
646
- return;
647
- var itemsToChange = [];
648
- var recursiveGrassItem = (0, cart_1.getRecursiveItems)(cartData.items).find(function (item) { return item.sku === grassProduct.sku; });
649
- var getItemsToChange = function (item) {
650
- if (!!item.sub_items) {
651
- item.sub_items.forEach(function (subItem) { return getItemsToChange(subItem); });
652
- }
653
- if (item.parent_slug === 'frais-de-mobilisation') {
654
- var totalPallet = (0, expedition_1.getPalletQty)(cartData.items.map(function (i) {
655
- if ((0, exports.checkIfProductIsOfType)(i, 'gazon')) {
656
- return __assign(__assign({}, i), { qte: rounded });
657
- }
658
- return i;
659
- }), 'grass');
660
- itemsToChange.push({
661
- sku: item.sku,
662
- qte: (0, ceil_1.default)(totalPallet / expedition_1.installationFeePalletTier)
663
- });
664
- return;
665
- }
666
- if (!!item.is_upsell_of_sku) {
667
- var parentUpsellProd = cartData.items.find(function (i) { return i.sku === item.is_upsell_of_sku; });
668
- if (!!parentUpsellProd) {
669
- var sameUpsell = (parentUpsellProd.product_upsells || []).find(function (up) { return up.recommendation_sku === item.sku; });
670
- if (!!sameUpsell) {
671
- var anUpsellProduct = __assign(__assign(__assign(__assign({}, item), { parent_slug: sameUpsell.recommendation_parent_slug, recommended_qte: sameUpsell.recommendation_qty, recommended_sku: sameUpsell.recommendation_sku, matching_qte: !!sameUpsell.matching_qty, auto_add: sameUpsell.auto_add, auto_add_exceptions: sameUpsell.auto_add_exceptions, actual_qte: sameUpsell.actual_qty }), (!!sameUpsell.is_recommendation ? { is_recommendation: true } : {})), (!!sameUpsell.show_recommendation_msg ? { show_recommendation_msg: true } : {}));
672
- var ratio = (0, upsells_1.calculateUpsellQte)(anUpsellProduct, rounded);
673
- if (!!ratio) {
674
- itemsToChange.push({
675
- sku: item.sku,
676
- qte: ratio
677
- });
678
- return;
679
- }
680
- }
681
- }
682
- }
683
- itemsToChange.push({
684
- sku: item.sku,
685
- qte: rounded
686
- });
687
- return;
688
- };
689
- if (!!recursiveGrassItem) {
690
- getItemsToChange(recursiveGrassItem);
691
- }
692
- return { rounded: rounded, itemsToChange: itemsToChange };
693
- };
694
- exports.handleGrassProductQtyRoundForShipping = handleGrassProductQtyRoundForShipping;
695
- var roundGrassQte = function (currentQte, isShipping, palUnit) {
696
- var newQte = currentQte;
697
- switch (true) {
698
- case currentQte < 1480:
699
- var rest1480 = currentQte % 10;
700
- if (rest1480 !== 0) {
701
- newQte = currentQte - rest1480 + 10;
702
- }
703
- break;
704
- case currentQte >= 1480 && !!!isShipping:
705
- var rest1480Install = currentQte % 10;
706
- if (rest1480Install !== 0) {
707
- newQte = currentQte - rest1480Install + 10;
708
- }
709
- break;
710
- case currentQte >= 1480:
711
- if (!!palUnit && !!palUnit.fitting_unit) {
712
- var rest1480_1 = currentQte % palUnit.fitting_unit;
713
- if (rest1480_1 !== 0 && !!((rest1480_1 - 400) % palUnit.fitting_unit)) {
714
- newQte = currentQte - rest1480_1;
715
- if (newQte + 400 > currentQte) {
716
- newQte = newQte + 400;
717
- }
718
- else if (newQte + palUnit.fitting_unit > currentQte) {
719
- newQte = newQte + palUnit.fitting_unit;
720
- }
721
- }
722
- }
723
- break;
724
- }
725
- return newQte;
726
- };
727
- exports.roundGrassQte = roundGrassQte;
728
- var getInstallationArray = function (qte, baseGrassUpsells, fetchProduct, locale, isPro, chosenSku, customPriceList, returnOtherFees) { return __awaiter(void 0, void 0, void 0, function () {
729
- var upsell, installation_upsell, installation_parent, installation_decli, minQteInstall, arrayFinal, installation_array_1, installation_qte_array, closestQte_1, minimum_installation_fee, minInstallDecli, mobilisation_fee, mobilisationDecli, fertilisation, minFertilisationDecli, roullage, minRoulageDecli;
730
- return __generator(this, function (_a) {
731
- switch (_a.label) {
732
- case 0:
733
- upsell = baseGrassUpsells;
734
- if (!!!upsell)
735
- return [2, []];
736
- installation_upsell = upsell.filter(function (upsell) { return upsell.recommendation_parent_slug === 'installation-gazon'; });
737
- return [4, fetchProduct('installation-gazon', locale, true, true)];
738
- case 1:
739
- installation_parent = _a.sent();
740
- minQteInstall = (0, expedition_1.getMinQteInstall)(isPro);
741
- arrayFinal = [];
742
- if (!(!!installation_parent && !!installation_upsell && !!installation_upsell.length)) return [3, 8];
743
- installation_array_1 = [];
744
- if (!!isPro) {
745
- installation_array_1 = installation_parent.declinations.filter(function (decli) {
746
- return !!decli.attributes &&
747
- !!decli.attributes[data_1.AttributesIdEnumGR.CLIENT_TYPE] &&
748
- !!decli.attributes[data_1.AttributesIdEnumGR.CLIENT_TYPE].includes('pro');
749
- });
750
- }
751
- else {
752
- installation_array_1 = installation_parent.declinations.filter(function (decli) {
753
- return !!decli.attributes &&
754
- !!decli.attributes[data_1.AttributesIdEnumGR.CLIENT_TYPE] &&
755
- !!decli.attributes[data_1.AttributesIdEnumGR.CLIENT_TYPE].includes('au-detail');
756
- });
757
- }
758
- installation_qte_array = installation_upsell.filter(function (upsell) {
759
- return installation_array_1.find(function (decli) { return decli.sku === upsell.recommendation_sku; });
760
- });
761
- closestQte_1 = (0, maxBy_1.default)(installation_qte_array.filter(function (upsell) {
762
- return upsell.actual_qty <= qte;
763
- }), 'actual_qty');
764
- if (!!!closestQte_1) return [3, 8];
765
- installation_decli = installation_parent.declinations.find(function (decli) { return decli.sku === closestQte_1.recommendation_sku; });
766
- if (!!installation_decli) {
767
- if (!!isPro && !!customPriceList) {
768
- installation_decli = (0, g2_1.checkForCustomPriceEquivalent)(installation_decli, customPriceList);
769
- }
770
- if (!(0, exports.shouldHideItemIfRegPriceIs0)(installation_decli, installation_parent.slug)) {
771
- arrayFinal.push(__assign(__assign({}, installation_decli), { parent_slug: 'installation-gazon', qte: qte, is_upsell_of_sku: chosenSku, product_upsells: installation_parent.product_upsells }));
772
- }
773
- }
774
- if (!(qte < minQteInstall)) return [3, 3];
775
- return [4, fetchProduct('frais-minimum-gazon-pour-installation', locale, true, true)];
776
- case 2:
777
- minimum_installation_fee = _a.sent();
778
- if (!!minimum_installation_fee) {
779
- minInstallDecli = minimum_installation_fee.declinations[0];
780
- minInstallDecli = __assign(__assign({}, minInstallDecli), { regular_price: __assign(__assign({}, minInstallDecli.regular_price), { amount: installation_decli.regular_price.amount }) });
781
- if (!!isPro && !!customPriceList) {
782
- minInstallDecli = (0, g2_1.checkForCustomPriceEquivalent)(__assign(__assign({}, minInstallDecli), { price_override: true }), customPriceList);
783
- }
784
- if (!(0, exports.shouldHideItemIfRegPriceIs0)(minInstallDecli, minimum_installation_fee.slug)) {
785
- arrayFinal.push(__assign(__assign({}, minInstallDecli), { parent_slug: 'frais-minimum-gazon-pour-installation', qte: minQteInstall - qte, is_upsell_of_sku: installation_decli.sku, price_override: true }));
786
- }
787
- }
788
- _a.label = 3;
789
- case 3: return [4, fetchProduct('frais-de-mobilisation', locale, true, true)];
790
- case 4:
791
- mobilisation_fee = _a.sent();
792
- if (!!mobilisation_fee && !!isPro) {
793
- mobilisationDecli = mobilisation_fee.declinations[0];
794
- if (!!customPriceList) {
795
- mobilisationDecli = (0, g2_1.checkForCustomPriceEquivalent)(mobilisationDecli, customPriceList);
796
- }
797
- if (!(0, exports.shouldHideItemIfRegPriceIs0)(mobilisationDecli, mobilisation_fee.slug, true)) {
798
- arrayFinal.push(__assign(__assign({}, mobilisationDecli), { parent_slug: 'frais-de-mobilisation', qte: (0, ceil_1.default)(qte > minQteInstall
799
- ? qte / (740 * expedition_1.installationFeePalletTier)
800
- : minQteInstall / (740 * expedition_1.installationFeePalletTier)), is_upsell_of_sku: installation_decli.sku, product_upsells: mobilisation_fee.product_upsells }));
801
- }
802
- }
803
- if (!!!returnOtherFees) return [3, 8];
804
- if (!!!returnOtherFees.engrais) return [3, 6];
805
- return [4, fetchProduct('installation-fertilisation', locale, true, true)];
806
- case 5:
807
- fertilisation = _a.sent();
808
- if (!!fertilisation) {
809
- minFertilisationDecli = fertilisation.declinations[0];
810
- if (!!isPro && !!customPriceList) {
811
- minFertilisationDecli = (0, g2_1.checkForCustomPriceEquivalent)(minFertilisationDecli, customPriceList);
812
- }
813
- if (!(0, exports.shouldHideItemIfRegPriceIs0)(minFertilisationDecli, fertilisation.slug, true)) {
814
- arrayFinal.push(__assign(__assign({}, minFertilisationDecli), { parent_slug: fertilisation.slug, qte: qte < minQteInstall ? minQteInstall : qte, is_upsell_of_sku: installation_decli.sku, product_upsells: fertilisation.product_upsells }));
815
- }
816
- }
817
- _a.label = 6;
818
- case 6:
819
- if (!returnOtherFees.roulage) return [3, 8];
820
- return [4, fetchProduct('installation-roulage', locale, true, true)];
821
- case 7:
822
- roullage = _a.sent();
823
- if (!!roullage) {
824
- minRoulageDecli = roullage.declinations[0];
825
- if (!!isPro && !!customPriceList) {
826
- minRoulageDecli = (0, g2_1.checkForCustomPriceEquivalent)(minRoulageDecli, customPriceList);
827
- }
828
- if (!(0, exports.shouldHideItemIfRegPriceIs0)(minRoulageDecli, roullage.slug, true)) {
829
- arrayFinal.push(__assign(__assign({}, minRoulageDecli), { parent_slug: roullage.slug, qte: qte < minQteInstall ? minQteInstall : qte, is_upsell_of_sku: installation_decli.sku, product_upsells: roullage.product_upsells }));
830
- }
831
- }
832
- _a.label = 8;
833
- case 8: return [2, arrayFinal];
834
- }
835
- });
836
- }); };
837
- exports.getInstallationArray = getInstallationArray;
838
- var getInstallItemPrice = function (parentSlug, servicesFees) {
839
- var price = 0;
840
- switch (parentSlug) {
841
- case 'installation-gazon':
842
- var itemsToUse = servicesFees.filter(function (i) { return i.parent_slug && ['installation-gazon', 'frais-de-mobilisation'].includes(i.parent_slug); });
843
- if (!!itemsToUse) {
844
- price = (0, sumBy_1.default)(itemsToUse, function (item) { return (0, products_1.getLowestPrice)(item).price.amount * item.qte; });
845
- }
846
- break;
847
- default:
848
- var itemToUse = servicesFees.find(function (i) { return i.parent_slug === parentSlug; });
849
- if (!!itemToUse) {
850
- price = (0, products_1.getLowestPrice)(itemToUse).price.amount * itemToUse.qte;
851
- }
852
- break;
853
- }
854
- return price;
855
- };
856
- exports.getInstallItemPrice = getInstallItemPrice;
857
- var getConcreteQteText = function (declination, locale) {
858
- if (locale === void 0) { locale = 'fr'; }
859
- var txt = '';
860
- if (!!!declination)
861
- return txt;
862
- var nbSaleUnitsPerCmdStep = 0;
863
- var nbUnitsPerPal = 0;
864
- var other_units = declination.other_units;
865
- if (!!!other_units || !!!other_units.length) {
866
- return '';
867
- }
868
- else {
869
- var commandStep = other_units.find(function (unit) { return unit.is_command_step; });
870
- var commandUnit = other_units.find(function (unit) { return unit.is_command_unit; });
871
- var saleUnit = other_units.find(function (unit) { return unit.is_sale_unit; });
872
- var unitsPerPal = other_units.find(function (unit) { return unit.unit_slug === 'pal'; });
873
- if (!!commandStep &&
874
- !!commandStep.fitting_unit &&
875
- !!commandUnit &&
876
- !!commandUnit.fitting_unit &&
877
- !!saleUnit &&
878
- !!saleUnit.fitting_unit &&
879
- !!unitsPerPal &&
880
- !!unitsPerPal.fitting_unit) {
881
- var cmdSameAsSale = commandStep.unit_slug === saleUnit.unit_slug;
882
- var nbP2PerRgSlug = !!cmdSameAsSale ? commandUnit.unit_slug : saleUnit.unit_slug;
883
- nbSaleUnitsPerCmdStep = !!cmdSameAsSale
884
- ? commandStep.fitting_unit / commandUnit.fitting_unit
885
- : commandStep.fitting_unit / saleUnit.fitting_unit;
886
- nbUnitsPerPal =
887
- commandStep.fitting_unit == 1 && !!!commandStep.is_sale_unit
888
- ? unitsPerPal.fitting_unit * (0, round_1.default)(nbSaleUnitsPerCmdStep, 2)
889
- : unitsPerPal.fitting_unit / saleUnit.fitting_unit;
890
- txt = (0, locale_1.translateILang)({
891
- fr: 'Pour ce produit, vous devez commander par *cmdStep* (*nbUnitsPerCmdStep*).',
892
- en: 'For this product, you have to order by *cmdStep* (*nbUnitsPerCmdStep*).'
893
- }, locale);
894
- if (unitsPerPal.unit_slug != commandStep.unit_slug) {
895
- txt += (0, locale_1.translateILang)({
896
- fr: ' Une palette = *nbUnitsPerPal*.',
897
- en: ' A pallet = *nbUnitsPerPal*.'
898
- }, locale);
899
- }
900
- txt = txt.replace('*cmdStep*', String("".concat((0, locale_1.translateILang)(inventories_1.unitDict[commandStep.unit_slug], locale).toLowerCase())));
901
- txt = txt.replace('*nbUnitsPerCmdStep*', String("".concat((0, round_1.default)(nbSaleUnitsPerCmdStep, 2), " ").concat((0, locale_1.translateILang)(inventories_1.unitDict[nbP2PerRgSlug], locale).toLowerCase())));
902
- txt = txt.replace('*nbUnitsPerPal*', String("".concat((0, round_1.default)(nbUnitsPerPal, 2), " ").concat((0, locale_1.translateILang)(inventories_1.unitDict[saleUnit.unit_slug], locale).toLowerCase())));
903
- }
904
- else {
905
- return '';
906
- }
907
- }
908
- return txt;
909
- };
910
- exports.getConcreteQteText = getConcreteQteText;
911
- var getConcreteItemsByAvailability = function (cartData, availabilityType) {
912
- return cartData.items.filter(function (i) {
913
- return (i.attributes[data_1.AttributesIdEnumGR.AVAILABILITY] &&
914
- i.attributes[data_1.AttributesIdEnumGR.AVAILABILITY][0] === availabilityType);
915
- });
916
- };
917
- exports.getConcreteItemsByAvailability = getConcreteItemsByAvailability;
918
- var getVracType = function (stores, cartData, getInventoryItemCallback, inventoyItemArray) { return __awaiter(void 0, void 0, void 0, function () {
919
- var items, allStoreIds, itemFormat, onlySteJulieNobel;
920
- return __generator(this, function (_a) {
921
- switch (_a.label) {
922
- case 0:
923
- items = cartData.items;
924
- if (!!!items ||
925
- !!!items.length ||
926
- (!!!(0, cart_1.checkIfCartContainsType)(cart_2.CartGeneralTypeEnum.VRAC, cartData) &&
927
- !!!cartData.items.find(function (item) { return !!item.is_other_type && item.is_other_type === 'vrac'; })))
928
- return [2];
929
- allStoreIds = stores.map(function (store) { return store.id; });
930
- itemFormat = '';
931
- return [4, Promise.all(items.map(function (item) { return __awaiter(void 0, void 0, void 0, function () {
932
- var productInventory, _a, _b;
933
- return __generator(this, function (_c) {
934
- switch (_c.label) {
935
- case 0:
936
- if (!!!!item.is_service) return [3, 4];
937
- if (!(!!inventoyItemArray && !!inventoyItemArray.length)) return [3, 1];
938
- _b = inventoyItemArray.find(function (i) { return i.sku === item.sku; });
939
- return [3, 3];
940
- case 1: return [4, getInventoryItemCallback(item.sku)];
941
- case 2:
942
- _b = _c.sent();
943
- _c.label = 3;
944
- case 3:
945
- _a = _b;
946
- return [3, 5];
947
- case 4:
948
- _a = undefined;
949
- _c.label = 5;
950
- case 5:
951
- productInventory = _a;
952
- if (!!!productInventory)
953
- return [2];
954
- allStoreIds = allStoreIds.filter(function (id) {
955
- var sameStoreInProdInventory = productInventory.inventories.find(function (i) { return i.store_id === id; });
956
- if (!!!sameStoreInProdInventory)
957
- return true;
958
- return !!!sameStoreInProdInventory.unavailable_in_store;
959
- });
960
- if (!!!itemFormat && !!item.attributes && !!item.attributes[data_1.AttributesIdEnumGR.FORMATS]) {
961
- itemFormat = item.attributes[data_1.AttributesIdEnumGR.FORMATS][0];
962
- }
963
- return [2];
964
- }
965
- });
966
- }); }))];
967
- case 1:
968
- _a.sent();
969
- onlySteJulieNobel = allStoreIds.length === 1 && allStoreIds[0] === 'sainte-julie-nobel';
970
- if (!!itemFormat.includes('sac')) {
971
- return [2, {
972
- vrac_type: !!onlySteJulieNobel ? products_3.VracTypeEnum.NOBEL_SAC : products_3.VracTypeEnum.AUTRE_SAC,
973
- vrac_store_ids: allStoreIds
974
- }];
975
- }
976
- else {
977
- return [2, {
978
- vrac_type: !!onlySteJulieNobel ? products_3.VracTypeEnum.NOBEL_TONNE : products_3.VracTypeEnum.AUTRE_TONNE,
979
- vrac_store_ids: allStoreIds
980
- }];
981
- }
982
- return [2];
983
- }
984
- });
985
- }); };
986
- exports.getVracType = getVracType;
987
- var fetchFeesBeforeCart = function (useFees, newCart, deliveryType, fetchProduct, getIfAddressIsInsideZones, getDistanceFromAddress, locale, allStores, isPro, grassProduct, concreteOrder, settings, customPriceList) { return __awaiter(void 0, void 0, void 0, function () {
988
- var cartContainsVrac, cartContainsInstallation, cartContainsSample, cartContainsAccessoriesOnly, storeToUse, storeAddressToUse;
989
- return __generator(this, function (_a) {
990
- switch (_a.label) {
991
- case 0:
992
- cartContainsVrac = (0, cart_1.checkIfCartContainsType)(cart_2.CartGeneralTypeEnum.VRAC, newCart);
993
- cartContainsInstallation = (0, cart_1.checkIfCartContainsType)(cart_2.CartGeneralTypeEnum.INSTALLATION, newCart);
994
- cartContainsSample = (0, cart_1.checkIfCartContainsType)(cart_2.CartGeneralTypeEnum.SAMPLE, newCart);
995
- cartContainsAccessoriesOnly = (0, cart_1.checkIfCartContainsType)(cart_2.CartGeneralTypeEnum.ONLY_ACCESSORIES, newCart);
996
- storeToUse = !!settings && !!settings.useStoreAddress ? allStores.find(function (s) { return s.id == settings.useStoreAddress; }) : undefined;
997
- storeAddressToUse = !!storeToUse ? storeToUse.address : undefined;
998
- return [4, (0, expedition_1.applyFeesToCart)(fetchProduct, getIfAddressIsInsideZones, getDistanceFromAddress, newCart, deliveryType, grassProduct, concreteOrder, deliveryType === 'pickup' ? false : cartContainsInstallation, cartContainsVrac, (0, object_1.recursiveCheckObject)(settings, 'useAvailableVracStores'), isPro, deliveryType === 'pickup' ? !!settings && !!settings.addOnePalletToPickup : false, cartContainsSample, !!settings ? !!settings.saveToShippingPayload : false, !!!settings
999
- ? undefined
1000
- : !!settings.useStoreAddress && !!storeAddressToUse
1001
- ? storeAddressToUse
1002
- : !!settings.useDeliveryAddress && !!newCart.shipping_address
1003
- ? newCart.shipping_address.address
1004
- : undefined, locale, undefined, false, cartContainsAccessoriesOnly, undefined, allStores, customPriceList, !!useFees)];
1005
- case 1: return [2, _a.sent()];
1006
- }
1007
- });
1008
- }); };
1009
- exports.fetchFeesBeforeCart = fetchFeesBeforeCart;
1010
- var shouldShowProCustomPromo = function (userData, isPro, product, customMinPrice) {
1011
- if (!!!product || !!!isPro || !!!userData)
1012
- return false;
1013
- if (!!customMinPrice) {
1014
- if (customMinPrice.type === G2_1.CustomPriceItemTypeEnum.REG && customMinPrice.code2 !== 'NET')
1015
- return false;
1016
- return true;
1017
- }
1018
- var customerGroup = (0, object_1.recursiveCheckObject)(userData, 'userData.basic_info.customer_professionnal_info.external_customer_group');
1019
- var customerType = !!customerGroup ? (0, g2_1.getG2CustomerTypeFromCode)(customerGroup) : undefined;
1020
- var prodPriceClass = !!product.price_classes_range
1021
- ? product.price_classes_range.find(function (range) {
1022
- return !!customerType && range.external_slug ? range.external_slug === customerType : range.class === 'aspirant';
1023
- })
1024
- : !!product.prices_list
1025
- ? product.prices_list.find(function (range) {
1026
- return !!customerType && range.external_slug ? range.external_slug === customerType : range.group_id === 'aspirant';
1027
- })
1028
- : undefined;
1029
- return !!prodPriceClass && !!prodPriceClass.custom_promo_applies;
1030
- };
1031
- exports.shouldShowProCustomPromo = shouldShowProCustomPromo;
1032
- var applyProCustomPromo = function (decli, userData) {
1033
- var customerCode = userData.basic_info.customer_professionnal_info &&
1034
- userData.basic_info.customer_professionnal_info.external_customer_group;
1035
- if (!!!customerCode)
1036
- return {};
1037
- var customerCustomPromo = (0, g2_1.getG2DiscountFromCode)(customerCode);
1038
- if (!!!customerCustomPromo)
1039
- return {};
1040
- var regPrice = decli.regular_price.amount;
1041
- var newDiscountAmount = (0, toNumber_1.default)(regPrice) * ((100 - customerCustomPromo) / 100);
1042
- var newPromoObj = (0, IDiscountRule_1.getDefaultDiscountRule)('product');
1043
- newPromoObj = __assign(__assign({}, newPromoObj), { appliesTo: __assign(__assign({}, newPromoObj.appliesTo), { label: IDiscountRule_1.AppliesToEnum.PRODUCT, value: decli.sku }), rules: [
1044
- {
1045
- field: IDiscountRule_1.RuleFieldEnum.CUSTOMER,
1046
- condition: IDiscountRule_1.RuleConditionEnum.AND,
1047
- ruleDetails: [
1048
- {
1049
- operator: '==',
1050
- value: [userData.id],
1051
- condition: IDiscountRule_1.RuleConditionEnum.AND
1052
- }
1053
- ]
1054
- }
1055
- ], result: {
1056
- action: IDiscountRule_1.ResultActionEnum.PERCENT,
1057
- action_value: customerCustomPromo
1058
- } });
1059
- return {
1060
- discount_rules: [newPromoObj],
1061
- promo_price: {
1062
- currency: 'CAD',
1063
- amount: (0, round_1.default)(newDiscountAmount, 3)
1064
- }
1065
- };
1066
- };
1067
- exports.applyProCustomPromo = applyProCustomPromo;
1068
- var getFormattedProdGR = function (decli, productSlug, isPro) {
1069
- var promo_price = decli.promo_price, discount_price = decli.discount_price, tier_pricing = decli.tier_pricing, rest = __rest(decli, ["promo_price", "discount_price", "tier_pricing"]);
1070
- return !!isPro ? __assign(__assign({}, rest), (productSlug !== 'kentucky' ? { tier_pricing: tier_pricing } : {})) : decli;
1071
- };
1072
- exports.getFormattedProdGR = getFormattedProdGR;
1073
- var shouldHideItemIfRegPriceIs0 = function (item, productSlug, isUpsellOfInstallProd) {
1074
- var regPriceIs0 = item.regular_price.amount == 0;
1075
- if (!regPriceIs0)
1076
- return false;
1077
- if (!item.is_service)
1078
- return false;
1079
- if (!!isUpsellOfInstallProd)
1080
- return false;
1081
- if (expedition_1.slugsToCheckFromExpeditionFees.shipping.includes(productSlug))
1082
- return false;
1083
- return true;
1084
- };
1085
- exports.shouldHideItemIfRegPriceIs0 = shouldHideItemIfRegPriceIs0;
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __rest = (this && this.__rest) || function (s, e) {
50
+ var t = {};
51
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
52
+ t[p] = s[p];
53
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
54
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
55
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
56
+ t[p[i]] = s[p[i]];
57
+ }
58
+ return t;
59
+ };
60
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
61
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
62
+ if (ar || !(i in from)) {
63
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
64
+ ar[i] = from[i];
65
+ }
66
+ }
67
+ return to.concat(ar || Array.prototype.slice.call(from));
68
+ };
69
+ var __importDefault = (this && this.__importDefault) || function (mod) {
70
+ return (mod && mod.__esModule) ? mod : { "default": mod };
71
+ };
72
+ Object.defineProperty(exports, "__esModule", { value: true });
73
+ exports.shouldHideItemIfRegPriceIs0 = exports.getFormattedProdGR = exports.applyProCustomPromo = exports.shouldShowProCustomPromo = exports.fetchFeesBeforeCart = exports.getVracType = exports.getConcreteItemsByAvailability = exports.getConcreteQteText = exports.getInstallItemPrice = exports.getInstallationArray = exports.roundGrassQte = exports.handleGrassProductQtyRoundForShipping = exports.getGrassSubQuestionsByType = exports.getGrassServicesFees = exports.getGrassQteText = exports.getMinQtyFeeAmountText = exports.getMinQtyFeeText = exports.getAllMinGrassQuantities = exports.isMinQtyFee = exports.fuseGrassProducts = exports.getAllInstallFromItems = exports.checkIfProductIsInstallation = exports.checkIfProductIsOfType = exports.getProductFormOptions = exports.getParentProductCategoryGroup = exports.getProdName = exports.splitOnDashes = exports.getRoundedProductQuantities = exports.getDescriptionString = exports.getDescriptionLength = exports.getProductAttributes = exports.productUnitSupportsDecimals = exports.getCorrectPluralSellUnit = exports.getPluralUnitLabelWithSlug = exports.getUnitLabelWithSlug = exports.getProductSellUnitLabel = void 0;
74
+ var ceil_1 = __importDefault(require("lodash/ceil"));
75
+ var maxBy_1 = __importDefault(require("lodash/maxBy"));
76
+ var orderBy_1 = __importDefault(require("lodash/orderBy"));
77
+ var toNumber_1 = __importDefault(require("lodash/toNumber"));
78
+ var round_1 = __importDefault(require("lodash/round"));
79
+ var flatten_1 = __importDefault(require("lodash/flatten"));
80
+ var uniqBy_1 = __importDefault(require("lodash/uniqBy"));
81
+ var sumBy_1 = __importDefault(require("lodash/sumBy"));
82
+ var Cart_1 = require("../../../Interfaces/Cart");
83
+ var G2_1 = require("../../../Interfaces/G2");
84
+ var IDiscountRule_1 = require("../../../Interfaces/Rules/IDiscountRule");
85
+ var string_1 = require("../../../utils/string");
86
+ var locale_1 = require("../../../utils/locale");
87
+ var inventories_1 = require("../../../utils/inventories");
88
+ var products_1 = require("../../../utils/products");
89
+ var expedition_1 = require("./expedition");
90
+ var products_2 = require("../constants/products");
91
+ var g2_1 = require("./g2");
92
+ var cart_1 = require("./cart");
93
+ var products_3 = require("../interfaces/products");
94
+ var data_1 = require("../interfaces/data");
95
+ var cart_2 = require("../interfaces/cart");
96
+ var upsells_1 = require("./upsells");
97
+ var object_1 = require("../../../utils/object");
98
+ var pluralSellUnits = {
99
+ p2: { fr: 'pi²', en: 'sqft' },
100
+ sac: { fr: 'sacs', en: 'bags' },
101
+ unite: { fr: 'unités', en: 'units' },
102
+ tonne: { fr: 'tonnes', en: 'tons' },
103
+ rouleau: { fr: 'rouleaux', en: 'rolls' }
104
+ };
105
+ var pluralSellUnitsBySlug = {
106
+ p2: { fr: 'pi²', en: 'sqft' },
107
+ sac: { fr: 'sacs', en: 'bags' },
108
+ unite: { fr: 'unités', en: 'units' },
109
+ tonne: { fr: 'tonnes', en: 'tons' },
110
+ roul: { fr: 'rouleaux', en: 'rolls' },
111
+ pal: { fr: 'palettes', en: 'pallets' },
112
+ rg: { fr: 'rangs', en: 'rows' },
113
+ ensemble: { fr: 'ensembles', en: 'kits' },
114
+ pl: { fr: 'pL', en: 'linear feet' },
115
+ mcx: { fr: 'morceaux', en: 'pieces' },
116
+ vg3: { fr: 'vg³', en: 'yd³' },
117
+ demipalsm: { fr: 'Demi-palettes (petite)', en: 'Half-pallets (small)' },
118
+ demipallg: { fr: 'Demi-palettes (lg)', en: 'Half-pallets (lg)' },
119
+ tonnes: { fr: 'tonnes', en: 'tons' },
120
+ bte: { fr: 'boîtes', en: 'boxes' },
121
+ pqt: { fr: 'paquets', en: 'bundles' },
122
+ '': { fr: 'unités', en: 'units' }
123
+ };
124
+ var sellUnitsBySlug = {
125
+ p2: { fr: 'pi²', en: 'sqft' },
126
+ sac: { fr: 'sac', en: 'bag' },
127
+ unite: { fr: 'unité', en: 'unit' },
128
+ tonne: { fr: 'tonne', en: 'ton' },
129
+ roul: { fr: 'rouleau', en: 'roll' },
130
+ pal: { fr: 'palette', en: 'pallet' },
131
+ rg: { fr: 'rang', en: 'row' },
132
+ ensemble: { fr: 'ensemble', en: 'kit' },
133
+ pl: { fr: 'pL', en: 'linear feet' },
134
+ mcx: { fr: 'morceau', en: 'piece' },
135
+ vg3: { fr: 'vg³', en: 'yd³' },
136
+ demipalsm: { fr: 'Demi-palette (petite)', en: 'Half-pallet (small)' },
137
+ demipallg: { fr: 'Demi-palette (lg)', en: 'Half-pallet (lg)' },
138
+ tonnes: { fr: 'tonne', en: 'ton' },
139
+ bte: { fr: 'boîte', en: 'box' },
140
+ pqt: { fr: 'paquet', en: 'bundle' },
141
+ '': { fr: 'unité', en: 'unit' }
142
+ };
143
+ var getProductSellUnitLabel = function (otherUnits, locale, returnUnitForSlugs) {
144
+ if (locale === void 0) { locale = 'fr'; }
145
+ if (!!!otherUnits)
146
+ return '';
147
+ var sellingUnit = otherUnits.find(function (unit) { return !!unit.is_sale_unit; });
148
+ if (!!!sellingUnit)
149
+ return '';
150
+ return sellingUnit.unit_slug === 'p2'
151
+ ? (0, locale_1.translateILang)(pluralSellUnitsBySlug.p2, locale)
152
+ : !!(0, inventories_1.getUnitShortDict)(sellingUnit.unit_slug, returnUnitForSlugs)
153
+ ? (0, locale_1.translateILang)((0, inventories_1.getUnitShortDict)(sellingUnit.unit_slug, returnUnitForSlugs), locale)
154
+ : sellingUnit.unit_slug;
155
+ };
156
+ exports.getProductSellUnitLabel = getProductSellUnitLabel;
157
+ var getUnitLabelWithSlug = function (unitSlug, locale, getPluralVersion, returnUnitForSlugs) {
158
+ if (locale === void 0) { locale = 'fr'; }
159
+ if (getPluralVersion === void 0) { getPluralVersion = false; }
160
+ if (!!getPluralVersion)
161
+ return (0, exports.getPluralUnitLabelWithSlug)(unitSlug, locale, returnUnitForSlugs);
162
+ if (!!returnUnitForSlugs && !!returnUnitForSlugs.includes(unitSlug)) {
163
+ return (0, locale_1.translateILang)(sellUnitsBySlug['unite'], locale);
164
+ }
165
+ return !!sellUnitsBySlug[unitSlug]
166
+ ? (0, locale_1.translateILang)(sellUnitsBySlug[unitSlug], locale)
167
+ : !!(0, inventories_1.getUnitShortDict)(unitSlug)
168
+ ? (0, locale_1.translateILang)((0, inventories_1.getUnitShortDict)(unitSlug), locale)
169
+ : unitSlug;
170
+ };
171
+ exports.getUnitLabelWithSlug = getUnitLabelWithSlug;
172
+ var getPluralUnitLabelWithSlug = function (unitSlug, locale, returnUnitForSlugs) {
173
+ if (locale === void 0) { locale = 'fr'; }
174
+ if (!!returnUnitForSlugs && !!returnUnitForSlugs.includes(unitSlug)) {
175
+ return (0, locale_1.translateILang)(pluralSellUnitsBySlug['unite'], locale);
176
+ }
177
+ return !!pluralSellUnitsBySlug[unitSlug]
178
+ ? (0, locale_1.translateILang)(pluralSellUnitsBySlug[unitSlug], locale)
179
+ : !!(0, inventories_1.getUnitShortDict)(unitSlug)
180
+ ? (0, locale_1.translateILang)((0, inventories_1.getUnitShortDict)(unitSlug), locale)
181
+ : unitSlug;
182
+ };
183
+ exports.getPluralUnitLabelWithSlug = getPluralUnitLabelWithSlug;
184
+ var getCorrectPluralSellUnit = function (sellUnit, locale) {
185
+ if (locale === void 0) { locale = 'fr'; }
186
+ if (!!!sellUnit.unit)
187
+ return '';
188
+ var frSellUnit = (0, string_1.string_to_slug)((0, locale_1.translateILang)(sellUnit.unit, 'fr'));
189
+ return !!pluralSellUnits[frSellUnit]
190
+ ? (0, locale_1.translateILang)(pluralSellUnits[frSellUnit], locale)
191
+ : (0, locale_1.translateILang)(sellUnit.unit, locale);
192
+ };
193
+ exports.getCorrectPluralSellUnit = getCorrectPluralSellUnit;
194
+ var productUnitSupportsDecimals = function (unitSlug, isService) {
195
+ return !!isService || !!['p2', 'pl', 'vg3', 'tonne'].includes(unitSlug);
196
+ };
197
+ exports.productUnitSupportsDecimals = productUnitSupportsDecimals;
198
+ var getProductAttributes = function (product) {
199
+ var arrColor = !!product.attributes[data_1.AttributesIdEnumGR.SUBCOLOR]
200
+ ? product.attributes[data_1.AttributesIdEnumGR.SUBCOLOR]
201
+ : [];
202
+ var arrDimensions = !!product.attributes[data_1.AttributesIdEnumGR.DIMENSIONS]
203
+ ? product.attributes[data_1.AttributesIdEnumGR.DIMENSIONS]
204
+ : [];
205
+ var arrFormats = !!product.attributes[data_1.AttributesIdEnumGR.FORMATS]
206
+ ? product.attributes[data_1.AttributesIdEnumGR.FORMATS]
207
+ : [];
208
+ return { colors: arrColor, dimensions: arrDimensions, formats: arrFormats };
209
+ };
210
+ exports.getProductAttributes = getProductAttributes;
211
+ var getDescriptionLength = function (description, locale) {
212
+ if (locale === void 0) { locale = 'fr'; }
213
+ if (!!!description || !!!(0, locale_1.getLocaleOfDictionnary)(description, locale))
214
+ return 0;
215
+ return (0, string_1.stripHTML)((0, locale_1.getLocaleOfDictionnary)(description, locale)).length;
216
+ };
217
+ exports.getDescriptionLength = getDescriptionLength;
218
+ var getDescriptionString = function (showFullDesc, maxLength, description, locale) {
219
+ if (locale === void 0) { locale = 'fr'; }
220
+ if (!!showFullDesc || (0, exports.getDescriptionLength)(description, locale) <= maxLength) {
221
+ return (0, string_1.stripHTML)((0, locale_1.getLocaleOfDictionnary)(description, locale));
222
+ }
223
+ var truncated = (0, string_1.stripHTML)((0, locale_1.getLocaleOfDictionnary)(description, locale)).slice(0, maxLength).split(' ');
224
+ truncated.pop();
225
+ return truncated.join(' ') + ' [...]';
226
+ };
227
+ exports.getDescriptionString = getDescriptionString;
228
+ var getRoundedProductQuantities = function (value, otherUnits, value2, targetIsSecondaryInput) {
229
+ var _a;
230
+ if (otherUnits === void 0) { otherUnits = []; }
231
+ if (targetIsSecondaryInput === void 0) { targetIsSecondaryInput = false; }
232
+ var saleUnit = otherUnits.find(function (unit) { return unit.is_sale_unit; });
233
+ var commandUnit = otherUnits.find(function (unit) { return unit.is_command_unit; });
234
+ var commandStep = otherUnits.find(function (unit) { return unit.is_command_step; });
235
+ var roundedQuantities = {
236
+ qte1: value,
237
+ qte2: value2
238
+ };
239
+ if (!!targetIsSecondaryInput && typeof value2 === 'number') {
240
+ if (!!commandStep && !!commandStep.fitting_unit && !!commandUnit && !!commandUnit.fitting_unit && !!saleUnit) {
241
+ var nbCmdUnitPerCmdStep = (0, round_1.default)(commandStep.fitting_unit / commandUnit.fitting_unit, 2);
242
+ var nbSaleUnitPerCmdStep = (0, round_1.default)(commandStep.fitting_unit / ((_a = saleUnit.fitting_unit) !== null && _a !== void 0 ? _a : 1), (0, exports.productUnitSupportsDecimals)(saleUnit.unit_slug) ? 2 : 0);
243
+ var roundedValue = value2 === 0 ? 0 : _roundNbUnitPerCmdStep(value2, nbCmdUnitPerCmdStep);
244
+ var nbOfRoundedCmdUnits = roundedValue / nbCmdUnitPerCmdStep;
245
+ var nbOfRoundedSaleUnits = nbOfRoundedCmdUnits * nbSaleUnitPerCmdStep;
246
+ roundedQuantities = {
247
+ qte1: value2 === 0
248
+ ? 0
249
+ : (0, round_1.default)(nbOfRoundedSaleUnits, !!saleUnit && (0, exports.productUnitSupportsDecimals)(saleUnit.unit_slug) ? 2 : 0),
250
+ qte2: roundedValue
251
+ };
252
+ }
253
+ }
254
+ else if (!!commandStep && !!commandStep.fitting_unit && !!saleUnit && !!saleUnit.fitting_unit) {
255
+ var cmdStepFittingUnit = commandStep.fitting_unit;
256
+ var saleFittingUnit = saleUnit.fitting_unit;
257
+ var nbSaleUnitPerCmdStep = (0, round_1.default)(cmdStepFittingUnit / saleFittingUnit, (0, exports.productUnitSupportsDecimals)(saleUnit.unit_slug) ? 2 : 0);
258
+ var roundedValue = value === 0
259
+ ? 0
260
+ : _roundNbUnitPerCmdStep(value, nbSaleUnitPerCmdStep, (0, exports.productUnitSupportsDecimals)(saleUnit.unit_slug));
261
+ var commandUnitQty = undefined;
262
+ if (!!commandUnit && !!commandUnit.fitting_unit) {
263
+ if (value === 0) {
264
+ commandUnitQty = 0;
265
+ }
266
+ else if (saleFittingUnit == 1) {
267
+ commandUnitQty = (0, round_1.default)(roundedValue / commandUnit.fitting_unit, (0, exports.productUnitSupportsDecimals)(commandUnit.unit_slug) ? 2 : 0);
268
+ }
269
+ else {
270
+ var nbOfCmdSteps = roundedValue / nbSaleUnitPerCmdStep;
271
+ commandUnitQty =
272
+ nbOfCmdSteps *
273
+ (0, round_1.default)(cmdStepFittingUnit / commandUnit.fitting_unit, (0, exports.productUnitSupportsDecimals)(commandUnit.unit_slug) ? 2 : 0);
274
+ }
275
+ }
276
+ roundedQuantities = {
277
+ qte1: roundedValue,
278
+ qte2: commandUnitQty
279
+ };
280
+ }
281
+ return roundedQuantities;
282
+ };
283
+ exports.getRoundedProductQuantities = getRoundedProductQuantities;
284
+ var _roundNbUnitPerCmdStep = function (value, nbUnitPerCmdStep, supportsDecimals) {
285
+ var rounded = (0, round_1.default)(value / nbUnitPerCmdStep, !!supportsDecimals ? 2 : 0) * nbUnitPerCmdStep;
286
+ var roundedUp = Math.ceil(value / nbUnitPerCmdStep) * nbUnitPerCmdStep;
287
+ if (rounded == 0 && roundedUp > 0)
288
+ return roundedUp;
289
+ if (value > rounded)
290
+ return roundedUp;
291
+ if ((0, round_1.default)(rounded, !!supportsDecimals ? 2 : 0) % nbUnitPerCmdStep == 0)
292
+ return rounded;
293
+ return roundedUp;
294
+ };
295
+ var splitOnDashes = function (stringToSplit, dummyStringToReplace) {
296
+ if (dummyStringToReplace === void 0) { dummyStringToReplace = { currentValue: '%%-%%', newValue: ' - ' }; }
297
+ var splited = stringToSplit.split(' - ');
298
+ if (splited.length === 1)
299
+ splited = stringToSplit.split(' -');
300
+ if (splited.length === 1)
301
+ splited = stringToSplit.split('- ');
302
+ return __spreadArray([
303
+ splited[0].replace(dummyStringToReplace.currentValue, dummyStringToReplace.newValue)
304
+ ], (!!splited[1]
305
+ ? [splited.slice(1).join(' - ').replace(dummyStringToReplace.currentValue, dummyStringToReplace.newValue)]
306
+ : []), true);
307
+ };
308
+ exports.splitOnDashes = splitOnDashes;
309
+ var getProdName = function (product, locale) {
310
+ var name;
311
+ if (!!product.full_name) {
312
+ name = (0, locale_1.getLocaleOfDictionnary)(product.full_name, locale);
313
+ }
314
+ else {
315
+ name = (0, locale_1.getLocaleOfDictionnary)(product.name, locale);
316
+ if (!!product.use_parent && !!product.parent_name) {
317
+ if (typeof product.parent_name === 'string') {
318
+ name = product.parent_name;
319
+ }
320
+ }
321
+ }
322
+ var newNameArray = [];
323
+ var dashesToFind = [' - ', '- ', ' -'];
324
+ if (name.includes('(')) {
325
+ var newStr = '';
326
+ var strWithParenthesisToCheck = name;
327
+ while (strWithParenthesisToCheck.includes('(')) {
328
+ var positionStart = strWithParenthesisToCheck.indexOf('(');
329
+ var positionEnd = strWithParenthesisToCheck.indexOf(')');
330
+ var substrToCheck = strWithParenthesisToCheck.substring(positionStart, positionEnd + 1);
331
+ for (var _i = 0, dashesToFind_1 = dashesToFind; _i < dashesToFind_1.length; _i++) {
332
+ var dash = dashesToFind_1[_i];
333
+ substrToCheck = substrToCheck.replace(dash, '-');
334
+ }
335
+ newStr += strWithParenthesisToCheck.substring(0, positionStart) + substrToCheck;
336
+ strWithParenthesisToCheck =
337
+ positionEnd === strWithParenthesisToCheck.length - 1 ? '' : strWithParenthesisToCheck.substring(positionEnd + 1);
338
+ }
339
+ newStr += strWithParenthesisToCheck;
340
+ var positionOfFirst = newStr.indexOf(')');
341
+ var firstPart_1 = newStr.substring(0, positionOfFirst);
342
+ if (positionOfFirst !== newStr.length - 1 && dashesToFind.some(function (str) { return firstPart_1.includes(str); })) {
343
+ var secondPart = newStr.substring(positionOfFirst);
344
+ for (var _a = 0, dashesToFind_2 = dashesToFind; _a < dashesToFind_2.length; _a++) {
345
+ var str = dashesToFind_2[_a];
346
+ firstPart_1.replace(str, '%%-%%');
347
+ }
348
+ newNameArray = (0, exports.splitOnDashes)("".concat(firstPart_1).concat(secondPart));
349
+ }
350
+ else {
351
+ newNameArray = (0, exports.splitOnDashes)(newStr);
352
+ }
353
+ }
354
+ else {
355
+ newNameArray = (0, exports.splitOnDashes)(name);
356
+ }
357
+ return newNameArray;
358
+ };
359
+ exports.getProdName = getProdName;
360
+ var getParentProductCategoryGroup = function (prod) {
361
+ var type = 'other';
362
+ if (!!prod.categories && !!prod.categories['lvl0']) {
363
+ var categorySlug = prod.categories['lvl0'];
364
+ switch (categorySlug) {
365
+ case 'gazon':
366
+ if (!!(0, exports.checkIfProductIsOfType)(prod, 'gazon')) {
367
+ type = 'gazon';
368
+ }
369
+ break;
370
+ case 'amenagement-paysager':
371
+ if (!!(0, exports.checkIfProductIsOfType)(prod, 'beton')) {
372
+ type = 'beton';
373
+ }
374
+ break;
375
+ default:
376
+ if (!!(0, exports.checkIfProductIsOfType)(prod, 'vrac')) {
377
+ type = 'vrac';
378
+ }
379
+ break;
380
+ }
381
+ }
382
+ return type;
383
+ };
384
+ exports.getParentProductCategoryGroup = getParentProductCategoryGroup;
385
+ var getProductFormOptions = function (product, attributes) {
386
+ var allColorOptions = [];
387
+ var allDimensionOptions = [];
388
+ var allFormatOptions = [];
389
+ var product_attributes = (0, exports.getProductAttributes)(product);
390
+ var overridenAttributes = product.declinations
391
+ .map(function (declination) { return declination.overriden_attributes; })
392
+ .filter(function (ova) { return !!ova; });
393
+ overridenAttributes = (0, flatten_1.default)(overridenAttributes);
394
+ overridenAttributes = (0, uniqBy_1.default)(overridenAttributes, 'slug');
395
+ var getOverriddenValues = function (prodAttributes, attrId) {
396
+ var overridenOptions = !!overridenAttributes.length
397
+ ? overridenAttributes.filter(function (attr) { return attr.id === attrId; })
398
+ : [];
399
+ var finalOptions = [];
400
+ for (var _i = 0, prodAttributes_1 = prodAttributes; _i < prodAttributes_1.length; _i++) {
401
+ var attr = prodAttributes_1[_i];
402
+ var isOverridden = false;
403
+ for (var _a = 0, overridenOptions_1 = overridenOptions; _a < overridenOptions_1.length; _a++) {
404
+ var ovOption = overridenOptions_1[_a];
405
+ if (!isOverridden) {
406
+ if (!!attr && attr.slug === ovOption.slug) {
407
+ isOverridden = true;
408
+ finalOptions = __spreadArray(__spreadArray([], finalOptions, true), [
409
+ __assign(__assign({}, attr), { other_details: __assign(__assign({}, attr.other_details), { image: ovOption.overriden_values }) })
410
+ ], false);
411
+ }
412
+ }
413
+ }
414
+ if (!isOverridden) {
415
+ finalOptions = __spreadArray(__spreadArray([], finalOptions, true), [attr], false);
416
+ }
417
+ }
418
+ return finalOptions;
419
+ };
420
+ var subColorsAttr = attributes.find(function (attr) { return attr.id === data_1.AttributesIdEnumGR.SUBCOLOR; });
421
+ if (!!subColorsAttr) {
422
+ var subColors = subColorsAttr.values;
423
+ var colorsAttributes = subColors.filter(function (sub) { return product_attributes.colors.includes(sub.slug); });
424
+ var finalColors = getOverriddenValues(colorsAttributes, data_1.AttributesIdEnumGR.SUBCOLOR);
425
+ allColorOptions = (0, orderBy_1.default)(finalColors, function (color) {
426
+ return product.declinations.findIndex(function (d) { return d.attributes[data_1.AttributesIdEnumGR.SUBCOLOR].includes(color.slug); });
427
+ });
428
+ }
429
+ var dimensionsAttr = attributes.find(function (attr) { return attr.id === data_1.AttributesIdEnumGR.DIMENSIONS; });
430
+ if (!!dimensionsAttr) {
431
+ var dimensions = dimensionsAttr.values;
432
+ var dimensionsAttributes = dimensions.filter(function (d) { return product_attributes.dimensions.includes(d.slug); });
433
+ var finalDimensions = getOverriddenValues(dimensionsAttributes, data_1.AttributesIdEnumGR.DIMENSIONS);
434
+ allDimensionOptions = finalDimensions;
435
+ }
436
+ var formatsAttr = attributes.find(function (attr) { return attr.id === data_1.AttributesIdEnumGR.FORMATS; });
437
+ if (!!formatsAttr) {
438
+ var formats = formatsAttr.values;
439
+ allFormatOptions = formats.filter(function (f) { return product_attributes.formats.includes(f.slug); });
440
+ }
441
+ return {
442
+ allColors: allColorOptions,
443
+ allDimensions: allDimensionOptions,
444
+ allFormats: allFormatOptions
445
+ };
446
+ };
447
+ exports.getProductFormOptions = getProductFormOptions;
448
+ var checkIfProductIsOfType = function (product, type, excludeUndefined) {
449
+ var attr = !!product && !!product.attributes ? product.attributes : {};
450
+ if (!!!attr[data_1.AttributesIdEnumGR.TYPE] && !!excludeUndefined)
451
+ return true;
452
+ return (!!attr[data_1.AttributesIdEnumGR.TYPE] &&
453
+ Array.isArray(attr[data_1.AttributesIdEnumGR.TYPE]) &&
454
+ attr[data_1.AttributesIdEnumGR.TYPE].includes(type));
455
+ };
456
+ exports.checkIfProductIsOfType = checkIfProductIsOfType;
457
+ var checkIfProductIsInstallation = function (item) {
458
+ return !!item.is_service && !!item.parent_slug && !!item.parent_slug.includes('installation');
459
+ };
460
+ exports.checkIfProductIsInstallation = checkIfProductIsInstallation;
461
+ var getAllInstallFromItems = function (items) {
462
+ return items.filter(function (i) {
463
+ return (!!i.parent_slug && products_2.installationProductsSlugs.includes(i.parent_slug)) ||
464
+ Object.values(products_2.installationProSpecSkus).includes(i.sku);
465
+ });
466
+ };
467
+ exports.getAllInstallFromItems = getAllInstallFromItems;
468
+ var fuseGrassProducts = function (recursiveItems, isPro) {
469
+ var specialityGrass = recursiveItems[0];
470
+ var kentuckyGrass = (specialityGrass.sub_items || []).find(function (sub) { return sub.sku === products_2.kentucky; });
471
+ var newItems = [];
472
+ if (!!kentuckyGrass) {
473
+ var kentuckyPrice = (0, products_1.getLowestPrice)(kentuckyGrass);
474
+ var regPriceKentucky = kentuckyGrass.regular_price.amount;
475
+ var newGrassRegPrice = !!kentuckyPrice.promo ? regPriceKentucky : kentuckyPrice.price.amount;
476
+ var newGrassDiscountPrice = (!!specialityGrass.discount_price
477
+ ? specialityGrass.discount_price.amount
478
+ : specialityGrass.regular_price.amount) +
479
+ (!!kentuckyPrice.promo ? kentuckyPrice.price.amount : regPriceKentucky);
480
+ var getLowestPriceSpecialityGrass_1 = (0, products_1.getLowestPrice)(specialityGrass);
481
+ newItems = __spreadArray([
482
+ __assign(__assign(__assign(__assign(__assign(__assign({}, specialityGrass), { regular_price: __assign(__assign({}, specialityGrass.regular_price), { amount: newGrassRegPrice + specialityGrass.regular_price.amount }) }), (!!newGrassDiscountPrice
483
+ ? {
484
+ discount_price: __assign(__assign({}, (specialityGrass.discount_price || { currency: 'CAD' })), { amount: newGrassDiscountPrice })
485
+ }
486
+ : {})), (!!specialityGrass.promo_price
487
+ ? {
488
+ promo_price: __assign(__assign({}, specialityGrass.promo_price), { amount: specialityGrass.promo_price.amount + kentuckyPrice.price.amount })
489
+ }
490
+ : {})), (!!!isPro && !!kentuckyGrass.tier_pricing
491
+ ? {
492
+ tier_pricing: kentuckyGrass.tier_pricing.map(function (t) { return (__assign(__assign({}, t), { price: __assign(__assign({}, t.price), { amount: t.price.amount + getLowestPriceSpecialityGrass_1.price.amount }) })); })
493
+ }
494
+ : {})), { sub_items: __spreadArray([
495
+ __assign(__assign({}, kentuckyGrass), { hide_from_summary: true })
496
+ ], (specialityGrass.sub_items || []).slice(1), true) })
497
+ ], recursiveItems.slice(1), true);
498
+ }
499
+ return newItems;
500
+ };
501
+ exports.fuseGrassProducts = fuseGrassProducts;
502
+ var isMinQtyFee = function (slug) {
503
+ return ['minimum-facturable-commande', 'frais-minimum-gazon-pour-installation'].includes(slug);
504
+ };
505
+ exports.isMinQtyFee = isMinQtyFee;
506
+ var getAllMinGrassQuantities = function (grassProduct, isPro) {
507
+ return {
508
+ pickup: (0, expedition_1.getMinGrassQte)(grassProduct, 'pickup', isPro),
509
+ shipping: (0, expedition_1.getMinGrassQte)(grassProduct, 'shipping', isPro),
510
+ install: (0, expedition_1.getMinQteInstall)(isPro)
511
+ };
512
+ };
513
+ exports.getAllMinGrassQuantities = getAllMinGrassQuantities;
514
+ var getMinQtyFeeText = function (parent_slug, grassProduct, isPro, locale, expeditionMethod, shortVersion) {
515
+ if (parent_slug === void 0) { parent_slug = ''; }
516
+ if (locale === void 0) { locale = 'fr'; }
517
+ var type = parent_slug === 'frais-minimum-gazon-pour-installation' ? 'install' : 'order';
518
+ var minQuantities = (0, exports.getAllMinGrassQuantities)(grassProduct, isPro);
519
+ var localeSellUnit = (0, locale_1.translateILang)(pluralSellUnits.p2, locale);
520
+ var localeStepUnit = (0, locale_1.translateILang)((0, inventories_1.getUnitShortDict)('roul'), locale).toLowerCase();
521
+ var localeMinUnit = (0, locale_1.translateILang)((0, inventories_1.getUnitShortDict)('pal'), locale).toLowerCase();
522
+ var str = '';
523
+ var endStr = (0, locale_1.translateILang)({
524
+ fr: " Ce frais correspond au prix du gazon choisi multipli\u00E9 par la diff\u00E9rence entre la quantit\u00E9 choisie et le minimum.",
525
+ en: " Ce frais correspond au prix du gazon choisi multipli\u00E9 par la diff\u00E9rence entre la quantit\u00E9 choisie et le minimum."
526
+ }, locale);
527
+ if (!!!expeditionMethod && type === 'order' && minQuantities.pickup !== minQuantities.shipping) {
528
+ var strMinShipping = "".concat(minQuantities.shipping).concat(localeSellUnit, " (").concat(minQuantities.shipping / 740, " ").concat(localeMinUnit, ")");
529
+ var strMinPickup = !!minQuantities.pickup
530
+ ? "".concat(minQuantities.pickup).concat(localeSellUnit, " (").concat(minQuantities.pickup / 740, " ").concat(localeMinUnit, ")")
531
+ : '';
532
+ str = (0, locale_1.translateILang)({
533
+ fr: "Les commandes de gazon sont disponibles \u00E0 partir de 10".concat(localeSellUnit, " (1 ").concat(localeStepUnit, "), mais le minimum facturable pour la livraison est de ").concat(strMinShipping).concat(!!strMinPickup ? " et de ".concat(strMinPickup, " pour la cueillette.") : ""),
534
+ en: "Sod orders are available starting at 10".concat(localeSellUnit, " (1 ").concat(localeStepUnit, "), but the minimum chargeable for delivery is ").concat(strMinShipping).concat(!!strMinPickup ? " and ".concat(strMinPickup, " for pick-up.") : "")
535
+ }, locale);
536
+ if (!!!shortVersion) {
537
+ str += endStr;
538
+ }
539
+ return str;
540
+ }
541
+ var minBillableQty = type === 'install'
542
+ ? minQuantities.install
543
+ : expeditionMethod === 'pickup'
544
+ ? minQuantities.pickup
545
+ : minQuantities.shipping;
546
+ var minQtyPallets = minBillableQty !== 0 ? minBillableQty / 740 : 0;
547
+ var minBillableStr = "".concat(minBillableQty).concat(localeSellUnit).concat(type === 'order' ? ' (' + minQtyPallets + ' ' + localeMinUnit + ')' : '');
548
+ str = (0, locale_1.translateILang)({
549
+ fr: "".concat(type === 'install'
550
+ ? "L'installation"
551
+ : expeditionMethod === 'pickup'
552
+ ? 'La cueillette'
553
+ : expeditionMethod === 'delivery'
554
+ ? 'La livraison'
555
+ : 'La commande', " de gazon est disponible \u00E0 partir de 10").concat(localeSellUnit, " (1 ").concat(localeStepUnit, "), mais le minimum facturable est de ").concat(minBillableStr, "."),
556
+ en: "Sod ".concat(type === 'install'
557
+ ? 'installation'
558
+ : expeditionMethod === 'pickup'
559
+ ? 'pick-up'
560
+ : expeditionMethod === 'delivery'
561
+ ? 'delivery'
562
+ : 'ordering', " is available starting at 10").concat(localeSellUnit, " (1 ").concat(localeStepUnit, "), but the minimum billable is ").concat(minBillableStr, ".")
563
+ }, locale);
564
+ if (!!!shortVersion) {
565
+ str += endStr;
566
+ }
567
+ return str;
568
+ };
569
+ exports.getMinQtyFeeText = getMinQtyFeeText;
570
+ var getMinQtyFeeAmountText = function (parent_slug, locale, servicesFees, showMinFeeAmount) {
571
+ if (parent_slug === void 0) { parent_slug = ''; }
572
+ if (locale === void 0) { locale = 'fr'; }
573
+ if (showMinFeeAmount === void 0) { showMinFeeAmount = true; }
574
+ var serviceOrFee = servicesFees.find(function (i) { return i.parent_slug === parent_slug; });
575
+ if (!!!serviceOrFee)
576
+ return '';
577
+ var amount = (0, toNumber_1.default)(serviceOrFee.regular_price.amount) * serviceOrFee.qte;
578
+ return (0, locale_1.translateILang)({
579
+ fr: "Une diff\u00E9rence de ".concat(!!showMinFeeAmount ? amount.toFixed(2) + '$' : '%LOADER%', "%BOLD% vous sera charg\u00E9e si la quantit\u00E9 de gazon au panier est plus petite que le minimum requis."),
580
+ en: "A difference of ".concat(!!showMinFeeAmount ? amount.toFixed(2) + '$' : '%LOADER%', "%BOLD% will be charged if the quantity of sod in the cart is less than the minimum required.")
581
+ }, locale);
582
+ };
583
+ exports.getMinQtyFeeAmountText = getMinQtyFeeAmountText;
584
+ var getGrassQteText = function (chosenDeclination, locale) {
585
+ if (locale === void 0) { locale = 'fr'; }
586
+ var txt = '';
587
+ var nbRolls = 0;
588
+ var nbSquareFeet = 0;
589
+ var units = !!!chosenDeclination ? [] : chosenDeclination.other_units;
590
+ if (!!units && !!units.length) {
591
+ var itemRolls = units.find(function (measure) { return measure.unit_slug === 'roul'; });
592
+ var itemSquareFeet = units.find(function (measure) { return measure.unit_slug === 'pal'; });
593
+ if (!!itemSquareFeet && !!itemSquareFeet.fitting_unit) {
594
+ nbSquareFeet = itemSquareFeet.fitting_unit;
595
+ }
596
+ if (!!itemRolls && !!itemRolls.fitting_unit && nbSquareFeet !== 0) {
597
+ nbRolls = nbSquareFeet / itemRolls.fitting_unit;
598
+ }
599
+ }
600
+ txt = (0, locale_1.translateILang)({
601
+ fr: 'Pour ce produit, vous devez commander par pieds carrés. Une palette = *nbRolls* rouleaux (*nbSquareFeet*pi2)',
602
+ en: 'For this product, you have to order by square feet. A pallet = *nbRolls* rolls (*nbSquareFeet*pi2)'
603
+ }, locale);
604
+ txt = txt.replace('*nbRolls*', String(nbRolls));
605
+ txt = txt.replace('*nbSquareFeet*', String(nbSquareFeet));
606
+ return txt;
607
+ };
608
+ exports.getGrassQteText = getGrassQteText;
609
+ var getGrassServicesFees = function (grassProduct, isPro, useFees, expeditionMethod, fetchProduct, getIfAddressIsInsideZones, getDistanceFromAddress, locale, allStores, chosenGrass, baseGrass, customPriceList) { return __awaiter(void 0, void 0, void 0, function () {
610
+ var installItems, cart, applied;
611
+ return __generator(this, function (_a) {
612
+ switch (_a.label) {
613
+ case 0: return [4, (0, exports.getInstallationArray)(grassProduct.qte, (!!baseGrass ? baseGrass : chosenGrass).product_upsells, fetchProduct, locale, isPro, chosenGrass.sku, customPriceList, { engrais: true, roulage: true })];
614
+ case 1:
615
+ installItems = _a.sent();
616
+ cart = __assign(__assign({}, (0, Cart_1.getDefaultCart)()), { items: __spreadArray(__spreadArray([
617
+ chosenGrass
618
+ ], (!!baseGrass ? [baseGrass] : []), true), installItems.filter(function (item) { return !!!(0, exports.isMinQtyFee)(item.parent_slug || ''); }), true) });
619
+ return [4, (0, exports.fetchFeesBeforeCart)(!!useFees, cart, expeditionMethod, fetchProduct, getIfAddressIsInsideZones, getDistanceFromAddress, locale, allStores, isPro, grassProduct, undefined, { useStoreAddress: 'sainte-julie' }, customPriceList)];
620
+ case 2:
621
+ applied = _a.sent();
622
+ return [2, __spreadArray(__spreadArray([], installItems, true), applied.itemsToAdd, true)];
623
+ }
624
+ });
625
+ }); };
626
+ exports.getGrassServicesFees = getGrassServicesFees;
627
+ var getGrassSubQuestionsByType = function (type) {
628
+ if (type === 'pro') {
629
+ return products_2.otherGrassSubQuestions.filter(function (sub) { return !!sub.proOnly; });
630
+ }
631
+ return products_2.otherGrassSubQuestions.filter(function (sub) { return 'installation-gazon' === sub.associatedProductSlug || (!!sub.installOnly && !!!sub.proOnly); });
632
+ };
633
+ exports.getGrassSubQuestionsByType = getGrassSubQuestionsByType;
634
+ var handleGrassProductQtyRoundForShipping = function (cartData, grassProduct) {
635
+ if (!!!cartData || !!!grassProduct)
636
+ return;
637
+ var product = cartData.items.find(function (item) { return item.sku === grassProduct.sku; });
638
+ if (!!!product)
639
+ return;
640
+ var productOtherUnits = product.other_units;
641
+ if (!!!productOtherUnits)
642
+ return;
643
+ var palUnit = productOtherUnits.find(function (u) { return u.unit_slug === 'pal'; });
644
+ var rounded = (0, exports.roundGrassQte)(product.qte, !!!cartData.is_pickup, palUnit);
645
+ if (!!!rounded || rounded === grassProduct.qte)
646
+ return;
647
+ var itemsToChange = [];
648
+ var recursiveGrassItem = (0, cart_1.getRecursiveItems)(cartData.items).find(function (item) { return item.sku === grassProduct.sku; });
649
+ var getItemsToChange = function (item) {
650
+ if (!!item.sub_items) {
651
+ item.sub_items.forEach(function (subItem) { return getItemsToChange(subItem); });
652
+ }
653
+ if (item.parent_slug === 'frais-de-mobilisation') {
654
+ var totalPallet = (0, expedition_1.getPalletQty)(cartData.items.map(function (i) {
655
+ if ((0, exports.checkIfProductIsOfType)(i, 'gazon')) {
656
+ return __assign(__assign({}, i), { qte: rounded });
657
+ }
658
+ return i;
659
+ }), 'grass');
660
+ itemsToChange.push({
661
+ sku: item.sku,
662
+ qte: (0, ceil_1.default)(totalPallet / expedition_1.installationFeePalletTier)
663
+ });
664
+ return;
665
+ }
666
+ if (!!item.is_upsell_of_sku) {
667
+ var parentUpsellProd = cartData.items.find(function (i) { return i.sku === item.is_upsell_of_sku; });
668
+ if (!!parentUpsellProd) {
669
+ var sameUpsell = (parentUpsellProd.product_upsells || []).find(function (up) { return up.recommendation_sku === item.sku; });
670
+ if (!!sameUpsell) {
671
+ var anUpsellProduct = __assign(__assign(__assign(__assign({}, item), { parent_slug: sameUpsell.recommendation_parent_slug, recommended_qte: sameUpsell.recommendation_qty, recommended_sku: sameUpsell.recommendation_sku, matching_qte: !!sameUpsell.matching_qty, auto_add: sameUpsell.auto_add, auto_add_exceptions: sameUpsell.auto_add_exceptions, actual_qte: sameUpsell.actual_qty }), (!!sameUpsell.is_recommendation ? { is_recommendation: true } : {})), (!!sameUpsell.show_recommendation_msg ? { show_recommendation_msg: true } : {}));
672
+ var ratio = (0, upsells_1.calculateUpsellQte)(anUpsellProduct, rounded);
673
+ if (!!ratio) {
674
+ itemsToChange.push({
675
+ sku: item.sku,
676
+ qte: ratio
677
+ });
678
+ return;
679
+ }
680
+ }
681
+ }
682
+ }
683
+ itemsToChange.push({
684
+ sku: item.sku,
685
+ qte: rounded
686
+ });
687
+ return;
688
+ };
689
+ if (!!recursiveGrassItem) {
690
+ getItemsToChange(recursiveGrassItem);
691
+ }
692
+ return { rounded: rounded, itemsToChange: itemsToChange };
693
+ };
694
+ exports.handleGrassProductQtyRoundForShipping = handleGrassProductQtyRoundForShipping;
695
+ var roundGrassQte = function (currentQte, isShipping, palUnit) {
696
+ var newQte = currentQte;
697
+ switch (true) {
698
+ case currentQte < 1480:
699
+ var rest1480 = currentQte % 10;
700
+ if (rest1480 !== 0) {
701
+ newQte = currentQte - rest1480 + 10;
702
+ }
703
+ break;
704
+ case currentQte >= 1480 && !!!isShipping:
705
+ var rest1480Install = currentQte % 10;
706
+ if (rest1480Install !== 0) {
707
+ newQte = currentQte - rest1480Install + 10;
708
+ }
709
+ break;
710
+ case currentQte >= 1480:
711
+ if (!!palUnit && !!palUnit.fitting_unit) {
712
+ var rest1480_1 = currentQte % palUnit.fitting_unit;
713
+ if (rest1480_1 !== 0 && !!((rest1480_1 - 400) % palUnit.fitting_unit)) {
714
+ newQte = currentQte - rest1480_1;
715
+ if (newQte + 400 > currentQte) {
716
+ newQte = newQte + 400;
717
+ }
718
+ else if (newQte + palUnit.fitting_unit > currentQte) {
719
+ newQte = newQte + palUnit.fitting_unit;
720
+ }
721
+ }
722
+ }
723
+ break;
724
+ }
725
+ return newQte;
726
+ };
727
+ exports.roundGrassQte = roundGrassQte;
728
+ var getInstallationArray = function (qte, baseGrassUpsells, fetchProduct, locale, isPro, chosenSku, customPriceList, returnOtherFees) { return __awaiter(void 0, void 0, void 0, function () {
729
+ var upsell, installation_upsell, installation_parent, installation_decli, minQteInstall, arrayFinal, installation_array_1, installation_qte_array, closestQte_1, minimum_installation_fee, minInstallDecli, mobilisation_fee, mobilisationDecli, fertilisation, minFertilisationDecli, roullage, minRoulageDecli;
730
+ return __generator(this, function (_a) {
731
+ switch (_a.label) {
732
+ case 0:
733
+ upsell = baseGrassUpsells;
734
+ if (!!!upsell)
735
+ return [2, []];
736
+ installation_upsell = upsell.filter(function (upsell) { return upsell.recommendation_parent_slug === 'installation-gazon'; });
737
+ return [4, fetchProduct('installation-gazon', locale, true, true)];
738
+ case 1:
739
+ installation_parent = _a.sent();
740
+ minQteInstall = (0, expedition_1.getMinQteInstall)(isPro);
741
+ arrayFinal = [];
742
+ if (!(!!installation_parent && !!installation_upsell && !!installation_upsell.length)) return [3, 8];
743
+ installation_array_1 = [];
744
+ if (!!isPro) {
745
+ installation_array_1 = installation_parent.declinations.filter(function (decli) {
746
+ return !!decli.attributes &&
747
+ !!decli.attributes[data_1.AttributesIdEnumGR.CLIENT_TYPE] &&
748
+ !!decli.attributes[data_1.AttributesIdEnumGR.CLIENT_TYPE].includes('pro');
749
+ });
750
+ }
751
+ else {
752
+ installation_array_1 = installation_parent.declinations.filter(function (decli) {
753
+ return !!decli.attributes &&
754
+ !!decli.attributes[data_1.AttributesIdEnumGR.CLIENT_TYPE] &&
755
+ !!decli.attributes[data_1.AttributesIdEnumGR.CLIENT_TYPE].includes('au-detail');
756
+ });
757
+ }
758
+ installation_qte_array = installation_upsell.filter(function (upsell) {
759
+ return installation_array_1.find(function (decli) { return decli.sku === upsell.recommendation_sku; });
760
+ });
761
+ closestQte_1 = (0, maxBy_1.default)(installation_qte_array.filter(function (upsell) {
762
+ return upsell.actual_qty <= qte;
763
+ }), 'actual_qty');
764
+ if (!!!closestQte_1) return [3, 8];
765
+ installation_decli = installation_parent.declinations.find(function (decli) { return decli.sku === closestQte_1.recommendation_sku; });
766
+ if (!!installation_decli) {
767
+ if (!!isPro && !!customPriceList) {
768
+ installation_decli = (0, g2_1.checkForCustomPriceEquivalent)(installation_decli, customPriceList);
769
+ }
770
+ if (!(0, exports.shouldHideItemIfRegPriceIs0)(installation_decli, installation_parent.slug)) {
771
+ arrayFinal.push(__assign(__assign({}, installation_decli), { parent_slug: 'installation-gazon', qte: qte, is_upsell_of_sku: chosenSku, product_upsells: installation_parent.product_upsells }));
772
+ }
773
+ }
774
+ if (!(qte < minQteInstall)) return [3, 3];
775
+ return [4, fetchProduct('frais-minimum-gazon-pour-installation', locale, true, true)];
776
+ case 2:
777
+ minimum_installation_fee = _a.sent();
778
+ if (!!minimum_installation_fee) {
779
+ minInstallDecli = minimum_installation_fee.declinations[0];
780
+ minInstallDecli = __assign(__assign({}, minInstallDecli), { regular_price: __assign(__assign({}, minInstallDecli.regular_price), { amount: installation_decli.regular_price.amount }) });
781
+ if (!!isPro && !!customPriceList) {
782
+ minInstallDecli = (0, g2_1.checkForCustomPriceEquivalent)(__assign(__assign({}, minInstallDecli), { price_override: true }), customPriceList);
783
+ }
784
+ if (!(0, exports.shouldHideItemIfRegPriceIs0)(minInstallDecli, minimum_installation_fee.slug)) {
785
+ arrayFinal.push(__assign(__assign({}, minInstallDecli), { parent_slug: 'frais-minimum-gazon-pour-installation', qte: minQteInstall - qte, is_upsell_of_sku: installation_decli.sku, price_override: true }));
786
+ }
787
+ }
788
+ _a.label = 3;
789
+ case 3: return [4, fetchProduct('frais-de-mobilisation', locale, true, true)];
790
+ case 4:
791
+ mobilisation_fee = _a.sent();
792
+ if (!!mobilisation_fee && !!isPro) {
793
+ mobilisationDecli = mobilisation_fee.declinations[0];
794
+ if (!!customPriceList) {
795
+ mobilisationDecli = (0, g2_1.checkForCustomPriceEquivalent)(mobilisationDecli, customPriceList);
796
+ }
797
+ if (!(0, exports.shouldHideItemIfRegPriceIs0)(mobilisationDecli, mobilisation_fee.slug, true)) {
798
+ arrayFinal.push(__assign(__assign({}, mobilisationDecli), { parent_slug: 'frais-de-mobilisation', qte: (0, ceil_1.default)(qte > minQteInstall
799
+ ? qte / (740 * expedition_1.installationFeePalletTier)
800
+ : minQteInstall / (740 * expedition_1.installationFeePalletTier)), is_upsell_of_sku: installation_decli.sku, product_upsells: mobilisation_fee.product_upsells }));
801
+ }
802
+ }
803
+ if (!!!returnOtherFees) return [3, 8];
804
+ if (!!!returnOtherFees.engrais) return [3, 6];
805
+ return [4, fetchProduct('installation-fertilisation', locale, true, true)];
806
+ case 5:
807
+ fertilisation = _a.sent();
808
+ if (!!fertilisation) {
809
+ minFertilisationDecli = fertilisation.declinations[0];
810
+ if (!!isPro && !!customPriceList) {
811
+ minFertilisationDecli = (0, g2_1.checkForCustomPriceEquivalent)(minFertilisationDecli, customPriceList);
812
+ }
813
+ if (!(0, exports.shouldHideItemIfRegPriceIs0)(minFertilisationDecli, fertilisation.slug, true)) {
814
+ arrayFinal.push(__assign(__assign({}, minFertilisationDecli), { parent_slug: fertilisation.slug, qte: qte < minQteInstall ? minQteInstall : qte, is_upsell_of_sku: installation_decli.sku, product_upsells: fertilisation.product_upsells }));
815
+ }
816
+ }
817
+ _a.label = 6;
818
+ case 6:
819
+ if (!returnOtherFees.roulage) return [3, 8];
820
+ return [4, fetchProduct('installation-roulage', locale, true, true)];
821
+ case 7:
822
+ roullage = _a.sent();
823
+ if (!!roullage) {
824
+ minRoulageDecli = roullage.declinations[0];
825
+ if (!!isPro && !!customPriceList) {
826
+ minRoulageDecli = (0, g2_1.checkForCustomPriceEquivalent)(minRoulageDecli, customPriceList);
827
+ }
828
+ if (!(0, exports.shouldHideItemIfRegPriceIs0)(minRoulageDecli, roullage.slug, true)) {
829
+ arrayFinal.push(__assign(__assign({}, minRoulageDecli), { parent_slug: roullage.slug, qte: qte < minQteInstall ? minQteInstall : qte, is_upsell_of_sku: installation_decli.sku, product_upsells: roullage.product_upsells }));
830
+ }
831
+ }
832
+ _a.label = 8;
833
+ case 8: return [2, arrayFinal];
834
+ }
835
+ });
836
+ }); };
837
+ exports.getInstallationArray = getInstallationArray;
838
+ var getInstallItemPrice = function (parentSlug, servicesFees) {
839
+ var price = 0;
840
+ switch (parentSlug) {
841
+ case 'installation-gazon':
842
+ var itemsToUse = servicesFees.filter(function (i) { return i.parent_slug && ['installation-gazon', 'frais-de-mobilisation'].includes(i.parent_slug); });
843
+ if (!!itemsToUse) {
844
+ price = (0, sumBy_1.default)(itemsToUse, function (item) { return (0, products_1.getLowestPrice)(item).price.amount * item.qte; });
845
+ }
846
+ break;
847
+ default:
848
+ var itemToUse = servicesFees.find(function (i) { return i.parent_slug === parentSlug; });
849
+ if (!!itemToUse) {
850
+ price = (0, products_1.getLowestPrice)(itemToUse).price.amount * itemToUse.qte;
851
+ }
852
+ break;
853
+ }
854
+ return price;
855
+ };
856
+ exports.getInstallItemPrice = getInstallItemPrice;
857
+ var getConcreteQteText = function (declination, locale) {
858
+ if (locale === void 0) { locale = 'fr'; }
859
+ var txt = '';
860
+ if (!!!declination)
861
+ return txt;
862
+ var nbSaleUnitsPerCmdStep = 0;
863
+ var nbUnitsPerPal = 0;
864
+ var other_units = declination.other_units;
865
+ if (!!!other_units || !!!other_units.length) {
866
+ return '';
867
+ }
868
+ else {
869
+ var commandStep = other_units.find(function (unit) { return unit.is_command_step; });
870
+ var commandUnit = other_units.find(function (unit) { return unit.is_command_unit; });
871
+ var saleUnit = other_units.find(function (unit) { return unit.is_sale_unit; });
872
+ var unitsPerPal = other_units.find(function (unit) { return unit.unit_slug === 'pal'; });
873
+ if (!!commandStep &&
874
+ !!commandStep.fitting_unit &&
875
+ !!commandUnit &&
876
+ !!commandUnit.fitting_unit &&
877
+ !!saleUnit &&
878
+ !!saleUnit.fitting_unit &&
879
+ !!unitsPerPal &&
880
+ !!unitsPerPal.fitting_unit) {
881
+ var cmdSameAsSale = commandStep.unit_slug === saleUnit.unit_slug;
882
+ var nbP2PerRgSlug = !!cmdSameAsSale ? commandUnit.unit_slug : saleUnit.unit_slug;
883
+ nbSaleUnitsPerCmdStep = !!cmdSameAsSale
884
+ ? commandStep.fitting_unit / commandUnit.fitting_unit
885
+ : commandStep.fitting_unit / saleUnit.fitting_unit;
886
+ nbUnitsPerPal =
887
+ commandStep.fitting_unit == 1 && !!!commandStep.is_sale_unit
888
+ ? unitsPerPal.fitting_unit * (0, round_1.default)(nbSaleUnitsPerCmdStep, 2)
889
+ : unitsPerPal.fitting_unit / saleUnit.fitting_unit;
890
+ txt = (0, locale_1.translateILang)({
891
+ fr: 'Pour ce produit, vous devez commander par *cmdStep* (*nbUnitsPerCmdStep*).',
892
+ en: 'For this product, you have to order by *cmdStep* (*nbUnitsPerCmdStep*).'
893
+ }, locale);
894
+ if (unitsPerPal.unit_slug != commandStep.unit_slug) {
895
+ txt += (0, locale_1.translateILang)({
896
+ fr: ' Une palette = *nbUnitsPerPal*.',
897
+ en: ' A pallet = *nbUnitsPerPal*.'
898
+ }, locale);
899
+ }
900
+ txt = txt.replace('*cmdStep*', String("".concat((0, locale_1.translateILang)(inventories_1.unitDict[commandStep.unit_slug], locale).toLowerCase())));
901
+ txt = txt.replace('*nbUnitsPerCmdStep*', String("".concat((0, round_1.default)(nbSaleUnitsPerCmdStep, 2), " ").concat((0, locale_1.translateILang)(inventories_1.unitDict[nbP2PerRgSlug], locale).toLowerCase())));
902
+ txt = txt.replace('*nbUnitsPerPal*', String("".concat((0, round_1.default)(nbUnitsPerPal, 2), " ").concat((0, locale_1.translateILang)(inventories_1.unitDict[saleUnit.unit_slug], locale).toLowerCase())));
903
+ }
904
+ else {
905
+ return '';
906
+ }
907
+ }
908
+ return txt;
909
+ };
910
+ exports.getConcreteQteText = getConcreteQteText;
911
+ var getConcreteItemsByAvailability = function (cartData, availabilityType) {
912
+ return cartData.items.filter(function (i) {
913
+ return (i.attributes[data_1.AttributesIdEnumGR.AVAILABILITY] &&
914
+ i.attributes[data_1.AttributesIdEnumGR.AVAILABILITY][0] === availabilityType);
915
+ });
916
+ };
917
+ exports.getConcreteItemsByAvailability = getConcreteItemsByAvailability;
918
+ var getVracType = function (stores, cartData, getInventoryItemCallback, inventoyItemArray) { return __awaiter(void 0, void 0, void 0, function () {
919
+ var items, allStoreIds, itemFormat, onlySteJulieNobel;
920
+ return __generator(this, function (_a) {
921
+ switch (_a.label) {
922
+ case 0:
923
+ items = cartData.items;
924
+ if (!!!items ||
925
+ !!!items.length ||
926
+ (!!!(0, cart_1.checkIfCartContainsType)(cart_2.CartGeneralTypeEnum.VRAC, cartData) &&
927
+ !!!cartData.items.find(function (item) { return !!item.is_other_type && item.is_other_type === 'vrac'; })))
928
+ return [2];
929
+ allStoreIds = stores.map(function (store) { return store.id; });
930
+ itemFormat = '';
931
+ return [4, Promise.all(items.map(function (item) { return __awaiter(void 0, void 0, void 0, function () {
932
+ var productInventory, _a, _b;
933
+ return __generator(this, function (_c) {
934
+ switch (_c.label) {
935
+ case 0:
936
+ if (!!!!item.is_service) return [3, 4];
937
+ if (!(!!inventoyItemArray && !!inventoyItemArray.length)) return [3, 1];
938
+ _b = inventoyItemArray.find(function (i) { return i.sku === item.sku; });
939
+ return [3, 3];
940
+ case 1: return [4, getInventoryItemCallback(item.sku)];
941
+ case 2:
942
+ _b = _c.sent();
943
+ _c.label = 3;
944
+ case 3:
945
+ _a = _b;
946
+ return [3, 5];
947
+ case 4:
948
+ _a = undefined;
949
+ _c.label = 5;
950
+ case 5:
951
+ productInventory = _a;
952
+ if (!!!productInventory)
953
+ return [2];
954
+ allStoreIds = allStoreIds.filter(function (id) {
955
+ var sameStoreInProdInventory = productInventory.inventories.find(function (i) { return i.store_id === id; });
956
+ if (!!!sameStoreInProdInventory)
957
+ return true;
958
+ return !!!sameStoreInProdInventory.unavailable_in_store;
959
+ });
960
+ if (!!!itemFormat && !!item.attributes && !!item.attributes[data_1.AttributesIdEnumGR.FORMATS]) {
961
+ itemFormat = item.attributes[data_1.AttributesIdEnumGR.FORMATS][0];
962
+ }
963
+ return [2];
964
+ }
965
+ });
966
+ }); }))];
967
+ case 1:
968
+ _a.sent();
969
+ onlySteJulieNobel = allStoreIds.length === 1 && allStoreIds[0] === 'sainte-julie-nobel';
970
+ if (!!itemFormat.includes('sac')) {
971
+ return [2, {
972
+ vrac_type: !!onlySteJulieNobel ? products_3.VracTypeEnum.NOBEL_SAC : products_3.VracTypeEnum.AUTRE_SAC,
973
+ vrac_store_ids: allStoreIds
974
+ }];
975
+ }
976
+ else {
977
+ return [2, {
978
+ vrac_type: !!onlySteJulieNobel ? products_3.VracTypeEnum.NOBEL_TONNE : products_3.VracTypeEnum.AUTRE_TONNE,
979
+ vrac_store_ids: allStoreIds
980
+ }];
981
+ }
982
+ return [2];
983
+ }
984
+ });
985
+ }); };
986
+ exports.getVracType = getVracType;
987
+ var fetchFeesBeforeCart = function (useFees, newCart, deliveryType, fetchProduct, getIfAddressIsInsideZones, getDistanceFromAddress, locale, allStores, isPro, grassProduct, concreteOrder, settings, customPriceList) { return __awaiter(void 0, void 0, void 0, function () {
988
+ var cartContainsVrac, cartContainsInstallation, cartContainsSample, cartContainsAccessoriesOnly, storeToUse, storeAddressToUse;
989
+ return __generator(this, function (_a) {
990
+ switch (_a.label) {
991
+ case 0:
992
+ cartContainsVrac = (0, cart_1.checkIfCartContainsType)(cart_2.CartGeneralTypeEnum.VRAC, newCart);
993
+ cartContainsInstallation = (0, cart_1.checkIfCartContainsType)(cart_2.CartGeneralTypeEnum.INSTALLATION, newCart);
994
+ cartContainsSample = (0, cart_1.checkIfCartContainsType)(cart_2.CartGeneralTypeEnum.SAMPLE, newCart);
995
+ cartContainsAccessoriesOnly = (0, cart_1.checkIfCartContainsType)(cart_2.CartGeneralTypeEnum.ONLY_ACCESSORIES, newCart);
996
+ storeToUse = !!settings && !!settings.useStoreAddress ? allStores.find(function (s) { return s.id == settings.useStoreAddress; }) : undefined;
997
+ storeAddressToUse = !!storeToUse ? storeToUse.address : undefined;
998
+ return [4, (0, expedition_1.applyFeesToCart)(fetchProduct, getIfAddressIsInsideZones, getDistanceFromAddress, newCart, deliveryType, grassProduct, concreteOrder, deliveryType === 'pickup' ? false : cartContainsInstallation, cartContainsVrac, (0, object_1.recursiveCheckObject)(settings, 'useAvailableVracStores'), isPro, deliveryType === 'pickup' ? !!settings && !!settings.addOnePalletToPickup : false, cartContainsSample, !!settings ? !!settings.saveToShippingPayload : false, !!!settings
999
+ ? undefined
1000
+ : !!settings.useStoreAddress && !!storeAddressToUse
1001
+ ? storeAddressToUse
1002
+ : !!settings.useDeliveryAddress && !!newCart.shipping_address
1003
+ ? newCart.shipping_address.address
1004
+ : undefined, locale, undefined, false, cartContainsAccessoriesOnly, undefined, allStores, customPriceList, !!useFees)];
1005
+ case 1: return [2, _a.sent()];
1006
+ }
1007
+ });
1008
+ }); };
1009
+ exports.fetchFeesBeforeCart = fetchFeesBeforeCart;
1010
+ var shouldShowProCustomPromo = function (userData, isPro, product, customMinPrice) {
1011
+ if (!!!product || !!!isPro || !!!userData)
1012
+ return false;
1013
+ if (!!customMinPrice) {
1014
+ if (customMinPrice.type === G2_1.CustomPriceItemTypeEnum.REG && customMinPrice.code2 !== 'NET')
1015
+ return false;
1016
+ return true;
1017
+ }
1018
+ var customerGroup = (0, object_1.recursiveCheckObject)(userData, 'userData.basic_info.customer_professionnal_info.external_customer_group');
1019
+ var customerType = !!customerGroup ? (0, g2_1.getG2CustomerTypeFromCode)(customerGroup) : undefined;
1020
+ var prodPriceClass = !!product.price_classes_range
1021
+ ? product.price_classes_range.find(function (range) {
1022
+ return !!customerType && range.external_slug ? range.external_slug === customerType : range.class === 'aspirant';
1023
+ })
1024
+ : !!product.prices_list
1025
+ ? product.prices_list.find(function (range) {
1026
+ return !!customerType && range.external_slug ? range.external_slug === customerType : range.group_id === 'aspirant';
1027
+ })
1028
+ : undefined;
1029
+ return !!prodPriceClass && !!prodPriceClass.custom_promo_applies;
1030
+ };
1031
+ exports.shouldShowProCustomPromo = shouldShowProCustomPromo;
1032
+ var applyProCustomPromo = function (decli, userData) {
1033
+ var customerCode = userData.basic_info.customer_professionnal_info &&
1034
+ userData.basic_info.customer_professionnal_info.external_customer_group;
1035
+ if (!!!customerCode)
1036
+ return {};
1037
+ var customerCustomPromo = (0, g2_1.getG2DiscountFromCode)(customerCode);
1038
+ if (!!!customerCustomPromo)
1039
+ return {};
1040
+ var regPrice = decli.regular_price.amount;
1041
+ var newDiscountAmount = (0, toNumber_1.default)(regPrice) * ((100 - customerCustomPromo) / 100);
1042
+ var newPromoObj = (0, IDiscountRule_1.getDefaultDiscountRule)('product');
1043
+ newPromoObj = __assign(__assign({}, newPromoObj), { appliesTo: __assign(__assign({}, newPromoObj.appliesTo), { label: IDiscountRule_1.AppliesToEnum.PRODUCT, value: decli.sku }), rules: [
1044
+ {
1045
+ field: IDiscountRule_1.RuleFieldEnum.CUSTOMER,
1046
+ condition: IDiscountRule_1.RuleConditionEnum.AND,
1047
+ ruleDetails: [
1048
+ {
1049
+ operator: '==',
1050
+ value: [userData.id],
1051
+ condition: IDiscountRule_1.RuleConditionEnum.AND
1052
+ }
1053
+ ]
1054
+ }
1055
+ ], result: {
1056
+ action: IDiscountRule_1.ResultActionEnum.PERCENT,
1057
+ action_value: customerCustomPromo
1058
+ } });
1059
+ return {
1060
+ discount_rules: [newPromoObj],
1061
+ promo_price: {
1062
+ currency: 'CAD',
1063
+ amount: (0, round_1.default)(newDiscountAmount, 3)
1064
+ }
1065
+ };
1066
+ };
1067
+ exports.applyProCustomPromo = applyProCustomPromo;
1068
+ var getFormattedProdGR = function (decli, productSlug, isPro) {
1069
+ var promo_price = decli.promo_price, discount_price = decli.discount_price, tier_pricing = decli.tier_pricing, rest = __rest(decli, ["promo_price", "discount_price", "tier_pricing"]);
1070
+ return !!isPro ? __assign(__assign({}, rest), (productSlug !== 'kentucky' ? { tier_pricing: tier_pricing } : {})) : decli;
1071
+ };
1072
+ exports.getFormattedProdGR = getFormattedProdGR;
1073
+ var shouldHideItemIfRegPriceIs0 = function (item, productSlug, isUpsellOfInstallProd) {
1074
+ var regPriceIs0 = item.regular_price.amount == 0;
1075
+ if (!regPriceIs0)
1076
+ return false;
1077
+ if (!item.is_service)
1078
+ return false;
1079
+ if (!!isUpsellOfInstallProd)
1080
+ return false;
1081
+ if (expedition_1.slugsToCheckFromExpeditionFees.shipping.includes(productSlug))
1082
+ return false;
1083
+ return true;
1084
+ };
1085
+ exports.shouldHideItemIfRegPriceIs0 = shouldHideItemIfRegPriceIs0;
1086
1086
  //# sourceMappingURL=products.js.map