monkey-front-core 0.0.467 → 0.0.468

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 +2 -2
  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 +1 -1
  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 +126 -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 +25 -25
  165. package/esm2020/lib/core/services/store/monkeyecx-store.selector.mjs +75 -68
  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 +5962 -5950
  187. package/fesm2015/monkey-front-core.mjs.map +1 -1
  188. package/fesm2020/monkey-front-core.mjs +6020 -6008
  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 -25
  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 -35
  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 +60 -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 -56
  353. package/lib/core/services/store/monkeyecx-store.selector.d.ts +31 -28
  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.468.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.467.tgz +0 -0
@@ -1,121 +1,126 @@
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.__control$ = store.select(selector.selectControl());
32
+ if (selector?.selectByIdentifier) {
33
+ this.__data$ = store.select(selector.selectByIdentifier({ identifier }));
34
+ }
35
+ if (selector?.selectOneByIdentifier) {
36
+ this.__data$ = store.select(selector.selectOneByIdentifier({ identifier }));
37
+ }
38
+ if (selector?.selectLinks) {
39
+ this.__pagination$ = store.select(selector.selectLinks({ identifier }));
40
+ }
41
+ if (selector?.selectPage) {
42
+ this.__page$ = store.select(selector.selectPage({ identifier }));
43
+ }
44
+ }
45
+ catch (e) {
46
+ throw new Error(`MECX Core - Method getData -> ${e}`);
47
+ }
48
+ }
49
+ async loadPage() {
50
+ try {
51
+ const { store, tokenStorage, action } = this;
52
+ const { companyId, companyType, governmentId } = await tokenStorage?.getToken();
53
+ store.dispatch(action.loadPagination({
54
+ identifier: `${companyId || governmentId}-${companyType}`,
55
+ pagination: {
56
+ action: 'next'
57
+ }
58
+ }));
59
+ }
60
+ catch (e) {
61
+ throw new Error(`MECX Core - Method loadPage -> ${e}`);
62
+ }
63
+ }
64
+ /**
65
+ * @description Inicializar a class genérica
66
+ * @param (args: MonkeyEcxInitialResolverConfig)
67
+ * => route é obrigátorio pois ele quem inicializa a store.
68
+ * A searchClass só se faz necessaria quando for usar filtros
69
+ */
70
+ init(args) {
71
+ try {
72
+ const { searchClass, route } = args;
73
+ this.route = route;
74
+ if (searchClass) {
75
+ // eslint-disable-next-line new-cap
76
+ const searchInstance = new searchClass(this.__search);
77
+ this.route = `${route}${searchInstance.buildParams()}`;
78
+ this.__onSearchChanged$.next(searchInstance);
79
+ }
80
+ this.getData();
81
+ }
82
+ catch (e) {
83
+ throw new Error(`${e?.message}`);
84
+ }
85
+ }
86
+ resolve(route, state, otherArgs) {
87
+ this.__search = route?.queryParams;
88
+ const [currentRoute] = state?.url.split('?') || [null];
89
+ this.currentRoute = currentRoute;
90
+ super.resolve(route, state, otherArgs);
91
+ }
92
+ /**
93
+ * @description Atualizar os filtros da tela
94
+ * @param (search: T, route?: string)
95
+ * => route é opcional, passar ele apenas se a rota for diferente do padrão
96
+ */
97
+ setSearch(search, route) {
98
+ try {
99
+ const { currentRoute, router } = this;
100
+ this.setSearchByUrl(router, route || `${currentRoute}`, search);
101
+ }
102
+ catch (e) {
103
+ throw new Error(`MECX Core - Method setSearch -> ${e}`);
104
+ }
105
+ }
106
+ /**
107
+ * @description Navegação para details.
108
+ * Por padrão sera redirecionado para '${currentRoute}/details'
109
+ * @param (detailsData: T, route?: string)
110
+ * => route é opcional, passar ele apenas se a rota for diferente do padrão
111
+ */
112
+ navigateToDetails(detailsData, route) {
113
+ try {
114
+ const { router, currentRoute } = this;
115
+ router.navigate([route || `${currentRoute}/details`], {
116
+ state: {
117
+ detailsData
118
+ }
119
+ });
120
+ }
121
+ catch (e) {
122
+ throw new Error(`MECX Core - Method navigateToDetails -> ${e}`);
123
+ }
124
+ }
125
+ }
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LWNvbW1vbnMtcmVzb2x2ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvcmUvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2NvbW1vbnMvbW9ua2V5ZWN4LWNvbW1vbnMtcmVzb2x2ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUEwQixNQUFNLEVBQXVCLE1BQU0saUJBQWlCLENBQUM7QUFDdEYsT0FBTyxFQUFVLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxHQUFHLENBQUM7QUFDNUMsT0FBTyxFQUNMLCtCQUErQixFQUMvQiwwQkFBMEIsRUFFM0IsTUFBTSxPQUFPLENBQUM7QUFNZixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBaUI3QyxNQUFNLE9BQWdCLDhCQUErQixTQUFRLHVCQUF1QjtJQW1CbEYsWUFDRSxnQkFBa0MsRUFDbEMsWUFBMEMsRUFDMUMsTUFNQztRQUVELEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxZQUFZLENBQUMsQ0FBQztRQXpCOUIsVUFBSyxHQUFrQixJQUFJLENBQUM7UUFFNUIsaUJBQVksR0FBa0IsSUFBSSxDQUFDO1FBRW5DLHNCQUFpQixHQUFHLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBRXZELHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTVDLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFeEIsVUFBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV0QixvQkFBZSxH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QUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDakU7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDekQ7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxpQkFBaUIsQ0FBSSxXQUFjLEVBQUUsS0FBYztRQUN4RCxJQUFJO1lBQ0YsTUFBTSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsR0FBRyxJQUFJLENBQUM7WUFFdEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssSUFBSSxHQUFHLFlBQVksVUFBVSxDQUFDLEVBQUU7Z0JBQ3BELEtBQUssRUFBRTtvQkFDTCxXQUFXO2lCQUNaO2FBQ0YsQ0FBQyxDQUFDO1NBQ0o7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDakU7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlciwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBY3Rpb24sIFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTW9ua2V5RWN4Q29tbW9uc1NlcnZpY2UgfSBmcm9tICcuJztcbmltcG9ydCB7XG4gIE1vbmtleUVjeERpc2NvdmVyeVBhcmFtc1NlcnZpY2UsXG4gIE1vbmtleUVjeFBhZ2luYXRpb25TZXJ2aWNlLFxuICBNb25rZXlFY3hUb2tlblN0b3JhZ2VTZXJ2aWNlXG59IGZyb20gJy4uLy4uJztcbmltcG9ydCB7XG4gIE1vbmtleUVjeENvbW1vbnNDb25maWcsXG4gIE1vbmtleUVjeENvbW1vbnNTZWFyY2gsXG4gIE1vbmtleUVjeEluaXRpYWxSZXNvbHZlckNvbmZpZ1xufSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE1vbmtleUVjeFV0aWxzIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgTW9ua2V5RWN4U2VydmljZSB9IGZyb20gJy4uL21vbmtleWVjeC1zZXJ2aWNlLnNlcnZpY2UnO1xuXG5kZWNsYXJlIHR5cGUgU2VsZWN0b3JzID1cbiAgfCB7XG4gICAgICBzZWxlY3RCeUlkZW50aWZpZXI6IEZ1bmN0aW9uO1xuICAgICAgc2VsZWN0T25lQnlJZGVudGlmaWVyPzogbmV2ZXI7XG4gICAgICBzZWxlY3RDb250cm9sOiBGdW5jdGlvbjtcbiAgICAgIHNlbGVjdExpbmtzPzogRnVuY3Rpb247XG4gICAgICBzZWxlY3RQYWdlPzogRnVuY3Rpb247XG4gICAgfVxuICB8IHtcbiAgICAgIHNlbGVjdE9uZUJ5SWRlbnRpZmllcjogRnVuY3Rpb247XG4gICAgICBzZWxlY3RCeUlkZW50aWZpZXI/OiBuZXZlcjtcbiAgICAgIHNlbGVjdENvbnRyb2w6IEZ1bmN0aW9uO1xuICAgIH07XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBNb25rZXlFY3hDb21tb25zUmVzb2x2ZVNlcnZpY2UgZXh0ZW5kcyBNb25rZXlFY3hDb21tb25zU2VydmljZSB7XG4gIHByaXZhdGUgYWN0aW9uOiBhbnk7XG5cbiAgcHJpdmF0ZSBzZWxlY3RvcjogYW55O1xuXG4gIHByb3RlY3RlZCByb3V0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJvdGVjdGVkIGN1cnJlbnRSb3V0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJvdGVjdGVkIHBhZ2luYXRpb25TZXJ2aWNlID0gaW5qZWN0KE1vbmtleUVjeFBhZ2luYXRpb25TZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG5cbiAgcHJvdGVjdGVkIHN0b3JlID0gaW5qZWN0KFN0b3JlKTtcblxuICBwcm90ZWN0ZWQgbW9ua2V5RGlzY292ZXJ5ID0gaW5qZWN0KE1vbmtleUVjeERpc2NvdmVyeVBhcmFtc1NlcnZpY2UpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG1vbmtleWVjeFNlcnZpY2U6IE1vbmtleUVjeFNlcnZpY2UsXG4gICAgdG9rZW5TdG9yYWdlOiBNb25rZXlFY3hUb2tlblN0b3JhZ2VTZXJ2aWNlLFxuICAgIGNvbmZpZzoge1xuICAgICAgYWN0aW9uczoge1xuICAgICAgICBsb2FkOiBBY3Rpb247XG4gICAgICAgIGxvYWRQYWdpbmF0aW9uPzogQWN0aW9uO1xuICAgICAgfTtcbiAgICAgIHNlbGVjdG9yczogU2VsZWN0b3JzO1xuICAgIH1cbiAgKSB7XG4gICAgc3VwZXIobW9ua2V5ZWN4U2VydmljZSwgdG9rZW5TdG9yYWdlKTtcbiAgICBjb25zdCB7IGFjdGlvbnMsIHNlbGVjdG9ycyB9ID0gY29uZmlnO1xuXG4gICAgdGhpcy5hY3Rpb24gPSBhY3Rpb25zO1xuICAgIHRoaXMuc2VsZWN0b3IgPSBzZWxlY3RvcnM7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgZ2V0RGF0YSgpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgeyBzdG9yZSwgcm91dGUsIGFjdGlvbiwgc2VsZWN0b3IsIHRva2VuU3RvcmFnZSB9ID0gdGhpcztcblxuICAgICAgY29uc3QgeyBjb21wYW55SWQsIGNvbXBhbnlUeXBlLCBnb3Zlcm5tZW50SWQgfSA9IGF3YWl0IHRva2VuU3RvcmFnZT8uZ2V0VG9rZW4oKTtcblxuICAgICAgY29uc3QgaWRlbnRpZmllciA9IGAke2NvbXBhbnlJZCB8fCBnb3Zlcm5tZW50SWR9LSR7Y29tcGFueVR5cGV9YDtcblxuICAgICAgaWYgKCFyb3V0ZSkgcmV0dXJuO1xuXG4gICAgICBjb25zdCB1cmwgPSBNb25rZXlFY3hVdGlscy5yZXBsYWNlVmFyaWFibGVzKHJvdXRlLCB7IGNvbXBhbnlJZCB9KTtcblxuICAgICAgc3RvcmUuZGlzcGF0Y2goYWN0aW9uLmxvYWQoeyB1cmwsIGlkZW50aWZpZXIgfSkpO1xuXG4gICAgICB0aGlzLl9fY29udHJvbCQgPSBzdG9yZS5zZWxlY3Qoc2VsZWN0b3Iuc2VsZWN0Q29udHJvbCgpKTtcblxuICAgICAgaWYgKHNlbGVjdG9yPy5zZWxlY3RCeUlkZW50aWZpZXIpIHtcbiAgICAgICAgdGhpcy5fX2RhdGEkID0gc3RvcmUuc2VsZWN0KHNlbGVjdG9yLnNlbGVjdEJ5SWRlbnRpZmllcih7IGlkZW50aWZpZXIgfSkpO1xuICAgICAgfVxuXG4gICAgICBpZiAoc2VsZWN0b3I/LnNlbGVjdE9uZUJ5SWRlbnRpZmllcikge1xuICAgICAgICB0aGlzLl9fZGF0YSQgPSBzdG9yZS5zZWxlY3Qoc2VsZWN0b3Iuc2VsZWN0T25lQnlJZGVudGlmaWVyKHsgaWRlbnRpZmllciB9KSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChzZWxlY3Rvcj8uc2VsZWN0TGlua3MpIHtcbiAgICAgICAgdGhpcy5fX3BhZ2luYXRpb24kID0gc3RvcmUuc2VsZWN0KHNlbGVjdG9yLnNlbGVjdExpbmtzKHsgaWRlbnRpZmllciB9KSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChzZWxlY3Rvcj8uc2VsZWN0UGFnZSkge1xuICAgICAgICB0aGlzLl9fcGFnZSQgPSBzdG9yZS5zZWxlY3Qoc2VsZWN0b3Iuc2VsZWN0UGFnZSh7IGlkZW50aWZpZXIgfSkpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTUVDWCBDb3JlIC0gTWV0aG9kIGdldERhdGEgLT4gJHtlfWApO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBsb2FkUGFnZSgpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgeyBzdG9yZSwgdG9rZW5TdG9yYWdlLCBhY3Rpb24gfSA9IHRoaXM7XG4gICAgICBjb25zdCB7IGNvbXBhbnlJZCwgY29tcGFueVR5cGUsIGdvdmVybm1lbnRJZCB9ID0gYXdhaXQgdG9rZW5TdG9yYWdlPy5nZXRUb2tlbigpO1xuXG4gICAgICBzdG9yZS5kaXNwYXRjaChcbiAgICAgICAgYWN0aW9uLmxvYWRQYWdpbmF0aW9uKHtcbiAgICAgICAgICBpZGVudGlmaWVyOiBgJHtjb21wYW55SWQgfHwgZ292ZXJubWVudElkfS0ke2NvbXBhbnlUeXBlfWAsXG4gICAgICAgICAgcGFnaW5hdGlvbjoge1xuICAgICAgICAgICAgYWN0aW9uOiAnbmV4dCdcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTUVDWCBDb3JlIC0gTWV0aG9kIGxvYWRQYWdlIC0+ICR7ZX1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEluaWNpYWxpemFyIGEgY2xhc3MgZ2Vuw6lyaWNhXG4gICAqIEBwYXJhbSAoYXJnczogTW9ua2V5RWN4SW5pdGlhbFJlc29sdmVyQ29uZmlnKVxuICAgKiA9PiByb3V0ZSDDqSBvYnJpZ8OhdG9yaW8gcG9pcyBlbGUgcXVlbSBpbmljaWFsaXphIGEgc3RvcmUuXG4gICAqIEEgc2VhcmNoQ2xhc3Mgc8OzIHNlIGZheiBuZWNlc3NhcmlhIHF1YW5kbyBmb3IgdXNhciBmaWx0cm9zXG4gICAqL1xuICBwcm90ZWN0ZWQgaW5pdChhcmdzOiBNb25rZXlFY3hJbml0aWFsUmVzb2x2ZXJDb25maWcpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgeyBzZWFyY2hDbGFzcywgcm91dGUgfSA9IGFyZ3M7XG5cbiAgICAgIHRoaXMucm91dGUgPSByb3V0ZTtcblxuICAgICAgaWYgKHNlYXJjaENsYXNzKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuZXctY2FwXG4gICAgICAgIGNvbnN0IHNlYXJjaEluc3RhbmNlOiBNb25rZXlFY3hDb21tb25zU2VhcmNoID0gbmV3IHNlYXJjaENsYXNzKHRoaXMuX19zZWFyY2gpO1xuXG4gICAgICAgIHRoaXMucm91dGUgPSBgJHtyb3V0ZX0ke3NlYXJjaEluc3RhbmNlLmJ1aWxkUGFyYW1zKCl9YDtcblxuICAgICAgICB0aGlzLl9fb25TZWFyY2hDaGFuZ2VkJC5uZXh0KHNlYXJjaEluc3RhbmNlKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5nZXREYXRhKCk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7ZT8ubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cblxuICByZXNvbHZlKFxuICAgIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IHwgbnVsbCxcbiAgICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCB8IG51bGwsXG4gICAgb3RoZXJBcmdzPzogTW9ua2V5RWN4Q29tbW9uc0NvbmZpZ1xuICApIHtcbiAgICB0aGlzLl9fc2VhcmNoID0gcm91dGU/LnF1ZXJ5UGFyYW1zO1xuXG4gICAgY29uc3QgW2N1cnJlbnRSb3V0ZV0gPSBzdGF0ZT8udXJsLnNwbGl0KCc/JykgfHwgW251bGxdO1xuXG4gICAgdGhpcy5jdXJyZW50Um91dGUgPSBjdXJyZW50Um91dGU7XG5cbiAgICBzdXBlci5yZXNvbHZlKHJvdXRlLCBzdGF0ZSwgb3RoZXJBcmdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQXR1YWxpemFyIG9zIGZpbHRyb3MgZGEgdGVsYVxuICAgKiBAcGFyYW0gKHNlYXJjaDogVCwgcm91dGU/OiBzdHJpbmcpXG4gICAqID0+IHJvdXRlIMOpIG9wY2lvbmFsLCBwYXNzYXIgZWxlIGFwZW5hcyBzZSBhIHJvdGEgZm9yIGRpZmVyZW50ZSBkbyBwYWRyw6NvXG4gICAqL1xuICBwdWJsaWMgc2V0U2VhcmNoPFQ+KHNlYXJjaDogVCwgcm91dGU/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgeyBjdXJyZW50Um91dGUsIHJvdXRlciB9ID0gdGhpcztcblxuICAgICAgdGhpcy5zZXRTZWFyY2hCeVVybChyb3V0ZXIsIHJvdXRlIHx8IGAke2N1cnJlbnRSb3V0ZX1gLCBzZWFyY2gpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTUVDWCBDb3JlIC0gTWV0aG9kIHNldFNlYXJjaCAtPiAke2V9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBOYXZlZ2HDp8OjbyBwYXJhIGRldGFpbHMuXG4gICAqIFBvciBwYWRyw6NvIHNlcmEgcmVkaXJlY2lvbmFkbyBwYXJhICcke2N1cnJlbnRSb3V0ZX0vZGV0YWlscydcbiAgICogQHBhcmFtIChkZXRhaWxzRGF0YTogVCwgcm91dGU/OiBzdHJpbmcpXG4gICAqID0+IHJvdXRlIMOpIG9wY2lvbmFsLCBwYXNzYXIgZWxlIGFwZW5hcyBzZSBhIHJvdGEgZm9yIGRpZmVyZW50ZSBkbyBwYWRyw6NvXG4gICAqL1xuICBwdWJsaWMgbmF2aWdhdGVUb0RldGFpbHM8VD4oZGV0YWlsc0RhdGE6IFQsIHJvdXRlPzogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgcm91dGVyLCBjdXJyZW50Um91dGUgfSA9IHRoaXM7XG5cbiAgICAgIHJvdXRlci5uYXZpZ2F0ZShbcm91dGUgfHwgYCR7Y3VycmVudFJvdXRlfS9kZXRhaWxzYF0sIHtcbiAgICAgICAgc3RhdGU6IHtcbiAgICAgICAgICBkZXRhaWxzRGF0YVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1FQ1ggQ29yZSAtIE1ldGhvZCBuYXZpZ2F0ZVRvRGV0YWlscyAtPiAke2V9YCk7XG4gICAgfVxuICB9XG59XG4iXX0=