monkey-front-core 0.0.98 → 0.0.102

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