tango-app-ui-shared 3.7.3-dev6-demo7 → 3.7.3-dev6-demo8

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 (402) hide show
  1. package/esm2022/lib/guards/auth.guard.mjs +26 -0
  2. package/esm2022/lib/guards/lead.guard.mjs +16 -0
  3. package/esm2022/lib/guards/stores.guard.mjs +16 -0
  4. package/esm2022/lib/guards/tickets.guard.mjs +16 -0
  5. package/esm2022/lib/i18n/index.mjs +3 -0
  6. package/esm2022/lib/i18n/translation.module.mjs +17 -0
  7. package/esm2022/lib/i18n/translation.service.mjs +53 -0
  8. package/esm2022/lib/i18n/vocabs/ch.mjs +106 -0
  9. package/esm2022/lib/i18n/vocabs/de.mjs +106 -0
  10. package/esm2022/lib/i18n/vocabs/en.mjs +106 -0
  11. package/esm2022/lib/i18n/vocabs/es.mjs +106 -0
  12. package/esm2022/lib/i18n/vocabs/fr.mjs +106 -0
  13. package/esm2022/lib/i18n/vocabs/jp.mjs +106 -0
  14. package/esm2022/lib/interceptors/http-auth-interceptor.mjs +124 -0
  15. package/esm2022/lib/interfaces/global-state.mjs +2 -0
  16. package/esm2022/lib/modules/common/common-shared.module.mjs +31 -0
  17. package/esm2022/lib/modules/common/custom-select/custom-select.component.mjs +155 -0
  18. package/esm2022/lib/modules/common/filters/filters.component.mjs +179 -0
  19. package/esm2022/lib/modules/common/pagination/pagination.component.mjs +49 -0
  20. package/esm2022/lib/modules/errors/error403/error403.component.mjs +33 -0
  21. package/esm2022/lib/modules/errors/error404/error404.component.mjs +44 -0
  22. package/esm2022/lib/modules/errors/error500/error500.component.mjs +45 -0
  23. package/esm2022/lib/modules/errors/errors-routing.module.mjs +48 -0
  24. package/esm2022/lib/modules/errors/errors.component.mjs +39 -0
  25. package/esm2022/lib/modules/errors/errors.module.mjs +37 -0
  26. package/esm2022/lib/modules/errors/invalid-ip/invalid-ip.component.mjs +44 -0
  27. package/esm2022/lib/modules/intro/contact-support/contact-support.component.mjs +19 -0
  28. package/esm2022/lib/modules/intro/intro-routing.module.mjs +24 -0
  29. package/esm2022/lib/modules/intro/intro.module.mjs +32 -0
  30. package/esm2022/lib/modules/intro/lead-intro/lead-intro.component.mjs +110 -0
  31. package/esm2022/lib/modules/layout/components/csm-assign-confirmation/csm-assign-confirmation.component.mjs +31 -0
  32. package/esm2022/lib/modules/layout/content/content.component.mjs +107 -0
  33. package/esm2022/lib/modules/layout/footer/footer.component.mjs +17 -0
  34. package/esm2022/lib/modules/layout/header/header-menu/header-menu.component.mjs +41 -0
  35. package/esm2022/lib/modules/layout/header/header.component.mjs +100 -0
  36. package/esm2022/lib/modules/layout/header/navbar/navbar.component.mjs +256 -0
  37. package/esm2022/lib/modules/layout/header/notifications-inner/notifications-inner.component.mjs +79 -0
  38. package/esm2022/lib/modules/layout/header/page-title/page-title.component.mjs +56 -0
  39. package/esm2022/lib/modules/layout/keenicon/icons.json +1 -0
  40. package/esm2022/lib/modules/layout/keenicon/keenicon.component.mjs +37 -0
  41. package/esm2022/lib/modules/layout/layout/layout.component.mjs +314 -0
  42. package/esm2022/lib/modules/layout/layout.module.mjs +198 -0
  43. package/esm2022/lib/modules/layout/scripts-init/scripts-init.component.mjs +74 -0
  44. package/esm2022/lib/modules/layout/scroll-top/scroll-top.component.mjs +74 -0
  45. package/esm2022/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.mjs +159 -0
  46. package/esm2022/lib/modules/layout/sidebar/sidebar-logo/sidebar-logo.component.mjs +45 -0
  47. package/esm2022/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.mjs +122 -0
  48. package/esm2022/lib/modules/layout/sidebar/sidebar.component.mjs +134 -0
  49. package/esm2022/lib/modules/layout/toolbar/accounting/accounting.component.mjs +16 -0
  50. package/esm2022/lib/modules/layout/toolbar/classic/classic.component.mjs +331 -0
  51. package/esm2022/lib/modules/layout/toolbar/client-settings/client-settings.component.mjs +88 -0
  52. package/esm2022/lib/modules/layout/toolbar/date-single-select/date-single-select.component.mjs +207 -0
  53. package/esm2022/lib/modules/layout/toolbar/datepicker/datepicker.component.mjs +158 -0
  54. package/esm2022/lib/modules/layout/toolbar/extended/extended.component.mjs +15 -0
  55. package/esm2022/lib/modules/layout/toolbar/metrics-header/metrics-header.component.mjs +1321 -0
  56. package/esm2022/lib/modules/layout/toolbar/reports/reports.component.mjs +18 -0
  57. package/esm2022/lib/modules/layout/toolbar/saas/saas.component.mjs +18 -0
  58. package/esm2022/lib/modules/layout/toolbar/single-clientstore-date/single-clientstore-date.component.mjs +216 -0
  59. package/esm2022/lib/modules/layout/toolbar/single-store/single-store.component.mjs +178 -0
  60. package/esm2022/lib/modules/layout/toolbar/single-storedate/single-storedate.component.mjs +166 -0
  61. package/esm2022/lib/modules/layout/toolbar/storesingle/storesingle.component.mjs +105 -0
  62. package/esm2022/lib/modules/layout/toolbar/toolbar.component.mjs +372 -0
  63. package/esm2022/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.mjs +1062 -0
  64. package/esm2022/lib/modules/layout/toolbar/traffic-nob/traffic-nob.component.mjs +795 -0
  65. package/esm2022/lib/modules/layout/toolbar/trax-header/trax-header.component.mjs +880 -0
  66. package/esm2022/lib/modules/layout/toolbar/trax-withoutdate/trax-withoutdate.component.mjs +729 -0
  67. package/esm2022/lib/modules/layout/toolbar/zone-header/zone-header.component.mjs +1100 -0
  68. package/esm2022/lib/modules/notification/conformation/conformation.component.mjs +22 -0
  69. package/esm2022/lib/modules/notification/notification/notification.component.mjs +317 -0
  70. package/esm2022/lib/modules/notification/notification-routing.module.mjs +28 -0
  71. package/esm2022/lib/modules/notification/notification.module.mjs +32 -0
  72. package/esm2022/lib/pipes/customDate.pipe.mjs +22 -0
  73. package/esm2022/lib/routes/route-wraper-modules/edge-wrapper.module.mjs +18 -0
  74. package/esm2022/lib/routes/route-wraper-modules/manage-wrapper.module.mjs +18 -0
  75. package/esm2022/lib/routes/route-wraper-modules/profile-wrapper.module.mjs +18 -0
  76. package/esm2022/lib/routes/route-wraper-modules/store-wrapper.module.mjs +18 -0
  77. package/esm2022/lib/routes/route-wraper-modules/ticket-wrapper.module.mjs +18 -0
  78. package/esm2022/lib/routes/routing.mjs +53 -0
  79. package/esm2022/lib/services/auth.service.mjs +141 -0
  80. package/esm2022/lib/services/notification.service.mjs +74 -0
  81. package/esm2022/lib/services/toast.service.mjs +83 -0
  82. package/esm2022/public-api.mjs +56 -0
  83. package/esm2022/tango-app-ui-shared.mjs +5 -0
  84. package/fesm2022/tango-app-ui-shared-edge-wrapper.module-CFDk0tvS.mjs +21 -0
  85. package/fesm2022/tango-app-ui-shared-edge-wrapper.module-CFDk0tvS.mjs.map +1 -0
  86. package/fesm2022/tango-app-ui-shared-intro.module-DYh4ZRha.mjs +188 -0
  87. package/fesm2022/tango-app-ui-shared-intro.module-DYh4ZRha.mjs.map +1 -0
  88. package/fesm2022/tango-app-ui-shared-manage-wrapper.module-BHyh4Njw.mjs +21 -0
  89. package/fesm2022/tango-app-ui-shared-manage-wrapper.module-BHyh4Njw.mjs.map +1 -0
  90. package/fesm2022/tango-app-ui-shared-notification.module-C5ZmCf8U.mjs +400 -0
  91. package/fesm2022/tango-app-ui-shared-notification.module-C5ZmCf8U.mjs.map +1 -0
  92. package/fesm2022/tango-app-ui-shared-profile-wrapper.module-BNC1AGOk.mjs +21 -0
  93. package/fesm2022/tango-app-ui-shared-profile-wrapper.module-BNC1AGOk.mjs.map +1 -0
  94. package/fesm2022/tango-app-ui-shared-store-wrapper.module-DdaCYHdv.mjs +21 -0
  95. package/fesm2022/tango-app-ui-shared-store-wrapper.module-DdaCYHdv.mjs.map +1 -0
  96. package/fesm2022/tango-app-ui-shared-ticket-wrapper.module-r32uKkDO.mjs +21 -0
  97. package/fesm2022/tango-app-ui-shared-ticket-wrapper.module-r32uKkDO.mjs.map +1 -0
  98. package/fesm2022/tango-app-ui-shared.mjs +12450 -0
  99. package/fesm2022/tango-app-ui-shared.mjs.map +1 -0
  100. package/index.d.ts +5 -0
  101. package/lib/guards/auth.guard.d.ts +10 -0
  102. package/lib/guards/lead.guard.d.ts +2 -0
  103. package/lib/guards/stores.guard.d.ts +2 -0
  104. package/lib/guards/tickets.guard.d.ts +2 -0
  105. package/{src/lib/i18n/index.ts → lib/i18n/index.d.ts} +2 -2
  106. package/lib/i18n/translation.module.d.ts +8 -0
  107. package/lib/i18n/translation.service.d.ts +19 -0
  108. package/lib/i18n/vocabs/ch.d.ts +104 -0
  109. package/lib/i18n/vocabs/de.d.ts +104 -0
  110. package/lib/i18n/vocabs/en.d.ts +104 -0
  111. package/lib/i18n/vocabs/es.d.ts +104 -0
  112. package/lib/i18n/vocabs/fr.d.ts +104 -0
  113. package/lib/i18n/vocabs/jp.d.ts +104 -0
  114. package/lib/interceptors/http-auth-interceptor.d.ts +19 -0
  115. package/lib/interfaces/global-state.d.ts +5 -0
  116. package/lib/modules/common/common-shared.module.d.ts +13 -0
  117. package/lib/modules/common/custom-select/custom-select.component.d.ts +33 -0
  118. package/lib/modules/common/filters/filters.component.d.ts +38 -0
  119. package/lib/modules/common/pagination/pagination.component.d.ts +18 -0
  120. package/lib/modules/errors/error403/error403.component.d.ts +14 -0
  121. package/lib/modules/errors/error404/error404.component.d.ts +15 -0
  122. package/lib/modules/errors/error500/error500.component.d.ts +15 -0
  123. package/lib/modules/errors/errors-routing.module.d.ts +7 -0
  124. package/lib/modules/errors/errors.component.d.ts +13 -0
  125. package/lib/modules/errors/errors.module.d.ts +13 -0
  126. package/lib/modules/errors/invalid-ip/invalid-ip.component.d.ts +17 -0
  127. package/lib/modules/intro/contact-support/contact-support.component.d.ts +9 -0
  128. package/lib/modules/intro/intro-routing.module.d.ts +7 -0
  129. package/lib/modules/intro/intro.module.d.ts +11 -0
  130. package/lib/modules/intro/lead-intro/lead-intro.component.d.ts +31 -0
  131. package/lib/modules/layout/components/csm-assign-confirmation/csm-assign-confirmation.component.d.ts +13 -0
  132. package/lib/modules/layout/content/content.component.d.ts +25 -0
  133. package/lib/modules/layout/footer/footer.component.d.ts +8 -0
  134. package/lib/modules/layout/header/header-menu/header-menu.component.d.ts +18 -0
  135. package/lib/modules/layout/header/header.component.d.ts +30 -0
  136. package/lib/modules/layout/header/navbar/navbar.component.d.ts +45 -0
  137. package/lib/modules/layout/header/notifications-inner/notifications-inner.component.d.ts +25 -0
  138. package/lib/modules/layout/header/page-title/page-title.component.d.ts +23 -0
  139. package/lib/modules/layout/keenicon/keenicon.component.d.ts +13 -0
  140. package/lib/modules/layout/layout/layout.component.d.ts +82 -0
  141. package/lib/modules/layout/layout.module.d.ts +50 -0
  142. package/lib/modules/layout/scripts-init/scripts-init.component.d.ts +19 -0
  143. package/lib/modules/layout/scroll-top/scroll-top.component.d.ts +19 -0
  144. package/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.d.ts +45 -0
  145. package/lib/modules/layout/sidebar/sidebar-logo/sidebar-logo.component.d.ts +19 -0
  146. package/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.d.ts +26 -0
  147. package/lib/modules/layout/sidebar/sidebar.component.d.ts +36 -0
  148. package/lib/modules/layout/toolbar/accounting/accounting.component.d.ts +8 -0
  149. package/lib/modules/layout/toolbar/classic/classic.component.d.ts +48 -0
  150. package/lib/modules/layout/toolbar/client-settings/client-settings.component.d.ts +16 -0
  151. package/lib/modules/layout/toolbar/date-single-select/date-single-select.component.d.ts +28 -0
  152. package/lib/modules/layout/toolbar/datepicker/datepicker.component.d.ts +28 -0
  153. package/lib/modules/layout/toolbar/extended/extended.component.d.ts +8 -0
  154. package/lib/modules/layout/toolbar/metrics-header/metrics-header.component.d.ts +103 -0
  155. package/lib/modules/layout/toolbar/reports/reports.component.d.ts +9 -0
  156. package/lib/modules/layout/toolbar/saas/saas.component.d.ts +9 -0
  157. package/lib/modules/layout/toolbar/single-clientstore-date/single-clientstore-date.component.d.ts +32 -0
  158. package/lib/modules/layout/toolbar/single-store/single-store.component.d.ts +33 -0
  159. package/lib/modules/layout/toolbar/single-storedate/single-storedate.component.d.ts +34 -0
  160. package/lib/modules/layout/toolbar/storesingle/storesingle.component.d.ts +24 -0
  161. package/lib/modules/layout/toolbar/toolbar.component.d.ts +57 -0
  162. package/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.d.ts +93 -0
  163. package/lib/modules/layout/toolbar/traffic-nob/traffic-nob.component.d.ts +80 -0
  164. package/lib/modules/layout/toolbar/trax-header/trax-header.component.d.ts +83 -0
  165. package/lib/modules/layout/toolbar/trax-withoutdate/trax-withoutdate.component.d.ts +74 -0
  166. package/lib/modules/layout/toolbar/zone-header/zone-header.component.d.ts +97 -0
  167. package/lib/modules/notification/conformation/conformation.component.d.ts +10 -0
  168. package/lib/modules/notification/notification/notification.component.d.ts +63 -0
  169. package/lib/modules/notification/notification-routing.module.d.ts +7 -0
  170. package/lib/modules/notification/notification.module.d.ts +11 -0
  171. package/lib/pipes/customDate.pipe.d.ts +7 -0
  172. package/lib/routes/route-wraper-modules/edge-wrapper.module.d.ts +7 -0
  173. package/lib/routes/route-wraper-modules/manage-wrapper.module.d.ts +7 -0
  174. package/lib/routes/route-wraper-modules/profile-wrapper.module.d.ts +7 -0
  175. package/lib/routes/route-wraper-modules/store-wrapper.module.d.ts +7 -0
  176. package/lib/routes/route-wraper-modules/ticket-wrapper.module.d.ts +7 -0
  177. package/lib/routes/routing.d.ts +3 -0
  178. package/lib/services/auth.service.d.ts +49 -0
  179. package/lib/services/notification.service.d.ts +30 -0
  180. package/lib/services/toast.service.d.ts +10 -0
  181. package/package.json +25 -12
  182. package/{src/public-api.ts → public-api.d.ts} +44 -71
  183. package/.eslintrc.json +0 -37
  184. package/ng-package.json +0 -7
  185. package/src/lib/guards/auth.guard.ts +0 -20
  186. package/src/lib/guards/lead.guard.ts +0 -16
  187. package/src/lib/guards/stores.guard.ts +0 -16
  188. package/src/lib/guards/tickets.guard.ts +0 -16
  189. package/src/lib/i18n/translation.module.ts +0 -9
  190. package/src/lib/i18n/translation.service.ts +0 -61
  191. package/src/lib/i18n/vocabs/ch.ts +0 -105
  192. package/src/lib/i18n/vocabs/de.ts +0 -105
  193. package/src/lib/i18n/vocabs/en.ts +0 -105
  194. package/src/lib/i18n/vocabs/es.ts +0 -105
  195. package/src/lib/i18n/vocabs/fr.ts +0 -105
  196. package/src/lib/i18n/vocabs/jp.ts +0 -105
  197. package/src/lib/interceptors/http-auth-interceptor.ts +0 -225
  198. package/src/lib/interfaces/global-state.ts +0 -6
  199. package/src/lib/modules/common/common-shared.module.ts +0 -20
  200. package/src/lib/modules/common/custom-select/custom-select.component.html +0 -42
  201. package/src/lib/modules/common/custom-select/custom-select.component.scss +0 -131
  202. package/src/lib/modules/common/custom-select/custom-select.component.spec.ts +0 -23
  203. package/src/lib/modules/common/custom-select/custom-select.component.ts +0 -149
  204. package/src/lib/modules/common/filters/filters.component.html +0 -76
  205. package/src/lib/modules/common/filters/filters.component.scss +0 -131
  206. package/src/lib/modules/common/filters/filters.component.spec.ts +0 -23
  207. package/src/lib/modules/common/filters/filters.component.ts +0 -181
  208. package/src/lib/modules/common/pagination/pagination.component.html +0 -26
  209. package/src/lib/modules/common/pagination/pagination.component.scss +0 -63
  210. package/src/lib/modules/common/pagination/pagination.component.spec.ts +0 -23
  211. package/src/lib/modules/common/pagination/pagination.component.ts +0 -46
  212. package/src/lib/modules/errors/error403/error403.component.html +0 -25
  213. package/src/lib/modules/errors/error403/error403.component.scss +0 -0
  214. package/src/lib/modules/errors/error403/error403.component.spec.ts +0 -23
  215. package/src/lib/modules/errors/error403/error403.component.ts +0 -28
  216. package/src/lib/modules/errors/error404/error404.component.html +0 -24
  217. package/src/lib/modules/errors/error404/error404.component.scss +0 -0
  218. package/src/lib/modules/errors/error404/error404.component.spec.ts +0 -25
  219. package/src/lib/modules/errors/error404/error404.component.ts +0 -50
  220. package/src/lib/modules/errors/error500/error500.component.html +0 -24
  221. package/src/lib/modules/errors/error500/error500.component.scss +0 -0
  222. package/src/lib/modules/errors/error500/error500.component.spec.ts +0 -25
  223. package/src/lib/modules/errors/error500/error500.component.ts +0 -50
  224. package/src/lib/modules/errors/errors-routing.module.ts +0 -40
  225. package/src/lib/modules/errors/errors.component.html +0 -15
  226. package/src/lib/modules/errors/errors.component.scss +0 -4
  227. package/src/lib/modules/errors/errors.component.spec.ts +0 -25
  228. package/src/lib/modules/errors/errors.component.ts +0 -42
  229. package/src/lib/modules/errors/errors.module.ts +0 -25
  230. package/src/lib/modules/errors/invalid-ip/invalid-ip.component.html +0 -16
  231. package/src/lib/modules/errors/invalid-ip/invalid-ip.component.scss +0 -0
  232. package/src/lib/modules/errors/invalid-ip/invalid-ip.component.spec.ts +0 -23
  233. package/src/lib/modules/errors/invalid-ip/invalid-ip.component.ts +0 -43
  234. package/src/lib/modules/intro/contact-support/contact-support.component.html +0 -30
  235. package/src/lib/modules/intro/contact-support/contact-support.component.scss +0 -60
  236. package/src/lib/modules/intro/contact-support/contact-support.component.spec.ts +0 -23
  237. package/src/lib/modules/intro/contact-support/contact-support.component.ts +0 -17
  238. package/src/lib/modules/intro/intro-routing.module.ts +0 -16
  239. package/src/lib/modules/intro/intro.module.ts +0 -21
  240. package/src/lib/modules/intro/lead-intro/lead-intro.component.html +0 -325
  241. package/src/lib/modules/intro/lead-intro/lead-intro.component.scss +0 -185
  242. package/src/lib/modules/intro/lead-intro/lead-intro.component.spec.ts +0 -23
  243. package/src/lib/modules/intro/lead-intro/lead-intro.component.ts +0 -120
  244. package/src/lib/modules/layout/components/csm-assign-confirmation/csm-assign-confirmation.component.html +0 -44
  245. package/src/lib/modules/layout/components/csm-assign-confirmation/csm-assign-confirmation.component.scss +0 -28
  246. package/src/lib/modules/layout/components/csm-assign-confirmation/csm-assign-confirmation.component.spec.ts +0 -23
  247. package/src/lib/modules/layout/components/csm-assign-confirmation/csm-assign-confirmation.component.ts +0 -24
  248. package/src/lib/modules/layout/content/content.component.html +0 -12
  249. package/src/lib/modules/layout/content/content.component.scss +0 -0
  250. package/src/lib/modules/layout/content/content.component.ts +0 -102
  251. package/src/lib/modules/layout/footer/footer.component.html +0 -29
  252. package/src/lib/modules/layout/footer/footer.component.scss +0 -7
  253. package/src/lib/modules/layout/footer/footer.component.spec.ts +0 -25
  254. package/src/lib/modules/layout/footer/footer.component.ts +0 -13
  255. package/src/lib/modules/layout/header/header-menu/header-menu.component.html +0 -27
  256. package/src/lib/modules/layout/header/header-menu/header-menu.component.scss +0 -4
  257. package/src/lib/modules/layout/header/header-menu/header-menu.component.spec.ts +0 -25
  258. package/src/lib/modules/layout/header/header-menu/header-menu.component.ts +0 -38
  259. package/src/lib/modules/layout/header/header.component.html +0 -90
  260. package/src/lib/modules/layout/header/header.component.scss +0 -7
  261. package/src/lib/modules/layout/header/header.component.spec.ts +0 -25
  262. package/src/lib/modules/layout/header/header.component.ts +0 -139
  263. package/src/lib/modules/layout/header/navbar/navbar.component.html +0 -156
  264. package/src/lib/modules/layout/header/navbar/navbar.component.scss +0 -223
  265. package/src/lib/modules/layout/header/navbar/navbar.component.spec.ts +0 -23
  266. package/src/lib/modules/layout/header/navbar/navbar.component.ts +0 -255
  267. package/src/lib/modules/layout/header/notifications-inner/notifications-inner.component.html +0 -200
  268. package/src/lib/modules/layout/header/notifications-inner/notifications-inner.component.scss +0 -139
  269. package/src/lib/modules/layout/header/notifications-inner/notifications-inner.component.ts +0 -76
  270. package/src/lib/modules/layout/header/page-title/page-title.component.html +0 -32
  271. package/src/lib/modules/layout/header/page-title/page-title.component.scss +0 -11
  272. package/src/lib/modules/layout/header/page-title/page-title.component.ts +0 -47
  273. package/src/lib/modules/layout/keenicon/icons.json +0 -1
  274. package/src/lib/modules/layout/keenicon/keenicon.component.html +0 -4
  275. package/src/lib/modules/layout/keenicon/keenicon.component.scss +0 -0
  276. package/src/lib/modules/layout/keenicon/keenicon.component.spec.ts +0 -23
  277. package/src/lib/modules/layout/keenicon/keenicon.component.ts +0 -30
  278. package/src/lib/modules/layout/layout/layout.component.html +0 -71
  279. package/src/lib/modules/layout/layout/layout.component.scss +0 -23
  280. package/src/lib/modules/layout/layout/layout.component.ts +0 -425
  281. package/src/lib/modules/layout/layout.module.ts +0 -129
  282. package/src/lib/modules/layout/scripts-init/scripts-init.component.html +0 -0
  283. package/src/lib/modules/layout/scripts-init/scripts-init.component.ts +0 -81
  284. package/src/lib/modules/layout/scroll-top/scroll-top.component.html +0 -1
  285. package/src/lib/modules/layout/scroll-top/scroll-top.component.ts +0 -75
  286. package/src/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.html +0 -70
  287. package/src/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.scss +0 -57
  288. package/src/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.spec.ts +0 -23
  289. package/src/lib/modules/layout/sidebar/sidebar-footer/sidebar-footer.component.ts +0 -136
  290. package/src/lib/modules/layout/sidebar/sidebar-logo/sidebar-logo.component.html +0 -26
  291. package/src/lib/modules/layout/sidebar/sidebar-logo/sidebar-logo.component.scss +0 -0
  292. package/src/lib/modules/layout/sidebar/sidebar-logo/sidebar-logo.component.spec.ts +0 -23
  293. package/src/lib/modules/layout/sidebar/sidebar-logo/sidebar-logo.component.ts +0 -36
  294. package/src/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.html +0 -761
  295. package/src/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.scss +0 -38
  296. package/src/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.spec.ts +0 -23
  297. package/src/lib/modules/layout/sidebar/sidebar-menu/sidebar-menu.component.ts +0 -130
  298. package/src/lib/modules/layout/sidebar/sidebar.component.html +0 -16
  299. package/src/lib/modules/layout/sidebar/sidebar.component.scss +0 -3
  300. package/src/lib/modules/layout/sidebar/sidebar.component.spec.ts +0 -23
  301. package/src/lib/modules/layout/sidebar/sidebar.component.ts +0 -203
  302. package/src/lib/modules/layout/toolbar/accounting/accounting.component.html +0 -84
  303. package/src/lib/modules/layout/toolbar/accounting/accounting.component.scss +0 -0
  304. package/src/lib/modules/layout/toolbar/accounting/accounting.component.spec.ts +0 -23
  305. package/src/lib/modules/layout/toolbar/accounting/accounting.component.ts +0 -14
  306. package/src/lib/modules/layout/toolbar/classic/classic.component.html +0 -69
  307. package/src/lib/modules/layout/toolbar/classic/classic.component.scss +0 -238
  308. package/src/lib/modules/layout/toolbar/classic/classic.component.spec.ts +0 -23
  309. package/src/lib/modules/layout/toolbar/classic/classic.component.ts +0 -389
  310. package/src/lib/modules/layout/toolbar/client-settings/client-settings.component.html +0 -4
  311. package/src/lib/modules/layout/toolbar/client-settings/client-settings.component.scss +0 -3
  312. package/src/lib/modules/layout/toolbar/client-settings/client-settings.component.spec.ts +0 -23
  313. package/src/lib/modules/layout/toolbar/client-settings/client-settings.component.ts +0 -91
  314. package/src/lib/modules/layout/toolbar/date-single-select/date-single-select.component.html +0 -22
  315. package/src/lib/modules/layout/toolbar/date-single-select/date-single-select.component.scss +0 -156
  316. package/src/lib/modules/layout/toolbar/date-single-select/date-single-select.component.spec.ts +0 -23
  317. package/src/lib/modules/layout/toolbar/date-single-select/date-single-select.component.ts +0 -238
  318. package/src/lib/modules/layout/toolbar/datepicker/datepicker.component.html +0 -14
  319. package/src/lib/modules/layout/toolbar/datepicker/datepicker.component.scss +0 -149
  320. package/src/lib/modules/layout/toolbar/datepicker/datepicker.component.spec.ts +0 -23
  321. package/src/lib/modules/layout/toolbar/datepicker/datepicker.component.ts +0 -183
  322. package/src/lib/modules/layout/toolbar/extended/extended.component.html +0 -100
  323. package/src/lib/modules/layout/toolbar/extended/extended.component.scss +0 -0
  324. package/src/lib/modules/layout/toolbar/extended/extended.component.spec.ts +0 -23
  325. package/src/lib/modules/layout/toolbar/extended/extended.component.ts +0 -12
  326. package/src/lib/modules/layout/toolbar/metrics-header/metrics-header.component.html +0 -311
  327. package/src/lib/modules/layout/toolbar/metrics-header/metrics-header.component.scss +0 -311
  328. package/src/lib/modules/layout/toolbar/metrics-header/metrics-header.component.spec.ts +0 -23
  329. package/src/lib/modules/layout/toolbar/metrics-header/metrics-header.component.ts +0 -1555
  330. package/src/lib/modules/layout/toolbar/reports/reports.component.html +0 -62
  331. package/src/lib/modules/layout/toolbar/reports/reports.component.scss +0 -0
  332. package/src/lib/modules/layout/toolbar/reports/reports.component.spec.ts +0 -23
  333. package/src/lib/modules/layout/toolbar/reports/reports.component.ts +0 -14
  334. package/src/lib/modules/layout/toolbar/saas/saas.component.html +0 -77
  335. package/src/lib/modules/layout/toolbar/saas/saas.component.scss +0 -0
  336. package/src/lib/modules/layout/toolbar/saas/saas.component.spec.ts +0 -23
  337. package/src/lib/modules/layout/toolbar/saas/saas.component.ts +0 -14
  338. package/src/lib/modules/layout/toolbar/single-clientstore-date/single-clientstore-date.component.html +0 -26
  339. package/src/lib/modules/layout/toolbar/single-clientstore-date/single-clientstore-date.component.scss +0 -176
  340. package/src/lib/modules/layout/toolbar/single-clientstore-date/single-clientstore-date.component.spec.ts +0 -23
  341. package/src/lib/modules/layout/toolbar/single-clientstore-date/single-clientstore-date.component.ts +0 -235
  342. package/src/lib/modules/layout/toolbar/single-store/single-store.component.html +0 -39
  343. package/src/lib/modules/layout/toolbar/single-store/single-store.component.scss +0 -176
  344. package/src/lib/modules/layout/toolbar/single-store/single-store.component.spec.ts +0 -23
  345. package/src/lib/modules/layout/toolbar/single-store/single-store.component.ts +0 -188
  346. package/src/lib/modules/layout/toolbar/single-storedate/single-storedate.component.html +0 -17
  347. package/src/lib/modules/layout/toolbar/single-storedate/single-storedate.component.scss +0 -172
  348. package/src/lib/modules/layout/toolbar/single-storedate/single-storedate.component.spec.ts +0 -23
  349. package/src/lib/modules/layout/toolbar/single-storedate/single-storedate.component.ts +0 -179
  350. package/src/lib/modules/layout/toolbar/storesingle/storesingle.component.html +0 -4
  351. package/src/lib/modules/layout/toolbar/storesingle/storesingle.component.scss +0 -19
  352. package/src/lib/modules/layout/toolbar/storesingle/storesingle.component.spec.ts +0 -23
  353. package/src/lib/modules/layout/toolbar/storesingle/storesingle.component.ts +0 -105
  354. package/src/lib/modules/layout/toolbar/toolbar.component.html +0 -64
  355. package/src/lib/modules/layout/toolbar/toolbar.component.scss +0 -0
  356. package/src/lib/modules/layout/toolbar/toolbar.component.spec.ts +0 -25
  357. package/src/lib/modules/layout/toolbar/toolbar.component.ts +0 -400
  358. package/src/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.html +0 -259
  359. package/src/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.scss +0 -305
  360. package/src/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.spec.ts +0 -23
  361. package/src/lib/modules/layout/toolbar/traffic-header/traffic-header/traffic-header.component.ts +0 -1202
  362. package/src/lib/modules/layout/toolbar/traffic-nob/traffic-nob.component.html +0 -199
  363. package/src/lib/modules/layout/toolbar/traffic-nob/traffic-nob.component.scss +0 -311
  364. package/src/lib/modules/layout/toolbar/traffic-nob/traffic-nob.component.spec.ts +0 -23
  365. package/src/lib/modules/layout/toolbar/traffic-nob/traffic-nob.component.ts +0 -899
  366. package/src/lib/modules/layout/toolbar/trax-header/trax-header.component.html +0 -204
  367. package/src/lib/modules/layout/toolbar/trax-header/trax-header.component.scss +0 -311
  368. package/src/lib/modules/layout/toolbar/trax-header/trax-header.component.spec.ts +0 -23
  369. package/src/lib/modules/layout/toolbar/trax-header/trax-header.component.ts +0 -1045
  370. package/src/lib/modules/layout/toolbar/trax-withoutdate/trax-withoutdate.component.html +0 -190
  371. package/src/lib/modules/layout/toolbar/trax-withoutdate/trax-withoutdate.component.scss +0 -311
  372. package/src/lib/modules/layout/toolbar/trax-withoutdate/trax-withoutdate.component.spec.ts +0 -23
  373. package/src/lib/modules/layout/toolbar/trax-withoutdate/trax-withoutdate.component.ts +0 -825
  374. package/src/lib/modules/layout/toolbar/zone-header/zone-header.component.html +0 -259
  375. package/src/lib/modules/layout/toolbar/zone-header/zone-header.component.scss +0 -305
  376. package/src/lib/modules/layout/toolbar/zone-header/zone-header.component.spec.ts +0 -23
  377. package/src/lib/modules/layout/toolbar/zone-header/zone-header.component.ts +0 -1242
  378. package/src/lib/modules/notification/conformation/conformation.component.html +0 -25
  379. package/src/lib/modules/notification/conformation/conformation.component.scss +0 -0
  380. package/src/lib/modules/notification/conformation/conformation.component.spec.ts +0 -23
  381. package/src/lib/modules/notification/conformation/conformation.component.ts +0 -23
  382. package/src/lib/modules/notification/notification/notification.component.html +0 -209
  383. package/src/lib/modules/notification/notification/notification.component.scss +0 -211
  384. package/src/lib/modules/notification/notification/notification.component.spec.ts +0 -23
  385. package/src/lib/modules/notification/notification/notification.component.ts +0 -310
  386. package/src/lib/modules/notification/notification-routing.module.ts +0 -20
  387. package/src/lib/modules/notification/notification.module.ts +0 -21
  388. package/src/lib/pipes/customDate.pipe.ts +0 -18
  389. package/src/lib/routes/route-wraper-modules/analyse-wrapper.module.ts +0 -12
  390. package/src/lib/routes/route-wraper-modules/edge-wrapper.module.ts +0 -11
  391. package/src/lib/routes/route-wraper-modules/manage-wrapper.module.ts +0 -11
  392. package/src/lib/routes/route-wraper-modules/profile-wrapper.module.ts +0 -12
  393. package/src/lib/routes/route-wraper-modules/store-wrapper.module.ts +0 -11
  394. package/src/lib/routes/route-wraper-modules/ticket-wrapper.module.ts +0 -10
  395. package/src/lib/routes/routing.ts +0 -56
  396. package/src/lib/services/auth.service.ts +0 -178
  397. package/src/lib/services/notification.service.spec.ts +0 -16
  398. package/src/lib/services/notification.service.ts +0 -73
  399. package/src/lib/services/toast.service.ts +0 -82
  400. package/tsconfig.lib.json +0 -14
  401. package/tsconfig.lib.prod.json +0 -10
  402. package/tsconfig.spec.json +0 -14
@@ -0,0 +1,178 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import dayjs from 'dayjs';
3
+ import 'dayjs/locale/en';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../../../services/auth.service";
6
+ import * as i2 from "tango-app-ui-global";
7
+ import * as i3 from "@angular/router";
8
+ import * as i4 from "@angular/common";
9
+ import * as i5 from "../../../common/custom-select/custom-select.component";
10
+ import * as i6 from "@angular/forms";
11
+ import * as i7 from "ngx-daterangepicker-material";
12
+ export class SingleStoreComponent {
13
+ auth;
14
+ gs;
15
+ cd;
16
+ router;
17
+ urlString;
18
+ dayjs = dayjs;
19
+ isCustomDate = (m) => {
20
+ const isValidDate = m > this.dayjs();
21
+ return isValidDate ? 'invalid-date' : false;
22
+ };
23
+ selectedDateRange = {};
24
+ storeList = [];
25
+ selectedClient;
26
+ selectedFilters = {
27
+ client: null,
28
+ clientName: null,
29
+ clients: [],
30
+ store: null,
31
+ stores: [],
32
+ date: null,
33
+ };
34
+ URL;
35
+ baseurl;
36
+ constructor(auth, gs, cd, router) {
37
+ this.auth = auth;
38
+ this.gs = gs;
39
+ this.cd = cd;
40
+ this.router = router;
41
+ const currentUrl = this.router.url;
42
+ const updatedUrl = currentUrl.replace(/\/manage\/stores\/\d+-\d+\//, `/manage/stores/`);
43
+ const url = updatedUrl;
44
+ this.baseurl = url.split("?")[1];
45
+ this.URL = url.split("?")[0].split('/');
46
+ }
47
+ ngOnInit() {
48
+ const headerFilters = JSON.parse(localStorage.getItem("header-filters") || "{}");
49
+ if (headerFilters?.client) {
50
+ this.auth.getStores(headerFilters?.client).subscribe({
51
+ next: (e) => {
52
+ if (e) {
53
+ this.storeList = e.data.result;
54
+ const headerFilters = JSON.parse(localStorage.getItem("header-filters") || "{}");
55
+ this.selectedDateRange = {
56
+ startDate: this.dayjs(headerFilters?.date?.startDate, "DD-MM-YYYY").format("YYYY-MM-DD"),
57
+ endDate: this.dayjs(headerFilters?.date?.endDate, "DD-MM-YYYY").format("YYYY-MM-DD")
58
+ };
59
+ if (headerFilters?.store) {
60
+ this.storeList.find((obj) => {
61
+ if (obj.storeId === headerFilters.store) {
62
+ this.selectedClient = obj;
63
+ }
64
+ });
65
+ this.selectedFilters.store = headerFilters.store;
66
+ this.selectedFilters.client = headerFilters.client;
67
+ this.selectedFilters.clientName = headerFilters.clientName;
68
+ this.selectedFilters.clients = headerFilters.clients;
69
+ this.selectedFilters.date = headerFilters.date;
70
+ this.selectedFilters.stores = headerFilters.stores;
71
+ this.selectedFilters.storeName = headerFilters.storeName;
72
+ this.selectedDateRange = {
73
+ startDate: this.dayjs(headerFilters.date.startDate, "YYYY-MM-DD").format("DD-MM-YYYY"),
74
+ endDate: this.dayjs(headerFilters.date.endDate, "YYYY-MM-DD").format("DD-MM-YYYY"),
75
+ };
76
+ localStorage.setItem("header-filters", JSON.stringify(this.selectedFilters));
77
+ this.gs.dataRangeValue.next(this.selectedFilters);
78
+ this.cd.detectChanges();
79
+ }
80
+ else {
81
+ this.selectedClient = this.storeList[0];
82
+ this.selectedFilters.store = this.selectedClient.storeId;
83
+ this.selectedFilters.client = headerFilters.client;
84
+ this.selectedFilters.clientName = headerFilters.clientName;
85
+ this.selectedFilters.clients = headerFilters.clients;
86
+ this.selectedFilters.storeName = headerFilters.storeName;
87
+ this.selectedFilters.stores = headerFilters.stores;
88
+ this.selectedDateRange = {
89
+ startDate: this.dayjs().format("DD-MM-YYYY"),
90
+ endDate: this.dayjs().format("DD-MM-YYYY"),
91
+ };
92
+ var datetime = {
93
+ startDate: this.dayjs().format("YYYY-MM-DD"),
94
+ endDate: this.dayjs().format("YYYY-MM-DD"),
95
+ };
96
+ this.selectedFilters.date = datetime;
97
+ localStorage.setItem("header-filters", JSON.stringify(this.selectedFilters));
98
+ this.gs.dataRangeValue.next(this.selectedFilters);
99
+ this.cd.detectChanges();
100
+ }
101
+ }
102
+ },
103
+ });
104
+ }
105
+ }
106
+ onClientSelect(event) {
107
+ this.selectedClient = event;
108
+ }
109
+ ranges = {
110
+ // Today: [
111
+ // this.dayjs(),
112
+ // this.dayjs(),
113
+ // ],
114
+ 'Yesterday': [this.dayjs().subtract(1, 'days'), this.dayjs().subtract(1, 'days')],
115
+ 'This Week': [this.dayjs().subtract(7, "days"), this.dayjs().subtract(1, "days")],
116
+ 'Last Week': [this.dayjs().subtract(14, 'days').startOf('days'), this.dayjs().subtract(8, 'days').endOf('days')],
117
+ "This Month": [
118
+ this.dayjs().subtract(30, "days"),
119
+ this.dayjs().subtract(1, "days") // End date is Yesterday
120
+ ],
121
+ 'Last Month': [
122
+ this.dayjs().subtract(1, 'month').startOf('month'),
123
+ this.dayjs().subtract(1, 'month').endOf('month')
124
+ ]
125
+ };
126
+ onStartDateChange(event) {
127
+ if (this.dayjs(event.startDate).isValid()) {
128
+ this.isCustomDate = (m) => {
129
+ const isValidDate = m > this.dayjs() || m > this.dayjs(event.startDate.add(90, 'days'));
130
+ return isValidDate ? 'invalid-date' : false;
131
+ };
132
+ }
133
+ }
134
+ datechange(event) {
135
+ if (event && event.startDate && event.endDate) {
136
+ if (this.dayjs(event.startDate).isValid() &&
137
+ this.dayjs(event.endDate).isValid()) {
138
+ this.selectedDateRange.startDate = event.startDate;
139
+ this.selectedDateRange.endDate = event.endDate;
140
+ var datetime = {
141
+ startDate: this.dayjs(event.startDate, "DD-MM-YYYY").format("YYYY-MM-DD"),
142
+ endDate: this.dayjs(event.endDate, "DD-MM-YYYY").format("YYYY-MM-DD"),
143
+ };
144
+ this.selectedFilters.date = datetime;
145
+ localStorage.setItem('header-filters', JSON.stringify(this.selectedFilters));
146
+ }
147
+ }
148
+ else {
149
+ const headerFilters = JSON.parse(localStorage.getItem("header-filters") || "{}");
150
+ this.selectedDateRange.startDate = this.dayjs(headerFilters.date.startDate, "YYYY-MM-DD").format("DD-MM-YYYY");
151
+ this.selectedDateRange.endDate = this.dayjs(headerFilters.date.endDate, "YYYY-MM-DD").format("DD-MM-YYYY");
152
+ this.gs.dataRangeValue.next(headerFilters);
153
+ }
154
+ }
155
+ Apply() {
156
+ const headerFilters = JSON.parse(localStorage.getItem("header-filters") || "{}");
157
+ this.selectedFilters = headerFilters;
158
+ this.selectedFilters.store = this.selectedClient.storeId;
159
+ this.gs.dataRangeValue.next(this.selectedFilters);
160
+ localStorage.setItem('header-filters', JSON.stringify(this.selectedFilters));
161
+ }
162
+ queryString = '';
163
+ ngOnChanges(changes) {
164
+ this.urlString = changes?.urlString?.currentValue.split('?')[0].split('/');
165
+ if (changes?.urlString?.currentValue.split('?').length > 1) {
166
+ this.queryString = changes?.urlString?.currentValue.split('?')[1];
167
+ }
168
+ }
169
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SingleStoreComponent, deps: [{ token: i1.AuthService }, { token: i2.GlobalStateService }, { token: i0.ChangeDetectorRef }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Component });
170
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SingleStoreComponent, selector: "lib-single-store", inputs: { urlString: "urlString" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"URL[2] !=='controlcenter'\" class=\"wrapper mx-2\" >\r\n <lib-select [items]=\"storeList\" [multi]=\"false\" [searchField]=\"'storeName'\" [disabled]=\"false\" [idField]=\"'storeId'\"\r\n (selected)=\"onClientSelect($event)\" [selectedValues]=\"[selectedClient]\"></lib-select> \r\n</div>\r\n\r\n<div class=\"d-flex align-items-center position-relative my-1\" style=\"display: none !important;\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14\" style=\"min-width: 260px !important;\" type=\"text\" matInput ngxDaterangepickerMd [drops]=\"'down'\"\r\n [opens]=\"'right'\" [ranges]=\"ranges\" [showCustomRangeLabel]=\"true\" [alwaysShowCalendars]=\"false\" [autoApply]=\"true\"\r\n [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"true\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\" (startDateChanged)=\"onStartDateChange($event)\" [isCustomDate]=\"isCustomDate\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n (datesUpdated)=\"datechange($event)\" name=\"daterange\" [readonly]=\"true\" />\r\n</div>\r\n<div *ngIf=\"\" class=\"d-flex align-items-center w-150px position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14\" type=\"text\" matInput ngxDaterangepickerMd [drops]=\"'down'\"\r\n [opens]=\"'right'\" [showCustomRangeLabel]=\"false\" [alwaysShowCalendars]=\"false\" [autoApply]=\"true\" [singleDatePicker]=\"true\"\r\n [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"true\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\" (startDateChanged)=\"onStartDateChange($event)\" [isCustomDate]=\"isCustomDate\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1}\"\r\n (datesUpdated)=\"datechange($event)\" name=\"daterange\" [readonly]=\"true\" />\r\n</div>\r\n\r\n<div *ngIf=\"URL[2] !=='controlcenter'\">\r\n <div class=\"btn btn-primary ms-2\" (click)=\"Apply()\">Apply</div>\r\n</div>\r\n\r\n\r\n", styles: [".daterangepicker{display:block!important;top:153.85px!important;left:900px!important;right:0}.form-control{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600;line-height:20px;text-transform:capitalize}::ng-deep .applyBtn{display:none!important}:host::ng-deep .md-drppicker .btn{line-height:10px!important}:host::ng-deep .daterangepicker-input+.ngx-daterangepicker-material .applyBtn{display:none}:host::ng-deep .md-drppicker.drops-down-right.ltr.double.show-ranges.shown{top:65px!important;left:-470px!important;height:365px!important}:host::ng-deep .md-drppicker .btn{border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--White, #FFF)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize}:host::ng-deep .md-drppicker .ranges ul li button{padding:12px 16px;width:160px;color:var(--Gray-700, #344054);font-size:14px;font-weight:400;line-height:20px;background:none;border:none;text-align:left;cursor:pointer}:host::ng-deep .md-drppicker td.active,:host::ng-deep .md-drppicker td.active:hover{background-color:#029cf4!important;border-radius:20px!important;color:var(--White, #FFF)!important;text-align:center!important;font-size:14px!important;font-weight:500!important;line-height:20px}:host::ng-deep .md-drppicker.ltr .ranges{float:left;margin-top:10px!important}:host::ng-deep .md-drppicker td.in-range{background:var(--Primary-50, #EAF8FF)}:host::ng-deep .md-drppicker .ranges ul li button.active{background:var(--Primary-50, #EAF8FF)!important;border-radius:8px!important;color:var(--Primary-700, #009BF3);font-size:14px!important;font-weight:500!important;line-height:20px!important}:host::ng-deep table th,:host::ng-deep table td{width:40px!important;height:40px!important;padding:10px 8px!important}:host::ng-deep .md-drppicker td.available.prev,:host::ng-deep .md-drppicker th.available.prev{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep .md-drppicker td.available.next,:host::ng-deep .md-drppicker th.available.next{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep table th{border-bottom:0px solid var(--Gray-200, #EAECF0)!important;background:transparent!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:16px!important;font-weight:500!important;line-height:24px}:host::ng-deep .md-drppicker .btn.btn-default{border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize;margin-right:10px!important}:host::ng-deep .md-drppicker td.available.invalid-date{text-decoration:line-through;pointer-events:none;color:#a9a9a9}:host::ng-deep .md-drppicker td.available.today{pointer-events:none;text-decoration:line-through;color:#a9a9a9}.wrapper{min-width:200px}.btn-primary{line-height:18px!important}.w-150px{width:160px!important}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.CustomSelectComponent, selector: "lib-select", inputs: ["items", "searchField", "multi", "idField", "selectedValues", "disabled", "label"], outputs: ["selected"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.DaterangepickerDirective, selector: "input[ngxDaterangepickerMd]", inputs: ["minDate", "maxDate", "autoApply", "alwaysShowCalendars", "showCustomRangeLabel", "linkedCalendars", "dateLimit", "singleDatePicker", "showWeekNumbers", "showISOWeekNumbers", "showDropdowns", "isInvalidDate", "isCustomDate", "isTooltipDate", "showClearButton", "customRangeDirection", "ranges", "opens", "drops", "firstMonthDayClass", "lastMonthDayClass", "emptyWeekRowClass", "emptyWeekColumnClass", "firstDayOfNextMonthClass", "lastDayOfPreviousMonthClass", "keepCalendarOpeningWithRange", "showRangeLabelOnInput", "showCancel", "lockStartDate", "timePicker", "timePicker24Hour", "timePickerIncrement", "timePickerSeconds", "closeOnAutoApply", "endKeyHolder", "startKey", "locale", "endKey"], outputs: ["change", "rangeClicked", "datesUpdated", "startDateChanged", "endDateChanged", "clearClicked"] }] });
171
+ }
172
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SingleStoreComponent, decorators: [{
173
+ type: Component,
174
+ args: [{ selector: 'lib-single-store', template: "<div *ngIf=\"URL[2] !=='controlcenter'\" class=\"wrapper mx-2\" >\r\n <lib-select [items]=\"storeList\" [multi]=\"false\" [searchField]=\"'storeName'\" [disabled]=\"false\" [idField]=\"'storeId'\"\r\n (selected)=\"onClientSelect($event)\" [selectedValues]=\"[selectedClient]\"></lib-select> \r\n</div>\r\n\r\n<div class=\"d-flex align-items-center position-relative my-1\" style=\"display: none !important;\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14\" style=\"min-width: 260px !important;\" type=\"text\" matInput ngxDaterangepickerMd [drops]=\"'down'\"\r\n [opens]=\"'right'\" [ranges]=\"ranges\" [showCustomRangeLabel]=\"true\" [alwaysShowCalendars]=\"false\" [autoApply]=\"true\"\r\n [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"true\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\" (startDateChanged)=\"onStartDateChange($event)\" [isCustomDate]=\"isCustomDate\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n (datesUpdated)=\"datechange($event)\" name=\"daterange\" [readonly]=\"true\" />\r\n</div>\r\n<div *ngIf=\"\" class=\"d-flex align-items-center w-150px position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14\" type=\"text\" matInput ngxDaterangepickerMd [drops]=\"'down'\"\r\n [opens]=\"'right'\" [showCustomRangeLabel]=\"false\" [alwaysShowCalendars]=\"false\" [autoApply]=\"true\" [singleDatePicker]=\"true\"\r\n [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"true\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\" (startDateChanged)=\"onStartDateChange($event)\" [isCustomDate]=\"isCustomDate\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1}\"\r\n (datesUpdated)=\"datechange($event)\" name=\"daterange\" [readonly]=\"true\" />\r\n</div>\r\n\r\n<div *ngIf=\"URL[2] !=='controlcenter'\">\r\n <div class=\"btn btn-primary ms-2\" (click)=\"Apply()\">Apply</div>\r\n</div>\r\n\r\n\r\n", styles: [".daterangepicker{display:block!important;top:153.85px!important;left:900px!important;right:0}.form-control{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600;line-height:20px;text-transform:capitalize}::ng-deep .applyBtn{display:none!important}:host::ng-deep .md-drppicker .btn{line-height:10px!important}:host::ng-deep .daterangepicker-input+.ngx-daterangepicker-material .applyBtn{display:none}:host::ng-deep .md-drppicker.drops-down-right.ltr.double.show-ranges.shown{top:65px!important;left:-470px!important;height:365px!important}:host::ng-deep .md-drppicker .btn{border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--White, #FFF)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize}:host::ng-deep .md-drppicker .ranges ul li button{padding:12px 16px;width:160px;color:var(--Gray-700, #344054);font-size:14px;font-weight:400;line-height:20px;background:none;border:none;text-align:left;cursor:pointer}:host::ng-deep .md-drppicker td.active,:host::ng-deep .md-drppicker td.active:hover{background-color:#029cf4!important;border-radius:20px!important;color:var(--White, #FFF)!important;text-align:center!important;font-size:14px!important;font-weight:500!important;line-height:20px}:host::ng-deep .md-drppicker.ltr .ranges{float:left;margin-top:10px!important}:host::ng-deep .md-drppicker td.in-range{background:var(--Primary-50, #EAF8FF)}:host::ng-deep .md-drppicker .ranges ul li button.active{background:var(--Primary-50, #EAF8FF)!important;border-radius:8px!important;color:var(--Primary-700, #009BF3);font-size:14px!important;font-weight:500!important;line-height:20px!important}:host::ng-deep table th,:host::ng-deep table td{width:40px!important;height:40px!important;padding:10px 8px!important}:host::ng-deep .md-drppicker td.available.prev,:host::ng-deep .md-drppicker th.available.prev{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep .md-drppicker td.available.next,:host::ng-deep .md-drppicker th.available.next{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep table th{border-bottom:0px solid var(--Gray-200, #EAECF0)!important;background:transparent!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:16px!important;font-weight:500!important;line-height:24px}:host::ng-deep .md-drppicker .btn.btn-default{border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize;margin-right:10px!important}:host::ng-deep .md-drppicker td.available.invalid-date{text-decoration:line-through;pointer-events:none;color:#a9a9a9}:host::ng-deep .md-drppicker td.available.today{pointer-events:none;text-decoration:line-through;color:#a9a9a9}.wrapper{min-width:200px}.btn-primary{line-height:18px!important}.w-150px{width:160px!important}\n"] }]
175
+ }], ctorParameters: () => [{ type: i1.AuthService }, { type: i2.GlobalStateService }, { type: i0.ChangeDetectorRef }, { type: i3.Router }], propDecorators: { urlString: [{
176
+ type: Input
177
+ }] } });
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLXN0b3JlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL2xheW91dC90b29sYmFyL3NpbmdsZS1zdG9yZS9zaW5nbGUtc3RvcmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL21vZHVsZXMvbGF5b3V0L3Rvb2xiYXIvc2luZ2xlLXN0b3JlL3NpbmdsZS1zdG9yZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQW9DLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQVEsS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMzQixPQUFPLGlCQUFpQixDQUFDOzs7Ozs7Ozs7QUFVekIsTUFBTSxPQUFPLG9CQUFvQjtJQXFCWDtJQUEwQjtJQUErQjtJQUE2QjtJQXBCakcsU0FBUyxDQUFLO0lBQ3ZCLEtBQUssR0FBRyxLQUFLLENBQUE7SUFDYixZQUFZLEdBQUcsQ0FBQyxDQUFjLEVBQUUsRUFBRTtRQUNoQyxNQUFNLFdBQVcsR0FBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RDLE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNoRCxDQUFDLENBQUE7SUFDQyxpQkFBaUIsR0FBUSxFQUFFLENBQUM7SUFDNUIsU0FBUyxHQUFPLEVBQUUsQ0FBQTtJQUNsQixjQUFjLENBQUk7SUFDbEIsZUFBZSxHQUFRO1FBQ3JCLE1BQU0sRUFBRSxJQUFJO1FBQ1osVUFBVSxFQUFDLElBQUk7UUFDZixPQUFPLEVBQUUsRUFBRTtRQUNYLEtBQUssRUFBRSxJQUFJO1FBQ1gsTUFBTSxFQUFFLEVB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S0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNFLElBQUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDekQsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDbkU7SUFDSCxDQUFDO3dHQTlLWSxvQkFBb0I7NEZBQXBCLG9CQUFvQixpSENaakMsbTJHQXVDQTs7NEZEM0JhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxrQkFBa0I7c0tBS25CLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICBkYXlqcyBmcm9tICdkYXlqcyc7XHJcbmltcG9ydCAnZGF5anMvbG9jYWxlL2VuJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXNpbmdsZS1zdG9yZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NpbmdsZS1zdG9yZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3NpbmdsZS1zdG9yZS5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFNpbmdsZVN0b3JlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgdXJsU3RyaW5nOmFueTtcclxuICBkYXlqcyA9IGRheWpzXHJcbiAgaXNDdXN0b21EYXRlID0gKG06IGRheWpzLkRheWpzKSA9PiB7XHJcbiAgICBjb25zdCBpc1ZhbGlkRGF0ZSA9ICBtID4gdGhpcy5kYXlqcygpOyAgICBcclxuICAgIHJldHVybiBpc1ZhbGlkRGF0ZSA/ICdpbnZhbGlkLWRhdGUnIDogZmFsc2U7XHJcbn1cclxuICBzZWxlY3RlZERhdGVSYW5nZTogYW55ID0ge307XHJcbiAgc3RvcmVMaXN0OmFueSA9IFtdXHJcbiAgc2VsZWN0ZWRDbGllbnQ6YW55XHJcbiAgc2VsZWN0ZWRGaWx0ZXJzOiBhbnkgPSB7XHJcbiAgICBjbGllbnQ6IG51bGwsXHJcbiAgICBjbGllbnROYW1lOm51bGwsXHJcbiAgICBjbGllbnRzOiBbXSxcclxuICAgIHN0b3JlOiBudWxsLFxyXG4gICAgc3RvcmVzOiBbXSxcclxuICAgIGRhdGU6IG51bGwsXHJcblxyXG4gIH07XHJcbiAgVVJMOiBhbnk7XHJcbiAgYmFzZXVybDphbnk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhdXRoOkF1dGhTZXJ2aWNlLCBwcml2YXRlIGdzOkdsb2JhbFN0YXRlU2VydmljZSwgcHJpdmF0ZSBjZDpDaGFuZ2VEZXRlY3RvclJlZixwcml2YXRlIHJvdXRlcjpSb3V0ZXIpe1xyXG4gICAgY29uc3QgY3VycmVudFVybCA9IHRoaXMucm91dGVyLnVybDtcclxuICAgIGNvbnN0IHVwZGF0ZWRVcmwgPSBjdXJyZW50VXJsLnJlcGxhY2UoXHJcbiAgICAgIC9cXC9tYW5hZ2VcXC9zdG9yZXNcXC9cXGQrLVxcZCtcXC8vLFxyXG4gICAgICBgL21hbmFnZS9zdG9yZXMvYFxyXG4gICAgKTtcclxuICAgIGNvbnN0IHVybCA9IHVwZGF0ZWRVcmw7XHJcbiAgICB0aGlzLmJhc2V1cmwgPSB1cmwuc3BsaXQoXCI/XCIpWzFdO1xyXG4gICAgdGhpcy5VUkw9IHVybC5zcGxpdChcIj9cIilbMF0uc3BsaXQoJy8nKTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBoZWFkZXJGaWx0ZXJzOiBhbnkgPSBKU09OLnBhcnNlKFxyXG4gICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImhlYWRlci1maWx0ZXJzXCIpIHx8IFwie31cIlxyXG4gICAgKTtcclxuICAgIGlmKGhlYWRlckZpbHRlcnM/LmNsaWVudCl7XHJcbiAgICB0aGlzLmF1dGguZ2V0U3RvcmVzKGhlYWRlckZpbHRlcnM/LmNsaWVudCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKGUpID0+IHtcclxuICAgICAgICBpZiAoZSkge1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICB0aGlzLnN0b3JlTGlzdCA9IGUuZGF0YS5yZXN1bHQ7XHJcbiAgICAgICAgICBjb25zdCBoZWFkZXJGaWx0ZXJzOiBhbnkgPSBKU09OLnBhcnNlKFxyXG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImhlYWRlci1maWx0ZXJzXCIpIHx8IFwie31cIlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UgPSB7XHJcbiAgICAgICAgICAgIHN0YXJ0RGF0ZTogdGhpcy5kYXlqcyhoZWFkZXJGaWx0ZXJzPy5kYXRlPy5zdGFydERhdGUsXCJERC1NTS1ZWVlZXCIpLmZvcm1hdChcIllZWVktTU0tRERcIiksXHJcbiAgICAgICAgICAgIGVuZERhdGU6IHRoaXMuZGF5anMoaGVhZGVyRmlsdGVycz8uZGF0ZT8uZW5kRGF0ZSwgXCJERC1NTS1ZWVlZXCIpLmZvcm1hdChcIllZWVktTU0tRERcIilcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICBpZiAoaGVhZGVyRmlsdGVycz8uc3RvcmUpIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZUxpc3QuZmluZCgob2JqOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAob2JqLnN0b3JlSWQgPT09IGhlYWRlckZpbHRlcnMuc3RvcmUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDbGllbnQgPSBvYmo7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5zdG9yZSA9ICBoZWFkZXJGaWx0ZXJzLnN0b3JlO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmNsaWVudCA9ICBoZWFkZXJGaWx0ZXJzLmNsaWVudDtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5jbGllbnROYW1lID0gIGhlYWRlckZpbHRlcnMuY2xpZW50TmFtZTtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5jbGllbnRzID0gIGhlYWRlckZpbHRlcnMuY2xpZW50czsgIFxyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmRhdGUgPSBoZWFkZXJGaWx0ZXJzLmRhdGU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5zdG9yZXMgPSAgaGVhZGVyRmlsdGVycy5zdG9yZXM7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuc3RvcmVOYW1lID0gIGhlYWRlckZpbHRlcnMuc3RvcmVOYW1lOyBcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlID0ge1xyXG4gICAgICAgICAgICAgICAgc3RhcnREYXRlOnRoaXMuZGF5anMoIGhlYWRlckZpbHRlcnMuZGF0ZS5zdGFydERhdGUsIFwiWVlZWS1NTS1ERFwiKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpLFxyXG4gICAgICAgICAgICAgICAgZW5kRGF0ZTogdGhpcy5kYXlqcyggaGVhZGVyRmlsdGVycy5kYXRlLmVuZERhdGUsIFwiWVlZWS1NTS1ERFwiKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpLFxyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXHJcbiAgICAgICAgICAgICAgICBcImhlYWRlci1maWx0ZXJzXCIsXHJcbiAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkRmlsdGVycylcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWUubmV4dCh0aGlzLnNlbGVjdGVkRmlsdGVycyk7XHJcbiAgICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkQ2xpZW50ID0gdGhpcy5zdG9yZUxpc3RbMF07XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLnN0b3JlID0gIHRoaXMuc2VsZWN0ZWRDbGllbnQuc3RvcmVJZDsgXHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmNsaWVudCA9ICBoZWFkZXJGaWx0ZXJzLmNsaWVudDtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuY2xpZW50TmFtZSA9ICBoZWFkZXJGaWx0ZXJzLmNsaWVudE5hbWU7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmNsaWVudHMgPSAgaGVhZGVyRmlsdGVycy5jbGllbnRzOyAgXHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLnN0b3JlTmFtZSA9ICBoZWFkZXJGaWx0ZXJzLnN0b3JlTmFtZTsgXHJcbiAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLnN0b3JlcyA9ICBoZWFkZXJGaWx0ZXJzLnN0b3JlczsgXHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UgPSB7XHJcbiAgICAgICAgICAgICAgc3RhcnREYXRlOiB0aGlzLmRheWpzKCkuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSxcclxuICAgICAgICAgICAgICBlbmREYXRlOiB0aGlzLmRheWpzKCkuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgdmFyIGRhdGV0aW1lID0ge1xyXG4gICAgICAgICAgICAgIHN0YXJ0RGF0ZTogdGhpcy5kYXlqcygpLmZvcm1hdChcIllZWVktTU0tRERcIiksXHJcbiAgICAgICAgICAgICAgZW5kRGF0ZTogdGhpcy5kYXlqcygpLmZvcm1hdChcIllZWVktTU0tRERcIiksXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmRhdGUgPSBkYXRldGltZTtcclxuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXHJcbiAgICAgICAgICAgICAgXCJoZWFkZXItZmlsdGVyc1wiLFxyXG4gICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuc2VsZWN0ZWRGaWx0ZXJzKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aGlzLmdzLmRhdGFSYW5nZVZhbHVlLm5leHQodGhpcy5zZWxlY3RlZEZpbHRlcnMpO1xyXG4gICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgfVxyXG4gIG9uQ2xpZW50U2VsZWN0KGV2ZW50OmFueSl7XHJcbiAgICB0aGlzLnNlbGVjdGVkQ2xpZW50ID0gZXZlbnRcclxuICB9XHJcblxyXG4gIHJhbmdlczogYW55ID0ge1xyXG4gICAgLy8gVG9kYXk6IFtcclxuICAgIC8vICAgdGhpcy5kYXlqcygpLFxyXG4gICAgLy8gICB0aGlzLmRheWpzKCksXHJcbiAgICAvLyBdLFxyXG4gICAgJ1llc3RlcmRheSc6IFt0aGlzLmRheWpzKCkuc3VidHJhY3QoMSwgJ2RheXMnKSwgdGhpcy5kYXlqcygpLnN1YnRyYWN0KDEsICdkYXlzJyldLFxyXG4gICAgJ1RoaXMgV2Vlayc6IFt0aGlzLmRheWpzKCkuc3VidHJhY3QoNywgXCJkYXlzXCIpLCB0aGlzLmRheWpzKCkuc3VidHJhY3QoMSwgXCJkYXlzXCIpXSxcclxuICAgICdMYXN0IFdlZWsnOiBbdGhpcy5kYXlqcygpLnN1YnRyYWN0KDE0LCAnZGF5cycpLnN0YXJ0T2YoJ2RheXMnKSwgdGhpcy5kYXlqcygpLnN1YnRyYWN0KDgsICdkYXlzJykuZW5kT2YoJ2RheXMnKV0sXHJcbiAgIFwiVGhpcyBNb250aFwiOiBbXHJcbiAgICB0aGlzLmRheWpzKCkuc3VidHJhY3QoMzAsIFwiZGF5c1wiKSwgLy8gU3RhcnQgZGF0ZSBpcyAzMCBkYXlzIGJlZm9yZSB0b2RheVxyXG4gICAgdGhpcy5kYXlqcygpLnN1YnRyYWN0KDEsIFwiZGF5c1wiKSAvLyBFbmQgZGF0ZSBpcyBZZXN0ZXJkYXlcclxuICBdLFxyXG4gICAgJ0xhc3QgTW9udGgnOiBbXHJcbiAgICAgIHRoaXMuZGF5anMoKS5zdWJ0cmFjdCgxLCAnbW9udGgnKS5zdGFydE9mKCdtb250aCcpLFxyXG4gICAgICB0aGlzLmRheWpzKCkuc3VidHJhY3QoMSwgJ21vbnRoJykuZW5kT2YoJ21vbnRoJylcclxuICAgIF1cclxuICB9O1xyXG5cclxuICBvblN0YXJ0RGF0ZUNoYW5nZShldmVudDphbnkpe1xyXG4gICAgaWYodGhpcy5kYXlqcyhldmVudC5zdGFydERhdGUpLmlzVmFsaWQoKSl7XHJcbiAgICAgIHRoaXMuaXNDdXN0b21EYXRlID0gKG06IGRheWpzLkRheWpzKSA9PiB7ICAgICAgICBcclxuICAgICAgY29uc3QgaXNWYWxpZERhdGUgPSBtID4gdGhpcy5kYXlqcygpIHx8IG0gPiB0aGlzLmRheWpzKGV2ZW50LnN0YXJ0RGF0ZS5hZGQoOTAsICdkYXlzJykpIDtcclxuICAgICAgcmV0dXJuIGlzVmFsaWREYXRlID8gJ2ludmFsaWQtZGF0ZScgOiBmYWxzZTtcclxuICB9XHJcbn1cclxufVxyXG5cclxuZGF0ZWNoYW5nZShldmVudDogYW55KSB7XHJcbiAgaWYgKGV2ZW50ICYmIGV2ZW50LnN0YXJ0RGF0ZSAmJiBldmVudC5lbmREYXRlKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuZGF5anMoZXZlbnQuc3RhcnREYXRlKS5pc1ZhbGlkKCkgJiZcclxuICAgICAgdGhpcy5kYXlqcyhldmVudC5lbmREYXRlKS5pc1ZhbGlkKClcclxuICAgICkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlLnN0YXJ0RGF0ZSA9IGV2ZW50LnN0YXJ0RGF0ZVxyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlLmVuZERhdGUgPSBldmVudC5lbmREYXRlXHJcbiAgICAgIHZhciBkYXRldGltZSA9IHtcclxuICAgICAgICBzdGFydERhdGU6IHRoaXMuZGF5anMoZXZlbnQuc3RhcnREYXRlLFwiREQtTU0tWVlZWVwiKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpLFxyXG4gICAgICAgIGVuZERhdGU6IHRoaXMuZGF5anMoZXZlbnQuZW5kRGF0ZSxcIkRELU1NLVlZWVlcIikuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKSxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuZGF0ZSA9IGRhdGV0aW1lO1xyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnaGVhZGVyLWZpbHRlcnMnLCBKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkRmlsdGVycykpO1xyXG4gICAgfVxyXG4gIH1lbHNlIHtcclxuICAgIGNvbnN0IGhlYWRlckZpbHRlcnM6IGFueSA9IEpTT04ucGFyc2UoXHJcbiAgICAgICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImhlYWRlci1maWx0ZXJzXCIpIHx8IFwie31cIlxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZS5zdGFydERhdGUgPSB0aGlzLmRheWpzKGhlYWRlckZpbHRlcnMuZGF0ZS5zdGFydERhdGUsXCJZWVlZLU1NLUREXCIpLmZvcm1hdChcIkRELU1NLVlZWVlcIik7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZS5lbmREYXRlID0gdGhpcy5kYXlqcyhoZWFkZXJGaWx0ZXJzLmRhdGUuZW5kRGF0ZSxcIllZWVktTU0tRERcIikuZm9ybWF0KFwiREQtTU0tWVlZWVwiKTtcclxuICAgICAgICB0aGlzLmdzLmRhdGFSYW5nZVZhbHVlLm5leHQoaGVhZGVyRmlsdGVycyk7XHJcbiAgfSBcclxufVxyXG5cclxuQXBwbHkoKSB7XHJcbiAgY29uc3QgaGVhZGVyRmlsdGVyczogYW55ID0gSlNPTi5wYXJzZShcclxuICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIikgfHwgXCJ7fVwiXHJcbiAgKTtcclxuICB0aGlzLnNlbGVjdGVkRmlsdGVycyA9IGhlYWRlckZpbHRlcnM7XHJcbiAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuc3RvcmUgPSB0aGlzLnNlbGVjdGVkQ2xpZW50LnN0b3JlSWQ7XHJcbiAgdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZS5uZXh0KHRoaXMuc2VsZWN0ZWRGaWx0ZXJzKTtcclxuICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnaGVhZGVyLWZpbHRlcnMnLCBKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkRmlsdGVycykpO1xyXG59XHJcblxyXG5xdWVyeVN0cmluZzphbnkgPSAnJ1xyXG5cclxubmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gIHRoaXMudXJsU3RyaW5nID0gY2hhbmdlcz8udXJsU3RyaW5nPy5jdXJyZW50VmFsdWUuc3BsaXQoJz8nKVswXS5zcGxpdCgnLycpO1xyXG4gIGlmKGNoYW5nZXM/LnVybFN0cmluZz8uY3VycmVudFZhbHVlLnNwbGl0KCc/JykubGVuZ3RoID4gMSkge1xyXG4gICAgdGhpcy5xdWVyeVN0cmluZyA9IGNoYW5nZXM/LnVybFN0cmluZz8uY3VycmVudFZhbHVlLnNwbGl0KCc/JylbMV07XHJcbiAgfVxyXG59XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cIlVSTFsyXSAhPT0nY29udHJvbGNlbnRlcidcIiBjbGFzcz1cIndyYXBwZXIgbXgtMlwiID5cclxuICAgIDxsaWItc2VsZWN0IFtpdGVtc109XCJzdG9yZUxpc3RcIiBbbXVsdGldPVwiZmFsc2VcIiBbc2VhcmNoRmllbGRdPVwiJ3N0b3JlTmFtZSdcIiBbZGlzYWJsZWRdPVwiZmFsc2VcIiBbaWRGaWVsZF09XCInc3RvcmVJZCdcIlxyXG4gICAgICAgIChzZWxlY3RlZCk9XCJvbkNsaWVudFNlbGVjdCgkZXZlbnQpXCIgW3NlbGVjdGVkVmFsdWVzXT1cIltzZWxlY3RlZENsaWVudF1cIj48L2xpYi1zZWxlY3Q+ICAgIFxyXG48L2Rpdj5cclxuXHJcbjxkaXYgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSBteS0xXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGUgbXMtM1wiPlxyXG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgZD1cIk0xMy4zMzMzIDEuNjY2NjNWNC45OTk5Nk02LjY2NjY3IDEuNjY2NjNWNC45OTk5Nk0yLjUgOC4zMzMyOUgxNy41TTQuMTY2NjcgMy4zMzMyOUgxNS44MzMzQzE2Ljc1MzggMy4zMzMyOSAxNy41IDQuMDc5NDggMTcuNSA0Ljk5OTk2VjE2LjY2NjZDMTcuNSAxNy41ODcxIDE2Ljc1MzggMTguMzMzMyAxNS44MzMzIDE4LjMzMzNINC4xNjY2N0MzLjI0NjE5IDE4LjMzMzMgMi41IDE3LjU4NzEgMi41IDE2LjY2NjZWNC45OTk5NkMyLjUgNC4wNzk0OCAzLjI0NjE5IDMuMzMzMjkgNC4xNjY2NyAzLjMzMzI5WlwiXHJcbiAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgPC9zdmc+XHJcbiAgICA8L3NwYW4+XHJcbiAgICA8aW5wdXQgY2xhc3M9XCJmeC1kYXRlLXJhbmdlIGZvcm0tY29udHJvbCBwcy0xNFwiIHN0eWxlPVwibWluLXdpZHRoOiAyNjBweCAhaW1wb3J0YW50O1wiIHR5cGU9XCJ0ZXh0XCIgbWF0SW5wdXQgbmd4RGF0ZXJhbmdlcGlja2VyTWQgW2Ryb3BzXT1cIidkb3duJ1wiXHJcbiAgICAgICAgW29wZW5zXT1cIidyaWdodCdcIiBbcmFuZ2VzXT1cInJhbmdlc1wiIFtzaG93Q3VzdG9tUmFuZ2VMYWJlbF09XCJ0cnVlXCIgW2Fsd2F5c1Nob3dDYWxlbmRhcnNdPVwiZmFsc2VcIiBbYXV0b0FwcGx5XT1cInRydWVcIlxyXG4gICAgICAgIFtrZWVwQ2FsZW5kYXJPcGVuaW5nV2l0aFJhbmdlXT1cInRydWVcIiBbc2hvd0NhbmNlbF09XCJ0cnVlXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZERhdGVSYW5nZVwiIChzdGFydERhdGVDaGFuZ2VkKT1cIm9uU3RhcnREYXRlQ2hhbmdlKCRldmVudClcIiAgW2lzQ3VzdG9tRGF0ZV09XCJpc0N1c3RvbURhdGVcIlxyXG4gICAgICAgIFtsb2NhbGVdPVwieyBmb3JtYXQ6ICdERC1NTS1ZWVlZJywgZmlyc3REYXk6IDEsIG1vbnRoTmFtZXM6IFsnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICdBcHJpbCcsICdNYXknLCAnSnVuZScsICdKdWx5JywgJ0F1Z3VzdCcsICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsICdEZWNlbWJlciddIH1cIlxyXG4gICAgICAgIChkYXRlc1VwZGF0ZWQpPVwiZGF0ZWNoYW5nZSgkZXZlbnQpXCIgbmFtZT1cImRhdGVyYW5nZVwiICBbcmVhZG9ubHldPVwidHJ1ZVwiIC8+XHJcbjwvZGl2PlxyXG48ZGl2ICpuZ0lmPVwiXCIgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHctMTUwcHggcG9zaXRpb24tcmVsYXRpdmUgbXktMVwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgIGQ9XCJNMTMuMzMzMyAxLjY2NjYzVjQuOTk5OTZNNi42NjY2NyAxLjY2NjYzVjQuOTk5OTZNMi41IDguMzMzMjlIMTcuNU00LjE2NjY3IDMuMzMzMjlIMTUuODMzM0MxNi43NTM4IDMuMzMzMjkgMTcuNSA0LjA3OTQ4IDE3LjUgNC45OTk5NlYxNi42NjY2QzE3LjUgMTcuNTg3MSAxNi43NTM4IDE4LjMzMzMgMTUuODMzMyAxOC4zMzMzSDQuMTY2NjdDMy4yNDYxOSAxOC4zMzMzIDIuNSAxNy41ODcxIDIuNSAxNi42NjY2VjQuOTk5OTZDMi41IDQuMDc5NDggMy4yNDYxOSAzLjMzMzI5IDQuMTY2NjcgMy4zMzMyOVpcIlxyXG4gICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgIDwvc3ZnPlxyXG4gICAgPC9zcGFuPlxyXG4gICAgPGlucHV0IGNsYXNzPVwiZngtZGF0ZS1yYW5nZSBmb3JtLWNvbnRyb2wgcHMtMTRcIiB0eXBlPVwidGV4dFwiIG1hdElucHV0IG5neERhdGVyYW5nZXBpY2tlck1kIFtkcm9wc109XCInZG93bidcIlxyXG4gICAgICAgIFtvcGVuc109XCIncmlnaHQnXCIgW3Nob3dDdXN0b21SYW5nZUxhYmVsXT1cImZhbHNlXCIgW2Fsd2F5c1Nob3dDYWxlbmRhcnNdPVwiZmFsc2VcIiBbYXV0b0FwcGx5XT1cInRydWVcIiBbc2luZ2xlRGF0ZVBpY2tlcl09XCJ0cnVlXCJcclxuICAgICAgICBba2VlcENhbGVuZGFyT3BlbmluZ1dpdGhSYW5nZV09XCJ0cnVlXCIgW3Nob3dDYW5jZWxdPVwidHJ1ZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWREYXRlUmFuZ2VcIiAoc3RhcnREYXRlQ2hhbmdlZCk9XCJvblN0YXJ0RGF0ZUNoYW5nZSgkZXZlbnQpXCIgIFtpc0N1c3RvbURhdGVdPVwiaXNDdXN0b21EYXRlXCJcclxuICAgICAgICBbbG9jYWxlXT1cInsgZm9ybWF0OiAnREQtTU0tWVlZWScsIGZpcnN0RGF5OiAxfVwiXHJcbiAgICAgICAgKGRhdGVzVXBkYXRlZCk9XCJkYXRlY2hhbmdlKCRldmVudClcIiBuYW1lPVwiZGF0ZXJhbmdlXCIgIFtyZWFkb25seV09XCJ0cnVlXCIgLz5cclxuPC9kaXY+XHJcblxyXG48ZGl2ICpuZ0lmPVwiVVJMWzJdICE9PSdjb250cm9sY2VudGVyJ1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtcy0yXCIgKGNsaWNrKT1cIkFwcGx5KClcIj5BcHBseTwvZGl2PlxyXG48L2Rpdj5cclxuXHJcblxyXG4iXX0=
@@ -0,0 +1,166 @@
1
+ import { Component } from '@angular/core';
2
+ import dayjs from 'dayjs';
3
+ import 'dayjs/locale/en';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../../../services/auth.service";
6
+ import * as i2 from "tango-app-ui-global";
7
+ import * as i3 from "@angular/router";
8
+ import * as i4 from "@angular/forms";
9
+ import * as i5 from "ngx-daterangepicker-material";
10
+ export class SingleStoredateComponent {
11
+ auth;
12
+ gs;
13
+ cd;
14
+ router;
15
+ activatedRoute;
16
+ dayjs = dayjs;
17
+ isCustomDate = (m) => {
18
+ const isValidDate = m > this.dayjs();
19
+ return isValidDate ? 'invalid-date' : false;
20
+ };
21
+ selectedDateRange = {};
22
+ storeList = [];
23
+ selectedClient;
24
+ selectedFilters = {
25
+ client: null,
26
+ clientName: null,
27
+ clients: [],
28
+ store: null,
29
+ stores: [],
30
+ date: null,
31
+ };
32
+ URL;
33
+ baseurl;
34
+ users;
35
+ headerFilters;
36
+ dataUser;
37
+ constructor(auth, gs, cd, router, activatedRoute) {
38
+ this.auth = auth;
39
+ this.gs = gs;
40
+ this.cd = cd;
41
+ this.router = router;
42
+ this.activatedRoute = activatedRoute;
43
+ }
44
+ ngOnInit() {
45
+ this.activatedRoute?.queryParams.subscribe(params => {
46
+ this.dataUser = params;
47
+ // Re-check date after params load
48
+ this.initializeFilters();
49
+ });
50
+ if ("user-info" in localStorage) {
51
+ const userData = JSON.parse(localStorage.getItem("user-info") || "{}");
52
+ this.users = userData;
53
+ }
54
+ }
55
+ initializeFilters() {
56
+ const clientFromRoute = this.dataUser?.client;
57
+ const clientFromHeader = localStorage.getItem("header-filters")
58
+ ? JSON.parse(localStorage.getItem("header-filters") || "{}").client
59
+ : null;
60
+ const clientFromUser = this.users?.clientId;
61
+ const headerFilters = localStorage.getItem("header-filters")
62
+ ? JSON.parse(localStorage.getItem("header-filters") || "{}")
63
+ : {};
64
+ this.headerFilters = headerFilters;
65
+ // Determine final client ID
66
+ const finalClient = clientFromRoute ?? clientFromHeader ?? clientFromUser;
67
+ this.selectedFilters.client = finalClient;
68
+ this.selectedFilters.clients = finalClient ? [finalClient] : [];
69
+ this.selectedFilters.clientName = headerFilters.clientName || "";
70
+ this.selectedFilters.store = this.dataUser?.storeId ?? headerFilters.store ?? "";
71
+ this.selectedFilters.storeName = headerFilters.storeName || "";
72
+ this.selectedFilters.group = headerFilters.group;
73
+ this.selectedFilters.location = headerFilters.location;
74
+ this.selectedFilters.country = headerFilters.country;
75
+ this.selectedFilters.stores = headerFilters.stores ?? "";
76
+ this.selectedFilters.zoneName = headerFilters.zoneName ?? "";
77
+ // ✅ Handle query param date if present
78
+ if (this.dataUser?.date) {
79
+ const date = this.dataUser.date;
80
+ this.selectedFilters.date = {
81
+ startDate: date,
82
+ endDate: date,
83
+ };
84
+ this.selectedDateRange = {
85
+ startDate: this.dayjs(date, "YYYY-MM-DD").format("DD-MM-YYYY"),
86
+ endDate: this.dayjs(date, "YYYY-MM-DD").format("DD-MM-YYYY"),
87
+ };
88
+ }
89
+ else if (headerFilters?.date?.startDate && headerFilters?.date?.endDate) {
90
+ this.selectedFilters.date = headerFilters.date;
91
+ this.selectedDateRange = {
92
+ startDate: this.dayjs(headerFilters.date.endDate, "YYYY-MM-DD").format("DD-MM-YYYY"),
93
+ endDate: this.dayjs(headerFilters.date.endDate, "YYYY-MM-DD").format("DD-MM-YYYY"),
94
+ };
95
+ }
96
+ else {
97
+ // Default to yesterday
98
+ const yesterday = this.dayjs().subtract(1, "days");
99
+ const formattedDate = {
100
+ startDate: yesterday.format("YYYY-MM-DD"),
101
+ endDate: yesterday.format("YYYY-MM-DD"),
102
+ };
103
+ this.selectedFilters.date = formattedDate;
104
+ this.selectedDateRange = {
105
+ startDate: yesterday.format("DD-MM-YYYY"),
106
+ endDate: yesterday.format("DD-MM-YYYY"),
107
+ };
108
+ }
109
+ // Save only if valid
110
+ if (finalClient && this.selectedFilters.date?.startDate && this.selectedFilters.store) {
111
+ localStorage.setItem("header-filters", JSON.stringify(this.selectedFilters));
112
+ }
113
+ this.gs.dataRangeValue.next(this.selectedFilters);
114
+ }
115
+ onClientSelect(event) {
116
+ this.selectedClient = event;
117
+ }
118
+ onStartDateChange(event) {
119
+ if (this.dayjs(event.startDate).isValid()) {
120
+ this.isCustomDate = (m) => {
121
+ const isValidDate = m > this.dayjs() || m > this.dayjs(event.startDate.add(90, 'days'));
122
+ return isValidDate ? 'invalid-date' : false;
123
+ };
124
+ }
125
+ }
126
+ datechange(event) {
127
+ if (event && event.startDate && event.endDate) {
128
+ if (this.dayjs(event.startDate).isValid() &&
129
+ this.dayjs(event.endDate).isValid()) {
130
+ this.selectedDateRange.startDate = event.endDate;
131
+ this.selectedDateRange.endDate = event.endDate;
132
+ var datetime = {
133
+ startDate: this.dayjs(event.endDate, "DD-MM-YYYY").format("YYYY-MM-DD"),
134
+ endDate: this.dayjs(event.endDate, "DD-MM-YYYY").format("YYYY-MM-DD"),
135
+ };
136
+ this.selectedFilters.date = datetime;
137
+ }
138
+ }
139
+ else {
140
+ const headerFilters = JSON.parse(localStorage.getItem("header-filters") || "{}");
141
+ this.selectedFilters.date = headerFilters.date;
142
+ }
143
+ const clientId = this.users?.clientId ?? this.dataUser?.client ?? this.selectedFilters.client;
144
+ this.selectedFilters.client = clientId;
145
+ this.selectedFilters.clients = clientId ? [clientId] : [this.selectedFilters.client];
146
+ this.selectedFilters.date = this.selectedFilters.date;
147
+ this.selectedFilters.storeName = this.selectedFilters.storeName || '';
148
+ this.gs.dataRangeValue.next(this.selectedFilters);
149
+ localStorage.setItem("header-filters", JSON.stringify(this.selectedFilters));
150
+ this.cd.detectChanges();
151
+ }
152
+ Apply() {
153
+ const headerFilters = JSON.parse(localStorage.getItem("header-filters") || "{}");
154
+ this.selectedFilters = headerFilters;
155
+ this.selectedFilters.store = this.selectedClient.storeId;
156
+ this.gs.dataRangeValue.next(this.selectedFilters);
157
+ localStorage.setItem('header-filters', JSON.stringify(this.selectedFilters));
158
+ }
159
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SingleStoredateComponent, deps: [{ token: i1.AuthService }, { token: i2.GlobalStateService }, { token: i0.ChangeDetectorRef }, { token: i3.Router }, { token: i3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
160
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SingleStoredateComponent, selector: "lib-single-storedate", ngImport: i0, template: "\r\n<div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14\" style=\"width:165px !important\" type=\"text\" matInput ngxDaterangepickerMd [singleDatePicker]=\"true\" [drops]=\"'down'\"\r\n [opens]=\"'left'\" [alwaysShowCalendars]=\"false\"\r\n [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"true\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\" (startDateChanged)=\"onStartDateChange($event)\" [isCustomDate]=\"isCustomDate\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n (datesUpdated)=\"datechange($event)\" name=\"daterange\" [readonly]=\"true\" [autoApply]=\"true\"/>\r\n</div>\r\n\r\n<!-- <div class=\"btn btn-primary ms-2\" (click)=\"Apply()\">Apply</div> -->", styles: [".daterangepicker{display:block!important;top:153.85px!important;left:900px!important;right:0}.form-control{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600;line-height:20px;text-transform:capitalize}::ng-deep .applyBtn{display:none!important}:host::ng-deep .md-drppicker .btn{line-height:10px!important}:host::ng-deep .daterangepicker-input+.ngx-daterangepicker-material .applyBtn{display:none}:host::ng-deep .md-drppicker.drops-down-right.ltr.double.show-ranges.shown{top:65px!important;left:-470px!important;height:365px!important}:host::ng-deep .md-drppicker .btn{border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--White, #FFF)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize}:host::ng-deep .md-drppicker .ranges ul li button{padding:12px 16px;width:160px;color:var(--Gray-700, #344054);font-size:14px;font-weight:400;line-height:20px;background:none;border:none;text-align:left;cursor:pointer}:host::ng-deep .md-drppicker td.active,:host::ng-deep .md-drppicker td.active:hover{background-color:#029cf4!important;border-radius:20px!important;color:var(--White, #FFF)!important;text-align:center!important;font-size:14px!important;font-weight:500!important;line-height:20px}:host::ng-deep .md-drppicker.ltr .ranges{float:left;margin-top:10px!important}:host::ng-deep .md-drppicker td.in-range{background:var(--Primary-50, #EAF8FF)}:host::ng-deep .md-drppicker .ranges ul li button.active{background:var(--Primary-50, #EAF8FF)!important;border-radius:8px!important;color:var(--Primary-700, #009BF3);font-size:14px!important;font-weight:500!important;line-height:20px!important}:host::ng-deep table th,:host::ng-deep table td{width:40px!important;height:40px!important;padding:10px 8px!important}:host::ng-deep .md-drppicker td.available.prev,:host::ng-deep .md-drppicker th.available.prev{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep .md-drppicker td.available.next,:host::ng-deep .md-drppicker th.available.next{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep table th{border-bottom:0px solid var(--Gray-200, #EAECF0)!important;background:transparent!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:16px!important;font-weight:500!important;line-height:24px}:host::ng-deep .md-drppicker .btn.btn-default{border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize;margin-right:10px!important}:host::ng-deep .md-drppicker td.available.invalid-date{text-decoration:line-through;pointer-events:none;color:#a9a9a9}:host::ng-deep .md-drppicker td.available.today:not(.invalid-date){text-decoration:unset;pointer-events:unset;color:unset}.wrapper{min-width:200px}.btn-primary{line-height:18px!important}\n"], dependencies: [{ kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.DaterangepickerDirective, selector: "input[ngxDaterangepickerMd]", inputs: ["minDate", "maxDate", "autoApply", "alwaysShowCalendars", "showCustomRangeLabel", "linkedCalendars", "dateLimit", "singleDatePicker", "showWeekNumbers", "showISOWeekNumbers", "showDropdowns", "isInvalidDate", "isCustomDate", "isTooltipDate", "showClearButton", "customRangeDirection", "ranges", "opens", "drops", "firstMonthDayClass", "lastMonthDayClass", "emptyWeekRowClass", "emptyWeekColumnClass", "firstDayOfNextMonthClass", "lastDayOfPreviousMonthClass", "keepCalendarOpeningWithRange", "showRangeLabelOnInput", "showCancel", "lockStartDate", "timePicker", "timePicker24Hour", "timePickerIncrement", "timePickerSeconds", "closeOnAutoApply", "endKeyHolder", "startKey", "locale", "endKey"], outputs: ["change", "rangeClicked", "datesUpdated", "startDateChanged", "endDateChanged", "clearClicked"] }] });
161
+ }
162
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SingleStoredateComponent, decorators: [{
163
+ type: Component,
164
+ args: [{ selector: 'lib-single-storedate', template: "\r\n<div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14\" style=\"width:165px !important\" type=\"text\" matInput ngxDaterangepickerMd [singleDatePicker]=\"true\" [drops]=\"'down'\"\r\n [opens]=\"'left'\" [alwaysShowCalendars]=\"false\"\r\n [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"true\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\" (startDateChanged)=\"onStartDateChange($event)\" [isCustomDate]=\"isCustomDate\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n (datesUpdated)=\"datechange($event)\" name=\"daterange\" [readonly]=\"true\" [autoApply]=\"true\"/>\r\n</div>\r\n\r\n<!-- <div class=\"btn btn-primary ms-2\" (click)=\"Apply()\">Apply</div> -->", styles: [".daterangepicker{display:block!important;top:153.85px!important;left:900px!important;right:0}.form-control{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600;line-height:20px;text-transform:capitalize}::ng-deep .applyBtn{display:none!important}:host::ng-deep .md-drppicker .btn{line-height:10px!important}:host::ng-deep .daterangepicker-input+.ngx-daterangepicker-material .applyBtn{display:none}:host::ng-deep .md-drppicker.drops-down-right.ltr.double.show-ranges.shown{top:65px!important;left:-470px!important;height:365px!important}:host::ng-deep .md-drppicker .btn{border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--White, #FFF)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize}:host::ng-deep .md-drppicker .ranges ul li button{padding:12px 16px;width:160px;color:var(--Gray-700, #344054);font-size:14px;font-weight:400;line-height:20px;background:none;border:none;text-align:left;cursor:pointer}:host::ng-deep .md-drppicker td.active,:host::ng-deep .md-drppicker td.active:hover{background-color:#029cf4!important;border-radius:20px!important;color:var(--White, #FFF)!important;text-align:center!important;font-size:14px!important;font-weight:500!important;line-height:20px}:host::ng-deep .md-drppicker.ltr .ranges{float:left;margin-top:10px!important}:host::ng-deep .md-drppicker td.in-range{background:var(--Primary-50, #EAF8FF)}:host::ng-deep .md-drppicker .ranges ul li button.active{background:var(--Primary-50, #EAF8FF)!important;border-radius:8px!important;color:var(--Primary-700, #009BF3);font-size:14px!important;font-weight:500!important;line-height:20px!important}:host::ng-deep table th,:host::ng-deep table td{width:40px!important;height:40px!important;padding:10px 8px!important}:host::ng-deep .md-drppicker td.available.prev,:host::ng-deep .md-drppicker th.available.prev{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep .md-drppicker td.available.next,:host::ng-deep .md-drppicker th.available.next{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep table th{border-bottom:0px solid var(--Gray-200, #EAECF0)!important;background:transparent!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:16px!important;font-weight:500!important;line-height:24px}:host::ng-deep .md-drppicker .btn.btn-default{border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize;margin-right:10px!important}:host::ng-deep .md-drppicker td.available.invalid-date{text-decoration:line-through;pointer-events:none;color:#a9a9a9}:host::ng-deep .md-drppicker td.available.today:not(.invalid-date){text-decoration:unset;pointer-events:unset;color:unset}.wrapper{min-width:200px}.btn-primary{line-height:18px!important}\n"] }]
165
+ }], ctorParameters: () => [{ type: i1.AuthService }, { type: i2.GlobalStateService }, { type: i0.ChangeDetectorRef }, { type: i3.Router }, { type: i3.ActivatedRoute }] });
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLXN0b3JlZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9saWIvbW9kdWxlcy9sYXlvdXQvdG9vbGJhci9zaW5nbGUtc3RvcmVkYXRlL3NpbmdsZS1zdG9yZWRhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL21vZHVsZXMvbGF5b3V0L3Rvb2xiYXIvc2luZ2xlLXN0b3JlZGF0ZS9zaW5nbGUtc3RvcmVkYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUEyQyxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFRLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDM0IsT0FBTyxpQkFBaUIsQ0FBQzs7Ozs7OztBQVV6QixNQUFNLE9BQU8sd0JBQXdCO0lBc0JmO0lBQTBCO0lBQStCO0lBQTZCO0lBQXNCO0lBckJoSSxLQUFLLEdBQUcsS0FBSyxDQUFBO0lBQ2IsWUFBWSxHQUFHLENBQUMsQ0FBYyxFQUFFLEVBQUU7UUFDaEMsTUFBTSxXQUFXLEdBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0QyxPQUFPLFdBQVcsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDaEQsQ0FBQyxDQUFBO0lBQ0MsaUJBQWlCLEdBQVEsRUFBRSxDQUFDO0lBQzVCLFNBQVMsR0FBTyxFQUFFLENBQUE7SUFDbEIsY0FBYyxDQUFJO0lBQ2xCLGVBQWUsR0FBUTtRQUNyQixNQUFNLEVBQUUsSUFBSTtRQUNaLFVBQVUsRUFBQyxJQUFJO1FBQ2YsT0FBTyxFQUFFLEVBQUU7UUFDWCxLQUFLLEVBQUUsSUFBSTtRQUNYLE1BQU0sRUFBRSxFQUFF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QyxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbEQsWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7d0dBcktZLHdCQUF3Qjs0RkFBeEIsd0JBQXdCLDREQ1pyQyx3aURBZ0J3RTs7NEZESjNELHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDRSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICBkYXlqcyBmcm9tICdkYXlqcyc7XHJcbmltcG9ydCAnZGF5anMvbG9jYWxlL2VuJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1zaW5nbGUtc3RvcmVkYXRlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2luZ2xlLXN0b3JlZGF0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3NpbmdsZS1zdG9yZWRhdGUuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaW5nbGVTdG9yZWRhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGRheWpzID0gZGF5anNcclxuICBpc0N1c3RvbURhdGUgPSAobTogZGF5anMuRGF5anMpID0+IHtcclxuICAgIGNvbnN0IGlzVmFsaWREYXRlID0gIG0gPiB0aGlzLmRheWpzKCk7ICAgIFxyXG4gICAgcmV0dXJuIGlzVmFsaWREYXRlID8gJ2ludmFsaWQtZGF0ZScgOiBmYWxzZTtcclxufVxyXG4gIHNlbGVjdGVkRGF0ZVJhbmdlOiBhbnkgPSB7fTtcclxuICBzdG9yZUxpc3Q6YW55ID0gW11cclxuICBzZWxlY3RlZENsaWVudDphbnlcclxuICBzZWxlY3RlZEZpbHRlcnM6IGFueSA9IHtcclxuICAgIGNsaWVudDogbnVsbCxcclxuICAgIGNsaWVudE5hbWU6bnVsbCxcclxuICAgIGNsaWVudHM6IFtdLFxyXG4gICAgc3RvcmU6IG51bGwsXHJcbiAgICBzdG9yZXM6IFtdLFxyXG4gICAgZGF0ZTogbnVsbCxcclxuICB9O1xyXG4gIFVSTDogYW55O1xyXG4gIGJhc2V1cmw6YW55O1xyXG4gIHVzZXJzOmFueTtcclxuICBoZWFkZXJGaWx0ZXJzOmFueTtcclxuICBkYXRhVXNlcjphbnk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhdXRoOkF1dGhTZXJ2aWNlLCBwcml2YXRlIGdzOkdsb2JhbFN0YXRlU2VydmljZSwgcHJpdmF0ZSBjZDpDaGFuZ2VEZXRlY3RvclJlZixwcml2YXRlIHJvdXRlcjpSb3V0ZXIscHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTpBY3RpdmF0ZWRSb3V0ZSl7XHJcbiAgfVxyXG5uZ09uSW5pdCgpOiB2b2lkIHtcclxuICB0aGlzLmFjdGl2YXRlZFJvdXRlPy5xdWVyeVBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcclxuICAgIHRoaXMuZGF0YVVzZXIgPSBwYXJhbXM7XHJcblxyXG4gICAgLy8gUmUtY2hlY2sgZGF0ZSBhZnRlciBwYXJhbXMgbG9hZFxyXG4gICAgdGhpcy5pbml0aWFsaXplRmlsdGVycygpO1xyXG4gIH0pO1xyXG5cclxuICBpZiAoXCJ1c2VyLWluZm9cIiBpbiBsb2NhbFN0b3JhZ2UpIHtcclxuICAgIGNvbnN0IHVzZXJEYXRhOiBhbnkgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwidXNlci1pbmZvXCIpIHx8IFwie31cIik7XHJcbiAgICB0aGlzLnVzZXJzID0gdXNlckRhdGE7XHJcbiAgfVxyXG59XHJcblxyXG5pbml0aWFsaXplRmlsdGVycygpOiB2b2lkIHtcclxuICBjb25zdCBjbGllbnRGcm9tUm91dGUgPSB0aGlzLmRhdGFVc2VyPy5jbGllbnQ7XHJcbiAgY29uc3QgY2xpZW50RnJvbUhlYWRlciA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIilcclxuICAgID8gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImhlYWRlci1maWx0ZXJzXCIpIHx8IFwie31cIikuY2xpZW50XHJcbiAgICA6IG51bGw7XHJcbiAgY29uc3QgY2xpZW50RnJvbVVzZXIgPSB0aGlzLnVzZXJzPy5jbGllbnRJZDtcclxuXHJcbiAgY29uc3QgaGVhZGVyRmlsdGVyczogYW55ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJoZWFkZXItZmlsdGVyc1wiKVxyXG4gICAgPyBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIikgfHwgXCJ7fVwiKVxyXG4gICAgOiB7fTtcclxuXHJcbiAgdGhpcy5oZWFkZXJGaWx0ZXJzID0gaGVhZGVyRmlsdGVycztcclxuXHJcbiAgLy8gRGV0ZXJtaW5lIGZpbmFsIGNsaWVudCBJRFxyXG4gIGNvbnN0IGZpbmFsQ2xpZW50ID0gY2xpZW50RnJvbVJvdXRlID8/IGNsaWVudEZyb21IZWFkZXIgPz8gY2xpZW50RnJvbVVzZXI7XHJcblxyXG4gIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmNsaWVudCA9IGZpbmFsQ2xpZW50O1xyXG4gIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmNsaWVudHMgPSBmaW5hbENsaWVudCA/IFtmaW5hbENsaWVudF0gOiBbXTtcclxuICB0aGlzLnNlbGVjdGVkRmlsdGVycy5jbGllbnROYW1lID0gaGVhZGVyRmlsdGVycy5jbGllbnROYW1lIHx8IFwiXCI7XHJcbiAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuc3RvcmUgPSB0aGlzLmRhdGFVc2VyPy5zdG9yZUlkID8/IGhlYWRlckZpbHRlcnMuc3RvcmUgPz8gXCJcIjtcclxuICB0aGlzLnNlbGVjdGVkRmlsdGVycy5zdG9yZU5hbWUgPSBoZWFkZXJGaWx0ZXJzLnN0b3JlTmFtZSB8fCBcIlwiO1xyXG4gICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuZ3JvdXAgPSBoZWFkZXJGaWx0ZXJzLmdyb3VwO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5sb2NhdGlvbiA9IGhlYWRlckZpbHRlcnMubG9jYXRpb247XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmNvdW50cnkgPSBoZWFkZXJGaWx0ZXJzLmNvdW50cnk7XHJcbiAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuc3RvcmVzID0gaGVhZGVyRmlsdGVycy5zdG9yZXMgPz8gXCJcIjtcclxuICB0aGlzLnNlbGVjdGVkRmlsdGVycy56b25lTmFtZSA9IGhlYWRlckZpbHRlcnMuem9uZU5hbWUgPz8gXCJcIjtcclxuICAvLyDinIUgSGFuZGxlIHF1ZXJ5IHBhcmFtIGRhdGUgaWYgcHJlc2VudFxyXG4gIGlmICh0aGlzLmRhdGFVc2VyPy5kYXRlKSB7XHJcbiAgICBjb25zdCBkYXRlID0gdGhpcy5kYXRhVXNlci5kYXRlO1xyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmRhdGUgPSB7XHJcbiAgICAgIHN0YXJ0RGF0ZTogZGF0ZSxcclxuICAgICAgZW5kRGF0ZTogZGF0ZSxcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZSA9IHtcclxuICAgICAgc3RhcnREYXRlOiB0aGlzLmRheWpzKGRhdGUsIFwiWVlZWS1NTS1ERFwiKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpLFxyXG4gICAgICBlbmREYXRlOiB0aGlzLmRheWpzKGRhdGUsIFwiWVlZWS1NTS1ERFwiKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpLFxyXG4gICAgfTtcclxuXHJcbiAgfSBlbHNlIGlmIChoZWFkZXJGaWx0ZXJzPy5kYXRlPy5zdGFydERhdGUgJiYgaGVhZGVyRmlsdGVycz8uZGF0ZT8uZW5kRGF0ZSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuZGF0ZSA9IGhlYWRlckZpbHRlcnMuZGF0ZTtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UgPSB7XHJcbiAgICAgIHN0YXJ0RGF0ZTogdGhpcy5kYXlqcyhoZWFkZXJGaWx0ZXJzLmRhdGUuZW5kRGF0ZSwgXCJZWVlZLU1NLUREXCIpLmZvcm1hdChcIkRELU1NLVlZWVlcIiksXHJcbiAgICAgIGVuZERhdGU6IHRoaXMuZGF5anMoaGVhZGVyRmlsdGVycy5kYXRlLmVuZERhdGUsIFwiWVlZWS1NTS1ERFwiKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpLFxyXG4gICAgfTtcclxuXHJcbiAgfSBlbHNlIHtcclxuICAgIC8vIERlZmF1bHQgdG8geWVzdGVyZGF5XHJcbiAgICBjb25zdCB5ZXN0ZXJkYXkgPSB0aGlzLmRheWpzKCkuc3VidHJhY3QoMSwgXCJkYXlzXCIpO1xyXG4gICAgY29uc3QgZm9ybWF0dGVkRGF0ZSA9IHtcclxuICAgICAgc3RhcnREYXRlOiB5ZXN0ZXJkYXkuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKSxcclxuICAgICAgZW5kRGF0ZTogeWVzdGVyZGF5LmZvcm1hdChcIllZWVktTU0tRERcIiksXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmRhdGUgPSBmb3JtYXR0ZWREYXRlO1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZSA9IHtcclxuICAgICAgc3RhcnREYXRlOiB5ZXN0ZXJkYXkuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSxcclxuICAgICAgZW5kRGF0ZTogeWVzdGVyZGF5LmZvcm1hdChcIkRELU1NLVlZWVlcIiksXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLy8gU2F2ZSBvbmx5IGlmIHZhbGlkXHJcbiAgaWYgKGZpbmFsQ2xpZW50ICYmIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmRhdGU/LnN0YXJ0RGF0ZSAmJiB0aGlzLnNlbGVjdGVkRmlsdGVycy5zdG9yZSkge1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJoZWFkZXItZmlsdGVyc1wiLCBKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkRmlsdGVycykpO1xyXG4gIH1cclxuXHJcbiAgdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZS5uZXh0KHRoaXMuc2VsZWN0ZWRGaWx0ZXJzKTtcclxufVxyXG5cclxuXHJcbiAgb25DbGllbnRTZWxlY3QoZXZlbnQ6YW55KXtcclxuICAgIHRoaXMuc2VsZWN0ZWRDbGllbnQgPSBldmVudFxyXG4gIH1cclxuXHJcblxyXG4gIG9uU3RhcnREYXRlQ2hhbmdlKGV2ZW50OmFueSl7XHJcbiAgICBpZih0aGlzLmRheWpzKGV2ZW50LnN0YXJ0RGF0ZSkuaXNWYWxpZCgpKXtcclxuICAgICAgdGhpcy5pc0N1c3RvbURhdGUgPSAobTogZGF5anMuRGF5anMpID0+IHsgICAgICAgIFxyXG4gICAgICBjb25zdCBpc1ZhbGlkRGF0ZSA9IG0gPiB0aGlzLmRheWpzKCkgfHwgbSA+IHRoaXMuZGF5anMoZXZlbnQuc3RhcnREYXRlLmFkZCg5MCwgJ2RheXMnKSkgO1xyXG4gICAgICByZXR1cm4gaXNWYWxpZERhdGUgPyAnaW52YWxpZC1kYXRlJyA6IGZhbHNlO1xyXG4gIH1cclxufVxyXG59XHJcbmRhdGVjaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gIGlmIChldmVudCAmJiBldmVudC5zdGFydERhdGUgJiYgZXZlbnQuZW5kRGF0ZSkge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmRheWpzKGV2ZW50LnN0YXJ0RGF0ZSkuaXNWYWxpZCgpICYmXHJcbiAgICAgIHRoaXMuZGF5anMoZXZlbnQuZW5kRGF0ZSkuaXNWYWxpZCgpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZS5zdGFydERhdGUgPSBldmVudC5lbmREYXRlXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UuZW5kRGF0ZSA9IGV2ZW50LmVuZERhdGVcclxuICAgICAgdmFyIGRhdGV0aW1lID0ge1xyXG4gICAgICAgIHN0YXJ0RGF0ZTogdGhpcy5kYXlqcyhldmVudC5lbmREYXRlLFwiREQtTU0tWVlZWVwiKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpLFxyXG4gICAgICAgIGVuZERhdGU6IHRoaXMuZGF5anMoZXZlbnQuZW5kRGF0ZSxcIkRELU1NLVlZWVlcIikuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKSxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuZGF0ZSA9IGRhdGV0aW1lO1xyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBjb25zdCBoZWFkZXJGaWx0ZXJzOiBhbnkgPSBKU09OLnBhcnNlKFxyXG4gICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImhlYWRlci1maWx0ZXJzXCIpIHx8IFwie31cIlxyXG4gICAgKTsgIFxyXG4gICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuZGF0ZSA9IGhlYWRlckZpbHRlcnMuZGF0ZTtcclxuICB9XHJcblxyXG5jb25zdCBjbGllbnRJZCA9IHRoaXMudXNlcnM/LmNsaWVudElkID8/IHRoaXMuZGF0YVVzZXI/LmNsaWVudCA/PyB0aGlzLnNlbGVjdGVkRmlsdGVycy5jbGllbnQ7XHJcbnRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmNsaWVudCA9IGNsaWVudElkO1xyXG50aGlzLnNlbGVjdGVkRmlsdGVycy5jbGllbnRzID0gY2xpZW50SWQgPyBbY2xpZW50SWRdIDogW3RoaXMuc2VsZWN0ZWRGaWx0ZXJzLmNsaWVudF07XHJcbnRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmRhdGUgPSB0aGlzLnNlbGVjdGVkRmlsdGVycy5kYXRlO1xyXG50aGlzLnNlbGVjdGVkRmlsdGVycy5zdG9yZU5hbWUgPSB0aGlzLnNlbGVjdGVkRmlsdGVycy5zdG9yZU5hbWUgfHwgJyc7XHJcblxyXG4gIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWUubmV4dCh0aGlzLnNlbGVjdGVkRmlsdGVycyk7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcclxuICAgIFwiaGVhZGVyLWZpbHRlcnNcIixcclxuICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuc2VsZWN0ZWRGaWx0ZXJzKVxyXG4gICk7XHJcbnRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gXHJcbn1cclxuQXBwbHkoKSB7XHJcbiAgY29uc3QgaGVhZGVyRmlsdGVyczogYW55ID0gSlNPTi5wYXJzZShcclxuICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIikgfHwgXCJ7fVwiXHJcbiAgKTtcclxuICB0aGlzLnNlbGVjdGVkRmlsdGVycyA9IGhlYWRlckZpbHRlcnM7XHJcbiAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuc3RvcmUgPSB0aGlzLnNlbGVjdGVkQ2xpZW50LnN0b3JlSWQ7XHJcbiAgdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZS5uZXh0KHRoaXMuc2VsZWN0ZWRGaWx0ZXJzKTtcclxuICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnaGVhZGVyLWZpbHRlcnMnLCBKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkRmlsdGVycykpO1xyXG59XHJcbn1cclxuIiwiXHJcbjxkaXYgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSBteS0xXCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGUgbXMtM1wiPlxyXG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgZD1cIk0xMy4zMzMzIDEuNjY2NjNWNC45OTk5Nk02LjY2NjY3IDEuNjY2NjNWNC45OTk5Nk0yLjUgOC4zMzMyOUgxNy41TTQuMTY2NjcgMy4zMzMyOUgxNS44MzMzQzE2Ljc1MzggMy4zMzMyOSAxNy41IDQuMDc5NDggMTcuNSA0Ljk5OTk2VjE2LjY2NjZDMTcuNSAxNy41ODcxIDE2Ljc1MzggMTguMzMzMyAxNS44MzMzIDE4LjMzMzNINC4xNjY2N0MzLjI0NjE5IDE4LjMzMzMgMi41IDE3LjU4NzEgMi41IDE2LjY2NjZWNC45OTk5NkMyLjUgNC4wNzk0OCAzLjI0NjE5IDMuMzMzMjkgNC4xNjY2NyAzLjMzMzI5WlwiXHJcbiAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgPC9zdmc+XHJcbiAgICA8L3NwYW4+XHJcbiAgICA8aW5wdXQgY2xhc3M9XCJmeC1kYXRlLXJhbmdlIGZvcm0tY29udHJvbCBwcy0xNFwiIHN0eWxlPVwid2lkdGg6MTY1cHggIWltcG9ydGFudFwiIHR5cGU9XCJ0ZXh0XCIgbWF0SW5wdXQgbmd4RGF0ZXJhbmdlcGlja2VyTWQgW3NpbmdsZURhdGVQaWNrZXJdPVwidHJ1ZVwiIFtkcm9wc109XCInZG93bidcIlxyXG4gICAgW29wZW5zXT1cIidsZWZ0J1wiIFthbHdheXNTaG93Q2FsZW5kYXJzXT1cImZhbHNlXCJcclxuICAgIFtrZWVwQ2FsZW5kYXJPcGVuaW5nV2l0aFJhbmdlXT1cInRydWVcIiBbc2hvd0NhbmNlbF09XCJ0cnVlXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZERhdGVSYW5nZVwiICAoc3RhcnREYXRlQ2hhbmdlZCk9XCJvblN0YXJ0RGF0ZUNoYW5nZSgkZXZlbnQpXCIgIFtpc0N1c3RvbURhdGVdPVwiaXNDdXN0b21EYXRlXCJcclxuICAgIFtsb2NhbGVdPVwieyBmb3JtYXQ6ICdERC1NTS1ZWVlZJywgZmlyc3REYXk6IDEsIG1vbnRoTmFtZXM6IFsnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICdBcHJpbCcsICdNYXknLCAnSnVuZScsICdKdWx5JywgJ0F1Z3VzdCcsICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsICdEZWNlbWJlciddIH1cIlxyXG4gICAgKGRhdGVzVXBkYXRlZCk9XCJkYXRlY2hhbmdlKCRldmVudClcIiBuYW1lPVwiZGF0ZXJhbmdlXCIgW3JlYWRvbmx5XT1cInRydWVcIiAgW2F1dG9BcHBseV09XCJ0cnVlXCIvPlxyXG48L2Rpdj5cclxuXHJcbjwhLS0gPGRpdiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtcy0yXCIgKGNsaWNrKT1cIkFwcGx5KClcIj5BcHBseTwvZGl2PiAtLT4iXX0=