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,108 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../services/cart.service";
5
+ import * as i2 from "@spartacus/storefront";
6
+ import * as i3 from "@angular/common";
7
+ export class OrderDetailGridComponent {
8
+ constructor(cartService, cdr) {
9
+ this.cartService = cartService;
10
+ this.cdr = cdr;
11
+ this.showDetails = [];
12
+ this.arrowUpDown = [];
13
+ this.showWaitCursor = new BehaviorSubject(false);
14
+ this.cartDetails = [];
15
+ this.environment = sessionStorage.getItem('env');
16
+ this.env = JSON.parse(this.environment);
17
+ }
18
+ ngOnInit() {
19
+ }
20
+ ngOnChanges(changes) {
21
+ var _a;
22
+ if (!changes.cartDetails.firstChange) {
23
+ this.cdr.detectChanges();
24
+ }
25
+ this.showWaitCursor.next(true);
26
+ if ((_a = this.cartDetails) === null || _a === void 0 ? void 0 : _a.length) {
27
+ this.showWaitCursor.next(false);
28
+ }
29
+ else {
30
+ this.showWaitCursor.next(false);
31
+ this.noRecord = 'No data';
32
+ }
33
+ for (let i = 0; i < this.cartDetails.length; i++) {
34
+ this.showDetails.push(false);
35
+ }
36
+ this.cartService.expandAll.subscribe((data) => {
37
+ for (let i = 0; i < this.cartDetails.length; i++) {
38
+ this.showDetails[i] = data;
39
+ }
40
+ });
41
+ this.cdr.detectChanges();
42
+ }
43
+ showHide(ind) {
44
+ this.showDetails[ind] = !this.showDetails[ind];
45
+ }
46
+ arrowHideShow(id) {
47
+ this.arrowUpDown[id] = !this.arrowUpDown[id];
48
+ }
49
+ // Get the Image Details based on Products
50
+ getImageDetails(cartDetails, thumbnail = true) {
51
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
52
+ let imageUrl = (_a = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.product) === null || _a === void 0 ? void 0 : _a.images;
53
+ if (this.isCardData) {
54
+ imageUrl = (_b = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.product) === null || _b === void 0 ? void 0 : _b.images;
55
+ }
56
+ else {
57
+ imageUrl = (_e = (_d = (_c = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.product) === null || _c === void 0 ? void 0 : _c.images) === null || _d === void 0 ? void 0 : _d.PRIMARY) === null || _e === void 0 ? void 0 : _e.cartIcon;
58
+ }
59
+ let srcUrl;
60
+ if ((cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.attachments) &&
61
+ ((_f = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.attachments) === null || _f === void 0 ? void 0 : _f.length) &&
62
+ ((_g = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.product) === null || _g === void 0 ? void 0 : _g.flashingProduct)) {
63
+ srcUrl =
64
+ thumbnail && ((_h = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.attachments) === null || _h === void 0 ? void 0 : _h.length) > 1
65
+ ? (_j = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.attachments[1]) === null || _j === void 0 ? void 0 : _j.downloadURL
66
+ : (_k = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.attachments[0]) === null || _k === void 0 ? void 0 : _k.downloadURL;
67
+ imageUrl = {
68
+ url: (_l = (this.env.occBaseUrl.slice(0, this.env.occBaseUrl.length - 1) +
69
+ srcUrl)) === null || _l === void 0 ? void 0 : _l.replace('&attachment=true', ''),
70
+ };
71
+ }
72
+ return imageUrl;
73
+ }
74
+ viewImage(event, cartDetails) {
75
+ var _a;
76
+ event.preventDefault();
77
+ this.imageModalSrc = (_a = this.getImageDetails(cartDetails, false)) === null || _a === void 0 ? void 0 : _a.url;
78
+ }
79
+ getPdfLink(cartDetails) {
80
+ var _a;
81
+ return (_a = this.getImageDetails(cartDetails, false)) === null || _a === void 0 ? void 0 : _a.url;
82
+ }
83
+ hasImage(cartDetails) {
84
+ var _a;
85
+ const mimeType = (_a = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.attachments[0]) === null || _a === void 0 ? void 0 : _a.mime;
86
+ const mimeArray = ["image/png", "image/jpg", "image/jpeg"];
87
+ return mimeArray.includes(mimeType);
88
+ }
89
+ }
90
+ OrderDetailGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: OrderDetailGridComponent, deps: [{ token: i1.CartService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
91
+ OrderDetailGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: OrderDetailGridComponent, selector: "app-order-detail-grid", inputs: { sortByVal: "sortByVal", cartDetails: "cartDetails", orderDate: "orderDate", isCardData: "isCardData" }, usesOnChanges: true, ngImport: i0, template: "<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", styles: ["@charset \"UTF-8\";@media screen and (min-width: 1366px){:root{--fontsize12: .75rem;--fontsize14: .875rem;--fontsize16: 1rem;--fontsize17: 1.063rem;--fontsize17-5: 1.1rem;--fontsize18: 1.125rem;--fontsize18-4: 1.5rem;--fontsize20: 1.25rem;--fontsize21: 1.313rem;--fontsize22: 1.375rem;--fontsize23: 1.438rem;--fontsize24: 1.5rem;--fontsize26: 1.625rem;--fontsize28: 1.75rem;--fontsize30: 1.625rem;--fontsize32: 2rem;--fontsize34: 2.125rem;--fontsize36: 2rem;--fontsize40: 2.25rem;--fontsize46: 2.875rem;--fontsize80: 5rem}}@media screen and (max-width: 1365px) and (min-width: 768px){:root{--fontsize12: .75rem;--fontsize14: .875rem;--fontsize16: 1rem;--fontsize17: .9rem;--fontsize17-5: 1rem;--fontsize18: .875rem;--fontsize20: 1rem;--fontsize21: 1.063rem;--fontsize22: 1.125rem;--fontsize23: 1.188rem;--fontsize24: 1rem;--fontsize28: 1.5rem;--fontsize30: 1.25rem;--fontsize32: 1.75rem;--fontsize34: 1.875rem;--fontsize36: 1.625rem;--fontsize40: 2.5rem;--fontsize46: 2.875rem;--fontsize80: 3.5rem}}@media screen and (max-width: 767px){:root{--fontsize12: .75rem;--fontsize14: .875rem;--fontsize16: 1rem;--fontsize16-5: .77rem;--fontsize17: .9rem;--fontsize17-5: 1rem;--fontsize18: .875rem;--fontsize19: .938rem;--fontsize20: 1rem;--fontsize21: 1.063rem;--fontsize22: 1.125rem;--fontsize23: 1.188rem;--fontsize24: 1rem;--fontsize26: 1.25rem;--fontsize28: 1.5rem;--fontsize30: 1.25rem;--fontsize32: 1.75rem;--fontsize34: 1.875rem;--fontsize36: 1.625rem;--fontsize40: 2.5rem;--fontsize46: 2rem;--fontsize80: 2.5rem}}@font-face{font-family:icomoon;font-weight:400;src:url(../assets/fonts/icomoon.ttf) format(\"ttf\"),url(../assets/fonts/icomoon.woff) format(\"woff\");font-weight:normal;font-style:normal;font-display:swap}@font-face{font-family:\"Arial Regular\";src:url(../assets/fonts/arial-webfont.woff) format(\"woff\"),url(../assets/fonts/arial-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Arial Bold\";src:url(../assets/fonts/arialbold-webfont.woff) format(\"woff\"),url(../assets/fonts/arialbold-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Arial Black\";src:url(../assets/fonts/arialblack-webfont.woff) format(\"woff\"),url(../assets/fonts/arialblack-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Helvetica Neue Reqular\";src:url(../assets/fonts/helveticaneue.woff) format(\"woff\"),url(../assets/fonts/helveticaneue.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Helvetica Neue Thin\";src:url(../assets/fonts/helveticaneuethin-webfont.woff) format(\"woff\"),url(../assets/fonts/helveticaneuethin-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Helvetica Neue Medium\";src:url(../assets/fonts/helveticaneuemedium-webfont.woff) format(\"woff\"),url(../assets/fonts/helveticaneuemedium-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}[class*=\" icon-\"],[class^=icon-]{font-family:icomoon!important;font-feature-settings:normal;font-variant:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-style:normal;font-weight:400;line-height:1;text-transform:none;font-display:swap}.icon-right:before{content:\"\\e902\"}.icon-materials:before{content:\"\\e900\"}.icon-natural-lighting:before{content:\"\\e90a\"}.icon-rainwater:before{content:\"\\e901\"}.icon-roofing:before{content:\"\\e90b\"}.icon-flashing{position:relative;display:inline-block;height:32px;text-align:center;width:32px}.icon-flashing:before,.mainnav-link-level-2.show .navTagChild .icon-flashing:before{content:url(../assets/images/icon-flashing-white.svg);height:20px;width:20px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);line-height:15px}li.megamenuSubChild:hover .icon-flashing:before{content:url(../assets/images/icon-flashing-black.svg)}.icon-structural:before{content:\"\\e90c\"}.icon-accessories-old .path1:before{content:\"\\e903\"}.icon-accessories-old .path2:before{margin-left:-1em;content:\"\\e904\"}.icon-accessories-old .path3:before{margin-left:-1em;content:\"\\e905\"}.icon-cladding-old .path1:before{content:\"\\e90d\"}.icon-cladding-old .path2:before{margin-left:-1em;content:\"\\e90e\"}.icon-close:before{content:\"\\e90f\"}.icon-message:before{content:\"\\e910\"}.icon-search .path1:before{content:\"\\e906\"}.icon-search .path2:before{content:\"\\e907\"}.icon-search .path3:before{margin-left:-1.0156em;content:\"\\e908\"}.icon-summary:before{content:\"\\e911\"}.icon-branch:before{content:\"\\e912\"}.icon-delivery:before{content:\"\\e913\"}.icon-downloads:before{content:\"\\e909\"}.icon-drawings:before{content:\"\\e914\"}.icon-full:before{content:\"\\e915\"}.icon-manual:before{content:\"\\e916\"}.icon-payment:before{content:\"\\e917\"}.icon-empty .path1:before{content:\"\\e918\"}.icon-empty .path2:before{margin-left:-1em;content:\"\\e919\"}.icon-empty .path3:before{margin-left:-1em;content:\"\\e91a\"}.icon-product-overview:before{content:\"\\e91b\"}.icon-arrows:before{content:\"\\e91c\"}.icon-selected:before{content:\"\\e91d\"}.icon-accessories:before{content:\"\\e91b\"}.icon-cladding:before{content:\"\\e91e\"}.icon-Triangle:before{content:\"\\e91f\"}.icon-home:before{content:\"\\e920\"}.icon-faq:before{content:\"\\e921\"}.icon-temperature:before{content:\"\\e922\"}body header{font-family:\"Arial Regular\",sans-serif}header{background-color:#1d1d1b;position:sticky;top:0;background-size:100% 25%!important;background-repeat:no-repeat;z-index:10}header .header{max-width:100%;padding:0}header cx-banner cx-media img{margin-top:.7rem;margin-bottom:0}header label{display:inline-flex}header .SiteLinks{height:52px;display:flex;align-items:center;justify-content:space-between;padding-top:5px;padding-bottom:5px}header .SiteLinks cx-paragraph p{color:#fff;font-size:var(--fontsize16);line-height:var(--fontsize16);margin-bottom:0}header .SiteLinks cx-paragraph{font-size:var(--fontsize16)}header .SiteLinks app-account-dropdown,header .SiteLinks app-find-store{width:calc(25% - 25px);max-width:328px;margin-right:25px}header .SiteLinks app-contact-us{width:calc(20% - 25px);max-width:100px;margin-left:auto}header .SiteLinks app-custom-mini-cart{width:10%}header .SiteLinks .preferenceLink{margin-left:auto}header .SiteLinks .preferenceLink cx-generic-link{margin:0}header .SiteLinks .preferenceLink cx-generic-link cx-media img{height:22px;margin:0}header .SiteLogo .storeLogo{position:absolute;z-index:99;left:40px;bottom:10px}header .SiteLogo .homeLogo{max-width:28px;height:28px;position:absolute;z-index:99;bottom:47px}header .NavigationBar{flex:70%;background-color:#b61828;min-height:40px;display:flex;align-items:center;position:relative;z-index:10}header .logoutMenu{margin-top:0!important}header .logoutMenu li{cursor:pointer;background-color:#4c4c4c;color:#fff}header .logoutMenu li:hover{text-decoration:underline;background-color:#4c4c4c}header .MarketingContext{width:100%;margin:auto}.customer-service-icon{cursor:pointer}.helpSupport{width:20rem;border:0;margin-top:.5rem!important;transform:translate(-42%,36px)!important;padding:1rem 1rem 0;background-color:#393939;color:#fff;top:0}.helpSupport .arrow-up{position:absolute;top:-8px;right:44%;width:0;height:0;border-left:15px solid rgba(0,0,0,0);border-right:15px solid rgba(0,0,0,0);border-bottom:15px solid #393939}.helpSupport .contact-us-info .heading{font-family:\"Arial Bold\",sans-serif}.helpSupport .contact-us-info .detail{font-size:var(--fontsize14);line-height:2rem}.helpSupport .contact-us-info .detail .service-icon{height:20px;width:20px;margin-right:10px}.helpSupport .contact-us-info .contactLink a{font-size:var(--fontsize14);text-decoration:underline;text-transform:uppercase}.helpSupport .contact-us-info a{color:#fff;text-decoration:none}.helpSupport .contact-us-info a:hover{text-decoration:underline}.pageTitle{font-family:\"Helvetica Neue Regular\",sans-serif;font-size:var(--fontsize54)}#visualization-container{text-align:center;margin:0 auto}#cds-viewer-container-3d{width:320px;height:200px}#cds-viewer-container-2d{width:320px;height:200px}[aria-label=Close]{cursor:pointer}cx-media.is-missing{background:url(./assets/images/search-noimage.svg);background-size:cover;background-position:center;background-repeat:no-repeat}cx-global-message{position:fixed;top:9rem;width:100%;z-index:13}@media screen and (max-width: 991px){cx-global-message{top:3.75rem}cx-storefront header{background-color:#b61828}cx-storefront header cx-banner cx-media img{margin:auto}cx-storefront header .SiteLogo{width:100%;max-width:211px;margin:auto;padding-left:30px;box-sizing:border-box}cx-storefront header .SiteLogo .storeLogo{position:unset}cx-storefront header .SearchBox{margin:14px 0 10px;width:30px}cx-storefront header .SiteLinks{background-color:transparent;width:110px;margin:auto 25px auto 0}cx-storefront header .SiteLinks app-account-dropdown,cx-storefront header .SiteLinks app-find-store,cx-storefront header .SiteLinks app-contact-us,cx-storefront header .SiteLinks cx-paragraph,cx-storefront header .SiteLinks .preferenceLink{display:none}cx-storefront header .SiteLinks app-custom-mini-cart,cx-storefront header .SiteLinks app-custom-user-account{width:35px}cx-storefront header.is-expanded{overflow-y:auto;position:fixed;bottom:0;top:0;width:calc(100% - 99px)}cx-storefront header.is-expanded .header{background-color:#b61828;margin-left:0}cx-storefront header.is-expanded .PreHeader{position:absolute;right:15px;top:15px}cx-storefront header.is-expanded .SearchBox{display:none}cx-storefront header.is-expanded .SiteLogo{position:absolute;top:25px;z-index:9}cx-storefront header.is-expanded .SiteLinks{background-color:#1d1d1b;width:100%;margin:15px auto 15px 0;height:unset;padding:15px;max-width:100%;position:relative;z-index:9;top:60px}cx-storefront header.is-expanded .SiteLinks app-account-dropdown,cx-storefront header.is-expanded .SiteLinks app-find-store,cx-storefront header.is-expanded .SiteLinks app-contact-us,cx-storefront header.is-expanded .SiteLinks cx-paragraph,cx-storefront header.is-expanded .SiteLinks .preferenceLink{display:block}cx-storefront header.is-expanded .SiteLinks app-custom-mini-cart,cx-storefront header.is-expanded .SiteLinks app-custom-user-account{display:none}cx-storefront header.is-expanded .SiteLinks app-account-dropdown{width:100%;max-width:100%}cx-storefront header.is-expanded .SiteLinks app-find-store{width:50%;max-width:328px;min-width:328px}cx-storefront header.is-expanded .SiteLinks app-contact-us{margin-right:15px;margin-left:auto;width:115px;max-width:unset}cx-storefront header.is-expanded .navigation{position:relative;top:45px}cx-storefront header.is-expanded:before{background-color:#0000004d;right:0;content:\"\";position:fixed;z-index:2;top:0;bottom:0;height:100vh;width:99px}cx-storefront header.is-expanded:after{background-color:transparent}}@media screen and (max-width: 576px){cx-storefront header .SiteLogo{max-width:80px}cx-storefront header .SiteLogo .storeLogo{display:none}cx-storefront header .searchBox{height:45px}cx-storefront header.is-expanded{width:100%}cx-storefront header.is-expanded .header,cx-storefront header.is-expanded .navigation{width:100%}cx-storefront header.is-expanded .SiteLogo{max-width:211px!important}cx-storefront header.is-expanded .SiteLogo .storeLogo{display:block}cx-storefront header.is-expanded .SiteLinks{max-width:100%;width:100%}cx-storefront header.is-expanded .SiteLinks app-account-dropdown,cx-storefront header.is-expanded .SiteLinks app-find-store,cx-storefront header.is-expanded .SiteLinks app-contact-us,cx-storefront header.is-expanded .SiteLinks cx-paragraph,cx-storefront header.is-expanded .SiteLinks .preferenceLink{display:block}cx-storefront header.is-expanded .SiteLinks app-custom-mini-cart,cx-storefront header.is-expanded .SiteLinks app-custom-user-account{display:none}cx-storefront header.is-expanded .SiteLinks app-find-store{width:100%;max-width:100%;margin-bottom:10px}cx-storefront header.is-expanded .SiteLinks app-contact-us{margin-left:0}cx-storefront header.is-expanded .SiteLinks cx-paragraph{margin-left:auto}cx-storefront header.is-expanded:before{display:none}.pageTitle{font-size:28px}}.cart-grid-tile{border:1px solid #E0E0E0;margin-bottom:20px;color:#1d1d1b}.cart-grid-tile .grid-tile-top{background-color:#e8e8e8;border:1px solid #E0E0E0;padding:15px;color:#1d1d1b}.cart-grid-tile .grid-tile-top .sku-code{font-size:var(--fontsize14);font-family:\"Arial Bold\",sans-serif;color:#707070}.cart-grid-tile .grid-tile-top .prod-img{width:70px;height:70px;background-color:#fff}.cart-grid-tile .grid-tile-top .delete-icon{cursor:pointer}.cart-grid-tile .grid-tile-top h4{margin-left:6px;font-size:var(--fontsize14);font-family:\"Arial Bold\",sans-serif}.cart-grid-tile .grid-tile-middle{background-color:#fff;padding:15px;border-bottom:1px solid #E0E0E0}.cart-grid-tile .grid-tile-middle .see-more-link{text-decoration:underline}.cart-grid-tile .grid-tile-middle .see-more-link:hover{color:#d51317}.cart-grid-tile .grid-tile-middle .custom-input-field{width:100%;border:1px solid #E0E0E0;height:40px;margin-bottom:15px;padding-left:15px}.cart-grid-tile .grid-tile-middle .color-block{width:20px;height:20px;border:1px solid #E0E0E0}.cart-grid-tile .grid-tile-middle .more-color{cursor:pointer;color:#b61828;margin-left:10px;-webkit-text-decoration-line:underline;text-decoration-line:underline;text-underline-offset:4px;-webkit-text-decoration-style:dashed;text-decoration-style:dashed;position:relative}.cart-grid-tile .grid-tile-middle .more-detail{text-decoration:underline;cursor:pointer;margin-bottom:0}.cart-grid-tile .grid-tile-middle a{color:#262626;text-decoration:underline;cursor:pointer}.cart-grid-tile .grid-tile-middle a:hover{color:#262626}.cart-grid-tile .expandBtn{z-index:9;cursor:pointer;position:absolute;background-color:#fff;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;bottom:-24px;left:50%;transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);box-shadow:0 0 6px #00000026;-webkit-box-shadow:0px 0px 6px rgba(0,0,0,.15);-moz-box-shadow:0px 0px 6px rgba(0,0,0,.15)}.cart-grid-tile .subPrice{color:#707070}.cart-grid-tile .grid-tile-bottom{background-color:#fff;padding:0 15px;border-top:1px solid #E0E0E0}.cart-grid-tile .grid-tile-bottom .total-qty{color:#1d1d1b;font-size:var(--fontsize16);font-family:\"Arial Regular\",sans-serif;padding:15px 0}.cart-grid-tile .grid-tile-bottom .total-amount{color:#1d1d1b;border-bottom:1px solid #E0E0E0}.cart-grid-tile .grid-tile-bottom .total-amount h4{font-size:var(--fontsize20);margin-bottom:0}.cart-grid-tile .grid-tile-bottom .total-amount span{font-size:var(--fontsize14)}.bundling{text-align:right;top:20px;margin-bottom:15px}.bundling span.text{display:inline-block;position:relative;top:-12px;font-size:var(--fontsize14)}.switch{position:relative;display:inline-block;width:50px;margin-top:-4px;height:22px}.switch input{opacity:0;width:0;height:0}.switch input:not(:checked)+.slider:after{content:\"NO\";right:6px;position:absolute;color:#fff;top:3px;font-size:var(--fontsize12);font-family:\"Arial Bold\",sans-serif}.switch input:checked+.slider{background-color:#b61828}.switch input:checked+.slider:before{transform:translate(26px);left:5px}.switch input:checked+.slider:after{content:\"YES\";left:5px;position:absolute;color:#fff;top:3px;font-size:var(--fontsize12);font-family:\"Arial Bold\",sans-serif}.switch input:focus+.slider{box-shadow:0 0 1px #2196f3}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#a6a6a5;transition:.4s}.slider:before{position:absolute;content:\"\";height:16px;width:16px;top:3px;left:3px;bottom:3px;background-color:#fff;transition:.4s}.slider.round{border-radius:34px}.slider.round:before{border-radius:50%}.cart-details-table th{font-size:var(--fontsize14);font-family:\"Arial Bold\",sans-serif}.add-more-btn{background:none;border:none}.add-more-btn .add-more{position:relative;background:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2219%22 height%3D%2219%22 viewBox%3D%220 0 19 19%22%3E%0D %3Cpath id%3D%22Icon_awesome-plus-circle%22 data-name%3D%22Icon awesome-plus-circle%22 d%3D%22M10.063.563a9.5%2C9.5%2C0%2C1%2C0%2C9.5%2C9.5A9.5%2C9.5%2C0%2C0%2C0%2C10.063.563Zm5.516%2C10.573a.461.461%2C0%2C0%2C1-.46.46H11.595v3.524a.461.461%2C0%2C0%2C1-.46.46H8.99a.461.461%2C0%2C0%2C1-.46-.46V11.595H5.006a.461.461%2C0%2C0%2C1-.46-.46V8.99a.461.461%2C0%2C0%2C1%2C.46-.46H8.53V5.006a.461.461%2C0%2C0%2C1%2C.46-.46h2.145a.461.461%2C0%2C0%2C1%2C.46.46V8.53h3.524a.461.461%2C0%2C0%2C1%2C.46.46Z%22 transform%3D%22translate(-0.563 -0.563)%22%2F%3E%0D%3C%2Fsvg%3E%0D\") no-repeat center;width:20px;height:20px;display:inline-block;top:4px}.colours .colour{padding:0 15px;position:relative}.colours .colour .checkbox{display:none}.colours .colour .colour-title{position:absolute;bottom:-48px;width:40px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:var(--fontsize14);text-align:center;cursor:grabbing}.colours .colour.selected{border:1px solid #000000}.colours .colour.selected .checkbox{position:absolute;background:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2217.186%22 height%3D%2217.186%22 viewBox%3D%220 0 17.186 17.186%22%3E%0D %3Cg id%3D%22Group_12857%22 data-name%3D%22Group 12857%22 transform%3D%22translate(0.25 0.25)%22%3E%0D %3Ccircle id%3D%22Ellipse_14%22 data-name%3D%22Ellipse 14%22 cx%3D%228.316%22 cy%3D%228.316%22 r%3D%228.316%22 transform%3D%22translate(0 0.039)%22%2F%3E%0D %3Cpath id%3D%22Icon_ionic-md-checkmark-circle%22 data-name%3D%22Icon ionic-md-checkmark-circle%22 d%3D%22M11.718%2C3.375a8.343%2C8.343%2C0%2C1%2C0%2C8.343%2C8.343A8.367%2C8.367%2C0%2C0%2C0%2C11.718%2C3.375ZM10.005%2C16.166%2C5.729%2C11.89l1.2-1.2%2C3.08%2C3.08%2C6.5-6.5%2C1.2%2C1.2Z%22 transform%3D%22translate(-3.375 -3.375)%22 fill%3D%22%23fff%22%2F%3E%0D %3Cpath id%3D%22Icon_ionic-md-checkmark-circle_-_Outline%22 data-name%3D%22Icon ionic-md-checkmark-circle - Outline%22 d%3D%22M11.718%2C3.125a8.583%2C8.583%2C0%2C0%2C1%2C6.069%2C14.662A8.583%2C8.583%2C0%2C1%2C1%2C5.649%2C5.649%2C8.532%2C8.532%2C0%2C0%2C1%2C11.718%2C3.125Zm0%2C16.686A8.117%2C8.117%2C0%2C1%2C0%2C6%2C17.433%2C8.035%2C8.035%2C0%2C0%2C0%2C11.718%2C19.811ZM16.511%2C6.916l1.553%2C1.553-8.059%2C8.05L5.376%2C11.89l1.553-1.553%2C3.08%2C3.08Zm.846%2C1.553-.846-.846-6.5%2C6.5-3.08-3.08-.846.846%2C3.922%2C3.922Z%22 transform%3D%22translate(-3.375 -3.375)%22%2F%3E%0D %3C%2Fg%3E%0D%3C%2Fsvg%3E%0D\") no-repeat center;width:20px;height:20px;display:inline-block;top:10px;left:10px}.colours .colour.main{box-sizing:border-box;width:40px;height:40px;display:inline-block;padding:0;border:1px solid #C6C6C6}.colours_container{width:320px;height:auto;position:absolute;z-index:1}.colors-paragraph{display:flex;align-items:center}.colors-paragraph .revieworder-color{width:20px;height:20px;border:1px solid #000000;display:inline-flex}.orderInfo li{display:flex}.orderInfo li label{font-family:\"Arial Bold\",sans-serif;width:50%}.orderInfo li .InfoText{display:inline-block;padding-left:10px;width:50%}.productImg{width:71px;height:71px}.productName{line-height:20px}.statusColor{display:inline-block;width:12px;height:12px;border-radius:50%}.attribute{font-size:14px}.flashing-expand{cursor:pointer}.flashing-expand:after{background:url(../../../../assets/images/expand-icon.svg) no-repeat center;z-index:2;width:24px;content:\"\";height:24px;position:absolute;top:0;right:0}#imageModal.show{display:flex!important;vertical-align:middle!important;align-items:center!important}#imageModal.show .modal-header{justify-content:right;border:none}#imageModal.show .modal-body{text-align:center;vertical-align:middle;margin:0 auto}.flashing-block{background-color:#e8e8e8}.flashing-block .flash-title{font-size:var(--fontsize16);font-family:\"Arial Bold\",sans-serif}.flashing-block .skuId{color:#707070;font-size:var(--fontsize14);font-family:\"Arial Bold\",sans-serif}.flashing-block .gst-text{display:block;font-size:var(--fontsize16);font-family:\"Arial Regular\",sans-serif}.flashing-block .total-amount{border-bottom:none!important}@media screen and (max-width: 767px){.cart-grid-tile .grid-tile-top h4{margin-top:10px;margin-left:0}.productImg{width:100%;height:100%}.total-qty span,.total-amount span{font-size:1rem}.total-qty h4,.total-amount h4{font-size:1.25rem!important}}\n"], components: [{ type: i2.MediaComponent, selector: "cx-media", inputs: ["container", "format", "alt", "role", "loading"], outputs: ["loaded"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], pipes: { "async": i3.AsyncPipe, "number": i3.DecimalPipe, "date": i3.DatePipe, "slice": i3.SlicePipe } });
92
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: OrderDetailGridComponent, decorators: [{
93
+ type: Component,
94
+ args: [{
95
+ selector: 'app-order-detail-grid',
96
+ templateUrl: './order-detail-grid.component.html',
97
+ styleUrls: ['./order-detail-grid.component.scss']
98
+ }]
99
+ }], ctorParameters: function () { return [{ type: i1.CartService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { sortByVal: [{
100
+ type: Input
101
+ }], cartDetails: [{
102
+ type: Input
103
+ }], orderDate: [{
104
+ type: Input
105
+ }], isCardData: [{
106
+ type: Input
107
+ }] } });
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItZGV0YWlsLWdyaWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnVpbGRpbmdwcm9kdWN0X2xpYnJhcnkvc3JjL2xpYi9jdXN0b20tb3JkZXItZGV0YWlscy9vcmRlci1kZXRhaWwtZ3JpZC9vcmRlci1kZXRhaWwtZ3JpZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idWlsZGluZ3Byb2R1Y3RfbGlicmFyeS9zcmMvbGliL2N1c3RvbS1vcmRlci1kZXRhaWxzL29yZGVyLWRldGFpbC1ncmlkL29yZGVyLWRldGFpbC1ncmlkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFRdkMsTUFBTSxPQUFPLHdCQUF3QjtJQWFuQyxZQUFvQixXQUF3QixFQUNsQyxHQUFzQjtRQURaLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ2xDLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBYmhDLGdCQUFXLEdBQVEsRUFBRSxDQUFDO1FBQ3RCLGdCQUFXLEdBQUssRUFBRSxDQUFDO1FBRW5CLG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFNUMsZ0JBQVcsR0FBTSxFQUFFLENBQUM7UUFLN0IsZ0JBQVcsR0FBUSxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pELFFBQUcsR0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUVMLENBQUM7SUFFckMsUUFBUTtJQUVSLENBQUM7SUFDRCxXQUFXLENBQUMsT0FBc0I7O1FBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFD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VSxTQUFTO3NCQUFqQixLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NhcnQuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1vcmRlci1kZXRhaWwtZ3JpZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL29yZGVyLWRldGFpbC1ncmlkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9vcmRlci1kZXRhaWwtZ3JpZC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPcmRlckRldGFpbEdyaWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgc2hvd0RldGFpbHM6IGFueSA9IFtdO1xyXG4gIGFycm93VXBEb3duOmFueT1bXTtcclxuICBASW5wdXQoKSBzb3J0QnlWYWw6IGFueTtcclxuICBzaG93V2FpdEN1cnNvciA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICBASW5wdXQoKSBjYXJ0RGV0YWlsczogYW55PVtdO1xyXG4gIEBJbnB1dCgpIG9yZGVyRGF0ZTphbnk7XHJcbiAgQElucHV0KCkgaXNDYXJkRGF0YTogYW55O1xyXG4gIG5vUmVjb3JkPzpzdHJpbmc7XHJcbiAgaW1hZ2VNb2RhbFNyYzogYW55O1xyXG4gIGVudmlyb25tZW50OiBhbnkgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdlbnYnKTtcclxuICBlbnYgOiBhbnkgPSBKU09OLnBhcnNlKHRoaXMuZW52aXJvbm1lbnQpO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2FydFNlcnZpY2U6IENhcnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gIH1cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoIWNoYW5nZXMuY2FydERldGFpbHMuZmlyc3RDaGFuZ2UpIHtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zaG93V2FpdEN1cnNvci5uZXh0KHRydWUpO1xyXG4gICAgaWYodGhpcy5jYXJ0RGV0YWlscz8ubGVuZ3RoKXtcclxuICAgICAgdGhpcy5zaG93V2FpdEN1cnNvci5uZXh0KGZhbHNlKVxyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuc2hvd1dhaXRDdXJzb3IubmV4dChmYWxzZSlcclxuICAgICAgdGhpcy5ub1JlY29yZD0nTm8gZGF0YSc7XHJcbiAgICB9XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY2FydERldGFpbHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgdGhpcy5zaG93RGV0YWlscy5wdXNoKGZhbHNlKTtcclxuICAgIH1cclxuICAgIHRoaXMuY2FydFNlcnZpY2UuZXhwYW5kQWxsLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY2FydERldGFpbHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB0aGlzLnNob3dEZXRhaWxzW2ldID0gZGF0YTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG4gIHNob3dIaWRlKGluZDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnNob3dEZXRhaWxzW2luZF0gPSAhdGhpcy5zaG93RGV0YWlsc1tpbmRdO1xyXG4gIH1cclxuICBhcnJvd0hpZGVTaG93KGlkOiBudW1iZXIpe1xyXG4gIHRoaXMuYXJyb3dVcERvd25baWRdID0gIXRoaXMuYXJyb3dVcERvd25baWRdO1xyXG4gIH1cclxuICAvLyBHZXQgdGhlIEltYWdlIERldGFpbHMgYmFzZWQgb24gUHJvZHVjdHNcclxuICBnZXRJbWFnZURldGFpbHMoY2FydERldGFpbHM6IGFueSwgdGh1bWJuYWlsOiBhbnkgPSB0cnVlKTogYW55IHtcclxuICAgIGxldCBpbWFnZVVybDogYW55ID0gY2FydERldGFpbHM/LnByb2R1Y3Q/LmltYWdlcztcclxuICAgIGlmICh0aGlzLmlzQ2FyZERhdGEpIHtcclxuICAgICAgaW1hZ2VVcmwgPSBjYXJ0RGV0YWlscz8ucHJvZHVjdD8uaW1hZ2VzO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaW1hZ2VVcmwgPSBjYXJ0RGV0YWlscz8ucHJvZHVjdD8uaW1hZ2VzPy5QUklNQVJZPy5jYXJ0SWNvbjtcclxuICAgIH1cclxuICAgIGxldCBzcmNVcmw6IGFueTtcclxuICAgIGlmIChcclxuICAgICAgY2FydERldGFpbHM/LmF0dGFjaG1lbnRzICYmXHJcbiAgICAgIGNhcnREZXRhaWxzPy5hdHRhY2htZW50cz8ubGVuZ3RoICYmXHJcbiAgICAgIGNhcnREZXRhaWxzPy5wcm9kdWN0Py5mbGFzaGluZ1Byb2R1Y3RcclxuICAgICkge1xyXG4gICAgICBzcmNVcmwgPVxyXG4gICAgICAgIHRodW1ibmFpbCAmJiBjYXJ0RGV0YWlscz8uYXR0YWNobWVudHM/Lmxlbmd0aCA+IDFcclxuICAgICAgICAgID8gY2FydERldGFpbHM/LmF0dGFjaG1lbnRzWzFdPy5kb3dubG9hZFVSTFxyXG4gICAgICAgICAgOiBjYXJ0RGV0YWlscz8uYXR0YWNobWVudHNbMF0/LmRvd25sb2FkVVJMO1xyXG4gICAgICBpbWFnZVVybCA9IHtcclxuICAgICAgICB1cmw6IChcclxuICAgICAgICAgIHRoaXMuZW52Lm9jY0Jhc2VVcmwuc2xpY2UoMCwgdGhpcy5lbnYub2NjQmFzZVVybC5sZW5ndGggLSAxKSArXHJcbiAgICAgICAgICBzcmNVcmxcclxuICAgICAgICApPy5yZXBsYWNlKCcmYXR0YWNobWVudD10cnVlJywgJycpLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGltYWdlVXJsO1xyXG4gIH1cclxuICB2aWV3SW1hZ2UoZXZlbnQ6IGFueSwgY2FydERldGFpbHM6IGFueSk6IHZvaWQge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIHRoaXMuaW1hZ2VNb2RhbFNyYyA9IHRoaXMuZ2V0SW1hZ2VEZXRhaWxzKGNhcnREZXRhaWxzLCBmYWxzZSk/LnVybDtcclxuICB9XHJcbiBcclxuICBnZXRQZGZMaW5rKGNhcnREZXRhaWxzOiBhbnkpOiB2b2lkIHtcclxuICAgIHJldHVybiB0aGlzLmdldEltYWdlRGV0YWlscyhjYXJ0RGV0YWlscywgZmFsc2UpPy51cmw7XHJcbiAgfVxyXG5cclxuICBoYXNJbWFnZShjYXJ0RGV0YWlsczogYW55KTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBtaW1lVHlwZSA9IGNhcnREZXRhaWxzPy5hdHRhY2htZW50c1swXT8ubWltZTtcclxuICAgIGNvbnN0IG1pbWVBcnJheSA9IFtcImltYWdlL3BuZ1wiLCBcImltYWdlL2pwZ1wiLCBcImltYWdlL2pwZWdcIl07XHJcbiAgICByZXR1cm4gbWltZUFycmF5LmluY2x1ZGVzKG1pbWVUeXBlKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImxvYWRpbmcgXCIgKm5nSWY9XCJzaG93V2FpdEN1cnNvciB8IGFzeW5jIFwiPkxvYWRpbmcmIzgyMzA7PC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJweS0zXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNhcnREZXRhaWxzLmxlbmd0aDsgZWxzZSBub2RhdGFcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIGNvbC1zbS02XCIgKm5nRm9yPVwibGV0IGNhcnQgb2YgY2FydERldGFpbHM7bGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcnQtZ3JpZC10aWxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQtdGlsZS10b3AgcG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJza3UtY29kZVwiPlNLVTp7e2NhcnQ/LnByb2R1Y3Q/LmNvZGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiN7e2NhcnQuZW50cnlOdW1iZXJ9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjYXJ0RGV0YWlsc1tpXT8ucHJvZHVjdD8uZmxhc2hpbmdQcm9kdWN0O2Vsc2Ugbm9ybWFsSW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgZGF0YS10b2dnbGU9XCJtb2RhbFwiIGNsYXNzPVwiZmxhc2hpbmctZXhwYW5kXCIgKGNsaWNrKT1cInZpZXdJbWFnZSgkZXZlbnQsY2FydERldGFpbHNbaV0pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtdGFyZ2V0XT1cIicjaW1hZ2VNb2RhbCdcIiAqbmdJZj1cImhhc0ltYWdlKGNhcnREZXRhaWxzW2ldKTtlbHNlIGhhc1BkZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGN4LW1lZGlhIFtjb250YWluZXJdPVwiZ2V0SW1hZ2VEZXRhaWxzKGNhcnREZXRhaWxzW2ldKVwiIGZvcm1hdD1cImNhcnRJY29uXCIgcm9sZT1cInByZXNlbnRhdGlvblwiPjwvY3gtbWVkaWE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNoYXNQZGY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImZsYXNoaW5nLWV4cGFuZCBmbGFzaGluZy1vcGVuXCIgW2hyZWZdPVwiZ2V0UGRmTGluayhjYXJ0RGV0YWlsc1tpXSlcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cInBkZi1pY29uXCIgc3JjPVwiLi4vLi4vLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy9wZGYtaWNvbi5zdmdcIiBhbHQ9XCJDbGljayB0byBvcGVuIFBERlwiIHRpdGxlPVwiQ2xpY2sgdG8gb3BlbiBQREZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub3JtYWxJbWFnZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGN4LW1lZGlhIFtjb250YWluZXJdPVwiZ2V0SW1hZ2VEZXRhaWxzKGNhcnREZXRhaWxzW2ldKVwiIGZvcm1hdD1cImNhcnRJY29uXCIgcm9sZT1cInByZXNlbnRhdGlvblwiPjwvY3gtbWVkaWE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC04XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwicHJvZHVjdE5hbWVcIj57e2NhcnQ/LnByb2R1Y3Q/Lm5hbWV9fTwvaDQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXhwYW5kQnRuXCIgKGNsaWNrKT1cImFycm93SGlkZVNob3coaSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhcnJvd1VwRG93bltpXT09dHJ1ZTsgZWxzZSBhcnJvd1VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2hldnJvbi11cFwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNhcnJvd1VwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNoZXZyb24tZG93blwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXJyb3dVcERvd25baV1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQtdGlsZS1taWRkbGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjYXJ0Py5wcm9kdWN0Py5jbGFzc2lmaWNhdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm10LTEgbWItNCBhdHRyaWJ1dGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGF0dHJpYnV0ZXMgb2YgY2FydD8ucHJvZHVjdD8uY2xhc3NpZmljYXRpb25zWzBdPy5mZWF0dXJlcztsYXN0IGFzIGlzTGFzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3thdHRyaWJ1dGVzPy5mZWF0dXJlVmFsdWVzWzBdPy52YWx1ZSB9fSA8c3BhbiAqbmdJZj1cIiFpc0xhc3RcIj4gfCA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjYXJ0Py5zdWJMaW5lQ29uZmlnSW5mb3MubGVuZ3RoPjBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgKGNsaWNrKT1cInNob3dIaWRlKGkpXCIgY2xhc3M9XCJzZWUtbW9yZS1saW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7c2hvd0RldGFpbHNbaV0gPT0gdHJ1ZSA/ICdIaWRlJyA6ICdTZWUnfX0gbW9yZSBkZXRhaWxzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93RGV0YWlsc1tpXVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwibm8tYm9yZGVyIGNhcnQtZGV0YWlscy10YWJsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlF1YW50aXR5PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPkxlbmd0aCAoTE0pPC90aD4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCAqbmdJZj1cImNhcnQ/LnN1YkxpbmVDb25maWdJbmZvc1tpXT8uYnVuZGxlTmFtZVwiPkJ1bmRsZTwvdGg+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBzdWJMaW5lIG9mIGNhcnQ/LnN1YkxpbmVDb25maWdJbmZvc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tzdWJMaW5lPy5xdWFudGl0eX19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7c3ViTGluZT8ubGVuZ3RoIHwgbnVtYmVyOicwLjMtMyd9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCAqbmdJZj1cInN1YkxpbmU/LmJ1bmRsZU5hbWVcIj57e3N1YkxpbmU/LmJ1bmRsZU5hbWV9fTxicj57e3N1YkxpbmU/LnJlZmVyZW5jZX19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj4gICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTIgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImNvbC0xMiBvcmRlckluZm9cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8bGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+RGVsaXZlcnkgIzo8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJJbmZvVGV4dFwiPi08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+UXR5IFNoaXBwZWQ6PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiSW5mb1RleHRcIj4tPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+RGVsaXZlcnkgRGF0ZTo8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJJbmZvVGV4dFwiPiB7e29yZGVyRGF0ZSB8IGRhdGU6XCJkZC9NTS95eXl5XCJ9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlN0YXR1czo8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJJbmZvVGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cInN0YXR1c0NvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieydiYWNrZ3JvdW5kLWNvbG9yJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhcnQ/LnN0YXR1cz09J0NSRUFURUQnKSA/ICgnI0YzQTkzMScpIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhcnQ/LnN0YXR1cz09J0FQUFJPVkVEJykgPyAoJyNmMjY1MjInKSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYXJ0Py5zdGF0dXM9PSdQUk9DRVNTSU5HJykgPyAoJyM3NTU3OEEnKSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYXJ0Py5zdGF0dXM9PSdSRUFEWScpID8gKCcjNDk2NDcxJykgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FydD8uc3RhdHVzPT0nREVMSVZFUklORycpID8gKCcjMDBBQ0JEJykgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FydD8uc3RhdHVzPT0nQ09NUExFVEVEJykgPyAoJyM4REM0NDAnKSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYXJ0Py5zdGF0dXM9PSdSRVRVUk5FRCcpID8gKCcjOERDNDQwJykgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FydD8uc3RhdHVzPT0nQ0FOQ0VMTEVEJykgPyAoJyMwMDAwMDAnKSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgnJyl9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvc21hbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NhcnQ/LnN0YXR1c0Rpc3BsYXkgfHwgJy0nfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQtdGlsZS1ib3R0b21cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTcgYm9yZGVyLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b3RhbC1xdHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtLTBcIj57e2NhcnQ/LmpvYlJlZmVyZW5jZSAgfHwgICctJ319PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjYXJ0Py5jb25maWd1cmF0aW9uSW5mb3MubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiY29sb3JzLXBhcmFncmFwaCBteS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJldmlld29yZGVyLWNvbG9yIG1yLTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBiYWNrZ3JvdW5kOiBjYXJ0Py5jb25maWd1cmF0aW9uSW5mb3NbMF0/LmNvbmZpZ3VyYXRpb25WYWx1ZS5zcGxpdCgnfCcpIHwgc2xpY2U6Mn1cIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NhcnQ/LmNvbmZpZ3VyYXRpb25JbmZvc1swXT8uY29uZmlndXJhdGlvblZhbHVlLnNwbGl0KCd8JykgfCBzbGljZToxOjJ9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlRvdGFsIFF0eToge3tjYXJ0LnF1YW50aXR5RG91YmxlfX17e2NhcnQ/LnRvdGFsUHJpY2U/LnVuaXRUeXBlfX08L3NwYW4+PGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWJQcmljZVwiPkAge3tjYXJ0Py50b3RhbFByaWNlPy5mb3JtYXR0ZWRWYWx1ZX19L3t7Y2FydD8udG90YWxQcmljZT8udW5pdFR5cGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC01IHB4LTAgZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b3RhbC1hbW91bnQgdGV4dC1yaWdodCBweS0zIHB4LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND57e2NhcnQ/LnRvdGFsUHJpY2U/LmZvcm1hdHRlZFZhbHVlfX08L2g0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+ZXhjbCBHU1Q8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZWZ0IHB5LTMgcHgtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJJbmZvVGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cInN0YXR1c0NvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieydiYWNrZ3JvdW5kLWNvbG9yJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhcnQ/LnN0YXR1cz09J0NSRUFURUQnKSA/ICgnI0YzQTkzMScpIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhcnQ/LnN0YXR1cz09J0FQUFJPVkVEJykgPyAoJyNmMjY1MjInKSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYXJ0Py5zdGF0dXM9PSdQUk9DRVNTSU5HJykgPyAoJyM3NTU3OEEnKSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYXJ0Py5zdGF0dXM9PSdSRUFEWScpID8gKCcjNDk2NDcxJykgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FydD8uc3RhdHVzPT0nREVMSVZFUklORycpID8gKCcjMDBBQ0JEJykgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FydD8uc3RhdHVzPT0nQ09NUExFVEVEJykgPyAoJyM4REM0NDAnKSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYXJ0Py5zdGF0dXM9PSdSRVRVUk5FRCcpID8gKCcjOERDNDQwJykgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FydD8uc3RhdHVzPT0nQ0FOQ0VMTEVEJykgPyAoJyMwMDAwMDAnKSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgnJyl9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvc21hbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NhcnQ/LnN0YXR1c0Rpc3BsYXkgPyBjYXJ0Py5zdGF0dXNEaXNwbGF5IDogJy0nfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNhcnREZXRhaWxzW2ldPy5wcm9kdWN0Py5mbGFzaGluZ1Byb2R1Y3QgJiYgY2FydERldGFpbHNbaV0/LnByb2R1Y3RDb25maWd1cmVkSW5mb3NcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGFzaGluZy1ibG9jayBcIiAqbmdGb3I9XCJsZXQgZGF0YSBvZiBjYXJ0RGV0YWlsc1tpXT8ucHJvZHVjdENvbmZpZ3VyZWRJbmZvc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZC10aWxlLXRvcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJza3VJZFwiPlNLVToge3tkYXRhPy5wcm9kdWN0Py5jb2RlfX08L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiZmxhc2gtdGl0bGVcIj57e2RhdGE/LnByb2R1Y3Q/Lm5hbWV9fTwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRhdGE/LmdpcnRoXCI+R3JpdGg6ICt7e2RhdGE/LmdpcnRofX1tbTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkLXRpbGUtYm90dG9tXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGNvbC02IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgYm9yZGVyLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b3RhbC1xdHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlRvdGFsIFF0eToge3tkYXRhPy5xdWFudGl0eURvdWJsZX19e3tkYXRhPy51bml0VHlwZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+QHt7ZGF0YT8uYmFzZVByaWNlPy5mb3JtYXR0ZWRWYWx1ZX19L3t7ZGF0YT8udW5pdFR5cGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBjb2wtNiBkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1pdGVtcy1jZW50ZXIgdGV4dC1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG90YWwtYW1vdW50IHRleHQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+e3tkYXRhPy50b3RhbFByaWNlPy5mb3JtYXR0ZWRWYWx1ZX19PC9oND5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5leGNsIEdTVDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNub2RhdGE+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTJcIj5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1jZW50ZXJcIj57e25vUmVjb3JkfX08L3A+XHJcbiAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48ZGl2IGNsYXNzPVwibW9kYWwgZmFkZVwiIGlkPVwiaW1hZ2VNb2RhbFwiIHJvbGU9XCJkaWFsb2dcIiBhcmlhLWxhYmVsbGVkYnk9XCJpbWFnZU1vZGFsXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgI2ltYWdlTW9kYWw+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZGlhbG9nIG1vZGFsLWxnXCIgcm9sZT1cImRvY3VtZW50XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uLWNsb3NlIGludml0ZS1wb3AtY2xvc2VcIiAjY2xvc2VJbnZpdGVNb2RhbCBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiPjwvaT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IG0tNFwiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImltYWdlTW9kYWxTcmNcIiBhbHQ9XCJhbGVydFwiIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -0,0 +1,103 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../services/cart.service";
5
+ import * as i2 from "@spartacus/storefront";
6
+ import * as i3 from "@angular/common";
7
+ export class OrderDetailListComponent {
8
+ constructor(cartService, cdr) {
9
+ this.cartService = cartService;
10
+ this.cdr = cdr;
11
+ this.showDetails = [];
12
+ this.cartDetails = [];
13
+ this.showWaitCursor = new BehaviorSubject(false);
14
+ this.environment = sessionStorage.getItem('env');
15
+ this.env = JSON.parse(this.environment);
16
+ }
17
+ ngOnInit() {
18
+ }
19
+ ngOnChanges(changes) {
20
+ var _a;
21
+ if (!changes.cartDetails.firstChange) {
22
+ this.cdr.detectChanges();
23
+ }
24
+ this.showWaitCursor.next(true);
25
+ if ((_a = this.cartDetails) === null || _a === void 0 ? void 0 : _a.length) {
26
+ this.showWaitCursor.next(false);
27
+ }
28
+ else {
29
+ this.showWaitCursor.next(false);
30
+ this.noRecord = 'No data';
31
+ }
32
+ for (let i = 0; i < this.cartDetails.length; i++) {
33
+ this.showDetails.push(false);
34
+ }
35
+ this.cartService.expandAll.subscribe((data) => {
36
+ for (let i = 0; i < this.cartDetails.length; i++) {
37
+ this.showDetails[i] = data;
38
+ }
39
+ });
40
+ }
41
+ // Get the Image Details based on Products
42
+ getImageDetails(cartDetails, thumbnail = true) {
43
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
44
+ let imageUrl = (_a = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.product) === null || _a === void 0 ? void 0 : _a.images;
45
+ if (this.isCardData) {
46
+ imageUrl = (_b = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.product) === null || _b === void 0 ? void 0 : _b.images;
47
+ }
48
+ else {
49
+ imageUrl = (_e = (_d = (_c = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.product) === null || _c === void 0 ? void 0 : _c.images) === null || _d === void 0 ? void 0 : _d.PRIMARY) === null || _e === void 0 ? void 0 : _e.cartIcon;
50
+ }
51
+ let srcUrl;
52
+ if ((cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.attachments) &&
53
+ ((_f = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.attachments) === null || _f === void 0 ? void 0 : _f.length) &&
54
+ ((_g = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.product) === null || _g === void 0 ? void 0 : _g.flashingProduct)) {
55
+ srcUrl =
56
+ thumbnail && ((_h = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.attachments) === null || _h === void 0 ? void 0 : _h.length) > 1
57
+ ? (_j = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.attachments[1]) === null || _j === void 0 ? void 0 : _j.downloadURL
58
+ : (_k = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.attachments[0]) === null || _k === void 0 ? void 0 : _k.downloadURL;
59
+ imageUrl = {
60
+ url: (_l = (this.env.occBaseUrl.slice(0, this.env.occBaseUrl.length - 1) +
61
+ srcUrl)) === null || _l === void 0 ? void 0 : _l.replace('&attachment=true', ''),
62
+ };
63
+ }
64
+ return imageUrl;
65
+ }
66
+ showHide(ind) {
67
+ this.showDetails[ind] = !this.showDetails[ind];
68
+ }
69
+ viewImage(event, cartDetails) {
70
+ var _a;
71
+ event.preventDefault();
72
+ this.imageModalSrc = (_a = this.getImageDetails(cartDetails, false)) === null || _a === void 0 ? void 0 : _a.url;
73
+ }
74
+ getPdfLink(cartDetails) {
75
+ var _a;
76
+ return (_a = this.getImageDetails(cartDetails, false)) === null || _a === void 0 ? void 0 : _a.url;
77
+ }
78
+ hasImage(cartDetails) {
79
+ var _a;
80
+ const mimeType = (_a = cartDetails === null || cartDetails === void 0 ? void 0 : cartDetails.attachments[0]) === null || _a === void 0 ? void 0 : _a.mime;
81
+ const mimeArray = ["image/png", "image/jpg", "image/jpeg"];
82
+ return mimeArray.includes(mimeType);
83
+ }
84
+ }
85
+ OrderDetailListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: OrderDetailListComponent, deps: [{ token: i1.CartService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
86
+ OrderDetailListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: OrderDetailListComponent, selector: "app-order-detail-list", inputs: { cartDetails: "cartDetails", sortByVal: "sortByVal", orderDate: "orderDate", isCardData: "isCardData" }, usesOnChanges: true, ngImport: i0, template: "<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", styles: ["@charset \"UTF-8\";@media screen and (min-width: 1366px){:root{--fontsize12: .75rem;--fontsize14: .875rem;--fontsize16: 1rem;--fontsize17: 1.063rem;--fontsize17-5: 1.1rem;--fontsize18: 1.125rem;--fontsize18-4: 1.5rem;--fontsize20: 1.25rem;--fontsize21: 1.313rem;--fontsize22: 1.375rem;--fontsize23: 1.438rem;--fontsize24: 1.5rem;--fontsize26: 1.625rem;--fontsize28: 1.75rem;--fontsize30: 1.625rem;--fontsize32: 2rem;--fontsize34: 2.125rem;--fontsize36: 2rem;--fontsize40: 2.25rem;--fontsize46: 2.875rem;--fontsize80: 5rem}}@media screen and (max-width: 1365px) and (min-width: 768px){:root{--fontsize12: .75rem;--fontsize14: .875rem;--fontsize16: 1rem;--fontsize17: .9rem;--fontsize17-5: 1rem;--fontsize18: .875rem;--fontsize20: 1rem;--fontsize21: 1.063rem;--fontsize22: 1.125rem;--fontsize23: 1.188rem;--fontsize24: 1rem;--fontsize28: 1.5rem;--fontsize30: 1.25rem;--fontsize32: 1.75rem;--fontsize34: 1.875rem;--fontsize36: 1.625rem;--fontsize40: 2.5rem;--fontsize46: 2.875rem;--fontsize80: 3.5rem}}@media screen and (max-width: 767px){:root{--fontsize12: .75rem;--fontsize14: .875rem;--fontsize16: 1rem;--fontsize16-5: .77rem;--fontsize17: .9rem;--fontsize17-5: 1rem;--fontsize18: .875rem;--fontsize19: .938rem;--fontsize20: 1rem;--fontsize21: 1.063rem;--fontsize22: 1.125rem;--fontsize23: 1.188rem;--fontsize24: 1rem;--fontsize26: 1.25rem;--fontsize28: 1.5rem;--fontsize30: 1.25rem;--fontsize32: 1.75rem;--fontsize34: 1.875rem;--fontsize36: 1.625rem;--fontsize40: 2.5rem;--fontsize46: 2rem;--fontsize80: 2.5rem}}@font-face{font-family:icomoon;font-weight:400;src:url(../assets/fonts/icomoon.ttf) format(\"ttf\"),url(../assets/fonts/icomoon.woff) format(\"woff\");font-weight:normal;font-style:normal;font-display:swap}@font-face{font-family:\"Arial Regular\";src:url(../assets/fonts/arial-webfont.woff) format(\"woff\"),url(../assets/fonts/arial-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Arial Bold\";src:url(../assets/fonts/arialbold-webfont.woff) format(\"woff\"),url(../assets/fonts/arialbold-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Arial Black\";src:url(../assets/fonts/arialblack-webfont.woff) format(\"woff\"),url(../assets/fonts/arialblack-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Helvetica Neue Reqular\";src:url(../assets/fonts/helveticaneue.woff) format(\"woff\"),url(../assets/fonts/helveticaneue.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Helvetica Neue Thin\";src:url(../assets/fonts/helveticaneuethin-webfont.woff) format(\"woff\"),url(../assets/fonts/helveticaneuethin-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}@font-face{font-family:\"Helvetica Neue Medium\";src:url(../assets/fonts/helveticaneuemedium-webfont.woff) format(\"woff\"),url(../assets/fonts/helveticaneuemedium-webfont.woff2) format(\"woff2\");font-weight:normal;font-style:normal}[class*=\" icon-\"],[class^=icon-]{font-family:icomoon!important;font-feature-settings:normal;font-variant:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-style:normal;font-weight:400;line-height:1;text-transform:none;font-display:swap}.icon-right:before{content:\"\\e902\"}.icon-materials:before{content:\"\\e900\"}.icon-natural-lighting:before{content:\"\\e90a\"}.icon-rainwater:before{content:\"\\e901\"}.icon-roofing:before{content:\"\\e90b\"}.icon-flashing{position:relative;display:inline-block;height:32px;text-align:center;width:32px}.icon-flashing:before,.mainnav-link-level-2.show .navTagChild .icon-flashing:before{content:url(../assets/images/icon-flashing-white.svg);height:20px;width:20px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);line-height:15px}li.megamenuSubChild:hover .icon-flashing:before{content:url(../assets/images/icon-flashing-black.svg)}.icon-structural:before{content:\"\\e90c\"}.icon-accessories-old .path1:before{content:\"\\e903\"}.icon-accessories-old .path2:before{margin-left:-1em;content:\"\\e904\"}.icon-accessories-old .path3:before{margin-left:-1em;content:\"\\e905\"}.icon-cladding-old .path1:before{content:\"\\e90d\"}.icon-cladding-old .path2:before{margin-left:-1em;content:\"\\e90e\"}.icon-close:before{content:\"\\e90f\"}.icon-message:before{content:\"\\e910\"}.icon-search .path1:before{content:\"\\e906\"}.icon-search .path2:before{content:\"\\e907\"}.icon-search .path3:before{margin-left:-1.0156em;content:\"\\e908\"}.icon-summary:before{content:\"\\e911\"}.icon-branch:before{content:\"\\e912\"}.icon-delivery:before{content:\"\\e913\"}.icon-downloads:before{content:\"\\e909\"}.icon-drawings:before{content:\"\\e914\"}.icon-full:before{content:\"\\e915\"}.icon-manual:before{content:\"\\e916\"}.icon-payment:before{content:\"\\e917\"}.icon-empty .path1:before{content:\"\\e918\"}.icon-empty .path2:before{margin-left:-1em;content:\"\\e919\"}.icon-empty .path3:before{margin-left:-1em;content:\"\\e91a\"}.icon-product-overview:before{content:\"\\e91b\"}.icon-arrows:before{content:\"\\e91c\"}.icon-selected:before{content:\"\\e91d\"}.icon-accessories:before{content:\"\\e91b\"}.icon-cladding:before{content:\"\\e91e\"}.icon-Triangle:before{content:\"\\e91f\"}.icon-home:before{content:\"\\e920\"}.icon-faq:before{content:\"\\e921\"}.icon-temperature:before{content:\"\\e922\"}body header{font-family:\"Arial Regular\",sans-serif}header{background-color:#1d1d1b;position:sticky;top:0;background-size:100% 25%!important;background-repeat:no-repeat;z-index:10}header .header{max-width:100%;padding:0}header cx-banner cx-media img{margin-top:.7rem;margin-bottom:0}header label{display:inline-flex}header .SiteLinks{height:52px;display:flex;align-items:center;justify-content:space-between;padding-top:5px;padding-bottom:5px}header .SiteLinks cx-paragraph p{color:#fff;font-size:var(--fontsize16);line-height:var(--fontsize16);margin-bottom:0}header .SiteLinks cx-paragraph{font-size:var(--fontsize16)}header .SiteLinks app-account-dropdown,header .SiteLinks app-find-store{width:calc(25% - 25px);max-width:328px;margin-right:25px}header .SiteLinks app-contact-us{width:calc(20% - 25px);max-width:100px;margin-left:auto}header .SiteLinks app-custom-mini-cart{width:10%}header .SiteLinks .preferenceLink{margin-left:auto}header .SiteLinks .preferenceLink cx-generic-link{margin:0}header .SiteLinks .preferenceLink cx-generic-link cx-media img{height:22px;margin:0}header .SiteLogo .storeLogo{position:absolute;z-index:99;left:40px;bottom:10px}header .SiteLogo .homeLogo{max-width:28px;height:28px;position:absolute;z-index:99;bottom:47px}header .NavigationBar{flex:70%;background-color:#b61828;min-height:40px;display:flex;align-items:center;position:relative;z-index:10}header .logoutMenu{margin-top:0!important}header .logoutMenu li{cursor:pointer;background-color:#4c4c4c;color:#fff}header .logoutMenu li:hover{text-decoration:underline;background-color:#4c4c4c}header .MarketingContext{width:100%;margin:auto}.customer-service-icon{cursor:pointer}.helpSupport{width:20rem;border:0;margin-top:.5rem!important;transform:translate(-42%,36px)!important;padding:1rem 1rem 0;background-color:#393939;color:#fff;top:0}.helpSupport .arrow-up{position:absolute;top:-8px;right:44%;width:0;height:0;border-left:15px solid rgba(0,0,0,0);border-right:15px solid rgba(0,0,0,0);border-bottom:15px solid #393939}.helpSupport .contact-us-info .heading{font-family:\"Arial Bold\",sans-serif}.helpSupport .contact-us-info .detail{font-size:var(--fontsize14);line-height:2rem}.helpSupport .contact-us-info .detail .service-icon{height:20px;width:20px;margin-right:10px}.helpSupport .contact-us-info .contactLink a{font-size:var(--fontsize14);text-decoration:underline;text-transform:uppercase}.helpSupport .contact-us-info a{color:#fff;text-decoration:none}.helpSupport .contact-us-info a:hover{text-decoration:underline}.pageTitle{font-family:\"Helvetica Neue Regular\",sans-serif;font-size:var(--fontsize54)}#visualization-container{text-align:center;margin:0 auto}#cds-viewer-container-3d{width:320px;height:200px}#cds-viewer-container-2d{width:320px;height:200px}[aria-label=Close]{cursor:pointer}cx-media.is-missing{background:url(./assets/images/search-noimage.svg);background-size:cover;background-position:center;background-repeat:no-repeat}cx-global-message{position:fixed;top:9rem;width:100%;z-index:13}@media screen and (max-width: 991px){cx-global-message{top:3.75rem}cx-storefront header{background-color:#b61828}cx-storefront header cx-banner cx-media img{margin:auto}cx-storefront header .SiteLogo{width:100%;max-width:211px;margin:auto;padding-left:30px;box-sizing:border-box}cx-storefront header .SiteLogo .storeLogo{position:unset}cx-storefront header .SearchBox{margin:14px 0 10px;width:30px}cx-storefront header .SiteLinks{background-color:transparent;width:110px;margin:auto 25px auto 0}cx-storefront header .SiteLinks app-account-dropdown,cx-storefront header .SiteLinks app-find-store,cx-storefront header .SiteLinks app-contact-us,cx-storefront header .SiteLinks cx-paragraph,cx-storefront header .SiteLinks .preferenceLink{display:none}cx-storefront header .SiteLinks app-custom-mini-cart,cx-storefront header .SiteLinks app-custom-user-account{width:35px}cx-storefront header.is-expanded{overflow-y:auto;position:fixed;bottom:0;top:0;width:calc(100% - 99px)}cx-storefront header.is-expanded .header{background-color:#b61828;margin-left:0}cx-storefront header.is-expanded .PreHeader{position:absolute;right:15px;top:15px}cx-storefront header.is-expanded .SearchBox{display:none}cx-storefront header.is-expanded .SiteLogo{position:absolute;top:25px;z-index:9}cx-storefront header.is-expanded .SiteLinks{background-color:#1d1d1b;width:100%;margin:15px auto 15px 0;height:unset;padding:15px;max-width:100%;position:relative;z-index:9;top:60px}cx-storefront header.is-expanded .SiteLinks app-account-dropdown,cx-storefront header.is-expanded .SiteLinks app-find-store,cx-storefront header.is-expanded .SiteLinks app-contact-us,cx-storefront header.is-expanded .SiteLinks cx-paragraph,cx-storefront header.is-expanded .SiteLinks .preferenceLink{display:block}cx-storefront header.is-expanded .SiteLinks app-custom-mini-cart,cx-storefront header.is-expanded .SiteLinks app-custom-user-account{display:none}cx-storefront header.is-expanded .SiteLinks app-account-dropdown{width:100%;max-width:100%}cx-storefront header.is-expanded .SiteLinks app-find-store{width:50%;max-width:328px;min-width:328px}cx-storefront header.is-expanded .SiteLinks app-contact-us{margin-right:15px;margin-left:auto;width:115px;max-width:unset}cx-storefront header.is-expanded .navigation{position:relative;top:45px}cx-storefront header.is-expanded:before{background-color:#0000004d;right:0;content:\"\";position:fixed;z-index:2;top:0;bottom:0;height:100vh;width:99px}cx-storefront header.is-expanded:after{background-color:transparent}}@media screen and (max-width: 576px){cx-storefront header .SiteLogo{max-width:80px}cx-storefront header .SiteLogo .storeLogo{display:none}cx-storefront header .searchBox{height:45px}cx-storefront header.is-expanded{width:100%}cx-storefront header.is-expanded .header,cx-storefront header.is-expanded .navigation{width:100%}cx-storefront header.is-expanded .SiteLogo{max-width:211px!important}cx-storefront header.is-expanded .SiteLogo .storeLogo{display:block}cx-storefront header.is-expanded .SiteLinks{max-width:100%;width:100%}cx-storefront header.is-expanded .SiteLinks app-account-dropdown,cx-storefront header.is-expanded .SiteLinks app-find-store,cx-storefront header.is-expanded .SiteLinks app-contact-us,cx-storefront header.is-expanded .SiteLinks cx-paragraph,cx-storefront header.is-expanded .SiteLinks .preferenceLink{display:block}cx-storefront header.is-expanded .SiteLinks app-custom-mini-cart,cx-storefront header.is-expanded .SiteLinks app-custom-user-account{display:none}cx-storefront header.is-expanded .SiteLinks app-find-store{width:100%;max-width:100%;margin-bottom:10px}cx-storefront header.is-expanded .SiteLinks app-contact-us{margin-left:0}cx-storefront header.is-expanded .SiteLinks cx-paragraph{margin-left:auto}cx-storefront header.is-expanded:before{display:none}.pageTitle{font-size:28px}}.table{color:#1d1d1b;background:#ffffff}.table td{border:0;vertical-align:top!important}.revieworder-table-container{padding-bottom:15rem}.revieworder-table-container .revieworder-header-container{background:#646363;color:#fff;font-family:\"Arial Bold\",sans-serif}.revieworder-table-container .revieworder-header-container th{vertical-align:middle!important}.revieworder-table-container .revieworder-header-container .colHD{width:120px;font-size:14px;display:flex;flex-direction:column;align-self:center;line-height:18px}.revieworder-table-container .revieworder-header-container .colHD span{text-align:right;display:block;font-size:12px}.revieworder-table-container .revieworder-header-container .item{width:350px}.revieworder-table-container .product-img{width:50px;height:50px;border:1px solid #E0E0E0;min-width:50px}.revieworder-table-container .product-img cx-media{top:-1px}.revieworder-table-container .borderNew{border-bottom:1px solid #E0E0E0}.revieworder-table-container .statusColm{width:140px}.revieworder-table-container .statusColor{display:inline-block;width:12px;height:12px;border-radius:50%}.revieworder-table-container .subPrice{color:#707070}.revieworder-table-container .revieworder-body-container{padding-bottom:1rem}.revieworder-table-container .revieworder-body-container .product-image-container{display:flex}.revieworder-table-container .revieworder-body-container .product-image-container .reviewproduct-image{width:71px;height:71px}.revieworder-table-container .revieworder-body-container .product-image-container .reviewproduct-name{font-family:\"Arial Bold\",sans-serif}.revieworder-table-container .revieworder-body-container .product-image-container .sku-text{font-size:var(--fontsize14);font-family:\"Arial Bold\",sans-serif;color:#6f6f6f}.revieworder-table-container .revieworder-body-container .see-more-link{text-decoration:underline}.revieworder-table-container .revieworder-body-container .see-more-link:hover{color:#d51317}.revieworder-table-container .revieworder-body-container .seemoredetails-link{font-size:var(--fontsize16);font-family:\"Arial Regular\",sans-serif;text-decoration:underline;cursor:pointer}.revieworder-table-container .revieworder-body-container .seemoredetails-link:hover{color:#b61828}.revieworder-table-container .revieworder-body-container .revieworder-collapse .bundle-details{background:#F6F6F6;border:1px solid #E0E0E0;margin-left:15px;padding:1rem;line-height:2.5rem}.revieworder-table-container .revieworder-body-container .revieworder-collapse .bundle-details .bundle-details-header{font-family:\"Arial Bold\",sans-serif}.revieworder-table-container .colors-paragraph{display:flex;align-items:center}.revieworder-table-container .colors-paragraph .revieworder-color{width:20px;height:20px;border:1px solid #000000;display:inline-flex}::ng-deep .flashing-expand{cursor:pointer}::ng-deep .flashing-expand:after{background:url(../../../../assets/images/expand-icon.svg) no-repeat center;z-index:2;width:24px;content:\"\";height:24px;position:absolute;top:0;right:0}::ng-deep .flashing-expand img{max-height:40px;max-width:40px}::ng-deep .flashing-expand.flashing-open:after{background:url(../../../../assets/images/expand-icon.svg) no-repeat center}#imageModal.show{display:flex!important;vertical-align:middle!important;align-items:center!important}#imageModal.show .modal-header{justify-content:right;border:none}#imageModal.show .modal-body{text-align:center;vertical-align:middle;margin:0 auto}#imageModal.show .modal-body img{max-width:100%;max-height:80vh}.flashing-block{background-color:#e8e8e8;padding:12px;border-bottom:1px solid #C6C6C6}.flashing-block .flash-title{font-size:var(--fontsize16);font-family:\"Arial Bold\",sans-serif}.flashing-block .skuId{color:#707070;font-size:var(--fontsize14);font-family:\"Arial Bold\",sans-serif}.flashing-block .gst-text{display:block;font-size:var(--fontsize16);font-family:\"Arial Regular\",sans-serif}\n"], components: [{ type: i2.MediaComponent, selector: "cx-media", inputs: ["container", "format", "alt", "role", "loading"], outputs: ["loaded"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], pipes: { "async": i3.AsyncPipe, "date": i3.DatePipe, "slice": i3.SlicePipe, "number": i3.DecimalPipe } });
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: OrderDetailListComponent, decorators: [{
88
+ type: Component,
89
+ args: [{
90
+ selector: 'app-order-detail-list',
91
+ templateUrl: './order-detail-list.component.html',
92
+ styleUrls: ['./order-detail-list.component.scss']
93
+ }]
94
+ }], ctorParameters: function () { return [{ type: i1.CartService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { cartDetails: [{
95
+ type: Input
96
+ }], sortByVal: [{
97
+ type: Input
98
+ }], orderDate: [{
99
+ type: Input
100
+ }], isCardData: [{
101
+ type: Input
102
+ }] } });
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItZGV0YWlsLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnVpbGRpbmdwcm9kdWN0X2xpYnJhcnkvc3JjL2xpYi9jdXN0b20tb3JkZXItZGV0YWlscy9vcmRlci1kZXRhaWwtbGlzdC9vcmRlci1kZXRhaWwtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idWlsZGluZ3Byb2R1Y3RfbGlicmFyeS9zcmMvbGliL2N1c3RvbS1vcmRlci1kZXRhaWxzL29yZGVyLWRldGFpbC1saXN0L29yZGVyLWRldGFpbC1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFnQixLQUFLLEVBQTRDLE1BQU0sZUFBZSxDQUFDO0FBQzVILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBUXZDLE1BQU0sT0FBTyx3QkFBd0I7SUFZbkMsWUFBb0IsV0FBd0IsRUFDeEIsR0FBc0I7UUFEdEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFYMUMsZ0JBQVcsR0FBUSxFQUFFLENBQUM7UUFDYixnQkFBVyxHQUFNLEVBQUUsQ0FBQztRQUU3QixtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBS3JELGdCQUFXLEdBQVEsY0FBYyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRCxRQUFHLEdBQVMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFTSxDQUFDO0lBRWhELFFBQVE7SUFDUixDQUFDO0lBRUgsV0FBVyxDQUFDLE9BQXNCOztRQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUU7WUFDcEMsSUFBSSxDQUFD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QUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFDRCxTQUFTLENBQUMsS0FBVSxFQUFFLFdBQWdCOztRQUNwQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFBLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQywwQ0FBRSxHQUFHLENBQUM7SUFDckUsQ0FBQztJQUVELFVBQVUsQ0FBQyxXQUFnQjs7UUFDekIsT0FBTyxNQUFBLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQywwQ0FBRSxHQUFHLENBQUM7SUFDdkQsQ0FBQztJQUVELFFBQVEsQ0FBQyxXQUFnQjs7UUFDdkIsTUFBTSxRQUFRLEdBQUcsTUFBQSxXQUFXLGFBQVgsV0FBVyx1QkFBWCxXQUFXLENBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQywwQ0FBRSxJQUFJLENBQUM7UUFDbkQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzNELE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0QyxDQUFDOztzSEFqRlUsd0JBQXdCOzBHQUF4Qix3QkFBd0Isb01DVHJDLDQvV0ErS0E7NEZEdEthLHdCQUF3QjtrQkFMcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxXQUFXLEVBQUUsb0NBQW9DO29CQUNqRCxTQUFTLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQztpQkFDbEQ7a0lBSVUsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2FydC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLW9yZGVyLWRldGFpbC1saXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vb3JkZXItZGV0YWlsLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL29yZGVyLWRldGFpbC1saXN0LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIE9yZGVyRGV0YWlsTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuXHJcbiAgc2hvd0RldGFpbHM6IGFueSA9IFtdO1xyXG4gIEBJbnB1dCgpIGNhcnREZXRhaWxzOiBhbnk9W107XHJcbiAgQElucHV0KCkgc29ydEJ5VmFsOiBhbnk7XHJcbiAgc2hvd1dhaXRDdXJzb3IgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuICBASW5wdXQoKSBvcmRlckRhdGU6YW55O1xyXG4gIEBJbnB1dCgpIGlzQ2FyZERhdGE6IGFueTtcclxuICBub1JlY29yZD86c3RyaW5nO1xyXG4gIGltYWdlTW9kYWxTcmM6IGFueTtcclxuICBlbnZpcm9ubWVudDogYW55ID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnZW52Jyk7XHJcbiAgZW52IDogYW55ID0gSlNPTi5wYXJzZSh0aGlzLmVudmlyb25tZW50KTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxubmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gIGlmICghY2hhbmdlcy5jYXJ0RGV0YWlscy5maXJzdENoYW5nZSkge1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuICB0aGlzLnNob3dXYWl0Q3Vyc29yLm5leHQodHJ1ZSk7XHJcbiAgaWYodGhpcy5jYXJ0RGV0YWlscz8ubGVuZ3RoKXtcclxuICAgIHRoaXMuc2hvd1dhaXRDdXJzb3IubmV4dChmYWxzZSlcclxuICB9ZWxzZXtcclxuICAgIHRoaXMuc2hvd1dhaXRDdXJzb3IubmV4dChmYWxzZSlcclxuICAgIHRoaXMubm9SZWNvcmQ9J05vIGRhdGEnO1xyXG4gIH1cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY2FydERldGFpbHMubGVuZ3RoOyBpKyspIHtcclxuICAgIHRoaXMuc2hvd0RldGFpbHMucHVzaChmYWxzZSk7XHJcbiAgfVxyXG4gIHRoaXMuY2FydFNlcnZpY2UuZXhwYW5kQWxsLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmNhcnREZXRhaWxzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHRoaXMuc2hvd0RldGFpbHNbaV0gPSBkYXRhO1xyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcbiAgICAvLyBHZXQgdGhlIEltYWdlIERldGFpbHMgYmFzZWQgb24gUHJvZHVjdHNcclxuICAgIGdldEltYWdlRGV0YWlscyhjYXJ0RGV0YWlsczogYW55LCB0aHVtYm5haWw6IGFueSA9IHRydWUpOiBhbnkge1xyXG4gICAgICBsZXQgaW1hZ2VVcmw6IGFueSA9IGNhcnREZXRhaWxzPy5wcm9kdWN0Py5pbWFnZXM7XHJcbiAgICAgIGlmICh0aGlzLmlzQ2FyZERhdGEpIHtcclxuICAgICAgICBpbWFnZVVybCA9IGNhcnREZXRhaWxzPy5wcm9kdWN0Py5pbWFnZXM7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaW1hZ2VVcmwgPSBjYXJ0RGV0YWlscz8ucHJvZHVjdD8uaW1hZ2VzPy5QUklNQVJZPy5jYXJ0SWNvbjtcclxuICAgICAgfVxyXG4gICAgICBsZXQgc3JjVXJsOiBhbnk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBjYXJ0RGV0YWlscz8uYXR0YWNobWVudHMgJiZcclxuICAgICAgICBjYXJ0RGV0YWlscz8uYXR0YWNobWVudHM/Lmxlbmd0aCAmJlxyXG4gICAgICAgIGNhcnREZXRhaWxzPy5wcm9kdWN0Py5mbGFzaGluZ1Byb2R1Y3RcclxuICAgICAgKSB7XHJcbiAgICAgICAgc3JjVXJsID1cclxuICAgICAgICAgIHRodW1ibmFpbCAmJiBjYXJ0RGV0YWlscz8uYXR0YWNobWVudHM/Lmxlbmd0aCA+IDFcclxuICAgICAgICAgICAgPyBjYXJ0RGV0YWlscz8uYXR0YWNobWVudHNbMV0/LmRvd25sb2FkVVJMXHJcbiAgICAgICAgICAgIDogY2FydERldGFpbHM/LmF0dGFjaG1lbnRzWzBdPy5kb3dubG9hZFVSTDtcclxuICAgICAgICBpbWFnZVVybCA9IHtcclxuICAgICAgICAgIHVybDogKFxyXG4gICAgICAgICAgICB0aGlzLmVudi5vY2NCYXNlVXJsLnNsaWNlKDAsIHRoaXMuZW52Lm9jY0Jhc2VVcmwubGVuZ3RoIC0gMSkgK1xyXG4gICAgICAgICAgICBzcmNVcmxcclxuICAgICAgICAgICk/LnJlcGxhY2UoJyZhdHRhY2htZW50PXRydWUnLCAnJyksXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gaW1hZ2VVcmw7XHJcbiAgICB9XHJcbiAgc2hvd0hpZGUoaW5kOiBudW1iZXIpIHtcclxuICAgIHRoaXMuc2hvd0RldGFpbHNbaW5kXSA9ICF0aGlzLnNob3dEZXRhaWxzW2luZF07XHJcbiAgfVxyXG4gIHZpZXdJbWFnZShldmVudDogYW55LCBjYXJ0RGV0YWlsczogYW55KTogdm9pZCB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgdGhpcy5pbWFnZU1vZGFsU3JjID0gdGhpcy5nZXRJbWFnZURldGFpbHMoY2FydERldGFpbHMsIGZhbHNlKT8udXJsO1xyXG4gIH1cclxuICBcclxuICBnZXRQZGZMaW5rKGNhcnREZXRhaWxzOiBhbnkpOiB2b2lkIHtcclxuICAgIHJldHVybiB0aGlzLmdldEltYWdlRGV0YWlscyhjYXJ0RGV0YWlscywgZmFsc2UpPy51cmw7XHJcbiAgfVxyXG5cclxuICBoYXNJbWFnZShjYXJ0RGV0YWlsczogYW55KTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBtaW1lVHlwZSA9IGNhcnREZXRhaWxzPy5hdHRhY2htZW50c1swXT8ubWltZTtcclxuICAgIGNvbnN0IG1pbWVBcnJheSA9IFtcImltYWdlL3BuZ1wiLCBcImltYWdlL2pwZ1wiLCBcImltYWdlL2pwZWdcIl07XHJcbiAgICByZXR1cm4gbWltZUFycmF5LmluY2x1ZGVzKG1pbWVUeXBlKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJsb2FkaW5nXCIgKm5nSWY9XCJzaG93V2FpdEN1cnNvciB8IGFzeW5jIFwiPkxvYWRpbmcmIzgyMzA7PC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJyZXZpZXdvcmRlci10YWJsZS1jb250YWluZXIgcHktM1wiPlxyXG4gICAgICAgIDx0YWJsZSBjbGFzcz1cInctMTAwIHRhYmxlXCI+XHJcbiAgICAgICAgICAgIDx0ciBjbGFzcz1cInJldmlld29yZGVyLWhlYWRlci1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgIDx0aD4jPC90aD5cclxuICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIml0ZW1cIj5JVEVNPC90aD5cclxuICAgICAgICAgICAgICAgIDx0aD5KT0IgUkVGRVJFTkNFPC90aD5cclxuICAgICAgICAgICAgICAgIDx0aD5ERUxJVkVSWSBEQVRFPC90aD5cclxuICAgICAgICAgICAgICAgIDwhLS0gPHRoPkRFTElWRVJZICM8L3RoPiAtLT5cclxuICAgICAgICAgICAgICAgIDx0aD5RVUFOVElUWSBPUkRFUkVEPC90aD5cclxuICAgICAgICAgICAgICAgIDwhLS0gPHRoPlFVQU5USVRZIFNISVBQRUQ8L3RoPiAtLT5cclxuICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImNvbEhEXCI+PGRpdiBjbGFzcz1cInRleHQtcmlnaHRcIj5UT1RBTCBQUklDRTwvZGl2PiA8c3BhbiBjbGFzcz1cInRleHQtcmlnaHRcIj5leGNsIEdTVDwvc3Bhbj48L3RoPlxyXG4gICAgICAgICAgICAgICAgPHRoPlNUQVRVUzwvdGg+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjYXJ0RGV0YWlscy5sZW5ndGg7IGVsc2Ugbm9kYXRhXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjYXJ0IG9mIGNhcnREZXRhaWxzO2xldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJyZXZpZXdvcmRlci1ib2R5LWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cImNhcnQ/LmNvbmZpZ3VyYXRpb25JbmZvcy5sZW5ndGggPyAnJyA6ICdib3JkZXJOZXcnIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2FydC5lbnRyeU51bWJlci5sZW5ndGg+OTsgZWxzZSBlbnRyeUlkXCI+e3tjYXJ0LmVudHJ5TnVtYmVyfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZW50cnlJZD4we3tjYXJ0LmVudHJ5TnVtYmVyKzF9fTwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcHJvZHVjdC1pbWFnZS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTQgY29sLWxnLTIgcC0yIHByb2R1Y3QtaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FydERldGFpbHNbaV0/LnByb2R1Y3Q/LmZsYXNoaW5nUHJvZHVjdDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIG5vcm1hbEltYWdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGRhdGEtdG9nZ2xlPVwibW9kYWxcIiBjbGFzcz1cImZsYXNoaW5nLWV4cGFuZFwiIChjbGljayk9XCJ2aWV3SW1hZ2UoJGV2ZW50LGNhcnREZXRhaWxzW2ldKVwiIFthdHRyLmRhdGEtdGFyZ2V0XT1cIicjaW1hZ2VNb2RhbCdcIiAqbmdJZj1cImhhc0ltYWdlKGNhcnREZXRhaWxzW2ldKTtlbHNlIGhhc1BkZlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjeC1tZWRpYVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRhaW5lcl09XCJnZXRJbWFnZURldGFpbHMoY2FydERldGFpbHNbaV0pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdD1cImNhcnRJY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2N4LW1lZGlhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaGFzUGRmPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiZmxhc2hpbmctZXhwYW5kIGZsYXNoaW5nLW9wZW5cIiBbaHJlZl09XCJnZXRQZGZMaW5rKGNhcnREZXRhaWxzW2ldKVwiIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cInBkZi1pY29uXCIgc3JjPVwiLi4vLi4vLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy9wZGYtaWNvbi5zdmdcIiBhbHQ9XCJDbGljayB0byBvcGVuIFBERlwiIHRpdGxlPVwiQ2xpY2sgdG8gb3BlbiBQREZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub3JtYWxJbWFnZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGN4LW1lZGlhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRhaW5lcl09XCJnZXRJbWFnZURldGFpbHMoY2FydERldGFpbHNbaV0pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQ9XCJjYXJ0SWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2N4LW1lZGlhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTggY29sLWxnLTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwicmV2aWV3cHJvZHVjdC1uYW1lIG1iLTJcIj57e2NhcnQ/LnByb2R1Y3Q/Lm5hbWV9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJza3UtdGV4dCBtYi0wXCI+U0tVOiB7e2NhcnQ/LnByb2R1Y3Q/LmNvZGUgfX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7Y2FydD8uam9iUmVmZXJlbmNlIHx8ICctJ319PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7b3JkZXJEYXRlIHwgZGF0ZTpcImRkL01NL3l5eXlcIn19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7Y2FydC5xdWFudGl0eURvdWJsZX19e3tjYXJ0Py50b3RhbFByaWNlPy51bml0VHlwZX19PGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWJQcmljZVwiPkAge3tjYXJ0Py50b3RhbFByaWNlPy5mb3JtYXR0ZWRWYWx1ZX19L3t7Y2FydD8udG90YWxQcmljZT8udW5pdFR5cGV9fTwvc3Bhbj48L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tjYXJ0Py50b3RhbFByaWNlPy5mb3JtYXR0ZWRWYWx1ZX19IDxzcGFuIGNsYXNzPVwiZC1ibG9ja1wiPmV4Y2wgR1NUPC9zcGFuPjwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInN0YXR1c0NvbG1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cInN0YXR1c0NvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsnYmFja2dyb3VuZC1jb2xvcic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FydD8uc3RhdHVzPT0nQ1JFQVRFRCcpID8gKCcjRjNBOTMxJykgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhcnQ/LnN0YXR1cz09J0FQUFJPVkVEJykgPyAoJyNmMjY1MjInKSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FydD8uc3RhdHVzPT0nUFJPQ0VTU0lORycpID8gKCcjNzU1NzhBJykgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhcnQ/LnN0YXR1cz09J1JFQURZJykgPyAoJyM0OTY0NzEnKSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FydD8uc3RhdHVzPT0nREVMSVZFUklORycpID8gKCcjMDBBQ0JEJykgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhcnQ/LnN0YXR1cz09J0NPTVBMRVRFRCcpID8gKCcjOERDNDQwJykgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhcnQ/LnN0YXR1cz09J1JFVFVSTkVEJykgPyAoJyM4REM0NDAnKSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FydD8uc3RhdHVzPT0nQ0FOQ0VMTEVEJykgPyAoJyMwMDAwMDAnKSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJycpfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9zbWFsbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y2FydD8uc3RhdHVzRGlzcGxheSB8fCAnLSd9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNhcnQ/LnByb2R1Y3Q/LmNsYXNzaWZpY2F0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJyZXZpZXdvcmRlci1ib2R5LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49XCI5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGF0dHJpYnV0ZXMgb2YgY2FydD8ucHJvZHVjdD8uY2xhc3NpZmljYXRpb25zWzBdPy5mZWF0dXJlcztsYXN0IGFzIGlzTGFzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2F0dHJpYnV0ZXM/LmZlYXR1cmVWYWx1ZXNbMF0/LnZhbHVlIH19IDxzcGFuICpuZ0lmPVwiIWlzTGFzdFwiPiB8IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwicmV2aWV3b3JkZXItYm9keS1jb250YWluZXJcIiAqbmdJZj1cImNhcnQ/LmNvbmZpZ3VyYXRpb25JbmZvcy5sZW5ndGhcIiBbbmdDbGFzc109XCJjYXJ0Py5jb25maWd1cmF0aW9uSW5mb3MubGVuZ3RoID8gJ2JvcmRlck5ldycgOiAnJyBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49XCI5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImNvbG9ycy1wYXJhZ3JhcGggbWItMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmV2aWV3b3JkZXItY29sb3IgbXItM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBiYWNrZ3JvdW5kOiBjYXJ0Py5jb25maWd1cmF0aW9uSW5mb3NbMF0/LmNvbmZpZ3VyYXRpb25WYWx1ZS5zcGxpdCgnfCcpIHwgc2xpY2U6Mn1cIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjYXJ0Py5jb25maWd1cmF0aW9uSW5mb3NbMF0/LmNvbmZpZ3VyYXRpb25WYWx1ZS5zcGxpdCgnfCcpIHwgc2xpY2U6MToyfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2FydD8uc3ViTGluZUNvbmZpZ0luZm9zLmxlbmd0aD4wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIChjbGljayk9XCJzaG93SGlkZShpKVwiIGNsYXNzPVwic2VlLW1vcmUtbGlua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tzaG93RGV0YWlsc1tpXSA9PSB0cnVlID8gJ0hpZGUnIDogJ1NlZSd9fSBtb3JlIGRldGFpbHNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmV2aWV3b3JkZXItY29sbGFwc2VcIiAqbmdJZj1cInNob3dEZXRhaWxzW2ldXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNiBidW5kbGUtZGV0YWlsc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgYnVuZGxlLWRldGFpbHMtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtM1wiPlF1YW50aXR5PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtM1wiPkxlbmd0aCAoTE0pPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjYXJ0Py5zdWJMaW5lQ29uZmlnSW5mb3NbaV0/LmJ1bmRsZU5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtM1wiPkJ1bmRsZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+UmVmZXJlbmNlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdGb3I9XCJsZXQgc3ViTGluZSBvZiBjYXJ0Py5zdWJMaW5lQ29uZmlnSW5mb3NcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+e3tzdWJMaW5lPy5xdWFudGl0eX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtM1wiPnt7c3ViTGluZT8ubGVuZ3RoIHwgbnVtYmVyOicwLjMtMyd9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3ViTGluZT8uYnVuZGxlTmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+e3tzdWJMaW5lPy5idW5kbGVOYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtM1wiPnt7c3ViTGluZT8ucmVmZXJlbmNlfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49XCI5XCIgY2xhc3M9XCJwLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjYXJ0RGV0YWlsc1tpXT8ucHJvZHVjdD8uZmxhc2hpbmdQcm9kdWN0ICYmIGNhcnREZXRhaWxzW2ldPy5wcm9kdWN0Q29uZmlndXJlZEluZm9zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsYXNoaW5nLWJsb2NrIFwiICpuZ0Zvcj1cImxldCBkYXRhIG9mIGNhcnREZXRhaWxzW2ldPy5wcm9kdWN0Q29uZmlndXJlZEluZm9zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImZsYXNoLXRpdGxlXCI+e3sgZGF0YT8ucHJvZHVjdD8ubmFtZSB9fTwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzPVwic2t1SWRcIj5TS1U6IHt7IGRhdGE/LnByb2R1Y3Q/LmNvZGUgfX08L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZGF0YT8uZ2lydGhcIj5Hcml0aDogK3t7ZGF0YS5naXJ0aH19bW0gPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib2Zmc2V0LXNtLTMgY29sLXNtLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2RhdGE/LnF1YW50aXR5RG91YmxlfX17e2RhdGE/LnVuaXRUeXBlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tkYXRhPy5iYXNlUHJpY2U/LmZvcm1hdHRlZFZhbHVlfX0ve3tkYXRhPy51bml0VHlwZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZGF0YT8udG90YWxQcmljZT8uZm9ybWF0dGVkVmFsdWV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ3N0LXRleHRcIj5leGNsIEdTVDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9kYXRhPlxyXG4gICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwicmV2aWV3b3JkZXItYm9keS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjdcIiBjbGFzcz1cInRleHQtY2VudGVyXCI+e3tub1JlY29yZH19PC90ZD5cclxuICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICBcclxuICAgICAgICA8L3RhYmxlPlxyXG5cclxuXHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwibW9kYWwgZmFkZVwiIGlkPVwiaW1hZ2VNb2RhbFwiIHJvbGU9XCJkaWFsb2dcIiBhcmlhLWxhYmVsbGVkYnk9XCJpbWFnZU1vZGFsXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgI2ltYWdlTW9kYWw+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZGlhbG9nIG1vZGFsLWxnXCIgcm9sZT1cImRvY3VtZW50XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uLWNsb3NlIGludml0ZS1wb3AtY2xvc2VcIiAjY2xvc2VJbnZpdGVNb2RhbCBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiPjwvaT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IG0tNFwiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImltYWdlTW9kYWxTcmNcIiBhbHQ9XCJhbGVydFwiIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=