monkey-front-core 0.0.96 → 0.0.100

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 (204) hide show
  1. package/README.md +24 -24
  2. package/bundles/monkey-front-core.umd.js +4900 -0
  3. package/bundles/monkey-front-core.umd.js.map +1 -0
  4. package/esm2015/lib/components/closed-to-maintenance/closed-to-maintenance.component.js +35 -0
  5. package/{esm2020/lib/components/closed-to-maintenance/closed-to-maintenance.module.mjs → esm2015/lib/components/closed-to-maintenance/closed-to-maintenance.module.js} +5 -5
  6. package/{esm2020/lib/components/closed-to-maintenance/index.mjs → esm2015/lib/components/closed-to-maintenance/index.js} +1 -1
  7. package/{esm2020/lib/components/index.mjs → esm2015/lib/components/index.js} +0 -0
  8. package/{esm2020/lib/components/progress-bar/index.mjs → esm2015/lib/components/progress-bar/index.js} +1 -1
  9. package/esm2015/lib/components/progress-bar/progress-bar.component.js +29 -0
  10. package/{esm2020/lib/components/progress-bar/progress-bar.module.mjs → esm2015/lib/components/progress-bar/progress-bar.module.js} +5 -5
  11. package/esm2015/lib/components/progress-bar/progress-bar.service.js +53 -0
  12. package/{esm2020/lib/components/version-changed/index.mjs → esm2015/lib/components/version-changed/index.js} +1 -1
  13. package/esm2015/lib/components/version-changed/version-changed.component.js +29 -0
  14. package/{esm2020/lib/components/version-changed/version-changed.module.mjs → esm2015/lib/components/version-changed/version-changed.module.js} +5 -5
  15. package/{esm2020/lib/core/decorators/index.mjs → esm2015/lib/core/decorators/index.js} +1 -1
  16. package/{esm2020/lib/core/decorators/monkeyecx-charts-decorators.mjs → esm2015/lib/core/decorators/monkeyecx-charts-decorators.js} +1 -1
  17. package/esm2015/lib/core/decorators/monkeyecx-decorators.js +112 -0
  18. package/esm2015/lib/core/decorators/monkeyecx-download-decorators.js +25 -0
  19. package/esm2015/lib/core/decorators/monkeyecx-upload-decorators.js +25 -0
  20. package/{esm2020/lib/core/directives/index.mjs → esm2015/lib/core/directives/index.js} +1 -1
  21. package/{esm2020/lib/core/directives/monkeyecx-directives-module.mjs → esm2015/lib/core/directives/monkeyecx-directives-module.js} +5 -5
  22. package/esm2015/lib/core/directives/monkeyecx-drag-drop.js +57 -0
  23. package/esm2015/lib/core/directives/monkeyecx-feature-directive.js +68 -0
  24. package/{esm2020/lib/core/directives/monkeyecx-format-currency.mjs → esm2015/lib/core/directives/monkeyecx-format-currency.js} +4 -4
  25. package/esm2015/lib/core/directives/monkeyecx-format-upper.js +69 -0
  26. package/{esm2020/lib/core/directives/monkeyecx-only-alpha-numeric-directive.mjs → esm2015/lib/core/directives/monkeyecx-only-alpha-numeric-directive.js} +4 -4
  27. package/{esm2020/lib/core/directives/monkeyecx-only-number-directive.mjs → esm2015/lib/core/directives/monkeyecx-only-number-directive.js} +4 -4
  28. package/esm2015/lib/core/directives/monkeyecx-security-directive.js +69 -0
  29. package/esm2015/lib/core/directives/monkeyecx-tooltip-directive.js +124 -0
  30. package/{esm2020/lib/core/index.mjs → esm2015/lib/core/index.js} +1 -1
  31. package/{esm2020/lib/core/interceptors/index.mjs → esm2015/lib/core/interceptors/index.js} +1 -1
  32. package/esm2015/lib/core/interceptors/monkeyecx-http-config-error.interceptor.js +40 -0
  33. package/esm2015/lib/core/interceptors/monkeyecx-http-config-header.interceptor.js +33 -0
  34. package/{esm2020/lib/core/interceptors/monkeyecx-http-config-interceptor.module.mjs → esm2015/lib/core/interceptors/monkeyecx-http-config-interceptor.module.js} +5 -5
  35. package/esm2015/lib/core/interceptors/monkeyecx-http-config-loading-in-progress.interceptor.js +44 -0
  36. package/esm2015/lib/core/interceptors/monkeyecx-http-config-queue.interceptor.js +38 -0
  37. package/{esm2020/lib/core/interfaces/index.mjs → esm2015/lib/core/interfaces/index.js} +1 -1
  38. package/esm2015/lib/core/interfaces/monkeyecx-auth-credentials.js +2 -0
  39. package/{esm2020/lib/core/interfaces/monkeyecx-company.mjs → esm2015/lib/core/interfaces/monkeyecx-company.js} +1 -1
  40. package/esm2015/lib/core/interfaces/monkeyecx-config-boostrap.js +2 -0
  41. package/esm2015/lib/core/interfaces/monkeyecx-config.js +2 -0
  42. package/{esm2020/lib/core/interfaces/monkeyecx-error-response.mjs → esm2015/lib/core/interfaces/monkeyecx-error-response.js} +1 -1
  43. package/{esm2020/lib/core/interfaces/monkeyecx-handled-error-response.mjs → esm2015/lib/core/interfaces/monkeyecx-handled-error-response.js} +1 -1
  44. package/{esm2020/lib/core/interfaces/monkeyecx-header-credentials.mjs → esm2015/lib/core/interfaces/monkeyecx-header-credentials.js} +1 -1
  45. package/{esm2020/lib/core/interfaces/monkeyecx-intercom-options.mjs → esm2015/lib/core/interfaces/monkeyecx-intercom-options.js} +1 -1
  46. package/esm2015/lib/core/interfaces/monkeyecx-me-credentials.js +2 -0
  47. package/esm2015/lib/core/interfaces/monkeyecx-navigation.js +2 -0
  48. package/{esm2020/lib/core/interfaces/monkeyecx-program.mjs → esm2015/lib/core/interfaces/monkeyecx-program.js} +1 -1
  49. package/{esm2020/lib/core/interfaces/monkeyecx-releases.mjs → esm2015/lib/core/interfaces/monkeyecx-releases.js} +1 -1
  50. package/{esm2020/lib/core/interfaces/monkeyecx-request-in-progress.mjs → esm2015/lib/core/interfaces/monkeyecx-request-in-progress.js} +1 -1
  51. package/esm2015/lib/core/interfaces/monkeyecx-request-paged.js +2 -0
  52. package/{esm2020/lib/core/interfaces/monkeyecx-response-links.mjs → esm2015/lib/core/interfaces/monkeyecx-response-links.js} +1 -1
  53. package/{esm2020/lib/core/interfaces/monkeyecx-response-paged.mjs → esm2015/lib/core/interfaces/monkeyecx-response-paged.js} +1 -1
  54. package/{esm2020/lib/core/interfaces/monkeyecx-saved-state.mjs → esm2015/lib/core/interfaces/monkeyecx-saved-state.js} +1 -1
  55. package/{esm2020/lib/core/interfaces/monkeyecx-scroll-options.mjs → esm2015/lib/core/interfaces/monkeyecx-scroll-options.js} +1 -1
  56. package/esm2015/lib/core/interfaces/monkeyecx-service-credentials.js +2 -0
  57. package/{esm2020/lib/core/interfaces/monkeyecx-support-options.mjs → esm2015/lib/core/interfaces/monkeyecx-support-options.js} +1 -1
  58. package/esm2015/lib/core/interfaces/monkeyecx-token-credentials.js +2 -0
  59. package/{esm2020/lib/core/interfaces/monkeyecx-translate-options.mjs → esm2015/lib/core/interfaces/monkeyecx-translate-options.js} +1 -1
  60. package/{esm2020/lib/core/interfaces/request-download/index.mjs → esm2015/lib/core/interfaces/request-download/index.js} +1 -1
  61. package/{esm2020/lib/core/interfaces/request-download/monkeyecx-request-download.mjs → esm2015/lib/core/interfaces/request-download/monkeyecx-request-download.js} +1 -1
  62. package/{esm2020/lib/core/interfaces/request-download/monkeyecx-request-downloaded.mjs → esm2015/lib/core/interfaces/request-download/monkeyecx-request-downloaded.js} +1 -1
  63. package/{esm2020/lib/core/interfaces/request-download/monkeyecx-request-item-download.mjs → esm2015/lib/core/interfaces/request-download/monkeyecx-request-item-download.js} +1 -1
  64. package/{esm2020/lib/core/interfaces/request-queue/index.mjs → esm2015/lib/core/interfaces/request-queue/index.js} +1 -1
  65. package/{esm2020/lib/core/interfaces/request-queue/monkeyecx-request-item-queue.mjs → esm2015/lib/core/interfaces/request-queue/monkeyecx-request-item-queue.js} +1 -1
  66. package/{esm2020/lib/core/interfaces/request-queue/monkeyecx-request-progress-queue.mjs → esm2015/lib/core/interfaces/request-queue/monkeyecx-request-progress-queue.js} +1 -1
  67. package/{esm2020/lib/core/interfaces/request-queue/monkeyecx-request-queue.mjs → esm2015/lib/core/interfaces/request-queue/monkeyecx-request-queue.js} +1 -1
  68. package/{esm2020/lib/core/interfaces/request-upload/index.mjs → esm2015/lib/core/interfaces/request-upload/index.js} +1 -1
  69. package/{esm2020/lib/core/interfaces/request-upload/monkeyecx-request-item-upload.mjs → esm2015/lib/core/interfaces/request-upload/monkeyecx-request-item-upload.js} +1 -1
  70. package/{esm2020/lib/core/interfaces/request-upload/monkeyecx-request-upload.mjs → esm2015/lib/core/interfaces/request-upload/monkeyecx-request-upload.js} +1 -1
  71. package/{esm2020/lib/core/interfaces/schedules/index.mjs → esm2015/lib/core/interfaces/schedules/index.js} +1 -1
  72. package/esm2015/lib/core/interfaces/schedules/monkeyecx-request-schedule.js +2 -0
  73. package/{esm2020/lib/core/model/index.mjs → esm2015/lib/core/model/index.js} +1 -1
  74. package/{esm2020/lib/core/model/monkeyecx-model.mjs → esm2015/lib/core/model/monkeyecx-model.js} +1 -1
  75. package/{esm2020/lib/core/pipes/index.mjs → esm2015/lib/core/pipes/index.js} +0 -0
  76. package/{esm2020/lib/core/pipes/monkeyecx-display-first-name.mjs → esm2015/lib/core/pipes/monkeyecx-display-first-name.js} +4 -4
  77. package/{esm2020/lib/core/pipes/monkeyecx-format-address.mjs → esm2015/lib/core/pipes/monkeyecx-format-address.js} +4 -4
  78. package/{esm2020/lib/core/pipes/monkeyecx-format-currency.mjs → esm2015/lib/core/pipes/monkeyecx-format-currency.js} +4 -4
  79. package/esm2015/lib/core/pipes/monkeyecx-format-date-group.js +46 -0
  80. package/{esm2020/lib/core/pipes/monkeyecx-format-date-timelapse.mjs → esm2015/lib/core/pipes/monkeyecx-format-date-timelapse.js} +4 -4
  81. package/{esm2020/lib/core/pipes/monkeyecx-format-document.mjs → esm2015/lib/core/pipes/monkeyecx-format-document.js} +4 -4
  82. package/{esm2020/lib/core/pipes/monkeyecx-format-number.mjs → esm2015/lib/core/pipes/monkeyecx-format-number.js} +4 -4
  83. package/{esm2020/lib/core/pipes/monkeyecx-format-phone.mjs → esm2015/lib/core/pipes/monkeyecx-format-phone.js} +4 -4
  84. package/{esm2020/lib/core/pipes/monkeyecx-format-size.mjs → esm2015/lib/core/pipes/monkeyecx-format-size.js} +4 -4
  85. package/{esm2020/lib/core/pipes/monkeyecx-format-type-document.mjs → esm2015/lib/core/pipes/monkeyecx-format-type-document.js} +4 -4
  86. package/{esm2020/lib/core/pipes/monkeyecx-format-value.mjs → esm2015/lib/core/pipes/monkeyecx-format-value.js} +4 -4
  87. package/{esm2020/lib/core/pipes/monkeyecx-format-zipcode.mjs → esm2015/lib/core/pipes/monkeyecx-format-zipcode.js} +4 -4
  88. package/{esm2020/lib/core/pipes/monkeyecx-pipes.module.mjs → esm2015/lib/core/pipes/monkeyecx-pipes.module.js} +5 -5
  89. package/{esm2020/lib/core/pipes/monkeyecx-text-truncate.mjs → esm2015/lib/core/pipes/monkeyecx-text-truncate.js} +4 -4
  90. package/{esm2020/lib/core/pipes/monkeyecx-truncate-qtd.mjs → esm2015/lib/core/pipes/monkeyecx-truncate-qtd.js} +4 -4
  91. package/{esm2020/lib/core/services/auth/index.mjs → esm2015/lib/core/services/auth/index.js} +1 -1
  92. package/{esm2020/lib/core/services/auth/monkeyecx-auth-guard-login.service.mjs → esm2015/lib/core/services/auth/monkeyecx-auth-guard-login.service.js} +4 -4
  93. package/{esm2020/lib/core/services/auth/monkeyecx-auth-guard.service.mjs → esm2015/lib/core/services/auth/monkeyecx-auth-guard.service.js} +4 -4
  94. package/esm2015/lib/core/services/auth/monkeyecx-authentication.service.js +61 -0
  95. package/{esm2020/lib/core/services/commons/index.mjs → esm2015/lib/core/services/commons/index.js} +1 -1
  96. package/esm2015/lib/core/services/commons/monkeyecx-commons.service.js +265 -0
  97. package/{esm2020/lib/core/services/config/monkeyecx-config.module.mjs → esm2015/lib/core/services/config/monkeyecx-config.module.js} +5 -5
  98. package/{esm2020/lib/core/services/config/monkeyecx-config.service.mjs → esm2015/lib/core/services/config/monkeyecx-config.service.js} +9 -11
  99. package/esm2015/lib/core/services/config/monkeyecx-error-config.service.js +85 -0
  100. package/esm2015/lib/core/services/config/monkeyecx-feature-toggle.service.js +70 -0
  101. package/esm2015/lib/core/services/config/monkeyecx-i18n-config.service.js +72 -0
  102. package/esm2015/lib/core/services/config/monkeyecx-logs-config.service.js +34 -0
  103. package/{esm2020/lib/core/services/config/monkeyecx-maintenance-config.service.mjs → esm2015/lib/core/services/config/monkeyecx-maintenance-config.service.js} +4 -4
  104. package/esm2015/lib/core/services/config/monkeyecx-security-console-config.service.js +42 -0
  105. package/esm2015/lib/core/services/config/monkeyecx-service-worker-config.service.js +54 -0
  106. package/{esm2020/lib/core/services/error/index.mjs → esm2015/lib/core/services/error/index.js} +1 -1
  107. package/{esm2020/lib/core/services/error/monkeyecx-error-handling.module.mjs → esm2015/lib/core/services/error/monkeyecx-error-handling.module.js} +5 -5
  108. package/esm2015/lib/core/services/error/monkeyecx-error-handling.service.js +41 -0
  109. package/esm2015/lib/core/services/error/monkeyecx-http-error-handling.service.js +132 -0
  110. package/{esm2020/lib/core/services/error/monkeyecx-others-errors-handling.service.mjs → esm2015/lib/core/services/error/monkeyecx-others-errors-handling.service.js} +4 -4
  111. package/{esm2020/lib/core/services/index.mjs → esm2015/lib/core/services/index.js} +1 -1
  112. package/{esm2020/lib/core/services/logged/index.mjs → esm2015/lib/core/services/logged/index.js} +1 -1
  113. package/{esm2020/lib/core/services/logged/monkeyecx-logged-handling.service.mjs → esm2015/lib/core/services/logged/monkeyecx-logged-handling.service.js} +4 -4
  114. package/esm2015/lib/core/services/monkeyecx-handling.service.js +50 -0
  115. package/esm2015/lib/core/services/monkeyecx-service.service.js +102 -0
  116. package/{esm2020/lib/core/services/request-download/index.mjs → esm2015/lib/core/services/request-download/index.js} +1 -1
  117. package/esm2015/lib/core/services/request-download/monkeyecx-request-download-handling.service.js +81 -0
  118. package/esm2015/lib/core/services/request-download/monkeyecx-request-downloaded-handling.service.js +55 -0
  119. package/{esm2020/lib/core/services/request-paged/index.mjs → esm2015/lib/core/services/request-paged/index.js} +1 -1
  120. package/esm2015/lib/core/services/request-paged/monkeyecx-request-request-paged-handling.js +37 -0
  121. package/{esm2020/lib/core/services/request-queue/index.mjs → esm2015/lib/core/services/request-queue/index.js} +1 -1
  122. package/esm2015/lib/core/services/request-queue/monkeyecx-request-queue-handling.service.js +101 -0
  123. package/esm2015/lib/core/services/request-queue/monkeyecx-request-queue-modal-handling.service.js +106 -0
  124. package/{esm2020/lib/core/services/routes/index.mjs → esm2015/lib/core/services/routes/index.js} +1 -1
  125. package/esm2015/lib/core/services/routes/monkeyecx-dicovery-params.service.js +55 -0
  126. package/{esm2020/lib/core/services/schedules/index.mjs → esm2015/lib/core/services/schedules/index.js} +1 -1
  127. package/esm2015/lib/core/services/schedules/monkeyecx-request-schedule.service.js +99 -0
  128. package/{esm2020/lib/core/services/storage/index.mjs → esm2015/lib/core/services/storage/index.js} +1 -1
  129. package/{esm2020/lib/core/services/storage/monkeyecx-cookie-storage.service.mjs → esm2015/lib/core/services/storage/monkeyecx-cookie-storage.service.js} +4 -4
  130. package/esm2015/lib/core/services/storage/monkeyecx-token-storage.service.js +123 -0
  131. package/{esm2020/lib/core/specification-search/index.mjs → esm2015/lib/core/specification-search/index.js} +1 -1
  132. package/{esm2020/lib/core/specification-search/monkeyecx-specification-search.mjs → esm2015/lib/core/specification-search/monkeyecx-specification-search.js} +3 -2
  133. package/esm2015/lib/core/utils/decorators-utils.js +37 -0
  134. package/{esm2020/lib/core/utils/index.mjs → esm2015/lib/core/utils/index.js} +1 -1
  135. package/{esm2020/lib/core/utils/statics.mjs → esm2015/lib/core/utils/statics.js} +1 -1
  136. package/esm2015/lib/core/utils/utils.js +219 -0
  137. package/esm2015/lib/core/utils/validate-utils.js +210 -0
  138. package/esm2015/lib/core/utils/validators.js +211 -0
  139. package/{esm2020/lib/monkey-front-core.module.mjs → esm2015/lib/monkey-front-core.module.js} +5 -5
  140. package/{esm2020/monkey-front-core.mjs → esm2015/monkey-front-core.js} +0 -0
  141. package/{esm2020/public-api.mjs → esm2015/public-api.js} +1 -1
  142. package/fesm2015/{monkey-front-core.mjs → monkey-front-core.js} +229 -218
  143. package/fesm2015/monkey-front-core.js.map +1 -0
  144. package/lib/core/pipes/monkeyecx-format-currency.d.ts +1 -1
  145. package/lib/core/services/auth/monkeyecx-authentication.service.d.ts +3 -3
  146. package/lib/core/services/commons/monkeyecx-commons.service.d.ts +15 -15
  147. package/lib/core/services/schedules/monkeyecx-request-schedule.service.d.ts +1 -1
  148. package/lib/core/utils/validate-utils.d.ts +13 -13
  149. package/monkey-front-core-0.0.100.tgz +0 -0
  150. package/package.json +7 -20
  151. package/esm2020/lib/components/closed-to-maintenance/closed-to-maintenance.component.mjs +0 -29
  152. package/esm2020/lib/components/progress-bar/progress-bar.component.mjs +0 -23
  153. package/esm2020/lib/components/progress-bar/progress-bar.service.mjs +0 -50
  154. package/esm2020/lib/components/version-changed/version-changed.component.mjs +0 -24
  155. package/esm2020/lib/core/decorators/monkeyecx-decorators.mjs +0 -111
  156. package/esm2020/lib/core/decorators/monkeyecx-download-decorators.mjs +0 -26
  157. package/esm2020/lib/core/decorators/monkeyecx-upload-decorators.mjs +0 -26
  158. package/esm2020/lib/core/directives/monkeyecx-drag-drop.mjs +0 -57
  159. package/esm2020/lib/core/directives/monkeyecx-feature-directive.mjs +0 -68
  160. package/esm2020/lib/core/directives/monkeyecx-format-upper.mjs +0 -67
  161. package/esm2020/lib/core/directives/monkeyecx-security-directive.mjs +0 -69
  162. package/esm2020/lib/core/directives/monkeyecx-tooltip-directive.mjs +0 -123
  163. package/esm2020/lib/core/interceptors/monkeyecx-http-config-error.interceptor.mjs +0 -39
  164. package/esm2020/lib/core/interceptors/monkeyecx-http-config-header.interceptor.mjs +0 -32
  165. package/esm2020/lib/core/interceptors/monkeyecx-http-config-loading-in-progress.interceptor.mjs +0 -43
  166. package/esm2020/lib/core/interceptors/monkeyecx-http-config-queue.interceptor.mjs +0 -37
  167. package/esm2020/lib/core/interfaces/monkeyecx-auth-credentials.mjs +0 -2
  168. package/esm2020/lib/core/interfaces/monkeyecx-config-boostrap.mjs +0 -2
  169. package/esm2020/lib/core/interfaces/monkeyecx-config.mjs +0 -2
  170. package/esm2020/lib/core/interfaces/monkeyecx-me-credentials.mjs +0 -2
  171. package/esm2020/lib/core/interfaces/monkeyecx-navigation.mjs +0 -2
  172. package/esm2020/lib/core/interfaces/monkeyecx-request-paged.mjs +0 -2
  173. package/esm2020/lib/core/interfaces/monkeyecx-service-credentials.mjs +0 -2
  174. package/esm2020/lib/core/interfaces/monkeyecx-token-credentials.mjs +0 -2
  175. package/esm2020/lib/core/interfaces/schedules/monkeyecx-request-schedule.mjs +0 -2
  176. package/esm2020/lib/core/pipes/monkeyecx-format-date-group.mjs +0 -45
  177. package/esm2020/lib/core/services/auth/monkeyecx-authentication.service.mjs +0 -61
  178. package/esm2020/lib/core/services/commons/monkeyecx-commons.service.mjs +0 -280
  179. package/esm2020/lib/core/services/config/monkeyecx-error-config.service.mjs +0 -85
  180. package/esm2020/lib/core/services/config/monkeyecx-feature-toggle.service.mjs +0 -67
  181. package/esm2020/lib/core/services/config/monkeyecx-i18n-config.service.mjs +0 -74
  182. package/esm2020/lib/core/services/config/monkeyecx-logs-config.service.mjs +0 -34
  183. package/esm2020/lib/core/services/config/monkeyecx-security-console-config.service.mjs +0 -42
  184. package/esm2020/lib/core/services/config/monkeyecx-service-worker-config.service.mjs +0 -53
  185. package/esm2020/lib/core/services/error/monkeyecx-error-handling.service.mjs +0 -41
  186. package/esm2020/lib/core/services/error/monkeyecx-http-error-handling.service.mjs +0 -127
  187. package/esm2020/lib/core/services/monkeyecx-handling.service.mjs +0 -50
  188. package/esm2020/lib/core/services/monkeyecx-service.service.mjs +0 -104
  189. package/esm2020/lib/core/services/request-download/monkeyecx-request-download-handling.service.mjs +0 -93
  190. package/esm2020/lib/core/services/request-download/monkeyecx-request-downloaded-handling.service.mjs +0 -61
  191. package/esm2020/lib/core/services/request-paged/monkeyecx-request-request-paged-handling.mjs +0 -37
  192. package/esm2020/lib/core/services/request-queue/monkeyecx-request-queue-handling.service.mjs +0 -114
  193. package/esm2020/lib/core/services/request-queue/monkeyecx-request-queue-modal-handling.service.mjs +0 -119
  194. package/esm2020/lib/core/services/routes/monkeyecx-dicovery-params.service.mjs +0 -54
  195. package/esm2020/lib/core/services/schedules/monkeyecx-request-schedule.service.mjs +0 -113
  196. package/esm2020/lib/core/services/storage/monkeyecx-token-storage.service.mjs +0 -126
  197. package/esm2020/lib/core/utils/decorators-utils.mjs +0 -40
  198. package/esm2020/lib/core/utils/utils.mjs +0 -218
  199. package/esm2020/lib/core/utils/validate-utils.mjs +0 -206
  200. package/esm2020/lib/core/utils/validators.mjs +0 -208
  201. package/fesm2015/monkey-front-core.mjs.map +0 -1
  202. package/fesm2020/monkey-front-core.mjs +0 -4265
  203. package/fesm2020/monkey-front-core.mjs.map +0 -1
  204. package/monkey-front-core-0.0.96.tgz +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monkey-front-core.js","sources":["../../../projects/monkey-front-core/src/lib/core/utils/utils.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-date-timelapse.ts","../../../projects/monkey-front-core/src/lib/components/closed-to-maintenance/closed-to-maintenance.component.ts","../../../projects/monkey-front-core/src/lib/components/closed-to-maintenance/closed-to-maintenance.component.html","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-display-first-name.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-address.ts","../../../projects/monkey-front-core/src/lib/core/services/storage/monkeyecx-cookie-storage.service.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-currency.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-document.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-number.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-phone.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-size.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-type-document.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-value.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-zipcode.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-text-truncate.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-truncate-qtd.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-format-date-group.ts","../../../projects/monkey-front-core/src/lib/core/pipes/monkeyecx-pipes.module.ts","../../../projects/monkey-front-core/src/lib/components/closed-to-maintenance/closed-to-maintenance.module.ts","../../../projects/monkey-front-core/src/lib/components/progress-bar/progress-bar.service.ts","../../../projects/monkey-front-core/src/lib/components/progress-bar/progress-bar.component.ts","../../../projects/monkey-front-core/src/lib/components/progress-bar/progress-bar.component.html","../../../projects/monkey-front-core/src/lib/components/progress-bar/progress-bar.module.ts","../../../projects/monkey-front-core/src/lib/components/version-changed/version-changed.component.ts","../../../projects/monkey-front-core/src/lib/components/version-changed/version-changed.component.html","../../../projects/monkey-front-core/src/lib/components/version-changed/version-changed.module.ts","../../../projects/monkey-front-core/src/lib/core/decorators/monkeyecx-charts-decorators.ts","../../../projects/monkey-front-core/src/lib/core/utils/validate-utils.ts","../../../projects/monkey-front-core/src/lib/core/utils/statics.ts","../../../projects/monkey-front-core/src/lib/core/utils/decorators-utils.ts","../../../projects/monkey-front-core/src/lib/core/utils/validators.ts","../../../projects/monkey-front-core/src/lib/core/utils/index.ts","../../../projects/monkey-front-core/src/lib/core/decorators/monkeyecx-decorators.ts","../../../projects/monkey-front-core/src/lib/core/decorators/monkeyecx-download-decorators.ts","../../../projects/monkey-front-core/src/lib/core/decorators/monkeyecx-upload-decorators.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-drag-drop.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-format-currency.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-format-upper.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-only-alpha-numeric-directive.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-only-number-directive.ts","../../../projects/monkey-front-core/src/lib/core/services/request-paged/monkeyecx-request-request-paged-handling.ts","../../../projects/monkey-front-core/src/lib/core/services/commons/monkeyecx-commons.service.ts","../../../projects/monkey-front-core/src/lib/core/services/monkeyecx-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/monkeyecx-service.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-error-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-i18n-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-logs-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-service-worker-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-security-console-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-maintenance-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-feature-toggle.service.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-config.service.ts","../../../projects/monkey-front-core/src/lib/core/services/storage/monkeyecx-token-storage.service.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-security-directive.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-tooltip-directive.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-feature-directive.ts","../../../projects/monkey-front-core/src/lib/core/directives/monkeyecx-directives-module.ts","../../../projects/monkey-front-core/src/lib/core/services/auth/monkeyecx-authentication.service.ts","../../../projects/monkey-front-core/src/lib/core/services/auth/monkeyecx-auth-guard-login.service.ts","../../../projects/monkey-front-core/src/lib/core/services/auth/monkeyecx-auth-guard.service.ts","../../../projects/monkey-front-core/src/lib/core/services/error/monkeyecx-http-error-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/error/monkeyecx-others-errors-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/error/monkeyecx-error-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/error/monkeyecx-error-handling.module.ts","../../../projects/monkey-front-core/src/lib/core/interceptors/monkeyecx-http-config-error.interceptor.ts","../../../projects/monkey-front-core/src/lib/core/interceptors/monkeyecx-http-config-header.interceptor.ts","../../../projects/monkey-front-core/src/lib/core/services/request-queue/monkeyecx-request-queue-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/request-queue/monkeyecx-request-queue-modal-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/interceptors/monkeyecx-http-config-queue.interceptor.ts","../../../projects/monkey-front-core/src/lib/core/interceptors/monkeyecx-http-config-loading-in-progress.interceptor.ts","../../../projects/monkey-front-core/src/lib/core/interceptors/monkeyecx-http-config-interceptor.module.ts","../../../projects/monkey-front-core/src/lib/core/model/monkeyecx-model.ts","../../../projects/monkey-front-core/src/lib/core/services/config/monkeyecx-config.module.ts","../../../projects/monkey-front-core/src/lib/core/services/logged/monkeyecx-logged-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/request-download/monkeyecx-request-download-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/request-download/monkeyecx-request-downloaded-handling.service.ts","../../../projects/monkey-front-core/src/lib/core/services/routes/monkeyecx-dicovery-params.service.ts","../../../projects/monkey-front-core/src/lib/core/services/schedules/monkeyecx-request-schedule.service.ts","../../../projects/monkey-front-core/src/lib/core/specification-search/monkeyecx-specification-search.ts","../../../projects/monkey-front-core/src/lib/monkey-front-core.module.ts","../../../projects/monkey-front-core/src/public-api.ts","../../../projects/monkey-front-core/src/monkey-front-core.ts"],"sourcesContent":["/* eslint-disable comma-dangle */\r\n/* eslint-disable max-len */\r\n/* eslint-disable no-useless-escape */\r\n/* eslint-disable no-plusplus */\r\n/* eslint-disable no-cond-assign */\r\n/* eslint-disable eqeqeq */\r\n/* eslint-disable no-redeclare */\r\n/* eslint-disable vars-on-top */\r\n/* eslint-disable no-var */\r\n/* eslint-disable block-scoped-var */\r\nexport class MonkeyEcxUtils {\r\n static persistNullEmptyUndefined(tp: any): boolean {\r\n return tp !== null && tp !== undefined && tp !== '';\r\n }\r\n\r\n static getDocumentType(doc: string, country?: string) {\r\n if (!doc) return '';\r\n if (country === 'cl') return 'RUT';\r\n return doc.length <= 11 ? 'CPF' : 'CNPJ';\r\n }\r\n\r\n static getDocumentMask(type: string) {\r\n if (type === 'CPF') return '000.000.000-00';\r\n return '00.000.000/0000-00';\r\n }\r\n\r\n static formatDocumentWithMask(doc: string, withType?: boolean, country?: string): string {\r\n if (!doc) return doc;\r\n let formated: string = '';\r\n if (country === 'cl') {\r\n formated = doc.replace(/^(\\d{1,2})(\\d{3})(\\d{3})(\\w{1})$/, '$1.$2.$3-$4');\r\n return `${formated}`;\r\n }\r\n if (doc.length === 14) {\r\n formated = doc\r\n .replace(/^(\\d{2})(\\d)/, '$1.$2')\r\n .replace(/^(\\d{2})\\.(\\d{3})(\\d)/, '$1.$2.$3')\r\n .replace(/\\.(\\d{3})(\\d)/, '.$1/$2')\r\n .replace(/(\\d{4})(\\d)/, '$1-$2');\r\n } else {\r\n formated = doc\r\n .replace(/^(\\d{3})(\\d)/, '$1.$2')\r\n .replace(/^(\\d{3})\\.(\\d{3})(\\d)/, '$1.$2.$3')\r\n .replace(/\\.(\\d{3})(\\d)/, '.$1-$2');\r\n }\r\n\r\n return `${withType ? `${this.getDocumentType(doc)}:` : ''} ${formated}`;\r\n }\r\n\r\n static cutFirstLastName(value: string, tp: string = 'first') {\r\n const split = value?.trim()?.split(' ');\r\n\r\n if (tp === 'first') return split[0];\r\n return split?.splice(1, split.length)?.join(' ');\r\n }\r\n\r\n static isCPFCNPJValid(document: any): boolean {\r\n document = document.replace(/[^\\d]/g, '');\r\n if (document.length === 11) {\r\n let base = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0];\r\n for (var i = 0, n = 0; i < 9; n += document[i] * base[i++]);\r\n if (document[9] != ((n %= 11) <= 1 ? 0 : 11 - n)) {\r\n return false;\r\n }\r\n base = [11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0];\r\n for (var i = 0, n = 0; i <= 9; n += document[i] * base[i++]);\r\n if (document[10] != ((n %= 11) <= 1 ? 0 : 11 - n)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n if (document.length === 14 || /0{14}/.test(document)) {\r\n const base = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\r\n for (var i = 0, n = 0; i < 12; n += document[i] * base[++i]);\r\n if (document[12] != ((n %= 11) < 2 ? 0 : 11 - n)) {\r\n return false;\r\n }\r\n\r\n for (var i = 0, n = 0; i <= 12; n += document[i] * base[i++]);\r\n if (document[13] != ((n %= 11) < 2 ? 0 : 11 - n)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n public static isValidRUT(document: string): boolean {\r\n if (!document || document.trim().length < 3) return false;\r\n const documentHandled = document.replace(/[^0-9kK]/g, '');\r\n\r\n if (documentHandled.length < 3) return false;\r\n\r\n const calcDv = (rut: string) => {\r\n const value: string = `${rut}`;\r\n let sum = 0;\r\n let mult = 2;\r\n\r\n for (let i = 1; i <= value.length; i++) {\r\n const index = mult * Number(value.charAt(value.length - i));\r\n\r\n sum += index;\r\n\r\n if (mult < 7) {\r\n mult += 1;\r\n } else {\r\n mult = 2;\r\n }\r\n }\r\n\r\n const dvEsperado = 11 - (sum % 11);\r\n if (dvEsperado === 10) return 'K';\r\n if (dvEsperado === 11) return '0';\r\n return `${dvEsperado}`;\r\n };\r\n\r\n const num = documentHandled.slice(0, -1);\r\n const dgv = documentHandled.slice(-1).toUpperCase();\r\n\r\n const dvCalc = calcDv(num);\r\n return dvCalc === dgv;\r\n }\r\n\r\n static isValidUrl(txt: string): boolean {\r\n const regex = new RegExp(\r\n /^(http:\\/\\/www\\.|https:\\/\\/www\\.|http:\\/\\/|https:\\/\\/)+[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,10}(:[0-9]{1,5})?(\\/.*)?$/gm\r\n );\r\n return regex.test(txt);\r\n }\r\n\r\n static isValidZipCode(zipCode: string): boolean {\r\n return `${this.handleOnlyNumbers(zipCode)}`.length === 8;\r\n }\r\n\r\n static getRandomString(len: number, charSet?: string): string {\r\n charSet = charSet || 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\r\n\r\n const randomString: string = new Array(len)\r\n .fill('1')\r\n .map(() => {\r\n return charSet?.charAt(Math.floor(Math.random() * charSet?.length));\r\n })\r\n .join('');\r\n return randomString;\r\n }\r\n\r\n static handleOnlyNumbers(value: any) {\r\n if (!value) return null;\r\n return value.replace(new RegExp(/[^0-9]/g), '');\r\n }\r\n\r\n static handleOnlyAlphaNumeric(value: any) {\r\n if (!value) return '';\r\n return value.replace(new RegExp(/[^0-9A-Za-z]/, 'g'), '');\r\n }\r\n\r\n static capitalize(value: string) {\r\n return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;\r\n }\r\n\r\n static formatZipCode(zipCode: string): string {\r\n if (!zipCode) return zipCode;\r\n const formated: string = zipCode\r\n .replace(/^(\\d{5})(\\d)/, '$1-$2')\r\n .replace(/\\.(\\d{3})(\\d)/, '.$1-$2');\r\n\r\n return `${formated}`;\r\n }\r\n\r\n static formatFileSize(size: number): string {\r\n const units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\r\n let l = 0;\r\n while (size >= 1024 && ++l) {\r\n size /= 1024;\r\n }\r\n return `${size.toFixed(size < 10 && l > 0 ? 1 : 0)} ${units[l]}`;\r\n }\r\n\r\n static sufflue(data: any[]): any[] {\r\n for (let i = data.length - 1; i > 0; i--) {\r\n const j = Math.floor(Math.random() * i);\r\n const temp = data[i];\r\n data[i] = data[j];\r\n data[j] = temp;\r\n }\r\n return data;\r\n }\r\n\r\n static handleBlobFile(theBlob: any, fileName: string, fileType: string) {\r\n function blobToFile(theBlob: any, fileName: string) {\r\n const b = theBlob;\r\n b.lastModifiedDate = new Date();\r\n b.name = fileName;\r\n return b;\r\n }\r\n\r\n let file: any;\r\n if (!(navigator as any).msSaveBlob) {\r\n file = new File([theBlob], fileName, {\r\n type: fileType,\r\n });\r\n } else {\r\n file = new Blob([theBlob], {\r\n type: fileType,\r\n });\r\n file = blobToFile(file, fileName);\r\n }\r\n return file;\r\n }\r\n\r\n static truncate(text: string, maxLength: number = 25): string {\r\n const midChar = '...';\r\n if (!text) return midChar;\r\n if (text && text.length <= maxLength) return text;\r\n\r\n const left = Math.ceil(maxLength / 2);\r\n const right = text.length - left + 1;\r\n\r\n return `${text.substr(0, left)} ${midChar} ${text.substring(right)}`;\r\n }\r\n\r\n static isLocalhost() {\r\n const { href } = window?.location;\r\n if (!href) return false;\r\n return href?.search('localhost') >= 0;\r\n }\r\n\r\n static isSameOrigin(frontend: string): boolean {\r\n const initialPath: string = window.location.origin;\r\n return (initialPath || '') === frontend;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport * as moment_ from 'moment';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\nconst moment: any = moment_;\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatDateTimelapse',\r\n})\r\nexport class MonkeyEcxFormatDateTimelapsePipe implements PipeTransform {\r\n transform(date: any | Date, showTime = false, useUtc = true, format = '- HH:mm'): string {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(date)) return '';\r\n let stillUtc: any = moment.default.utc(date).toDate();\r\n if (!useUtc) stillUtc = moment.default(date).toDate();\r\n if (date.toString().indexOf(':') <= -1) {\r\n if (typeof date === 'string') {\r\n stillUtc = date;\r\n showTime = false;\r\n }\r\n }\r\n const formatFrom = `YYYY/MM/DD${showTime ? ` ${format}` : ''}`;\r\n const formatTo = `DD/MM/YYYY${showTime ? ` ${format}` : ''}`;\r\n return `${moment.default(stillUtc, formatFrom).format(formatTo)}`;\r\n }\r\n}\r\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { MonkeyModalConfig } from 'monkey-style-guide';\r\nimport { MonkeyEcxConfigBoostrap } from '../../core/interfaces';\r\n\r\n@Component({\r\n selector: 'monkeyecx-closed-to-maintenance',\r\n templateUrl: './closed-to-maintenance.component.html',\r\n styleUrls: ['./closed-to-maintenance.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ClosedToMaintenanceComponent implements OnInit {\r\n @Input() config: MonkeyModalConfig | null = null;\r\n\r\n @Input() modalRef: any;\r\n\r\n _configBoostrap: MonkeyEcxConfigBoostrap | null = null;\r\n\r\n ngOnInit() {\r\n this._configBoostrap = this.config?.data;\r\n }\r\n\r\n onClose() {\r\n document.location.reload();\r\n }\r\n}\r\n","<monkey-modal [config]=\"config\" [modalRef]=\"modalRef\" *ngIf=\"config\">\r\n <div class=\"d-flex flex-column justify-content-center align-items-center\">\r\n <span class=\"h2\">\r\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.TITLE' | translate }}\r\n </span>\r\n <span class=\"information-title mt-4\">\r\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.INFORMATION-1' | translate }}\r\n </span>\r\n <span class=\"information-title mt-4\">\r\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.INFORMATION-2' | translate }}\r\n </span>\r\n <span class=\"information mt-3\">\r\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.INFORMATION-3' | translate }}\r\n {{ _configBoostrap?.maintenance?.endDate | monkeyecxFormatDateTimelapse: true }}\r\n </span>\r\n <span class=\"information-title mt-4\">\r\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.INFORMATION-4' | translate }}\r\n </span>\r\n </div>\r\n <div class=\"d-flex flex-column justify-content-center align-items-center mt-5\">\r\n <monkey-button type=\"primary\" color=\"theme\" (click)=\"onClose()\">\r\n {{ 'SCREENS.CLOSED-TO-MAINTENANCE.BUTTONS.UPDATE-MAINTENANCE' | translate }}\r\n </monkey-button>\r\n </div>\r\n</monkey-modal>","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxDisplayFirstName'\n})\nexport class MonkeyEcxDisplayFirstNamePipe implements PipeTransform {\n transform(name: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(name)) return '';\n return MonkeyEcxUtils.cutFirstLastName(name);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatAddress',\r\n})\r\nexport class MonkeyEcxFormatAddressPipe implements PipeTransform {\r\n transform({\r\n zipCode,\r\n address,\r\n neighborhood,\r\n city,\r\n state,\r\n }: {\r\n zipCode: string;\r\n address: string;\r\n neighborhood: string;\r\n city: string;\r\n state: string;\r\n country: string;\r\n }): string {\r\n return [address, neighborhood, zipCode, city, state]\r\n .filter((_: string) => {\r\n return _;\r\n })\r\n .join(', ');\r\n }\r\n}\r\n","/* eslint-disable object-curly-newline */\r\nimport { Injectable } from '@angular/core';\r\nimport { CookieService } from 'ngx-cookie-service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxCookieStorageService {\r\n constructor(private cookieService: CookieService) {\r\n // not to do\r\n }\r\n\r\n public setCookie(name: string, value: any) {\r\n this.removeCookie(name);\r\n this.cookieService.set(name, value, undefined, '/', '', true, 'None');\r\n }\r\n\r\n public getCookie(name: string) {\r\n return this.cookieService.get(name);\r\n }\r\n\r\n public removeCookie(name: string) {\r\n this.cookieService.delete(name, '/');\r\n }\r\n}\r\n","import { Pipe, PipeTransform, Injector } from '@angular/core';\nimport { CurrencyPipe } from '@angular/common';\nimport { MonkeyEcxCookieStorageService } from '../services/storage/monkeyecx-cookie-storage.service';\n\n@Pipe({\n name: 'monkeyecxFormatCurrency'\n})\nexport class MonkeyEcxFormatCurrencyPipe implements PipeTransform {\n constructor(private injector: Injector, private currencyPipe: CurrencyPipe) {\n // not to do\n }\n\n transform(value: any) {\n const cookieStorageService = this.injector.get(MonkeyEcxCookieStorageService);\n const cookie = cookieStorageService.getCookie('monkey-app-locale');\n const i18n = JSON.parse(atob(cookie));\n const { currency } = i18n;\n return this.currencyPipe.transform(value, currency, 'symbol');\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatDocument'\n})\nexport class MonkeyEcxFormatDocumentPipe implements PipeTransform {\n transform(document: string, withType?: false): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(document)) return '';\n return MonkeyEcxUtils.formatDocumentWithMask(document, withType);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { formatNumber } from '@angular/common';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatNumber'\n})\nexport class MonkeyEcxFormatNumberPipe implements PipeTransform {\n transform(number: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(number)) return '';\n\n return formatNumber(Number(number), 'ptbr');\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxFormatPhone'\n})\nexport class MonkeyEcxFormatPhonePipe implements PipeTransform {\n transform(phone: string): string {\n if (phone) {\n const value = `${phone || ''}`.replace(/\\D/g, '');\n\n let formated = '';\n\n if (value.length > 12) {\n formated = value.replace(/(\\d{2})?(\\d{2})?(\\d{5})?(\\d{4})/, '+$1 ($2) $3-$4');\n } else if (value.length > 11) {\n formated = value.replace(/(\\d{2})?(\\d{2})?(\\d{4})?(\\d{4})/, '+$1 ($2) $3-$4');\n } else if (value.length > 10) {\n formated = value.replace(/(\\d{2})?(\\d{5})?(\\d{4})/, '($1) $2-$3');\n } else if (value.length > 9) {\n formated = value.replace(/(\\d{2})?(\\d{4})?(\\d{4})/, '($1) $2-$3');\n } else if (value.length > 5) {\n formated = value.replace(/^(\\d{2})?(\\d{4})?(\\d{0,4})/, '($1) $2-$3');\n } else if (value.length > 1) {\n formated = value.replace(/^(\\d{2})?(\\d{0,5})/, '($1) $2');\n } else if (phone !== '') {\n formated = value.replace(/^(\\d*)/, '($1');\n }\n return formated;\n }\n return '';\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatSize'\n})\nexport class MonkeyEcxFormatSizePipe implements PipeTransform {\n transform(size: string): string {\n if (!size) return '0 B';\n const sizeNum = Number(size);\n return MonkeyEcxUtils.formatFileSize(sizeNum);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatDocumentType'\n})\nexport class MonkeyEcxFormatDocumentTypePipe implements PipeTransform {\n transform(document: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(document)) return '';\n return MonkeyEcxUtils.getDocumentType(document);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatValue'\n})\nexport class MonkeyEcxFormatValue implements PipeTransform {\n transform(number: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(number)) return '';\n return number;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Pipe({\n name: 'monkeyecxFormatZipCode'\n})\nexport class MonkeyEcxFormatZipCodePipe implements PipeTransform {\n transform(zipCode: string): string {\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(zipCode)) return '';\n return MonkeyEcxUtils.formatZipCode(zipCode);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxTextTruncate'\n})\nexport class MonkeyEcxTextTruncatePipe implements PipeTransform {\n transform(text: string, maxLength: number = 25): string {\n const midChar = '...';\n if (!text) return midChar;\n if (text && text.length <= maxLength) return text;\n\n const left = Math.ceil(maxLength / 2);\n const right = text.length - left + 1;\n\n return `${text.substr(0, left)} ${midChar} ${text.substring(right)}`;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'monkeyecxTruncateQtd'\n})\nexport class MonkeyEcxTruncateQtdPipe implements PipeTransform {\n transform(number: number, threshold: number): string {\n return `${number > threshold ? `${threshold}+` : number}`;\n }\n}\n","import { Injector, Pipe, PipeTransform } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport * as moment_ from 'moment';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\nconst moment: any = moment_;\r\n\r\n@Pipe({\r\n name: 'monkeyecxFormatDateGroup',\r\n})\r\nexport class MonkeyEcxFormatDateGroupPipe implements PipeTransform {\r\n private lang = 'pt-BR';\r\n\r\n constructor(private injector: Injector) {\r\n const translateService = this.injector.get(TranslateService);\r\n this.lang = translateService.getDefaultLang();\r\n }\r\n\r\n private format(date: string | Date) {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(date)) return '';\r\n let stillUtc: any = moment.default.utc(date).toDate();\r\n if (date.toString()?.indexOf(':') <= -1) {\r\n stillUtc = date;\r\n }\r\n const formatFrom = 'YYYY/MM/DD';\r\n const fmt = moment.default(stillUtc, formatFrom).locale(this.lang);\r\n const dayFormated = fmt.format('DD/');\r\n const monthFormated = MonkeyEcxUtils.capitalize(fmt.format('MMMM'));\r\n const yearFormated = fmt.format('YYYY');\r\n return `${`${dayFormated}${monthFormated}`.substring(0, 6)}, ${yearFormated}`;\r\n }\r\n\r\n transform(obj: any): string {\r\n if (!obj || !obj?.start || !obj?.end) return '';\r\n const { start, end } = obj;\r\n const formatedStart = this.format(start);\r\n const formatedEnd = this.format(end);\r\n return `${formatedStart} - ${formatedEnd}`;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CurrencyPipe } from '@angular/common';\r\nimport { MonkeyEcxDisplayFirstNamePipe } from './monkeyecx-display-first-name';\r\nimport { MonkeyEcxFormatAddressPipe } from './monkeyecx-format-address';\r\nimport { MonkeyEcxFormatCurrencyPipe } from './monkeyecx-format-currency';\r\nimport { MonkeyEcxFormatDateTimelapsePipe } from './monkeyecx-format-date-timelapse';\r\nimport { MonkeyEcxFormatDocumentPipe } from './monkeyecx-format-document';\r\nimport { MonkeyEcxFormatNumberPipe } from './monkeyecx-format-number';\r\nimport { MonkeyEcxFormatPhonePipe } from './monkeyecx-format-phone';\r\nimport { MonkeyEcxFormatSizePipe } from './monkeyecx-format-size';\r\nimport { MonkeyEcxFormatDocumentTypePipe } from './monkeyecx-format-type-document';\r\nimport { MonkeyEcxFormatValue } from './monkeyecx-format-value';\r\nimport { MonkeyEcxFormatZipCodePipe } from './monkeyecx-format-zipcode';\r\nimport { MonkeyEcxTextTruncatePipe } from './monkeyecx-text-truncate';\r\nimport { MonkeyEcxTruncateQtdPipe } from './monkeyecx-truncate-qtd';\r\nimport { MonkeyEcxFormatDateGroupPipe } from './monkeyecx-format-date-group';\r\n\r\n@NgModule({\r\n declarations: [\r\n MonkeyEcxDisplayFirstNamePipe,\r\n MonkeyEcxFormatAddressPipe,\r\n MonkeyEcxFormatCurrencyPipe,\r\n MonkeyEcxFormatDateTimelapsePipe,\r\n MonkeyEcxFormatDateGroupPipe,\r\n MonkeyEcxFormatDocumentPipe,\r\n MonkeyEcxFormatNumberPipe,\r\n MonkeyEcxFormatPhonePipe,\r\n MonkeyEcxFormatSizePipe,\r\n MonkeyEcxFormatDocumentTypePipe,\r\n MonkeyEcxFormatValue,\r\n MonkeyEcxFormatZipCodePipe,\r\n MonkeyEcxTextTruncatePipe,\r\n MonkeyEcxTruncateQtdPipe,\r\n ],\r\n exports: [\r\n MonkeyEcxDisplayFirstNamePipe,\r\n MonkeyEcxFormatAddressPipe,\r\n MonkeyEcxFormatCurrencyPipe,\r\n MonkeyEcxFormatDateTimelapsePipe,\r\n MonkeyEcxFormatDateGroupPipe,\r\n MonkeyEcxFormatDocumentPipe,\r\n MonkeyEcxFormatNumberPipe,\r\n MonkeyEcxFormatPhonePipe,\r\n MonkeyEcxFormatSizePipe,\r\n MonkeyEcxFormatDocumentTypePipe,\r\n MonkeyEcxFormatValue,\r\n MonkeyEcxFormatZipCodePipe,\r\n MonkeyEcxTextTruncatePipe,\r\n MonkeyEcxTruncateQtdPipe,\r\n ],\r\n providers: [CurrencyPipe],\r\n})\r\nexport class MonkeyEcxPipesModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport {\r\n MonkeyButtonModule,\r\n MonkeyIconModule,\r\n MonkeyInputModule,\r\n MonkeyModalModule\r\n} from 'monkey-style-guide';\r\nimport { MonkeyEcxPipesModule } from '../../core/pipes/monkeyecx-pipes.module';\r\nimport { ClosedToMaintenanceComponent } from './closed-to-maintenance.component';\r\n\r\n@NgModule({\r\n declarations: [ClosedToMaintenanceComponent],\r\n imports: [\r\n CommonModule,\r\n MonkeyButtonModule,\r\n MonkeyIconModule,\r\n MonkeyInputModule,\r\n MonkeyModalModule,\r\n MonkeyEcxPipesModule,\r\n TranslateModule.forChild()\r\n ],\r\n exports: [ClosedToMaintenanceComponent]\r\n})\r\nexport class ClosedToMaintenanceModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n NavigationCancel,\r\n NavigationEnd,\r\n NavigationError,\r\n NavigationStart,\r\n Router\r\n} from '@angular/router';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxProgressBarService {\r\n private visible: BehaviorSubject<any> | null = null;\r\n\r\n constructor(private router: Router) {\r\n this.init();\r\n }\r\n\r\n private init() {\r\n this.visible = new BehaviorSubject(false);\r\n\r\n this.router.events\r\n .pipe(\r\n filter((event: any) => {\r\n return event instanceof NavigationStart;\r\n })\r\n )\r\n .subscribe(() => {\r\n this.show();\r\n });\r\n\r\n this.router.events\r\n .pipe(\r\n filter((event: any) => {\r\n return (\r\n event instanceof NavigationEnd ||\r\n event instanceof NavigationError ||\r\n event instanceof NavigationCancel\r\n );\r\n })\r\n )\r\n .subscribe(() => {\r\n this.hide();\r\n });\r\n }\r\n\r\n show() {\r\n this.visible?.next(true);\r\n }\r\n\r\n hide() {\r\n this.visible?.next(false);\r\n }\r\n\r\n visibleConfig(): Observable<any> | null {\r\n return this.visible?.asObservable() || null;\r\n }\r\n}\r\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { MonkeyEcxProgressBarService } from './progress-bar.service';\r\n\r\n@Component({\r\n selector: 'monkeyecx-progress-bar',\r\n templateUrl: './progress-bar.component.html',\r\n styleUrls: ['./progress-bar.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MonkeyEcxProgressBarComponent implements OnInit {\r\n visible: boolean = false;\r\n\r\n constructor(private progressBarService: MonkeyEcxProgressBarService) {\r\n //not to do\r\n }\r\n\r\n ngOnInit() {\r\n this.progressBarService?.visibleConfig()?.subscribe((visible: boolean) => {\r\n this.visible = visible;\r\n });\r\n }\r\n}\r\n","<ng-container *ngIf=\"visible\">\r\n <progress class=\"monkey-progress monkey-progress__theme\"></progress>\r\n</ng-container>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MonkeyEcxProgressBarComponent } from './progress-bar.component';\r\n\r\n@NgModule({\r\n declarations: [MonkeyEcxProgressBarComponent],\r\n imports: [CommonModule],\r\n exports: [MonkeyEcxProgressBarComponent]\r\n})\r\nexport class MonkeyEcxProgressBarModule {}\r\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\r\nimport { MonkeyModalConfig } from 'monkey-style-guide';\r\n\r\n@Component({\r\n selector: 'monkeyecx-version-changed',\r\n templateUrl: './version-changed.component.html',\r\n styleUrls: ['./version-changed.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class VersionChangedComponent {\r\n @Input() config: MonkeyModalConfig | null = null;\r\n\r\n @Input() modalRef: any;\r\n\r\n onClose() {\r\n document.location.reload();\r\n }\r\n}\r\n","<monkey-modal [config]=\"config\" [modalRef]=\"modalRef\" *ngIf=\"config\">\r\n <div class=\"d-flex flex-column justify-content-center align-items-center\">\r\n <span class=\"h2\">\r\n {{ 'SCREENS.VERSION-CHANGED.TITLE' | translate }}\r\n </span>\r\n <span class=\"information-title mt-4\">\r\n {{ 'SCREENS.VERSION-CHANGED.INFORMATION-1' | translate }}\r\n </span>\r\n <span class=\"information mt-3\">\r\n {{ 'SCREENS.VERSION-CHANGED.INFORMATION-2' | translate }}\r\n </span>\r\n </div>\r\n <div class=\"d-flex flex-column justify-content-center align-items-center mt-5\">\r\n <monkey-button type=\"primary\" color=\"theme\" (click)=\"onClose()\">\r\n {{ 'SCREENS.VERSION-CHANGED.BUTTONS.UPDATE-VERSION' | translate }}\r\n </monkey-button>\r\n </div>\r\n</monkey-modal>","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport {\r\n MonkeyButtonModule,\r\n MonkeyIconModule,\r\n MonkeyInputModule,\r\n MonkeyModalModule\r\n} from 'monkey-style-guide';\r\nimport { VersionChangedComponent } from './version-changed.component';\r\n\r\n@NgModule({\r\n declarations: [VersionChangedComponent],\r\n imports: [\r\n CommonModule,\r\n MonkeyButtonModule,\r\n MonkeyIconModule,\r\n MonkeyInputModule,\r\n MonkeyModalModule,\r\n TranslateModule.forChild()\r\n ],\r\n exports: [VersionChangedComponent]\r\n})\r\nexport class VersionChangedModule {}\r\n","/* eslint-disable space-before-function-paren */\n/* eslint-disable func-names */\nexport function MonkeyEcxCoreCharts(render = true) {\n return (\n target: Object,\n propertyName: string,\n propertyDescriptor: PropertyDescriptor\n ): PropertyDescriptor => {\n const method = propertyDescriptor.value;\n\n propertyDescriptor.value = function(...args: any[]) {\n const context = this;\n if (render) {\n const scriptsLoaded = Array.from(document.scripts);\n scriptsLoaded.forEach((script: any) => {\n const { src } = script;\n if (src.search('www.gstatic.com/charts') > 0) {\n document.getElementsByTagName('head')[0].removeChild(script);\n }\n });\n\n const node = document.createElement('script');\n node.src = 'https://www.gstatic.com/charts/loader.js';\n node.type = 'text/javascript';\n node.async = true;\n node.id = 'monkeyecx-charts-settings';\n node.onload = () => {\n method.apply(context, args);\n };\n document.getElementsByTagName('head')[0].appendChild(node);\n } else {\n const scriptsLoaded = Array.from(document.scripts);\n scriptsLoaded.forEach((script: any) => {\n const { src } = script;\n if (src.search('www.gstatic.com/charts') > 0) {\n document.getElementsByTagName('head')[0].removeChild(script);\n }\n });\n\n method.apply(context, args);\n }\n };\n\n return propertyDescriptor;\n };\n}\n","/* eslint-disable max-classes-per-file */\r\nimport * as moment_ from 'moment';\r\nimport { AbstractControl } from '@angular/forms';\r\nimport { MonkeyEcxUtils } from './utils';\r\n\r\nconst moment: any = moment_;\r\n\r\nexport class DateValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n if (control && control.value) {\r\n const dateFormat = 'MM-DD-YYYY';\r\n if (\r\n !moment\r\n .default(\r\n moment.default(control.value).format(dateFormat),\r\n ['DD/MM/YYYY', 'MM-DD-YYYY', 'YYYY-MM-DD'],\r\n true\r\n )\r\n .isValid()\r\n ) {\r\n return {\r\n invalidDate: true,\r\n };\r\n }\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport class DocumentValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n if (control && control.value) {\r\n if (!MonkeyEcxUtils.isCPFCNPJValid(control.value)) {\r\n return {\r\n invalidCpfCnpj: true,\r\n };\r\n }\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport class DocumentRutValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n if (control && control.value) {\r\n if (!MonkeyEcxUtils.isValidRUT(control.value)) {\r\n return {\r\n invalidRut: true,\r\n };\r\n }\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport class ZipCodeValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n if (control && control.value) {\r\n if (!MonkeyEcxUtils.isValidZipCode(control.value)) {\r\n return {\r\n invalidZipCode: true,\r\n };\r\n }\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport class ComboValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n if (control && control.value !== '0') return null;\r\n return {\r\n invalidCombo: true,\r\n };\r\n }\r\n}\r\n\r\nexport class isTrueValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n if (control && control.value !== false) return null;\r\n return {\r\n invalidTrue: true,\r\n };\r\n }\r\n}\r\n\r\nexport class PasswordMatchValidation {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n const { parent } = control;\r\n const password = parent?.get('password')?.value;\r\n const passwordConfirm = parent?.get('passwordConfirm')?.value;\r\n if (!password || !passwordConfirm) return null;\r\n if (password === passwordConfirm) return null;\r\n return {\r\n passwordsNotMatching: true,\r\n };\r\n }\r\n}\r\n\r\nexport class UrlValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n if (control && control.value) {\r\n if (!MonkeyEcxUtils.isValidUrl(control.value)) {\r\n return {\r\n invalidUrl: true,\r\n };\r\n }\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport class CustomDatesStartValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n const { parent } = control;\r\n\r\n const valueStart = parent?.get('dateStart')?.value;\r\n const valueEnd = parent?.get('dateEnd')?.value;\r\n let dateStart: Date | null = null;\r\n let dateEnd: Date | null = null;\r\n if (valueStart) {\r\n dateStart = new Date(valueStart);\r\n }\r\n if (valueEnd) {\r\n dateEnd = new Date(valueEnd);\r\n }\r\n\r\n if (!dateStart || !dateEnd) return null;\r\n if (dateStart > dateEnd) {\r\n return {\r\n dateStartMustBeLessThanAnd: true,\r\n };\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport class CustomDatesEndValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n const { parent } = control;\r\n\r\n const valueStart = parent?.get('dateStart')?.value;\r\n const valueEnd = parent?.get('dateEnd')?.value;\r\n let dateStart: Date | null = null;\r\n let dateEnd: Date | null = null;\r\n if (valueStart) {\r\n dateStart = new Date(valueStart);\r\n }\r\n if (valueEnd) {\r\n dateEnd = new Date(valueEnd);\r\n }\r\n\r\n if (!dateEnd || !dateStart) return null;\r\n if (dateEnd < dateStart) {\r\n return {\r\n dateEndMustBeGreaterThanStart: true,\r\n };\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport class UnlockRegisterBuyerValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n\r\n if (control && control.value !== '#MONKEYBUYER') {\r\n return {\r\n invalidUnlockRegister: true,\r\n };\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n\r\nexport class UnlockRegisterSponsorValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) return null;\r\n\r\n if (control && control.value !== '#MONKEYSPONSOR') {\r\n return {\r\n invalidUnlockRegister: true,\r\n };\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n\r\nexport class DateRangeValidator {\r\n static do(control: AbstractControl) {\r\n if (!control.parent || !control) {\r\n return null;\r\n }\r\n\r\n const dates = control?.parent?.get('dates')?.value;\r\n\r\n if (\r\n dates &&\r\n (!MonkeyEcxUtils.persistNullEmptyUndefined(dates.startDate) ||\r\n !MonkeyEcxUtils.persistNullEmptyUndefined(dates.endDate))\r\n ) {\r\n return {\r\n invalidDateRange: true,\r\n };\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n","/* eslint-disable no-unused-vars */\r\n/* eslint-disable no-shadow */\r\nexport enum MonkeyEcxQueueEvents {\r\n OnGoing,\r\n Finished,\r\n FinishedWithError\r\n}\r\n\r\nexport enum MonkeyEcxDownloadEvents {\r\n OnGoing,\r\n Finished,\r\n FinishedWithError\r\n}\r\n\r\nexport enum MonkeyEcxUploadEvents {\r\n OnGoing,\r\n Finished,\r\n FinishedWithError\r\n}\r\n\r\n// TODO pegar do json de config\r\nexport enum ApiEndPointsTokenNotMandatory {\r\n Assets = 'assets/',\r\n MonkeyEcx = '/monkeyecx',\r\n ViaCep = 'viacep.com.br/'\r\n}\r\n\r\n// TODO pegar do json de config\r\nexport enum ApiEndPointsHeaderNotMandatory {\r\n Assets = '/assets',\r\n PayablesUpload = 'payables-upload',\r\n PictureUser = '/user-pictures',\r\n Documents = 'documents/',\r\n BuyerTaxFile = '/buyer-tax-file',\r\n ViaCep = 'viacep.com.br/'\r\n}\r\n","import {\r\n MonkeyEcxRequestDownload,\r\n MonkeyEcxRequestItemQueue,\r\n MonkeyEcxRequestQueue,\r\n MonkeyEcxRequestUpload\r\n} from '../interfaces';\r\nimport * as Statics from './statics';\r\nimport { MonkeyEcxUtils } from './utils';\r\n\r\nexport function buildQueuePropertys(queue: MonkeyEcxRequestItemQueue): MonkeyEcxRequestQueue {\r\n const params: MonkeyEcxRequestQueue = {\r\n item: {\r\n ...queue,\r\n id: MonkeyEcxUtils.getRandomString(40)\r\n },\r\n status: Statics.MonkeyEcxQueueEvents.OnGoing\r\n };\r\n\r\n return params;\r\n}\r\n\r\nexport function buildDownloadPropertys(\r\n name: string,\r\n description?: string,\r\n size?: number\r\n): MonkeyEcxRequestDownload {\r\n const params: MonkeyEcxRequestDownload = {\r\n item: {\r\n name,\r\n description,\r\n id: `${MonkeyEcxUtils.getRandomString(40)}`,\r\n size,\r\n createdAt: new Date()\r\n },\r\n status: Statics.MonkeyEcxQueueEvents.OnGoing\r\n };\r\n\r\n return params;\r\n}\r\n\r\nexport function buildUploadPropertys(name: string, description?: string): MonkeyEcxRequestUpload {\r\n const params: MonkeyEcxRequestUpload = {\r\n item: {\r\n name,\r\n description,\r\n id: `${MonkeyEcxUtils.getRandomString(40)}`\r\n },\r\n status: Statics.MonkeyEcxUploadEvents.OnGoing\r\n };\r\n\r\n return params;\r\n}\r\n\r\nexport function hasMonkeyEcxServiceAndHandlingProperties(context: any): boolean {\r\n return Object.prototype.hasOwnProperty.call(context, 'monkeyecxService');\r\n}\r\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\r\nimport * as moment_ from 'moment';\r\nimport { MonkeyEcxUtils } from './utils';\r\n\r\nconst moment: any = moment_;\r\n\r\nconst EMAIL_REGEXP = /^[\\w-.]+@([\\w-]+\\.)+[\\w-]{1,64}$/;\r\n\r\nfunction isEmptyInputValue(value: any): boolean {\r\n return value == null || value.length === 0;\r\n}\r\n\r\nexport function emailValidator(control: AbstractControl): ValidationErrors | null {\r\n if (!control.parent || !control || isEmptyInputValue(control.value)) {\r\n return null;\r\n }\r\n const test = EMAIL_REGEXP.test(control.value);\r\n if (test) return null;\r\n return {\r\n email: true,\r\n };\r\n}\r\n\r\nexport function dateRangeValidator(control: AbstractControl): ValidationErrors | null {\r\n if (!control.parent || !control || isEmptyInputValue(control.value)) {\r\n return null;\r\n }\r\n\r\n const dates = control?.parent?.get('dates')?.value;\r\n if (\r\n dates &&\r\n (!MonkeyEcxUtils.persistNullEmptyUndefined(dates?.startDate) ||\r\n !MonkeyEcxUtils.persistNullEmptyUndefined(dates?.endDate))\r\n ) {\r\n return {\r\n dateRange: true,\r\n };\r\n }\r\n\r\n return null;\r\n}\r\n\r\nexport function registerValidator(control: AbstractControl, type: string): ValidationErrors | null {\r\n if (!control.parent || !control || isEmptyInputValue(control.value)) {\r\n return null;\r\n }\r\n\r\n if (control && control.value !== `#MONKEY${type}`.toUpperCase()) {\r\n return {\r\n invalidUnlockRegister: true,\r\n };\r\n }\r\n\r\n return null;\r\n}\r\n\r\nexport function dateStartEndValidator(control: AbstractControl): ValidationErrors | null {\r\n if (!control.parent || !control) {\r\n return null;\r\n }\r\n\r\n const { parent } = control;\r\n\r\n const valueStart = parent?.get('dateStart')?.value;\r\n const valueEnd = parent?.get('dateEnd')?.value;\r\n let dateStart: Date | null = null;\r\n let dateEnd: Date | null = null;\r\n if (valueStart) {\r\n dateStart = new Date(valueStart);\r\n }\r\n if (valueEnd) {\r\n dateEnd = new Date(valueEnd);\r\n }\r\n\r\n if (!dateEnd || !dateStart) return null;\r\n if (dateStart > dateEnd) {\r\n return {\r\n dateStartMustBeLessThanAnd: true,\r\n };\r\n }\r\n\r\n return null;\r\n}\r\n\r\nexport function urlValidator(control: AbstractControl): ValidationErrors | null {\r\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\r\n\r\n if (!MonkeyEcxUtils.isValidUrl(control.value)) {\r\n return {\r\n url: true,\r\n };\r\n }\r\n\r\n return null;\r\n}\r\n\r\nexport function passwordConfirmValidator(control: AbstractControl): ValidationErrors | null {\r\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\r\n\r\n const { parent } = control;\r\n const password = parent?.get('password')?.value;\r\n const passwordConfirm = parent?.get('passwordConfirm')?.value;\r\n if (!password || !passwordConfirm) return null;\r\n if (password === passwordConfirm) return null;\r\n\r\n return {\r\n passwordsNotMatching: true,\r\n };\r\n}\r\n\r\nexport function trueValidator(control: AbstractControl): ValidationErrors | null {\r\n if (!control.parent || !control) return null;\r\n if (control && control.value !== false) return null;\r\n\r\n return {\r\n invalidTrue: true,\r\n };\r\n}\r\n\r\nexport function comboValidator(control: AbstractControl): ValidationErrors | null {\r\n if (!control.parent || !control) return null;\r\n if (control && control.value !== '0') return null;\r\n\r\n return {\r\n invalidCombo: true,\r\n };\r\n}\r\n\r\nexport function zipCodeValidator(control: AbstractControl): ValidationErrors | null {\r\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\r\n if (control && control.value) {\r\n if (!MonkeyEcxUtils.isValidZipCode(control.value)) {\r\n return {\r\n invalidZipCode: true,\r\n };\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nexport function documentValidator(\r\n control: AbstractControl,\r\n country: string\r\n): ValidationErrors | null {\r\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\r\n if (country === 'BR') {\r\n if (!MonkeyEcxUtils.isCPFCNPJValid(control.value)) {\r\n return {\r\n invalidCpfCnpj: true,\r\n };\r\n }\r\n } else if (country === 'CL') {\r\n if (!MonkeyEcxUtils.isValidRUT(control.value)) {\r\n return {\r\n invalidCpfCnpj: true,\r\n };\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nexport function dateValidator(control: AbstractControl): ValidationErrors | null {\r\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\r\n\r\n const dateFormat = 'MM-DD-YYYY';\r\n if (\r\n !moment\r\n .default(\r\n moment.default(control.value).format(dateFormat),\r\n ['DD/MM/YYYY', 'MM-DD-YYYY', 'YYYY-MM-DD'],\r\n true\r\n )\r\n .isValid()\r\n ) {\r\n return {\r\n invalidDate: true,\r\n };\r\n }\r\n return null;\r\n}\r\n\r\nexport function valueGreaterThanZero(control: AbstractControl): ValidationErrors | null {\r\n if (!control.parent || !control || isEmptyInputValue(control.value)) return null;\r\n\r\n if (control && `${control?.value}` === '0') {\r\n return {\r\n invalidValueGreaterThanZero: true,\r\n };\r\n }\r\n return null;\r\n}\r\n\r\nexport class Validators {\r\n static email(control: AbstractControl): ValidationErrors | null {\r\n return emailValidator(control);\r\n }\r\n\r\n static dateRange(control: AbstractControl): ValidationErrors | null {\r\n return dateRangeValidator(control);\r\n }\r\n\r\n static unlockSponsorRegister(control: AbstractControl): ValidationErrors | null {\r\n return registerValidator(control, 'sponsor');\r\n }\r\n\r\n static unlockBuyerRegister(control: AbstractControl): ValidationErrors | null {\r\n return registerValidator(control, 'buyer');\r\n }\r\n\r\n static dateStartEnd(control: AbstractControl): ValidationErrors | null {\r\n return dateStartEndValidator(control);\r\n }\r\n\r\n static url(control: AbstractControl): ValidationErrors | null {\r\n return urlValidator(control);\r\n }\r\n\r\n static passwordConfirm(control: AbstractControl): ValidationErrors | null {\r\n return passwordConfirmValidator(control);\r\n }\r\n\r\n static true(control: AbstractControl): ValidationErrors | null {\r\n return trueValidator(control);\r\n }\r\n\r\n static combo(control: AbstractControl): ValidationErrors | null {\r\n return comboValidator(control);\r\n }\r\n\r\n static zipCode(control: AbstractControl): ValidationErrors | null {\r\n return zipCodeValidator(control);\r\n }\r\n\r\n static documentBR(control: AbstractControl): ValidationErrors | null {\r\n return documentValidator(control, 'BR');\r\n }\r\n\r\n static documentCL(control: AbstractControl): ValidationErrors | null {\r\n return documentValidator(control, 'CL');\r\n }\r\n\r\n static date(control: AbstractControl): ValidationErrors | null {\r\n return dateValidator(control);\r\n }\r\n\r\n static greaterThanZero(control: AbstractControl): ValidationErrors | null {\r\n return valueGreaterThanZero(control);\r\n }\r\n}\r\n","/* eslint-disable object-curly-newline */\r\nimport { MonkeyEcxUtils } from './utils';\r\nimport * as ValidateUtils from './validate-utils';\r\nimport * as DecoratorsUtils from './decorators-utils';\r\nimport * as Statics from './statics';\r\n\r\nexport { MonkeyEcxUtils, ValidateUtils, DecoratorsUtils, Statics };\r\nexport * from './validators';\r\n","/* eslint-disable no-console */\r\n/* eslint-disable space-before-function-paren */\r\n/* eslint-disable func-names */\r\n/* eslint-disable max-len */\r\nimport { MonkeyEcxServiceCredentials } from '../interfaces';\r\nimport { DecoratorsUtils } from '../utils';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\nexport function MonkeyEcxCoreServiceConstructor() {\r\n return (target: any) => {\r\n Object.entries(target.prototype).forEach(([key, value]) => {\r\n const method = target.prototype[key];\r\n if (key !== 'constructor') {\r\n target.prototype[key] = function (...args: any[]) {\r\n const context = this;\r\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\r\n context.monkeyecxService.monkeyecxHandlingService.clearAll();\r\n }\r\n const result = method.apply(context, args);\r\n return result;\r\n };\r\n }\r\n });\r\n return target;\r\n };\r\n}\r\n\r\nexport function MonkeyEcxCoreLog(tp: string) {\r\n return function (\r\n target: Object,\r\n propertyName: string,\r\n propertyDescriptor: PropertyDescriptor\r\n ): PropertyDescriptor {\r\n const method = propertyDescriptor.value;\r\n propertyDescriptor.value = function (...args: any[]) {\r\n const params = args\r\n .map((a: any) => {\r\n return JSON.stringify(a);\r\n })\r\n .join();\r\n const result = method.apply(this, args);\r\n const r = JSON.stringify(result);\r\n console.log(`Call: ${propertyName}(${params}) => ${r}`);\r\n return result;\r\n };\r\n\r\n return propertyDescriptor;\r\n };\r\n}\r\n\r\nexport function MonkeyEcxCoreClearDecorators() {\r\n return function (\r\n target: Object,\r\n propertyName: string,\r\n propertyDescriptor: PropertyDescriptor\r\n ): PropertyDescriptor {\r\n const method = propertyDescriptor.value;\r\n\r\n propertyDescriptor.value = function (...args: any[]) {\r\n const context: any = this;\r\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\r\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\r\n }\r\n const result = method.apply(context, args);\r\n return result;\r\n };\r\n\r\n return propertyDescriptor;\r\n };\r\n}\r\n\r\nexport function MonkeyEcxCoreService(params: MonkeyEcxServiceCredentials) {\r\n return function (\r\n target: Object,\r\n propertyName: string,\r\n propertyDescriptor: PropertyDescriptor\r\n ): PropertyDescriptor {\r\n const method = propertyDescriptor.value;\r\n\r\n propertyDescriptor.value = function (...args: any[]) {\r\n const context: any = this;\r\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\r\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\r\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials(params);\r\n }\r\n const result = method.apply(context, args);\r\n return result;\r\n };\r\n\r\n return propertyDescriptor;\r\n };\r\n}\r\n\r\nexport function MonkeyEcxCoreServicePaged(params: MonkeyEcxServiceCredentials) {\r\n return function (\r\n target: Object,\r\n propertyName: string,\r\n propertyDescriptor: PropertyDescriptor\r\n ): PropertyDescriptor {\r\n const method = propertyDescriptor.value;\r\n\r\n propertyDescriptor.value = function (...args: any[]) {\r\n const context: any = this;\r\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\r\n const credentials =\r\n context?.monkeyecxService?.monkeyecxHandlingService?.getMonkeyEcxServiceCredentials();\r\n let requestPaged = null;\r\n if (credentials) {\r\n requestPaged = credentials.requestPaged;\r\n }\r\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\r\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials({\r\n ...params,\r\n ...(requestPaged || {}),\r\n });\r\n }\r\n const result = method.apply(context, args);\r\n return result;\r\n };\r\n\r\n return propertyDescriptor;\r\n };\r\n}\r\n\r\nexport function MonkeyEcxCoreServiceQueue(\r\n name: string,\r\n description?: string,\r\n params?: MonkeyEcxServiceCredentials\r\n) {\r\n return function (\r\n target: Object,\r\n propertyName: string,\r\n propertyDescriptor: PropertyDescriptor\r\n ): PropertyDescriptor {\r\n const method = propertyDescriptor.value;\r\n\r\n propertyDescriptor.value = function (...args: any[]) {\r\n const context: any = this;\r\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\r\n if (MonkeyEcxUtils.persistNullEmptyUndefined(params)) {\r\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\r\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials(\r\n params\r\n );\r\n }\r\n context?.monkeyecxService.monkeyecxHandlingService.setMonkeyEcxRequestQueue(\r\n DecoratorsUtils.buildQueuePropertys({\r\n name,\r\n description,\r\n })\r\n );\r\n }\r\n const result = method.apply(context, args);\r\n return result;\r\n };\r\n\r\n return propertyDescriptor;\r\n };\r\n}\r\n","/* eslint-disable space-before-function-paren */\r\n/* eslint-disable func-names */\r\n/* eslint-disable max-len */\r\nimport { MonkeyUtils } from 'monkey-style-guide';\r\nimport { MonkeyEcxServiceCredentials } from '../interfaces';\r\nimport { DecoratorsUtils } from '../utils';\r\n\r\nexport function MonkeyEcxServiceDownload(\r\n name: string,\r\n description?: string,\r\n params?: MonkeyEcxServiceCredentials\r\n) {\r\n return function (\r\n target: Object,\r\n propertyName: string,\r\n propertyDescriptor: PropertyDescriptor\r\n ): PropertyDescriptor {\r\n const method = propertyDescriptor.value;\r\n\r\n propertyDescriptor.value = function (...args: any[]) {\r\n const context: any = this;\r\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\r\n if (MonkeyUtils.persistNullEmptyUndefined(params)) {\r\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\r\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials(\r\n params\r\n );\r\n }\r\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxRequestDownload({\r\n ...DecoratorsUtils.buildDownloadPropertys(name, description),\r\n });\r\n }\r\n const result = method.apply(context, args);\r\n return result;\r\n };\r\n\r\n return propertyDescriptor;\r\n };\r\n}\r\n","/* eslint-disable space-before-function-paren */\r\n/* eslint-disable func-names */\r\n/* eslint-disable max-len */\r\nimport { MonkeyUtils } from 'monkey-style-guide';\r\nimport { MonkeyEcxServiceCredentials } from '../interfaces';\r\nimport { DecoratorsUtils } from '../utils';\r\n\r\nexport function MonkeyEcxServiceUpload(\r\n name: string,\r\n description?: string,\r\n params?: MonkeyEcxServiceCredentials\r\n) {\r\n return function (\r\n target: Object,\r\n propertyName: string,\r\n propertyDescriptor: PropertyDescriptor\r\n ): PropertyDescriptor {\r\n const method = propertyDescriptor.value;\r\n\r\n propertyDescriptor.value = function (...args: any[]) {\r\n const context: any = this;\r\n if (DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties(context)) {\r\n if (MonkeyUtils.persistNullEmptyUndefined(params)) {\r\n context?.monkeyecxService?.monkeyecxHandlingService?.clearAll();\r\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxServiceCredentials(\r\n params\r\n );\r\n }\r\n context?.monkeyecxService?.monkeyecxHandlingService?.setMonkeyEcxRequestUpload({\r\n ...DecoratorsUtils.buildUploadPropertys(name, description),\r\n });\r\n }\r\n const result = method.apply(context, args);\r\n return result;\r\n };\r\n\r\n return propertyDescriptor;\r\n };\r\n}\r\n","import { Directive, HostListener, Output, HostBinding, EventEmitter } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[monkeyecxDragDrop]',\r\n})\r\nexport class MonkeyEcxDragDropDirective {\r\n @Output() onFileDropped: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @HostBinding('style.background-color') private background = '#f5fcff';\r\n\r\n @HostBinding('style.opacity') private opacity = '1';\r\n\r\n @HostListener('dragover', ['$event'])\r\n onDragOver(evt: any) {\r\n evt?.preventDefault();\r\n evt?.stopPropagation();\r\n this.background = '#9ecbec';\r\n this.opacity = '0.8';\r\n }\r\n\r\n @HostListener('dragleave', ['$event'])\r\n public onDragLeave(evt: any) {\r\n evt?.preventDefault();\r\n evt?.stopPropagation();\r\n this.background = '#f5fcff';\r\n this.opacity = '1';\r\n }\r\n\r\n @HostListener('drop', ['$event'])\r\n public ondrop(evt: any) {\r\n evt?.preventDefault();\r\n evt?.stopPropagation();\r\n this.background = '#f5fcff';\r\n this.opacity = '1';\r\n const { files } = evt?.dataTransfer;\r\n if (files.length > 0) {\r\n this.onFileDropped.emit(files);\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, OnInit, Injector } from '@angular/core';\r\nimport { CurrencyPipe } from '@angular/common';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n@Directive({\r\n selector: '[monkeyecxFormatCurrency]',\r\n providers: [CurrencyPipe]\r\n})\r\nexport class MonkeyEcxFormatCurrency implements OnInit {\r\n private el: HTMLInputElement;\r\n\r\n private currency: any;\r\n\r\n private currencyCode: string = 'BRL';\r\n\r\n private currentLocale: string = 'pt-BR';\r\n\r\n constructor(private elementRef: ElementRef, private injector: Injector) {\r\n this.el = this.elementRef.nativeElement;\r\n this.currency = this.injector.get(CurrencyPipe);\r\n\r\n const translateService = this.injector.get(TranslateService);\r\n translateService.get('MONKEY-CURRENCY-CODE').subscribe((_: any) => {\r\n this.currencyCode = _;\r\n this.currentLocale = translateService.getDefaultLang();\r\n });\r\n }\r\n\r\n private handle(value: any): string {\r\n const { currencyCode, currentLocale } = this;\r\n const newValue = MonkeyEcxUtils.handleOnlyNumbers(value);\r\n return this.currency.transform(newValue / 100, currencyCode, 'symbol', '', currentLocale);\r\n }\r\n\r\n ngOnInit() {\r\n this.el.value = this.handle(this.el.value);\r\n }\r\n\r\n @HostListener('input', ['$event.target.value'])\r\n onInput(value: any) {\r\n this.el.value = this.handle(value);\r\n }\r\n}\r\n","import { Directive, ElementRef, forwardRef, HostListener, Renderer2, Self } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[monkeyecxFormatUpper]',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => {\r\n // eslint-disable-next-line no-use-before-define\r\n return MonkeyEcxFormatUpper;\r\n }),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class MonkeyEcxFormatUpper implements ControlValueAccessor {\r\n _onChange?: (_: any) => void;\r\n\r\n _touched?: () => void;\r\n\r\n constructor(@Self() private _el: ElementRef, private _renderer: Renderer2) {\r\n // not to do\r\n }\r\n\r\n @HostListener('keyup', ['$event'])\r\n onKeyDown(evt: KeyboardEvent) {\r\n const value = this._el.nativeElement.value.toUpperCase();\r\n this._renderer.setProperty(this._el.nativeElement, 'value', value);\r\n this._onChange?.(value);\r\n evt.preventDefault();\r\n }\r\n\r\n @HostListener('blur', ['$event'])\r\n onBlur() {\r\n this._touched?.();\r\n }\r\n\r\n writeValue(value: any): void {\r\n this._renderer.setProperty(this._el.nativeElement, 'value', value);\r\n }\r\n\r\n registerOnChange(fn: (_: any) => void): void {\r\n this._onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void): void {\r\n this._touched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this._renderer.setProperty(this._el.nativeElement, 'disabled', isDisabled);\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Directive({\n selector: '[monkeyecxOnlyAlphaNumeric]'\n})\nexport class MonkeyEcxOnlyAlphaNumericDirective {\n constructor(private elementRef: ElementRef) {\n // not to do\n }\n\n @HostListener('input', ['$event'])\n onInputChange(event: Event) {\n const initalValue = this.elementRef.nativeElement.value;\n\n this.elementRef.nativeElement.value = MonkeyEcxUtils.handleOnlyAlphaNumeric(initalValue);\n if (initalValue !== this.elementRef.nativeElement.value) {\n event.stopPropagation();\n }\n }\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\nimport { MonkeyEcxUtils } from '../utils/utils';\n\n@Directive({\n selector: '[monkeyecxOnlyNumbers]'\n})\nexport class MonkeyEcxOnlyNumbersDirective {\n constructor(private elementRef: ElementRef) {\n // not to do\n }\n\n @HostListener('input', ['$event'])\n onInputChange(event: Event) {\n const initalValue = this.elementRef.nativeElement.value;\n\n this.elementRef.nativeElement.value = MonkeyEcxUtils.handleOnlyNumbers(initalValue);\n if (initalValue !== this.elementRef.nativeElement.value) {\n event.stopPropagation();\n }\n }\n}\n","import { HttpParams } from '@angular/common/http';\r\nimport { MonkeyEcxRequestPaged } from '../../interfaces/monkeyecx-request-paged';\r\nimport { MonkeyEcxResponseLinks } from '../../interfaces/monkeyecx-response-links';\r\n\r\nexport class MonkeyEcxRequestPagedHandling {\r\n private url?: string;\r\n\r\n private pagedParams: MonkeyEcxRequestPaged;\r\n\r\n private links: MonkeyEcxResponseLinks;\r\n\r\n constructor(_url?: string, _pagedParams?: MonkeyEcxRequestPaged, _links?: any) {\r\n this.url = _url;\r\n this.pagedParams = _pagedParams || {\r\n page: {},\r\n };\r\n this.links = _links;\r\n }\r\n\r\n private handlePagedValuesFromApi(url: string = '') {\r\n if (url.search('\\\\?') < 0) return url;\r\n const params = url.substring(url.search('\\\\?') + 1, url.length);\r\n url = url.substring(0, url.search('\\\\?'));\r\n return `${url}?${new HttpParams({\r\n fromString: params,\r\n })\r\n .delete('size')\r\n .delete('page')\r\n .toString()}`;\r\n }\r\n\r\n private getUrlParams(url: string): string {\r\n const { pagedParams } = this;\r\n const { number, size } = pagedParams?.page || {};\r\n const hasInitialQueryParams = url.search('\\\\?') > 0;\r\n return `${!hasInitialQueryParams ? '?' : '&'}page=${number || 0}&size=${size || 20}`;\r\n }\r\n\r\n public getRequestWithPagedParams(): string {\r\n const { url, links } = this;\r\n if (links && links.next) {\r\n return links.next.href;\r\n }\r\n const handled = this.handlePagedValuesFromApi(url);\r\n return `${handled}${this.getUrlParams(handled)}`;\r\n }\r\n}\r\n","import {\r\n ActivatedRouteSnapshot,\r\n NavigationStart,\r\n Router,\r\n RouterStateSnapshot,\r\n} from '@angular/router';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BehaviorSubject, throwError } from 'rxjs';\r\nimport { filter, take, takeWhile } from 'rxjs/operators';\r\nimport {\r\n MonkeyEcxErrorResponse,\r\n MonkeyEcxHandledErrorResponse,\r\n MonkeyEcxRequestPaged,\r\n MonkeyEcxRequestSchedule,\r\n MonkeyEcxResponsePaged,\r\n MonkeyEcxResponseLinks,\r\n MonkeyEcxTokenCredentials,\r\n MonkeyEcxTranslateOptions,\r\n} from '../../interfaces';\r\nimport { MonkeyEcxTokenStorageService } from '../storage/monkeyecx-token-storage.service';\r\nimport { MonkeyEcxRequestScheduleService } from '../schedules/monkeyecx-request-schedule.service';\r\nimport { MonkeyEcxRequestQueueHandlingService } from '../request-queue/monkeyecx-request-queue-handling.service';\r\nimport { MonkeyEcxRequestPagedHandling } from '../request-paged/monkeyecx-request-request-paged-handling';\r\nimport { MonkeyEcxFeatureToggleService } from '../config/monkeyecx-feature-toggle.service';\r\nimport { MonkeyEcxUtils } from '../../utils/utils';\r\nimport { MonkeyEcxCoreService } from '../../decorators/monkeyecx-decorators';\r\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\r\nimport { MonkeyEcxSavedState } from '../../interfaces';\r\n\r\nexport class MonkeyEcxCommonsService {\r\n private flagValidator = true;\r\n\r\n __data: any | any[];\r\n\r\n __savedState: MonkeyEcxSavedState | null = null;\r\n\r\n __params: any | any[];\r\n\r\n __error: MonkeyEcxErrorResponse | null = null;\r\n\r\n __handledError: MonkeyEcxHandledErrorResponse | null = null;\r\n\r\n __page: MonkeyEcxResponsePaged | null = null;\r\n\r\n __links: MonkeyEcxResponseLinks | null = null;\r\n\r\n __search: any;\r\n\r\n __requestPaged: MonkeyEcxRequestPaged | null = null;\r\n\r\n __onSearchChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\r\n\r\n __onDataChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\r\n\r\n __onLoadingInProgress$: BehaviorSubject<any> = new BehaviorSubject(false);\r\n\r\n __onDataDeleted$: BehaviorSubject<any> = new BehaviorSubject(null);\r\n\r\n __onErrorChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\r\n\r\n __onGovernmentIdDataChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\r\n\r\n __onZipCodeDataChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\r\n\r\n __oni18nDataChanged$: BehaviorSubject<any> = new BehaviorSubject(null);\r\n\r\n __onDoSearch$: BehaviorSubject<MonkeyEcxRequestPaged> = new BehaviorSubject({});\r\n\r\n __tokenCredentials: MonkeyEcxTokenCredentials | null = null;\r\n\r\n __schedule: MonkeyEcxRequestSchedule | null = null;\r\n\r\n __i18n: any;\r\n\r\n __callbackPagination: Function = () => {\r\n // eslint-disable-next-line no-console\r\n return console.error('Method callbackPagination needs to be declared');\r\n };\r\n\r\n constructor(\r\n public monkeyecxService?: MonkeyEcxService,\r\n public tokenStorage?: MonkeyEcxTokenStorageService,\r\n public otherArgs?: {\r\n router?: Router;\r\n schedule?: {\r\n service: MonkeyEcxRequestScheduleService;\r\n options?: {\r\n clearOnChangeRoute?: boolean;\r\n };\r\n };\r\n queue?: {\r\n service: MonkeyEcxRequestQueueHandlingService;\r\n };\r\n }\r\n ) {\r\n this.handleInit();\r\n }\r\n\r\n private handleInit() {\r\n if (this.tokenStorage) {\r\n this.__tokenCredentials = this.tokenStorage.getToken();\r\n }\r\n\r\n if (this.otherArgs?.router) {\r\n const { clearOnChangeRoute } = this.otherArgs?.schedule?.options || {\r\n clearOnChangeRoute: false,\r\n };\r\n this.otherArgs.router.events\r\n .pipe(\r\n filter((event: any) => {\r\n return event instanceof NavigationStart;\r\n }),\r\n take(1)\r\n )\r\n .subscribe(() => {\r\n if (this.__schedule && clearOnChangeRoute) {\r\n this.otherArgs?.schedule?.service?.removeSchedule(this.__schedule);\r\n this.__schedule = null;\r\n }\r\n });\r\n }\r\n }\r\n\r\n private getRole(): string {\r\n const { __tokenCredentials } = this;\r\n\r\n if (!__tokenCredentials) return '';\r\n\r\n if (__tokenCredentials?.programAdmin === 'true') {\r\n return 'PROGRAM_ADMIN';\r\n }\r\n\r\n return __tokenCredentials?.role || '';\r\n }\r\n\r\n private allowedSecurityAccess(args: any): boolean {\r\n if (!args) return true;\r\n const roles = args?.roles;\r\n const byExclusion = args?.byExclusion;\r\n const found = roles?.indexOf(this.getRole());\r\n let ret = false;\r\n if (byExclusion) {\r\n ret = true;\r\n if (found > -1) {\r\n ret = false;\r\n }\r\n } else {\r\n ret = false;\r\n if (found > -1) {\r\n ret = true;\r\n }\r\n }\r\n if (!roles || roles.length === 0 || this.getRole() === 'PROGRAM_ADMIN') {\r\n ret = true;\r\n }\r\n return ret;\r\n }\r\n\r\n private navigateToErrorPage(statusCode: number, router?: Router) {\r\n const routes: any = {\r\n 403: 'forbidden',\r\n 404: 'not-found',\r\n 500: 'service-problems',\r\n 503: 'service-problems',\r\n };\r\n\r\n if (!router) {\r\n console.error('Router must be declared');\r\n } else {\r\n router?.navigate([`/app/pages/${routes[statusCode]}`.toLowerCase()], {\r\n skipLocationChange: true,\r\n });\r\n }\r\n }\r\n\r\n setPage(requestPaged: MonkeyEcxRequestPaged) {\r\n this.__requestPaged = {\r\n ...this.__requestPaged,\r\n ...requestPaged,\r\n };\r\n return this;\r\n }\r\n\r\n nextPage(): boolean {\r\n if (this.__links) {\r\n return !!this.__links?.next;\r\n }\r\n if (!this.__requestPaged) return false;\r\n const { page } = this.__requestPaged as any;\r\n const { number, totalPages } = page;\r\n if (number < totalPages) {\r\n this.__requestPaged = {\r\n ...this.__requestPaged,\r\n page: {\r\n ...page,\r\n number: number + 1,\r\n },\r\n };\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n getEmbeddedData(data: any, field: string): any[] | any {\r\n const { _embedded } = data;\r\n return _embedded ? _embedded[field] : null;\r\n }\r\n\r\n getNormalizedUrl(url: string): string {\r\n const { __requestPaged, __links } = this;\r\n return new MonkeyEcxRequestPagedHandling(\r\n url,\r\n __requestPaged || {},\r\n __links\r\n ).getRequestWithPagedParams();\r\n }\r\n\r\n clear(clearData: boolean) {\r\n if (clearData) {\r\n this.__data = null;\r\n this.__requestPaged = null;\r\n this.__params = null;\r\n this.__page = null;\r\n this.__links = null;\r\n\r\n if (this.__schedule) {\r\n const { queue } = this.__schedule;\r\n if (queue) {\r\n this.otherArgs?.queue?.service?.removeQueueItem(queue);\r\n }\r\n this.otherArgs?.schedule?.service?.removeSchedule(this.__schedule);\r\n this.__schedule = null;\r\n }\r\n }\r\n this.__error = null;\r\n this.__handledError = null;\r\n this.flagValidator = false;\r\n }\r\n\r\n resolve(\r\n route: ActivatedRouteSnapshot | null,\r\n state: RouterStateSnapshot | null,\r\n otherArgs?: {\r\n callbackMain: Function;\r\n router?: Router;\r\n security?: {\r\n roles: string[];\r\n byExclusion?: boolean;\r\n };\r\n callbackPagination?: Function;\r\n translateOptions?: MonkeyEcxTranslateOptions;\r\n feature?: {\r\n service: MonkeyEcxFeatureToggleService;\r\n flag: string;\r\n };\r\n }\r\n ) {\r\n if (JSON.stringify(route?.queryParams) === '{}') {\r\n this.__data = null;\r\n this.__page = null;\r\n }\r\n\r\n this.__requestPaged = null;\r\n this.flagValidator = true;\r\n\r\n if (this.tokenStorage) {\r\n this.__tokenCredentials = this.tokenStorage.getToken();\r\n }\r\n\r\n if (this.allowedSecurityAccess(otherArgs?.security)) {\r\n if (this.__schedule) {\r\n this.otherArgs?.schedule?.service?.removeSchedule(this.__schedule);\r\n this.__schedule = null;\r\n }\r\n\r\n const { __requestPaged } = this;\r\n if (!__requestPaged) {\r\n this.setPage({\r\n page: {\r\n number: 0,\r\n size: 10,\r\n },\r\n });\r\n }\r\n\r\n if (otherArgs?.translateOptions) {\r\n const { service, keys } = otherArgs?.translateOptions;\r\n this.geti18n(service, keys || '');\r\n }\r\n\r\n if (otherArgs?.callbackPagination) {\r\n this.__callbackPagination = otherArgs.callbackPagination;\r\n }\r\n\r\n if (otherArgs?.feature) {\r\n const { flag, service } = otherArgs.feature;\r\n\r\n service.onFlags\r\n .pipe(\r\n takeWhile(() => {\r\n return this.flagValidator;\r\n })\r\n )\r\n .subscribe((val: boolean) => {\r\n if (val) {\r\n const hasFlag = service.getFlag(flag);\r\n\r\n if (MonkeyEcxUtils.persistNullEmptyUndefined(hasFlag)) {\r\n if (!hasFlag) {\r\n this.navigateToErrorPage(404, otherArgs?.router);\r\n return;\r\n }\r\n }\r\n otherArgs?.callbackMain();\r\n }\r\n });\r\n } else {\r\n otherArgs?.callbackMain();\r\n }\r\n } else {\r\n this.navigateToErrorPage(403, otherArgs?.router);\r\n }\r\n }\r\n\r\n getHTTPHeaderApplicationPDF(): Object {\r\n return {\r\n observe: 'response',\r\n responseType: 'blob',\r\n };\r\n }\r\n\r\n @MonkeyEcxCoreService({\r\n requestInProgress: {\r\n showProgress: true,\r\n },\r\n })\r\n genericMethod(link: any, data?: any, callback?: Function) {\r\n const { href, type = 'get' } = link;\r\n\r\n this.monkeyecxService?.[type.toLowerCase()](`${href}`, data)?.subscribe(\r\n () => {\r\n if (callback) callback();\r\n },\r\n (err: HttpErrorResponse) => {\r\n throwError(err);\r\n }\r\n );\r\n }\r\n\r\n geti18n(translateService: TranslateService, keys: string | string[]) {\r\n translateService.getStreamOnTranslationChange(keys).subscribe((translations: any) => {\r\n this.__i18n = translations;\r\n this.__oni18nDataChanged$.next(null);\r\n });\r\n }\r\n\r\n doPagination() {\r\n if (!this.__onLoadingInProgress$.value) {\r\n const hasMorePages = this.setPage({\r\n page: {\r\n ...this.__page,\r\n },\r\n }).nextPage();\r\n\r\n if (hasMorePages && this.__callbackPagination) {\r\n this.__callbackPagination();\r\n }\r\n }\r\n }\r\n\r\n setSearchByUrl(router: Router, url: string, search: any, extras?: any) {\r\n this.__data = null;\r\n this.__page = null;\r\n this.__onDataChanged$.next(null);\r\n this.__onLoadingInProgress$.next(false);\r\n\r\n router.navigate([url], {\r\n queryParams: {\r\n ...search,\r\n r: MonkeyEcxUtils.getRandomString(30),\r\n },\r\n queryParamsHandling: 'merge',\r\n ...extras,\r\n });\r\n }\r\n\r\n saveState(state: MonkeyEcxSavedState) {\r\n this.__savedState = {\r\n page: this.__page,\r\n ...state,\r\n };\r\n }\r\n}\r\n","/* eslint-disable max-len */\r\nimport { Injectable } from '@angular/core';\r\nimport { MonkeyEcxRequestDownload } from '../interfaces/request-download/monkeyecx-request-download';\r\nimport { MonkeyEcxRequestQueue } from '../interfaces/request-queue/monkeyecx-request-queue';\r\nimport { MonkeyEcxRequestUpload } from '../interfaces/request-upload/monkeyecx-request-upload';\r\nimport { MonkeyEcxServiceCredentials } from '../interfaces/monkeyecx-service-credentials';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport abstract class MonkeyEcxHandlingService {\r\n private monkeyecxServiceCredentials: MonkeyEcxServiceCredentials | null = null;\r\n\r\n private monkeyecxRequestQueue: MonkeyEcxRequestQueue | null = null;\r\n\r\n private monkeyecxRequestDownload: MonkeyEcxRequestDownload | null = null;\r\n\r\n private monkeyecxRequestUpload: MonkeyEcxRequestUpload | null = null;\r\n\r\n public clearAll() {\r\n this.monkeyecxServiceCredentials = null;\r\n this.monkeyecxRequestQueue = null;\r\n this.monkeyecxRequestDownload = null;\r\n this.monkeyecxRequestUpload = null;\r\n }\r\n\r\n public setMonkeyEcxServiceCredentials(param: MonkeyEcxServiceCredentials) {\r\n this.monkeyecxServiceCredentials = param;\r\n }\r\n\r\n public getMonkeyEcxServiceCredentials(): MonkeyEcxServiceCredentials | null {\r\n return this.monkeyecxServiceCredentials;\r\n }\r\n\r\n public setMonkeyEcxRequestQueue(queue: MonkeyEcxRequestQueue) {\r\n this.monkeyecxRequestQueue = queue;\r\n }\r\n\r\n public getMonkeyEcxRequestQueue(): MonkeyEcxRequestQueue | null {\r\n return this.monkeyecxRequestQueue;\r\n }\r\n\r\n public setMonkeyEcxRequestDownload(download: MonkeyEcxRequestDownload) {\r\n this.monkeyecxRequestDownload = download;\r\n }\r\n\r\n public getMonkeyEcxRequestDownload(): MonkeyEcxRequestDownload | null {\r\n return this.monkeyecxRequestDownload;\r\n }\r\n\r\n public setMonkeyEcxRequestUpload(upload: MonkeyEcxRequestUpload) {\r\n this.monkeyecxRequestUpload = upload;\r\n }\r\n\r\n public getMonkeyEcxRequestUpload(): MonkeyEcxRequestUpload | null {\r\n return this.monkeyecxRequestUpload;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { MonkeyEcxHandlingService } from './monkeyecx-handling.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MonkeyEcxService {\r\n constructor(\r\n protected http: HttpClient,\r\n public monkeyecxHandlingService: MonkeyEcxHandlingService\r\n ) {\r\n // not to do\r\n }\r\n\r\n private handlelize(params: any): any {\r\n if (!params) {\r\n return params;\r\n }\r\n\r\n // eslint-disable-next-line no-restricted-syntax\r\n for (const field of [\r\n 'createdAt',\r\n 'createUserId',\r\n 'updatedAt',\r\n 'lastUserId',\r\n '_links',\r\n 'governmentIdType',\r\n 'governmentIdMask',\r\n 'screenType',\r\n 'screenTab',\r\n ]) {\r\n delete params[field];\r\n }\r\n return params;\r\n }\r\n\r\n public get<T>(url: string, options?: T): Observable<T> {\r\n return this.http.get<T>(url, options);\r\n }\r\n\r\n public post<T>(url: string, params: T, options?: T): Observable<T> {\r\n return this.http.post<T>(url, params, options);\r\n }\r\n\r\n public put<T>(url: string, params: T): Observable<T> {\r\n return this.http.put<T>(\r\n url,\r\n this.handlelize({\r\n ...params,\r\n })\r\n );\r\n }\r\n\r\n public delete<T>(url: string, params?: T): Observable<T> {\r\n return this.http.delete<T>(url, params);\r\n }\r\n\r\n public download<T>(url: string, options?: T, filename?: string) {\r\n this.http.get<T>(url, options).subscribe(\r\n (resp: any) => {\r\n const { headers, body } = resp;\r\n const contentType = headers.get('Content-Type');\r\n const contentDisposition = headers.get('Content-Disposition');\r\n if (contentDisposition) {\r\n filename = contentDisposition\r\n .split(';')[1]\r\n .split('filename')[1]\r\n .split('=')[1]\r\n .trim()\r\n .replace(new RegExp(/\"/g), '');\r\n }\r\n const blob = new Blob([body], {\r\n type: `${contentType}`,\r\n });\r\n return {\r\n filename,\r\n blob,\r\n };\r\n },\r\n (err: HttpErrorResponse) => {\r\n throwError(err);\r\n }\r\n );\r\n }\r\n\r\n public downloadOb<T>(url: string, options?: T, filename?: string): Observable<any> {\r\n return this.http.get<any>(url, options).pipe(\r\n map((resp: any) => {\r\n const { headers, body } = resp;\r\n const contentType = headers.get('Content-Type');\r\n const contentDisposition = headers.get('Content-Disposition');\r\n if (contentDisposition) {\r\n filename = contentDisposition\r\n .split(';')[1]\r\n .split('filename')[1]\r\n .split('=')[1]\r\n .trim()\r\n .replace(new RegExp(/\"/g), '');\r\n }\r\n const blob = new Blob([body], {\r\n type: `${contentType}`,\r\n });\r\n return {\r\n filename,\r\n blob,\r\n };\r\n }),\r\n catchError((err: any) => {\r\n return throwError(err);\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nlet window: any;\r\n\r\nconst text: any = {\r\n i18n: {\r\n title: 'We have an quick update for you',\r\n message: 'Click anywhere here to reload your locale',\r\n },\r\n theme: {\r\n title: 'We have an quick update for you',\r\n message: 'Click anywhere here to reload your theme',\r\n },\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MonkeyEcxErrorConfigService {\r\n constructor() {\r\n // not to do\r\n }\r\n\r\n private enableSupport() {\r\n window.zE('webWidget', 'updateSettings', {\r\n webWidget: {\r\n color: {\r\n theme: '#0273E8',\r\n launcherText: '#fff',\r\n header: '#0273E8',\r\n button: '#0273E8',\r\n },\r\n zIndex: 99,\r\n offset: {\r\n horizontal: '1px',\r\n vertical: '20px',\r\n },\r\n mobile: {\r\n labelVisible: true,\r\n },\r\n launcher: {\r\n mobile: {\r\n labelVisible: true,\r\n },\r\n },\r\n },\r\n });\r\n window.zE('webWidget', 'setLocale', 'en-US');\r\n window.zE('webWidget', 'show');\r\n }\r\n\r\n public apply(type: string) {\r\n const { title, message } = text?.[type];\r\n\r\n const element = document.createElement('div');\r\n element.id = 'monkeyecx-information';\r\n\r\n const elementImg = document.createElement('img');\r\n elementImg.width = 128;\r\n elementImg.src = 'assets/images/monkey.svg';\r\n elementImg.style.marginBottom = '50px';\r\n\r\n const elementTitle = document.createElement('span');\r\n elementTitle.id = 'title';\r\n elementTitle.innerText = title;\r\n elementTitle.style.marginBottom = '20px';\r\n\r\n const elementMessage = document.createElement('span');\r\n elementMessage.id = 'message';\r\n elementMessage.innerText = message;\r\n elementMessage.style.marginBottom = '20px';\r\n\r\n const elementChat = document.createElement('span');\r\n elementChat.id = 'message';\r\n elementChat.innerText =\r\n \"If you're having trouble to update, please use the support icon bellow\";\r\n\r\n element.appendChild(elementImg);\r\n element.appendChild(elementTitle);\r\n element.appendChild(elementMessage);\r\n element.appendChild(elementChat);\r\n\r\n element.addEventListener('click', () => {\r\n document.location.reload();\r\n });\r\n\r\n document.body.appendChild(element);\r\n\r\n document.body.getElementsByTagName('app-root')[0].remove();\r\n this.enableSupport();\r\n }\r\n}\r\n","/* eslint-disable no-console */\r\n/* eslint-disable import/no-named-default */\r\nimport { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { throwError } from 'rxjs';\r\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\r\nimport { MonkeyEcxCookieStorageService } from '../storage/monkeyecx-cookie-storage.service';\r\nimport { MonkeyEcxCoreService } from '../../decorators/monkeyecx-decorators';\r\nimport { MonkeyEcxCommonsService } from '../commons';\r\nimport { MonkeyEcxConfig } from '../../interfaces';\r\nimport { MonkeyEcxErrorConfigService } from '../config/monkeyecx-error-config.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MonkeyEcxi18nConfigService extends MonkeyEcxCommonsService {\r\n constructor(\r\n monkeyecxService: MonkeyEcxService,\r\n private translateService: TranslateService,\r\n private monkeyecxCookieStorageService: MonkeyEcxCookieStorageService,\r\n private monkeyecxErrorConfigService: MonkeyEcxErrorConfigService\r\n ) {\r\n super(monkeyecxService);\r\n\r\n this.translateService.addLangs(['pt-BR', 'en-US']);\r\n this.translateService.setDefaultLang('pt-BR');\r\n this.translateService.use('pt-BR');\r\n }\r\n\r\n @MonkeyEcxCoreService({\r\n httpResponse: {\r\n httpCodeIgnore: [404],\r\n },\r\n requestInProgress: {\r\n showProgress: false,\r\n },\r\n })\r\n public apply(params: MonkeyEcxConfig, environment: any, change = false) {\r\n const { monkeyecxService, monkeyecxCookieStorageService, monkeyecxErrorConfigService } = this;\r\n let { i18n } = params;\r\n const externali18n = params?.externali18n?.[`${i18n?.lang || 'pt-BR'}`];\r\n const cookie = monkeyecxCookieStorageService.getCookie('monkey-app-locale');\r\n if (cookie && !change) {\r\n i18n = JSON.parse(atob(cookie));\r\n } else {\r\n monkeyecxCookieStorageService.setCookie('monkey-app-locale', btoa(JSON.stringify(i18n)));\r\n if (!cookie) change = true;\r\n }\r\n\r\n monkeyecxService?.get<any>(`${environment.localAssets}/i18n/${i18n?.lang}.json`)?.subscribe(\r\n (config: any) => {\r\n const { lang } = config;\r\n let { data } = config;\r\n if (externali18n) {\r\n data = {\r\n ...data,\r\n EXTERNAL: externali18n,\r\n };\r\n }\r\n this.translateService.setTranslation(lang, data, true);\r\n this.translateService.use(lang);\r\n if (change) document.location.reload();\r\n },\r\n (err: HttpErrorResponse) => {\r\n console.error(`i18n ${i18n?.lang} not found!`);\r\n monkeyecxErrorConfigService.apply('i18n');\r\n throwError(err);\r\n }\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { datadogRum } from '@datadog/browser-rum';\r\nimport { MonkeyEcxConfig, MonkeyEcxConfigBoostrap } from '../../interfaces';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxLogsConfigService {\r\n public apply(\r\n params: MonkeyEcxConfig,\r\n configBoostrap: MonkeyEcxConfigBoostrap,\r\n environment: any,\r\n identifyCode: string\r\n ) {\r\n const { program, logs } = params;\r\n if (logs?.enabled && environment.environment !== 'dev') {\r\n datadogRum.init({\r\n applicationId: environment?.dataDogApplicationId,\r\n clientToken: environment?.dataDogClientToken,\r\n service: program?.token,\r\n site: 'datadoghq.com',\r\n sampleRate: 100,\r\n replaySampleRate: 100,\r\n env: `monkey-front-${identifyCode}-${environment.environment}`,\r\n version: configBoostrap?.version,\r\n trackInteractions: true,\r\n trackSessionAcrossSubdomains: true,\r\n useSecureSessionCookie: true,\r\n useCrossSiteSessionCookie: true\r\n });\r\n datadogRum.startSessionReplayRecording();\r\n }\r\n }\r\n}\r\n","import { ApplicationRef, Injectable } from '@angular/core';\nimport { SwUpdate } from '@angular/service-worker';\nimport { MonkeyStyleGuideModalService } from 'monkey-style-guide';\nimport { concat, interval } from 'rxjs';\nimport { first } from 'rxjs/operators';\nimport { VersionChangedComponent } from '../../../components/version-changed';\nimport { MonkeyEcxConfigBoostrap } from '../../interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyEcxServiceWorkerConfigService {\n constructor(\n private appRef: ApplicationRef,\n private updates: SwUpdate,\n private modalService: MonkeyStyleGuideModalService) {\n // not to do\n }\n\n private handleValidation(config: MonkeyEcxConfigBoostrap) {\n const { updates, modalService } = this;\n updates?.available?.subscribe(() => {\n if (!config.showNewVersion || config.maintenance.closed) {\n document.location.reload();\n } else {\n modalService.open(VersionChangedComponent, {\n color: 'theme',\n size: 'md'\n });\n }\n });\n }\n\n private verify() {\n const { appRef, updates } = this;\n const appIsStable$ = appRef.isStable\n .pipe(first((isStable: boolean) => { return isStable === true; }));\n const everyHour$ = interval(1 * 60 * 60 * 1000);\n const everyHourOnceAppIsStable$ = concat(appIsStable$, everyHour$);\n everyHourOnceAppIsStable$.subscribe(() => {\n updates.checkForUpdate();\n });\n updates.checkForUpdate();\n }\n\n public apply(config: MonkeyEcxConfigBoostrap) {\n this.handleValidation(config);\n this.verify();\n }\n}\n","/* eslint-disable no-console */\r\nimport { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { MonkeyEcxCommonsService } from '../commons';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxSecurityConsoleConfigService extends MonkeyEcxCommonsService {\r\n constructor(private translateService: TranslateService) {\r\n super();\r\n\r\n this.geti18n(this.translateService, 'SERVICES.WARNING.CONSOLE');\r\n }\r\n\r\n private handleValidation() {\r\n this.__oni18nDataChanged$.subscribe(() => {\r\n const { __i18n } = this;\r\n const title = __i18n?.TITLE;\r\n const message = __i18n?.MESSAGE;\r\n if (title) {\r\n console.log(`%c${title}`, 'background: #f2f061; color: #ff0000; font-size: x-large');\r\n console.log(`%c${message}`, 'font-size: x-large');\r\n console.log(\r\n '%c __ __ _ ______ \\n ' +\r\n '| \\\\/ | ___ _ __ | | _____ _ _\\\\ \\\\ \\\\ \\\\ \\n ' +\r\n \"| |\\\\/| |/ _ \\\\| '_ \\\\| |/ / _ \\\\ | | |\\\\ \\\\ \\\\ \\\\ \\n \" +\r\n '| | | | (_) | | | | < __/ |_| |/ / / / \\n ' +\r\n '|_| |_|\\\\___/|_| |_|_|\\\\_\\\\___|\\\\__, /_/_/_/ \\n ' +\r\n ' |___/ \\n ' +\r\n 'Join us: https://monkeyecx.gupy.io', 'background: #1976d2; color: #fff'\r\n );\r\n }\r\n });\r\n }\r\n\r\n public apply() {\r\n this.handleValidation();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { MonkeyStyleGuideModalService } from 'monkey-style-guide';\r\nimport { ClosedToMaintenanceComponent } from '../../../components/closed-to-maintenance/closed-to-maintenance.component';\r\nimport { MonkeyEcxConfigBoostrap } from '../../interfaces/monkeyecx-config-boostrap';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxMaintenanceConfigService {\r\n constructor(private modalService: MonkeyStyleGuideModalService, private router: Router) {\r\n // not to do\r\n }\r\n\r\n private handleValidation(config: MonkeyEcxConfigBoostrap) {\r\n if (config.maintenance.closed) {\r\n localStorage.clear();\r\n this.router.navigate(['']);\r\n\r\n setTimeout(() => {\r\n this.modalService.open(ClosedToMaintenanceComponent, {\r\n color: 'theme',\r\n size: 'md',\r\n data: config\r\n });\r\n }, 200);\r\n }\r\n }\r\n\r\n public apply(config: MonkeyEcxConfigBoostrap) {\r\n this.handleValidation(config);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { initialize, LDClient, LDFlagSet } from 'launchdarkly-js-client-sdk';\r\nimport { MonkeyUtils } from 'monkey-style-guide';\r\nimport { MonkeyEcxConfig } from '../../interfaces';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MonkeyEcxFeatureToggleService {\r\n private readonly flagSubject$: BehaviorSubject<any> = new BehaviorSubject(null);\r\n\r\n private flags: LDFlagSet | undefined = undefined;\r\n\r\n private ldClient: LDClient | undefined = undefined;\r\n\r\n constructor() {\r\n // not to do\r\n }\r\n\r\n private getAllFlags(): void {\r\n if (!this) return;\r\n this.flags = this.ldClient?.allFlags();\r\n\r\n this.flagSubject$.next(true);\r\n }\r\n\r\n private identify(config: MonkeyEcxConfig, environment: any): void {\r\n if (config) {\r\n const email = 'monkey@monkey.exchange';\r\n const user = {\r\n email,\r\n key: `${config.program?.token}#${email}`,\r\n };\r\n\r\n if (!this.ldClient) {\r\n this.ldClient = initialize(environment.launchDarklyClientSideID, user, {\r\n streaming: true,\r\n disableSyncEventPost: true,\r\n sendEvents: false,\r\n diagnosticOptOut: true,\r\n });\r\n\r\n this.ldClient.on('change', this.getAllFlags.bind(this));\r\n this.ldClient.on('ready', this.getAllFlags.bind(this));\r\n } else {\r\n this.ldClient.identify(user, undefined, this.getAllFlags);\r\n }\r\n }\r\n }\r\n\r\n public apply(configSubject$: BehaviorSubject<MonkeyEcxConfig>, environment: any) {\r\n if (environment.launchDarklyClientSideID) {\r\n configSubject$.subscribe((config) => {\r\n this.identify(config, environment);\r\n });\r\n } else {\r\n this.flagSubject$.next(true);\r\n }\r\n }\r\n\r\n public get onFlags(): Observable<any> {\r\n return this.flagSubject$.asObservable();\r\n }\r\n\r\n public getFlag(flag: string): boolean | null {\r\n const flagValue = this.flags?.[flag];\r\n\r\n return MonkeyUtils.persistNullEmptyUndefined(flagValue) ? flagValue : null;\r\n }\r\n}\r\n","/* eslint-disable no-console */\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { throwError, BehaviorSubject, Observable } from 'rxjs';\r\nimport { MonkeyStyleGuideSettingsService, MonkeyUtils } from 'monkey-style-guide';\r\nimport { MonkeyEcxi18nConfigService } from './monkeyecx-i18n-config.service';\r\nimport { MonkeyEcxLogsConfigService } from './monkeyecx-logs-config.service';\r\nimport { MonkeyEcxServiceWorkerConfigService } from './monkeyecx-service-worker-config.service';\r\nimport { MonkeyEcxSecurityConsoleConfigService } from './monkeyecx-security-console-config.service';\r\nimport { MonkeyEcxMaintenanceConfigService } from './monkeyecx-maintenance-config.service';\r\nimport { MonkeyEcxCoreService } from '../../decorators/monkeyecx-decorators';\r\nimport { MonkeyEcxCommonsService } from '../commons/monkeyecx-commons.service';\r\nimport { MonkeyEcxConfig } from '../../interfaces/monkeyecx-config';\r\nimport { MonkeyEcxConfigBoostrap } from '../../interfaces/monkeyecx-config-boostrap';\r\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\r\nimport { MonkeyEcxErrorConfigService } from './monkeyecx-error-config.service';\r\nimport { MonkeyEcxFeatureToggleService } from './monkeyecx-feature-toggle.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MonkeyEcxConfigService extends MonkeyEcxCommonsService {\r\n private readonly configSubject$: BehaviorSubject<MonkeyEcxConfig>;\r\n\r\n private readonly configBoostrapSubject$: BehaviorSubject<MonkeyEcxConfig>;\r\n\r\n constructor(\r\n monkeyecxService: MonkeyEcxService,\r\n private monkeyecxi18nConfigService: MonkeyEcxi18nConfigService,\r\n private monkeyecxLogsConfigService: MonkeyEcxLogsConfigService,\r\n private monkeyStyleGuideSettingsService: MonkeyStyleGuideSettingsService,\r\n private monkeyecxServiceWorkerConfigService: MonkeyEcxServiceWorkerConfigService,\r\n private monkeyecxSecurityConsoleConfigService: MonkeyEcxSecurityConsoleConfigService,\r\n private monkeyecxMaintenanceConfigService: MonkeyEcxMaintenanceConfigService,\r\n private monkeyecxErrorConfigService: MonkeyEcxErrorConfigService,\r\n private monkeyEcxFeatureToggleService: MonkeyEcxFeatureToggleService\r\n ) {\r\n super(monkeyecxService);\r\n this.configSubject$ = new BehaviorSubject({});\r\n this.configBoostrapSubject$ = new BehaviorSubject({});\r\n }\r\n\r\n private internalValidations(...args: any[]) {\r\n const {\r\n monkeyecxServiceWorkerConfigService,\r\n monkeyecxSecurityConsoleConfigService,\r\n monkeyecxMaintenanceConfigService,\r\n } = this;\r\n const configBoostrap = args[0];\r\n const callback = args[1];\r\n monkeyecxSecurityConsoleConfigService.apply();\r\n monkeyecxServiceWorkerConfigService.apply(configBoostrap);\r\n monkeyecxMaintenanceConfigService.apply(configBoostrap);\r\n callback(configBoostrap);\r\n }\r\n\r\n private getWhiteLabelSettings(\r\n monkeyecxCode: string,\r\n configBoostrap: MonkeyEcxConfigBoostrap,\r\n callback: Function,\r\n environment: any,\r\n identifyCode: string\r\n ) {\r\n const {\r\n monkeyecxService,\r\n monkeyecxi18nConfigService,\r\n configSubject$,\r\n monkeyStyleGuideSettingsService,\r\n monkeyecxLogsConfigService,\r\n monkeyecxErrorConfigService,\r\n monkeyEcxFeatureToggleService,\r\n internalValidations,\r\n } = this;\r\n const url = `${environment.urlAssets}`;\r\n monkeyecxService\r\n ?.get<any>(\r\n `${url}/${monkeyecxCode.toLowerCase()}/white-label.json?t=${MonkeyUtils.getRandomString(\r\n 30\r\n )}`\r\n )\r\n ?.subscribe(\r\n (config: MonkeyEcxConfig) => {\r\n monkeyecxi18nConfigService.apply(config, environment);\r\n monkeyecxLogsConfigService.apply(config, configBoostrap, environment, identifyCode);\r\n monkeyEcxFeatureToggleService.apply(configSubject$, environment);\r\n monkeyStyleGuideSettingsService.boostrap(\r\n `${url}/${monkeyecxCode.toLowerCase()}/monkey-style-guide-settings.json?t=${MonkeyUtils.getRandomString(\r\n 30\r\n )}`,\r\n internalValidations.bind(this, configBoostrap, callback, environment)\r\n );\r\n configSubject$.next(config);\r\n },\r\n (err: HttpErrorResponse) => {\r\n monkeyecxErrorConfigService.apply('theme');\r\n console.error('Program Configuration not found!');\r\n throwError(err);\r\n }\r\n );\r\n }\r\n\r\n @MonkeyEcxCoreService({\r\n httpResponse: {\r\n httpCodeIgnore: [404],\r\n },\r\n requestInProgress: {\r\n showProgress: false,\r\n },\r\n })\r\n public init(callback: Function, environment: any, identifyCode: string, monkeyecxCode?: string) {\r\n const { monkeyecxService, configBoostrapSubject$, monkeyecxErrorConfigService } = this;\r\n\r\n monkeyecxService\r\n ?.get(`${environment.boostrapAssets}?t=${MonkeyUtils.getRandomString(30)}`, {\r\n observe: 'response',\r\n })\r\n ?.subscribe(\r\n (resp: any) => {\r\n const { headers, body } = resp;\r\n const monkeyCode = headers.get('monkey-code') || monkeyecxCode;\r\n if (monkeyCode) {\r\n this.getWhiteLabelSettings(monkeyCode, body, callback, environment, identifyCode);\r\n configBoostrapSubject$.next(body);\r\n } else {\r\n monkeyecxErrorConfigService.apply('theme');\r\n console.error(`Boostrap ${monkeyCode} Configuration not found!`);\r\n }\r\n },\r\n (err: HttpErrorResponse) => {\r\n monkeyecxErrorConfigService.apply('theme');\r\n console.error('Boostrap Configuration not found!');\r\n throwError(err);\r\n }\r\n );\r\n }\r\n\r\n public config(): Observable<any> {\r\n return this.configSubject$.asObservable();\r\n }\r\n\r\n public boostrapConfig(): Observable<any> {\r\n return this.configBoostrapSubject$.asObservable();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, of, BehaviorSubject } from 'rxjs';\r\nimport { MonkeyEcxConfigService } from '../config/monkeyecx-config.service';\r\nimport { MonkeyEcxUtils } from '../../utils/utils';\r\nimport {\r\n MonkeyEcxConfig,\r\n MonkeyEcxMeCredentials,\r\n MonkeyEcxTokenCredentials,\r\n} from '../../interfaces';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MonkeyEcxTokenStorageService {\r\n private token: MonkeyEcxTokenCredentials | null;\r\n\r\n private token$: BehaviorSubject<MonkeyEcxTokenCredentials | any>;\r\n\r\n private me$: BehaviorSubject<MonkeyEcxMeCredentials | any>;\r\n\r\n private config: MonkeyEcxConfig | null = null;\r\n\r\n constructor(private monkeyecxConfigService: MonkeyEcxConfigService) {\r\n this.token = {\r\n username: '',\r\n program: '',\r\n accessToken: '',\r\n refreshToken: '',\r\n companyId: '',\r\n governmentId: '',\r\n companyTypeUrl: '',\r\n companyType: '',\r\n programAdmin: false,\r\n programType: '',\r\n accessType: '',\r\n role: '',\r\n _clearIgnore: {\r\n ignore: ['username', 'program', 'accessType'],\r\n },\r\n };\r\n this.token$ = new BehaviorSubject(null);\r\n this.me$ = new BehaviorSubject(null);\r\n\r\n this.monkeyecxConfigService.config().subscribe((_: MonkeyEcxConfig) => {\r\n this.config = _;\r\n });\r\n }\r\n\r\n private setAllTokens(token: MonkeyEcxTokenCredentials) {\r\n const { token$ } = this;\r\n Object.entries(token).forEach(([key, value]) => {\r\n if (MonkeyEcxUtils.persistNullEmptyUndefined(value)) {\r\n localStorage.setItem(key, value);\r\n }\r\n });\r\n token$.next(token);\r\n }\r\n\r\n private getAllTokens(): MonkeyEcxTokenCredentials {\r\n const { token, config } = this;\r\n const handledToken: any = {\r\n ...token,\r\n };\r\n Object.entries(token || {}).forEach(([key, value]) => {\r\n handledToken[key] = localStorage.getItem(key);\r\n });\r\n\r\n if (!handledToken?.program && config?.program) {\r\n handledToken.program = config?.program?.token;\r\n }\r\n\r\n return handledToken;\r\n }\r\n\r\n private setAllMe(me: MonkeyEcxMeCredentials) {\r\n const { me$ } = this;\r\n let previousMe = JSON.parse(localStorage?.getItem('me') || '{}');\r\n Object.entries(me).forEach(([key, value]) => {\r\n if (MonkeyEcxUtils.persistNullEmptyUndefined(value)) {\r\n previousMe = {\r\n ...previousMe,\r\n [key]: value,\r\n };\r\n }\r\n });\r\n\r\n localStorage.setItem('me', JSON.stringify(previousMe));\r\n me$.next(previousMe);\r\n }\r\n\r\n private getAllMe(): MonkeyEcxMeCredentials {\r\n const me = localStorage.getItem('me');\r\n return JSON.parse(me || '{}') as MonkeyEcxMeCredentials;\r\n }\r\n\r\n public tokenHasChanged(): Observable<MonkeyEcxTokenCredentials> {\r\n return this.token$.asObservable();\r\n }\r\n\r\n public meHasChanged(): Observable<MonkeyEcxMeCredentials> {\r\n return this.me$.asObservable() || null;\r\n }\r\n\r\n public getToken(): MonkeyEcxTokenCredentials {\r\n return this.getAllTokens();\r\n }\r\n\r\n public getMe(): MonkeyEcxMeCredentials {\r\n return this.getAllMe();\r\n }\r\n\r\n public setToken(token: MonkeyEcxTokenCredentials) {\r\n this.setAllTokens(token);\r\n }\r\n\r\n public setMe(me: MonkeyEcxMeCredentials) {\r\n this.setAllMe(me);\r\n }\r\n\r\n public clear(force?: boolean): Observable<boolean> {\r\n const { token } = this;\r\n try {\r\n Object.entries(token || {}).forEach(([key, value]) => {\r\n if (\r\n (token?._clearIgnore?.ignore || []).filter((val: any) => {\r\n return val === key;\r\n }).length <= 0 ||\r\n force === true\r\n ) {\r\n localStorage.removeItem(key);\r\n }\r\n });\r\n localStorage.removeItem('me');\r\n } catch (error) {\r\n return of(false);\r\n }\r\n return of(true);\r\n }\r\n\r\n /**\r\n * @param fields (the name of fields you want to clear. ie: ['companyId', 'role', ...])\r\n */\r\n public clearCredentials(\r\n fields = ['companyId', 'governmentId', 'companyType', 'programAdmin', 'role']\r\n ) {\r\n fields?.forEach((key: string) => {\r\n localStorage.removeItem(key);\r\n });\r\n }\r\n}\r\n","import { ChangeDetectorRef, Directive, ElementRef, Input, OnInit } from '@angular/core';\r\nimport { MonkeyEcxTokenCredentials } from '../interfaces';\r\nimport { MonkeyEcxTokenStorageService } from '../services/storage';\r\n\r\n@Directive({\r\n selector: '[monkeyecxSecurity]',\r\n})\r\nexport class MonkeyEcxSecurityDirective implements OnInit {\r\n @Input('securityRoles') roles: string[] = [];\r\n\r\n @Input('securityByExclusion') byExclusion: boolean = false;\r\n\r\n private tokenCredentials: MonkeyEcxTokenCredentials | null = null;\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private tokenStorageService: MonkeyEcxTokenStorageService,\r\n private cdr: ChangeDetectorRef\r\n ) {\r\n // not to do\r\n }\r\n\r\n private getRole(): string {\r\n const { tokenCredentials } = this;\r\n\r\n if (!tokenCredentials) return '';\r\n\r\n if (tokenCredentials?.programAdmin === 'true') {\r\n return 'PROGRAM_ADMIN';\r\n }\r\n\r\n return tokenCredentials?.role || '';\r\n }\r\n\r\n private handleAccess() {\r\n const { roles, byExclusion } = this;\r\n let display = 'none';\r\n const found = roles?.indexOf(this.getRole());\r\n if (byExclusion) {\r\n display = 'block';\r\n if (found > -1) {\r\n display = 'none';\r\n }\r\n } else {\r\n display = 'none';\r\n if (found > -1) {\r\n display = 'block';\r\n }\r\n }\r\n\r\n if (!roles || roles.length === 0 || this.getRole() === 'PROGRAM_ADMIN') display = 'block';\r\n this.elementRef.nativeElement.style.display = display;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n ngOnInit() {\r\n this.elementRef.nativeElement.style.display = 'none';\r\n this.cdr.detectChanges();\r\n\r\n this.tokenStorageService.tokenHasChanged().subscribe(() => {\r\n this.tokenCredentials = this.tokenStorageService.getToken();\r\n this.handleAccess();\r\n });\r\n\r\n this.tokenCredentials = this.tokenStorageService.getToken();\r\n this.handleAccess();\r\n }\r\n}\r\n","import { Directive, Input, ElementRef, HostListener, Renderer2 } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[monkeyecxTooltip]',\r\n})\r\nexport class MonkeyEcxTooltipDirective {\r\n @Input() tooltipDelay?: number;\r\n\r\n @Input() tooltipPosition?: string;\r\n\r\n @Input() tooltipText?: string;\r\n\r\n @Input() tooltipTitle?: string;\r\n\r\n @Input() enableToShow = true;\r\n\r\n offset = 10;\r\n\r\n tooltip: HTMLElement | null = null;\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer2) {\r\n // not to do\r\n }\r\n\r\n @HostListener('mouseenter')\r\n onMouseEnter() {\r\n if (!this.tooltip) {\r\n this.show();\r\n }\r\n }\r\n\r\n @HostListener('mouseleave')\r\n onMouseLeave() {\r\n if (this.tooltip) {\r\n this.hide();\r\n }\r\n }\r\n\r\n @HostListener('click')\r\n clickout() {\r\n if (this.tooltip) {\r\n this.hide();\r\n }\r\n }\r\n\r\n show() {\r\n if (this.enableToShow) {\r\n this.create();\r\n this.setPosition();\r\n this.renderer.addClass(this.tooltip, 'monkeyecx-tooltip-show');\r\n setTimeout(() => {\r\n this.hide();\r\n }, 5000);\r\n }\r\n }\r\n\r\n hide() {\r\n if (!this.tooltip) return;\r\n this.renderer.removeClass(this.tooltip, 'monkeyecx-tooltip-show');\r\n this.renderer.removeChild(document.body, this.tooltip);\r\n\r\n this.tooltip = null;\r\n }\r\n\r\n create() {\r\n const tooltipElement = document.createElement('div');\r\n\r\n this.tooltip = this.renderer.createElement('span');\r\n\r\n if (this.tooltipTitle) {\r\n const tooltipTitleElement = document.createElement('span');\r\n\r\n tooltipTitleElement.innerText = `${this.tooltipTitle}`;\r\n tooltipTitleElement.className = 'monkeyecx-tooltip-title';\r\n\r\n tooltipElement.appendChild(tooltipTitleElement);\r\n }\r\n\r\n if (this.tooltipText) {\r\n const tooltipTextElement = document.createElement('span');\r\n\r\n tooltipTextElement.innerText = `${this.tooltipText}`;\r\n tooltipTextElement.className = 'monkeyecx-tooltip-description';\r\n tooltipElement.appendChild(tooltipTextElement);\r\n }\r\n\r\n this.renderer.appendChild(this.tooltip, tooltipElement);\r\n this.renderer.appendChild(document.body, this.tooltip);\r\n\r\n this.renderer.addClass(this.tooltip, 'monkeyecx-tooltip');\r\n this.renderer.addClass(this.tooltip, `monkeyecx-tooltip-${this.tooltipPosition}`);\r\n\r\n this.renderer.setStyle(this.tooltip, '-webkit-transition', `opacity ${this.tooltipDelay}ms`);\r\n this.renderer.setStyle(this.tooltip, '-moz-transition', `opacity ${this.tooltipDelay}ms`);\r\n this.renderer.setStyle(this.tooltip, '-o-transition', `opacity ${this.tooltipDelay}ms`);\r\n this.renderer.setStyle(this.tooltip, 'transition', `opacity ${this.tooltipDelay}ms`);\r\n }\r\n\r\n setPosition() {\r\n const hostPos = this.el.nativeElement.getBoundingClientRect();\r\n const tooltipPos = this.tooltip?.getBoundingClientRect();\r\n if (!tooltipPos) return;\r\n const scrollPos =\r\n window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\r\n let top: number = 0;\r\n let left: number = 0;\r\n\r\n if (this.tooltipPosition === 'top') {\r\n top = hostPos.top - tooltipPos.height - this.offset;\r\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\r\n }\r\n\r\n if (this.tooltipPosition === 'bottom') {\r\n top = hostPos.bottom + this.offset;\r\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\r\n }\r\n\r\n if (this.tooltipPosition === 'left') {\r\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\r\n left = hostPos.left - tooltipPos.width - this.offset;\r\n }\r\n\r\n if (this.tooltipPosition === 'right') {\r\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\r\n left = hostPos.right + this.offset;\r\n }\r\n\r\n this.renderer.setStyle(this.tooltip, 'top', `${top + scrollPos}px`);\r\n this.renderer.setStyle(this.tooltip, 'left', `${left}px`);\r\n }\r\n}\r\n","import { ChangeDetectorRef, Directive, ElementRef, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\nimport { MonkeyEcxFeatureToggleService } from '../services/config/monkeyecx-feature-toggle.service';\r\n\r\n@Directive({\r\n selector: '[monkeyecxFeature]',\r\n})\r\nexport class MonkeyEcxFeatureDirective implements OnDestroy, OnInit {\r\n @Input('featureName') feature?: string;\r\n\r\n private unsubscribeAll = new Subject();\r\n\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n private elementRef: ElementRef,\r\n private monkeyecxFeatureToggleService: MonkeyEcxFeatureToggleService\r\n ) {\r\n // not to do\r\n }\r\n\r\n private getFeature(feature: string): boolean {\r\n const { monkeyecxFeatureToggleService } = this;\r\n\r\n if (!monkeyecxFeatureToggleService) {\r\n return false;\r\n }\r\n\r\n return monkeyecxFeatureToggleService?.getFlag(feature) || false;\r\n }\r\n\r\n private handleDisplay(): void {\r\n if (!this.feature) return;\r\n const flag = this.getFeature(this.feature);\r\n let display = 'none';\r\n\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(flag)) {\r\n return;\r\n }\r\n\r\n if (flag) {\r\n display = 'block';\r\n }\r\n\r\n if (display === 'none') {\r\n this.elementRef.nativeElement.remove();\r\n }\r\n\r\n this.elementRef.nativeElement.style.display = display;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubscribeAll.next();\r\n this.unsubscribeAll.complete();\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.feature) return;\r\n this.elementRef.nativeElement.style.display = 'none';\r\n this.cdr.detectChanges();\r\n\r\n this.monkeyecxFeatureToggleService.onFlags\r\n .pipe(takeUntil(this.unsubscribeAll))\r\n .subscribe((val: boolean) => {\r\n if (val) {\r\n this.handleDisplay();\r\n }\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\nimport { MonkeyEcxDragDropDirective } from './monkeyecx-drag-drop';\nimport { MonkeyEcxFeatureDirective } from './monkeyecx-feature-directive';\nimport { MonkeyEcxFormatCurrency } from './monkeyecx-format-currency';\nimport { MonkeyEcxFormatUpper } from './monkeyecx-format-upper';\nimport { MonkeyEcxOnlyAlphaNumericDirective } from './monkeyecx-only-alpha-numeric-directive';\nimport { MonkeyEcxOnlyNumbersDirective } from './monkeyecx-only-number-directive';\nimport { MonkeyEcxSecurityDirective } from './monkeyecx-security-directive';\nimport { MonkeyEcxTooltipDirective } from './monkeyecx-tooltip-directive';\n\n@NgModule({\n declarations: [\n MonkeyEcxDragDropDirective,\n MonkeyEcxFormatCurrency,\n MonkeyEcxFeatureDirective,\n MonkeyEcxFormatUpper,\n MonkeyEcxOnlyAlphaNumericDirective,\n MonkeyEcxOnlyNumbersDirective,\n MonkeyEcxSecurityDirective,\n MonkeyEcxTooltipDirective\n ],\n exports: [\n MonkeyEcxDragDropDirective,\n MonkeyEcxFormatCurrency,\n MonkeyEcxFeatureDirective,\n MonkeyEcxFormatUpper,\n MonkeyEcxOnlyAlphaNumericDirective,\n MonkeyEcxOnlyNumbersDirective,\n MonkeyEcxSecurityDirective,\n MonkeyEcxTooltipDirective\n ]\n})\nexport class MonkeyEcxDirectivesModule {}\n","/* eslint-disable no-console */\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpErrorResponse, HttpRequest } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxAuthenticationService {\r\n constructor() {\r\n // not to do\r\n }\r\n\r\n hadAtLeastOneLogin = () => {\r\n console.error('hadAtLeastOneLogin needs to be declared!');\r\n return null;\r\n };\r\n\r\n redirectApp = () => {\r\n console.error('redirectApp needs to be declared!');\r\n return null;\r\n };\r\n\r\n redirectLoginWelcomeBack = () => {\r\n console.error('redirectLoginWelcomeBack needs to be declared!');\r\n return null;\r\n };\r\n\r\n isAuthorized = (): boolean => {\r\n console.error('isAuthorized needs to be declared!');\r\n return false;\r\n };\r\n\r\n getRequestWithHeaders = (request: HttpRequest<any>): HttpRequest<any> | null => {\r\n console.error('getRequestWithHeaders needs to be declared!');\r\n return null;\r\n };\r\n\r\n getRequestWithHeadersOb = (request: HttpRequest<any>): Observable<any> | null => {\r\n console.error('getRequestWithHeadersOb needs to be declared!');\r\n return null;\r\n };\r\n\r\n refreshShouldHappen = (response: HttpErrorResponse): boolean => {\r\n console.error('refreshShouldHappen needs to be declared!');\r\n return false;\r\n };\r\n\r\n refreshToken = (): Observable<any> | null => {\r\n console.error('refreshToken needs to be declared!');\r\n return null;\r\n };\r\n\r\n init(\r\n args: {\r\n hadAtLeastOneLogin?: any,\r\n redirectApp?: any,\r\n redirectLoginWelcomeBack?: any,\r\n isAuthorized?: any,\r\n getRequestWithHeaders?: any,\r\n getRequestWithHeadersOb?: any,\r\n refreshShouldHappen?: any,\r\n refreshToken?: any\r\n }\r\n ) {\r\n this.hadAtLeastOneLogin = args?.hadAtLeastOneLogin || this.hadAtLeastOneLogin.bind(this);\r\n this.redirectApp = args?.redirectApp || this.redirectApp.bind(this);\r\n this.redirectLoginWelcomeBack = args?.redirectLoginWelcomeBack ||\r\n this.redirectLoginWelcomeBack.bind(this);\r\n this.isAuthorized = args?.isAuthorized || this.isAuthorized.bind(this);\r\n this.getRequestWithHeaders = args?.getRequestWithHeaders ||\r\n this.getRequestWithHeaders.bind(this);\r\n this.getRequestWithHeadersOb = args?.getRequestWithHeadersOb.bind(this);\r\n this.refreshShouldHappen = args?.refreshShouldHappen || this.refreshShouldHappen.bind(this);\r\n this.refreshToken = args?.refreshToken || this.refreshToken.bind(this);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { MonkeyEcxAuthenticationService } from './monkeyecx-authentication.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxAuthGuardLogin implements CanActivate {\r\n constructor(private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService) {\r\n // not to do\r\n }\r\n\r\n canActivate(): Observable<boolean> | Promise<boolean> | boolean {\r\n if (this.monkeyecxAuthenticationService.isAuthorized()) {\r\n this.monkeyecxAuthenticationService.redirectApp();\r\n return false;\r\n }\r\n if (this.monkeyecxAuthenticationService.hadAtLeastOneLogin()) {\r\n this.monkeyecxAuthenticationService.redirectLoginWelcomeBack();\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { MonkeyEcxAuthenticationService } from './monkeyecx-authentication.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxAuthGuard implements CanActivate {\r\n constructor(private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService) {\r\n // not to do\r\n }\r\n\r\n canActivate(): Observable<boolean> | Promise<boolean> | boolean {\r\n const { monkeyecxAuthenticationService } = this;\r\n\r\n if (monkeyecxAuthenticationService.isAuthorized()) {\r\n return true;\r\n }\r\n\r\n monkeyecxAuthenticationService.redirectLoginWelcomeBack();\r\n\r\n return false;\r\n }\r\n}\r\n","import { Injectable, NgZone } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { MonkeyStyleGuideSnackbarService } from 'monkey-style-guide';\r\nimport { MonkeyEcxAuthenticationService } from '../auth';\r\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\r\nimport { MonkeyEcxTokenStorageService } from '../storage';\r\nimport { MonkeyEcxCommonsService } from '../commons';\r\nimport { MonkeyEcxServiceCredentials } from '../../interfaces';\r\nimport { MonkeyEcxUtils } from '../../utils/utils';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxHttpErrorHandlingService extends MonkeyEcxCommonsService {\r\n constructor(\r\n monkeyecxService: MonkeyEcxService,\r\n tokenStorage: MonkeyEcxTokenStorageService,\r\n private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService,\r\n private router: Router,\r\n private snackbarService: MonkeyStyleGuideSnackbarService,\r\n private translateService: TranslateService\r\n ) {\r\n super(monkeyecxService, tokenStorage);\r\n\r\n super.resolve(null, null);\r\n\r\n this.geti18n(this.translateService, 'SERVICES.WARNING');\r\n }\r\n\r\n private isHttpCodeIgnoreMessage(tp: MonkeyEcxServiceCredentials, httpCode: number): boolean {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(tp) && !tp?.httpResponse) {\r\n return false;\r\n }\r\n\r\n const found = (tp?.httpResponse?.httpCodeIgnore || [])?.indexOf(httpCode) > -1;\r\n\r\n return found;\r\n }\r\n\r\n private isHttpCodeIgnoreRedirect(\r\n tp: MonkeyEcxServiceCredentials,\r\n httpCode: number\r\n ): boolean {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(tp) && !tp?.httpResponse) {\r\n return false;\r\n }\r\n\r\n const found = (tp?.httpResponse?.httpCodeIgnoreRedirect || [])?.indexOf(httpCode) > -1;\r\n\r\n return found;\r\n }\r\n\r\n private getMessageType(status: number): 'theme' | 'warning' | 'success' | 'error' | 'question' {\r\n if (status === 409 || status === 400) {\r\n return 'warning';\r\n }\r\n\r\n return 'error';\r\n }\r\n\r\n private showMessage(\r\n message: string,\r\n error: HttpErrorResponse,\r\n mkc: MonkeyEcxServiceCredentials\r\n ) {\r\n const { snackbarService } = this;\r\n if (!this.isHttpCodeIgnoreMessage(mkc, error.status)) {\r\n snackbarService.show({\r\n title: this.__i18n?.TITLE,\r\n message,\r\n type: this.getMessageType(error.status),\r\n duration: 4000,\r\n horizontalPosition: 'center',\r\n verticalPosition: 'top'\r\n });\r\n }\r\n }\r\n\r\n private handleMessage(error: HttpErrorResponse, mkc: MonkeyEcxServiceCredentials) {\r\n // eslint-disable-next-line camelcase\r\n const { notifications, error_description, message } = error.error;\r\n let customMessage = '';\r\n\r\n if (message) {\r\n customMessage = message;\r\n }\r\n\r\n // eslint-disable-next-line camelcase\r\n if (error_description) {\r\n // eslint-disable-next-line camelcase\r\n customMessage = error_description;\r\n }\r\n\r\n if (notifications) {\r\n customMessage = notifications;\r\n }\r\n\r\n if (!customMessage) {\r\n if (error.error instanceof Blob) {\r\n const blob = new Blob([error.error], {\r\n type: 'application/json'\r\n });\r\n const reader = new FileReader();\r\n reader.addEventListener('loadend', (e) => {\r\n const text = e?.target?.result;\r\n const jsonResp = JSON.parse(text as string);\r\n customMessage = jsonResp.notifications;\r\n this.showMessage(customMessage, error, mkc);\r\n });\r\n reader.readAsText(blob);\r\n } else {\r\n this.showMessage(this.__i18n['ERROR-HANDLING']?.ERROR, error, mkc);\r\n }\r\n } else {\r\n this.showMessage(customMessage, error, mkc);\r\n }\r\n }\r\n\r\n public handleError(error: HttpErrorResponse, mkc: MonkeyEcxServiceCredentials) {\r\n const { router } = this;\r\n const { status } = error;\r\n\r\n const routes: any = {\r\n 403: 'forbidden',\r\n 500: 'service-problems',\r\n 503: 'service-problems'\r\n };\r\n\r\n const found = routes[status];\r\n let timeout = 0;\r\n\r\n if (found && !this.isHttpCodeIgnoreRedirect(mkc, error?.status)) {\r\n const route = `/app/pages/${found}`.toLowerCase();\r\n timeout = 800;\r\n router.navigate([route]);\r\n }\r\n\r\n setTimeout(() => {\r\n this.handleMessage(error, mkc);\r\n }, timeout);\r\n }\r\n\r\n public handleErrorRefreshToken(error: HttpErrorResponse, mkc: MonkeyEcxServiceCredentials) {\r\n if (error.status === 401 || error.status === 400) {\r\n NgZone.call(this.monkeyecxAuthenticationService.redirectLoginWelcomeBack(), {});\r\n } else if (!this.isHttpCodeIgnoreMessage(mkc, error.status)) {\r\n this.handleMessage(error, mkc);\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MonkeyStyleGuideModalService } from 'monkey-style-guide';\r\nimport { VersionChangedComponent } from '../../../components/version-changed';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxOthersErrorsHandlingService {\r\n constructor(private modalService: MonkeyStyleGuideModalService) {\r\n // not to do\r\n }\r\n\r\n public handleError(error: any) {\r\n const { modalService } = this;\r\n const { message } = error;\r\n\r\n if (new RegExp(/Loading chunk [\\d]+ failed/).test(message)) {\r\n modalService.open(VersionChangedComponent, {\r\n color: 'theme',\r\n size: 'md'\r\n });\r\n }\r\n }\r\n}\r\n","import { Injectable, Injector, ErrorHandler } from '@angular/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MonkeyEcxHttpErrorHandlingService } from './monkeyecx-http-error-handling.service';\r\nimport { MonkeyEcxHandlingService } from '../monkeyecx-handling.service';\r\nimport { MonkeyEcxOthersErrorsHandlingService } from './monkeyecx-others-errors-handling.service';\r\nimport { MonkeyEcxUtils } from '../../utils/utils';\r\nimport { MonkeyEcxServiceCredentials } from '../../interfaces';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MonkeyEcxErrorHandlingService implements ErrorHandler {\r\n constructor(private injector: Injector) {\r\n // not to do\r\n }\r\n\r\n handleError(error: any, type?: string) {\r\n const { injector } = this;\r\n const handlingService = injector.get(MonkeyEcxHandlingService);\r\n const httpErrorHandlingService = injector.get(MonkeyEcxHttpErrorHandlingService);\r\n const othersErrorsHandlingService = injector.get(MonkeyEcxOthersErrorsHandlingService);\r\n\r\n console.log('======error');\r\n console.log(error);\r\n\r\n if (error instanceof HttpErrorResponse) {\r\n const sCredentials: MonkeyEcxServiceCredentials =\r\n handlingService?.getMonkeyEcxServiceCredentials() || {};\r\n if (MonkeyEcxUtils.persistNullEmptyUndefined(type) && type === 'refresh_token') {\r\n httpErrorHandlingService.handleErrorRefreshToken(error, sCredentials);\r\n } else httpErrorHandlingService.handleError(error, sCredentials);\r\n } else {\r\n othersErrorsHandlingService.handleError(error);\r\n }\r\n }\r\n}\r\n","import { ErrorHandler, ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MonkeyEcxErrorHandlingService } from './monkeyecx-error-handling.service';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n})\r\nexport class MonkeyEcxErrorHandlingModule {\r\n public static forRoot(): ModuleWithProviders<MonkeyEcxErrorHandlingModule> {\r\n return {\r\n ngModule: MonkeyEcxErrorHandlingModule,\r\n providers: [\r\n {\r\n provide: ErrorHandler,\r\n useClass: MonkeyEcxErrorHandlingService,\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n HttpErrorResponse,\r\n HttpEvent,\r\n HttpHandler,\r\n HttpInterceptor,\r\n HttpRequest\r\n} from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError, map, mergeMap, take } from 'rxjs/operators';\r\nimport { MonkeyEcxAuthenticationService } from '../services/auth';\r\nimport { MonkeyEcxErrorHandlingService } from '../services/error';\r\n\r\nexport interface Headers {\r\n name: string;\r\n value: string;\r\n}\r\n\r\n@Injectable()\r\nexport class MonkeyEcxHttpConfigErrorInterceptor implements HttpInterceptor {\r\n constructor(\r\n private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService,\r\n private monkeyecxErrorHandlingService: MonkeyEcxErrorHandlingService\r\n ) {\r\n // no to do\r\n }\r\n\r\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n return next.handle(request).pipe(\r\n map((event: HttpEvent<any>) => {\r\n return event;\r\n }),\r\n catchError((error: HttpErrorResponse) => {\r\n if (this.monkeyecxAuthenticationService.refreshShouldHappen(error)) {\r\n return this.monkeyecxAuthenticationService?.refreshToken()?.pipe(\r\n take(1),\r\n map(() => {\r\n return this.monkeyecxAuthenticationService.getRequestWithHeaders(request);\r\n }),\r\n mergeMap((resp: any) => {\r\n return next.handle(resp).pipe(\r\n catchError((error: any) => {\r\n this.monkeyecxErrorHandlingService.handleError(error, 'refresh_token');\r\n return throwError(null);\r\n })\r\n );\r\n }),\r\n catchError((error: any) => {\r\n this.monkeyecxErrorHandlingService.handleError(error, 'refresh_token');\r\n return throwError(null);\r\n })\r\n ) || throwError(error);\r\n }\r\n return throwError(error);\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n HttpErrorResponse,\r\n HttpEvent,\r\n HttpHandler,\r\n HttpInterceptor,\r\n HttpRequest\r\n} from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError, map, mergeMap, take } from 'rxjs/operators';\r\nimport { MonkeyEcxErrorHandlingService } from '../services/error';\r\nimport { MonkeyEcxAuthenticationService } from '../services/auth';\r\n\r\n@Injectable()\r\nexport class MonkeyEcxHttpConfigHeaderInterceptor implements HttpInterceptor {\r\n constructor(\r\n private monkeyecxAuthenticationService: MonkeyEcxAuthenticationService,\r\n private monkeyecxErrorHandlingService: MonkeyEcxErrorHandlingService\r\n ) {\r\n // not to do\r\n }\r\n\r\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n return this.monkeyecxAuthenticationService?.getRequestWithHeadersOb(request)?.pipe(\r\n take(1),\r\n map((event: any) => {\r\n return event;\r\n }),\r\n mergeMap((resp: any) => {\r\n request = request.clone({\r\n setHeaders: resp\r\n });\r\n return next.handle(request);\r\n }),\r\n catchError((error: HttpErrorResponse) => {\r\n this.monkeyecxErrorHandlingService.handleError(error);\r\n return throwError(error);\r\n })\r\n ) || throwError('getRequestWithHeadersOb undefined');\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { MonkeyEcxRequestProgressQueue, MonkeyEcxRequestQueue } from '../../interfaces';\r\nimport { Statics } from '../../utils';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxRequestQueueHandlingService {\r\n private queue: MonkeyEcxRequestQueue[] = [];\r\n\r\n private queues$: BehaviorSubject<MonkeyEcxRequestQueue[] | any>;\r\n\r\n private newQueue = new BehaviorSubject(false);\r\n\r\n constructor() {\r\n this.queues$ = new BehaviorSubject([]);\r\n }\r\n\r\n private addToQueue(q: MonkeyEcxRequestQueue) {\r\n this.queue.push(q);\r\n this.queues$.next(this.queue);\r\n this.newQueue.next(true);\r\n }\r\n\r\n private markQueueItemAsFinish(q: MonkeyEcxRequestQueue, status?: number, action?: Function) {\r\n const saved = [...this.queue];\r\n this.queue = [\r\n ...saved.map((val: any) => {\r\n const valSaved = {\r\n ...val\r\n };\r\n if (val.status === Statics.MonkeyEcxQueueEvents.OnGoing) {\r\n if (valSaved.item.id === q.item.id) {\r\n return {\r\n ...valSaved,\r\n status: status || Statics.MonkeyEcxQueueEvents.Finished,\r\n action\r\n };\r\n }\r\n }\r\n return valSaved;\r\n })\r\n ];\r\n this.queues$.next(this.queue);\r\n }\r\n\r\n private updateQueue(q: MonkeyEcxRequestQueue, progress: MonkeyEcxRequestProgressQueue) {\r\n const saved = [...this.queue];\r\n this.queue = [\r\n ...saved.map((val: any) => {\r\n const valSaved = {\r\n ...val\r\n };\r\n const { total, loaded } = progress;\r\n const currentPecentage = Math.floor(((loaded||0) / (total || 0)) * 100);\r\n const totalPercentage = 100;\r\n if (valSaved.item.id === q.item.id) {\r\n return {\r\n ...valSaved,\r\n progress: {\r\n loaded,\r\n total,\r\n currentPercentage: currentPecentage,\r\n totalPercentage\r\n }\r\n };\r\n }\r\n return valSaved;\r\n })\r\n ];\r\n\r\n this.queues$.next(this.queue);\r\n }\r\n\r\n private deleteQueue(q: MonkeyEcxRequestQueue) {\r\n const saved = [...this.queue];\r\n this.queue = [\r\n ...saved.map((val: any) => {\r\n const valSaved = {\r\n ...val\r\n };\r\n if (valSaved.item.id === q.item.id) {\r\n return null;\r\n }\r\n return valSaved;\r\n })\r\n ].filter((_: any) => {\r\n return _;\r\n });\r\n\r\n this.queues$.next(this.queue);\r\n }\r\n\r\n public setQueue(q: MonkeyEcxRequestQueue | null) {\r\n if (!q) return;\r\n this.addToQueue(q);\r\n }\r\n\r\n public getQueue(): Observable<MonkeyEcxRequestQueue[]> {\r\n return this.queues$.asObservable();\r\n }\r\n\r\n public finishQueueItem(q: MonkeyEcxRequestQueue | null, action?: Function, status?: number) {\r\n if (!q) return;\r\n this.markQueueItemAsFinish(q, status, action);\r\n }\r\n\r\n public removeQueueItem(q: MonkeyEcxRequestQueue) {\r\n this.deleteQueue(q);\r\n }\r\n\r\n public updateQueueItem(q: MonkeyEcxRequestQueue, progress: MonkeyEcxRequestProgressQueue) {\r\n this.updateQueue(q, progress);\r\n }\r\n\r\n public hasNewQueue(): Observable<boolean> {\r\n return this.newQueue.pipe(\r\n map((_: any) => {\r\n return _;\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { MonkeyEcxRequestProgressQueue, MonkeyEcxRequestQueue } from '../../interfaces';\r\nimport { Statics } from '../../utils';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxRequestQueueModalHandlingService {\r\n private queue: MonkeyEcxRequestQueue[] = [];\r\n\r\n private queues$: BehaviorSubject<MonkeyEcxRequestQueue[] | any>;\r\n\r\n private newQueue$ = new BehaviorSubject(false);\r\n\r\n private allQueueFinished$ = new BehaviorSubject(false);\r\n\r\n constructor() {\r\n this.queues$ = new BehaviorSubject([]);\r\n }\r\n\r\n private addToQueue(q: MonkeyEcxRequestQueue) {\r\n this.queue.push(q);\r\n this.queues$.next(this.queue);\r\n this.newQueue$.next(true);\r\n }\r\n\r\n private markQueueItemAsFinish(q: MonkeyEcxRequestQueue, status?: number, action?: Function) {\r\n const saved = [...this.queue];\r\n this.queue = [\r\n ...saved.map((val: any) => {\r\n const valSaved = {\r\n ...val\r\n };\r\n if (val.status === Statics.MonkeyEcxQueueEvents.OnGoing) {\r\n if (valSaved.item.id === q.item.id) {\r\n return {\r\n ...valSaved,\r\n status: status || Statics.MonkeyEcxQueueEvents.Finished,\r\n action\r\n };\r\n }\r\n }\r\n return valSaved;\r\n })\r\n ];\r\n this.queues$.next(this.queue);\r\n }\r\n\r\n private updateQueue(q: MonkeyEcxRequestQueue, progress: MonkeyEcxRequestProgressQueue) {\r\n const saved = [...this.queue];\r\n this.queue = [\r\n ...saved.map((val: any) => {\r\n const valSaved = {\r\n ...val\r\n };\r\n const { total, loaded } = progress;\r\n const currentPecentage = Math.floor(((loaded||0) / (total||0)) * 100);\r\n const totalPercentage = 100;\r\n if (valSaved.item.id === q.item.id) {\r\n return {\r\n ...valSaved,\r\n progress: {\r\n loaded,\r\n total,\r\n currentPercentage: currentPecentage,\r\n totalPercentage\r\n }\r\n };\r\n }\r\n return valSaved;\r\n })\r\n ];\r\n\r\n this.queues$.next(this.queue);\r\n }\r\n\r\n private deleteQueue(q: MonkeyEcxRequestQueue) {\r\n const saved = [...this.queue];\r\n this.queue = [\r\n ...saved.map((val: any) => {\r\n const valSaved = {\r\n ...val\r\n };\r\n if (valSaved.item.id === q.item.id) {\r\n return null;\r\n }\r\n return valSaved;\r\n })\r\n ].filter((_: any) => {\r\n return _;\r\n });\r\n\r\n this.queues$.next(this.queue);\r\n if (this.queue.length <= 0) {\r\n this.allQueueFinished$.next(true);\r\n }\r\n }\r\n\r\n public setQueue(q: MonkeyEcxRequestQueue) {\r\n this.addToQueue(q);\r\n }\r\n\r\n public getQueue(): Observable<MonkeyEcxRequestQueue[]> {\r\n return this.queues$.asObservable();\r\n }\r\n\r\n public finishQueueItem(q: MonkeyEcxRequestQueue, action?: Function, status?: number) {\r\n this.markQueueItemAsFinish(q, status, action);\r\n }\r\n\r\n public removeQueueItem(q: MonkeyEcxRequestQueue) {\r\n this.deleteQueue(q);\r\n }\r\n\r\n public updateQueueItem(q: MonkeyEcxRequestQueue, progress: MonkeyEcxRequestProgressQueue) {\r\n this.updateQueue(q, progress);\r\n }\r\n\r\n public hasNewQueue(): Observable<boolean> {\r\n return this.newQueue$.pipe(\r\n map((_: any) => {\r\n return _;\r\n })\r\n );\r\n }\r\n\r\n public hasAllQueueFinished(): Observable<boolean> {\r\n return this.allQueueFinished$.pipe(\r\n map((_: any) => {\r\n return _;\r\n })\r\n );\r\n }\r\n}\r\n","/* eslint-disable max-len */\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { MonkeyEcxRequestQueueHandlingService } from '../services/request-queue';\r\nimport { MonkeyEcxHandlingService } from '../services/monkeyecx-handling.service';\r\nimport { MonkeyEcxRequestQueue } from '../interfaces';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n@Injectable()\r\nexport class MonkeyEcxHttpConfigQueueInterceptor implements HttpInterceptor {\r\n constructor(\r\n private injector: Injector,\r\n private monkeyecxRequestQueueHandlingService: MonkeyEcxRequestQueueHandlingService\r\n ) {\r\n // not to do\r\n }\r\n\r\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n const { injector, isQueueProperty } = this;\r\n const monkeyecxHandlingService = injector.get(MonkeyEcxHandlingService);\r\n\r\n const monkeyecxRequestQueue: MonkeyEcxRequestQueue | null = monkeyecxHandlingService?.getMonkeyEcxRequestQueue();\r\n if (isQueueProperty(monkeyecxRequestQueue)) {\r\n this.monkeyecxRequestQueueHandlingService.setQueue(monkeyecxRequestQueue);\r\n }\r\n\r\n return next.handle(request).pipe(\r\n finalize(() => {\r\n if (isQueueProperty(monkeyecxRequestQueue)) {\r\n this.monkeyecxRequestQueueHandlingService.finishQueueItem(monkeyecxRequestQueue);\r\n }\r\n })\r\n );\r\n }\r\n\r\n private isQueueProperty(mrq?: MonkeyEcxRequestQueue | null): boolean {\r\n return (\r\n MonkeyEcxUtils.persistNullEmptyUndefined(mrq) &&\r\n MonkeyEcxUtils.persistNullEmptyUndefined(mrq?.item?.name)\r\n );\r\n }\r\n}\r\n","/* eslint-disable max-len */\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { MonkeyEcxHandlingService } from '../services/monkeyecx-handling.service';\r\nimport { MonkeyEcxRequestLoadingInProgress } from '../interfaces';\r\nimport { MonkeyEcxUtils } from '../utils/utils';\r\nimport { MonkeyEcxProgressBarService } from '../../components';\r\n\r\n@Injectable()\r\nexport class MonkeyEcxHttpConfigLoadingInProgressInterceptor implements HttpInterceptor {\r\n constructor(private injector: Injector) {\r\n // no to do\r\n }\r\n\r\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n const { injector, isLoadingInProgressProperty } = this;\r\n const handlingService: MonkeyEcxHandlingService = injector.get(MonkeyEcxHandlingService);\r\n const progressBarService: MonkeyEcxProgressBarService = injector.get(\r\n MonkeyEcxProgressBarService\r\n );\r\n\r\n const inProgress: MonkeyEcxRequestLoadingInProgress | null = handlingService?.getMonkeyEcxServiceCredentials()\r\n ? handlingService?.getMonkeyEcxServiceCredentials()?.requestInProgress || null\r\n : null;\r\n if (isLoadingInProgressProperty(inProgress)) {\r\n progressBarService.show();\r\n }\r\n\r\n return next.handle(request).pipe(\r\n finalize(() => {\r\n if (isLoadingInProgressProperty(inProgress)) {\r\n progressBarService.hide();\r\n }\r\n })\r\n );\r\n }\r\n\r\n private isLoadingInProgressProperty(mlp: MonkeyEcxRequestLoadingInProgress | null): boolean {\r\n if (!mlp) return false;\r\n return MonkeyEcxUtils.persistNullEmptyUndefined(mlp) &&\r\n MonkeyEcxUtils.persistNullEmptyUndefined(mlp.showProgress)\r\n ? mlp.showProgress\r\n : true;\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MonkeyEcxHttpConfigErrorInterceptor } from './monkeyecx-http-config-error.interceptor';\r\nimport { MonkeyEcxHttpConfigHeaderInterceptor } from './monkeyecx-http-config-header.interceptor';\r\nimport { MonkeyEcxHttpConfigQueueInterceptor } from './monkeyecx-http-config-queue.interceptor';\r\nimport { MonkeyEcxHttpConfigLoadingInProgressInterceptor } from './monkeyecx-http-config-loading-in-progress.interceptor';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n})\r\nexport class MonkeyEcxHttpConfigInterceptorModule {\r\n public static forRoot(): ModuleWithProviders<MonkeyEcxHttpConfigInterceptorModule> {\r\n return {\r\n ngModule: MonkeyEcxHttpConfigInterceptorModule,\r\n providers: [\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: MonkeyEcxHttpConfigHeaderInterceptor,\r\n multi: true,\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: MonkeyEcxHttpConfigErrorInterceptor,\r\n multi: true,\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: MonkeyEcxHttpConfigQueueInterceptor,\r\n multi: true,\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: MonkeyEcxHttpConfigLoadingInProgressInterceptor,\r\n multi: true,\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","export interface Link {\r\n href: string;\r\n type: string;\r\n}\r\n\r\nexport class MonkeyEcxModel {\r\n _links: any;\r\n\r\n public getAction(type: string): Link | null {\r\n const { _links } = this;\r\n if (!_links) return null;\r\n const link = _links[type.toLowerCase()];\r\n return link;\r\n }\r\n}\r\n","/* eslint-disable indent */\r\nimport { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\r\nimport { MonkeyEcxConfigService } from './monkeyecx-config.service';\r\n\r\n@NgModule()\r\nexport class MonkeyEcxConfigModule {\r\n constructor(\r\n @Optional()\r\n @SkipSelf()\r\n parentModule: MonkeyEcxConfigModule\r\n ) {\r\n if (parentModule) {\r\n throw new Error('MonkeyEcxConfigModule is already loaded. Import it in the AppModule only!');\r\n }\r\n }\r\n\r\n static forRoot(): ModuleWithProviders<MonkeyEcxConfigModule> {\r\n return {\r\n ngModule: MonkeyEcxConfigModule,\r\n providers: [MonkeyEcxConfigService]\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MonkeyEcxRequestSchedule } from '../../interfaces';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxLoggedHandlingService {\r\n private schedules: MonkeyEcxRequestSchedule[] = [];\r\n\r\n constructor() {\r\n // not to do\r\n }\r\n\r\n private destroySchedule() {\r\n this.schedules.forEach((sch: MonkeyEcxRequestSchedule) => {\r\n clearInterval(sch.interval);\r\n });\r\n this.schedules = [];\r\n }\r\n\r\n public addSchedule(sch: MonkeyEcxRequestSchedule[]) {\r\n this.schedules = sch;\r\n }\r\n\r\n public destroy() {\r\n this.destroySchedule();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { MonkeyEcxUtils } from '../../utils/utils';\r\nimport { MonkeyEcxRequestDownload } from '../../interfaces';\r\nimport { MonkeyEcxDownloadEvents } from '../../utils/statics';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxRequestDownloadHandlingService {\r\n private download: MonkeyEcxRequestDownload[] = [];\r\n\r\n private download$: BehaviorSubject<MonkeyEcxRequestDownload[] | any>;\r\n\r\n constructor() {\r\n this.download$ = new BehaviorSubject([]);\r\n }\r\n\r\n private addTo(q: MonkeyEcxRequestDownload) {\r\n this.download.push(q);\r\n this.download$.next(this.download);\r\n }\r\n\r\n private markItemAsFinish(q: MonkeyEcxRequestDownload, status?: number) {\r\n const saved = [...this.download];\r\n this.download = [\r\n ...saved\r\n .map((val: any) => {\r\n if (val.status === MonkeyEcxDownloadEvents.OnGoing) {\r\n const valSaved = {\r\n ...val\r\n };\r\n if (valSaved.item.id === q.item.id) {\r\n return {\r\n ...valSaved,\r\n status: status || MonkeyEcxDownloadEvents.Finished\r\n };\r\n }\r\n return valSaved;\r\n }\r\n return null;\r\n })\r\n .filter((_: any) => {\r\n return _;\r\n })\r\n ];\r\n\r\n this.download = this.download.filter((_: any) => {\r\n return _.status === MonkeyEcxDownloadEvents.OnGoing;\r\n });\r\n this.download$.next(this.download);\r\n }\r\n\r\n private updateItem(q: MonkeyEcxRequestDownload, loaded?: number, total?: number) {\r\n const saved = [...this.download];\r\n this.download = [\r\n ...saved.map((val: any) => {\r\n const valSaved = {\r\n ...val\r\n };\r\n const currentPecentage = Math.floor(((loaded || 0) / (total || 0)) * 100);\r\n const totalPercentage = 100;\r\n if (valSaved.item.id === q.item.id) {\r\n return {\r\n ...valSaved,\r\n loaded,\r\n total,\r\n currentPercentage: currentPecentage,\r\n totalPercentage\r\n };\r\n }\r\n return valSaved;\r\n })\r\n ];\r\n this.download$.next(this.download);\r\n }\r\n\r\n public set(q: MonkeyEcxRequestDownload) {\r\n this.addTo(q);\r\n }\r\n\r\n public get(): Observable<MonkeyEcxRequestDownload[]> {\r\n return this.download$.asObservable();\r\n }\r\n\r\n public update(q: MonkeyEcxRequestDownload, loaded?: number, total?: number) {\r\n this.updateItem(q, loaded, total);\r\n }\r\n\r\n public finishItem(q: MonkeyEcxRequestDownload, status?: number) {\r\n this.markItemAsFinish(q, status);\r\n }\r\n\r\n public hasDownloadOnGoing(): boolean {\r\n const found = this.download.find((_: any) => {\r\n return _.status === MonkeyEcxDownloadEvents.OnGoing;\r\n });\r\n return MonkeyEcxUtils.persistNullEmptyUndefined(found);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { MonkeyEcxUtils } from '../../utils/utils';\r\nimport { Statics } from '../../utils';\r\nimport { MonkeyEcxRequestDownloaded } from '../../interfaces';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxRequestDownloadedHandlingService {\r\n private downloaded: MonkeyEcxRequestDownloaded[] = [];\r\n\r\n private downloaded$: BehaviorSubject<MonkeyEcxRequestDownloaded[] | any>;\r\n\r\n constructor() {\r\n this.downloaded$ = new BehaviorSubject([]);\r\n }\r\n\r\n private addTo(q: MonkeyEcxRequestDownloaded) {\r\n this.downloaded.push(q);\r\n this.downloaded$.next(this.downloaded);\r\n }\r\n\r\n private markItemAsFinish(q: MonkeyEcxRequestDownloaded, status?: number) {\r\n const saved = [...this.downloaded];\r\n this.downloaded = [\r\n ...saved.map((val: any) => {\r\n if (val.status === Statics.MonkeyEcxDownloadEvents.OnGoing) {\r\n const valSaved = {\r\n ...val\r\n };\r\n if (valSaved.item.id === q.item.id) {\r\n return {\r\n ...valSaved,\r\n status: status || Statics.MonkeyEcxDownloadEvents.Finished,\r\n action: q.action\r\n };\r\n }\r\n return valSaved;\r\n }\r\n return val;\r\n })\r\n ];\r\n this.downloaded$.next(this.downloaded);\r\n }\r\n\r\n public set(q: MonkeyEcxRequestDownloaded) {\r\n this.addTo(q);\r\n }\r\n\r\n public get(): Observable<MonkeyEcxRequestDownloaded[]> {\r\n return this.downloaded$.asObservable();\r\n }\r\n\r\n public finishItem(q: MonkeyEcxRequestDownloaded, status?: number) {\r\n this.markItemAsFinish(q, status);\r\n }\r\n\r\n public hasDownloadOnGoing(): boolean {\r\n const found = this.downloaded.find((_: any) => {\r\n return _.status === Statics.MonkeyEcxDownloadEvents.OnGoing;\r\n });\r\n return MonkeyEcxUtils.persistNullEmptyUndefined(found);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, ActivatedRouteSnapshot } from '@angular/router';\r\nimport { MonkeyEcxUtils } from '../../utils/utils';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MonkeyEcxDiscoveryParamsService {\r\n constructor(private router: Router) {\r\n // not to do\r\n }\r\n\r\n private getLastChild(route: ActivatedRouteSnapshot): ActivatedRouteSnapshot {\r\n if (route.firstChild) {\r\n return this.getLastChild(route.firstChild);\r\n }\r\n\r\n return route;\r\n }\r\n\r\n public setData(field: string, value: any): any {\r\n const { root } = this.router.routerState.snapshot;\r\n const route: ActivatedRouteSnapshot = this.getLastChild(root);\r\n route.data[field] = value;\r\n }\r\n\r\n public getData(field: string): any {\r\n const { root } = this.router.routerState.snapshot;\r\n const route: ActivatedRouteSnapshot = this.getLastChild(root);\r\n\r\n const found: any = MonkeyEcxUtils.persistNullEmptyUndefined(route) ? route.data[field] : null;\r\n return found;\r\n }\r\n\r\n public getDataFromCurrentNavigation(field: string): any {\r\n const navigation = this.router.getCurrentNavigation();\r\n let state: any = null;\r\n if (MonkeyEcxUtils.persistNullEmptyUndefined(navigation)) {\r\n state = navigation?.extras.state;\r\n }\r\n\r\n return state ? state[field] : null;\r\n }\r\n\r\n public getParam(param: string): string | null {\r\n const { root } = this.router.routerState.snapshot;\r\n const route: ActivatedRouteSnapshot = this.getLastChild(root);\r\n let found: string = MonkeyEcxUtils.persistNullEmptyUndefined(route)\r\n ? route?.paramMap?.get(param) || ''\r\n : '';\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(found)) found = this.getData(param);\r\n return found;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MonkeyEcxService } from '../monkeyecx-service.service';\r\nimport { MonkeyEcxCoreService } from '../../decorators/monkeyecx-decorators';\r\nimport { MonkeyEcxLoggedHandlingService } from '../logged';\r\nimport { MonkeyEcxUtils } from '../../utils/utils';\r\nimport { MonkeyEcxRequestSchedule } from '../../interfaces';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MonkeyEcxRequestScheduleService {\r\n private schedule: (MonkeyEcxRequestSchedule | any)[] = [];\r\n\r\n constructor(\r\n public monkeyecxService: MonkeyEcxService,\r\n private monkeyecxLoggedHandlingService: MonkeyEcxLoggedHandlingService\r\n ) {\r\n // not to do\r\n }\r\n\r\n private addToSchedule(q: MonkeyEcxRequestSchedule) {\r\n this.schedule.push(q);\r\n this.monkeyecxLoggedHandlingService.addSchedule(this.schedule);\r\n }\r\n\r\n private removeFromSchedule(q: MonkeyEcxRequestSchedule) {\r\n clearInterval(q.interval);\r\n const saved = [...this.schedule];\r\n this.schedule = [\r\n ...saved.map((sch: MonkeyEcxRequestSchedule) => {\r\n const savedLocal = {\r\n ...sch,\r\n };\r\n if (sch.id === q.id) {\r\n return null;\r\n }\r\n return savedLocal;\r\n }),\r\n ].filter((_: any) => {\r\n return _;\r\n });\r\n this.monkeyecxLoggedHandlingService.addSchedule(this.schedule);\r\n }\r\n\r\n private removeFromScheduleById(id: string) {\r\n const q = this.getScheduleById(id);\r\n clearInterval(q.interval);\r\n const saved = [...this.schedule];\r\n this.schedule = [\r\n ...saved.map((sch: MonkeyEcxRequestSchedule) => {\r\n const savedLocal = {\r\n ...sch,\r\n };\r\n if (sch.id === q.id) {\r\n return null;\r\n }\r\n return savedLocal;\r\n }),\r\n ].filter((_: any) => {\r\n return _;\r\n });\r\n this.monkeyecxLoggedHandlingService.addSchedule(this.schedule);\r\n }\r\n\r\n @MonkeyEcxCoreService({\r\n httpResponse: {\r\n httpCodeIgnore: [400, 403, 404, 500, 503],\r\n },\r\n requestInProgress: {\r\n showProgress: false,\r\n },\r\n })\r\n private doCall(sch: MonkeyEcxRequestSchedule) {\r\n const { url, method, params, data, action } = sch;\r\n\r\n this.monkeyecxService[method.toLowerCase()]<any>(`${url}`, params).subscribe(\r\n (resp: any) => {\r\n action(\r\n {\r\n ...data,\r\n ...resp,\r\n },\r\n sch\r\n );\r\n },\r\n () => {\r\n this.removeFromSchedule(sch);\r\n }\r\n );\r\n }\r\n\r\n public setSchedule(q: MonkeyEcxRequestSchedule, delay: number = 3000) {\r\n const interval = setInterval(() => {\r\n this.doCall({\r\n ...q,\r\n interval,\r\n });\r\n }, delay);\r\n\r\n const sch = {\r\n ...q,\r\n id: `${MonkeyEcxUtils.getRandomString(40)}`,\r\n interval,\r\n };\r\n\r\n this.addToSchedule(sch);\r\n return sch;\r\n }\r\n\r\n public removeSchedule(q: MonkeyEcxRequestSchedule) {\r\n this.removeFromSchedule(q);\r\n }\r\n\r\n public removeScheduleById(id: string) {\r\n this.removeFromScheduleById(id);\r\n }\r\n\r\n public getScheduleById(id: string) {\r\n const q = this.schedule.find((sch: MonkeyEcxRequestSchedule) => {\r\n return sch.id === id;\r\n });\r\n return q;\r\n }\r\n}\r\n","import { MonkeyEcxUtils } from '../utils/utils';\r\n\r\n/* eslint-disable no-unused-vars */\r\nexport enum OpSearch {\r\n LIKE = ':*:value*',\r\n BETWEEN = ':first AND :last',\r\n OR = 'OR',\r\n AND = 'AND',\r\n GT = '>:value',\r\n LT = '<:value',\r\n EQUAL = '::value'\r\n}\r\n\r\nexport class MonkeyEcxSpecificationSearch {\r\n constructor() {\r\n // not to do\r\n }\r\n\r\n private handleValue(value: any) {\r\n return Object.entries(value).map(([key, value1]) => {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(value1)) {\r\n return null;\r\n }\r\n if (Array.isArray(value1)) {\r\n if (key === OpSearch.BETWEEN) {\r\n return `${key}`.replace(':first', value1[0]).replace(':last', value1[1]);\r\n }\r\n }\r\n return `${key}`.replace(':value', `${value1}`);\r\n })[0];\r\n }\r\n\r\n private queryVisitor(value: any): any {\r\n const okay = Object.entries(value).map(([key1, value1]) => {\r\n if (key1 === OpSearch.OR || key1 === OpSearch.AND) {\r\n const join = (value1 as any[])\r\n .map((_: any) => {\r\n return Object.entries(_).map(([key2, value2]) => {\r\n if (value2 instanceof Object) {\r\n value2 = this.handleValue(value2);\r\n }\r\n return this.criteriaParser(key2, value2);\r\n })[0];\r\n })\r\n .filter((_: any) => {\r\n return _;\r\n })\r\n .join(` ${key1} `);\r\n return `${join ? `(${join})` : ''}`;\r\n }\r\n if (value1 instanceof Object) {\r\n value1 = this.handleValue(value1);\r\n }\r\n return this.criteriaParser(key1, value1);\r\n });\r\n return okay\r\n .filter((_: any) => {\r\n return _;\r\n })\r\n .join(' AND ');\r\n }\r\n\r\n private criteriaParser(key: string, value: any | any[]) {\r\n if (!MonkeyEcxUtils.persistNullEmptyUndefined(value)) {\r\n return '';\r\n }\r\n if (value instanceof Object) {\r\n return this.queryVisitor(value);\r\n }\r\n return `${key}${value}`;\r\n }\r\n\r\n public build(spec: any): string {\r\n try {\r\n return this.queryVisitor(spec);\r\n } catch (e) {\r\n throw new Error(`MonkeyEcxSpecificationSearch Error ${e}`);\r\n }\r\n }\r\n\r\n public buildMoreThanOne(field: string, op = OpSearch.EQUAL) {\r\n let self: any = this;\r\n try {\r\n if (!self[field]) return [];\r\n\r\n const filters = self[field]?.split(',')?.map((filter: string) => {\r\n if (!filter) return null;\r\n return {\r\n [field]: {\r\n [op]: `${filter}`\r\n }\r\n };\r\n }).filter((val: any) => { return val; });\r\n return filters || [];\r\n } catch (e) {\r\n throw new Error(`MonkeyEcxSpecificationSearch Error ${e}`);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { CommonModule } from '@angular/common';\r\nimport {\r\n MonkeyStyleGuideModalService,\r\n MonkeyStyleGuideModule,\r\n MonkeyStyleGuideSettingsService,\r\n MonkeyStyleGuideSnackbarService\r\n} from 'monkey-style-guide';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { ServiceWorkerModule } from '@angular/service-worker';\r\nimport { ClosedToMaintenanceModule } from './components/closed-to-maintenance/closed-to-maintenance.module';\r\nimport { VersionChangedModule } from './components/version-changed/version-changed.module';\r\nimport { MonkeyEcxConfigModule } from './core/services/config/monkeyecx-config.module';\r\nimport { MonkeyEcxHttpConfigInterceptorModule } from './core/interceptors/monkeyecx-http-config-interceptor.module';\r\nimport { MonkeyEcxErrorHandlingModule } from './core/services/error/monkeyecx-error-handling.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n TranslateModule.forRoot(),\r\n MonkeyEcxConfigModule.forRoot(),\r\n MonkeyEcxHttpConfigInterceptorModule.forRoot(),\r\n MonkeyEcxErrorHandlingModule.forRoot(),\r\n MonkeyStyleGuideModule,\r\n ServiceWorkerModule.register('ngsw-worker.js'),\r\n ClosedToMaintenanceModule,\r\n VersionChangedModule\r\n ],\r\n providers: [\r\n MonkeyStyleGuideModalService,\r\n MonkeyStyleGuideSettingsService,\r\n MonkeyStyleGuideSnackbarService\r\n ]\r\n})\r\nexport class MonkeyFrontCoreModuleModule {}\r\n","/*\r\n * Public API Surface of monkey-front-core\r\n */\r\nexport * from './lib/components';\r\nexport * from './lib/core';\r\nexport * from './lib/monkey-front-core.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["moment","Statics.MonkeyEcxQueueEvents","Statics.MonkeyEcxUploadEvents","DecoratorsUtils.hasMonkeyEcxServiceAndHandlingProperties","DecoratorsUtils.buildQueuePropertys","DecoratorsUtils.buildDownloadPropertys","DecoratorsUtils.buildUploadPropertys","window","Statics.MonkeyEcxDownloadEvents"],"mappings":"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"}