buildingproduct-library 0.2.73

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (295) hide show
  1. package/README.md +24 -0
  2. package/assets/fonts/arial-webfont.woff +0 -0
  3. package/assets/fonts/arial-webfont.woff2 +0 -0
  4. package/assets/fonts/arialblack-webfont.woff +0 -0
  5. package/assets/fonts/arialblack-webfont.woff2 +0 -0
  6. package/assets/fonts/arialbold-webfont.woff +0 -0
  7. package/assets/fonts/arialbold-webfont.woff2 +0 -0
  8. package/assets/fonts/helveticaneue.woff +0 -0
  9. package/assets/fonts/helveticaneue.woff2 +0 -0
  10. package/assets/fonts/helveticaneuemedium-webfont.woff +0 -0
  11. package/assets/fonts/helveticaneuemedium-webfont.woff2 +0 -0
  12. package/assets/fonts/helveticaneuethin-webfont.woff +0 -0
  13. package/assets/fonts/helveticaneuethin-webfont.woff2 +0 -0
  14. package/assets/fonts/icomoon.ttf +0 -0
  15. package/assets/fonts/icomoon.woff +0 -0
  16. package/assets/images/ActivateIcon.svg +14 -0
  17. package/assets/images/AlertIcon.svg +3 -0
  18. package/assets/images/DisableIcon.svg +3 -0
  19. package/assets/images/Divider line.svg +3 -0
  20. package/assets/images/EditIconEnabled.svg +6 -0
  21. package/assets/images/EditIcondisabled.svg +6 -0
  22. package/assets/images/Grid-dark.svg +8 -0
  23. package/assets/images/Grid-light.svg +8 -0
  24. package/assets/images/Hamburger_icon_white.png +0 -0
  25. package/assets/images/Icon-awesome-user-alt-white.svg +13 -0
  26. package/assets/images/Icon-ionic-ios-arrow-down.svg +3 -0
  27. package/assets/images/Icon-ionic-ios-help-circle.svg +6 -0
  28. package/assets/images/Icon-ionic-ios-home.svg +6 -0
  29. package/assets/images/Icon-ionic-ios-settings.svg +6 -0
  30. package/assets/images/Icon-material-shopping-cart.svg +7 -0
  31. package/assets/images/Invited.svg +4 -0
  32. package/assets/images/List-dark.svg +3 -0
  33. package/assets/images/List-light.svg +3 -0
  34. package/assets/images/PDP-add-more.svg +3 -0
  35. package/assets/images/PDP-colour-selected.svg +7 -0
  36. package/assets/images/PDP-quote-exists.svg +12 -0
  37. package/assets/images/PDP-remove-icon.svg +3 -0
  38. package/assets/images/Selected icon.svg +3 -0
  39. package/assets/images/Selected-icon.svg +3 -0
  40. package/assets/images/banner-image.png +0 -0
  41. package/assets/images/br_down.png +0 -0
  42. package/assets/images/cart-shopping-fast.svg +6 -0
  43. package/assets/images/check-square.svg +3 -0
  44. package/assets/images/checkmark-circle-outline.svg +4 -0
  45. package/assets/images/closegrey.svg +71 -0
  46. package/assets/images/dashboard.svg +35 -0
  47. package/assets/images/delivery.svg +11 -0
  48. package/assets/images/download-icon.svg +7 -0
  49. package/assets/images/downloads-dark.svg +6 -0
  50. package/assets/images/downloads-light.svg +6 -0
  51. package/assets/images/erroricon.svg +3 -0
  52. package/assets/images/home-icon.svg +6 -0
  53. package/assets/images/home_banner.png +0 -0
  54. package/assets/images/ic_calender.svg +15 -0
  55. package/assets/images/icon-clock-icon.svg +10 -0
  56. package/assets/images/icon-feather-edit.svg +6 -0
  57. package/assets/images/icon-flashing-black.svg +3 -0
  58. package/assets/images/icon-flashing-white.svg +3 -0
  59. package/assets/images/icon-ionic-ios-search.svg +3 -0
  60. package/assets/images/icon-logout.svg +6 -0
  61. package/assets/images/icon-mail-icon.svg +7 -0
  62. package/assets/images/icon-metro-info.svg +3 -0
  63. package/assets/images/ionic-arrow-back.svg +3 -0
  64. package/assets/images/ionic-ios-feather-phone.svg +3 -0
  65. package/assets/images/ionic-ios-help-circle-outline.svg +6 -0
  66. package/assets/images/ionic-ios-location-outline.svg +3 -0
  67. package/assets/images/ionic-ios-my-location.svg +3 -0
  68. package/assets/images/ionic-ios-users-outline.svg +3 -0
  69. package/assets/images/ionic-trash.svg +3 -0
  70. package/assets/images/logo-black.svg +16 -0
  71. package/assets/images/logo-dark.svg +48 -0
  72. package/assets/images/logo.svg +16 -0
  73. package/assets/images/my-account.svg +21 -0
  74. package/assets/images/my-list.svg +43 -0
  75. package/assets/images/my-team.svg +17 -0
  76. package/assets/images/newsfeed-banner.jpg +0 -0
  77. package/assets/images/no-saved-cart.svg +3 -0
  78. package/assets/images/open-account-logout.png +0 -0
  79. package/assets/images/orders.svg +23 -0
  80. package/assets/images/pdp-noimage.svg +21 -0
  81. package/assets/images/pickup.svg +8 -0
  82. package/assets/images/plp-grid-noimage.svg +22 -0
  83. package/assets/images/plp-list-noimage.svg +16 -0
  84. package/assets/images/product-banner.png +0 -0
  85. package/assets/images/product-details-dark.svg +10 -0
  86. package/assets/images/product-details-light.svg +10 -0
  87. package/assets/images/products.svg +34 -0
  88. package/assets/images/quotes.svg +12 -0
  89. package/assets/images/related-products-dark.svg +9 -0
  90. package/assets/images/related-products-light.svg +9 -0
  91. package/assets/images/search-noimage.svg +16 -0
  92. package/assets/images/see-more-bg-hover.svg +1 -0
  93. package/assets/images/see-more-bg.svg +1 -0
  94. package/assets/images/shopping-cart-icon.svg +14 -0
  95. package/assets/images/slash-small-white.svg +3 -0
  96. package/assets/images/warningicon.svg +3 -0
  97. package/assets/images/why-dimond.svg +7 -0
  98. package/buildingproduct-library-0.2.73.tgz +0 -0
  99. package/buildingproduct-library.d.ts +5 -0
  100. package/bundles/buildingproduct-library.umd.js +9907 -0
  101. package/bundles/buildingproduct-library.umd.js.map +1 -0
  102. package/esm2015/buildingproduct-library.js +5 -0
  103. package/esm2015/lib/account-dropdown/account-dropdown.component.js +126 -0
  104. package/esm2015/lib/account-dropdown/account-dropdown.module.js +55 -0
  105. package/esm2015/lib/account-dropdown/account-dropdown.service.js +55 -0
  106. package/esm2015/lib/checkout/add-new-address/add-new-address.component.js +435 -0
  107. package/esm2015/lib/checkout/checkout.module.js +141 -0
  108. package/esm2015/lib/checkout/custom-checkout/custom-checkout.component.js +362 -0
  109. package/esm2015/lib/checkout/order-confirmation/order-confirmation.component.js +41 -0
  110. package/esm2015/lib/checkout/order-review/delivery-information/delivery-information.component.js +32 -0
  111. package/esm2015/lib/checkout/order-review/order-review-grid/order-review-grid.component.js +92 -0
  112. package/esm2015/lib/checkout/order-review/order-review-list/order-review-list.component.js +94 -0
  113. package/esm2015/lib/checkout/order-review/order-review.component.js +147 -0
  114. package/esm2015/lib/constants/general.js +57 -0
  115. package/esm2015/lib/contact-us/contact-us.component.js +38 -0
  116. package/esm2015/lib/contact-us/contact-us.module.js +41 -0
  117. package/esm2015/lib/custom-cart/addto-saved-carts/addto-saved-carts.component.js +48 -0
  118. package/esm2015/lib/custom-cart/custom-cart.component.js +94 -0
  119. package/esm2015/lib/custom-cart/custom-cart.module.js +91 -0
  120. package/esm2015/lib/custom-header-logo/custom-header-logo.component.js +26 -0
  121. package/esm2015/lib/custom-header-logo/custom-header-logo.module.js +54 -0
  122. package/esm2015/lib/custom-header-paragraph/custom-header-paragraph.component.js +24 -0
  123. package/esm2015/lib/custom-header-paragraph/custom-header-paragraph.module.js +48 -0
  124. package/esm2015/lib/custom-mini-cart/custom-mini-cart.component.js +138 -0
  125. package/esm2015/lib/custom-mini-cart/custom-mini-cart.module.js +68 -0
  126. package/esm2015/lib/custom-navigation/custom-navigation/custom-navigation.component.js +121 -0
  127. package/esm2015/lib/custom-navigation/custom-navigation.module.js +89 -0
  128. package/esm2015/lib/custom-order-details/custom-order-details.component.js +197 -0
  129. package/esm2015/lib/custom-order-details/custom-order-details.module.js +91 -0
  130. package/esm2015/lib/custom-order-details/download-popup/download-popup.component.js +34 -0
  131. package/esm2015/lib/custom-order-details/order-detail-grid/order-detail-grid.component.js +108 -0
  132. package/esm2015/lib/custom-order-details/order-detail-list/order-detail-list.component.js +103 -0
  133. package/esm2015/lib/custom-order-history/custom-order-history.component.js +652 -0
  134. package/esm2015/lib/custom-order-history/custom-order-history.module.js +97 -0
  135. package/esm2015/lib/custom-order-history/slider-progress/slider-progress.component.js +62 -0
  136. package/esm2015/lib/custom-saved-cart/custom-saved-cart-details/custom-save-cart-dtl/custom-save-cart-dtl.component.js +96 -0
  137. package/esm2015/lib/custom-saved-cart/custom-saved-cart-details/custom-saved-cart-details.module.js +125 -0
  138. package/esm2015/lib/custom-saved-cart/custom-saved-cart-details/saved-cart-details-action/saved-cart-details-action.component.js +115 -0
  139. package/esm2015/lib/custom-saved-cart/custom-saved-cart-details/saved-cart-details-overview/saved-cart-details-overview.component.js +56 -0
  140. package/esm2015/lib/custom-saved-cart/custom-saved-cart-details/saved-cart-details.service.js +33 -0
  141. package/esm2015/lib/custom-saved-cart/custom-saved-cart.component.js +107 -0
  142. package/esm2015/lib/custom-saved-cart/custom-saved-cart.module.js +89 -0
  143. package/esm2015/lib/custom-saved-cart/save-cart.service.js +67 -0
  144. package/esm2015/lib/custom-saved-cart/saved-cart-general.js +49 -0
  145. package/esm2015/lib/custom-saved-cart/saved-cart.service.js +39 -0
  146. package/esm2015/lib/custom-search/custom-search.component.js +132 -0
  147. package/esm2015/lib/custom-search/custom-search.module.js +46 -0
  148. package/esm2015/lib/custom-user-account/custom-user-account.component.js +92 -0
  149. package/esm2015/lib/custom-user-account/custom-user-account.module.js +63 -0
  150. package/esm2015/lib/directives/custom-directives.module.js +22 -0
  151. package/esm2015/lib/directives/custom-paginatior.directive.js +127 -0
  152. package/esm2015/lib/environments/environment.js +24 -0
  153. package/esm2015/lib/find-store/find-store.component.js +94 -0
  154. package/esm2015/lib/find-store/find-store.module.js +66 -0
  155. package/esm2015/lib/help-support/help-support.component.js +24 -0
  156. package/esm2015/lib/help-support/help-support.module.js +38 -0
  157. package/esm2015/lib/my-account/account-dashboard/account-dashboard.component.js +134 -0
  158. package/esm2015/lib/my-account/account-statements/account-statements.component.js +57 -0
  159. package/esm2015/lib/my-account/invoice-credit/invoice-credit.component.js +342 -0
  160. package/esm2015/lib/my-account/my-account.component.js +85 -0
  161. package/esm2015/lib/my-account/my-account.module.js +91 -0
  162. package/esm2015/lib/my-team/my-team.component.js +418 -0
  163. package/esm2015/lib/my-team/my-team.module.js +96 -0
  164. package/esm2015/lib/my-team/team-member.service.js +123 -0
  165. package/esm2015/lib/pipes/custom-date-pipe.pipe.js +26 -0
  166. package/esm2015/lib/preference/preference.component.js +19 -0
  167. package/esm2015/lib/preference/preference.module.js +45 -0
  168. package/esm2015/lib/services/account-dropdown-state.service.js +21 -0
  169. package/esm2015/lib/services/cart.service.js +70 -0
  170. package/esm2015/lib/services/checkout.service.js +73 -0
  171. package/esm2015/lib/services/endPointURL.js +187 -0
  172. package/esm2015/lib/services/find-store.service.js +61 -0
  173. package/esm2015/lib/services/logout.service.js +50 -0
  174. package/esm2015/lib/services/my-account.service.js +68 -0
  175. package/esm2015/lib/services/order-history.service.js +65 -0
  176. package/esm2015/lib/services/order.review.js +38 -0
  177. package/esm2015/lib/services/search.service.js +42 -0
  178. package/esm2015/lib/services/user-account-detail-service.service.js +44 -0
  179. package/esm2015/lib/shared/CustomProduct.js +47 -0
  180. package/esm2015/lib/shared/active-saved-cart/active-saved-cart.component.js +105 -0
  181. package/esm2015/lib/shared/custom-breadcrum/custom-breadcrum.component.js +92 -0
  182. package/esm2015/lib/shared/custom-cart-detail/custom-cart-detail.component.js +95 -0
  183. package/esm2015/lib/shared/custom-cart-detail/custom-cart-grid/custom-cart-grid.component.js +355 -0
  184. package/esm2015/lib/shared/custom-cart-detail/custom-cart-list/custom-cart-list.component.js +360 -0
  185. package/esm2015/lib/shared/custom-cart-detail/custom-product-quantity-form/custom-product-quantity-form.component.js +575 -0
  186. package/esm2015/lib/shared/custom-cart-detail/split.pipe.js +17 -0
  187. package/esm2015/lib/shared/date-range-picker/date-range-picker.component.js +123 -0
  188. package/esm2015/lib/shared/regEx.validator.js +15 -0
  189. package/esm2015/lib/shared/saved-cart-popup/saved-cart-popup.component.js +85 -0
  190. package/esm2015/lib/shared/shared-components.module.js +108 -0
  191. package/esm2015/lib/shared/shared-download-order/shared-download-order.component.js +143 -0
  192. package/esm2015/lib/spa-custom-header.component.js +26 -0
  193. package/esm2015/lib/spa-custom-header.module.js +145 -0
  194. package/esm2015/lib/spa-custom-header.service.js +14 -0
  195. package/esm2015/lib/utils/utils.js +27 -0
  196. package/esm2015/lib/utils.js +27 -0
  197. package/esm2015/public-api.js +35 -0
  198. package/fesm2015/buildingproduct-library.js +9190 -0
  199. package/fesm2015/buildingproduct-library.js.map +1 -0
  200. package/lib/account-dropdown/account-dropdown.component.d.ts +22 -0
  201. package/lib/account-dropdown/account-dropdown.module.d.ts +10 -0
  202. package/lib/account-dropdown/account-dropdown.service.d.ts +14 -0
  203. package/lib/checkout/add-new-address/add-new-address.component.d.ts +29 -0
  204. package/lib/checkout/checkout.module.d.ts +26 -0
  205. package/lib/checkout/custom-checkout/custom-checkout.component.d.ts +80 -0
  206. package/lib/checkout/order-confirmation/order-confirmation.component.d.ts +26 -0
  207. package/lib/checkout/order-review/delivery-information/delivery-information.component.d.ts +13 -0
  208. package/lib/checkout/order-review/order-review-grid/order-review-grid.component.d.ts +27 -0
  209. package/lib/checkout/order-review/order-review-list/order-review-list.component.d.ts +28 -0
  210. package/lib/checkout/order-review/order-review.component.d.ts +44 -0
  211. package/lib/constants/general.d.ts +50 -0
  212. package/lib/contact-us/contact-us.component.d.ts +13 -0
  213. package/lib/contact-us/contact-us.module.d.ts +9 -0
  214. package/lib/custom-cart/addto-saved-carts/addto-saved-carts.component.d.ts +18 -0
  215. package/lib/custom-cart/custom-cart.component.d.ts +25 -0
  216. package/lib/custom-cart/custom-cart.module.d.ts +15 -0
  217. package/lib/custom-header-logo/custom-header-logo.component.d.ts +11 -0
  218. package/lib/custom-header-logo/custom-header-logo.module.d.ts +11 -0
  219. package/lib/custom-header-paragraph/custom-header-paragraph.component.d.ts +11 -0
  220. package/lib/custom-header-paragraph/custom-header-paragraph.module.d.ts +10 -0
  221. package/lib/custom-mini-cart/custom-mini-cart.component.d.ts +45 -0
  222. package/lib/custom-mini-cart/custom-mini-cart.module.d.ts +14 -0
  223. package/lib/custom-navigation/custom-navigation/custom-navigation.component.d.ts +37 -0
  224. package/lib/custom-navigation/custom-navigation.module.d.ts +21 -0
  225. package/lib/custom-order-details/custom-order-details.component.d.ts +60 -0
  226. package/lib/custom-order-details/custom-order-details.module.d.ts +17 -0
  227. package/lib/custom-order-details/download-popup/download-popup.component.d.ts +15 -0
  228. package/lib/custom-order-details/order-detail-grid/order-detail-grid.component.d.ts +30 -0
  229. package/lib/custom-order-details/order-detail-list/order-detail-list.component.d.ts +28 -0
  230. package/lib/custom-order-history/custom-order-history.component.d.ts +96 -0
  231. package/lib/custom-order-history/custom-order-history.module.d.ts +17 -0
  232. package/lib/custom-order-history/slider-progress/slider-progress.component.d.ts +15 -0
  233. package/lib/custom-saved-cart/custom-saved-cart-details/custom-save-cart-dtl/custom-save-cart-dtl.component.d.ts +32 -0
  234. package/lib/custom-saved-cart/custom-saved-cart-details/custom-saved-cart-details.module.d.ts +20 -0
  235. package/lib/custom-saved-cart/custom-saved-cart-details/saved-cart-details-action/saved-cart-details-action.component.d.ts +68 -0
  236. package/lib/custom-saved-cart/custom-saved-cart-details/saved-cart-details-overview/saved-cart-details-overview.component.d.ts +31 -0
  237. package/lib/custom-saved-cart/custom-saved-cart-details/saved-cart-details.service.d.ts +15 -0
  238. package/lib/custom-saved-cart/custom-saved-cart.component.d.ts +57 -0
  239. package/lib/custom-saved-cart/custom-saved-cart.module.d.ts +16 -0
  240. package/lib/custom-saved-cart/save-cart.service.d.ts +17 -0
  241. package/lib/custom-saved-cart/saved-cart-general.d.ts +88 -0
  242. package/lib/custom-saved-cart/saved-cart.service.d.ts +11 -0
  243. package/lib/custom-search/custom-search.component.d.ts +35 -0
  244. package/lib/custom-search/custom-search.module.d.ts +10 -0
  245. package/lib/custom-user-account/custom-user-account.component.d.ts +35 -0
  246. package/lib/custom-user-account/custom-user-account.module.d.ts +12 -0
  247. package/lib/directives/custom-directives.module.d.ts +8 -0
  248. package/lib/directives/custom-paginatior.directive.d.ts +24 -0
  249. package/lib/environments/environment.d.ts +12 -0
  250. package/lib/find-store/find-store.component.d.ts +34 -0
  251. package/lib/find-store/find-store.module.d.ts +12 -0
  252. package/lib/help-support/help-support.component.d.ts +11 -0
  253. package/lib/help-support/help-support.module.d.ts +9 -0
  254. package/lib/my-account/account-dashboard/account-dashboard.component.d.ts +34 -0
  255. package/lib/my-account/account-statements/account-statements.component.d.ts +24 -0
  256. package/lib/my-account/invoice-credit/invoice-credit.component.d.ts +62 -0
  257. package/lib/my-account/my-account.component.d.ts +26 -0
  258. package/lib/my-account/my-account.module.d.ts +18 -0
  259. package/lib/my-team/my-team.component.d.ts +96 -0
  260. package/lib/my-team/my-team.module.d.ts +17 -0
  261. package/lib/my-team/team-member.service.d.ts +17 -0
  262. package/lib/pipes/custom-date-pipe.pipe.d.ts +11 -0
  263. package/lib/preference/preference.component.d.ts +8 -0
  264. package/lib/preference/preference.module.d.ts +10 -0
  265. package/lib/services/account-dropdown-state.service.d.ts +10 -0
  266. package/lib/services/cart.service.d.ts +15 -0
  267. package/lib/services/checkout.service.d.ts +17 -0
  268. package/lib/services/endPointURL.d.ts +153 -0
  269. package/lib/services/find-store.service.d.ts +14 -0
  270. package/lib/services/logout.service.d.ts +11 -0
  271. package/lib/services/my-account.service.d.ts +16 -0
  272. package/lib/services/order-history.service.d.ts +14 -0
  273. package/lib/services/order.review.d.ts +11 -0
  274. package/lib/services/search.service.d.ts +11 -0
  275. package/lib/services/user-account-detail-service.service.d.ts +15 -0
  276. package/lib/shared/CustomProduct.d.ts +27 -0
  277. package/lib/shared/active-saved-cart/active-saved-cart.component.d.ts +56 -0
  278. package/lib/shared/custom-breadcrum/custom-breadcrum.component.d.ts +28 -0
  279. package/lib/shared/custom-cart-detail/custom-cart-detail.component.d.ts +32 -0
  280. package/lib/shared/custom-cart-detail/custom-cart-grid/custom-cart-grid.component.d.ts +74 -0
  281. package/lib/shared/custom-cart-detail/custom-cart-list/custom-cart-list.component.d.ts +79 -0
  282. package/lib/shared/custom-cart-detail/custom-product-quantity-form/custom-product-quantity-form.component.d.ts +93 -0
  283. package/lib/shared/custom-cart-detail/split.pipe.d.ts +7 -0
  284. package/lib/shared/date-range-picker/date-range-picker.component.d.ts +31 -0
  285. package/lib/shared/regEx.validator.d.ts +8 -0
  286. package/lib/shared/saved-cart-popup/saved-cart-popup.component.d.ts +37 -0
  287. package/lib/shared/shared-components.module.d.ts +24 -0
  288. package/lib/shared/shared-download-order/shared-download-order.component.d.ts +37 -0
  289. package/lib/spa-custom-header.component.d.ts +11 -0
  290. package/lib/spa-custom-header.module.d.ts +28 -0
  291. package/lib/spa-custom-header.service.d.ts +6 -0
  292. package/lib/utils/utils.d.ts +6 -0
  293. package/lib/utils.d.ts +5 -0
  294. package/package.json +90 -0
  295. package/public-api.d.ts +31 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildingproduct-library.umd.js","sources":["../../../projects/buildingproduct_library/src/lib/spa-custom-header.service.ts","../../../projects/buildingproduct_library/src/lib/spa-custom-header.component.ts","../../../projects/buildingproduct_library/src/lib/spa-custom-header.component.html","../../../projects/buildingproduct_library/src/lib/environments/environment.ts","../../../projects/buildingproduct_library/src/lib/services/endPointURL.ts","../../../projects/buildingproduct_library/src/lib/account-dropdown/account-dropdown.service.ts","../../../projects/buildingproduct_library/src/lib/services/user-account-detail-service.service.ts","../../../projects/buildingproduct_library/src/lib/services/find-store.service.ts","../../../projects/buildingproduct_library/src/lib/account-dropdown/account-dropdown.component.ts","../../../projects/buildingproduct_library/src/lib/account-dropdown/account-dropdown.component.html","../../../projects/buildingproduct_library/src/lib/constants/general.ts","../../../projects/buildingproduct_library/src/lib/find-store/find-store.component.ts","../../../projects/buildingproduct_library/src/lib/find-store/find-store.component.html","../../../projects/buildingproduct_library/src/lib/find-store/find-store.module.ts","../../../projects/buildingproduct_library/src/lib/account-dropdown/account-dropdown.module.ts","../../../projects/buildingproduct_library/src/lib/contact-us/contact-us.component.ts","../../../projects/buildingproduct_library/src/lib/contact-us/contact-us.component.html","../../../projects/buildingproduct_library/src/lib/contact-us/contact-us.module.ts","../../../projects/buildingproduct_library/src/lib/custom-header-logo/custom-header-logo.component.ts","../../../projects/buildingproduct_library/src/lib/custom-header-logo/custom-header-logo.component.html","../../../projects/buildingproduct_library/src/lib/custom-header-logo/custom-header-logo.module.ts","../../../projects/buildingproduct_library/src/lib/custom-header-paragraph/custom-header-paragraph.component.ts","../../../projects/buildingproduct_library/src/lib/custom-header-paragraph/custom-header-paragraph.component.html","../../../projects/buildingproduct_library/src/lib/custom-header-paragraph/custom-header-paragraph.module.ts","../../../projects/buildingproduct_library/src/lib/utils.ts","../../../projects/buildingproduct_library/src/lib/services/logout.service.ts","../../../projects/buildingproduct_library/src/lib/custom-user-account/custom-user-account.component.ts","../../../projects/buildingproduct_library/src/lib/custom-user-account/custom-user-account.component.html","../../../projects/buildingproduct_library/src/lib/custom-user-account/custom-user-account.module.ts","../../../projects/buildingproduct_library/src/lib/help-support/help-support.component.ts","../../../projects/buildingproduct_library/src/lib/help-support/help-support.component.html","../../../projects/buildingproduct_library/src/lib/help-support/help-support.module.ts","../../../projects/buildingproduct_library/src/lib/services/search.service.ts","../../../projects/buildingproduct_library/src/lib/custom-search/custom-search.component.ts","../../../projects/buildingproduct_library/src/lib/custom-search/custom-search.component.html","../../../projects/buildingproduct_library/src/lib/custom-search/custom-search.module.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/buildingproduct_library/src/lib/services/account-dropdown-state.service.ts","../../../projects/buildingproduct_library/src/lib/custom-mini-cart/custom-mini-cart.component.ts","../../../projects/buildingproduct_library/src/lib/custom-mini-cart/custom-mini-cart.component.html","../../../projects/buildingproduct_library/src/lib/custom-mini-cart/custom-mini-cart.module.ts","../../../projects/buildingproduct_library/src/lib/shared/custom-breadcrum/custom-breadcrum.component.ts","../../../projects/buildingproduct_library/src/lib/shared/custom-breadcrum/custom-breadcrum.component.html","../../../projects/buildingproduct_library/src/lib/shared/regEx.validator.ts","../../../projects/buildingproduct_library/src/lib/shared/CustomProduct.ts","../../../projects/buildingproduct_library/src/lib/services/cart.service.ts","../../../projects/buildingproduct_library/src/lib/shared/custom-cart-detail/custom-product-quantity-form/custom-product-quantity-form.component.ts","../../../projects/buildingproduct_library/src/lib/shared/custom-cart-detail/custom-product-quantity-form/custom-product-quantity-form.component.html","../../../projects/buildingproduct_library/src/lib/shared/custom-cart-detail/split.pipe.ts","../../../projects/buildingproduct_library/src/lib/shared/custom-cart-detail/custom-cart-grid/custom-cart-grid.component.ts","../../../projects/buildingproduct_library/src/lib/shared/custom-cart-detail/custom-cart-grid/custom-cart-grid.component.html","../../../projects/buildingproduct_library/src/lib/shared/custom-cart-detail/custom-cart-list/custom-cart-list.component.ts","../../../projects/buildingproduct_library/src/lib/shared/custom-cart-detail/custom-cart-list/custom-cart-list.component.html","../../../projects/buildingproduct_library/src/lib/custom-saved-cart/saved-cart-general.ts","../../../projects/buildingproduct_library/src/lib/custom-saved-cart/save-cart.service.ts","../../../projects/buildingproduct_library/src/lib/shared/saved-cart-popup/saved-cart-popup.component.ts","../../../projects/buildingproduct_library/src/lib/shared/saved-cart-popup/saved-cart-popup.component.html","../../../projects/buildingproduct_library/src/lib/shared/active-saved-cart/active-saved-cart.component.ts","../../../projects/buildingproduct_library/src/lib/shared/active-saved-cart/active-saved-cart.component.html","../../../projects/buildingproduct_library/src/lib/shared/date-range-picker/date-range-picker.component.ts","../../../projects/buildingproduct_library/src/lib/shared/date-range-picker/date-range-picker.component.html","../../../projects/buildingproduct_library/src/lib/custom-saved-cart/saved-cart.service.ts","../../../projects/buildingproduct_library/src/lib/pipes/custom-date-pipe.pipe.ts","../../../projects/buildingproduct_library/src/lib/shared/shared-download-order/shared-download-order.component.ts","../../../projects/buildingproduct_library/src/lib/shared/shared-download-order/shared-download-order.component.html","../../../projects/buildingproduct_library/src/lib/shared/shared-components.module.ts","../../../projects/buildingproduct_library/src/lib/custom-navigation/custom-navigation/custom-navigation.component.ts","../../../projects/buildingproduct_library/src/lib/custom-navigation/custom-navigation/custom-navigation.component.html","../../../projects/buildingproduct_library/src/lib/custom-navigation/custom-navigation.module.ts","../../../projects/buildingproduct_library/src/lib/preference/preference.component.ts","../../../projects/buildingproduct_library/src/lib/preference/preference.component.html","../../../projects/buildingproduct_library/src/lib/preference/preference.module.ts","../../../projects/buildingproduct_library/src/lib/spa-custom-header.module.ts","../../../projects/buildingproduct_library/src/lib/my-team/team-member.service.ts","../../../projects/buildingproduct_library/src/lib/directives/custom-paginatior.directive.ts","../../../projects/buildingproduct_library/src/lib/my-team/my-team.component.ts","../../../projects/buildingproduct_library/src/lib/my-team/my-team.component.html","../../../projects/buildingproduct_library/src/lib/directives/custom-directives.module.ts","../../../projects/buildingproduct_library/src/lib/my-team/my-team.module.ts","../../../projects/buildingproduct_library/src/lib/custom-saved-cart/custom-saved-cart.component.ts","../../../projects/buildingproduct_library/src/lib/custom-saved-cart/custom-saved-cart.component.html","../../../projects/buildingproduct_library/src/lib/custom-saved-cart/custom-saved-cart.module.ts","../../../projects/buildingproduct_library/src/lib/services/order-history.service.ts","../../../projects/buildingproduct_library/src/lib/custom-order-history/slider-progress/slider-progress.component.ts","../../../projects/buildingproduct_library/src/lib/custom-order-history/slider-progress/slider-progress.component.html","../../../projects/buildingproduct_library/src/lib/custom-order-history/custom-order-history.component.ts","../../../projects/buildingproduct_library/src/lib/custom-order-history/custom-order-history.component.html","../../../projects/buildingproduct_library/src/lib/custom-order-history/custom-order-history.module.ts","../../../projects/buildingproduct_library/src/lib/services/my-account.service.ts","../../../projects/buildingproduct_library/src/lib/custom-order-details/order-detail-list/order-detail-list.component.ts","../../../projects/buildingproduct_library/src/lib/custom-order-details/order-detail-list/order-detail-list.component.html","../../../projects/buildingproduct_library/src/lib/custom-order-details/order-detail-grid/order-detail-grid.component.ts","../../../projects/buildingproduct_library/src/lib/custom-order-details/order-detail-grid/order-detail-grid.component.html","../../../projects/buildingproduct_library/src/lib/custom-order-details/download-popup/download-popup.component.ts","../../../projects/buildingproduct_library/src/lib/custom-order-details/download-popup/download-popup.component.html","../../../projects/buildingproduct_library/src/lib/custom-order-details/custom-order-details.component.ts","../../../projects/buildingproduct_library/src/lib/custom-order-details/custom-order-details.component.html","../../../projects/buildingproduct_library/src/lib/custom-order-details/custom-order-details.module.ts","../../../projects/buildingproduct_library/src/lib/services/checkout.service.ts","../../../projects/buildingproduct_library/src/lib/checkout/add-new-address/add-new-address.component.ts","../../../projects/buildingproduct_library/src/lib/checkout/add-new-address/add-new-address.component.html","../../../projects/buildingproduct_library/src/lib/checkout/custom-checkout/custom-checkout.component.ts","../../../projects/buildingproduct_library/src/lib/checkout/custom-checkout/custom-checkout.component.html","../../../projects/buildingproduct_library/src/lib/checkout/order-confirmation/order-confirmation.component.ts","../../../projects/buildingproduct_library/src/lib/checkout/order-confirmation/order-confirmation.component.html","../../../projects/buildingproduct_library/src/lib/services/order.review.ts","../../../projects/buildingproduct_library/src/lib/checkout/order-review/delivery-information/delivery-information.component.ts","../../../projects/buildingproduct_library/src/lib/checkout/order-review/delivery-information/delivery-information.component.html","../../../projects/buildingproduct_library/src/lib/checkout/order-review/order-review-list/order-review-list.component.ts","../../../projects/buildingproduct_library/src/lib/checkout/order-review/order-review-list/order-review-list.component.html","../../../projects/buildingproduct_library/src/lib/checkout/order-review/order-review-grid/order-review-grid.component.ts","../../../projects/buildingproduct_library/src/lib/checkout/order-review/order-review-grid/order-review-grid.component.html","../../../projects/buildingproduct_library/src/lib/checkout/order-review/order-review.component.ts","../../../projects/buildingproduct_library/src/lib/checkout/order-review/order-review.component.html","../../../projects/buildingproduct_library/src/lib/checkout/checkout.module.ts","../../../projects/buildingproduct_library/src/lib/shared/custom-cart-detail/custom-cart-detail.component.ts","../../../projects/buildingproduct_library/src/lib/shared/custom-cart-detail/custom-cart-detail.component.html","../../../projects/buildingproduct_library/src/lib/custom-saved-cart/custom-saved-cart-details/saved-cart-details.service.ts","../../../projects/buildingproduct_library/src/lib/custom-saved-cart/custom-saved-cart-details/saved-cart-details-overview/saved-cart-details-overview.component.ts","../../../projects/buildingproduct_library/src/lib/custom-saved-cart/custom-saved-cart-details/saved-cart-details-overview/saved-cart-details-overview.component.html","../../../projects/buildingproduct_library/src/lib/custom-saved-cart/custom-saved-cart-details/saved-cart-details-action/saved-cart-details-action.component.ts","../../../projects/buildingproduct_library/src/lib/custom-saved-cart/custom-saved-cart-details/saved-cart-details-action/saved-cart-details-action.component.html","../../../projects/buildingproduct_library/src/lib/utils/utils.ts","../../../projects/buildingproduct_library/src/lib/custom-saved-cart/custom-saved-cart-details/custom-save-cart-dtl/custom-save-cart-dtl.component.ts","../../../projects/buildingproduct_library/src/lib/custom-saved-cart/custom-saved-cart-details/custom-save-cart-dtl/custom-save-cart-dtl.component.html","../../../projects/buildingproduct_library/src/lib/custom-saved-cart/custom-saved-cart-details/custom-saved-cart-details.module.ts","../../../projects/buildingproduct_library/src/lib/custom-cart/custom-cart.component.ts","../../../projects/buildingproduct_library/src/lib/custom-cart/custom-cart.component.html","../../../projects/buildingproduct_library/src/lib/custom-cart/addto-saved-carts/addto-saved-carts.component.ts","../../../projects/buildingproduct_library/src/lib/custom-cart/addto-saved-carts/addto-saved-carts.component.html","../../../projects/buildingproduct_library/src/lib/custom-cart/custom-cart.module.ts","../../../projects/buildingproduct_library/src/lib/my-account/account-dashboard/account-dashboard.component.ts","../../../projects/buildingproduct_library/src/lib/my-account/account-dashboard/account-dashboard.component.html","../../../projects/buildingproduct_library/src/lib/my-account/invoice-credit/invoice-credit.component.ts","../../../projects/buildingproduct_library/src/lib/my-account/invoice-credit/invoice-credit.component.html","../../../projects/buildingproduct_library/src/lib/my-account/account-statements/account-statements.component.ts","../../../projects/buildingproduct_library/src/lib/my-account/account-statements/account-statements.component.html","../../../projects/buildingproduct_library/src/lib/my-account/my-account.component.ts","../../../projects/buildingproduct_library/src/lib/my-account/my-account.component.html","../../../projects/buildingproduct_library/src/lib/my-account/my-account.module.ts","../../../projects/buildingproduct_library/src/public-api.ts","../../../projects/buildingproduct_library/src/buildingproduct-library.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SpaCustomHeaderService {\r\n\r\n constructor() { }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { CmsService } from '@spartacus/core';\r\n\r\n@Component({\r\n selector: 'lib-spa-custom-header',\r\n templateUrl: './spa-custom-header.component.html',\r\n styleUrls: ['./spa-custom-header.component.scss']\r\n})\r\nexport class SpaCustomHeaderComponent implements OnInit {\r\n\r\n logoData: any = {};\r\n constructor(public cmsService: CmsService) { }\r\n ngOnInit(): void {\r\n this.cmsService.getComponentData(\"SiteLogoComponent\").subscribe((data: any) => {\r\n this.logoData = data;\r\n })\r\n }\r\n\r\n\r\n}\r\n","<a href=\"{{logoData?.urlLink}}\" class=\"topHeaderLogo\" [target]=\"logoData?.target == 'true' ? '_blank' : '' \">\r\n <cx-media [container]=\"logoData?.media\"></cx-media>\r\n</a>","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false,\r\n occBaseUrl:'https://api.crre-fletcherb3-d2-public.model-t.cc.commerce.ondemand.com/', \r\n\r\n baseSiteId:\"occ/v2/dimond-spa/\",\r\n\r\n UIsiteURl: 'http://localhost:4200',\r\n\r\n auth0Domain: 'https://dimond-qa.au.auth0.com',\r\n\r\n auth0Audience : \"https://dimond-spartacus-qa.au.com\",\r\n\r\n auth0Client_id: 'b5Osbq63YfSFd0y4rhgpJWyfI1H2jhnZ',\r\n\r\n auth0Client_secret: 'Ddm_v6eZIBL1sId4Psolg85Fh5bwM4XHowQnSssZWulT02iL0J4BXhx07y2xkXp4',\r\n\r\n logoutAuth0Domain: 'https://dimond-qa.au.auth0.com',\r\n\r\n googleApiKey : 'AIzaSyADAiEVzbZjIauGB1k4H28FxJ56SMoHWEg',\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\r\n","import { environment } from \"../environments/environment\";\r\nexport let GlobalEnvVariable: any = {};\r\nexport class SharedService {\r\n\r\n public sharedVal: any; \r\n getShared() {\r\n return this.sharedVal;\r\n }\r\n setSharedEnvData(env: any) {\r\n this.sharedVal = env;\r\n }\r\n}\r\n\r\nlet shared: any = new SharedService();\r\nconst apiEndpointURL = localStorage.getItem('envUrl');\r\n\r\nexport const FIND_STORE = {\r\n url: apiEndpointURL + 'bpStores?',\r\n};\r\nexport const CHANGE_BRANCH = {\r\n url: apiEndpointURL + 'b2busers/update-branch?branchName=',\r\n};\r\nexport const DIRECTION_URL = {\r\n url: 'https://www.google.com/maps/dir/Current+Location/',\r\n};\r\n\r\nexport const POST_CreateAccountURL = {\r\n url: apiEndpointURL + 'webforms/createAccount',\r\n};\r\n\r\nexport const listOfAccounts = {\r\n url: apiEndpointURL + 'b2busers/listOfAccounts',\r\n};\r\nexport const changeListOfAccounts = {\r\n url: apiEndpointURL + 'b2busers/',\r\n};\r\n\r\nexport const updateListOfAccounts = {\r\n url: apiEndpointURL + 'b2busers/selectedAccount',\r\n};\r\nexport const AUTH0_GET_TOKEN = {\r\n url: environment.auth0Domain + '/oauth/token',\r\n};\r\n\r\nexport const GET_PRODUCT_SEARCH = {\r\n url: apiEndpointURL + 'bpProducts/search?',\r\n};\r\n\r\n// export const GET_GLOBAL_SEARCH = {\r\n// url: apiEndpointURL + 'products/autoSearch/SearchBox',\r\n// };\r\n\r\nexport const categorySearchUrl = {\r\n url: apiEndpointURL + 'bpProducts/search?catCode=',\r\n};\r\n\r\nexport const Logout_Revoke = {\r\n url: environment.occBaseUrl + 'authorizationserver/oauth/revoke',\r\n};\r\n\r\nexport const GET_MYTEAM_LIST_ENDPOINT = {\r\n url: apiEndpointURL + 'users/current/bpOrgCustomers?',\r\n};\r\n\r\nexport const UPDATESTATUS_MYTEAM_LIST_ENDPOINT = {\r\n url: apiEndpointURL + 'users/current/bpOrgCustomers/',\r\n};\r\n\r\nexport const CREAT_MYTEAM_MEMBER_ENDPOINT = {\r\n url: apiEndpointURL + 'users/current/bpOrgCustomers',\r\n};\r\n\r\nexport const UPDATE_MYTEAM_MEMBER_ENDPOINT = {\r\n url: apiEndpointURL + 'users/current/bpOrgCustomers/',\r\n};\r\n\r\nexport const MYTEAM_MEMBER_SORTING_ENDPOINT = {\r\n url: apiEndpointURL + 'users/current/bpOrgCustomers?sort=',\r\n};\r\n\r\nexport const AVAILABLE_ORGUNIT_ENDPOINT = {\r\n url: apiEndpointURL + 'users/current/availableOrgUnitNodes?',\r\n};\r\n\r\nexport const GETALL_ORGUNIT_ENDPOINT = {\r\n url: apiEndpointURL + 'users/current/orgUnitsRootNodeTree?',\r\n};\r\n\r\nexport const GET_ALL_ROLES_ENDPOINT = {\r\n url: apiEndpointURL + 'users/current/getRoles',\r\n};\r\n\r\nexport const GET_PRODUCT_DETAILS = (productCode: any) => {\r\n return { url: apiEndpointURL + 'products/' + productCode + '?fields=FULL' };\r\n};\r\n\r\nexport const GET_RELATED_PRODUCTS = {\r\n url: apiEndpointURL + 'bpProducts/relatedProducts/',\r\n};\r\n\r\nexport const GET_CART_DETAILS = {\r\n url: apiEndpointURL + 'users/current/carts',\r\n};\r\n\r\nexport const ADD_TO_CART = (cartId?: any) => {\r\n return {\r\n url: apiEndpointURL + `orgUsers/current/carts/${cartId}/bpEntries`,\r\n };\r\n};\r\n\r\nexport const Saved_Cart_For_Later = (cartId?: any) => {\r\n return {\r\n url: apiEndpointURL + `users/current/carts/${cartId}/save?`,\r\n };\r\n};\r\n\r\nexport const Cart_Clone_And_Save = (cartId?: any) => {\r\n return {\r\n url: apiEndpointURL + `users/current/carts/${cartId}/clonesavedcart?name=`,\r\n };\r\n};\r\nexport const Saved_Cart_Url = (cartId?: any) => {\r\n return {\r\n url: apiEndpointURL + `users/current/carts/${cartId}`,\r\n };\r\n};\r\n\r\nexport const GET_CART_LIST_ENDPOINT = {\r\n url: apiEndpointURL + 'users/current/carts/',\r\n};\r\n\r\nexport const DELETE_CART_ENTRY_ENDPOINT = {\r\n url: apiEndpointURL + 'users/current/carts/',\r\n};\r\n\r\nexport const UPDATE_CART_ENTRY_ENDPOINT = {\r\n url: apiEndpointURL + 'orgUsers/current/carts/',\r\n};\r\n\r\nexport const CHECKOUT_REVIEW_ORDER_ENDPOINT = {\r\n url: apiEndpointURL + 'checkout/updateAndReview',\r\n};\r\n\r\nexport const GET_ORDER_REVIEW = {\r\n url: apiEndpointURL + 'users/current/carts/',\r\n};\r\n\r\nexport const UPDATE_ORDER_REVIEW = {\r\n url: apiEndpointURL + 'checkout/updateAndReview/',\r\n};\r\n\r\nexport const Validate_Order_Date_time = {\r\n url: apiEndpointURL + 'checkout/validateDeliveryPickUpDate',\r\n};\r\n\r\nexport const GET_Checkout_Details_URL = (cartId?: any) => {\r\n return {\r\n url:\r\n apiEndpointURL +\r\n `checkout/getDeliveryPickupInfo?cartId=${cartId}&fields=deliveryMinLeadTime,pickUpMinLeadTime,message,pointOfService(FULL)`,\r\n };\r\n};\r\nexport const GET_Delivery_Modes_URL = (cartId?: any) => {\r\n return {\r\n url: apiEndpointURL + `users/current/carts/${cartId}/deliverymodes`,\r\n };\r\n};\r\nexport const PLACE_ORDER = {\r\n url: apiEndpointURL + 'orgUsers/current/bpOrders?fields=BASIC&cartId=',\r\n};\r\n\r\nexport const GET_ADDRESS_INFO = {\r\n url: apiEndpointURL + 'checkout/getAddressInfo?fields=FULL',\r\n};\r\n\r\nexport const GET_PRODUCT_CDS_DETAILS = (productCode: any) => {\r\n return {\r\n url:\r\n apiEndpointURL +\r\n 'bpProducts/' +\r\n productCode +\r\n '/cdsDefaultConfigJson/?fields=FULL',\r\n };\r\n};\r\n\r\nexport const GET_FLASHING_CONFIGURATION = (productCode: any) => {\r\n return {\r\n url:\r\n apiEndpointURL +\r\n 'products/' +\r\n productCode +\r\n '/configurator/textfield?fields=FULL',\r\n };\r\n};\r\n\r\nexport const GET_ORDER_DETAIL = {\r\n url: apiEndpointURL + 'orgUsers/current/orgUnits/bporders/',\r\n};\r\n\r\nexport const GET_ORDER_HISTORY_SEARCH_STATUSES = {\r\n url: apiEndpointURL + 'orgUsers/current/bpOrders/search/statuses',\r\n};\r\n\r\nexport const GET_ORDER_HISTORY_SEARCH_RESULTS = {\r\n url: apiEndpointURL + 'orgUsers/current/bpOrders/search',\r\n};\r\n\r\nexport const ORDER_HISTORY_SORTING_ENDPOINT = {\r\n url: apiEndpointURL + 'orgUsers/current/bpOrders/search?sort=',\r\n};\r\n\r\nexport const MYACCOUNT_GET_INVOICE_CREDIT = {\r\n url:\r\n apiEndpointURL +\r\n 'orgUsers/current/account/summery/details/documents?fields=FULL',\r\n};\r\n\r\nexport const INVOICE_CREDIT_SORTING_ENDPOINT = {\r\n url: apiEndpointURL + 'orgUsers/current/account/summery/details/documents?sort=',\r\n};\r\n\r\nexport const GET_INVOICE_CREDIT_STATUSES = {\r\n url: apiEndpointURL + 'orgUsers/current/bpOrders/document/statuses',\r\n};\r\n\r\nexport const GET_INVOICE_CREDIT_SEARCH_RESULTS = {\r\n url: apiEndpointURL + 'orgUsers/current/account/summery/details/documents',\r\n};\r\n\r\nexport const GET_FLASHING_SKU_CODE = {\r\n url: apiEndpointURL + 'bpProducts/skuProduct',\r\n};\r\n\r\nexport const GET_CDS_IMAGE = {\r\n url: 'https://qa.cdsvisual.net/node/fletcher/image',\r\n};","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { listOfAccounts, updateListOfAccounts, changeListOfAccounts } from '../services/endPointURL';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AccountDropdownService {\r\n constructor(public service: HttpClient,) {\r\n\r\n }\r\n\r\n getIsLoggedIn(): any {\r\n const isLogedIn = localStorage.getItem('isLogedIn');\r\n if (!isLogedIn) {\r\n localStorage.setItem('isLogedIn', 'true');\r\n }\r\n return isLogedIn;\r\n }\r\n\r\n getAccountDatawithCartId(cartid: any): Observable<any> { \r\n const accountUrl = listOfAccounts.url + '?cartId='+ cartid + '&isUserLogin=' + !this.getIsLoggedIn();\r\n return this.service.get(accountUrl)\r\n .pipe(\r\n catchError((errorRes:any) => {\r\n return throwError(errorRes);\r\n })\r\n )\r\n }\r\n getAccountData(): Observable<any> { \r\n const accountUrl = listOfAccounts.url + '?isUserLogin=' + !this.getIsLoggedIn();\r\n return this.service.get(accountUrl)\r\n .pipe(\r\n catchError((errorRes:any) => {\r\n return throwError(errorRes);\r\n })\r\n )\r\n }\r\n updateSelectedAccountWithCart(cartId:any): Observable<any> {\r\n const url = updateListOfAccounts.url + '?cartId=' + cartId;\r\n return this.service.get(url)\r\n .pipe(\r\n catchError((errorRes:any) => {\r\n return throwError(errorRes);\r\n })\r\n )\r\n }\r\n updateSelectedUser(data:any): Observable<any> {\r\n const url = changeListOfAccounts.url + data.uid +'?fields=DEFAULT';\r\n return this.service.post(url,data.uid)\r\n .pipe(\r\n catchError((errorRes:any) => {\r\n return throwError(errorRes);\r\n })\r\n )\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AuthService } from '@spartacus/core';\r\nimport { UserAccountFacade } from '@spartacus/user/account/root';\r\nimport { BehaviorSubject, of } from \"rxjs\";\r\nimport { switchMap } from \"rxjs/operators\";\r\nimport { GlobalEnvVariable, SharedService } from './endPointURL';\r\nlet sharedEnv: any;\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserAccountDetailServiceService {\r\n public envData = new BehaviorSubject<any>({});\r\n constructor(private auth: AuthService, private userAccount: UserAccountFacade, @Inject('env') public env: any) {\r\n this.envData.next(localStorage.getItem('UIsiteURl'));\r\n let shared = new SharedService();\r\n shared.setSharedEnvData(env);\r\n }\r\n getSharedEnv() {\r\n return sharedEnv;\r\n }\r\n\r\n public getUserAccount() {\r\n return this.auth.isUserLoggedIn().pipe(\r\n switchMap((isUserLoggedIn) => {\r\n if (isUserLoggedIn) {\r\n return this.userAccount.get();\r\n } else {\r\n return of(undefined);\r\n }\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { CHANGE_BRANCH, FIND_STORE } from \"./endPointURL\";\r\nimport { catchError } from 'rxjs/operators';\r\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FindStoreService {\r\n private homeBranchName = new BehaviorSubject<any>('');\r\n homeBranch = this.homeBranchName.asObservable();\r\n\r\n homeBranchApi(newUser: any) {\r\n this.homeBranchName.next(newUser);\r\n }\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n // public findStoreAPICall(): Observable<any> {\r\n // const locString: any = localStorage.getItem('spartacus⚿⚿auth');\r\n // const token = JSON.parse(locString)?.token.access_token;\r\n // let url =FIND_STORE.url + token;\r\n // return this.http.get(url)\r\n // .pipe(\r\n // catchError(errorRes => {\r\n // return throwError(errorRes);\r\n // })\r\n // );\r\n // }\r\n\r\n public changeBranch(data: any): Observable<any> {\r\n let url = CHANGE_BRANCH.url + data;\r\n return this.http.post(url, data, {\r\n headers: { 'Content-Type': 'application/json' },\r\n })\r\n .pipe(\r\n catchError((errorRes) => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n\r\n public getAllStores(latAndlong?: any): Observable<any> {\r\n const locString: any = localStorage.getItem('spartacus⚿⚿auth');\r\n const token = JSON.parse(locString)?.token.access_token;\r\n let url;\r\n if (latAndlong.lat != undefined && latAndlong.long != undefined) {\r\n url = FIND_STORE.url + '&latitude=' + latAndlong.lat + '&longitude=' + latAndlong.long + '&access_token=' + token;\r\n }\r\n else {\r\n url = FIND_STORE.url + '&access_token=' + token;\r\n }\r\n return this.http.get(url)\r\n .pipe(\r\n catchError(errorRes => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { GlobalMessageService, GlobalMessageType } from '@spartacus/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { FindStoreService } from '../services/find-store.service';\r\nimport { UserAccountDetailServiceService } from '../services/user-account-detail-service.service';\r\nimport { AccountDropdownService } from './account-dropdown.service';\r\n\r\n@Component({\r\n selector: 'app-account-dropdown',\r\n templateUrl: './account-dropdown.component.html',\r\n styleUrls: ['./account-dropdown.component.scss']\r\n})\r\nexport class AccountDropdownComponent implements OnInit {\r\n\r\n public accounts: any = [];\r\n selectedUser: any;\r\n showWaitCursor = new BehaviorSubject<boolean>(false);\r\n selecteduserData: any;\r\n isAccountChanged: boolean = false;\r\n\r\n constructor(\r\n public service: AccountDropdownService,\r\n private fiUserAccountDetailsService: UserAccountDetailServiceService,\r\n private findStoreService: FindStoreService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.selecteduserData = JSON.parse(localStorage.getItem('selectedAccout') || '{}');\r\n this.fiUserAccountDetailsService.getUserAccount().subscribe((user: any) => {\r\n if (user) {\r\n const username = user.uid?.toString();\r\n const cartObj: any = localStorage.getItem('spartacus⚿dimond-spa⚿cart');\r\n const cartId = JSON.parse(cartObj)?.active;\r\n if (cartId) {\r\n this.service.getAccountDatawithCartId(cartId).subscribe((data: any) => {\r\n if (data) {\r\n this.showWaitCursor.next(false);\r\n this.accounts = data;\r\n this.getAccountsData();\r\n }\r\n })\r\n } else {\r\n this.service.getAccountData().subscribe((data: any) => {\r\n if (data) {\r\n this.showWaitCursor.next(false);\r\n this.accounts = data;\r\n this.getAccountsData();\r\n }\r\n })\r\n }\r\n }\r\n })\r\n }\r\n getAccountsData() {\r\n localStorage.setItem('AccountData', JSON.stringify(this.accounts));\r\n this.accounts.forEach((element: any) => {\r\n if (element.isDefaultAccount == true) {\r\n const selectedAccount: any = {\r\n uid: element.uid\r\n }\r\n if (localStorage.getItem('isACcountSelected') != 'true') {\r\n localStorage.setItem('selectedAccout', JSON.stringify(selectedAccount));\r\n }\r\n this.findStoreService.homeBranchApi(element.branchPOS);\r\n if (localStorage.getItem('branchDetails') === null) {\r\n localStorage.setItem('branchDetails', JSON.stringify(element.branchPOS));\r\n }\r\n }\r\n });\r\n if (this.selecteduserData && this.selecteduserData.name) {\r\n this.selecteduserData = JSON.parse(localStorage.getItem('selectedAccout') || '{}');\r\n this.accounts.forEach((element: any) => {\r\n if (element.uid == this.selecteduserData.uid) {\r\n this.selecteduserData = element;\r\n return;\r\n } else {\r\n if (element.children && element.children?.length > 0) {\r\n element.children.forEach((child: any) => {\r\n if (child.uid == this.selecteduserData.uid)\r\n this.selecteduserData = child;\r\n return;\r\n });\r\n }\r\n }\r\n });\r\n } else {\r\n this.selectedUser = this.accounts.filter((ele: any) => {\r\n if (ele.isDefaultAccount === true) {\r\n return ele;\r\n }\r\n })\r\n }\r\n }\r\n getAccountName(data: any) {\r\n const selectedAccount: any = {\r\n uid: data.uid\r\n }\r\n this.selecteduserData = data;\r\n this.isAccountChanged = true;\r\n localStorage.setItem('selectedAccout', JSON.stringify(selectedAccount));\r\n localStorage.removeItem('branchDetails');\r\n localStorage.setItem('branchDetails', JSON.stringify(data.branchPOS));\r\n localStorage.setItem('isACcountSelected', 'true');\r\n // we will enable if cart id need to send it to backend\r\n // const cartObj: any = localStorage.getItem('spartacus⚿dimond-spa⚿cart');\r\n // const cartId = JSON.parse(cartObj)?.active;\r\n // if(cartId){\r\n // this.service.updateSelectedAccountWithCart(cartId).subscribe((data: any) => {\r\n // let abc = data.branchPOS;\r\n // this.findStoreService.homeBranchApi(abc);\r\n // })\r\n // }else{\r\n this.service.updateSelectedUser(data).subscribe((data) => {\r\n let abc = data.branchPOS;\r\n this.findStoreService.homeBranchApi(abc);\r\n\r\n window.location.reload();\r\n })\r\n //}\r\n\r\n }\r\n\r\n}\r\n","<div class=\"loading \" *ngIf=\"showWaitCursor | async \">Loading&#8230;</div>\r\n<div class=\"row hello\">\r\n <div class=\"col-lg-12 col-md-12\">\r\n <div class=\"accountDropdown\">\r\n <div class=\"dropdown input-group\">\r\n <div class=\"input-group-prepend input-icon\">\r\n <img src=\"../../../assets/images/ionic-ios-users-outline.svg\" class=\"w-20\">\r\n </div>\r\n <button class=\"btn custom-input position-relative\" type=\"button\" id=\"branchAccountDropdown\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\r\n\t\t\t\t\t<span *ngIf=\"selectedUser && !selecteduserData?.name\" class=\"accountName\"> {{selectedUser[0]?.name}} </span>\r\n\t\t\t\t\t<span *ngIf=\"selecteduserData && selecteduserData?.name\" class=\"accountName\">{{selecteduserData?.name}}</span>\r\n\t\t\t\t\t<i class=\"fas fa-chevron-down custom-arrow\"></i>\r\n\t\t\t\t</button>\r\n <div class=\"dropdown-menu\" aria-labelledby=\"dropdownMenuButton\">\r\n <div class=\"menu\">\r\n <div *ngFor=\"let data of accounts\" class=\"parent-dropdown-item\">\r\n <div (click)=\"getAccountName(data)\" [ngClass]=\"{'highlight':data.name == selecteduserData?.name || data.isDefaultAccount && !isAccountChanged}\" class=\"labelOneChild position-relative\">\r\n <span class=\"accountdata\"> {{data.name}} </span>\r\n <span class=\"accountIcon\"> \r\n\t\t\t\t\t\t\t\t<img *ngIf=\"data.isDefaultAccount && !isAccountChanged\" src=\"../../../../assets/images/Selected icon.svg\" class=\"selectIcon\">\r\n\t\t\t\t\t\t\t\t<img *ngIf=\"data.name == selecteduserData?.name\" src=\"../../../../assets/images/Selected icon.svg\" class=\"selectIcon\">\r\n\t\t\t\t\t\t\t</span>\r\n </div>\r\n <div class=\"child-menu\" *ngIf=\"data.children && data.children?.length > 0\">\r\n <div *ngFor=\"let child of data.children\" class=\"child-dropdown-item\">\r\n <div (click)=\"getAccountName(child)\" [ngClass]=\"{'highlight':child.name == selecteduserData?.name}\" class=\"labelTwoChild position-relative\">\r\n <span class=\"accountdata\">{{child.name}} </span>\r\n <span class=\"accountIcon\"><img *ngIf=\"child.name == selecteduserData?.name\" src=\"../../../../assets/images/Selected icon.svg\" class=\"selectIcon\"></span>\r\n </div>\r\n <div *ngIf=\"child.children && child.children?.length > 0\" class=\"subchild-menu\">\r\n <div *ngFor=\"let subChild of child.children\" class=\"subdropdown-item\">\r\n <div (click)=\"getAccountName(subChild)\" [ngClass]=\"{'highlight':subChild.name == selecteduserData?.name}\" class=\"labelThreeChild position-relative\">\r\n <span class=\"accountdata\">{{subChild.name}} </span>\r\n <span class=\"accountIcon\"><img *ngIf=\"subChild.name == selecteduserData?.name\" src=\"../../../../assets/images/Selected icon.svg\" class=\"selectIcon\"></span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <!-- <div class=\"col-lg-7 col-md-12\">\r\n <app-find-store></app-find-store>\r\n </div> -->\r\n</div>","\r\nexport const generalConstants = {\r\n //general constants goes here \r\n \r\n\r\n}\r\n\r\nexport const headerLabels = {\r\n selectJobAccText: 'Select Job Account'\r\n}\r\n\r\nexport class newsAndUpdates {\r\n readMore = 'Read More';\r\n newAndUpdates = 'News & Updates'\r\n moreViewsAndUpdates = 'MORE VIEWS & UPDATES'\r\n moreViews = 'MORE VIEWS';\r\n updates = ' & UPDATES'\r\n}\r\n\r\nexport class storeLocations {\r\n homeBranch = 'Home Branch';\r\n allTab = 'All';\r\n northIslandTab = 'North Island';\r\n southIslandTab = 'South Island';\r\n getDirectionBtn = 'GET DIRECTIONS';\r\n selectBtn = 'SELECT';\r\n}\r\nexport const createAccountLabelConstants ={\r\n emailLabel:'Email*',\r\n nameLabel:'Name*',\r\n mobileNoLabel:'Mobile Phone',\r\n dimondAccountLabel:'Do You Have a Dimond Account?*',\r\n accountNumberLabel:'Account Number*',\r\n companyNameLabel:'Company Name*',\r\n additionalCommentsLabel:'Additional Comments',\r\n companyAddressLabel:'Company Address*',\r\n suburbLabel:'Suburb*',\r\n cityLabel:'City*',\r\n postcodeLabel:'Postcode*',\r\n companyInfoLabel:'Please provide some information about your company.',\r\n submitBtnLabel:'Submit'\r\n}\r\nexport const createAccountFormConstants = {\r\n requiredField:'Required',\r\n emailIsRequired: 'E-Mail is Required',\r\n firstNameRequired: 'Name is Required',\r\n phoneNumberNumeric: 'Invalid phone number. Min. 6 digits. Special characters allowed are “+, -, (, )”',\r\n emailValidationMessage: 'Sorry, the email you entered is not valid',\r\n dimondAccountValidationMessage:'Please Select',\r\n accountNumberValidationMessage:'Account Number is not valid',\r\n companyNameValidationMessage:'Company Name should be at least 3 characters',\r\n companyAddressValidationMessage:'Company Address should be at least 5 characters',\r\n cityValidationMessage: 'City should be at least 3 characters',\r\n suburbValidationMessage:'Suburb should be at least 3 characters',\r\n postalCodeValidationMessage: 'Please enter valid Postal Code',\r\n companyNameRequired: 'Company Name is Required',\r\n accountNumberRequired: 'Account Number is Required',\r\n \r\n}\r\n","import { ChangeDetectorRef, Component, OnInit } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { storeLocations } from '../constants/general';\r\nimport { DIRECTION_URL } from '../services/endPointURL';\r\nimport { FindStoreService } from '../services/find-store.service';\r\n\r\n@Component({\r\n selector: 'app-find-store',\r\n templateUrl: './find-store.component.html',\r\n styleUrls: ['./find-store.component.scss']\r\n})\r\nexport class FindStoreComponent implements OnInit {\r\n\r\n stores: any;\r\n latitude?: number;\r\n longitude?: number;\r\n storeApiSubscried: boolean = false;\r\n zoom?: number;\r\n isDefaultPOS: any;\r\n homeBranchAddress: any = {};\r\n public accountLists: any = [];\r\n branchName: string = '';\r\n homeBranchData: any;\r\n branchRes = new BehaviorSubject<any>({});\r\n showWaitCursor = new BehaviorSubject<boolean>(false);\r\n arrayNorthIsland: any = [];\r\n arraySouthIsland: any = [];\r\n\r\n public locationId: any = document.getElementById(\"demo\");\r\n\r\n locationModalConstantsData =new storeLocations();\r\n constructor(private findStoreService: FindStoreService,\r\n public cd: ChangeDetectorRef,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.findStoreService.homeBranch.subscribe((data: any) => {\r\n setTimeout(() => {\r\n if (data) {\r\n if (localStorage.getItem('branchDetails')) {\r\n this.homeBranchData = localStorage.getItem('branchDetails');\r\n this.branchName = JSON.parse(this.homeBranchData)?.displayName; \r\n this.cd.markForCheck();\r\n }\r\n else {\r\n this.branchName = data?.displayName;\r\n this.cd.markForCheck();\r\n }\r\n }\r\n }, 100);\r\n })\r\n }\r\n\r\n getStores() {\r\n const latAndlong = {\r\n lat: this.latitude,\r\n long: this.longitude\r\n }\r\n this.findStoreService.getAllStores(latAndlong).subscribe((data: any) => {\r\n this.showWaitCursor.next(false);\r\n this.stores = data.stores;\r\n this.storeApiSubscried = true;\r\n this.isDefaultPOS = data.stores.forEach((element: any) => {\r\n if (element && element.isDefaultPOS == true) {\r\n this.homeBranchAddress = element;\r\n }\r\n });\r\n this.arrayNorthIsland = this.stores.filter((element: any) => element.islandName == 'North Island');\r\n this.arraySouthIsland = this.stores.filter((element: any) => element.islandName == 'South Island');\r\n }\r\n )\r\n }\r\n\r\n openMap(lat: number, long: number) {\r\n window.open(DIRECTION_URL.url + lat + ',' + long, '_blank');\r\n }\r\n\r\n onBranchChange(data: any) {\r\n this.findStoreService.changeBranch(data.name).subscribe(\r\n (_result) => {\r\n localStorage.setItem('branchDetails', JSON.stringify(data));\r\n window.location.reload();\r\n },\r\n (_error) => {\r\n window.location.reload();\r\n })\r\n }\r\n showPosition = (position: any) => {\r\n this.cd.markForCheck();\r\n this.latitude = position.coords.latitude;\r\n this.longitude = position.coords.longitude;\r\n }\r\n\r\n getLocation() {\r\n if (navigator.geolocation) {\r\n const abc = navigator.geolocation.getCurrentPosition(this.showPosition);\r\n } else {\r\n this.locationId.innerHTML = \"Geolocation is not supported by this browser.\";\r\n }\r\n }\r\n\r\n}\r\n","<div class=\"row\">\r\n <div class=\"col-lg-12 col-sm-12\">\r\n <div class=\"input-group storeFinder\">\r\n <div class=\"input-group-prepend input-icon po\">\r\n <img src=\"../../../assets/images/ionic-ios-location-outline.svg\" class=\"w-20\">\r\n </div>\r\n <button class=\"btn custom-input position-relative text-left\" type=\"button\" data-toggle=\"modal\" data-target=\"#storeFinderModal\" (click)=\"getStores()\">\r\n {{branchName}}\t\t\t\r\n </button>\r\n <p id=\"demo\"></p>\r\n <span class=\"placeholder-icon\" (click)=\"getLocation()\">\r\n <img src=\"../../../assets/images/ionic-ios-my-location.svg\" class=\"w-20\">\r\n </span>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"modal fade modal-right\" id=\"storeFinderModal\" role=\"dialog\" aria-labelledby=\"storeFinderLabel\" aria-hidden=\"true\">\r\n <div class=\"loading \" *ngIf=\"showWaitCursor | async \">Loading&#8230;</div>\r\n <div class=\"modal-dialog\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\" container\">\r\n <div class=\"modal-header\">\r\n <h5 class=\"modal-title\">{{locationModalConstantsData.homeBranch}}</h5>\r\n <i class=\"icon-close branch-pop-close\" data-dismiss=\"modal\" aria-label=\"Close\"></i>\r\n </div>\r\n <div class=\"modal-body px-2\">\r\n <div class=\"selected-location\">\r\n <address class=\"mb-0\">\r\n <h6>{{homeBranchAddress?.displayName}} <span>({{homeBranchAddress?.businessCategory}})</span></h6>\r\n <p class=\"mb-2\">\r\n {{homeBranchAddress?.address?.formattedAddress}}<br>\r\n <span class=\"homeTxtLabel\">Email : </span><a href=\"mailto:{{homeBranchAddress?.address?.email}}\">{{homeBranchAddress?.address?.email}}</a><br>\r\n <span class=\"homeTxtLabel\"> Phone : </span><a href=\"tel:{{homeBranchAddress?.address?.phone}}\">{{homeBranchAddress?.address?.phone}}</a>\r\n </p>\r\n <span class=\"homeDirection\">\r\n <a href=\"javascript:void(0)\" (click)=\"openMap(homeBranchAddress?.geoPoint.latitude, homeBranchAddress?.geoPoint.longitude)\">{{locationModalConstantsData.getDirectionBtn}}</a>\r\n </span>\r\n </address>\r\n </div>\r\n <div class=\"nearest-branch\">\r\n <h5>Branches</h5>\r\n <ul class=\"nav nav-tabs\" id=\"myTab\" role=\"tablist\">\r\n <li class=\"nav-item\">\r\n <a class=\"nav-link active d-inline-block pl-1\" id=\"all-tab\" data-toggle=\"tab\" href=\"#all\" role=\"tab\" aria-controls=\"all\" aria-selected=\"true\">{{locationModalConstantsData.allTab}}</a>\r\n </li>\r\n <li class=\"nav-item\">\r\n <a class=\"nav-link d-inline-block pl-1\" id=\"north-tab\" data-toggle=\"tab\" href=\"#north\" role=\"tab\" aria-controls=\"north\" aria-selected=\"false\">{{locationModalConstantsData.northIslandTab}}</a>\r\n </li>\r\n <li class=\"nav-item \">\r\n <a class=\"nav-link d-inline-block pl-1\" id=\"south-tab\" data-toggle=\"tab\" href=\"#south\" role=\"tab\" aria-controls=\"south\" aria-selected=\"false\">{{locationModalConstantsData.southIslandTab}}</a>\r\n </li>\r\n </ul>\r\n <div class=\"tab-content mt-2\" id=\"myTabContent\">\r\n <div class=\"tab-pane fade show active\" id=\"all\" role=\"tabpanel\" aria-labelledby=\"all-tab\">\r\n <ng-container *ngIf=\"stores && stores?.length; else storesAvalable\">\r\n <address *ngFor=\"let store of stores\" class=\"mb-0\">\r\n <h5>{{store?.displayName}} <span>({{store?.businessCategory}})</span></h5>\r\n <p class=\"mb-2\">{{store?.address?.formattedAddress}}<br>\r\n <span class=\"homeTxtLabel\">Email : </span><a href=\"mailto:{{store?.address?.email}}\">{{store?.address?.email}}</a><br>\r\n <span class=\"homeTxtLabel\">Phone : </span><a href=\"tel:{{store?.address?.phone}}\">{{store?.address?.phone}}</a></p>\r\n <div class=\"pt-1 d-flex align-items-center justify-content-between direction\">\r\n <a href=\"javascript:void(0)\" (click)=\"openMap(store?.geoPoint.latitude, store?.geoPoint.longitude)\">{{locationModalConstantsData.getDirectionBtn}}</a>\r\n <button class=\"select-btn\" (click)=\"onBranchChange(store)\">{{locationModalConstantsData.selectBtn}}</button>\r\n </div>\r\n </address>\r\n </ng-container>\r\n <ng-template #storesAvalable>\r\n <div class=\"noDataAvailableLabel text-center pt-4\">\r\n <span class=\"noData\">No branch is available</span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div class=\"tab-pane fade\" id=\"north\" role=\"tabpanel\" aria-labelledby=\"north-tab\">\r\n <ng-container *ngIf=\"arrayNorthIsland && arrayNorthIsland?.length>0; else northIsland\">\r\n <address *ngFor=\"let store of arrayNorthIsland\" class=\"mb-0\">\r\n <h5>{{store?.displayName}} <span>({{store?.businessCategory}})</span></h5>\r\n <p class=\"mb-2\">{{store?.address?.formattedAddress}}<br>\r\n <span class=\"homeTxtLabel\">Email : </span><a href=\"mailto:{{store?.address?.email}}\">{{store?.address?.email}}</a><br>\r\n <span class=\"homeTxtLabel\">Phone : </span><a href=\"tel:{{store?.address?.phone}}\">{{store?.address?.phone}}</a></p>\r\n <div class=\"pt-1 d-flex align-items-center justify-content-between direction\">\r\n <a href=\"javascript:void(0)\" (click)=\"openMap(store?.geoPoint.latitude, store?.geoPoint.longitude)\">{{locationModalConstantsData.getDirectionBtn}}</a>\r\n <button class=\"select-btn\" (click)=\"onBranchChange(store)\">{{locationModalConstantsData.selectBtn}}</button>\r\n </div>\r\n </address>\r\n </ng-container>\r\n <ng-template #northIsland>\r\n <div class=\"noDataAvailableLabel text-center pt-4\">\r\n <span class=\"noData\">No branch is available</span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div class=\"tab-pane fade\" id=\"south\" role=\"tabpanel\" aria-labelledby=\"south-tab\">\r\n <ng-container *ngIf=\"arraySouthIsland && arraySouthIsland?.length>0; else southIsland\">\r\n <address *ngFor=\"let store of arraySouthIsland\" class=\"mb-0\">\r\n <h5>{{store?.displayName}} <span>({{store?.businessCategory}})</span></h5>\r\n <p class=\"mb-2\">{{store?.address?.formattedAddress}}<br>\r\n <span class=\"homeTxtLabel\">Email : </span><a href=\"mailto:{{store?.address?.email}}\">{{store?.address?.email}}</a><br>\r\n <span class=\"homeTxtLabel\">Phone : </span><a href=\"tel:{{store?.address?.phone}}\">{{store?.address?.phone}}</a></p>\r\n <div class=\"pt-1 d-flex align-items-center justify-content-between direction\">\r\n <a href=\"javascript:void(0)\" (click)=\"openMap(store?.geoPoint.latitude, store?.geoPoint.longitude)\">{{locationModalConstantsData.getDirectionBtn}}</a>\r\n <button class=\"select-btn\" (click)=\"onBranchChange(store)\">{{locationModalConstantsData.selectBtn}}</button>\r\n </div>\r\n </address>\r\n </ng-container>\r\n <ng-template #southIsland>\r\n <div class=\"noDataAvailableLabel text-center pt-4\">\r\n <span class=\"noData\">No branch is available</span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FindStoreComponent } from './find-store.component';\r\nimport { AgmCoreModule } from '@agm/core';\r\nimport { CmsConfig, ConfigModule } from '@spartacus/core';\r\n\r\nlet sharedData: any = {};\r\nconst listOfModules: any = [];\r\n@NgModule({\r\n declarations: [\r\n FindStoreComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n ConfigModule.withConfig({\r\n cmsComponents: {\r\n BranchDropdownComponent: {\r\n component: FindStoreComponent,\r\n },\r\n },\r\n } as CmsConfig),\r\n listOfModules\r\n ],\r\n exports: [FindStoreComponent]\r\n})\r\nexport class FindStoreModule { \r\n constructor(@Optional() @SkipSelf() parentModule?: FindStoreModule) {\r\n if (parentModule) {\r\n throw new Error(\r\n 'TeamModule is already loaded. Import it in the AppModule only');\r\n }\r\n }\r\n\r\n public static forRoot(environment: any): ModuleWithProviders<FindStoreModule> {\r\n localStorage.setItem('envUrl', environment.occBaseUrl + environment.baseSiteId);\r\n sessionStorage.setItem('env', JSON.stringify(environment) );\r\n sharedData = environment;\r\n listOfModules.push(AgmCoreModule.forRoot({\r\n apiKey: environment.googleApiKey,\r\n libraries: ['places']\r\n }))\r\n return {\r\n ngModule: FindStoreModule,\r\n };\r\n\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AccountDropdownComponent } from './account-dropdown.component';\r\nimport { CmsConfig, ConfigModule, UrlModule } from '@spartacus/core';\r\nimport { FindStoreModule } from '../find-store/find-store.module';\r\nimport { AccountDropdownService } from './account-dropdown.service';\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n AccountDropdownComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n UrlModule,\r\n FindStoreModule,\r\n ConfigModule.withConfig({\r\n cmsComponents: {\r\n AccountDropdownComponent: {\r\n component: AccountDropdownComponent,\r\n },\r\n },\r\n } as CmsConfig)\r\n ],\r\n providers: [\r\n AccountDropdownService\r\n ],\r\n exports:[\r\n AccountDropdownComponent\r\n ]\r\n})\r\nexport class AccountDropdownModule { }\r\n","import { ChangeDetectorRef, Component, OnInit } from '@angular/core';\r\nimport { FindStoreService } from '../services/find-store.service';\r\n\r\n@Component({\r\n selector: 'app-contact-us',\r\n templateUrl: './contact-us.component.html',\r\n styleUrls: ['./contact-us.component.scss']\r\n})\r\nexport class ContactUsComponent implements OnInit {\r\n\r\n branchPhoneno?: number;\r\n homeBranchData: any;\r\n constructor(private findStoreService: FindStoreService, public cd: ChangeDetectorRef) { }\r\n\r\n ngOnInit(): void {\r\n \r\n this.findStoreService.homeBranch.subscribe((data: any) => {\r\n setTimeout(() => {\r\n if (data) {\r\n if (localStorage.getItem('branchDetails')) {\r\n this.homeBranchData = localStorage.getItem('branchDetails'); \r\n this.branchPhoneno = JSON.parse(this.homeBranchData)?.address?.phone;\r\n this.cd.markForCheck();\r\n }\r\n else { \r\n this.branchPhoneno = data?.address?.phone;\r\n this.cd.markForCheck();\r\n }\r\n }\r\n }, 100);\r\n })\r\n }\r\n\r\n}\r\n","<div>\r\n <div class=\"contactNumber\">\r\n <img class=\"customer-service-icon mr-2\" src=\"../../../assets/images/ionic-ios-feather-phone.svg\" alt=\"Phone Icon\">\r\n <span class=\"contactNum\"><a href=\"tel:{{branchPhoneno}}\">{{branchPhoneno}}</a></span>\r\n </div>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ContactUsComponent } from './contact-us.component';\r\nimport { CmsConfig, ConfigModule } from '@spartacus/core';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n ContactUsComponent\r\n ],\r\n imports: [\r\n\r\n CommonModule,\r\n ConfigModule.withConfig({\r\n cmsComponents: {\r\n ContactUsComponent: {\r\n component: ContactUsComponent,\r\n },\r\n },\r\n } as CmsConfig),\r\n ], exports: [\r\n ContactUsComponent\r\n ]\r\n})\r\nexport class ContactUsModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { CmsService } from '@spartacus/core';\r\n\r\n@Component({\r\n selector: 'app-custom-header-logo',\r\n templateUrl: './custom-header-logo.component.html',\r\n styleUrls: ['./custom-header-logo.component.scss']\r\n})\r\nexport class CustomHeaderLogoComponent implements OnInit {\r\n logoData: any = {};\r\n constructor(private cmsService: CmsService) { }\r\n\r\n ngOnInit(): void {\r\n this.cmsService.getComponentData(\"SiteLogoComponent\").subscribe((data: any) => {\r\n this.logoData = data;\r\n })\r\n }\r\n\r\n\r\n}\r\n","<a href=\"{{logoData?.urlLink}}\" class=\"topHeaderLogo\" [target]=\"logoData?.target == 'true' ? '_blank' : '' \">\r\n <cx-media [container]=\"logoData?.media\"></cx-media>\r\n</a>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CustomHeaderLogoComponent } from './custom-header-logo.component';\r\nimport { IconModule, MediaModule } from '@spartacus/storefront';\r\nimport { CmsConfig, ConfigModule, UrlModule } from '@spartacus/core';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n CustomHeaderLogoComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n MediaModule,\r\n IconModule,\r\n UrlModule,\r\n RouterModule,\r\n \r\n ConfigModule.withConfig({\r\n cmsComponents: {\r\n SiteLogoComponent: {\r\n component: CustomHeaderLogoComponent\r\n }\r\n }\r\n } as CmsConfig)\r\n ],\r\n exports:[CustomHeaderLogoComponent]\r\n})\r\nexport class CustomHeaderLogoModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { CmsService } from '@spartacus/core';\r\n\r\n@Component({\r\n selector: 'lib-custom-header-paragraph',\r\n templateUrl: './custom-header-paragraph.component.html',\r\n styleUrls: ['./custom-header-paragraph.component.css']\r\n})\r\nexport class CustomHeaderParagraphComponent implements OnInit {\r\n paragraphData: any;\r\n constructor(private cmsService: CmsService) { }\r\n\r\n ngOnInit(): void {\r\n this.cmsService.getComponentData(\"NeedAssistantParagraphComponent\").subscribe((data: any) => {\r\n this.paragraphData = data;\r\n })\r\n }\r\n\r\n}\r\n","<p class=\"header-paragraph\"> {{paragraphData}} </p>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CustomHeaderParagraphComponent } from './custom-header-paragraph.component';\r\nimport { RouterModule } from '@angular/router';\r\nimport { UrlModule, ConfigModule, CmsConfig } from '@spartacus/core';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n CustomHeaderParagraphComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n UrlModule,\r\n RouterModule,\r\n ConfigModule.withConfig({\r\n cmsComponents: {\r\n NeedAssistantParagraphComponent: {\r\n component: CustomHeaderParagraphComponent\r\n }\r\n }\r\n } as CmsConfig)\r\n ], exports: [\r\n \r\n CustomHeaderParagraphComponent\r\n ]\r\n})\r\nexport class CustomHeaderParagraphModule { }\r\n","export class CommonUtils {\r\n public static isMobile(): boolean {\r\n if (window.innerWidth < 768) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n public static isTablet(): boolean {\r\n if (window.innerWidth>= 991) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n public static isDesktop(): boolean {\r\n if (window.innerWidth>991) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n}","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators'; \r\nimport { Logout_Revoke } from './endPointURL';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LogoutService {\r\n\r\n constructor(private http: HttpClient) {\r\n\r\n\r\n }\r\n public logoutRevoke() {\r\n let data: Observable<any> = new Observable<any>();\r\n const token: any = localStorage.getItem('spartacus⚿⚿auth');\r\n let auth0AccessToken = JSON.parse(token);\r\n let formData = {\r\n tokenVal: 'client_id=' +\r\n 'FB_OauthClient' +\r\n '&client_secret=' +\r\n 'secret' +\r\n '&token=' +\r\n auth0AccessToken.token.access_token +\r\n '&token_type_hint=' +\r\n 'access_token'\r\n }\r\n let headers = new HttpHeaders({\r\n 'Content-Type': 'application/x-www-form-urlencoded',\r\n 'Authorization': 'Bearer ' + auth0AccessToken.token.access_token\r\n });\r\n let logout_URL = Logout_Revoke.url;\r\n return this.http.post(logout_URL, formData.tokenVal, { headers: headers })\r\n .pipe(\r\n catchError(errorRes => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n logout() {\r\n let headers = {}\r\n this.http.get<any>('https://fi-dev.au.auth0.com/v2/logout?client_id=5P9KyuxJHI0vTqCjKdRs3QuWsN4N8XAq', { headers }).subscribe(data => {\r\n\r\n })\r\n }\r\n}\r\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { SafeResourceUrl, DomSanitizer } from '@angular/platform-browser';\r\nimport { AuthService } from '@auth0/auth0-angular';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { User } from '@spartacus/core';\r\nimport { Observable } from 'rxjs';\r\nimport { LogoutService } from '../services/logout.service';\r\nimport { UserAccountDetailServiceService } from '../services/user-account-detail-service.service';\r\nimport { CommonUtils } from '../utils';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-custom-user-account',\r\n templateUrl: './custom-user-account.component.html',\r\n styleUrls: ['./custom-user-account.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class CustomUserAccountComponent implements OnInit {\r\n\r\n logoutURL = \"/logout\";\r\n urlSafe: SafeResourceUrl = '';\r\n modalRef: any;\r\n emailId: string = '';\r\n user$: Observable<User | undefined> = new Observable;\r\n iframeRef: any;\r\n isMobile = false;\r\n isTablet = false;\r\n isDesktop = true;\r\n firstName: string = '';\r\n fullName: string = '';\r\n UIsiteURl: string = '';\r\n constructor(\r\n private fiUserAccountDetailsService: UserAccountDetailServiceService,\r\n private auth: AuthService,\r\n private modalService: NgbModal,\r\n private logoutService: LogoutService,\r\n public sanitizer: DomSanitizer\r\n\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.fiUserAccountDetailsService.envData.subscribe((data => {\r\n if (data) {\r\n this.UIsiteURl = data;\r\n }\r\n }))\r\n this.user$ = this.fiUserAccountDetailsService.getUserAccount();\r\n this.urlSafe = this.sanitizer.bypassSecurityTrustResourceUrl(this.logoutURL);\r\n this.user$.subscribe((data: any) => {\r\n this.firstName = data?.firstName;\r\n this.fullName = data?.firstName;\r\n if (this.firstName?.length > 7) {\r\n this.firstName = this.firstName.slice(0, 7) + '...';\r\n }\r\n })\r\n this.onPageRefresh();\r\n }\r\n\r\n logout(content: any) {\r\n this.auth.logout({ returnTo: this.UIsiteURl + '/' });\r\n localStorage.clear();\r\n // this.fiUserAccountDetailsService.getUserAccount().subscribe((data: any) => {\r\n // if (data)\r\n // this.emailId = data.uid;\r\n // })\r\n\r\n // this.logoutService.logoutRevoke().subscribe(() => {\r\n // // this.auth.logout({ returnTo: environment.UIsiteURl + '/login' });\r\n // this.auth.logout({ returnTo: environment.UIsiteURl + '/' });\r\n // sessionStorage.clear();\r\n // localStorage.clear();\r\n\r\n // })\r\n }\r\n onResize(event: any) {\r\n event.target.innerWidth;\r\n if (event.target.innerWidth < 768) {\r\n this.isMobile = true;\r\n this.isDesktop = false;\r\n }\r\n else if (event.target.innerWidth< 992) {\r\n this.isTablet = true;\r\n this.isDesktop = false;\r\n }\r\n else {\r\n this.isDesktop = true;\r\n }\r\n }\r\n\r\n onPageRefresh() {\r\n this.isMobile = CommonUtils.isMobile();\r\n this.isTablet = CommonUtils.isTablet();\r\n this.isDesktop = CommonUtils.isDesktop();\r\n }\r\n}\r\n","<div class=\"logOutContainer d-flex align-items-center justify-content-center align-middle\" (window:resize)=\"onResize($event)\">\r\n <div class=\"nav-item dropdown d-flex align-items-center justify-content-center align-middle\">\r\n <a class=\"nav-link d-flex align-items-center\" href=\"javascript:void(0)\" id=\"logoutDropDown\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\r\n <img class=\"avatar-icon\" src=\"../../../assets/images/Icon-awesome-user-alt-white.svg\">\r\n <ng-container *ngIf=\"isDesktop\">\r\n <span title=\"{{ fullName }}\" class=\"userName\" *ngIf=\"firstName\">\r\n {{firstName}}\r\n </span>\r\n </ng-container>\r\n <i class=\"fas fa-chevron-down dropdown-icon\"></i>\r\n </a>\r\n <div class=\"dropdown-menu dropdown-menu-right logoutMenu mt-1 py-0\" aria-labelledby=\"logoutDropDown\" (click)=\"logout(content)\">\r\n <li class=\"p-2 d-flex align-items-center justify-content-start\">\r\n <img src=\"../../../assets/images/icon-logout.svg\" class=\"mr-2\"> Logout\r\n </li>\r\n </div>\r\n </div>\r\n</div>\r\n<ng-template #content let-modal>\r\n <iframe width=\"100%\" height=\"100%\" frameBorder=\"0\" [src]=\"urlSafe\"></iframe>\r\n</ng-template>\r\n","\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CmsConfig, ConfigModule, UrlModule } from '@spartacus/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { IconModule, MediaModule,NavigationComponent } from '@spartacus/storefront';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap'; \r\nimport { AuthService } from '@auth0/auth0-angular';\r\nimport { CustomUserAccountComponent } from './custom-user-account.component';\r\n\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [CustomUserAccountComponent],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n UrlModule,\r\n MediaModule,\r\n IconModule,\r\n NgbModule,\r\n ConfigModule.withConfig({\r\n cmsComponents: {\r\n UserDetailsComponent: {\r\n component: CustomUserAccountComponent,\r\n },\r\n },\r\n } as CmsConfig),\r\n ],\r\n exports: [\r\n CustomUserAccountComponent\r\n ], providers: [\r\n AuthService\r\n ]\r\n})\r\nexport class CustomUserAccountModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { CmsService } from '@spartacus/core';\r\n\r\n@Component({\r\n selector: 'app-help-support',\r\n templateUrl: './help-support.component.html',\r\n styleUrls: ['./help-support.component.scss']\r\n})\r\nexport class HelpSupportComponent implements OnInit {\r\n helpsSupData: any;\r\n constructor(private cmsService: CmsService) { }\r\n\r\n ngOnInit(): void {\r\n this.cmsService.getComponentData(\"HeaderHelpParagraphComponent\").subscribe((data) => {\r\n this.helpsSupData = data;\r\n })\r\n }\r\n\r\n}\r\n","<div class=\"menuItemContainer d-flex align-items-center justify-content-center align-middle\">\r\n <div class=\"nav-item dropdown d-flex align-items-center justify-content-center align-middle\">\r\n <a class=\"nav-link\" href=\"javascript:void(0)\" id=\"navbarDropdownMenuLink\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\r\n <img class=\"customer-service-icon\" src=\"../../../assets/images/Icon-ionic-ios-help-circle.svg\" alt=\"Help Icon\">\r\n </a>\r\n <div class=\"dropdown-menu dropdown-menu-end helpSupport\" aria-labelledby=\"navbarDropdownMenuLink\">\r\n <div class=\"arrow-up\"></div>\r\n <div [innerHtml]=\"helpsSupData?.content\"></div>\r\n </div>\r\n </div>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HelpSupportComponent } from './help-support.component';\r\nimport { CmsConfig, ConfigModule } from '@spartacus/core';\r\n\r\n@NgModule({\r\n declarations: [HelpSupportComponent],\r\n imports: [\r\n CommonModule,\r\n ConfigModule.withConfig({\r\n cmsComponents: {\r\n HeaderHelpParagraphComponent: {\r\n component: HelpSupportComponent,\r\n },\r\n },\r\n } as CmsConfig),\r\n ],\r\n exports:[HelpSupportComponent]\r\n})\r\nexport class HelpSupportModule { }\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { HttpClient, HttpParams } from \"@angular/common/http\";\r\nimport { GET_PRODUCT_SEARCH } from './endPointURL';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CustomSearchService {\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n getProductSearchResults(query:any, categoryCode?:any) {\r\n let params = new HttpParams();\r\n let apiURL = GET_PRODUCT_SEARCH.url;\r\n params = params.set(\"fields\", 'products(bpAdditionalAttribute,code,name,summary,configurable,configuratorType,multidimensional,price(FULL),images(DEFAULT),stock(FULL),averageRating,variantOptions,description),facets,breadcrumbs,pagination(DEFAULT),sorts(DEFAULT),freeTextSearch,currentQuery');\r\n //params = params.set(\"fields\", 'products(FULL),facets,breadcrumbs,pagination(DEFAULT),sorts(DEFAULT),contents(FULL),freeTextSearch');\r\n params = params.set(\"query\", query)\r\n params = params.set(\"island\", categoryCode)\r\n params = params.set(\"pageSize\", '5')\r\n params = params.set(\"term\", query)\r\n return this.http.get<any>(apiURL, { params: params });\r\n }\r\n\r\n getSearchResultsData(query?:any, currentPage?: any, categoryCode?:any): Observable<any> {\r\n let params = new HttpParams();\r\n let apiURL = GET_PRODUCT_SEARCH.url;\r\n params = params.set(\"fields\", 'products(code,name,summary,configurable,configuratorType,multidimensional,price(FULL),images(DEFAULT),stock(FULL),averageRating,variantOptions),facets,breadcrumbs,pagination(DEFAULT),sorts(DEFAULT),freeTextSearch,currentQuery');\r\n params = params.set(\"query\", query)\r\n params = params.set(\"categoryCode\", categoryCode)\r\n params = params.set(\"page\", currentPage)\r\n params = params.set(\"pageSize\", '12')\r\n params = params.set(\"term\", query)\r\n params = params.set(\"currentPage\", currentPage)\r\n return this.http.get(apiURL,{ params: params } ) as Observable<any>;\r\n }\r\n}\r\n","import { Component, HostListener, OnInit, ViewChild } from '@angular/core'; \r\nimport { ViewConfig } from '@spartacus/storefront'; \r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { CustomSearchService } from '../services/search.service';\r\nimport { CommonUtils } from '../utils';\r\n\r\n@Component({\r\n selector: 'app-custom-search',\r\n templateUrl: './custom-search.component.html',\r\n styleUrls: ['./custom-search.component.scss']\r\n})\r\nexport class CustomSearchComponent implements OnInit {\r\n\r\n isDesktop = CommonUtils.isDesktop();\r\n environment: any = sessionStorage.getItem('env');\r\n env : any = JSON.parse(this.environment);\r\n storeFrontUrl = this.env.UIsiteURl;\r\n occBaseUrl = this.env.occBaseUrl;\r\n viewAllSearchQuery: any;\r\n showViewAllSearchResultsBtn: any;\r\n products: any = [];\r\n isShowSearchResults = false;\r\n resetedButton= false;\r\n categoryCode:any;\r\n isNoResultsMsg = new BehaviorSubject<boolean>(false);\r\n isMinimumMsg = new BehaviorSubject<boolean>(false);\r\n searchResultProductData = new BehaviorSubject<any>([{}]);\r\n searchResultContentData = new BehaviorSubject<any>([{}]);\r\n autoCompleteLoad$ = new BehaviorSubject<boolean>(false);\r\n @ViewChild('closebutton') closebutton:any;\r\n public searchField:any = {};\r\n constructor(\r\n protected config: ViewConfig,\r\n private searchService: CustomSearchService,\r\n ) { }\r\n \r\n @HostListener('document:keydown', ['$event'])\r\n onKeydownHandler(event: KeyboardEvent) {\r\n if (event.key === \"Enter\" ) {\r\n if(this.viewAllSearchQuery==undefined)\r\n {\r\n this.closebutton.nativeElement.click();\r\n this.clearResults();\r\n }\r\n }\r\n }\r\n ngOnInit(): void {\r\n const code: any =localStorage.getItem('branchDetails');\r\n this.categoryCode=JSON.parse(code)?.categoryCode;\r\n this.searchField = window.document.getElementById('search');\r\n this.searchField.addEventListener('keypress', (event:any) => {\r\n if (event.key == 'Enter') {\r\n event.preventDefault();\r\n if(this.viewAllSearchQuery==undefined)\r\n {\r\n this.closebutton.nativeElement.click();\r\n this.clearResults();\r\n }\r\n else if(this.viewAllSearchQuery.length >=2){\r\n window.location.href = this.storeFrontUrl + '/search/' + this.viewAllSearchQuery;\r\n this.clearResults();\r\n this.isMinimumMsg.next(false);\r\n }\r\n else{\r\n this.isMinimumMsg.next(true);\r\n }\r\n }\r\n });\r\n }\r\n globalSearch(event: any) {\r\n this.config.view = { defaultPageSize: 7 };\r\n this.viewAllSearchQuery = event;\r\n if (event.length > 0) {\r\n this.resetedButton= true;\r\n }\r\n else{\r\n this.resetedButton= false;\r\n }\r\n if (event.length >= 2) {\r\n this.searchService.getProductSearchResults(event, this.categoryCode).subscribe((data) => {\r\n this.products = data.products;\r\n this.isMinimumMsg.next(false);\r\n if (data.products?.length === 0) {\r\n this.isNoResultsMsg.next(true);\r\n this.isShowSearchResults = false;\r\n } else {\r\n this.isNoResultsMsg.next(false);\r\n this.isShowSearchResults = true;\r\n this.searchResultContentData.next(data.contents);\r\n this.searchResultProductData.next(data.products);\r\n this.autoCompleteLoad$.next(true);\r\n }\r\n });\r\n } else if (event.length == 0) {\r\n this.autoCompleteLoad$.next(false);\r\n }\r\n else if (event.length < 2){\r\n this.isShowSearchResults = false;\r\n }\r\n }\r\n clearResults() {\r\n this.searchField.value='';\r\n this.resetedButton= false;\r\n this.searchResultContentData.next(null);\r\n this.searchResultProductData.next(null);\r\n this.isShowSearchResults = false;\r\n this.isNoResultsMsg.next(false);\r\n }\r\n submitResults(){\r\n if(this.viewAllSearchQuery==undefined)\r\n {\r\n this.closebutton.nativeElement.click();\r\n this.clearResults();\r\n }\r\n else if(this.viewAllSearchQuery.length >=2){\r\n window.location.href = this.storeFrontUrl + '/search/' + this.viewAllSearchQuery;\r\n this.clearResults();\r\n this.closebutton.nativeElement.click();\r\n this.isMinimumMsg.next(false);\r\n }\r\n else{\r\n this.isMinimumMsg.next(true);\r\n }\r\n }\r\n // }\r\n}\r\n","<div class=\"searchBox d-flex align-items-center\">\r\n <span data-toggle=\"modal\" data-target=\"#globalSearchModal\" class=\"icon-search\" (click)=\"clearResults()\">\r\n <span class=\"path2\"></span>\r\n <span class=\"path3\"></span>\r\n </span>\r\n</div>\r\n<div class=\"modal fade globalsearch-modal\" id=\"globalSearchModal\" role=\"dialog\" aria-labelledby=\"globalSearchLabel\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header border-0 justify-content-end container\">\r\n <i class=\"icon-close search-pop-close\" #closebutton data-dismiss=\"modal\" title=\"Close\" (click)=\"clearResults()\" aria-label=\"Close\"></i>\r\n </div>\r\n <div class=\"modal-body px-2 pt-0 container\">\r\n <form name=\"search_form_\" method=\"get\" action=\"{{ storeFrontUrl }}/search/\" id=\"productSearchForm\" class=\"w-100\">\r\n <div class=\"d-flex position-relative\">\r\n <input #searchInput type=\"search\" placeholder=\"Search here...\" id=\"search\" name=\"search\" class=\"searchInput\"\r\n data-options='{\"autocompleteUrl\" : \"/search/autocomplete/ProductSearchBox\",\"minCharactersBeforeRequest\" : \"2\",\"waitTimeBeforeRequest\" : \"500\",\"displayProductImages\" : true,\"productSearchRequest\" : true}'\r\n autocomplete=\"off\" (input)=\"globalSearch(searchInput.value)\" />\r\n <button class=\"search-icon\" type=\"button\" aria-label=\"Search\" (click)=\"submitResults()\">\r\n <i class=\"fas fa-search\" title=\"Search for products or content\"></i>\r\n </button>\r\n <button *ngIf=\"resetedButton\" class=\"reset\" type=\"reset\" (click)=\"$event.preventDefault(); clearResults()\" aria-label=\"Reset\">\r\n <i class=\"fa fa-times\" title=\"Clear\"></i>\r\n </button>\r\n </div>\r\n </form>\r\n <div class=\"results\" *ngIf=\"isNoResultsMsg | async\">\r\n <div class=\"message\">\r\n We could not find any results\r\n </div>\r\n </div>\r\n <div class=\"results\" *ngIf=\"isMinimumMsg | async\">\r\n <div class=\"message\">\r\n Please enter a minimum of two characters to perform a search\r\n </div>\r\n </div>\r\n <div [ngClass]=\"isShowSearchResults ? 'd-block' : 'd-none'\" class=\"w-100\"\r\n *ngIf=\"autoCompleteLoad$ | async\">\r\n <div class=\"products\">\r\n <ul class=\"results w-100\" aria-label=\"product results\">\r\n <span *ngIf=\"searchResultProductData | async as searchProductData\">\r\n <span *ngIf=\"searchProductData\">\r\n <li *ngFor=\"let item of searchResultProductData | async\">\r\n <a href=\"{{storeFrontUrl + '/p/' + item.code }}\" class=\"has-media\" attr.data-product-code=\"{{ item.code }}\"\r\n *ngIf=\"item\">\r\n <ng-container *ngIf=\"item?.images\">\r\n <img class=\"d-block\" src=\"{{ occBaseUrl }}{{ item?.images[0]?.url }}\" />\r\n </ng-container>\r\n <ng-container *ngIf=\"!item?.images\">\r\n <img class=\"d-block\" src=\"../../../../assets/images/search-noimage.svg\" alt=\"image\"/>\r\n </ng-container>\r\n <div class=\"name\">\r\n <span class=\"search-results-highlight\" [innerHTML]=\"item.name\"></span>\r\n </div>\r\n </a>\r\n </li>\r\n </span>\r\n </span>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CustomSearchComponent } from './custom-search.component';\r\nimport { SearchBoxModule } from '@spartacus/storefront';\r\nimport { CmsConfig, ConfigModule } from '@spartacus/core';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n CustomSearchComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n SearchBoxModule,\r\n \r\n ConfigModule.withConfig({\r\n cmsComponents: {\r\n SearchLogoComponent: {\r\n component: CustomSearchComponent,\r\n },\r\n },\r\n } as CmsConfig),\r\n ],\r\n exports: [\r\n CustomSearchComponent\r\n ]\r\n})\r\nexport class CustomSearchModule { }\r\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n 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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AccountDropdownStateService {\r\n\r\n private cartValue = new BehaviorSubject<any>({});\r\n public navigationsData = new BehaviorSubject<any>([]);\r\n constructor() { }\r\n \r\n setCartValue(value: any) {\r\n this.cartValue.next(value);\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, ElementRef, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ActiveCartService, Cart, CmsService, OrderEntry } from '@spartacus/core';\r\nimport { MiniCartComponent } from '@spartacus/storefront';\r\nimport { Observable } from 'rxjs'; \r\nimport { AccountDropdownStateService } from '../services/account-dropdown-state.service';\r\nimport { CommonUtils } from '../utils';\r\n\r\n@Component({\r\n selector: 'app-custom-mini-cart',\r\n templateUrl: './custom-mini-cart.component.html',\r\n styleUrls: ['./custom-mini-cart.component.scss']\r\n})\r\nexport class CustomMiniCartComponent extends MiniCartComponent implements OnInit, OnChanges {\r\n\r\n entries$: Observable<OrderEntry[]> = this.activeCartService.getEntries();\r\n cart$: Observable<Cart> = this.activeCartService.getActive();\r\n isMobile = false;\r\n isTablet = false;\r\n isDesktop = true;\r\n isShowMenu = false;\r\n totalPriceFormat: any = \"\"\r\n modalRef: any;\r\n searchPlaceHolder: string = 'Search';\r\n items: any = [];\r\n showSearch: boolean = false;\r\n totalCartItems: any;\r\n\r\n\r\n constructor(private _eref: ElementRef,\r\n protected activeCartService: ActiveCartService,\r\n private router: Router,\r\n private modalService: NgbModal,\r\n public cmsService: CmsService,\r\n private accountDropDownStateService: AccountDropdownStateService,\r\n public ref: ChangeDetectorRef) {\r\n super(activeCartService);\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n this.cmsService.getComponentData(\"ContactUsComponent\").subscribe((data: any) => {\r\n })\r\n this.cart$.subscribe(dataRes => { \r\n this.totalCartItems = dataRes.totalItems;\r\n if (dataRes.totalPrice) {\r\n this.totalPriceFormat = dataRes.totalPrice.formattedValue\r\n } else {\r\n this.totalPriceFormat = \"\"\r\n }\r\n this.accountDropDownStateService.setCartValue(dataRes);\r\n this.router.events.subscribe((val) => {\r\n if (window.location.pathname.includes('mylist')) {\r\n this.searchPlaceHolder = 'Search for a particular list';\r\n } else {\r\n this.searchPlaceHolder = 'Search';\r\n }\r\n this.ref.markForCheck();\r\n });\r\n })\r\n\r\n\r\n\r\n if (this.entries$) {\r\n\r\n this.entries$.subscribe(data => {\r\n this.items = []\r\n // this.productHelpService.updateCodeInCart(data)\r\n data.forEach(n => {\r\n this.items.push(n)\r\n })\r\n })\r\n\r\n }\r\n this.onPageRefresh();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.ref.detectChanges();\r\n }\r\n\r\n negativeConverter(value: string) {\r\n let val: any = parseFloat(value).toFixed(2);\r\n if (/\\-/g.test(val)) {\r\n let isMinus = '-$' + val.replace('-', '');\r\n return (\r\n '-$' + parseFloat(isMinus.split('$')[1]).toFixed(2).toLocaleString()\r\n );\r\n } else {\r\n let isMinus = '$' + val;\r\n return (\r\n '$' + parseFloat(isMinus.split('$')[1]).toFixed(2).toLocaleString()\r\n );\r\n }\r\n }\r\n\r\n toggleMenu() {\r\n this.isShowMenu = !this.isShowMenu;\r\n }\r\n\r\n mobileToggleMenu(content: any) {\r\n this.modalRef = this.modalService.open(content, { windowClass: 'minicartPopup', centered: true, size: 'lg' });\r\n }\r\n openSearch(content: any) {\r\n this.showSearch = true;\r\n this.modalRef = this.modalService.open(content, { windowClass: 'globalSearchPopup', centered: true, size: 'lg' });\r\n }\r\n onClickOutside(event: any) {\r\n if (!this._eref.nativeElement.contains(event.target)) {\r\n this.isShowMenu = false;\r\n }\r\n }\r\n\r\n mouseoutFunction() {\r\n this.isShowMenu = false;\r\n }\r\n openCart() {\r\n this.router.navigate(['/cart']);\r\n }\r\n\r\n navigateToAccount() {\r\n //Change the url once preference page implemented\r\n //this.router.navigate(['/preferencesPage'])\r\n this.router.navigate(['/under-construction'])\r\n }\r\n searchtext(event: any) {\r\n this.showSearch = false;\r\n }\r\n onResize(event: any) {\r\n event.target.innerWidth;\r\n if (event.target.innerWidth < 768) {\r\n this.isMobile = true;\r\n this.isDesktop = false;\r\n }\r\n else if (event.target.innerWidth< 992) {\r\n this.isTablet = true;\r\n this.isDesktop = false;\r\n }\r\n else {\r\n this.isDesktop = true;\r\n }\r\n }\r\n\r\n onPageRefresh() {\r\n this.isMobile = CommonUtils.isMobile();\r\n this.isTablet = CommonUtils.isTablet();\r\n this.isDesktop = CommonUtils.isDesktop();\r\n }\r\n}\r\n","<div class=\"header-content\" (window:resize)=\"onResize($event)\">\r\n\r\n <!-- <app-custom-search *ngIf=\"!isDesktop\"></app-custom-search> -->\r\n <div class=\"miniCartStyle d-flex align-items-center justify-content-center align-middle\">\r\n <!-- uncomment the below code when we do mini cart changes-->\r\n <!-- <a class=\"d-flex align-items-center justify-content-center align-middle cart-link\" data-toggle=\"modal\" data-target=\"#minicartModal\"> -->\r\n <a class=\"d-flex align-items-center justify-content-center align-middle cart-link\" (click)=\"openCart()\">\r\n <cx-icon><img class=\"cart-icon\" src=\"../../../../assets/images/Icon-material-shopping-cart.svg\"></cx-icon>\r\n <!-- <span class=\"quantity\" *ngIf=\"quantity$ | async as quantity\">\r\n {{ quantity }} \r\n </span> -->\r\n <span class=\"quantity\">{{totalCartItems}}</span>\r\n <span class=\"totalPrice\" *ngIf=\"isDesktop\">\r\n {{totalPriceFormat?totalPriceFormat: '$ 0.00'}}\r\n </span>\r\n\r\n </a>\r\n <div *ngIf=\"quantity$ | async as quantity\" class=\"modal fade modal-right\" id=\"minicartModal\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"minicartLabel\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\"px-3\" *ngIf=\"quantity$ | async as quantity\">\r\n <div class=\"cart-preview-header d-flex align-items-center justify-content-between\">\r\n\r\n <i class=\"icon-close mini-cart-close branch-pop-close\" data-dismiss=\"modal\" aria-label=\"Close\"></i>\r\n <span class=\"cart-summary-label\"> Cart Summary</span>\r\n <span class=\"cart-summary-quantity\" *ngIf=\"quantity$ | async as quantity\">{{ quantity }}\r\n {{quantity == 1 ? 'item': 'items'}}</span>\r\n </div>\r\n <ul class=\"cart-list\">\r\n <li class=\"cart-list-items\" *ngFor=\"let p of items\">\r\n <div class=\"items-container\">\r\n <div class=\"item d-flex\">\r\n <div class=\"image-container\">\r\n <cx-media [container]=\"p.product.images?.PRIMARY\" format=\"thumbnail\" role=\"presentation\"></cx-media>\r\n </div>\r\n\r\n <div class=\"d-md-flex d-block w-100 justify-content-between pl-3 pl-md-0\">\r\n <div class=\"pl-4 minicart-list-items\">\r\n <span class=\"productName\" title={{p.product.name}}>{{p.product.name}}</span>\r\n <p class=\"itemCode\">SKU : {{p.product.code}}</p>\r\n <!-- dynamic data need to be updated -->\r\n <p class=\"itemDetails\">Colour: Slate Grey | Thickness: .40mm</p>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-content-between\">\r\n <div class=\"item-total-quantity\">\r\n <span>Total Qty: {{p?.quantity}}</span>\r\n </div>\r\n <div class=\"item-total-price\">\r\n <span>{{p?.totalPrice?.formattedValue}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </li>\r\n </ul>\r\n <div class=\"cart-preview-footer\">\r\n <div class=\"cart-preview-subTotal\">\r\n <span class=\"cart-subTotal-label\">Subtotal <span>(excl. GST)</span></span>\r\n <span class=\"cart-subTotal-price\">{{totalPriceFormat}}</span>\r\n </div>\r\n <div class=\"buttons-container d-flex justify-content-between\">\r\n <div class=\"cart-links\">\r\n <a class=\"continue-shopping-achor\" routerLink=\"/cart\" data-dismiss=\"modal\"> Edit cart </a>\r\n </div>\r\n <div class=\"cart-links\">\r\n <a class=\"checkout-achor\" routerLink=\"/cart\">\r\n <button class=\"btn checkout-btn\" (click)=\"toggleMenu()\" data-dismiss=\"modal\"> CHECKOUT </button>\r\n </a>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common'; \r\nimport { IconModule, MediaModule} from '@spartacus/storefront';\r\nimport { RouterModule } from '@angular/router';\r\nimport { UrlModule, ConfigModule, CmsConfig } from '@spartacus/core';\r\nimport { CustomUserAccountModule } from '../custom-user-account/custom-user-account.module';\r\nimport { HelpSupportModule } from '../help-support/help-support.module';\r\nimport { CustomSearchModule } from '../custom-search/custom-search.module';\r\nimport { CustomMiniCartComponent } from './custom-mini-cart.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n CustomMiniCartComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n IconModule,\r\n MediaModule,\r\n UrlModule,\r\n RouterModule,\r\n CustomUserAccountModule,\r\n HelpSupportModule,\r\n CustomSearchModule,\r\n ConfigModule.withConfig({\r\n cmsComponents: {\r\n MiniCartComponent: {\r\n component: CustomMiniCartComponent\r\n }\r\n }\r\n } as CmsConfig)\r\n ],\r\n exports: [\r\n CustomMiniCartComponent\r\n ]\r\n})\r\nexport class CustomMiniCartModule { }\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { RouterEvent, NavigationEnd, Router } from '@angular/router';\r\nimport { CmsBreadcrumbsComponent, CmsService, PageMetaService, TranslationService } from '@spartacus/core';\r\nimport { CmsComponentData, PageTitleComponent } from '@spartacus/storefront';\r\nimport { combineLatest, Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-custom-breadcrum',\r\n templateUrl: './custom-breadcrum.component.html',\r\n styleUrls: ['./custom-breadcrum.component.scss']\r\n})\r\nexport class CustomBreadcrumComponent extends PageTitleComponent implements OnInit {\r\n crumbs$: Observable<any[]> = new Observable;\r\n pageState: any;\r\n previousUrl: string = '';\r\n currentUrl: string = '';\r\n navigateUrl: any;\r\n modalRef: any;\r\n alreadyCalled: boolean = false;\r\n @Input() customCrumbData?: any;\r\n\r\n constructor(\r\n public component: CmsComponentData<CmsBreadcrumbsComponent>,\r\n public route: Router,\r\n private cms: CmsService,\r\n private translation: TranslationService,\r\n protected pageMetaService: PageMetaService,) {\r\n super(component, pageMetaService);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!this.customCrumbData || this.customCrumbData == undefined) {\r\n super.ngOnInit();\r\n this.setCrumbs();\r\n }\r\n this.currentUrl = this.route.url;\r\n this.previousUrl = '';\r\n\r\n }\r\n private setCrumbs(): void {\r\n this.crumbs$ = combineLatest([\r\n this.cms.getCurrentPage(),\r\n this.pageMetaService.getMeta(),\r\n this.translation.translate('common.home'),\r\n ]).pipe(\r\n map(([pageData, meta, textHome]) => {\r\n\r\n if (this.alreadyCalled == false) {\r\n this.alreadyCalled = true;\r\n let arr: any = meta?.breadcrumbs;\r\n let obj = { label: meta?.title!, link: '' };\r\n if (arr[arr.length - 1] != obj) meta?.breadcrumbs?.push({ label: meta.title!, link: '' })\r\n }\r\n const urlParams: any = window.location.href.split(\"/\")\r\n let urlValue: any = urlParams[urlParams.length - 1].split(\"?\")\r\n if (window.location.href.includes('/search')) {\r\n meta!.title = urlValue[0];\r\n let imageLoad = document.getElementsByTagName(\"cx-media\")[0];\r\n imageLoad.addEventListener('click', function () {\r\n window.location.href = '/';\r\n });\r\n }\r\n else if (window.location.href.includes('/c/')) {\r\n meta!.title = \"Products\"\r\n let imageLoad = document.getElementsByTagName(\"cx-media\")[0];\r\n imageLoad.addEventListener('click', function () {\r\n window.location.href = '/';\r\n });\r\n }\r\n\r\n return meta?.breadcrumbs ? meta.breadcrumbs : [{ label: textHome, link: '/' }]\r\n }\r\n )\r\n );\r\n }\r\n\r\n goToHome(url: any) {\r\n if (url != '') {\r\n this.navigateUrl = url;\r\n window.location.href = url;\r\n }\r\n\r\n }\r\n\r\n goToUrl(url: any, index: number) {\r\n if (this.customCrumbData.length - 1 != index) {\r\n this.navigateUrl = url;\r\n if (url == 'Products') {\r\n url = 'Home/Products/c/1'\r\n }\r\n window.location.href = url;\r\n }\r\n }\r\n}\r\n","<div class=\"breadcrumb-container\">\r\n <div class=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col-sm-12\">\r\n <nav aria-label=\"breadcrumb\">\r\n <ol *ngIf=\"!customCrumbData\" class=\"breadcrumb\">\r\n <li *ngFor=\"let crumb of crumbs$ | async\" class=\"breadcrumb-item\">\r\n <a [routerLink]=\"\" [ngClass]=\"{ 'decorationNone': crumb.link == '' }\" (click)=\"goToHome(crumb.link)\" [innerHTML]=\"crumb.label\"></a>\r\n </li>\r\n </ol>\r\n <ol class=\"breadcrumb\">\r\n <li *ngFor=\"let data of customCrumbData ; let ind = index\" class=\"breadcrumb-item\">\r\n <a [routerLink]=\"\" (click)=\"goToUrl(data.url , ind)\" [ngClass]=\"{'decorationNone': customCrumbData.length -1 == ind}\" [innerHTML]=\"data.name\"></a>\r\n </li>\r\n </ol>\r\n </nav>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { AbstractControl, ValidatorFn, ValidationErrors } from \"@angular/forms\";\r\n\r\nexport class RegexConstants {\r\n public static NUMBER_1_99 = /^(0?[1-9]|[1-9][0-9])$/; // Accepts 01-99 or 1-99 numbers\r\n public static DECIMAL_4_3 = /^-?(\\d{0,4}(\\.\\d{1,3})?)$/; // Accepts Decimal upto 3 decimal digits from 1 to 1000\r\n public static BUNDLE_NAME = /^[a-zA-Z0-9]{0,2}$/; // Accepts only alphabets and umbers with 2 characters\r\n public static JOB_REFERENCE = /^[a-zA-Z0-9-\\/+\\s-\\']{0,15}$/; // Accepts only alphabets A-Z or a-z with 2 digits\r\n}\r\n\r\nexport function RegexValidator(reg: RegexConstants): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n if (control.value && !control.value.toString().match(reg)) {\r\n return { invalid: true };\r\n }\r\n return null;\r\n };\r\n}\r\n","\r\nimport { Validators } from \"@angular/forms\";\r\nimport { RegexValidator, RegexConstants } from \"./regEx.validator\";\r\n\r\nexport class ProductQuantity {\r\n prodQty = ['', [RegexValidator(RegexConstants.NUMBER_1_99), Validators.required]];\r\n prodLen = ['', [RegexValidator(RegexConstants.DECIMAL_4_3), Validators.required]];\r\n prodBundle = ['', [RegexValidator(RegexConstants.BUNDLE_NAME), Validators.required]];\r\n prodRef = ['', [RegexValidator(RegexConstants.JOB_REFERENCE), Validators.required]];\r\n};\r\n\r\nexport class FlashingQuantity {\r\n prodQty = ['', [RegexValidator(RegexConstants.NUMBER_1_99), Validators.required]];\r\n prodLen = ['', [RegexValidator(RegexConstants.DECIMAL_4_3), Validators.required]];\r\n};\r\n\r\nexport class AccessoriesQuantity {\r\n prodQty = ['', [RegexValidator(RegexConstants.NUMBER_1_99), Validators.required]];\r\n};\r\n\r\nexport class CartForm {\r\n prodQty = ['', [RegexValidator(RegexConstants.NUMBER_1_99), Validators.required]];\r\n jobReference = ['', [RegexValidator(RegexConstants.JOB_REFERENCE), Validators.required]];\r\n};\r\n\r\nexport class FlashGuardDetails {\r\n type = ['', [Validators.required]];\r\n dimension = ['', [Validators.required]];\r\n fold = ['', [Validators.required]];\r\n};\r\n\r\nexport class DimensionDetails {\r\n dimension = ['', [RegexValidator(RegexConstants.NUMBER_1_99), Validators.required]];\r\n angle = ['', [RegexValidator(RegexConstants.NUMBER_1_99), Validators.required]];\r\n};\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport {\r\n DELETE_CART_ENTRY_ENDPOINT,\r\n GET_CART_LIST_ENDPOINT,\r\n GET_ORDER_DETAIL,\r\n UPDATE_CART_ENTRY_ENDPOINT\r\n} from './endPointURL';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CartService {\r\n expandAll = new BehaviorSubject<boolean>(false);\r\n constructor(private http: HttpClient) {}\r\n\r\n public getCartList(cartId: any): Observable<any> {\r\n let url = GET_CART_LIST_ENDPOINT.url + cartId + '?fields=FULL';\r\n return this.http\r\n .get(url, {\r\n headers: { 'Content-Type': 'application/json' },\r\n })\r\n .pipe(\r\n catchError((errorRes) => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n\r\n \r\n public getOrderDetails(orderId: any): Observable<any> {\r\n let url = GET_ORDER_DETAIL.url + orderId + '?fields=FULL';\r\n return this.http\r\n .get(url, {\r\n headers: { 'Content-Type': 'application/json' },\r\n })\r\n .pipe(\r\n catchError((errorRes) => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n\r\n public deleteCartEntry(cartId: any, entryNumber: any): Observable<any> {\r\n let url =\r\n DELETE_CART_ENTRY_ENDPOINT.url + cartId + '/entries/' + entryNumber;\r\n return this.http\r\n .delete(url, {\r\n headers: { 'Content-Type': 'application/json' },\r\n })\r\n .pipe(\r\n catchError((errorRes) => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n\r\n public clearCart(cartId: any): Observable<any> {\r\n let url = DELETE_CART_ENTRY_ENDPOINT.url + cartId;\r\n return this.http\r\n .delete(url, {\r\n headers: { 'Content-Type': 'application/json' },\r\n })\r\n .pipe(\r\n catchError((errorRes) => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n\r\n public updateCartEntry(cartId: any, entryNumber: any, payLoad: any): Observable<any> {\r\n let url = UPDATE_CART_ENTRY_ENDPOINT.url + cartId +'/bpEntries/'+ entryNumber;\r\n return this.http.put(url, payLoad, {\r\n headers: { 'Content-Type': 'application/json' },\r\n })\r\n .pipe(\r\n catchError((errorRes) => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n OnInit,\r\n OnChanges,\r\n SimpleChanges,\r\n ViewChild,\r\n HostListener,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport { CurrentProductService } from '@spartacus/storefront';\r\nimport { ActiveCartService, Product } from '@spartacus/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { FormArray, FormBuilder, FormGroup } from '@angular/forms';\r\nimport { CartService } from '../../../services/cart.service';\r\nimport { AccessoriesQuantity, ProductQuantity } from '../../CustomProduct';\r\nimport { RegexValidator, RegexConstants } from '../../regEx.validator';\r\n\r\n@Component({\r\n selector: 'app-custom-product-quantity-form',\r\n templateUrl: './custom-product-quantity-form.component.html',\r\n styleUrls: ['./custom-product-quantity-form.component.scss'],\r\n})\r\nexport class CustomProductQuantityFormComponent implements OnInit, OnChanges {\r\n env: any = sessionStorage.getItem('env');\r\n environment : any = JSON.parse(this.env);\r\n isDesktop: boolean = true;\r\n isMobile: boolean = false;\r\n isTablet: boolean = false;\r\n\r\n totalLength: any;\r\n totalPrice: any = '0.0';\r\n\r\n @Input() hasBundle: boolean = false;\r\n @Input() productCode: any;\r\n @Input() productDetails: any;\r\n @Input() unitType: any = 'per LM';\r\n @Input() accessoriesPrice = 0;\r\n @Input() selectedColour: any = null;\r\n @Input() cuttingValidation: any;\r\n @Input() finishedVariantDetails: any;\r\n @Input() finishedAvailableColours: any;\r\n @Input() isFinishedProduct: boolean = false;\r\n @Input() isFlashingProduct: boolean = false;\r\n @Input() listView: boolean = true;\r\n\r\n productForm: any = new FormGroup({});\r\n\r\n disableAddMore: boolean = false;\r\n\r\n bundleList: any = [];\r\n\r\n errorIndex: any = [];\r\n hasProdRefIndex: any = [];\r\n hasProdRef: boolean = false;\r\n hasMinlengthError: any = [];\r\n rowIndex = 0;\r\n cartId: any;\r\n\r\n showWaitCursor = new BehaviorSubject<boolean>(true);\r\n\r\n addToCartError: any = null;\r\n modalBundleForm: any = new FormGroup({});\r\n editProdBundle: any = '';\r\n editProdRef: any = '';\r\n selectedIndex: any = null;\r\n\r\n hasData: boolean = false;\r\n\r\n product$: Observable<Product | null> =\r\n this.currentProductService.getProduct();\r\n\r\n @ViewChild('closeInviteModal') closeInviteModal: any;\r\n @ViewChild('closebutton') closebutton: any;\r\n\r\n @Output() updateCartEntires: EventEmitter<any> = new EventEmitter();\r\n\r\n screenWidth: any;\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private cdr: ChangeDetectorRef,\r\n private cartService: CartService,\r\n private activeCartService: ActiveCartService,\r\n private currentProductService: CurrentProductService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n const cartObj: any = localStorage.getItem('spartacus⚿dimond-spa⚿cart');\r\n this.cartId = JSON.parse(cartObj)?.active;\r\n this.screenWidth = window.innerWidth + 'px';\r\n if (this.productDetails) {\r\n this.createProductForm();\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (!changes?.productDetails?.firstChange) {\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n // Create a Product Quantity Form\r\n createProductForm(): void {\r\n this.accessoriesPrice = 0;\r\n this.totalLength = null;\r\n this.totalPrice = '0.0';\r\n this.hasBundle = false;\r\n this.disableAddMore = false;\r\n this.bundleList = [];\r\n this.errorIndex = [];\r\n this.hasProdRefIndex = [];\r\n this.rowIndex = 0;\r\n this.productForm = new FormGroup({});\r\n this.addToCartError = null;\r\n this.productForm = this.formBuilder.group({\r\n bundling: [''],\r\n productQuantity: this.formBuilder.array([]),\r\n jobReference: ['', [RegexValidator(RegexConstants.JOB_REFERENCE)]],\r\n });\r\n\r\n this.editProdBundle = '';\r\n this.editProdRef = '';\r\n this.selectedIndex = null;\r\n this.hasProdRef = false;\r\n this.hasMinlengthError = [];\r\n\r\n if (this.isFinishedProduct) {\r\n this.addProductQuantityFormGroup();\r\n this.productQuantityForm?.controls[0]?.patchValue({\r\n prodQty: this.productDetails?.quantity,\r\n });\r\n } else {\r\n this.modalBundleForm = this.formBuilder.group({\r\n modBundle: ['', [RegexValidator(RegexConstants.BUNDLE_NAME)]],\r\n modRef: ['', [RegexValidator(RegexConstants.JOB_REFERENCE)]],\r\n });\r\n this.productDetails?.subLineConfigInfos?.forEach(\r\n (val: any, index: any) => {\r\n this.addProductQuantityFormGroup();\r\n if (!this.isNullOrEmpty(val?.bundleName)) {\r\n this.hasBundle = true;\r\n this.productForm?.get('bundling')?.setValue(true);\r\n }\r\n this.productQuantityForm.controls[index].patchValue({\r\n prodBundle: val?.bundleName,\r\n prodLen: this.pad3Digits(val?.length),\r\n prodQty: val?.quantity,\r\n prodRef: val?.reference,\r\n });\r\n }\r\n );\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n // Updating the Bundle\r\n updateBundling(event: any): void {\r\n this.hasBundle = event.currentTarget?.checked === true;\r\n if (this.hasBundle) {\r\n this.productQuantityForm?.controls?.forEach(\r\n (element: any, index: any) => {\r\n this.updateSameBundleReference(null, index);\r\n }\r\n );\r\n }\r\n this.updateTotal();\r\n }\r\n\r\n // Check if any value is empty or undefined\r\n isNullOrEmpty(value: any): boolean {\r\n return value == null || value == undefined || value == '';\r\n }\r\n\r\n // Check for any errors while updating the quantity\r\n hasErrorIndex(index: any): boolean {\r\n return this.errorIndex[index] == true;\r\n }\r\n\r\n // Check if any Same Reference Error\r\n hasProdRefErrorIndex(index: any): boolean {\r\n return this.hasProdRefIndex[index] == true;\r\n }\r\n\r\n // Group the Quantity values based on bundle\r\n groupByBundle(items: any, key: any): any {\r\n return items.reduce(\r\n (result: any, item: any) => ({\r\n ...result,\r\n [item[key]]: [...(result[item[key]] || []), item],\r\n }),\r\n {}\r\n );\r\n }\r\n\r\n // Check the total bundle weight and update the error if it reaches to maximum bundle size for each bundle\r\n checkTotalBundleWeight(formValues: any): any {\r\n let groupTotal = 0;\r\n formValues?.forEach((currentValue: any) => {\r\n const qty = parseFloat(currentValue?.prodQty);\r\n const len = parseFloat(currentValue?.prodLen);\r\n if (!this.isNullOrEmpty(qty) && !this.isNullOrEmpty(len)) {\r\n groupTotal += qty * len;\r\n }\r\n });\r\n groupTotal = groupTotal * (this.cuttingValidation?.weightPerLM || 1);\r\n return groupTotal > (this.cuttingValidation?.maxBundleLoad || 1000);\r\n }\r\n\r\n // Get the last row of a bundle based on bundle name\r\n getLastBundleIndex(bundleName: any): any {\r\n let indexValue: any = null;\r\n this.productQuantityForm\r\n ?.getRawValue()\r\n ?.forEach((element: any, index: any) => {\r\n if (element?.prodBundle?.toUpperCase() == bundleName?.toUpperCase()) {\r\n indexValue = index;\r\n }\r\n });\r\n return indexValue;\r\n }\r\n\r\n // Get the Reference value of the same bundle and update\r\n getPrevBundleReferenceValue(index: any): any {\r\n const bundleName =\r\n this.selectedIndex == null\r\n ? this.productQuantityForm?.controls[index]\r\n ?.get('prodBundle')\r\n ?.value?.toUpperCase()\r\n : this.modalBundleForm?.get('modBundle')?.value?.toUpperCase();\r\n let refValue = '';\r\n this.productQuantityForm?.controls.forEach((element: any, ind: any) => {\r\n const otherRefValue =\r\n this.productQuantityForm?.controls[ind]?.get('prodRef')?.value;\r\n if (\r\n element?.value?.prodBundle?.toUpperCase() ==\r\n bundleName?.toUpperCase() &&\r\n (ind != index || this.selectedIndex != null) &&\r\n !this.isNullOrEmpty(otherRefValue)\r\n ) {\r\n refValue = otherRefValue;\r\n }\r\n });\r\n return refValue || '';\r\n }\r\n\r\n // Check if Same Refrence is already used\r\n checkHasSameReference(\r\n index: any,\r\n currentReference: any,\r\n bundleName: any\r\n ): boolean {\r\n let hasRef = false;\r\n const prodRefValues = this.productQuantityForm?.controls?.filter(\r\n (element: any) => {\r\n return (\r\n element?.value?.prodRef == currentReference &&\r\n element?.value?.prodBundle?.toUpperCase() !=\r\n bundleName?.toUpperCase() &&\r\n !this.isNullOrEmpty(currentReference)\r\n );\r\n }\r\n );\r\n if (prodRefValues?.length > 0) {\r\n this.hasProdRefIndex[index] = true;\r\n hasRef = true;\r\n } else {\r\n this.hasProdRefIndex[index] = false;\r\n }\r\n this.cdr.detectChanges();\r\n return hasRef;\r\n }\r\n\r\n // Update the Reference Value if already the same bundle is present\r\n updateSameBundleReference(\r\n event: any,\r\n index: any,\r\n isReference: boolean = false\r\n ): void {\r\n const bundleName =\r\n this.productQuantityForm?.controls[index]?.get('prodBundle')?.value ||\r\n this.modalBundleForm.get('modBundle')?.value;\r\n const newRefValue =\r\n event != null\r\n ? event.currentTarget.value\r\n : this.productQuantityForm?.controls[index]?.get('prodRef')?.value ||\r\n this.modalBundleForm?.get('modRef').value;\r\n isReference = isReference\r\n ? this.checkHasSameReference(index, newRefValue, bundleName)\r\n : false;\r\n if (!isReference) {\r\n this.productQuantityForm.controls.forEach((element: any, ind: any) => {\r\n if (\r\n element?.value?.prodBundle?.toUpperCase() ==\r\n bundleName?.toUpperCase() &&\r\n ind != index &&\r\n !this.isNullOrEmpty(newRefValue) &&\r\n !this.isNullOrEmpty(bundleName)\r\n ) {\r\n this.productQuantityForm?.controls[ind]\r\n ?.get('prodRef')\r\n ?.setValue(newRefValue);\r\n }\r\n });\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n // Update the same Bundle Refrence Value to all other Bundles if any changes in Reference Value\r\n populateSameBundleReference(event: any, index: any): void {\r\n if (event) {\r\n const prevRefValue = this.getPrevBundleReferenceValue(index);\r\n if (!this.isNullOrEmpty(prevRefValue)) {\r\n this.productQuantityForm?.controls[index]\r\n .get('prodRef')\r\n ?.setValue(prevRefValue);\r\n this.modalBundleForm.get('modRef').setValue(prevRefValue);\r\n }\r\n } else {\r\n if (!this.isNullOrEmpty(this.getPrevBundleReferenceValue(index))) {\r\n this.productQuantityForm?.controls[index]\r\n ?.get('prodRef')\r\n ?.setValue(this.getPrevBundleReferenceValue(index) || '');\r\n }\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n // Update the Bundle List if more than one bundle/rows\r\n updateBundleList(): void {\r\n const formValues = this.groupByBundle(\r\n this.productQuantityForm?.getRawValue(),\r\n 'prodBundle'\r\n );\r\n if (Object.keys(formValues)?.length > 1) {\r\n this.bundleList = Object.keys(formValues);\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n // Get Bundle values only for mobile view\r\n getBundleValues(index: any): any {\r\n const bundleValues = [];\r\n bundleValues.push(\r\n this.productQuantityForm?.controls[index]?.get('prodBundle')?.value\r\n );\r\n bundleValues.push(\r\n this.productQuantityForm?.controls[index]?.get('prodRef')?.value\r\n );\r\n return bundleValues;\r\n }\r\n\r\n // Edit Bundle Values\r\n editBundleValue(index: any): void {\r\n this.selectedIndex = index;\r\n this.modalBundleForm\r\n ?.get('modBundle')\r\n .setValue(\r\n this.productQuantityForm?.controls[index]\r\n ?.get('prodBundle')\r\n ?.value.toUpperCase()\r\n );\r\n this.modalBundleForm\r\n ?.get('modRef')\r\n ?.setValue(\r\n this.productQuantityForm?.controls[index]?.get('prodRef')?.value\r\n );\r\n this.cdr.detectChanges();\r\n }\r\n\r\n // Update/Save Bundle values\r\n saveBundleDetails(event: any): void {\r\n this.productQuantityForm?.controls[this.selectedIndex]\r\n ?.get('prodBundle')\r\n ?.setValue(this.modalBundleForm?.get('modBundle')?.value.toUpperCase());\r\n this.productQuantityForm?.controls[this.selectedIndex]\r\n ?.get('prodRef')\r\n ?.setValue(this.modalBundleForm?.get('modRef')?.value);\r\n\r\n this.updateSameBundleReference(null, this.selectedIndex, true);\r\n this.updateTotal();\r\n this.selectedIndex = null;\r\n\r\n this.closebutton.nativeElement.click();\r\n }\r\n\r\n // Update Cart Deatils\r\n updateCartDetails(): void {\r\n if (this.isValidForm()) {\r\n let payLoad: any = {};\r\n\r\n if (this.isFinishedProduct) {\r\n payLoad = {\r\n quantity: this.productQuantityForm?.controls[0].get('prodQty')?.value,\r\n product: {\r\n code: this.productDetails?.product?.code,\r\n },\r\n jobReference: this.productDetails?.product?.jobReference,\r\n };\r\n } else {\r\n payLoad = {\r\n quantity: 1,\r\n configurationInfos: [this.productDetails?.configValues],\r\n subLineConfigInfos: [],\r\n jobReference: this.productDetails?.product?.jobReference,\r\n };\r\n this.productQuantityForm?.controls?.forEach(\r\n (element: any, index: any) => {\r\n const configInfos: any = {\r\n configuratorType: 'CUTTING',\r\n quantity: element?.value?.prodQty,\r\n length: element?.value?.prodLen,\r\n };\r\n if (this.hasBundle && element?.value?.prodBundle) {\r\n configInfos.bundleName = element?.value?.prodBundle;\r\n configInfos.reference = element?.value?.prodRef;\r\n }\r\n payLoad.subLineConfigInfos.push(configInfos);\r\n }\r\n );\r\n if (\r\n payLoad?.configurationInfos &&\r\n payLoad?.configurationInfos?.length > 0 &&\r\n this.isNullOrEmpty(payLoad?.configurationInfos[0])\r\n ) {\r\n delete payLoad?.configurationInfos;\r\n }\r\n }\r\n\r\n this.cartService\r\n .updateCartEntry(this.cartId, this.productDetails?.entryNumber, payLoad)\r\n .subscribe(\r\n (response: any) => {\r\n if (response) {\r\n this.activeCartService.reloadActiveCart();\r\n this.updateCartEntires.emit(true);\r\n }\r\n },\r\n (error: any) => {\r\n this.addToCartError =\r\n error?.error?.errors[0]?.message ||\r\n error?.error?.errors[0]?.errorMessage;\r\n }\r\n );\r\n }\r\n }\r\n\r\n // Update Total Price and Total length based on user inputs on each row\r\n updateTotal(): void {\r\n this.totalLength = 0;\r\n this.totalPrice = 0;\r\n if (!this.isFinishedProduct) {\r\n const formValues = this.groupByBundle(\r\n this.productQuantityForm?.getRawValue(),\r\n 'prodBundle'\r\n );\r\n this.productQuantityForm.controls.forEach((element: any, index: any) => {\r\n const qty = parseFloat(element?.value?.prodQty);\r\n const len = parseFloat(element?.value?.prodLen);\r\n const currentBundleName = element?.value?.prodBundle?.toUpperCase();\r\n let total = 0;\r\n if (\r\n !this.isNullOrEmpty(qty) &&\r\n !this.isNullOrEmpty(len) &&\r\n !isNaN(qty) &&\r\n !isNaN(len)\r\n ) {\r\n total = qty * len;\r\n if (!this.hasBundle) {\r\n this.errorIndex[index] =\r\n total * (this.cuttingValidation?.weightPerLM || 1) >\r\n (this.cuttingValidation?.maxBundleLoad || 1000)\r\n ? true\r\n : false;\r\n } else if (\r\n this.checkTotalBundleWeight(formValues[currentBundleName])\r\n ) {\r\n const errorIndexNo = this.getLastBundleIndex(currentBundleName);\r\n if (!this.isNullOrEmpty(errorIndexNo)) {\r\n this.errorIndex[errorIndexNo] = true;\r\n }\r\n } else {\r\n this.errorIndex[index] = false;\r\n }\r\n }\r\n if (!isNaN(qty) && !isNaN(len)) {\r\n this.totalLength = this.totalLength + total;\r\n this.totalPrice =\r\n this.totalLength * this.productDetails?.price?.value;\r\n }\r\n });\r\n } else {\r\n this.totalLength = null;\r\n const qty = this.productQuantityForm?.controls[0]?.get('prodQty')?.value;\r\n if (!isNaN(qty)) {\r\n this.totalPrice = qty * this.accessoriesPrice;\r\n }\r\n }\r\n this.updateCartDetails();\r\n }\r\n\r\n // Utility Function to get Key Values\r\n getKeyValues(source: any, search: any): any {\r\n if (typeof source !== 'object') {\r\n return [];\r\n }\r\n\r\n const [key, next] = Object.keys(source);\r\n const { [key]: value, ...rest } = source;\r\n\r\n return [\r\n ...(key === search ? [value] : this.getKeyValues(value, search)),\r\n ...(next ? this.getKeyValues(rest, search) : []),\r\n ];\r\n }\r\n\r\n // Get the values of Quantity Form\r\n getProductQuantityFormGroup(): FormGroup {\r\n return this.formBuilder.group(\r\n this.isFinishedProduct ? new AccessoriesQuantity() : new ProductQuantity()\r\n );\r\n }\r\n\r\n get productQuantityForm(): FormArray {\r\n return this.productForm.get('productQuantity') as FormArray;\r\n }\r\n\r\n // Add the Quanity Form when user clicks on Add More button\r\n addProductQuantityFormGroup(event?: any): void {\r\n event?.preventDefault();\r\n this.productQuantityForm?.push(this.getProductQuantityFormGroup());\r\n const bundles = this.groupByBundle(\r\n this.productQuantityForm?.getRawValue(),\r\n 'prodBundle'\r\n );\r\n this.disableAddMore = this.productQuantityForm?.length > 99;\r\n this.errorIndex[this.rowIndex] = false;\r\n this.hasProdRefIndex[this.rowIndex++] = false;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n // Update the Quantity form if user clicks on remove button\r\n removeProductQuantityForm(index: any, event: any): void {\r\n event.preventDefault();\r\n this.productQuantityForm.removeAt(index);\r\n this.rowIndex--;\r\n this.disableAddMore = this.productQuantityForm?.length > 99;\r\n this.cdr.detectChanges();\r\n this.updateTotal();\r\n }\r\n\r\n // Get Job Reference Errors\r\n jobReferenceErrors(): any {\r\n return this.productForm?.get('jobReference')?.errors;\r\n }\r\n\r\n // Get Product Quantity Errors\r\n prodQtyErrors(index: any): any {\r\n return (\r\n (this.productQuantityForm?.controls[index]?.get('prodQty')?.errors ||\r\n this.productQuantityForm?.controls[index]?.get('prodQty')?.invalid) &&\r\n (this.productQuantityForm?.controls[index]?.get('prodQty')?.dirty ||\r\n this.productQuantityForm?.controls[index]?.get('prodQty')?.touched)\r\n );\r\n }\r\n\r\n // Get Product Length Errors\r\n prodLenErrors(index: any): any {\r\n return (\r\n (this.productQuantityForm?.controls[index]?.get('prodLen')?.errors ||\r\n this.productQuantityForm?.controls[index]?.get('prodLen')?.invalid) &&\r\n (this.productQuantityForm?.controls[index]?.get('prodLen')?.dirty ||\r\n this.productQuantityForm?.controls[index]?.get('prodLen')?.touched)\r\n );\r\n }\r\n\r\n // Get Product Length Errors\r\n minLenErrors(index: any): any {\r\n return this.hasMinlengthError?.indexOf(index) !== -1;\r\n }\r\n\r\n // Get Product Bundle Errors\r\n prodBundleErrors(index: any): any {\r\n return (\r\n (this.productQuantityForm?.controls[index]?.get('prodBundle')?.errors ||\r\n this.productQuantityForm?.controls[index]?.get('prodBundle')\r\n ?.invalid) &&\r\n (this.productQuantityForm?.controls[index]?.get('prodBundle')?.dirty ||\r\n this.productQuantityForm?.controls[index]?.get('prodBundle')?.touched)\r\n );\r\n }\r\n\r\n // Get Product Bunlde Reference Errors\r\n prodRefErrors(index: any): any {\r\n return (\r\n (this.productQuantityForm?.controls[index]?.get('prodRef')?.errors ||\r\n this.productQuantityForm?.controls[index]?.get('prodRef')?.invalid) &&\r\n (this.productQuantityForm?.controls[index]?.get('prodRef')?.dirty ||\r\n this.productQuantityForm?.controls[index]?.get('prodRef')?.touched)\r\n );\r\n }\r\n\r\n // Check if form is Valid or not\r\n isValidForm(): boolean {\r\n let valid = true;\r\n if (this.hasBundle) {\r\n return this.productForm?.valid;\r\n } else {\r\n this.productQuantityForm?.controls?.forEach((element: any) => {\r\n valid = this.isFinishedProduct\r\n ? element?.get('prodQty')?.valid\r\n : element?.get('prodLen')?.valid && element?.get('prodQty')?.valid;\r\n });\r\n }\r\n return valid;\r\n }\r\n\r\n // Check if any errors present on any row and diplay it on UI\r\n hasErrors(index: any): boolean {\r\n return this.productQuantityForm?.controls[index]?.get('prodQty')?.errors ||\r\n this.productQuantityForm?.controls[index]?.get('prodLen')?.errors ||\r\n this.productQuantityForm?.controls[index]?.get('prodBundle')?.errors ||\r\n this.productQuantityForm?.controls[index]?.get('prodRef')?.errors\r\n ? true\r\n : false;\r\n }\r\n\r\n // Check if Any Entry has less than Minimum length\r\n checkHasMinLengthQty(): void {\r\n this.hasMinlengthError = [];\r\n this.productQuantityForm?.controls?.forEach((element: any, ind: any) => {\r\n if (\r\n element?.value?.prodLen < this.cuttingValidation?.minLength &&\r\n !this.isNullOrEmpty(element?.value?.prodLen)\r\n ) {\r\n this.hasMinlengthError.push(ind);\r\n }\r\n });\r\n this.cdr.detectChanges();\r\n }\r\n\r\n pad3Digits(value: any): any {\r\n const qty = value;\r\n if (!this.isNullOrEmpty(qty) && !isNaN(qty)) {\r\n return parseFloat(qty)\r\n ?.toFixed(3)\r\n ?.replace(/(\\d)(?=(\\d{3})+\\b)/g, '$1,');\r\n }\r\n }\r\n\r\n // Convert Length to demial format after blur\r\n updateLenthValue(element: any): void {\r\n if (!this.isNullOrEmpty(element?.value)) {\r\n element.value = this.pad3Digits(element.value);\r\n }\r\n this.checkHasMinLengthQty();\r\n }\r\n}\r\n","<ng-container *ngIf=\"productDetails\" [formGroup]=\"productForm\">\r\n <div class=\"row\">\r\n <ng-container>\r\n <div\r\n class=\"col p-0 bundling\"\r\n *ngIf=\"!isFinishedProduct && !isFlashingProduct\"\r\n >\r\n <span class=\"pr-2 font-weight-bold text\">Bundling </span>\r\n <span>\r\n <label class=\"switch\">\r\n <input\r\n type=\"checkbox\"\r\n formControlName=\"bundling\"\r\n (change)=\"updateBundling($event)\"\r\n />\r\n <span class=\"slider round\"></span>\r\n </label>\r\n </span>\r\n </div>\r\n </ng-container>\r\n <div class=\"quantity border p-3 mt-4\">\r\n <ng-container formArrayName=\"productQuantity\">\r\n <datalist id=\"bundleList\">\r\n <option *ngFor=\"let bundle of bundleList\">\r\n {{ bundle }}\r\n </option>\r\n </datalist>\r\n <table\r\n class=\"no-border\"\r\n [ngClass]=\"{\r\n 'has-bundle': hasBundle,\r\n accessories: isFinishedProduct\r\n }\"\r\n >\r\n <thead>\r\n <th>Quantity</th>\r\n <th *ngIf=\"!isFinishedProduct\">Length (LM)</th>\r\n <th *ngIf=\"hasBundle\">\r\n Bundle\r\n <span\r\n class=\"info-icon\"\r\n ngbTooltip=\"Bundle Information goes here....\"\r\n placement=\"bottom\"\r\n >\r\n </span>\r\n </th>\r\n <th\r\n *ngIf=\"hasBundle\"\r\n class=\"d-none\"\r\n [ngClass]=\"{ 'd-lg-block': listView }\"\r\n >\r\n Reference\r\n <span\r\n class=\"info-icon\"\r\n ngbTooltip=\"Reference Information goes here....\"\r\n placement=\"bottom\"\r\n >\r\n </span>\r\n </th>\r\n <th></th>\r\n </thead>\r\n <tbody>\r\n <ng-container\r\n *ngFor=\"\r\n let val of productForm.get('productQuantity')['controls'];\r\n let i = index\r\n \"\r\n [formGroupName]=\"i\"\r\n >\r\n <tr>\r\n <td>\r\n <input\r\n class=\"form-control prod-qty\"\r\n formControlName=\"prodQty\"\r\n minlength=\"1\"\r\n maxlength=\"2\"\r\n OnlyNumber=\"true\"\r\n (blur)=\"updateTotal()\"\r\n />\r\n </td>\r\n <td *ngIf=\"!isFinishedProduct\">\r\n <input\r\n class=\"form-control prod-len\"\r\n formControlName=\"prodLen\"\r\n #prodLen\r\n minlength=\"1\"\r\n maxlength=\"7\"\r\n OnlyNumber=\"true\"\r\n (blur)=\"updateTotal(); updateLenthValue(prodLen)\"\r\n />\r\n </td>\r\n <td *ngIf=\"hasBundle && !isFinishedProduct\">\r\n <div class=\"d-none\" [ngClass]=\"{ 'd-lg-block': listView }\">\r\n <input\r\n class=\"form-control prod-bundle\"\r\n formControlName=\"prodBundle\"\r\n #prodBundle\r\n (input)=\"\r\n prodBundle.value = prodBundle.value.toUpperCase()\r\n \"\r\n minlength=\"1\"\r\n maxlength=\"2\"\r\n (blur)=\"\r\n updateTotal(); populateSameBundleReference(null, i)\r\n \"\r\n (focus)=\"updateBundleList()\"\r\n list=\"bundleList\"\r\n />\r\n </div>\r\n <div [ngClass]=\"{ 'd-lg-none d-xl-none': listView }\">\r\n <p class=\"p-0 m-0\" *ngFor=\"let value of getBundleValues(i)\">\r\n {{ value }}\r\n </p>\r\n </div>\r\n <div class=\"side-menu-button\" *ngIf=\"!listView\">\r\n <div class=\"btn-group dropleft\" *ngIf=\"hasBundle\">\r\n <a\r\n type=\"button\"\r\n class=\"dropdown-toggle\"\r\n href=\"#\"\r\n role=\"button\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n aria-expanded=\"false\"\r\n >\r\n <i class=\"fa fa-ellipsis-v\"></i>\r\n </a>\r\n <div class=\"dropdown-menu\">\r\n <a\r\n class=\"dropdown-item m-0\"\r\n data-toggle=\"modal\"\r\n data-target=\"#bundleModal\"\r\n (click)=\"editBundleValue(i)\"\r\n >\r\n Edit Bundle Value\r\n </a>\r\n <a\r\n class=\"dropdown-item m-0\"\r\n *ngIf=\"i > 0 || productQuantityForm.length > 1\"\r\n (click)=\"removeProductQuantityForm(i, $event)\"\r\n >\r\n Remove\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </td>\r\n <td *ngIf=\"hasBundle && !isFinishedProduct && listView\">\r\n <div class=\"d-none\" [ngClass]=\"{ 'd-lg-block': listView }\">\r\n <input\r\n class=\"form-control prod-reference\"\r\n minlength=\"1\"\r\n maxlength=\"15\"\r\n (focus)=\"populateSameBundleReference($event, i)\"\r\n formControlName=\"prodRef\"\r\n (blur)=\"\r\n updateTotal();\r\n updateSameBundleReference($event, i, true)\r\n \"\r\n />\r\n </div>\r\n </td>\r\n <td *ngIf=\"listView\">\r\n <button\r\n *ngIf=\"\r\n i > 0 || (productQuantityForm.length > 1 && listView)\r\n \"\r\n class=\"simple close d-sm-none d-md-none d-lg-block d-xl-block\"\r\n (click)=\"removeProductQuantityForm(i, $event)\"\r\n >\r\n <i class=\"fas fa-times-circle custom-arrow remove-icon\"></i>\r\n </button>\r\n\r\n <div [ngClass]=\"{ 'd-lg-none d-xl-none': listView }\">\r\n <div class=\"btn-group dropleft\" *ngIf=\"hasBundle\">\r\n <a\r\n type=\"button\"\r\n class=\"dropdown-toggle\"\r\n href=\"#\"\r\n role=\"button\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n aria-expanded=\"false\"\r\n >\r\n <i class=\"fa fa-ellipsis-v\"></i>\r\n </a>\r\n <div class=\"dropdown-menu\">\r\n <a\r\n class=\"dropdown-item m-0\"\r\n data-toggle=\"modal\"\r\n data-target=\"#bundleModal\"\r\n (click)=\"editBundleValue(i)\"\r\n >\r\n Edit Bundle Value\r\n </a>\r\n <a\r\n class=\"dropdown-item m-0\"\r\n *ngIf=\"i > 0 || productQuantityForm.length > 1\"\r\n (click)=\"removeProductQuantityForm(i, $event)\"\r\n >\r\n Remove\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"hasErrors(i)\">\r\n <td colspan=\"4\" class=\"text-danger\">\r\n <div class=\"mt-0\" *ngIf=\"prodQtyErrors(i)\">\r\n Please enter valid Quantity\r\n </div>\r\n <div class=\"mt-2\" *ngIf=\"prodLenErrors(i)\">\r\n Please enter valid Length\r\n </div>\r\n <div class=\"mt-2\" *ngIf=\"minLenErrors(i)\">\r\n Minimum length should be at least\r\n {{ cuttingValidation?.minLength }}\r\n </div>\r\n <div class=\"mt-2\" *ngIf=\"prodBundleErrors(i)\">\r\n Please enter valid Bundle Name\r\n </div>\r\n <div class=\"mt-2\" *ngIf=\"prodRefErrors(i)\">\r\n Please enter valid Reference\r\n </div>\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"hasErrorIndex(i)\">\r\n <td colspan=\"4\" class=\"text-danger\">\r\n Should not exceed maximum bundle size\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"hasProdRefErrorIndex(i)\">\r\n <td colspan=\"4\" class=\"text-danger\">\r\n This Reference value is already used. Please use other value\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n <button\r\n class=\"simple pl-2\"\r\n *ngIf=\"!isFinishedProduct && !disableAddMore\"\r\n (click)=\"addProductQuantityFormGroup($event)\"\r\n >\r\n <span class=\"mr-1 add-more\"> </span>\r\n Add more\r\n </button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<div\r\n class=\"row mt-4 col-sm-12 alert alert-danger justify-content-start\"\r\n role=\"alert\"\r\n *ngIf=\"addToCartError | async\"\r\n>\r\n <img\r\n class=\"mr-3\"\r\n src=\"../../../../../assets/images/erroricon.svg\"\r\n alt=\"alert\"\r\n />\r\n {{ addToCartError }}\r\n</div>\r\n\r\n<div\r\n class=\"modal fade edit-bundle-form\"\r\n id=\"bundleModal\"\r\n role=\"dialog\"\r\n aria-hidden=\"true\"\r\n>\r\n <div class=\"modal-dialog modal-lg\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title\">Bundle Value</h4>\r\n <i\r\n class=\"icon-close invite-pop-close\"\r\n data-dismiss=\"modal\"\r\n aria-label=\"Close\"\r\n ></i>\r\n </div>\r\n <div class=\"modal-body m-0 pl-2 pr-2\">\r\n <table class=\"table no-border\" *ngIf=\"!isFinishedProduct\">\r\n <thead>\r\n <th>\r\n Bundle\r\n <span\r\n class=\"info-icon\"\r\n ngbTooltip=\"Bundle Information goes here....\"\r\n placement=\"bottom\"\r\n >\r\n </span>\r\n </th>\r\n <th>\r\n Reference\r\n <span\r\n class=\"info-icon\"\r\n ngbTooltip=\"Reference Information goes here....\"\r\n placement=\"bottom\"\r\n >\r\n </span>\r\n </th>\r\n </thead>\r\n <tbody [formGroup]=\"modalBundleForm\">\r\n <tr>\r\n <td>\r\n <datalist id=\"modBundleList\">\r\n <option *ngFor=\"let bundle of bundleList\">\r\n {{ bundle }}\r\n </option>\r\n </datalist>\r\n <input\r\n class=\"form-control\"\r\n maxlength=\"2\"\r\n formControlName=\"modBundle\"\r\n #modBundle\r\n (focus)=\"updateBundleList()\"\r\n (input)=\"modBundle.value = modBundle.value.toUpperCase()\"\r\n list=\"modBundleList\"\r\n (blur)=\"populateSameBundleReference(null, selectedIndex)\"\r\n />\r\n </td>\r\n <td>\r\n <input\r\n class=\"form-control\"\r\n maxlength=\"15\"\r\n (focus)=\"populateSameBundleReference($event, selectedIndex)\"\r\n formControlName=\"modRef\"\r\n />\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n\r\n <div class=\"modal-footer\">\r\n <button\r\n type=\"submit\"\r\n data-dismiss=\"modal\"\r\n #closebutton\r\n class=\"btn btn-light\"\r\n >\r\n Cancel\r\n </button>\r\n <button type=\"submit\" (click)=\"saveBundleDetails($event)\" class=\"btn\">\r\n Save\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'split'\r\n})\r\n\r\nexport class SplitPipe implements PipeTransform {\r\n transform(text: string, by: string, index: number = 1) {\r\n let arr = text.split(by);\r\n return arr[index]\r\n }\r\n}","import {\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n OnChanges,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs'; \r\nimport { ActiveCartService } from '@spartacus/core';\r\nimport { CartService } from '../../../services/cart.service';\r\nimport { FormGroup, FormBuilder, FormArray } from '@angular/forms';\r\nimport { CartForm } from '../../CustomProduct';\r\n\r\n@Component({\r\n selector: 'app-custom-cart-grid',\r\n templateUrl: './custom-cart-grid.component.html',\r\n styleUrls: ['./custom-cart-grid.component.scss'],\r\n})\r\nexport class CustomCartGridComponent implements OnInit, OnChanges {\r\n isFinishedPoduct: boolean = false;\r\n additinalselectedColour: any = [];\r\n modalSelectedColour: any = [];\r\n isShow: boolean = true;\r\n showDetails: any = [];\r\n disableAddMore: boolean = false;\r\n errorIndex: any = [];\r\n rowIndex = 0;\r\n cartId: any;\r\n showWaitCursor = new BehaviorSubject<boolean>(false);\r\n\r\n @Input() additionalPara: any;\r\n @Input() cartDetails: any;\r\n @Input() isCardData: any;\r\n @Output() updateCartEntry = new EventEmitter<any>();\r\n @ViewChild('closeInviteModal') closeInviteModal: any;\r\n isModalSelectedColor: any = [];\r\n imageModalSrc: any;\r\n\r\n selectedColour: any;\r\n\r\n selectedIndex: any;\r\n arrowUpDown: any = [];\r\n defaultConfigInfo: any = {\r\n configuratorType: 'TEXTFIELD',\r\n configurationLabel: 'COLOR',\r\n configurationValue: '',\r\n };\r\n\r\n productCode: any;\r\n productDetails: any;\r\n accessoriesPrice: any;\r\n finishedVariantDetails: any;\r\n\r\n productForm: any = new FormGroup({});\r\n addToCartError: any = null;\r\n errorMessage = 'Some error occurred while processing data';\r\n showToast: boolean = false;\r\n env: any = sessionStorage.getItem('env');\r\n environment : any = JSON.parse(this.env);\r\n constructor(\r\n private cartService: CartService,\r\n private cdr: ChangeDetectorRef,\r\n private formBuilder: FormBuilder,\r\n private activeCartService: ActiveCartService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n const cartObj: any = localStorage.getItem('spartacus⚿dimond-spa⚿cart');\r\n this.cartId = JSON.parse(cartObj)?.active;\r\n\r\n this.productForm = this.formBuilder.group({\r\n cart: this.formBuilder.array([]),\r\n });\r\n\r\n this.updateDefaultCartDetails();\r\n this.cartService.expandAll.subscribe((data) => {\r\n for (let i = 0; i < this.cartDetails.length; i++) {\r\n this.showDetails[i] = data;\r\n }\r\n });\r\n this.cdr.detectChanges();\r\n }\r\n\r\n get cartForm(): FormArray {\r\n return this.productForm.get('cart') as FormArray;\r\n }\r\n\r\n hasCartDetails(): boolean {\r\n return this.cartForm && Object.keys(this.cartForm)?.length > 0;\r\n }\r\n\r\n updateDefaultCartDetails() {\r\n for (let i = 0; i < this.cartDetails.length; i++) {\r\n this.cartForm?.push(this.formBuilder.group(new CartForm()));\r\n this.cartForm?.controls[i]\r\n .get('jobReference')\r\n ?.setValue(this.cartDetails[i]?.jobReference);\r\n const qty = this.cartDetails[i]?.product?.finishedProduct\r\n ? parseInt(this.cartDetails[i]?.quantity)\r\n : this.cartDetails[i]?.quantityDouble;\r\n this.cartForm?.controls[i].get('prodQty')?.setValue(qty);\r\n this.isModalSelectedColor.push(false);\r\n this.showDetails.push(false);\r\n if (\r\n this.cartDetails[i]?.configurationInfos &&\r\n this.cartDetails[i]?.configurationInfos?.length > 0\r\n ) {\r\n for (const config of this.cartDetails[i]?.configurationInfos) {\r\n if (config?.configurationLabel == 'COLOR') {\r\n this.defaultConfigInfo.configurationValue =\r\n config?.configurationValue?.split('|')[0] || '';\r\n }\r\n }\r\n if (\r\n this.cartDetails[i]?.configValues &&\r\n this.cartDetails[i]?.configValues?.length > 0\r\n )\r\n this.cartDetails[i]['configValues'] = this.defaultConfigInfo;\r\n }\r\n }\r\n }\r\n\r\n getColours(cartDetails: any, index: number) {\r\n this.selectedColour =\r\n cartDetails?.configurationInfos[0]?.configurationValue.split('|');\r\n // for (let i = 0; i >= this.cartDetails.length; i++) {\r\n // this.showDetails[i] = false;\r\n // }\r\n this.selectedIndex = index;\r\n\r\n for (let i = 0; i < this.cartDetails.length; i++) {\r\n if (i != index) {\r\n this.cartDetails[i].isExpand = false;\r\n } else {\r\n this.cartDetails[index].isExpand = !this.cartDetails[index].isExpand;\r\n }\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n\r\n updateSelectedColourCode(code: any): void {\r\n if (\r\n this.cartDetails[this.selectedIndex] &&\r\n this.cartDetails[this.selectedIndex]?.configValues\r\n ) {\r\n this.cartDetails[this.selectedIndex].configValues.configurationValue =\r\n code;\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (!changes?.cartDetails?.firstChange) {\r\n this.updateDefaultCartDetails();\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n showHide(ind: number): void {\r\n this.showDetails[ind] = !this.showDetails[ind];\r\n }\r\n arrowHideShow(id: number) {\r\n this.arrowUpDown[id] = !this.arrowUpDown[id];\r\n }\r\n modalSelectedColor(event: any, colour: any, ind: number): void {\r\n event.preventDefault();\r\n if (this.isFinishedPoduct === true) {\r\n this.additinalselectedColour[ind] = colour;\r\n } else {\r\n this.modalSelectedColour[ind] = colour;\r\n //this.additinalselectedColour = colour;\r\n this.selectedColour = colour?.code || this.selectedColour;\r\n }\r\n this.isModalSelectedColor[ind] = true;\r\n this.updateSelectedColourCode(colour?.code);\r\n this.cdr.detectChanges();\r\n this.updateProductColor(this.cartDetails[ind], colour, ind);\r\n }\r\n\r\n updateProductColor(cart: any, color: any, index: any): void {\r\n //event.preventDefault();\r\n const obj = [];\r\n obj.push({\r\n \"configuratorType\": \"TEXTFIELD\",\r\n \"configurationLabel\": \"COLOR\",\r\n \"configurationValue\": color?.code\r\n });\r\n this.updateCartDetails(cart, index, obj);\r\n }\r\n\r\n addtionalModalSelectedColor(event: any, colour: any, ind: number): void {\r\n event.preventDefault();\r\n if (this.isFinishedPoduct === true) {\r\n this.additinalselectedColour[ind] = colour;\r\n } else {\r\n this.additinalselectedColour[ind] = colour;\r\n }\r\n //this.modalSelectedColour[ind] = colour;\r\n //this.selectedColour = colour?.code;\r\n\r\n this.cdr.detectChanges();\r\n this.updateSelectedColourCode(this.selectedColour);\r\n\r\n }\r\n\r\n proceedWithSubmit(color: any, ind: number) {\r\n this.isModalSelectedColor[ind] = true;\r\n this.modalSelectedColour[ind] = color[0];\r\n this.closeInviteModal.nativeElement.click();\r\n this.updateProductColor(this.cartDetails[ind], color[0], ind);\r\n this.getColours(color, ind)\r\n\r\n }\r\n\r\n cancel() {\r\n this.additinalselectedColour = [];\r\n }\r\n\r\n deleteEntry(entNumber: any): void {\r\n this.showWaitCursor.next(true);\r\n this.cartService.deleteCartEntry(this.cartId, entNumber).subscribe(\r\n (data: any) => {\r\n this.cdr.detectChanges();\r\n this.updateCartEntry.emit();\r\n this.activeCartService.reloadActiveCart();\r\n this.showWaitCursor.next(false);\r\n },\r\n (error: any) => {\r\n this.showWaitCursor.next(false);\r\n }\r\n );\r\n }\r\n\r\n // Check if any value is empty or undefined\r\n isNullOrEmpty(value: any): boolean {\r\n return value == null || value == undefined || value == '';\r\n }\r\n\r\n // Update Cart Details if Quantity Changed for Accessories only\r\n updateCartDetails(cart: any, index: any, color?:any): void {\r\n let payLoad: any = {};\r\n this.showWaitCursor.next(true);\r\n const entryNumber = cart?.product?.entryNumber || cart?.entryNumber;\r\n if (color) {\r\n payLoad = {\r\n quantity: parseInt(this.cartForm?.controls[index]?.get('prodQty')?.value),\r\n \"configurationInfos\": color\r\n };\r\n }\r\n else if (cart?.product?.finishedProduct) {\r\n payLoad = {\r\n quantity: parseInt(this.cartForm?.controls[index]?.get('prodQty')?.value),\r\n jobReference:\r\n this.cartForm?.controls[index]?.get('jobReference')?.value,\r\n };\r\n } else {\r\n payLoad = {\r\n quantity: 1,\r\n product: {\r\n code: cart?.product?.code,\r\n },\r\n jobReference:\r\n this.cartForm?.controls[index]?.get('jobReference')?.value,\r\n };\r\n }\r\n this.cartService\r\n .updateCartEntry(this.cartId, entryNumber, payLoad)\r\n .subscribe(\r\n (response: any) => {\r\n if (response?.statusCode?.toLowerCase() == 'success') {\r\n this.activeCartService.reloadActiveCart();\r\n this.updateCartEntry.emit();\r\n this.cdr.detectChanges();\r\n this.showToast = true;\r\n this.showWaitCursor.next(false);\r\n setTimeout(() => {\r\n this.showToast = false;\r\n }, 4000);\r\n } else {\r\n this.addToCartError =\r\n response?.errors[0]?.message ||\r\n response?.errors[0]?.errorMessage ||\r\n this.errorMessage;\r\n this.showWaitCursor.next(false);\r\n }\r\n },\r\n (error: any) => {\r\n this.addToCartError =\r\n error?.error?.errors[0]?.message ||\r\n error?.error?.errors[0]?.errorMessage ||\r\n this.errorMessage;\r\n this.showWaitCursor.next(false);\r\n }\r\n );\r\n }\r\n\r\n // Get Product Quantity Errors\r\n prodQtyErrors(index: any): any {\r\n return (\r\n (this.cartForm?.controls[index]?.get('prodQty')?.errors ||\r\n this.cartForm?.controls[index]?.get('prodQty')?.invalid) &&\r\n (this.cartForm?.controls[index]?.get('prodQty')?.dirty ||\r\n this.cartForm?.controls[index]?.get('prodQty')?.touched)\r\n );\r\n }\r\n\r\n // Get Job Reference Errors\r\n jobReferenceErrors(index: any): any {\r\n return (\r\n (this.cartForm?.controls[index]?.get('jobReference')?.errors ||\r\n this.cartForm?.controls[index]?.get('jobReference')?.invalid) &&\r\n (this.cartForm?.controls[index]?.get('jobReference')?.dirty ||\r\n this.cartForm?.controls[index]?.get('jobReference')?.touched)\r\n );\r\n }\r\n\r\n // Check is Form Valid\r\n isFormValid(index: any, cart: any): any {\r\n return (\r\n this.cartForm?.controls[index] &&\r\n this.cartForm?.controls[index]?.get('jobReference')?.valid &&\r\n (this.cartForm?.controls[index]?.get('prodQty')?.valid ||\r\n !cart?.product?.finishedProduct)\r\n );\r\n }\r\n\r\n // Update Cart Details on change of Job Reference or Quantity\r\n updateCart(event: any, cart: any, index: any): void {\r\n event.preventDefault();\r\n const value = event?.currentTarget?.value;\r\n if (!this.isNullOrEmpty(value) && this.isFormValid(index, cart)) {\r\n this.updateCartDetails(cart, index);\r\n }\r\n }\r\n\r\n updateJobReference(event: any, cart: any, index: any): void {\r\n event.preventDefault();\r\n this.updateCartDetails(cart, index);\r\n }\r\n\r\n reoladCartEntires(): void {\r\n this.updateCartEntry.emit();\r\n }\r\n\r\n\r\n // Get the Image Details based on Products\r\n getImageDetails(cartDetails: any, thumbnail: any = true): any {\r\n let imageUrl: any = cartDetails?.product?.images;\r\n if (this.isCardData) {\r\n imageUrl = cartDetails?.product?.images;\r\n } else {\r\n imageUrl = cartDetails?.product?.images?.PRIMARY?.cartIcon;\r\n }\r\n let srcUrl: any;\r\n if (\r\n cartDetails?.attachments &&\r\n cartDetails?.attachments?.length &&\r\n cartDetails?.product?.flashingProduct\r\n ) {\r\n srcUrl =\r\n thumbnail && cartDetails?.attachments?.length > 1\r\n ? cartDetails?.attachments[1]?.downloadURL\r\n : cartDetails?.attachments[0]?.downloadURL;\r\n imageUrl = {\r\n url: (\r\n this.environment.occBaseUrl.slice(0, this.environment.occBaseUrl.length - 1) +\r\n srcUrl\r\n )?.replace('&attachment=true', ''),\r\n };\r\n }\r\n return imageUrl;\r\n }\r\n\r\n viewImage(event: any, cartDetails: any): void {\r\n event.preventDefault();\r\n this.imageModalSrc = this.getImageDetails(cartDetails, false)?.url;\r\n }\r\n\r\n getPdfLink(cartDetails: any): void {\r\n return this.getImageDetails(cartDetails, false)?.url;\r\n }\r\n\r\n hasImage(cartDetails: any): boolean {\r\n const mimeType = cartDetails?.attachments[0]?.mime;\r\n const mimeArray = [\"image/png\", \"image/jpg\", \"image/jpeg\"];\r\n return mimeArray.includes(mimeType);\r\n }\r\n\r\n closeToast(): void {\r\n this.showToast = false;\r\n }\r\n}\r\n","<div class=\"loading\" *ngIf=\"showWaitCursor | async\">Loading&#8230;</div>\r\n<ng-container [formGroup]=\"productForm\">\r\n <ng-container formArrayName=\"cart\" *ngIf=\"hasCartDetails()\">\r\n <div class=\"py-3\">\r\n <div class=\"row\">\r\n <div\r\n class=\"col-lg-3 col-sm-6\"\r\n *ngFor=\"let cart of cartForm.controls; let i = index\"\r\n [formGroupName]=\"i\"\r\n >\r\n <div\r\n class=\"cart-grid-tile\"\r\n *ngIf=\"!isNullOrEmpty(cartDetails[i]?.product?.code)\"\r\n >\r\n <div class=\"grid-tile-top position-relative\">\r\n <div\r\n class=\"d-flex justify-content-between align-items-center mb-3\"\r\n >\r\n <span class=\"sku-code\"\r\n >SKU:{{ cartDetails[i]?.product?.code }}</span\r\n >\r\n <span>\r\n <img\r\n class=\"delete-icon\"\r\n src=\"../../../../../assets/images/ionic-trash.svg\"\r\n alt=\"delete\"\r\n (click)=\"deleteEntry(cartDetails[i]?.entryNumber)\"\r\n /></span>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-3 col-3 pr-0\">\r\n <!-- <cx-media\r\n [container]=\"cartDetails[i]?.product?.images\"\r\n format=\"cartIcon\"\r\n role=\"presentation\"\r\n ></cx-media> -->\r\n\r\n <ng-container\r\n *ngIf=\"\r\n cartDetails[i]?.product?.flashingProduct;\r\n else normalImage\r\n \"\r\n >\r\n <a\r\n data-toggle=\"modal\"\r\n class=\"flashing-expand\"\r\n (click)=\"viewImage($event, cartDetails[i])\"\r\n [attr.data-target]=\"'#imageModal'\"\r\n *ngIf=\"hasImage(cartDetails[i]); else hasPdf\"\r\n >\r\n <cx-media\r\n [container]=\"getImageDetails(cartDetails[i])\"\r\n format=\"cartIcon\"\r\n role=\"presentation\"\r\n ></cx-media>\r\n </a>\r\n <ng-template #hasPdf>\r\n <a class=\"flashing-expand flashing-open\" [href]=\"getPdfLink(cartDetails[i])\" target=\"_blank\">\r\n <img\r\n class=\"pdf-icon\"\r\n src=\"../../../../../assets/images/pdf-icon.svg\"\r\n alt=\"Click to open PDF\"\r\n title=\"Click to open PDF\"\r\n />\r\n </a>\r\n </ng-template>\r\n </ng-container>\r\n <ng-template #normalImage>\r\n <cx-media\r\n [container]=\"getImageDetails(cartDetails[i])\"\r\n format=\"cartIcon\"\r\n role=\"presentation\"\r\n ></cx-media>\r\n </ng-template>\r\n </div>\r\n <div class=\"col-md-7 col-7 ellipsis\">\r\n <h4\r\n placement=\"top\"\r\n title=\"{{ cartDetails[i]?.product?.name }}\"\r\n >\r\n {{ cartDetails[i]?.product?.name }}\r\n </h4>\r\n </div>\r\n </div>\r\n <span class=\"expandBtn\" (click)=\"arrowHideShow(i)\">\r\n <ng-container *ngIf=\"arrowUpDown[i] == true; else arrowUp\">\r\n <i class=\"fas fa-chevron-up\"></i>\r\n </ng-container>\r\n <ng-template #arrowUp>\r\n <i class=\"fas fa-chevron-down\"></i>\r\n </ng-template>\r\n </span>\r\n </div>\r\n <ng-container *ngIf=\"arrowUpDown[i]\">\r\n <div class=\"grid-tile-middle\">\r\n <ng-container *ngIf=\"cartDetails[i]?.product?.classifications\">\r\n <p class=\"mt-3 mb-0 ellipsis sigleLine_ellipsis\">\r\n <span\r\n *ngFor=\"\r\n let attributes of cartDetails[i]?.product &&\r\n cartDetails[i]?.product?.classifications &&\r\n cartDetails[i]?.product?.classifications[0] &&\r\n cartDetails[i]?.product?.classifications[0]?.features;\r\n last as isLast\r\n \"\r\n >\r\n {{ attributes?.featureValues[0]?.value }}\r\n <span *ngIf=\"!isLast\"> | </span>\r\n <span *ngIf=\"isLast\">mm</span>\r\n </span>\r\n </p>\r\n </ng-container>\r\n <input\r\n type=\"text\"\r\n [value]=\"cartDetails[i].jobReference\"\r\n formControlName=\"jobReference\"\r\n class=\"custom-input-field\"\r\n (blur)=\"updateJobReference($event, cartDetails[i], i)\"\r\n />\r\n <div\r\n class=\"mt-2 text-danger mb-2\"\r\n *ngIf=\"jobReferenceErrors(i)\"\r\n >\r\n Please enter valid Job Reference\r\n </div>\r\n <div\r\n *ngIf=\"!isModalSelectedColor[i]\"\r\n class=\"d-flex align-items-center mb-2\"\r\n >\r\n <span\r\n class=\"color-block\"\r\n *ngIf=\"\r\n cartDetails[i] &&\r\n cartDetails[i].configurationInfos &&\r\n cartDetails[i].configurationInfos[0] &&\r\n cartDetails[i]?.configurationInfos[0]?.configurationValue\r\n \"\r\n [ngStyle]=\"{\r\n background:\r\n cartDetails[i]?.configurationInfos[0]\r\n ?.configurationValue | split : '|' : 2\r\n }\"\r\n ></span>\r\n <a\r\n class=\"more-color\"\r\n [ngClass]=\"{\r\n nolinkForflash: cartDetails[i]?.product?.flashingProduct\r\n }\"\r\n data-toggle=\"collapse\"\r\n href=\"#collapseColours{{ i }}\"\r\n *ngIf=\"\r\n cartDetails[i] &&\r\n cartDetails[i].configurationInfos &&\r\n cartDetails[i].configurationInfos[0] &&\r\n cartDetails[i]?.configurationInfos[0]?.configurationValue\r\n \"\r\n (click)=\"\r\n !cartDetails[i]?.product?.flashingProduct &&\r\n getColours(cartDetails[i], i)\r\n \"\r\n ngbTooltip=\"{{\r\n cartDetails[i]?.configurationInfos[0]?.configurationValue\r\n | split : '|' : 1\r\n }}\"\r\n >\r\n {{\r\n cartDetails[i]?.configurationInfos[0]?.configurationValue\r\n | split : \"|\" : 1\r\n }}\r\n <i\r\n *ngIf=\"!cartDetails[i]?.product?.flashingProduct\"\r\n class=\"fas fa-chevron-down dropdown-icon\"\r\n ></i\r\n ></a>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"\r\n isModalSelectedColor[i] ||\r\n cartDetails[i]?.product?.finishedProduct\r\n \"\r\n class=\"d-flex align-items-center mb-2\"\r\n >\r\n <span\r\n class=\"color-block\"\r\n [ngStyle]=\"{\r\n background:\r\n modalSelectedColour[i]?.hexadecimalCode ||\r\n cartDetails[i]?.product?.bpAdditionalAttribute\r\n ?.colours[0]?.name\r\n }\"\r\n ></span>\r\n <a\r\n class=\"more-color\"\r\n [ngClass]=\"{\r\n nolinkForflash: cartDetails[i]?.product?.flashingProduct\r\n }\"\r\n data-toggle=\"collapse\"\r\n href=\"#collapseColours{{ i }}\"\r\n (click)=\"\r\n !cartDetails[i]?.product?.flashingProduct &&\r\n getColours(cartDetails[i], i)\r\n \"\r\n >\r\n {{\r\n modalSelectedColour[i]?.name ||\r\n cartDetails[i]?.product?.bpAdditionalAttribute\r\n ?.colours[0]?.name\r\n }}\r\n <i\r\n *ngIf=\"!cartDetails[i]?.product?.flashingProduct\"\r\n class=\"fas fa-chevron-down dropdown-icon\"\r\n ></i\r\n ></a>\r\n </div>\r\n\r\n <!-- avaialable colours popup -->\r\n <div\r\n *ngIf=\"cartDetails[i]?.isExpand\"\r\n class=\"collapse colours_container\"\r\n id=\"collapseColours{{ i }}\"\r\n >\r\n <div class=\"card card-body\">\r\n <div\r\n *ngIf=\"\r\n cartDetails[i]?.product?.finishedProduct &&\r\n cartDetails[i]?.product?.variantOptions\r\n \"\r\n class=\"colours m-1 pt-3\"\r\n >\r\n <ng-container\r\n *ngFor=\"\r\n let modalcolour of cartDetails[i]?.product\r\n ?.variantOptions;\r\n let j = index\r\n \"\r\n >\r\n <div\r\n (click)=\"\r\n modalSelectedColor(\r\n $event,\r\n modalcolour.colours[0],\r\n i\r\n )\r\n \"\r\n class=\"colour m-1 mb-3 main\"\r\n [ngStyle]=\"{\r\n background: modalcolour?.colours[0]?.hexadecimalCode\r\n }\"\r\n [ngClass]=\"{\r\n selected:\r\n modalSelectedColour[i]?.hexadecimalCode ==\r\n modalcolour?.colours[0]?.hexadecimalCode\r\n }\"\r\n >\r\n <div class=\"checkbox\"></div>\r\n <p\r\n class=\"colour-title\"\r\n placement=\"bottom\"\r\n ngbTooltip=\"{{ modalcolour?.colours[0]?.name }}\"\r\n >\r\n {{ modalcolour?.colours[0]?.name }}\r\n </p>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n !cartDetails[i]?.product?.finishedProduct &&\r\n cartDetails[i]?.product?.variantOptions\r\n \"\r\n class=\"colours m-1 pt-3\"\r\n >\r\n <ng-container\r\n *ngFor=\"\r\n let modalcolour of cartDetails[i]?.product\r\n ?.bpAdditionalAttribute?.colours;\r\n let j = index\r\n \"\r\n >\r\n <div\r\n (click)=\"modalSelectedColor($event, modalcolour, i)\"\r\n class=\"colour m-1 mb-3 main\"\r\n [ngStyle]=\"{\r\n background: modalcolour?.hexadecimalCode\r\n }\"\r\n [ngClass]=\"{\r\n selected:\r\n modalSelectedColour[i]?.hexadecimalCode ==\r\n modalcolour?.hexadecimalCode\r\n }\"\r\n >\r\n <div class=\"checkbox\"></div>\r\n <p\r\n class=\"colour-title\"\r\n placement=\"bottom\"\r\n ngbTooltip=\"{{ modalcolour?.name }}\"\r\n >\r\n {{ modalcolour?.name }}\r\n </p>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"\r\n cartDetails[i]?.product?.bpAdditionalAttribute\r\n ?.additionalColours?.length > 0\r\n \"\r\n >\r\n <a\r\n data-toggle=\"modal\"\r\n data-target=\"#additionalColorsModal\"\r\n >\r\n <u> Additional colors may be avialable </u></a\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- <div *ngIf=\"cartDetails[i]?.product?.flashingProduct == false\"\r\n class=\"collapse colours_container\"\r\n id=\"collapseColours{{ i }}\"\r\n >\r\n <div class=\"card card-body\">\r\n <div class=\"colours m-1 pt-3\">\r\n <ng-container\r\n *ngFor=\"\r\n let modalcolour of cartDetails[i]?.product\r\n ?.bpAdditionalAttribute?.colours;\r\n let j = index\r\n \"\r\n >\r\n <div\r\n (click)=\"modalSelectedColor($event, modalcolour, i)\"\r\n class=\"colour m-1 mb-3 main\"\r\n [ngStyle]=\"{\r\n background: modalcolour?.hexadecimalCode\r\n }\"\r\n [ngClass]=\"{\r\n selected:\r\n modalSelectedColour[i]?.hexadecimalCode ==\r\n modalcolour?.hexadecimalCode\r\n }\"\r\n >\r\n <div class=\"checkbox\"></div>\r\n <p\r\n class=\"colour-title\"\r\n placement=\"bottom\"\r\n ngbTooltip=\"{{ modalcolour?.name }}\"\r\n >\r\n {{ modalcolour?.name }}\r\n </p>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"cartDetails[i]?.product\r\n ?.bpAdditionalAttribute?.additionalColours?.length > 0\">\r\n <a\r\n data-toggle=\"modal\"\r\n data-target=\"#additionalColorsModal\"\r\n >\r\n <u> Additional colors may be avialable </u></a\r\n >\r\n </div>\r\n </div>\r\n </div> -->\r\n\r\n <!-- Additional colours popup-->\r\n <div\r\n class=\"modal fade\"\r\n id=\"additionalColorsModal\"\r\n role=\"dialog\"\r\n aria-labelledby=\"inviteMemberLabel\"\r\n aria-hidden=\"true\"\r\n >\r\n <div class=\"modal-dialog modal-lg\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title\">Additional Colours</h4>\r\n <i\r\n class=\"icon-close invite-pop-close\"\r\n #closeInviteModal\r\n data-dismiss=\"modal\"\r\n aria-label=\"Close\"\r\n ></i>\r\n </div>\r\n <div class=\"modal-body\">\r\n <div class=\"more-content\">\r\n <div>\r\n <img\r\n class=\"mr-2\"\r\n src=\"../../../../assets/images/warningicon.svg\"\r\n alt=\"alert\"\r\n />\r\n </div>\r\n <div>{{ additionalPara?.content }}.</div>\r\n </div>\r\n\r\n <div class=\"colours pt-3 pb-3\">\r\n <ng-container\r\n *ngFor=\"\r\n let modalcolour of cartDetails[i]?.product\r\n ?.bpAdditionalAttribute?.additionalColours;\r\n let j = index\r\n \"\r\n >\r\n <div\r\n (click)=\"\r\n addtionalModalSelectedColor(\r\n $event,\r\n modalcolour,\r\n i\r\n )\r\n \"\r\n class=\"colour m-1 mb-3 main\"\r\n [ngStyle]=\"{\r\n background: modalcolour?.hexadecimalCode\r\n }\"\r\n [ngClass]=\"{\r\n selected:\r\n additinalselectedColour[i]?.hexadecimalCode ==\r\n modalcolour?.hexadecimalCode\r\n }\"\r\n >\r\n <div class=\"checkbox\"></div>\r\n <p\r\n class=\"colour-title\"\r\n placement=\"bottom\"\r\n ngbTooltip=\"{{ modalcolour?.name }}\"\r\n >\r\n {{ modalcolour?.name }}\r\n </p>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <div\r\n class=\"m-1 pt-3\"\r\n *ngIf=\"additinalselectedColour[i]\"\r\n >\r\n <h6 class=\"font-weight-bold\">Colour Selection</h6>\r\n <div class=\"selected_color_section\">\r\n <div\r\n class=\"selected_color\"\r\n [ngStyle]=\"{\r\n background:\r\n additinalselectedColour[i]?.hexadecimalCode\r\n }\"\r\n ></div>\r\n <div>{{ additinalselectedColour[i]?.name }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-sm-flex justify-content-end d-block\">\r\n <button\r\n (click)=\"cancel()\"\r\n type=\"button\"\r\n data-dismiss=\"modal\"\r\n class=\"btn mobile-cancel-btn dimond-secondary-btn mr-lg-5\"\r\n >\r\n Cancel\r\n </button>\r\n <button\r\n (click)=\"\r\n proceedWithSubmit(additinalselectedColour, i)\r\n \"\r\n type=\"submit\"\r\n class=\"btn mobile-save-btn dimond-primary-btn float-right\"\r\n >\r\n Proceed\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <a class=\"see-more-link\" (click)=\"showHide(i)\">\r\n {{ showDetails[i] == true ? \"Hide\" : \"See\" }} more details\r\n </a>\r\n <div\r\n *ngIf=\"showDetails[i]\"\r\n class=\"grid\"\r\n [ngClass]=\"{\r\n 'quantity-form-details':\r\n !cartDetails[i]?.product?.finishedProduct\r\n }\"\r\n >\r\n <app-custom-product-quantity-form\r\n [productCode]=\"cartDetails[i]?.product?.code\"\r\n [productDetails]=\"cartDetails[i]\"\r\n [listView]=\"false\"\r\n [accessoriesPrice]=\"cartDetails[i]?.basePrice?.value\"\r\n [selectedColour]=\"selectedColour\"\r\n [finishedVariantDetails]=\"finishedVariantDetails\"\r\n [isFinishedProduct]=\"\r\n cartDetails[i]?.product?.finishedProduct\r\n \"\r\n (updateCartEntires)=\"reoladCartEntires()\"\r\n ></app-custom-product-quantity-form>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"grid-tile-bottom\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6 col-6 border-right\">\r\n <div class=\"total-qty\">\r\n <span\r\n >Total Qty: {{ cartDetails[i]?.quantityDouble\r\n }}{{ cartDetails[i]?.basePrice?.unitType }}</span\r\n ><br />\r\n <span\r\n *ngIf=\"\r\n !cartDetails[i]?.product?.finishedProduct;\r\n else nonAccessories\r\n \"\r\n >{{ cartDetails[i]?.basePrice?.formattedValue }}/{{\r\n cartDetails[i]?.basePrice?.unitType\r\n }}</span\r\n >\r\n <ng-template #nonAccessories>\r\n <span>\r\n <input\r\n class=\"qty_input refernce-input\"\r\n type=\"text\"\r\n formControlName=\"prodQty\"\r\n minlength=\"1\"\r\n maxlength=\"2\"\r\n (blur)=\"updateCart($event, cartDetails[i], i)\"\r\n />\r\n </span>\r\n </ng-template>\r\n </div>\r\n </div>\r\n <div\r\n class=\"col-md-6 col-6 d-flex justify-content-end align-items-center text-right\"\r\n >\r\n <div class=\"total-amount text-right\">\r\n <h4>{{ cartDetails[i]?.totalPrice?.formattedValue }}</h4>\r\n <span>excl GST</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"\r\n cartDetails[i]?.product?.flashingProduct &&\r\n cartDetails[i]?.productConfiguredInfos &&\r\n cartDetails[i]?.productConfiguredInfos?.length > 0\r\n \"\r\n >\r\n <div\r\n class=\"flashing-block\"\r\n *ngFor=\"let data of cartDetails[i]?.productConfiguredInfos\"\r\n >\r\n <div class=\"grid-tile-top\">\r\n <div>\r\n <h6 class=\"skuId\">SKU: {{ data?.product?.code }}</h6>\r\n <h3 class=\"flash-title\">{{ data?.product?.name }}</h3>\r\n <span *ngIf=\"data?.girth\">Grith: +{{ data?.girth }}mm</span>\r\n </div>\r\n </div>\r\n <div class=\"grid-tile-bottom\">\r\n <div class=\"row\">\r\n <div\r\n class=\"col-md-6 col-6 d-flex align-items-center border-right\"\r\n >\r\n <div class=\"total-qty\">\r\n <div>\r\n Total Qty: {{ data?.quantityDouble\r\n }}{{ data?.unitType }}\r\n </div>\r\n <span\r\n >@{{ data?.basePrice?.formattedValue }}/{{\r\n data?.unitType\r\n }}</span\r\n >\r\n </div>\r\n </div>\r\n <div\r\n class=\"col-md-6 col-6 d-flex justify-content-end align-items-center text-right\"\r\n >\r\n <div class=\"total-amount text-right\">\r\n <h4>{{ data?.totalPrice?.formattedValue }}</h4>\r\n <span>excl GST</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</ng-container>\r\n\r\n<div\r\n class=\"modal fade\"\r\n id=\"imageModal\"\r\n role=\"dialog\"\r\n aria-labelledby=\"imageModal\"\r\n aria-hidden=\"true\"\r\n #imageModal\r\n>\r\n <div class=\"modal-dialog modal-lg\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <i\r\n class=\"icon-close invite-pop-close\"\r\n #closeInviteModal\r\n data-dismiss=\"modal\"\r\n aria-label=\"Close\"\r\n ></i>\r\n </div>\r\n <div class=\"modal-body m-4\">\r\n <img [src]=\"imageModalSrc\" alt=\"alert\" />\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ngb-toast *ngIf=\"showToast\" [autohide]=\"true\" [delay]=\"4000\">\r\n <img src=\"../../../../assets/images/Invited.svg\" />\r\n Cart updated successfully!\r\n <i\r\n class=\"icon-close toast-close\"\r\n aria-label=\"Close\"\r\n (click)=\"closeToast()\"\r\n ></i>\r\n</ngb-toast>\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n SimpleChanges,\r\n Output,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport { ActiveCartService } from \"@spartacus/core\";\r\nimport { FormArray, FormBuilder, FormGroup } from \"@angular/forms\";\r\nimport { CartService } from \"../../../services/cart.service\";\r\nimport { CartForm } from \"../../CustomProduct\";\r\n\r\n\r\nexport class MultipleImage {\r\n showImage = [\"\"];\r\n storeImage = [\"\"];\r\n}\r\n@Component({\r\n selector: \"app-custom-cart-list\",\r\n templateUrl: \"./custom-cart-list.component.html\",\r\n styleUrls: [\"./custom-cart-list.component.scss\"],\r\n})\r\nexport class CustomCartListComponent implements OnInit, OnChanges {\r\n @Input() cartDetails: any;\r\n @Input() isCardData: any;\r\n @Output() updateCartEntry = new EventEmitter<any>();\r\n @Input() additionalPara: any;\r\n @ViewChild(\"closeInviteModal\") closeInviteModal: any;\r\n\r\n additionalColours: any = [];\r\n availableColours: any = [];\r\n isFinishedProduct: boolean = false;\r\n additinalselectedColour: any = [];\r\n modalSelectedColour: any = [];\r\n isShow: boolean = true;\r\n disableAddMore: boolean = false;\r\n errorIndex: any = [];\r\n rowIndex = 0;\r\n selectedColour: any;\r\n cartId: any;\r\n showDetails: any = [];\r\n showWaitCursor = new BehaviorSubject<boolean>(false);\r\n\r\n errorMessage = \"Some error occurred while processing data\";\r\n\r\n selectedIndex: any;\r\n\r\n defaultConfigInfo: any = {\r\n configuratorType: \"TEXTFIELD\",\r\n configurationLabel: \"COLOR\",\r\n configurationValue: \"\",\r\n };\r\n\r\n productCode: any;\r\n productDetails: any;\r\n accessoriesPrice: any;\r\n finishedVariantDetails: any;\r\n isModalSelectedColor: any = [];\r\n\r\n productForm: any = new FormGroup({});\r\n addToCartError: any = null;\r\n\r\n imageModalSrc: any;\r\n showToast: boolean = false;\r\n productInfos: any = [];\r\n env: any = sessionStorage.getItem('env');\r\n environment : any = JSON.parse(this.env);\r\n constructor(\r\n private cartService: CartService,\r\n private formBuilder: FormBuilder,\r\n private cdr: ChangeDetectorRef,\r\n private activeCartService: ActiveCartService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n const cartObj: any = localStorage.getItem(\"spartacus⚿dimond-spa⚿cart\");\r\n this.cartId = JSON.parse(cartObj)?.active;\r\n this.productForm = this.formBuilder.group({\r\n cart: this.formBuilder.array([]),\r\n });\r\n\r\n this.updateDefaultCartDetails();\r\n this.cartService.expandAll.subscribe((data: any) => {\r\n for (let i = 0; i < this.cartDetails.length; i++) {\r\n this.showDetails[i] = data;\r\n this.cartDetails[i].isExpand = false;\r\n }\r\n });\r\n }\r\n\r\n get cartForm(): FormArray {\r\n return this.productForm.get(\"cart\") as FormArray;\r\n }\r\n\r\n hasCartDetails(): boolean {\r\n return this.cartForm && Object.keys(this.cartForm)?.length > 0;\r\n }\r\n\r\n updateDefaultCartDetails() {\r\n for (let i = 0; i < this.cartDetails?.length; i++) {\r\n this.cartForm?.push(this.formBuilder.group(new CartForm()));\r\n this.cartForm?.controls[i]\r\n .get(\"jobReference\")\r\n ?.setValue(this.cartDetails[i]?.jobReference);\r\n const qty = this.cartDetails[i]?.product?.finishedProduct\r\n ? parseInt(this.cartDetails[i]?.quantity)\r\n : this.cartDetails[i]?.quantityDouble;\r\n this.cartForm?.controls[i].get(\"prodQty\")?.setValue(qty);\r\n this.isModalSelectedColor.push(false);\r\n this.showDetails.push(false);\r\n if (\r\n this.cartDetails[i]?.configurationInfos &&\r\n this.cartDetails[i]?.configurationInfos?.length > 0\r\n ) {\r\n for (const config of this.cartDetails[i]?.configurationInfos) {\r\n if (config?.configurationLabel == \"COLOR\") {\r\n this.defaultConfigInfo.configurationValue =\r\n config?.configurationValue?.split(\"|\")[0] || \"\";\r\n }\r\n }\r\n if (\r\n this.cartDetails[i]?.configValues &&\r\n this.cartDetails[i]?.configValues?.length > 0\r\n )\r\n this.cartDetails[i][\"configValues\"] = this.defaultConfigInfo;\r\n }\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (!changes?.cartDetails?.firstChange) {\r\n this.updateDefaultCartDetails();\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n showHide(ind: number) {\r\n this.showDetails[ind] = !this.showDetails[ind];\r\n }\r\n\r\n getColours(cartDetails: any, index: number, event: any) {\r\n event.preventDefault();\r\n // this.selectedColour =\r\n // cartDetails?.configurationInfos[0]?.configurationValue.split('|')[2];\r\n this.selectedIndex = index;\r\n for (let i = 0; i < this.cartDetails.length; i++) {\r\n if (i != index) {\r\n this.cartDetails[i].isExpand = false;\r\n } else {\r\n this.cartDetails[index].isExpand = !this.cartDetails[index].isExpand;\r\n }\r\n }\r\n }\r\n\r\n updateSelectedColourCode(code: any): void {\r\n if (\r\n this.cartDetails[this.selectedIndex] &&\r\n this.cartDetails[this.selectedIndex]?.configValues\r\n ) {\r\n this.cartDetails[this.selectedIndex].configValues.configurationValue =\r\n code;\r\n }\r\n }\r\n\r\n modalSelectedColor(event: any, colour: any, ind: number): void {\r\n event.preventDefault();\r\n if (this.cartDetails[ind]?.product?.finishedProduct === true) {\r\n this.modalSelectedColour[ind] = colour;\r\n this.isModalSelectedColor[ind] = true;\r\n } else {\r\n this.modalSelectedColour[ind] = colour;\r\n this.isModalSelectedColor[ind] = true;\r\n }\r\n this.updateSelectedColourCode(colour?.code);\r\n this.cdr.detectChanges();\r\n this.updateProductColor(this.cartDetails[ind], colour, ind);\r\n }\r\n\r\n addtionalModalSelectedColor(event: any, colour: any, ind: number): void {\r\n event.preventDefault();\r\n if (this.cartDetails[ind]?.product?.finishedProduct === true) {\r\n this.additinalselectedColour[ind] = colour;\r\n } else {\r\n this.additinalselectedColour[ind] = colour;\r\n }\r\n this.updateSelectedColourCode(colour?.code);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n proceedWithSubmit(color: any, ind: number) {\r\n this.isModalSelectedColor[ind] = true;\r\n this.modalSelectedColour[ind] = color;\r\n this.closeInviteModal.nativeElement.click();\r\n this.getColours(color, ind, event);\r\n this.updateProductColor(this.cartDetails[ind], color, ind);\r\n }\r\n\r\n cancel() {\r\n this.additinalselectedColour = [];\r\n }\r\n\r\n deleteEntry(entNumber: any) {\r\n this.showWaitCursor.next(true);\r\n this.cartService.deleteCartEntry(this.cartId, entNumber).subscribe(\r\n (data: any) => {\r\n this.cdr.detectChanges();\r\n this.updateCartEntry.emit();\r\n this.activeCartService.reloadActiveCart();\r\n this.cdr.detectChanges();\r\n this.showToast = true;\r\n this.showWaitCursor.next(false);\r\n setTimeout(() => {\r\n this.showToast = false;\r\n }, 4000);\r\n },\r\n (error: any) => {\r\n this.showWaitCursor.next(false);\r\n }\r\n );\r\n }\r\n\r\n reoladCartEntires(): void {\r\n this.updateCartEntry.emit();\r\n }\r\n\r\n // Check if any value is empty or undefined\r\n isNullOrEmpty(value: any): boolean {\r\n return value == null || value == undefined || value == \"\";\r\n }\r\n\r\n updateProductColor(cart: any, color: any, index: any): void {\r\n //event.preventDefault();\r\n const obj = [];\r\n obj.push({\r\n configuratorType: \"TEXTFIELD\",\r\n configurationLabel: \"COLOR\",\r\n configurationValue: color?.code,\r\n });\r\n this.updateCartDetails(cart, index, obj);\r\n }\r\n\r\n // Update Cart Details if Quantity Changed for Accessories only\r\n updateCartDetails(cart: any, index: any, color?: any): void {\r\n let payLoad: any = {};\r\n this.showWaitCursor.next(true);\r\n const entryNumber = cart?.product?.entryNumber || cart?.entryNumber;\r\n if (color) {\r\n payLoad = {\r\n quantity: parseInt(\r\n this.cartForm?.controls[index]?.get(\"prodQty\")?.value\r\n ),\r\n configurationInfos: color,\r\n };\r\n } else if (cart?.product?.finishedProduct) {\r\n payLoad = {\r\n quantity: parseInt(\r\n this.cartForm?.controls[index]?.get(\"prodQty\")?.value\r\n ),\r\n jobReference:\r\n this.cartForm?.controls[index]?.get(\"jobReference\")?.value,\r\n };\r\n } else {\r\n payLoad = {\r\n quantity: 1,\r\n product: {\r\n code: cart?.product?.code,\r\n },\r\n jobReference:\r\n this.cartForm?.controls[index]?.get(\"jobReference\")?.value,\r\n };\r\n }\r\n this.cartService\r\n .updateCartEntry(this.cartId, entryNumber, payLoad)\r\n .subscribe(\r\n (response: any) => {\r\n if (response?.statusCode?.toLowerCase() == \"success\") {\r\n this.activeCartService.reloadActiveCart();\r\n this.updateCartEntry.emit();\r\n this.cdr.detectChanges();\r\n this.showToast = true;\r\n this.showWaitCursor.next(false);\r\n setTimeout(() => {\r\n this.showToast = false;\r\n }, 4000);\r\n } else {\r\n this.addToCartError =\r\n response?.errors[0]?.message ||\r\n response?.errors[0]?.errorMessage ||\r\n this.errorMessage;\r\n this.showWaitCursor.next(false);\r\n }\r\n },\r\n (error: any) => {\r\n this.addToCartError =\r\n error?.error?.errors[0]?.message ||\r\n error?.error?.errors[0]?.errorMessage ||\r\n this.errorMessage;\r\n this.showWaitCursor.next(false);\r\n }\r\n );\r\n }\r\n\r\n // Get Product Quantity Errors\r\n prodQtyErrors(index: any): any {\r\n return (\r\n (this.cartForm?.controls[index]?.get(\"prodQty\")?.errors ||\r\n this.cartForm?.controls[index]?.get(\"prodQty\")?.invalid) &&\r\n (this.cartForm?.controls[index]?.get(\"prodQty\")?.dirty ||\r\n this.cartForm?.controls[index]?.get(\"prodQty\")?.touched)\r\n );\r\n }\r\n\r\n // Get Job Reference Errors\r\n jobReferenceErrors(index: any): any {\r\n return (\r\n (this.cartForm?.controls[index]?.get(\"jobReference\")?.errors ||\r\n this.cartForm?.controls[index]?.get(\"jobReference\")?.invalid) &&\r\n (this.cartForm?.controls[index]?.get(\"jobReference\")?.dirty ||\r\n this.cartForm?.controls[index]?.get(\"jobReference\")?.touched)\r\n );\r\n }\r\n\r\n // Check is Form Valid\r\n isFormValid(index: any, cart: any): any {\r\n return (\r\n this.cartForm?.controls[index] &&\r\n this.cartForm?.controls[index]?.get(\"jobReference\")?.valid &&\r\n (this.cartForm?.controls[index]?.get(\"prodQty\")?.valid ||\r\n !cart?.product?.finishedProduct)\r\n );\r\n }\r\n\r\n // Update Cart Details on change of Job Reference or Quantity\r\n updateCart(event: any, cart: any, index: any): void {\r\n event.preventDefault();\r\n const qty = event?.currentTarget?.value;\r\n if (!this.isNullOrEmpty(qty) && this.isFormValid(index, cart)) {\r\n this.updateCartDetails(cart, index);\r\n }\r\n }\r\n\r\n updateJobReference(event: any, cart: any, index: any): void {\r\n event.preventDefault();\r\n this.updateCartDetails(cart, index);\r\n }\r\n\r\n // Get the Image Details based on Products\r\n getImageDetails(cartDetails: any, thumbnail: any = true): any {\r\n let imageUrl: any = cartDetails?.product?.images;\r\n if (this.isCardData) {\r\n imageUrl = cartDetails?.product?.images;\r\n } else {\r\n imageUrl = cartDetails?.product?.images?.PRIMARY?.cartIcon;\r\n }\r\n let srcUrl: any;\r\n if (\r\n cartDetails?.attachments &&\r\n cartDetails?.attachments?.length &&\r\n cartDetails?.product?.flashingProduct\r\n ) {\r\n srcUrl =\r\n thumbnail && cartDetails?.attachments?.length > 1\r\n ? cartDetails?.attachments[1]?.downloadURL\r\n : cartDetails?.attachments[0]?.downloadURL;\r\n imageUrl = {\r\n url: (\r\n this.environment.occBaseUrl.slice(0, this.environment.occBaseUrl.length - 1) +\r\n srcUrl\r\n )?.replace(\"&attachment=true\", \"\"),\r\n };\r\n }\r\n return imageUrl;\r\n }\r\n\r\n viewImage(event: any, cartDetails: any): void {\r\n event?.preventDefault();\r\n this.imageModalSrc = this.getImageDetails(cartDetails, false)?.url;\r\n }\r\n\r\n getPdfLink(cartDetails: any): void {\r\n return this.getImageDetails(cartDetails, false)?.url;\r\n }\r\n\r\n hasImage(cartDetails: any): boolean {\r\n const mimeType = cartDetails?.attachments[0]?.mime;\r\n const mimeArray = [\"image/png\", \"image/jpg\", \"image/jpeg\"];\r\n return mimeArray.includes(mimeType);\r\n }\r\n\r\n closeToast(): void {\r\n this.showToast = false;\r\n }\r\n}\r\n","<div class=\"loading\" *ngIf=\"showWaitCursor | async\">Loading&#8230;</div>\r\n\r\n<div class=\"row list-head\">\r\n <div class=\"col-sm-3\">ITEM</div>\r\n <div class=\"col-sm-3\">JOB REFERENCE</div>\r\n <div class=\"col-sm-2\">TOTAL QTY</div>\r\n <div class=\"col-sm-2\">UNIT PRICE</div>\r\n <div class=\"col-sm-2\">TOTAL PRICE</div>\r\n</div>\r\n<ng-container [formGroup]=\"productForm\">\r\n <ng-container formArrayName=\"cart\" *ngIf=\"hasCartDetails()\">\r\n <ng-container\r\n *ngFor=\"let cart of cartForm.controls; let i = index; let isLast = last\"\r\n [formGroupName]=\"i\"\r\n >\r\n <div class=\"item-space\" [ngClass]=\"{'item-space-last': isLast}\" *ngIf=\"!isNullOrEmpty(cartDetails[i]?.product?.code)\">\r\n <div class=\"row\">\r\n <div class=\"col-sm-3\">\r\n <div class=\"d-flex\">\r\n <div class=\"product-img\">\r\n <ng-container\r\n *ngIf=\"\r\n cartDetails[i]?.product?.flashingProduct;\r\n else normalImage\r\n \"\r\n >\r\n <a data-toggle=\"modal\" class=\"flashing-expand\" (click)=\"viewImage($event,cartDetails[i])\" [attr.data-target]=\"'#imageModal'\" *ngIf=\"hasImage(cartDetails[i]);else hasPdf\" >\r\n <cx-media\r\n [container]=\"getImageDetails(cartDetails[i])\"\r\n format=\"cartIcon\"\r\n role=\"presentation\"\r\n ></cx-media>\r\n </a>\r\n <ng-template #hasPdf>\r\n <a class=\"flashing-expand flashing-open\" [href]=\"getPdfLink(cartDetails[i])\" target=\"_blank\">\r\n <img class=\"pdf-icon\" src=\"../../../../../assets/images/pdf-icon.svg\" alt=\"Click to open PDF\" title=\"Click to open PDF\" />\r\n </a>\r\n </ng-template>\r\n </ng-container>\r\n <ng-template #normalImage>\r\n <cx-media\r\n [container]=\"getImageDetails(cartDetails[i])\"\r\n format=\"cartIcon\"\r\n role=\"presentation\"\r\n ></cx-media>\r\n </ng-template>\r\n </div>\r\n <div class=\"p-2\">\r\n <div class=\"product_name\">\r\n {{ cartDetails[i]?.product?.name }}\r\n </div>\r\n <div class=\"sku\">SKU: {{ cartDetails[i]?.product?.code }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-3\">\r\n <input\r\n class=\"refernce-input\"\r\n type=\"text\"\r\n formControlName=\"jobReference\"\r\n (blur)=\"updateJobReference($event, cartDetails[i], i)\"\r\n />\r\n <div class=\"mt-2 text-danger\" *ngIf=\"jobReferenceErrors(i)\">\r\n Please enter valid Job Reference\r\n </div>\r\n </div>\r\n <div class=\"col-sm-2 totalQty\">\r\n <span\r\n *ngIf=\"\r\n !cartDetails[i]?.product.finishedProduct;\r\n else nonAccessories\r\n \"\r\n >\r\n {{ cartDetails[i]?.quantityDouble }}\r\n {{ cartDetails[i]?.basePrice?.unitType }}\r\n <input\r\n type=\"hidden\"\r\n formControlName=\"prodQty\"\r\n [value]=\"cartDetails[i]?.quantityDouble\"\r\n />\r\n </span>\r\n <ng-template #nonAccessories>\r\n <span>\r\n <input\r\n class=\"qty_input refernce-input\"\r\n type=\"text\"\r\n formControlName=\"prodQty\"\r\n minlength=\"1\"\r\n maxlength=\"2\"\r\n (blur)=\"updateCart($event, cartDetails[i], i)\"\r\n />\r\n </span>\r\n </ng-template>\r\n <div class=\"mt-2 text-danger\" *ngIf=\"prodQtyErrors(i)\">\r\n Please enter valid Quantity\r\n </div>\r\n </div>\r\n <div class=\"col-sm-2 totalQty\">\r\n {{ cartDetails[i]?.basePrice?.formattedValue }}/{{\r\n cartDetails[i]?.basePrice?.unitType\r\n }}\r\n </div>\r\n <div class=\"col-sm-2 totalQty\">\r\n {{ cartDetails[i]?.totalPrice?.formattedValue }}\r\n <span\r\n class=\"img-align\"\r\n (click)=\"deleteEntry(cartDetails[i]?.entryNumber)\"\r\n ><img\r\n src=\"../../../../../assets/images/ionic-trash.svg\"\r\n alt=\"delete\"\r\n /></span>\r\n <br />\r\n excl GST\r\n </div>\r\n </div>\r\n\r\n <div class=\"custom-padding\">\r\n <p class=\"mt-3 mb-0\">\r\n <span\r\n *ngFor=\"\r\n let attributes of cartDetails[i]?.product &&\r\n cartDetails[i]?.product?.classifications &&\r\n cartDetails[i]?.product?.classifications[0] &&\r\n cartDetails[i]?.product?.classifications[0]?.features;\r\n last as isLast\r\n \"\r\n >\r\n {{ attributes?.featureValues[0]?.value }}\r\n <span *ngIf=\"!isLast\"> | </span>\r\n <span *ngIf=\"isLast\">mm</span>\r\n </span>\r\n </p>\r\n </div>\r\n\r\n <div class=\"custom-padding\">\r\n <div\r\n class=\"d-flex\"\r\n *ngIf=\"\r\n cartDetails[i]?.product.finishedProduct &&\r\n !isModalSelectedColor[i] || cartDetails[i]?.product?.flashingProduct\r\n \"\r\n >\r\n <div\r\n *ngIf=\"\r\n cartDetails[i] &&\r\n cartDetails[i]?.product &&\r\n cartDetails[i]?.product.bpAdditionalAttribute &&\r\n cartDetails[i]?.product.bpAdditionalAttribute?.colours &&\r\n cartDetails[i]?.product.bpAdditionalAttribute?.colours[0]\r\n \"\r\n class=\"selected_color\"\r\n [ngStyle]=\"{\r\n background:\r\n cartDetails[i]?.product?.bpAdditionalAttribute?.colours[0]\r\n ?.hexadecimalCode\r\n }\"\r\n ></div>\r\n <a\r\n *ngIf=\"\r\n cartDetails[i] &&\r\n cartDetails[i]?.product &&\r\n cartDetails[i]?.product.bpAdditionalAttribute &&\r\n cartDetails[i]?.product.bpAdditionalAttribute?.colours &&\r\n cartDetails[i]?.product.bpAdditionalAttribute?.colours[0]\"\r\n class=\"color_link\"\r\n data-toggle=\"collapse\"\r\n [attr.data-target]=\"'#collapseColours' + i\"\r\n (click)=\"!cartDetails[i]?.product?.flashingProduct && getColours(cart, i, $event)\"\r\n >\r\n <span\r\n class=\"color_part\"\r\n *ngIf=\"\r\n cartDetails[i] &&\r\n cartDetails[i]?.product &&\r\n cartDetails[i]?.product.bpAdditionalAttribute &&\r\n cartDetails[i]?.product.bpAdditionalAttribute?.colours &&\r\n cartDetails[i]?.product.bpAdditionalAttribute?.colours[0]\r\n \"\r\n >\r\n {{\r\n cartDetails[i]?.product?.bpAdditionalAttribute?.colours[0]\r\n ?.name\r\n }}</span\r\n >\r\n <i *ngIf=\"!cartDetails[i]?.product?.flashingProduct\" class=\"fas fa-chevron-down dropdown-icon\"></i\r\n ></a>\r\n </div>\r\n\r\n <div class=\"d-flex\" *ngIf=\"!isModalSelectedColor[i] && !cartDetails[i]?.product?.flashingProduct\">\r\n <div\r\n *ngIf=\"\r\n cartDetails[i] &&\r\n cartDetails[i]?.configurationInfos &&\r\n cartDetails[i]?.configurationInfos[0] &&\r\n cartDetails[i]?.configurationInfos[0]?.configurationValue\r\n \"\r\n class=\"selected_color\"\r\n [ngStyle]=\"{\r\n background:\r\n cartDetails[i]?.configurationInfos[0]?.configurationValue\r\n | split : '|' : 2\r\n }\"\r\n ></div>\r\n <a\r\n *ngIf=\"\r\n cartDetails[i] &&\r\n cartDetails[i]?.configurationInfos &&\r\n cartDetails[i]?.configurationInfos[0] &&\r\n cartDetails[i]?.configurationInfos[0]?.configurationValue\r\n \"\r\n class=\"color_link\"\r\n data-toggle=\"collapse\"\r\n [attr.data-target]=\"'#collapseColours' + i\"\r\n (click)=\" !cartDetails[i]?.product?.flashingProduct && getColours(cart, i, $event)\"\r\n [ngClass]=\"{\r\n flashingProductColor:cartDetails[i]?.product?.flashingProduct\r\n }\"\r\n >\r\n <span\r\n class=\"color_part\"\r\n *ngIf=\"\r\n cartDetails[i] &&\r\n cartDetails[i]?.configurationInfos &&\r\n cartDetails[i]?.configurationInfos[0] &&\r\n cartDetails[i]?.configurationInfos[0]?.configurationValue\r\n \"\r\n >\r\n {{\r\n cartDetails[i]?.configurationInfos[0]?.configurationValue\r\n | split : \"|\" : 1\r\n }}</span\r\n >\r\n <i *ngIf=\"!cartDetails[i]?.product?.flashingProduct\" class=\"fas fa-chevron-down dropdown-icon\"></i\r\n ></a>\r\n </div>\r\n <div class=\"d-flex\" *ngIf=\"isModalSelectedColor[i]\">\r\n <div\r\n class=\"selected_color\"\r\n [ngStyle]=\"{\r\n background: modalSelectedColour[i]?.hexadecimalCode\r\n }\"\r\n ></div>\r\n <a\r\n class=\"color_link popup_recent\"\r\n data-toggle=\"collapse\"\r\n [attr.data-target]=\"'#collapseColours' + i\"\r\n (click)=\"!cartDetails[i]?.product?.flashingProduct && getColours(cart, i, $event)\"\r\n >\r\n <span class=\"color_part\">\r\n {{ modalSelectedColour[i]?.name }}</span\r\n >\r\n <i *ngIf=\"!cartDetails[i]?.product?.flashingProduct\" class=\"fas fa-chevron-down dropdown-icon\"></i\r\n ></a>\r\n </div>\r\n\r\n <!-- avaialable colours popup -->\r\n <div\r\n *ngIf=\"cartDetails[i]?.isExpand\"\r\n class=\"collapse colours_container\"\r\n [attr.id]=\"'collapseColours' + i\"\r\n >\r\n <div class=\"card card-body\">\r\n <div *ngIf=\"cartDetails[i]?.product?.finishedProduct && cartDetails[i]?.product?.variantOptions\" class=\"colours m-1 pt-3\">\r\n <ng-container\r\n *ngFor=\"\r\n let modalcolour of cartDetails[i]?.product?.variantOptions;\r\n let j = index\r\n \"\r\n >\r\n <div\r\n (click)=\"\r\n modalSelectedColor($event, modalcolour.colours[0], i)\r\n \"\r\n class=\"colour m-1 mb-3 main\"\r\n [ngStyle]=\"{\r\n background: modalcolour?.colours[0]?.hexadecimalCode\r\n }\"\r\n [ngClass]=\"{\r\n selected:\r\n modalSelectedColour[i]?.hexadecimalCode ==\r\n modalcolour?.colours[0]?.hexadecimalCode\r\n }\"\r\n >\r\n <div class=\"checkbox\"></div>\r\n <p\r\n class=\"colour-title\"\r\n placement=\"bottom\"\r\n ngbTooltip=\"{{ modalcolour?.colours[0]?.name }}\"\r\n >\r\n {{ modalcolour?.colours[0]?.name }}\r\n </p>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"!cartDetails[i]?.product?.finishedProduct && cartDetails[i]?.product?.bpAdditionalAttribute?.colours\" class=\"colours m-1 pt-3\">\r\n <ng-container\r\n *ngFor=\"\r\n let modalcolour of cartDetails[i]?.product?.bpAdditionalAttribute?.colours;\r\n let j = index\r\n \"\r\n >\r\n <div\r\n (click)=\"\r\n modalSelectedColor($event, modalcolour, i)\r\n \"\r\n class=\"colour m-1 mb-3 main\"\r\n [ngStyle]=\"{\r\n background: modalcolour?.hexadecimalCode\r\n }\"\r\n [ngClass]=\"{\r\n selected:\r\n modalSelectedColour[i]?.hexadecimalCode ==\r\n modalcolour?.hexadecimalCode\r\n }\"\r\n >\r\n <div class=\"checkbox\"></div>\r\n <p\r\n class=\"colour-title\"\r\n placement=\"bottom\"\r\n ngbTooltip=\"{{ modalcolour?.name }}\"\r\n >\r\n {{ modalcolour?.name }}\r\n </p>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"cartDetails[i]?.product?.bpAdditionalAttribute?.additionalColours?.length > 0\">\r\n <a\r\n data-toggle=\"modal\"\r\n [attr.data-target]=\"'#additionalColorsModal' + i\"\r\n >\r\n <u> Additional colors may be avialable </u></a\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Additional colours popup-->\r\n <div\r\n class=\"modal fade\"\r\n id=\"additionalColorsModal{{ i }}\"\r\n role=\"dialog\"\r\n aria-labelledby=\"inviteMemberLabel\"\r\n aria-hidden=\"true\"\r\n >\r\n <div class=\"modal-dialog modal-lg\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title\">Additional Colours</h4>\r\n <i\r\n class=\"icon-close invite-pop-close\"\r\n #closeInviteModal\r\n data-dismiss=\"modal\"\r\n aria-label=\"Close\"\r\n ></i>\r\n </div>\r\n <div class=\"modal-body\">\r\n <div class=\"more-content\">\r\n <img\r\n class=\"mr-3\"\r\n src=\"../../../../assets/images/warningicon.svg\"\r\n alt=\"alert\"\r\n />\r\n <div>{{ additionalPara?.content }}.</div>\r\n </div>\r\n\r\n <div class=\"colours m-1 pt-3\">\r\n <ng-container\r\n *ngFor=\"\r\n let modalcolour of cartDetails[i]?.product\r\n ?.bpAdditionalAttribute?.additionalColours;\r\n let j = index\r\n \"\r\n >\r\n <div\r\n (click)=\"\r\n addtionalModalSelectedColor($event, modalcolour, i)\r\n \"\r\n class=\"colour m-1 mb-3 main\"\r\n [ngStyle]=\"{ background: modalcolour?.hexadecimalCode }\"\r\n [ngClass]=\"{\r\n selected:\r\n additinalselectedColour[i]?.hexadecimalCode ==\r\n modalcolour?.hexadecimalCode\r\n }\"\r\n >\r\n <div class=\"checkbox\"></div>\r\n <p\r\n class=\"colour-title\"\r\n placement=\"bottom\"\r\n ngbTooltip=\"{{ modalcolour?.name }}\"\r\n >\r\n {{ modalcolour?.name }}\r\n </p>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"m-1 pt-3\" *ngIf=\"additinalselectedColour[i]\">\r\n <h6 class=\"font-weight-bold\">Colour Selection</h6>\r\n <div class=\"selected_color_section\">\r\n <div\r\n class=\"selected_color\"\r\n [ngStyle]=\"{\r\n background:\r\n additinalselectedColour[i]?.hexadecimalCode\r\n }\"\r\n ></div>\r\n <div>{{ additinalselectedColour[i]?.name }}</div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"d-sm-flex justify-content-end d-block\">\r\n <button\r\n type=\"button\"\r\n (click)=\"cancel()\"\r\n data-dismiss=\"modal\"\r\n class=\"btn mobile-cancel-btn dimond-secondary-btn mr-lg-5\"\r\n >\r\n Cancel\r\n </button>\r\n <button\r\n (click)=\"proceedWithSubmit(additinalselectedColour[i], i)\"\r\n type=\"submit\"\r\n class=\"btn mobile-save-btn dimond-primary-btn float-right\"\r\n data-dismiss=\"modal\"\r\n >\r\n Proceed\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <a\r\n *ngIf=\"!cartDetails[i]?.product?.finishedProduct\"\r\n class=\"see-more-link\"\r\n (click)=\"showHide(i)\"\r\n [ngClass]=\"{ block: cartDetails[i]?.product?.flashingProduct }\"\r\n >\r\n {{ showDetails[i] == true ? \"Hide\" : \"See\" }} more details\r\n </a>\r\n <div\r\n class=\"col-sm-6\"\r\n *ngIf=\"showDetails[i]\"\r\n [ngClass]=\"{\r\n 'quantity-form-details': !cartDetails[i]?.product?.finishedProduct\r\n }\"\r\n >\r\n <div id=\"cartMoreDetails{{ i }}\">\r\n <app-custom-product-quantity-form\r\n [productCode]=\"cartDetails[i]?.product?.code\"\r\n [productDetails]=\"cartDetails[i]\"\r\n [listView]=\"true\"\r\n [accessoriesPrice]=\"cartDetails[i]?.basePrice?.value\"\r\n [selectedColour]=\"selectedColour\"\r\n [finishedVariantDetails]=\"finishedVariantDetails\"\r\n [isFinishedProduct]=\"cartDetails[i]?.product?.finishedProduct\"\r\n [isFlashingProduct]=\"cartDetails[i]?.product?.flashingProduct\"\r\n (updateCartEntires)=\"reoladCartEntires()\"\r\n ></app-custom-product-quantity-form>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"cartDetails[i]?.product?.flashingProduct && cartDetails[i]?.productConfiguredInfos && cartDetails[i]?.productConfiguredInfos?.length>0\">\r\n <div class=\"flashing-block \" *ngFor=\"let data of cartDetails[i]?.productConfiguredInfos\">\r\n <div class=\"row\" >\r\n <div class=\"col-sm-3\">\r\n <h3 class=\"flash-title\">{{ data?.product?.name }}</h3>\r\n <h6 class=\"skuId\">SKU: {{ data?.product?.code }}</h6>\r\n <span *ngIf=\"data?.girth\">Grith: +{{data?.girth}}mm </span>\r\n </div>\r\n <div class=\"offset-sm-3 col-sm-2\">\r\n {{data?.quantityDouble}}{{data?.unitType}}\r\n </div>\r\n <div class=\"col-sm-2\">\r\n {{data?.basePrice?.formattedValue}}/{{data?.unitType}}\r\n </div>\r\n <div class=\"col-sm-2\">\r\n {{data?.totalPrice?.formattedValue}}\r\n <span class=\"gst-text\">excl GST</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n</ng-container>\r\n<!-- colours popup -->\r\n\r\n<div\r\n class=\"modal fade\"\r\n id=\"imageModal\"\r\n role=\"dialog\"\r\n aria-labelledby=\"imageModal\"\r\n aria-hidden=\"true\"\r\n #imageModal\r\n>\r\n <div class=\"modal-dialog modal-lg\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <i\r\n class=\"icon-close invite-pop-close\"\r\n #closeInviteModal\r\n data-dismiss=\"modal\"\r\n aria-label=\"Close\"\r\n ></i>\r\n </div>\r\n <div class=\"modal-body m-4\">\r\n <img [src]=\"imageModalSrc\" alt=\"alert\" />\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n<ngb-toast *ngIf=\"showToast\" [autohide]=\"true\" [delay]=\"4000\">\r\n <img src=\"../../../../assets/images/Invited.svg\" />\r\n Cart updated successfully!\r\n <i\r\n class=\"icon-close toast-close\"\r\n aria-label=\"Close\"\r\n (click)=\"closeToast()\"\r\n ></i>\r\n</ngb-toast>\r\n","export const savedCartDetails = {\r\n cartName: 'Cart Name',\r\n editSavedCart: 'Edit Saved Cart',\r\n cartDescription: 'Description',\r\n dateSaved: 'Date Saved',\r\n items: 'Items',\r\n quantity: 'Quantity',\r\n total: 'Total',\r\n readmore:'Read more',\r\n deleteSavedCart: 'Delete',\r\n exclandfreight:'Price excludes GST and freight'\r\n };\r\n\r\n export const savedCartList = {\r\n savedCarts: 'Saved Carts',\r\n cartName: 'Cart Name',\r\n nameofCart: 'Name of Cart',\r\n dateSaved: 'Date Saved',\r\n quantity: 'Items',\r\n total: 'Total Price',\r\n actions: 'Actions',\r\n cancel: 'Cancel',\r\n delete:'Delete',\r\n confirm:'Confirm',\r\n makeCartActive: 'Make Cart Active',\r\n cartDescription: 'Description',\r\n makeCartDelete: 'Delete Saved Cart',\r\n makeCartBacktoSave:'Back To Saved Carts',\r\n retainCopyTxt:'Retain a copy of this cart in the saved cart list.',\r\n readmore:'Read more',\r\n restoredCartPara:'The following saved cart will be restored as the active cart.',\r\n deleteCartPara:'The following saved cart will be deleted'\r\n \r\n };\r\n\r\n export const savedCartDialog = {\r\n savedCarForTitle: 'Save Cart For Later',\r\n savedCartName: 'Saved Cart Name',\r\n savedCartNameValidation:'Saved Cart Name is required',\r\n description:'Saved description',\r\n optional:'(Optional)',\r\n descriptionLength:'characters left',\r\n edit:'Edit',\r\n cancel: 'Cancel',\r\n confirm:'Confirm'\r\n };\r\n \r\n export const savedCart = {\r\n savedCartDetails,\r\n savedCartList,\r\n savedCartDialog,\r\n };\r\n \r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { RoutingService } from '@spartacus/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError, distinctUntilChanged, map } from 'rxjs/operators';\r\nimport { Cart_Clone_And_Save, Saved_Cart_For_Later, Saved_Cart_Url } from '../services/endPointURL';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SaveCartService {\r\n public cartId: number = 0;\r\n protected savedCartId$ = this.routingService.getRouterState().pipe(\r\n map((routingData) => routingData.state.params.savedCartId),\r\n distinctUntilChanged()\r\n );\r\n constructor(private http: HttpClient,\r\n protected routingService: RoutingService) {\r\n this.savedCartId$.subscribe(data => {\r\n const loc: any = localStorage.getItem('spartacus⚿dimond-spa⚿cart')\r\n const activeCart = JSON.parse(loc)?.active;\r\n this.cartId = data != undefined ? data : activeCart;\r\n })\r\n }\r\n\r\n public cloneAndSave(cartId: number, name: string): Observable<any> {\r\n let url = Cart_Clone_And_Save(cartId).url + name;;\r\n return this.http.post(url, {\r\n headers: { 'Content-Type': 'application/json' },\r\n })\r\n .pipe(\r\n catchError(errorRes => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n\r\n public deleteSavdCart(cartId: number): Observable<any> {\r\n let url = Saved_Cart_Url(cartId).url;\r\n return this.http.delete(url, {\r\n headers: { 'Content-Type': 'application/json' },\r\n })\r\n .pipe(\r\n catchError(errorRes => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n public markCartForActive(cartId: number): Observable<any> {\r\n let url = Saved_Cart_Url(cartId).url + '/restoresavedcart';\r\n return this.http.patch(url, {\r\n headers: { 'Content-Type': 'application/json' },\r\n })\r\n .pipe(\r\n catchError(errorRes => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n public saveCartForLater(name: string, description: string): Observable<any> {\r\n let url = Saved_Cart_For_Later(this.cartId).url + 'saveCartName=' + name + '&saveCartDescription=' + description;\r\n return this.http.patch(url, {\r\n headers: { 'Content-Type': 'application/json' },\r\n })\r\n .pipe(\r\n catchError(errorRes => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ActiveCartService, MultiCartService } from '@spartacus/core';\r\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject'; \r\nimport { SaveCartService } from '../../custom-saved-cart/save-cart.service';\r\nimport { savedCartDialog } from '../../custom-saved-cart/saved-cart-general';\r\n\r\n@Component({\r\n selector: 'app-saved-cart-popup',\r\n templateUrl: './saved-cart-popup.component.html',\r\n styleUrls: ['./saved-cart-popup.component.scss'],\r\n})\r\nexport class SavedCartPopupComponent implements OnInit {\r\n submitted: boolean = false;\r\n @Input() customSaveCardData?: any;\r\n savedCartDialog = savedCartDialog;\r\n saveCardForm!: FormGroup;\r\n @ViewChild('closebutton') closebutton: any;\r\n showWaitCursor = new BehaviorSubject<boolean>(false);\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n public service: SaveCartService,\r\n private activeCartService: ActiveCartService,\r\n protected multiCartService: MultiCartService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.saveCardForm = this.formBuilder.group({\r\n name: [this.customSaveCardData?.name || '', Validators.required],\r\n description: [this.customSaveCardData?.description || ''],\r\n });\r\n }\r\n\r\n get f() {\r\n return this.saveCardForm.controls;\r\n }\r\n\r\n // Check if any value is empty or undefined\r\n isNullOrEmpty(value: any): boolean {\r\n return value == null || value == undefined || value == '' || value == ' ';\r\n }\r\n\r\n saveOrEditCart() {\r\n const locString: any = localStorage.getItem('spartacus⚿dimond-spa⚿cart');\r\n const cartID = JSON.parse(locString)?.active;\r\n this.submitted = true;\r\n if (this.saveCardForm.valid) {\r\n const savedData: any = this.saveCardForm.value;\r\n this.service\r\n .saveCartForLater(savedData.name, savedData.description)\r\n .subscribe((data: any) => {\r\n this.closebutton.nativeElement.click();\r\n this.showWaitCursor.next(true);\r\n const activeCartId: any = !this.isNullOrEmpty(\r\n localStorage.getItem('spartacus⚿dimond-spa⚿cart')\r\n )\r\n ? JSON.parse(\r\n localStorage.getItem('spartacus⚿dimond-spa⚿cart') || ''\r\n )\r\n : '';\r\n\r\n const cartId: string = activeCartId?.active;\r\n const userId: string = 'current';\r\n this.multiCartService.loadCart({\r\n cartId,\r\n userId,\r\n extraData: {\r\n active: false,\r\n },\r\n });\r\n this.activeCartService.getActive();\r\n\r\n setTimeout(() => {\r\n localStorage.removeItem('spartacus⚿dimond-spa⚿cart');\r\n window.location.href = '/my-account/saved-carts';\r\n }, 1000);\r\n });\r\n } else {\r\n this.submitted = false;\r\n }\r\n }\r\n}\r\n","<div class=\"modal-dialog\" role=\"document\">\r\n <div class=\"loading \" *ngIf=\"showWaitCursor | async \">Loading&#8230;</div>\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header p-0 pb-3\">\r\n <ng-container *ngIf=\"!customSaveCardData\">\r\n <h4 class=\"modal-title\">{{savedCartDialog.savedCarForTitle}}</h4>\r\n </ng-container>\r\n <ng-container *ngIf=\"customSaveCardData?.name\">\r\n <h4 class=\"modal-title\">{{savedCartDialog.edit}} {{customSaveCardData?.name}}</h4>\r\n </ng-container>\r\n <i class=\"icon-close closePopup\" data-dismiss=\"modal\" #closebutton aria-label=\"Close\"></i>\r\n </div>\r\n <form [formGroup]=\"saveCardForm\">\r\n <div class=\"modal-body px-2\">\r\n <div class=\"form-group\">\r\n <label class=\"required\">{{savedCartDialog.savedCartName}}<span class=\"reqField\">*</span></label>\r\n <input type=\"text\" formControlName=\"name\" name=\"name\" class=\"form-control requiredInput\" />\r\n <div class=\"text-danger\" *ngIf=\"(f.name.touched || submitted) && f.name.errors?.required\">\r\n {{savedCartDialog.savedCartNameValidation}}\r\n </div>\r\n </div>\r\n <div class=\"form-group\">\r\n <label class=\"required\">{{savedCartDialog.description}} <span class=\"optional\">{{savedCartDialog.optional}}</span></label>\r\n <textarea formControlName=\"description\" maxlength=\"250\" rows=\"5\" name=\"description\" class=\"form-control\" #descLength></textarea>\r\n <div class=\"characLimit text-right\">{{250 - descLength.value.length}} {{savedCartDialog.descriptionLength}}</div>\r\n </div>\r\n </div>\r\n <div class=\"savedCardPopupFooter\">\r\n <button type=\"button\" data-dismiss=\"modal\" class=\"btn mobile-cancel-btn dimond-secondary-btn\">{{savedCartDialog.cancel}}</button>\r\n <button type=\"submit\" class=\"btn mobile-save-btn dimond-primary-btn float-right\" (click)=\"saveOrEditCart()\">{{savedCartDialog.confirm}}</button>\r\n </div>\r\n </form>\r\n </div>\r\n</div>","import { ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { SavedCartService } from '@spartacus/cart/saved-cart/core';\r\nimport { Cart, RoutingService } from '@spartacus/core';\r\nimport { BehaviorSubject } from 'rxjs'; \r\nimport { SaveCartService } from '../../custom-saved-cart/save-cart.service';\r\nimport { savedCartList } from '../../custom-saved-cart/saved-cart-general';\r\n\r\n@Component({\r\n selector: 'app-active-saved-cart',\r\n templateUrl: './active-saved-cart.component.html',\r\n styleUrls: ['./active-saved-cart.component.scss']\r\n})\r\nexport class ActiveSavedCartComponent implements OnInit, OnChanges {\r\n @ViewChild('closebutton') closebutton: any;\r\n savedCartList = savedCartList;\r\n makeCartActiiveForm!: FormGroup;\r\n @Input() makeActiveData: any = [];\r\n descriptionLength: boolean = false;\r\n nameMaxLength: number = 50;\r\n cloneRecord: boolean = true;\r\n cartName: string = '';\r\n showWaitCursor = new BehaviorSubject<boolean>(false);\r\n makeCartActiveForm: any;\r\n @Input() selectedCartId: any;\r\n @Input() isDeletePopup?: boolean = false;\r\n @Output() closedPopup = new EventEmitter<any>();\r\n constructor(\r\n public cd: ChangeDetectorRef,\r\n public service: SaveCartService,\r\n public routing: RoutingService,\r\n private formBuilder: FormBuilder,\r\n private saveCart: SavedCartService ) {\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.makeActiveData[0] && this.makeActiveData[0].description.length > 90) {\r\n this.showWaitCursor.next(false);\r\n this.descriptionLength = true;\r\n this.cd.markForCheck();\r\n } else {\r\n this.showWaitCursor.next(false);\r\n this.descriptionLength = false;\r\n this.cd.markForCheck();\r\n }\r\n }\r\n ngOnInit(): void {\r\n this.makeCartActiveForm = this.formBuilder.group({\r\n cartName: ['']\r\n })\r\n }\r\n\r\n get f() {\r\n return this.makeCartActiveForm.controls;\r\n }\r\n\r\n goToSavedCartDetails(): void {\r\n window.location.href = '/my-account/saved-carts'\r\n }\r\n markForActive() {\r\n if (this.isDeletePopup) {\r\n this.service.deleteSavdCart(this.selectedCartId).subscribe(() => {\r\n this.closeMethod();\r\n this.goToSavedCartDetails();\r\n })\r\n } else {\r\n if (this.cloneRecord == true) {\r\n const name = this.makeCartActiveForm?.value?.cartName == '' ? this.makeActiveData[0]?.name : this.makeCartActiveForm?.value?.cartName;\r\n this.saveCart.cloneSavedCart(this.selectedCartId,name)\r\n this.closeMethod();\r\n } else {\r\n this.saveCart.restoreSavedCart(this.selectedCartId);\r\n this.closeMethod();\r\n }\r\n }\r\n\r\n }\r\n closeMethod() {\r\n this.closebutton.nativeElement.click();\r\n this.closedPopup.emit();\r\n }\r\n changeRetainCopy(event: any,) {\r\n if (event.currentTarget.checked) {\r\n this.cloneRecord = true;\r\n } else {\r\n this.cloneRecord = false;\r\n }\r\n }\r\n}\r\n","<div class=\"modal-dialog\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header p-0 pb-3 mb-2\">\r\n <h4 class=\"modal-title\">{{isDeletePopup == true ? savedCartList.makeCartDelete : savedCartList.makeCartActive}}</h4>\r\n <i class=\"icon-close closePopup\" data-dismiss=\"modal\" #closebutton aria-label=\"Close\"></i>\r\n </div>\r\n <p class=\"my-4\">{{isDeletePopup == true ? savedCartList.deleteCartPara : savedCartList.restoredCartPara}}</p>\r\n <div class=\"modal-body p-0\">\r\n <form>\r\n <ul class=\"savecardDataBox\">\r\n <li class=\"columOne\">\r\n <label class=\"saveCardLabel\">{{savedCartList.cartName }}</label>\r\n <p> {{makeActiveData[0]?.name}}</p>\r\n </li>\r\n <li class=\"columTwo\">\r\n <label class=\"saveCardLabel\">{{savedCartList.cartDescription }}</label>\r\n <p class=\"description\">\r\n {{makeActiveData[0]?.description | slice:0:90}}\r\n <ng-container *ngIf=\"descriptionLength\">\r\n <span class=\"readmoreLabel\" placement=\"bottom\" ngbTooltip=\"{{makeActiveData[0]?.description}}\">\r\n {{savedCartList.readmore}}\r\n </span>\r\n </ng-container>\r\n </p>\r\n </li>\r\n <li class=\"columOne\">\r\n <label class=\"saveCardLabel\">{{savedCartList.quantity }}</label>\r\n <p> {{makeActiveData[0]?.deliveryItemsQuantity}}</p>\r\n </li>\r\n <li class=\"columTwo\">\r\n <label class=\"saveCardLabel\">{{savedCartList.total }}</label>\r\n <p>{{makeActiveData[0]?.totalPrice?.formattedValue }}</p>\r\n </li>\r\n </ul>\r\n <div *ngIf=\"isDeletePopup == false\" class=\"\">\r\n <div class=\"form-group\">\r\n <label class=\"accountItem copySaveData\">\r\n <input type=\"checkbox\" name=\"\" class=\"rounded-0\" checked class=\"form-control\"\r\n (change)=\"changeRetainCopy($event)\" />\r\n {{savedCartList.retainCopyTxt}}\r\n </label>\r\n </div>\r\n <ng-container [formGroup]=\"makeCartActiveForm\" *ngIf=\"cloneRecord\">\r\n <div class=\"form-group\">\r\n <label class=\"required\">{{savedCartList.nameofCart}}</label>\r\n <input type=\"text\" formControlName=\"cartName\" [placeholder]=\"makeActiveData[0]?.name\" class=\"form-control copyCartInput\" />\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"makeCardPopupFooter\">\r\n <button type=\"button\" data-dismiss=\"modal\" class=\"btn dimond-secondary-btn mobile-cancel-btn\">{{savedCartList.cancel}}</button>\r\n <button type=\"submit\" (click)=\"markForActive()\" class=\"btn dimond-primary-btn float-right\">\r\n <ng-container *ngIf=\"isDeletePopup == true\" >{{savedCartList.delete}}</ng-container>\r\n <ng-container *ngIf=\"!isDeletePopup == true\" >{{savedCartList.confirm}}</ng-container>\r\n </button>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, OnInit, forwardRef, Output, EventEmitter, ViewChild, AfterViewInit, ElementRef, ChangeDetectorRef, Input } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport * as moment from 'moment';\r\nimport { DaterangepickerDirective } from 'ngx-daterangepicker-material';\r\n\r\n@Component({\r\n selector: 'app-date-range-picker', host: {\r\n '(document:mousedown)': 'onClick($event)',\r\n },\r\n templateUrl: './date-range-picker.component.html',\r\n styleUrls: ['./date-range-picker.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DateRangePickerComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class DateRangePickerComponent implements OnInit, AfterViewInit, ControlValueAccessor {\r\n @Input() selectedDateRange?: any;\r\n selectedDateKey: string = 'orderDate';\r\n calendarPlaceholder: string = 'Date Range';\r\n showControls: boolean = false;\r\n minDate: any = moment().subtract(364, 'days');\r\n maxDate: any;\r\n @Output() selectedDate = new EventEmitter<any>();\r\n @ViewChild(DaterangepickerDirective, { static: false }) pickerDirective: any // DaterangepickerDirective;\r\n ranges: any = {\r\n 'Today': [moment(), moment()],\r\n 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Last 7 Days': [moment().subtract(6, 'days'), moment()],\r\n 'Last 30 Days': [moment().subtract(29, 'days'), moment()],\r\n // 'Last 1 Year': [moment().subtract(364, 'days'), moment()],\r\n 'This Month': [moment().startOf('month'), moment()],\r\n 'Last Month': [\r\n moment().subtract(1, 'month').startOf('month'),\r\n moment().subtract(1, 'month').endOf('month')\r\n ]\r\n };\r\n constructor(private _eref: ElementRef,\r\n public cd: ChangeDetectorRef) { }\r\n\r\n ngOnInit(): void {\r\n if (this.selectedDateRange == undefined) {\r\n this.selectedDateRange = { startDate: moment().subtract(29, 'days'), endDate: moment() }\r\n }\r\n }\r\n ngAfterViewInit(): void {\r\n this.maxDate = moment();\r\n }\r\n onClick(event: any) {\r\n if (!this._eref.nativeElement.contains(event.target)) {\r\n this.showControls = false;\r\n }\r\n }\r\n openDatepicker() {\r\n this.showControls = true;\r\n this.pickerDirective.open();\r\n }\r\n // Function to call when the input value changes.\r\n onChange = (e: Event) => {\r\n }\r\n datesUpdated(eve: any) {\r\n if (this.selectedDateRange && this.selectedDateRange.startDate && this.selectedDateRange.startDate._d && this.selectedDateRange.endDate && this.selectedDateRange.endDate._d) {\r\n this.showControls = false;\r\n const dateValue = this.selectedDateRange.startDate._d.getDate() + '/' + (this.selectedDateRange.startDate._d.getMonth() + 1) + '/' + this.selectedDateRange.startDate._d.getFullYear() + ',' +\r\n this.selectedDateRange.endDate._d.getDate() + '/' + (this.selectedDateRange.endDate._d.getMonth() + 1) + '/' + this.selectedDateRange.endDate._d.getFullYear();\r\n // this.calendarPlaceholder = dateValue;\r\n let obj = {\r\n \"key\": this.selectedDateKey,\r\n \"value\": dateValue\r\n }\r\n this.selectedDate.emit(obj);\r\n }\r\n }\r\n // Function to call when the input is touched.\r\n onTouched = () => {\r\n }\r\n\r\n // Allows Angular to update the model (rating).\r\n // Update the model and changes needed for the view here.\r\n writeValue(obj: any): void {\r\n }\r\n\r\n // Allows Angular to register a function to call when the model (rating) changes.\r\n // Save the function as a property to call later here.\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n // Allows Angular to register a function to call when the input has been touched.\r\n // Save the function as a property to call later here.\r\n registerOnTouched(fn: () => void): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n // Allows Angular to disable the input.\r\n setDisabledState(isDisabled: boolean): void {\r\n // this.disabled = isDisabled;\r\n }\r\n\r\n onTypeChange = (val: any) => {\r\n this.openDatepicker();\r\n this.selectedDateKey = val;\r\n }\r\n}\r\n","<mat-radio-group *ngIf=\"showControls\" aria-label=\"Select an option\">\r\n <mat-radio-button [checked]=\"selectedDateKey == 'orderDate'\" (change)=\"onTypeChange('orderDate')\" [value]=\"'orderDate'\" class=\"pl-0\">Order</mat-radio-button>\r\n <mat-radio-button [checked]=\"selectedDateKey == 'deliveryDate'\" (change)=\"onTypeChange('deliveryDate')\" [value]=\"'deliveryDate'\" class=\"px-4\">Delivery</mat-radio-button>\r\n</mat-radio-group>\r\n<div class=\"fx-date-range-container\">\r\n <input [closeOnAutoApply]=\"false\" #DaterangepickerDirective class=\"fx-date-range\" type=\"text\" matInput\r\n ngxDaterangepickerMd [locale]=\"{applyLabel: 'apply', format: 'MM/DD/YY'}\" [drops]=\"'down'\" [opens]=\"'right'\"\r\n [ranges]=\"ranges\" [showCustomRangeLabel]=\"false\" [alwaysShowCalendars]=\"true\" [keepCalendarOpeningWithRange]=\"true\"\r\n [showCancel]=\"true\" autocomplete=\"off\" (datesUpdated)=\"datesUpdated($event)\" [(ngModel)]=\"selectedDateRange\"\r\n name=\"daterange\" [minDate]=\"minDate\"/>\r\n</div>\r\n<!-- <a class=\"ngx-daterangepicker-action\" (click)=\"openDatepicker()\">\r\n Open\r\n </a> -->\r\n<input class=\"ngx-daterangepicker-action\" (click)=\"openDatepicker()\" [placeholder]=\"calendarPlaceholder\">\r\n<img src=\"../../../../assets/images/ic_calender.svg\" alt=\"calender\" class=\"date-icon ngx-daterangepicker-action\" (click)=\"openDatepicker()\">","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { Cart_Clone_And_Save, Saved_Cart_Url } from '../services/endPointURL';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SavedCartService {\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n\r\n public cloneAndSave(cartId: number, name: string): Observable<any> {\r\n let url = Cart_Clone_And_Save(cartId).url + name;;\r\n return this.http.post(url, {\r\n headers: { 'Content-Type': 'application/json' },\r\n })\r\n .pipe(\r\n catchError(errorRes => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n public markCartForActive(cartId: number): Observable<any> {\r\n let url = Saved_Cart_Url(cartId).url;\r\n return this.http.patch(url, {\r\n headers: { 'Content-Type': 'application/json' },\r\n })\r\n .pipe(\r\n catchError(errorRes => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n}\r\n","import { DatePipe } from '@angular/common';\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'customDatePipe'\r\n})\r\nexport class CustomDatePipe implements PipeTransform {\r\n timeDifference: any;\r\n constructor(public datePipe: DatePipe) {\r\n\r\n }\r\n transform(value: any, format: string): string {\r\n const d = new Date();\r\n let diff = d.getTimezoneOffset();\r\n this.timeDifference = diff / 60;\r\n const sign = diff > 0 ? '+' : '-';\r\n const zone: string = sign + this.timeDifference + '00';\r\n value = this.datePipe.transform(value, format , value);\r\n return value;\r\n }\r\n\r\n}\r\n","import {ChangeDetectorRef, Component, Input, OnInit, OnDestroy, ViewChild } from '@angular/core';\r\nimport html2canvas from 'html2canvas';\r\nimport { jsPDF } from 'jspdf';\r\nimport { CmsService } from '@spartacus/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport {OrderFacade } from '@spartacus/order/root';\r\nimport { CartService } from '../../services/cart.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-shared-download-order',\r\n templateUrl: './shared-download-order.component.html',\r\n styleUrls: ['./shared-download-order.component.scss'],\r\n})\r\nexport class SharedDownloadOrderComponent implements OnInit, OnDestroy {\r\n showWaitCursor = new BehaviorSubject<boolean>(false);\r\n @Input() orderDetailsView: any;\r\n @Input() cartDetailsView: any;\r\n @Input() isOrder: any;\r\n orderDetails:any;\r\n cartDetails:any;\r\n totalPrice: any;\r\n env: any = sessionStorage.getItem('env');\r\n environment : any = JSON.parse(this.env);\r\n occeBaseUrl = this.environment.occBaseUrl;\r\n noImage = '../../../../assets/images/pdp-noimage.svg';\r\n orderMessage: any;\r\n downloadView: boolean = false;\r\n page = 490;\r\n orderId:any;\r\n @ViewChild('downLoadPDF') downLoadPdf: any;\r\n constructor(private cmsService: CmsService, public cd: ChangeDetectorRef,\r\n protected orderFacade: OrderFacade, private cartService : CartService) {\r\n this.cmsService\r\n .getComponentData('OrderDisclaimerContentComponent')\r\n .subscribe((data: any) => {\r\n this.orderMessage = data.content;\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.orderId = this.orderFacade.getOrderDetails();\r\n this.orderId = localStorage.getItem('orderId');\r\n }\r\n\r\n ngOnDestroy(){\r\n localStorage.removeItem('orderId');\r\n }\r\n orderPdfDownload(){\r\n this.downLoadPdf.nativeElement.click();\r\n }\r\n getOrderDetails() {\r\n this.showWaitCursor.next(true);\r\n this.cartService.getOrderDetails(this.orderId).subscribe((res:any) => {\r\n this.orderDetails = res;\r\n this.cartDetails = res?.entries;\r\n this.totalPrice = res?.totalPrice?.formattedValue;\r\n\r\n this.cartDetails.forEach((element: any) => {\r\n element.configList = [];\r\n element.configurationInfos.forEach((data: any) => {\r\n if (data.configurationLabel.startsWith('D', 0) || data.configurationLabel.startsWith('A', 0))\r\n element.configList.push(data);\r\n });\r\n });\r\n this.showWaitCursor.next(false);\r\n }, (error: any) => {\r\n this.showWaitCursor.next(false);\r\n });\r\n }\r\n\r\n\r\n download(divRef: any) {\r\n this.getOrderDetails();\r\n this.showWaitCursor.next(true);\r\n this.downloadView = true;\r\n setTimeout(() => {\r\n html2canvas(divRef, {\r\n // logging: true,\r\n // allowTaint: true,\r\n // useCORS: true,\r\n }).then((canvas) => {\r\n var imgData = canvas.toDataURL('image/png');\r\n\r\n var imgWidth = 600;\r\n var pageHeight = 840;\r\n var imgHeight = (canvas.height * imgWidth) / canvas.width + 10;\r\n var pageNo = 1;\r\n var heightLeft = imgHeight;\r\n var numberOfPages = Math.ceil(imgHeight / pageHeight);\r\n\r\n var doc = new jsPDF('p', 'pt', 'a4');\r\n var position = 0;\r\n\r\n doc.addImage(imgData, 'PNG', 0, position, imgWidth, imgHeight - 10);\r\n doc.setFontSize(10);\r\n doc.text('Page ' + pageNo + ' of ' + numberOfPages, 490, 820);\r\n heightLeft -= pageHeight;\r\n\r\n while (heightLeft >= 0) {\r\n pageNo = pageNo + 1;\r\n position = heightLeft - imgHeight;\r\n doc.addPage();\r\n doc.addImage(\r\n imgData,\r\n 'PNG',\r\n 0,\r\n position + 5,\r\n imgWidth,\r\n imgHeight - 10\r\n );\r\n heightLeft -= pageHeight;\r\n doc.text('Page ' + pageNo + ' of ' + numberOfPages, 490, 820);\r\n }\r\n doc.save('Order-Submistion-' + this.orderDetails?.code + '.pdf');\r\n this.downloadView = false;\r\n this.showWaitCursor.next(false);\r\n });\r\n }, 5000);\r\n }\r\n\r\n getProductImage(cart: any, thumbnail: any = true): any {\r\n let detailImages = cart?.product?.images;\r\n if (detailImages && Object.keys(detailImages)?.length > 0) {\r\n for (let item of detailImages) {\r\n if (item.format == 'cartIcon') {\r\n return item.url;\r\n }\r\n }\r\n }\r\n let srcUrl: any;\r\n if (\r\n cart?.attachments &&\r\n cart?.attachments?.length &&\r\n cart?.product?.flashingProduct\r\n ) {\r\n srcUrl =\r\n thumbnail && cart?.attachments?.length > 1\r\n ? cart?.attachments[1]?.downloadURL\r\n : cart?.attachments[0]?.downloadURL;\r\n detailImages = (srcUrl)?.replace('&attachment=true', '');\r\n }\r\n if(detailImages && detailImages?.length > 0) {\r\n return detailImages\r\n } else {\r\n return this.noImage\r\n }\r\n }\r\n}\r\n","<div class=\"loading \" *ngIf=\"showWaitCursor | async \">Loading&#8230;</div>\r\n<ng-container *ngIf=\"!isOrder else noOrder\">\r\n<div class=\"row\">\r\n <div class=\"col-sm-12\">\r\n <div class=\"text-center download_btn\">\r\n <p class=\"order-action-buttons\">\r\n <a class=\"btn secondary-button mr-md-5\" title=\"Continue Shopping\" href=\"/c/1\">Continue Shopping</a>\r\n\r\n <a class=\"btn primary-button customBtn\" title=\"Download\" (click)=\"download(divRef)\">Download</a>\r\n </p>\r\n </div>\r\n </div>\r\n</div>\r\n</ng-container>\r\n<ng-template #noOrder>\r\n <a (click)=\"download(divRef)\" #downLoadPDF></a>\r\n</ng-template>\r\n<div [ngStyle]=\"{ 'display': downloadView ? 'block' : 'none',position:'absolute',top:'-10000px'}\" #divRef class=\"container printedContainer\">\r\n <div class=\"row boxMargin fixed-width-row\">\r\n\r\n <div class=\"col-lg-4 col-sm-6 deliveryInfoBx\">\r\n <div class=\"row\">\r\n <ul class=\"col-12 deliveryInfo\">\r\n <div class=\"firstChild\">\r\n <div class=\"order-heading\"> Order Submission</div>\r\n <label> {{orderDetails?.code}} </label>\r\n </div>\r\n <li>\r\n <label> Account:</label>\r\n <span class=\"infoValue\">\r\n {{orderDetails?.orgCustomer?.orgUnit?.name}}\r\n </span>\r\n </li>\r\n <li>\r\n <label>Account NO.:</label>\r\n <span class=\"infoValue\">{{orderDetails?.orgCustomer?.orgUnit?.uid}}</span>\r\n </li>\r\n <li>\r\n <label>PO Number:</label>\r\n <span class=\"infoValue\">{{orderDetails?.orgCustomer?.orgUnit?.uid}}</span>\r\n </li>\r\n <li>\r\n <label>Submitted On:</label>\r\n <span class=\"infoValue\">{{orderDetails?.created | date:'dd/MM/yyyy'}}</span>\r\n </li>\r\n <li>\r\n <label>Submitted By:</label>\r\n <span class=\"infoValue\"> {{orderDetails?.orgCustomer?.name}}</span>\r\n </li>\r\n\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"col-lg-4 col-sm-6 deliveryInfoBx\">\r\n <div class=\"row\">\r\n <ul class=\"col-12 deliveryInfo\">\r\n <div class=\"Childbox\">\r\n\r\n </div>\r\n <li>\r\n <div class=\"d-flex\"> <img class=\"pickupdelivery-image\" *ngIf=\"orderDetails?.deliveryMode?.code =='standard_delivery'\" src=\"../../../../../assets/images/delivery.svg\" alt=\"Delivery\" title=\"Delivery\">\r\n <img *ngIf=\"orderDetails?.deliveryMode?.code !='standard_delivery'\" class=\"pickupdelivery-image\" src=\"../../../../assets/images/pickup.svg\" alt=\"Click & Collect\" title=\"Click & Collect\">\r\n\r\n\r\n <div class=\"d-flex flex-column pl-3\">\r\n <span> <b> Delivery Method:</b>\r\n {{orderDetails?.deliveryMode?.name}}\r\n </span>\r\n <p class=\"mb-0 pt-3\">{{orderDetails?.deliveryMode?.description}}</p>\r\n </div>\r\n </div>\r\n </li>\r\n <li>\r\n <label> \r\n <span *ngIf=\"orderDetails?.deliveryMode?.code =='standard_delivery'\">Delivery Date:</span>\r\n <span *ngIf=\"orderDetails?.deliveryMode?.code !='standard_delivery'\">Pickup Date:</span>\r\n </label>\r\n <span class=\"infoValue\">\r\n {{orderDetails?.expectedToDate.split(' ')[0]}}\r\n </span>\r\n </li>\r\n <li>\r\n <label>\r\n <span *ngIf=\"orderDetails?.deliveryMode?.code =='standard_delivery'\">Delivery Time:</span>\r\n <span *ngIf=\"orderDetails?.deliveryMode?.code !='standard_delivery'\">Pickup TIme:</span>\r\n </label>\r\n <span class=\"infoValue\">{{orderDetails?.expectedToDate.split(' ')[1] }}\r\n {{orderDetails?.expectedToDate.split(' ')[2] }}</span>\r\n </li>\r\n <li>\r\n <label>\r\n <span *ngIf=\"orderDetails?.deliveryMode?.code =='standard_delivery'\">Delivery Address:</span>\r\n <span *ngIf=\"orderDetails?.deliveryMode?.code !='standard_delivery'\">Pickup Address:</span>\r\n </label>\r\n <span class=\"infoValue\"> {{orderDetails?.deliveryAddress?.formattedAddress}}</span>\r\n </li>\r\n\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"col-lg-4 col-sm-6 deliveryInfoBx d-flex flex-column\">\r\n <img class=\"delivery_logo\" src=\"../../../../assets/images/logo-black.svg\" alt=\"logo\">\r\n <div class=\"align-notes\">\r\n <label class=\"font-weight-bold\">Delivery Notes:</label>\r\n\r\n <span class=\"mb-0\">{{orderDetails?.deliveryNotes}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"revieworder-table-container\">\r\n <div class=\"row revieworder-header-container fixed-width-row\">\r\n <div class=\"col-sm-1 py-2 count-width\">#</div>\r\n <div class=\"col-sm-3 py-2\">ITEM</div>\r\n <div class=\"col-sm-2 py-2\">JOB REFERENCE</div>\r\n <div class=\"col-sm-2 py-2\">TOTAL QTY</div>\r\n <div class=\"col-sm-2 py-2\">UNIT PRICE</div>\r\n <div class=\"col-sm-2 py-2\">TOTAL PRICE</div>\r\n </div>\r\n <div class=\"row revieworder-body-container\" *ngFor=\"let cart of cartDetails;let i = index\">\r\n <div class=\"col-sm-12\">\r\n <div class=\"row fixed-width-row\">\r\n <div class=\"col-sm-1 count-width\">\r\n <span> 0{{i +1}}</span>\r\n </div>\r\n <div class=\"col-sm-3\">\r\n <div class=\"row py-3 product-image-container\">\r\n <div class=\"col-sm-4 p-md-0 col-lg-2\">\r\n <img *ngIf=\"cart?.attachments && cart?.attachments[0]?.mime !== 'application/pdf'\" [src]=\"getProductImage(cart)\" alt=\"product image\" class=\"product-img-width\">\r\n <img *ngIf=\"cart?.attachments && cart?.attachments[0]?.mime == 'application/pdf'\" class=\"img-fluid\" src=\"../../../../assets//images//pdf-icon.svg\" alt=\"product image\">\r\n </div>\r\n <div class=\"col-sm-8 col-lg-10\">\r\n <p class=\" reviewproduct-name mb-2\">{{cart?.product?.name}}</p>\r\n <p class=\"sku-text\">SKU: {{cart?.product?.code }}</p>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"cart?.product?.classifications\">\r\n <div class=\"row\">\r\n <div class=\"col-sm-12 pl-md-0 mb-2 attributes\">\r\n <span *ngFor=\"let attributes of cart?.product && cart?.product?.classifications && cart?.product?.classifications[0] && cart?.product?.classifications[0]?.features;last as isLast\">\r\n {{attributes?.featureValues[0]?.value }} <span *ngIf=\"!isLast\"> | </span>\r\n </span>\r\n mm\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"col-sm-2 py-3\">\r\n {{cart?.jobReference || '-'}}\r\n </div>\r\n <div class=\"col-sm-2 py-3\">{{cart.quantityDouble}} {{cart?.basePrice?.unitType}}</div>\r\n <div class=\"col-sm-2 py-3\">{{cart?.basePrice?.formattedValue}}/{{cart?.basePrice?.unitType}}</div>\r\n <div class=\"col-sm-2 py-3\">{{cart?.totalPrice?.formattedValue}}\r\n <span class=\"d-block\"> excl GST and freight</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-12 pl-md-0\">\r\n <ng-container *ngIf=\"cart?.configurationInfos.length\">\r\n <p class=\"colors-paragraph mb-0\">\r\n <span class=\"revieworder-color mr-3\" [ngStyle]=\"{ background: cart?.configurationInfos[0]?.configurationValue.split('|') | slice:2}\"></span> {{cart?.configurationInfos[0]?.configurationValue.split('|') | slice:1:2}}\r\n </p>\r\n <p class=\"m-2\">\r\n <span *ngFor=\"let value of cart?.configurationInfos\">\r\n <span *ngIf=\"value.configurationLabel == 'TOTAL_WIDTH_RANGE'\"> Total Width Range: {{value?.configurationValue}} </span>\r\n <span *ngIf=\"value.configurationLabel == 'NBR_OF_BENDS'\"> | No. of Bends:{{value?.configurationValue}} </span>\r\n </span>\r\n </p>\r\n \r\n <div class=\"row\">\r\n <div class=\"col-sm-2\">\r\n <div class=\"row\">\r\n <div class=\"col-sm-6\" *ngFor=\"let data of cart?.configList; let i= index;\">\r\n <div>\r\n {{data?.configurationLabel}} :{{data?.configurationValue}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-10\" *ngIf=\"cart?.product?.flashingProduct\">\r\n <img *ngIf=\"cart?.attachments[0]?.mime !== 'application/pdf'\" class=\"img-fluid\" [src]=\"cart?.attachments[0]?.downloadURL\" alt=\"product image\">\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"cart?.subLineConfigInfos?.length>0\">\r\n <div class=\"revieworder-collapse\">\r\n <div class=\"row\">\r\n <div class=\"col-sm-6 bundle-details\">\r\n <div class=\"row bundle-details-header\">\r\n <div class=\"col-3\">Quantity</div>\r\n <div class=\"col-3\">Length (LM)</div>\r\n <ng-container *ngIf=\"cart?.subLineConfigInfos[i]?.bundleName\">\r\n <div class=\"col-3\">Bundle</div>\r\n <div class=\"col-3\">Reference</div>\r\n </ng-container>\r\n </div>\r\n <div class=\"row\" *ngFor=\"let subLine of cart?.subLineConfigInfos\">\r\n <div class=\"col-3\">{{subLine?.quantity}}</div>\r\n <div class=\"col-3\">{{subLine?.length | number:'0.3-3'}}</div>\r\n <ng-container *ngIf=\"cart?.subLineConfigInfos[i]?.bundleName\">\r\n <div class=\"col-3\">{{subLine?.bundleName}}</div>\r\n <div class=\"col-3\">{{subLine?.reference}}</div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <ng-container *ngIf=\"cart?.product?.flashingProduct && cart?.productConfiguredInfos && cart?.productConfiguredInfos?.length>0\">\r\n <div class=\"flashing-block col-sm-12\" *ngFor=\"let data of cart?.productConfiguredInfos\">\r\n <div class=\"row\">\r\n <div class=\"col-sm-3\">\r\n <h3 class=\"flash-title\">{{ data?.product?.name }}</h3>\r\n <h6 class=\"skuId\">SKU: {{ data?.product?.code }}</h6>\r\n <span *ngIf=\"data?.girth\">Grith: +{{data?.girth}}mm </span>\r\n </div>\r\n <div class=\"offset-sm-3 col-sm-2\">\r\n {{data?.quantityDouble}}{{data?.unitType}}\r\n </div>\r\n <div class=\"col-sm-2\">\r\n {{data?.basePrice?.formattedValue}}/{{data?.unitType}}\r\n </div>\r\n <div class=\"col-sm-2\">\r\n {{data?.totalPrice?.formattedValue}}\r\n <span class=\"gst-text\">excl GST</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"row d-flex mt-3\">\r\n <div class=\"col-md-12\">\r\n <p class=\"mb-0 review-total-text text-right\">Total</p>\r\n <p class=\"review-total-value mb-2 text-right\">{{orderDetails?.totalPrice?.formattedValue}} </p>\r\n <p><span class=\"d-block excltext text-right\"> Excluding GST, freight and sundry charges</span></p>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"row fixed-width-row\" *ngIf=\"orderMessage && !isOrder\">\r\n <div class=\"col-sm-12 pl-0 order-print-bottom\">\r\n <div class=\"text-left\" [innerHTML]=\"orderMessage\"></div>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\nimport { UrlModule } from '@spartacus/core';\r\nimport { MediaModule, IconModule, BreadcrumbModule } from '@spartacus/storefront';\r\nimport { CustomBreadcrumComponent } from './custom-breadcrum/custom-breadcrum.component'; \r\nimport { CustomCartGridComponent } from './custom-cart-detail/custom-cart-grid/custom-cart-grid.component';\r\nimport { CustomCartListComponent } from './custom-cart-detail/custom-cart-list/custom-cart-list.component';\r\nimport { SplitPipe } from './custom-cart-detail/split.pipe';\r\nimport { NgbModule, NgbToastModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { CustomProductQuantityFormComponent } from './custom-cart-detail/custom-product-quantity-form/custom-product-quantity-form.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { SavedCartPopupComponent } from './saved-cart-popup/saved-cart-popup.component';\r\nimport { ActiveSavedCartComponent } from './active-saved-cart/active-saved-cart.component';\r\nimport { NgxDaterangepickerMd } from 'ngx-daterangepicker-material';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { DateRangePickerComponent } from './date-range-picker/date-range-picker.component';\r\nimport { SavedCartService } from '../custom-saved-cart/saved-cart.service';\r\nimport { CustomDatePipe } from '../pipes/custom-date-pipe.pipe';\r\nimport { SharedDownloadOrderComponent } from './shared-download-order/shared-download-order.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n CustomBreadcrumComponent,\r\n SavedCartPopupComponent,\r\n ActiveSavedCartComponent,\r\n CustomCartGridComponent,\r\n CustomCartListComponent,\r\n SplitPipe,\r\n CustomProductQuantityFormComponent,\r\n DateRangePickerComponent,\r\n SharedDownloadOrderComponent,\r\n CustomDatePipe\r\n\r\n ],\r\n imports: [\r\n CommonModule,\r\n MediaModule,\r\n IconModule,\r\n UrlModule,\r\n RouterModule,\r\n BreadcrumbModule,\r\n ReactiveFormsModule,\r\n NgbModule,\r\n FormsModule,\r\n MatRadioModule,\r\n NgxDaterangepickerMd.forRoot()\r\n ],\r\n exports: [\r\n CustomBreadcrumComponent,\r\n SavedCartPopupComponent,\r\n ActiveSavedCartComponent,\r\n CustomCartGridComponent,\r\n CustomCartListComponent,\r\n CustomProductQuantityFormComponent,\r\n DateRangePickerComponent,\r\n CustomDatePipe,\r\n SharedDownloadOrderComponent\r\n ],\r\n providers:[SavedCartService]\r\n})\r\nexport class SharedComponentsModule { }\r\n","import { ChangeDetectorRef, Component, OnInit } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { CmsNavigationComponent, CmsService } from '@spartacus/core';\r\nimport { CategoryNavigationComponent, CmsComponentData, NavigationService } from '@spartacus/storefront';\r\nimport { BehaviorSubject, Observable, Subscription } from 'rxjs'; \r\nimport { AccountDropdownStateService } from '../../services/account-dropdown-state.service';\r\nimport { CommonUtils } from '../../utils';\r\n\r\n@Component({\r\n selector: 'app-custom-navigation',\r\n templateUrl: './custom-navigation.component.html',\r\n styleUrls: ['./custom-navigation.component.scss']\r\n})\r\nexport class CustomNavigationComponent extends CategoryNavigationComponent implements OnInit {\r\n customMenuItems: any = [];\r\n serviceSubscribe: Subscription = new Subscription;\r\n isMobile = false;\r\n isTablet = false;\r\n isDesktop = true;\r\n AllProducts: any = [];\r\n subCategory: any = [];\r\n MyAccount: any = [];\r\n quickOrder: any;\r\n display: string = 'none';\r\n modalRef: any;\r\n homeIconData:any;\r\n searchIconData:boolean=false;\r\n showWaitCursor = new BehaviorSubject<boolean>(true);\r\n constructor(\r\n private cmsService: CmsService,\r\n private modalService: NgbModal,\r\n componentData: CmsComponentData<CmsNavigationComponent>,\r\n public cd: ChangeDetectorRef,\r\n public accDropService: AccountDropdownStateService,\r\n service: NavigationService) {\r\n super(componentData, service);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.showWaitCursor.next(true);\r\n this.navMenuList();\r\n this.onPageRefresh();\r\n this.cmsService.getComponentData(\"QuickOrderLink\").subscribe((data: any) => {\r\n this.quickOrder = data;\r\n \t\t\t\tthis.showWaitCursor.next(false);\r\n })\r\n this.cmsService.getComponentData(\"HomeLogoComponent\").subscribe((data: any) => {\r\n this.homeIconData = data;\r\n this.cd.markForCheck();\r\n this.showWaitCursor.next(false);\r\n })\r\n this.cmsService.getComponentData(\"SearchLogoComponent\").subscribe((data: any) => {\r\n if(data){\r\n this.searchIconData=true;\r\n }\r\n })\r\n }\r\n\r\n navMenuList() {\r\n this.serviceSubscribe = this.node$.subscribe((data: any) => {\r\n this.customMenuItems = data.children.map((item: any) => {\r\n let child: any;\r\n if (item.children) {\r\n child = this.getChild(item.children);\r\n if (item.url && item.title == 'My Account') {\r\n this.MyAccount = item.children;\r\n }\r\n if (item.title == 'Products') {\r\n this.AllProducts = item.children;\r\n sessionStorage.setItem('productcategory',JSON.stringify(this.AllProducts));\r\n this.accDropService.navigationsData.next(item.children);\r\n }\r\n return { text: item.title, items: child, url: item.url };\r\n }\r\n return { text: item.title, url: item.url };\r\n });\r\n this.cd.markForCheck();\r\n });\r\n }\r\n\r\n\r\n routeURL(url: any) {\r\n\r\n }\r\n landingPageRouting() {\r\n\r\n document.location.href = '/';\r\n }\r\n /* Method helps to \"parse|optimize\" server side data to menu items */\r\n getChild(children: any): void {\r\n return children.map((child: any) => {\r\n let childList: any;\r\n if (child.children) {\r\n childList = this.getChild(child.children);\r\n if (child.url) {\r\n childList.unshift({ text: 'All Products', url: child.url });\r\n }\r\n return { text: child.title, items: childList, url: child.url };\r\n }\r\n return { text: child.title, url: child.url };\r\n });\r\n }\r\n\r\n onResize(event: any) {\r\n event.target.innerWidth;\r\n if (event.target.innerWidth < 768) {\r\n this.isMobile = true;\r\n this.isDesktop = false;\r\n }\r\n else if (event.target.innerWidth< 992) {\r\n this.isTablet = true;\r\n this.isDesktop = false;\r\n }\r\n else {\r\n this.isDesktop = true;\r\n }\r\n }\r\n\r\n onPageRefresh() {\r\n this.isMobile = CommonUtils.isMobile();\r\n this.isTablet = CommonUtils.isTablet();\r\n this.isDesktop = CommonUtils.isDesktop();\r\n }\r\n \r\n}\r\n","<div class=\"loading \" *ngIf=\"showWaitCursor | async \">Loading&#8230;</div>\r\n<div (window:resize)=\"onResize($event)\">\r\n <nav class=\"navbar navbar-expand-lg navbar-light position-relative\">\r\n <div class=\"navbar-collapse\" id=\"headerNavbar\">\r\n <div class=\"container\" [ngClass]=\"{'navigationBox': !isDesktop}\" id=\"parentNav\">\r\n <ul class=\"customHeaderNav navbar-nav main-nav d-flex d-lg-inline-flex\">\r\n <ng-container *ngIf=\"isDesktop && homeIconData?.media\">\r\n <li [ngClass]=\"homeIconData.styleClasses\" class=\"main-nav-level-1\">\r\n <a routerLink=\"{{homeIconData?.urlLink}}\">\r\n <cx-media [container]=\"homeIconData?.media\"></cx-media>\r\n </a>\r\n </li>\r\n </ng-container>\r\n <li *ngIf=\"isDesktop\" class=\"rightBdr main-nav-level-1\"> &nbsp;</li>\r\n <li class=\"nav-item main-nav-level-1\" [ngClass]=\"{'megamenu': menuItem.text=='Products', 'myAccount': menuItem.text=='My Account' }\" *ngFor=\"let menuItem of customMenuItems; let i=index\">\r\n <div class=\"navTagParent\">\r\n <a [routerLink]=\"menuItem?.url\" data-toggle=\"megamneu-1\" aria-haspopup=\"true\" aria-expanded=\"false\" class=\"nav-link text-uppercase position-relative\">\r\n {{menuItem.text}}</a>\r\n <ng-container *ngIf=\"!isDesktop\">\r\n <span class=\"arrowdownBx d-flex align-items-center justify-content-center\" data-toggle=\"collapse\" [attr.data-target]=\"'#parentNavLabel' + i\" aria-expanded=\"false\" [attr.aria-controls]=\"'parentNavLabel' + i\" *ngIf=\"menuItem.text=='Products' && AllProducts?.length || menuItem.text=='My Account' && MyAccount?.length\">\r\n <i class=\"icon-right\" aria-label=\"catagory Menu\" title=\"catagory Menu\"></i>\r\n </span>\r\n </ng-container>\r\n </div>\r\n <div class=\"border-0 p-0 m-0 mainnav-link-level-2\" [attr.id]=\"'parentNavLabel' + i\" aria-labelledby=\"\" data-parent=\"#parentNav\" [ngClass]=\"isDesktop && menuItem.text=='Products' ? 'categoryMenu' : 'collapse' \" *ngIf=\"menuItem.text=='Products'\">\r\n <ul class=\"nav-link-box justify-content-md-around\" id=\"childNav\">\r\n <li class=\"nav-item dropdown w-100 megamenuSubChild\" *ngFor=\"let catagory of AllProducts; let c=index\">\r\n <div class=\"navTagChild\">\r\n <a [routerLink]=\"catagory?.url\" class=\"nav-link text-uppercase\">\r\n <span class=\"category-icon\" [ngClass]=\"catagory.styleClasses\"></span>\r\n <span>{{catagory?.title}}</span>\r\n </a>\r\n <ng-container *ngIf=\"!isDesktop\">\r\n <span class=\"arrowdownBx d-flex align-items-center justify-content-center\" data-toggle=\"collapse\" [attr.data-target]=\"'#childNavLabel' + c\" aria-expanded=\"false\" [attr.aria-controls]=\"'childNavLabel' + c\" *ngIf=\"menuItem.text=='Products' && AllProducts?.length || menuItem.text=='My Account' && MyAccount?.length\">\r\n <i class=\"icon-right\" aria-label=\"catagory Menu\" title=\"catagory Menu\"></i>\r\n </span>\r\n </ng-container>\r\n </div>\r\n <div aria-labelledby=\"megamneu-2\" class=\"border-0 p-0 m-0\" [ngClass]=\"isDesktop? 'dropdown-menu mainnav-link-level-3' : 'collapse navLabelThree' \" [attr.id]=\"'childNavLabel' + c\" aria-labelledby=\"\" data-parent=\"#childNav\">\r\n <div class=\"\">\r\n <ul class=\"col-sm-12 d-md-flex flex-md-wrap p-5\">\r\n <li class=\"col-lg-3\" *ngFor=\"let subcatagory of catagory.children;\">\r\n <a [routerLink]=\"subcatagory?.url\" class=\"nav-link text-uppercase py-4\">{{subcatagory?.title}}</a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </li>\r\n\r\n </ul>\r\n </div>\r\n <div aria-labelledby=\"myAccount\" class=\"border-0 p-0 m-0 collapse\" [ngClass]=\"isDesktop && menuItem.text=='My Account' ? 'categoryMenu dropdown-menu mainnav-link-level-2' : ''\" *ngIf=\"menuItem.text=='My Account' && MyAccount?.length\" [attr.id]=\"'parentNavLabel' + i\"\r\n aria-labelledby=\"headingOne\" data-parent=\"#parentNav\">\r\n <ul class=\"myAccountMenu d-flex flex-column\">\r\n <li class=\"d-flex\" *ngFor=\"let account of MyAccount; let c=index\">\r\n <a [routerLink]=\"account?.url\" class=\"text-uppercase p-3 w-100\">\r\n <span>{{account?.title}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </li>\r\n <li class=\" d-flex align-self-stretch\" *ngIf=\"isDesktop\">\r\n <div class=\"d-flex\">\r\n <div class=\"quickOrder-Nav d-flex align-items-center\" *ngIf=\"quickOrder\">\r\n <a [routerLink]=\"quickOrder.url\" class=\"quickOrder-btn text-center\">\r\n {{quickOrder.linkName}}\r\n </a>\r\n </div>\r\n <ng-container *ngIf=\"searchIconData\">\r\n <app-custom-search class=\"d-flex\"></app-custom-search>\r\n </ng-container>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n </div>\r\n </nav>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common'; \r\nimport { ConfigModule, CmsConfig } from '@spartacus/core'; \r\nimport { CustomMiniCartModule } from '../custom-mini-cart/custom-mini-cart.module';\r\nimport { NgbModal, NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { MatDialogModule } from '@angular/material/dialog'; \r\nimport { BrowserModule } from '@angular/platform-browser'; \r\nimport { CustomSearchModule } from '../custom-search/custom-search.module';\r\nimport { AccountDropdownModule } from '../account-dropdown/account-dropdown.module';\r\nimport { FindStoreModule } from '../find-store/find-store.module';\r\nimport { CustomHeaderLogoModule } from '../custom-header-logo/custom-header-logo.module';\r\nimport { SharedComponentsModule } from '../shared/shared-components.module';\r\nimport { CustomNavigationComponent } from './custom-navigation/custom-navigation.component';\r\nimport { MediaModule } from '@spartacus/storefront';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CustomUserAccountModule } from '../custom-user-account/custom-user-account.module';\r\n\r\n\r\n\r\nconst targetModules = [\r\n CommonModule,\r\n BrowserModule,\r\n CustomHeaderLogoModule,\r\n CustomMiniCartModule,\r\n MatDialogModule,\r\n SharedComponentsModule, \r\n FindStoreModule,\r\n NgbModule,\r\n MediaModule,\r\n RouterModule,\r\n AccountDropdownModule,\r\n CustomUserAccountModule,\r\n ConfigModule.withConfig({\r\n cmsComponents: {\r\n CategoryNavigationComponent: {\r\n component: CustomNavigationComponent\r\n }\r\n }\r\n } as CmsConfig)\r\n]\r\n// if (CommonUtils.isDesktop()) {\r\n// const targetComp: any = ConfigModule.withConfig({\r\n// cmsComponents: {\r\n// CategoryNavigationComponent: {\r\n// component: CustomNavigationComponent\r\n// }\r\n// }\r\n// } as CmsConfig)\r\n// targetModules.push(targetComp)\r\n\r\n// }\r\n@NgModule({\r\n declarations: [ \r\n CustomNavigationComponent,\r\n ],\r\n imports: [\r\n targetModules,\r\n CustomSearchModule,\r\n ],\r\n exports: [\r\n CustomNavigationComponent\r\n ],\r\n providers: [\r\n NgbModal\r\n ]\r\n})\r\nexport class LibNavigationModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-preference',\r\n templateUrl: './preference.component.html',\r\n styleUrls: ['./preference.component.scss']\r\n})\r\nexport class PreferenceComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div class=\"d-flex\">\r\n <app-help-support></app-help-support>\r\n <div class=\"settings\">\r\n <a href=\"/under-construction\" title=\"Preference Page\">\r\n <img class=\"settings-icon\" src=\"../../../assets/images/Icon-ionic-ios-settings.svg\"></a>\r\n </div>\r\n \r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common'; \r\nimport { CmsConfig, ConfigModule } from '@spartacus/core';\r\nimport { PreferenceComponent } from './preference.component';\r\nimport { HelpSupportModule } from '../help-support/help-support.module';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n PreferenceComponent\r\n ],\r\n imports: [\r\n HelpSupportModule,\r\n CommonModule,\r\n ConfigModule.withConfig({\r\n cmsComponents: {\r\n PreferencePageComponent: {\r\n component: PreferenceComponent,\r\n },\r\n },\r\n } as CmsConfig),\r\n ], exports: [\r\n PreferenceComponent\r\n ]\r\n})\r\nexport class PreferenceModule { }\r\n","import { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { ModuleWithProviders } from '@angular/core';\r\nimport { NgModule, Optional, SkipSelf } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { RouterModule } from '@angular/router';\r\nimport { AuthModule } from '@auth0/auth0-angular';\r\nimport { StoreModule } from '@ngrx/store';\r\nimport { UrlModule, ConfigModule, CmsConfig } from '@spartacus/core';\r\nimport { MediaModule, IconModule } from '@spartacus/storefront';\r\nimport { AccountDropdownModule } from './account-dropdown/account-dropdown.module';\r\nimport { ContactUsModule } from './contact-us/contact-us.module';\r\nimport { CustomHeaderLogoModule } from './custom-header-logo/custom-header-logo.module';\r\nimport { CustomHeaderParagraphModule } from './custom-header-paragraph/custom-header-paragraph.module';\r\nimport { CustomMiniCartModule } from './custom-mini-cart/custom-mini-cart.module';\r\nimport { LibNavigationModule } from './custom-navigation/custom-navigation.module';\r\nimport { CustomSearchModule } from './custom-search/custom-search.module';\r\nimport { CustomUserAccountModule } from './custom-user-account/custom-user-account.module';\r\nimport { FindStoreModule } from './find-store/find-store.module';\r\nimport { HelpSupportModule } from './help-support/help-support.module';\r\nimport { PreferenceModule } from './preference/preference.module';\r\nimport { UserAccountDetailServiceService } from './services/user-account-detail-service.service';\r\nimport { SpaCustomHeaderComponent } from './spa-custom-header.component';\r\n\r\nlet sharedData: any = {};\r\nconst listOfModules: any = [PreferenceModule,];\r\n\r\n@NgModule({\r\n declarations: [\r\n SpaCustomHeaderComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n CommonModule,\r\n MediaModule,\r\n IconModule,\r\n UrlModule,\r\n RouterModule,\r\n AccountDropdownModule,\r\n CustomMiniCartModule,\r\n LibNavigationModule,\r\n CustomUserAccountModule,\r\n HelpSupportModule,\r\n FindStoreModule,\r\n CustomSearchModule,\r\n HttpClientModule,\r\n CustomHeaderParagraphModule,\r\n ContactUsModule,\r\n\r\n listOfModules,\r\n CustomHeaderLogoModule,\r\n StoreModule.forRoot({}),\r\n ConfigModule.withConfig({\r\n cmsComponents: {\r\n SiteLogoComponent: {\r\n component: SpaCustomHeaderComponent\r\n }\r\n }\r\n } as CmsConfig)\r\n ],\r\n exports: [\r\n SpaCustomHeaderComponent\r\n ],\r\n providers: [\r\n ]\r\n})\r\nexport class SpaCustomHeaderModule {\r\n constructor(@Optional() @SkipSelf() parentModule?: SpaCustomHeaderModule) {\r\n if (parentModule) {\r\n throw new Error(\r\n 'GreetingModule is already loaded. Import it in the AppModule only');\r\n }\r\n }\r\n\r\n public static forRoot(env: any): ModuleWithProviders<SpaCustomHeaderModule> {\r\n sharedData = env;\r\n sessionStorage.setItem('env', JSON.stringify(env) );\r\n localStorage.setItem('envUrl', env.occBaseUrl + '/' + env.baseSiteId);\r\n localStorage.setItem('UIsiteURl', env.UIsiteURl)\r\n listOfModules.push(AuthModule.forRoot({\r\n domain: sharedData.auth0Domain,\r\n clientId: sharedData.auth0Client_id,\r\n redirect_uri: sharedData.UIsiteURl\r\n }))\r\n return {\r\n ngModule: SpaCustomHeaderModule,\r\n providers: [\r\n UserAccountDetailServiceService,\r\n {\r\n provide: 'env', // you can also use InjectionToken\r\n useValue: env\r\n }\r\n ]\r\n };\r\n\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { AVAILABLE_ORGUNIT_ENDPOINT, CREAT_MYTEAM_MEMBER_ENDPOINT, GETALL_ORGUNIT_ENDPOINT, GET_ALL_ROLES_ENDPOINT, GET_MYTEAM_LIST_ENDPOINT, MYTEAM_MEMBER_SORTING_ENDPOINT, UPDATESTATUS_MYTEAM_LIST_ENDPOINT, UPDATE_MYTEAM_MEMBER_ENDPOINT } from '../services/endPointURL';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TeamMemberService {\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n public getMyTeamList(pageSize: number, currentPage: number, sortBy?: any): Observable<any> {\r\n let url = GET_MYTEAM_LIST_ENDPOINT.url + 'currentPage=' + currentPage + '&pageSize=' + pageSize;\r\n if(sortBy != '' || sortBy == undefined){\r\n url = url + '&sort=' + sortBy;\r\n }\r\n \r\n return this.http.get(url, {\r\n headers: { 'Content-Type': 'application/json' },\r\n })\r\n .pipe(\r\n catchError(errorRes => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n\r\n public activeDeactive(data: any): Observable<any> {\r\n const locString: any = localStorage.getItem('spartacus⚿⚿auth');\r\n const token = JSON.parse(locString)?.token.access_token;\r\n let url = UPDATESTATUS_MYTEAM_LIST_ENDPOINT.url + data.customerId;\r\n return this.http.patch(url, data, {\r\n headers: { 'Content-Type': 'application/json' ,\r\n 'Authorization' : 'Bearer ' + token },\r\n })\r\n .pipe(\r\n catchError((errorRes) => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n\r\n public createMember(data: any): Observable<any> {\r\n const locString: any = localStorage.getItem('spartacus⚿⚿auth');\r\n const token = JSON.parse(locString)?.token.access_token;\r\n let url = CREAT_MYTEAM_MEMBER_ENDPOINT.url;\r\n return this.http.post(url, data, {\r\n headers: { 'Content-Type': 'application/json' ,\r\n 'Authorization' : 'Bearer ' + token },\r\n })\r\n .pipe(\r\n catchError((errorRes) => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n\r\n public updateMember(data: any): Observable<any> {\r\n const locString: any = localStorage.getItem('spartacus⚿⚿auth');\r\n const token = JSON.parse(locString)?.token.access_token;\r\n let url = UPDATE_MYTEAM_MEMBER_ENDPOINT.url + data.customerId;\r\n return this.http.patch(url, data, {\r\n headers: { 'Content-Type': 'application/json' ,\r\n 'Authorization' : 'Bearer ' + token },\r\n })\r\n .pipe(\r\n catchError((errorRes) => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n\r\n public sortMyTeam(data: any): Observable<any> {\r\n const locString: any = localStorage.getItem('spartacus⚿⚿auth');\r\n const token = JSON.parse(locString)?.token.access_token;\r\n let url = MYTEAM_MEMBER_SORTING_ENDPOINT.url + data;\r\n return this.http.get(url, {\r\n headers: { 'Content-Type': 'application/json' ,\r\n 'Authorization' : 'Bearer ' + token },\r\n })\r\n .pipe(\r\n catchError((errorRes) => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n\r\n public availableOrgUnits(): Observable<any> {\r\n const locString: any = localStorage.getItem('spartacus⚿⚿auth');\r\n const token = JSON.parse(locString)?.token.access_token;\r\n let url = AVAILABLE_ORGUNIT_ENDPOINT.url;\r\n return this.http.get(url, {\r\n headers: { 'Content-Type': 'application/json' ,\r\n 'Authorization' : 'Bearer ' + token },\r\n })\r\n .pipe(\r\n catchError((errorRes) => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n\r\n public getAllOrgUnits(): Observable<any> {\r\n const locString: any = localStorage.getItem('spartacus⚿⚿auth');\r\n const token = JSON.parse(locString)?.token.access_token;\r\n let url = GETALL_ORGUNIT_ENDPOINT.url;\r\n return this.http.get(url, {\r\n headers: { 'Content-Type': 'application/json' ,\r\n 'Authorization' : 'Bearer ' + token },\r\n })\r\n .pipe(\r\n catchError((errorRes) => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n\r\n public getAllRoles(): Observable<any> {\r\n const locString: any = localStorage.getItem('spartacus⚿⚿auth');\r\n const token = JSON.parse(locString)?.token.access_token;\r\n let url = GET_ALL_ROLES_ENDPOINT.url;\r\n return this.http.get(url, {\r\n headers: { 'Content-Type': 'application/json' ,\r\n 'Authorization' : 'Bearer ' + token },\r\n })\r\n .pipe(\r\n catchError((errorRes) => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n\r\n}\r\n","import { \r\n Directive,\r\n Host,\r\n Optional,\r\n Renderer2,\r\n Self,\r\n ViewContainerRef,\r\n Input\r\n} from \"@angular/core\"; \r\nimport { MatPaginator } from \"@angular/material/paginator\";\r\n\r\n@Directive({\r\n selector: \"[appPagination]\"\r\n})\r\nexport class AppPaginationDirective {\r\n private _currentPage = 1;\r\n private _pageGapTxt = \"...\";\r\n private _rangeStart: any ;\r\n private _rangeEnd: any ;\r\n private _buttons: any = [];\r\n\r\n@Input()\r\n\r\n get showTotalPages(): number { return this._showTotalPages; }\r\n set showTotalPages(value: number) {\r\n this._showTotalPages = value % 2 == 0 ? value + 1 : value;\r\n }\r\n private _showTotalPages = 2;\r\n\r\n constructor(\r\n @Host() @Self() @Optional() private readonly matPag: MatPaginator,\r\n private vr: ViewContainerRef,\r\n private ren: Renderer2\r\n ) {\r\n //Sub to rerender buttons when next page and last page is used\r\n this.matPag.page.subscribe((v)=>{\r\n this.initPageRange();\r\n })\r\n }\r\n\r\n private buildPageNumbers() {\r\n const nextPageNode = this.vr.element.nativeElement.querySelector(\r\n \"button.mat-paginator-navigation-next\"\r\n );\r\n const actionContainer = this.vr.element.nativeElement.querySelector(\r\n \"div.mat-paginator-range-actions\"\r\n );\r\n const prevButtonCount = this._buttons.length;\r\n\r\n // remove buttons before creating new ones\r\n if (this._buttons.length > 0) {\r\n this._buttons.forEach((button: any) => {\r\n this.ren.removeChild(actionContainer, button);\r\n });\r\n //Empty state array\r\n this._buttons.length = 0;\r\n }\r\n\r\n //initialize next page and last page buttons\r\n if (this._buttons.length == 0) {\r\n let nodeArray = this.vr.element.nativeElement.childNodes[0].childNodes[0]\r\n .childNodes[2].childNodes;\r\n setTimeout(() => {\r\n for (let i = 0; i < nodeArray.length; i++) {\r\n if (nodeArray[i].nodeName === \"BUTTON\") {\r\n if (nodeArray[i].disabled) {\r\n this.ren.setStyle(\r\n nodeArray[i],\r\n \"background-color\",\r\n \"rgba(190, 130, 130, 1)\"\r\n );\r\n this.ren.setStyle(nodeArray[i], \"color\", \"white\");\r\n this.ren.setStyle(nodeArray[i], \"margin\", \".5%\");\r\n } else {\r\n this.ren.setStyle(\r\n nodeArray[i],\r\n \"background-color\",\r\n \"rgba(255, 0, 0, 1)\"\r\n );\r\n this.ren.setStyle(nodeArray[i], \"color\", \"white\");\r\n this.ren.setStyle(nodeArray[i], \"margin\", \".5%\"); \r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n let dots = false;\r\n\r\n for (let i = 0; i < this.matPag.getNumberOfPages(); i = i + 1) {\r\n if (\r\n (i < this._showTotalPages && this._currentPage < this._showTotalPages && i > this._rangeStart) ||\r\n (i >= this._rangeStart && i <= this._rangeEnd)\r\n ) {\r\n this.ren.insertBefore(\r\n actionContainer,\r\n this.createButton(i, this.matPag.pageIndex),\r\n nextPageNode\r\n );\r\n } else {\r\n if (i > this._rangeEnd && !dots) {\r\n this.ren.insertBefore(\r\n actionContainer,\r\n this.createButton(this._pageGapTxt, this.matPag.pageIndex),\r\n nextPageNode\r\n );\r\n dots = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n private createButton(i: any, pageIndex: number): any {\r\n const linkBtn: any[] = this.ren.createElement(\"mat-button\");\r\n this.ren.addClass(linkBtn, \"mat-mini-fab\");\r\n this.ren.setStyle(linkBtn, \"margin\", \"1%\");\r\n\r\n const pagingTxt = isNaN(i) ? this._pageGapTxt : +(i + 1);\r\n const text = this.ren.createText(pagingTxt + \"\");\r\n\r\n this.ren.addClass(linkBtn, \"mat-custom-page\");\r\n switch (i) { \r\n case this._pageGapTxt:\r\n this.ren.listen(linkBtn, \"click\", () => {\r\n this.switchPage(this._currentPage + this._showTotalPages);\r\n });\r\n break;\r\n default:\r\n this.ren.listen(linkBtn, \"click\", () => {\r\n this.switchPage(i);\r\n });\r\n break;\r\n }\r\n\r\n this.ren.appendChild(linkBtn, text); \r\n //Add button to private array for state\r\n this._buttons.push(linkBtn);\r\n return linkBtn;\r\n }\r\n\r\n private initPageRange(): void {\r\n this._rangeStart = this._currentPage - this._showTotalPages / 2;\r\n this._rangeEnd = this._currentPage + this._showTotalPages / 2;\r\n\r\n this.buildPageNumbers();\r\n }\r\n\r\n private switchPage(i: number): void {\r\n this._currentPage = i;\r\n this.matPag.page.emit({ \r\n pageIndex: this._currentPage,\r\n pageSize: this.matPag.pageSize,\r\n length: this.matPag.length,\r\n });\r\n this.initPageRange();\r\n }\r\n\r\n public ngAfterViewInit() {\r\n this.initPageRange();\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { CmsService } from '@spartacus/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { TeamMemberService } from './team-member.service';\r\n\r\n@Component({\r\n\tselector: 'lib-my-team',\r\n\ttemplateUrl: './my-team.component.html',\r\n\tstyleUrls: ['./my-team.component.scss'],\r\n})\r\nexport class MyTeamComponent implements OnInit {\r\n\tregisterForm!: FormGroup;\r\n\tsubmitted = false;\r\n\tsortbyOptions = [\r\n\t { name: 'Name (Ascending)', value: 'byName' },\r\n\t { name: 'Name (Descending)', value: 'byNameDesc' },\r\n\t];\r\n\troles = [\r\n\t { role: 'Administrator', isChecked: false },\r\n\t { role: 'Purchaser', isChecked: false },\r\n\t { role: 'Accounts', isChecked: false },\r\n\t { role: 'Support', isChecked: false },\r\n\t];\r\n\tisTeam: boolean = false;\r\n\tisEdit: boolean = false;\r\n\tisError: boolean = false;\r\n\tshowModal: boolean = false;\r\n\tisViewMore: boolean = false;\r\n\tisActive: boolean = false;\r\n\tshowToast: boolean = false;\r\n\tcreateUpdateToast: boolean = false;\r\n\tisCreate: boolean = false;\r\n\tbuttonPlaceholder: any = 'Invite';\r\n\tmyTeamListData: any = [];\r\n\tselectedItemsList: any = [];\r\n\tmyTeamParagraph: any;\r\n\tselectedRowData: any;\r\n\tselectedUserName: any;\r\n\tselectedUid: any;\r\n\terrorMessage: any;\r\n\tsortByValue: any;\r\n\tdataSource: any = [];\r\n\tdefaultRoles: any = [];\r\n\ttestPaginator = {\r\n\t length: 100,\r\n\t pageSize: 20,\r\n\t pageIndex: 0,\r\n\t};\r\n\torgUnits: any = [];\r\n\tpageSize: number = 20;\r\n\tcurrentPage: number = 0;\r\n\ttotalResults: number = 0;\r\n\tisTeamAvailable: string = '';\r\n\tselectedStatus: boolean = false;\r\n\tshowWaitCursor = new BehaviorSubject<boolean>(true);\r\n\tselectedOrgUnits: any = [];\r\n\tbreadcrumbData: any = [];\r\n\ttotalRecords: any;\r\n\tuserAllAccounts: any = [];\r\n\tuserAllRoles: any = [];\r\n\ttotalLength: any = [];\r\n\tchildrenLength: any = [];\r\n\taccountLength: any = [];\r\n\t@ViewChild('closeConfirmModal') closeConfirmModal: any;\r\n\t@ViewChild('closeInviteModal') closeInviteModal: any;\r\n\tconstructor(\r\n\t private formBuilder: FormBuilder,\r\n\t private teamMemberService: TeamMemberService,\r\n\t public cd: ChangeDetectorRef,\r\n\t public cmsService: CmsService\r\n\t) {}\r\n\tngOnInit(): void {\r\n\t this.breadcrumbData.push(\r\n\t\t{ url: '/', name: 'Home' },\r\n\t\t{ url: '/', name: 'My Team' }\r\n\t );\r\n\t this.getTeamList();\r\n\t this.initializeInviteForm();\r\n\t this.cmsService\r\n\t\t.getComponentData('UsersPageParagraphComponent')\r\n\t\t.subscribe((data) => {\r\n\t\t this.myTeamParagraph = data;\r\n\t\t});\r\n\t}\r\n\tinitializeInviteForm() {\r\n\t this.registerForm = this.formBuilder.group({\r\n\t\tfirstName: ['', [Validators.required]],\r\n\t\tlastName: ['', [Validators.required]],\r\n\t\temail: ['', [Validators.required, Validators.email]],\r\n\t\tmobile: [\r\n\t\t '',\r\n\t\t [\r\n\t\t\tValidators.required,\r\n\t\t\tValidators.minLength(10),\r\n\t\t\tValidators.maxLength(10),\r\n\t\t ],\r\n\t\t],\r\n\t\taccount: [''],\r\n\t\troles: [''],\r\n\t\tdeskPhone: [''],\r\n\t\tjobTitle: [''],\r\n\t });\r\n\t}\r\n\tgetTeamList() {\r\n\t this.teamMemberService\r\n\t\t.getMyTeamList(this.pageSize, this.currentPage, this.sortByValue)\r\n\t\t.subscribe(\r\n\t\t (data: any) => {\r\n\t\t\tif (data && data.users && data.users.length > 0) {\r\n\t\t\t this.isTeam = true;\r\n\t\t\t this.isTeamAvailable = 'hasData';\r\n\t\t\t this.myTeamListData = data?.users;\r\n\t\t\t this.dataSource = data?.users;\r\n\t\t\t this.testPaginator.length = data.pagination.totalResults;\r\n\t\t\t this.totalRecords = data.pagination.totalResults;\r\n\t\t\t this.cd.markForCheck();\r\n\t\t\t this.showWaitCursor.next(false);\r\n\t\t\t} else {\r\n\t\t\t this.isTeamAvailable = 'noData';\r\n\t\t\t}\r\n\t\t },\r\n\t\t (error: any) => {\r\n\t\t\tthis.showWaitCursor.next(false);\r\n\t\t\tthis.isTeamAvailable = 'noData';\r\n\t\t }\r\n\t\t);\r\n\t}\r\n \r\n\tpageEvent($event: any) {\r\n\t this.pageSize = $event.pageSize;\r\n\t this.currentPage = $event.pageIndex;\r\n\t this.getTeamList();\r\n\t}\r\n\tget f() {\r\n\t return this.registerForm.controls;\r\n\t}\r\n\tclearEdit() {\r\n\t this.isEdit = false;\r\n\t this.selectedItemsList = [];\r\n\t this.orgUnits = null;\r\n\t this.cd.detectChanges();\r\n\t this.selectedOrgUnits = [];\r\n\t this.showWaitCursor.next(false);\r\n\t}\r\n\tonSubmit(): void {\r\n\t this.submitted = true;\r\n\t if (\r\n\t\tthis.registerForm.invalid ||\r\n\t\tthis.selectedOrgUnits.length == 0 ||\r\n\t\tthis.selectedItemsList.length == 0\r\n\t ) {\r\n\t\treturn;\r\n\t }\r\n\t let selectedRoles: any = [];\r\n\t this.selectedItemsList.forEach((element: any) => {\r\n\t\tselectedRoles.push(element.uid);\r\n\t });\r\n\t const { value } = this.registerForm;\r\n\t let user = {\r\n\t\tcustomerId: this.selectedUid ? this.selectedUid : null,\r\n\t\ttitleCode: 'mr',\r\n\t\tfirstName: value?.firstName,\r\n\t\tlastName: value?.lastName,\r\n\t\temail: value?.email,\r\n\t\tphoneNumber: value?.mobile,\r\n\t\taccounts: this.selectedOrgUnits,\r\n\t\troles: selectedRoles,\r\n\t\tdeskPhone: value?.deskPhone,\r\n\t\tjobTitle: value?.jobTitle,\r\n\t };\r\n\t if (!this.isEdit && this.registerForm.valid) {\r\n\t\tdelete user.customerId;\r\n\t\tthis.teamMemberService.createMember(user).subscribe(\r\n\t\t (res) => {\r\n\t\t\tthis.isCreate = true;\r\n\t\t\tthis.createUpdateToast = true;\r\n\t\t\tthis.closeInviteModal.nativeElement.click();\r\n\t\t\tthis.showWaitCursor.next(false);\r\n\t\t\tthis.getTeamList();\r\n\t\t\tthis.registerForm.reset();\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t this.createUpdateToast = false;\r\n\t\t\t}, 4000);\r\n\t\t },\r\n\t\t (error: any) => {\r\n\t\t\tthis.errorMessage = error.error.errors[0].message;\r\n\t\t\tthis.isError = true;\r\n\t\t\tthis.showWaitCursor.next(false);\r\n\t\t }\r\n\t\t);\r\n\t } else if (this.isEdit && this.registerForm.valid) {\r\n\t\tthis.teamMemberService.updateMember(user).subscribe(\r\n\t\t (res) => {\r\n\t\t\tthis.isCreate = false;\r\n\t\t\tthis.createUpdateToast = true;\r\n\t\t\tthis.closeInviteModal.nativeElement.click();\r\n\t\t\tthis.showWaitCursor.next(false);\r\n\t\t\tthis.getTeamList();\r\n\t\t\tthis.clearEdit();\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t this.createUpdateToast = false;\r\n\t\t\t}, 4000);\r\n\t\t },\r\n\t\t (error: any) => {\r\n\t\t\tthis.errorMessage = error.error.errors[0].message;\r\n\t\t\tthis.isError = true;\r\n\t\t\tthis.showWaitCursor.next(false);\r\n\t\t }\r\n\t\t);\r\n\t }\r\n \r\n\t if (this.registerForm.invalid) {\r\n\t\treturn;\r\n\t }\r\n\t this.isError = false;\r\n\t}\r\n\tinviteMember() {\r\n\t this.selectedRowData = {};\r\n\t this.showModal = true;\r\n\t this.getAllUnits();\r\n\t this.selectedUid = undefined;\r\n\t this.selectedOrgUnits = [];\r\n\t this.getRoles();\r\n\t this.submitted = false;\r\n\t this.registerForm.reset();\r\n\t this.initializeInviteForm();\r\n\t this.cd.detectChanges();\r\n\t}\r\n\teditMember(data: any) {\r\n\t this.selectedItemsList = [];\r\n\t this.selectedOrgUnits = [];\r\n\t this.isEdit = true;\r\n\t this.showModal = true;\r\n\t this.selectedRowData = data;\r\n\t this.selectedUid = data.customerId;\r\n\t this.submitted = false;\r\n\t this.getAllUnits();\r\n\t this.getRoles();\r\n\t}\r\n\tchangeStatus(data: any) {\r\n\t this.selectedUserName = data.name;\r\n\t this.selectedUid = data.customerId;\r\n\t this.selectedStatus = data.active;\r\n\t if (data.active == true) {\r\n\t\tthis.isActive = true;\r\n\t } else {\r\n\t\tthis.isActive = false;\r\n\t }\r\n\t}\r\n\tupdateStatus() {\r\n\t let reqData: any = {\r\n\t\tcustomerId: this.selectedUid,\r\n\t\tactive: !this.selectedStatus,\r\n\t\troles: [],\r\n\t };\r\n\t this.teamMemberService.activeDeactive(reqData).subscribe(\r\n\t\t(res) => {\r\n\t\t this.showToast = true;\r\n\t\t this.closeConfirmModal.nativeElement.click();\r\n\t\t this.showWaitCursor.next(false);\r\n\t\t this.getTeamList();\r\n\t\t},\r\n\t\t(error: any) => {\r\n\t\t this.showToast = false;\r\n\t\t this.showWaitCursor.next(false);\r\n\t\t}\r\n\t );\r\n\t setTimeout(() => {\r\n\t\tthis.showToast = false;\r\n\t }, 4000);\r\n\t}\r\n\tgetMoreCount(accountData: any, team: any) {\r\n\t this.userAllAccounts = [];\r\n\t this.childrenLength = [];\r\n\t this.accountLength = [];\r\n\t this.userAllAccounts = accountData;\r\n\t this.userAllAccounts.forEach((element: any) => {\r\n\t\tthis.totalLength = element.children.length;\r\n\t\tthis.accountLength.push(this.totalLength);\r\n\t\telement.children.forEach((ele: any) => {\r\n\t\t if (ele.children) {\r\n\t\t\tthis.accountLength.push(ele.children.length);\r\n\t\t }\r\n\t\t});\r\n\t });\r\n\t this.childrenLength = this.accountLength.reduce(\r\n\t\t(a: any, b: any) => a + b,\r\n\t\t0\r\n\t );\r\n\t return team.accounts.length + this.childrenLength - 3;\r\n\t}\r\n \r\n\tviewMore(accountData: any, name: string) {\r\n\t this.userAllAccounts = [];\r\n\t this.childrenLength = [];\r\n\t this.accountLength = [];\r\n\t this.selectedUserName = name;\r\n\t this.userAllAccounts = accountData;\r\n\t this.userAllAccounts.forEach((element: any) => {\r\n\t\tthis.totalLength = element.children.length;\r\n\t\tthis.accountLength.push(this.totalLength);\r\n\t\telement.children.forEach((ele: any) => {\r\n\t\t if (ele.children) {\r\n\t\t\tthis.accountLength.push(ele.children.length);\r\n\t\t }\r\n\t\t});\r\n\t });\r\n\t this.childrenLength = this.accountLength.reduce(\r\n\t\t(a: any, b: any) => a + b,\r\n\t\t0\r\n\t );\r\n\t}\r\n\tviewMoreRoles(rolesData: any, name: string) {\r\n\t this.userAllRoles = [];\r\n\t this.selectedUserName = name;\r\n\t this.userAllRoles = rolesData;\r\n\t}\r\n \r\n\tchangeSelection(event: any, data: any) {\r\n\t if (event.currentTarget.checked) {\r\n\t\tthis.selectedItemsList.push(data);\r\n\t } else {\r\n\t\tconst ind = this.selectedItemsList.findIndex(\r\n\t\t (element: any) => element.uid == data.uid\r\n\t\t);\r\n\t\tthis.selectedItemsList.splice(ind, 1);\r\n\t }\r\n\t}\r\n\tfetchSelectedItems() {\r\n\t this.selectedItemsList = [];\r\n\t this.roles.filter((value, index) => {\r\n\t\tif (value.isChecked) {\r\n\t\t this.selectedItemsList.push(value.role);\r\n\t\t}\r\n\t });\r\n\t}\r\n \r\n\tsortBy(e: any) {\r\n\t this.showWaitCursor.next(true);\r\n\t this.sortByValue = e.target.value;\r\n\t this.teamMemberService.sortMyTeam(this.sortByValue).subscribe(\r\n\t\t(res: any) => {\r\n\t\t this.dataSource = res?.users;\r\n\t\t this.cd.markForCheck();\r\n\t\t this.showWaitCursor.next(false);\r\n\t\t},\r\n\t\t(error) => {\r\n\t\t this.showWaitCursor.next(false);\r\n\t\t}\r\n\t );\r\n\t}\r\n \r\n\tavailableUnits() {\r\n\t this.teamMemberService.availableOrgUnits().subscribe((data: any) => {\r\n\t\tif (data) {\r\n\t\t this.orgUnits = data.unitNodes;\r\n\t\t}\r\n\t });\r\n\t}\r\n \r\n\tgetAllUnits() {\r\n\t this.showWaitCursor.next(true);\r\n\t const data: any = localStorage.getItem('AccountData');\r\n\t this.orgUnits = JSON.parse(data);\r\n\t if(this.selectedUid != undefined && this.selectedUid) {\r\n\t\t\tthis.selectedRowData.b2bUnits?.forEach((element: any) => {\r\n\t\t this.selectedOrgUnits.push({ uid: element });\r\n\t\t\t});\r\n\t }\r\n\t this.cd.markForCheck();\r\n\t this.showWaitCursor.next(false);\r\n\t}\r\n \r\n\tgetRoles() {\r\n\t this.showWaitCursor.next(true);\r\n\t this.teamMemberService.getAllRoles().subscribe(\r\n\t\t(data: any) => {\r\n\t\t if (data) {\r\n\t\t\tthis.defaultRoles = data;\r\n\t\t\tthis.showWaitCursor.next(false);\r\n\t\t\tthis.cd.detectChanges();\r\n\t\t\tif (this.selectedUid != undefined && this.selectedUid) {\r\n\t\t\t this.selectedRowData.roles.forEach((element: any) => {\r\n\t\t\t\tthis.defaultRoles.forEach((data: any) => {\r\n\t\t\t\t if (data.uid === element) {\r\n\t\t\t\t\tdata.selected = true;\r\n\t\t\t\t\tthis.selectedItemsList.push({ uid: element });\r\n\t\t\t\t\tthis.cd.markForCheck();\r\n\t\t\t\t }\r\n\t\t\t\t});\r\n\t\t\t });\r\n\t\t\t}\r\n\t\t }\r\n\t\t},\r\n\t\t(error: any) => {\r\n\t\t this.showWaitCursor.next(false);\r\n\t\t}\r\n\t );\r\n\t}\r\n \r\n\tcloseToast() {\r\n\t this.showToast = false;\r\n\t return;\r\n\t}\r\n\tcloseUpdateToast() {\r\n\t this.createUpdateToast = false;\r\n\t}\r\n\tcheckOrgUnit(event: any, data: any) {\r\n\t if (event.currentTarget.checked) {\r\n\t\tthis.selectedOrgUnits.push(data);\r\n\t } else {\r\n\t\tconst ind = this.selectedOrgUnits.findIndex(\r\n\t\t (element: any) => element.uid == data.uid\r\n\t\t);\r\n\t\tthis.selectedOrgUnits.splice(ind, 1);\r\n\t }\r\n\t}\r\n\tgetCheckedStatuses(id: any) {\r\n\t if (this.selectedUid != undefined && this.selectedUid) {\r\n\t\tlet ind = this.selectedRowData.b2bUnits.findIndex(\r\n\t\t (element: any) => element == id\r\n\t\t);\r\n\t\treturn ind > -1 ? true : false;\r\n\t } else return false;\r\n\t}\r\n \r\n\tgetCheckedStatusesRole(id: any) {\r\n\t if (this.selectedUid != undefined && this.selectedUid) {\r\n\t\tlet ind = this.selectedRowData.roles.findIndex(\r\n\t\t (element: any) => element == id\r\n\t\t);\r\n\t\treturn ind > -1 ? true : false;\r\n\t } else return false;\r\n\t}\r\n\tnumberOnly(event: any): boolean {\r\n\t const charCode = event.which ? event.which : event.keyCode;\r\n\t if (charCode > 31 && (charCode < 48 || charCode > 57)) {\r\n\t\treturn false;\r\n\t }\r\n\t return true;\r\n\t}\r\n\tnumberMobile(e: any) {\r\n\t e.target.value = e.target.value.replace(/[^\\d]/g, '');\r\n\t return false;\r\n\t}\r\n }\r\n","<div class=\"loading \" *ngIf=\"showWaitCursor | async \">Loading&#8230;</div>\r\n<app-custom-breadcrum [customCrumbData]=\"breadcrumbData\" class=\"products-breadcums\"></app-custom-breadcrum>\r\n<ng-container *ngIf=\"isTeamAvailable == 'hasData' \">\r\n <div class=\"team-members\">\r\n <div class=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col-sm-8 col-12 m-auto\">\r\n <h1 class=\"heading\">\r\n My Team\r\n </h1>\r\n <p>{{myTeamParagraph?.content}}</p>\r\n </div>\r\n <div class=\"col-sm-4 col-12 d-flex justify-content-end\">\r\n <div class=\"invite-btn-bg\">\r\n <button type=\"button\" class=\"btn mobile-invite-btn dimond-primary-btn\" data-toggle=\"modal\"\r\n data-target=\"#inviteMemberModal\" (click)=\"inviteMember()\">Invite Member</button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col col-12 m-auto\">\r\n <div class=\"dropdown sort-by d-flex align-items-center justify-content-between\">\r\n <h6 class=\"members-count\">{{totalRecords}} members in your team</h6>\r\n <select name=\"\" id=\"\" class=\"sort-btn\" (change)=\"sortBy($event)\">\r\n <option value=\"byName\" selected>Sort by: Name (Ascending)</option>\r\n <option value=\"byNameDesc\">Sort by: Name (Descending)</option>\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-12\">\r\n <div class=\"table-responsive\">\r\n <table class=\"table members-table\">\r\n <thead>\r\n <tr>\r\n <th scope=\"col\">Name</th>\r\n <th scope=\"col\">Account</th>\r\n <th scope=\"col\">Role</th>\r\n <th scope=\"col\">Email</th>\r\n <th scope=\"col\">Mobile #</th>\r\n <th scope=\"col\">Status</th>\r\n <th scope=\"col\">Actions</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr [ngClass]=\"{'disabled-text': team.active == false}\"\r\n *ngFor=\"let team of dataSource; let i= index\">\r\n <td>{{team.name}}</td>\r\n <td>\r\n <ul>\r\n <li class=\"ellipsis\" *ngFor=\"let account of team.accounts.slice(0,3)\">\r\n {{account.name}}</li>\r\n <ng-container *ngIf=\"team.accounts.length > 3\">\r\n <li class=\"viewMore-link\" data-toggle=\"modal\"\r\n data-target=\"#accountModal\"\r\n (click)=\"viewMore(team.accounts, team.name)\">+\r\n {{getMoreCount(team.accounts, team)}} more</li>\r\n </ng-container>\r\n </ul>\r\n </td>\r\n <td>\r\n <ul>\r\n <li *ngFor=\"let role of team.roles.slice(0,3)\">{{role}}</li>\r\n <ng-container *ngIf=\"team.roles.length > 3\">\r\n <li class=\"viewMore-link\" data-toggle=\"modal\"\r\n data-target=\"#rolesModal\"\r\n (click)=\"viewMoreRoles(team.roles, team.name )\">+\r\n {{team.roles.length - 3}} more</li>\r\n </ng-container>\r\n </ul>\r\n </td>\r\n <td>{{team.displayUid}}</td>\r\n <td>{{team.phoneNumber}}</td>\r\n <td [ngClass]=\"team.active == true ? 'status-active' : 'status-deactive'\">\r\n {{team.active == true ? 'Active' : 'Deactivated'}}</td>\r\n <td>\r\n <div class=\"d-flex justify-content-between action-item\">\r\n <img [src]=\"team.active == false ?'../../../../assets/images/EditIcondisabled.svg' : '../../../../assets/images/EditIconEnabled.svg'\"\r\n [ngClass]=\"{'disabled': team.active == false}\" alt=\"edit\"\r\n data-toggle=\"modal\" data-target=\"#inviteMemberModal\"\r\n (click)=\"editMember(dataSource[i])\">\r\n <img placement=\"bottom\"\r\n ngbTooltip=\"{{team.active == false ? 'Activate' : 'Deactivate'}}\"\r\n [src]=\"team.active == false ? '../../../../assets/images/ActivateIcon.svg' : '../../../../assets/images/DisableIcon.svg' \"\r\n alt=\"activate\" data-toggle=\"modal\" data-target=\"#memberActivateModal\"\r\n (click)=\"changeStatus(dataSource[i])\">\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <mat-paginator appPagination [hidden]=\"myTeamListData && myTeamListData?.length == 0\"\r\n [length]=\"testPaginator.length\" [pageSizeOptions]=\"[20, 40, 60 ]\"\r\n (page)=\"pageEvent($event)\">\r\n </mat-paginator>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n<ng-container *ngIf=\"isTeamAvailable == 'noData'\">\r\n <div class=\"container noteam-text\">\r\n <div class=\"row justify-content-md-center\">\r\n <div class=\"col-sm-9 col-sm-offset-3\">\r\n <div class=\"text-center\">\r\n <img class=\"mb-4\" src=\"../../../../assets/images/AlertIcon.svg\" alt=\"alert\">\r\n <h3 class=\"mb-2\">Your team list is empty!</h3>\r\n <p>{{myTeamParagraph?.content}}</p>\r\n <button type=\"button\" class=\"btn add-btn\" data-toggle=\"modal\"\r\n data-target=\"#inviteMemberModal\">Invite Member</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n<div class=\"modal fade\" id=\"inviteMemberModal\" role=\"dialog\" aria-labelledby=\"inviteMemberLabel\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog modal-lg\" role=\"document\" *ngIf=\"showModal\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h5 class=\"modal-title\">{{isEdit == true ? 'Edit' : 'Invite'}} Member</h5>\r\n <i class=\"icon-close invite-pop-close\" #closeInviteModal data-dismiss=\"modal\" aria-label=\"Close\"\r\n (click)=\"clearEdit()\"></i>\r\n </div>\r\n <div class=\"modal-body\">\r\n <div class=\"register-form\">\r\n <form [formGroup]=\"registerForm\" (ngSubmit)=\"onSubmit()\">\r\n <div class=\"modal-scroll\">\r\n <div class=\"form-group\">\r\n <label class=\"required\">First Name</label>\r\n <input type=\"text\" formControlName=\"firstName\" class=\"form-control\"\r\n [ngClass]=\"{ 'is-invalid': submitted && f.firstName.errors }\"\r\n [(ngModel)]=\"selectedRowData.firstName\" />\r\n <div *ngIf=\"submitted && f.firstName.errors\" class=\"invalid-feedback\">\r\n <div *ngIf=\"f.firstName.errors.required\">First name is required</div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label class=\"required\">Last Name</label>\r\n <input type=\"text\" formControlName=\"lastName\" class=\"form-control\"\r\n [ngClass]=\"{ 'is-invalid': submitted && f.lastName.errors }\"\r\n [(ngModel)]=\"selectedRowData.lastName\" />\r\n <div *ngIf=\"submitted && f.lastName.errors\" class=\"invalid-feedback\">\r\n <div *ngIf=\"f.lastName.errors.required\">Last name is required</div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label class=\"required\">Email</label>\r\n <input type=\"text\" formControlName=\"email\" class=\"form-control\"\r\n [ngClass]=\"{ 'is-invalid': submitted && f.email.errors }\"\r\n [(ngModel)]=\"selectedRowData.displayUid\" [readonly]=\"isEdit == true\" />\r\n <div *ngIf=\"submitted && f.email.errors\" class=\"invalid-feedback\">\r\n <div *ngIf=\"f.email.errors.required\">Email is required</div>\r\n <div *ngIf=\"f.email.errors.email\">Email is invalid</div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label class=\"required\">Mobile</label>\r\n <input type=\"text\" formControlName=\"mobile\" maxlength=\"10\" class=\"form-control\"\r\n [ngClass]=\"{ 'is-invalid': submitted && f.mobile.errors }\"\r\n [(ngModel)]=\"selectedRowData.phoneNumber\" (keypress)=\"numberOnly($event)\" (keyup)=\"numberMobile($event)\" />\r\n <div *ngIf=\"submitted && f.mobile.errors\" class=\"invalid-feedback\">\r\n <div *ngIf=\"f.mobile.errors.required\">Mobile is required</div>\r\n <div *ngIf=\"f.mobile.errors.minlength\">\r\n Number must be at least 10 characters\r\n </div>\r\n <div *ngIf=\"f.mobile.errors.maxlength\">\r\n Number must not exceed 10 characters\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label>Desk Phone</label>\r\n <input type=\"text\" formControlName=\"deskPhone\" class=\"form-control\" \r\n (keypress)=\"numberOnly($event)\" (keyup)=\"numberMobile($event)\"\r\n [(ngModel)]=\"selectedRowData.deskPhone\"/>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label>Job Title</label>\r\n <input type=\"text\" formControlName=\"jobTitle\" class=\"form-control\" [(ngModel)]=\"selectedRowData.jobTitle\"/>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label class=\"required\">Account</label>\r\n <button [ngClass]=\"{ 'isAccount-invalid': submitted && selectedOrgUnits.length == 0 }\" class=\"btn account-custom-input position-relative\" type=\"button\"\r\n id=\"branchAccountDropdown\" data-toggle=\"dropdown\" aria-haspopup=\"true\"\r\n aria-expanded=\"false\">\r\n <i class=\"fas fa-chevron-down account-downarrow float-right\"></i>\r\n Please Select <span *ngIf=\"selectedOrgUnits.length > 0\"class=\"float-right pr-3\">{{selectedOrgUnits.length}} Selected</span>\r\n </button>\r\n <div *ngIf=\"selectedOrgUnits.length == 0 && submitted\" class=\"isInvalid\"> Account is required </div>\r\n <div class=\"dropdown-menu account-dropdown\" aria-labelledby=\"dropdownMenuButton\">\r\n <ul class=\"accounts-list\" *ngIf=\"orgUnits\">\r\n <div *ngFor=\"let unit of orgUnits\">\r\n <li class=\"list-border-bottom\" >\r\n <label class=\"accountItem\">\r\n <input type=\"checkbox\" [checked]=\"getCheckedStatuses(unit.uid)\"\r\n name=\"dropdown-group\" class=\"rounded-0 form-control\"\r\n (change)=\"checkOrgUnit($event , {uid: unit.uid} )\"\r\n [value]=\"unit.uid\" />\r\n {{unit.name}}\r\n </label>\r\n </li>\r\n <li *ngFor=\"let data of unit?.children; let ind = index\"\r\n class=\"sec-child list-border-bottom\">\r\n <div\r\n [ngClass]=\"data?.children?.length > 0 ? 'list-border-bottom secPaddingLft' : ''\">\r\n <label class=\"accountItem \">\r\n <input type=\"checkbox\" [checked]=\"getCheckedStatuses(data.uid)\"\r\n name=\"dropdown-group\" class=\"rounded-0\"\r\n (change)=\"checkOrgUnit($event , {uid: data.uid} ) \"\r\n [value]=\"data.uid\" />\r\n {{data.name}}\r\n </label>\r\n </div>\r\n\r\n <ul class=\"thrd-child\">\r\n <li *ngFor=\"let child of data?.children\">\r\n <label class=\"accountItem\">\r\n <input type=\"checkbox\" [checked]=\"getCheckedStatuses(child.uid)\"\r\n name=\"dropdown-group\" class=\"rounded-0\"\r\n (change)=\"checkOrgUnit($event , {uid: child.uid} )\"\r\n [value]=\"child.uid\" />\r\n {{child.name}}\r\n </label>\r\n <ul *ngIf=\"child && child.children\">\r\n <li *ngFor=\"let check of child?.children\">\r\n <label class=\"accountItem\">\r\n <input type=\"checkbox\"\r\n [checked]=\"getCheckedStatuses(check.uid)\"\r\n name=\"dropdown-group\" class=\"rounded-0\"\r\n (change)=\"checkOrgUnit($event , {uid: check.uid} )\"\r\n [value]=\"check.uid\" />\r\n {{check.name}}\r\n </label>\r\n </li>\r\n </ul>\r\n </li>\r\n </ul>\r\n </li>\r\n </div>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label class=\"required\">Roles</label>\r\n <div *ngFor=\"let role of defaultRoles; let i = index;\" class=\"role-checkbox\">\r\n <label>\r\n <input type=\"checkbox\" [value]=\"role.uid\" name=\"role-dropdown-group\"\r\n (change)=\"changeSelection($event, {uid: role.uid})\" class=\"form-control\"\r\n [checked]=\"role?.selected === true\"> {{role?.name}}<br>\r\n </label>\r\n </div>\r\n <div *ngIf=\"selectedItemsList.length == 0 && submitted\" class=\"isInvalid\"> Role is required </div>\r\n </div>\r\n </div>\r\n <hr>\r\n <div class=\"d-sm-flex justify-content-end d-block btn-mobile-view\">\r\n <button type=\"button\" class=\"btn mobile-cancel-btn dimond-secondary-btn mr-5\"\r\n data-dismiss=\"modal\" (click)=\"clearEdit()\">Cancel</button>\r\n <button type=\"submit\" class=\"btn mobile-save-btn dimond-primary-btn float-right\">{{isEdit ?\r\n 'Save' : 'Invite'}}</button>\r\n </div>\r\n <div *ngIf=\"isError\" class=\"error-block alert alert-danger justify-content-start\" role=\"alert\">\r\n <img class=\"mr-3\" src=\"../../../../assets/images/erroricon.svg\" alt=\"alert\">\r\n <p>{{errorMessage}}</p>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"modal fade\" id=\"memberActivateModal\" role=\"dialog\" aria-labelledby=\"memberActivateLabel\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog modal-dialog-centered modal-lg\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h5 class=\"modal-title\">{{isActive ? 'Deactivate' : 'Activate'}} Member</h5>\r\n <i class=\"icon-close invite-pop-close\" #closeConfirmModal data-dismiss=\"modal\" aria-label=\"Close\"></i>\r\n </div>\r\n <div class=\"modal-body\">\r\n <span>Are you sure you want to {{isActive ? 'deactivate' : 'activate'}} <b>{{selectedUserName}}</b> from\r\n your team list?</span>\r\n <div class=\"d-block d-sm-flex justify-content-end mobile-action-btn mt-4\">\r\n <button type=\"button\" class=\"btn dimond-secondary-btn mobile-cancel-btn mr-5\"\r\n data-dismiss=\"modal\">No</button>\r\n <button type=\"submit\" class=\"btn dimond-primary-btn float-right mobile-save-btn\"\r\n (click)=\"updateStatus()\">Yes</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"modal fade\" id=\"accountModal\" role=\"dialog\" aria-labelledby=\"accountLabel\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog modal-dialog-centered modal-lg\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h5 class=\"modal-title\">Accounts</h5>\r\n <i class=\"icon-close invite-pop-close\" data-dismiss=\"modal\" aria-label=\"Close\"></i>\r\n </div>\r\n <div class=\"modal-body\">\r\n <h4>{{selectedUserName}}</h4>\r\n <span>{{userAllAccounts.length + childrenLength}} accounts</span>\r\n <ul class=\"accounts-list account-data-table\">\r\n <li *ngFor=\"let data of userAllAccounts; let i = index;\">\r\n <div class=\"d-flex flex-row align-items-center list-border-bottom\">\r\n <span class=\"indexId py-2\"></span>\r\n <label class=\"index-lebel\" style=\"padding-left: 15px ;\">{{data.name}}</label>\r\n </div>\r\n <div *ngIf=\"data.children.length\">\r\n <ul>\r\n <li *ngFor=\"let childrenData of data.children\">\r\n <div class=\"d-flex flex-row align-items-center list-border-bottom\">\r\n <span class=\"indexId py-2\"></span>\r\n <label class=\"index-lebel\"\r\n style=\"padding-left: 50px ;\">{{childrenData.name}}</label>\r\n </div>\r\n <div *ngIf=\"childrenData.children.length\">\r\n <ul>\r\n <li *ngFor=\"let grandChild of childrenData.children\">\r\n <div class=\"d-flex flex-row align-items-center list-border-bottom\">\r\n <span class=\"indexId py-2\"></span>\r\n <label class=\"index-lebel\"\r\n style=\"padding-left: 75px ;\">{{grandChild.name}}</label>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"modal fade\" id=\"rolesModal\" role=\"dialog\" aria-labelledby=\"accountLabel\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog modal-dialog-centered modal-lg\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h5 class=\"modal-title\">Roles</h5>\r\n <i class=\"icon-close invite-pop-close\" data-dismiss=\"modal\" aria-label=\"Close\"></i>\r\n </div>\r\n <div class=\"modal-body\">\r\n <h4>{{selectedUserName}}</h4>\r\n <span>{{userAllRoles.length}} roles</span>\r\n <div class=\"accounts-list account-data-table\">\r\n <ul>\r\n <li *ngFor=\"let data of userAllRoles; let i = index;\" class=\"d-flex flex-row align-items-center list-border-bottom\"> \r\n <span class=\"roleIndex py-2\">{{i+1}}</span>\r\n <span class=\"index-lebel pl-2\">{{data}}</span> \r\n </li>\r\n </ul>\r\n </div> \r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<ngb-toast *ngIf=\"showToast\" [autohide]=\"true\" [delay]=\"4000\">\r\n <img [src]=\"!isActive ?'../../../../assets/images/ActivateIcon.svg' : '../../../../assets/images/DisableIcon.svg'\">\r\n {{isActive ? 'Deactivated' : 'Activated'}} {{selectedUserName}}\r\n <i class=\"icon-close toast-close\" aria-label=\"Close\" (click)=\"closeToast()\"></i>\r\n</ngb-toast>\r\n<ngb-toast *ngIf=\"createUpdateToast\" [autohide]=\"true\" [delay]=\"4000\">\r\n <img src=\"../../../../assets/images/Invited.svg\"> {{isCreate ? 'One new member invited !' : 'Save was successful'}}\r\n <i class=\"icon-close toast-close\" aria-label=\"Close\" (click)=\"closeUpdateToast()\"></i>\r\n</ngb-toast>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AppPaginationDirective } from './custom-paginatior.directive';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [AppPaginationDirective],\r\n imports: [\r\n CommonModule\r\n ], \r\n exports: [AppPaginationDirective]\r\n})\r\nexport class CustomDirectivesModule { }\r\n","import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MyTeamComponent } from './my-team.component';\r\nimport { CmsConfig, ConfigModule } from '@spartacus/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { NgbModule, NgbToastModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { SharedComponentsModule } from '../shared/shared-components.module';\r\nimport { CustomDirectivesModule } from '../directives/custom-directives.module'; \r\nimport { AuthModule } from '@auth0/auth0-angular';\r\nimport { UserAccountDetailServiceService } from '../services/user-account-detail-service.service';\r\n\r\nlet sharedData: any = {};\r\nconst listOfModules: any = [SharedComponentsModule,];\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n MyTeamComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatPaginatorModule,\r\n NgbModule,\r\n listOfModules,\r\n NgbToastModule,\r\n CustomDirectivesModule,\r\n ConfigModule.withConfig({\r\n cmsComponents: {\r\n ManageUsersListComponent: {\r\n component: MyTeamComponent\r\n }\r\n }\r\n } as CmsConfig)\r\n ]\r\n})\r\nexport class MyTeamModule {\r\n constructor(@Optional() @SkipSelf() parentModule?: MyTeamModule) {\r\n if (parentModule) {\r\n throw new Error(\r\n 'TeamModule is already loaded. Import it in the AppModule only');\r\n }\r\n }\r\n\r\n public static forRoot(environment: any): ModuleWithProviders<MyTeamModule> {\r\n localStorage.setItem('envUrl', environment.occBaseUrl + environment.baseSiteId);\r\n sessionStorage.setItem('env', JSON.stringify(environment) );\r\n sharedData = environment;\r\n listOfModules.push(AuthModule.forRoot({\r\n domain: sharedData.auth0Domain,\r\n clientId: sharedData.auth0Client_id,\r\n redirect_uri: sharedData.UIsiteURl\r\n }))\r\n return {\r\n ngModule: MyTeamModule,\r\n providers: [\r\n UserAccountDetailServiceService,\r\n {\r\n provide: 'env', // you can also use InjectionToken\r\n useValue: environment\r\n }\r\n ]\r\n };\r\n\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { SavedCartFacade } from '@spartacus/cart/saved-cart/root';\r\nimport { Cart, CmsService, RoutingService } from '@spartacus/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { savedCartList } from './saved-cart-general';\r\nimport { SavedCartService } from './saved-cart.service';\r\n\r\n@Component({\r\n selector: 'app-custom-saved-cart',\r\n templateUrl: './custom-saved-cart.component.html',\r\n styleUrls: ['./custom-saved-cart.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CustomSavedCartComponent implements OnInit {\r\n //private subscription = new Subscription();\r\n makeCartActiiveForm!: FormGroup;\r\n savedCartList = savedCartList;\r\n noSavedCartData: any;\r\n savedCartHeading: any;\r\n pageTitle: any;\r\n dataAvailale?: string;\r\n makeActiveData: any = [];\r\n descriptionLength: any;\r\n nameMaxLength: number = 50;\r\n cloneRecord: boolean = true;\r\n cartName: string = '';\r\n showWaitCursor = new BehaviorSubject<boolean>(false);\r\n makeCartActiveForm: any;\r\n selectedCartId: number = 0;\r\n showPopUp: boolean = false;\r\n constructor(\r\n protected routing: RoutingService,\r\n protected savedCartService: SavedCartFacade,\r\n public cmsService: CmsService,\r\n public service: SavedCartService,\r\n private formBuilder: FormBuilder\r\n ) {\r\n\r\n }\r\n\r\n savedCarts$: Observable<Cart[]> = this.savedCartService.getList();\r\n\r\n ngOnInit(): void {\r\n this.cmsService.getCurrentPage().subscribe((pagadata: any) => {\r\n this.pageTitle = pagadata.title;\r\n })\r\n\r\n this.cmsService.getComponentData('SavedCartParagraphComponent').subscribe((data: any) => {\r\n if (data) {\r\n this.savedCartHeading = data.content;\r\n }\r\n })\r\n this.getData();\r\n this.makeCartActiiveForm = this.formBuilder.group({\r\n deskPhone: [''],\r\n jobTitle: [''],\r\n });\r\n }\r\n getData() { \r\n this.showWaitCursor.next(true);\r\n this.savedCarts$.subscribe((saveData: any) => {\r\n this.showWaitCursor.next(true);\r\n if (saveData && saveData.length > 0) {\r\n this.dataAvailale = 'hasData';\r\n } else {\r\n this.dataAvailale = 'noData';\r\n this.cmsService.getComponentData('EmptySavedCartComponent').subscribe((data: any) => {\r\n if (data) {\r\n this.noSavedCartData = data.content;\r\n }\r\n })\r\n }\r\n this.showWaitCursor.next(false);\r\n })\r\n }\r\n goToSavedCartDetails(cart: Cart): void {\r\n this.routing.go({\r\n cxRoute: 'savedCartsDetails',\r\n params: { savedCartId: cart?.code },\r\n });\r\n }\r\n makeActiveCart(event: Event, cartId: any) {\r\n this.selectedCartId = cartId;\r\n this.savedCarts$.subscribe((data: any) => {\r\n this.showWaitCursor.next(true);\r\n if (data) {\r\n this.makeActiveData = data.filter((element: any) => element.code == cartId);\r\n if (this.makeActiveData[0] && this.makeActiveData[0]?.description.length > 90) {\r\n this.descriptionLength = true;\r\n } else {\r\n this.descriptionLength = false;\r\n }\r\n this.showPopUp = true;\r\n this.showWaitCursor.next(false);\r\n }\r\n })\r\n }\r\n changeRetainCopy(event: any,) {\r\n if (event.currentTarget.checked) {\r\n this.cloneRecord = true;\r\n } else {\r\n this.cloneRecord = false;\r\n }\r\n }\r\n\r\n}\r\n","<app-custom-breadcrum></app-custom-breadcrum>\r\n<div class=\"loading\" *ngIf=\"showWaitCursor | async \">Loading&#8230;</div>\r\n<div class=\"container\">\r\n <ng-container *ngIf=\"savedCarts$ | async as savedCarts\">\r\n <ng-container *ngIf=\"savedCarts.length; else noData\">\r\n <ng-template ngIf=\"savedCartHeading\">\r\n <h1 class=\"pageTitle my-4 py-2\">{{pageTitle}}</h1>\r\n <div class=\"text-left pageParaText mb-5\" [innerHTML]=\"savedCartHeading\"></div>\r\n </ng-template>\r\n <div class=\"saved-cart-header mb-4\">\r\n <h3>{{savedCarts.length}} {{savedCartList.savedCarts}}</h3>\r\n </div>\r\n <ng-container>\r\n <table class=\"table saveCartdataTable\">\r\n <thead class=\"saved-cart-list-thead-mobile\">\r\n <th scope=\"col\" class=\"\">{{savedCartList.cartName }}\r\n <span class=\"info-icon d-inline-block ml-3\" ngbTooltip=\"Name Information\" placement=\"bottom\"></span>\r\n </th>\r\n <th scope=\"col\">{{savedCartList.dateSaved }}</th>\r\n <th scope=\"col\">{{savedCartList.quantity }}</th>\r\n <th scope=\"col\">{{savedCartList.total }}</th>\r\n <th scope=\"col\">{{savedCartList.actions }}\r\n <span class=\"info-icon d-inline-block ml-3\" ngbTooltip=\"Action Information\" placement=\"bottom\"></span>\r\n </th>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let savedCart of savedCarts\" class=\"cartItems\">\r\n <td class=\"text-left\">\r\n <div class=\"saved-cart-list-label\" ngbTooltip=\"Name Information\" placement=\"bottom\">\r\n {{savedCartList.cartName }}\r\n <span class=\"info-icon d-inline-block ml-3\" ngbTooltip=\"Name Information\" placement=\"bottom\"></span>\r\n </div>\r\n <a class=\"cx-saved-cart-list-value\" (click)=\"goToSavedCartDetails(savedCart)\">{{ savedCart?.name }}</a>\r\n </td>\r\n <td class=\"cx-saved-cart-list-date-saved text-left\">\r\n <div class=\"saved-cart-list-label\">{{savedCartList.dateSaved }}</div>\r\n <span class=\"cx-saved-cart-list-value\">{{ savedCart?.saveTime | date:'d MMM Y' }}</span>\r\n </td>\r\n <td class=\"cx-saved-cart-list-quantity text-left\">\r\n <div class=\"saved-cart-list-label\">{{savedCartList.quantity }}</div>\r\n <span class=\"cx-saved-cart-list-value\">{{ savedCart?.totalItems }}</span>\r\n </td>\r\n <td class=\"text-left width50\">\r\n <div class=\"saved-cart-list-label\">\r\n {{savedCartList.total }}\r\n </div>\r\n <span class=\"cx-saved-cart-list-value\">{{ savedCart?.totalPrice?.formattedValue }}</span>\r\n </td>\r\n <td class=\"actionBtn width50\">\r\n <button #element class=\"btn makeActionBtn text-uppercase rounded-0\" data-toggle=\"modal\" data-target=\"#editCardModal\" (click)=\"makeActiveCart($event, savedCart?.code)\">\r\n {{savedCartList.makeCartActive }}\r\n </button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </ng-container>\r\n </ng-container>\r\n <!-- NO SAVED CART CONTAINER -->\r\n <ng-template #noData>\r\n <div class=\"cx-saved-cart-list-no-saved-carts row\">\r\n <div class=\"col-sm-12 col-md-10 col-lg-10 m-auto\">\r\n <div class=\"text-center\" [innerHTML]=\"noSavedCartData\"></div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n</div>\r\n<div class=\"modal fade\" *ngIf=\"showPopUp\" id=\"editCardModal\" role=\"dialog\" aria-labelledby=\"editCardModal\" aria-hidden=\"true\">\r\n <div class=\"loading\" *ngIf=\"showWaitCursor | async \">Loading&#8230;</div>\r\n <app-active-saved-cart [selectedCartId]=\"selectedCartId\" [makeActiveData]=\"makeActiveData\"></app-active-saved-cart>\r\n</div>\r\n","import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CustomSavedCartComponent } from './custom-saved-cart.component';\r\nimport { FeaturesConfigModule, provideDefaultConfig, CmsConfig } from '@spartacus/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { SharedComponentsModule } from '../shared/shared-components.module';\r\nimport { AuthModule } from '@auth0/auth0-angular';\r\nimport { SavedCartService } from './saved-cart.service';\r\n\r\nlet sharedData: any = {};\r\nconst listOfModules: any = [SharedComponentsModule,];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n FeaturesConfigModule,\r\n listOfModules,\r\n RouterModule,\r\n NgbModule,\r\n ReactiveFormsModule\r\n ],\r\n providers: [\r\n provideDefaultConfig(<CmsConfig>{\r\n cmsComponents: {\r\n SavedCartsComponent: {\r\n component: CustomSavedCartComponent\r\n },\r\n },\r\n }),\r\n ],\r\n declarations: [CustomSavedCartComponent],\r\n exports: [CustomSavedCartComponent],\r\n})\r\nexport class CustomSavedCartModule {\r\n\r\n constructor(@Optional() @SkipSelf() parentModule?: CustomSavedCartModule) {\r\n if (parentModule) {\r\n throw new Error(\r\n 'TeamModule is already loaded. Import it in the AppModule only');\r\n }\r\n }\r\n\r\n public static forRoot(environment: any): ModuleWithProviders<CustomSavedCartModule> {\r\n localStorage.setItem('envUrl', environment.occBaseUrl + environment.baseSiteId);\r\n sessionStorage.setItem('env', JSON.stringify(environment) );\r\n sharedData = environment;\r\n listOfModules.push(AuthModule.forRoot({\r\n domain: sharedData.auth0Domain,\r\n clientId: sharedData.auth0Client_id,\r\n redirect_uri: sharedData.UIsiteURl\r\n }))\r\n return {\r\n ngModule: CustomSavedCartModule,\r\n providers: [\r\n SavedCartService\r\n ]\r\n };\r\n\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { GET_ORDER_DETAIL, GET_ORDER_HISTORY_SEARCH_RESULTS, GET_ORDER_HISTORY_SEARCH_STATUSES, ORDER_HISTORY_SORTING_ENDPOINT } from './endPointURL';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class OrderHistoryService {\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n public getOrderHistoryList(data:any ,currentPage?: any): Observable<any> {\r\n let url = GET_ORDER_HISTORY_SEARCH_RESULTS.url;\r\n let params = new HttpParams();\r\n params = params.set(\"currentPage\", currentPage)\r\n return this.http.post(url, data, { params: params } ) as Observable<any>;\r\n }\r\n \r\n public getOrderDetailList(orderID:any): Observable<any> {\r\n let url = GET_ORDER_DETAIL.url + orderID ;\r\n return this.http\r\n .get(url, {\r\n headers: { 'Content-Type': 'application/json' },\r\n })\r\n .pipe(\r\n catchError((errorRes) => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n\r\n public getOrderHistorySearchStatuses(): Observable<any> {\r\n let url = GET_ORDER_HISTORY_SEARCH_STATUSES.url;\r\n return this.http\r\n .get(url, {\r\n headers: { 'Content-Type': 'application/json' },\r\n })\r\n .pipe(\r\n catchError((errorRes) => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n\r\n public getOrderHistorySearchResults(data: any,currentPage?: any): Observable<any> {\r\n let params = new HttpParams();\r\n params = params.set(\"currentPage\", currentPage)\r\n let url = GET_ORDER_HISTORY_SEARCH_RESULTS.url;\r\n return this.http.post(url, data, { params: params })\r\n .pipe(\r\n catchError((errorRes) => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n\r\n public sortOrderHistory(data: any, reqPayload: any): Observable<any> {\r\n let url = ORDER_HISTORY_SORTING_ENDPOINT.url + data;\r\n return this.http.post(url, reqPayload, {\r\n headers: { 'Content-Type': 'application/json' },\r\n })\r\n .pipe(\r\n catchError((errorRes) => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n SimpleChanges,\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"app-slider-progress\",\r\n templateUrl: \"./slider-progress.component.html\",\r\n styleUrls: [\"./slider-progress.component.scss\"],\r\n})\r\nexport class SliderProgressComponent implements OnInit, OnChanges {\r\n @Input() sliderData: any;\r\n minLineStatus: any = null;\r\n maxLineStatus: any = null;\r\n\r\n constructor(private cdr: ChangeDetectorRef) {}\r\n\r\n ngOnInit(): void {\r\n if (this.sliderData) {\r\n this.minLineStatus = this.sliderData?.minLineStatus || null;\r\n this.maxLineStatus = this.sliderData?.maxLineStatus || null;\r\n if (this.minLineStatus == null || this.maxLineStatus == null) {\r\n this.minLineStatus = this.sliderData?.statusDisplay;\r\n }\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (!changes?.sliderData?.isFirstChange()) {\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n getLastStatus(): any {\r\n if (\r\n this.minLineStatus?.toLowerCase() == \"completed\" ||\r\n this.maxLineStatus?.toLowerCase() == \"completed\"\r\n ) {\r\n return \"Completed\";\r\n } else if (\r\n this.minLineStatus?.toLowerCase() == \"retuned\" ||\r\n this.maxLineStatus?.toLowerCase() == \"retuned\"\r\n ) {\r\n return \"Returned\";\r\n } else if (\r\n this.minLineStatus?.toLowerCase() == \"cancelled\" ||\r\n this.maxLineStatus?.toLowerCase() == \"cancelled\"\r\n ) {\r\n return \"Cancelled\";\r\n } else {\r\n return \"Completed\";\r\n }\r\n }\r\n\r\n isActive(value: any): any {\r\n return (\r\n this.minLineStatus?.toLowerCase() == value ||\r\n this.maxLineStatus?.toLowerCase() == value\r\n );\r\n }\r\n}\r\n","<div class=\"range-slider\" *ngIf=\"minLineStatus != null\">\r\n <span class=\"point1 points\" [ngClass]=\"{ 'active': isActive('created') }\" alt=\"Received\" title=\"Received\">\r\n <span class=\"text\" [ngClass]=\"{'bottom': (minLineStatus?.toLowerCase() == 'created'), 'top': (minLineStatus?.toLowerCase() != 'created')}\">Received</span>\r\n </span>\r\n <span class=\"point2 points\" [ngClass]=\"{ 'active': isActive('approved') }\"\r\n alt=\"Confirmed\" title=\"Confirmed\"><span class=\"text\" [ngClass]=\"{'bottom': (minLineStatus?.toLowerCase() == 'approved'), 'top': (minLineStatus?.toLowerCase() != 'approved')}\">Confirmed</span></span\r\n >\r\n <span class=\"point3 points\" [ngClass]=\"{ 'active': isActive('processing') }\"\r\n alt=\"Processing\" title=\"Processing\"><span class=\"text\" [ngClass]=\"{'bottom': (minLineStatus?.toLowerCase() == 'processing'), 'top': (minLineStatus?.toLowerCase() != 'processing')}\">Processing</span\r\n ></span>\r\n <span class=\"point4 points\" [ngClass]=\"{ 'active': isActive('ready') }\"\r\n alt=\"Ready\" title=\"Ready\"><span class=\"text\" [ngClass]=\"{'bottom': (minLineStatus?.toLowerCase() == 'ready'), 'top': (minLineStatus?.toLowerCase() != 'ready')}\">Ready</span\r\n ></span>\r\n <span class=\"point5 points\" [ngClass]=\"{ 'active': isActive('delivering') }\"\r\n alt=\"Delivering\" title=\"Delivering\"><span class=\"text\" [ngClass]=\"{'bottom': (minLineStatus?.toLowerCase() == 'delivering'), 'top': (minLineStatus?.toLowerCase() != 'delivering')}\">Delivering</span\r\n ></span>\r\n <span class=\"point6 points\" [ngClass]=\"{ 'active': isActive('completed') || isActive('returned') || isActive('cancelled') }\" [attr.alt]=\"getLastStatus()\" [title]=\"getLastStatus()\"\r\n ><span class=\"text\" [ngClass]=\"{'bottom': (minLineStatus?.toLowerCase() == 'completed' || minLineStatus?.toLowerCase() == 'returned' || minLineStatus?.toLowerCase() == 'cancelled'), 'top': (minLineStatus?.toLowerCase() != 'completed' && minLineStatus?.toLowerCase() != 'returned' && minLineStatus?.toLowerCase() != 'cancelled')}\">{{getLastStatus()}}</span\r\n ></span>\r\n</div>\r\n","import { AfterViewInit, ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { CmsService } from '@spartacus/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport * as moment from 'moment';\r\nimport { CommonUtils } from '../utils';\r\nimport { OrderHistoryService } from '../services/order-history.service';\r\nimport { MatMenuTrigger } from '@angular/material/menu';\r\n\r\n@Component({\r\n selector: 'app-custom-order-history',\r\n templateUrl: './custom-order-history.component.html',\r\n styleUrls: ['./custom-order-history.component.scss']\r\n})\r\nexport class CustomOrderHistoryComponent implements OnInit, AfterViewInit, OnDestroy {\r\n pageTitle: any;\r\n orderHistoryHeading: any;\r\n noOrderHistoryData: any;\r\n noSearchResultContent: any;\r\n listview: boolean = true;\r\n noSearchResults: boolean = false;\r\n dataAvailale?: string;\r\n orderHistoryLists: any = [];\r\n orderSortLists: any = [];\r\n orderStatuses: any = [];\r\n orderStates: any = [];\r\n deliveryTypes: any = [];\r\n isDesktop = true;\r\n isMobile = false;\r\n isTablet = false;\r\n breadcrumbData: any = [];\r\n showWaitCursor = new BehaviorSubject<boolean>(false);\r\n optionalColumns = [\r\n { name: 'Order', value: 'order' },\r\n { name: 'PO', value: 'po' },\r\n { name: 'Order Date', value: 'orderDate' },\r\n { name: 'Delivery Type', value: 'deliveryType' },\r\n ];\r\n selectedOrderState: any = [];\r\n selectedOrderType: any = 'orderNumber';\r\n logText: any;\r\n searchText: string = '';\r\n environment: any = sessionStorage.getItem('env');\r\n env : any = JSON.parse(this.environment);\r\n storeFrontUrl = this.env.UIsiteURl;\r\n sortByValue: any;\r\n loaderImage = new BehaviorSubject<boolean>(false);\r\n currentPage = 0;\r\n totalResults: any;\r\n selectedDateRange: any;\r\n selectedDateKey: string = 'orderDate';\r\n selectedFilters: any;\r\n isClearAll: boolean = false;\r\n isInputValue: boolean = false;\r\n selectedOption: any;\r\n orderTooltipContent: any;\r\n poTooltipContent: any;\r\n orderDateTooltipContent: any;\r\n deliveryTypeTooltipContent: any;\r\n deliveryDateTooltipContent: any;\r\n deliveryAddressTooltipContent: any;\r\n totalPriceTooltipContent: any;\r\n statusTooltipContent: any;\r\n isSearchBtnClicked: boolean = false;\r\n selectedOrderNumber: string = '';\r\n sesstionStorageCalled: boolean = false;\r\n selectedDateFilterValue: any;\r\n items: any = [];\r\n menuTopLeftPosition = { x: 0, y: 0 };\r\n @ViewChild(MatMenuTrigger, { static: true }) matMenuTrigger: MatMenuTrigger;\r\n\r\n constructor(\r\n public cmsService: CmsService,\r\n private orderHistoryService: OrderHistoryService,\r\n public cd: ChangeDetectorRef\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.showWaitCursor.next(true);\r\n this.breadcrumbData.push({ url: '/', name: 'Home' }, { url: '/my-account/orders', name: 'My Orders' });\r\n this.cmsService.getCurrentPage().subscribe((pagadata: any) => {\r\n this.pageTitle = pagadata.title;\r\n });\r\n this.cmsService\r\n .getComponentData('EmptyOrderListComponent')\r\n .subscribe((data: any) => {\r\n if (data) {\r\n this.noOrderHistoryData = data.content;\r\n }\r\n });\r\n this.cmsService\r\n .getComponentData('OrderHistoryParagraphComponent')\r\n .subscribe((data: any) => {\r\n if (data) {\r\n this.orderHistoryHeading = data.content;\r\n }\r\n });\r\n this.cmsService\r\n .getComponentData('EmptySearchOrderListComponent')\r\n .subscribe((data: any) => {\r\n if (data) {\r\n this.noSearchResultContent = data.content;\r\n }\r\n });\r\n this.cmsService\r\n .getComponentData('orders_orderHistory_code')\r\n .subscribe((data: any) => {\r\n if (data) {\r\n this.orderTooltipContent = data.content;\r\n }\r\n });\r\n this.cmsService\r\n .getComponentData('orders_orderHistory_purchaseOrderNumber')\r\n .subscribe((data: any) => {\r\n if (data) {\r\n this.poTooltipContent = data.content;\r\n }\r\n });\r\n this.cmsService\r\n .getComponentData('orders_orderHistory_placed')\r\n .subscribe((data: any) => {\r\n if (data) {\r\n this.orderDateTooltipContent = data.content;\r\n }\r\n });\r\n this.cmsService\r\n .getComponentData('orders_orderHistory_deliveryMode')\r\n .subscribe((data: any) => {\r\n if (data) {\r\n this.deliveryTypeTooltipContent = data.content;\r\n }\r\n });\r\n this.cmsService\r\n .getComponentData('orders_orderHistory_deliveryDate')\r\n .subscribe((data: any) => {\r\n if (data) {\r\n this.deliveryDateTooltipContent = data.content;\r\n }\r\n });\r\n this.cmsService\r\n .getComponentData('orders_orderHistory_deliveryAddress')\r\n .subscribe((data: any) => {\r\n if (data) {\r\n this.deliveryAddressTooltipContent = data.content;\r\n }\r\n });\r\n this.cmsService\r\n .getComponentData('orders_orderHistory_total')\r\n .subscribe((data: any) => {\r\n if (data) {\r\n this.totalPriceTooltipContent = data.content;\r\n }\r\n });\r\n this.cmsService\r\n .getComponentData('orders_orderHistory_status')\r\n .subscribe((data: any) => {\r\n if (data) {\r\n this.statusTooltipContent = data.content;\r\n }\r\n });\r\n this.selectedOrderType = 'orderNumber';\r\n this.getLastMonthDateRange();\r\n this.getSearchDropdownData();\r\n\r\n const selectedFilters: any = sessionStorage.getItem('selectedOrderFilters');\r\n if (this.isNullOrEmpty(selectedFilters?.toString())) {\r\n this.getOrderList();\r\n } else {\r\n const orderData: any = JSON.parse(selectedFilters);\r\n if (orderData.searchText) {\r\n this.selectedOrderType = orderData.selectedOrderType;\r\n this.searchText = orderData.searchText;\r\n }\r\n this.currentPage = orderData.currentPage;\r\n this.selectedOrderState = JSON.parse(JSON.stringify(orderData.selectedFilters));\r\n if (this.selectedOrderState && this.selectedOrderState.length > 0) {\r\n let selectedDate = this.selectedOrderState.find((element: any) => element.key == 'orderDate');\r\n if (selectedDate) {\r\n selectedDate = selectedDate?.value?.split(',');\r\n const startDate = selectedDate[0].split('/')[1] + '/' + selectedDate[0].split('/')[0] + '/' + selectedDate[0].split('/')[2];\r\n const endDate = selectedDate[1].split('/')[1] + '/' + selectedDate[1].split('/')[0] + '/' + selectedDate[1].split('/')[2];\r\n this.selectedDateFilterValue = { startDate: moment(new Date(startDate)), endDate: moment(new Date(endDate)) };\r\n }\r\n }\r\n this.selectedOrderNumber = orderData.orderNumber;\r\n this.sesstionStorageCalled = true;\r\n this.getSearchResults();\r\n }\r\n this.onPageRefresh();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.showWaitCursor.subscribe((data) => {\r\n if (data == false) {\r\n // setTimeout(() => {\r\n this.getStatusUpdate();\r\n // }, 3000);\r\n }\r\n });\r\n }\r\n isNullOrEmpty(valueToCheck: string) {\r\n return (valueToCheck == null || valueToCheck == '') ? true : false;\r\n }\r\n\r\n getLastMonthDateRange() {\r\n this.selectedDateRange = [moment().subtract(29, 'days'), moment()];\r\n const dateValue =\r\n this.selectedDateRange[0]._d.getDate() +\r\n '/' +\r\n (this.selectedDateRange[0]._d.getMonth() + 1) +\r\n '/' +\r\n this.selectedDateRange[0]._d.getFullYear() +\r\n ',' +\r\n this.selectedDateRange[1]._d.getDate() +\r\n '/' +\r\n (this.selectedDateRange[1]._d.getMonth() + 1) +\r\n '/' +\r\n this.selectedDateRange[1]._d.getFullYear();\r\n let obj = {\r\n key: this.selectedDateKey,\r\n value: dateValue,\r\n name: dateValue,\r\n };\r\n this.selectedOrderState.push(obj);\r\n }\r\n\r\n getStatusUpdate() {\r\n this.orderHistoryLists.forEach((element: any) => {\r\n element.statusValue = 0;\r\n if (element.status == 'CREATED') {\r\n element.statusValue = 1;\r\n } else if (element.status == 'APPROVED') {\r\n element.statusValue = 2;\r\n } else if (element.status == 'PROCESSING') {\r\n element.statusValue = 3;\r\n } else if (element.status == 'READY') {\r\n element.statusValue = 4;\r\n } else if (element.status == 'DELIVERING') {\r\n element.statusValue = 5;\r\n } else if (element.status == 'COMPLETED') {\r\n element.statusValue = 6;\r\n }\r\n this.loaderImage.next(false);\r\n this.cd.markForCheck();\r\n });\r\n this.orderHistoryLists.forEach((element: any) => {\r\n element.minValue = 0;\r\n if (element.minLineStatus == 'CREATED') {\r\n element.minValue = 1;\r\n } else if (element.minLineStatus == 'APPROVED') {\r\n element.minValue = 2;\r\n } else if (element.minLineStatus == 'PROCESSING') {\r\n element.minValue = 3;\r\n } else if (element.minLineStatus == 'READY') {\r\n element.minValue = 4;\r\n } else if (element.minLineStatus == 'DELIVERING') {\r\n element.minValue = 5;\r\n } else if (element.minLineStatus == 'COMPLETED') {\r\n element.minValue = 6;\r\n }\r\n this.loaderImage.next(false);\r\n this.cd.markForCheck();\r\n });\r\n this.orderHistoryLists.forEach((element: any) => {\r\n if (element.maxLineStatus == 'CREATED') {\r\n element.maxValue = 1;\r\n } else if (element.maxLineStatus == 'APPROVED') {\r\n element.maxValue = 2;\r\n } else if (element.maxLineStatus == 'PROCESSING') {\r\n element.maxValue = 3;\r\n } else if (element.maxLineStatus == 'READY') {\r\n element.maxValue = 4;\r\n } else if (element.maxLineStatus == 'DELIVERING') {\r\n element.maxValue = 5;\r\n } else if (element.maxLineStatus == 'COMPLETED') {\r\n element.maxValue = 6;\r\n }\r\n this.loaderImage.next(false);\r\n this.cd.markForCheck();\r\n });\r\n }\r\n\r\n getOrderList() {\r\n this.showWaitCursor.next(true);\r\n const reqObj: any = {\r\n searchParams: this.selectedOrderState,\r\n };\r\n this.orderHistoryService.getOrderHistoryList(reqObj, this.currentPage)\r\n .subscribe(\r\n (data: any) => {\r\n // this.orderHistoryLists = this.orderHistoryLists.length == 0 ? data.orders : [...this.orderHistoryLists, data?.orders];\r\n if (this.isClearAll == true) {\r\n this.orderHistoryLists = [];\r\n this.isClearAll = false;\r\n }\r\n let date = new Date();\r\n date.getFullYear();\r\n date.getMonth();\r\n date.getDay();\r\n this.orderHistoryLists = this.orderHistoryLists.concat(data.orders);\r\n this.orderHistoryLists.forEach((element: any) => {\r\n if (element.minDeliveryDate && element.maxDeliveryDate) {\r\n element.minDeliveryDate = new Date(element.minDeliveryDate);\r\n element.maxDeliveryDate = new Date(element.maxDeliveryDate);\r\n element.isSameDate =\r\n element.maxDeliveryDate.getFullYear() ==\r\n element.minDeliveryDate.getFullYear() &&\r\n element.maxDeliveryDate.getMonth() ==\r\n element.minDeliveryDate.getMonth() &&\r\n element.maxDeliveryDate.getDay() ==\r\n element.minDeliveryDate.getDay()\r\n ? true\r\n : false;\r\n }\r\n });\r\n this.orderSortLists = data?.sorts;\r\n this.totalResults = data?.pagination?.totalResults;\r\n this.getStatusUpdate();\r\n this.orderSortLists.forEach((element: any) => {\r\n if (element.code == 'byDateDesc') {\r\n element.value = 'Newest Order';\r\n }\r\n if (element.code == 'byDateAsc') {\r\n element.value = 'Oldest Order';\r\n }\r\n if (element.code == 'byPODesc') {\r\n element.value = 'Highest PO number';\r\n }\r\n if (element.code == 'byPOAsc') {\r\n element.value = 'Lowest PO number';\r\n }\r\n if (element.code == 'byDeliveryDesc') {\r\n element.value = 'Newest Delivery';\r\n }\r\n if (element.code == 'byDeliveryAsc') {\r\n element.value = 'Oldest Delivery';\r\n }\r\n });\r\n if (this.orderHistoryLists && this.orderHistoryLists.length > 0) {\r\n this.dataAvailale = 'hasData';\r\n } else {\r\n this.dataAvailale = 'noData';\r\n }\r\n this.showWaitCursor.next(false);\r\n },\r\n (error) => {\r\n this.showWaitCursor.next(false);\r\n }\r\n );\r\n }\r\n\r\n clearAll() {\r\n this.searchText = '';\r\n this.selectedOrderType = 'orderNumber';\r\n this.selectedOrderState = [];\r\n this.noSearchResults = false;\r\n this.isClearAll = true;\r\n this.isInputValue = false;\r\n this.isSearchBtnClicked = false;\r\n this.getLastMonthDateRange();\r\n this.getOrderList();\r\n sessionStorage.removeItem('selectedOrderFilters');\r\n }\r\n\r\n getSearchDropdownData() {\r\n this.orderHistoryService\r\n .getOrderHistorySearchStatuses()\r\n .subscribe((data: any) => {\r\n if (data) {\r\n this.orderStatuses = data.statuses;\r\n this.orderStatuses.forEach((element: any) => {\r\n element.name = element.value;\r\n });\r\n this.deliveryTypes = data.types;\r\n this.orderStates = data.states;\r\n this.deliveryTypes.forEach((element: any) => {\r\n element.name = element.value;\r\n });\r\n this.orderStates.forEach((element: any) => {\r\n element.name = element.value;\r\n });\r\n }\r\n });\r\n }\r\n\r\n toggleGridOrListView(event: any): void {\r\n event.preventDefault();\r\n this.listview = !this.listview;\r\n }\r\n\r\n getCheckedOrderStatuses(data: any) {\r\n const ind = this.selectedOrderState.findIndex(\r\n (element: any) => element.name == data.value\r\n );\r\n return ind > -1 ? true : false;\r\n this.orderHistoryLists = [];\r\n this.getSearchResults();\r\n }\r\n\r\n checkOrderStatus(event: any, data: any, mobileData?: string) {\r\n this.currentPage = 0;\r\n if (event.currentTarget.checked) {\r\n this.selectedOrderState.push(data);\r\n this.orderHistoryLists = [];\r\n if (!mobileData) {\r\n this.getSearchResults();\r\n }\r\n this.cd.markForCheck();\r\n } else {\r\n const ind = this.selectedOrderState.findIndex(\r\n (element: any) => element.value == data.value\r\n );\r\n this.selectedOrderState.splice(ind, 1);\r\n this.orderHistoryLists = [];\r\n if (!mobileData) {\r\n this.getSearchResults();\r\n }\r\n this.cd.markForCheck();\r\n }\r\n }\r\n\r\n removeChips(data: any) {\r\n const ind = this.selectedOrderState.findIndex(\r\n (element: any) => element.value == data.value\r\n );\r\n this.selectedOrderState.splice(ind, 1);\r\n this.orderHistoryLists = [];\r\n this.getSearchResults();\r\n }\r\n\r\n onChange(e: any) {\r\n this.selectedOrderType = e.target.value;\r\n }\r\n\r\n onSubmit() {\r\n this.getSearchResults();\r\n }\r\n\r\n getSelectedDate(event: any) {\r\n const selectedFilters: any = sessionStorage.getItem('selectedOrderFilters');\r\n if (this.isNullOrEmpty(selectedFilters?.toString())) {\r\n event.name = event.value;\r\n this.selectedDateRange = event;\r\n const ind = this.selectedOrderState.findIndex(\r\n (element: any) =>\r\n element.key == 'orderDate' || element.key == 'deliveryDate'\r\n );\r\n if (ind > -1) this.selectedOrderState.splice(ind, 1);\r\n this.selectedOrderState.push(event);\r\n this.getSearchResults();\r\n }\r\n\r\n }\r\n\r\n getStatusValue() {\r\n this.orderHistoryLists.forEach((element: any) => {\r\n if (element.status == 'CREATED') {\r\n element.statusValue = 1;\r\n } else if (element.status == 'APPROVED') {\r\n element.statusValue = 2;\r\n } else if (element.status == 'PROCESSING') {\r\n element.statusValue = 3;\r\n } else if (element.status == 'READY') {\r\n element.statusValue = 4;\r\n } else if (element.status == 'DELIVERING') {\r\n element.statusValue = 5;\r\n } else if (element.status == 'COMPLETED') {\r\n element.statusValue = 6;\r\n }\r\n });\r\n }\r\n\r\n sortBy(e: any) {\r\n this.showWaitCursor.next(true);\r\n this.sortByValue = e.target.value;\r\n const reqObj: any = {\r\n searchParams: this.selectedFilters,\r\n };\r\n this.orderHistoryService\r\n .sortOrderHistory(this.sortByValue, reqObj)\r\n .subscribe(\r\n (res: any) => {\r\n this.orderHistoryLists = res?.orders;\r\n this.totalResults = res?.pagination?.totalResults;\r\n this.getStatusValue();\r\n this.showWaitCursor.next(false);\r\n },\r\n (error) => {\r\n this.showWaitCursor.next(false);\r\n }\r\n );\r\n }\r\n\r\n getSearchResults() {\r\n this.isSearchBtnClicked = true;\r\n this.selectedFilters = JSON.parse(JSON.stringify(this.selectedOrderState));\r\n const obj = {\r\n key: this.selectedOrderType,\r\n value: this.searchText,\r\n };\r\n if (\r\n this.searchText != '' &&\r\n (this.selectedOrderType == 'orderNumber' ||\r\n this.selectedOrderType == 'poNumber')\r\n ) {\r\n this.selectedOrderState = [];\r\n this.selectedFilters = [];\r\n this.selectedFilters.push(obj);\r\n } else {\r\n this.selectedFilters.push(obj);\r\n }\r\n const reqObj: any = {\r\n searchParams: this.selectedFilters,\r\n };\r\n this.showWaitCursor.next(true);\r\n this.orderHistoryService.getOrderHistorySearchResults(reqObj, this.currentPage).subscribe(\r\n (res: any) => {\r\n if (res && res?.orders?.length > 0) {\r\n if (this.currentPage > 0) {\r\n this.orderHistoryLists = this.orderHistoryLists.concat(res?.orders);\r\n } else {\r\n this.orderHistoryLists = res?.orders;\r\n }\r\n this.orderHistoryLists.forEach((element: any) => {\r\n if (element.minDeliveryDate && element.maxDeliveryDate) {\r\n element.minDeliveryDate = new Date(element.minDeliveryDate);\r\n element.maxDeliveryDate = new Date(element.maxDeliveryDate);\r\n element.isSameDate =\r\n element.maxDeliveryDate.getFullYear() ==\r\n element.minDeliveryDate.getFullYear() &&\r\n element.maxDeliveryDate.getMonth() ==\r\n element.minDeliveryDate.getMonth() &&\r\n element.maxDeliveryDate.getDay() ==\r\n element.minDeliveryDate.getDay()\r\n ? true\r\n : false;\r\n }\r\n });\r\n if (this.orderHistoryLists && this.orderHistoryLists.length > 0) {\r\n this.dataAvailale = 'hasData';\r\n } else {\r\n this.dataAvailale = 'noData';\r\n }\r\n this.totalResults = res?.pagination?.totalResults;\r\n\r\n this.orderSortLists = res?.sorts;\r\n this.noSearchResults = false;\r\n this.orderSortLists.forEach((element: any) => {\r\n if (element.code == 'byDateDesc') {\r\n element.value = 'Newest Order';\r\n }\r\n if (element.code == 'byDateAsc') {\r\n element.value = 'Oldest Order';\r\n }\r\n if (element.code == 'byPODesc') {\r\n element.value = 'Highest PO number';\r\n }\r\n if (element.code == 'byPOAsc') {\r\n element.value = 'Lowest PO number';\r\n }\r\n if (element.code == 'byDeliveryDesc') {\r\n element.value = 'Newest Delivery';\r\n }\r\n if (element.code == 'byDeliveryAsc') {\r\n element.value = 'Oldest Delivery';\r\n }\r\n });\r\n this.getStatusValue();\r\n this.cd.markForCheck();\r\n this.showWaitCursor.next(false);\r\n if (this.selectedOrderNumber != '' && this.sesstionStorageCalled) {\r\n setTimeout(() => {\r\n this.sesstionStorageCalled = false;\r\n const element: any = document.getElementById('id-' + this.selectedOrderNumber);\r\n element.scrollIntoView({ behavior: 'smooth', top: 150 });\r\n }, 500);\r\n }\r\n } else {\r\n this.showWaitCursor.next(false);\r\n this.orderHistoryLists = [];\r\n this.noSearchResults = true;\r\n }\r\n },\r\n (error) => {\r\n this.showWaitCursor.next(false);\r\n }\r\n );\r\n }\r\n\r\n onSearchChange(e: any) {\r\n if (e.target.value == '' || e.target.value.indexOf(' ') >= 0) {\r\n this.isInputValue = false;\r\n } else {\r\n this.isInputValue = true;\r\n }\r\n }\r\n\r\n loadMoreRecord() {\r\n this.loaderImage.next(true);\r\n this.currentPage += 1;\r\n if (this.isSearchBtnClicked) {\r\n console.log('called inside load more');\r\n this.getSearchResults();\r\n } else {\r\n this.getOrderList();\r\n }\r\n\r\n }\r\n orderNumberClicked(orderNumber: any, newWindowFlag: boolean) {\r\n sessionStorage.removeItem('selectedOrderFilters');\r\n const obj: any = {\r\n selectedFilters: this.selectedOrderState.length == 0 && this.selectedFilters.length > 0 ? this.selectedFilters : this.selectedOrderState,\r\n currentPage: this.currentPage,\r\n orderNumber: orderNumber,\r\n selectedOrderType: this.selectedOrderType\r\n }\r\n if (this.searchText != '') {\r\n obj.searchText = this.searchText;\r\n }\r\n sessionStorage.setItem('selectedOrderFilters', JSON.stringify(obj));\r\n if (newWindowFlag) {\r\n window.open(this.storeFrontUrl + '/my-account/order/' + orderNumber, '_blank');\r\n } else {\r\n window.location.href = this.storeFrontUrl + '/my-account/order/' + orderNumber;\r\n }\r\n }\r\n\r\n onRightClick(event: MouseEvent, item: any) {\r\n // preventDefault avoids to show the visualization of the right-click menu of the browser\r\n event.preventDefault();\r\n\r\n // we record the mouse position in our object\r\n this.menuTopLeftPosition.x = event.clientX;\r\n this.menuTopLeftPosition.y = event.clientY;\r\n this.items = [];\r\n this.items.push(item);\r\n // we open the menu\r\n // we pass to the menu the information about our object\r\n this.matMenuTrigger.menuData = { item: item }\r\n this.matMenuTrigger.closeMenu();\r\n // we open the menu\r\n this.matMenuTrigger.openMenu();\r\n\r\n }\r\n\r\n onScroll() {\r\n if (\r\n !this.noSearchResults &&\r\n this.totalResults > this.orderHistoryLists.length\r\n ) {\r\n this.loadMoreRecord();\r\n }\r\n }\r\n\r\n onResize(event: any) {\r\n event.target.innerWidth;\r\n if (event.target.innerWidth < 992) {\r\n this.isMobile = true;\r\n this.isDesktop = false;\r\n } else {\r\n this.isDesktop = true;\r\n }\r\n }\r\n\r\n onPageRefresh() {\r\n this.isMobile = CommonUtils.isMobile();\r\n this.isTablet = CommonUtils.isTablet();\r\n this.isDesktop = CommonUtils.isDesktop();\r\n }\r\n ngOnDestroy(): void {\r\n sessionStorage.removeItem('selectedOrderFilters');\r\n }\r\n}\r\n","<app-custom-breadcrum [customCrumbData]=\"breadcrumbData\"></app-custom-breadcrum>\r\n<div class=\"loading\" *ngIf=\"showWaitCursor | async\">Loading&#8230;</div>\r\n\r\n<div\r\n class=\"container\"\r\n infiniteScroll\r\n [infiniteScrollDistance]=\"0\"\r\n [infiniteScrollThrottle]=\"1000\"\r\n (scrolled)=\"onScroll()\"\r\n (window:resize)=\"onResize($event)\"\r\n>\r\n <ng-container *ngIf=\"dataAvailale == 'hasData'\">\r\n <ng-template ngIf=\"orderHistoryHeading\">\r\n <h1 class=\"pageTitle my-4 py-2\">{{ pageTitle }}</h1>\r\n <div\r\n class=\"text-left pageParaText mb-5\"\r\n [innerHTML]=\"orderHistoryHeading\"\r\n ></div>\r\n </ng-template>\r\n <span class=\"d-flex justify-content-end\">\r\n <a href=\"javascript:void(0)\" (click)=\"clearAll()\"><u>Clear all</u></a>\r\n </span>\r\n <div class=\"order-search-block\">\r\n <div class=\"input-group\">\r\n <div class=\"input-group-prepend\">\r\n <select name=\"\" id=\"\" (change)=\"onChange($event)\">\r\n <option\r\n value=\"orderNumber\"\r\n [selected]=\"selectedOrderType == 'orderNumber'\"\r\n >\r\n Order #\r\n </option>\r\n <option\r\n value=\"poNumber\"\r\n [selected]=\"selectedOrderType == 'poNumber'\"\r\n >\r\n PO #\r\n </option>\r\n <option\r\n value=\"jobReference\"\r\n [selected]=\"selectedOrderType == 'jobReference'\"\r\n >\r\n Job Ref\r\n </option>\r\n <option\r\n value=\"productCode\"\r\n [selected]=\"selectedOrderType == 'productCode'\"\r\n >\r\n SKU / Item #\r\n </option>\r\n </select>\r\n </div>\r\n <input\r\n type=\"text\"\r\n [(ngModel)]=\"searchText\"\r\n (input)=\"onSearchChange($event)\"\r\n class=\"form-control\"\r\n aria-label=\"Text input with dropdown button\"\r\n />\r\n <div class=\"input-group-append\">\r\n <button\r\n type=\"button\"\r\n class=\"btn search-btn\"\r\n [disabled]=\"!isInputValue\"\r\n (click)=\"getSearchResults()\"\r\n >\r\n <img\r\n src=\"../../../assets/images/icon-ionic-ios-search.svg\"\r\n alt=\"\"\r\n />\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"filter-block\">\r\n <div class=\"custom-date-input\">\r\n <app-date-range-picker\r\n class=\"d-flex-mobile\"\r\n [selectedDateRange]=\"selectedDateFilterValue\"\r\n (selectedDate)=\"getSelectedDate($event)\"\r\n [(ngModel)]=\"selectedDateRange\"\r\n ></app-date-range-picker>\r\n <!-- <img src=\"../../../../assets/images/ic_calender.svg\" alt=\"calender\" class=\"date-icon\"> -->\r\n </div>\r\n <ng-container *ngIf=\"isDesktop; else filterMobile\">\r\n <div class=\"btn-group\">\r\n <button\r\n class=\"btn custom-dropdown-btn position-relative\"\r\n type=\"button\"\r\n id=\"orderState\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n aria-expanded=\"false\"\r\n >\r\n Order State\r\n <i class=\"fas fa-chevron-down custom-arrow-down\"></i>\r\n </button>\r\n <div class=\"dropdown-menu\" aria-labelledby=\"orderState\">\r\n <label class=\"dropdownItem\" *ngFor=\"let data of orderStates\">\r\n <input\r\n type=\"checkbox\"\r\n name=\"dropdown-group\"\r\n class=\"rounded-0\"\r\n id=\"orderStateLabel\"\r\n [value]=\"data.value\"\r\n [checked]=\"getCheckedOrderStatuses(data)\"\r\n (change)=\"\r\n checkOrderStatus($event, {\r\n key: 'orderState',\r\n value: data.key,\r\n name: data.value\r\n })\r\n \"\r\n />\r\n {{ data.name }}\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"btn-group\">\r\n <button\r\n class=\"btn custom-dropdown-btn position-relative\"\r\n type=\"button\"\r\n id=\"deliveryType\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n aria-expanded=\"false\"\r\n >\r\n Delivery Type\r\n <i class=\"fas fa-chevron-down custom-arrow-down\"></i>\r\n </button>\r\n <div class=\"dropdown-menu\" aria-labelledby=\"deliveryType\">\r\n <label class=\"dropdownItem\" *ngFor=\"let data of deliveryTypes\">\r\n <input\r\n type=\"checkbox\"\r\n name=\"dropdown-group\"\r\n class=\"rounded-0\"\r\n id=\"deliveryTypeLabel\"\r\n [value]=\"data.value\"\r\n [checked]=\"getCheckedOrderStatuses(data)\"\r\n (change)=\"\r\n checkOrderStatus($event, {\r\n key: 'deliveryType',\r\n value: data.key,\r\n name: data.value\r\n })\r\n \"\r\n />\r\n {{ data.name }}\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"btn-group\">\r\n <button\r\n class=\"btn custom-dropdown-btn position-relative\"\r\n type=\"button\"\r\n id=\"orderStatus\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n aria-expanded=\"false\"\r\n >\r\n Order Status\r\n <i class=\"fas fa-chevron-down custom-arrow-down\"></i>\r\n </button>\r\n <div class=\"dropdown-menu\" aria-labelledby=\"orderStatus\">\r\n <label class=\"dropdownItem\" *ngFor=\"let data of orderStatuses\">\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"getCheckedOrderStatuses(data)\"\r\n name=\"dropdown-group\"\r\n class=\"rounded-0\"\r\n id=\"orderStatusLabel\"\r\n [value]=\"data.value\"\r\n (change)=\"\r\n checkOrderStatus($event, {\r\n key: 'orderStatuses',\r\n value: data.key,\r\n name: data.value\r\n })\r\n \"\r\n />\r\n {{ data.name }}\r\n </label>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"chips-block\" *ngIf=\"selectedOrderState.length > 0\">\r\n <ng-container\r\n *ngIf=\"selectedOrderState && selectedOrderState.length > 0\"\r\n >\r\n <div class=\"chips\" *ngFor=\"let data of selectedOrderState\">\r\n <p class=\"chip-title\">\r\n {{\r\n data.key == \"orderStatuses\"\r\n ? \"Order Status\"\r\n : data.key == \"orderState\"\r\n ? \"Order State\"\r\n : data.key == \"orderDate\"\r\n ? \"Order\"\r\n : data.key == \"deliveryDate\"\r\n ? \"Delivery\"\r\n : \"Delivery Type\"\r\n }}\r\n :\r\n </p>\r\n <span class=\"chip-content ml-1\">{{ data.name }}</span>\r\n <i\r\n class=\"fas fa-times-circle ml-3 close-icon\"\r\n (click)=\"removeChips(data)\"\r\n ></i>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <ng-template #filterMobile>\r\n <button\r\n type=\"button\"\r\n class=\"btn dimond-secondary-btn filter-btn\"\r\n data-toggle=\"modal\"\r\n data-target=\"#filterModal\"\r\n >\r\n More Filters\r\n </button>\r\n </ng-template>\r\n </div>\r\n\r\n <hr />\r\n <!-- Filter Modal-->\r\n <div\r\n class=\"modal fade modal-right\"\r\n id=\"filterModal\"\r\n role=\"dialog\"\r\n aria-labelledby=\"inviteMemberLabel\"\r\n aria-hidden=\"true\"\r\n >\r\n <div class=\"modal-dialog modal-lg\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h5 class=\"modal-title\"></h5>\r\n <i\r\n class=\"icon-close invite-pop-close\"\r\n (click)=\"clearAll()\"\r\n #closeInviteModal\r\n data-dismiss=\"modal\"\r\n aria-label=\"Close\"\r\n ></i>\r\n </div>\r\n <div class=\"modal-body\">\r\n <div class=\"d-flex justify-content-between main-view\">\r\n <div class=\"filter-head\">\r\n <h3>Filters</h3>\r\n </div>\r\n <a\r\n href=\"javascript:void(0)\"\r\n (click)=\"clearAll()\"\r\n class=\"clearAll\"\r\n >\r\n <u>Clear all</u></a\r\n >\r\n </div>\r\n <div id=\"main\">\r\n <div class=\"container\">\r\n <div class=\"accordion\" id=\"faq\">\r\n <div class=\"card\">\r\n <div class=\"card-header\" id=\"faqhead1\">\r\n <a\r\n href=\"#\"\r\n class=\"btn btn-header-link\"\r\n data-toggle=\"collapse\"\r\n data-target=\"#faq1\"\r\n aria-expanded=\"true\"\r\n aria-controls=\"faq1\"\r\n >Order State</a\r\n >\r\n </div>\r\n\r\n <div\r\n id=\"faq1\"\r\n class=\"collapse show\"\r\n aria-labelledby=\"faqhead1\"\r\n data-parent=\"#faq\"\r\n >\r\n <div class=\"card-body\">\r\n <label\r\n class=\"dropdownItem\"\r\n *ngFor=\"let data of orderStates\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n name=\"dropdown-group\"\r\n class=\"rounded-0\"\r\n id=\"orderStateLabel\"\r\n [value]=\"data.value\"\r\n [checked]=\"getCheckedOrderStatuses(data)\"\r\n (change)=\"\r\n checkOrderStatus(\r\n $event,\r\n {\r\n key: 'orderState',\r\n value: data.key,\r\n name: data.value\r\n },\r\n 'mobile'\r\n )\r\n \"\r\n />\r\n {{ data.name }}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card\">\r\n <div class=\"card-header\" id=\"faqhead2\">\r\n <a\r\n href=\"#\"\r\n class=\"btn btn-header-link collapsed\"\r\n data-toggle=\"collapse\"\r\n data-target=\"#faq2\"\r\n aria-expanded=\"true\"\r\n aria-controls=\"faq2\"\r\n >Delivery Type</a\r\n >\r\n </div>\r\n\r\n <div\r\n id=\"faq2\"\r\n class=\"collapse\"\r\n aria-labelledby=\"faqhead2\"\r\n data-parent=\"#faq\"\r\n >\r\n <div class=\"card-body\">\r\n <label\r\n class=\"dropdownItem\"\r\n *ngFor=\"let data of deliveryTypes\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n name=\"dropdown-group\"\r\n class=\"rounded-0\"\r\n id=\"deliveryTypeLabel\"\r\n [value]=\"data.value\"\r\n [checked]=\"getCheckedOrderStatuses(data)\"\r\n (change)=\"\r\n checkOrderStatus(\r\n $event,\r\n {\r\n key: 'deliveryType',\r\n value: data.key,\r\n name: data.value\r\n },\r\n 'mobile'\r\n )\r\n \"\r\n />\r\n {{ data.name }}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card\">\r\n <div class=\"card-header\" id=\"faqhead3\">\r\n <a\r\n href=\"#\"\r\n class=\"btn btn-header-link collapsed\"\r\n data-toggle=\"collapse\"\r\n data-target=\"#faq3\"\r\n aria-expanded=\"true\"\r\n aria-controls=\"faq3\"\r\n >Order Status</a\r\n >\r\n </div>\r\n\r\n <div\r\n id=\"faq3\"\r\n class=\"collapse\"\r\n aria-labelledby=\"faqhead3\"\r\n data-parent=\"#faq\"\r\n >\r\n <div class=\"card-body\">\r\n <label\r\n class=\"dropdownItem\"\r\n *ngFor=\"let data of orderStatuses\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"getCheckedOrderStatuses(data)\"\r\n name=\"dropdown-group\"\r\n class=\"rounded-0\"\r\n id=\"orderStatusLabel\"\r\n [value]=\"data.value\"\r\n (change)=\"\r\n checkOrderStatus(\r\n $event,\r\n {\r\n key: 'orderStatuses',\r\n value: data.key,\r\n name: data.value\r\n },\r\n 'mobile'\r\n )\r\n \"\r\n />\r\n {{ data.name }}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"d-lg-flex d-sm-block justify-content-end d-block fixed-bottom\"\r\n >\r\n <button\r\n type=\"button\"\r\n data-dismiss=\"modal\"\r\n (click)=\"clearAll()\"\r\n class=\"btn mobile-cancel-btn dimond-secondary-btn mr-lg-5\"\r\n >\r\n Cancel\r\n </button>\r\n <button\r\n type=\"submit\"\r\n data-dismiss=\"modal\"\r\n class=\"btn mobile-save-btn dimond-primary-btn float-right\"\r\n (click)=\"onSubmit()\"\r\n >\r\n Apply\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- NO SEARCH RESULTS -->\r\n <ng-container *ngIf=\"noSearchResults\">\r\n <div class=\"noResults text-center\">\r\n <div class=\"row\">\r\n <div class=\"col-sm-12 col-md-12 col-12\">\r\n <div\r\n class=\"text-center\"\r\n [innerHTML]=\"\r\n noSearchResultContent\r\n ? noSearchResultContent\r\n : 'No Results Found !'\r\n \"\r\n ></div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"order-history-table\" *ngIf=\"orderHistoryLists.length > 0\">\r\n <span class=\"total-order\">{{ totalResults }} orders found</span>\r\n <div class=\"d-flex justify-content-between py-3\">\r\n <div>\r\n <div class=\"btn-group\">\r\n <select name=\"\" id=\"\" class=\"mr-3\" (change)=\"sortBy($event)\">\r\n <option\r\n value=\"{{ option.code }}\"\r\n *ngFor=\"let option of orderSortLists\"\r\n >\r\n {{ option.value }}\r\n </option>\r\n </select>\r\n </div>\r\n <!-- <div class=\"btn-group\">\r\n <button class=\"btn history-table-dropdown position-relative\" type=\"button\" id=\"orderStatus\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\r\n Optional column\r\n <i class=\"fas fa-chevron-down custom-arrow-down\"></i>\r\n </button>\r\n <div class=\"dropdown-menu\" aria-labelledby=\"orderStatus\">\r\n <label class=\"dropdownItem\" *ngFor=\"let data of optionalColumns\">\r\n <input type=\"checkbox\"\r\n name=\"dropdown-group\" class=\"rounded-0\"\r\n [value]=\"data.value\" />\r\n {{data.name}}\r\n </label>\r\n </div>\r\n </div> -->\r\n </div>\r\n <div>\r\n <div class=\"main-view\" *ngIf=\"isDesktop\">\r\n <button\r\n [ngClass]=\"{ active: listview === false }\"\r\n class=\"btn btn-sm\"\r\n (click)=\"toggleGridOrListView($event)\"\r\n >\r\n <img\r\n *ngIf=\"listview === false\"\r\n src=\"../../../assets/images/Grid-light.svg\"\r\n alt=\"gridviewlight\"\r\n />\r\n <img\r\n *ngIf=\"listview === true\"\r\n src=\"../../../assets/images/Grid-dark.svg\"\r\n alt=\"gridviewdark\"\r\n />\r\n Grid\r\n </button>\r\n <button\r\n [ngClass]=\"{ active: listview === true }\"\r\n class=\"btn btn-sm active\"\r\n (click)=\"toggleGridOrListView($event)\"\r\n >\r\n <img\r\n *ngIf=\"listview === true\"\r\n class=\"list-img\"\r\n src=\"../../../assets/images/List-light.svg\"\r\n alt=\"listview\"\r\n />\r\n <img\r\n *ngIf=\"listview === false\"\r\n class=\"list-img\"\r\n src=\"../../../assets/images/List-dark.svg\"\r\n alt=\"listview\"\r\n />\r\n List\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- ORDER HISTORY LIST -->\r\n <div\r\n class=\"list-view table-responsive\"\r\n *ngIf=\"listview && isDesktop && orderHistoryLists.length > 0\"\r\n >\r\n <table class=\"table order-list-table\">\r\n <thead>\r\n <tr>\r\n <th scope=\"col\">\r\n Order #\r\n <span\r\n class=\"info-icon d-inline-block ml-1\"\r\n ngbTooltip=\"{{ orderTooltipContent }}\"\r\n placement=\"bottom\"\r\n ></span>\r\n </th>\r\n <th scope=\"col\">\r\n Po #\r\n <span\r\n class=\"info-icon d-inline-block ml-1\"\r\n ngbTooltip=\"{{ poTooltipContent }}\"\r\n placement=\"bottom\"\r\n ></span>\r\n </th>\r\n <th scope=\"col\">\r\n Order Date\r\n <span\r\n class=\"info-icon d-inline-block ml-1\"\r\n ngbTooltip=\"{{ orderDateTooltipContent }}\"\r\n placement=\"bottom\"\r\n ></span>\r\n </th>\r\n <th scope=\"col\">\r\n Delivery Type\r\n <span\r\n class=\"info-icon d-inline-block ml-1\"\r\n ngbTooltip=\"{{ deliveryTypeTooltipContent }}\"\r\n placement=\"bottom\"\r\n ></span>\r\n </th>\r\n <th scope=\"col\">\r\n Delivery Dates\r\n <span\r\n class=\"info-icon d-inline-block ml-1\"\r\n ngbTooltip=\"{{ deliveryDateTooltipContent }}\"\r\n placement=\"bottom\"\r\n ></span>\r\n </th>\r\n <th scope=\"col\">\r\n Delivery Address\r\n <span\r\n class=\"info-icon d-inline-block ml-1\"\r\n ngbTooltip=\"{{ deliveryAddressTooltipContent }}\"\r\n placement=\"bottom\"\r\n ></span>\r\n </th>\r\n <th scope=\"col\">\r\n Total Price<span class=\"gst-text\">excl GST</span>\r\n <span\r\n class=\"info-icon d-inline-block ml-1\"\r\n ngbTooltip=\"{{ totalPriceTooltipContent }}\"\r\n placement=\"bottom\"\r\n ></span>\r\n </th>\r\n <th scope=\"col\">\r\n Status\r\n <span\r\n class=\"info-icon d-inline-block ml-1\"\r\n ngbTooltip=\"{{ statusTooltipContent }}\"\r\n placement=\"bottom\"\r\n ></span>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let orders of orderHistoryLists\">\r\n <td\r\n (contextmenu)=\"onRightClick($event, orders.code)\"\r\n style=\"padding-bottom: 20px\"\r\n [id]=\"'id-' + orders.code\"\r\n >\r\n <a\r\n href=\"javascript:void(0)\"\r\n (click)=\"orderNumberClicked(orders.code, false)\"\r\n >{{ orders?.code }}</a\r\n >\r\n </td>\r\n <td>{{ orders?.purchaseOrderNumber }}</td>\r\n <td>{{ orders?.placed | date : \"dd/MM/yyyy\" }}</td>\r\n <td>{{ orders?.deliveryMode?.name }}</td>\r\n <td>\r\n <ng-container *ngIf=\"orders?.isSameDate; else notMatch\">\r\n {{ orders?.maxDeliveryDate | date : \"dd/MM/yyyy\" }}\r\n </ng-container>\r\n <ng-template #notMatch>\r\n {{ orders?.minDeliveryDate | date : \"dd/MM/yyyy\" }} -\r\n {{ orders?.maxDeliveryDate | date : \"dd/MM/yyyy\" }}\r\n </ng-template>\r\n </td>\r\n <td class=\"ellipsis\">\r\n {{ orders?.deliveryAddress?.formattedAddress }}\r\n </td>\r\n <td class=\"price-bold\">{{ orders?.total?.formattedValue }}</td>\r\n <td>\r\n <app-slider-progress [sliderData]=\"orders\"></app-slider-progress>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <!-- ORDER HISTORY GRID -->\r\n <div\r\n class=\"row grid-view\"\r\n *ngIf=\"(!listview || !isDesktop) && orderHistoryLists.length > 0\"\r\n >\r\n <div\r\n class=\"col-lg-3 col-md-6 col-sm-12 col-12\"\r\n *ngFor=\"let orders of orderHistoryLists\"\r\n >\r\n <div class=\"grid-tile\">\r\n <div class=\"grid-top\">\r\n <table>\r\n <tr>\r\n <th>Order #:</th>\r\n <td\r\n (contextmenu)=\"onRightClick($event, orders.code)\"\r\n [id]=\"'id-' + orders.code\"\r\n >\r\n <a (click)=\"orderNumberClicked(orders.code, false)\">{{\r\n orders?.code\r\n }}</a>\r\n </td>\r\n </tr>\r\n <tr>\r\n <th>PO #:</th>\r\n <td>{{ orders?.purchaseOrderNumber }}</td>\r\n </tr>\r\n </table>\r\n </div>\r\n <div class=\"grid-middle\">\r\n <table>\r\n <tr>\r\n <th>Delivery Type:</th>\r\n <td>{{ orders?.deliveryMode?.name }}</td>\r\n </tr>\r\n <tr>\r\n <th>Delivery Dates:</th>\r\n <td>\r\n <ng-container *ngIf=\"orders?.isSameDate; else notMatch\">\r\n {{ orders?.maxDeliveryDate | date : \"dd/MM/yyyy\" }}\r\n </ng-container>\r\n <ng-template #notMatch>\r\n {{ orders?.minDeliveryDate | date : \"dd/MM/yyyy\" }} -\r\n {{ orders?.maxDeliveryDate | date : \"dd/MM/yyyy\" }}\r\n </ng-template>\r\n <span *ngIf=\"!isMobile\"\r\n class=\"info-icon d-inline-block ml-1\"\r\n ngbTooltip=\"Status Information\"\r\n placement=\"bottom\"\r\n ></span>\r\n </td>\r\n </tr>\r\n <tr>\r\n <th>Order Date:</th>\r\n <td>{{ orders?.placed | customDatePipe : \"dd/MM/yy\" }}</td>\r\n </tr>\r\n <tr>\r\n <th>Address:</th>\r\n <td>{{ orders?.deliveryAddress?.formattedAddress }}</td>\r\n </tr>\r\n <tr>\r\n <th>Total Price:</th>\r\n <td class=\"price-bold\">\r\n {{ orders?.total?.formattedValue\r\n }}<span class=\"gst-text\">excl GST</span>\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n <div class=\"grid-bottom\">\r\n <p>\r\n Status:\r\n <span *ngIf=\"!isMobile\"\r\n class=\"info-icon d-inline-block ml-1\"\r\n ngbTooltip=\"Status Information\"\r\n placement=\"bottom\"\r\n ></span>\r\n </p>\r\n <div class=\"pb-3 mb-3\" [ngClass]=\"{'pt-4 mt-4' : orders?.maxLineStatus}\" >\r\n <app-slider-progress [sliderData]=\"orders\"></app-slider-progress>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div\r\n style=\"visibility: hidden; position: fixed\"\r\n [style.left.px]=\"menuTopLeftPosition.x\"\r\n [style.top.px]=\"menuTopLeftPosition.y\"\r\n [matMenuTriggerFor]=\"rightMenu\"\r\n ></div>\r\n\r\n <mat-menu #rightMenu=\"matMenu\">\r\n <div matMenuContent *ngFor=\"let item of items\">\r\n <button (click)=\"orderNumberClicked(item, true)\" mat-menu-item>\r\n Open Order in new tab\r\n </button>\r\n </div>\r\n </mat-menu>\r\n <ng-container *ngIf=\"loaderImage | async\">\r\n <div class=\"col-sm-12 mx-auto text-center mb-4\">\r\n <span class=\"product-loader\">\r\n <i class=\"loader-icon fas fa-spinner fa-pulse\"></i>\r\n <span class=\"loader-text\">loading….</span>\r\n </span>\r\n </div>\r\n </ng-container>\r\n <!-- NO ORDER HISTORY -->\r\n <ng-container *ngIf=\"dataAvailale == 'noData'\">\r\n <div class=\"row empty-orderpage-container\">\r\n <div class=\"col-sm-12 col-md-10 col-lg-10 m-auto\">\r\n <div class=\"text-center\" [innerHTML]=\"noOrderHistoryData\"></div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n","import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CustomOrderHistoryComponent } from './custom-order-history.component';\r\nimport { CmsConfig, provideDefaultConfig } from '@spartacus/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\r\nimport { SharedComponentsModule } from '../shared/shared-components.module';\r\nimport { AuthModule } from '@auth0/auth0-angular';\r\nimport { CartService } from '../services/cart.service';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { SliderProgressComponent } from './slider-progress/slider-progress.component';\r\n\r\nlet sharedData: any = {};\r\nconst listOfModules: any = [SharedComponentsModule,];\r\n\r\n@NgModule({\r\n declarations: [\r\n CustomOrderHistoryComponent,\r\n SliderProgressComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatMenuModule,\r\n SharedComponentsModule,\r\n FormsModule,\r\n NgbModule,\r\n listOfModules,\r\n ReactiveFormsModule,\r\n InfiniteScrollModule\r\n ],\r\n providers: [\r\n provideDefaultConfig(<CmsConfig>{\r\n cmsComponents: {\r\n OrderHistoryListComponent: {\r\n component: CustomOrderHistoryComponent\r\n },\r\n },\r\n }),\r\n ],\r\n})\r\nexport class CustomOrderHistoryModule {\r\n \r\n \r\n constructor(@Optional() @SkipSelf() parentModule?: CustomOrderHistoryModule) {\r\n if (parentModule) {\r\n throw new Error(\r\n 'TeamModule is already loaded. Import it in the AppModule only');\r\n }\r\n }\r\n\r\n public static forRoot(environment: any): ModuleWithProviders<CustomOrderHistoryModule> {\r\n localStorage.setItem('envUrl', environment.occBaseUrl + environment.baseSiteId);\r\n sessionStorage.setItem('env', JSON.stringify(environment) );\r\n sharedData = environment;\r\n listOfModules.push(AuthModule.forRoot({\r\n domain: sharedData.auth0Domain,\r\n clientId: sharedData.auth0Client_id,\r\n redirect_uri: sharedData.UIsiteURl\r\n }))\r\n return {\r\n ngModule: CustomOrderHistoryModule,\r\n providers: [\r\n CartService\r\n ]\r\n };\r\n\r\n }\r\n }\r\n","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { GET_INVOICE_CREDIT_SEARCH_RESULTS, GET_INVOICE_CREDIT_STATUSES, INVOICE_CREDIT_SORTING_ENDPOINT, MYACCOUNT_GET_INVOICE_CREDIT } from './endPointURL';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MyAccountService {\r\n constructor(private http: HttpClient) { }\r\n public setOrderNumber(orderNumber: string) {\r\n sessionStorage.setItem('orderNumber', orderNumber);\r\n }\r\n public getOrderNumber() {\r\n return sessionStorage.getItem('orderNumber');;\r\n }\r\n public getInvoicesCreditList(data?: any, currentPage?: any): Observable<any> {\r\n let url = MYACCOUNT_GET_INVOICE_CREDIT.url;\r\n let params = new HttpParams();\r\n params = params.set(\"currentPage\", currentPage)\r\n return this.http.post(url, data, { params: params }) as Observable<any>;\r\n }\r\n\r\n public sortInvoiceCredit(data: any, reqPayload: any): Observable<any> {\r\n let url = INVOICE_CREDIT_SORTING_ENDPOINT.url + data;\r\n return this.http.post(url, reqPayload, {\r\n headers: { 'Content-Type': 'application/json' },\r\n })\r\n .pipe(\r\n catchError((errorRes) => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n\r\n public getInvoiceCreditStatuses(): Observable<any> {\r\n let url = GET_INVOICE_CREDIT_STATUSES.url;\r\n return this.http\r\n .get(url, {\r\n headers: { 'Content-Type': 'application/json' },\r\n })\r\n .pipe(\r\n catchError((errorRes) => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n\r\n public getInvoiceCreditSearchResults(data: any,currentPage?: any): Observable<any> {\r\n let params = new HttpParams();\r\n params = params.set(\"currentPage\", currentPage)\r\n let url = GET_INVOICE_CREDIT_SEARCH_RESULTS.url;\r\n return this.http.post(url, data, { params: params })\r\n .pipe(\r\n catchError((errorRes) => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n\r\n public getStatementsList(data: any, currentPage?: any): Observable<any> {\r\n let url = GET_INVOICE_CREDIT_SEARCH_RESULTS.url;\r\n let params = new HttpParams();\r\n params = params.set(\"currentPage\", currentPage)\r\n return this.http.post(url, data, { params: params }) as Observable<any>;\r\n }\r\n\r\n}\r\n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { CartService } from '../../services/cart.service';\r\n\r\n@Component({\r\n selector: 'app-order-detail-list',\r\n templateUrl: './order-detail-list.component.html',\r\n styleUrls: ['./order-detail-list.component.scss']\r\n})\r\nexport class OrderDetailListComponent implements OnInit, OnChanges {\r\n\r\n showDetails: any = [];\r\n @Input() cartDetails: any=[];\r\n @Input() sortByVal: any;\r\n showWaitCursor = new BehaviorSubject<boolean>(false);\r\n @Input() orderDate:any;\r\n @Input() isCardData: any;\r\n noRecord?:string;\r\n imageModalSrc: any;\r\n environment: any = sessionStorage.getItem('env');\r\n env : any = JSON.parse(this.environment);\r\n constructor(private cartService: CartService,\r\n private cdr: ChangeDetectorRef,) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\nngOnChanges(changes: SimpleChanges): void {\r\n if (!changes.cartDetails.firstChange) {\r\n this.cdr.detectChanges();\r\n }\r\n this.showWaitCursor.next(true);\r\n if(this.cartDetails?.length){\r\n this.showWaitCursor.next(false)\r\n }else{\r\n this.showWaitCursor.next(false)\r\n this.noRecord='No data';\r\n }\r\n for (let i = 0; i < this.cartDetails.length; i++) {\r\n this.showDetails.push(false);\r\n }\r\n this.cartService.expandAll.subscribe((data) => {\r\n for (let i = 0; i < this.cartDetails.length; i++) {\r\n this.showDetails[i] = data;\r\n }\r\n });\r\n}\r\n // Get the Image Details based on Products\r\n getImageDetails(cartDetails: any, thumbnail: any = true): any {\r\n let imageUrl: any = cartDetails?.product?.images;\r\n if (this.isCardData) {\r\n imageUrl = cartDetails?.product?.images;\r\n } else {\r\n imageUrl = cartDetails?.product?.images?.PRIMARY?.cartIcon;\r\n }\r\n let srcUrl: any;\r\n if (\r\n cartDetails?.attachments &&\r\n cartDetails?.attachments?.length &&\r\n cartDetails?.product?.flashingProduct\r\n ) {\r\n srcUrl =\r\n thumbnail && cartDetails?.attachments?.length > 1\r\n ? cartDetails?.attachments[1]?.downloadURL\r\n : cartDetails?.attachments[0]?.downloadURL;\r\n imageUrl = {\r\n url: (\r\n this.env.occBaseUrl.slice(0, this.env.occBaseUrl.length - 1) +\r\n srcUrl\r\n )?.replace('&attachment=true', ''),\r\n };\r\n }\r\n return imageUrl;\r\n }\r\n showHide(ind: number) {\r\n this.showDetails[ind] = !this.showDetails[ind];\r\n }\r\n viewImage(event: any, cartDetails: any): void {\r\n event.preventDefault();\r\n this.imageModalSrc = this.getImageDetails(cartDetails, false)?.url;\r\n }\r\n \r\n getPdfLink(cartDetails: any): void {\r\n return this.getImageDetails(cartDetails, false)?.url;\r\n }\r\n\r\n hasImage(cartDetails: any): boolean {\r\n const mimeType = cartDetails?.attachments[0]?.mime;\r\n const mimeArray = [\"image/png\", \"image/jpg\", \"image/jpeg\"];\r\n return mimeArray.includes(mimeType);\r\n }\r\n\r\n}\r\n","<div class=\"loading\" *ngIf=\"showWaitCursor | async \">Loading&#8230;</div>\r\n<div class=\"revieworder-table-container py-3\">\r\n <table class=\"w-100 table\">\r\n <tr class=\"revieworder-header-container\">\r\n <th>#</th>\r\n <th class=\"item\">ITEM</th>\r\n <th>JOB REFERENCE</th>\r\n <th>DELIVERY DATE</th>\r\n <!-- <th>DELIVERY #</th> -->\r\n <th>QUANTITY ORDERED</th>\r\n <!-- <th>QUANTITY SHIPPED</th> -->\r\n <th class=\"colHD\"><div class=\"text-right\">TOTAL PRICE</div> <span class=\"text-right\">excl GST</span></th>\r\n <th>STATUS</th>\r\n </tr>\r\n <ng-container *ngIf=\"cartDetails.length; else nodata\">\r\n <ng-container *ngFor=\"let cart of cartDetails;let i = index\">\r\n <tr class=\"revieworder-body-container\" [ngClass]=\"cart?.configurationInfos.length ? '' : 'borderNew' \">\r\n <td>\r\n <ng-container *ngIf=\"cart.entryNumber.length>9; else entryId\">{{cart.entryNumber}}</ng-container>\r\n <ng-template #entryId>0{{cart.entryNumber+1}}</ng-template>\r\n </td>\r\n <td>\r\n <div class=\"row product-image-container\">\r\n <div class=\"col-sm-4 col-lg-2 p-2 product-img\">\r\n <ng-container\r\n *ngIf=\"\r\n cartDetails[i]?.product?.flashingProduct;\r\n else normalImage\r\n \"\r\n >\r\n <a data-toggle=\"modal\" class=\"flashing-expand\" (click)=\"viewImage($event,cartDetails[i])\" [attr.data-target]=\"'#imageModal'\" *ngIf=\"hasImage(cartDetails[i]);else hasPdf\">\r\n <cx-media\r\n [container]=\"getImageDetails(cartDetails[i])\"\r\n format=\"cartIcon\"\r\n role=\"presentation\"\r\n ></cx-media>\r\n </a>\r\n <ng-template #hasPdf>\r\n <a class=\"flashing-expand flashing-open\" [href]=\"getPdfLink(cartDetails[i])\" target=\"_blank\">\r\n <img class=\"pdf-icon\" src=\"../../../../../assets/images/pdf-icon.svg\" alt=\"Click to open PDF\" title=\"Click to open PDF\" />\r\n </a>\r\n </ng-template>\r\n </ng-container>\r\n <ng-template #normalImage>\r\n <cx-media\r\n [container]=\"getImageDetails(cartDetails[i])\"\r\n format=\"cartIcon\"\r\n role=\"presentation\"\r\n ></cx-media>\r\n </ng-template>\r\n </div>\r\n <div class=\"col-sm-8 col-lg-10\">\r\n <p class=\"reviewproduct-name mb-2\">{{cart?.product?.name}}</p>\r\n <p class=\"sku-text mb-0\">SKU: {{cart?.product?.code }}</p>\r\n </div>\r\n </div>\r\n </td>\r\n <td>{{cart?.jobReference || '-'}}</td>\r\n <td>{{orderDate | date:\"dd/MM/yyyy\"}}</td>\r\n <td>{{cart.quantityDouble}}{{cart?.totalPrice?.unitType}}<br>\r\n <span class=\"subPrice\">@ {{cart?.totalPrice?.formattedValue}}/{{cart?.totalPrice?.unitType}}</span></td>\r\n <td>{{cart?.totalPrice?.formattedValue}} <span class=\"d-block\">excl GST</span></td>\r\n <td class=\"statusColm\">\r\n <small class=\"statusColor\"\r\n [ngStyle]=\"{'background-color':\r\n (cart?.status=='CREATED') ? ('#F3A931') :\r\n (cart?.status=='APPROVED') ? ('#f26522') :\r\n (cart?.status=='PROCESSING') ? ('#75578A') :\r\n (cart?.status=='READY') ? ('#496471') :\r\n (cart?.status=='DELIVERING') ? ('#00ACBD') :\r\n (cart?.status=='COMPLETED') ? ('#8DC440') :\r\n (cart?.status=='RETURNED') ? ('#8DC440') :\r\n (cart?.status=='CANCELLED') ? ('#000000') :\r\n ('')}\"\r\n ></small>\r\n {{cart?.statusDisplay || '-'}}\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"cart?.product?.classifications\">\r\n <tr class=\"revieworder-body-container\">\r\n <td colspan=\"9\">\r\n <span *ngFor=\"let attributes of cart?.product?.classifications[0]?.features;last as isLast\">\r\n {{attributes?.featureValues[0]?.value }} <span *ngIf=\"!isLast\"> | </span>\r\n </span>\r\n mm\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <tr class=\"revieworder-body-container\" *ngIf=\"cart?.configurationInfos.length\" [ngClass]=\"cart?.configurationInfos.length ? 'borderNew' : '' \">\r\n <td colspan=\"9\">\r\n <p class=\"colors-paragraph mb-0\">\r\n <span class=\"revieworder-color mr-3\"\r\n [ngStyle]=\"{ background: cart?.configurationInfos[0]?.configurationValue.split('|') | slice:2}\"></span>\r\n {{cart?.configurationInfos[0]?.configurationValue.split('|') | slice:1:2}}\r\n </p> \r\n <ng-container *ngIf=\"cart?.subLineConfigInfos.length>0\">\r\n <p class=\"m-0\">\r\n <a href=\"javascript:void(0)\" (click)=\"showHide(i)\" class=\"see-more-link\">\r\n {{showDetails[i] == true ? 'Hide' : 'See'}} more details\r\n </a>\r\n </p>\r\n <div class=\"revieworder-collapse\" *ngIf=\"showDetails[i]\">\r\n <div class=\"row\">\r\n <div class=\"col-sm-6 bundle-details\">\r\n <div class=\"row bundle-details-header\">\r\n <div class=\"col-3\">Quantity</div>\r\n <div class=\"col-3\">Length (LM)</div>\r\n <ng-container *ngIf=\"cart?.subLineConfigInfos[i]?.bundleName\">\r\n <div class=\"col-3\">Bundle</div>\r\n <div class=\"col-3\">Reference</div>\r\n </ng-container>\r\n </div>\r\n <div class=\"row\" *ngFor=\"let subLine of cart?.subLineConfigInfos\">\r\n <div class=\"col-3\">{{subLine?.quantity}}</div>\r\n <div class=\"col-3\">{{subLine?.length | number:'0.3-3'}}</div>\r\n <ng-container *ngIf=\"subLine?.bundleName\">\r\n <div class=\"col-3\">{{subLine?.bundleName}}</div>\r\n <div class=\"col-3\">{{subLine?.reference}}</div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td colspan=\"9\" class=\"p-0\">\r\n <div *ngIf=\"cartDetails[i]?.product?.flashingProduct && cartDetails[i]?.productConfiguredInfos\">\r\n <div class=\"flashing-block \" *ngFor=\"let data of cartDetails[i]?.productConfiguredInfos\">\r\n <div class=\"row\">\r\n <div class=\"col-sm-3\">\r\n <h3 class=\"flash-title\">{{ data?.product?.name }}</h3>\r\n <h6 class=\"skuId\">SKU: {{ data?.product?.code }}</h6>\r\n <span *ngIf=\"data?.girth\">Grith: +{{data.girth}}mm </span>\r\n </div>\r\n <div class=\"offset-sm-3 col-sm-2\">\r\n {{data?.quantityDouble}}{{data?.unitType}}\r\n </div>\r\n <div class=\"col-sm-2\">\r\n {{data?.basePrice?.formattedValue}}/{{data?.unitType}}\r\n </div>\r\n <div class=\"col-sm-2\">\r\n {{data?.totalPrice?.formattedValue}}\r\n <span class=\"gst-text\">excl GST</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #nodata>\r\n <tr class=\"revieworder-body-container\">\r\n <td colspan=\"7\" class=\"text-center\">{{noRecord}}</td>\r\n </tr>\r\n </ng-template>\r\n \r\n </table>\r\n\r\n\r\n</div>\r\n<div class=\"modal fade\" id=\"imageModal\" role=\"dialog\" aria-labelledby=\"imageModal\" aria-hidden=\"true\" #imageModal>\r\n <div class=\"modal-dialog modal-lg\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <i class=\"icon-close invite-pop-close\" #closeInviteModal data-dismiss=\"modal\" aria-label=\"Close\"></i>\r\n </div>\r\n <div class=\"modal-body m-4\">\r\n <img [src]=\"imageModalSrc\" alt=\"alert\" />\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { ChangeDetectorRef, Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { CartService } from '../../services/cart.service';\r\n\r\n@Component({\r\n selector: 'app-order-detail-grid',\r\n templateUrl: './order-detail-grid.component.html',\r\n styleUrls: ['./order-detail-grid.component.scss']\r\n})\r\nexport class OrderDetailGridComponent implements OnInit, OnChanges {\r\n showDetails: any = [];\r\n arrowUpDown:any=[];\r\n @Input() sortByVal: any;\r\n showWaitCursor = new BehaviorSubject<boolean>(false);\r\n\r\n @Input() cartDetails: any=[];\r\n @Input() orderDate:any;\r\n @Input() isCardData: any;\r\n noRecord?:string;\r\n imageModalSrc: any;\r\n environment: any = sessionStorage.getItem('env');\r\n env : any = JSON.parse(this.environment);\r\n constructor(private cartService: CartService,\r\n private cdr: ChangeDetectorRef) { }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (!changes.cartDetails.firstChange) {\r\n this.cdr.detectChanges();\r\n }\r\n this.showWaitCursor.next(true);\r\n if(this.cartDetails?.length){\r\n this.showWaitCursor.next(false)\r\n }else{\r\n this.showWaitCursor.next(false)\r\n this.noRecord='No data';\r\n }\r\n for (let i = 0; i < this.cartDetails.length; i++) {\r\n this.showDetails.push(false);\r\n }\r\n this.cartService.expandAll.subscribe((data) => {\r\n for (let i = 0; i < this.cartDetails.length; i++) {\r\n this.showDetails[i] = data;\r\n }\r\n });\r\n this.cdr.detectChanges();\r\n }\r\n showHide(ind: number) {\r\n this.showDetails[ind] = !this.showDetails[ind];\r\n }\r\n arrowHideShow(id: number){\r\n this.arrowUpDown[id] = !this.arrowUpDown[id];\r\n }\r\n // Get the Image Details based on Products\r\n getImageDetails(cartDetails: any, thumbnail: any = true): any {\r\n let imageUrl: any = cartDetails?.product?.images;\r\n if (this.isCardData) {\r\n imageUrl = cartDetails?.product?.images;\r\n } else {\r\n imageUrl = cartDetails?.product?.images?.PRIMARY?.cartIcon;\r\n }\r\n let srcUrl: any;\r\n if (\r\n cartDetails?.attachments &&\r\n cartDetails?.attachments?.length &&\r\n cartDetails?.product?.flashingProduct\r\n ) {\r\n srcUrl =\r\n thumbnail && cartDetails?.attachments?.length > 1\r\n ? cartDetails?.attachments[1]?.downloadURL\r\n : cartDetails?.attachments[0]?.downloadURL;\r\n imageUrl = {\r\n url: (\r\n this.env.occBaseUrl.slice(0, this.env.occBaseUrl.length - 1) +\r\n srcUrl\r\n )?.replace('&attachment=true', ''),\r\n };\r\n }\r\n return imageUrl;\r\n }\r\n viewImage(event: any, cartDetails: any): void {\r\n event.preventDefault();\r\n this.imageModalSrc = this.getImageDetails(cartDetails, false)?.url;\r\n }\r\n \r\n getPdfLink(cartDetails: any): void {\r\n return this.getImageDetails(cartDetails, false)?.url;\r\n }\r\n\r\n hasImage(cartDetails: any): boolean {\r\n const mimeType = cartDetails?.attachments[0]?.mime;\r\n const mimeArray = [\"image/png\", \"image/jpg\", \"image/jpeg\"];\r\n return mimeArray.includes(mimeType);\r\n }\r\n}\r\n","<div class=\"loading \" *ngIf=\"showWaitCursor | async \">Loading&#8230;</div>\r\n<div class=\"py-3\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"cartDetails.length; else nodata\">\r\n <div class=\"col-lg-3 col-sm-6\" *ngFor=\"let cart of cartDetails;let i = index\">\r\n <div class=\"cart-grid-tile\">\r\n <div class=\"grid-tile-top position-relative\">\r\n <div class=\"d-flex justify-content-between align-items-center mb-3\">\r\n <span class=\"sku-code\">SKU:{{cart?.product?.code}}</span>\r\n <span>#{{cart.entryNumber}}</span>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-4\">\r\n <ng-container *ngIf=\"cartDetails[i]?.product?.flashingProduct;else normalImage\">\r\n <a data-toggle=\"modal\" class=\"flashing-expand\" (click)=\"viewImage($event,cartDetails[i])\"\r\n [attr.data-target]=\"'#imageModal'\" *ngIf=\"hasImage(cartDetails[i]);else hasPdf\">\r\n <cx-media [container]=\"getImageDetails(cartDetails[i])\" format=\"cartIcon\" role=\"presentation\"></cx-media>\r\n </a>\r\n <ng-template #hasPdf>\r\n <a class=\"flashing-expand flashing-open\" [href]=\"getPdfLink(cartDetails[i])\" target=\"_blank\">\r\n <img class=\"pdf-icon\" src=\"../../../../../assets/images/pdf-icon.svg\" alt=\"Click to open PDF\" title=\"Click to open PDF\" />\r\n </a>\r\n </ng-template>\r\n </ng-container>\r\n <ng-template #normalImage>\r\n <cx-media [container]=\"getImageDetails(cartDetails[i])\" format=\"cartIcon\" role=\"presentation\"></cx-media>\r\n </ng-template>\r\n </div>\r\n <div class=\"col-md-8\">\r\n <h4 class=\"productName\">{{cart?.product?.name}}</h4>\r\n </div>\r\n </div>\r\n <span class=\"expandBtn\" (click)=\"arrowHideShow(i)\">\r\n <ng-container *ngIf=\"arrowUpDown[i]==true; else arrowUp\">\r\n <i class=\"fas fa-chevron-up\"></i>\r\n </ng-container>\r\n <ng-template #arrowUp>\r\n <i class=\"fas fa-chevron-down\"></i>\r\n </ng-template>\r\n </span>\r\n </div>\r\n <ng-container *ngIf=\"arrowUpDown[i]\">\r\n <div class=\"grid-tile-middle\">\r\n <ng-container *ngIf=\"cart?.product?.classifications\">\r\n <p class=\"mt-1 mb-4 attribute\">\r\n <span *ngFor=\"let attributes of cart?.product?.classifications[0]?.features;last as isLast\">\r\n {{attributes?.featureValues[0]?.value }} <span *ngIf=\"!isLast\"> | </span>\r\n </span>\r\n mm\r\n </p>\r\n </ng-container>\r\n <ng-container *ngIf=\"cart?.subLineConfigInfos.length>0\">\r\n <a href=\"javascript:void(0)\" (click)=\"showHide(i)\" class=\"see-more-link\">\r\n {{showDetails[i] == true ? 'Hide' : 'See'}} more details\r\n </a>\r\n <div *ngIf=\"showDetails[i]\">\r\n <ng-container>\r\n <table class=\"no-border cart-details-table\">\r\n <tr>\r\n <th>Quantity</th>\r\n <th>Length (LM)</th> \r\n <th *ngIf=\"cart?.subLineConfigInfos[i]?.bundleName\">Bundle</th> \r\n </tr>\r\n <tr *ngFor=\"let subLine of cart?.subLineConfigInfos\">\r\n <td>{{subLine?.quantity}}</td>\r\n <td>{{subLine?.length | number:'0.3-3'}}</td>\r\n <td *ngIf=\"subLine?.bundleName\">{{subLine?.bundleName}}<br>{{subLine?.reference}}</td>\r\n </tr>\r\n </table>\r\n </ng-container>\r\n </div>\r\n </ng-container> \r\n </div>\r\n <div class=\"col-sm-12 mt-3\">\r\n <div class=\"row\">\r\n <ul class=\"col-12 orderInfo\">\r\n <!-- <li>\r\n <label>Delivery #:</label>\r\n <span class=\"InfoText\">-</span>\r\n </li> -->\r\n <li>\r\n <label>Qty Shipped:</label>\r\n <span class=\"InfoText\">-</span>\r\n </li>\r\n <li>\r\n <label>Delivery Date:</label>\r\n <span class=\"InfoText\"> {{orderDate | date:\"dd/MM/yyyy\"}}</span>\r\n </li>\r\n <li>\r\n <label>Status:</label>\r\n <span class=\"InfoText\">\r\n <small class=\"statusColor\"\r\n [ngStyle]=\"{'background-color':\r\n (cart?.status=='CREATED') ? ('#F3A931') :\r\n (cart?.status=='APPROVED') ? ('#f26522') :\r\n (cart?.status=='PROCESSING') ? ('#75578A') :\r\n (cart?.status=='READY') ? ('#496471') :\r\n (cart?.status=='DELIVERING') ? ('#00ACBD') :\r\n (cart?.status=='COMPLETED') ? ('#8DC440') :\r\n (cart?.status=='RETURNED') ? ('#8DC440') :\r\n (cart?.status=='CANCELLED') ? ('#000000') :\r\n ('')}\"\r\n ></small>\r\n {{cart?.statusDisplay || '-'}}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"grid-tile-bottom\">\r\n <div class=\"row\">\r\n <div class=\"col-7 border-right\">\r\n <div class=\"total-qty\">\r\n <div>\r\n <p class=\"m-0\">{{cart?.jobReference || '-'}}</p>\r\n <ng-container *ngIf=\"cart?.configurationInfos.length\">\r\n <p class=\"colors-paragraph my-2\">\r\n <span class=\"revieworder-color mr-2\"\r\n [ngStyle]=\"{ background: cart?.configurationInfos[0]?.configurationValue.split('|') | slice:2}\"></span>\r\n {{cart?.configurationInfos[0]?.configurationValue.split('|') | slice:1:2}}\r\n </p>\r\n </ng-container>\r\n </div>\r\n <span>Total Qty: {{cart.quantityDouble}}{{cart?.totalPrice?.unitType}}</span><br>\r\n <span class=\"subPrice\">@ {{cart?.totalPrice?.formattedValue}}/{{cart?.totalPrice?.unitType}}</span>\r\n </div>\r\n </div>\r\n <div class=\"col-5 px-0 d-flex flex-column\">\r\n <div class=\"total-amount text-right py-3 px-2\">\r\n <h4>{{cart?.totalPrice?.formattedValue}}</h4>\r\n <span>excl GST</span>\r\n </div>\r\n <div class=\"text-left py-3 px-2\">\r\n <span class=\"InfoText\">\r\n <small class=\"statusColor\"\r\n [ngStyle]=\"{'background-color':\r\n (cart?.status=='CREATED') ? ('#F3A931') :\r\n (cart?.status=='APPROVED') ? ('#f26522') :\r\n (cart?.status=='PROCESSING') ? ('#75578A') :\r\n (cart?.status=='READY') ? ('#496471') :\r\n (cart?.status=='DELIVERING') ? ('#00ACBD') :\r\n (cart?.status=='COMPLETED') ? ('#8DC440') :\r\n (cart?.status=='RETURNED') ? ('#8DC440') :\r\n (cart?.status=='CANCELLED') ? ('#000000') :\r\n ('')}\"\r\n ></small>\r\n {{cart?.statusDisplay ? cart?.statusDisplay : '-'}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"cartDetails[i]?.product?.flashingProduct && cartDetails[i]?.productConfiguredInfos\">\r\n <div class=\"flashing-block \" *ngFor=\"let data of cartDetails[i]?.productConfiguredInfos\">\r\n <div class=\"grid-tile-top\">\r\n <div>\r\n <h6 class=\"skuId\">SKU: {{data?.product?.code}}</h6>\r\n <h3 class=\"flash-title\">{{data?.product?.name}}</h3>\r\n <span *ngIf=\"data?.girth\">Grith: +{{data?.girth}}mm</span>\r\n </div>\r\n </div>\r\n <div class=\"grid-tile-bottom\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6 col-6 d-flex align-items-center border-right\">\r\n <div class=\"total-qty\">\r\n <div>Total Qty: {{data?.quantityDouble}}{{data?.unitType}}</div>\r\n <span>@{{data?.basePrice?.formattedValue}}/{{data?.unitType}}</span>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6 col-6 d-flex justify-content-end align-items-center text-right\">\r\n <div class=\"total-amount text-right\">\r\n <h4>{{data?.totalPrice?.formattedValue}}</h4>\r\n <span>excl GST</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-template #nodata>\r\n <div class=\"col-sm-12\">\r\n <p class=\"text-center\">{{noRecord}}</p>\r\n </div>\r\n </ng-template>\r\n </div>\r\n</div>\r\n\r\n<div class=\"modal fade\" id=\"imageModal\" role=\"dialog\" aria-labelledby=\"imageModal\" aria-hidden=\"true\" #imageModal>\r\n <div class=\"modal-dialog modal-lg\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <i class=\"icon-close invite-pop-close\" #closeInviteModal data-dismiss=\"modal\" aria-label=\"Close\"></i>\r\n </div>\r\n <div class=\"modal-body m-4\">\r\n <img [src]=\"imageModalSrc\" alt=\"alert\" />\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { SharedDownloadOrderComponent } from '../../shared/shared-download-order/shared-download-order.component';\r\n\r\n@Component({\r\n selector: 'app-download-popup',\r\n templateUrl: './download-popup.component.html',\r\n styleUrls: ['./download-popup.component.scss']\r\n})\r\nexport class DownloadPopupComponent implements OnInit {\r\n @Input() orderDetails: any;\r\n showWaitCursor = new BehaviorSubject<boolean>(false);\r\n isOrderDownload: boolean = true;\r\n @ViewChild(SharedDownloadOrderComponent) shareDownload: SharedDownloadOrderComponent | any;\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n localStorage.setItem('orderId',this.orderDetails.code);\r\n }\r\n\r\n pdfDownload(){\r\n this.shareDownload.orderPdfDownload();\r\n }\r\n}\r\n","<!-- <div class=\"loading \" *ngIf=\"showWaitCursor | async \">Loading&#8230;</div> -->\r\n<div class=\"modal-dialog\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header p-0 pb-3 mb-2\">\r\n <h4 class=\"modal-title\"> Order PDFs</h4>\r\n <i class=\"icon-close closePopup\" data-dismiss=\"modal\" aria-label=\"Close\"></i>\r\n </div>\r\n <div class=\"modal-body p-0\">\r\n <table class=\"table border-0\">\r\n <tr>\r\n <td class=\"colOne\">\r\n <p class=\"m-0 pb-0\">Order Confirmation</p><span class=\"orderDate\">{{orderDetails?.created | date:'dd/MM/yyyy'}}</span>\r\n </td>\r\n <td class=\"text-right\"> <span class=\"downloadPDF\"> \r\n <span target=\"_blank\" (click)=\"pdfDownload()\" ><img src=\"../../../../assets/images/download-icon.svg\"> PDF</span>\r\n </span>\r\n </td>\r\n </tr>\r\n <div #divRef class=\"row\">\r\n <div class=\"col-sm-12 pl-0\">\r\n <app-shared-download-order [isOrder]=\"isOrderDownload\"></app-shared-download-order> \r\n </div> \r\n </div>\r\n </table>\r\n </div>\r\n </div>\r\n</div>","import { ChangeDetectorRef, Component, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\nimport { Router, ActivatedRoute, Params } from '@angular/router';\r\nimport { CmsService } from '@spartacus/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { CommonUtils } from '../utils';\r\nimport { CartService } from '../services/cart.service';\r\nimport { MyAccountService } from '../services/my-account.service';\r\nimport { OrderHistoryService } from '../services/order-history.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-custom-order-details',\r\n templateUrl: './custom-order-details.component.html',\r\n styleUrls: ['./custom-order-details.component.scss']\r\n})\r\nexport class CustomOrderDetailsComponent implements OnInit, OnChanges {\r\n orderDetails: any;\r\n isDesktop = true;\r\n isMobile = false;\r\n isTablet = false;\r\n listview: boolean = true;\r\n isExpandAll: boolean = false;\r\n totalPrice: any;\r\n dataAvailale: any;\r\n showOrder: boolean = true;\r\n showWaitCursor = new BehaviorSubject<boolean>(true);\r\n orderId: any;\r\n orderStatuses: any = [];\r\n sortData: any = 'Item Number';\r\n statusCode?: string;\r\n filterVal: any = [];\r\n totalRecord: any = [];\r\n showPopUp: boolean = false;\r\n search: any;\r\n invoicePdfData: any;\r\n invoiceData: any;\r\n downloadData: any;\r\n orderPDFdetails: any;\r\n breadcrumbData: any = [];\r\n orderDetailsPage: boolean = true;\r\n constructor(public cmsService: CmsService,\r\n public router: Router,\r\n private route: ActivatedRoute,\r\n private orderHistoryService: OrderHistoryService,\r\n private cartService: CartService,\r\n public cd: ChangeDetectorRef,\r\n private documentsData: MyAccountService) { }\r\n sortby = ['Item Number', 'Job Reference', 'Most advanced Status', 'Least advanced Status']\r\n ngOnInit(): void {\r\n this.orderId = this.route.snapshot.params['orderCode'];\r\n this.breadcrumbData.push({ url: '/', name: 'Home' }, { url: '/my-account/orders', name: 'My Orders' }, { url: '/', name: this.orderId });\r\n this.getOrderList();\r\n this.onPageRefresh();\r\n this.getOrderStatusData();\r\n //this.getInvoiceList();\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (!changes.firstChange) {\r\n this.cd.detectChanges();\r\n }\r\n }\r\n orderPdf() {\r\n this.showPopUp = true;\r\n }\r\n invoicePdf() {\r\n this.documentsData.setOrderNumber(this.orderDetails.code);\r\n window.location.href = '/account';\r\n }\r\n getOrderList() {\r\n this.showWaitCursor.next(true);\r\n this.orderHistoryService.getOrderDetailList(this.orderId).subscribe((data: any) => {\r\n this.orderDetails = data;\r\n this.showWaitCursor.next(true);\r\n this.orderDetails.entries.forEach((element: any) => {\r\n if (element.status == 'CREATED') {\r\n element.statusCode = 'CS00';\r\n } else if (element.status == 'APPROVED') {\r\n element.statusCode = 'CS10';\r\n } else if (element.status == 'PROCESSING') {\r\n element.statusCode = 'CS20';\r\n } else if (element.status == 'READY') {\r\n element.statusCode = 'CS30';\r\n } else if (element.status == 'DELIVERING') {\r\n element.statusCode = 'CS40';\r\n } else if (element.status == 'COMPLETED') {\r\n element.statusCode = 'CS50';\r\n } else if (element.status == 'RETURNED') {\r\n element.statusCode = 'CS60';\r\n } else if (element.status == 'CANCELLED') {\r\n element.statusCode = 'CS70';\r\n }\r\n });\r\n if (this.orderDetails) {\r\n this.dataAvailale = 'hasData';\r\n this.totalRecord = this.orderDetails.entries;\r\n } else {\r\n this.dataAvailale = 'noData';\r\n }\r\n this.showWaitCursor.next(false);\r\n })\r\n }\r\n\r\n sortBy(val: any) {\r\n this.sortData = val.target.value;\r\n let sortVal = this.orderDetails.entries;\r\n if (this.sortData == 'Item Number') {\r\n sortVal.sort((a: any, b: any) => a.entryNumber - b.entryNumber);\r\n }\r\n else if (this.sortData == 'Job Reference') {\r\n sortVal.sort((a: any, b: any) => (a.jobReference.localeCompare(b.jobReference)));\r\n }\r\n else if (this.sortData == 'Most advanced Status') {\r\n sortVal.sort((a: any, b: any) => (a.statusCode.localeCompare(b.statusCode)));\r\n }\r\n else if (this.sortData == 'Least advanced Status') {\r\n sortVal.sort((a: any, b: any) => (b.statusCode.localeCompare(a.statusCode)));\r\n }\r\n }\r\n\r\n checkOrderStatus(event: any) {\r\n let val = event.target.value;\r\n let orderDetail = this.orderDetails.entries;\r\n this.showWaitCursor.next(true);\r\n if (event.currentTarget.checked) {\r\n this.filterVal.push(val);\r\n this.orderDetails.entries = orderDetail.filter((el: any) => {\r\n return this.filterVal.find((element: any) => {\r\n return element === el.statusDisplay;\r\n });\r\n });\r\n this.showWaitCursor.next(false);\r\n } else {\r\n let index = this.filterVal.indexOf(val);\r\n this.filterVal.splice(index, 1);\r\n this.orderDetails.entries = orderDetail.filter((el: any) => {\r\n return this.filterVal.find((element: any) => {\r\n return element === el.statusDisplay;\r\n });\r\n });\r\n if (this.filterVal.length == 0) {\r\n this.orderDetails.entries = this.totalRecord;\r\n }\r\n }\r\n this.showWaitCursor.next(false);\r\n this.cd.detectChanges();\r\n }\r\n\r\n gridView() {\r\n this.listview = false;\r\n }\r\n listView() {\r\n this.listview = true;\r\n }\r\n\r\n expandAll() {\r\n this.isExpandAll = true;\r\n this.cartService.expandAll.next(true);\r\n }\r\n\r\n contractAll() {\r\n this.isExpandAll = false;\r\n this.cartService.expandAll.next(false);\r\n }\r\n getOrderStatusData() {\r\n this.showWaitCursor.next(true);\r\n this.orderHistoryService.getOrderHistorySearchStatuses().subscribe((data: any) => {\r\n if (data) {\r\n this.orderStatuses = data.statuses;\r\n }\r\n this.showWaitCursor.next(false);\r\n })\r\n }\r\n\r\n\r\n onBackbuttonClick() {\r\n this.router.navigate(['/my-account/orders']);\r\n }\r\n\r\n\r\n onResize(event: any) {\r\n event.target.innerWidth;\r\n if (event.target.innerWidth < 992) {\r\n this.isMobile = true;\r\n this.isDesktop = false;\r\n }\r\n else {\r\n this.isDesktop = true;\r\n }\r\n }\r\n onPageRefresh() {\r\n this.isMobile = CommonUtils.isMobile();\r\n this.isTablet = CommonUtils.isTablet();\r\n this.isDesktop = CommonUtils.isDesktop();\r\n }\r\n}\r\n","<app-custom-breadcrum [customCrumbData]=\"breadcrumbData\"></app-custom-breadcrum>\r\n<div class=\"loading \" *ngIf=\"showWaitCursor | async \">Loading&#8230;</div>\r\n<div class=\"container\" (window:resize)=\"onResize($event)\">\r\n <div class=\"row\">\r\n <div class=\"col-sm-12 mb-3\">\r\n <h1 class=\"pageTitle\">My Order: {{orderDetails?.code}}</h1>\r\n <p class=\"pageTltsubHd mt-4 mb-3\" *ngIf=\"!isMobile\">Order Details</p>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"showOrder\">\r\n <div class=\"row m-0 bg-white\">\r\n <div class=\"col-lg-3 col-sm-6 text-center deliveryInfoBx d-flex flex-column justify-content-center\">\r\n <p class=\"font-weight-bold\">Delivery Method</p>\r\n <ng-container *ngIf=\"orderDetails?.deliveryMode?.code=='standard_delivery'; else pickupdelivery\">\r\n <p class=\"pickupdelivery\">\r\n <img class=\"pickupdelivery-image\" src=\"../../../../../assets/images/delivery.svg\" alt=\"Delivery\" title=\"Delivery\">\r\n </p>\r\n </ng-container>\r\n <ng-template #pickupdelivery>\r\n <p class=\"pickupdelivery\">\r\n <img class=\"pickupdelivery-image\" src=\"../../../../assets/images/pickup.svg\" alt=\"Click & Collect\" title=\"Click & Collect\">\r\n </p>\r\n </ng-template>\r\n <p class=\"font-weight-bold mb-0\">{{orderDetails?.deliveryMode?.name}}</p>\r\n <p class=\"mb-0\">{{orderDetails?.deliveryMode?.description}}</p>\r\n </div>\r\n <div class=\"col-lg-3 col-sm-6 deliveryInfoBx\">\r\n <p class=\"font-weight-bold mb-3\">Order Information</p>\r\n <div class=\"row\">\r\n <ul class=\"col-12 deliveryInfo\">\r\n <li>\r\n <ng-container *ngIf=\"orderDetails?.code; else ourReference\">\r\n <label>Order #:</label>\r\n <span class=\"infoValue\">{{orderDetails?.code}}</span>\r\n </ng-container>\r\n <ng-template #ourReference>\r\n <label>Online Order #:</label>\r\n <span class=\"infoValue\">{{orderDetails?.ourReference}}</span>\r\n </ng-template>\r\n </li>\r\n <li>\r\n <label>PO #:</label>\r\n <span class=\"infoValue\">{{orderDetails?.purchaseOrderNumber}}</span>\r\n </li>\r\n <li>\r\n <label>Order Date:</label>\r\n <span class=\"infoValue\">{{orderDetails?.created | date:'dd/MM/yyyy'}}</span>\r\n </li>\r\n <ng-container *ngIf=\"orderDetails?.deliveryMode?.code=='standard_delivery'\">\r\n <li>\r\n <label>Delivery Date:</label>\r\n <span class=\"infoValue\">{{orderDetails?.expectedFromDate.split(' ')[0] }} - {{orderDetails?.expectedToDate.split(' ')[0] }}</span>\r\n </li>\r\n </ng-container>\r\n <ng-container *ngIf=\"orderDetails?.deliveryMode?.code!='standard_delivery'\">\r\n <li>\r\n <label>Pickup Date</label>\r\n <span class=\"infoValue\">{{orderDetails?.expectedFromDate.split(' ')[0] }}</span>\r\n </li>\r\n <li>\r\n <label>Pickup Time</label>\r\n <span class=\"infoValue\">{{orderDetails?.expectedFromDate.split(' ')[1] }} {{orderDetails?.expectedToDate.split(' ')[2] }}</span>\r\n </li>\r\n </ng-container>\r\n\r\n <li>\r\n <label>Address:</label>\r\n <span class=\"infoValue\">{{orderDetails?.deliveryAddress?.formattedAddress}}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"col-lg-3 col-sm-6 deliveryInfoBx\">\r\n <p class=\"font-weight-bold mb-3\">Related Information</p>\r\n <div class=\"row\">\r\n <ul class=\"col-12 deliveryInfo\">\r\n <li>\r\n <label>Order PDFs:</label>\r\n <span class=\"infoValue\"> 1 <small data-toggle=\"modal\" data-target=\"#downLoadPopup\" (click)=\"orderPdf()\">List</small> </span>\r\n </li>\r\n <ng-container *ngIf=\"orderDetails?.invoiceCount\">\r\n <li>\r\n <label>Invoices:</label>\r\n <span class=\"infoValue\"> {{orderDetails?.invoiceCount}} <small (click)=\"invoicePdf()\">View</small></span>\r\n </li>\r\n </ng-container>\r\n <li>\r\n <label>Status:</label>\r\n <span class=\"infoValue text-capitalize\">{{orderDetails?.statusDisplay}}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"col-lg-3 col-sm-6 deliveryInfoBx\">\r\n <p class=\"font-weight-bold mb-3\">Account Information</p>\r\n <div class=\"row\">\r\n <ul class=\"col-12 deliveryInfo\">\r\n <li>\r\n <label>Account NO.:</label>\r\n <span class=\"infoValue\">{{orderDetails?.orgCustomer?.orgUnit?.uid}}</span>\r\n </li>\r\n <li>\r\n <label>Account Name:</label>\r\n <span class=\"infoValue\">{{orderDetails?.orgCustomer?.orgUnit?.name}}</span>\r\n </li>\r\n <li>\r\n <label>Address:</label>\r\n <span class=\"infoValue\">{{orderDetails?.deliveryAddress?.formattedAddress}}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"row m-0\">\r\n <div class=\"col-12 my-4 text-center position-relative\">\r\n <span (click)=\"showOrder=!showOrder\" class=\"showHide\">{{showOrder==true ? 'Hide Order Details' : 'Show Order Details'}}</span>\r\n </div>\r\n </div>\r\n <div class=\"row pb-4\">\r\n <div class=\"col-sm-6 col-md-4 col-lg-2\">\r\n <span class=\"total-item\"> {{orderDetails?.entries?.length}} items in this order</span>\r\n </div>\r\n <div class=\"col-sm-6 col-md-8 col-lg-10 text-left\">\r\n <div class=\"expandcollapse-link text-left\">\r\n <a title=\"Expand all\" href=\"javascript:void(0)\" (click)=\"expandAll()\" [ngClass]=\"{disabled : isExpandAll == true}\"> Expand all</a> |\r\n <a title=\"Expand all\" href=\"javascript:void(0)\" (click)=\"contractAll()\" [ngClass]=\"{disabled : isExpandAll == false}\"> Contract all</a>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-12 col-lg-8 d-sm-flex\">\r\n <div class=\"btn-group mb-2\">\r\n <div class=\"btn-group\">\r\n <select name=\"\" id=\"\" class=\"mr-3 sortBy\" (change)=\"sortBy($event)\">\r\n <option value=\"{{item}}\" *ngFor=\"let item of sortby\">{{item}}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"btn-group mb-2\">\r\n <button class=\"btn history-table-dropdown position-relative\" type=\"button\" id=\"status\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\r\n Status\r\n <i class=\"fas fa-chevron-down custom-arrow-down\"></i>\r\n </button>\r\n <div class=\"dropdown-menu\" aria-labelledby=\"status\">\r\n <label class=\"dropdownItem\" *ngFor=\"let data of orderStatuses\">\r\n <input type=\"checkbox\" \r\n name=\"dropdown-group\" class=\"rounded-0\" id=\"orderStatusLabel\"\r\n [value]=\"data.value\" (change)=\"checkOrderStatus($event)\" />\r\n {{data.value}}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-12 col-lg-4 float-right\" *ngIf=\"isDesktop\">\r\n <div class=\"d-flex justify-content-end\">\r\n <div class=\"main-view\">\r\n <button [ngClass]=\"{'active': listview === false}\" class=\"btn btn-sm\" (click)=\"gridView()\">\r\n <img *ngIf=\"listview === false\" src=\"../../../assets/images/Grid-light.svg\" alt=\"gridviewlight\">\r\n <img *ngIf=\"listview === true\" src=\"../../../assets/images/Grid-dark.svg\" alt=\"gridviewdark\">\r\n Grid</button>\r\n <button [ngClass]=\"{'active': listview === true}\" class=\"btn btn-sm active\" (click)=\"listView()\">\r\n <img *ngIf=\"listview === true\" class=\"list-img\" src=\"../../../assets/images/List-light.svg\"\r\n alt=\"listview\">\r\n <img *ngIf=\"listview === false\" class=\"list-img\" src=\"../../../assets/images/List-dark.svg\"\r\n alt=\"listview\">\r\n List</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"isDesktop\">\r\n <app-order-detail-list [cartDetails]=\"orderDetails?.entries\" [orderDate]=\"orderDetails?.created\" [sortByVal]=\"sortData\" *ngIf=\"listview && orderDetails\" [isCardData]=\"orderDetailsPage\"></app-order-detail-list>\r\n <app-order-detail-grid [cartDetails]=\"orderDetails?.entries\" [orderDate]=\"orderDetails?.created\" [sortByVal]=\"sortData\" *ngIf=\"!listview && orderDetails\" [isCardData]=\"orderDetailsPage\"></app-order-detail-grid>\r\n </ng-container>\r\n <ng-container *ngIf=\"!isDesktop\">\r\n <app-order-detail-grid [cartDetails]=\"orderDetails?.entries\" [orderDate]=\"orderDetails?.created\" *ngIf=\"orderDetails\" [isCardData]=\"orderDetailsPage\"></app-order-detail-grid>\r\n </ng-container>\r\n</div>\r\n<div class=\"container order-footer-container\">\r\n <div class=\"row\" [ngClass]=\"isMobile ? 'd-flex flex-column-reverse': ''\">\r\n <div class=\"col-md-6 col-12\" [ngClass]=\"isMobile ? 'text-right mt-4' : 'd-flex align-items-center'\">\r\n <a href=\"javascript:void(0)\" (click)=\"onBackbuttonClick()\" class=\"font-weight-bold\" title=\"BACK TO MY ORDERS\">\r\n <img src=\"../../../assets/images/ionic-arrow-back.svg\" alt=\"BACK TO MY ORDERS\" /> BACK TO MY ORDERS</a>\r\n </div>\r\n <div class=\"col-md-6 col-12 text-right\">\r\n <p class=\"mb-0 total-text\">Total</p>\r\n <p class=\"total-value mb-0\">{{orderDetails?.totalPrice?.formattedValue}}</p>\r\n <span class=\"d-block exclGst\"> excl GST and freight</span>\r\n </div>\r\n </div>\r\n</div>\r\n<ng-container *ngIf=\"showPopUp\">\r\n <div class=\"modal fade\" id=\"downLoadPopup\" role=\"dialog\" aria-labelledby=\"downLoadPopup\" aria-hidden=\"true\">\r\n <div class=\"loading\" *ngIf=\"showWaitCursor | async \">Loading&#8230;</div>\r\n <app-download-popup [orderDetails]=\"orderDetails\"></app-download-popup>\r\n </div>\r\n</ng-container>\r\n","import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CustomOrderDetailsComponent } from './custom-order-details.component';\r\nimport { provideDefaultConfig, CmsConfig } from '@spartacus/core';\r\nimport { OrderDetailListComponent } from './order-detail-list/order-detail-list.component';\r\nimport { OrderDetailGridComponent } from './order-detail-grid/order-detail-grid.component';\r\nimport { MediaModule } from '@spartacus/storefront';\r\nimport { DownloadPopupComponent } from './download-popup/download-popup.component';\r\nimport { RouterModule } from '@angular/router';\r\nimport { SharedComponentsModule } from '../shared/shared-components.module';\r\nimport { AuthModule } from '@auth0/auth0-angular';\r\nimport { CartService } from '../services/cart.service';\r\n\r\nlet sharedData: any = {};\r\nconst listOfModules: any = [SharedComponentsModule,];\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n CustomOrderDetailsComponent,\r\n OrderDetailListComponent,\r\n OrderDetailGridComponent,\r\n DownloadPopupComponent\r\n ],\r\n imports: [\r\n CommonModule, \r\n listOfModules,\r\n MediaModule,\r\n RouterModule,\r\n SharedComponentsModule,\r\n\r\n ],\r\n providers: [\r\n provideDefaultConfig(<CmsConfig>{\r\n cmsComponents: {\r\n OrderDetailComponent: {\r\n component: CustomOrderDetailsComponent\r\n },\r\n },\r\n }),\r\n ],\r\n})\r\nexport class CustomOrderDetailsModule {\r\n constructor(@Optional() @SkipSelf() parentModule?: CustomOrderDetailsModule) {\r\n if(parentModule) {\r\n throw new Error(\r\n 'TeamModule is already loaded. Import it in the AppModule only');\r\n }\r\n}\r\n\r\npublic static forRoot(environment: any): ModuleWithProviders < CustomOrderDetailsModule > {\r\n localStorage.setItem('envUrl', environment.occBaseUrl + environment.baseSiteId)\r\n sharedData = environment;\r\n listOfModules.push(AuthModule.forRoot({\r\n domain: sharedData.auth0Domain,\r\n clientId: sharedData.auth0Client_id,\r\n redirect_uri: sharedData.UIsiteURl\r\n }))\r\n return {\r\n ngModule: CustomOrderDetailsModule,\r\n providers: [\r\n CartService\r\n ]\r\n };\r\n\r\n} }\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport {\r\n CHECKOUT_REVIEW_ORDER_ENDPOINT,\r\n GET_ADDRESS_INFO,\r\n GET_Checkout_Details_URL,\r\n GET_Delivery_Modes_URL,\r\n Validate_Order_Date_time,\r\n} from './endPointURL';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CustomCheckoutService {\r\n constructor(public http: HttpClient) {}\r\n\r\n public getCheckOutValues(cartId: any): Observable<any> {\r\n let url = GET_Checkout_Details_URL(cartId).url;\r\n return this.http.get(url).pipe(\r\n catchError((errorRes) => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n\r\n public getDeliveryModes(cartId: any): Observable<any> {\r\n let url = GET_Delivery_Modes_URL(cartId).url;\r\n return this.http.get(url)\r\n .pipe(\r\n catchError(errorRes => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n\r\n public getAddressInfo(): Observable<any> {\r\n let url = GET_ADDRESS_INFO.url;\r\n return this.http.get(url).pipe(\r\n catchError((errorRes) => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n public ValidateCheckoutDateTime(data: any): Observable<any> {\r\n let url = Validate_Order_Date_time.url + '?fields=FULL'; // + '?fields=FULL&' + \"&cartID=\" + data.cartID + \"&deliveryPickUpDate=\" + '05/01/2023' + '&deliveryMethod=' + data.deliveryMethod + '&deliveryPickUpFromTime=' + data.deliveryPickUpFromTime + '&deliveryPickUpToTime=' + data.deliveryPickUpToTime;\r\n return this.http.post(url, data).pipe(\r\n catchError((errorRes) => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n public checkoutReviewAndOrder(checkoutData: any): Observable<any> {\r\n return this.http\r\n .post(CHECKOUT_REVIEW_ORDER_ENDPOINT.url, checkoutData)\r\n .pipe(\r\n catchError((errorRes) => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n\r\n public getGeoLocationAddress(apiURL: any, location: any): Observable<any> {\r\n apiURL = apiURL + '&longitude=' + location.longitude + '&latitude=' + location.latitude;\r\n //const apiURL = \"https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/reverseGeocode?\" + params;\r\n //const apiURL = \"http://api.positionstack.com/v1/reverse?access_key=56ce426eb08c153d4bf2b209d9421d55&query=\" + params;\r\n return this.http.get(apiURL).pipe(\r\n catchError((errorRes) => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n\r\n\r\n public getClickGeoLocationAddress(apiURL: any, location: any): Observable<any> {\r\n apiURL = apiURL + '&x=' + location.longitude + '&y=' + location.latitude;\r\n //const apiURL = \"https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/reverseGeocode?\" + params;\r\n //const apiURL = \"http://api.positionstack.com/v1/reverse?access_key=56ce426eb08c153d4bf2b209d9421d55&query=\" + params;\r\n return this.http.get(apiURL).pipe(\r\n catchError((errorRes) => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n public getToken(apiURL: any): Observable<any> {\r\n return this.http.get(apiURL).pipe(\r\n catchError((errorRes) => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n\r\n\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\n\r\nimport { loadModules } from 'esri-loader';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { CustomCheckoutService } from '../../services/checkout.service';\r\n@Component({\r\n selector: 'app-add-new-address',\r\n templateUrl: './add-new-address.component.html',\r\n styleUrls: ['./add-new-address.component.scss'],\r\n})\r\nexport class AddNewAddressComponent implements OnInit {\r\n @ViewChild('mapViewNode', { static: true }) private mapViewEl!: ElementRef;\r\n public markerUrl: any = 'assets/images/marker.svg';\r\n view: any;\r\n @Input() confirmedAddress: any;\r\n location: any = {};\r\n isConfirmDisabled = new BehaviorSubject<boolean>(true);\r\n showAddress = new BehaviorSubject<boolean>(false);\r\n env: any = sessionStorage.getItem('env');\r\n environment : any = JSON.parse(this.env);\r\n apigee_url = this.environment.coreLogicApiUrl; // PROD: 'api.corelogic.asia'\r\n client_id = this.environment.coreLogicClientId;\r\n client_secret = this.environment.coreLogicClientSecret;\r\n currentPosition: any;\r\n token_url = `https://${this.apigee_url}/access/oauth/token?client_id=${this.client_id}&client_secret=${this.client_secret}&grant_type=client_credentials`;\r\n @Output() updateNewAddress = new EventEmitter<any>();\r\n constructor(\r\n public checkoutService: CustomCheckoutService) { }\r\n\r\n ngOnInit(): void {\r\n\r\n navigator.geolocation.getCurrentPosition(position => {\r\n if (position && position.coords) {\r\n this.currentPosition = position.coords;\r\n }\r\n });\r\n if (this.confirmedAddress != '') {\r\n this.showAddress.next(true);\r\n }\r\n this.checkoutService.getToken(this.token_url).subscribe((response: any) => {\r\n if (response) {\r\n const token = 'EbUIm1M13SwtGmdNaEsvMQ8z7l7zU5ZX0aYnWuEEnBG1VYqQqPPx8clgTLcuYSDd2XJpBenrDBPw-LtOSCEfBbYq9JsHudx5og19KowoNzQLsBQggFYYyoK80xi_WCiyvQDLpMigXVfOx8ijqoi_FA..' // response?.access_token;\r\n this.loadMap(response.access_token).then(() => {\r\n // The map has been initialized\r\n });\r\n }\r\n });\r\n }\r\n\r\n async loadMap(token: any): Promise<any> {\r\n const container = this.mapViewEl.nativeElement;\r\n\r\n const streetmapURL = this.environment.coreLogicStreetMapUrl;\r\n // // Using NZTM spatial reference - the option to switch to WGS84 (lat/long) is available as an alternate\r\n\r\n const [\r\n MapView,\r\n Point,\r\n WebMap,\r\n Search,\r\n SearchSource,\r\n esriRequest,\r\n Graphic,\r\n geometryEngine,\r\n SpatialReference,\r\n TileLayer,\r\n Basemap,\r\n esriConfig,\r\n ] = await loadModules([\r\n 'esri/views/MapView',\r\n 'esri/geometry/Point',\r\n 'esri/WebMap',\r\n 'esri/widgets/Search',\r\n 'esri/widgets/Search/SearchSource',\r\n 'esri/request',\r\n 'esri/Graphic',\r\n 'esri/geometry/geometryEngine',\r\n 'esri/geometry/SpatialReference',\r\n \"esri/layers/TileLayer\",\r\n \"esri/Basemap\",\r\n 'esri/config',\r\n ]);\r\n \r\n // Create the Map \r\n const centerPoint = new Point({\r\n x: 1762074.8319567626,\r\n y: 5913411.046462182,\r\n spatialReference: {\r\n wkid: 2193,\r\n },\r\n });\r\n esriConfig.request.interceptors.push({\r\n urls: [streetmapURL], // set the `urls` property to the Apigee URLs\r\n before: (params: any) => {\r\n if (params.url.includes(this.apigee_url)) {\r\n params.requestOptions.headers = params.requestOptions.headers || {};\r\n params.requestOptions.headers['authorization'] = `Bearer ${token}`;\r\n params.requestOptions.headers['Access-Control-Request-Headers'] = 'authorization';\r\n }\r\n }\r\n });\r\n\r\n // Default base layer - streetmap\r\n let streetmap = new TileLayer({\r\n url: streetmapURL\r\n });\r\n\r\n // Create basemap layers\r\n const streetmap_base = new Basemap({\r\n baseLayers: [streetmap],\r\n title: \"Streetmap\"\r\n });\r\n // esri map \r\n const webmap = new WebMap({\r\n basemap: 'satellite', //hybrid, satellite // which map view we have to use ?\r\n });\r\n // Create the map - streetmap as default basemap\r\n const myMap = new WebMap({\r\n basemap: streetmap_base\r\n });\r\n\r\n const view = new MapView({\r\n container: container,\r\n map: myMap,\r\n center: centerPoint,\r\n zoom: 8,\r\n constraints: {\r\n snapToZoom: false,\r\n },\r\n });\r\n\r\n const simpleMarkerSymbol = {\r\n type: 'picture-marker',\r\n url: this.markerUrl,\r\n width: 21,\r\n height: 30,\r\n };\r\n\r\n const mapKeys = (data: any) => {\r\n const obj = {\r\n type: 'Feature',\r\n geometry: {\r\n type: 'Point',\r\n coordinates: [data?.location?.wgs84_lon, data?.location?.wgs84_lat],\r\n },\r\n properties: {\r\n label:\r\n data?.formatted_address?.line1 +\r\n ' ' +\r\n data?.formatted_address?.line2 +\r\n ' ' +\r\n data?.formatted_address?.line3 +\r\n ' ' +\r\n data?.formatted_address?.line4,\r\n scrore: 0,\r\n id: data?.references?.id,\r\n name: data?.formatted_address?.line1,\r\n postcode: data?.structured_address?.postcode,\r\n citycode: '',\r\n x: data?.location?.wgs84_lon,\r\n y: data?.location?.wgs84_lat,\r\n city: data?.structured_address?.region,\r\n context: '',\r\n type: 'street',\r\n importance: '',\r\n street: data?.structured_address?.street_name,\r\n },\r\n };\r\n return obj;\r\n };\r\n\r\n // const autoSuggestUrl = 'https://uat.addressright.co.nz/autocomplete.json?api_key=292633_xvse2ZwXyJ6gqhMV'; // Custom API used based on Core logic reference documents to get suggestions\r\n const autoSuggestUrl = this.environment.coreLogicAddressApiUrl + 'autocomplete.json?api_key=' + this.environment.coreLogicAddressApikey;\r\n const self = this;\r\n\r\n const customSearchSource = new SearchSource({\r\n placeholder: 'Type Address here ...',\r\n // Provide a getSuggestions method\r\n // to provide suggestions to the Search widget\r\n getSuggestions: (params: any) => {\r\n // You can request data from a\r\n // third-party source to find some\r\n // suggestions with provided suggestTerm\r\n // the user types in the Search widget\r\n return esriRequest(autoSuggestUrl, {\r\n query: {\r\n term: params.suggestTerm.replace(/ /g, '+'),\r\n max: 10,\r\n lat: view.center.latitude,\r\n lon: view.center.longitude,\r\n },\r\n responseType: 'json',\r\n }).then((results: any) => {\r\n // Return Suggestion results to display\r\n // in the Search widget\r\n return results?.data?.map((feature: any) => {\r\n return {\r\n key: 'name',\r\n text: feature?.label,\r\n id: feature?.id,\r\n sourceIndex: params.sourceIndex,\r\n };\r\n });\r\n });\r\n },\r\n // Provide a getResults method to find\r\n // results from the suggestions\r\n getResults: (params: any) => {\r\n // If the Search widget passes the current location,\r\n // you can use this in your own custom source\r\n let query: any = {};\r\n // You can perform a different query if a location\r\n // is provided\r\n if (params.location) {\r\n query.lat = params.location.latitude;\r\n query.lon = params.location.longitude;\r\n } else {\r\n query.q = params.suggestResult.text.replace(/ /g, '+');\r\n query.limit = 6;\r\n }\r\n if (params.suggestResult.text == '') {\r\n var lat = params.location.y;\r\n var lon = params.location.x;\r\n\r\n view.goTo({\r\n center: new Point({\r\n x: lon,\r\n y: lat,\r\n spatialReference: {\r\n wkid: 2193\r\n }\r\n }),\r\n })\r\n\r\n const location = {\r\n longitude: lon,\r\n latitude: lat\r\n }\r\n //const url = 'https://uat.addressright.co.nz/reversegeocode.json?api_key=292633_xvse2ZwXyJ6gqhMV&limit=1&formatted=1&srid=2193';\r\n const url = this.environment.coreLogicAddressApiUrl + 'reversegeocode.json?api_key='+ this.environment.coreLogicAddressApikey + '&limit=1&formatted=1&srid=2193'; \r\n self.checkoutService.getClickGeoLocationAddress(url, location).subscribe((response: any) => {\r\n if (response && response != undefined && response.data && response.data.length > 0) {\r\n this.location.selectedAddress = response?.data[0].attributes?.label;\r\n //const afterSearchCompleteUrl = 'https://uat.addressright.co.nz/address.json?api_key=292633_xvse2ZwXyJ6gqhMV&id=' + response?.data[0].relationships?.address?.data?.id\r\n const afterSearchCompleteUrl = this.environment.coreLogicAddressApiUrl + 'address.json?api_key='+ this.environment.coreLogicAddressApikey +'&id=' + response?.data[0].relationships?.address?.data?.id\r\n let query: any = {};\r\n query.lat = lat;\r\n query.lon = lon;\r\n esriRequest(afterSearchCompleteUrl, { query: query, responseType: 'json' }).then((results: any) => {\r\n if (results) {\r\n const feature = mapKeys(results.data);\r\n const location = {\r\n lon: feature?.geometry?.coordinates[0],\r\n lat: feature?.geometry?.coordinates[1]\r\n }\r\n this.location = location;\r\n // Parse the results of your custom search\r\n this.populateData(results, location);\r\n\r\n // Create a Graphic the Search widget can display\r\n this.location.selectedAddress = feature?.properties?.label;\r\n view.graphics = [];\r\n // Get the coordinates of the click on the view\r\n const point = {\r\n type: 'point',\r\n x: feature?.geometry?.coordinates[0],\r\n y: feature?.geometry?.coordinates[1],\r\n };\r\n\r\n const pointGraphic = new Graphic({\r\n geometry: point,\r\n symbol: simpleMarkerSymbol,\r\n });\r\n view.graphics.add(pointGraphic);\r\n\r\n this.isConfirmDisabled.next(false);\r\n }\r\n })\r\n }\r\n },\r\n (error: any) => {\r\n console.log(error);\r\n }\r\n );\r\n } else {\r\n //const afterSearchCompleteUrl = 'https://uat.addressright.co.nz/address.json?api_key=292633_xvse2ZwXyJ6gqhMV&id=' + params?.suggestResult?.id;\r\n const afterSearchCompleteUrl = this.environment.coreLogicAddressApiUrl + 'address.json?api_key='+ this.environment.coreLogicAddressApikey +'&id=' + params?.suggestResult?.id;\r\n\r\n return esriRequest(afterSearchCompleteUrl, {\r\n query: query,\r\n responseType: 'json',\r\n }).then((results: any) => {\r\n // Parse the results of your custom search\r\n const data = [results.data];\r\n this.isConfirmDisabled.next(false);\r\n let location = {\r\n lon: data[0].location.wgs84_lon,\r\n lat: data[0].location.wgs84_lat\r\n }\r\n this.populateData(results, location)\r\n const searchResults = data?.map((feature) => {\r\n // Create a Graphic the Search widget can display\r\n feature = mapKeys(feature);\r\n this.location.selectedAddress = feature?.properties?.label;\r\n const graphic = new Graphic({\r\n geometry: new Point({\r\n x: feature?.geometry?.coordinates[0],\r\n y: feature?.geometry?.coordinates[1],\r\n //spatialReference: self?.view.spatialReference,\r\n spatialReference: SpatialReference.WGS84,\r\n }),\r\n attributes: feature?.properties,\r\n });\r\n // Optionally, you can provide an extent for\r\n // a point result, so the view can zoom to it\r\n const buffer = geometryEngine.geodesicBuffer(\r\n graphic.geometry,\r\n 100,\r\n 'meters'\r\n );\r\n\r\n // Return a Search Result\r\n const searchResult = {\r\n extent: buffer?.extent,\r\n feature: graphic,\r\n name: feature?.properties?.label.replace(/null/g, ''),\r\n };\r\n return searchResult;\r\n });\r\n\r\n // Return an array of Search Results\r\n return searchResults;\r\n });\r\n }\r\n },\r\n });\r\n\r\n const searchWidget = new Search({\r\n view: view,\r\n sources: [customSearchSource],\r\n includeDefaultSources: false,\r\n });\r\n\r\n // Add the widget to the top-right corner of the view\r\n view.ui.add(searchWidget, {\r\n position: 'top-right',\r\n index: 2,\r\n });\r\n\r\n this.view = view;\r\n\r\n searchWidget.on('search-complete', (event: any) => {\r\n });\r\n\r\n searchWidget.on('select-result', (event: any) => {\r\n });\r\n\r\n view.on('click', (event: any) => {\r\n event.stopPropagation();\r\n\r\n this.isConfirmDisabled.next(false);\r\n \r\n var lat = event.mapPoint.y;\r\n var lon = event.mapPoint.x; \r\n view.goTo({\r\n center: new Point({\r\n x: lon,\r\n y: lat,\r\n spatialReference: {\r\n wkid: 2193\r\n }\r\n }),\r\n });\r\n const point = {\r\n type: 'point',\r\n x: lon,\r\n y: lat,\r\n spatialReference: {\r\n wkid: 2193\r\n }\r\n };\r\n const pointGraphic = new Graphic({\r\n geometry: point,\r\n symbol: simpleMarkerSymbol,\r\n }); \r\n view.graphics = [];\r\n view.graphics.add(pointGraphic);\r\n const location = {\r\n longitude: lon,\r\n latitude: lat\r\n }\r\n //const url = 'https://uat.addressright.co.nz/reversegeocode.json?api_key=292633_xvse2ZwXyJ6gqhMV&limit=1&formatted=1&srid=2193';\r\n const url = this.environment.coreLogicAddressApiUrl + 'reversegeocode.json?api_key='+ this.environment.coreLogicAddressApikey + '&limit=1&formatted=1&srid=2193';\r\n self.checkoutService\r\n .getClickGeoLocationAddress(url, location)\r\n .subscribe(\r\n (response: any) => {\r\n if (response && response != undefined && response.data.length > 0) {\r\n this.location.selectedAddress = response?.data[0].attributes?.label;\r\n //const afterSearchCompleteUrl = 'https://uat.addressright.co.nz/address.json?api_key=292633_xvse2ZwXyJ6gqhMV&id=' + response?.data[0].relationships?.address?.data?.id;\r\n const afterSearchCompleteUrl = this.environment.coreLogicAddressApiUrl + 'address.json?api_key='+ this.environment.coreLogicAddressApikey +'&id=' + response?.data[0].relationships?.address?.data?.id;\r\n \r\n let query: any = {};\r\n query.lat = lat;\r\n query.lon = lon;\r\n esriRequest(afterSearchCompleteUrl, {\r\n query: query,\r\n responseType: 'json',\r\n }).then((results: any) => {\r\n if (results) {\r\n\r\n const feature = mapKeys(results.data);\r\n const location = {\r\n lon: feature?.geometry?.coordinates[0],\r\n lat: feature?.geometry?.coordinates[1]\r\n }\r\n this.location = location;\r\n // Parse the results of your custom search\r\n this.populateData(results, location);\r\n\r\n // Create a Graphic the Search widget can display\r\n this.location.selectedAddress = feature?.properties?.label;\r\n // view.graphics = [];\r\n // Get the coordinates of the click on the view\r\n const point = {\r\n type: 'point',\r\n x: feature?.geometry?.coordinates[0],\r\n y: feature?.geometry?.coordinates[1],\r\n };\r\n\r\n const pointGraphic = new Graphic({\r\n geometry: point,\r\n symbol: simpleMarkerSymbol,\r\n });\r\n // view.graphics.add(pointGraphic);\r\n\r\n }\r\n })\r\n }\r\n },\r\n (error: any) => {\r\n console.log(error);\r\n }\r\n );\r\n });\r\n\r\n return this.view.when();\r\n }\r\n onConfirmedClick() {\r\n this.confirmedAddress = this.location.selectedAddress.replace(/null/g, '');\r\n this.updateNewAddress.emit(this.location);\r\n this.showAddress.next(true);\r\n }\r\n populateData(results: any, location: any) {\r\n\r\n const data = results.data;\r\n const newAddress: any = {\r\n line1: data.formatted_address?.line1,\r\n line2: data.formatted_address?.line2,\r\n town: data.structured_address?.town,\r\n district: data.structured_address?.suburb,\r\n postalCode: data.structured_address?.postcode,\r\n longitude: location.lon,\r\n latitude: location.lat,\r\n }\r\n newAddress.selectedAddress = this.location.selectedAddress;\r\n this.location = newAddress;\r\n }\r\n}","<div class=\"corelogic-map\" #mapViewNode></div>\r\n<div class=\"confirm-cls\">\r\n <button type=\"button\" [disabled]=\"isConfirmDisabled | async\" (click)=\"onConfirmedClick()\" class=\"btn primary-button mt-4\">Confirm</button>\r\n <label *ngIf=\"showAddress | async\" class=\"form-label\">Confirmed Delivery Address </label>\r\n <div class=\"map-selected-address\" *ngIf=\"showAddress | async\" id=\"address\">\r\n {{confirmedAddress}}</div>\r\n</div>\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n HostListener,\r\n OnInit,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { NgbCalendar, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ActiveCartService } from '@spartacus/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { CmsService } from '@spartacus/core';\r\nimport { CustomCheckoutService } from '../../services/checkout.service';\r\n\r\n@Component({\r\n selector: 'app-custom-checkout',\r\n templateUrl: './custom-checkout.component.html',\r\n styleUrls: ['./custom-checkout.component.scss'],\r\n})\r\nexport class CustomCheckoutComponent implements OnInit {\r\n errorInd$ = new BehaviorSubject<boolean>(false);\r\n infoMessage: string = '';\r\n previousUrl: string = '';\r\n cartId: string = '';\r\n isDeliveryBox: boolean = true;\r\n ACTIVE_ITEM: string = 'active-box';\r\n ngbMinDate: any;\r\n selectedAddress: string = 'accountAddress';\r\n public maxTime: any;\r\n public fromMaxTime: any;\r\n ccminTime = new Date(2022, 0, 28, 6, 0, 0);\r\n ccmaxTime = new Date(2022, 0, 28, 22, 0, 0);\r\n public minTime: any;\r\n public minToTime: any;\r\n checkoutFormData: any = {};\r\n isSubmitted: boolean = false;\r\n startTime: any = [];\r\n recentAddress: any = [];\r\n deliverTime: any;\r\n defaultAccountAddress: any;\r\n branchAddress: any;\r\n @ViewChild('checkoutForm') checkoutForm: any;\r\n selectedRecentAddress: any = {};\r\n tempBranchListData: any = [];\r\n public deliveryDisableDates: any;\r\n collectTime: any;\r\n minLeadTime: number = 3;\r\n responseData: any;\r\n @ViewChild('checkoutToTime', { static: false }) checkoutToTime: any;\r\n @ViewChild('collectTimeObj', { static: false }) collectTimeObj: any;\r\n @ViewChild('mapViewNode', { static: true }) private mapViewEl!: ElementRef;\r\n specialDayOpeningList: any = [];\r\n weekDayOpeningList: any = [];\r\n deliveryAddresses: any = [];\r\n showMoreAddresses: boolean = false;\r\n siteDeliveryRequirements: any;\r\n clickandCollectComments: any;\r\n checkoutHeaderContent: any;\r\n breadcrumbData: any = [];\r\n deliveryModes: any = [];\r\n view: any;\r\n pageTitle: any;\r\n newAddress: any;\r\n confirmedNewAddress: string = '';\r\n showWaitCursor = new BehaviorSubject<boolean>(false);\r\n @ViewChild('myDiv') myDiv: ElementRef;\r\n @HostListener('window:scroll', ['$event'])\r\n onWindowScroll(event: any) {\r\n this.checkScrollEnd();\r\n }\r\n constructor(\r\n public checkoutService: CustomCheckoutService,\r\n private cmsService: CmsService,\r\n public cd: ChangeDetectorRef,\r\n public calendar: NgbCalendar,\r\n public activeCartService: ActiveCartService\r\n ) { }\r\n ngOnInit(): void {\r\n this.cmsService.getCurrentPage().subscribe((pagadata: any) => {\r\n this.pageTitle = pagadata.title;\r\n })\r\n this.breadcrumbData.push({ url: '/', name: 'Home' });\r\n this.breadcrumbData.push({ url: '/cart', name: 'Cart' });\r\n this.breadcrumbData.push({ url: '/checkout', name: 'Checkout' });\r\n let cart: any = localStorage.getItem('spartacus⚿dimond-spa⚿cart');\r\n this.cartId = JSON.parse(cart)?.active;\r\n this.checkoutFormData.deliveryPickUpDate = undefined;\r\n this.checkoutFormData.deliveryPickUpToTime = undefined;\r\n this.checkoutFormData.deliveryPickUpFromTime = undefined;\r\n const checkoutData: any = sessionStorage.getItem('checkoutData');\r\n if (checkoutData != null) {\r\n this.checkoutFormData = JSON.parse(checkoutData);\r\n this.isDeliveryBox = this.checkoutFormData.deliveryMethod == 'clickAndCollect' ? false : true;\r\n }\r\n var locAddress: any = localStorage.getItem('branchDetails');\r\n this.branchAddress = JSON.parse(locAddress);\r\n\r\n this.checkoutService.getDeliveryModes(this.cartId).subscribe((data) => {\r\n if (data) {\r\n this.deliveryModes = data.deliveryModes;\r\n this.deliveryModes.sort((a: any, b: any) => (a.code > b.code ? -1 : 1))\r\n }\r\n }, (error) => {\r\n this.deliveryModes = [{ code: 'standard_delivery' }, { code: 'clickAndCollect' }]\r\n });\r\n this.checkoutService.getAddressInfo().subscribe((data) => {\r\n if (data) {\r\n this.defaultAccountAddress = data.addresses[0];\r\n this.recentAddress = data.recentAddresses;\r\n this.showMoreAddresses = data.addresses && data.addresses.length > 1 ? true : false;\r\n this.deliveryAddresses = data.addresses && data.addresses.length > 1 ? data.addresses : [];\r\n this.selectedAddress = this.checkoutFormData.selectedAddress != undefined ? this.checkoutFormData.selectedAddress : 'accountAddress';\r\n this.selectedRecentAddress.id = this.checkoutFormData && this.checkoutFormData?.deliveryAddressPK ? this.checkoutFormData?.deliveryAddressPK : this.defaultAccountAddress.id;\r\n this.confirmedNewAddress = this.checkoutFormData.selectedAddress != undefined && this.checkoutFormData.selectedAddress == 'addNewAddress' ? this.checkoutFormData.newAddress?.selectedAddress : '';\r\n if (!this.defaultAccountAddress && this.deliveryAddresses.length < 1 && this.recentAddress.length < 1) this.selectedAddress = 'addNewAddress';\r\n this.cd.markForCheck();\r\n }\r\n });\r\n this.checkoutService.getCheckOutValues(this.cartId).subscribe(\r\n (data) => {\r\n if (data) {\r\n this.responseData = data;\r\n this.weekDayOpeningList = this.isDeliveryBox\r\n ? data.pointOfService?.deliverySchedule?.weekDayOpeningList\r\n : data.pointOfService?.pickupSchedule?.weekDayOpeningList;\r\n this.specialDayOpeningList = this.isDeliveryBox\r\n ? data.pointOfService?.deliverySchedule?.specialDayOpeningList\r\n : data.pointOfService?.pickupSchedule?.specialDayOpeningList;\r\n this.getDetailResponse();\r\n }\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n\r\n //code for Delivery Site Delivery Requirements tooltip\r\n this.cmsService\r\n .getComponentData('SiteDeliveryRequirementsComponent')\r\n .subscribe((data: any) => {\r\n if (data) {\r\n this.siteDeliveryRequirements = data.content;\r\n }\r\n });\r\n //code for Click And Collect Comments tooltip\r\n this.cmsService\r\n .getComponentData('CommentsClickAndCollectComponent')\r\n .subscribe((data: any) => {\r\n if (data) {\r\n this.clickandCollectComments = data.content;\r\n }\r\n });\r\n //code for header content\r\n this.cmsService\r\n .getComponentData('checkoutHeaderContentComponent')\r\n .subscribe((data: any) => {\r\n if (data) {\r\n this.checkoutHeaderContent = data.content;\r\n }\r\n });\r\n }\r\n\r\n checkScrollEnd() {\r\n const windowHeight = 'innerHeight' in window ? window.innerHeight : document.documentElement.offsetHeight;\r\n const body = document.body;\r\n const html = document.documentElement;\r\n const docHeight = Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);\r\n const windowBottom = windowHeight + window.pageYOffset;\r\n if (windowBottom >= docHeight || window.pageYOffset === 0) {\r\n // User has reached the end of the scroll, show the div\r\n this.myDiv.nativeElement.style.display = 'block';\r\n } else {\r\n // User is still scrolling, hide the div\r\n this.myDiv.nativeElement.style.display = 'none';\r\n }\r\n }\r\n getDetailResponse() {\r\n this.tempBranchListData = this.responseData?.pointOfService?.pickupSchedule?.weekDayOpeningList;\r\n this.branchAddress = this.responseData?.pointOfService?.address;\r\n var checkoutDateValue = new Date();\r\n let i = 0;\r\n let j = 0;\r\n if (this.responseData.deliveryMinLeadTime || this.responseData.pickUpMinLeadTime)\r\n this.minLeadTime = this.isDeliveryBox ? this.responseData.deliveryMinLeadTime : this.responseData.pickUpMinLeadTime;\r\n let date = new Date();\r\n while (i < this.minLeadTime) {\r\n j = j + 1;\r\n date.setDate(checkoutDateValue.getDate() + j);\r\n if (date.getDay() == 6 || this.weekDayOpeningList[5].closed == true) {\r\n continue;\r\n } else {\r\n i = i + 1;\r\n }\r\n }\r\n j = date.getDay() == 0 ? j + 1 : j;\r\n this.ngbMinDate = {\r\n day: (checkoutDateValue.getDate() + j > 30) ? checkoutDateValue.getDate() + j - 30 : checkoutDateValue.getDate() + j,\r\n month: (checkoutDateValue.getDate() + j) > 30 ? checkoutDateValue.getMonth() == 11 ? 1 : checkoutDateValue.getMonth() + 2 : checkoutDateValue.getMonth() + 1,\r\n year: (checkoutDateValue.getDate() + j) > 30 && checkoutDateValue.getMonth() == 11 ? checkoutDateValue.getFullYear() + 1 : checkoutDateValue.getFullYear(),\r\n };\r\n this.updateMinMaxTime(checkoutDateValue);\r\n this.cd.markForCheck();\r\n }\r\n updateMinMaxTime(date: Date) {\r\n const todayDay: any = this.weekDayOpeningList[date.getDay() - 1];\r\n this.minTime = new Date(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate(),\r\n todayDay?.openingTime?.hour || 9,\r\n todayDay?.openingTime?.minute || 0,\r\n 0\r\n );\r\n this.minToTime = new Date(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate(),\r\n todayDay?.openingTime?.hour || 11,\r\n todayDay?.openingTime?.minute || 0,\r\n 0\r\n );\r\n this.fromMaxTime = new Date(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate(),\r\n todayDay?.closingTime.formattedHour.split(' ')[1] == 'pm'\r\n ? todayDay?.closingTime?.hour + 10\r\n : todayDay?.closingTime?.hour || 15,\r\n todayDay?.closingTime?.minute || 0,\r\n 0\r\n );\r\n this.maxTime = new Date(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate(),\r\n todayDay?.closingTime.formattedHour.split(' ')[1] == 'pm'\r\n ? todayDay?.closingTime?.hour + 12\r\n : todayDay?.closingTime?.hour || 17,\r\n todayDay?.closingTime?.minute || 0,\r\n 0\r\n );\r\n this.updateRequestedTime();\r\n }\r\n updateRequestedTime() {\r\n this.minTime = this.getRoundMinTime(this.minTime);\r\n this.minToTime = this.getRoundMinTime(this.minToTime);\r\n this.checkoutFormData.deliveryPickUpToTime = this.maxTime;\r\n this.checkoutFormData.deliveryPickUpFromTime = this.minToTime;\r\n }\r\n\r\n isDisabled = (date: NgbDateStruct) => {\r\n const dat = new Date(date.year, date.month - 1, date.day);\r\n return (\r\n this.getSpecialDays(date) > -1 ||\r\n this.weekDayOpeningList[5].closed == true ||\r\n dat.getDay() === 0\r\n );\r\n };\r\n\r\n getSpecialDays(date: NgbDateStruct) {\r\n const ind = this.specialDayOpeningList?.findIndex((element: any) => {\r\n const dateObj = element.formattedDate.split('/');\r\n return dateObj[0] == date.day && dateObj[1] == date.month;\r\n });\r\n return ind;\r\n }\r\n\r\n\r\n getRoundMinTime(minTime: any) {\r\n var coff = 1000 * 60 * 30;\r\n return new Date(Math.ceil(minTime.getTime() / coff) * coff);\r\n }\r\n\r\n timeClick(event: Event, timeObj: any) {\r\n if (timeObj && timeObj.inputWrapper) {\r\n timeObj.inputWrapper.container &&\r\n timeObj.inputWrapper.container.classList.remove('e-disabled');\r\n timeObj.inputWrapper.buttons &&\r\n timeObj.inputWrapper.buttons[0] &&\r\n timeObj.inputWrapper.buttons[0].classList.remove('e-disabled');\r\n timeObj.show();\r\n }\r\n }\r\n\r\n timeToClick(event: Event, timeObj: any) {\r\n if (timeObj && timeObj.inputWrapper) {\r\n timeObj.inputWrapper.container &&\r\n timeObj.inputWrapper.container.classList.remove('e-disabled');\r\n timeObj.inputWrapper.buttons &&\r\n timeObj.inputWrapper.buttons[0] &&\r\n timeObj.inputWrapper.buttons[0].classList.remove('e-disabled');\r\n timeObj.show();\r\n }\r\n }\r\n\r\n updateStaticTime(hours: number, minutes: number) {\r\n if (this.checkoutFormData.deliveryPickUpDate == undefined) {\r\n const today = new Date();\r\n this.minToTime = new Date(\r\n today.getFullYear(),\r\n today.getMonth(),\r\n today.getDate(),\r\n hours,\r\n minutes,\r\n 0\r\n );\r\n } else {\r\n const date = this.checkoutFormData.deliveryPickUpDate;\r\n this.minToTime = new Date(\r\n date.year,\r\n date.month,\r\n date.day,\r\n hours,\r\n minutes,\r\n 0\r\n );\r\n }\r\n this.minToTime = this.getRoundMinTime(this.minToTime);\r\n }\r\n getNewAddress(event: any) {\r\n this.newAddress = event;\r\n }\r\n reviewOrder() {\r\n this.isSubmitted = true;\r\n this.checkoutForm.form.markAsPristine();\r\n if (\r\n this.checkoutForm.valid &&\r\n this.checkoutFormData.deliveryPickUpDate != undefined &&\r\n this.checkoutFormData.deliveryPickUpToTime != undefined &&\r\n this.checkoutFormData.deliveryPickUpDate.day != undefined &&\r\n this.checkoutFormData.deliveryPickUpFromTime != undefined\r\n ) {\r\n if (this.isDeliveryBox && this.selectedRecentAddress?.id == '') {\r\n return;\r\n }\r\n if (this.isDeliveryBox && this.selectedAddress == 'addNewAddress' && !this.newAddress) {\r\n this.errorInd$.next(true);\r\n this.infoMessage = 'Please Select and Confirm Address from Map';\r\n return\r\n }\r\n this.checkoutFormData.cartID = this.cartId;\r\n this.checkoutFormData.deliveryAddressPK = this.isDeliveryBox == false ? this.branchAddress?.id : this.selectedRecentAddress?.id;\r\n this.checkoutFormData.deliveryMethod = this.isDeliveryBox ? this.deliveryModes[0].code : this.deliveryModes[1].code;\r\n if (this.selectedAddress == 'addNewAddress') {\r\n this.checkoutFormData.newAddress = this.newAddress;\r\n }\r\n this.checkoutFormData.selectedAddress = this.selectedAddress;\r\n let sessionData = this.checkoutFormData;\r\n this.checkoutFormData.deliveryPickUpFromTime = this.collectTimeObj?.getText();\r\n this.checkoutFormData.deliveryPickUpToTime = this.checkoutToTime?.getText();\r\n let deliveryPickUpDate = this.checkoutFormData.deliveryPickUpDate;\r\n this.checkoutFormData.deliveryPickUpDate = this.checkoutFormData.deliveryPickUpDate?.day + '/' + this.checkoutFormData.deliveryPickUpDate?.month + '/' + this.checkoutFormData.deliveryPickUpDate?.year;\r\n const reviewData = JSON.parse(JSON.stringify(this.checkoutFormData));\r\n this.checkoutService\r\n .ValidateCheckoutDateTime(this.checkoutFormData)\r\n .subscribe(\r\n (response) => {\r\n if (response && response.status == 'SUCCESS') {\r\n this.checkoutService.checkoutReviewAndOrder(reviewData).subscribe(\r\n (data) => {\r\n this.showWaitCursor.next(true);\r\n this.checkoutFormData.deliveryPickUpDate = deliveryPickUpDate;\r\n if (data && data.status == 'SUCCESS') {\r\n sessionStorage.setItem(\r\n 'checkoutData',\r\n JSON.stringify(sessionData)\r\n );\r\n window.location.href = '/review-order';\r\n } else {\r\n this.errorInd$.next(true);\r\n this.checkoutFormData.deliveryPickUpDate =\r\n deliveryPickUpDate;\r\n this.infoMessage = data.messages[0];\r\n }\r\n this.cd.markForCheck();\r\n },\r\n (eror) => {\r\n this.checkoutFormData.deliveryPickUpDate = deliveryPickUpDate;\r\n this.cd.markForCheck();\r\n this.showWaitCursor.next(false);\r\n }\r\n );\r\n } else {\r\n this.errorInd$.next(true);\r\n this.checkoutFormData.deliveryPickUpDate = deliveryPickUpDate;\r\n this.infoMessage = response.messages[0];\r\n this.cd.markForCheck();\r\n this.showWaitCursor.next(false);\r\n }\r\n },\r\n (error) => {\r\n this.checkoutFormData.deliveryPickUpDate = deliveryPickUpDate;\r\n this.errorInd$.next(true);\r\n this.infoMessage = error?.error?.errors[0].message;\r\n this.cd.markForCheck();\r\n }\r\n );\r\n }\r\n }\r\n\r\n onFromTimeChanged(obj: any) {\r\n const value = obj?.getText();\r\n let hours = Number(value.split(':')[0]);\r\n let minutes = Number(value.split(' ')[0].split(':')[1]);\r\n if (value.split(' ')[1] == 'PM') hours = hours == 12 ? hours : hours + 12;\r\n this.updateStaticTime(hours + 2, minutes);\r\n }\r\n\r\n datechange(event: any) {\r\n const date = new Date(event.month + '/' + event.day + '/' + event.year);\r\n this.updateMinMaxTime(date);\r\n }\r\n\r\n addNewAddress() {\r\n this.selectedAddress = 'addNewAddress';\r\n this.selectedRecentAddress = '';\r\n\r\n }\r\n\r\n}\r\n","<div class=\"loading\" *ngIf=\"showWaitCursor | async \">Loading&#8230;</div>\r\n<app-custom-breadcrum [customCrumbData]=\"breadcrumbData\" class=\"products-breadcums\"></app-custom-breadcrum>\r\n<div class=\"container\">\r\n <div class=\"top-checkout\">\r\n <h1 class=\"pageTitle\">{{pageTitle}}</h1>\r\n <p class=\"checkout-header-paragraph\">{{checkoutHeaderContent}}</p>\r\n </div>\r\n <div class=\"row content-row\">\r\n <div class=\"col-sm-12 col-lg-7 offset-lg-3\">\r\n <form #checkoutForm=\"ngForm\">\r\n <mat-card-header class=\"line-step-navigation first-step\">\r\n <div class=\"card-title cus-title-margin-card\">\r\n <mat-card-title class=\"font-bold\"> <span class=\"card-number\"> 1 </span> Choose Your Delivery Method</mat-card-title>\r\n </div>\r\n </mat-card-header>\r\n <mat-card class=\"custom-mat-card line-step-navigation\">\r\n <mat-card-content>\r\n <div class=\"card-container d-sm-inline-flex d-md-flex align-content-center justify-content-between \">\r\n <mat-card class=\"matlft\">\r\n <mat-card-content class=\"box-container\">\r\n <div (click)=\"isDeliveryBox = true;\" class=\"delivery-box d-sm-inline-flex align-items-sm-center justify-content-sm-around\" [ngClass]=\"isDeliveryBox ? ACTIVE_ITEM : ''\">\r\n <img class=\"delivery-img\" src=\"../../../../assets/images/delivery.svg\" />\r\n <ng-template [ngIf]=\"isDeliveryBox\">\r\n <img class=\"check-square-del\" src=\"../../../../assets/images/check-square.svg\" />\r\n </ng-template>\r\n </div>\r\n <div class=\"delivery-heading-text\">\r\n <mat-card-title>{{deliveryModes[0]?.name || 'Delivery'}} </mat-card-title>\r\n <mat-card-subtitle> {{deliveryModes[0]?.description || 'We deliver right to your door.'}} </mat-card-subtitle>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <mat-card class=\"matright\">\r\n <mat-card-content class=\"box-container\">\r\n <div (click)=\"isDeliveryBox = false;\" class=\"collect-box d-sm-inline-flex align-items-sm-center justify-content-sm-around\" [ngClass]=\"isDeliveryBox ? '' : ACTIVE_ITEM\">\r\n <img class=\"pickup-img\" src=\"../../../../assets/images/pickup.svg\" />\r\n <ng-template [ngIf]=\"!isDeliveryBox\">\r\n <img class=\"check-square-cc\" src=\"../../../../assets/images/check-square.svg\" />\r\n </ng-template>\r\n </div>\r\n <div class=\"delivery-heading-text\">\r\n <mat-card-title> {{deliveryModes[1]?.name || 'Click & Collect'}}</mat-card-title>\r\n <mat-card-subtitle> {{deliveryModes[1]?.description || 'Collect from your nearest branch.' }}</mat-card-subtitle>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n <mat-card-header class=\"line-step-navigation\">\r\n <div class=\"card-title cus-title-margin-card\">\r\n <mat-card-title class=\"font-bold\"> <span class=\"card-number\"> 2 </span> Purchase Order Number</mat-card-title>\r\n </div>\r\n </mat-card-header>\r\n <mat-card class=\"custom-mat-card line-step-navigation\">\r\n <mat-card-content>\r\n <div class=\"form-container for-mob col-sm-6 pl-0\">\r\n <label class=\"form-label\">Purchase Order Number <span class=\"marker\">*</span></label>\r\n <input #poNumber=\"ngModel\" name=\"poNumber\" id=\"poNumber\" type=\"text\" maxlength=\"15\" [(ngModel)]=\"checkoutFormData.poNumber\" class=\"form-control joborder-input\" required>\r\n </div>\r\n <p *ngIf=\"isSubmitted\" [hidden]=\"poNumber.valid\" class=\"error-message\">\r\n Purchase Order Number is required\r\n </p>\r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <mat-card-header class=\"line-step-navigation\">\r\n <div class=\"card-title cus-title-margin-card\">\r\n\r\n <mat-card-title class=\"font-bold\"> <span class=\"card-number\"> 3 </span> {{isDeliveryBox ? 'Delivery': 'Pickup '}} Date and Time</mat-card-title>\r\n </div>\r\n </mat-card-header>\r\n\r\n <mat-card class=\"custom-mat-card line-step-navigation\">\r\n <mat-card-content>\r\n <div class=\"form-container for-mob col-sm-6 pl-0\">\r\n <label for=\"date\" class=\"form-label\">Date <span class=\"marker\">*</span></label>\r\n <form class=\"ngb-date-form\">\r\n <div class=\"form-group\">\r\n <div class=\"input-group\">\r\n <input #deliveryPickUpDate=\"ngModel\" class=\"form-control cus-width date-input\" [(ngModel)]=\"checkoutFormData.deliveryPickUpDate\" id=\"date\" name=\"txtDate\" tabindex=\"-1\" onkeydown=\"return false\" placeholder=\"DD-MM-YYYY\" ngbDatepicker #ngDate=\"ngbDatepicker\"\r\n [minDate]=\"ngbMinDate\" (dateSelect)=\"datechange($event)\" container=\"body\" required [markDisabled]=\"isDisabled\" />\r\n <div class=\"input-group-append custom-date-button\">\r\n <button class=\"btn btn-outline-secondary calendar\" (click)=\"ngDate.toggle()\" type=\"button\"></button>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n <p *ngIf=\"isSubmitted && !checkoutFormData.deliveryPickUpDate\" class=\"error-message\">\r\n Date is required\r\n </p>\r\n <div class=\"form-container for-mob col-sm-6 pl-0\">\r\n <label for=\"time\" class=\"form-label pt-4\">Time <span class=\"marker\">*</span></label>\r\n <div class=\"d-flex align-items-center\">\r\n <form class=\"form-job\">\r\n <div class=\"selectdiv\">\r\n <label class=\"jobinput\">\r\n <ejs-timepicker format=\"hh:mm a\" id='timepicker' [showClearButton]=\"false\"\r\n (click)=\"timeClick($event, collectTimeObj)\" #collectTimeObj\r\n [(value)]='checkoutFormData.deliveryPickUpFromTime' [min]=\"minTime\" [allowEdit]=\"false\" [max]=\"fromMaxTime\"\r\n (change)=\"onFromTimeChanged(collectTimeObj)\"\r\n ></ejs-timepicker>\r\n </label>\r\n </div>\r\n </form>\r\n <label for=\"time\" class=\"form-label p-3\">to</label>\r\n\r\n <form class=\"form-job\">\r\n <div class=\"selectdiv\">\r\n <label class=\"jobinput\">\r\n <ejs-timepicker format=\"hh:mm a\" id='totTmepicker' [showClearButton]=\"false\"\r\n (click)=\"timeClick($event, checkoutToTime)\" #checkoutToTime\r\n [(value)]='checkoutFormData.deliveryPickUpToTime' [min]=\"minToTime\" [allowEdit]=\"false\" [max]=\"maxTime\"\r\n ></ejs-timepicker>\r\n </label>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n <!-- <p *ngIf=\"isSubmitted\" [hidden]=\"checkoutFormData.deliveryPickUpFromTime != undefined\" class=\"error-message\">\r\n From time is required\r\n </p>\r\n <p *ngIf=\"isSubmitted\" [hidden]=\"checkoutFormData.deliveryPickUpToTime != undefined\" class=\"error-message\">\r\n To time is required\r\n </p> -->\r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <mat-card-header class=\"line-step-navigation\" *ngIf=\"!isDeliveryBox\">\r\n <div class=\"card-title cus-title-margin-card\">\r\n <mat-card-title class=\"font-bold\"> <span class=\"card-number\"> 4 </span> Pickup Location</mat-card-title>\r\n </div>\r\n </mat-card-header>\r\n <mat-card *ngIf=\"!isDeliveryBox\" class=\"custom-mat-card line-step-navigation\">\r\n <mat-card-content>\r\n <div class=\"branch-container\">\r\n <mat-card-title class='address-title'>\r\n {{branchAddress?.town}}</mat-card-title>\r\n <mat-card-subtitle> {{branchAddress?.formattedAddress}}</mat-card-subtitle>\r\n <mat-card-subtitle> <span class=\"form-label\">Phone: </span> {{branchAddress?.phone}}</mat-card-subtitle>\r\n <div class=\"branch-hour-container\">\r\n <mat-card-title class='address-title'>Opening Hours</mat-card-title>\r\n <mat-card-subtitle *ngFor=\"let data of tempBranchListData\">\r\n <span class=\"hour-label-left\">{{ data?.weekDay }}</span>\r\n <span *ngIf=\"data?.openingTime?.formattedHour || data?.closingTime?.formattedHour\">{{data?.openingTime?.formattedHour}}\r\n - {{data?.closingTime?.formattedHour}}</span>\r\n <span class=\"error-message\" *ngIf=\"!data?.openingTime?.formattedHour && !data?.closingTime?.formattedHour\">Closed</span>\r\n </mat-card-subtitle>\r\n </div>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n <mat-card-header class=\"line-step-navigation\" *ngIf=\"isDeliveryBox\">\r\n <div class=\"card-title cus-title-margin-card\">\r\n <mat-card-title class=\"font-bold\"> <span class=\"card-number\"> 4 </span> {{isDeliveryBox ? 'Select your Delivery Address Preference': 'Pickup Location '}}\r\n \r\n </mat-card-title>\r\n </div>\r\n </mat-card-header>\r\n <mat-card [hidden]=\"!isDeliveryBox\" class=\"custom-mat-card line-step-navigation\">\r\n <mat-card-content>\r\n <div class=\"d-flex mat-inner-container radio-btn-container\">\r\n <mat-radio-group aria-label=\"Select an option\">\r\n <mat-radio-button *ngIf=\"defaultAccountAddress?.formattedAddress || (deliveryAddresses && deliveryAddresses.length > 0)\" [checked]=\"selectedAddress == 'accountAddress'\" (change)=\"selectedAddress = 'accountAddress';selectedRecentAddress= deliveryAddresses[0]\"\r\n [value]=\"'accountAddress'\" class=\"pl-0 pr-md-4\">Account Address</mat-radio-button>\r\n <mat-radio-button *ngIf=\"deliveryAddresses && deliveryAddresses.length> 0\" [checked]=\"selectedAddress == 'recentAddress'\" (change)=\"selectedAddress = 'recentAddress'; selectedRecentAddress= recentAddress[0]\" [value]=\"'recentAddress'\" class=\"px-4\">Recent Address</mat-radio-button>\r\n <mat-radio-button [checked]=\"selectedAddress == 'addNewAddress'\" (change)=\"addNewAddress()\" [value]=\"'addNewAddress'\">Add New Address</mat-radio-button>\r\n </mat-radio-group>\r\n </div>\r\n <div class=\"py-2 address-inner-container\" *ngIf=\"selectedAddress == 'accountAddress' && deliveryAddresses?.length > 0\">\r\n <label *ngIf=\"!showMoreAddresses\" class=\"form-label\">Confirmed Delivery Address </label>\r\n\r\n <div *ngIf=\"!showMoreAddresses\" class=\"form-container\">\r\n <div class=\"map-selected-address\" id=\"address\" required #isAddrSelectedOrNot>\r\n {{defaultAccountAddress?.formattedAddress}}</div>\r\n </div>\r\n <div *ngIf=\"showMoreAddresses\">\r\n <mat-radio-group aria-labelledby=\"example-radio-group-label\" class=\"example-radio-group radio-btn-size\">\r\n <mat-radio-button class=\"py-1\" [checked]=\"selectedRecentAddress?.id == address.id\" *ngFor=\"let address of deliveryAddresses\" [value]=\"address.id\" (change)=\"selectedRecentAddress=address\">\r\n {{address.formattedAddress}}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n </div>\r\n </div>\r\n <div class=\"py-2 address-inner-container\" *ngIf=\"selectedAddress == 'recentAddress' && deliveryAddresses?.length > 0\">\r\n <mat-radio-group aria-labelledby=\"example-radio-group-label\" class=\"example-radio-group radio-btn-size\">\r\n <mat-radio-button class=\"py-1\" [checked]=\"selectedRecentAddress?.id == address.id\" *ngFor=\"let address of recentAddress \" [value]=\"address.id\" (change)=\"selectedRecentAddress=address\">\r\n {{address.formattedAddress}}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n </div>\r\n <div *ngIf=\"selectedAddress == 'addNewAddress'\">\r\n <!-- Map Div -->\r\n <app-add-new-address [confirmedAddress]=\"confirmedNewAddress\" (updateNewAddress)=\"getNewAddress($event)\"></app-add-new-address>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n <mat-card-header class=\"line-step-navigation last-step\">\r\n <div class=\"card-title cus-title-margin-card\">\r\n <mat-card-title>\r\n <span class=\"card-number\"> 5 </span> {{isDeliveryBox ? 'Site Delivery Requirements': 'Comments '}}\r\n <span class=\"info-icon pl-2\" [ngbTooltip]=\"isDeliveryBox ? siteDeliveryRequirements : clickandCollectComments\" placement=\"bottom\"></span>\r\n </mat-card-title>\r\n </div>\r\n </mat-card-header>\r\n <mat-card class=\"custom-mat-card line-step-navigation\">\r\n <mat-card-content>\r\n <textarea class=\"form-control\" [(ngModel)]=\"checkoutFormData.deliveryPickUpNotes\" rows=\"3\" id=\"Instructions\" [placeholder]=\"isDeliveryBox ? 'Provide any specific delivery instructions':'Provide any specific pickup instructions'\" maxlength=\"250\"></textarea>\r\n </mat-card-content>\r\n </mat-card>\r\n </form>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"cart-page-footer\" #myDiv>\r\n <div class=\"container\">\r\n <div class=\"sticky-footer row\">\r\n <div class=\"col-sm-12\">\r\n <p class=\" float-md-right m-0 checkout-footer-btns\">\r\n <a title=\"Back to Cart\" href=\"/cart\" class=\"mr-3 font-weight-bold\">\r\n <img src=\"../../../../assets/images/ionic-arrow-back.svg\" alt=\"back-arrow\" class=\"mr-2\" /> BACK\r\n </a>\r\n <button type=\"button\" (click)=\"reviewOrder()\" class=\"btn primary-button\">Review And Order</button>\r\n </p>\r\n </div>\r\n <div class=\" col-sm-12 alert alert-danger justify-content-start mt-3\" role=\"alert\" *ngIf=\"errorInd$ | async\">\r\n <img class=\"mr-3\" src=\"../../../../assets/images/erroricon.svg\" alt=\"alert\"> {{infoMessage}}\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { CmsService } from '@spartacus/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { CartService } from '../../services/cart.service';;\r\nimport html2canvas from 'html2canvas';\r\nimport { jsPDF } from 'jspdf';\r\nimport { Observable } from 'rxjs';\r\nimport {OrderFacade } from '@spartacus/order/root';\r\n\r\n\r\n@Component({\r\n selector: 'app-order-confirmation',\r\n templateUrl: './order-confirmation.component.html',\r\n styleUrls: ['./order-confirmation.component.scss']\r\n})\r\nexport class OrderConfirmationComponent implements OnInit {\r\n pageTitle: any;\r\n orderConfirmationContent: any;\r\n showWaitCursor = new BehaviorSubject<boolean>(false);\r\n cartId: any;\r\n cartDetails: any;\r\n orderDetails: any;\r\n totalPrice: any;\r\n environment: any = sessionStorage.getItem('env');\r\n env : any = JSON.parse(this.environment);\r\n ImgUrl:any = this.env.occBaseUrl;\r\n orderId:any;\r\n\r\n constructor(private cmsService: CmsService, private cartService: CartService,\r\n protected orderFacade: OrderFacade) { }\r\n\r\n ngOnInit(): void {\r\n this.orderId = this.orderFacade.getOrderDetails();\r\n this.orderId = localStorage.getItem('orderId');\r\n this.cmsService.getComponentData('OrderThankYouComponent').subscribe((data: any) => {\r\n if (data) {\r\n this.orderConfirmationContent = data.content;\r\n }\r\n })\r\n }\r\n}\r\n","<app-custom-breadcrum class=\"products-breadcums\"></app-custom-breadcrum>\r\n<div class=\"loading \" *ngIf=\"showWaitCursor | async \">Loading&#8230;</div>\r\n\r\n<div class=\"container order-confirmation-container\">\r\n <div class=\"row\">\r\n <div class=\"col-sm-8 offset-md-2 download_alingnment\">\r\n <div class=\"text-left\" [innerHTML]=\"orderConfirmationContent\"></div> \r\n </div>\r\n </div>\r\n <div #divRef class=\"row\">\r\n <div class=\"col-sm-12 pl-0\">\r\n <app-shared-download-order></app-shared-download-order> \r\n </div> \r\n </div> \r\n</div>","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\r\nimport { catchError, } from 'rxjs/operators'; \r\nimport { GET_CART_LIST_ENDPOINT, PLACE_ORDER } from './endPointURL';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class OrderReviewService {\r\n constructor(private http: HttpClient) {}\r\n\r\n public getOrderReview(cartId: any): Observable<any> {\r\n let url = GET_CART_LIST_ENDPOINT.url + cartId + '?fields=FULL';\r\n return this.http.get(url, {\r\n headers: { 'Content-Type': 'application/json' },\r\n })\r\n .pipe(\r\n catchError((errorRes) => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n\r\n public orderPlaceAPI(cartId: any): Observable<any> {\r\n let url = PLACE_ORDER.url + cartId +'&termsChecked=true';\r\n return this.http.post(url, {\r\n headers: { 'Content-Type': 'application/json' },\r\n })\r\n .pipe(\r\n catchError((errorRes) => {\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { OrderReviewService } from '../../../services/order.review';\r\n\r\n@Component({\r\n selector: 'app-delivery-information',\r\n templateUrl: './delivery-information.component.html',\r\n styleUrls: ['./delivery-information.component.scss']\r\n})\r\nexport class DeliveryInformationComponent implements OnInit {\r\n orderReviewData: any;\r\n showWaitCursor = new BehaviorSubject<boolean>(false);\r\n constructor(\r\n private orderReviewService: OrderReviewService\r\n ) { }\r\n ngOnInit(): void {\r\n this.showWaitCursor.next(true);\r\n const cartVal: any = localStorage.getItem('spartacus⚿dimond-spa⚿cart');\r\n const cartID = JSON.parse(cartVal)?.active;\r\n this.orderReviewService.getOrderReview(cartID).subscribe((data: any) => {\r\n this.orderReviewData = data;\r\n this.showWaitCursor.next(false);\r\n })\r\n }\r\n\r\n}\r\n","<div class=\"loading \" *ngIf=\"showWaitCursor | async \">Loading&#8230;</div>\r\n<div class=\"row\">\r\n <div class=\"col-sm-12 pl-md-0\">\r\n <h3 class=\"revieworder-heading\">Delivery Information <span class=\"review-edit-icon\"><a title=\"Delivery Information\" href=\"/checkout\"><img src=\"../../../assets/images/icon-feather-edit.svg\"></a></span></h3>\r\n </div>\r\n</div>\r\n<div class=\"row revieworder-header\">\r\n <div class=\"col-lg-4 col-sm-6 review-header-box text-center\">\r\n <p class=\"font-weight-bold\">Delivery Method</p>\r\n <ng-container *ngIf=\"orderReviewData?.deliveryMode?.code=='standard_delivery'; else pickupdelivery\">\r\n <p class=\"pickupdelivery\">\r\n <img class=\"pickupdelivery-image\" src=\"../../../../../assets/images/delivery.svg\" alt=\"Delivery\" title=\"Delivery\">\r\n </p>\r\n </ng-container>\r\n <ng-template #pickupdelivery>\r\n <p class=\"pickupdelivery\">\r\n <img class=\"pickupdelivery-image\" src=\"../../../../assets/images/pickup.svg\" alt=\"Click & Collect\" title=\"Click & Collect\">\r\n </p>\r\n </ng-template>\r\n <p class=\"font-weight-bold mb-0\">{{orderReviewData?.deliveryMode?.name}}</p>\r\n <p>{{orderReviewData?.deliveryMode?.description}}</p>\r\n </div>\r\n <div class=\"col-lg-4 col-sm-6 review-header-box\">\r\n <p class=\"font-weight-bold mb-0\">Purchase Order Number</p>\r\n <p>{{orderReviewData?.purchaseOrderNumber}}</p>\r\n <div class=\"row\">\r\n <div class=\"col-6 col-sm-6\">\r\n <p class=\"font-weight-bold mb-0\"> {{orderReviewData?.deliveryMode?.code=='standard_delivery' ? 'Delivery Date' : 'Pickup Date'}}</p>\r\n <p>{{orderReviewData?.expectedFromDate.split(' ')[0] }}</p>\r\n </div>\r\n <div class=\"col-6 col-sm-6\">\r\n <p class=\"font-weight-bold mb-0\">{{orderReviewData?.deliveryMode?.code=='standard_delivery' ? 'Delivery Time' : 'Pickup Time'}}</p>\r\n <p>{{orderReviewData?.expectedFromDate.split(' ')[1] + ' ' + orderReviewData?.expectedFromDate.split(' ')[2]}} to {{ orderReviewData?.expectedToDate.split(' ')[1] + ' ' + orderReviewData?.expectedToDate.split(' ')[2] }}</p>\r\n </div>\r\n </div>\r\n <p class=\"font-weight-bold mb-0\">{{orderReviewData?.deliveryMode?.code=='standard_delivery' ? 'Delivery Address' : 'Pickup Location'}}</p>\r\n <p>{{orderReviewData?.deliveryAddress?.formattedAddress}}</p>\r\n </div>\r\n <div class=\"col-lg-4 col-sm-12 review-header-box\">\r\n <p class=\"font-weight-bold mb-0\">{{orderReviewData?.deliveryMode?.code=='standard_delivery' ? 'Site Delivery Requirements' : 'Comments'}}</p>\r\n <p>{{orderReviewData?.deliveryNotes}}</p>\r\n </div>\r\n</div>","import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { CartService } from '../../../services/cart.service';\r\n\r\n@Component({\r\n selector: 'app-order-review-list',\r\n templateUrl: './order-review-list.component.html',\r\n styleUrls: ['./order-review-list.component.scss']\r\n})\r\nexport class OrderReviewListComponent implements OnInit {\r\n showWaitCursor = new BehaviorSubject<boolean>(true);\r\n showDetails: any = [];\r\n hasBundle:boolean=false;\r\n @Input() cartDetails: any;\r\n @Output() updateCartEntry = new EventEmitter<any>();\r\n @Input() isCardData: any;\r\n environment: any = sessionStorage.getItem('env');\r\n env : any = JSON.parse(this.environment);\r\n\r\n imageModalSrc: any;\r\n productInfos: any = [];\r\n isProductInfoAvilable: boolean = false;\r\n\r\n constructor(private cartService: CartService,\r\n private cdr: ChangeDetectorRef,) { }\r\n\r\n ngOnInit(): void {\r\n this.showWaitCursor.next(true);\r\n if(this.cartDetails.length){\r\n this.showWaitCursor.next(false);\r\n }\r\n for (let i = 0; i < this.cartDetails.length; i++) {\r\n this.showDetails.push(false);\r\n }\r\n this.cartService.expandAll.subscribe((data) => {\r\n for (let i = 0; i < this.cartDetails.length; i++) {\r\n this.showDetails[i] = data;\r\n }\r\n });\r\n }\r\n\r\n showHide(ind: number) {\r\n this.showDetails[ind] = !this.showDetails[ind];\r\n }\r\n// Get the Image Details based on Products\r\ngetImageDetails(cartDetails: any, thumbnail: any = true): any {\r\n let imageUrl: any = cartDetails?.product?.images;\r\n if (this.isCardData) {\r\n imageUrl = cartDetails?.product?.images;\r\n } else {\r\n imageUrl = cartDetails?.product?.images?.PRIMARY?.cartIcon;\r\n }\r\n let srcUrl: any;\r\n if (\r\n cartDetails?.attachments &&\r\n cartDetails?.attachments?.length &&\r\n cartDetails?.product?.flashingProduct\r\n ) {\r\n srcUrl =\r\n thumbnail && cartDetails?.attachments?.length > 1\r\n ? cartDetails?.attachments[1]?.downloadURL\r\n : cartDetails?.attachments[0]?.downloadURL;\r\n imageUrl = {\r\n url: (\r\n this.env.occBaseUrl.slice(0, this.env.occBaseUrl.length - 1) +\r\n srcUrl\r\n )?.replace('&attachment=true', ''),\r\n };\r\n }\r\n return imageUrl;\r\n}\r\nviewImage(event: any, cartDetails: any): void {\r\n event.preventDefault();\r\n this.imageModalSrc = this.getImageDetails(cartDetails, false)?.url;\r\n}\r\n\r\ngetPdfLink(cartDetails: any): void {\r\n return this.getImageDetails(cartDetails, false)?.url;\r\n}\r\n\r\nhasImage(cartDetails: any): boolean {\r\n const mimeType = cartDetails?.attachments[0]?.mime;\r\n const mimeArray = [\"image/png\", \"image/jpg\", \"image/jpeg\"];\r\n return mimeArray.includes(mimeType);\r\n}\r\n}\r\n","<div class=\"loading \" *ngIf=\"showWaitCursor | async \">Loading&#8230;</div>\r\n<div class=\"revieworder-table-container\">\r\n <div class=\"row revieworder-header-container\">\r\n <div class=\"col-sm-4 py-2\">ITEM</div>\r\n <div class=\"col-sm-2 py-2\">JOB REFERENCE</div>\r\n <div class=\"col-sm-2 py-2\">TOTAL QTY</div>\r\n <div class=\"col-sm-2 py-2\">UNIT PRICE</div>\r\n <div class=\"col-sm-2 py-2\">TOTAL PRICE</div>\r\n </div>\r\n <div *ngFor=\"let cart of cartDetails;let i = index\">\r\n <div class=\"row revieworder-body-container\">\r\n <div class=\"col-sm-4\">\r\n <div class=\"row py-3 product-image-container\">\r\n <div class=\"col-sm-4 p-md-0 col-lg-2\">\r\n <!-- <cx-media [container]=\"cart?.product?.images\" format=\"cartIcon\" role=\"presentation\"></cx-media> -->\r\n <div class=\"product-img\">\r\n <ng-container\r\n *ngIf=\"\r\n cartDetails[i]?.product?.flashingProduct;\r\n else normalImage\r\n \"\r\n >\r\n <a data-toggle=\"modal\" class=\"flashing-expand\" (click)=\"viewImage($event,cartDetails[i])\" [attr.data-target]=\"'#imageModal'\" *ngIf=\"hasImage(cartDetails[i]);else hasPdf\">\r\n <cx-media\r\n [container]=\"getImageDetails(cartDetails[i])\"\r\n format=\"cartIcon\"\r\n role=\"presentation\"\r\n ></cx-media>\r\n </a>\r\n <ng-template #hasPdf>\r\n <a class=\"flashing-expand flashing-open\" [href]=\"getPdfLink(cartDetails[i])\" target=\"_blank\">\r\n <img class=\"pdf-icon\" src=\"../../../../../assets/images/pdf-icon.svg\" alt=\"Click to open PDF\" title=\"Click to open PDF\" />\r\n </a>\r\n </ng-template>\r\n </ng-container>\r\n <ng-template #normalImage>\r\n <cx-media\r\n [container]=\"getImageDetails(cartDetails[i])\"\r\n format=\"cartIcon\"\r\n role=\"presentation\"\r\n ></cx-media>\r\n </ng-template>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-8 col-lg-10\">\r\n <p class=\" reviewproduct-name mb-2\">{{cart?.product?.name}}</p>\r\n <p class=\"sku-text m-0\">SKU: {{cart?.product?.code }}</p>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"cart?.product?.classifications\">\r\n <div class=\"row\">\r\n <div class=\"col-sm-12 pl-md-0 mb-2\">\r\n <span *ngFor=\"let attributes of cart?.product && cart?.product?.classifications && cart?.product?.classifications[0] && cart?.product?.classifications[0]?.features;last as isLast\">\r\n {{attributes?.featureValues[0]?.value }} <span *ngIf=\"!isLast\"> | </span>\r\n </span>\r\n mm\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"col-sm-2 py-3\">\r\n {{cart?.jobReference || '-'}}\r\n </div>\r\n <div class=\"col-sm-2 py-3\">{{cart.quantityDouble}} {{cart?.basePrice?.unitType}}</div>\r\n <div class=\"col-sm-2 py-3\">{{cart?.basePrice?.formattedValue}}/{{cart?.basePrice?.unitType}}</div>\r\n <div class=\"col-sm-2 py-3\">{{cart?.totalPrice?.formattedValue}} <span class=\"d-block\">excl GST</span></div>\r\n <div class=\"col-sm-12 pl-md-0\">\r\n <ng-container *ngIf=\"cart?.configurationInfos.length\">\r\n <p class=\"colors-paragraph mb-0\">\r\n <span class=\"revieworder-color mr-3\"\r\n [ngStyle]=\"{ background: cart?.configurationInfos[0]?.configurationValue.split('|') | slice:2}\"></span>\r\n {{cart?.configurationInfos[0]?.configurationValue.split('|') | slice:1:2}}\r\n </p>\r\n </ng-container>\r\n <ng-container *ngIf=\"cart?.subLineConfigInfos.length>0\">\r\n <p class=\"m-0\">\r\n <!-- TODO: data-target,aria-controls and id should should come as dynamic -->\r\n <a href=\"javascript:void(0)\" (click)=\"showHide(i)\" class=\"see-more-link\">\r\n {{showDetails[i] == true ? 'Hide' : 'See'}} more details\r\n </a>\r\n </p>\r\n <div class=\"revieworder-collapse\" *ngIf=\"showDetails[i]\">\r\n <div class=\"row\">\r\n <div class=\"col-sm-6 bundle-details\">\r\n <div class=\"row bundle-details-header\">\r\n <div class=\"col-3\">Quantity</div>\r\n <div class=\"col-3\">Length (LM)</div>\r\n <ng-container *ngIf=\"cart?.subLineConfigInfos[i]?.bundleName\">\r\n <div class=\"col-3\">Bundle</div>\r\n <div class=\"col-3\">Reference</div>\r\n </ng-container>\r\n </div>\r\n <div class=\"row\" *ngFor=\"let subLine of cart?.subLineConfigInfos\">\r\n <div class=\"col-3\">{{subLine?.quantity}}</div>\r\n <div class=\"col-3\">{{subLine?.length | number:'0.3-3'}}</div>\r\n <ng-container *ngIf=\"subLine?.bundleName\">\r\n <div class=\"col-3\">{{subLine?.bundleName}}</div>\r\n <div class=\"col-3\">{{subLine?.reference}}</div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div *ngIf=\"cartDetails[i]?.product?.flashingProduct && cartDetails[i]?.productConfiguredInfos && cartDetails[i]?.productConfiguredInfos?.length>0\">\r\n <div class=\"flashing-block \" *ngFor=\"let data of cartDetails[i]?.productConfiguredInfos\">\r\n <div class=\"row\" >\r\n <div class=\"col-sm-3\">\r\n <h3 class=\"flash-title\">{{ data?.product?.name }}</h3>\r\n <h6 class=\"skuId\">SKU: {{ data?.product?.code }}</h6>\r\n <span *ngIf=\"data?.girth\">Grith: +{{data.girth}}mm </span>\r\n </div>\r\n <div class=\"offset-sm-3 col-sm-2\">\r\n {{data?.quantityDouble}}{{data?.unitType}}\r\n </div>\r\n <div class=\"col-sm-2\">\r\n {{data?.basePrice?.formattedValue}}/{{data?.unitType}}\r\n </div>\r\n <div class=\"col-sm-2\">\r\n {{data?.totalPrice?.formattedValue}}\r\n <span class=\"gst-text\">excl GST</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div\r\n class=\"modal fade\"\r\n id=\"imageModal\"\r\n role=\"dialog\"\r\n aria-labelledby=\"imageModal\"\r\n aria-hidden=\"true\"\r\n #imageModal\r\n>\r\n <div class=\"modal-dialog modal-lg\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <i\r\n class=\"icon-close invite-pop-close\"\r\n #closeInviteModal\r\n data-dismiss=\"modal\"\r\n aria-label=\"Close\"\r\n ></i>\r\n </div>\r\n <div class=\"modal-body m-4\">\r\n <img [src]=\"imageModalSrc\" alt=\"alert\" />\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { CartService } from '../../../services/cart.service';\r\n\r\n@Component({\r\n selector: 'app-order-review-grid',\r\n templateUrl: './order-review-grid.component.html',\r\n styleUrls: ['./order-review-grid.component.scss']\r\n})\r\nexport class OrderReviewGridComponent implements OnInit {\r\n showDetails: any = [];\r\n arrowUpDown:any=[];\r\n showWaitCursor = new BehaviorSubject<boolean>(false);\r\n\r\n @Input() cartDetails: any;\r\n @Output() updateCartEntry = new EventEmitter<any>();\r\n @Input() isCardData: any;\r\n environment: any = sessionStorage.getItem('env');\r\n env : any = JSON.parse(this.environment);\r\n\r\n imageModalSrc: any;\r\n \r\n constructor(private cartService: CartService,\r\n private cdr: ChangeDetectorRef) { }\r\n\r\n ngOnInit(): void {\r\n for (let i = 0; i < this.cartDetails.length; i++) {\r\n this.showDetails.push(false);\r\n }\r\n this.cartService.expandAll.subscribe((data) => {\r\n for (let i = 0; i < this.cartDetails.length; i++) {\r\n this.showDetails[i] = data;\r\n }\r\n });\r\n this.cdr.detectChanges();\r\n }\r\n\r\n showHide(ind: number) {\r\n this.showDetails[ind] = !this.showDetails[ind];\r\n }\r\n arrowHideShow(id: number){\r\n this.arrowUpDown[id] = !this.arrowUpDown[id];\r\n }\r\n\r\n // Get the Image Details based on Products\r\ngetImageDetails(cartDetails: any, thumbnail: any = true): any {\r\n let imageUrl: any = cartDetails?.product?.images;\r\n if (this.isCardData) {\r\n imageUrl = cartDetails?.product?.images;\r\n } else {\r\n imageUrl = cartDetails?.product?.images?.PRIMARY?.cartIcon;\r\n }\r\n let srcUrl: any;\r\n if (\r\n cartDetails?.attachments &&\r\n cartDetails?.attachments?.length &&\r\n cartDetails?.product?.flashingProduct\r\n ) {\r\n srcUrl =\r\n thumbnail && cartDetails?.attachments?.length > 1\r\n ? cartDetails?.attachments[1]?.downloadURL\r\n : cartDetails?.attachments[0]?.downloadURL;\r\n imageUrl = {\r\n url: (\r\n this.env.occBaseUrl.slice(0, this.env.occBaseUrl.length - 1) +\r\n srcUrl\r\n )?.replace('&attachment=true', ''),\r\n };\r\n }\r\n return imageUrl;\r\n}\r\nviewImage(event: any, cartDetails: any): void {\r\n event.preventDefault();\r\n this.imageModalSrc = this.getImageDetails(cartDetails, false)?.url;\r\n}\r\n\r\ngetPdfLink(cartDetails: any): void {\r\n return this.getImageDetails(cartDetails, false)?.url;\r\n}\r\n\r\nhasImage(cartDetails: any): boolean {\r\n const mimeType = cartDetails?.attachments[0]?.mime;\r\n const mimeArray = [\"image/png\", \"image/jpg\", \"image/jpeg\"];\r\n return mimeArray.includes(mimeType);\r\n}\r\n}\r\n","<div class=\"loading \" *ngIf=\"showWaitCursor | async \">Loading&#8230;</div>\r\n<div class=\"py-3\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-3 col-sm-6\" *ngFor=\"let cart of cartDetails;let i = index\">\r\n <div class=\"cart-grid-tile\">\r\n <div class=\"grid-tile-top position-relative\">\r\n <div class=\"d-flex justify-content-between align-items-center mb-3\">\r\n <span class=\"sku-code\">SKU:{{cart?.product?.code}}</span>\r\n <span>#{{i+1}}</span>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-3 col-md-3\">\r\n <!-- <cx-media [container]=\"cart?.product?.images\" format=\"cartIcon\" role=\"presentation\"></cx-media> -->\r\n <ng-container\r\n *ngIf=\"\r\n cartDetails[i]?.product?.flashingProduct;\r\n else normalImage\r\n \"\r\n >\r\n <a\r\n data-toggle=\"modal\"\r\n class=\"flashing-expand\"\r\n (click)=\"viewImage($event, cartDetails[i])\"\r\n [attr.data-target]=\"'#imageModal'\" *ngIf=\"hasImage(cartDetails[i]);else hasPdf\"\r\n >\r\n <cx-media\r\n [container]=\"getImageDetails(cartDetails[i])\"\r\n format=\"cartIcon\"\r\n role=\"presentation\"\r\n ></cx-media>\r\n </a>\r\n <ng-template #hasPdf>\r\n <a class=\"flashing-expand flashing-open\" [href]=\"getPdfLink(cartDetails[i])\" target=\"_blank\">\r\n <img class=\"pdf-icon\" src=\"../../../../../assets/images/pdf-icon.svg\" alt=\"Click to open PDF\" title=\"Click to open PDF\" />\r\n </a>\r\n </ng-template>\r\n </ng-container>\r\n <ng-template #normalImage>\r\n <cx-media\r\n [container]=\"getImageDetails(cartDetails[i])\"\r\n format=\"cartIcon\"\r\n role=\"presentation\"\r\n ></cx-media>\r\n </ng-template>\r\n </div>\r\n <div class=\"col-9 col-md-7\">\r\n <h4>{{cart?.product?.name}}</h4>\r\n </div>\r\n </div>\r\n <span class=\"expandBtn\" (click)=\"arrowHideShow(i)\">\r\n <ng-container *ngIf=\"arrowUpDown[i]==true; else arrowUp\">\r\n <i class=\"fas fa-chevron-up\"></i>\r\n </ng-container>\r\n <ng-template #arrowUp>\r\n <i class=\"fas fa-chevron-down\"></i>\r\n </ng-template>\r\n </span>\r\n </div>\r\n <ng-container *ngIf=\"arrowUpDown[i]\">\r\n <div class=\"grid-tile-middle\">\r\n <ng-container *ngIf=\"cart?.product?.classifications\">\r\n <p class=\"mt-0 mb-0\">\r\n <span *ngFor=\"let attributes of cart?.product?.classifications[0]?.features;last as isLast\">\r\n {{attributes?.featureValues[0]?.value }} <span *ngIf=\"!isLast\"> | </span>\r\n </span>\r\n mm\r\n </p>\r\n </ng-container>\r\n <p class=\"m-0\">{{cart?.jobReference || '-'}}</p>\r\n <ng-container *ngIf=\"cart?.subLineConfigInfos.length>0\">\r\n <a href=\"javascript:void(0)\" (click)=\"showHide(i)\" class=\"see-more-link\">\r\n {{showDetails[i] == true ? 'Hide' : 'See'}} more details\r\n </a>\r\n <div *ngIf=\"showDetails[i]\">\r\n <ng-container>\r\n <table class=\"no-border cart-details-table w-100\">\r\n <tr>\r\n <th>Quantity</th>\r\n <th>Length (LM)</th> \r\n <th *ngIf=\"cart?.subLineConfigInfos[i]?.bundleName\">Bundle</th> \r\n </tr> \r\n <tr *ngFor=\"let subLine of cart?.subLineConfigInfos\">\r\n <td>{{subLine?.quantity ? subLine?.quantity : '-'}}</td>\r\n <td>{{subLine?.length | number:'0.3-3'}}</td>\r\n <td *ngIf=\"subLine?.bundleName\">{{subLine?.bundleName}}<br>{{subLine?.reference}}</td>\r\n </tr>\r\n </table>\r\n </ng-container>\r\n </div>\r\n </ng-container> \r\n </div>\r\n </ng-container>\r\n <div class=\"grid-tile-bottom\">\r\n <div class=\"row\">\r\n <div class=\"col-6 border-right\">\r\n <div class=\"total-qty\">\r\n <span>Total Qty: {{cart.quantityDouble}}{{cart?.basePrice?.unitType}}</span><br>\r\n <span>{{cart?.basePrice?.formattedValue}}/{{cart?.basePrice?.unitType}}</span>\r\n </div>\r\n </div>\r\n <div class=\"col-6 d-flex justify-content-end align-items-center text-right \">\r\n <div class=\"total-amount text-right\">\r\n <h4>{{cart?.totalPrice?.formattedValue}}</h4>\r\n <span>excl GST</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"cartDetails[i]?.product?.flashingProduct && cartDetails[i]?.productConfiguredInfos && cartDetails[i]?.productConfiguredInfos?.length>0\">\r\n <div class=\"flashing-block \" *ngFor=\"let data of cartDetails[i]?.productConfiguredInfos\">\r\n <div class=\"grid-tile-top\">\r\n <div>\r\n <h6 class=\"skuId\">SKU: {{data?.product?.code}}</h6>\r\n <h3 class=\"flash-title\">{{data?.product?.name}}</h3>\r\n <span *ngIf=\"data?.girth\">Grith: +{{data?.girth}}mm</span>\r\n </div>\r\n </div>\r\n <div class=\"grid-tile-bottom\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6 col-6 d-flex align-items-center border-right\">\r\n <div class=\"total-qty\">\r\n <div>Total Qty: {{data?.quantityDouble}}{{data?.unitType}}</div>\r\n <span>@{{data?.basePrice?.formattedValue}}/{{data?.unitType}}</span>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6 col-6 d-flex justify-content-end align-items-center text-right\">\r\n <div class=\"total-amount text-right\">\r\n <h4>{{data?.totalPrice?.formattedValue}}</h4>\r\n <span>excl GST</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n<div\r\n class=\"modal fade\"\r\n id=\"imageModal\"\r\n role=\"dialog\"\r\n aria-labelledby=\"imageModal\"\r\n aria-hidden=\"true\"\r\n #imageModal\r\n>\r\n <div class=\"modal-dialog modal-lg\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <i\r\n class=\"icon-close invite-pop-close\"\r\n #closeInviteModal\r\n data-dismiss=\"modal\"\r\n aria-label=\"Close\"\r\n ></i>\r\n </div>\r\n <div class=\"modal-body m-4\">\r\n <img [src]=\"imageModalSrc\" alt=\"alert\" />\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, ElementRef, HostListener, OnInit, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { CmsService } from '@spartacus/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { CartService } from '../../services/cart.service';\r\nimport { OrderReviewService } from '../../services/order.review';\r\nimport { CommonUtils } from '../../utils';\r\n\r\n@Component({\r\n selector: 'app-order-review',\r\n templateUrl: './order-review.component.html',\r\n styleUrls: ['./order-review.component.scss']\r\n})\r\nexport class OrderReviewComponent implements OnInit {\r\n pageTitle: any;\r\n cartId: any;\r\n orderReviewParagraph: any;\r\n orderErrorParagraph: any;\r\n openPopupModal: boolean = false;\r\n cartDetails: any;\r\n isDesktop = true;\r\n isMobile = false;\r\n isTablet = false;\r\n listview: boolean = true;\r\n isExpandAll: boolean = false;\r\n totalPrice: any;\r\n breadcrumbData: any = [];\r\n showWaitCursor = new BehaviorSubject<boolean>(true);\r\n orderReviewPage: boolean = true;\r\n @ViewChild('errorModalBtn') errorModalBtn: any;\r\n @ViewChild('myDiv') myDiv: ElementRef;\r\n @HostListener('window:scroll', ['$event'])\r\n onWindowScroll(event: any) {\r\n this.checkScrollEnd();\r\n }\r\n constructor(private cmsService: CmsService,\r\n private cartService: CartService,\r\n private router: Router,\r\n private orderReviewService: OrderReviewService) { }\r\n\r\n ngOnInit(): void {\r\n const cartObj: any = localStorage.getItem('spartacus⚿dimond-spa⚿cart');\r\n this.cartId = JSON.parse(cartObj)?.active;\r\n this.breadcrumbData.push({ url: '/', name: 'Home' });\r\n this.breadcrumbData.push({ url: '/cart', name: 'Cart' });\r\n this.breadcrumbData.push({ url: '/checkout', name: 'Checkout' });\r\n this.breadcrumbData.push({ url: '/review-order', name: 'Review Order' });\r\n this.cmsService.getCurrentPage().subscribe((pagadata: any) => {\r\n this.pageTitle = pagadata.title;\r\n })\r\n this.cmsService.getComponentData('OptionalContentComponent').subscribe((data: any) => {\r\n if (data) {\r\n this.orderReviewParagraph = data.content;\r\n }\r\n })\r\n this.cmsService.getComponentData('OrderErrorParagraphComponent').subscribe((data: any) => {\r\n if (data) {\r\n this.orderErrorParagraph = data.content;\r\n }\r\n })\r\n this.getCartLists();\r\n this.onPageRefresh();\r\n }\r\n checkScrollEnd() {\r\n const windowHeight = 'innerHeight' in window ? window.innerHeight : document.documentElement.offsetHeight;\r\n const body = document.body;\r\n const html = document.documentElement;\r\n const docHeight = Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);\r\n const windowBottom = windowHeight + window.pageYOffset;\r\n if (windowBottom >= docHeight || window.pageYOffset === 0) {\r\n // User has reached the end of the scroll, show the div\r\n this.myDiv.nativeElement.style.display = 'block';\r\n } else {\r\n // User is still scrolling, hide the div\r\n this.myDiv.nativeElement.style.display = 'none';\r\n }\r\n }\r\n getCartLists() {\r\n this.showWaitCursor.next(true);\r\n this.cartService.getCartList(this.cartId).subscribe(res => {\r\n this.cartDetails = res?.entries;\r\n this.totalPrice = res?.totalPrice?.formattedValue;\r\n this.showWaitCursor.next(false);\r\n }, (error: any) => {\r\n this.showWaitCursor.next(false);\r\n });\r\n }\r\n\r\n gridView() {\r\n this.listview = false;\r\n }\r\n listView() {\r\n this.listview = true;\r\n }\r\n\r\n expandAll() {\r\n this.isExpandAll = true;\r\n this.cartService.expandAll.next(true);\r\n }\r\n\r\n contractAll() {\r\n this.isExpandAll = false;\r\n this.cartService.expandAll.next(false);\r\n }\r\n orderPlace() {\r\n this.showWaitCursor.next(true);\r\n this.orderReviewService.orderPlaceAPI(this.cartId).subscribe(\r\n (response: any) => {\r\n if (response) {\r\n localStorage.setItem(\"orderId\",response?.code);\r\n sessionStorage.removeItem('checkoutData')\r\n localStorage.removeItem('spartacus⚿dimond-spa⚿cart');\r\n window.location.href = '/order-confirmation'; \r\n this.showWaitCursor.next(false);\r\n\r\n }\r\n }, (error: any) => {\r\n this.errorModalBtn.nativeElement.click();\r\n this.showWaitCursor.next(false);\r\n })\r\n }\r\n onResize(event: any) {\r\n event.target.innerWidth;\r\n if (event.target.innerWidth < 992) {\r\n this.isMobile = true;\r\n this.isDesktop = false;\r\n }\r\n else {\r\n this.isDesktop = true;\r\n }\r\n }\r\n onPageRefresh() {\r\n this.isMobile = CommonUtils.isMobile();\r\n this.isTablet = CommonUtils.isTablet();\r\n this.isDesktop = CommonUtils.isDesktop();\r\n }\r\n\r\n}\r\n","<div class=\"loading \" *ngIf=\"showWaitCursor | async \">Loading&#8230;</div>\r\n<app-custom-breadcrum [customCrumbData]=\"breadcrumbData\" class=\"products-breadcums\"></app-custom-breadcrum>\r\n<div class=\"container revieworder-container\" (window:resize)=\"onResize($event)\">\r\n <div class=\"row\">\r\n <div class=\"col-sm-12 pl-md-0\">\r\n <h1 class=\"pageTitle\">{{pageTitle}}</h1>\r\n <div class=\"text-left pageParaText mb-5\" [innerHTML]=\"orderReviewParagraph\"></div>\r\n </div>\r\n </div>\r\n\r\n <app-delivery-information></app-delivery-information>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-sm-12 p-md-0\">\r\n <h3 class=\"revieworder-heading pb-4\">\r\n Order Summary\r\n <span class=\"review-edit-icon\"><a title=\"Order Summary\" href=\"/cart\"><img src=\"../../../assets/images/icon-feather-edit.svg\"></a></span>\r\n </h3>\r\n </div>\r\n </div>\r\n <div class=\"row pb-4\">\r\n <div class=\"col-sm-2 col-md-2 p-md-0 mt-4\">\r\n <span class=\"total-item\"> {{cartDetails?.length}} Items in Order</span>\r\n </div>\r\n <div class=\"col-sm-10 col-md-5 mt-4\">\r\n <div class=\"expandcollapse-link\">\r\n <a title=\"Expand all\" href=\"javascript:void(0)\" (click)=\"expandAll()\" [ngClass]=\"{disabled : isExpandAll == true}\"> Expand all</a> |\r\n <a title=\"Expand all\" href=\"javascript:void(0)\" (click)=\"contractAll()\" [ngClass]=\"{disabled : isExpandAll == false}\"> Contract all</a>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-5 col-md-5 float-right\" *ngIf=\"isDesktop\">\r\n <div class=\"d-flex justify-content-end\">\r\n <div class=\"main-view\">\r\n <button [ngClass]=\"{'active': listview === false}\" class=\"btn btn-sm\" (click)=\"gridView()\">\r\n <img *ngIf=\"listview === false\" src=\"../../../assets/images/Grid-light.svg\" alt=\"gridviewlight\">\r\n <img *ngIf=\"listview === true\" src=\"../../../assets/images/Grid-dark.svg\" alt=\"gridviewdark\">\r\n Grid</button>\r\n <button [ngClass]=\"{'active': listview === true}\" class=\"btn btn-sm active\" (click)=\"listView()\">\r\n <img *ngIf=\"listview === true\" class=\"list-img\" src=\"../../../assets/images/List-light.svg\"\r\n alt=\"listview\">\r\n <img *ngIf=\"listview === false\" class=\"list-img\" src=\"../../../assets/images/List-dark.svg\"\r\n alt=\"listview\">\r\n List</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"isDesktop\">\r\n <app-order-review-list (updateCartEntry)=\"getCartLists()\" [cartDetails]=\"cartDetails\" *ngIf=\"listview && cartDetails\" [isCardData]=\"orderReviewPage\"></app-order-review-list>\r\n <app-order-review-grid (updateCartEntry)=\"getCartLists()\" [cartDetails]=\"cartDetails\" *ngIf=\"!listview && cartDetails\" [isCardData]=\"orderReviewPage\"></app-order-review-grid>\r\n </ng-container>\r\n <ng-container *ngIf=\"!isDesktop\">\r\n <app-order-review-grid (updateCartEntry)=\"getCartLists()\" [cartDetails]=\"cartDetails\" *ngIf=\"cartDetails\" [isCardData]=\"orderReviewPage\"></app-order-review-grid>\r\n </ng-container>\r\n</div>\r\n\r\n<div class=\"revieworder-footer-container\" #myDiv>\r\n <div class=\"container\">\r\n <div class=\"row footerMobileView\">\r\n <div class=\"col-md-12 col-6\" [ngClass]=\"!isMobile ? 'text-right' : ''\">\r\n <p class=\"mb-0 review-total-text\">Total</p>\r\n <p class=\"review-total-value mb-2\">{{totalPrice}} <span class=\"d-block\"> excl GST and freight</span></p>\r\n </div>\r\n <div class=\"col-md-12 col-6\" [ngClass]=\"!isMobile ? 'text-right' : ''\">\r\n <p class=\"review-action-btns text-right m-0\">\r\n <ng-container *ngIf=\"!isMobile\">\r\n <a class=\"mr-4 font-weight-bold\" href=\"/cart\" title=\"Back to Cart\"> <img src=\"../../../assets/images/ionic-arrow-back.svg\" alt=\"Back to Cart\" /> BACK TO CART</a>\r\n </ng-container>\r\n <a title=\"Place Order\" class=\"placeorder-btn btn primary-button text-uppercase\" (click)=\"orderPlace()\"> Place Order</a>\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-container *ngIf=\"isMobile\">\r\n <div class=\"col-12 text-center mb-4\">\r\n <a class=\"mr-4\" href=\"/cart\" title=\"Back to Cart\"> <img src=\"../../../assets/images/ionic-arrow-back.svg\" alt=\"Back to Cart\" /> BACK TO CART</a>\r\n </div>\r\n</ng-container>\r\n\r\n<input type=\"hidden\" data-toggle=\"modal\" data-target=\"#errorModal\" #errorModalBtn />\r\n<div class=\"modal fade\" id=\"errorModal\">\r\n <div class=\"loading\" *ngIf=\"showWaitCursor | async \">Loading&#8230;</div>\r\n <div class=\"modal-dialog\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header border-0\">\r\n <i class=\"icon-close closePopup\" data-dismiss=\"modal\" #closebutton aria-label=\"Close\"></i>\r\n </div>\r\n <div class=\"modal-body\" [innerHTML]=\"orderErrorParagraph\">\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { OrderConfirmationComponent } from './order-confirmation/order-confirmation.component';\r\nimport { CmsConfig, ConfigModule } from '@spartacus/core';\r\nimport { OrderReviewComponent } from './order-review/order-review.component';\r\nimport { DeliveryInformationComponent } from './order-review/delivery-information/delivery-information.component';\r\nimport { OrderReviewListComponent } from './order-review/order-review-list/order-review-list.component';\r\nimport { OrderReviewGridComponent } from './order-review/order-review-grid/order-review-grid.component';\r\nimport { MediaModule } from '@spartacus/storefront';\r\nimport { CustomCheckoutComponent } from './custom-checkout/custom-checkout.component';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { NgbDatepickerModule, NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { TimePickerModule } from '@syncfusion/ej2-angular-calendars';\r\nimport { SharedComponentsModule } from '../shared/shared-components.module';\r\nimport { AuthModule } from '@auth0/auth0-angular';\r\nimport { CheckoutService } from '@spartacus/checkout/core';\r\nimport { AddNewAddressComponent } from './add-new-address/add-new-address.component';\r\nimport { CustomCheckoutService } from '../services/checkout.service';\r\n\r\nlet sharedData: any = {};\r\nconst listOfModules: any = [SharedComponentsModule,];\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n OrderConfirmationComponent,\r\n OrderReviewComponent,\r\n DeliveryInformationComponent,\r\n OrderReviewListComponent,\r\n OrderReviewGridComponent,\r\n CustomCheckoutComponent,\r\n AddNewAddressComponent,\r\n ],\r\n imports: [ \r\n CommonModule,\r\n MatCardModule,\r\n MatListModule,\r\n MediaModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NgbDatepickerModule,\r\n MatRadioModule,\r\n SharedComponentsModule,\r\n listOfModules,\r\n TimePickerModule,\r\n NgbModule,\r\n ConfigModule.withConfig({\r\n cmsComponents: {\r\n CustomOrderConfirmationComponent: {\r\n component: OrderConfirmationComponent,\r\n },\r\n CustomOrderSummaryComponent: {\r\n component: OrderReviewComponent,\r\n },\r\n CustomOrderCheckoutComponent: {\r\n component: CustomCheckoutComponent\r\n }\r\n },\r\n } as CmsConfig),\r\n ],\r\n})\r\nexport class CheckoutModule {\r\n constructor(@Optional() @SkipSelf() parentModule?: CheckoutModule) {\r\n if (parentModule) {\r\n throw new Error(\r\n 'TeamModule is already loaded. Import it in the AppModule only');\r\n }\r\n }\r\n\r\n public static forRoot(environment: any): ModuleWithProviders<CheckoutModule> {\r\n sharedData = environment;\r\n sessionStorage.setItem('env', JSON.stringify(environment) );\r\n localStorage.setItem('envUrl', environment.occBaseUrl + environment.baseSiteId)\r\n listOfModules.push(AuthModule.forRoot({\r\n domain: sharedData.auth0Domain,\r\n clientId: sharedData.auth0Client_id,\r\n redirect_uri: sharedData.UIsiteURl\r\n }))\r\n return {\r\n ngModule: CheckoutModule,\r\n providers: [\r\n CustomCheckoutService,\r\n {\r\n provide: 'env', // you can also use InjectionToken\r\n useValue: environment\r\n }\r\n ]\r\n };\r\n\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs'; \r\nimport { CmsService } from '@spartacus/core'; \r\nimport { CommonUtils } from '../../utils';\r\nimport { CartService } from '../../services/cart.service';\r\n\r\n@Component({\r\n selector: 'app-custom-cart-detail',\r\n templateUrl: './custom-cart-detail.component.html',\r\n styleUrls: ['./custom-cart-detail.component.scss'],\r\n})\r\nexport class CustomCartDetailComponent implements OnInit, OnChanges {\r\n isMobile = false;\r\n isTablet = false;\r\n isDesktop = true;\r\n listview: boolean = true;\r\n isExpandAll: boolean = false;\r\n cartId: any;\r\n cartDetails: any = [];\r\n showWaitCursor = new BehaviorSubject<boolean>(true);\r\n additionalPara: any;\r\n cartPage:boolean=true;\r\n constructor(\r\n private cartService: CartService,\r\n private cdr: ChangeDetectorRef,\r\n private cmsService: CmsService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n const cartObj: any = localStorage.getItem('spartacus⚿dimond-spa⚿cart');\r\n this.cartId = JSON.parse(cartObj)?.active;\r\n this.getCartLists();\r\n this.onPageRefresh();\r\n this.ParaContent();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (!changes?.cartDetails?.firstChange) {\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n ParaContent() {\r\n // Static Content provided by Hybris\r\n this.cmsService\r\n .getComponentData('AdditionalColoursParagraphComponent')\r\n .subscribe((res: any) => {\r\n this.additionalPara = res;\r\n });\r\n }\r\n\r\n toggleGridOrListView(event: any): void {\r\n event.preventDefault();\r\n this.listview = !this.listview;\r\n }\r\n\r\n getCartLists(): void {\r\n this.cartService.getCartList(this.cartId).subscribe(\r\n (res: any) => {\r\n if (res) {\r\n this.cartDetails = res?.entries;\r\n this.cdr.detectChanges();\r\n this.showWaitCursor.next(false);\r\n }\r\n },\r\n (error: any) => {\r\n this.showWaitCursor.next(false);\r\n }\r\n );\r\n }\r\n\r\n expandAll() {\r\n this.isExpandAll = true;\r\n this.cartService.expandAll.next(true);\r\n }\r\n\r\n contractAll() {\r\n this.isExpandAll = false;\r\n this.cartService.expandAll.next(false);\r\n }\r\n\r\n onResize(event: any) {\r\n event.target.innerWidth;\r\n if (event.target.innerWidth < 992) {\r\n this.isMobile = true;\r\n this.isDesktop = false;\r\n } else {\r\n this.isDesktop = true;\r\n }\r\n }\r\n onPageRefresh() {\r\n this.isMobile = CommonUtils.isMobile();\r\n this.isTablet = CommonUtils.isTablet();\r\n this.isDesktop = CommonUtils.isDesktop();\r\n }\r\n\r\n}\r\n","<div class=\"loading \" *ngIf=\"showWaitCursor | async \">Loading&#8230;</div>\r\n\r\n<div class=\"container\" (window:resize)=\"onResize($event)\">\r\n <div class=\"d-flex justify-content-between align-items-end py-3\">\r\n <div class=\"d-flex\">\r\n <span class=\"total-item\"> {{cartDetails?.length}} Items in Cart</span>\r\n <ul class=\"d-flex expand-collapse\">\r\n <li (click)=\"expandAll()\" [ngClass]=\"{disabled : isExpandAll == true}\">Expand all</li>\r\n <li (click)=\"contractAll()\" [ngClass]=\"{disabled : isExpandAll == false}\">Contract all</li>\r\n </ul>\r\n </div>\r\n\r\n <div class=\"text-right\">\r\n <div class=\"main-view\" *ngIf=\"isDesktop\">\r\n <button [ngClass]=\"{'active': listview === false}\" class=\"btn btn-sm\" (click)=\"toggleGridOrListView($event)\">\r\n <img *ngIf=\"listview === false\" src=\"../../../assets/images/Grid-light.svg\" alt=\"gridviewlight\">\r\n <img *ngIf=\"listview === true\" src=\"../../../assets/images/Grid-dark.svg\" alt=\"gridviewdark\">\r\n Grid\r\n </button>\r\n <button [ngClass]=\"{'active': listview === true}\" class=\"btn btn-sm active\" (click)=\"toggleGridOrListView($event)\">\r\n <img *ngIf=\"listview === true\" class=\"list-img\" src=\"../../../assets/images/List-light.svg\" alt=\"listview\">\r\n <img *ngIf=\"listview === false\" class=\"list-img\" src=\"../../../assets/images/List-dark.svg\" alt=\"listview\">\r\n List\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"isDesktop\">\r\n <app-custom-cart-list (updateCartEntry)=\"getCartLists()\" [cartDetails]=\"cartDetails\" [additionalPara]=\"additionalPara\" *ngIf=\"listview && cartDetails\" [isCardData]=\"cartPage\"> </app-custom-cart-list>\r\n <app-custom-cart-grid (updateCartEntry)=\"getCartLists()\" [cartDetails]=\"cartDetails\" [additionalPara]=\"additionalPara\" *ngIf=\"!listview && cartDetails\" [isCardData]=\"cartPage\"></app-custom-cart-grid>\r\n </ng-container>\r\n <ng-container *ngIf=\"!isDesktop\">\r\n <app-custom-cart-grid (updateCartEntry)=\"getCartLists()\" [cartDetails]=\"cartDetails\" [additionalPara]=\"additionalPara\" *ngIf=\"cartDetails\" [isCardData]=\"cartPage\"></app-custom-cart-grid>\r\n </ng-container>\r\n</div>\r\n\r\n","/*\r\n * SPDX-FileCopyrightText: 2022 SAP Spartacus team <spartacus-team@sap.com>\r\n *\r\n * SPDX-License-Identifier: Apache-2.0\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { SavedCartFacade } from '@spartacus/cart/saved-cart/root';\r\nimport { Cart, RoutingService } from '@spartacus/core';\r\nimport { Observable } from 'rxjs';\r\nimport {\r\n distinctUntilChanged,\r\n filter,\r\n map,\r\n shareReplay,\r\n switchMap,\r\n tap,\r\n} from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SavedCartDetailsService {\r\n protected savedCartId$ = this.routingService.getRouterState().pipe(\r\n map((routingData) => routingData.state.params.savedCartId),\r\n distinctUntilChanged()\r\n );\r\n\r\n protected savedCart$ = this.savedCartId$.pipe(\r\n filter((cartId) => Boolean(cartId)),\r\n tap((savedCartId: string) =>\r\n this.savedCartService.loadSavedCart(savedCartId)\r\n ),\r\n switchMap((savedCartId: string) => this.savedCartService.get(savedCartId)),\r\n shareReplay({ bufferSize: 1, refCount: true })\r\n );\r\n\r\n constructor(\r\n protected routingService: RoutingService,\r\n protected savedCartService: SavedCartFacade\r\n ) {}\r\n\r\n getSavedCartId(): Observable<string> {\r\n return this.savedCartId$;\r\n }\r\n\r\n getCartDetails(): Observable<Cart | undefined> {\r\n return this.savedCart$;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { SavedCartFacade } from '@spartacus/cart/saved-cart/root';\r\nimport { Cart, CmsService } from '@spartacus/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\nimport { savedCartDetails } from '../../saved-cart-general';\r\nimport { SavedCartDetailsService } from '../saved-cart-details.service';\r\n\r\n@Component({\r\n selector: 'app-saved-cart-details-overview',\r\n templateUrl: './saved-cart-details-overview.component.html',\r\n styleUrls: ['./saved-cart-details-overview.component.scss']\r\n})\r\nexport class SavedCartDetailsOverviewComponent implements OnInit {\r\n pageTitle: any;\r\n descriptionLength: boolean = false;\r\n savedCartDetails = savedCartDetails;\r\n showWaitCursor = new BehaviorSubject<boolean>(false);\r\n savedCart$: Observable<Cart | undefined> = this.savedCartDetailsService\r\n .getCartDetails().pipe(tap((cart) => {\r\n if ((cart?.entries ?? []).length <= 0 && !!cart?.code) {\r\n this.savedCartService.deleteSavedCart(cart.code);\r\n }\r\n })\r\n );\r\n constructor(\r\n protected savedCartService: SavedCartFacade,\r\n protected savedCartDetailsService: SavedCartDetailsService,\r\n public cmsService: CmsService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.cmsService.getCurrentPage().subscribe((pagadata: any) => {\r\n this.pageTitle = pagadata.title;\r\n })\r\n this.savedCart$.subscribe((data: any) => {\r\n this.showWaitCursor.next(true);\r\n if (data && data.description.length > 90) {\r\n this.descriptionLength = true;\r\n this.showWaitCursor.next(false);\r\n } else {\r\n this.descriptionLength = false;\r\n this.showWaitCursor.next(false);\r\n }\r\n\r\n })\r\n }\r\n\r\n}\r\n","<app-custom-breadcrum></app-custom-breadcrum>\r\n<div class=\"container\">\r\n <ng-container *ngIf=\"savedCart$ | async as cart\">\r\n <ng-template ngIf=\"pageTitle\">\r\n <h1 class=\"pageTitle my-4 py-2\">{{cart.name}}</h1>\r\n </ng-template>\r\n <div class=\"row border\">\r\n <div class=\"col-md-4 col-sm-12 p-4 border-right\">\r\n <label class=\"d-flex justify-content-between cardLabel mb-2\">\r\n {{savedCartDetails.cartName}}\r\n <button [attr.aria-label]=\"savedCartDetails.editSavedCart\" class=\" border-0 edit-cart-btn\" data-toggle=\"modal\" data-target=\"#savedCardModal\">\r\n <img src=\"../../../assets/images/icon-feather-edit.svg\" [alt]=\"savedCartDetails.editSavedCart\">\r\n </button>\r\n </label>\r\n <p class=\"mb-4 pb-2\">{{cart.name}}</p>\r\n <label class=\"cardLabel mb-2\">{{savedCartDetails.cartDescription}}</label>\r\n <p class=\"mb-0 descriptionVal\">{{cart.description | slice:0:90}}\r\n <ng-container *ngIf=\"descriptionLength\">\r\n <span class=\"readmoreLabel\" placement=\"bottom\" ngbTooltip=\"{{cart.description}}\">\r\n {{savedCartDetails.readmore}}\r\n </span>\r\n </ng-container>\r\n </p>\r\n </div>\r\n <div class=\"col-md-4 col-sm-12 p-4 border-right mobile-row\">\r\n <div class=\"px-2\">\r\n <label class=\"cardLabel\">{{savedCartDetails.dateSaved}}</label>\r\n <p>{{cart.saveTime | date:'d MMM Y'}}</p>\r\n </div>\r\n <div class=\"px-2 cartItems_space\">\r\n <label class=\"cardLabel\">{{savedCartDetails.items}}</label>\r\n <p class=\"mb-0\">{{cart.totalItems}}</p>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4 col-sm-12 p-4 totalColmn\">\r\n <label class=\"cardLabel\">{{savedCartDetails.total}}</label>\r\n <p class=\"cardTotalPrice mb-0\">{{cart.totalPrice?.formattedValue}}</p>\r\n <label class=\"cardPriceGst\">{{savedCartDetails.exclandfreight}}</label>\r\n </div>\r\n </div>\r\n <div class=\"modal fade\" id=\"savedCardModal\" role=\"dialog\" aria-labelledby=\"savedCardLabel\" aria-hidden=\"true\">\r\n <div class=\"loading\" *ngIf=\"showWaitCursor | async \">Loading&#8230;</div>\r\n <app-saved-cart-popup [customSaveCardData]=\"cart\"></app-saved-cart-popup>\r\n </div>\r\n </ng-container>\r\n\r\n</div>","import { Component, ElementRef, HostListener, OnInit, ViewChild } from '@angular/core';\r\nimport { SavedCartDetailsService } from '@spartacus/cart/saved-cart/components';\r\nimport { SavedCartFacade } from '@spartacus/cart/saved-cart/root';\r\nimport { Cart, RoutingService } from '@spartacus/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { distinctUntilChanged, map } from 'rxjs/operators'; \r\nimport { CommonUtils } from '../../../utils';\r\nimport { savedCartDetails, savedCartList } from '../../saved-cart-general';\r\n\r\n@Component({\r\n selector: 'app-saved-cart-details-action',\r\n templateUrl: './saved-cart-details-action.component.html',\r\n styleUrls: ['./saved-cart-details-action.component.scss']\r\n})\r\nexport class SavedCartDetailsActionComponent implements OnInit {\r\n savedCartList = savedCartList;\r\n selectedCartId: number = 0;\r\n showPopUp: boolean = false;\r\n savedCartDetails = savedCartDetails;\r\n showWaitCursor = new BehaviorSubject<boolean>(false);\r\n descriptionLength: any;\r\n makeActiveData: any = [];\r\n isMobile = false;\r\n isTablet = false;\r\n isDesktop = true;\r\n isDelete: boolean = false;\r\n savedCarts$: Observable<Cart[]> = this.savedCartService.getList();\r\n protected savedCartId$ = this.routingService.getRouterState().pipe(\r\n map((routingData) => routingData.state.params.savedCartId),\r\n distinctUntilChanged()\r\n );\r\n savedCart$: Observable<Cart | undefined> = this.savedCartDetailsService.getCartDetails();\r\n subscription: any;\r\n @ViewChild('myDiv') myDiv: ElementRef;\r\n @HostListener('window:scroll', ['$event'])\r\n onWindowScroll(event: any) {\r\n this.checkScrollEnd();\r\n }\r\n constructor(\r\n protected savedCartDetailsService: SavedCartDetailsService,\r\n protected savedCartService: SavedCartFacade,\r\n public routingService: RoutingService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.onPageRefresh();\r\n this.savedCartId$.subscribe(data => this.selectedCartId = data)\r\n }\r\n checkScrollEnd() {\r\n const windowHeight = 'innerHeight' in window ? window.innerHeight : document.documentElement.offsetHeight;\r\n const body = document.body;\r\n const html = document.documentElement;\r\n const docHeight = Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);\r\n const windowBottom = windowHeight + window.pageYOffset;\r\n if (windowBottom >= docHeight || window.pageYOffset === 0) {\r\n // User has reached the end of the scroll, show the div\r\n this.myDiv.nativeElement.style.display = 'block';\r\n } else {\r\n // User is still scrolling, hide the div\r\n this.myDiv.nativeElement.style.display = 'none';\r\n }\r\n }\r\n makeActiveCart(event: Event) {\r\n this.isDelete = false;\r\n this.getResponseData();\r\n }\r\n deleteCart(event: Event) {\r\n this.isDelete = true;\r\n this.getResponseData();\r\n }\r\n getResponseData(){\r\n this.savedCarts$.subscribe((data: any) => {\r\n this.showWaitCursor.next(true);\r\n if (data) {\r\n this.makeActiveData = data.filter((element: any) => element.code == this.selectedCartId);\r\n if (this.makeActiveData[0] && this.makeActiveData[0]?.description.length > 90) {\r\n this.descriptionLength = true;\r\n } else {\r\n this.descriptionLength = false;\r\n }\r\n this.showPopUp = true;\r\n this.showWaitCursor.next(false);\r\n }\r\n })\r\n }\r\n onResize(event: any) {\r\n event.target.innerWidth;\r\n if (event.target.innerWidth < 768) {\r\n this.isMobile = true;\r\n this.isDesktop = false;\r\n }\r\n else if (event.target.innerWidth< 992) {\r\n this.isTablet = true;\r\n this.isDesktop = false;\r\n }\r\n else {\r\n this.isDesktop = true;\r\n }\r\n }\r\n onPageRefresh() {\r\n this.isMobile = CommonUtils.isMobile();\r\n this.isTablet = CommonUtils.isTablet();\r\n this.isDesktop = CommonUtils.isDesktop();\r\n }\r\n}\r\n","<ng-container *ngIf=\"savedCart$ | async as cart\">\r\n <div class=\"makeFixedFooter\" [ngClass]=\"{'cart-page-footer': isDesktop}\" (window:resize)=\"onResize($event)\" #myDiv>\r\n <div class=\"container\">\r\n <div class=\"sticky-footer\"> \r\n <div class=\"d-flex justify-content-between mt-2 customFooter\">\r\n <div class=\"clear-cart\">\r\n <button #element (click)=\"deleteCart($event)\" data-toggle=\"modal\" data-target=\"#editCardModal\"\r\n class=\"backto-carts \" [ngClass]=\"{'border-0 p-0': isDesktop || isTablet, 'border-1 secondary-btn p-2':isMobile}\">\r\n {{ savedCartDetails.deleteSavedCart}}\r\n </button>\r\n </div>\r\n <div class=\"checkout d-flex align-items-center\">\r\n <a class=\"mr-4 backto-carts\" [ngClass]=\"{'p-3': isMobile}\" routerLink=\"/my-account/saved-carts/\" title=\"{{savedCartList.makeCartBacktoSave}}\"> \r\n <img src=\"../../../../../assets/images/ionic-arrow-back.svg\" alt=\"{{savedCartList.makeCartBacktoSave}}\" /> \r\n {{savedCartList.makeCartBacktoSave}}\r\n </a>\r\n <div [ngClass]=\"isMobile ? 'w-100' : ''\">\r\n <button #element (click)=\"makeActiveCart($event)\" data-toggle=\"modal\" data-target=\"#editCardModal\"class=\"btn primary-button px-4 py-2 \">\r\n {{ savedCartList.makeCartActive}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div> \r\n </div> \r\n </div>\r\n <div class=\"modal fade\" *ngIf=\"showPopUp\" id=\"editCardModal\" role=\"dialog\" aria-labelledby=\"editCardModal\" aria-hidden=\"true\">\r\n <div class=\"loading\" *ngIf=\"showWaitCursor | async \">Loading&#8230;</div>\r\n <app-active-saved-cart [isDeletePopup]=\"isDelete\" [selectedCartId]=\"selectedCartId\" [makeActiveData]=\"makeActiveData\"></app-active-saved-cart>\r\n </div>\r\n</ng-container>\r\n","export class CommonUtils {\r\n public envionrment: any;\r\n public static isMobile(): boolean {\r\n if (window.innerWidth < 768) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n public static isTablet(): boolean {\r\n if (window.innerWidth>= 991) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n public static isDesktop(): boolean {\r\n if (window.innerWidth>991) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n}","import { ChangeDetectorRef, Component, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\nimport { Cart, CmsService } from '@spartacus/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { CartService } from '../../../services/cart.service';\r\nimport { CommonUtils } from '../../../utils/utils';\r\nimport { SavedCartDetailsService } from '../saved-cart-details.service';\r\n\r\n@Component({\r\n selector: 'app-custom-save-cart-dtl',\r\n templateUrl: './custom-save-cart-dtl.component.html',\r\n styleUrls: ['./custom-save-cart-dtl.component.scss']\r\n})\r\nexport class CustomSaveCartDtlComponent implements OnInit, OnChanges {\r\n isMobile = false;\r\n isTablet = false;\r\n isDesktop = true;\r\n listview: boolean = true;\r\n isExpandAll: boolean = false;\r\n showWaitCursor = new BehaviorSubject<boolean>(true);\r\n cartDetails: any = [];\r\n additionalPara: any;\r\n constructor(\r\n private cartService: CartService,\r\n private cdr: ChangeDetectorRef,\r\n private cmsService: CmsService,\r\n protected savedCartDetailsService: SavedCartDetailsService,\r\n ) { }\r\n savedCart$: Observable<Cart | undefined> = this.savedCartDetailsService.getCartDetails();\r\n ngOnInit(): void {\r\n this.onPageRefresh();\r\n this.showWaitCursor.next(true);\r\n this.savedCart$.subscribe((data: any) => {\r\n this.cartDetails=[];\r\n if(data){\r\n for (const entry of data?.entries) {\r\n let obj = {\r\n isExpand : false\r\n };\r\n obj = {...entry};\r\n this.cartDetails.push(obj);\r\n }\r\n this.cdr.detectChanges();\r\n this.showWaitCursor.next(false);\r\n }\r\n })\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes?.cartDetails?.previousValue != changes?.cartDetails?.currentValue) {\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n ParaContent() {\r\n // Static Content provided by Hybris\r\n this.cmsService\r\n .getComponentData('AdditionalColoursParagraphComponent')\r\n .subscribe((res: any) => {\r\n this.additionalPara = res;\r\n });\r\n }\r\n toggleGridOrListView(event: any): void {\r\n event.preventDefault();\r\n this.listview = !this.listview;\r\n }\r\n expandAll() {\r\n this.isExpandAll = true;\r\n this.cartService.expandAll.next(true);\r\n }\r\n\r\n contractAll() {\r\n this.isExpandAll = false;\r\n this.cartService.expandAll.next(false);\r\n }\r\n\r\n onResize(event: any) {\r\n event.target.innerWidth;\r\n if (event.target.innerWidth < 992) {\r\n this.isMobile = true;\r\n this.isDesktop = false;\r\n } else {\r\n this.isDesktop = true;\r\n }\r\n }\r\n onPageRefresh() {\r\n this.isMobile = CommonUtils.isMobile();\r\n this.isTablet = CommonUtils.isTablet();\r\n this.isDesktop = CommonUtils.isDesktop();\r\n }\r\n}\r\n","<div class=\"loading \" *ngIf=\"showWaitCursor | async \">Loading&#8230;</div>\r\n\r\n<div class=\"container\" (window:resize)=\"onResize($event)\">\r\n <div class=\"d-flex justify-content-between align-items-end py-3\">\r\n <div class=\"d-flex\">\r\n <span class=\"total-item\"> {{cartDetails?.length}} Items in Cart</span>\r\n <ul class=\"d-flex expand-collapse\">\r\n <li (click)=\"expandAll()\" [ngClass]=\"{disabled : isExpandAll == true}\">Expand all</li>\r\n <li (click)=\"contractAll()\" [ngClass]=\"{disabled : isExpandAll == false}\">Contract all</li>\r\n </ul>\r\n </div>\r\n\r\n <div class=\"text-right\">\r\n <div class=\"main-view\" *ngIf=\"isDesktop\">\r\n <button [ngClass]=\"{'active': listview === false}\" class=\"btn btn-sm\" (click)=\"toggleGridOrListView($event)\">\r\n <img *ngIf=\"listview === false\" src=\"../../../../../assets/images/Grid-light.svg\" alt=\"gridviewlight\">\r\n <img *ngIf=\"listview === true\" src=\"../../../../../assets/images/Grid-dark.svg\" alt=\"gridviewdark\">\r\n Grid\r\n </button>\r\n <button [ngClass]=\"{'active': listview === true}\" class=\"btn btn-sm active\" (click)=\"toggleGridOrListView($event)\">\r\n <img *ngIf=\"listview === true\" class=\"list-img\" src=\"../../../../../assets/images/List-light.svg\" alt=\"listview\">\r\n <img *ngIf=\"listview === false\" class=\"list-img\" src=\"../../../../../assets/images/List-dark.svg\" alt=\"listview\">\r\n List\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"isDesktop && cartDetails?.length\" >\r\n <app-custom-cart-list [cartDetails]=\"cartDetails\" [additionalPara]=\"additionalPara\" *ngIf=\"listview && cartDetails\"> </app-custom-cart-list>\r\n <app-custom-cart-grid [cartDetails]=\"cartDetails\" [additionalPara]=\"additionalPara\" *ngIf=\"!listview && cartDetails\" ></app-custom-cart-grid>\r\n </ng-container>\r\n <ng-container *ngIf=\"!isDesktop && cartDetails?.length\">\r\n <app-custom-cart-grid [cartDetails]=\"cartDetails\" [additionalPara]=\"additionalPara\" *ngIf=\"cartDetails\"></app-custom-cart-grid>\r\n </ng-container>\r\n</div>\r\n","import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SavedCartDetailsActionComponent } from './saved-cart-details-action/saved-cart-details-action.component';\r\nimport { SavedCartDetailsOverviewComponent } from './saved-cart-details-overview/saved-cart-details-overview.component';\r\nimport { CmsConfig, ConfigModule, UrlModule } from '@spartacus/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CardModule, MediaModule, IconModule, OutletModule, AddToCartModule } from '@spartacus/storefront';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { SharedComponentsModule } from '../../shared/shared-components.module';\r\nimport { AuthModule } from '@auth0/auth0-angular';\r\nimport { SaveCartService } from '../save-cart.service';\r\nimport { CustomSaveCartDtlComponent } from './custom-save-cart-dtl/custom-save-cart-dtl.component';\r\nimport { CustomCartDetailComponent } from '../../shared/custom-cart-detail/custom-cart-detail.component';\r\n\r\nlet sharedData: any = {};\r\nconst listOfModules: any = [SharedComponentsModule,];\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n SavedCartDetailsActionComponent,\r\n SavedCartDetailsOverviewComponent,\r\n CustomCartDetailComponent,\r\n CustomSaveCartDtlComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n NgbModule,\r\n UrlModule,\r\n RouterModule,\r\n CardModule,\r\n listOfModules,\r\n MediaModule,\r\n IconModule,\r\n OutletModule,\r\n AddToCartModule,\r\n SharedComponentsModule,\r\n ConfigModule.withConfig(<CmsConfig>{\r\n cmsComponents: {\r\n SavedCartDetailsOverviewComponent: {\r\n component: SavedCartDetailsOverviewComponent,\r\n },\r\n SavedCartDetailsItemsComponent: {\r\n component: CustomSaveCartDtlComponent,\r\n },\r\n SavedCartDetailsActionComponent: {\r\n component: SavedCartDetailsActionComponent,\r\n },\r\n },\r\n }),\r\n ],\r\n\r\n})\r\nexport class CustomSavedCartDetailsModule { \r\n\r\n \r\n constructor(@Optional() @SkipSelf() parentModule?: CustomSavedCartDetailsModule) {\r\n if (parentModule) {\r\n throw new Error(\r\n 'TeamModule is already loaded. Import it in the AppModule only');\r\n }\r\n }\r\n\r\n public static forRoot(environment: any): ModuleWithProviders<CustomSavedCartDetailsModule> {\r\n localStorage.setItem('envUrl', environment.occBaseUrl + environment.baseSiteId);\r\n sessionStorage.setItem('env', JSON.stringify(environment) );\r\n sharedData = environment;\r\n listOfModules.push(AuthModule.forRoot({\r\n domain: sharedData.auth0Domain,\r\n clientId: sharedData.auth0Client_id,\r\n redirect_uri: sharedData.UIsiteURl\r\n }))\r\n return {\r\n ngModule: CustomSavedCartDetailsModule,\r\n providers: [\r\n SaveCartService\r\n ]\r\n };\r\n\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, ElementRef, HostListener, Input, OnChanges, OnInit, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { ActiveCartService, Cart, MultiCartService } from '@spartacus/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs'; \r\nimport { CartService } from '../services/cart.service';\r\n\r\n@Component({\r\n selector: 'app-custom-cart',\r\n templateUrl: './custom-cart.component.html',\r\n styleUrls: ['./custom-cart.component.scss'],\r\n})\r\nexport class CustomCartComponent implements OnInit, OnChanges {\r\n cartId: any;\r\n showWaitCursor = new BehaviorSubject<boolean>(false);\r\n cart$: Observable<Cart> = this.activeCartService.getActive();\r\n @Input() totalPriceFormat: any = '';\r\n @ViewChild('myDiv') myDiv: ElementRef;\r\n @HostListener('window:scroll', ['$event'])\r\n onWindowScroll(event: any) {\r\n this.checkScrollEnd();\r\n }\r\n constructor(\r\n private cartService: CartService,\r\n private activeCartService: ActiveCartService,\r\n protected multiCartService: MultiCartService,\r\n private cdr: ChangeDetectorRef\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n const cartObj: any = localStorage.getItem('spartacus⚿dimond-spa⚿cart');\r\n this.cartId = JSON.parse(cartObj)?.active;\r\n this.cart$.subscribe((dataRes: any) => {\r\n if (dataRes.totalPrice)\r\n this.totalPriceFormat = dataRes.totalPrice.formattedValue;\r\n });\r\n }\r\n\r\n checkScrollEnd() {\r\n const windowHeight = 'innerHeight' in window ? window.innerHeight : document.documentElement.offsetHeight;\r\n const body = document.body;\r\n const html = document.documentElement;\r\n const docHeight = Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);\r\n const windowBottom = windowHeight + window.pageYOffset;\r\n if (windowBottom >= docHeight || window.pageYOffset === 0) {\r\n // User has reached the end of the scroll, show the div\r\n this.myDiv.nativeElement.style.display = 'block';\r\n } else {\r\n // User is still scrolling, hide the div\r\n this.myDiv.nativeElement.style.display = 'none';\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (!changes?.totalPriceFormat?.firstChange && changes?.totalPriceFormat !== null && changes?.totalPriceFormat !== undefined) {\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n // Check if any value is empty or undefined\r\n isNullOrEmpty(value: any): boolean {\r\n return value == null || value == undefined || value == '' || value == ' ';\r\n }\r\n\r\n clearCart() {\r\n this.showWaitCursor.next(true);\r\n this.cartService.clearCart(this.cartId).subscribe(\r\n (data) => {\r\n //this.activeCartService.reloadActiveCart();\r\n const activeCartId: any = !this.isNullOrEmpty(\r\n localStorage.getItem('spartacus⚿dimond-spa⚿cart')\r\n )\r\n ? JSON.parse(\r\n localStorage.getItem('spartacus⚿dimond-spa⚿cart') || ''\r\n )\r\n : '';\r\n\r\n //const cartId: string = activeCartId?.active;\r\n //const userId: string = 'current';\r\n // this.multiCartService.loadCart({ cartId, userId, extraData: {\r\n // active: false,\r\n // } });\r\n // this.activeCartService.getActive();\r\n localStorage.removeItem('spartacus⚿dimond-spa⚿cart');\r\n window.location.reload();\r\n this.showWaitCursor.next(false);\r\n },\r\n (error: any) => {\r\n this.showWaitCursor.next(false);\r\n }\r\n );\r\n }\r\n}\r\n","<div class=\"loading \" *ngIf=\"showWaitCursor | async \">Loading&#8230;</div>\r\n<!-- Footer -->\r\n<div #myDiv>\r\n\t<div class=\"cart-page-footer\">\r\n\t\t<div class=\"container\">\r\n\t\t\t<div class=\"sticky-footer\">\r\n\t\t\t\t<div class=\"text-right\">\r\n\t\t\t\t\t<span class=\"total-text\">Total</span>\r\n\t\t\t\t\t<h4 class=\"total-price-text\">\r\n\t\t\t\t\t\t{{ totalPriceFormat ? totalPriceFormat : \"$ 0.00\" }}\r\n\t\t\t\t\t</h4>\r\n\t\t\t\t\t<span class=\"gst-text\">excl GST and freight</span>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class=\"d-flex justify-content-between mt-2\">\r\n\t\t\t\t\t<div class=\"clear-cart\">\r\n\t\t\t\t\t\t<button type=\"button\" class=\"dimond-secondary-btn\" data-toggle=\"modal\" data-target=\"#clearCartModal\">\r\n\t\t\t\t\t\t\tCLEAR CART\r\n\t\t\t\t\t\t</button>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"checkout\">\r\n\t\t\t\t\t\t<a class=\"mr-3 continue-btn\" href=\"/c/1\">\r\n\t\t\t\t\t\t\t<img src=\"../../../assets/images/ionic-arrow-back.svg\" alt=\"back-arrow\" class=\"mr-2\" />CONTINUE\r\n\t\t\t\t\t\t\tSHOPPING</a>\r\n\t\t\t\t\t\t<button type=\"button\" [routerLink]=\"['/checkout']\" class=\"dimond-primary-btn\">\r\n\t\t\t\t\t\t\tCHECKOUT\r\n\t\t\t\t\t\t</button>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n\t\r\n\t<div class=\"mobile-sticky-footer\">\r\n\t\t<div class=\"row\">\r\n\t\t\t<div class=\"col\">\r\n\t\t\t\t<span class=\"total-text\">Total</span>\r\n\t\t\t\t<h4 class=\"total-price-text\">\r\n\t\t\t\t\t{{ totalPriceFormat ? totalPriceFormat : \"$ 0.00\" }}\r\n\t\t\t\t</h4>\r\n\t\t\t\t<span class=\"gst-text\">excl GST and freight</span>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"col d-flex align-items-end justify-content-end\">\r\n\t\t\t\t<div class=\"checkout\">\r\n\t\t\t\t\t<button type=\"button\" [routerLink]=\"['/checkout']\" class=\"dimond-primary-btn\">\r\n\t\t\t\t\t\tCHECKOUT\r\n\t\t\t\t\t</button>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n<div class=\"cart-page-footer-mobile\">\r\n\t<div class=\"clear-cart\">\r\n\t\t<button type=\"button\" class=\"dimond-secondary-btn clear-btn\" data-toggle=\"modal\" data-target=\"#clearCartModal\">\r\n\t\t\tCLEAR CART\r\n\t\t</button>\r\n\t</div>\r\n\t<a class=\"continue-btn\" href=\"/c/1\">\r\n\t\t<img src=\"../../../assets/images/ionic-arrow-back.svg\" alt=\"back-arrow\" class=\"mr-2\" />CONTINUE SHOPPING</a>\r\n</div>\r\n \r\n <div class=\"modal fade clearcart-modal\" id=\"clearCartModal\" role=\"dialog\" aria-labelledby=\"clearCartModal\" aria-hidden=\"true\">\r\n\t<div class=\"modal-dialog modal-dialog-centered\" role=\"document\">\r\n\t <div class=\"modal-content\">\r\n\t\t<div class=\"modal-header\">\r\n\t\t <h5 class=\"modal-title\">Clear Cart</h5>\r\n\t\t <i class=\"icon-close popup-close\" data-dismiss=\"modal\" aria-label=\"Close\" title=\"Close\"></i>\r\n\t\t</div>\r\n\t\t<div class=\"modal-body\"> \r\n\t\t\t<p class=\"mb-0\">Are you sure you want to clear all items in the cart?</p>\r\n\t\t</div>\r\n\t\t<div class=\"modal-footer\">\r\n\t\t <button type=\"button\" class=\"btn dimond-secondary-btn\" data-dismiss=\"modal\">No</button>\r\n\t\t <button type=\"button\" class=\"btn dimond-primary-btn\" (click)=\"clearCart()\">Yes</button>\r\n\t\t</div>\r\n\t </div>\r\n\t</div>\r\n </div>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { CmsService } from '@spartacus/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-addto-saved-carts',\r\n templateUrl: './addto-saved-carts.component.html',\r\n styleUrls: ['./addto-saved-carts.component.scss']\r\n})\r\nexport class AddtoSavedCartsComponent implements OnInit {\r\n pageTitle: any;\r\n cartParagraph: any;\r\n savedCart: any;\r\n saveCartUrl: any;\r\n saveCartForLater: any;\r\n breadcrumbData: any = [];\r\n showWaitCursor = new BehaviorSubject<boolean>(false)\r\n constructor(private cmsService: CmsService,) { }\r\n\r\n ngOnInit(): void {\r\n this.breadcrumbData.push({ url: '/', name: 'Home' });\r\n this.breadcrumbData.push({ url: '/cart', name: 'Cart' });\r\n this.cmsService.getCurrentPage().subscribe((pagadata: any) => {\r\n this.pageTitle = pagadata.title;\r\n })\r\n this.cmsService.getComponentData('CartPageParagraphComponent').subscribe((data: any) => {\r\n if (data) {\r\n this.cartParagraph = data.content;\r\n }\r\n })\r\n this.cmsService.getComponentData('SavedCartLink').subscribe((data: any) => {\r\n if (data) {\r\n this.savedCart = data.linkName;\r\n this.saveCartUrl = data.url;\r\n }\r\n })\r\n this.cmsService.getComponentData('SavedCartForLaterLink').subscribe((data: any) => {\r\n if (data) {\r\n this.saveCartForLater = data.linkName;\r\n }\r\n })\r\n }\r\n\r\n}\r\n","<app-custom-breadcrum [customCrumbData]=\"breadcrumbData\" class=\"products-breadcums\"></app-custom-breadcrum>\r\n<div class=\"container cart-header\">\r\n <div class=\"row reorder\">\r\n <div id=\"side_panel\" class=\"col-sm-8 col-12 m-auto\">\r\n <h1 class=\"pageTitle\">{{pageTitle}}</h1>\r\n <div class=\"text-left pageParaText mb-5\" [innerHTML]=\"cartParagraph\"></div>\r\n </div>\r\n <div class=\"col-sm-4 col-12\">\r\n <ul class=\"d-flex justify-content-end cart-links\">\r\n <li><a href=\"{{saveCartUrl}}\">{{savedCart}}</a></li>\r\n <li data-toggle=\"modal\" data-target=\"#saveCardModal\">{{saveCartForLater}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"modal fade\" id=\"saveCardModal\" role=\"dialog\" aria-labelledby=\"saveCardModal\" aria-hidden=\"true\">\r\n <div class=\"loading\" *ngIf=\"showWaitCursor | async \">Loading&#8230;</div>\r\n <app-saved-cart-popup></app-saved-cart-popup>\r\n</div>","import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CustomCartComponent } from './custom-cart.component';\r\nimport { provideDefaultConfig, CmsConfig } from '@spartacus/core';\r\nimport { AddtoSavedCartsComponent } from './addto-saved-carts/addto-saved-carts.component';\r\n\r\nimport { RouterModule } from '@angular/router';\r\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\r\nimport { SharedComponentsModule } from '../shared/shared-components.module';\r\nimport { CustomCartDetailComponent } from '../shared/custom-cart-detail/custom-cart-detail.component';\r\nimport { CartService } from '../services/cart.service';\r\nimport { AuthModule } from '@auth0/auth0-angular';\r\n\r\nlet sharedData: any = {};\r\nconst listOfModules: any = [SharedComponentsModule,];\r\n\r\n@NgModule({\r\n declarations: [CustomCartComponent, AddtoSavedCartsComponent],\r\n imports: [\r\n CommonModule,\r\n listOfModules,\r\n InfiniteScrollModule,\r\n RouterModule.forRoot([]),\r\n ],\r\n providers: [\r\n provideDefaultConfig(<CmsConfig>{\r\n cmsComponents: {\r\n CartHeaderComponent: {\r\n component: AddtoSavedCartsComponent,\r\n },\r\n CartComponent: {\r\n component: CustomCartDetailComponent,\r\n },\r\n CartAdditionalComponent: {\r\n component: CustomCartComponent,\r\n },\r\n },\r\n }),\r\n ],\r\n})\r\nexport class CustomCartModule {\r\n\r\n constructor(@Optional() @SkipSelf() parentModule?: CustomCartModule) {\r\n if (parentModule) {\r\n throw new Error(\r\n 'TeamModule is already loaded. Import it in the AppModule only');\r\n }\r\n }\r\n\r\n public static forRoot(environment: any): ModuleWithProviders<CustomCartModule> {\r\n localStorage.setItem('envUrl', environment.occBaseUrl + environment.baseSiteId)\r\n sharedData = environment;\r\n listOfModules.push(AuthModule.forRoot({\r\n domain: sharedData.auth0Domain,\r\n clientId: sharedData.auth0Client_id,\r\n redirect_uri: sharedData.UIsiteURl\r\n }))\r\n return {\r\n ngModule: CustomCartModule,\r\n providers: [\r\n CartService\r\n ]\r\n };\r\n\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, EventEmitter, OnInit, Output } from '@angular/core';\r\nimport { CmsService } from '@spartacus/core';\r\nimport { BehaviorSubject } from 'rxjs'; \r\nimport * as moment from 'moment';\r\nimport { MyAccountService } from '../../services/my-account.service';\r\nimport { OrderHistoryService } from '../../services/order-history.service';\r\n\r\n@Component({\r\n selector: 'app-account-dashboard',\r\n templateUrl: './account-dashboard.component.html',\r\n styleUrls: ['./account-dashboard.component.scss']\r\n})\r\nexport class AccountDashboardComponent implements OnInit {\r\n\r\n emptyDashboardInvoicesComponent: any;\r\n emptyDashboardOrdersComponent: any;\r\n showWaitCursor = new BehaviorSubject<boolean>(false);\r\n loaderImage = new BehaviorSubject<boolean>(false);\r\n currentPage = 0;\r\n invoiceCreditList: any = [];\r\n dataAvailale?: string;\r\n ordersDataAvailale: string = '';\r\n selectedDateRange: any;\r\n selectedDateKey: string = 'orderDate';\r\n selectedOrderState: any = [];\r\n orders: any;\r\n @Output() navigateInvoices = new EventEmitter<any>();\r\n\r\n constructor(\r\n private myAccountService: MyAccountService,\r\n public cd: ChangeDetectorRef,\r\n public cmsService: CmsService,\r\n public orderHistory: OrderHistoryService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.showWaitCursor.next(true);\r\n\r\n // function to get the Empty Dashboard Invoices content\r\n this.cmsService.getComponentData('EmptyDashboardInvoicesComponent').subscribe((data: any) => {\r\n if (data) {\r\n this.emptyDashboardInvoicesComponent = data.content;\r\n }\r\n })\r\n\r\n // function to get the Empty Dashboard Orders content\r\n this.cmsService.getComponentData('EmptyDashboardOrdersComponent').subscribe((data: any) => {\r\n if (data) {\r\n this.emptyDashboardOrdersComponent = data.content;\r\n }\r\n })\r\n this.getInvoiceCreditData();\r\n this.getOrderHistory();\r\n }\r\n\r\n getInvoiceCreditData() {\r\n\t\tthis.showWaitCursor.next(true);\r\n\t\tthis.myAccountService.getInvoicesCreditList(null,this.currentPage).subscribe((data: any) => {\r\n\t\t\tthis.invoiceCreditList = data.documents;\r\n this.cd.markForCheck();\r\n this.getStatus();\r\n if (this.invoiceCreditList && this.invoiceCreditList.length > 0) {\r\n this.dataAvailale = 'hasData';\r\n } else {\r\n this.dataAvailale = 'noData';\r\n }\r\n this.showWaitCursor.next(false);\r\n })\r\n }\r\n\r\n getStatus() {\r\n\t\tthis.invoiceCreditList.forEach((element: any) => {\r\n\t\t\tif (element.status == 'open') {\r\n\t\t\t\t element.className = 'status-open';\r\n\t\t\t} else if (element.status == 'closed') {\r\n\t\t\t\telement.className = 'status-paid';\r\n\t\t\t}\r\n\t\t\telse if (element.status == 'paid') {\r\n\t\t\t\telement.className = 'status-paid';\r\n\t\t\t}\r\n\t\t\telse if (element.status == 'overdue') {\r\n\t\t\t\telement.className = 'status-overdue';\r\n\t\t\t}\r\n\t\t\telse if (element.status == 'outstanding') {\r\n\t\t\t\telement.className = 'status-open';\r\n\t\t\t}\r\n\t\t\telse if (element.status == 'refund') {\r\n\t\t\t\telement.className = 'status-paid';\r\n\t\t\t}\r\n\t\t\tthis.loaderImage.next(false);\r\n\t\t\tthis.cd.markForCheck();\r\n\t\t});\r\n\t}\r\n\r\n getLastMonthDateRange() {\r\n this.selectedDateRange = [moment().subtract(29, 'days'), moment()];\r\n const dateValue = this.selectedDateRange[0]._d.getDate() + '/' + (this.selectedDateRange[0]._d.getMonth() + 1) + '/' + this.selectedDateRange[0]._d.getFullYear() + ',' +\r\n this.selectedDateRange[1]._d.getDate() + '/' + (this.selectedDateRange[1]._d.getMonth() + 1) + '/' + this.selectedDateRange[1]._d.getFullYear();\r\n let obj = {\r\n \"key\": this.selectedDateKey,\r\n \"value\": dateValue\r\n }\r\n this.selectedOrderState.push(obj);\r\n }\r\n\r\n getOrderHistory() {\r\n this.showWaitCursor.next(true);\r\n this.getLastMonthDateRange();\r\n const reqObj: any = {\r\n \"searchParams\": this.selectedOrderState\r\n }\r\n this.orderHistory.getOrderHistoryList(reqObj, this.currentPage).subscribe(res => {\r\n this.showWaitCursor.next(false);\r\n this.orders = res.orders.slice(0,6);\r\n if (this.orders && this.orders.length > 0) {\r\n this.ordersDataAvailale = 'hasData';\r\n } else {\r\n this.ordersDataAvailale = 'noData';\r\n }\r\n this.orders.forEach((element: any) => {\r\n if(element.minDeliveryDate && element.maxDeliveryDate) {\r\n element.minDeliveryDate = new Date(element.minDeliveryDate);\r\n element.maxDeliveryDate = new Date(element.maxDeliveryDate);\r\n element.isSameDate = (element.maxDeliveryDate.getFullYear() == element.minDeliveryDate.getFullYear() && element.maxDeliveryDate.getMonth() == element.minDeliveryDate.getMonth() \r\n && element.maxDeliveryDate.getDay() == element.minDeliveryDate.getDay()) ? true : false;\r\n }\r\n });\r\n }, error => {\r\n this.showWaitCursor.next(false);\r\n console.log(error);\r\n })\r\n\r\n }\r\n navigateToInvoices() {\r\n this.navigateInvoices.emit();\r\n }\r\n}\r\n\r\n","<div class=\"loading\" *ngIf=\"showWaitCursor | async \">Loading&#8230;</div>\r\n<div class=\"row gx-5 dashboard-main-container\">\r\n <div class=\"col dashboard-invoices mr-3\">\r\n <h4>\r\n Invoices & Credit Notes\r\n <a *ngIf=\"dataAvailale == 'hasData' \" (click)=\"navigateToInvoices()\" \r\n id=\"invoice-credit-tab\" data-toggle=\"tab\" data-target=\"#invoice-credit\" class=\"view-all-link\" title=\"View All\">View all</a>\r\n </h4>\r\n <ng-container *ngIf=\"dataAvailale == 'hasData' \">\r\n <div class=\"dashboard-table-container table-responsive\">\r\n <table class=\"table account-list-table\">\r\n <thead>\r\n <tr>\r\n <th scope=\"col\">Date</th>\r\n <th scope=\"col\">Due Date</th>\r\n <th scope=\"col\">Invoice #</th>\r\n <th scope=\"col\">Status</th>\r\n <th scope=\"col\">Total <span class=\"gst-text\">excl GST</span></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let data of invoiceCreditList.slice(0,6)\">\r\n <td>{{data.date | date: 'dd/MM/yyyy'}}</td>\r\n <td>{{data.dueDate | date: 'dd/MM/yyyy'}}</td>\r\n <td>{{data.documentNumber}}</td>\r\n <td class=\" status-message {{data.className}}\">{{data.status}}</td>\r\n <td [ngClass]=\"{'negative-price':data.openAmount < 0}\">{{data.formattedAmount}}</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"dataAvailale == 'noData'\">\r\n <div class=\"no-data-header\"></div>\r\n <div class=\"norecord-card\">\r\n <div class=\"py-5 px-5 empty-accountstatements\" [innerHTML]=\"emptyDashboardInvoicesComponent\"></div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"col dashboard-orders\">\r\n <h4>\r\n My Orders\r\n <a *ngIf=\"ordersDataAvailale == 'hasData' \" href=\"/my-account/orders\" class=\"view-all-link\" title=\"View All\">View all</a>\r\n </h4>\r\n <ng-container *ngIf=\"ordersDataAvailale == 'hasData' \">\r\n <div class=\"orders-table-container dashboard-table-container table-responsive\">\r\n <table class=\"table account-list-table\">\r\n <thead>\r\n <tr>\r\n <th scope=\"col\">Date</th>\r\n <th scope=\"col\">Order #</th>\r\n <th scope=\"col\">PO #</th>\r\n <th scope=\"col\">Delivery Dates</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let data of orders; let i = index\">\r\n <td>{{data.placed | date:'dd/MM/yyyy'}}</td>\r\n <td>{{data.code}}</td>\r\n <td>{{data.purchaseOrderNumber}}</td>\r\n <td> \r\n \r\n <ng-container *ngIf=\"orders?.isSameDate; else notMatch\">\r\n {{data?.minDeliveryDate | date: 'dd/MM/yyyy'}}\r\n </ng-container>\r\n <ng-template #notMatch>\r\n {{data?.minDeliveryDate | date: 'dd/MM/yyyy'}} - {{data?.maxDeliveryDate | date: 'dd/MM/yyyy'}}\r\n </ng-template>\r\n \r\n </td>\r\n </tr>\r\n\r\n </tbody>\r\n </table>\r\n </div>\r\n </ng-container>\r\n <!-- Code for when there is no orders data available - need to add condition here-->\r\n <ng-container *ngIf=\"ordersDataAvailale == 'noData'\">\r\n <div class=\"no-data-header\"></div>\r\n <div class=\"norecord-card\">\r\n <div class=\"py-5 px-5 empty-accountstatements\" [innerHTML]=\"emptyDashboardOrdersComponent\"></div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>","import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs'; \r\nimport { CmsService } from '@spartacus/core'; \r\nimport * as moment from 'moment';\r\nimport { CommonUtils } from '../../utils';\r\nimport { MyAccountService } from '../../services/my-account.service';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\ndeclare var require: any;\r\nconst FileSaver = require('file-saver');\r\n\r\n@Component({\r\n selector: 'app-invoice-credit',\r\n templateUrl: './invoice-credit.component.html',\r\n styleUrls: ['./invoice-credit.component.scss'],\r\n})\r\nexport class InvoiceCreditComponent implements OnInit, OnDestroy {\r\n\tlistview: boolean = true;\r\n\tisDesktop = true;\r\n\tisMobile = false;\r\n\tisTablet = false;\r\n\tshowWaitCursor = new BehaviorSubject<boolean>(false);\r\n\tloaderImage = new BehaviorSubject<boolean>(false);\r\n\ttotalResults: any;\r\n\tinvoiceSortLists: any;\r\n\tcurrentPage = 0;\r\n\tinvoiceCreditList: any = [];\r\n\tstatusLists: any = [];\r\n\tsearchText: string = '';\r\n\tisClearAll: boolean = false;\r\n\tnoSearchResults: boolean = false;\r\n\tsortByValue: any = 'byDocumentAsc';\r\n\tselectedOrderType: any = 'documentNumber';\r\n\tselectedStatuses: any = [];\r\n\tinvoiceStates: any = [];\r\n\tinvoiceTypes: any = [];\r\n\tbillingStatuses: any = [];\r\n\tselectedFilters: any;\r\n\tisInputValue: boolean = false;\r\n\tselectedDateRange: any;\r\n\tselectedDateKey: string = 'dateRange';\r\n\tnoInvoiceCrditData: any;\r\n\tisSearchBtnClicked: boolean = false;\r\n \r\n\tconstructor(\r\n\t private myAccountService: MyAccountService,\r\n\t public cmsService: CmsService,\r\n\t public cd: ChangeDetectorRef,\r\n\t private http: HttpClient\r\n\t) { }\r\n \r\n\tngOnInit(): void {\r\n\t this.cmsService.getComponentData('EmptySearchInvoicesListComponent').subscribe((data: any) => {\r\n\t\tif (data) {\r\n\t\t this.noInvoiceCrditData = data.content;\r\n\t\t}\r\n\t });\r\n\t const orderNumber: any = this.myAccountService.getOrderNumber();\r\n\t if (orderNumber != null) {\r\n\t\tthis.searchText = orderNumber;\r\n\t\tthis.selectedOrderType = 'orderNumber';\r\n\t }\r\n\t this.getLastMonthDateRange();\r\n\t this.getSearchDropdownData();\r\n\t this.getInvoiceCreditData();\r\n\t // this.getSearchResults();\r\n\t this.onPageRefresh();\r\n\t}\r\n \r\n\tgetInvoiceCreditData() {\r\n\t this.showWaitCursor.next(true);\r\n\t const reqObj: any = {\r\n\t\tsearchParams: this.selectedStatuses,\r\n\t };\r\n\t this.myAccountService\r\n\t\t.getInvoicesCreditList(reqObj, this.currentPage)\r\n\t\t.subscribe(\r\n\t\t (data: any) => {\r\n\t\t\tif (this.isClearAll == true) {\r\n\t\t\t this.invoiceCreditList = [];\r\n\t\t\t this.isClearAll = false;\r\n\t\t\t}\r\n\t\t\tlet date = new Date();\r\n\t\t\tdate.getFullYear();\r\n\t\t\tdate.getMonth();\r\n\t\t\tdate.getDay();\r\n\t\t\tthis.invoiceCreditList = [];\r\n\t\t\tthis.invoiceCreditList = this.invoiceCreditList.concat(\r\n\t\t\t data.documents\r\n\t\t\t);\r\n\t\t\tthis.statusLists = data?.documents?.status;\r\n\t\t\tthis.invoiceSortLists = data?.sorts;\r\n\t\t\tthis.totalResults = data?.pagination?.totalResults;\r\n\t\t\tthis.getStatus();\r\n\t\t\tthis.invoiceSortLists.forEach((element: any) => {\r\n\t\t\t if (element.code == 'byDocumentDesc') {\r\n\t\t\t\telement.value = 'Newest Invoice';\r\n\t\t\t }\r\n\t\t\t if (element.code == 'byDocumentAsc') {\r\n\t\t\t\telement.value = 'Oldest Invoice';\r\n\t\t\t }\r\n\t\t\t if (element.code == 'byPODesc') {\r\n\t\t\t\telement.value = 'Highest PO Number';\r\n\t\t\t }\r\n\t\t\t if (element.code == 'byPOAsc') {\r\n\t\t\t\telement.value = 'Lowest PO Number';\r\n\t\t\t }\r\n\t\t\t if (element.code == 'byOrderCodeDesc') {\r\n\t\t\t\telement.value = 'Highest Order Number';\r\n\t\t\t }\r\n\t\t\t if (element.code == 'byOrderCodeAsc') {\r\n\t\t\t\telement.value = 'Lowest Order Number';\r\n\t\t\t }\r\n\t\t\t this.loaderImage.next(false);\r\n\t\t\t this.cd.markForCheck();\r\n\t\t\t});\r\n\t\t\tthis.cd.markForCheck();\r\n\t\t\tthis.showWaitCursor.next(false);\r\n\t\t },\r\n\t\t (error) => {\r\n\t\t\tthis.invoiceCreditList = [];\r\n\t\t\tthis.showWaitCursor.next(false);\r\n\t\t }\r\n\t\t);\r\n\t}\r\n \r\n\tgetStatus() {\r\n\t this.invoiceCreditList.forEach((element: any) => {\r\n\t\tif (element.status == 'open') {\r\n\t\t element.className = 'status-open';\r\n\t\t} else if (element.status == 'closed') {\r\n\t\t element.className = 'status-paid';\r\n\t\t} else if (element.status == 'paid') {\r\n\t\t element.className = 'status-paid';\r\n\t\t} else if (element.status == 'overdue') {\r\n\t\t element.className = 'status-overdue';\r\n\t\t} else if (element.status == 'outstanding') {\r\n\t\t element.className = 'status-open';\r\n\t\t} else if (element.status == 'refund') {\r\n\t\t element.className = 'status-paid';\r\n\t\t}\r\n\t\tthis.loaderImage.next(false);\r\n\t\tthis.cd.markForCheck();\r\n\t });\r\n\t}\r\n \r\n\tgetLastMonthDateRange() {\r\n\t this.selectedDateRange = [moment().subtract(29, 'days'), moment()];\r\n\t const dateValue =\r\n\t\tthis.selectedDateRange[0]._d.getDate() +\r\n\t\t'/' +\r\n\t\t(this.selectedDateRange[0]._d.getMonth() + 1) +\r\n\t\t'/' +\r\n\t\tthis.selectedDateRange[0]._d.getFullYear() +\r\n\t\t',' +\r\n\t\tthis.selectedDateRange[1]._d.getDate() +\r\n\t\t'/' +\r\n\t\t(this.selectedDateRange[1]._d.getMonth() + 1) +\r\n\t\t'/' +\r\n\t\tthis.selectedDateRange[1]._d.getFullYear();\r\n\t let obj = {\r\n\t\tkey: this.selectedDateKey,\r\n\t\tvalue: dateValue,\r\n\t };\r\n\t this.selectedStatuses.push(obj);\r\n\t}\r\n \r\n\tgetSelectedDate(event: any) {\r\n\t event.name = event.value;\r\n\t event.key = 'dateRange';\r\n\t this.selectedDateRange = event;\r\n\t const ind = this.selectedStatuses.findIndex(\r\n\t\t(element: any) => element.key == 'dateRange'\r\n\t );\r\n\t if (ind > -1) this.selectedStatuses.splice(ind, 1);\r\n\t this.selectedStatuses.push(event);\r\n\t this.invoiceCreditList = [];\r\n\t this.getInvoiceCreditData();\r\n\t}\r\n \r\n\tgetSearchDropdownData() {\r\n\t this.showWaitCursor.next(true);\r\n\t this.myAccountService.getInvoiceCreditStatuses().subscribe((data: any) => {\r\n\t\tif (data) {\r\n\t\t this.invoiceStates = data.states;\r\n\t\t this.invoiceTypes = data.types;\r\n\t\t this.billingStatuses = data.statuses;\r\n\t\t this.cd.markForCheck();\r\n\t\t}\r\n\t\tthis.showWaitCursor.next(false);\r\n\t });\r\n\t}\r\n \r\n\tclearAll() {\r\n\t this.searchText = '';\r\n\t this.selectedOrderType = 'documentNumber';\r\n\t this.selectedStatuses = [];\r\n\t this.noSearchResults = false;\r\n\t this.isClearAll = true;\r\n\t this.isInputValue = false;\r\n\t this.isSearchBtnClicked = false;\r\n\t this.getLastMonthDateRange();\r\n\t this.getInvoiceCreditData();\r\n\t}\r\n \r\n\tgetCheckedInvoiceStatuses(data: any) {\r\n\t const ind = this.selectedStatuses.findIndex(\r\n\t\t(element: any) => element.value == data.value\r\n\t );\r\n\t return ind > -1 ? true : false;\r\n\t this.invoiceCreditList = [];\r\n\t this.getSearchResults();\r\n \r\n\t}\r\n \r\n\tcheckInvoiceStatus(event: any, data: any, mobileData?: string) {\r\n\t this.currentPage = 0;\r\n\t if (event.currentTarget.checked) {\r\n\t\tthis.selectedStatuses.push(data);\r\n\t\tthis.invoiceCreditList = [];\r\n\t\tif (!mobileData) {\r\n\t\t this.getSearchResults();\r\n\t\t}\r\n\t\tthis.cd.markForCheck();\r\n\t } else {\r\n\t\tconst ind = this.selectedStatuses.findIndex(\r\n\t\t (element: any) => element.value == data.value\r\n\t\t);\r\n\t\tthis.selectedStatuses.splice(ind, 1);\r\n\t\tthis.invoiceCreditList = [];\r\n\t\tif (!mobileData) {\r\n\t\t this.getSearchResults();\r\n\t\t}\r\n\t\tthis.cd.markForCheck();\r\n\t }\r\n\t}\r\n \r\n\tremoveChips(data: any) {\r\n\t const ind = this.selectedStatuses.findIndex(\r\n\t\t(element: any) => element.value == data.value\r\n\t );\r\n\t this.selectedStatuses.splice(ind, 1);\r\n\t this.invoiceCreditList = [];\r\n\t this.getInvoiceCreditData();\r\n\t}\r\n \r\n\tonChange(e: any) {\r\n\t this.selectedOrderType = e.target.value;\r\n\t}\r\n \r\n\tgetSearchResults() {\r\n\t this.isSearchBtnClicked = true;\r\n\t this.selectedFilters = JSON.parse(JSON.stringify(this.selectedStatuses));\r\n\t const obj = {\r\n\t\tkey: this.selectedOrderType,\r\n\t\tvalue: this.searchText,\r\n\t };\r\n\t if (this.searchText != '') {\r\n\t\tthis.selectedStatuses = [];\r\n\t\tthis.selectedFilters = [];\r\n\t\tthis.selectedFilters.push(obj);\r\n\t }\r\n\t const reqObj: any = {\r\n\t\tsearchParams: this.selectedFilters,\r\n\t };\r\n\t this.showWaitCursor.next(true);\r\n\t this.myAccountService.getInvoiceCreditSearchResults(reqObj, this.currentPage).subscribe(\r\n\t\t(res: any) => {\r\n\t\t if (res && res?.documents?.length > 0) {\r\n\t\t\tif(this.currentPage > 0) {\r\n\t\t\t this.invoiceCreditList = this.invoiceCreditList.concat(res?.documents);\r\n\t\t\t} else {\r\n\t\t\t this.invoiceCreditList = res?.documents;\r\n\t\t\t}\r\n\t\t\tthis.totalResults = res?.pagination?.totalResults;\r\n\t\t\tthis.noSearchResults = false;\r\n\t\t\tthis.getStatus();\r\n\t\t\tthis.cd.markForCheck();\r\n\t\t } else {\r\n\t\t\tthis.invoiceCreditList = [];\r\n\t\t\tthis.noSearchResults = true;\r\n\t\t }\r\n\t\t this.showWaitCursor.next(false);\r\n\t\t},\r\n\t\t(error) => {\r\n\t\t this.invoiceCreditList = [];\r\n\t\t this.showWaitCursor.next(false);\r\n\t\t}\r\n\t );\r\n\t}\r\n \r\n\tonSearchChange(e: any) {\r\n\t if (e.target.value == '' || e.target.value.indexOf(' ') >= 0) {\r\n\t\tthis.isInputValue = false;\r\n\t } else {\r\n\t\tthis.isInputValue = true;\r\n\t }\r\n\t}\r\n \r\n\tonSubmit() {\r\n\t this.getSearchResults();\r\n\t}\r\n \r\n\tsortBy(e: any) {\r\n\t this.showWaitCursor.next(true);\r\n\t this.sortByValue = e.target.value;\r\n\t const reqObj: any = {\r\n\t\tsearchParams: this.selectedFilters,\r\n\t };\r\n\t this.myAccountService.sortInvoiceCredit(this.sortByValue, reqObj).subscribe(\r\n\t\t(res: any) => {\r\n\t\t this.invoiceCreditList = res?.documents;\r\n\t\t this.getStatus();\r\n\t\t this.cd.markForCheck();\r\n\t\t this.showWaitCursor.next(false);\r\n\t\t},\r\n\t\t(error) => {\r\n\t\t this.showWaitCursor.next(false);\r\n\t\t}\r\n\t );\r\n\t}\r\n \r\n\ttoggleGridOrListView(event: any): void {\r\n\t event.preventDefault();\r\n\t this.listview = !this.listview;\r\n\t}\r\n\t// Future requirement\r\n\t// downloadPdf(pdfUrl: any, pdfName: string) {\r\n\t// FileSaver.saveAs(pdfUrl, pdfName);\r\n\t// }\r\n \r\n\tloadMoreRecord() {\r\n\t this.loaderImage.next(true);\r\n\t this.currentPage += 1;\r\n\t if(this.isSearchBtnClicked) {\r\n\t\tthis.getSearchResults();\r\n\t } else {\r\n\t\tthis.getInvoiceCreditData();\r\n\t }\r\n\t \r\n\t}\r\n\tonScroll() {\r\n\t if (\r\n\t\t!this.noSearchResults &&\r\n\t\tthis.totalResults > this.invoiceCreditList.length\r\n\t ) {\r\n\t\tthis.loadMoreRecord();\r\n\t }\r\n\t}\r\n \r\n\tonResize(event: any) {\r\n\t event.target.innerWidth;\r\n\t if (event.target.innerWidth < 992) {\r\n\t\tthis.isMobile = true;\r\n\t\tthis.isDesktop = false;\r\n\t } else {\r\n\t\tthis.isDesktop = true;\r\n\t }\r\n\t}\r\n \r\n\tonPageRefresh() {\r\n\t this.isMobile = CommonUtils.isMobile();\r\n\t this.isTablet = CommonUtils.isTablet();\r\n\t this.isDesktop = CommonUtils.isDesktop();\r\n\t}\r\n\tngOnDestroy(): void {\r\n\t this.myAccountService.setOrderNumber('');\r\n\t}\r\n }\r\n","<div class=\"loading\" *ngIf=\"showWaitCursor | async \">Loading&#8230;</div>\r\n<div class=\"container px-0\" infiniteScroll [infiniteScrollDistance]=\"0\" [infiniteScrollThrottle]=\"1000\" (scrolled)=\"onScroll()\" (window:resize)=\"onResize($event)\">\r\n <div class=\"invoice-credit-content\">\r\n <span *ngIf=\"isDesktop\" class=\"d-flex justify-content-end\">\r\n <a href=\"javascript:void(0)\" (click)=\"clearAll()\"><u>Clear all</u></a>\r\n </span>\r\n <div class=\"invoice-search-block\">\r\n <div class=\"input-group\">\r\n <div class=\"input-group-prepend\">\r\n <select name=\"\" id=\"\" (change)=\"onChange($event)\">\r\n <option value=\"documentNumber\" [selected]=\"selectedOrderType == 'documentNumber'\">Invoice #</option>\r\n <option value=\"poNumber\" [selected]=\"selectedOrderType == 'poNumber'\">PO #</option>\r\n <option value=\"orderNumber\" [selected]=\"selectedOrderType == 'orderNumber'\">Order #</option>\r\n </select>\r\n </div>\r\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"searchText\" (input)=\"onSearchChange($event)\" aria-label=\"Text input with dropdown button\">\r\n <div class=\"input-group-append\">\r\n <button type=\"button\" class=\"btn search-btn\" (click)=\"getSearchResults()\" [disabled]=\"!isInputValue\">\r\n <img src=\"../../../assets/images/icon-ionic-ios-search.svg\" alt=\"\">\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"filter-block\">\r\n <div class=\"custom-date-input\">\r\n <app-date-range-picker (selectedDate)=\"getSelectedDate($event)\" [(ngModel)]=\"selectedDateRange\"></app-date-range-picker>\r\n <!-- <img src=\"../../../../assets/images/ic_calender.svg\" alt=\"calender\" class=\"date-icon\"> -->\r\n </div>\r\n <ng-container *ngIf=\"isDesktop; else filterMobile\">\r\n <div class=\"btn-group\">\r\n <button class=\"btn custom-dropdown-btn position-relative\" type=\"button\" id=\"orderState\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\r\n Invoice State\r\n <i class=\"fas fa-chevron-down custom-arrow-down\"></i>\r\n </button>\r\n <div class=\"dropdown-menu\" aria-labelledby=\"orderState\">\r\n <label class=\"dropdownItem\" *ngFor=\"let data of invoiceStates\">\r\n <input type=\"checkbox\"\r\n name=\"dropdown-group\" class=\"rounded-0\" id=\"orderStateLabel\"\r\n [checked]=\"getCheckedInvoiceStatuses(data)\"\r\n [value]=\"data.value\" (change)=\"checkInvoiceStatus($event,{ key: 'state' , value: data.key })\" />\r\n {{data.value}}\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"btn-group\">\r\n <button class=\"btn custom-dropdown-btn position-relative\" type=\"button\" id=\"deliveryType\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\r\n Invoice Type\r\n <i class=\"fas fa-chevron-down custom-arrow-down\"></i>\r\n </button>\r\n <div class=\"dropdown-menu\" aria-labelledby=\"deliveryType\">\r\n <label class=\"dropdownItem\" *ngFor=\"let data of invoiceTypes\">\r\n <input type=\"checkbox\"\r\n name=\"dropdown-group\" class=\"rounded-0\" id=\"deliveryTypeLabel\"\r\n [checked]=\"getCheckedInvoiceStatuses(data)\"\r\n [value]=\"data.value\" (change)=\"checkInvoiceStatus($event,{ key: 'documentType' , value: data.key })\" />\r\n {{data.value}}\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"btn-group\">\r\n <button class=\"btn custom-dropdown-btn position-relative\" type=\"button\" id=\"orderStatus\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\r\n Billing Status\r\n <i class=\"fas fa-chevron-down custom-arrow-down\"></i>\r\n </button>\r\n <div class=\"dropdown-menu\" aria-labelledby=\"orderStatus\">\r\n <label class=\"dropdownItem\" *ngFor=\"let data of billingStatuses\">\r\n <input type=\"checkbox\"\r\n name=\"dropdown-group\" class=\"rounded-0\" id=\"orderStatusLabel\"\r\n [checked]=\"getCheckedInvoiceStatuses(data)\"\r\n [value]=\"data.value\" (change)=\"checkInvoiceStatus($event,{ key: 'statuses' , value: data.key })\"/>\r\n {{data.value}}\r\n </label>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"chips-block\" *ngIf=\"selectedStatuses.length > 0\">\r\n <ng-container *ngIf=\"selectedStatuses && selectedStatuses.length>0\">\r\n <div class=\"chips\" *ngFor=\"let data of selectedStatuses\">\r\n <p class=\"chip-title\"> {{data.key == 'state' ? 'Invoice State' : data.key == 'documentType' ? 'Invoice Type' : data.key == 'statuses' ? 'Billing Status' : 'Date Range'}} :</p>\r\n <span class=\"chip-content ml-1\">{{data.value}}</span>\r\n <i class=\"fas fa-times-circle ml-3 close-icon\" (click)=\"removeChips(data)\"></i>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <ng-template #filterMobile>\r\n <button type=\"button\" class=\"btn dimond-secondary-btn filter-btn\" data-toggle=\"modal\" data-target=\"#filterModal\">More Filters</button>\r\n </ng-template>\r\n </div>\r\n <hr>\r\n <!-- Filter Modal-->\r\n <div class=\"modal fade modal-right\" id=\"filterModal\" role=\"dialog\" aria-labelledby=\"inviteMemberLabel\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog modal-lg\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h5 class=\"modal-title\"></h5>\r\n <i class=\"icon-close filter-popup-close\" (click)=\"clearAll()\" data-dismiss=\"modal\" aria-label=\"Close\"></i>\r\n </div>\r\n <div class=\"modal-body\">\r\n <div class=\" d-flex justify-content-between main-view\">\r\n <div class=\"filter-head\">\r\n <h3>Filters</h3>\r\n </div>\r\n <a href=\"javascript:void(0)\" (click)=\"clearAll()\" class=\"clearAll\"> <u>Clear all</u></a>\r\n </div>\r\n <div id=\"main\">\r\n <div class=\"accordion\" id=\"faq\">\r\n <div class=\"card\">\r\n <div class=\"card-header\" id=\"faqhead1\">\r\n <a href=\"#\" class=\"btn btn-header-link\" data-toggle=\"collapse\" data-target=\"#faq1\" aria-expanded=\"true\" aria-controls=\"faq1\">Invoice State</a>\r\n </div>\r\n\r\n <div id=\"faq1\" class=\"collapse show\" aria-labelledby=\"faqhead1\" data-parent=\"#faq\">\r\n <div class=\"card-body\">\r\n <label class=\"dropdownItem\" *ngFor=\"let data of invoiceStates\">\r\n <input type=\"checkbox\" name=\"dropdown-group\" class=\"rounded-0\" id=\"orderStateLabel\"\r\n [checked]=\"getCheckedInvoiceStatuses(data)\" [value]=\"data.value\"\r\n (change)=\"checkInvoiceStatus($event,{ key: 'state' , value: data.key },'mobile')\" />\r\n {{data.value}}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card\">\r\n <div class=\"card-header\" id=\"faqhead2\">\r\n <a href=\"#\" class=\"btn btn-header-link collapsed\" data-toggle=\"collapse\" data-target=\"#faq2\" aria-expanded=\"true\" aria-controls=\"faq2\">Invoice Type</a>\r\n </div>\r\n\r\n <div id=\"faq2\" class=\"collapse\" aria-labelledby=\"faqhead2\" data-parent=\"#faq\">\r\n <div class=\"card-body\">\r\n <label class=\"dropdownItem\" *ngFor=\"let data of invoiceTypes\">\r\n <input type=\"checkbox\" name=\"dropdown-group\" class=\"rounded-0\" id=\"deliveryTypeLabel\"\r\n [checked]=\"getCheckedInvoiceStatuses(data)\" [value]=\"data.value\"\r\n (change)=\"checkInvoiceStatus($event,{ key: 'documentType' , value: data.key },'mobile')\" />\r\n {{data.value}}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card\">\r\n <div class=\"card-header\" id=\"faqhead3\">\r\n <a href=\"#\" class=\"btn btn-header-link collapsed\" data-toggle=\"collapse\" data-target=\"#faq3\" aria-expanded=\"true\" aria-controls=\"faq3\">Billing Status</a>\r\n </div>\r\n\r\n <div id=\"faq3\" class=\"collapse\" aria-labelledby=\"faqhead3\" data-parent=\"#faq\">\r\n <div class=\"card-body\">\r\n <label class=\"dropdownItem\" *ngFor=\"let data of billingStatuses\">\r\n <input type=\"checkbox\" name=\"dropdown-group\" class=\"rounded-0\" id=\"orderStatusLabel\"\r\n [checked]=\"getCheckedInvoiceStatuses(data)\" [value]=\"data.value\"\r\n (change)=\"checkInvoiceStatus($event,{ key: 'statuses' , value: data.key },'mobile')\" />\r\n {{data.value}}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"d-lg-flex d-sm-block justify-content-end d-block fixed-bottom\">\r\n <button type=\"button\" data-dismiss=\"modal\" (click)=\"clearAll()\" class=\"btn mobile-cancel-btn dimond-secondary-btn mr-lg-5\">Cancel</button>\r\n <button type=\"submit\" data-dismiss=\"modal\" class=\"btn mobile-save-btn dimond-primary-btn float-right\" (click)=\"onSubmit()\">Apply</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- NO SEARCH RESULTS -->\r\n <ng-container *ngIf=\"invoiceCreditList?.length == 0\">\r\n <div class=\"row empty-accountPage-container text-center\">\r\n <div class=\"col-sm-12 col-md-12 col-12\">\r\n <div class=\"text-center\" [innerHTML]=\"noInvoiceCrditData\"></div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container>\r\n <div class=\"invoice-credit-table\" *ngIf=\"invoiceCreditList?.length > 0\">\r\n <span class=\"total-order\">{{totalResults}} Invoices and Credit Notes found</span>\r\n <div class=\"d-flex justify-content-between py-3\">\r\n <div>\r\n <div class=\"btn-group\">\r\n <select name=\"\" id=\"\" class=\"mr-3\" (change)=\"sortBy($event)\">\r\n <option value=\"{{option.code}}\" *ngFor=\"let option of invoiceSortLists\">{{option.value}}</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div>\r\n <div class=\"main-view\" *ngIf=\"isDesktop\">\r\n <button [ngClass]=\"{'active': listview === false}\" class=\"btn btn-sm\" (click)=\"toggleGridOrListView($event)\">\r\n <img *ngIf=\"listview === false\" src=\"../../../assets/images/Grid-light.svg\" alt=\"gridviewlight\">\r\n <img *ngIf=\"listview === true\" src=\"../../../assets/images/Grid-dark.svg\" alt=\"gridviewdark\">\r\n Grid\r\n </button>\r\n <button [ngClass]=\"{'active': listview === true}\" class=\"btn btn-sm active\" (click)=\"toggleGridOrListView($event)\">\r\n <img *ngIf=\"listview === true\" class=\"list-img\" src=\"../../../assets/images/List-light.svg\" alt=\"listview\">\r\n <img *ngIf=\"listview === false\" class=\"list-img\" src=\"../../../assets/images/List-dark.svg\" alt=\"listview\">\r\n List\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- INVOICE CREDIT LIST -->\r\n <div class=\"list-view table-responsive\" *ngIf=\"listview && isDesktop && invoiceCreditList?.length > 0\">\r\n <table class=\"table account-list-table\">\r\n <thead>\r\n <tr>\r\n <th scope=\"col\">Date</th>\r\n <th scope=\"col\">Type</th>\r\n <th scope=\"col\">Invoice #</th>\r\n <th scope=\"col\">Order #</th>\r\n <th scope=\"col\">PO #</th>\r\n <th scope=\"col\">Status</th>\r\n <th scope=\"col\">Total <span class=\"gst-text\">excl GST</span></th>\r\n <th scope=\"col\">Outstanding <span class=\"gst-text\">excl GST</span></th>\r\n <th scope=\"col\">Download</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let data of invoiceCreditList\">\r\n <td>{{data.date | date: 'dd/MM/yyyy'}}</td>\r\n <td>{{data.documentType.name}}</td>\r\n <td>{{data.documentNumber}}</td>\r\n <td>{{data.orderNumber}}</td>\r\n <td>{{data.poNumber}}</td>\r\n <td class=\"status-message {{data.className}}\">{{data.status}}</td>\r\n <td [ngClass]=\"{'negative-price':data.amount < 0}\">{{data.formattedAmount}}</td>\r\n <td [ngClass]=\"{'negative-price':data.openAmount < 0}\">{{data.formattedOpenAmount}}</td>\r\n <td>\r\n <!-- <a href=\"javascript:void(0)\" (click)=\"downloadPdf(data?.attachments[0]?.downloadURL, data?.attachments[0]?.realFileName)\">\r\n <img src=\"../../../../assets/images/download-icon.svg\" alt=\"download\" class=\"mr-2\">PDF</a> -->\r\n <a *ngIf=\"data.attachments\" target=\"_blank\" href=\"{{data?.attachments[0]?.downloadURL }}\"><img src=\"../../../../assets/images/download-icon.svg\" alt=\"download\" class=\"mr-2\">PDF</a>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n\r\n <!-- INVOICE CREDIT GRID -->\r\n <div class=\"row grid-view\" *ngIf=\"(!listview || !isDesktop) && invoiceCreditList?.length > 0\">\r\n <div class=\"col-lg-3 col-md-6 col-sm-12 col-12\" *ngFor=\"let data of invoiceCreditList\">\r\n <div class=\"grid-tile\">\r\n <div class=\"grid-top\">\r\n <table>\r\n <tr>\r\n <th>Invoice #:</th>\r\n <td>{{data.documentNumber}}</td>\r\n </tr>\r\n <tr>\r\n <th>Type:</th>\r\n <td>{{data.documentType.name}}</td>\r\n </tr>\r\n </table>\r\n </div>\r\n <div class=\"grid-middle\">\r\n <table>\r\n <tr>\r\n <th>Date:</th>\r\n <td>{{data.date | date: 'dd/MM/yyyy'}}</td>\r\n </tr>\r\n <tr>\r\n <th>Order #:</th>\r\n <td>{{data.orderNumber}}</td>\r\n </tr>\r\n <tr>\r\n <th>PO #:</th>\r\n <td>{{data.poNumber}}</td>\r\n </tr>\r\n <tr>\r\n <th>Total:</th>\r\n <td [ngClass]=\"{'negative-price':data.amount < 0}\">{{data.formattedAmount}}<span class=\"gst-text\">excl GST</span></td>\r\n </tr>\r\n <tr>\r\n <th>Outstanding:</th>\r\n <td [ngClass]=\"{'negative-price':data.openAmount < 0}\">{{data.formattedOpenAmount}}<span class=\"gst-text\">excl GST</span></td>\r\n </tr>\r\n <tr>\r\n <th>Status:</th>\r\n <td class=\"status-message {{data.className}} status-icon\">{{data.status}}</td>\r\n </tr>\r\n <tr>\r\n <th>Download:</th>\r\n <td>\r\n <!-- Future requirement-->\r\n <!-- <a href=\"javascript:void(0)\" (click)=\"downloadPdf(data?.attachments[0]?.downloadURL, data?.attachments[0]?.realFileName)\">\r\n <img src=\"../../../../assets/images/download-icon.svg\" alt=\"download\" class=\"mr-2\">PDF</a> -->\r\n <a *ngIf=\"data.attachments\" target=\"_blank\" href=\"{{data?.attachments[0]?.downloadURL }}\"><img src=\"../../../../assets/images/download-icon.svg\" alt=\"download\" class=\"mr-2\">PDF</a>\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n</div>","import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectorRef, Component, OnInit } from '@angular/core';\r\nimport { CmsService } from '@spartacus/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs'; \r\nimport { MyAccountService } from '../../services/my-account.service';\r\n\r\n@Component({\r\n selector: 'app-account-statements',\r\n templateUrl: './account-statements.component.html',\r\n styleUrls: ['./account-statements.component.scss']\r\n})\r\nexport class AccountStatementsComponent implements OnInit {\r\n emptyAccountStatementsContent: any;\r\n showWaitCursor = new BehaviorSubject<boolean>(false);\r\n data = {\r\n key: 'documentType',\r\n value: 'STATEMENT',\r\n };\r\n isStatementsAvailable: string = '';\r\n statements: any;\r\n\r\n constructor(\r\n public cmsService: CmsService,\r\n public accountService: MyAccountService,\r\n public cd: ChangeDetectorRef,\r\n private http: HttpClient\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.showWaitCursor.next(true);\r\n // function to get the Empty Account Statement content\r\n this.cmsService\r\n .getComponentData('EmptyAccountStatementComponent')\r\n .subscribe((data: any) => {\r\n if (data) {\r\n this.emptyAccountStatementsContent = data.content;\r\n this.showWaitCursor.next(false);\r\n }\r\n });\r\n\r\n this.accountService.getStatementsList(this.data, 0).subscribe(\r\n (res) => {\r\n this.statements = res?.documents;\r\n this.cd.markForCheck();\r\n if (this.statements.length > 0) {\r\n this.isStatementsAvailable = 'hasData';\r\n } else {\r\n this.isStatementsAvailable = 'noData';\r\n }\r\n },\r\n (error) => {\r\n console.log(error);\r\n this.showWaitCursor.next(false);\r\n }\r\n );\r\n }\r\n //Future requirement\r\n // download(attachement: any): void {\r\n // this.downloadPdf(attachement?.downloadURL).subscribe((blobResponse) => {\r\n // const a = document.createElement('a');\r\n // const objectUrl = URL.createObjectURL(blobResponse);\r\n // a.href = objectUrl;\r\n // a.download = (attachement?.realFileName || 'sample') + '.pdf';\r\n // a.click();\r\n // URL.revokeObjectURL(objectUrl);\r\n // });\r\n // }\r\n // downloadPdf(url: string): Observable<Blob> {\r\n // return this.http.get(url, {\r\n // responseType: 'blob',\r\n // });\r\n // }\r\n}\r\n\r\n","<div class=\"loading\" *ngIf=\"showWaitCursor | async \">Loading&#8230;</div>\r\n<!-- The below content should come with condition based - only when there is no record in statements-->\r\n<div *ngIf=\"isStatementsAvailable == 'noData'\" class=\"py-5 empty-accountstatements\" [innerHTML]=\"emptyAccountStatementsContent\">\r\n</div>\r\n\r\n<div class=\"statement-container\" *ngIf=\"isStatementsAvailable == 'hasData'\">\r\n <div class=\"row statement-header-container\">\r\n <div class=\"col-sm-12 header-text\">Date</div>\r\n </div>\r\n <div class=\"row statement-body-container\">\r\n <div class=\"col-sm-12 bg-content\" *ngFor=\"let state of statements;let i = index;\">\r\n <p>{{state.date | date: 'dd/MM/yyyy'}}</p>\r\n <p>\r\n <!-- Future requirement-->\r\n <!-- <a *ngIf=\"state && state?.attachments && state?.attachments[0] && state?.attachments[0]?.downloadURL\"\r\n (click)=\"download(state?.attachments[0])\"><img alt=\"download\" class=\"mr-2 link\" src=\"../../../../assets/images/download-icon.svg\" /> PDF</a> -->\r\n <a target=\"_blank\" *ngIf=\"state && state?.attachments && state?.attachments[0] && state?.attachments[0]?.downloadURL\"\r\n [href]=\"state?.attachments[0]?.downloadURL\">PDF</a>\r\n </p>\r\n </div>\r\n </div>\r\n</div>\r\n","import { AfterViewInit, ChangeDetectorRef, Component, OnInit } from '@angular/core';\r\nimport { CmsService } from '@spartacus/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { AccountDropdownService } from '../account-dropdown/account-dropdown.service';\r\nimport { MyAccountService } from '../services/my-account.service';\r\n\r\n@Component({\r\n selector: 'app-my-account',\r\n templateUrl: './my-account.component.html',\r\n styleUrls: ['./my-account.component.scss']\r\n})\r\nexport class MyAccountComponent implements OnInit, AfterViewInit {\r\n\r\n pageTitle: any;\r\n myAccountParagraph: any;\r\n selecteduserData: any;\r\n isDashboardClicked: boolean = false;\r\n isInvoiceTabClicked: boolean = false;\r\n isStatementsTabClicked: boolean = false;\r\n breadcrumbData: any = [];\r\n\r\n showWaitCursor = new BehaviorSubject<boolean>(false);\r\n constructor(\r\n private myAccountService: MyAccountService, public cmsService: CmsService, public cd: ChangeDetectorRef,\r\n private fiUserAccountDetailsService: AccountDropdownService) { }\r\n\r\n ngOnInit(): void {\r\n this.isDashboardClicked = true;\r\n this.breadcrumbData.push({ url: '/', name: 'Home' }, { url: '/account', name: 'My Account' });\r\n\r\n // function to get page title\r\n this.cmsService.getCurrentPage().subscribe((pagadata: any) => {\r\n this.pageTitle = pagadata.title;\r\n })\r\n\r\n // function to get the Account Header Content \r\n this.cmsService.getComponentData('AccountHeaderContentComponent').subscribe((data: any) => {\r\n if (data) {\r\n this.myAccountParagraph = data.content;\r\n }\r\n })\r\n\r\n // get the selectd account name and UID from API\r\n const cartObj: any = localStorage.getItem('spartacus⚿dimond-spa⚿cart');\r\n const cartId = JSON.parse(cartObj)?.active;\r\n if (cartId) {\r\n this.showWaitCursor.next(true);\r\n this.fiUserAccountDetailsService.getAccountDatawithCartId(cartId).subscribe((data: any) => {\r\n data.forEach((element: any) => {\r\n if (element.isDefaultAccount == true) {\r\n this.selecteduserData = element; \r\n this.showWaitCursor.next(false);\r\n }\r\n });\r\n }, error => {\r\n this.showWaitCursor.next(false);\r\n })\r\n }\r\n }\r\n ngAfterViewInit(): void {\r\n const orderNumber = this.myAccountService.getOrderNumber();\r\n if (orderNumber != null && orderNumber != '') {\r\n this.onTabClick('invoices');\r\n }\r\n }\r\n onTabClick(data: any) {\r\n this.isInvoiceTabClicked = this.isDashboardClicked = this.isStatementsTabClicked = false;\r\n if (data == 'invoices') {\r\n this.isInvoiceTabClicked = true;\r\n } else if (data == 'statements') {\r\n this.isStatementsTabClicked = true;\r\n } else if (data == 'dashboard') {\r\n this.isDashboardClicked = true;\r\n }\r\n this.cd.markForCheck();\r\n }\r\n}\r\n","<app-custom-breadcrum [customCrumbData]=\"breadcrumbData\"></app-custom-breadcrum>\r\n\r\n<div class=\"loading \" *ngIf=\"showWaitCursor | async \">Loading&#8230;</div>\r\n<div class=\"container\">\r\n <div class=\"row\">\r\n <div class=\"col-sm-12\">\r\n <h1 class=\"pageTitle\">{{pageTitle}}</h1>\r\n <div class=\"text-left pageParaText mb-5 col-sm-9 pl-0\" [innerHTML]=\"myAccountParagraph\"></div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-12 selectedaccount-container\">\r\n <h3>{{selecteduserData?.name}}</h3>\r\n <p>Account Number: {{selecteduserData?.uid}}</p>\r\n </div>\r\n <div class=\"col-sm-12 tabmenu-container\">\r\n <ul class=\"nav nav-tabs\" id=\"accountTabs\" role=\"tablist\">\r\n <li class=\"nav-item\" role=\"presentation\">\r\n <button class=\"nav-link\" [ngClass]=\"{ 'active': isDashboardClicked}\" id=\"dashboard-tab\" data-toggle=\"tab\" data-target=\"#dashboard\" type=\"button\" role=\"tab\" aria-controls=\"dashboard\" (click)=\"onTabClick('dashboard')\" aria-selected=\"false\">Dashboard</button>\r\n </li>\r\n <li class=\"nav-item\" role=\"presentation\">\r\n <button class=\"nav-link\" id=\"invoice-credit-tab\" [ngClass]=\"{ 'active': isInvoiceTabClicked}\" data-toggle=\"tab\" data-target=\"#invoice-credit\" type=\"button\" role=\"tab\" aria-controls=\"invoice-credit\" aria-selected=\"false\" (click)=\"onTabClick('invoices')\">Invoices & Credit Notes</button>\r\n </li>\r\n <li class=\"nav-item\" role=\"presentation\">\r\n <button class=\"nav-link\" [ngClass]=\"{ 'active': isStatementsTabClicked}\" id=\"statement-tab\" data-toggle=\"tab\" data-target=\"#statement\" type=\"button\" role=\"tab\" aria-controls=\"statement\" aria-selected=\"false\" (click)=\"onTabClick('statements')\">Statements</button>\r\n </li>\r\n </ul>\r\n <div class=\"tab-content\" id=\"accountTabContent\">\r\n <div class=\"tab-pane fade \" [ngClass]=\"{ 'active': isDashboardClicked, 'show' : isDashboardClicked}\" id=\"dashboard\" role=\"tabpanel\" aria-labelledby=\"dashboard-tab\">\r\n <app-account-dashboard *ngIf=\"isDashboardClicked\" (navigateInvoices)=\"onTabClick('invoices')\"></app-account-dashboard>\r\n </div>\r\n <div class=\"tab-pane fade\" [ngClass]=\"{ 'active': isInvoiceTabClicked, 'show' : isInvoiceTabClicked}\" id=\"invoice-credit\" role=\"tabpanel\" aria-labelledby=\"invoice-credit-tab\">\r\n <app-invoice-credit *ngIf=\"isInvoiceTabClicked\"></app-invoice-credit>\r\n </div>\r\n <div class=\"tab-pane fade\" [ngClass]=\"{ 'active': isStatementsTabClicked, 'show' : isStatementsTabClicked}\" id=\"statement\" role=\"tabpanel\" aria-labelledby=\"statement-tab\">\r\n <app-account-statements *ngIf=\"isStatementsTabClicked\"></app-account-statements>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MyAccountComponent } from './my-account.component';\r\nimport { CmsConfig, ConfigModule } from '@spartacus/core';\r\nimport { InvoiceCreditComponent } from './invoice-credit/invoice-credit.component';\r\nimport { AccountDashboardComponent } from './account-dashboard/account-dashboard.component';\r\nimport { AccountStatementsComponent } from './account-statements/account-statements.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\r\nimport { SharedComponentsModule } from '../shared/shared-components.module';\r\nimport { AuthModule } from '@auth0/auth0-angular';\r\nimport { MyAccountService } from '../services/my-account.service';\r\n\r\n\r\nlet sharedData: any = {};\r\nconst listOfModules: any = [SharedComponentsModule,];\r\n\r\n@NgModule({\r\n declarations: [\r\n MyAccountComponent,\r\n InvoiceCreditComponent,\r\n AccountDashboardComponent,\r\n AccountStatementsComponent\r\n ],\r\n imports: [\r\n CommonModule, \r\n listOfModules,\r\n FormsModule,\r\n InfiniteScrollModule,\r\n ConfigModule.withConfig({\r\n cmsComponents: {\r\n CustomAccountPageComponent: {\r\n component: MyAccountComponent\r\n }\r\n }\r\n } as CmsConfig)\r\n ]\r\n})\r\nexport class MyAccountModule {\r\n\r\n constructor(@Optional() @SkipSelf() parentModule?: MyAccountModule) {\r\n if (parentModule) {\r\n throw new Error(\r\n 'AccountModule is already loaded. Import it in the AppModule only');\r\n }\r\n }\r\n\r\n public static forRoot(environment: any): ModuleWithProviders<MyAccountModule> {\r\n localStorage.setItem('envUrl', environment.occBaseUrl + environment.baseSiteId);\r\n sessionStorage.setItem('env', JSON.stringify(environment) );\r\n sharedData = environment;\r\n listOfModules.push(AuthModule.forRoot({\r\n domain: sharedData.auth0Domain,\r\n clientId: sharedData.auth0Client_id,\r\n redirect_uri: sharedData.UIsiteURl\r\n }))\r\n return {\r\n ngModule: MyAccountModule,\r\n providers: [\r\n MyAccountService,\r\n {\r\n provide: 'env', // you can also use InjectionToken\r\n useValue: environment\r\n }\r\n ]\r\n };\r\n\r\n }\r\n}\r\n","/*\r\n * Public API Surface of spa-custom-header\r\n */\r\n\r\nexport * from './lib/spa-custom-header.service';\r\nexport * from './lib/spa-custom-header.component';\r\nexport * from './lib/spa-custom-header.module';\r\n\r\nexport * from './lib/custom-mini-cart/custom-mini-cart.module';\r\nexport * from './lib/custom-mini-cart/custom-mini-cart.component';\r\n\r\nexport * from './lib/custom-navigation/custom-navigation.module';\r\nexport * from './lib/custom-navigation/custom-navigation/custom-navigation.component';\r\n\r\n\r\n\r\nexport * from './lib/account-dropdown/account-dropdown.component';\r\nexport * from './lib/account-dropdown/account-dropdown.module';\r\n\r\n\r\nexport * from './lib/my-team/my-team.component';\r\nexport * from './lib/my-team/my-team.module';\r\n\r\n\r\nexport * from './lib/custom-saved-cart/custom-saved-cart.component';\r\nexport * from './lib/custom-saved-cart/custom-saved-cart.module';\r\n\r\nexport * from './lib/custom-order-history/custom-order-history.module';\r\nexport * from './lib/custom-order-history/custom-order-history.component';\r\nexport * from './lib/custom-order-details/custom-order-details.component';\r\nexport * from './lib/custom-order-details/custom-order-details.module';\r\n\r\nexport * from './lib/checkout/custom-checkout/custom-checkout.component';\r\nexport * from './lib/checkout/checkout.module';\r\nexport * from './lib/checkout/order-confirmation/order-confirmation.component';\r\nexport * from './lib/checkout/order-review/order-review.component';\r\n\r\nexport * from './lib/shared/custom-cart-detail/custom-cart-grid/custom-cart-grid.component';\r\nexport * from './lib/shared/custom-cart-detail/custom-cart-detail.component';\r\nexport * from './lib/shared/custom-cart-detail/custom-cart-list/custom-cart-list.component';\r\nexport * from './lib/shared/custom-cart-detail/custom-product-quantity-form/custom-product-quantity-form.component';\r\n\r\nexport * from './lib/custom-saved-cart/custom-saved-cart-details/saved-cart-details-overview/saved-cart-details-overview.component';\r\nexport * from './lib/custom-saved-cart/custom-saved-cart-details/custom-saved-cart-details.module';\r\n\r\nexport * from './lib/custom-cart/custom-cart.module';\r\nexport * from './lib/custom-cart/custom-cart.component';\r\n\r\nexport * from './lib/my-account/my-account.module';\r\nexport * from './lib/my-account/my-account.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i0","Injectable","i1","i2","Component","catchError","throwError","BehaviorSubject","switchMap","of","Inject","i1.AccountDropdownService","i2.UserAccountDetailServiceService","i3.FindStoreService","i4","i1.FindStoreService","sharedData","listOfModules","AgmCoreModule","CommonModule","ConfigModule","NgModule","Optional","SkipSelf","UrlModule","MediaModule","IconModule","RouterModule","CommonUtils","Observable","HttpHeaders","i1.UserAccountDetailServiceService","i3","i4.LogoutService","i5","i6","ViewEncapsulation","NgbModule","AuthService","HttpParams","i2.CustomSearchService","ViewChild","HostListener","SearchBoxModule","MiniCartComponent","i4.AccountDropdownStateService","combineLatest","map","PageTitleComponent","Input","Validators","FormGroup","EventEmitter","i2.CartService","Output","Pipe","i1.CartService","i5.CustomProductQuantityFormComponent","i7","i8.SplitPipe","distinctUntilChanged","i2.SaveCartService","i1.SaveCartService","moment","NG_VALUE_ACCESSOR","forwardRef","DaterangepickerDirective","html2canvas","jsPDF","i3.CartService","BreadcrumbModule","ReactiveFormsModule","FormsModule","MatRadioModule","NgxDaterangepickerMd","Subscription","CategoryNavigationComponent","i5.CustomSearchComponent","BrowserModule","MatDialogModule","NgbModal","i1.HelpSupportComponent","AuthModule","HttpClientModule","StoreModule","Directive","Host","Self","i2.TeamMemberService","i4.CustomBreadcrumComponent","i8.AppPaginationDirective","MatPaginatorModule","NgbToastModule","i3.SavedCartService","i5.CustomBreadcrumComponent","i6.ActiveSavedCartComponent","i8","ChangeDetectionStrategy","FeaturesConfigModule","provideDefaultConfig","i2.OrderHistoryService","MatMenuTrigger","i3.CustomBreadcrumComponent","i4.DateRangePickerComponent","i5.SliderProgressComponent","i9","i10","i11.CustomDatePipe","MatMenuModule","InfiniteScrollModule","i1.SharedDownloadOrderComponent","i3.OrderHistoryService","i4.CartService","i5.MyAccountService","i6.CustomBreadcrumComponent","i7.OrderDetailListComponent","i8.OrderDetailGridComponent","i9.DownloadPopupComponent","loadModules","i1.CustomCheckoutService","i8.AddNewAddressComponent","i5.SharedDownloadOrderComponent","i1.OrderReviewService","i4.OrderReviewService","i6.DeliveryInformationComponent","i7.OrderReviewListComponent","i8.OrderReviewGridComponent","MatCardModule","MatListModule","NgbDatepickerModule","TimePickerModule","i3.CustomCartListComponent","i4.CustomCartGridComponent","filter","tap","shareReplay","i2.SavedCartDetailsService","i5.SavedCartPopupComponent","i4.ActiveSavedCartComponent","i3.SavedCartDetailsService","i4.CustomCartListComponent","i5.CustomCartGridComponent","CardModule","OutletModule","AddToCartModule","i2.CustomBreadcrumComponent","i3.SavedCartPopupComponent","i1.MyAccountService","i2.MyAccountService","i3.AccountDropdownService","i5.AccountDashboardComponent","i6.InvoiceCreditComponent","i7.AccountStatementsComponent"],"mappings":"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"}