@resolveio/client-lib-core 0.0.1

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 (350) hide show
  1. package/esm2020/lib/account-manager.service.mjs +213 -0
  2. package/esm2020/lib/auth/auth-guard.service.mjs +137 -0
  3. package/esm2020/lib/auth/auth-permissions.service.mjs +24 -0
  4. package/esm2020/lib/auth/auth.service.mjs +241 -0
  5. package/esm2020/lib/auth/auth365.component.mjs +44 -0
  6. package/esm2020/lib/auth/can-deactivate-guard.service.mjs +13 -0
  7. package/esm2020/lib/auth/enroll.component.mjs +81 -0
  8. package/esm2020/lib/auth/forgot-password.component.mjs +82 -0
  9. package/esm2020/lib/core.component.mjs +488 -0
  10. package/esm2020/lib/core.module.mjs +179 -0
  11. package/esm2020/lib/core.service.mjs +96 -0
  12. package/esm2020/lib/directive/focus.mjs +22 -0
  13. package/esm2020/lib/directive/scroll.mjs +55 -0
  14. package/esm2020/lib/home/about-us.component.mjs +34 -0
  15. package/esm2020/lib/home/contact-us.component.mjs +57 -0
  16. package/esm2020/lib/home/demo.component.mjs +59 -0
  17. package/esm2020/lib/home/home.component.mjs +105 -0
  18. package/esm2020/lib/home/home.module.mjs +50 -0
  19. package/esm2020/lib/logger/logger.component.mjs +221 -0
  20. package/esm2020/lib/models/app-status.model.mjs +2 -0
  21. package/esm2020/lib/models/collection-document.model.mjs +2 -0
  22. package/esm2020/lib/models/cron-job.model.mjs +2 -0
  23. package/esm2020/lib/models/dialog.model.mjs +2 -0
  24. package/esm2020/lib/models/file.model.mjs +2 -0
  25. package/esm2020/lib/models/log-method-latency.model.mjs +2 -0
  26. package/esm2020/lib/models/navbar-main-tab.model.mjs +2 -0
  27. package/esm2020/lib/models/pagination.model.mjs +2 -0
  28. package/esm2020/lib/models/permission.model.mjs +2 -0
  29. package/esm2020/lib/models/select-data-label.model.mjs +2 -0
  30. package/esm2020/lib/models/subscription.model.mjs +2 -0
  31. package/esm2020/lib/models/support-ticket.model.mjs +2 -0
  32. package/esm2020/lib/models/user-group.model.mjs +2 -0
  33. package/esm2020/lib/models/user.model.mjs +2 -0
  34. package/esm2020/lib/offline-db.mjs +519 -0
  35. package/esm2020/lib/offline-manager.service.mjs +107 -0
  36. package/esm2020/lib/pipes/domsanitizor.pipe.mjs +28 -0
  37. package/esm2020/lib/pipes/filter.pipe.mjs +36 -0
  38. package/esm2020/lib/pipes/json-parse.pipe.mjs +29 -0
  39. package/esm2020/lib/pipes/minus-currency.pipe.mjs +16 -0
  40. package/esm2020/lib/pipes/phone.pipe.mjs +47 -0
  41. package/esm2020/lib/pipes/pipe.module.mjs +54 -0
  42. package/esm2020/lib/pipes/reverse-list.pipe.mjs +17 -0
  43. package/esm2020/lib/pipes/titlecase.pipe.mjs +22 -0
  44. package/esm2020/lib/resolveio-class.mjs +41 -0
  45. package/esm2020/lib/shared/shared.module.mjs +91 -0
  46. package/esm2020/lib/socket-manager.service.mjs +360 -0
  47. package/esm2020/lib/socket.service.mjs +129 -0
  48. package/esm2020/lib/standard-pages/contactus/contactus.component.mjs +45 -0
  49. package/esm2020/lib/standard-pages/faq/faq.component.mjs +45 -0
  50. package/esm2020/lib/standard-pages/features/features.component.mjs +23 -0
  51. package/esm2020/lib/standard-pages/home/home.component.mjs +38 -0
  52. package/esm2020/lib/standard-pages/howitwork/howitwork.component.mjs +23 -0
  53. package/esm2020/lib/standard-pages/loginsignup/loginsignup.component.mjs +23 -0
  54. package/esm2020/lib/standard-pages/pricing/pricing.component.mjs +37 -0
  55. package/esm2020/lib/standard-pages/standard-pages.module.mjs +69 -0
  56. package/esm2020/lib/support-ticket/detail/support-ticket-detail.component.mjs +204 -0
  57. package/esm2020/lib/support-ticket/edit/support-ticket-edit.component.mjs +122 -0
  58. package/esm2020/lib/support-ticket/list/support-ticket-list.component.mjs +137 -0
  59. package/esm2020/lib/support-ticket/new/support-ticket-new.component.mjs +115 -0
  60. package/esm2020/lib/support-ticket/support-ticket.component.mjs +63 -0
  61. package/esm2020/lib/support-ticket/support-ticket.module.mjs +57 -0
  62. package/esm2020/lib/support-ticket/support-ticket.routing.mjs +20 -0
  63. package/esm2020/lib/support-ticket/support-ticket.service.mjs +17 -0
  64. package/esm2020/lib/token-manager.service.mjs +24 -0
  65. package/esm2020/lib/user-settings/settings/users-settings.component.mjs +312 -0
  66. package/esm2020/lib/user-settings/user-settings.component.mjs +57 -0
  67. package/esm2020/lib/user-settings/user-settings.module.mjs +58 -0
  68. package/esm2020/lib/user-settings/user-settings.permission.mjs +10 -0
  69. package/esm2020/lib/user-settings/user-settings.routing.mjs +14 -0
  70. package/esm2020/lib/user-settings/user-settings.service.mjs +17 -0
  71. package/esm2020/lib/util/action-name.helper.mjs +9 -0
  72. package/esm2020/lib/util/aws.service.mjs +79 -0
  73. package/esm2020/lib/util/common.helper.mjs +140 -0
  74. package/esm2020/lib/util/validation.service.mjs +177 -0
  75. package/esm2020/lib/util/window-resize.service.mjs +24 -0
  76. package/esm2020/lib/util/window.service.mjs +16 -0
  77. package/esm2020/lib/widgets/alert/alert.model.mjs +2 -0
  78. package/esm2020/lib/widgets/alert/alert.service.mjs +76 -0
  79. package/esm2020/lib/widgets/chartjs/chart.component.mjs +86 -0
  80. package/esm2020/lib/widgets/chartjs/chart.module.mjs +17 -0
  81. package/esm2020/lib/widgets/collapse-table/collapse-table.component.mjs +79 -0
  82. package/esm2020/lib/widgets/collapse-table/collapse-table.module.mjs +36 -0
  83. package/esm2020/lib/widgets/data-table/data-table.component.mjs +77 -0
  84. package/esm2020/lib/widgets/data-table/data-table.model.mjs +2 -0
  85. package/esm2020/lib/widgets/data-table/data-table.module.mjs +43 -0
  86. package/esm2020/lib/widgets/date-shortcut/date-shortcut.component.mjs +195 -0
  87. package/esm2020/lib/widgets/date-shortcut/date-shortcut.module.mjs +34 -0
  88. package/esm2020/lib/widgets/dialog/dialog.confirm.content.mjs +63 -0
  89. package/esm2020/lib/widgets/dialog/dialog.error.content.mjs +57 -0
  90. package/esm2020/lib/widgets/dialog/dialog.input.content.mjs +197 -0
  91. package/esm2020/lib/widgets/dialog/dialog.login.content.mjs +348 -0
  92. package/esm2020/lib/widgets/dialog/dialog.notify.content.mjs +57 -0
  93. package/esm2020/lib/widgets/dialog/dialog.register.content.mjs +330 -0
  94. package/esm2020/lib/widgets/dialog/dialog.select-data-labels.content.mjs +191 -0
  95. package/esm2020/lib/widgets/dialog/dialog.select-datetime.content.mjs +140 -0
  96. package/esm2020/lib/widgets/dialog/dialog.service.mjs +71 -0
  97. package/esm2020/lib/widgets/file/file-upload.component.mjs +440 -0
  98. package/esm2020/lib/widgets/file/file-upload.module.mjs +50 -0
  99. package/esm2020/lib/widgets/form-button/form-button.component.mjs +91 -0
  100. package/esm2020/lib/widgets/form-button/form-button.module.mjs +30 -0
  101. package/esm2020/lib/widgets/navbar-main/navbar-main.component.mjs +209 -0
  102. package/esm2020/lib/widgets/navbar-module/navbar-module.component.mjs +138 -0
  103. package/esm2020/lib/widgets/navbar-module/navbar-module.model.mjs +2 -0
  104. package/esm2020/lib/widgets/ngx-tour-ng-bootstrap/ng-bootstrap-tour.service.mjs +14 -0
  105. package/esm2020/lib/widgets/ngx-tour-ng-bootstrap/ng-bootstrap.module.mjs +34 -0
  106. package/esm2020/lib/widgets/ngx-tour-ng-bootstrap/step-option.interface.mjs +2 -0
  107. package/esm2020/lib/widgets/ngx-tour-ng-bootstrap/tour-anchor.directive.mjs +76 -0
  108. package/esm2020/lib/widgets/ngx-tour-ng-bootstrap/tour-step-template.component.mjs +70 -0
  109. package/esm2020/lib/widgets/ngx-tour-ng-bootstrap/tour-step-template.service.mjs +10 -0
  110. package/esm2020/lib/widgets/responsive-button-group/responsive-button-group.component.mjs +38 -0
  111. package/esm2020/lib/widgets/responsive-button-group/responsive-button-group.module.mjs +26 -0
  112. package/esm2020/lib/widgets/scheduler/scheduler.component.mjs +185 -0
  113. package/esm2020/lib/widgets/scheduler/scheduler.module.mjs +39 -0
  114. package/esm2020/lib/widgets/sort-table/sort-table-header.component.mjs +67 -0
  115. package/esm2020/lib/widgets/sort-table/sort-table-ngfor.component.mjs +48 -0
  116. package/esm2020/lib/widgets/sort-table/sort-table.directive.mjs +174 -0
  117. package/esm2020/lib/widgets/sort-table/sort-table.module.mjs +40 -0
  118. package/esm2020/lib/widgets/user-role/user-role.component.mjs +27 -0
  119. package/esm2020/lib/widgets/user-role/user-role.module.mjs +26 -0
  120. package/esm2020/public_api.mjs +109 -0
  121. package/esm2020/resolveio-client-lib-core.mjs +5 -0
  122. package/fesm2015/resolveio-client-lib-core.mjs +8856 -0
  123. package/fesm2015/resolveio-client-lib-core.mjs.map +1 -0
  124. package/fesm2020/resolveio-client-lib-core.mjs +8849 -0
  125. package/fesm2020/resolveio-client-lib-core.mjs.map +1 -0
  126. package/lib/account-manager.service.d.ts +42 -0
  127. package/lib/auth/auth-guard.service.d.ts +25 -0
  128. package/lib/auth/auth-permissions.service.d.ts +10 -0
  129. package/lib/auth/auth.service.d.ts +29 -0
  130. package/lib/auth/auth365.component.d.ts +20 -0
  131. package/lib/auth/can-deactivate-guard.service.d.ts +11 -0
  132. package/lib/auth/enroll.component.d.ts +28 -0
  133. package/lib/auth/forgot-password.component.d.ts +28 -0
  134. package/lib/core.component.d.ts +69 -0
  135. package/lib/core.module.d.ts +32 -0
  136. package/lib/core.service.d.ts +53 -0
  137. package/lib/directive/focus.d.ts +10 -0
  138. package/lib/directive/scroll.d.ts +20 -0
  139. package/lib/home/about-us.component.d.ts +15 -0
  140. package/lib/home/contact-us.component.d.ts +20 -0
  141. package/lib/home/demo.component.d.ts +25 -0
  142. package/lib/home/home.component.d.ts +33 -0
  143. package/lib/home/home.module.d.ts +13 -0
  144. package/lib/logger/logger.component.d.ts +37 -0
  145. package/lib/models/app-status.model.d.ts +4 -0
  146. package/lib/models/collection-document.model.d.ts +6 -0
  147. package/lib/models/cron-job.model.d.ts +13 -0
  148. package/lib/models/dialog.model.d.ts +18 -0
  149. package/lib/models/file.model.d.ts +9 -0
  150. package/lib/models/log-method-latency.model.d.ts +7 -0
  151. package/lib/models/navbar-main-tab.model.d.ts +14 -0
  152. package/lib/models/pagination.model.d.ts +17 -0
  153. package/lib/models/permission.model.d.ts +13 -0
  154. package/lib/models/select-data-label.model.d.ts +9 -0
  155. package/lib/models/subscription.model.d.ts +19 -0
  156. package/lib/models/support-ticket.model.d.ts +71 -0
  157. package/lib/models/user-group.model.d.ts +19 -0
  158. package/lib/models/user.model.d.ts +70 -0
  159. package/lib/offline-db.d.ts +28 -0
  160. package/lib/offline-manager.service.d.ts +23 -0
  161. package/lib/pipes/domsanitizor.pipe.d.ts +10 -0
  162. package/lib/pipes/filter.pipe.d.ts +12 -0
  163. package/lib/pipes/json-parse.pipe.d.ts +7 -0
  164. package/lib/pipes/minus-currency.pipe.d.ts +7 -0
  165. package/lib/pipes/phone.pipe.d.ts +7 -0
  166. package/lib/pipes/pipe.module.d.ts +13 -0
  167. package/lib/pipes/reverse-list.pipe.d.ts +6 -0
  168. package/lib/pipes/titlecase.pipe.d.ts +7 -0
  169. package/lib/resolveio-class.d.ts +26 -0
  170. package/lib/shared/shared.module.d.ts +16 -0
  171. package/lib/socket-manager.service.d.ts +33 -0
  172. package/lib/socket.service.d.ts +33 -0
  173. package/lib/standard-pages/contactus/contactus.component.d.ts +17 -0
  174. package/lib/standard-pages/faq/faq.component.d.ts +17 -0
  175. package/lib/standard-pages/features/features.component.d.ts +12 -0
  176. package/lib/standard-pages/home/home.component.d.ts +14 -0
  177. package/lib/standard-pages/howitwork/howitwork.component.d.ts +12 -0
  178. package/lib/standard-pages/loginsignup/loginsignup.component.d.ts +12 -0
  179. package/lib/standard-pages/pricing/pricing.component.d.ts +14 -0
  180. package/lib/standard-pages/standard-pages.module.d.ts +17 -0
  181. package/lib/support-ticket/detail/support-ticket-detail.component.d.ts +32 -0
  182. package/lib/support-ticket/edit/support-ticket-edit.component.d.ts +30 -0
  183. package/lib/support-ticket/list/support-ticket-list.component.d.ts +26 -0
  184. package/lib/support-ticket/new/support-ticket-new.component.d.ts +26 -0
  185. package/lib/support-ticket/support-ticket.component.d.ts +20 -0
  186. package/lib/support-ticket/support-ticket.module.d.ts +16 -0
  187. package/lib/support-ticket/support-ticket.routing.d.ts +3 -0
  188. package/lib/support-ticket/support-ticket.service.d.ts +9 -0
  189. package/lib/token-manager.service.d.ts +11 -0
  190. package/lib/user-settings/settings/users-settings.component.d.ts +57 -0
  191. package/lib/user-settings/user-settings.component.d.ts +20 -0
  192. package/lib/user-settings/user-settings.module.d.ts +15 -0
  193. package/lib/user-settings/user-settings.permission.d.ts +2 -0
  194. package/lib/user-settings/user-settings.routing.d.ts +3 -0
  195. package/lib/user-settings/user-settings.service.d.ts +9 -0
  196. package/lib/util/action-name.helper.d.ts +1 -0
  197. package/lib/util/aws.service.d.ts +16 -0
  198. package/lib/util/common.helper.d.ts +12 -0
  199. package/lib/util/validation.service.d.ts +85 -0
  200. package/lib/util/window-resize.service.d.ts +12 -0
  201. package/lib/util/window.service.d.ts +6 -0
  202. package/lib/widgets/alert/alert.model.d.ts +1 -0
  203. package/lib/widgets/alert/alert.service.d.ts +11 -0
  204. package/lib/widgets/chartjs/chart.component.d.ts +22 -0
  205. package/lib/widgets/chartjs/chart.module.d.ts +8 -0
  206. package/lib/widgets/collapse-table/collapse-table.component.d.ts +23 -0
  207. package/lib/widgets/collapse-table/collapse-table.module.d.ts +9 -0
  208. package/lib/widgets/data-table/data-table.component.d.ts +23 -0
  209. package/lib/widgets/data-table/data-table.model.d.ts +13 -0
  210. package/lib/widgets/data-table/data-table.module.d.ts +12 -0
  211. package/lib/widgets/date-shortcut/date-shortcut.component.d.ts +20 -0
  212. package/lib/widgets/date-shortcut/date-shortcut.module.d.ts +10 -0
  213. package/lib/widgets/dialog/dialog.confirm.content.d.ts +12 -0
  214. package/lib/widgets/dialog/dialog.error.content.d.ts +11 -0
  215. package/lib/widgets/dialog/dialog.input.content.d.ts +18 -0
  216. package/lib/widgets/dialog/dialog.login.content.d.ts +16 -0
  217. package/lib/widgets/dialog/dialog.notify.content.d.ts +11 -0
  218. package/lib/widgets/dialog/dialog.register.content.d.ts +13 -0
  219. package/lib/widgets/dialog/dialog.select-data-labels.content.d.ts +22 -0
  220. package/lib/widgets/dialog/dialog.select-datetime.content.d.ts +16 -0
  221. package/lib/widgets/dialog/dialog.service.d.ts +18 -0
  222. package/lib/widgets/file/file-upload.component.d.ts +49 -0
  223. package/lib/widgets/file/file-upload.module.d.ts +14 -0
  224. package/lib/widgets/form-button/form-button.component.d.ts +14 -0
  225. package/lib/widgets/form-button/form-button.module.d.ts +9 -0
  226. package/lib/widgets/navbar-main/navbar-main.component.d.ts +52 -0
  227. package/lib/widgets/navbar-module/navbar-module.component.d.ts +24 -0
  228. package/lib/widgets/navbar-module/navbar-module.model.d.ts +13 -0
  229. package/lib/widgets/ngx-tour-ng-bootstrap/ng-bootstrap-tour.service.d.ts +7 -0
  230. package/lib/widgets/ngx-tour-ng-bootstrap/ng-bootstrap.module.d.ts +17 -0
  231. package/lib/widgets/ngx-tour-ng-bootstrap/step-option.interface.d.ts +5 -0
  232. package/lib/widgets/ngx-tour-ng-bootstrap/tour-anchor.directive.d.ts +26 -0
  233. package/lib/widgets/ngx-tour-ng-bootstrap/tour-step-template.component.d.ts +20 -0
  234. package/lib/widgets/ngx-tour-ng-bootstrap/tour-step-template.service.d.ts +9 -0
  235. package/lib/widgets/responsive-button-group/responsive-button-group.component.d.ts +17 -0
  236. package/lib/widgets/responsive-button-group/responsive-button-group.module.d.ts +8 -0
  237. package/lib/widgets/scheduler/scheduler.component.d.ts +50 -0
  238. package/lib/widgets/scheduler/scheduler.module.d.ts +11 -0
  239. package/lib/widgets/sort-table/sort-table-header.component.d.ts +23 -0
  240. package/lib/widgets/sort-table/sort-table-ngfor.component.d.ts +17 -0
  241. package/lib/widgets/sort-table/sort-table.directive.d.ts +48 -0
  242. package/lib/widgets/sort-table/sort-table.module.d.ts +11 -0
  243. package/lib/widgets/user-role/user-role.component.d.ts +10 -0
  244. package/lib/widgets/user-role/user-role.module.d.ts +8 -0
  245. package/package.json +72 -0
  246. package/public_api.d.ts +105 -0
  247. package/resolveio-client-lib-core.d.ts +5 -0
  248. package/src/assets/css/font-awesome.css +2338 -0
  249. package/src/assets/css/home-page-layout.css +7221 -0
  250. package/src/assets/css/home-page-theme.css +1157 -0
  251. package/src/assets/css/leaflet.css +629 -0
  252. package/src/assets/css/owl.carousel.min.css +1 -0
  253. package/src/assets/css/owl.theme.min.css +1 -0
  254. package/src/assets/css/style.css +1283 -0
  255. package/src/assets/css/tablet.css +18 -0
  256. package/src/assets/css/toastr.css +192 -0
  257. package/src/assets/images/ResolveIO.png +0 -0
  258. package/src/assets/images/ResolveIO_white.png +0 -0
  259. package/src/assets/images/contactus/Contact_bnr.jpg +0 -0
  260. package/src/assets/images/contactus/cont-comp.png +0 -0
  261. package/src/assets/images/contactus/cont-mail.png +0 -0
  262. package/src/assets/images/contactus/cont-phone.png +0 -0
  263. package/src/assets/images/contactus/form-img.png +0 -0
  264. package/src/assets/images/contactus/user.png +0 -0
  265. package/src/assets/images/faq/Faq-form.png +0 -0
  266. package/src/assets/images/faq/clientlogo1.jpg +0 -0
  267. package/src/assets/images/faq/clientlogo2.jpg +0 -0
  268. package/src/assets/images/faq/clientlogo3.jpg +0 -0
  269. package/src/assets/images/faq/clientlogo4.jpg +0 -0
  270. package/src/assets/images/faq/clientlogo5.jpg +0 -0
  271. package/src/assets/images/faq/faq_banner copy.jpg +0 -0
  272. package/src/assets/images/faq/faq_banner.jpg +0 -0
  273. package/src/assets/images/faq/faqwomen.jpg +0 -0
  274. package/src/assets/images/faq/mail-input.png +0 -0
  275. package/src/assets/images/faq/user-input.png +0 -0
  276. package/src/assets/images/favicon-32x32.png +0 -0
  277. package/src/assets/images/features/future-bnr.jpg +0 -0
  278. package/src/assets/images/features/polygon.png +0 -0
  279. package/src/assets/images/home/banner-1.jpg +0 -0
  280. package/src/assets/images/home/booking.png +0 -0
  281. package/src/assets/images/home/client.jpg +0 -0
  282. package/src/assets/images/home/client2.jpg +0 -0
  283. package/src/assets/images/home/clientlogo1.jpg +0 -0
  284. package/src/assets/images/home/clientlogo2.jpg +0 -0
  285. package/src/assets/images/home/clientlogo3.jpg +0 -0
  286. package/src/assets/images/home/clientlogo4.jpg +0 -0
  287. package/src/assets/images/home/clientlogo5.jpg +0 -0
  288. package/src/assets/images/home/easy_invoicing.png +0 -0
  289. package/src/assets/images/home/inventory.png +0 -0
  290. package/src/assets/images/home/manage.png +0 -0
  291. package/src/assets/images/home/more.png +0 -0
  292. package/src/assets/images/home/order_management.png +0 -0
  293. package/src/assets/images/home/plan.png +0 -0
  294. package/src/assets/images/home-page/AjaxLoader.gif +0 -0
  295. package/src/assets/images/home-page/ResolveIO_white.png +0 -0
  296. package/src/assets/images/home-page/abt_thumb.png +0 -0
  297. package/src/assets/images/home-page/aero_icon_right_white.png +0 -0
  298. package/src/assets/images/home-page/arrow_btn.png +0 -0
  299. package/src/assets/images/home-page/banner_thumb.png +0 -0
  300. package/src/assets/images/home-page/blank.gif +0 -0
  301. package/src/assets/images/home-page/close_icon.png +0 -0
  302. package/src/assets/images/home-page/contact_bg.jpg +0 -0
  303. package/src/assets/images/home-page/email_icon.png +0 -0
  304. package/src/assets/images/home-page/fancybox_loading.gif +0 -0
  305. package/src/assets/images/home-page/fancybox_loading@2x.gif +0 -0
  306. package/src/assets/images/home-page/fancybox_overlay.png +0 -0
  307. package/src/assets/images/home-page/fancybox_sprite.png +0 -0
  308. package/src/assets/images/home-page/fancybox_sprite@2x.png +0 -0
  309. package/src/assets/images/home-page/header_center_after.png +0 -0
  310. package/src/assets/images/home-page/header_left_after.png +0 -0
  311. package/src/assets/images/home-page/home_banner_1.jpg +0 -0
  312. package/src/assets/images/home-page/logo.png +0 -0
  313. package/src/assets/images/home-page/logo_thumb_ace.png +0 -0
  314. package/src/assets/images/home-page/logo_thumb_acquire.png +0 -0
  315. package/src/assets/images/home-page/logo_thumb_chemtech.jpeg +0 -0
  316. package/src/assets/images/home-page/logo_thumb_cherokee.png +0 -0
  317. package/src/assets/images/home-page/logo_thumb_coilchem.png +0 -0
  318. package/src/assets/images/home-page/logo_thumb_dcs.png +0 -0
  319. package/src/assets/images/home-page/logo_thumb_integrity.png +0 -0
  320. package/src/assets/images/home-page/logo_thumb_intrepid.png +0 -0
  321. package/src/assets/images/home-page/logo_thumb_omt.png +0 -0
  322. package/src/assets/images/home-page/logo_thumb_quantum.png +0 -0
  323. package/src/assets/images/home-page/logo_thumb_smartchemical.png +0 -0
  324. package/src/assets/images/home-page/logo_thumb_terra.png +0 -0
  325. package/src/assets/images/home-page/logo_thumb_truechem.png +0 -0
  326. package/src/assets/images/home-page/password_icon.png +0 -0
  327. package/src/assets/images/home-page/phone_icon.png +0 -0
  328. package/src/assets/images/home-page/software_icon_1.png +0 -0
  329. package/src/assets/images/home-page/software_icon_2.png +0 -0
  330. package/src/assets/images/home-page/software_sec_bg.jpg +0 -0
  331. package/src/assets/images/home-page/software_thumb.png +0 -0
  332. package/src/assets/images/home-page/white_arrow_btn.png +0 -0
  333. package/src/assets/images/howitwork/add-booking.png +0 -0
  334. package/src/assets/images/howitwork/add-order.png +0 -0
  335. package/src/assets/images/howitwork/add-stuff.png +0 -0
  336. package/src/assets/images/howitwork/how_banner.jpg +0 -0
  337. package/src/assets/images/howitwork/howimg1.png +0 -0
  338. package/src/assets/images/howitwork/howimg2.png +0 -0
  339. package/src/assets/images/howitwork/step-check.png +0 -0
  340. package/src/assets/images/loginsignup/formimg.jpg +0 -0
  341. package/src/assets/images/loginsignup/login-logo.png +0 -0
  342. package/src/assets/images/owl.video.play.png +0 -0
  343. package/src/assets/images/pricing/Pricing_banner.jpg +0 -0
  344. package/src/assets/images/pricing/clientlogo1.jpg +0 -0
  345. package/src/assets/images/pricing/clientlogo2.jpg +0 -0
  346. package/src/assets/images/pricing/clientlogo3.jpg +0 -0
  347. package/src/assets/images/pricing/clientlogo4.jpg +0 -0
  348. package/src/assets/images/pricing/clientlogo5.jpg +0 -0
  349. package/src/assets/images/pricing/info-ico.png +0 -0
  350. package/src/assets/scss/toastr.scss +201 -0
@@ -0,0 +1,57 @@
1
+ import { Component, Input, HostListener } from '@angular/core';
2
+ import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@ng-bootstrap/ng-bootstrap";
5
+ // tslint:disable-next-line:component-class-suffix
6
+ export class DialogNotifyContent {
7
+ constructor(activeModal) {
8
+ this.activeModal = activeModal;
9
+ }
10
+ handleKeyboardEvent(event) {
11
+ if (event.keyCode === 13) {
12
+ this.activeModal.close();
13
+ }
14
+ }
15
+ }
16
+ DialogNotifyContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: DialogNotifyContent, deps: [{ token: i1.NgbActiveModal }], target: i0.ɵɵFactoryTarget.Component });
17
+ DialogNotifyContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: DialogNotifyContent, selector: "ng-component", inputs: { title: "title", body: "body" }, host: { listeners: { "document:keypress": "handleKeyboardEvent($event)" } }, ngImport: i0, template: `
18
+ <div class="modal-header">
19
+ <h4 class="modal-title"><i class="fa fa-info-circle" style="color: blue; font-size: 0.85em" aria-hidden="true"></i> {{ title }}</h4>
20
+ <button type="button" class="close" aria-label="Close" (click)="activeModal.dismiss('Cross click')">
21
+ <span aria-hidden="true">&times;</span>
22
+ </button>
23
+ </div>
24
+ <div class="modal-body">
25
+ <p>{{ body }}</p>
26
+ </div>
27
+ <div class="modal-footer">
28
+ <button type="button" class="btn btn-secondary" (click)="activeModal.close('Close click')">Ok</button>
29
+ </div>
30
+ `, isInline: true });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: DialogNotifyContent, decorators: [{
32
+ type: Component,
33
+ args: [{
34
+ template: `
35
+ <div class="modal-header">
36
+ <h4 class="modal-title"><i class="fa fa-info-circle" style="color: blue; font-size: 0.85em" aria-hidden="true"></i> {{ title }}</h4>
37
+ <button type="button" class="close" aria-label="Close" (click)="activeModal.dismiss('Cross click')">
38
+ <span aria-hidden="true">&times;</span>
39
+ </button>
40
+ </div>
41
+ <div class="modal-body">
42
+ <p>{{ body }}</p>
43
+ </div>
44
+ <div class="modal-footer">
45
+ <button type="button" class="btn btn-secondary" (click)="activeModal.close('Close click')">Ok</button>
46
+ </div>
47
+ `
48
+ }]
49
+ }], ctorParameters: function () { return [{ type: i1.NgbActiveModal }]; }, propDecorators: { title: [{
50
+ type: Input
51
+ }], body: [{
52
+ type: Input
53
+ }], handleKeyboardEvent: [{
54
+ type: HostListener,
55
+ args: ['document:keypress', ['$event']]
56
+ }] } });
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLm5vdGlmeS5jb250ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3dpZGdldHMvZGlhbG9nL2RpYWxvZy5ub3RpZnkuY29udGVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFrQjVELGtEQUFrRDtBQUNsRCxNQUFNLE9BQU8sbUJBQW1CO0lBVy9CLFlBQW1CLFdBQTJCO1FBQTNCLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtJQUFHLENBQUM7SUFOakQsbUJBQW1CLENBQUMsS0FBb0I7UUFDdkMsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLEVBQUUsRUFBRTtZQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3pCO0lBQ0YsQ0FBQzs7Z0hBVFUsbUJBQW1CO29HQUFuQixtQkFBbUIsMktBaEJyQjs7Ozs7Ozs7Ozs7OztHQWFSOzJGQUdVLG1CQUFtQjtrQkFqQi9CLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7O0dBYVI7aUJBQ0Y7cUdBR1MsS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFHTCxtQkFBbUI7c0JBRG5CLFlBQVk7dUJBQUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nYkFjdGl2ZU1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuXG5AQ29tcG9uZW50KHtcblx0dGVtcGxhdGU6IGBcblx0XHQ8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XG5cdFx0XHQ8aDQgY2xhc3M9XCJtb2RhbC10aXRsZVwiPjxpIGNsYXNzPVwiZmEgZmEtaW5mby1jaXJjbGVcIiBzdHlsZT1cImNvbG9yOiBibHVlOyBmb250LXNpemU6IDAuODVlbVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT4ge3sgdGl0bGUgfX08L2g0PlxuXHQgIFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNsb3NlXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cImFjdGl2ZU1vZGFsLmRpc21pc3MoJ0Nyb3NzIGNsaWNrJylcIj5cblx0XHRcdFx0PHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvc3Bhbj5cblx0ICBcdFx0PC9idXR0b24+XG5cdFx0PC9kaXY+XG5cdFx0PGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cblx0IFx0IFx0PHA+e3sgYm9keSB9fTwvcD5cblx0XHQ8L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XG5cdCAgXHRcdDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiAoY2xpY2spPVwiYWN0aXZlTW9kYWwuY2xvc2UoJ0Nsb3NlIGNsaWNrJylcIj5PazwvYnV0dG9uPlxuXHRcdDwvZGl2PlxuICBgXG59KVxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1jbGFzcy1zdWZmaXhcbmV4cG9ydCBjbGFzcyBEaWFsb2dOb3RpZnlDb250ZW50IHtcblx0QElucHV0KCkgdGl0bGU6IHN0cmluZztcblx0QElucHV0KCkgYm9keTogc3RyaW5nO1xuXG5cdEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleXByZXNzJywgWyckZXZlbnQnXSlcblx0XHRoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7IFxuXHRcdFx0aWYgKGV2ZW50LmtleUNvZGUgPT09IDEzKSB7XG5cdFx0XHRcdHRoaXMuYWN0aXZlTW9kYWwuY2xvc2UoKTtcblx0XHRcdH1cblx0XHR9XG5cblx0Y29uc3RydWN0b3IocHVibGljIGFjdGl2ZU1vZGFsOiBOZ2JBY3RpdmVNb2RhbCkge31cbn0iXX0=
@@ -0,0 +1,330 @@
1
+ import { Component } from '@angular/core';
2
+ import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
3
+ import { FormBuilder, Validators } from '@angular/forms';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@ng-bootstrap/ng-bootstrap";
6
+ import * as i2 from "@angular/forms";
7
+ import * as i3 from "../responsive-button-group/responsive-button-group.component";
8
+ import * as i4 from "@angular/common";
9
+ import * as i5 from "../../directive/focus";
10
+ // tslint:disable-next-line:component-class-suffix
11
+ export class DialogRegisterContent {
12
+ constructor(_activeModal, _fb) {
13
+ this._activeModal = _activeModal;
14
+ this._fb = _fb;
15
+ }
16
+ ngOnInit() {
17
+ this.form = this._fb.group({
18
+ username: ['', [Validators.required]],
19
+ name: ['', [Validators.required]],
20
+ phone: ['', [Validators.required]],
21
+ company: ['', [Validators.required]],
22
+ email: ['', [Validators.required]]
23
+ });
24
+ }
25
+ }
26
+ DialogRegisterContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: DialogRegisterContent, deps: [{ token: i1.NgbActiveModal }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
27
+ DialogRegisterContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: DialogRegisterContent, selector: "ng-component", ngImport: i0, template: `
28
+ <style>
29
+ collapse-table {
30
+ width: 100%;
31
+ }
32
+
33
+ .navbar-light .navbar-nav .active>.nav-link, .navbar-light .navbar-nav .nav-link.active, .navbar-light .navbar-nav .nav-link.show, .navbar-light .navbar-nav .show>.nav-link {
34
+ color: #0b4499;
35
+ }
36
+ .navbar-light .navbar-nav .nav-link {
37
+ color:#333;
38
+ }
39
+ a.nav-link.loginreg {
40
+ background-color: #0b4499;
41
+ color: #fff !important;
42
+ border-radius: 40px;
43
+ }
44
+ a.nav-link.loginreg:hover {
45
+ background: #1668e2;
46
+ }
47
+ .nav-link {
48
+ color: #333333;
49
+ font-size: 150%
50
+ }
51
+ .nav-item a.nav-link.active {
52
+ color: #0b4499;
53
+ }
54
+ .contactimg>img{
55
+ width: 100%;
56
+ }
57
+
58
+ .log-box {
59
+ padding-top: 26px;
60
+ padding-bottom: 26px;
61
+ }
62
+ .loginform .form-control, .register-form .form-control {
63
+ color: #000;
64
+ height: 52px;
65
+ }
66
+ .loginform {
67
+ margin-top: 35px;
68
+ }
69
+ .loginform label {
70
+ font-size: 18px;
71
+ font-weight: 600;
72
+ }
73
+
74
+ .loginbtn {
75
+ background: #0b4499;
76
+ width: 100%;
77
+ margin-top: 44px;
78
+ height: 52px;
79
+ font-size: 22px;
80
+ border-radius: 2px;
81
+ color: #fff !important;
82
+ }
83
+
84
+ .contactimg {
85
+ position: relative;
86
+ }
87
+ .login-logo {
88
+ margin-bottom: 20px;
89
+ }
90
+
91
+ .textbox {
92
+ position: absolute;
93
+ top: 50%;
94
+ color: #fff;
95
+ padding: 40px;
96
+ transform: translate(0%, -50%);
97
+ text-align: center;
98
+ }
99
+ .sign-btn {
100
+ background: #0b4499;
101
+ width: 100%;
102
+ margin-top: 14px;
103
+ height: 52px;
104
+ font-size: 22px;
105
+ border-radius: 2px;
106
+ color: #fff !important;
107
+ }
108
+
109
+ button.btn.sign-btn:hover {
110
+ background: #1668e2;
111
+ }
112
+ </style>
113
+ <form [formGroup]="form" novalidate (ngSubmit)="_activeModal.close(form)">
114
+ <div class="modal-header">
115
+ <h4 class="modal-title"><i class="fa fa-question-circle" style="color: blue; font-size: 0.85em" aria-hidden="true"></i> Register</h4>
116
+ <button type="button" class="close" aria-label="Close" (click)="_activeModal.dismiss()">
117
+ <span aria-hidden="true">&times;</span>
118
+ </button>
119
+ </div>
120
+ <div class="modal-body" *ngIf="form">
121
+ <div class="row justify-content-md-center">
122
+ <div class="col-lg-12">
123
+ <div class="row bg-white">
124
+ <div class="col-lg-6">
125
+ <div class="contactimg">
126
+ <img src="/assets/images/loginsignup/formimg.jpg" alt="images" class="img-fluid">
127
+ <div class="textbox">
128
+ <div class="login-logo"><img src="/assets/images/loginsignup/login-logo.png" alt="images"></div>
129
+ The All-in-One Solution for Tracking Inventory, Ordering, POs, Management, and Much More!
130
+ </div>
131
+ </div>
132
+ </div>
133
+ <div class="col-lg-6">
134
+ <div class="log-box">
135
+ <div class="register-form">
136
+ <div class="form-group">
137
+ <label>User Name</label>
138
+ <em *ngIf="form.controls.username.hasError('required')">- Required</em>
139
+ <input type="text" class="form-control" [ngClass]="['form-control', form.controls.username.valid ? 'is-valid' : 'is-invalid']" formControlName="username" [autofocus]="true" [focus]="true" aria-describedby="emailHelp" placeholder="User Name">
140
+ </div>
141
+ <div class="form-group">
142
+ <label>Full Name</label>
143
+ <em *ngIf="form.controls.name.hasError('required')">- Required</em>
144
+ <input type="text" class="form-control" [ngClass]="['form-control', form.controls.name.valid ? 'is-valid' : 'is-invalid']" formControlName="name" aria-describedby="emailHelp" placeholder="Name">
145
+ </div>
146
+ <div class="form-group">
147
+ <label>Phone Number</label>
148
+ <em *ngIf="form.controls.phone.hasError('required')">- Required</em>
149
+ <input type="text" class="form-control" [ngClass]="['form-control', form.controls.phone.valid ? 'is-valid' : 'is-invalid']" formControlName="phone" placeholder="Phone Number">
150
+ </div>
151
+ <div class="form-group">
152
+ <label>Company</label>
153
+ <em *ngIf="form.controls.company.hasError('required')">- Required</em>
154
+ <input type="text" class="form-control" [ngClass]="['form-control', form.controls.company.valid ? 'is-valid' : 'is-invalid']" formControlName="company" placeholder="Company Name">
155
+ </div>
156
+ <div class="form-group">
157
+ <label>Email</label>
158
+ <em *ngIf="form.controls.email.hasError('required')">- Required</em>
159
+ <input type="email" class="form-control" [ngClass]="['form-control', form.controls.email.valid ? 'is-valid' : 'is-invalid']" formControlName="email" placeholder="Email">
160
+ </div>
161
+ <button type="submit" class="btn sign-btn">Signup</button>
162
+ </div>
163
+ </div>
164
+ </div>
165
+ </div>
166
+ </div>
167
+ </div>
168
+ </div>
169
+ <div class="modal-footer">
170
+ <responsive-button-group>
171
+ <button type="button" class="btn btn-secondary" (click)="_activeModal.dismiss()">Cancel</button>
172
+ </responsive-button-group>
173
+ </div>
174
+ </form>
175
+ `, isInline: true, styles: ["\n\t\t\tcollapse-table {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\n\t\t\t.navbar-light .navbar-nav .active>.nav-link, .navbar-light .navbar-nav .nav-link.active, .navbar-light .navbar-nav .nav-link.show, .navbar-light .navbar-nav .show>.nav-link {\n\t\t\t\tcolor: #0b4499;\n\t\t\t}\n\t\t\t.navbar-light .navbar-nav .nav-link {\n\t\t\t\tcolor:#333;\n\t\t\t}\n\t\t\ta.nav-link.loginreg {\n\t\t\t\tbackground-color: #0b4499;\n\t\t\t\tcolor: #fff !important;\n\t\t\t\tborder-radius: 40px;\n\t\t\t}\n\t\t\ta.nav-link.loginreg:hover {\n\t\t\t\tbackground: #1668e2;\n\t\t\t}\n\t\t\t.nav-link {\n\t\t\t\tcolor: #333333;\n\t\t\t\tfont-size: 150%\n\t\t\t}\n\t\t\t.nav-item a.nav-link.active {\n\t\t\t\tcolor: #0b4499;\n\t\t\t}\n\t\t\t.contactimg>img{\n\t\t\t\twidth: 100%;\n\t\t\t}\n\n\t\t\t.log-box {\n\t\t\t\tpadding-top: 26px;\n\t\t\t\tpadding-bottom: 26px;\n\t\t\t}\n\t\t\t.loginform .form-control, .register-form .form-control {\n\t\t\t\tcolor: #000;\n\t\t\t\theight: 52px;\n\t\t\t}\n\t\t\t.loginform {\n\t\t\t\tmargin-top: 35px;\n\t\t\t}\n\t\t\t.loginform label {\n\t\t\t\tfont-size: 18px;\n\t\t\t\tfont-weight: 600;\n\t\t\t}\n\n\t\t\t.loginbtn {\n\t\t\t\tbackground: #0b4499;\n\t\t\t\twidth: 100%;\n\t\t\t\tmargin-top: 44px;\n\t\t\t\theight: 52px;\n\t\t\t\tfont-size: 22px;\n\t\t\t\tborder-radius: 2px;\n\t\t\t\tcolor: #fff !important;\n\t\t\t}\n\n\t\t\t.contactimg {\n\t\t\t\tposition: relative;\n\t\t\t}\n\t\t\t.login-logo {\n\t\t\t\tmargin-bottom: 20px;\n\t\t\t}\n\n\t\t\t.textbox {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 50%;\n\t\t\t\tcolor: #fff;\n\t\t\t\tpadding: 40px;\n\t\t\t\ttransform: translate(0%, -50%);\n\t\t\t\ttext-align: center;\n\t\t\t}\n\t\t\t.sign-btn {\n\t\t\t\tbackground: #0b4499;\n\t\t\t\twidth: 100%;\n\t\t\t\tmargin-top: 14px;\n\t\t\t\theight: 52px;\n\t\t\t\tfont-size: 22px;\n\t\t\t\tborder-radius: 2px;\n\t\t\t\tcolor: #fff !important;\n\t\t\t}\n\n\t\t\tbutton.btn.sign-btn:hover {\n\t\t\t\tbackground: #1668e2;\n\t\t\t}\n\t\t"], components: [{ type: i3.ResponsiveButtonGroupComponent, selector: "responsive-button-group", inputs: ["collapseSize"] }], directives: [{ type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.FocusDirective, selector: "[focus]", inputs: ["focus"] }] });
176
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: DialogRegisterContent, decorators: [{
177
+ type: Component,
178
+ args: [{
179
+ template: `
180
+ <style>
181
+ collapse-table {
182
+ width: 100%;
183
+ }
184
+
185
+ .navbar-light .navbar-nav .active>.nav-link, .navbar-light .navbar-nav .nav-link.active, .navbar-light .navbar-nav .nav-link.show, .navbar-light .navbar-nav .show>.nav-link {
186
+ color: #0b4499;
187
+ }
188
+ .navbar-light .navbar-nav .nav-link {
189
+ color:#333;
190
+ }
191
+ a.nav-link.loginreg {
192
+ background-color: #0b4499;
193
+ color: #fff !important;
194
+ border-radius: 40px;
195
+ }
196
+ a.nav-link.loginreg:hover {
197
+ background: #1668e2;
198
+ }
199
+ .nav-link {
200
+ color: #333333;
201
+ font-size: 150%
202
+ }
203
+ .nav-item a.nav-link.active {
204
+ color: #0b4499;
205
+ }
206
+ .contactimg>img{
207
+ width: 100%;
208
+ }
209
+
210
+ .log-box {
211
+ padding-top: 26px;
212
+ padding-bottom: 26px;
213
+ }
214
+ .loginform .form-control, .register-form .form-control {
215
+ color: #000;
216
+ height: 52px;
217
+ }
218
+ .loginform {
219
+ margin-top: 35px;
220
+ }
221
+ .loginform label {
222
+ font-size: 18px;
223
+ font-weight: 600;
224
+ }
225
+
226
+ .loginbtn {
227
+ background: #0b4499;
228
+ width: 100%;
229
+ margin-top: 44px;
230
+ height: 52px;
231
+ font-size: 22px;
232
+ border-radius: 2px;
233
+ color: #fff !important;
234
+ }
235
+
236
+ .contactimg {
237
+ position: relative;
238
+ }
239
+ .login-logo {
240
+ margin-bottom: 20px;
241
+ }
242
+
243
+ .textbox {
244
+ position: absolute;
245
+ top: 50%;
246
+ color: #fff;
247
+ padding: 40px;
248
+ transform: translate(0%, -50%);
249
+ text-align: center;
250
+ }
251
+ .sign-btn {
252
+ background: #0b4499;
253
+ width: 100%;
254
+ margin-top: 14px;
255
+ height: 52px;
256
+ font-size: 22px;
257
+ border-radius: 2px;
258
+ color: #fff !important;
259
+ }
260
+
261
+ button.btn.sign-btn:hover {
262
+ background: #1668e2;
263
+ }
264
+ </style>
265
+ <form [formGroup]="form" novalidate (ngSubmit)="_activeModal.close(form)">
266
+ <div class="modal-header">
267
+ <h4 class="modal-title"><i class="fa fa-question-circle" style="color: blue; font-size: 0.85em" aria-hidden="true"></i> Register</h4>
268
+ <button type="button" class="close" aria-label="Close" (click)="_activeModal.dismiss()">
269
+ <span aria-hidden="true">&times;</span>
270
+ </button>
271
+ </div>
272
+ <div class="modal-body" *ngIf="form">
273
+ <div class="row justify-content-md-center">
274
+ <div class="col-lg-12">
275
+ <div class="row bg-white">
276
+ <div class="col-lg-6">
277
+ <div class="contactimg">
278
+ <img src="/assets/images/loginsignup/formimg.jpg" alt="images" class="img-fluid">
279
+ <div class="textbox">
280
+ <div class="login-logo"><img src="/assets/images/loginsignup/login-logo.png" alt="images"></div>
281
+ The All-in-One Solution for Tracking Inventory, Ordering, POs, Management, and Much More!
282
+ </div>
283
+ </div>
284
+ </div>
285
+ <div class="col-lg-6">
286
+ <div class="log-box">
287
+ <div class="register-form">
288
+ <div class="form-group">
289
+ <label>User Name</label>
290
+ <em *ngIf="form.controls.username.hasError('required')">- Required</em>
291
+ <input type="text" class="form-control" [ngClass]="['form-control', form.controls.username.valid ? 'is-valid' : 'is-invalid']" formControlName="username" [autofocus]="true" [focus]="true" aria-describedby="emailHelp" placeholder="User Name">
292
+ </div>
293
+ <div class="form-group">
294
+ <label>Full Name</label>
295
+ <em *ngIf="form.controls.name.hasError('required')">- Required</em>
296
+ <input type="text" class="form-control" [ngClass]="['form-control', form.controls.name.valid ? 'is-valid' : 'is-invalid']" formControlName="name" aria-describedby="emailHelp" placeholder="Name">
297
+ </div>
298
+ <div class="form-group">
299
+ <label>Phone Number</label>
300
+ <em *ngIf="form.controls.phone.hasError('required')">- Required</em>
301
+ <input type="text" class="form-control" [ngClass]="['form-control', form.controls.phone.valid ? 'is-valid' : 'is-invalid']" formControlName="phone" placeholder="Phone Number">
302
+ </div>
303
+ <div class="form-group">
304
+ <label>Company</label>
305
+ <em *ngIf="form.controls.company.hasError('required')">- Required</em>
306
+ <input type="text" class="form-control" [ngClass]="['form-control', form.controls.company.valid ? 'is-valid' : 'is-invalid']" formControlName="company" placeholder="Company Name">
307
+ </div>
308
+ <div class="form-group">
309
+ <label>Email</label>
310
+ <em *ngIf="form.controls.email.hasError('required')">- Required</em>
311
+ <input type="email" class="form-control" [ngClass]="['form-control', form.controls.email.valid ? 'is-valid' : 'is-invalid']" formControlName="email" placeholder="Email">
312
+ </div>
313
+ <button type="submit" class="btn sign-btn">Signup</button>
314
+ </div>
315
+ </div>
316
+ </div>
317
+ </div>
318
+ </div>
319
+ </div>
320
+ </div>
321
+ <div class="modal-footer">
322
+ <responsive-button-group>
323
+ <button type="button" class="btn btn-secondary" (click)="_activeModal.dismiss()">Cancel</button>
324
+ </responsive-button-group>
325
+ </div>
326
+ </form>
327
+ `
328
+ }]
329
+ }], ctorParameters: function () { return [{ type: i1.NgbActiveModal }, { type: i2.FormBuilder }]; } });
330
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnJlZ2lzdGVyLmNvbnRlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvd2lkZ2V0cy9kaWFsb2cvZGlhbG9nLnJlZ2lzdGVyLmNvbnRlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBYSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUF5SnBFLGtEQUFrRDtBQUNsRCxNQUFNLE9BQU8scUJBQXFCO0lBSWpDLFlBQW1CLFlBQTRCLEVBQVUsR0FBZ0I7UUFBdEQsaUJBQVksR0FBWixZQUFZLENBQWdCO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBYTtJQUFHLENBQUM7SUFFN0UsUUFBUTtRQUNQLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDMUIsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3JDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNqQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbEMsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3BDLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNsQyxDQUFDLENBQUM7SUFDSixDQUFDOztrSEFkVyxxQkFBcUI7c0dBQXJCLHFCQUFxQixvREF2SnZCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBb0pUOzJGQUdXLHFCQUFxQjtrQkF4SmpDLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBb0pUO2lCQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ2JBY3RpdmVNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuXHR0ZW1wbGF0ZTogYFxuXHRcdDxzdHlsZT5cblx0XHRcdGNvbGxhcHNlLXRhYmxlIHtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHR9XG5cblx0XHRcdC5uYXZiYXItbGlnaHQgLm5hdmJhci1uYXYgLmFjdGl2ZT4ubmF2LWxpbmssIC5uYXZiYXItbGlnaHQgLm5hdmJhci1uYXYgLm5hdi1saW5rLmFjdGl2ZSwgLm5hdmJhci1saWdodCAubmF2YmFyLW5hdiAubmF2LWxpbmsuc2hvdywgLm5hdmJhci1saWdodCAubmF2YmFyLW5hdiAuc2hvdz4ubmF2LWxpbmsge1xuXHRcdFx0XHRjb2xvcjogIzBiNDQ5OTtcblx0XHRcdH1cblx0XHRcdC5uYXZiYXItbGlnaHQgLm5hdmJhci1uYXYgLm5hdi1saW5rIHtcblx0XHRcdFx0Y29sb3I6IzMzMztcblx0XHRcdH1cblx0XHRcdGEubmF2LWxpbmsubG9naW5yZWcge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMGI0NDk5O1xuXHRcdFx0XHRjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiA0MHB4O1xuXHRcdFx0fVxuXHRcdFx0YS5uYXYtbGluay5sb2dpbnJlZzpob3ZlciB7XG5cdFx0XHRcdGJhY2tncm91bmQ6ICMxNjY4ZTI7XG5cdFx0XHR9XG5cdFx0XHQubmF2LWxpbmsge1xuXHRcdFx0XHRjb2xvcjogIzMzMzMzMztcblx0XHRcdFx0Zm9udC1zaXplOiAxNTAlXG5cdFx0XHR9XG5cdFx0XHQubmF2LWl0ZW0gYS5uYXYtbGluay5hY3RpdmUge1xuXHRcdFx0XHRjb2xvcjogIzBiNDQ5OTtcblx0XHRcdH1cblx0XHRcdC5jb250YWN0aW1nPmltZ3tcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHR9XG5cblx0XHRcdC5sb2ctYm94IHtcblx0XHRcdFx0cGFkZGluZy10b3A6IDI2cHg7XG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOiAyNnB4O1xuXHRcdFx0fVxuXHRcdFx0LmxvZ2luZm9ybSAuZm9ybS1jb250cm9sLCAucmVnaXN0ZXItZm9ybSAuZm9ybS1jb250cm9sIHtcblx0XHRcdFx0Y29sb3I6ICMwMDA7XG5cdFx0XHRcdGhlaWdodDogNTJweDtcblx0XHRcdH1cblx0XHRcdC5sb2dpbmZvcm0ge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAzNXB4O1xuXHRcdFx0fVxuXHRcdFx0LmxvZ2luZm9ybSBsYWJlbCB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMThweDtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHRcdH1cblxuXHRcdFx0LmxvZ2luYnRuIHtcblx0XHRcdFx0YmFja2dyb3VuZDogIzBiNDQ5OTtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDQ0cHg7XG5cdFx0XHRcdGhlaWdodDogNTJweDtcblx0XHRcdFx0Zm9udC1zaXplOiAyMnB4O1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiAycHg7XG5cdFx0XHRcdGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cblx0XHRcdC5jb250YWN0aW1nIHtcblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0fVxuXHRcdFx0LmxvZ2luLWxvZ28ge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHRcdFx0fVxuXG5cdFx0XHQudGV4dGJveCB7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0dG9wOiA1MCU7XG5cdFx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0XHRwYWRkaW5nOiA0MHB4O1xuXHRcdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwJSwgLTUwJSk7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdH1cblx0XHRcdC5zaWduLWJ0biB7XG5cdFx0XHRcdGJhY2tncm91bmQ6ICMwYjQ0OTk7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAxNHB4O1xuXHRcdFx0XHRoZWlnaHQ6IDUycHg7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMjJweDtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMnB4O1xuXHRcdFx0XHRjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXG5cdFx0XHRidXR0b24uYnRuLnNpZ24tYnRuOmhvdmVyIHtcblx0XHRcdFx0YmFja2dyb3VuZDogIzE2NjhlMjtcblx0XHRcdH1cblx0XHQ8L3N0eWxlPlxuXHRcdDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIG5vdmFsaWRhdGUgKG5nU3VibWl0KT1cIl9hY3RpdmVNb2RhbC5jbG9zZShmb3JtKVwiPlxuXHRcdFx0PGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxuXHRcdFx0XHQ8aDQgY2xhc3M9XCJtb2RhbC10aXRsZVwiPjxpIGNsYXNzPVwiZmEgZmEtcXVlc3Rpb24tY2lyY2xlXCIgc3R5bGU9XCJjb2xvcjogYmx1ZTsgZm9udC1zaXplOiAwLjg1ZW1cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+IFJlZ2lzdGVyPC9oND5cblx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZVwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJfYWN0aXZlTW9kYWwuZGlzbWlzcygpXCI+XG5cdFx0XHRcdFx0PHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvc3Bhbj5cblx0XHRcdFx0PC9idXR0b24+XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCIgKm5nSWY9XCJmb3JtXCI+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LW1kLWNlbnRlclwiPlxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtbGctMTJcIj5cblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJyb3cgYmctd2hpdGVcIj5cblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbC1sZy02XCI+XG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNvbnRhY3RpbWdcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxpbWcgc3JjPVwiL2Fzc2V0cy9pbWFnZXMvbG9naW5zaWdudXAvZm9ybWltZy5qcGdcIiBhbHQ9XCJpbWFnZXNcIiBjbGFzcz1cImltZy1mbHVpZFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRleHRib3hcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImxvZ2luLWxvZ29cIj48aW1nIHNyYz1cIi9hc3NldHMvaW1hZ2VzL2xvZ2luc2lnbnVwL2xvZ2luLWxvZ28ucG5nXCIgYWx0PVwiaW1hZ2VzXCI+PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFRoZSBBbGwtaW4tT25lIFNvbHV0aW9uIGZvciBUcmFja2luZyBJbnZlbnRvcnksIE9yZGVyaW5nLCBQT3MsIE1hbmFnZW1lbnQsIGFuZCBNdWNoIE1vcmUhXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtbGctNlwiPlxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJsb2ctYm94XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicmVnaXN0ZXItZm9ybVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxsYWJlbD5Vc2VyIE5hbWU8L2xhYmVsPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxlbSAqbmdJZj1cImZvcm0uY29udHJvbHMudXNlcm5hbWUuaGFzRXJyb3IoJ3JlcXVpcmVkJylcIj4tIFJlcXVpcmVkPC9lbT5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIFtuZ0NsYXNzXT1cIlsnZm9ybS1jb250cm9sJywgZm9ybS5jb250cm9scy51c2VybmFtZS52YWxpZCA/ICdpcy12YWxpZCcgOiAnaXMtaW52YWxpZCddXCIgZm9ybUNvbnRyb2xOYW1lPVwidXNlcm5hbWVcIiBbYXV0b2ZvY3VzXT1cInRydWVcIiBbZm9jdXNdPVwidHJ1ZVwiIGFyaWEtZGVzY3JpYmVkYnk9XCJlbWFpbEhlbHBcIiBwbGFjZWhvbGRlcj1cIlVzZXIgTmFtZVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8bGFiZWw+RnVsbCBOYW1lPC9sYWJlbD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZW0gKm5nSWY9XCJmb3JtLmNvbnRyb2xzLm5hbWUuaGFzRXJyb3IoJ3JlcXVpcmVkJylcIj4tIFJlcXVpcmVkPC9lbT5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIFtuZ0NsYXNzXT1cIlsnZm9ybS1jb250cm9sJywgZm9ybS5jb250cm9scy5uYW1lLnZhbGlkID8gJ2lzLXZhbGlkJyA6ICdpcy1pbnZhbGlkJ11cIiBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgYXJpYS1kZXNjcmliZWRieT1cImVtYWlsSGVscFwiIHBsYWNlaG9sZGVyPVwiTmFtZVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8bGFiZWw+UGhvbmUgTnVtYmVyPC9sYWJlbD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZW0gKm5nSWY9XCJmb3JtLmNvbnRyb2xzLnBob25lLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+LSBSZXF1aXJlZDwvZW0+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbbmdDbGFzc109XCJbJ2Zvcm0tY29udHJvbCcsIGZvcm0uY29udHJvbHMucGhvbmUudmFsaWQgPyAnaXMtdmFsaWQnIDogJ2lzLWludmFsaWQnXVwiIGZvcm1Db250cm9sTmFtZT1cInBob25lXCIgcGxhY2Vob2xkZXI9XCJQaG9uZSBOdW1iZXJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGxhYmVsPkNvbXBhbnk8L2xhYmVsPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxlbSAqbmdJZj1cImZvcm0uY29udHJvbHMuY29tcGFueS5oYXNFcnJvcigncmVxdWlyZWQnKVwiPi0gUmVxdWlyZWQ8L2VtPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgW25nQ2xhc3NdPVwiWydmb3JtLWNvbnRyb2wnLCBmb3JtLmNvbnRyb2xzLmNvbXBhbnkudmFsaWQgPyAnaXMtdmFsaWQnIDogJ2lzLWludmFsaWQnXVwiIGZvcm1Db250cm9sTmFtZT1cImNvbXBhbnlcIiBwbGFjZWhvbGRlcj1cIkNvbXBhbnkgTmFtZVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8bGFiZWw+RW1haWw8L2xhYmVsPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxlbSAqbmdJZj1cImZvcm0uY29udHJvbHMuZW1haWwuaGFzRXJyb3IoJ3JlcXVpcmVkJylcIj4tIFJlcXVpcmVkPC9lbT5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8aW5wdXQgdHlwZT1cImVtYWlsXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbbmdDbGFzc109XCJbJ2Zvcm0tY29udHJvbCcsIGZvcm0uY29udHJvbHMuZW1haWwudmFsaWQgPyAnaXMtdmFsaWQnIDogJ2lzLWludmFsaWQnXVwiIGZvcm1Db250cm9sTmFtZT1cImVtYWlsXCIgcGxhY2Vob2xkZXI9XCJFbWFpbFwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gc2lnbi1idG5cIj5TaWdudXA8L2J1dHRvbj5cblx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxuXHRcdFx0XHQ8cmVzcG9uc2l2ZS1idXR0b24tZ3JvdXA+XG5cdFx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIChjbGljayk9XCJfYWN0aXZlTW9kYWwuZGlzbWlzcygpXCI+Q2FuY2VsPC9idXR0b24+XG5cdFx0XHRcdDwvcmVzcG9uc2l2ZS1idXR0b24tZ3JvdXA+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Zvcm0+XG5cdGBcbn0pXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LWNsYXNzLXN1ZmZpeFxuZXhwb3J0IGNsYXNzIERpYWxvZ1JlZ2lzdGVyQ29udGVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cblx0Zm9ybTogRm9ybUdyb3VwO1xuXG5cdGNvbnN0cnVjdG9yKHB1YmxpYyBfYWN0aXZlTW9kYWw6IE5nYkFjdGl2ZU1vZGFsLCBwcml2YXRlIF9mYjogRm9ybUJ1aWxkZXIpIHt9XG5cblx0bmdPbkluaXQoKSB7XHRcdFx0XG5cdFx0dGhpcy5mb3JtID0gdGhpcy5fZmIuZ3JvdXAoe1xuXHRcdFx0dXNlcm5hbWU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcblx0XHRcdG5hbWU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcblx0XHRcdHBob25lOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG5cdFx0XHRjb21wYW55OiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG5cdFx0XHRlbWFpbDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dXG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
@@ -0,0 +1,191 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
3
+ import { FormBuilder } from '@angular/forms';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@ng-bootstrap/ng-bootstrap";
6
+ import * as i2 from "@angular/forms";
7
+ import * as i3 from "@angular/common";
8
+ // tslint:disable-next-line:component-class-suffix
9
+ export class DialogSelectDataLabelsContent {
10
+ constructor(_activeModal, _fb) {
11
+ this._activeModal = _activeModal;
12
+ this._fb = _fb;
13
+ this.title = '';
14
+ this.subtitle = '';
15
+ this.dialogData = [];
16
+ }
17
+ ngOnInit() {
18
+ this.getKeys();
19
+ }
20
+ getKeys() {
21
+ let dataKeys = Object.keys(this.data);
22
+ let type = '';
23
+ dataKeys.filter(a => a !== '_id' && !a.startsWith('id_') && a !== '__v' && a !== 'createdAt' && a !== 'updatedAt').forEach(key => {
24
+ type = typeof (this.data[key]);
25
+ if (type === 'object') {
26
+ if (Array.isArray(this.data[key])) {
27
+ type = 'array';
28
+ this.dialogData.push({
29
+ label: key.replace(new RegExp('_', 'g'), ' ').replace('string', '').replace(/\w\S*/g, function (txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); }),
30
+ data: key,
31
+ selected: true,
32
+ type: type,
33
+ subLabel: null,
34
+ subData: null,
35
+ subtype: null
36
+ });
37
+ if (this.showArraySubData === true) {
38
+ let subDataKeys = Object.keys(this.data[key][0]);
39
+ subDataKeys.filter(a => a !== '_id' && !a.startsWith('id_')).forEach(subKey => {
40
+ this.dialogData.push({
41
+ label: key.replace(new RegExp('_', 'g'), ' ').replace('string', '').replace(/\w\S*/g, function (txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); }),
42
+ subLabel: subKey.replace(new RegExp('_', 'g'), ' ').replace('string', '').replace(/\w\S*/g, function (txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); }),
43
+ data: key,
44
+ type: type,
45
+ subData: subKey,
46
+ selected: true,
47
+ subtype: typeof (subKey)
48
+ });
49
+ });
50
+ }
51
+ }
52
+ else {
53
+ let subDataKeys = Object.keys(this.data[key]);
54
+ if (subDataKeys.length) {
55
+ subDataKeys.filter(a => a !== '_id' && !a.startsWith('id_')).forEach(subKey => {
56
+ this.dialogData.push({
57
+ label: key.replace(new RegExp('_', 'g'), ' ').replace('string', '').replace(/\w\S*/g, function (txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); }),
58
+ subLabel: subKey.replace(new RegExp('_', 'g'), ' ').replace('string', '').replace(/\w\S*/g, function (txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); }),
59
+ data: key,
60
+ subData: subKey,
61
+ subtype: null,
62
+ selected: true,
63
+ type: type
64
+ });
65
+ });
66
+ }
67
+ else {
68
+ this.dialogData.push({
69
+ label: key.replace(new RegExp('_', 'g'), ' ').replace('string', '').replace(/\w\S*/g, function (txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); }),
70
+ data: key,
71
+ selected: true,
72
+ type: type,
73
+ subData: null,
74
+ subLabel: null,
75
+ subtype: null
76
+ });
77
+ }
78
+ }
79
+ }
80
+ else {
81
+ this.dialogData.push({
82
+ label: key.replace(new RegExp('_', 'g'), ' ').replace('string', '').replace(/\w\S*/g, function (txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); }),
83
+ data: key,
84
+ selected: true,
85
+ type: type,
86
+ subData: null,
87
+ subLabel: null,
88
+ subtype: null
89
+ });
90
+ }
91
+ });
92
+ }
93
+ changeSelected(label) {
94
+ label.selected = !label.selected;
95
+ if (label.type === 'array' && label.subtype === null) {
96
+ this.dialogData.filter(a => a.label === label.label).forEach(subtype => {
97
+ subtype.selected = label.selected;
98
+ });
99
+ }
100
+ }
101
+ submit() {
102
+ return this.dialogData;
103
+ }
104
+ }
105
+ DialogSelectDataLabelsContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: DialogSelectDataLabelsContent, deps: [{ token: i1.NgbActiveModal }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
106
+ DialogSelectDataLabelsContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: DialogSelectDataLabelsContent, selector: "ng-component", inputs: { title: "title", subtitle: "subtitle", data: "data", showArraySubData: "showArraySubData" }, ngImport: i0, template: `
107
+ <div class="modal-header">
108
+ <h4 class="modal-title"><i class="fa fa-question-circle" style="color: blue; font-size: 0.75em" aria-hidden="true"></i> {{ title }} - {{ subtitle }}</h4>
109
+ <button type="button" class="close" aria-label="Close" (click)="_activeModal.dismiss()">
110
+ <span aria-hidden="true">&times;</span>
111
+ </button>
112
+ </div>
113
+ <div class="modal-body">
114
+ <div class="col-lg-12">
115
+ <div class="row">
116
+ <div class="col-lg-12">
117
+ <ng-container *ngFor="let label of dialogData">
118
+ <div class="row">
119
+ <div *ngIf="label.subtype === null && label.type !== 'object'" style="font-size: 12px;">
120
+ <input type="checkbox" [checked]="label.selected" (click)="changeSelected(label)" style="height: 20px; width: auto;">&nbsp;&nbsp;&nbsp;{{ label.label }}
121
+ </div>
122
+ <div *ngIf="label.subtype === null && label.type === 'object' && label.subLabel !== null" style="font-size: 12px;">
123
+ <input type="checkbox" [checked]="label.selected" (click)="changeSelected(label)" style="height: 20px; width: auto;">&nbsp;&nbsp;&nbsp;{{ label.subLabel }}
124
+ </div>
125
+ <div *ngIf="label.subtype === null && label.type === 'object' && label.subLabel === null" style="font-size: 12px;">
126
+ <input type="checkbox" [checked]="label.selected" (click)="changeSelected(label)" style="height: 20px; width: auto;">&nbsp;&nbsp;&nbsp;{{ label.label }}
127
+ </div>
128
+ <div *ngIf="label.subtype !== null" style="font-size: 12px;">
129
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="checkbox" [checked]="label.selected" (click)="changeSelected(label)" style="height: 20px; width: auto;">&nbsp;&nbsp;&nbsp;{{ label.subLabel }}
130
+ </div>
131
+ </div>
132
+ </ng-container>
133
+ </div>
134
+ </div>
135
+ </div>
136
+ </div>
137
+ <div class="modal-footer">
138
+ <button type="button" class="btn btn-success" (click)="_activeModal.close(dialogData)">Submit</button>
139
+ <button type="button" class="btn btn-secondary" (click)="_activeModal.dismiss()">Cancel</button>
140
+ </div>
141
+ `, isInline: true, directives: [{ type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: DialogSelectDataLabelsContent, decorators: [{
143
+ type: Component,
144
+ args: [{
145
+ template: `
146
+ <div class="modal-header">
147
+ <h4 class="modal-title"><i class="fa fa-question-circle" style="color: blue; font-size: 0.75em" aria-hidden="true"></i> {{ title }} - {{ subtitle }}</h4>
148
+ <button type="button" class="close" aria-label="Close" (click)="_activeModal.dismiss()">
149
+ <span aria-hidden="true">&times;</span>
150
+ </button>
151
+ </div>
152
+ <div class="modal-body">
153
+ <div class="col-lg-12">
154
+ <div class="row">
155
+ <div class="col-lg-12">
156
+ <ng-container *ngFor="let label of dialogData">
157
+ <div class="row">
158
+ <div *ngIf="label.subtype === null && label.type !== 'object'" style="font-size: 12px;">
159
+ <input type="checkbox" [checked]="label.selected" (click)="changeSelected(label)" style="height: 20px; width: auto;">&nbsp;&nbsp;&nbsp;{{ label.label }}
160
+ </div>
161
+ <div *ngIf="label.subtype === null && label.type === 'object' && label.subLabel !== null" style="font-size: 12px;">
162
+ <input type="checkbox" [checked]="label.selected" (click)="changeSelected(label)" style="height: 20px; width: auto;">&nbsp;&nbsp;&nbsp;{{ label.subLabel }}
163
+ </div>
164
+ <div *ngIf="label.subtype === null && label.type === 'object' && label.subLabel === null" style="font-size: 12px;">
165
+ <input type="checkbox" [checked]="label.selected" (click)="changeSelected(label)" style="height: 20px; width: auto;">&nbsp;&nbsp;&nbsp;{{ label.label }}
166
+ </div>
167
+ <div *ngIf="label.subtype !== null" style="font-size: 12px;">
168
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="checkbox" [checked]="label.selected" (click)="changeSelected(label)" style="height: 20px; width: auto;">&nbsp;&nbsp;&nbsp;{{ label.subLabel }}
169
+ </div>
170
+ </div>
171
+ </ng-container>
172
+ </div>
173
+ </div>
174
+ </div>
175
+ </div>
176
+ <div class="modal-footer">
177
+ <button type="button" class="btn btn-success" (click)="_activeModal.close(dialogData)">Submit</button>
178
+ <button type="button" class="btn btn-secondary" (click)="_activeModal.dismiss()">Cancel</button>
179
+ </div>
180
+ `
181
+ }]
182
+ }], ctorParameters: function () { return [{ type: i1.NgbActiveModal }, { type: i2.FormBuilder }]; }, propDecorators: { title: [{
183
+ type: Input
184
+ }], subtitle: [{
185
+ type: Input
186
+ }], data: [{
187
+ type: Input
188
+ }], showArraySubData: [{
189
+ type: Input
190
+ }] } });
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlbGVjdC1kYXRhLWxhYmVscy5jb250ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3dpZGdldHMvZGlhbG9nL2RpYWxvZy5zZWxlY3QtZGF0YS1sYWJlbHMuY29udGVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFhLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQTBDeEQsa0RBQWtEO0FBQ2xELE1BQU0sT0FBTyw2QkFBNkI7SUFVekMsWUFBbUIsWUFBNEIsRUFBVSxHQUFnQjtRQUF0RCxpQkFBWSxHQUFaLFlBQVksQ0FBZ0I7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFhO1FBVGhFLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBTXZCLGVBQVUsR0FBMkIsRUFBRSxDQUFDO0lBRW9DLENBQUM7SUFFN0UsUUFBUTtRQUNQLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRUQsT0FBTztRQUNOLElBQUksUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUVkLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFLLENBQUMsS0FBSyxXQUFXLElBQUssQ0FBQyxLQUFLLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNsSSxJQUFJLEdBQUcsT0FBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUM5QixJQUFJLElBQUksS0FBSyxRQUFRLEVBQUU7Z0JBQ3RCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7b0JBQ2xDLElBQUksR0FBRyxPQUFPLENBQUM7b0JBQ2YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7d0JBQ3BCLEtBQUssRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsVUFBUyxHQUFHLElBQUUsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ3hLLElBQUksRUFBRSxHQUFHO3dCQUNULFFBQVEsRUFBRSxJQUFJO3dCQUNkLElBQUksRUFBRSxJQUFJO3dCQUNWLFFBQVEsRUFBRSxJQUFJO3dCQUNkLE9BQU8sRUFBRSxJQUFJO3dCQUNiLE9BQU8sRUFBRSxJQUFJO3FCQUNiLENBQUMsQ0FBQztvQkFDSCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxJQUFJLEVBQUU7d0JBQ25DLElBQUksV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUNqRCxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7NEJBQzdFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO2dDQUNwQixLQUFLLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLFVBQVMsR0FBRyxJQUFFLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dDQUN4SyxRQUFRLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLFVBQVMsR0FBRyxJQUFFLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dDQUM5SyxJQUFJLEVBQUUsR0FBRztnQ0FDVCxJQUFJLEVBQUUsSUFBSTtnQ0FDVixPQUFPLEVBQUUsTUFBTTtnQ0FDZixRQUFRLEVBQUUsSUFBSTtnQ0FDZCxPQUFPLEVBQUUsT0FBTSxDQUFDLE1BQU0sQ0FBQzs2QkFDdkIsQ0FBQyxDQUFDO3dCQUNKLENBQUMsQ0FBQyxDQUFDO3FCQUNIO2lCQUNEO3FCQUNJO29CQUNKLElBQUksV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUM5QyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEVBQUU7d0JBQ3ZCLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTs0QkFDN0UsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7Z0NBQ3BCLEtBQUssRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsVUFBUyxHQUFHLElBQUUsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0NBQ3hLLFFBQVEsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsVUFBUyxHQUFHLElBQUUsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0NBQzlLLElBQUksRUFBRSxHQUFHO2dDQUNULE9BQU8sRUFBRSxNQUFNO2dDQUNmLE9BQU8sRUFBRSxJQUFJO2dDQUNiLFFBQVEsRUFBRSxJQUFJO2dDQUNkLElBQUksRUFBRSxJQUFJOzZCQUNWLENBQUMsQ0FBQzt3QkFDSixDQUFDLENBQUMsQ0FBQztxQkFDSDt5QkFDSTt3QkFDSixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQzs0QkFDcEIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxVQUFTLEdBQUcsSUFBRSxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzs0QkFDeEssSUFBSSxFQUFFLEdBQUc7NEJBQ1QsUUFBUSxFQUFFLElBQUk7NEJBQ2QsSUFBSSxFQUFFLElBQUk7NEJBQ1YsT0FBTyxFQUFFLElBQUk7NEJBQ2IsUUFBUSxFQUFFLElBQUk7NEJBQ2QsT0FBTyxFQUFFLElBQUk7eUJBQ2IsQ0FBQyxDQUFDO3FCQUNIO2lCQUNEO2FBQ0Q7aUJBQ0k7Z0JBQ0osSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7b0JBQ3BCLEtBQUssRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsVUFBUyxHQUFHLElBQUUsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3hLLElBQUksRUFBRSxHQUFHO29CQUNULFFBQVEsRUFBRSxJQUFJO29CQUNkLElBQUksRUFBRSxJQUFJO29CQUNWLE9BQU8sRUFBRSxJQUFJO29CQUNiLFFBQVEsRUFBRSxJQUFJO29CQUNkLE9BQU8sRUFBRSxJQUFJO2lCQUNiLENBQUMsQ0FBQzthQUNIO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQTJCO1FBQ3pDLEtBQUssQ0FBQyxRQUFRLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBRWpDLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxJQUFJLEVBQUU7WUFDckQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ3RFLE9BQU8sQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztZQUNuQyxDQUFDLENBQUMsQ0FBQztTQUNIO0lBQ0YsQ0FBQztJQUVELE1BQU07UUFDTCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDeEIsQ0FBQzs7MEhBdkdXLDZCQUE2Qjs4R0FBN0IsNkJBQTZCLDBKQXZDL0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBbUNUOzJGQUlXLDZCQUE2QjtrQkF4Q3pDLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW1DVDtpQkFDRDsrSEFJUyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ2JBY3RpdmVNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTZWxlY3REYXRhTGFiZWxNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zZWxlY3QtZGF0YS1sYWJlbC5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuXHR0ZW1wbGF0ZTogYFxuXHRcdDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cblx0XHRcdDxoNCBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+PGkgY2xhc3M9XCJmYSBmYS1xdWVzdGlvbi1jaXJjbGVcIiBzdHlsZT1cImNvbG9yOiBibHVlOyBmb250LXNpemU6IDAuNzVlbVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT4ge3sgdGl0bGUgfX0gLSB7eyBzdWJ0aXRsZSB9fTwvaDQ+XG5cdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNsb3NlXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIl9hY3RpdmVNb2RhbC5kaXNtaXNzKClcIj5cblx0XHRcdFx0PHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvc3Bhbj5cblx0XHRcdDwvYnV0dG9uPlxuXHRcdDwvZGl2PlxuXHRcdDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLWxnLTEyXCI+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJyb3dcIj5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY29sLWxnLTEyXCI+XG5cdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBsYWJlbCBvZiBkaWFsb2dEYXRhXCI+XG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJyb3dcIj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2ICpuZ0lmPVwibGFiZWwuc3VidHlwZSA9PT0gbnVsbCAmJiBsYWJlbC50eXBlICE9PSAnb2JqZWN0J1wiIHN0eWxlPVwiZm9udC1zaXplOiAxMnB4O1wiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFtjaGVja2VkXT1cImxhYmVsLnNlbGVjdGVkXCIgKGNsaWNrKT1cImNoYW5nZVNlbGVjdGVkKGxhYmVsKVwiIHN0eWxlPVwiaGVpZ2h0OiAyMHB4OyB3aWR0aDogYXV0bztcIj4mbmJzcDsmbmJzcDsmbmJzcDt7eyBsYWJlbC5sYWJlbCB9fVxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgKm5nSWY9XCJsYWJlbC5zdWJ0eXBlID09PSBudWxsICYmIGxhYmVsLnR5cGUgPT09ICdvYmplY3QnICYmIGxhYmVsLnN1YkxhYmVsICE9PSBudWxsXCIgc3R5bGU9XCJmb250LXNpemU6IDEycHg7XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgW2NoZWNrZWRdPVwibGFiZWwuc2VsZWN0ZWRcIiAoY2xpY2spPVwiY2hhbmdlU2VsZWN0ZWQobGFiZWwpXCIgc3R5bGU9XCJoZWlnaHQ6IDIwcHg7IHdpZHRoOiBhdXRvO1wiPiZuYnNwOyZuYnNwOyZuYnNwO3t7IGxhYmVsLnN1YkxhYmVsIH19XG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0PGRpdiAqbmdJZj1cImxhYmVsLnN1YnR5cGUgPT09IG51bGwgJiYgbGFiZWwudHlwZSA9PT0gJ29iamVjdCcgJiYgbGFiZWwuc3ViTGFiZWwgPT09IG51bGxcIiBzdHlsZT1cImZvbnQtc2l6ZTogMTJweDtcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBbY2hlY2tlZF09XCJsYWJlbC5zZWxlY3RlZFwiIChjbGljayk9XCJjaGFuZ2VTZWxlY3RlZChsYWJlbClcIiBzdHlsZT1cImhlaWdodDogMjBweDsgd2lkdGg6IGF1dG87XCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7e3sgbGFiZWwubGFiZWwgfX1cblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2ICpuZ0lmPVwibGFiZWwuc3VidHlwZSAhPT0gbnVsbFwiIHN0eWxlPVwiZm9udC1zaXplOiAxMnB4O1wiPlxuXHRcdFx0XHRcdFx0XHRcdFx0Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFtjaGVja2VkXT1cImxhYmVsLnNlbGVjdGVkXCIgKGNsaWNrKT1cImNoYW5nZVNlbGVjdGVkKGxhYmVsKVwiIHN0eWxlPVwiaGVpZ2h0OiAyMHB4OyB3aWR0aDogYXV0bztcIj4mbmJzcDsmbmJzcDsmbmJzcDt7eyBsYWJlbC5zdWJMYWJlbCB9fVxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2PlxuXHRcdDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cblx0XHRcdDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzXCIgKGNsaWNrKT1cIl9hY3RpdmVNb2RhbC5jbG9zZShkaWFsb2dEYXRhKVwiPlN1Ym1pdDwvYnV0dG9uPlxuXHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIChjbGljayk9XCJfYWN0aXZlTW9kYWwuZGlzbWlzcygpXCI+Q2FuY2VsPC9idXR0b24+XG5cdFx0PC9kaXY+XG5cdGBcbn0pXG5cbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtY2xhc3Mtc3VmZml4XG5leHBvcnQgY2xhc3MgRGlhbG9nU2VsZWN0RGF0YUxhYmVsc0NvbnRlbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXHRASW5wdXQoKSB0aXRsZSA9ICcnO1xuXHRASW5wdXQoKSBzdWJ0aXRsZSA9ICcnO1xuXHRASW5wdXQoKSBkYXRhO1xuXHRASW5wdXQoKSBzaG93QXJyYXlTdWJEYXRhO1xuXG5cdGZvcm06IEZvcm1Hcm91cDtcblxuXHRkaWFsb2dEYXRhOiBTZWxlY3REYXRhTGFiZWxNb2RlbFtdID0gW107XG5cblx0Y29uc3RydWN0b3IocHVibGljIF9hY3RpdmVNb2RhbDogTmdiQWN0aXZlTW9kYWwsIHByaXZhdGUgX2ZiOiBGb3JtQnVpbGRlcikge31cblxuXHRuZ09uSW5pdCAoKSB7XG5cdFx0dGhpcy5nZXRLZXlzKCk7XG5cdH1cblxuXHRnZXRLZXlzKCkge1xuXHRcdGxldCBkYXRhS2V5cyA9IE9iamVjdC5rZXlzKHRoaXMuZGF0YSk7XG5cdFx0bGV0IHR5cGUgPSAnJztcblxuXHRcdGRhdGFLZXlzLmZpbHRlcihhID0+IGEgIT09ICdfaWQnICYmICFhLnN0YXJ0c1dpdGgoJ2lkXycpICYmIGEgIT09ICdfX3YnICAmJiBhICE9PSAnY3JlYXRlZEF0JyAgJiYgYSAhPT0gJ3VwZGF0ZWRBdCcpLmZvckVhY2goa2V5ID0+IHtcblx0XHRcdHR5cGUgPSB0eXBlb2YodGhpcy5kYXRhW2tleV0pO1xuXHRcdFx0aWYgKHR5cGUgPT09ICdvYmplY3QnKSB7XG5cdFx0XHRcdGlmIChBcnJheS5pc0FycmF5KHRoaXMuZGF0YVtrZXldKSkge1xuXHRcdFx0XHRcdHR5cGUgPSAnYXJyYXknO1xuXHRcdFx0XHRcdHRoaXMuZGlhbG9nRGF0YS5wdXNoKHtcblx0XHRcdFx0XHRcdGxhYmVsOiBrZXkucmVwbGFjZShuZXcgUmVnRXhwKCdfJywgJ2cnKSwgJyAnKS5yZXBsYWNlKCdzdHJpbmcnLCAnJykucmVwbGFjZSgvXFx3XFxTKi9nLCBmdW5jdGlvbih0eHQpe3JldHVybiB0eHQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB0eHQuc3Vic3RyKDEpLnRvTG93ZXJDYXNlKCk7IH0pLFxuXHRcdFx0XHRcdFx0ZGF0YToga2V5LFxuXHRcdFx0XHRcdFx0c2VsZWN0ZWQ6IHRydWUsXG5cdFx0XHRcdFx0XHR0eXBlOiB0eXBlLFxuXHRcdFx0XHRcdFx0c3ViTGFiZWw6IG51bGwsXG5cdFx0XHRcdFx0XHRzdWJEYXRhOiBudWxsLFxuXHRcdFx0XHRcdFx0c3VidHlwZTogbnVsbFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdGlmICh0aGlzLnNob3dBcnJheVN1YkRhdGEgPT09IHRydWUpIHtcblx0XHRcdFx0XHRcdGxldCBzdWJEYXRhS2V5cyA9IE9iamVjdC5rZXlzKHRoaXMuZGF0YVtrZXldWzBdKTtcblx0XHRcdFx0XHRcdHN1YkRhdGFLZXlzLmZpbHRlcihhID0+IGEgIT09ICdfaWQnICYmICFhLnN0YXJ0c1dpdGgoJ2lkXycpKS5mb3JFYWNoKHN1YktleSA9PiB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuZGlhbG9nRGF0YS5wdXNoKHtcblx0XHRcdFx0XHRcdFx0XHRsYWJlbDoga2V5LnJlcGxhY2UobmV3IFJlZ0V4cCgnXycsICdnJyksICcgJykucmVwbGFjZSgnc3RyaW5nJywgJycpLnJlcGxhY2UoL1xcd1xcUyovZywgZnVuY3Rpb24odHh0KXtyZXR1cm4gdHh0LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdHh0LnN1YnN0cigxKS50b0xvd2VyQ2FzZSgpOyB9KSxcblx0XHRcdFx0XHRcdFx0XHRzdWJMYWJlbDogc3ViS2V5LnJlcGxhY2UobmV3IFJlZ0V4cCgnXycsICdnJyksICcgJykucmVwbGFjZSgnc3RyaW5nJywgJycpLnJlcGxhY2UoL1xcd1xcUyovZywgZnVuY3Rpb24odHh0KXtyZXR1cm4gdHh0LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdHh0LnN1YnN0cigxKS50b0xvd2VyQ2FzZSgpOyB9KSxcblx0XHRcdFx0XHRcdFx0XHRkYXRhOiBrZXksXG5cdFx0XHRcdFx0XHRcdFx0dHlwZTogdHlwZSxcblx0XHRcdFx0XHRcdFx0XHRzdWJEYXRhOiBzdWJLZXksXG5cdFx0XHRcdFx0XHRcdFx0c2VsZWN0ZWQ6IHRydWUsXG5cdFx0XHRcdFx0XHRcdFx0c3VidHlwZTogdHlwZW9mKHN1YktleSlcblx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0bGV0IHN1YkRhdGFLZXlzID0gT2JqZWN0LmtleXModGhpcy5kYXRhW2tleV0pO1xuXHRcdFx0XHRcdGlmIChzdWJEYXRhS2V5cy5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdHN1YkRhdGFLZXlzLmZpbHRlcihhID0+IGEgIT09ICdfaWQnICYmICFhLnN0YXJ0c1dpdGgoJ2lkXycpKS5mb3JFYWNoKHN1YktleSA9PiB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuZGlhbG9nRGF0YS5wdXNoKHtcblx0XHRcdFx0XHRcdFx0XHRsYWJlbDoga2V5LnJlcGxhY2UobmV3IFJlZ0V4cCgnXycsICdnJyksICcgJykucmVwbGFjZSgnc3RyaW5nJywgJycpLnJlcGxhY2UoL1xcd1xcUyovZywgZnVuY3Rpb24odHh0KXtyZXR1cm4gdHh0LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdHh0LnN1YnN0cigxKS50b0xvd2VyQ2FzZSgpOyB9KSxcblx0XHRcdFx0XHRcdFx0XHRzdWJMYWJlbDogc3ViS2V5LnJlcGxhY2UobmV3IFJlZ0V4cCgnXycsICdnJyksICcgJykucmVwbGFjZSgnc3RyaW5nJywgJycpLnJlcGxhY2UoL1xcd1xcUyovZywgZnVuY3Rpb24odHh0KXtyZXR1cm4gdHh0LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdHh0LnN1YnN0cigxKS50b0xvd2VyQ2FzZSgpOyB9KSxcblx0XHRcdFx0XHRcdFx0XHRkYXRhOiBrZXksXG5cdFx0XHRcdFx0XHRcdFx0c3ViRGF0YTogc3ViS2V5LFxuXHRcdFx0XHRcdFx0XHRcdHN1YnR5cGU6IG51bGwsXG5cdFx0XHRcdFx0XHRcdFx0c2VsZWN0ZWQ6IHRydWUsXG5cdFx0XHRcdFx0XHRcdFx0dHlwZTogdHlwZVxuXHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdHRoaXMuZGlhbG9nRGF0YS5wdXNoKHtcblx0XHRcdFx0XHRcdFx0bGFiZWw6IGtleS5yZXBsYWNlKG5ldyBSZWdFeHAoJ18nLCAnZycpLCAnICcpLnJlcGxhY2UoJ3N0cmluZycsICcnKS5yZXBsYWNlKC9cXHdcXFMqL2csIGZ1bmN0aW9uKHR4dCl7cmV0dXJuIHR4dC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHR4dC5zdWJzdHIoMSkudG9Mb3dlckNhc2UoKTsgfSksXG5cdFx0XHRcdFx0XHRcdGRhdGE6IGtleSxcblx0XHRcdFx0XHRcdFx0c2VsZWN0ZWQ6IHRydWUsXG5cdFx0XHRcdFx0XHRcdHR5cGU6IHR5cGUsXG5cdFx0XHRcdFx0XHRcdHN1YkRhdGE6IG51bGwsXG5cdFx0XHRcdFx0XHRcdHN1YkxhYmVsOiBudWxsLFxuXHRcdFx0XHRcdFx0XHRzdWJ0eXBlOiBudWxsXG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGVsc2Uge1xuXHRcdFx0XHR0aGlzLmRpYWxvZ0RhdGEucHVzaCh7XG5cdFx0XHRcdFx0bGFiZWw6IGtleS5yZXBsYWNlKG5ldyBSZWdFeHAoJ18nLCAnZycpLCAnICcpLnJlcGxhY2UoJ3N0cmluZycsICcnKS5yZXBsYWNlKC9cXHdcXFMqL2csIGZ1bmN0aW9uKHR4dCl7cmV0dXJuIHR4dC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHR4dC5zdWJzdHIoMSkudG9Mb3dlckNhc2UoKTsgfSksXG5cdFx0XHRcdFx0ZGF0YToga2V5LFxuXHRcdFx0XHRcdHNlbGVjdGVkOiB0cnVlLFxuXHRcdFx0XHRcdHR5cGU6IHR5cGUsXG5cdFx0XHRcdFx0c3ViRGF0YTogbnVsbCxcblx0XHRcdFx0XHRzdWJMYWJlbDogbnVsbCxcblx0XHRcdFx0XHRzdWJ0eXBlOiBudWxsXG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0Y2hhbmdlU2VsZWN0ZWQobGFiZWw6IFNlbGVjdERhdGFMYWJlbE1vZGVsKSB7XG5cdFx0bGFiZWwuc2VsZWN0ZWQgPSAhbGFiZWwuc2VsZWN0ZWQ7XG5cblx0XHRpZiAobGFiZWwudHlwZSA9PT0gJ2FycmF5JyAmJiBsYWJlbC5zdWJ0eXBlID09PSBudWxsKSB7XG5cdFx0XHR0aGlzLmRpYWxvZ0RhdGEuZmlsdGVyKGEgPT4gYS5sYWJlbCA9PT0gbGFiZWwubGFiZWwpLmZvckVhY2goc3VidHlwZSA9PiB7XG5cdFx0XHRcdHN1YnR5cGUuc2VsZWN0ZWQgPSBsYWJlbC5zZWxlY3RlZDtcblx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdHN1Ym1pdCgpIHtcblx0XHRyZXR1cm4gdGhpcy5kaWFsb2dEYXRhO1xuXHR9XG59Il19