monkey-front-core 0.0.463 → 0.0.466

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 (376) hide show
  1. package/README.md +24 -24
  2. package/esm2020/lib/components/alerts/alerts.component.mjs +45 -45
  3. package/esm2020/lib/components/alerts/alerts.module.mjs +21 -21
  4. package/esm2020/lib/components/alerts/index.mjs +3 -3
  5. package/esm2020/lib/components/closed-to-maintenance/closed-to-maintenance.component.mjs +29 -29
  6. package/esm2020/lib/components/closed-to-maintenance/closed-to-maintenance.module.mjs +43 -43
  7. package/esm2020/lib/components/closed-to-maintenance/index.mjs +3 -3
  8. package/esm2020/lib/components/currency-config/currency-config.component.mjs +39 -39
  9. package/esm2020/lib/components/currency-config/currency-config.module.mjs +39 -39
  10. package/esm2020/lib/components/currency-config/index.mjs +3 -3
  11. package/esm2020/lib/components/index.mjs +6 -6
  12. package/esm2020/lib/components/progress-bar/index.mjs +4 -4
  13. package/esm2020/lib/components/progress-bar/progress-bar.component.mjs +23 -23
  14. package/esm2020/lib/components/progress-bar/progress-bar.module.mjs +18 -18
  15. package/esm2020/lib/components/progress-bar/progress-bar.service.mjs +50 -50
  16. package/esm2020/lib/components/version-changed/index.mjs +3 -3
  17. package/esm2020/lib/components/version-changed/version-changed.component.mjs +24 -24
  18. package/esm2020/lib/components/version-changed/version-changed.module.mjs +39 -39
  19. package/esm2020/lib/core/decorators/index.mjs +5 -5
  20. package/esm2020/lib/core/decorators/monkeyecx-charts-decorators.mjs +40 -40
  21. package/esm2020/lib/core/decorators/monkeyecx-decorators.mjs +111 -111
  22. package/esm2020/lib/core/decorators/monkeyecx-download-decorators.mjs +26 -26
  23. package/esm2020/lib/core/decorators/monkeyecx-upload-decorators.mjs +26 -26
  24. package/esm2020/lib/core/directives/index.mjs +13 -13
  25. package/esm2020/lib/core/directives/monkeyecx-directives-module.mjs +73 -73
  26. package/esm2020/lib/core/directives/monkeyecx-drag-drop.mjs +57 -57
  27. package/esm2020/lib/core/directives/monkeyecx-feature-by-program-directive.mjs +54 -54
  28. package/esm2020/lib/core/directives/monkeyecx-feature-directive.mjs +68 -68
  29. package/esm2020/lib/core/directives/monkeyecx-format-currency.mjs +44 -44
  30. package/esm2020/lib/core/directives/monkeyecx-format-upper.mjs +67 -67
  31. package/esm2020/lib/core/directives/monkeyecx-only-alpha-numeric-directive.mjs +28 -28
  32. package/esm2020/lib/core/directives/monkeyecx-only-number-directive.mjs +28 -28
  33. package/esm2020/lib/core/directives/monkeyecx-popover-options.directive.mjs +39 -39
  34. package/esm2020/lib/core/directives/monkeyecx-popover.directive.mjs +212 -212
  35. package/esm2020/lib/core/directives/monkeyecx-security-directive.mjs +75 -75
  36. package/esm2020/lib/core/directives/monkeyecx-tooltip-directive.mjs +123 -123
  37. package/esm2020/lib/core/index.mjs +10 -10
  38. package/esm2020/lib/core/interceptors/index.mjs +6 -6
  39. package/esm2020/lib/core/interceptors/monkeyecx-http-config-error.interceptor.mjs +49 -49
  40. package/esm2020/lib/core/interceptors/monkeyecx-http-config-header.interceptor.mjs +59 -59
  41. package/esm2020/lib/core/interceptors/monkeyecx-http-config-interceptor.module.mjs +47 -47
  42. package/esm2020/lib/core/interceptors/monkeyecx-http-config-loading-in-progress.interceptor.mjs +43 -43
  43. package/esm2020/lib/core/interceptors/monkeyecx-http-config-queue.interceptor.mjs +37 -37
  44. package/esm2020/lib/core/interfaces/index.mjs +35 -35
  45. package/esm2020/lib/core/interfaces/monkeyecx-auth-credentials.mjs +2 -2
  46. package/esm2020/lib/core/interfaces/monkeyecx-company-pendencies.mjs +2 -2
  47. package/esm2020/lib/core/interfaces/monkeyecx-company.mjs +2 -2
  48. package/esm2020/lib/core/interfaces/monkeyecx-config-bootstrap.mjs +1 -1
  49. package/esm2020/lib/core/interfaces/monkeyecx-config.mjs +2 -2
  50. package/esm2020/lib/core/interfaces/monkeyecx-country-security.mjs +2 -2
  51. package/esm2020/lib/core/interfaces/monkeyecx-error-response.mjs +2 -2
  52. package/esm2020/lib/core/interfaces/monkeyecx-filter.mjs +2 -2
  53. package/esm2020/lib/core/interfaces/monkeyecx-handled-error-response.mjs +2 -2
  54. package/esm2020/lib/core/interfaces/monkeyecx-header-credentials.mjs +2 -2
  55. package/esm2020/lib/core/interfaces/monkeyecx-intercom-options.mjs +2 -2
  56. package/esm2020/lib/core/interfaces/monkeyecx-interface.mjs +1 -1
  57. package/esm2020/lib/core/interfaces/monkeyecx-me-credentials.mjs +2 -2
  58. package/esm2020/lib/core/interfaces/monkeyecx-navigation.mjs +2 -2
  59. package/esm2020/lib/core/interfaces/monkeyecx-pagination.mjs +1 -1
  60. package/esm2020/lib/core/interfaces/monkeyecx-program.mjs +2 -2
  61. package/esm2020/lib/core/interfaces/monkeyecx-releases.mjs +2 -2
  62. package/esm2020/lib/core/interfaces/monkeyecx-request-in-progress.mjs +2 -2
  63. package/esm2020/lib/core/interfaces/monkeyecx-request-paged.mjs +2 -2
  64. package/esm2020/lib/core/interfaces/monkeyecx-resolver.mjs +2 -2
  65. package/esm2020/lib/core/interfaces/monkeyecx-response-links.mjs +2 -2
  66. package/esm2020/lib/core/interfaces/monkeyecx-response-paged.mjs +2 -2
  67. package/esm2020/lib/core/interfaces/monkeyecx-saved-state.mjs +2 -2
  68. package/esm2020/lib/core/interfaces/monkeyecx-scroll-options.mjs +2 -2
  69. package/esm2020/lib/core/interfaces/monkeyecx-service-credentials.mjs +2 -2
  70. package/esm2020/lib/core/interfaces/monkeyecx-storage.mjs +2 -2
  71. package/esm2020/lib/core/interfaces/monkeyecx-store.mjs +2 -2
  72. package/esm2020/lib/core/interfaces/monkeyecx-support-options.mjs +2 -2
  73. package/esm2020/lib/core/interfaces/monkeyecx-token-credentials.mjs +1 -1
  74. package/esm2020/lib/core/interfaces/monkeyecx-translate-options.mjs +2 -2
  75. package/esm2020/lib/core/interfaces/request-download/index.mjs +4 -4
  76. package/esm2020/lib/core/interfaces/request-download/monkeyecx-request-download.mjs +2 -2
  77. package/esm2020/lib/core/interfaces/request-download/monkeyecx-request-downloaded.mjs +2 -2
  78. package/esm2020/lib/core/interfaces/request-download/monkeyecx-request-item-download.mjs +2 -2
  79. package/esm2020/lib/core/interfaces/request-queue/index.mjs +4 -4
  80. package/esm2020/lib/core/interfaces/request-queue/monkeyecx-request-item-queue.mjs +2 -2
  81. package/esm2020/lib/core/interfaces/request-queue/monkeyecx-request-progress-queue.mjs +2 -2
  82. package/esm2020/lib/core/interfaces/request-queue/monkeyecx-request-queue.mjs +2 -2
  83. package/esm2020/lib/core/interfaces/request-upload/index.mjs +3 -3
  84. package/esm2020/lib/core/interfaces/request-upload/monkeyecx-request-item-upload.mjs +2 -2
  85. package/esm2020/lib/core/interfaces/request-upload/monkeyecx-request-upload.mjs +2 -2
  86. package/esm2020/lib/core/interfaces/schedules/index.mjs +2 -2
  87. package/esm2020/lib/core/interfaces/schedules/monkeyecx-request-schedule.mjs +2 -2
  88. package/esm2020/lib/core/model/index.mjs +3 -3
  89. package/esm2020/lib/core/model/monkeyecx-links.model.mjs +8 -8
  90. package/esm2020/lib/core/model/monkeyecx-model.mjs +25 -25
  91. package/esm2020/lib/core/pipes/index.mjs +22 -22
  92. package/esm2020/lib/core/pipes/monkeyecx-blob-secure.mjs +26 -26
  93. package/esm2020/lib/core/pipes/monkeyecx-display-first-name.mjs +19 -19
  94. package/esm2020/lib/core/pipes/monkeyecx-display-initials.mjs +21 -21
  95. package/esm2020/lib/core/pipes/monkeyecx-display-support-phone.mjs +33 -33
  96. package/esm2020/lib/core/pipes/monkeyecx-format-address.mjs +20 -20
  97. package/esm2020/lib/core/pipes/monkeyecx-format-beautify-json.mjs +38 -38
  98. package/esm2020/lib/core/pipes/monkeyecx-format-currency.mjs +27 -27
  99. package/esm2020/lib/core/pipes/monkeyecx-format-date-group.mjs +45 -45
  100. package/esm2020/lib/core/pipes/monkeyecx-format-date-timelapse.mjs +32 -32
  101. package/esm2020/lib/core/pipes/monkeyecx-format-date-unix-timelapse.mjs +36 -36
  102. package/esm2020/lib/core/pipes/monkeyecx-format-document.mjs +20 -20
  103. package/esm2020/lib/core/pipes/monkeyecx-format-number.mjs +20 -20
  104. package/esm2020/lib/core/pipes/monkeyecx-format-phone.mjs +42 -42
  105. package/esm2020/lib/core/pipes/monkeyecx-format-size.mjs +20 -20
  106. package/esm2020/lib/core/pipes/monkeyecx-format-tax.mjs +23 -23
  107. package/esm2020/lib/core/pipes/monkeyecx-format-type-document.mjs +19 -19
  108. package/esm2020/lib/core/pipes/monkeyecx-format-value.mjs +19 -19
  109. package/esm2020/lib/core/pipes/monkeyecx-format-zipcode.mjs +19 -19
  110. package/esm2020/lib/core/pipes/monkeyecx-pipes.module.mjs +117 -117
  111. package/esm2020/lib/core/pipes/monkeyecx-text-truncate.mjs +23 -23
  112. package/esm2020/lib/core/pipes/monkeyecx-truncate-qtd.mjs +16 -16
  113. package/esm2020/lib/core/services/alerts/index.mjs +2 -2
  114. package/esm2020/lib/core/services/alerts/monkeyecx-alerts.service.mjs +42 -42
  115. package/esm2020/lib/core/services/auth/index.mjs +6 -6
  116. package/esm2020/lib/core/services/auth/monkeyecx-auth-guard-company.service.mjs +28 -28
  117. package/esm2020/lib/core/services/auth/monkeyecx-auth-guard-login.service.mjs +27 -27
  118. package/esm2020/lib/core/services/auth/monkeyecx-auth-guard-role.service.mjs +79 -79
  119. package/esm2020/lib/core/services/auth/monkeyecx-auth-guard.service.mjs +26 -26
  120. package/esm2020/lib/core/services/auth/monkeyecx-authentication.service.mjs +78 -78
  121. package/esm2020/lib/core/services/commons/index.mjs +3 -3
  122. package/esm2020/lib/core/services/commons/monkeyecx-commons-resolve.service.mjs +121 -121
  123. package/esm2020/lib/core/services/commons/monkeyecx-commons.service.mjs +362 -362
  124. package/esm2020/lib/core/services/config/monkeyecx-alerts-config.service.mjs +42 -42
  125. package/esm2020/lib/core/services/config/monkeyecx-config.module.mjs +28 -28
  126. package/esm2020/lib/core/services/config/monkeyecx-config.service.mjs +107 -107
  127. package/esm2020/lib/core/services/config/monkeyecx-currency-config.service.mjs +84 -84
  128. package/esm2020/lib/core/services/config/monkeyecx-error-config.service.mjs +85 -85
  129. package/esm2020/lib/core/services/config/monkeyecx-feature-toggle.service.mjs +76 -76
  130. package/esm2020/lib/core/services/config/monkeyecx-gtm-config.service.mjs +50 -50
  131. package/esm2020/lib/core/services/config/monkeyecx-i18n-config.service.mjs +152 -152
  132. package/esm2020/lib/core/services/config/monkeyecx-logs-config.service.mjs +34 -34
  133. package/esm2020/lib/core/services/config/monkeyecx-maintenance-config.service.mjs +37 -37
  134. package/esm2020/lib/core/services/config/monkeyecx-security-console-config.service.mjs +47 -47
  135. package/esm2020/lib/core/services/config/monkeyecx-service-worker-config.service.mjs +53 -53
  136. package/esm2020/lib/core/services/error/index.mjs +5 -5
  137. package/esm2020/lib/core/services/error/monkeyecx-error-handling.module.mjs +27 -27
  138. package/esm2020/lib/core/services/error/monkeyecx-error-handling.service.mjs +37 -37
  139. package/esm2020/lib/core/services/error/monkeyecx-http-error-handling.service.mjs +138 -138
  140. package/esm2020/lib/core/services/error/monkeyecx-others-errors-handling.service.mjs +29 -29
  141. package/esm2020/lib/core/services/index.mjs +26 -26
  142. package/esm2020/lib/core/services/logged/index.mjs +2 -2
  143. package/esm2020/lib/core/services/logged/monkeyecx-logged-handling.service.mjs +40 -40
  144. package/esm2020/lib/core/services/monkeyecx-handling.service.mjs +50 -50
  145. package/esm2020/lib/core/services/monkeyecx-service.service.mjs +104 -104
  146. package/esm2020/lib/core/services/pagination/index.mjs +2 -2
  147. package/esm2020/lib/core/services/pagination/monkeyecx-pagination.service.mjs +29 -29
  148. package/esm2020/lib/core/services/request-download/index.mjs +3 -3
  149. package/esm2020/lib/core/services/request-download/monkeyecx-request-download-handling.service.mjs +93 -93
  150. package/esm2020/lib/core/services/request-download/monkeyecx-request-downloaded-handling.service.mjs +61 -61
  151. package/esm2020/lib/core/services/request-paged/index.mjs +2 -2
  152. package/esm2020/lib/core/services/request-paged/monkeyecx-request-request-paged-handling.mjs +42 -42
  153. package/esm2020/lib/core/services/request-queue/index.mjs +3 -3
  154. package/esm2020/lib/core/services/request-queue/monkeyecx-request-queue-handling.service.mjs +114 -114
  155. package/esm2020/lib/core/services/request-queue/monkeyecx-request-queue-modal-handling.service.mjs +119 -119
  156. package/esm2020/lib/core/services/routes/index.mjs +2 -2
  157. package/esm2020/lib/core/services/routes/monkeyecx-dicovery-params.service.mjs +54 -54
  158. package/esm2020/lib/core/services/schedules/index.mjs +2 -2
  159. package/esm2020/lib/core/services/schedules/monkeyecx-request-schedule.service.mjs +188 -188
  160. package/esm2020/lib/core/services/storage/index.mjs +3 -3
  161. package/esm2020/lib/core/services/storage/monkeyecx-cookie-storage.service.mjs +32 -32
  162. package/esm2020/lib/core/services/storage/monkeyecx-token-storage.service.mjs +236 -236
  163. package/esm2020/lib/core/services/store/index.mjs +3 -3
  164. package/esm2020/lib/core/services/store/monkeyecx-store.actions.mjs +26 -24
  165. package/esm2020/lib/core/services/store/monkeyecx-store.selector.mjs +68 -74
  166. package/esm2020/lib/core/services/store/monkeyecx-store.service.mjs +189 -189
  167. package/esm2020/lib/core/specification-search/index.mjs +2 -2
  168. package/esm2020/lib/core/specification-search/monkeyecx-specification-search.mjs +108 -108
  169. package/esm2020/lib/core/utils/decorators-utils.mjs +40 -40
  170. package/esm2020/lib/core/utils/index.mjs +8 -8
  171. package/esm2020/lib/core/utils/statics.mjs +45 -45
  172. package/esm2020/lib/core/utils/utils.mjs +267 -267
  173. package/esm2020/lib/core/utils/validate-utils.mjs +205 -205
  174. package/esm2020/lib/core/utils/validators.mjs +268 -268
  175. package/esm2020/lib/monkey-front-core.module.mjs +71 -71
  176. package/esm2020/lib/store/actions/index.mjs +2 -2
  177. package/esm2020/lib/store/actions/monkeyecx-storage.actions.mjs +8 -8
  178. package/esm2020/lib/store/index.mjs +4 -4
  179. package/esm2020/lib/store/reducers/index.mjs +3 -3
  180. package/esm2020/lib/store/reducers/monkeyecx-seeder.reducer.mjs +53 -53
  181. package/esm2020/lib/store/reducers/monkeyecx-storage.reducer.mjs +40 -40
  182. package/esm2020/lib/store/selectors/index.mjs +2 -2
  183. package/esm2020/lib/store/selectors/monkeyecx-storage.selector.mjs +17 -17
  184. package/esm2020/monkey-front-core.mjs +4 -4
  185. package/esm2020/public-api.mjs +8 -8
  186. package/fesm2015/monkey-front-core.mjs +5950 -5955
  187. package/fesm2015/monkey-front-core.mjs.map +1 -1
  188. package/fesm2020/monkey-front-core.mjs +6008 -6012
  189. package/fesm2020/monkey-front-core.mjs.map +1 -1
  190. package/lib/components/alerts/alerts.component.d.ts +22 -22
  191. package/lib/components/alerts/alerts.module.d.ts +10 -10
  192. package/lib/components/alerts/index.d.ts +2 -2
  193. package/lib/components/closed-to-maintenance/closed-to-maintenance.component.d.ts +13 -13
  194. package/lib/components/closed-to-maintenance/closed-to-maintenance.module.d.ts +11 -11
  195. package/lib/components/closed-to-maintenance/index.d.ts +2 -2
  196. package/lib/components/currency-config/currency-config.component.d.ts +17 -17
  197. package/lib/components/currency-config/currency-config.module.d.ts +10 -10
  198. package/lib/components/currency-config/index.d.ts +2 -2
  199. package/lib/components/index.d.ts +5 -5
  200. package/lib/components/progress-bar/index.d.ts +3 -3
  201. package/lib/components/progress-bar/progress-bar.component.d.ts +11 -11
  202. package/lib/components/progress-bar/progress-bar.module.d.ts +8 -8
  203. package/lib/components/progress-bar/progress-bar.service.d.ts +14 -14
  204. package/lib/components/version-changed/index.d.ts +2 -2
  205. package/lib/components/version-changed/version-changed.component.d.ts +9 -9
  206. package/lib/components/version-changed/version-changed.module.d.ts +10 -10
  207. package/lib/core/decorators/index.d.ts +4 -4
  208. package/lib/core/decorators/monkeyecx-charts-decorators.d.ts +1 -1
  209. package/lib/core/decorators/monkeyecx-decorators.d.ts +7 -7
  210. package/lib/core/decorators/monkeyecx-download-decorators.d.ts +2 -2
  211. package/lib/core/decorators/monkeyecx-upload-decorators.d.ts +2 -2
  212. package/lib/core/directives/index.d.ts +12 -12
  213. package/lib/core/directives/monkeyecx-directives-module.d.ts +19 -19
  214. package/lib/core/directives/monkeyecx-drag-drop.d.ts +12 -12
  215. package/lib/core/directives/monkeyecx-feature-by-program-directive.d.ts +16 -16
  216. package/lib/core/directives/monkeyecx-feature-directive.d.ts +17 -17
  217. package/lib/core/directives/monkeyecx-format-currency.d.ts +16 -16
  218. package/lib/core/directives/monkeyecx-format-upper.d.ts +18 -18
  219. package/lib/core/directives/monkeyecx-only-alpha-numeric-directive.d.ts +9 -9
  220. package/lib/core/directives/monkeyecx-only-number-directive.d.ts +9 -9
  221. package/lib/core/directives/monkeyecx-popover-options.directive.d.ts +19 -19
  222. package/lib/core/directives/monkeyecx-popover.directive.d.ts +43 -43
  223. package/lib/core/directives/monkeyecx-security-directive.d.ts +18 -18
  224. package/lib/core/directives/monkeyecx-tooltip-directive.d.ts +23 -23
  225. package/lib/core/index.d.ts +9 -9
  226. package/lib/core/interceptors/index.d.ts +5 -5
  227. package/lib/core/interceptors/monkeyecx-http-config-error.interceptor.d.ts +18 -18
  228. package/lib/core/interceptors/monkeyecx-http-config-header.interceptor.d.ts +16 -16
  229. package/lib/core/interceptors/monkeyecx-http-config-interceptor.module.d.ts +9 -9
  230. package/lib/core/interceptors/monkeyecx-http-config-loading-in-progress.interceptor.d.ts +12 -12
  231. package/lib/core/interceptors/monkeyecx-http-config-queue.interceptor.d.ts +14 -14
  232. package/lib/core/interfaces/index.d.ts +34 -34
  233. package/lib/core/interfaces/monkeyecx-auth-credentials.d.ts +15 -15
  234. package/lib/core/interfaces/monkeyecx-company-pendencies.d.ts +14 -14
  235. package/lib/core/interfaces/monkeyecx-company.d.ts +10 -10
  236. package/lib/core/interfaces/monkeyecx-config-bootstrap.d.ts +14 -14
  237. package/lib/core/interfaces/monkeyecx-config.d.ts +132 -132
  238. package/lib/core/interfaces/monkeyecx-country-security.d.ts +4 -4
  239. package/lib/core/interfaces/monkeyecx-error-response.d.ts +5 -5
  240. package/lib/core/interfaces/monkeyecx-filter.d.ts +42 -42
  241. package/lib/core/interfaces/monkeyecx-handled-error-response.d.ts +10 -10
  242. package/lib/core/interfaces/monkeyecx-header-credentials.d.ts +4 -4
  243. package/lib/core/interfaces/monkeyecx-intercom-options.d.ts +4 -4
  244. package/lib/core/interfaces/monkeyecx-interface.d.ts +11 -11
  245. package/lib/core/interfaces/monkeyecx-me-credentials.d.ts +22 -22
  246. package/lib/core/interfaces/monkeyecx-navigation.d.ts +27 -27
  247. package/lib/core/interfaces/monkeyecx-pagination.d.ts +26 -26
  248. package/lib/core/interfaces/monkeyecx-program.d.ts +10 -10
  249. package/lib/core/interfaces/monkeyecx-releases.d.ts +9 -9
  250. package/lib/core/interfaces/monkeyecx-request-in-progress.d.ts +3 -3
  251. package/lib/core/interfaces/monkeyecx-request-paged.d.ts +23 -23
  252. package/lib/core/interfaces/monkeyecx-resolver.d.ts +39 -39
  253. package/lib/core/interfaces/monkeyecx-response-links.d.ts +11 -11
  254. package/lib/core/interfaces/monkeyecx-response-paged.d.ts +6 -6
  255. package/lib/core/interfaces/monkeyecx-saved-state.d.ts +5 -5
  256. package/lib/core/interfaces/monkeyecx-scroll-options.d.ts +5 -5
  257. package/lib/core/interfaces/monkeyecx-service-credentials.d.ts +12 -12
  258. package/lib/core/interfaces/monkeyecx-storage.d.ts +38 -38
  259. package/lib/core/interfaces/monkeyecx-store.d.ts +35 -34
  260. package/lib/core/interfaces/monkeyecx-support-options.d.ts +4 -4
  261. package/lib/core/interfaces/monkeyecx-token-credentials.d.ts +21 -21
  262. package/lib/core/interfaces/monkeyecx-translate-options.d.ts +4 -4
  263. package/lib/core/interfaces/request-download/index.d.ts +3 -3
  264. package/lib/core/interfaces/request-download/monkeyecx-request-download.d.ts +10 -10
  265. package/lib/core/interfaces/request-download/monkeyecx-request-downloaded.d.ts +7 -7
  266. package/lib/core/interfaces/request-download/monkeyecx-request-item-download.d.ts +7 -7
  267. package/lib/core/interfaces/request-queue/index.d.ts +3 -3
  268. package/lib/core/interfaces/request-queue/monkeyecx-request-item-queue.d.ts +7 -7
  269. package/lib/core/interfaces/request-queue/monkeyecx-request-progress-queue.d.ts +6 -6
  270. package/lib/core/interfaces/request-queue/monkeyecx-request-queue.d.ts +8 -8
  271. package/lib/core/interfaces/request-upload/index.d.ts +2 -2
  272. package/lib/core/interfaces/request-upload/monkeyecx-request-item-upload.d.ts +5 -5
  273. package/lib/core/interfaces/request-upload/monkeyecx-request-upload.d.ts +10 -10
  274. package/lib/core/interfaces/schedules/index.d.ts +1 -1
  275. package/lib/core/interfaces/schedules/monkeyecx-request-schedule.d.ts +13 -13
  276. package/lib/core/model/index.d.ts +2 -2
  277. package/lib/core/model/monkeyecx-links.model.d.ts +4 -4
  278. package/lib/core/model/monkeyecx-model.d.ts +13 -13
  279. package/lib/core/pipes/index.d.ts +21 -21
  280. package/lib/core/pipes/monkeyecx-blob-secure.d.ts +13 -13
  281. package/lib/core/pipes/monkeyecx-display-first-name.d.ts +7 -7
  282. package/lib/core/pipes/monkeyecx-display-initials.d.ts +7 -7
  283. package/lib/core/pipes/monkeyecx-display-support-phone.d.ts +18 -18
  284. package/lib/core/pipes/monkeyecx-format-address.d.ts +14 -14
  285. package/lib/core/pipes/monkeyecx-format-beautify-json.d.ts +8 -8
  286. package/lib/core/pipes/monkeyecx-format-currency.d.ts +11 -11
  287. package/lib/core/pipes/monkeyecx-format-date-group.d.ts +11 -11
  288. package/lib/core/pipes/monkeyecx-format-date-timelapse.d.ts +7 -7
  289. package/lib/core/pipes/monkeyecx-format-date-unix-timelapse.d.ts +7 -7
  290. package/lib/core/pipes/monkeyecx-format-document.d.ts +7 -7
  291. package/lib/core/pipes/monkeyecx-format-number.d.ts +7 -7
  292. package/lib/core/pipes/monkeyecx-format-phone.d.ts +7 -7
  293. package/lib/core/pipes/monkeyecx-format-size.d.ts +7 -7
  294. package/lib/core/pipes/monkeyecx-format-tax.d.ts +7 -7
  295. package/lib/core/pipes/monkeyecx-format-type-document.d.ts +7 -7
  296. package/lib/core/pipes/monkeyecx-format-value.d.ts +7 -7
  297. package/lib/core/pipes/monkeyecx-format-zipcode.d.ts +7 -7
  298. package/lib/core/pipes/monkeyecx-pipes.module.d.ts +26 -26
  299. package/lib/core/pipes/monkeyecx-text-truncate.d.ts +7 -7
  300. package/lib/core/pipes/monkeyecx-truncate-qtd.d.ts +7 -7
  301. package/lib/core/services/alerts/index.d.ts +1 -1
  302. package/lib/core/services/alerts/monkeyecx-alerts.service.d.ts +21 -21
  303. package/lib/core/services/auth/index.d.ts +5 -5
  304. package/lib/core/services/auth/monkeyecx-auth-guard-company.service.d.ts +10 -10
  305. package/lib/core/services/auth/monkeyecx-auth-guard-login.service.d.ts +10 -10
  306. package/lib/core/services/auth/monkeyecx-auth-guard-role.service.d.ts +16 -16
  307. package/lib/core/services/auth/monkeyecx-auth-guard.service.d.ts +10 -10
  308. package/lib/core/services/auth/monkeyecx-authentication.service.d.ts +35 -35
  309. package/lib/core/services/commons/index.d.ts +2 -2
  310. package/lib/core/services/commons/monkeyecx-commons-resolve.service.d.ts +53 -53
  311. package/lib/core/services/commons/monkeyecx-commons.service.d.ts +120 -120
  312. package/lib/core/services/config/monkeyecx-alerts-config.service.d.ts +11 -11
  313. package/lib/core/services/config/monkeyecx-config.module.d.ts +9 -9
  314. package/lib/core/services/config/monkeyecx-config.service.d.ts +36 -36
  315. package/lib/core/services/config/monkeyecx-currency-config.service.d.ts +15 -15
  316. package/lib/core/services/config/monkeyecx-error-config.service.d.ts +8 -8
  317. package/lib/core/services/config/monkeyecx-feature-toggle.service.d.ts +16 -16
  318. package/lib/core/services/config/monkeyecx-gtm-config.service.d.ts +8 -8
  319. package/lib/core/services/config/monkeyecx-i18n-config.service.d.ts +18 -18
  320. package/lib/core/services/config/monkeyecx-logs-config.service.d.ts +7 -7
  321. package/lib/core/services/config/monkeyecx-maintenance-config.service.d.ts +13 -13
  322. package/lib/core/services/config/monkeyecx-security-console-config.service.d.ts +12 -12
  323. package/lib/core/services/config/monkeyecx-service-worker-config.service.d.ts +16 -16
  324. package/lib/core/services/error/index.d.ts +4 -4
  325. package/lib/core/services/error/monkeyecx-error-handling.module.d.ts +9 -9
  326. package/lib/core/services/error/monkeyecx-error-handling.service.d.ts +9 -9
  327. package/lib/core/services/error/monkeyecx-http-error-handling.service.d.ts +26 -26
  328. package/lib/core/services/error/monkeyecx-others-errors-handling.service.d.ts +9 -9
  329. package/lib/core/services/index.d.ts +25 -25
  330. package/lib/core/services/logged/index.d.ts +1 -1
  331. package/lib/core/services/logged/monkeyecx-logged-handling.service.d.ts +14 -14
  332. package/lib/core/services/monkeyecx-handling.service.d.ts +22 -22
  333. package/lib/core/services/monkeyecx-service.service.d.ts +18 -18
  334. package/lib/core/services/pagination/index.d.ts +1 -1
  335. package/lib/core/services/pagination/monkeyecx-pagination.service.d.ts +9 -9
  336. package/lib/core/services/request-download/index.d.ts +2 -2
  337. package/lib/core/services/request-download/monkeyecx-request-download-handling.service.d.ts +18 -18
  338. package/lib/core/services/request-download/monkeyecx-request-downloaded-handling.service.d.ts +16 -16
  339. package/lib/core/services/request-paged/index.d.ts +1 -1
  340. package/lib/core/services/request-paged/monkeyecx-request-request-paged-handling.d.ts +11 -11
  341. package/lib/core/services/request-queue/index.d.ts +2 -2
  342. package/lib/core/services/request-queue/monkeyecx-request-queue-handling.service.d.ts +21 -21
  343. package/lib/core/services/request-queue/monkeyecx-request-queue-modal-handling.service.d.ts +23 -23
  344. package/lib/core/services/routes/index.d.ts +1 -1
  345. package/lib/core/services/routes/monkeyecx-dicovery-params.service.d.ts +13 -13
  346. package/lib/core/services/schedules/index.d.ts +1 -1
  347. package/lib/core/services/schedules/monkeyecx-request-schedule.service.d.ts +47 -47
  348. package/lib/core/services/storage/index.d.ts +2 -2
  349. package/lib/core/services/storage/monkeyecx-cookie-storage.service.d.ts +11 -11
  350. package/lib/core/services/storage/monkeyecx-token-storage.service.d.ts +30 -30
  351. package/lib/core/services/store/index.d.ts +3 -3
  352. package/lib/core/services/store/monkeyecx-store.actions.d.ts +56 -51
  353. package/lib/core/services/store/monkeyecx-store.selector.d.ts +28 -31
  354. package/lib/core/services/store/monkeyecx-store.service.d.ts +50 -50
  355. package/lib/core/specification-search/index.d.ts +1 -1
  356. package/lib/core/specification-search/monkeyecx-specification-search.d.ts +20 -20
  357. package/lib/core/utils/decorators-utils.d.ts +5 -5
  358. package/lib/core/utils/index.d.ts +6 -6
  359. package/lib/core/utils/statics.d.ts +34 -34
  360. package/lib/core/utils/utils.d.ts +26 -26
  361. package/lib/core/utils/validate-utils.d.ts +66 -66
  362. package/lib/core/utils/validators.d.ts +36 -36
  363. package/lib/monkey-front-core.module.d.ts +19 -19
  364. package/lib/store/actions/index.d.ts +1 -1
  365. package/lib/store/actions/monkeyecx-storage.actions.d.ts +23 -23
  366. package/lib/store/index.d.ts +3 -3
  367. package/lib/store/reducers/index.d.ts +2 -2
  368. package/lib/store/reducers/monkeyecx-seeder.reducer.d.ts +2 -2
  369. package/lib/store/reducers/monkeyecx-storage.reducer.d.ts +13 -13
  370. package/lib/store/selectors/index.d.ts +1 -1
  371. package/lib/store/selectors/monkeyecx-storage.selector.d.ts +8 -8
  372. package/monkey-front-core-0.0.466.tgz +0 -0
  373. package/monkey-front-core.d.ts +5 -5
  374. package/package.json +1 -1
  375. package/public-api.d.ts +4 -4
  376. package/monkey-front-core-0.0.463.tgz +0 -0
@@ -1,121 +1,121 @@
1
- import { inject } from '@angular/core';
2
- import { Router, } from '@angular/router';
3
- import { Store } from '@ngrx/store';
4
- import { TranslateService } from '@ngx-translate/core';
5
- import { MonkeyEcxCommonsService } from '.';
6
- import { MonkeyEcxDiscoveryParamsService, MonkeyEcxPaginationService, } from '../..';
7
- import { MonkeyEcxUtils } from '../../utils';
8
- export class MonkeyEcxCommonsResolveService extends MonkeyEcxCommonsService {
9
- constructor(monkeyecxService, tokenStorage, config) {
10
- super(monkeyecxService, tokenStorage);
11
- this.route = null;
12
- this.currentRoute = null;
13
- this.paginationService = inject(MonkeyEcxPaginationService);
14
- this.translateService = inject(TranslateService);
15
- this.router = inject(Router);
16
- this.store = inject(Store);
17
- this.monkeyDiscovery = inject(MonkeyEcxDiscoveryParamsService);
18
- const { actions, selectors } = config;
19
- this.action = actions;
20
- this.selector = selectors;
21
- }
22
- async getData() {
23
- try {
24
- const { store, route, action, selector, tokenStorage } = this;
25
- const { companyId, companyType, governmentId } = await tokenStorage?.getToken();
26
- const identifier = `${companyId || governmentId}-${companyType}`;
27
- if (!route)
28
- return;
29
- const url = MonkeyEcxUtils.replaceVariables(route, { companyId });
30
- store.dispatch(action.load({ url, identifier }));
31
- this.__data$ = store.select(selector.selectByIdentifier({ identifier }));
32
- this.__control$ = store.select(selector.selectControl());
33
- if (selector?.selectLinks) {
34
- this.__pagination$ = store.select(selector.selectLinks({ identifier }));
35
- }
36
- if (selector?.selectPage) {
37
- this.__page$ = store.select(selector.selectPage({ identifier }));
38
- }
39
- }
40
- catch (e) {
41
- throw new Error(`MECX Core - Method getData -> ${e}`);
42
- }
43
- }
44
- async loadPage() {
45
- try {
46
- const { store, tokenStorage, action } = this;
47
- const { companyId, companyType, governmentId } = await tokenStorage?.getToken();
48
- store.dispatch(action.loadPagination({
49
- identifier: `${companyId || governmentId}-${companyType}`,
50
- pagination: {
51
- action: 'next',
52
- },
53
- }));
54
- }
55
- catch (e) {
56
- throw new Error(`MECX Core - Method loadPage -> ${e}`);
57
- }
58
- }
59
- /**
60
- * @description Inicializar a class genérica
61
- * @param (args: MonkeyEcxInitialResolverConfig)
62
- * => route é obrigátorio pois ele quem inicializa a store.
63
- * A searchClass só se faz necessaria quando for usar filtros
64
- */
65
- init(args) {
66
- try {
67
- const { searchClass, route } = args;
68
- this.route = route;
69
- if (searchClass) {
70
- // eslint-disable-next-line new-cap
71
- const searchInstance = new searchClass(this.__search);
72
- this.route = `${route}${searchInstance.buildParams()}`;
73
- this.__onSearchChanged$.next(searchInstance);
74
- }
75
- this.getData();
76
- }
77
- catch (e) {
78
- throw new Error(`${e?.message}`);
79
- }
80
- }
81
- resolve(route, state, otherArgs) {
82
- this.__search = route?.queryParams;
83
- const [currentRoute] = state?.url.split('?') || [null];
84
- this.currentRoute = currentRoute;
85
- super.resolve(route, state, otherArgs);
86
- }
87
- /**
88
- * @description Atualizar os filtros da tela
89
- * @param (search: T, route?: string)
90
- * => route é opcional, passar ele apenas se a rota for diferente do padrão
91
- */
92
- setSearch(search, route) {
93
- try {
94
- const { currentRoute, router } = this;
95
- this.setSearchByUrl(router, route || `${currentRoute}`, search);
96
- }
97
- catch (e) {
98
- throw new Error(`MECX Core - Method setSearch -> ${e}`);
99
- }
100
- }
101
- /**
102
- * @description Navegação para details.
103
- * Por padrão sera redirecionado para '${currentRoute}/details'
104
- * @param (detailsData: T, route?: string)
105
- * => route é opcional, passar ele apenas se a rota for diferente do padrão
106
- */
107
- navigateToDetails(detailsData, route) {
108
- try {
109
- const { router, currentRoute } = this;
110
- router.navigate([route || `${currentRoute}/details`], {
111
- state: {
112
- detailsData,
113
- },
114
- });
115
- }
116
- catch (e) {
117
- throw new Error(`MECX Core - Method navigateToDetails -> ${e}`);
118
- }
119
- }
120
- }
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LWNvbW1vbnMtcmVzb2x2ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvcmUvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2NvbW1vbnMvbW9ua2V5ZWN4LWNvbW1vbnMtcmVzb2x2ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUVMLE1BQU0sR0FFUCxNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBVSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sR0FBRyxDQUFDO0FBQzVDLE9BQU8sRUFDTCwrQkFBK0IsRUFDL0IsMEJBQTBCLEdBRTNCLE1BQU0sT0FBTyxDQUFDO0FBTWYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUc3QyxNQUFNLE9BQWdCLDhCQUErQixTQUFRLHVCQUF1QjtJQW1CbEYsWUFDRSxnQkFBa0MsRUFDbEMsWUFBMEMsRUFDMUMsTUFXQztRQUVELEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxZQUFZLENBQUMsQ0FBQztRQTlCOUIsVUFBSyxHQUFrQixJQUFJLENBQUM7UUFFNUIsaUJBQVksR0FBa0IsSUFBSSxDQUFDO1FBRW5DLHNCQUFpQixHQUFHLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBRXZELHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTVDLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFeEIsVUFBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV0QixvQkFBZSxHQUFH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QUNGLE1BQU0sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsSUFBSSxDQUFDO1lBRXRDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLElBQUksR0FBRyxZQUFZLFVBQVUsQ0FBQyxFQUFFO2dCQUNwRCxLQUFLLEVBQUU7b0JBQ0wsV0FBVztpQkFDWjthQUNGLENBQUMsQ0FBQztTQUNKO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ2pFO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcclxuICBSb3V0ZXIsXHJcbiAgUm91dGVyU3RhdGVTbmFwc2hvdCxcclxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBBY3Rpb24sIFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IE1vbmtleUVjeENvbW1vbnNTZXJ2aWNlIH0gZnJvbSAnLic7XHJcbmltcG9ydCB7XHJcbiAgTW9ua2V5RWN4RGlzY292ZXJ5UGFyYW1zU2VydmljZSxcclxuICBNb25rZXlFY3hQYWdpbmF0aW9uU2VydmljZSxcclxuICBNb25rZXlFY3hUb2tlblN0b3JhZ2VTZXJ2aWNlLFxyXG59IGZyb20gJy4uLy4uJztcclxuaW1wb3J0IHtcclxuICBNb25rZXlFY3hDb21tb25zQ29uZmlnLFxyXG4gIE1vbmtleUVjeENvbW1vbnNTZWFyY2gsXHJcbiAgTW9ua2V5RWN4SW5pdGlhbFJlc29sdmVyQ29uZmlnLFxyXG59IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBNb25rZXlFY3hVdGlscyB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuaW1wb3J0IHsgTW9ua2V5RWN4U2VydmljZSB9IGZyb20gJy4uL21vbmtleWVjeC1zZXJ2aWNlLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE1vbmtleUVjeENvbW1vbnNSZXNvbHZlU2VydmljZSBleHRlbmRzIE1vbmtleUVjeENvbW1vbnNTZXJ2aWNlIHtcclxuICBwcml2YXRlIGFjdGlvbjogYW55O1xyXG5cclxuICBwcml2YXRlIHNlbGVjdG9yOiBhbnk7XHJcblxyXG4gIHByb3RlY3RlZCByb3V0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIHByb3RlY3RlZCBjdXJyZW50Um91dGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG5cclxuICBwcm90ZWN0ZWQgcGFnaW5hdGlvblNlcnZpY2UgPSBpbmplY3QoTW9ua2V5RWN4UGFnaW5hdGlvblNlcnZpY2UpO1xyXG5cclxuICBwcm90ZWN0ZWQgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcclxuXHJcbiAgcHJvdGVjdGVkIHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xyXG5cclxuICBwcm90ZWN0ZWQgc3RvcmUgPSBpbmplY3QoU3RvcmUpO1xyXG5cclxuICBwcm90ZWN0ZWQgbW9ua2V5RGlzY292ZXJ5ID0gaW5qZWN0KE1vbmtleUVjeERpc2NvdmVyeVBhcmFtc1NlcnZpY2UpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIG1vbmtleWVjeFNlcnZpY2U6IE1vbmtleUVjeFNlcnZpY2UsXHJcbiAgICB0b2tlblN0b3JhZ2U6IE1vbmtleUVjeFRva2VuU3RvcmFnZVNlcnZpY2UsXHJcbiAgICBjb25maWc6IHtcclxuICAgICAgYWN0aW9uczoge1xyXG4gICAgICAgIGxvYWQ6IEFjdGlvbjtcclxuICAgICAgICBsb2FkUGFnaW5hdGlvbj86IEFjdGlvbjtcclxuICAgICAgfTtcclxuICAgICAgc2VsZWN0b3JzOiB7XHJcbiAgICAgICAgc2VsZWN0QnlJZGVudGlmaWVyOiBGdW5jdGlvbjtcclxuICAgICAgICBzZWxlY3RDb250cm9sOiBGdW5jdGlvbjtcclxuICAgICAgICBzZWxlY3RMaW5rcz86IEZ1bmN0aW9uO1xyXG4gICAgICAgIHNlbGVjdFBhZ2U/OiBGdW5jdGlvbjtcclxuICAgICAgfTtcclxuICAgIH1cclxuICApIHtcclxuICAgIHN1cGVyKG1vbmtleWVjeFNlcnZpY2UsIHRva2VuU3RvcmFnZSk7XHJcbiAgICBjb25zdCB7IGFjdGlvbnMsIHNlbGVjdG9ycyB9ID0gY29uZmlnO1xyXG5cclxuICAgIHRoaXMuYWN0aW9uID0gYWN0aW9ucztcclxuICAgIHRoaXMuc2VsZWN0b3IgPSBzZWxlY3RvcnM7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYXN5bmMgZ2V0RGF0YSgpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHsgc3RvcmUsIHJvdXRlLCBhY3Rpb24sIHNlbGVjdG9yLCB0b2tlblN0b3JhZ2UgfSA9IHRoaXM7XHJcblxyXG4gICAgICBjb25zdCB7IGNvbXBhbnlJZCwgY29tcGFueVR5cGUsIGdvdmVybm1lbnRJZCB9ID1cclxuICAgICAgICBhd2FpdCB0b2tlblN0b3JhZ2U/LmdldFRva2VuKCk7XHJcblxyXG4gICAgICBjb25zdCBpZGVudGlmaWVyID0gYCR7Y29tcGFueUlkIHx8IGdvdmVybm1lbnRJZH0tJHtjb21wYW55VHlwZX1gO1xyXG5cclxuICAgICAgaWYgKCFyb3V0ZSkgcmV0dXJuO1xyXG5cclxuICAgICAgY29uc3QgdXJsID0gTW9ua2V5RWN4VXRpbHMucmVwbGFjZVZhcmlhYmxlcyhyb3V0ZSwgeyBjb21wYW55SWQgfSk7XHJcblxyXG4gICAgICBzdG9yZS5kaXNwYXRjaChhY3Rpb24ubG9hZCh7IHVybCwgaWRlbnRpZmllciB9KSk7XHJcblxyXG4gICAgICB0aGlzLl9fZGF0YSQgPSBzdG9yZS5zZWxlY3Qoc2VsZWN0b3Iuc2VsZWN0QnlJZGVudGlmaWVyKHsgaWRlbnRpZmllciB9KSk7XHJcblxyXG4gICAgICB0aGlzLl9fY29udHJvbCQgPSBzdG9yZS5zZWxlY3Qoc2VsZWN0b3Iuc2VsZWN0Q29udHJvbCgpKTtcclxuXHJcbiAgICAgIGlmIChzZWxlY3Rvcj8uc2VsZWN0TGlua3MpIHtcclxuICAgICAgICB0aGlzLl9fcGFnaW5hdGlvbiQgPSBzdG9yZS5zZWxlY3Qoc2VsZWN0b3Iuc2VsZWN0TGlua3MoeyBpZGVudGlmaWVyIH0pKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHNlbGVjdG9yPy5zZWxlY3RQYWdlKSB7XHJcbiAgICAgICAgdGhpcy5fX3BhZ2UkID0gc3RvcmUuc2VsZWN0KHNlbGVjdG9yLnNlbGVjdFBhZ2UoeyBpZGVudGlmaWVyIH0pKTtcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1FQ1ggQ29yZSAtIE1ldGhvZCBnZXREYXRhIC0+ICR7ZX1gKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBhc3luYyBsb2FkUGFnZSgpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHsgc3RvcmUsIHRva2VuU3RvcmFnZSwgYWN0aW9uIH0gPSB0aGlzO1xyXG4gICAgICBjb25zdCB7IGNvbXBhbnlJZCwgY29tcGFueVR5cGUsIGdvdmVybm1lbnRJZCB9ID1cclxuICAgICAgICBhd2FpdCB0b2tlblN0b3JhZ2U/LmdldFRva2VuKCk7XHJcblxyXG4gICAgICBzdG9yZS5kaXNwYXRjaChcclxuICAgICAgICBhY3Rpb24ubG9hZFBhZ2luYXRpb24oe1xyXG4gICAgICAgICAgaWRlbnRpZmllcjogYCR7Y29tcGFueUlkIHx8IGdvdmVybm1lbnRJZH0tJHtjb21wYW55VHlwZX1gLFxyXG4gICAgICAgICAgcGFnaW5hdGlvbjoge1xyXG4gICAgICAgICAgICBhY3Rpb246ICduZXh0JyxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNRUNYIENvcmUgLSBNZXRob2QgbG9hZFBhZ2UgLT4gJHtlfWApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIEluaWNpYWxpemFyIGEgY2xhc3MgZ2Vuw6lyaWNhXHJcbiAgICogQHBhcmFtIChhcmdzOiBNb25rZXlFY3hJbml0aWFsUmVzb2x2ZXJDb25maWcpXHJcbiAgICogPT4gcm91dGUgw6kgb2JyaWfDoXRvcmlvIHBvaXMgZWxlIHF1ZW0gaW5pY2lhbGl6YSBhIHN0b3JlLlxyXG4gICAqIEEgc2VhcmNoQ2xhc3Mgc8OzIHNlIGZheiBuZWNlc3NhcmlhIHF1YW5kbyBmb3IgdXNhciBmaWx0cm9zXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGluaXQoYXJnczogTW9ua2V5RWN4SW5pdGlhbFJlc29sdmVyQ29uZmlnKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCB7IHNlYXJjaENsYXNzLCByb3V0ZSB9ID0gYXJncztcclxuXHJcbiAgICAgIHRoaXMucm91dGUgPSByb3V0ZTtcclxuXHJcbiAgICAgIGlmIChzZWFyY2hDbGFzcykge1xyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuZXctY2FwXHJcbiAgICAgICAgY29uc3Qgc2VhcmNoSW5zdGFuY2U6IE1vbmtleUVjeENvbW1vbnNTZWFyY2ggPSBuZXcgc2VhcmNoQ2xhc3MoXHJcbiAgICAgICAgICB0aGlzLl9fc2VhcmNoXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5yb3V0ZSA9IGAke3JvdXRlfSR7c2VhcmNoSW5zdGFuY2UuYnVpbGRQYXJhbXMoKX1gO1xyXG5cclxuICAgICAgICB0aGlzLl9fb25TZWFyY2hDaGFuZ2VkJC5uZXh0KHNlYXJjaEluc3RhbmNlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5nZXREYXRhKCk7XHJcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke2U/Lm1lc3NhZ2V9YCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXNvbHZlKFxyXG4gICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfCBudWxsLFxyXG4gICAgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QgfCBudWxsLFxyXG4gICAgb3RoZXJBcmdzPzogTW9ua2V5RWN4Q29tbW9uc0NvbmZpZ1xyXG4gICkge1xyXG4gICAgdGhpcy5fX3NlYXJjaCA9IHJvdXRlPy5xdWVyeVBhcmFtcztcclxuXHJcbiAgICBjb25zdCBbY3VycmVudFJvdXRlXSA9IHN0YXRlPy51cmwuc3BsaXQoJz8nKSB8fCBbbnVsbF07XHJcblxyXG4gICAgdGhpcy5jdXJyZW50Um91dGUgPSBjdXJyZW50Um91dGU7XHJcblxyXG4gICAgc3VwZXIucmVzb2x2ZShyb3V0ZSwgc3RhdGUsIG90aGVyQXJncyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb24gQXR1YWxpemFyIG9zIGZpbHRyb3MgZGEgdGVsYVxyXG4gICAqIEBwYXJhbSAoc2VhcmNoOiBULCByb3V0ZT86IHN0cmluZylcclxuICAgKiA9PiByb3V0ZSDDqSBvcGNpb25hbCwgcGFzc2FyIGVsZSBhcGVuYXMgc2UgYSByb3RhIGZvciBkaWZlcmVudGUgZG8gcGFkcsOjb1xyXG4gICAqL1xyXG4gIHB1YmxpYyBzZXRTZWFyY2g8VD4oc2VhcmNoOiBULCByb3V0ZT86IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgeyBjdXJyZW50Um91dGUsIHJvdXRlciB9ID0gdGhpcztcclxuXHJcbiAgICAgIHRoaXMuc2V0U2VhcmNoQnlVcmwocm91dGVyLCByb3V0ZSB8fCBgJHtjdXJyZW50Um91dGV9YCwgc2VhcmNoKTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNRUNYIENvcmUgLSBNZXRob2Qgc2V0U2VhcmNoIC0+ICR7ZX1gKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXNjcmlwdGlvbiBOYXZlZ2HDp8OjbyBwYXJhIGRldGFpbHMuXHJcbiAgICogUG9yIHBhZHLDo28gc2VyYSByZWRpcmVjaW9uYWRvIHBhcmEgJyR7Y3VycmVudFJvdXRlfS9kZXRhaWxzJ1xyXG4gICAqIEBwYXJhbSAoZGV0YWlsc0RhdGE6IFQsIHJvdXRlPzogc3RyaW5nKVxyXG4gICAqID0+IHJvdXRlIMOpIG9wY2lvbmFsLCBwYXNzYXIgZWxlIGFwZW5hcyBzZSBhIHJvdGEgZm9yIGRpZmVyZW50ZSBkbyBwYWRyw6NvXHJcbiAgICovXHJcbiAgcHVibGljIG5hdmlnYXRlVG9EZXRhaWxzPFQ+KGRldGFpbHNEYXRhOiBULCByb3V0ZT86IHN0cmluZykge1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgeyByb3V0ZXIsIGN1cnJlbnRSb3V0ZSB9ID0gdGhpcztcclxuXHJcbiAgICAgIHJvdXRlci5uYXZpZ2F0ZShbcm91dGUgfHwgYCR7Y3VycmVudFJvdXRlfS9kZXRhaWxzYF0sIHtcclxuICAgICAgICBzdGF0ZToge1xyXG4gICAgICAgICAgZGV0YWlsc0RhdGEsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTUVDWCBDb3JlIC0gTWV0aG9kIG5hdmlnYXRlVG9EZXRhaWxzIC0+ICR7ZX1gKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
1
+ import { inject } from '@angular/core';
2
+ import { Router, } from '@angular/router';
3
+ import { Store } from '@ngrx/store';
4
+ import { TranslateService } from '@ngx-translate/core';
5
+ import { MonkeyEcxCommonsService } from '.';
6
+ import { MonkeyEcxDiscoveryParamsService, MonkeyEcxPaginationService, } from '../..';
7
+ import { MonkeyEcxUtils } from '../../utils';
8
+ export class MonkeyEcxCommonsResolveService extends MonkeyEcxCommonsService {
9
+ constructor(monkeyecxService, tokenStorage, config) {
10
+ super(monkeyecxService, tokenStorage);
11
+ this.route = null;
12
+ this.currentRoute = null;
13
+ this.paginationService = inject(MonkeyEcxPaginationService);
14
+ this.translateService = inject(TranslateService);
15
+ this.router = inject(Router);
16
+ this.store = inject(Store);
17
+ this.monkeyDiscovery = inject(MonkeyEcxDiscoveryParamsService);
18
+ const { actions, selectors } = config;
19
+ this.action = actions;
20
+ this.selector = selectors;
21
+ }
22
+ async getData() {
23
+ try {
24
+ const { store, route, action, selector, tokenStorage } = this;
25
+ const { companyId, companyType, governmentId } = await tokenStorage?.getToken();
26
+ const identifier = `${companyId || governmentId}-${companyType}`;
27
+ if (!route)
28
+ return;
29
+ const url = MonkeyEcxUtils.replaceVariables(route, { companyId });
30
+ store.dispatch(action.load({ url, identifier }));
31
+ this.__data$ = store.select(selector.selectByIdentifier({ identifier }));
32
+ this.__control$ = store.select(selector.selectControl());
33
+ if (selector?.selectLinks) {
34
+ this.__pagination$ = store.select(selector.selectLinks({ identifier }));
35
+ }
36
+ if (selector?.selectPage) {
37
+ this.__page$ = store.select(selector.selectPage({ identifier }));
38
+ }
39
+ }
40
+ catch (e) {
41
+ throw new Error(`MECX Core - Method getData -> ${e}`);
42
+ }
43
+ }
44
+ async loadPage() {
45
+ try {
46
+ const { store, tokenStorage, action } = this;
47
+ const { companyId, companyType, governmentId } = await tokenStorage?.getToken();
48
+ store.dispatch(action.loadPagination({
49
+ identifier: `${companyId || governmentId}-${companyType}`,
50
+ pagination: {
51
+ action: 'next',
52
+ },
53
+ }));
54
+ }
55
+ catch (e) {
56
+ throw new Error(`MECX Core - Method loadPage -> ${e}`);
57
+ }
58
+ }
59
+ /**
60
+ * @description Inicializar a class genérica
61
+ * @param (args: MonkeyEcxInitialResolverConfig)
62
+ * => route é obrigátorio pois ele quem inicializa a store.
63
+ * A searchClass só se faz necessaria quando for usar filtros
64
+ */
65
+ init(args) {
66
+ try {
67
+ const { searchClass, route } = args;
68
+ this.route = route;
69
+ if (searchClass) {
70
+ // eslint-disable-next-line new-cap
71
+ const searchInstance = new searchClass(this.__search);
72
+ this.route = `${route}${searchInstance.buildParams()}`;
73
+ this.__onSearchChanged$.next(searchInstance);
74
+ }
75
+ this.getData();
76
+ }
77
+ catch (e) {
78
+ throw new Error(`${e?.message}`);
79
+ }
80
+ }
81
+ resolve(route, state, otherArgs) {
82
+ this.__search = route?.queryParams;
83
+ const [currentRoute] = state?.url.split('?') || [null];
84
+ this.currentRoute = currentRoute;
85
+ super.resolve(route, state, otherArgs);
86
+ }
87
+ /**
88
+ * @description Atualizar os filtros da tela
89
+ * @param (search: T, route?: string)
90
+ * => route é opcional, passar ele apenas se a rota for diferente do padrão
91
+ */
92
+ setSearch(search, route) {
93
+ try {
94
+ const { currentRoute, router } = this;
95
+ this.setSearchByUrl(router, route || `${currentRoute}`, search);
96
+ }
97
+ catch (e) {
98
+ throw new Error(`MECX Core - Method setSearch -> ${e}`);
99
+ }
100
+ }
101
+ /**
102
+ * @description Navegação para details.
103
+ * Por padrão sera redirecionado para '${currentRoute}/details'
104
+ * @param (detailsData: T, route?: string)
105
+ * => route é opcional, passar ele apenas se a rota for diferente do padrão
106
+ */
107
+ navigateToDetails(detailsData, route) {
108
+ try {
109
+ const { router, currentRoute } = this;
110
+ router.navigate([route || `${currentRoute}/details`], {
111
+ state: {
112
+ detailsData,
113
+ },
114
+ });
115
+ }
116
+ catch (e) {
117
+ throw new Error(`MECX Core - Method navigateToDetails -> ${e}`);
118
+ }
119
+ }
120
+ }
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LWNvbW1vbnMtcmVzb2x2ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvcmUvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2NvbW1vbnMvbW9ua2V5ZWN4LWNvbW1vbnMtcmVzb2x2ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUVMLE1BQU0sR0FFUCxNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBVSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sR0FBRyxDQUFDO0FBQzVDLE9BQU8sRUFDTCwrQkFBK0IsRUFDL0IsMEJBQTBCLEdBRTNCLE1BQU0sT0FBTyxDQUFDO0FBTWYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUc3QyxNQUFNLE9BQWdCLDhCQUErQixTQUFRLHVCQUF1QjtJQW1CbEYsWUFDRSxnQkFBa0MsRUFDbEMsWUFBMEMsRUFDMUMsTUFXQztRQUVELEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxZQUFZLENBQUMsQ0FBQztRQTlCOUIsVUFBSyxHQUFrQixJQUFJLENBQUM7UUFFNUIsaUJBQVksR0FBa0IsSUFBSSxDQUFDO1FBRW5DLHNCQUFpQixHQUFHLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBRXZELHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTVDLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFeEIsVUFBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV0QixvQkFBZSxHQUFH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QUNGLE1BQU0sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsSUFBSSxDQUFDO1lBRXRDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLElBQUksR0FBRyxZQUFZLFVBQVUsQ0FBQyxFQUFFO2dCQUNwRCxLQUFLLEVBQUU7b0JBQ0wsV0FBVztpQkFDWjthQUNGLENBQUMsQ0FBQztTQUNKO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ2pFO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICBSb3V0ZXIsXG4gIFJvdXRlclN0YXRlU25hcHNob3QsXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBY3Rpb24sIFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTW9ua2V5RWN4Q29tbW9uc1NlcnZpY2UgfSBmcm9tICcuJztcbmltcG9ydCB7XG4gIE1vbmtleUVjeERpc2NvdmVyeVBhcmFtc1NlcnZpY2UsXG4gIE1vbmtleUVjeFBhZ2luYXRpb25TZXJ2aWNlLFxuICBNb25rZXlFY3hUb2tlblN0b3JhZ2VTZXJ2aWNlLFxufSBmcm9tICcuLi8uLic7XG5pbXBvcnQge1xuICBNb25rZXlFY3hDb21tb25zQ29uZmlnLFxuICBNb25rZXlFY3hDb21tb25zU2VhcmNoLFxuICBNb25rZXlFY3hJbml0aWFsUmVzb2x2ZXJDb25maWcsXG59IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTW9ua2V5RWN4VXRpbHMgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBNb25rZXlFY3hTZXJ2aWNlIH0gZnJvbSAnLi4vbW9ua2V5ZWN4LXNlcnZpY2Uuc2VydmljZSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBNb25rZXlFY3hDb21tb25zUmVzb2x2ZVNlcnZpY2UgZXh0ZW5kcyBNb25rZXlFY3hDb21tb25zU2VydmljZSB7XG4gIHByaXZhdGUgYWN0aW9uOiBhbnk7XG5cbiAgcHJpdmF0ZSBzZWxlY3RvcjogYW55O1xuXG4gIHByb3RlY3RlZCByb3V0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJvdGVjdGVkIGN1cnJlbnRSb3V0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJvdGVjdGVkIHBhZ2luYXRpb25TZXJ2aWNlID0gaW5qZWN0KE1vbmtleUVjeFBhZ2luYXRpb25TZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG5cbiAgcHJvdGVjdGVkIHN0b3JlID0gaW5qZWN0KFN0b3JlKTtcblxuICBwcm90ZWN0ZWQgbW9ua2V5RGlzY292ZXJ5ID0gaW5qZWN0KE1vbmtleUVjeERpc2NvdmVyeVBhcmFtc1NlcnZpY2UpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG1vbmtleWVjeFNlcnZpY2U6IE1vbmtleUVjeFNlcnZpY2UsXG4gICAgdG9rZW5TdG9yYWdlOiBNb25rZXlFY3hUb2tlblN0b3JhZ2VTZXJ2aWNlLFxuICAgIGNvbmZpZzoge1xuICAgICAgYWN0aW9uczoge1xuICAgICAgICBsb2FkOiBBY3Rpb247XG4gICAgICAgIGxvYWRQYWdpbmF0aW9uPzogQWN0aW9uO1xuICAgICAgfTtcbiAgICAgIHNlbGVjdG9yczoge1xuICAgICAgICBzZWxlY3RCeUlkZW50aWZpZXI6IEZ1bmN0aW9uO1xuICAgICAgICBzZWxlY3RDb250cm9sOiBGdW5jdGlvbjtcbiAgICAgICAgc2VsZWN0TGlua3M/OiBGdW5jdGlvbjtcbiAgICAgICAgc2VsZWN0UGFnZT86IEZ1bmN0aW9uO1xuICAgICAgfTtcbiAgICB9XG4gICkge1xuICAgIHN1cGVyKG1vbmtleWVjeFNlcnZpY2UsIHRva2VuU3RvcmFnZSk7XG4gICAgY29uc3QgeyBhY3Rpb25zLCBzZWxlY3RvcnMgfSA9IGNvbmZpZztcblxuICAgIHRoaXMuYWN0aW9uID0gYWN0aW9ucztcbiAgICB0aGlzLnNlbGVjdG9yID0gc2VsZWN0b3JzO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGdldERhdGEoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgc3RvcmUsIHJvdXRlLCBhY3Rpb24sIHNlbGVjdG9yLCB0b2tlblN0b3JhZ2UgfSA9IHRoaXM7XG5cbiAgICAgIGNvbnN0IHsgY29tcGFueUlkLCBjb21wYW55VHlwZSwgZ292ZXJubWVudElkIH0gPVxuICAgICAgICBhd2FpdCB0b2tlblN0b3JhZ2U/LmdldFRva2VuKCk7XG5cbiAgICAgIGNvbnN0IGlkZW50aWZpZXIgPSBgJHtjb21wYW55SWQgfHwgZ292ZXJubWVudElkfS0ke2NvbXBhbnlUeXBlfWA7XG5cbiAgICAgIGlmICghcm91dGUpIHJldHVybjtcblxuICAgICAgY29uc3QgdXJsID0gTW9ua2V5RWN4VXRpbHMucmVwbGFjZVZhcmlhYmxlcyhyb3V0ZSwgeyBjb21wYW55SWQgfSk7XG5cbiAgICAgIHN0b3JlLmRpc3BhdGNoKGFjdGlvbi5sb2FkKHsgdXJsLCBpZGVudGlmaWVyIH0pKTtcblxuICAgICAgdGhpcy5fX2RhdGEkID0gc3RvcmUuc2VsZWN0KHNlbGVjdG9yLnNlbGVjdEJ5SWRlbnRpZmllcih7IGlkZW50aWZpZXIgfSkpO1xuXG4gICAgICB0aGlzLl9fY29udHJvbCQgPSBzdG9yZS5zZWxlY3Qoc2VsZWN0b3Iuc2VsZWN0Q29udHJvbCgpKTtcblxuICAgICAgaWYgKHNlbGVjdG9yPy5zZWxlY3RMaW5rcykge1xuICAgICAgICB0aGlzLl9fcGFnaW5hdGlvbiQgPSBzdG9yZS5zZWxlY3Qoc2VsZWN0b3Iuc2VsZWN0TGlua3MoeyBpZGVudGlmaWVyIH0pKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHNlbGVjdG9yPy5zZWxlY3RQYWdlKSB7XG4gICAgICAgIHRoaXMuX19wYWdlJCA9IHN0b3JlLnNlbGVjdChzZWxlY3Rvci5zZWxlY3RQYWdlKHsgaWRlbnRpZmllciB9KSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNRUNYIENvcmUgLSBNZXRob2QgZ2V0RGF0YSAtPiAke2V9YCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGxvYWRQYWdlKCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IHN0b3JlLCB0b2tlblN0b3JhZ2UsIGFjdGlvbiB9ID0gdGhpcztcbiAgICAgIGNvbnN0IHsgY29tcGFueUlkLCBjb21wYW55VHlwZSwgZ292ZXJubWVudElkIH0gPVxuICAgICAgICBhd2FpdCB0b2tlblN0b3JhZ2U/LmdldFRva2VuKCk7XG5cbiAgICAgIHN0b3JlLmRpc3BhdGNoKFxuICAgICAgICBhY3Rpb24ubG9hZFBhZ2luYXRpb24oe1xuICAgICAgICAgIGlkZW50aWZpZXI6IGAke2NvbXBhbnlJZCB8fCBnb3Zlcm5tZW50SWR9LSR7Y29tcGFueVR5cGV9YCxcbiAgICAgICAgICBwYWdpbmF0aW9uOiB7XG4gICAgICAgICAgICBhY3Rpb246ICduZXh0JyxcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1FQ1ggQ29yZSAtIE1ldGhvZCBsb2FkUGFnZSAtPiAke2V9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBJbmljaWFsaXphciBhIGNsYXNzIGdlbsOpcmljYVxuICAgKiBAcGFyYW0gKGFyZ3M6IE1vbmtleUVjeEluaXRpYWxSZXNvbHZlckNvbmZpZylcbiAgICogPT4gcm91dGUgw6kgb2JyaWfDoXRvcmlvIHBvaXMgZWxlIHF1ZW0gaW5pY2lhbGl6YSBhIHN0b3JlLlxuICAgKiBBIHNlYXJjaENsYXNzIHPDsyBzZSBmYXogbmVjZXNzYXJpYSBxdWFuZG8gZm9yIHVzYXIgZmlsdHJvc1xuICAgKi9cbiAgcHJvdGVjdGVkIGluaXQoYXJnczogTW9ua2V5RWN4SW5pdGlhbFJlc29sdmVyQ29uZmlnKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgc2VhcmNoQ2xhc3MsIHJvdXRlIH0gPSBhcmdzO1xuXG4gICAgICB0aGlzLnJvdXRlID0gcm91dGU7XG5cbiAgICAgIGlmIChzZWFyY2hDbGFzcykge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbmV3LWNhcFxuICAgICAgICBjb25zdCBzZWFyY2hJbnN0YW5jZTogTW9ua2V5RWN4Q29tbW9uc1NlYXJjaCA9IG5ldyBzZWFyY2hDbGFzcyhcbiAgICAgICAgICB0aGlzLl9fc2VhcmNoXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5yb3V0ZSA9IGAke3JvdXRlfSR7c2VhcmNoSW5zdGFuY2UuYnVpbGRQYXJhbXMoKX1gO1xuXG4gICAgICAgIHRoaXMuX19vblNlYXJjaENoYW5nZWQkLm5leHQoc2VhcmNoSW5zdGFuY2UpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmdldERhdGEoKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHtlPy5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxuXG4gIHJlc29sdmUoXG4gICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfCBudWxsLFxuICAgIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90IHwgbnVsbCxcbiAgICBvdGhlckFyZ3M/OiBNb25rZXlFY3hDb21tb25zQ29uZmlnXG4gICkge1xuICAgIHRoaXMuX19zZWFyY2ggPSByb3V0ZT8ucXVlcnlQYXJhbXM7XG5cbiAgICBjb25zdCBbY3VycmVudFJvdXRlXSA9IHN0YXRlPy51cmwuc3BsaXQoJz8nKSB8fCBbbnVsbF07XG5cbiAgICB0aGlzLmN1cnJlbnRSb3V0ZSA9IGN1cnJlbnRSb3V0ZTtcblxuICAgIHN1cGVyLnJlc29sdmUocm91dGUsIHN0YXRlLCBvdGhlckFyZ3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBBdHVhbGl6YXIgb3MgZmlsdHJvcyBkYSB0ZWxhXG4gICAqIEBwYXJhbSAoc2VhcmNoOiBULCByb3V0ZT86IHN0cmluZylcbiAgICogPT4gcm91dGUgw6kgb3BjaW9uYWwsIHBhc3NhciBlbGUgYXBlbmFzIHNlIGEgcm90YSBmb3IgZGlmZXJlbnRlIGRvIHBhZHLDo29cbiAgICovXG4gIHB1YmxpYyBzZXRTZWFyY2g8VD4oc2VhcmNoOiBULCByb3V0ZT86IHN0cmluZyk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IGN1cnJlbnRSb3V0ZSwgcm91dGVyIH0gPSB0aGlzO1xuXG4gICAgICB0aGlzLnNldFNlYXJjaEJ5VXJsKHJvdXRlciwgcm91dGUgfHwgYCR7Y3VycmVudFJvdXRlfWAsIHNlYXJjaCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNRUNYIENvcmUgLSBNZXRob2Qgc2V0U2VhcmNoIC0+ICR7ZX1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIE5hdmVnYcOnw6NvIHBhcmEgZGV0YWlscy5cbiAgICogUG9yIHBhZHLDo28gc2VyYSByZWRpcmVjaW9uYWRvIHBhcmEgJyR7Y3VycmVudFJvdXRlfS9kZXRhaWxzJ1xuICAgKiBAcGFyYW0gKGRldGFpbHNEYXRhOiBULCByb3V0ZT86IHN0cmluZylcbiAgICogPT4gcm91dGUgw6kgb3BjaW9uYWwsIHBhc3NhciBlbGUgYXBlbmFzIHNlIGEgcm90YSBmb3IgZGlmZXJlbnRlIGRvIHBhZHLDo29cbiAgICovXG4gIHB1YmxpYyBuYXZpZ2F0ZVRvRGV0YWlsczxUPihkZXRhaWxzRGF0YTogVCwgcm91dGU/OiBzdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgeyByb3V0ZXIsIGN1cnJlbnRSb3V0ZSB9ID0gdGhpcztcblxuICAgICAgcm91dGVyLm5hdmlnYXRlKFtyb3V0ZSB8fCBgJHtjdXJyZW50Um91dGV9L2RldGFpbHNgXSwge1xuICAgICAgICBzdGF0ZToge1xuICAgICAgICAgIGRldGFpbHNEYXRhLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNRUNYIENvcmUgLSBNZXRob2QgbmF2aWdhdGVUb0RldGFpbHMgLT4gJHtlfWApO1xuICAgIH1cbiAgfVxufVxuIl19