monkey-front-core 0.0.32 → 0.0.36

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