monkey-front-core 0.0.96 → 0.0.100

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/README.md +24 -24
  2. package/bundles/monkey-front-core.umd.js +4900 -0
  3. package/bundles/monkey-front-core.umd.js.map +1 -0
  4. package/esm2015/lib/components/closed-to-maintenance/closed-to-maintenance.component.js +35 -0
  5. package/{esm2020/lib/components/closed-to-maintenance/closed-to-maintenance.module.mjs → esm2015/lib/components/closed-to-maintenance/closed-to-maintenance.module.js} +5 -5
  6. package/{esm2020/lib/components/closed-to-maintenance/index.mjs → esm2015/lib/components/closed-to-maintenance/index.js} +1 -1
  7. package/{esm2020/lib/components/index.mjs → esm2015/lib/components/index.js} +0 -0
  8. package/{esm2020/lib/components/progress-bar/index.mjs → esm2015/lib/components/progress-bar/index.js} +1 -1
  9. package/esm2015/lib/components/progress-bar/progress-bar.component.js +29 -0
  10. package/{esm2020/lib/components/progress-bar/progress-bar.module.mjs → esm2015/lib/components/progress-bar/progress-bar.module.js} +5 -5
  11. package/esm2015/lib/components/progress-bar/progress-bar.service.js +53 -0
  12. package/{esm2020/lib/components/version-changed/index.mjs → esm2015/lib/components/version-changed/index.js} +1 -1
  13. package/esm2015/lib/components/version-changed/version-changed.component.js +29 -0
  14. package/{esm2020/lib/components/version-changed/version-changed.module.mjs → esm2015/lib/components/version-changed/version-changed.module.js} +5 -5
  15. package/{esm2020/lib/core/decorators/index.mjs → esm2015/lib/core/decorators/index.js} +1 -1
  16. package/{esm2020/lib/core/decorators/monkeyecx-charts-decorators.mjs → esm2015/lib/core/decorators/monkeyecx-charts-decorators.js} +1 -1
  17. package/esm2015/lib/core/decorators/monkeyecx-decorators.js +112 -0
  18. package/esm2015/lib/core/decorators/monkeyecx-download-decorators.js +25 -0
  19. package/esm2015/lib/core/decorators/monkeyecx-upload-decorators.js +25 -0
  20. package/{esm2020/lib/core/directives/index.mjs → esm2015/lib/core/directives/index.js} +1 -1
  21. package/{esm2020/lib/core/directives/monkeyecx-directives-module.mjs → esm2015/lib/core/directives/monkeyecx-directives-module.js} +5 -5
  22. package/esm2015/lib/core/directives/monkeyecx-drag-drop.js +57 -0
  23. package/esm2015/lib/core/directives/monkeyecx-feature-directive.js +68 -0
  24. package/{esm2020/lib/core/directives/monkeyecx-format-currency.mjs → esm2015/lib/core/directives/monkeyecx-format-currency.js} +4 -4
  25. package/esm2015/lib/core/directives/monkeyecx-format-upper.js +69 -0
  26. package/{esm2020/lib/core/directives/monkeyecx-only-alpha-numeric-directive.mjs → esm2015/lib/core/directives/monkeyecx-only-alpha-numeric-directive.js} +4 -4
  27. package/{esm2020/lib/core/directives/monkeyecx-only-number-directive.mjs → esm2015/lib/core/directives/monkeyecx-only-number-directive.js} +4 -4
  28. package/esm2015/lib/core/directives/monkeyecx-security-directive.js +69 -0
  29. package/esm2015/lib/core/directives/monkeyecx-tooltip-directive.js +124 -0
  30. package/{esm2020/lib/core/index.mjs → esm2015/lib/core/index.js} +1 -1
  31. package/{esm2020/lib/core/interceptors/index.mjs → esm2015/lib/core/interceptors/index.js} +1 -1
  32. package/esm2015/lib/core/interceptors/monkeyecx-http-config-error.interceptor.js +40 -0
  33. package/esm2015/lib/core/interceptors/monkeyecx-http-config-header.interceptor.js +33 -0
  34. package/{esm2020/lib/core/interceptors/monkeyecx-http-config-interceptor.module.mjs → esm2015/lib/core/interceptors/monkeyecx-http-config-interceptor.module.js} +5 -5
  35. package/esm2015/lib/core/interceptors/monkeyecx-http-config-loading-in-progress.interceptor.js +44 -0
  36. package/esm2015/lib/core/interceptors/monkeyecx-http-config-queue.interceptor.js +38 -0
  37. package/{esm2020/lib/core/interfaces/index.mjs → esm2015/lib/core/interfaces/index.js} +1 -1
  38. package/esm2015/lib/core/interfaces/monkeyecx-auth-credentials.js +2 -0
  39. package/{esm2020/lib/core/interfaces/monkeyecx-company.mjs → esm2015/lib/core/interfaces/monkeyecx-company.js} +1 -1
  40. package/esm2015/lib/core/interfaces/monkeyecx-config-boostrap.js +2 -0
  41. package/esm2015/lib/core/interfaces/monkeyecx-config.js +2 -0
  42. package/{esm2020/lib/core/interfaces/monkeyecx-error-response.mjs → esm2015/lib/core/interfaces/monkeyecx-error-response.js} +1 -1
  43. package/{esm2020/lib/core/interfaces/monkeyecx-handled-error-response.mjs → esm2015/lib/core/interfaces/monkeyecx-handled-error-response.js} +1 -1
  44. package/{esm2020/lib/core/interfaces/monkeyecx-header-credentials.mjs → esm2015/lib/core/interfaces/monkeyecx-header-credentials.js} +1 -1
  45. package/{esm2020/lib/core/interfaces/monkeyecx-intercom-options.mjs → esm2015/lib/core/interfaces/monkeyecx-intercom-options.js} +1 -1
  46. package/esm2015/lib/core/interfaces/monkeyecx-me-credentials.js +2 -0
  47. package/esm2015/lib/core/interfaces/monkeyecx-navigation.js +2 -0
  48. package/{esm2020/lib/core/interfaces/monkeyecx-program.mjs → esm2015/lib/core/interfaces/monkeyecx-program.js} +1 -1
  49. package/{esm2020/lib/core/interfaces/monkeyecx-releases.mjs → esm2015/lib/core/interfaces/monkeyecx-releases.js} +1 -1
  50. package/{esm2020/lib/core/interfaces/monkeyecx-request-in-progress.mjs → esm2015/lib/core/interfaces/monkeyecx-request-in-progress.js} +1 -1
  51. package/esm2015/lib/core/interfaces/monkeyecx-request-paged.js +2 -0
  52. package/{esm2020/lib/core/interfaces/monkeyecx-response-links.mjs → esm2015/lib/core/interfaces/monkeyecx-response-links.js} +1 -1
  53. package/{esm2020/lib/core/interfaces/monkeyecx-response-paged.mjs → esm2015/lib/core/interfaces/monkeyecx-response-paged.js} +1 -1
  54. package/{esm2020/lib/core/interfaces/monkeyecx-saved-state.mjs → esm2015/lib/core/interfaces/monkeyecx-saved-state.js} +1 -1
  55. package/{esm2020/lib/core/interfaces/monkeyecx-scroll-options.mjs → esm2015/lib/core/interfaces/monkeyecx-scroll-options.js} +1 -1
  56. package/esm2015/lib/core/interfaces/monkeyecx-service-credentials.js +2 -0
  57. package/{esm2020/lib/core/interfaces/monkeyecx-support-options.mjs → esm2015/lib/core/interfaces/monkeyecx-support-options.js} +1 -1
  58. package/esm2015/lib/core/interfaces/monkeyecx-token-credentials.js +2 -0
  59. package/{esm2020/lib/core/interfaces/monkeyecx-translate-options.mjs → esm2015/lib/core/interfaces/monkeyecx-translate-options.js} +1 -1
  60. package/{esm2020/lib/core/interfaces/request-download/index.mjs → esm2015/lib/core/interfaces/request-download/index.js} +1 -1
  61. package/{esm2020/lib/core/interfaces/request-download/monkeyecx-request-download.mjs → esm2015/lib/core/interfaces/request-download/monkeyecx-request-download.js} +1 -1
  62. package/{esm2020/lib/core/interfaces/request-download/monkeyecx-request-downloaded.mjs → esm2015/lib/core/interfaces/request-download/monkeyecx-request-downloaded.js} +1 -1
  63. package/{esm2020/lib/core/interfaces/request-download/monkeyecx-request-item-download.mjs → esm2015/lib/core/interfaces/request-download/monkeyecx-request-item-download.js} +1 -1
  64. package/{esm2020/lib/core/interfaces/request-queue/index.mjs → esm2015/lib/core/interfaces/request-queue/index.js} +1 -1
  65. package/{esm2020/lib/core/interfaces/request-queue/monkeyecx-request-item-queue.mjs → esm2015/lib/core/interfaces/request-queue/monkeyecx-request-item-queue.js} +1 -1
  66. package/{esm2020/lib/core/interfaces/request-queue/monkeyecx-request-progress-queue.mjs → esm2015/lib/core/interfaces/request-queue/monkeyecx-request-progress-queue.js} +1 -1
  67. package/{esm2020/lib/core/interfaces/request-queue/monkeyecx-request-queue.mjs → esm2015/lib/core/interfaces/request-queue/monkeyecx-request-queue.js} +1 -1
  68. package/{esm2020/lib/core/interfaces/request-upload/index.mjs → esm2015/lib/core/interfaces/request-upload/index.js} +1 -1
  69. package/{esm2020/lib/core/interfaces/request-upload/monkeyecx-request-item-upload.mjs → esm2015/lib/core/interfaces/request-upload/monkeyecx-request-item-upload.js} +1 -1
  70. package/{esm2020/lib/core/interfaces/request-upload/monkeyecx-request-upload.mjs → esm2015/lib/core/interfaces/request-upload/monkeyecx-request-upload.js} +1 -1
  71. package/{esm2020/lib/core/interfaces/schedules/index.mjs → esm2015/lib/core/interfaces/schedules/index.js} +1 -1
  72. package/esm2015/lib/core/interfaces/schedules/monkeyecx-request-schedule.js +2 -0
  73. package/{esm2020/lib/core/model/index.mjs → esm2015/lib/core/model/index.js} +1 -1
  74. package/{esm2020/lib/core/model/monkeyecx-model.mjs → esm2015/lib/core/model/monkeyecx-model.js} +1 -1
  75. package/{esm2020/lib/core/pipes/index.mjs → esm2015/lib/core/pipes/index.js} +0 -0
  76. package/{esm2020/lib/core/pipes/monkeyecx-display-first-name.mjs → esm2015/lib/core/pipes/monkeyecx-display-first-name.js} +4 -4
  77. package/{esm2020/lib/core/pipes/monkeyecx-format-address.mjs → esm2015/lib/core/pipes/monkeyecx-format-address.js} +4 -4
  78. package/{esm2020/lib/core/pipes/monkeyecx-format-currency.mjs → esm2015/lib/core/pipes/monkeyecx-format-currency.js} +4 -4
  79. package/esm2015/lib/core/pipes/monkeyecx-format-date-group.js +46 -0
  80. package/{esm2020/lib/core/pipes/monkeyecx-format-date-timelapse.mjs → esm2015/lib/core/pipes/monkeyecx-format-date-timelapse.js} +4 -4
  81. package/{esm2020/lib/core/pipes/monkeyecx-format-document.mjs → esm2015/lib/core/pipes/monkeyecx-format-document.js} +4 -4
  82. package/{esm2020/lib/core/pipes/monkeyecx-format-number.mjs → esm2015/lib/core/pipes/monkeyecx-format-number.js} +4 -4
  83. package/{esm2020/lib/core/pipes/monkeyecx-format-phone.mjs → esm2015/lib/core/pipes/monkeyecx-format-phone.js} +4 -4
  84. package/{esm2020/lib/core/pipes/monkeyecx-format-size.mjs → esm2015/lib/core/pipes/monkeyecx-format-size.js} +4 -4
  85. package/{esm2020/lib/core/pipes/monkeyecx-format-type-document.mjs → esm2015/lib/core/pipes/monkeyecx-format-type-document.js} +4 -4
  86. package/{esm2020/lib/core/pipes/monkeyecx-format-value.mjs → esm2015/lib/core/pipes/monkeyecx-format-value.js} +4 -4
  87. package/{esm2020/lib/core/pipes/monkeyecx-format-zipcode.mjs → esm2015/lib/core/pipes/monkeyecx-format-zipcode.js} +4 -4
  88. package/{esm2020/lib/core/pipes/monkeyecx-pipes.module.mjs → esm2015/lib/core/pipes/monkeyecx-pipes.module.js} +5 -5
  89. package/{esm2020/lib/core/pipes/monkeyecx-text-truncate.mjs → esm2015/lib/core/pipes/monkeyecx-text-truncate.js} +4 -4
  90. package/{esm2020/lib/core/pipes/monkeyecx-truncate-qtd.mjs → esm2015/lib/core/pipes/monkeyecx-truncate-qtd.js} +4 -4
  91. package/{esm2020/lib/core/services/auth/index.mjs → esm2015/lib/core/services/auth/index.js} +1 -1
  92. package/{esm2020/lib/core/services/auth/monkeyecx-auth-guard-login.service.mjs → esm2015/lib/core/services/auth/monkeyecx-auth-guard-login.service.js} +4 -4
  93. package/{esm2020/lib/core/services/auth/monkeyecx-auth-guard.service.mjs → esm2015/lib/core/services/auth/monkeyecx-auth-guard.service.js} +4 -4
  94. package/esm2015/lib/core/services/auth/monkeyecx-authentication.service.js +61 -0
  95. package/{esm2020/lib/core/services/commons/index.mjs → esm2015/lib/core/services/commons/index.js} +1 -1
  96. package/esm2015/lib/core/services/commons/monkeyecx-commons.service.js +265 -0
  97. package/{esm2020/lib/core/services/config/monkeyecx-config.module.mjs → esm2015/lib/core/services/config/monkeyecx-config.module.js} +5 -5
  98. package/{esm2020/lib/core/services/config/monkeyecx-config.service.mjs → esm2015/lib/core/services/config/monkeyecx-config.service.js} +9 -11
  99. package/esm2015/lib/core/services/config/monkeyecx-error-config.service.js +85 -0
  100. package/esm2015/lib/core/services/config/monkeyecx-feature-toggle.service.js +70 -0
  101. package/esm2015/lib/core/services/config/monkeyecx-i18n-config.service.js +72 -0
  102. package/esm2015/lib/core/services/config/monkeyecx-logs-config.service.js +34 -0
  103. package/{esm2020/lib/core/services/config/monkeyecx-maintenance-config.service.mjs → esm2015/lib/core/services/config/monkeyecx-maintenance-config.service.js} +4 -4
  104. package/esm2015/lib/core/services/config/monkeyecx-security-console-config.service.js +42 -0
  105. package/esm2015/lib/core/services/config/monkeyecx-service-worker-config.service.js +54 -0
  106. package/{esm2020/lib/core/services/error/index.mjs → esm2015/lib/core/services/error/index.js} +1 -1
  107. package/{esm2020/lib/core/services/error/monkeyecx-error-handling.module.mjs → esm2015/lib/core/services/error/monkeyecx-error-handling.module.js} +5 -5
  108. package/esm2015/lib/core/services/error/monkeyecx-error-handling.service.js +41 -0
  109. package/esm2015/lib/core/services/error/monkeyecx-http-error-handling.service.js +132 -0
  110. package/{esm2020/lib/core/services/error/monkeyecx-others-errors-handling.service.mjs → esm2015/lib/core/services/error/monkeyecx-others-errors-handling.service.js} +4 -4
  111. package/{esm2020/lib/core/services/index.mjs → esm2015/lib/core/services/index.js} +1 -1
  112. package/{esm2020/lib/core/services/logged/index.mjs → esm2015/lib/core/services/logged/index.js} +1 -1
  113. package/{esm2020/lib/core/services/logged/monkeyecx-logged-handling.service.mjs → esm2015/lib/core/services/logged/monkeyecx-logged-handling.service.js} +4 -4
  114. package/esm2015/lib/core/services/monkeyecx-handling.service.js +50 -0
  115. package/esm2015/lib/core/services/monkeyecx-service.service.js +102 -0
  116. package/{esm2020/lib/core/services/request-download/index.mjs → esm2015/lib/core/services/request-download/index.js} +1 -1
  117. package/esm2015/lib/core/services/request-download/monkeyecx-request-download-handling.service.js +81 -0
  118. package/esm2015/lib/core/services/request-download/monkeyecx-request-downloaded-handling.service.js +55 -0
  119. package/{esm2020/lib/core/services/request-paged/index.mjs → esm2015/lib/core/services/request-paged/index.js} +1 -1
  120. package/esm2015/lib/core/services/request-paged/monkeyecx-request-request-paged-handling.js +37 -0
  121. package/{esm2020/lib/core/services/request-queue/index.mjs → esm2015/lib/core/services/request-queue/index.js} +1 -1
  122. package/esm2015/lib/core/services/request-queue/monkeyecx-request-queue-handling.service.js +101 -0
  123. package/esm2015/lib/core/services/request-queue/monkeyecx-request-queue-modal-handling.service.js +106 -0
  124. package/{esm2020/lib/core/services/routes/index.mjs → esm2015/lib/core/services/routes/index.js} +1 -1
  125. package/esm2015/lib/core/services/routes/monkeyecx-dicovery-params.service.js +55 -0
  126. package/{esm2020/lib/core/services/schedules/index.mjs → esm2015/lib/core/services/schedules/index.js} +1 -1
  127. package/esm2015/lib/core/services/schedules/monkeyecx-request-schedule.service.js +99 -0
  128. package/{esm2020/lib/core/services/storage/index.mjs → esm2015/lib/core/services/storage/index.js} +1 -1
  129. package/{esm2020/lib/core/services/storage/monkeyecx-cookie-storage.service.mjs → esm2015/lib/core/services/storage/monkeyecx-cookie-storage.service.js} +4 -4
  130. package/esm2015/lib/core/services/storage/monkeyecx-token-storage.service.js +123 -0
  131. package/{esm2020/lib/core/specification-search/index.mjs → esm2015/lib/core/specification-search/index.js} +1 -1
  132. package/{esm2020/lib/core/specification-search/monkeyecx-specification-search.mjs → esm2015/lib/core/specification-search/monkeyecx-specification-search.js} +3 -2
  133. package/esm2015/lib/core/utils/decorators-utils.js +37 -0
  134. package/{esm2020/lib/core/utils/index.mjs → esm2015/lib/core/utils/index.js} +1 -1
  135. package/{esm2020/lib/core/utils/statics.mjs → esm2015/lib/core/utils/statics.js} +1 -1
  136. package/esm2015/lib/core/utils/utils.js +219 -0
  137. package/esm2015/lib/core/utils/validate-utils.js +210 -0
  138. package/esm2015/lib/core/utils/validators.js +211 -0
  139. package/{esm2020/lib/monkey-front-core.module.mjs → esm2015/lib/monkey-front-core.module.js} +5 -5
  140. package/{esm2020/monkey-front-core.mjs → esm2015/monkey-front-core.js} +0 -0
  141. package/{esm2020/public-api.mjs → esm2015/public-api.js} +1 -1
  142. package/fesm2015/{monkey-front-core.mjs → monkey-front-core.js} +229 -218
  143. package/fesm2015/monkey-front-core.js.map +1 -0
  144. package/lib/core/pipes/monkeyecx-format-currency.d.ts +1 -1
  145. package/lib/core/services/auth/monkeyecx-authentication.service.d.ts +3 -3
  146. package/lib/core/services/commons/monkeyecx-commons.service.d.ts +15 -15
  147. package/lib/core/services/schedules/monkeyecx-request-schedule.service.d.ts +1 -1
  148. package/lib/core/utils/validate-utils.d.ts +13 -13
  149. package/monkey-front-core-0.0.100.tgz +0 -0
  150. package/package.json +7 -20
  151. package/esm2020/lib/components/closed-to-maintenance/closed-to-maintenance.component.mjs +0 -29
  152. package/esm2020/lib/components/progress-bar/progress-bar.component.mjs +0 -23
  153. package/esm2020/lib/components/progress-bar/progress-bar.service.mjs +0 -50
  154. package/esm2020/lib/components/version-changed/version-changed.component.mjs +0 -24
  155. package/esm2020/lib/core/decorators/monkeyecx-decorators.mjs +0 -111
  156. package/esm2020/lib/core/decorators/monkeyecx-download-decorators.mjs +0 -26
  157. package/esm2020/lib/core/decorators/monkeyecx-upload-decorators.mjs +0 -26
  158. package/esm2020/lib/core/directives/monkeyecx-drag-drop.mjs +0 -57
  159. package/esm2020/lib/core/directives/monkeyecx-feature-directive.mjs +0 -68
  160. package/esm2020/lib/core/directives/monkeyecx-format-upper.mjs +0 -67
  161. package/esm2020/lib/core/directives/monkeyecx-security-directive.mjs +0 -69
  162. package/esm2020/lib/core/directives/monkeyecx-tooltip-directive.mjs +0 -123
  163. package/esm2020/lib/core/interceptors/monkeyecx-http-config-error.interceptor.mjs +0 -39
  164. package/esm2020/lib/core/interceptors/monkeyecx-http-config-header.interceptor.mjs +0 -32
  165. package/esm2020/lib/core/interceptors/monkeyecx-http-config-loading-in-progress.interceptor.mjs +0 -43
  166. package/esm2020/lib/core/interceptors/monkeyecx-http-config-queue.interceptor.mjs +0 -37
  167. package/esm2020/lib/core/interfaces/monkeyecx-auth-credentials.mjs +0 -2
  168. package/esm2020/lib/core/interfaces/monkeyecx-config-boostrap.mjs +0 -2
  169. package/esm2020/lib/core/interfaces/monkeyecx-config.mjs +0 -2
  170. package/esm2020/lib/core/interfaces/monkeyecx-me-credentials.mjs +0 -2
  171. package/esm2020/lib/core/interfaces/monkeyecx-navigation.mjs +0 -2
  172. package/esm2020/lib/core/interfaces/monkeyecx-request-paged.mjs +0 -2
  173. package/esm2020/lib/core/interfaces/monkeyecx-service-credentials.mjs +0 -2
  174. package/esm2020/lib/core/interfaces/monkeyecx-token-credentials.mjs +0 -2
  175. package/esm2020/lib/core/interfaces/schedules/monkeyecx-request-schedule.mjs +0 -2
  176. package/esm2020/lib/core/pipes/monkeyecx-format-date-group.mjs +0 -45
  177. package/esm2020/lib/core/services/auth/monkeyecx-authentication.service.mjs +0 -61
  178. package/esm2020/lib/core/services/commons/monkeyecx-commons.service.mjs +0 -280
  179. package/esm2020/lib/core/services/config/monkeyecx-error-config.service.mjs +0 -85
  180. package/esm2020/lib/core/services/config/monkeyecx-feature-toggle.service.mjs +0 -67
  181. package/esm2020/lib/core/services/config/monkeyecx-i18n-config.service.mjs +0 -74
  182. package/esm2020/lib/core/services/config/monkeyecx-logs-config.service.mjs +0 -34
  183. package/esm2020/lib/core/services/config/monkeyecx-security-console-config.service.mjs +0 -42
  184. package/esm2020/lib/core/services/config/monkeyecx-service-worker-config.service.mjs +0 -53
  185. package/esm2020/lib/core/services/error/monkeyecx-error-handling.service.mjs +0 -41
  186. package/esm2020/lib/core/services/error/monkeyecx-http-error-handling.service.mjs +0 -127
  187. package/esm2020/lib/core/services/monkeyecx-handling.service.mjs +0 -50
  188. package/esm2020/lib/core/services/monkeyecx-service.service.mjs +0 -104
  189. package/esm2020/lib/core/services/request-download/monkeyecx-request-download-handling.service.mjs +0 -93
  190. package/esm2020/lib/core/services/request-download/monkeyecx-request-downloaded-handling.service.mjs +0 -61
  191. package/esm2020/lib/core/services/request-paged/monkeyecx-request-request-paged-handling.mjs +0 -37
  192. package/esm2020/lib/core/services/request-queue/monkeyecx-request-queue-handling.service.mjs +0 -114
  193. package/esm2020/lib/core/services/request-queue/monkeyecx-request-queue-modal-handling.service.mjs +0 -119
  194. package/esm2020/lib/core/services/routes/monkeyecx-dicovery-params.service.mjs +0 -54
  195. package/esm2020/lib/core/services/schedules/monkeyecx-request-schedule.service.mjs +0 -113
  196. package/esm2020/lib/core/services/storage/monkeyecx-token-storage.service.mjs +0 -126
  197. package/esm2020/lib/core/utils/decorators-utils.mjs +0 -40
  198. package/esm2020/lib/core/utils/utils.mjs +0 -218
  199. package/esm2020/lib/core/utils/validate-utils.mjs +0 -206
  200. package/esm2020/lib/core/utils/validators.mjs +0 -208
  201. package/fesm2015/monkey-front-core.mjs.map +0 -1
  202. package/fesm2020/monkey-front-core.mjs +0 -4265
  203. package/fesm2020/monkey-front-core.mjs.map +0 -1
  204. package/monkey-front-core-0.0.96.tgz +0 -0
@@ -1,206 +0,0 @@
1
- /* eslint-disable max-classes-per-file */
2
- import * as moment_ from 'moment';
3
- import { MonkeyEcxUtils } from './utils';
4
- const moment = moment_;
5
- export class DateValidator {
6
- static do(control) {
7
- if (!control.parent || !control)
8
- return null;
9
- if (control && control.value) {
10
- const dateFormat = 'MM-DD-YYYY';
11
- if (!moment
12
- .default(moment.default(control.value).format(dateFormat), ['DD/MM/YYYY', 'MM-DD-YYYY', 'YYYY-MM-DD'], true)
13
- .isValid()) {
14
- return {
15
- invalidDate: true,
16
- };
17
- }
18
- }
19
- return null;
20
- }
21
- }
22
- export class DocumentValidator {
23
- static do(control) {
24
- if (!control.parent || !control)
25
- return null;
26
- if (control && control.value) {
27
- if (!MonkeyEcxUtils.isCPFCNPJValid(control.value)) {
28
- return {
29
- invalidCpfCnpj: true,
30
- };
31
- }
32
- }
33
- return null;
34
- }
35
- }
36
- export class DocumentRutValidator {
37
- static do(control) {
38
- if (!control.parent || !control)
39
- return null;
40
- if (control && control.value) {
41
- if (!MonkeyEcxUtils.isValidRUT(control.value)) {
42
- return {
43
- invalidRut: true,
44
- };
45
- }
46
- }
47
- return null;
48
- }
49
- }
50
- export class ZipCodeValidator {
51
- static do(control) {
52
- if (!control.parent || !control)
53
- return null;
54
- if (control && control.value) {
55
- if (!MonkeyEcxUtils.isValidZipCode(control.value)) {
56
- return {
57
- invalidZipCode: true,
58
- };
59
- }
60
- }
61
- return null;
62
- }
63
- }
64
- export class ComboValidator {
65
- static do(control) {
66
- if (!control.parent || !control)
67
- return null;
68
- if (control && control.value !== '0')
69
- return null;
70
- return {
71
- invalidCombo: true,
72
- };
73
- }
74
- }
75
- export class isTrueValidator {
76
- static do(control) {
77
- if (!control.parent || !control)
78
- return null;
79
- if (control && control.value !== false)
80
- return null;
81
- return {
82
- invalidTrue: true,
83
- };
84
- }
85
- }
86
- export class PasswordMatchValidation {
87
- static do(control) {
88
- if (!control.parent || !control)
89
- return null;
90
- const { parent } = control;
91
- const password = parent?.get('password')?.value;
92
- const passwordConfirm = parent?.get('passwordConfirm')?.value;
93
- if (!password || !passwordConfirm)
94
- return null;
95
- if (password === passwordConfirm)
96
- return null;
97
- return {
98
- passwordsNotMatching: true,
99
- };
100
- }
101
- }
102
- export class UrlValidator {
103
- static do(control) {
104
- if (!control.parent || !control)
105
- return null;
106
- if (control && control.value) {
107
- if (!MonkeyEcxUtils.isValidUrl(control.value)) {
108
- return {
109
- invalidUrl: true,
110
- };
111
- }
112
- }
113
- return null;
114
- }
115
- }
116
- export class CustomDatesStartValidator {
117
- static do(control) {
118
- if (!control.parent || !control)
119
- return null;
120
- const { parent } = control;
121
- const valueStart = parent?.get('dateStart')?.value;
122
- const valueEnd = parent?.get('dateEnd')?.value;
123
- let dateStart = null;
124
- let dateEnd = null;
125
- if (valueStart) {
126
- dateStart = new Date(valueStart);
127
- }
128
- if (valueEnd) {
129
- dateEnd = new Date(valueEnd);
130
- }
131
- if (!dateStart || !dateEnd)
132
- return null;
133
- if (dateStart > dateEnd) {
134
- return {
135
- dateStartMustBeLessThanAnd: true,
136
- };
137
- }
138
- return null;
139
- }
140
- }
141
- export class CustomDatesEndValidator {
142
- static do(control) {
143
- if (!control.parent || !control)
144
- return null;
145
- const { parent } = control;
146
- const valueStart = parent?.get('dateStart')?.value;
147
- const valueEnd = parent?.get('dateEnd')?.value;
148
- let dateStart = null;
149
- let dateEnd = null;
150
- if (valueStart) {
151
- dateStart = new Date(valueStart);
152
- }
153
- if (valueEnd) {
154
- dateEnd = new Date(valueEnd);
155
- }
156
- if (!dateEnd || !dateStart)
157
- return null;
158
- if (dateEnd < dateStart) {
159
- return {
160
- dateEndMustBeGreaterThanStart: true,
161
- };
162
- }
163
- return null;
164
- }
165
- }
166
- export class UnlockRegisterBuyerValidator {
167
- static do(control) {
168
- if (!control.parent || !control)
169
- return null;
170
- if (control && control.value !== '#MONKEYBUYER') {
171
- return {
172
- invalidUnlockRegister: true,
173
- };
174
- }
175
- return null;
176
- }
177
- }
178
- export class UnlockRegisterSponsorValidator {
179
- static do(control) {
180
- if (!control.parent || !control)
181
- return null;
182
- if (control && control.value !== '#MONKEYSPONSOR') {
183
- return {
184
- invalidUnlockRegister: true,
185
- };
186
- }
187
- return null;
188
- }
189
- }
190
- export class DateRangeValidator {
191
- static do(control) {
192
- if (!control.parent || !control) {
193
- return null;
194
- }
195
- const dates = control?.parent?.get('dates')?.value;
196
- if (dates &&
197
- (!MonkeyEcxUtils.persistNullEmptyUndefined(dates.startDate) ||
198
- !MonkeyEcxUtils.persistNullEmptyUndefined(dates.endDate))) {
199
- return {
200
- invalidDateRange: true,
201
- };
202
- }
203
- return null;
204
- }
205
- }
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29yZS9zcmMvbGliL2NvcmUvdXRpbHMvdmFsaWRhdGUtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseUNBQXlDO0FBQ3pDLE9BQU8sS0FBSyxPQUFPLE1BQU0sUUFBUSxDQUFDO0FBRWxDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFekMsTUFBTSxNQUFNLEdBQVEsT0FBTyxDQUFDO0FBRTVCLE1BQU0sT0FBTyxhQUFhO0lBQ3hCLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBd0I7UUFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDN0MsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRTtZQUM1QixNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUM7WUFDaEMsSUFDRSxDQUFDLE1BQU07aUJBQ0osT0FBTyxDQUNOLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFDaEQsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLFlBQVksQ0FBQyxFQUMxQyxJQUFJLENBQ0w7aUJBQ0EsT0FBTyxFQUFFLEVBQ1o7Z0JBQ0EsT0FBTztvQkFDTCxXQUFXLEVBQUUsSUFBSTtpQkFDbEIsQ0FBQzthQUNIO1NBQ0Y7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUF3QjtRQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPLElBQUksQ0FBQztRQUM3QyxJQUFJLE9BQU8sSUFBSSxPQUFP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SDtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLDhCQUE4QjtJQUN6QyxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQXdCO1FBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRTdDLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssZ0JBQWdCLEVBQUU7WUFDakQsT0FBTztnQkFDTCxxQkFBcUIsRUFBRSxJQUFJO2FBQzVCLENBQUM7U0FDSDtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixNQUFNLENBQUMsRUFBRSxDQUFDLE9BQXdCO1FBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQy9CLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxNQUFNLEtBQUssR0FBRyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLENBQUM7UUFFbkQsSUFDRSxLQUFLO1lBQ0wsQ0FBQyxDQUFDLGNBQWMsQ0FBQyx5QkFBeUIsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO2dCQUN6RCxDQUFDLGNBQWMsQ0FBQyx5QkFBeUIsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsRUFDM0Q7WUFDQSxPQUFPO2dCQUNMLGdCQUFnQixFQUFFLElBQUk7YUFDdkIsQ0FBQztTQUNIO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBtYXgtY2xhc3Nlcy1wZXItZmlsZSAqL1xuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTW9ua2V5RWN4VXRpbHMgfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgbW9tZW50OiBhbnkgPSBtb21lbnRfO1xuXG5leHBvcnQgY2xhc3MgRGF0ZVZhbGlkYXRvciB7XG4gIHN0YXRpYyBkbyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpIHtcbiAgICBpZiAoIWNvbnRyb2wucGFyZW50IHx8ICFjb250cm9sKSByZXR1cm4gbnVsbDtcbiAgICBpZiAoY29udHJvbCAmJiBjb250cm9sLnZhbHVlKSB7XG4gICAgICBjb25zdCBkYXRlRm9ybWF0ID0gJ01NLURELVlZWVknO1xuICAgICAgaWYgKFxuICAgICAgICAhbW9tZW50XG4gICAgICAgICAgLmRlZmF1bHQoXG4gICAgICAgICAgICBtb21lbnQuZGVmYXVsdChjb250cm9sLnZhbHVlKS5mb3JtYXQoZGF0ZUZvcm1hdCksXG4gICAgICAgICAgICBbJ0REL01NL1lZWVknLCAnTU0tREQtWVlZWScsICdZWVlZLU1NLUREJ10sXG4gICAgICAgICAgICB0cnVlXG4gICAgICAgICAgKVxuICAgICAgICAgIC5pc1ZhbGlkKClcbiAgICAgICkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGludmFsaWREYXRlOiB0cnVlLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRWYWxpZGF0b3Ige1xuICBzdGF0aWMgZG8oY29udHJvbDogQWJzdHJhY3RDb250cm9sKSB7XG4gICAgaWYgKCFjb250cm9sLnBhcmVudCB8fCAhY29udHJvbCkgcmV0dXJuIG51bGw7XG4gICAgaWYgKGNvbnRyb2wgJiYgY29udHJvbC52YWx1ZSkge1xuICAgICAgaWYgKCFNb25rZXlFY3hVdGlscy5pc0NQRkNOUEpWYWxpZChjb250cm9sLnZhbHVlKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGludmFsaWRDcGZDbnBqOiB0cnVlLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRSdXRWYWxpZGF0b3Ige1xuICBzdGF0aWMgZG8oY29udHJvbDogQWJzdHJhY3RDb250cm9sKSB7XG4gICAgaWYgKCFjb250cm9sLnBhcmVudCB8fCAhY29udHJvbCkgcmV0dXJuIG51bGw7XG4gICAgaWYgKGNvbnRyb2wgJiYgY29udHJvbC52YWx1ZSkge1xuICAgICAgaWYgKCFNb25rZXlFY3hVdGlscy5pc1ZhbGlkUlVUKGNvbnRyb2wudmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaW52YWxpZFJ1dDogdHJ1ZSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFppcENvZGVWYWxpZGF0b3Ige1xuICBzdGF0aWMgZG8oY29udHJvbDogQWJzdHJhY3RDb250cm9sKSB7XG4gICAgaWYgKCFjb250cm9sLnBhcmVudCB8fCAhY29udHJvbCkgcmV0dXJuIG51bGw7XG4gICAgaWYgKGNvbnRyb2wgJiYgY29udHJvbC52YWx1ZSkge1xuICAgICAgaWYgKCFNb25rZXlFY3hVdGlscy5pc1ZhbGlkWmlwQ29kZShjb250cm9sLnZhbHVlKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGludmFsaWRaaXBDb2RlOiB0cnVlLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29tYm9WYWxpZGF0b3Ige1xuICBzdGF0aWMgZG8oY29udHJvbDogQWJzdHJhY3RDb250cm9sKSB7XG4gICAgaWYgKCFjb250cm9sLnBhcmVudCB8fCAhY29udHJvbCkgcmV0dXJuIG51bGw7XG4gICAgaWYgKGNvbnRyb2wgJiYgY29udHJvbC52YWx1ZSAhPT0gJzAnKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4ge1xuICAgICAgaW52YWxpZENvbWJvOiB0cnVlLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIGlzVHJ1ZVZhbGlkYXRvciB7XG4gIHN0YXRpYyBkbyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpIHtcbiAgICBpZiAoIWNvbnRyb2wucGFyZW50IHx8ICFjb250cm9sKSByZXR1cm4gbnVsbDtcbiAgICBpZiAoY29udHJvbCAmJiBjb250cm9sLnZhbHVlICE9PSBmYWxzZSkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHtcbiAgICAgIGludmFsaWRUcnVlOiB0cnVlLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFBhc3N3b3JkTWF0Y2hWYWxpZGF0aW9uIHtcbiAgc3RhdGljIGRvKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkge1xuICAgIGlmICghY29udHJvbC5wYXJlbnQgfHwgIWNvbnRyb2wpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHsgcGFyZW50IH0gPSBjb250cm9sO1xuICAgIGNvbnN0IHBhc3N3b3JkID0gcGFyZW50Py5nZXQoJ3Bhc3N3b3JkJyk/LnZhbHVlO1xuICAgIGNvbnN0IHBhc3N3b3JkQ29uZmlybSA9IHBhcmVudD8uZ2V0KCdwYXNzd29yZENvbmZpcm0nKT8udmFsdWU7XG4gICAgaWYgKCFwYXNzd29yZCB8fCAhcGFzc3dvcmRDb25maXJtKSByZXR1cm4gbnVsbDtcbiAgICBpZiAocGFzc3dvcmQgPT09IHBhc3N3b3JkQ29uZmlybSkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhc3N3b3Jkc05vdE1hdGNoaW5nOiB0cnVlLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFVybFZhbGlkYXRvciB7XG4gIHN0YXRpYyBkbyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpIHtcbiAgICBpZiAoIWNvbnRyb2wucGFyZW50IHx8ICFjb250cm9sKSByZXR1cm4gbnVsbDtcbiAgICBpZiAoY29udHJvbCAmJiBjb250cm9sLnZhbHVlKSB7XG4gICAgICBpZiAoIU1vbmtleUVjeFV0aWxzLmlzVmFsaWRVcmwoY29udHJvbC52YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBpbnZhbGlkVXJsOiB0cnVlLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ3VzdG9tRGF0ZXNTdGFydFZhbGlkYXRvciB7XG4gIHN0YXRpYyBkbyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpIHtcbiAgICBpZiAoIWNvbnRyb2wucGFyZW50IHx8ICFjb250cm9sKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCB7IHBhcmVudCB9ID0gY29udHJvbDtcblxuICAgIGNvbnN0IHZhbHVlU3RhcnQgPSBwYXJlbnQ/LmdldCgnZGF0ZVN0YXJ0Jyk/LnZhbHVlO1xuICAgIGNvbnN0IHZhbHVlRW5kID0gcGFyZW50Py5nZXQoJ2RhdGVFbmQnKT8udmFsdWU7XG4gICAgbGV0IGRhdGVTdGFydDogRGF0ZSB8IG51bGwgPSBudWxsO1xuICAgIGxldCBkYXRlRW5kOiBEYXRlIHwgbnVsbCA9IG51bGw7XG4gICAgaWYgKHZhbHVlU3RhcnQpIHtcbiAgICAgIGRhdGVTdGFydCA9IG5ldyBEYXRlKHZhbHVlU3RhcnQpO1xuICAgIH1cbiAgICBpZiAodmFsdWVFbmQpIHtcbiAgICAgIGRhdGVFbmQgPSBuZXcgRGF0ZSh2YWx1ZUVuZCk7XG4gICAgfVxuXG4gICAgaWYgKCFkYXRlU3RhcnQgfHwgIWRhdGVFbmQpIHJldHVybiBudWxsO1xuICAgIGlmIChkYXRlU3RhcnQgPiBkYXRlRW5kKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBkYXRlU3RhcnRNdXN0QmVMZXNzVGhhbkFuZDogdHJ1ZSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDdXN0b21EYXRlc0VuZFZhbGlkYXRvciB7XG4gIHN0YXRpYyBkbyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpIHtcbiAgICBpZiAoIWNvbnRyb2wucGFyZW50IHx8ICFjb250cm9sKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCB7IHBhcmVudCB9ID0gY29udHJvbDtcblxuICAgIGNvbnN0IHZhbHVlU3RhcnQgPSBwYXJlbnQ/LmdldCgnZGF0ZVN0YXJ0Jyk/LnZhbHVlO1xuICAgIGNvbnN0IHZhbHVlRW5kID0gcGFyZW50Py5nZXQoJ2RhdGVFbmQnKT8udmFsdWU7XG4gICAgbGV0IGRhdGVTdGFydDogRGF0ZSB8IG51bGwgPSBudWxsO1xuICAgIGxldCBkYXRlRW5kOiBEYXRlIHwgbnVsbCA9IG51bGw7XG4gICAgaWYgKHZhbHVlU3RhcnQpIHtcbiAgICAgIGRhdGVTdGFydCA9IG5ldyBEYXRlKHZhbHVlU3RhcnQpO1xuICAgIH1cbiAgICBpZiAodmFsdWVFbmQpIHtcbiAgICAgIGRhdGVFbmQgPSBuZXcgRGF0ZSh2YWx1ZUVuZCk7XG4gICAgfVxuXG4gICAgaWYgKCFkYXRlRW5kIHx8ICFkYXRlU3RhcnQpIHJldHVybiBudWxsO1xuICAgIGlmIChkYXRlRW5kIDwgZGF0ZVN0YXJ0KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBkYXRlRW5kTXVzdEJlR3JlYXRlclRoYW5TdGFydDogdHJ1ZSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBVbmxvY2tSZWdpc3RlckJ1eWVyVmFsaWRhdG9yIHtcbiAgc3RhdGljIGRvKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkge1xuICAgIGlmICghY29udHJvbC5wYXJlbnQgfHwgIWNvbnRyb2wpIHJldHVybiBudWxsO1xuXG4gICAgaWYgKGNvbnRyb2wgJiYgY29udHJvbC52YWx1ZSAhPT0gJyNNT05LRVlCVVlFUicpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGludmFsaWRVbmxvY2tSZWdpc3RlcjogdHJ1ZSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFVubG9ja1JlZ2lzdGVyU3BvbnNvclZhbGlkYXRvciB7XG4gIHN0YXRpYyBkbyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpIHtcbiAgICBpZiAoIWNvbnRyb2wucGFyZW50IHx8ICFjb250cm9sKSByZXR1cm4gbnVsbDtcblxuICAgIGlmIChjb250cm9sICYmIGNvbnRyb2wudmFsdWUgIT09ICcjTU9OS0VZU1BPTlNPUicpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGludmFsaWRVbmxvY2tSZWdpc3RlcjogdHJ1ZSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIERhdGVSYW5nZVZhbGlkYXRvciB7XG4gIHN0YXRpYyBkbyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpIHtcbiAgICBpZiAoIWNvbnRyb2wucGFyZW50IHx8ICFjb250cm9sKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBkYXRlcyA9IGNvbnRyb2w/LnBhcmVudD8uZ2V0KCdkYXRlcycpPy52YWx1ZTtcblxuICAgIGlmIChcbiAgICAgIGRhdGVzICYmXG4gICAgICAoIU1vbmtleUVjeFV0aWxzLnBlcnNpc3ROdWxsRW1wdHlVbmRlZmluZWQoZGF0ZXMuc3RhcnREYXRlKSB8fFxuICAgICAgICAhTW9ua2V5RWN4VXRpbHMucGVyc2lzdE51bGxFbXB0eVVuZGVmaW5lZChkYXRlcy5lbmREYXRlKSlcbiAgICApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGludmFsaWREYXRlUmFuZ2U6IHRydWUsXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG59XG4iXX0=
@@ -1,208 +0,0 @@
1
- import * as moment_ from 'moment';
2
- import { MonkeyEcxUtils } from './utils';
3
- const moment = moment_;
4
- const EMAIL_REGEXP = /^[\w-.]+@([\w-]+\.)+[\w-]{1,64}$/;
5
- function isEmptyInputValue(value) {
6
- return value == null || value.length === 0;
7
- }
8
- export function emailValidator(control) {
9
- if (!control.parent || !control || isEmptyInputValue(control.value)) {
10
- return null;
11
- }
12
- const test = EMAIL_REGEXP.test(control.value);
13
- if (test)
14
- return null;
15
- return {
16
- email: true,
17
- };
18
- }
19
- export function dateRangeValidator(control) {
20
- if (!control.parent || !control || isEmptyInputValue(control.value)) {
21
- return null;
22
- }
23
- const dates = control?.parent?.get('dates')?.value;
24
- if (dates &&
25
- (!MonkeyEcxUtils.persistNullEmptyUndefined(dates?.startDate) ||
26
- !MonkeyEcxUtils.persistNullEmptyUndefined(dates?.endDate))) {
27
- return {
28
- dateRange: true,
29
- };
30
- }
31
- return null;
32
- }
33
- export function registerValidator(control, type) {
34
- if (!control.parent || !control || isEmptyInputValue(control.value)) {
35
- return null;
36
- }
37
- if (control && control.value !== `#MONKEY${type}`.toUpperCase()) {
38
- return {
39
- invalidUnlockRegister: true,
40
- };
41
- }
42
- return null;
43
- }
44
- export function dateStartEndValidator(control) {
45
- if (!control.parent || !control) {
46
- return null;
47
- }
48
- const { parent } = control;
49
- const valueStart = parent?.get('dateStart')?.value;
50
- const valueEnd = parent?.get('dateEnd')?.value;
51
- let dateStart = null;
52
- let dateEnd = null;
53
- if (valueStart) {
54
- dateStart = new Date(valueStart);
55
- }
56
- if (valueEnd) {
57
- dateEnd = new Date(valueEnd);
58
- }
59
- if (!dateEnd || !dateStart)
60
- return null;
61
- if (dateStart > dateEnd) {
62
- return {
63
- dateStartMustBeLessThanAnd: true,
64
- };
65
- }
66
- return null;
67
- }
68
- export function urlValidator(control) {
69
- if (!control.parent || !control || isEmptyInputValue(control.value))
70
- return null;
71
- if (!MonkeyEcxUtils.isValidUrl(control.value)) {
72
- return {
73
- url: true,
74
- };
75
- }
76
- return null;
77
- }
78
- export function passwordConfirmValidator(control) {
79
- if (!control.parent || !control || isEmptyInputValue(control.value))
80
- return null;
81
- const { parent } = control;
82
- const password = parent?.get('password')?.value;
83
- const passwordConfirm = parent?.get('passwordConfirm')?.value;
84
- if (!password || !passwordConfirm)
85
- return null;
86
- if (password === passwordConfirm)
87
- return null;
88
- return {
89
- passwordsNotMatching: true,
90
- };
91
- }
92
- export function trueValidator(control) {
93
- if (!control.parent || !control)
94
- return null;
95
- if (control && control.value !== false)
96
- return null;
97
- return {
98
- invalidTrue: true,
99
- };
100
- }
101
- export function comboValidator(control) {
102
- if (!control.parent || !control)
103
- return null;
104
- if (control && control.value !== '0')
105
- return null;
106
- return {
107
- invalidCombo: true,
108
- };
109
- }
110
- export function zipCodeValidator(control) {
111
- if (!control.parent || !control || isEmptyInputValue(control.value))
112
- return null;
113
- if (control && control.value) {
114
- if (!MonkeyEcxUtils.isValidZipCode(control.value)) {
115
- return {
116
- invalidZipCode: true,
117
- };
118
- }
119
- }
120
- return null;
121
- }
122
- export function documentValidator(control, country) {
123
- if (!control.parent || !control || isEmptyInputValue(control.value))
124
- return null;
125
- if (country === 'BR') {
126
- if (!MonkeyEcxUtils.isCPFCNPJValid(control.value)) {
127
- return {
128
- invalidCpfCnpj: true,
129
- };
130
- }
131
- }
132
- else if (country === 'CL') {
133
- if (!MonkeyEcxUtils.isValidRUT(control.value)) {
134
- return {
135
- invalidCpfCnpj: true,
136
- };
137
- }
138
- }
139
- return null;
140
- }
141
- export function dateValidator(control) {
142
- if (!control.parent || !control || isEmptyInputValue(control.value))
143
- return null;
144
- const dateFormat = 'MM-DD-YYYY';
145
- if (!moment
146
- .default(moment.default(control.value).format(dateFormat), ['DD/MM/YYYY', 'MM-DD-YYYY', 'YYYY-MM-DD'], true)
147
- .isValid()) {
148
- return {
149
- invalidDate: true,
150
- };
151
- }
152
- return null;
153
- }
154
- export function valueGreaterThanZero(control) {
155
- if (!control.parent || !control || isEmptyInputValue(control.value))
156
- return null;
157
- if (control && `${control?.value}` === '0') {
158
- return {
159
- invalidValueGreaterThanZero: true,
160
- };
161
- }
162
- return null;
163
- }
164
- export class Validators {
165
- static email(control) {
166
- return emailValidator(control);
167
- }
168
- static dateRange(control) {
169
- return dateRangeValidator(control);
170
- }
171
- static unlockSponsorRegister(control) {
172
- return registerValidator(control, 'sponsor');
173
- }
174
- static unlockBuyerRegister(control) {
175
- return registerValidator(control, 'buyer');
176
- }
177
- static dateStartEnd(control) {
178
- return dateStartEndValidator(control);
179
- }
180
- static url(control) {
181
- return urlValidator(control);
182
- }
183
- static passwordConfirm(control) {
184
- return passwordConfirmValidator(control);
185
- }
186
- static true(control) {
187
- return trueValidator(control);
188
- }
189
- static combo(control) {
190
- return comboValidator(control);
191
- }
192
- static zipCode(control) {
193
- return zipCodeValidator(control);
194
- }
195
- static documentBR(control) {
196
- return documentValidator(control, 'BR');
197
- }
198
- static documentCL(control) {
199
- return documentValidator(control, 'CL');
200
- }
201
- static date(control) {
202
- return dateValidator(control);
203
- }
204
- static greaterThanZero(control) {
205
- return valueGreaterThanZero(control);
206
- }
207
- }
208
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1mcm9udC1jb3JlL3NyYy9saWIvY29yZS91dGlscy92YWxpZGF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxPQUFPLE1BQU0sUUFBUSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFekMsTUFBTSxNQUFNLEdBQVEsT0FBTyxDQUFDO0FBRTVCLE1BQU0sWUFBWSxHQUFHLGtDQUFrQyxDQUFDO0FBRXhELFNBQVMsaUJBQWlCLENBQUMsS0FBVTtJQUNuQyxPQUFPLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBd0I7SUFDckQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxPQUFPLElBQUksaUJBQWlCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ25FLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFDRCxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QyxJQUFJLElBQUk7UUFBRSxPQUFPLElBQUksQ0FBQztJQUN0QixPQUFPO1FBQ0wsS0FBSyxFQUFFLElBQUk7S0FDWixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxPQUF3QjtJQUN6RCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLE9BQU8sSUFBSSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDbkUsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVELE1BQU0sS0FBSyxHQUFHLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssQ0FBQztJQUNuRCxJQUNFLEtBQUs7UUFDTCxDQUFDLENBQUMsY0FBYyxDQUFDLHlCQUF5QixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUM7WUFDMUQsQ0FBQyxjQUFjLENBQUMseUJBQXlCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQzVEO1FBQ0EsT0FBTztZQUNMLFNBQVMsRUFBRSxJQUFJO1NBQ2hCLENBQUM7S0FDSDtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxPQUF3QixFQUFFLElBQVk7SUFDdEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxPQUFPLElBQUksaUJBQWlCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ25FLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLFVBQVUsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLEVBQUU7UUFDL0QsT0FBTztZQUNMLHFCQUFxQixFQUFFLElBQUk7U0FDNUIsQ0FBQztLQUNIO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUFDLE9BQXdCO0lBQzVELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFO1FBQy9CLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBRTNCLE1BQU0sVUFBVSxHQUFHLE1BQU0sRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsS0FBSyxDQUFDO0lBQ25ELE1BQU0sUUFBUSxHQUFHLE1BQU0sRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsS0FBSyxDQUFDO0lBQy9DLElBQUksU0FBUyxHQUFnQixJQUFJLENBQUM7SUFDbEMsSUFBSSxPQUFPLEdBQWdCLElBQUksQ0FBQztJQUNoQyxJQUFJLFVBQVUsRUFBRTtRQUNkLFNBQVMsR0FBRyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztLQUNsQztJQUNELElBQUksUUFBUSxFQUFFO1FBQ1osT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBQzlCO0lBRUQsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLFNBQVM7UUFBRSxPQUFPLElBQUksQ0FBQztJQUN4QyxJQUFJLFNBQVMsR0FBRyxPQUFPLEVBQUU7UUFDdkIsT0FBTztZQUNMLDBCQUEwQixFQUFFLElBQUk7U0FDakMsQ0FBQztLQUNIO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxPQUF3QjtJQUNuRCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLE9BQU8sSUFBSSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFFakYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQzdDLE9BQU87WUFDTCxHQUFHLEVBQUUsSUFBSTtTQUNWLENBQUM7S0FDSDtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxPQUF3QjtJQUMvRCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLE9BQU8sSUFBSSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFFakYsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUMzQixNQUFNLFFBQVEsR0FBRyxNQUFNLEVBQUUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssQ0FBQztJQUNoRCxNQUFNLGVBQWUsR0FBRyxNQUFNLEVBQUUsR0FBRyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsS0FBSyxDQUFDO0lBQzlELElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxlQUFlO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDL0MsSUFBSSxRQUFRLEtBQUssZUFBZTtRQUFFLE9BQU8sSUFBSSxDQUFDO0lBRTlDLE9BQU87UUFDTCxvQkFBb0IsRUFBRSxJQUFJO0tBQzNCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxPQUF3QjtJQUNwRCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLE9BQU87UUFBRSxPQUFPLElBQUksQ0FBQztJQUM3QyxJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLEtBQUs7UUFBRSxPQUFPLElBQUksQ0FBQztJQUVwRCxPQUFPO1FBQ0wsV0FBVyxFQUFFLElBQUk7S0FDbEIsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQXdCO0lBQ3JELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsT0FBTztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQzdDLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssR0FBRztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBRWxELE9BQU87UUFDTCxZQUFZLEVBQUUsSUFBSTtLQUNuQixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxPQUF3QjtJQUN2RCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLE9BQU8sSUFBSSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDakYsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRTtRQUM1QixJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDakQsT0FBTztnQkFDTCxjQUFjLEVBQUUsSUFBSTthQUNyQixDQUFDO1NBQ0g7S0FDRjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsT0FBd0IsRUFDeEIsT0FBZTtJQUVmLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsT0FBTyxJQUFJLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFBRSxPQUFPLElBQUksQ0FBQztJQUNqRixJQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUU7UUFDcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2pELE9BQU87Z0JBQ0wsY0FBYyxFQUFFLElBQUk7YUFDckIsQ0FBQztTQUNIO0tBQ0Y7U0FBTSxJQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUU7UUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzdDLE9BQU87Z0JBQ0wsY0FBYyxFQUFFLElBQUk7YUFDckIsQ0FBQztTQUNIO0tBQ0Y7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLE9BQXdCO0lBQ3BELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsT0FBTyxJQUFJLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFBRSxPQUFPLElBQUksQ0FBQztJQUVqRixNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUM7SUFDaEMsSUFDRSxDQUFDLE1BQU07U0FDSixPQUFPLENBQ04sTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUNoRCxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxDQUFDLEVBQzFDLElBQUksQ0FDTDtTQUNBLE9BQU8sRUFBRSxFQUNaO1FBQ0EsT0FBTztZQUNMLFdBQVcsRUFBRSxJQUFJO1NBQ2xCLENBQUM7S0FDSDtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxPQUF3QjtJQUMzRCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLE9BQU8sSUFBSSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFFakYsSUFBSSxPQUFPLElBQUksR0FBRyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssR0FBRyxFQUFFO1FBQzFDLE9BQU87WUFDTCwyQkFBMkIsRUFBRSxJQUFJO1NBQ2xDLENBQUM7S0FDSDtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELE1BQU0sT0FBTyxVQUFVO0lBQ3JCLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBd0I7UUFDbkMsT0FBTyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBd0I7UUFDdkMsT0FBTyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsTUFBTSxDQUFDLHFCQUFxQixDQUFDLE9BQXdCO1FBQ25ELE9BQU8saUJBQWlCLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxNQUFNLENBQUMsbUJBQW1CLENBQUMsT0FBd0I7UUFDakQsT0FBTyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBd0I7UUFDMUMsT0FBTyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUF3QjtRQUNqQyxPQUFPLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsTUFBTSxDQUFDLGVBQWUsQ0FBQyxPQUF3QjtRQUM3QyxPQUFPLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQXdCO1FBQ2xDLE9BQU8sYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQXdCO1FBQ25DLE9BQU8sY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQXdCO1FBQ3JDLE9BQU8sZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBd0I7UUFDeEMsT0FBTyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBd0I7UUFDeEMsT0FBTyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBd0I7UUFDbEMsT0FBTyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxlQUFlLENBQUMsT0FBd0I7UUFDN0MsT0FBTyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBNb25rZXlFY3hVdGlscyB9IGZyb20gJy4vdXRpbHMnO1xuXG5jb25zdCBtb21lbnQ6IGFueSA9IG1vbWVudF87XG5cbmNvbnN0IEVNQUlMX1JFR0VYUCA9IC9eW1xcdy0uXStAKFtcXHctXStcXC4pK1tcXHctXXsxLDY0fSQvO1xuXG5mdW5jdGlvbiBpc0VtcHR5SW5wdXRWYWx1ZSh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gIHJldHVybiB2YWx1ZSA9PSBudWxsIHx8IHZhbHVlLmxlbmd0aCA9PT0gMDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVtYWlsVmFsaWRhdG9yKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgaWYgKCFjb250cm9sLnBhcmVudCB8fCAhY29udHJvbCB8fCBpc0VtcHR5SW5wdXRWYWx1ZShjb250cm9sLnZhbHVlKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGNvbnN0IHRlc3QgPSBFTUFJTF9SRUdFWFAudGVzdChjb250cm9sLnZhbHVlKTtcbiAgaWYgKHRlc3QpIHJldHVybiBudWxsO1xuICByZXR1cm4ge1xuICAgIGVtYWlsOiB0cnVlLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGF0ZVJhbmdlVmFsaWRhdG9yKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgaWYgKCFjb250cm9sLnBhcmVudCB8fCAhY29udHJvbCB8fCBpc0VtcHR5SW5wdXRWYWx1ZShjb250cm9sLnZhbHVlKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgZGF0ZXMgPSBjb250cm9sPy5wYXJlbnQ/LmdldCgnZGF0ZXMnKT8udmFsdWU7XG4gIGlmIChcbiAgICBkYXRlcyAmJlxuICAgICghTW9ua2V5RWN4VXRpbHMucGVyc2lzdE51bGxFbXB0eVVuZGVmaW5lZChkYXRlcz8uc3RhcnREYXRlKSB8fFxuICAgICAgIU1vbmtleUVjeFV0aWxzLnBlcnNpc3ROdWxsRW1wdHlVbmRlZmluZWQoZGF0ZXM/LmVuZERhdGUpKVxuICApIHtcbiAgICByZXR1cm4ge1xuICAgICAgZGF0ZVJhbmdlOiB0cnVlLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyVmFsaWRhdG9yKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgdHlwZTogc3RyaW5nKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICBpZiAoIWNvbnRyb2wucGFyZW50IHx8ICFjb250cm9sIHx8IGlzRW1wdHlJbnB1dFZhbHVlKGNvbnRyb2wudmFsdWUpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAoY29udHJvbCAmJiBjb250cm9sLnZhbHVlICE9PSBgI01PTktFWSR7dHlwZX1gLnRvVXBwZXJDYXNlKCkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaW52YWxpZFVubG9ja1JlZ2lzdGVyOiB0cnVlLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGVTdGFydEVuZFZhbGlkYXRvcihjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gIGlmICghY29udHJvbC5wYXJlbnQgfHwgIWNvbnRyb2wpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IHsgcGFyZW50IH0gPSBjb250cm9sO1xuXG4gIGNvbnN0IHZhbHVlU3RhcnQgPSBwYXJlbnQ/LmdldCgnZGF0ZVN0YXJ0Jyk/LnZhbHVlO1xuICBjb25zdCB2YWx1ZUVuZCA9IHBhcmVudD8uZ2V0KCdkYXRlRW5kJyk/LnZhbHVlO1xuICBsZXQgZGF0ZVN0YXJ0OiBEYXRlIHwgbnVsbCA9IG51bGw7XG4gIGxldCBkYXRlRW5kOiBEYXRlIHwgbnVsbCA9IG51bGw7XG4gIGlmICh2YWx1ZVN0YXJ0KSB7XG4gICAgZGF0ZVN0YXJ0ID0gbmV3IERhdGUodmFsdWVTdGFydCk7XG4gIH1cbiAgaWYgKHZhbHVlRW5kKSB7XG4gICAgZGF0ZUVuZCA9IG5ldyBEYXRlKHZhbHVlRW5kKTtcbiAgfVxuXG4gIGlmICghZGF0ZUVuZCB8fCAhZGF0ZVN0YXJ0KSByZXR1cm4gbnVsbDtcbiAgaWYgKGRhdGVTdGFydCA+IGRhdGVFbmQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZGF0ZVN0YXJ0TXVzdEJlTGVzc1RoYW5BbmQ6IHRydWUsXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXJsVmFsaWRhdG9yKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgaWYgKCFjb250cm9sLnBhcmVudCB8fCAhY29udHJvbCB8fCBpc0VtcHR5SW5wdXRWYWx1ZShjb250cm9sLnZhbHVlKSkgcmV0dXJuIG51bGw7XG5cbiAgaWYgKCFNb25rZXlFY3hVdGlscy5pc1ZhbGlkVXJsKGNvbnRyb2wudmFsdWUpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHVybDogdHJ1ZSxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXNzd29yZENvbmZpcm1WYWxpZGF0b3IoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICBpZiAoIWNvbnRyb2wucGFyZW50IHx8ICFjb250cm9sIHx8IGlzRW1wdHlJbnB1dFZhbHVlKGNvbnRyb2wudmFsdWUpKSByZXR1cm4gbnVsbDtcblxuICBjb25zdCB7IHBhcmVudCB9ID0gY29udHJvbDtcbiAgY29uc3QgcGFzc3dvcmQgPSBwYXJlbnQ/LmdldCgncGFzc3dvcmQnKT8udmFsdWU7XG4gIGNvbnN0IHBhc3N3b3JkQ29uZmlybSA9IHBhcmVudD8uZ2V0KCdwYXNzd29yZENvbmZpcm0nKT8udmFsdWU7XG4gIGlmICghcGFzc3dvcmQgfHwgIXBhc3N3b3JkQ29uZmlybSkgcmV0dXJuIG51bGw7XG4gIGlmIChwYXNzd29yZCA9PT0gcGFzc3dvcmRDb25maXJtKSByZXR1cm4gbnVsbDtcblxuICByZXR1cm4ge1xuICAgIHBhc3N3b3Jkc05vdE1hdGNoaW5nOiB0cnVlLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJ1ZVZhbGlkYXRvcihjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gIGlmICghY29udHJvbC5wYXJlbnQgfHwgIWNvbnRyb2wpIHJldHVybiBudWxsO1xuICBpZiAoY29udHJvbCAmJiBjb250cm9sLnZhbHVlICE9PSBmYWxzZSkgcmV0dXJuIG51bGw7XG5cbiAgcmV0dXJuIHtcbiAgICBpbnZhbGlkVHJ1ZTogdHJ1ZSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbWJvVmFsaWRhdG9yKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgaWYgKCFjb250cm9sLnBhcmVudCB8fCAhY29udHJvbCkgcmV0dXJuIG51bGw7XG4gIGlmIChjb250cm9sICYmIGNvbnRyb2wudmFsdWUgIT09ICcwJykgcmV0dXJuIG51bGw7XG5cbiAgcmV0dXJuIHtcbiAgICBpbnZhbGlkQ29tYm86IHRydWUsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB6aXBDb2RlVmFsaWRhdG9yKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgaWYgKCFjb250cm9sLnBhcmVudCB8fCAhY29udHJvbCB8fCBpc0VtcHR5SW5wdXRWYWx1ZShjb250cm9sLnZhbHVlKSkgcmV0dXJuIG51bGw7XG4gIGlmIChjb250cm9sICYmIGNvbnRyb2wudmFsdWUpIHtcbiAgICBpZiAoIU1vbmtleUVjeFV0aWxzLmlzVmFsaWRaaXBDb2RlKGNvbnRyb2wudmFsdWUpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpbnZhbGlkWmlwQ29kZTogdHJ1ZSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkb2N1bWVudFZhbGlkYXRvcihcbiAgY29udHJvbDogQWJzdHJhY3RDb250cm9sLFxuICBjb3VudHJ5OiBzdHJpbmdcbik6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgaWYgKCFjb250cm9sLnBhcmVudCB8fCAhY29udHJvbCB8fCBpc0VtcHR5SW5wdXRWYWx1ZShjb250cm9sLnZhbHVlKSkgcmV0dXJuIG51bGw7XG4gIGlmIChjb3VudHJ5ID09PSAnQlInKSB7XG4gICAgaWYgKCFNb25rZXlFY3hVdGlscy5pc0NQRkNOUEpWYWxpZChjb250cm9sLnZhbHVlKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaW52YWxpZENwZkNucGo6IHRydWUsXG4gICAgICB9O1xuICAgIH1cbiAgfSBlbHNlIGlmIChjb3VudHJ5ID09PSAnQ0wnKSB7XG4gICAgaWYgKCFNb25rZXlFY3hVdGlscy5pc1ZhbGlkUlVUKGNvbnRyb2wudmFsdWUpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpbnZhbGlkQ3BmQ25wajogdHJ1ZSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYXRlVmFsaWRhdG9yKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgaWYgKCFjb250cm9sLnBhcmVudCB8fCAhY29udHJvbCB8fCBpc0VtcHR5SW5wdXRWYWx1ZShjb250cm9sLnZhbHVlKSkgcmV0dXJuIG51bGw7XG5cbiAgY29uc3QgZGF0ZUZvcm1hdCA9ICdNTS1ERC1ZWVlZJztcbiAgaWYgKFxuICAgICFtb21lbnRcbiAgICAgIC5kZWZhdWx0KFxuICAgICAgICBtb21lbnQuZGVmYXVsdChjb250cm9sLnZhbHVlKS5mb3JtYXQoZGF0ZUZvcm1hdCksXG4gICAgICAgIFsnREQvTU0vWVlZWScsICdNTS1ERC1ZWVlZJywgJ1lZWVktTU0tREQnXSxcbiAgICAgICAgdHJ1ZVxuICAgICAgKVxuICAgICAgLmlzVmFsaWQoKVxuICApIHtcbiAgICByZXR1cm4ge1xuICAgICAgaW52YWxpZERhdGU6IHRydWUsXG4gICAgfTtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlR3JlYXRlclRoYW5aZXJvKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgaWYgKCFjb250cm9sLnBhcmVudCB8fCAhY29udHJvbCB8fCBpc0VtcHR5SW5wdXRWYWx1ZShjb250cm9sLnZhbHVlKSkgcmV0dXJuIG51bGw7XG5cbiAgaWYgKGNvbnRyb2wgJiYgYCR7Y29udHJvbD8udmFsdWV9YCA9PT0gJzAnKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGludmFsaWRWYWx1ZUdyZWF0ZXJUaGFuWmVybzogdHJ1ZSxcbiAgICB9O1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgY2xhc3MgVmFsaWRhdG9ycyB7XG4gIHN0YXRpYyBlbWFpbChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgcmV0dXJuIGVtYWlsVmFsaWRhdG9yKGNvbnRyb2wpO1xuICB9XG5cbiAgc3RhdGljIGRhdGVSYW5nZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgcmV0dXJuIGRhdGVSYW5nZVZhbGlkYXRvcihjb250cm9sKTtcbiAgfVxuXG4gIHN0YXRpYyB1bmxvY2tTcG9uc29yUmVnaXN0ZXIoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIHJldHVybiByZWdpc3RlclZhbGlkYXRvcihjb250cm9sLCAnc3BvbnNvcicpO1xuICB9XG5cbiAgc3RhdGljIHVubG9ja0J1eWVyUmVnaXN0ZXIoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIHJldHVybiByZWdpc3RlclZhbGlkYXRvcihjb250cm9sLCAnYnV5ZXInKTtcbiAgfVxuXG4gIHN0YXRpYyBkYXRlU3RhcnRFbmQoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIHJldHVybiBkYXRlU3RhcnRFbmRWYWxpZGF0b3IoY29udHJvbCk7XG4gIH1cblxuICBzdGF0aWMgdXJsKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICByZXR1cm4gdXJsVmFsaWRhdG9yKGNvbnRyb2wpO1xuICB9XG5cbiAgc3RhdGljIHBhc3N3b3JkQ29uZmlybShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgcmV0dXJuIHBhc3N3b3JkQ29uZmlybVZhbGlkYXRvcihjb250cm9sKTtcbiAgfVxuXG4gIHN0YXRpYyB0cnVlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICByZXR1cm4gdHJ1ZVZhbGlkYXRvcihjb250cm9sKTtcbiAgfVxuXG4gIHN0YXRpYyBjb21ibyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgcmV0dXJuIGNvbWJvVmFsaWRhdG9yKGNvbnRyb2wpO1xuICB9XG5cbiAgc3RhdGljIHppcENvZGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIHJldHVybiB6aXBDb2RlVmFsaWRhdG9yKGNvbnRyb2wpO1xuICB9XG5cbiAgc3RhdGljIGRvY3VtZW50QlIoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIHJldHVybiBkb2N1bWVudFZhbGlkYXRvcihjb250cm9sLCAnQlInKTtcbiAgfVxuXG4gIHN0YXRpYyBkb2N1bWVudENMKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICByZXR1cm4gZG9jdW1lbnRWYWxpZGF0b3IoY29udHJvbCwgJ0NMJyk7XG4gIH1cblxuICBzdGF0aWMgZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgcmV0dXJuIGRhdGVWYWxpZGF0b3IoY29udHJvbCk7XG4gIH1cblxuICBzdGF0aWMgZ3JlYXRlclRoYW5aZXJvKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICByZXR1cm4gdmFsdWVHcmVhdGVyVGhhblplcm8oY29udHJvbCk7XG4gIH1cbn1cbiJdfQ==