monkey-front-core 0.0.500 → 0.0.501

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