monkey-front-core 0.0.263 → 0.0.264

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 (325) hide show
  1. package/esm2020/lib/components/alerts/alerts.component.mjs +35 -35
  2. package/esm2020/lib/components/alerts/alerts.module.mjs +21 -21
  3. package/esm2020/lib/components/alerts/index.mjs +2 -2
  4. package/esm2020/lib/components/closed-to-maintenance/closed-to-maintenance.component.mjs +29 -29
  5. package/esm2020/lib/components/closed-to-maintenance/closed-to-maintenance.module.mjs +43 -43
  6. package/esm2020/lib/components/closed-to-maintenance/index.mjs +2 -2
  7. package/esm2020/lib/components/index.mjs +4 -4
  8. package/esm2020/lib/components/progress-bar/index.mjs +3 -3
  9. package/esm2020/lib/components/progress-bar/progress-bar.component.mjs +23 -23
  10. package/esm2020/lib/components/progress-bar/progress-bar.module.mjs +18 -18
  11. package/esm2020/lib/components/progress-bar/progress-bar.service.mjs +50 -50
  12. package/esm2020/lib/components/version-changed/index.mjs +2 -2
  13. package/esm2020/lib/components/version-changed/version-changed.component.mjs +24 -24
  14. package/esm2020/lib/components/version-changed/version-changed.module.mjs +39 -39
  15. package/esm2020/lib/core/decorators/index.mjs +5 -5
  16. package/esm2020/lib/core/decorators/monkeyecx-charts-decorators.mjs +40 -40
  17. package/esm2020/lib/core/decorators/monkeyecx-decorators.mjs +110 -110
  18. package/esm2020/lib/core/decorators/monkeyecx-download-decorators.mjs +25 -25
  19. package/esm2020/lib/core/decorators/monkeyecx-upload-decorators.mjs +25 -25
  20. package/esm2020/lib/core/directives/index.mjs +12 -12
  21. package/esm2020/lib/core/directives/monkeyecx-directives-module.mjs +73 -73
  22. package/esm2020/lib/core/directives/monkeyecx-drag-drop.mjs +57 -57
  23. package/esm2020/lib/core/directives/monkeyecx-feature-by-program-directive.mjs +50 -50
  24. package/esm2020/lib/core/directives/monkeyecx-feature-directive.mjs +68 -68
  25. package/esm2020/lib/core/directives/monkeyecx-format-currency.mjs +44 -44
  26. package/esm2020/lib/core/directives/monkeyecx-format-upper.mjs +67 -67
  27. package/esm2020/lib/core/directives/monkeyecx-only-alpha-numeric-directive.mjs +28 -28
  28. package/esm2020/lib/core/directives/monkeyecx-only-number-directive.mjs +28 -28
  29. package/esm2020/lib/core/directives/monkeyecx-popover-options.directive.mjs +39 -39
  30. package/esm2020/lib/core/directives/monkeyecx-popover.directive.mjs +212 -212
  31. package/esm2020/lib/core/directives/monkeyecx-security-directive.mjs +69 -69
  32. package/esm2020/lib/core/directives/monkeyecx-tooltip-directive.mjs +123 -123
  33. package/esm2020/lib/core/index.mjs +9 -9
  34. package/esm2020/lib/core/interceptors/index.mjs +5 -5
  35. package/esm2020/lib/core/interceptors/monkeyecx-http-config-error.interceptor.mjs +39 -39
  36. package/esm2020/lib/core/interceptors/monkeyecx-http-config-header.interceptor.mjs +60 -60
  37. package/esm2020/lib/core/interceptors/monkeyecx-http-config-interceptor.module.mjs +47 -47
  38. package/esm2020/lib/core/interceptors/monkeyecx-http-config-loading-in-progress.interceptor.mjs +43 -43
  39. package/esm2020/lib/core/interceptors/monkeyecx-http-config-queue.interceptor.mjs +37 -37
  40. package/esm2020/lib/core/interfaces/index.mjs +29 -29
  41. package/esm2020/lib/core/interfaces/monkeyecx-auth-credentials.mjs +1 -1
  42. package/esm2020/lib/core/interfaces/monkeyecx-company-pendencies.mjs +1 -1
  43. package/esm2020/lib/core/interfaces/monkeyecx-company.mjs +1 -1
  44. package/esm2020/lib/core/interfaces/monkeyecx-config-boostrap.mjs +1 -1
  45. package/esm2020/lib/core/interfaces/monkeyecx-config.mjs +1 -1
  46. package/esm2020/lib/core/interfaces/monkeyecx-country-security.mjs +1 -1
  47. package/esm2020/lib/core/interfaces/monkeyecx-error-response.mjs +1 -1
  48. package/esm2020/lib/core/interfaces/monkeyecx-filter.mjs +1 -1
  49. package/esm2020/lib/core/interfaces/monkeyecx-handled-error-response.mjs +1 -1
  50. package/esm2020/lib/core/interfaces/monkeyecx-header-credentials.mjs +1 -1
  51. package/esm2020/lib/core/interfaces/monkeyecx-intercom-options.mjs +1 -1
  52. package/esm2020/lib/core/interfaces/monkeyecx-me-credentials.mjs +1 -1
  53. package/esm2020/lib/core/interfaces/monkeyecx-navigation.mjs +1 -1
  54. package/esm2020/lib/core/interfaces/monkeyecx-program.mjs +2 -2
  55. package/esm2020/lib/core/interfaces/monkeyecx-releases.mjs +1 -1
  56. package/esm2020/lib/core/interfaces/monkeyecx-request-in-progress.mjs +1 -1
  57. package/esm2020/lib/core/interfaces/monkeyecx-request-paged.mjs +1 -1
  58. package/esm2020/lib/core/interfaces/monkeyecx-response-links.mjs +1 -1
  59. package/esm2020/lib/core/interfaces/monkeyecx-response-paged.mjs +1 -1
  60. package/esm2020/lib/core/interfaces/monkeyecx-saved-state.mjs +1 -1
  61. package/esm2020/lib/core/interfaces/monkeyecx-scroll-options.mjs +1 -1
  62. package/esm2020/lib/core/interfaces/monkeyecx-service-credentials.mjs +1 -1
  63. package/esm2020/lib/core/interfaces/monkeyecx-support-options.mjs +1 -1
  64. package/esm2020/lib/core/interfaces/monkeyecx-token-credentials.mjs +2 -2
  65. package/esm2020/lib/core/interfaces/monkeyecx-translate-options.mjs +1 -1
  66. package/esm2020/lib/core/interfaces/request-download/index.mjs +3 -3
  67. package/esm2020/lib/core/interfaces/request-download/monkeyecx-request-download.mjs +1 -1
  68. package/esm2020/lib/core/interfaces/request-download/monkeyecx-request-downloaded.mjs +1 -1
  69. package/esm2020/lib/core/interfaces/request-download/monkeyecx-request-item-download.mjs +1 -1
  70. package/esm2020/lib/core/interfaces/request-queue/index.mjs +3 -3
  71. package/esm2020/lib/core/interfaces/request-queue/monkeyecx-request-item-queue.mjs +1 -1
  72. package/esm2020/lib/core/interfaces/request-queue/monkeyecx-request-progress-queue.mjs +1 -1
  73. package/esm2020/lib/core/interfaces/request-queue/monkeyecx-request-queue.mjs +1 -1
  74. package/esm2020/lib/core/interfaces/request-upload/index.mjs +2 -2
  75. package/esm2020/lib/core/interfaces/request-upload/monkeyecx-request-item-upload.mjs +1 -1
  76. package/esm2020/lib/core/interfaces/request-upload/monkeyecx-request-upload.mjs +1 -1
  77. package/esm2020/lib/core/interfaces/schedules/index.mjs +1 -1
  78. package/esm2020/lib/core/interfaces/schedules/monkeyecx-request-schedule.mjs +1 -1
  79. package/esm2020/lib/core/model/index.mjs +1 -1
  80. package/esm2020/lib/core/model/monkeyecx-model.mjs +25 -25
  81. package/esm2020/lib/core/pipes/index.mjs +20 -20
  82. package/esm2020/lib/core/pipes/monkeyecx-blob-secure.mjs +26 -26
  83. package/esm2020/lib/core/pipes/monkeyecx-display-first-name.mjs +19 -19
  84. package/esm2020/lib/core/pipes/monkeyecx-display-initials.mjs +21 -21
  85. package/esm2020/lib/core/pipes/monkeyecx-format-address.mjs +20 -20
  86. package/esm2020/lib/core/pipes/monkeyecx-format-beautify-json.mjs +38 -38
  87. package/esm2020/lib/core/pipes/monkeyecx-format-currency.mjs +27 -27
  88. package/esm2020/lib/core/pipes/monkeyecx-format-date-group.mjs +45 -45
  89. package/esm2020/lib/core/pipes/monkeyecx-format-date-timelapse.mjs +32 -32
  90. package/esm2020/lib/core/pipes/monkeyecx-format-date-unix-timelapse.mjs +36 -36
  91. package/esm2020/lib/core/pipes/monkeyecx-format-document.mjs +19 -19
  92. package/esm2020/lib/core/pipes/monkeyecx-format-number.mjs +20 -20
  93. package/esm2020/lib/core/pipes/monkeyecx-format-phone.mjs +42 -42
  94. package/esm2020/lib/core/pipes/monkeyecx-format-size.mjs +20 -20
  95. package/esm2020/lib/core/pipes/monkeyecx-format-tax.mjs +23 -23
  96. package/esm2020/lib/core/pipes/monkeyecx-format-type-document.mjs +19 -19
  97. package/esm2020/lib/core/pipes/monkeyecx-format-value.mjs +19 -19
  98. package/esm2020/lib/core/pipes/monkeyecx-format-zipcode.mjs +19 -19
  99. package/esm2020/lib/core/pipes/monkeyecx-pipes.module.mjs +112 -112
  100. package/esm2020/lib/core/pipes/monkeyecx-text-truncate.mjs +23 -23
  101. package/esm2020/lib/core/pipes/monkeyecx-truncate-qtd.mjs +16 -16
  102. package/esm2020/lib/core/services/alerts/index.mjs +1 -1
  103. package/esm2020/lib/core/services/alerts/monkeyecx-alerts.service.mjs +42 -42
  104. package/esm2020/lib/core/services/auth/index.mjs +4 -4
  105. package/esm2020/lib/core/services/auth/monkeyecx-auth-guard-company.service.mjs +28 -28
  106. package/esm2020/lib/core/services/auth/monkeyecx-auth-guard-login.service.mjs +27 -27
  107. package/esm2020/lib/core/services/auth/monkeyecx-auth-guard.service.mjs +26 -26
  108. package/esm2020/lib/core/services/auth/monkeyecx-authentication.service.mjs +69 -69
  109. package/esm2020/lib/core/services/commons/index.mjs +1 -1
  110. package/esm2020/lib/core/services/commons/monkeyecx-commons.service.mjs +404 -404
  111. package/esm2020/lib/core/services/config/monkeyecx-alerts-config.service.mjs +40 -40
  112. package/esm2020/lib/core/services/config/monkeyecx-config.module.mjs +28 -28
  113. package/esm2020/lib/core/services/config/monkeyecx-config.service.mjs +111 -111
  114. package/esm2020/lib/core/services/config/monkeyecx-error-config.service.mjs +85 -85
  115. package/esm2020/lib/core/services/config/monkeyecx-feature-toggle.service.mjs +67 -67
  116. package/esm2020/lib/core/services/config/monkeyecx-ga-config.service.mjs +57 -57
  117. package/esm2020/lib/core/services/config/monkeyecx-i18n-config.service.mjs +92 -92
  118. package/esm2020/lib/core/services/config/monkeyecx-logs-config.service.mjs +34 -34
  119. package/esm2020/lib/core/services/config/monkeyecx-maintenance-config.service.mjs +37 -37
  120. package/esm2020/lib/core/services/config/monkeyecx-security-console-config.service.mjs +42 -42
  121. package/esm2020/lib/core/services/config/monkeyecx-service-worker-config.service.mjs +53 -53
  122. package/esm2020/lib/core/services/error/index.mjs +4 -4
  123. package/esm2020/lib/core/services/error/monkeyecx-error-handling.module.mjs +27 -27
  124. package/esm2020/lib/core/services/error/monkeyecx-error-handling.service.mjs +37 -37
  125. package/esm2020/lib/core/services/error/monkeyecx-http-error-handling.service.mjs +135 -135
  126. package/esm2020/lib/core/services/error/monkeyecx-others-errors-handling.service.mjs +29 -29
  127. package/esm2020/lib/core/services/index.mjs +23 -23
  128. package/esm2020/lib/core/services/logged/index.mjs +1 -1
  129. package/esm2020/lib/core/services/logged/monkeyecx-logged-handling.service.mjs +40 -40
  130. package/esm2020/lib/core/services/monkeyecx-handling.service.mjs +50 -50
  131. package/esm2020/lib/core/services/monkeyecx-service.service.mjs +104 -104
  132. package/esm2020/lib/core/services/pagination/index.mjs +1 -1
  133. package/esm2020/lib/core/services/pagination/monkeyecx-pagination.service.mjs +29 -29
  134. package/esm2020/lib/core/services/request-download/index.mjs +2 -2
  135. package/esm2020/lib/core/services/request-download/monkeyecx-request-download-handling.service.mjs +93 -93
  136. package/esm2020/lib/core/services/request-download/monkeyecx-request-downloaded-handling.service.mjs +61 -61
  137. package/esm2020/lib/core/services/request-paged/index.mjs +1 -1
  138. package/esm2020/lib/core/services/request-paged/monkeyecx-request-request-paged-handling.mjs +42 -42
  139. package/esm2020/lib/core/services/request-queue/index.mjs +2 -2
  140. package/esm2020/lib/core/services/request-queue/monkeyecx-request-queue-handling.service.mjs +114 -114
  141. package/esm2020/lib/core/services/request-queue/monkeyecx-request-queue-modal-handling.service.mjs +119 -119
  142. package/esm2020/lib/core/services/routes/index.mjs +1 -1
  143. package/esm2020/lib/core/services/routes/monkeyecx-dicovery-params.service.mjs +54 -54
  144. package/esm2020/lib/core/services/schedules/index.mjs +1 -1
  145. package/esm2020/lib/core/services/schedules/monkeyecx-request-schedule.service.mjs +188 -188
  146. package/esm2020/lib/core/services/storage/index.mjs +2 -2
  147. package/esm2020/lib/core/services/storage/monkeyecx-cookie-storage.service.mjs +32 -32
  148. package/esm2020/lib/core/services/storage/monkeyecx-token-storage.service.mjs +127 -127
  149. package/esm2020/lib/core/specification-search/index.mjs +1 -1
  150. package/esm2020/lib/core/specification-search/monkeyecx-specification-search.mjs +107 -107
  151. package/esm2020/lib/core/utils/decorators-utils.mjs +39 -39
  152. package/esm2020/lib/core/utils/index.mjs +7 -7
  153. package/esm2020/lib/core/utils/statics.mjs +37 -37
  154. package/esm2020/lib/core/utils/utils.mjs +221 -221
  155. package/esm2020/lib/core/utils/validate-utils.mjs +206 -206
  156. package/esm2020/lib/core/utils/validators.mjs +212 -212
  157. package/esm2020/lib/monkey-front-core.module.mjs +64 -64
  158. package/esm2020/monkey-front-core.mjs +4 -4
  159. package/esm2020/public-api.mjs +6 -6
  160. package/fesm2015/monkey-front-core.mjs +4942 -4942
  161. package/fesm2015/monkey-front-core.mjs.map +1 -1
  162. package/fesm2020/monkey-front-core.mjs +4999 -4999
  163. package/fesm2020/monkey-front-core.mjs.map +1 -1
  164. package/lib/components/alerts/alerts.component.d.ts +16 -16
  165. package/lib/components/alerts/alerts.module.d.ts +10 -10
  166. package/lib/components/alerts/index.d.ts +2 -2
  167. package/lib/components/closed-to-maintenance/closed-to-maintenance.component.d.ts +13 -13
  168. package/lib/components/closed-to-maintenance/closed-to-maintenance.module.d.ts +11 -11
  169. package/lib/components/closed-to-maintenance/index.d.ts +2 -2
  170. package/lib/components/index.d.ts +4 -4
  171. package/lib/components/progress-bar/index.d.ts +3 -3
  172. package/lib/components/progress-bar/progress-bar.component.d.ts +11 -11
  173. package/lib/components/progress-bar/progress-bar.module.d.ts +8 -8
  174. package/lib/components/progress-bar/progress-bar.service.d.ts +14 -14
  175. package/lib/components/version-changed/index.d.ts +2 -2
  176. package/lib/components/version-changed/version-changed.component.d.ts +9 -9
  177. package/lib/components/version-changed/version-changed.module.d.ts +10 -10
  178. package/lib/core/decorators/index.d.ts +4 -4
  179. package/lib/core/decorators/monkeyecx-charts-decorators.d.ts +1 -1
  180. package/lib/core/decorators/monkeyecx-decorators.d.ts +7 -7
  181. package/lib/core/decorators/monkeyecx-download-decorators.d.ts +2 -2
  182. package/lib/core/decorators/monkeyecx-upload-decorators.d.ts +2 -2
  183. package/lib/core/directives/index.d.ts +12 -12
  184. package/lib/core/directives/monkeyecx-directives-module.d.ts +19 -19
  185. package/lib/core/directives/monkeyecx-drag-drop.d.ts +12 -12
  186. package/lib/core/directives/monkeyecx-feature-by-program-directive.d.ts +15 -15
  187. package/lib/core/directives/monkeyecx-feature-directive.d.ts +17 -17
  188. package/lib/core/directives/monkeyecx-format-currency.d.ts +16 -16
  189. package/lib/core/directives/monkeyecx-format-upper.d.ts +18 -18
  190. package/lib/core/directives/monkeyecx-only-alpha-numeric-directive.d.ts +9 -9
  191. package/lib/core/directives/monkeyecx-only-number-directive.d.ts +9 -9
  192. package/lib/core/directives/monkeyecx-popover-options.directive.d.ts +19 -19
  193. package/lib/core/directives/monkeyecx-popover.directive.d.ts +43 -43
  194. package/lib/core/directives/monkeyecx-security-directive.d.ts +17 -17
  195. package/lib/core/directives/monkeyecx-tooltip-directive.d.ts +23 -23
  196. package/lib/core/index.d.ts +9 -9
  197. package/lib/core/interceptors/index.d.ts +5 -5
  198. package/lib/core/interceptors/monkeyecx-http-config-error.interceptor.d.ts +17 -17
  199. package/lib/core/interceptors/monkeyecx-http-config-header.interceptor.d.ts +16 -16
  200. package/lib/core/interceptors/monkeyecx-http-config-interceptor.module.d.ts +9 -9
  201. package/lib/core/interceptors/monkeyecx-http-config-loading-in-progress.interceptor.d.ts +12 -12
  202. package/lib/core/interceptors/monkeyecx-http-config-queue.interceptor.d.ts +14 -14
  203. package/lib/core/interfaces/index.d.ts +29 -29
  204. package/lib/core/interfaces/monkeyecx-auth-credentials.d.ts +15 -15
  205. package/lib/core/interfaces/monkeyecx-company-pendencies.d.ts +14 -14
  206. package/lib/core/interfaces/monkeyecx-company.d.ts +10 -10
  207. package/lib/core/interfaces/monkeyecx-config-boostrap.d.ts +14 -14
  208. package/lib/core/interfaces/monkeyecx-config.d.ts +126 -126
  209. package/lib/core/interfaces/monkeyecx-country-security.d.ts +4 -4
  210. package/lib/core/interfaces/monkeyecx-error-response.d.ts +5 -5
  211. package/lib/core/interfaces/monkeyecx-filter.d.ts +24 -24
  212. package/lib/core/interfaces/monkeyecx-handled-error-response.d.ts +10 -10
  213. package/lib/core/interfaces/monkeyecx-header-credentials.d.ts +4 -4
  214. package/lib/core/interfaces/monkeyecx-intercom-options.d.ts +4 -4
  215. package/lib/core/interfaces/monkeyecx-me-credentials.d.ts +22 -22
  216. package/lib/core/interfaces/monkeyecx-navigation.d.ts +27 -27
  217. package/lib/core/interfaces/monkeyecx-program.d.ts +10 -10
  218. package/lib/core/interfaces/monkeyecx-releases.d.ts +9 -9
  219. package/lib/core/interfaces/monkeyecx-request-in-progress.d.ts +3 -3
  220. package/lib/core/interfaces/monkeyecx-request-paged.d.ts +23 -23
  221. package/lib/core/interfaces/monkeyecx-response-links.d.ts +11 -11
  222. package/lib/core/interfaces/monkeyecx-response-paged.d.ts +6 -6
  223. package/lib/core/interfaces/monkeyecx-saved-state.d.ts +5 -5
  224. package/lib/core/interfaces/monkeyecx-scroll-options.d.ts +5 -5
  225. package/lib/core/interfaces/monkeyecx-service-credentials.d.ts +12 -12
  226. package/lib/core/interfaces/monkeyecx-support-options.d.ts +4 -4
  227. package/lib/core/interfaces/monkeyecx-token-credentials.d.ts +20 -20
  228. package/lib/core/interfaces/monkeyecx-translate-options.d.ts +4 -4
  229. package/lib/core/interfaces/request-download/index.d.ts +3 -3
  230. package/lib/core/interfaces/request-download/monkeyecx-request-download.d.ts +10 -10
  231. package/lib/core/interfaces/request-download/monkeyecx-request-downloaded.d.ts +7 -7
  232. package/lib/core/interfaces/request-download/monkeyecx-request-item-download.d.ts +7 -7
  233. package/lib/core/interfaces/request-queue/index.d.ts +3 -3
  234. package/lib/core/interfaces/request-queue/monkeyecx-request-item-queue.d.ts +7 -7
  235. package/lib/core/interfaces/request-queue/monkeyecx-request-progress-queue.d.ts +6 -6
  236. package/lib/core/interfaces/request-queue/monkeyecx-request-queue.d.ts +8 -8
  237. package/lib/core/interfaces/request-upload/index.d.ts +2 -2
  238. package/lib/core/interfaces/request-upload/monkeyecx-request-item-upload.d.ts +5 -5
  239. package/lib/core/interfaces/request-upload/monkeyecx-request-upload.d.ts +10 -10
  240. package/lib/core/interfaces/schedules/index.d.ts +1 -1
  241. package/lib/core/interfaces/schedules/monkeyecx-request-schedule.d.ts +13 -13
  242. package/lib/core/model/index.d.ts +1 -1
  243. package/lib/core/model/monkeyecx-model.d.ts +13 -13
  244. package/lib/core/pipes/index.d.ts +20 -20
  245. package/lib/core/pipes/monkeyecx-blob-secure.d.ts +13 -13
  246. package/lib/core/pipes/monkeyecx-display-first-name.d.ts +7 -7
  247. package/lib/core/pipes/monkeyecx-display-initials.d.ts +7 -7
  248. package/lib/core/pipes/monkeyecx-format-address.d.ts +14 -14
  249. package/lib/core/pipes/monkeyecx-format-beautify-json.d.ts +8 -8
  250. package/lib/core/pipes/monkeyecx-format-currency.d.ts +11 -11
  251. package/lib/core/pipes/monkeyecx-format-date-group.d.ts +11 -11
  252. package/lib/core/pipes/monkeyecx-format-date-timelapse.d.ts +7 -7
  253. package/lib/core/pipes/monkeyecx-format-date-unix-timelapse.d.ts +7 -7
  254. package/lib/core/pipes/monkeyecx-format-document.d.ts +7 -7
  255. package/lib/core/pipes/monkeyecx-format-number.d.ts +7 -7
  256. package/lib/core/pipes/monkeyecx-format-phone.d.ts +7 -7
  257. package/lib/core/pipes/monkeyecx-format-size.d.ts +7 -7
  258. package/lib/core/pipes/monkeyecx-format-tax.d.ts +7 -7
  259. package/lib/core/pipes/monkeyecx-format-type-document.d.ts +7 -7
  260. package/lib/core/pipes/monkeyecx-format-value.d.ts +7 -7
  261. package/lib/core/pipes/monkeyecx-format-zipcode.d.ts +7 -7
  262. package/lib/core/pipes/monkeyecx-pipes.module.d.ts +25 -25
  263. package/lib/core/pipes/monkeyecx-text-truncate.d.ts +7 -7
  264. package/lib/core/pipes/monkeyecx-truncate-qtd.d.ts +7 -7
  265. package/lib/core/services/alerts/index.d.ts +1 -1
  266. package/lib/core/services/alerts/monkeyecx-alerts.service.d.ts +21 -21
  267. package/lib/core/services/auth/index.d.ts +4 -4
  268. package/lib/core/services/auth/monkeyecx-auth-guard-company.service.d.ts +11 -11
  269. package/lib/core/services/auth/monkeyecx-auth-guard-login.service.d.ts +11 -11
  270. package/lib/core/services/auth/monkeyecx-auth-guard.service.d.ts +11 -11
  271. package/lib/core/services/auth/monkeyecx-authentication.service.d.ts +30 -30
  272. package/lib/core/services/commons/index.d.ts +1 -1
  273. package/lib/core/services/commons/monkeyecx-commons.service.d.ts +124 -124
  274. package/lib/core/services/config/monkeyecx-alerts-config.service.d.ts +11 -11
  275. package/lib/core/services/config/monkeyecx-config.module.d.ts +9 -9
  276. package/lib/core/services/config/monkeyecx-config.service.d.ts +36 -36
  277. package/lib/core/services/config/monkeyecx-error-config.service.d.ts +8 -8
  278. package/lib/core/services/config/monkeyecx-feature-toggle.service.d.ts +16 -16
  279. package/lib/core/services/config/monkeyecx-ga-config.service.d.ts +10 -10
  280. package/lib/core/services/config/monkeyecx-i18n-config.service.d.ts +16 -16
  281. package/lib/core/services/config/monkeyecx-logs-config.service.d.ts +7 -7
  282. package/lib/core/services/config/monkeyecx-maintenance-config.service.d.ts +13 -13
  283. package/lib/core/services/config/monkeyecx-security-console-config.service.d.ts +11 -11
  284. package/lib/core/services/config/monkeyecx-service-worker-config.service.d.ts +16 -16
  285. package/lib/core/services/error/index.d.ts +4 -4
  286. package/lib/core/services/error/monkeyecx-error-handling.module.d.ts +9 -9
  287. package/lib/core/services/error/monkeyecx-error-handling.service.d.ts +9 -9
  288. package/lib/core/services/error/monkeyecx-http-error-handling.service.d.ts +26 -26
  289. package/lib/core/services/error/monkeyecx-others-errors-handling.service.d.ts +9 -9
  290. package/lib/core/services/index.d.ts +23 -23
  291. package/lib/core/services/logged/index.d.ts +1 -1
  292. package/lib/core/services/logged/monkeyecx-logged-handling.service.d.ts +14 -14
  293. package/lib/core/services/monkeyecx-handling.service.d.ts +22 -22
  294. package/lib/core/services/monkeyecx-service.service.d.ts +18 -18
  295. package/lib/core/services/pagination/index.d.ts +1 -1
  296. package/lib/core/services/pagination/monkeyecx-pagination.service.d.ts +9 -9
  297. package/lib/core/services/request-download/index.d.ts +2 -2
  298. package/lib/core/services/request-download/monkeyecx-request-download-handling.service.d.ts +18 -18
  299. package/lib/core/services/request-download/monkeyecx-request-downloaded-handling.service.d.ts +16 -16
  300. package/lib/core/services/request-paged/index.d.ts +1 -1
  301. package/lib/core/services/request-paged/monkeyecx-request-request-paged-handling.d.ts +11 -11
  302. package/lib/core/services/request-queue/index.d.ts +2 -2
  303. package/lib/core/services/request-queue/monkeyecx-request-queue-handling.service.d.ts +21 -21
  304. package/lib/core/services/request-queue/monkeyecx-request-queue-modal-handling.service.d.ts +23 -23
  305. package/lib/core/services/routes/index.d.ts +1 -1
  306. package/lib/core/services/routes/monkeyecx-dicovery-params.service.d.ts +13 -13
  307. package/lib/core/services/schedules/index.d.ts +1 -1
  308. package/lib/core/services/schedules/monkeyecx-request-schedule.service.d.ts +47 -47
  309. package/lib/core/services/storage/index.d.ts +2 -2
  310. package/lib/core/services/storage/monkeyecx-cookie-storage.service.d.ts +11 -11
  311. package/lib/core/services/storage/monkeyecx-token-storage.service.d.ts +29 -29
  312. package/lib/core/specification-search/index.d.ts +1 -1
  313. package/lib/core/specification-search/monkeyecx-specification-search.d.ts +20 -20
  314. package/lib/core/utils/decorators-utils.d.ts +5 -5
  315. package/lib/core/utils/index.d.ts +6 -6
  316. package/lib/core/utils/statics.d.ts +28 -28
  317. package/lib/core/utils/utils.d.ts +22 -22
  318. package/lib/core/utils/validate-utils.d.ts +66 -66
  319. package/lib/core/utils/validators.d.ts +30 -30
  320. package/lib/monkey-front-core.module.d.ts +17 -17
  321. package/monkey-front-core-0.0.264.tgz +0 -0
  322. package/monkey-front-core.d.ts +5 -5
  323. package/package.json +3 -3
  324. package/public-api.d.ts +3 -3
  325. package/monkey-front-core-0.0.263.tgz +0 -0
@@ -1,222 +1,222 @@
1
- /* eslint-disable comma-dangle */
2
- /* eslint-disable max-len */
3
- /* eslint-disable no-useless-escape */
4
- /* eslint-disable no-plusplus */
5
- /* eslint-disable no-cond-assign */
6
- /* eslint-disable eqeqeq */
7
- /* eslint-disable no-redeclare */
8
- /* eslint-disable vars-on-top */
9
- /* eslint-disable no-var */
10
- /* eslint-disable block-scoped-var */
11
- export class MonkeyEcxUtils {
12
- static persistNullEmptyUndefined(tp) {
13
- return tp !== null && tp !== undefined && tp !== '';
14
- }
15
- static getDocumentType(doc, country) {
16
- if (!doc)
17
- return '';
18
- if (country === 'cl')
19
- return 'RUT';
20
- return doc.length <= 11 ? 'CPF' : 'CNPJ';
21
- }
22
- static getDocumentMask(type) {
23
- if (type === 'CPF')
24
- return '000.000.000-00';
25
- return '00.000.000/0000-00';
26
- }
27
- static formatDocumentWithMask(doc, withType, country) {
28
- if (!doc)
29
- return doc;
30
- let formated = '';
31
- if (country === 'cl') {
32
- formated = doc.replace(/^(\d{1,2})(\d{3})(\d{3})(\w{1})$/, '$1.$2.$3-$4');
33
- return `${formated}`;
34
- }
35
- if (doc.length === 14) {
36
- formated = doc
37
- .replace(/^(\d{2})(\d)/, '$1.$2')
38
- .replace(/^(\d{2})\.(\d{3})(\d)/, '$1.$2.$3')
39
- .replace(/\.(\d{3})(\d)/, '.$1/$2')
40
- .replace(/(\d{4})(\d)/, '$1-$2');
41
- }
42
- else {
43
- formated = doc
44
- .replace(/^(\d{3})(\d)/, '$1.$2')
45
- .replace(/^(\d{3})\.(\d{3})(\d)/, '$1.$2.$3')
46
- .replace(/\.(\d{3})(\d)/, '.$1-$2');
47
- }
48
- return `${withType ? `${this.getDocumentType(doc)}:` : ''} ${formated}`;
49
- }
50
- static cutFirstLastName(value, tp = 'first') {
51
- const split = value?.trim()?.split(' ');
52
- if (tp === 'first')
53
- return split[0];
54
- return split?.splice(1, split.length)?.join(' ');
55
- }
56
- static isCPFCNPJValid(document) {
57
- document = document.replace(/[^\d]/g, '');
58
- const handled = document.replace(new RegExp(document.charAt(0), 'g'), '');
59
- if (!handled)
60
- return false;
61
- if (document.length === 11) {
62
- let base = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0];
63
- for (var i = 0, n = 0; i < 9; n += document[i] * base[i++])
64
- ;
65
- if (document[9] != ((n %= 11) <= 1 ? 0 : 11 - n)) {
66
- return false;
67
- }
68
- base = [11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0];
69
- for (var i = 0, n = 0; i <= 9; n += document[i] * base[i++])
70
- ;
71
- if (document[10] != ((n %= 11) <= 1 ? 0 : 11 - n)) {
72
- return false;
73
- }
74
- return true;
75
- }
76
- if (document.length === 14 || /0{14}/.test(document)) {
77
- const base = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
78
- for (var i = 0, n = 0; i < 12; n += document[i] * base[++i])
79
- ;
80
- if (document[12] != ((n %= 11) < 2 ? 0 : 11 - n)) {
81
- return false;
82
- }
83
- for (var i = 0, n = 0; i <= 12; n += document[i] * base[i++])
84
- ;
85
- if (document[13] != ((n %= 11) < 2 ? 0 : 11 - n)) {
86
- return false;
87
- }
88
- return true;
89
- }
90
- return false;
91
- }
92
- static isValidRUT(document) {
93
- if (!document || document.trim().length < 3)
94
- return false;
95
- const documentHandled = document.replace(/[^0-9kK]/g, '');
96
- if (documentHandled.length < 3)
97
- return false;
98
- const calcDv = (rut) => {
99
- const value = `${rut}`;
100
- let sum = 0;
101
- let mult = 2;
102
- for (let i = 1; i <= value.length; i++) {
103
- const index = mult * Number(value.charAt(value.length - i));
104
- sum += index;
105
- if (mult < 7) {
106
- mult += 1;
107
- }
108
- else {
109
- mult = 2;
110
- }
111
- }
112
- const dvEsperado = 11 - (sum % 11);
113
- if (dvEsperado === 10)
114
- return 'K';
115
- if (dvEsperado === 11)
116
- return '0';
117
- return `${dvEsperado}`;
118
- };
119
- const num = documentHandled.slice(0, -1);
120
- const dgv = documentHandled.slice(-1).toUpperCase();
121
- const dvCalc = calcDv(num);
122
- return dvCalc === dgv;
123
- }
124
- static isValidUrl(txt) {
125
- const regex = new RegExp(/^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)+[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,10}(:[0-9]{1,5})?(\/.*)?$/gm);
126
- return regex.test(txt);
127
- }
128
- static isValidZipCode(zipCode, country) {
129
- const length = (country === 'cl') ? 7 : 8;
130
- return `${this.handleOnlyNumbers(zipCode)}`.length === length;
131
- }
132
- static getRandomString(len, charSet) {
133
- charSet = charSet || 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
134
- const randomString = new Array(len)
135
- .fill('1')
136
- .map(() => {
137
- return charSet?.charAt(Math.floor(Math.random() * charSet?.length));
138
- })
139
- .join('');
140
- return randomString;
141
- }
142
- static handleOnlyNumbers(value) {
143
- if (!value)
144
- return null;
145
- return value.replace(new RegExp(/[^0-9]/g), '');
146
- }
147
- static handleOnlyAlphaNumeric(value) {
148
- if (!value)
149
- return '';
150
- return value.replace(new RegExp(/[^0-9A-Za-z]/, 'g'), '');
151
- }
152
- static capitalize(value) {
153
- return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;
154
- }
155
- static formatZipCode(zipCode) {
156
- if (!zipCode)
157
- return zipCode;
158
- const formated = zipCode
159
- .replace(/^(\d{5})(\d)/, '$1-$2')
160
- .replace(/\.(\d{3})(\d)/, '.$1-$2');
161
- return `${formated}`;
162
- }
163
- static formatFileSize(size) {
164
- const units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
165
- let l = 0;
166
- while (size >= 1024 && ++l) {
167
- size /= 1024;
168
- }
169
- return `${size.toFixed(size < 10 && l > 0 ? 1 : 0)} ${units[l]}`;
170
- }
171
- static sufflue(data) {
172
- for (let i = data.length - 1; i > 0; i--) {
173
- const j = Math.floor(Math.random() * i);
174
- const temp = data[i];
175
- data[i] = data[j];
176
- data[j] = temp;
177
- }
178
- return data;
179
- }
180
- static handleBlobFile(theBlob, fileName, fileType) {
181
- function blobToFile(theBlob, fileName) {
182
- const b = theBlob;
183
- b.lastModifiedDate = new Date();
184
- b.name = fileName;
185
- return b;
186
- }
187
- let file;
188
- if (!navigator.msSaveBlob) {
189
- file = new File([theBlob], fileName, {
190
- type: fileType,
191
- });
192
- }
193
- else {
194
- file = new Blob([theBlob], {
195
- type: fileType,
196
- });
197
- file = blobToFile(file, fileName);
198
- }
199
- return file;
200
- }
201
- static truncate(text, maxLength = 25) {
202
- const midChar = '...';
203
- if (!text)
204
- return midChar;
205
- if (text && text.length <= maxLength)
206
- return text;
207
- const left = Math.ceil(maxLength / 2);
208
- const right = text.length - left + 1;
209
- return `${text.substr(0, left)} ${midChar} ${text.substring(right)}`;
210
- }
211
- static isLocalhost() {
212
- const { href } = window?.location;
213
- if (!href)
214
- return false;
215
- return href?.search('localhost') >= 0;
216
- }
217
- static isSameOrigin(frontend) {
218
- const initialPath = window.location.origin;
219
- return (initialPath || '') === frontend;
220
- }
221
- }
1
+ /* eslint-disable comma-dangle */
2
+ /* eslint-disable max-len */
3
+ /* eslint-disable no-useless-escape */
4
+ /* eslint-disable no-plusplus */
5
+ /* eslint-disable no-cond-assign */
6
+ /* eslint-disable eqeqeq */
7
+ /* eslint-disable no-redeclare */
8
+ /* eslint-disable vars-on-top */
9
+ /* eslint-disable no-var */
10
+ /* eslint-disable block-scoped-var */
11
+ export class MonkeyEcxUtils {
12
+ static persistNullEmptyUndefined(tp) {
13
+ return tp !== null && tp !== undefined && tp !== '';
14
+ }
15
+ static getDocumentType(doc, country) {
16
+ if (!doc)
17
+ return '';
18
+ if (country === 'cl')
19
+ return 'RUT';
20
+ return doc.length <= 11 ? 'CPF' : 'CNPJ';
21
+ }
22
+ static getDocumentMask(type) {
23
+ if (type === 'CPF')
24
+ return '000.000.000-00';
25
+ return '00.000.000/0000-00';
26
+ }
27
+ static formatDocumentWithMask(doc, withType, country) {
28
+ if (!doc)
29
+ return doc;
30
+ let formated = '';
31
+ if (country === 'cl') {
32
+ formated = doc.replace(/^(\d{1,2})(\d{3})(\d{3})(\w{1})$/, '$1.$2.$3-$4');
33
+ return `${formated}`;
34
+ }
35
+ if (doc.length === 14) {
36
+ formated = doc
37
+ .replace(/^(\d{2})(\d)/, '$1.$2')
38
+ .replace(/^(\d{2})\.(\d{3})(\d)/, '$1.$2.$3')
39
+ .replace(/\.(\d{3})(\d)/, '.$1/$2')
40
+ .replace(/(\d{4})(\d)/, '$1-$2');
41
+ }
42
+ else {
43
+ formated = doc
44
+ .replace(/^(\d{3})(\d)/, '$1.$2')
45
+ .replace(/^(\d{3})\.(\d{3})(\d)/, '$1.$2.$3')
46
+ .replace(/\.(\d{3})(\d)/, '.$1-$2');
47
+ }
48
+ return `${withType ? `${this.getDocumentType(doc)}:` : ''} ${formated}`;
49
+ }
50
+ static cutFirstLastName(value, tp = 'first') {
51
+ const split = value?.trim()?.split(' ');
52
+ if (tp === 'first')
53
+ return split[0];
54
+ return split?.splice(1, split.length)?.join(' ');
55
+ }
56
+ static isCPFCNPJValid(document) {
57
+ document = document.replace(/[^\d]/g, '');
58
+ const handled = document.replace(new RegExp(document.charAt(0), 'g'), '');
59
+ if (!handled)
60
+ return false;
61
+ if (document.length === 11) {
62
+ let base = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0];
63
+ for (var i = 0, n = 0; i < 9; n += document[i] * base[i++])
64
+ ;
65
+ if (document[9] != ((n %= 11) <= 1 ? 0 : 11 - n)) {
66
+ return false;
67
+ }
68
+ base = [11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0];
69
+ for (var i = 0, n = 0; i <= 9; n += document[i] * base[i++])
70
+ ;
71
+ if (document[10] != ((n %= 11) <= 1 ? 0 : 11 - n)) {
72
+ return false;
73
+ }
74
+ return true;
75
+ }
76
+ if (document.length === 14 || /0{14}/.test(document)) {
77
+ const base = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
78
+ for (var i = 0, n = 0; i < 12; n += document[i] * base[++i])
79
+ ;
80
+ if (document[12] != ((n %= 11) < 2 ? 0 : 11 - n)) {
81
+ return false;
82
+ }
83
+ for (var i = 0, n = 0; i <= 12; n += document[i] * base[i++])
84
+ ;
85
+ if (document[13] != ((n %= 11) < 2 ? 0 : 11 - n)) {
86
+ return false;
87
+ }
88
+ return true;
89
+ }
90
+ return false;
91
+ }
92
+ static isValidRUT(document) {
93
+ if (!document || document.trim().length < 3)
94
+ return false;
95
+ const documentHandled = document.replace(/[^0-9kK]/g, '');
96
+ if (documentHandled.length < 3)
97
+ return false;
98
+ const calcDv = (rut) => {
99
+ const value = `${rut}`;
100
+ let sum = 0;
101
+ let mult = 2;
102
+ for (let i = 1; i <= value.length; i++) {
103
+ const index = mult * Number(value.charAt(value.length - i));
104
+ sum += index;
105
+ if (mult < 7) {
106
+ mult += 1;
107
+ }
108
+ else {
109
+ mult = 2;
110
+ }
111
+ }
112
+ const dvEsperado = 11 - (sum % 11);
113
+ if (dvEsperado === 10)
114
+ return 'K';
115
+ if (dvEsperado === 11)
116
+ return '0';
117
+ return `${dvEsperado}`;
118
+ };
119
+ const num = documentHandled.slice(0, -1);
120
+ const dgv = documentHandled.slice(-1).toUpperCase();
121
+ const dvCalc = calcDv(num);
122
+ return dvCalc === dgv;
123
+ }
124
+ static isValidUrl(txt) {
125
+ const regex = new RegExp(/^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)+[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,10}(:[0-9]{1,5})?(\/.*)?$/gm);
126
+ return regex.test(txt);
127
+ }
128
+ static isValidZipCode(zipCode, country) {
129
+ const length = (country === 'cl') ? 7 : 8;
130
+ return `${this.handleOnlyNumbers(zipCode)}`.length === length;
131
+ }
132
+ static getRandomString(len, charSet) {
133
+ charSet = charSet || 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
134
+ const randomString = new Array(len)
135
+ .fill('1')
136
+ .map(() => {
137
+ return charSet?.charAt(Math.floor(Math.random() * charSet?.length));
138
+ })
139
+ .join('');
140
+ return randomString;
141
+ }
142
+ static handleOnlyNumbers(value) {
143
+ if (!value)
144
+ return null;
145
+ return value.replace(new RegExp(/[^0-9]/g), '');
146
+ }
147
+ static handleOnlyAlphaNumeric(value) {
148
+ if (!value)
149
+ return '';
150
+ return value.replace(new RegExp(/[^0-9A-Za-z]/, 'g'), '');
151
+ }
152
+ static capitalize(value) {
153
+ return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;
154
+ }
155
+ static formatZipCode(zipCode) {
156
+ if (!zipCode)
157
+ return zipCode;
158
+ const formated = zipCode
159
+ .replace(/^(\d{5})(\d)/, '$1-$2')
160
+ .replace(/\.(\d{3})(\d)/, '.$1-$2');
161
+ return `${formated}`;
162
+ }
163
+ static formatFileSize(size) {
164
+ const units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
165
+ let l = 0;
166
+ while (size >= 1024 && ++l) {
167
+ size /= 1024;
168
+ }
169
+ return `${size.toFixed(size < 10 && l > 0 ? 1 : 0)} ${units[l]}`;
170
+ }
171
+ static sufflue(data) {
172
+ for (let i = data.length - 1; i > 0; i--) {
173
+ const j = Math.floor(Math.random() * i);
174
+ const temp = data[i];
175
+ data[i] = data[j];
176
+ data[j] = temp;
177
+ }
178
+ return data;
179
+ }
180
+ static handleBlobFile(theBlob, fileName, fileType) {
181
+ function blobToFile(theBlob, fileName) {
182
+ const b = theBlob;
183
+ b.lastModifiedDate = new Date();
184
+ b.name = fileName;
185
+ return b;
186
+ }
187
+ let file;
188
+ if (!navigator.msSaveBlob) {
189
+ file = new File([theBlob], fileName, {
190
+ type: fileType,
191
+ });
192
+ }
193
+ else {
194
+ file = new Blob([theBlob], {
195
+ type: fileType,
196
+ });
197
+ file = blobToFile(file, fileName);
198
+ }
199
+ return file;
200
+ }
201
+ static truncate(text, maxLength = 25) {
202
+ const midChar = '...';
203
+ if (!text)
204
+ return midChar;
205
+ if (text && text.length <= maxLength)
206
+ return text;
207
+ const left = Math.ceil(maxLength / 2);
208
+ const right = text.length - left + 1;
209
+ return `${text.substr(0, left)} ${midChar} ${text.substring(right)}`;
210
+ }
211
+ static isLocalhost() {
212
+ const { href } = window?.location;
213
+ if (!href)
214
+ return false;
215
+ return href?.search('localhost') >= 0;
216
+ }
217
+ static isSameOrigin(frontend) {
218
+ const initialPath = window.location.origin;
219
+ return (initialPath || '') === frontend;
220
+ }
221
+ }
222
222
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29yZS9zcmMvbGliL2NvcmUvdXRpbHMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDO0FBQ2pDLDRCQUE0QjtBQUM1QixzQ0FBc0M7QUFDdEMsZ0NBQWdDO0FBQ2hDLG1DQUFtQztBQUNuQywyQkFBMkI7QUFDM0IsaUNBQWlDO0FBQ2pDLGdDQUFnQztBQUNoQywyQkFBMkI7QUFDM0IscUNBQXFDO0FBQ3JDLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxFQUFPO1FBQ3RDLE9BQU8sRUFBRSxLQUFLLElBQUksSUFBSSxFQUFFLEtBQUssU0FBUyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxlQUFlLENBQUMsR0FBVyxFQUFFLE9BQWdCO1FBQ2xELElBQUksQ0FBQyxHQUFHO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDcEIsSUFBSSxPQUFPLEtBQUssSUFBSTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ25DLE9BQU8sR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzNDLENBQUM7SUFFRCxNQUFNLENBQUMsZUFBZSxDQUFDLElBQVk7UUFDakMsSUFBSSxJQUFJLEtBQUssS0FBSztZQUFFLE9BQU8sZ0JBQWdCLENBQUM7UUFDNUMsT0FBTyxvQkFBb0IsQ0FBQztJQUM5QixDQUFDO0lBRUQsTUFBTSxDQUFDLHNCQUFzQixDQUFDLEdBQVcsRUFBRSxRQUFrQixFQUFFLE9BQWdCO1FBQzdFLElBQUksQ0FBQyxHQUFHO1lBQUUsT0FBTyxHQUFHLENBQUM7UUFDckIsSUFBSSxRQUFRLEdBQVcsRUFBRSxDQUFDO1FBQzFCLElBQUksT0FBTyxLQUFL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S0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUVyQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksT0FBTyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztJQUN2RSxDQUFDO0lBRUQsTUFBTSxDQUFDLFdBQVc7UUFDaEIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sRUFBRSxRQUFRLENBQUM7UUFDbEMsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUN4QixPQUFPLElBQUksRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQWdCO1FBQ2xDLE1BQU0sV0FBVyxHQUFXLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQ25ELE9BQU8sQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLEtBQUssUUFBUSxDQUFDO0lBQzFDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGNvbW1hLWRhbmdsZSAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdXNlbGVzcy1lc2NhcGUgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXBsdXNwbHVzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1jb25kLWFzc2lnbiAqL1xuLyogZXNsaW50LWRpc2FibGUgZXFlcWVxICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1yZWRlY2xhcmUgKi9cbi8qIGVzbGludC1kaXNhYmxlIHZhcnMtb24tdG9wICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby12YXIgKi9cbi8qIGVzbGludC1kaXNhYmxlIGJsb2NrLXNjb3BlZC12YXIgKi9cbmV4cG9ydCBjbGFzcyBNb25rZXlFY3hVdGlscyB7XG4gIHN0YXRpYyBwZXJzaXN0TnVsbEVtcHR5VW5kZWZpbmVkKHRwOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHAgIT09IG51bGwgJiYgdHAgIT09IHVuZGVmaW5lZCAmJiB0cCAhPT0gJyc7XG4gIH1cblxuICBzdGF0aWMgZ2V0RG9jdW1lbnRUeXBlKGRvYzogc3RyaW5nLCBjb3VudHJ5Pzogc3RyaW5nKSB7XG4gICAgaWYgKCFkb2MpIHJldHVybiAnJztcbiAgICBpZiAoY291bnRyeSA9PT0gJ2NsJykgcmV0dXJuICdSVVQnO1xuICAgIHJldHVybiBkb2MubGVuZ3RoIDw9IDExID8gJ0NQRicgOiAnQ05QSic7XG4gIH1cblxuICBzdGF0aWMgZ2V0RG9jdW1lbnRNYXNrKHR5cGU6IHN0cmluZykge1xuICAgIGlmICh0eXBlID09PSAnQ1BGJykgcmV0dXJuICcwMDAuMDAwLjAwMC0wMCc7XG4gICAgcmV0dXJuICcwMC4wMDAuMDAwLzAwMDAtMDAnO1xuICB9XG5cbiAgc3RhdGljIGZvcm1hdERvY3VtZW50V2l0aE1hc2soZG9jOiBzdHJpbmcsIHdpdGhUeXBlPzogYm9vbGVhbiwgY291bnRyeT86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFkb2MpIHJldHVybiBkb2M7XG4gICAgbGV0IGZvcm1hdGVkOiBzdHJpbmcgPSAnJztcbiAgICBpZiAoY291bnRyeSA9PT0gJ2NsJykge1xuICAgICAgZm9ybWF0ZWQgPSBkb2MucmVwbGFjZSgvXihcXGR7MSwyfSkoXFxkezN9KShcXGR7M30pKFxcd3sxfSkkLywgJyQxLiQyLiQzLSQ0Jyk7XG4gICAgICByZXR1cm4gYCR7Zm9ybWF0ZWR9YDtcbiAgICB9XG4gICAgaWYgKGRvYy5sZW5ndGggPT09IDE0KSB7XG4gICAgICBmb3JtYXRlZCA9IGRvY1xuICAgICAgICAucmVwbGFjZSgvXihcXGR7Mn0pKFxcZCkvLCAnJDEuJDInKVxuICAgICAgICAucmVwbGFjZSgvXihcXGR7Mn0pXFwuKFxcZHszfSkoXFxkKS8sICckMS4kMi4kMycpXG4gICAgICAgIC5yZXBsYWNlKC9cXC4oXFxkezN9KShcXGQpLywgJy4kMS8kMicpXG4gICAgICAgIC5yZXBsYWNlKC8oXFxkezR9KShcXGQpLywgJyQxLSQyJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvcm1hdGVkID0gZG9jXG4gICAgICAgIC5yZXBsYWNlKC9eKFxcZHszfSkoXFxkKS8sICckMS4kMicpXG4gICAgICAgIC5yZXBsYWNlKC9eKFxcZHszfSlcXC4oXFxkezN9KShcXGQpLywgJyQxLiQyLiQzJylcbiAgICAgICAgLnJlcGxhY2UoL1xcLihcXGR7M30pKFxcZCkvLCAnLiQxLSQyJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGAke3dpdGhUeXBlID8gYCR7dGhpcy5nZXREb2N1bWVudFR5cGUoZG9jKX06YCA6ICcnfSAke2Zvcm1hdGVkfWA7XG4gIH1cblxuICBzdGF0aWMgY3V0Rmlyc3RMYXN0TmFtZSh2YWx1ZTogc3RyaW5nLCB0cDogc3RyaW5nID0gJ2ZpcnN0Jykge1xuICAgIGNvbnN0IHNwbGl0ID0gdmFsdWU/LnRyaW0oKT8uc3BsaXQoJyAnKTtcblxuICAgIGlmICh0cCA9PT0gJ2ZpcnN0JykgcmV0dXJuIHNwbGl0WzBdO1xuICAgIHJldHVybiBzcGxpdD8uc3BsaWNlKDEsIHNwbGl0Lmxlbmd0aCk/LmpvaW4oJyAnKTtcbiAgfVxuXG4gIHN0YXRpYyBpc0NQRkNOUEpWYWxpZChkb2N1bWVudDogYW55KTogYm9vbGVhbiB7XG4gICAgZG9jdW1lbnQgPSBkb2N1bWVudC5yZXBsYWNlKC9bXlxcZF0vZywgJycpO1xuXG4gICAgY29uc3QgaGFuZGxlZCA9IGRvY3VtZW50LnJlcGxhY2UobmV3IFJlZ0V4cChkb2N1bWVudC5jaGFyQXQoMCksICdnJyksICcnKTtcbiAgICBpZiAoIWhhbmRsZWQpIHJldHVybiBmYWxzZTtcblxuICAgIGlmIChkb2N1bWVudC5sZW5ndGggPT09IDExKSB7XG4gICAgICBsZXQgYmFzZSA9IFsxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMF07XG4gICAgICBmb3IgKHZhciBpID0gMCwgbiA9IDA7IGkgPCA5OyBuICs9IGRvY3VtZW50W2ldICogYmFzZVtpKytdKTtcbiAgICAgIGlmIChkb2N1bWVudFs5XSAhPSAoKG4gJT0gMTEpIDw9IDEgPyAwIDogMTEgLSBuKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBiYXNlID0gWzExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMF07XG4gICAgICBmb3IgKHZhciBpID0gMCwgbiA9IDA7IGkgPD0gOTsgbiArPSBkb2N1bWVudFtpXSAqIGJhc2VbaSsrXSk7XG4gICAgICBpZiAoZG9jdW1lbnRbMTBdICE9ICgobiAlPSAxMSkgPD0gMSA/IDAgOiAxMSAtIG4pKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoZG9jdW1lbnQubGVuZ3RoID09PSAxNCB8fCAvMHsxNH0vLnRlc3QoZG9jdW1lbnQpKSB7XG4gICAgICBjb25zdCBiYXNlID0gWzYsIDUsIDQsIDMsIDIsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDJdO1xuICAgICAgZm9yICh2YXIgaSA9IDAsIG4gPSAwOyBpIDwgMTI7IG4gKz0gZG9jdW1lbnRbaV0gKiBiYXNlWysraV0pO1xuICAgICAgaWYgKGRvY3VtZW50WzEyXSAhPSAoKG4gJT0gMTEpIDwgMiA/IDAgOiAxMSAtIG4pKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgZm9yICh2YXIgaSA9IDAsIG4gPSAwOyBpIDw9IDEyOyBuICs9IGRvY3VtZW50W2ldICogYmFzZVtpKytdKTtcbiAgICAgIGlmIChkb2N1bWVudFsxM10gIT0gKChuICU9IDExKSA8IDIgPyAwIDogMTEgLSBuKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzVmFsaWRSVVQoZG9jdW1lbnQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghZG9jdW1lbnQgfHwgZG9jdW1lbnQudHJpbSgpLmxlbmd0aCA8IDMpIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCBkb2N1bWVudEhhbmRsZWQgPSBkb2N1bWVudC5yZXBsYWNlKC9bXjAtOWtLXS9nLCAnJyk7XG5cbiAgICBpZiAoZG9jdW1lbnRIYW5kbGVkLmxlbmd0aCA8IDMpIHJldHVybiBmYWxzZTtcblxuICAgIGNvbnN0IGNhbGNEdiA9IChydXQ6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgdmFsdWU6IHN0cmluZyA9IGAke3J1dH1gO1xuICAgICAgbGV0IHN1bSA9IDA7XG4gICAgICBsZXQgbXVsdCA9IDI7XG5cbiAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IHZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gbXVsdCAqIE51bWJlcih2YWx1ZS5jaGFyQXQodmFsdWUubGVuZ3RoIC0gaSkpO1xuXG4gICAgICAgIHN1bSArPSBpbmRleDtcblxuICAgICAgICBpZiAobXVsdCA8IDcpIHtcbiAgICAgICAgICBtdWx0ICs9IDE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbXVsdCA9IDI7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgZHZFc3BlcmFkbyA9IDExIC0gKHN1bSAlIDExKTtcbiAgICAgIGlmIChkdkVzcGVyYWRvID09PSAxMCkgcmV0dXJuICdLJztcbiAgICAgIGlmIChkdkVzcGVyYWRvID09PSAxMSkgcmV0dXJuICcwJztcbiAgICAgIHJldHVybiBgJHtkdkVzcGVyYWRvfWA7XG4gICAgfTtcblxuICAgIGNvbnN0IG51bSA9IGRvY3VtZW50SGFuZGxlZC5zbGljZSgwLCAtMSk7XG4gICAgY29uc3QgZGd2ID0gZG9jdW1lbnRIYW5kbGVkLnNsaWNlKC0xKS50b1VwcGVyQ2FzZSgpO1xuXG4gICAgY29uc3QgZHZDYWxjID0gY2FsY0R2KG51bSk7XG4gICAgcmV0dXJuIGR2Q2FsYyA9PT0gZGd2O1xuICB9XG5cbiAgc3RhdGljIGlzVmFsaWRVcmwodHh0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoXG4gICAgICAvXihodHRwOlxcL1xcL3d3d1xcLnxodHRwczpcXC9cXC93d3dcXC58aHR0cDpcXC9cXC98aHR0cHM6XFwvXFwvKStbYS16MC05XSsoW1xcLVxcLl17MX1bYS16MC05XSspKlxcLlthLXpdezIsMTB9KDpbMC05XXsxLDV9KT8oXFwvLiopPyQvZ21cbiAgICApO1xuICAgIHJldHVybiByZWdleC50ZXN0KHR4dCk7XG4gIH1cblxuICBzdGF0aWMgaXNWYWxpZFppcENvZGUoemlwQ29kZTogc3RyaW5nLCBjb3VudHJ5Pzogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgbGVuZ3RoID0gKGNvdW50cnkgPT09ICdjbCcpID8gNyA6IDg7XG4gICAgcmV0dXJuIGAke3RoaXMuaGFuZGxlT25seU51bWJlcnMoemlwQ29kZSl9YC5sZW5ndGggPT09IGxlbmd0aDtcbiAgfVxuXG4gIHN0YXRpYyBnZXRSYW5kb21TdHJpbmcobGVuOiBudW1iZXIsIGNoYXJTZXQ/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNoYXJTZXQgPSBjaGFyU2V0IHx8ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSc7XG5cbiAgICBjb25zdCByYW5kb21TdHJpbmc6IHN0cmluZyA9IG5ldyBBcnJheShsZW4pXG4gICAgICAuZmlsbCgnMScpXG4gICAgICAubWFwKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIGNoYXJTZXQ/LmNoYXJBdChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFyU2V0Py5sZW5ndGgpKTtcbiAgICAgIH0pXG4gICAgICAuam9pbignJyk7XG4gICAgcmV0dXJuIHJhbmRvbVN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBoYW5kbGVPbmx5TnVtYmVycyh2YWx1ZTogYW55KSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UobmV3IFJlZ0V4cCgvW14wLTldL2cpLCAnJyk7XG4gIH1cblxuICBzdGF0aWMgaGFuZGxlT25seUFscGhhTnVtZXJpYyh2YWx1ZTogYW55KSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuICcnO1xuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKG5ldyBSZWdFeHAoL1teMC05QS1aYS16XS8sICdnJyksICcnKTtcbiAgfVxuXG4gIHN0YXRpYyBjYXBpdGFsaXplKHZhbHVlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYCR7dmFsdWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9JHt2YWx1ZS5zbGljZSgxKX1gO1xuICB9XG5cbiAgc3RhdGljIGZvcm1hdFppcENvZGUoemlwQ29kZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIXppcENvZGUpIHJldHVybiB6aXBDb2RlO1xuICAgIGNvbnN0IGZvcm1hdGVkOiBzdHJpbmcgPSB6aXBDb2RlXG4gICAgICAucmVwbGFjZSgvXihcXGR7NX0pKFxcZCkvLCAnJDEtJDInKVxuICAgICAgLnJlcGxhY2UoL1xcLihcXGR7M30pKFxcZCkvLCAnLiQxLSQyJyk7XG5cbiAgICByZXR1cm4gYCR7Zm9ybWF0ZWR9YDtcbiAgfVxuXG4gIHN0YXRpYyBmb3JtYXRGaWxlU2l6ZShzaXplOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IHVuaXRzID0gWydCJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJywgJ1BCJywgJ0VCJywgJ1pCJywgJ1lCJ107XG4gICAgbGV0IGwgPSAwO1xuICAgIHdoaWxlIChzaXplID49IDEwMjQgJiYgKytsKSB7XG4gICAgICBzaXplIC89IDEwMjQ7XG4gICAgfVxuICAgIHJldHVybiBgJHtzaXplLnRvRml4ZWQoc2l6ZSA8IDEwICYmIGwgPiAwID8gMSA6IDApfSAke3VuaXRzW2xdfWA7XG4gIH1cblxuICBzdGF0aWMgc3VmZmx1ZShkYXRhOiBhbnlbXSk6IGFueVtdIHtcbiAgICBmb3IgKGxldCBpID0gZGF0YS5sZW5ndGggLSAxOyBpID4gMDsgaS0tKSB7XG4gICAgICBjb25zdCBqID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogaSk7XG4gICAgICBjb25zdCB0ZW1wID0gZGF0YVtpXTtcbiAgICAgIGRhdGFbaV0gPSBkYXRhW2pdO1xuICAgICAgZGF0YVtqXSA9IHRlbXA7XG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgc3RhdGljIGhhbmRsZUJsb2JGaWxlKHRoZUJsb2I6IGFueSwgZmlsZU5hbWU6IHN0cmluZywgZmlsZVR5cGU6IHN0cmluZykge1xuICAgIGZ1bmN0aW9uIGJsb2JUb0ZpbGUodGhlQmxvYjogYW55LCBmaWxlTmFtZTogc3RyaW5nKSB7XG4gICAgICBjb25zdCBiID0gdGhlQmxvYjtcbiAgICAgIGIubGFzdE1vZGlmaWVkRGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICBiLm5hbWUgPSBmaWxlTmFtZTtcbiAgICAgIHJldHVybiBiO1xuICAgIH1cblxuICAgIGxldCBmaWxlOiBhbnk7XG4gICAgaWYgKCEobmF2aWdhdG9yIGFzIGFueSkubXNTYXZlQmxvYikge1xuICAgICAgZmlsZSA9IG5ldyBGaWxlKFt0aGVCbG9iXSwgZmlsZU5hbWUsIHtcbiAgICAgICAgdHlwZTogZmlsZVR5cGUsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmlsZSA9IG5ldyBCbG9iKFt0aGVCbG9iXSwge1xuICAgICAgICB0eXBlOiBmaWxlVHlwZSxcbiAgICAgIH0pO1xuICAgICAgZmlsZSA9IGJsb2JUb0ZpbGUoZmlsZSwgZmlsZU5hbWUpO1xuICAgIH1cbiAgICByZXR1cm4gZmlsZTtcbiAgfVxuXG4gIHN0YXRpYyB0cnVuY2F0ZSh0ZXh0OiBzdHJpbmcsIG1heExlbmd0aDogbnVtYmVyID0gMjUpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1pZENoYXIgPSAnLi4uJztcbiAgICBpZiAoIXRleHQpIHJldHVybiBtaWRDaGFyO1xuICAgIGlmICh0ZXh0ICYmIHRleHQubGVuZ3RoIDw9IG1heExlbmd0aCkgcmV0dXJuIHRleHQ7XG5cbiAgICBjb25zdCBsZWZ0ID0gTWF0aC5jZWlsKG1heExlbmd0aCAvIDIpO1xuICAgIGNvbnN0IHJpZ2h0ID0gdGV4dC5sZW5ndGggLSBsZWZ0ICsgMTtcblxuICAgIHJldHVybiBgJHt0ZXh0LnN1YnN0cigwLCBsZWZ0KX0gJHttaWRDaGFyfSAke3RleHQuc3Vic3RyaW5nKHJpZ2h0KX1gO1xuICB9XG5cbiAgc3RhdGljIGlzTG9jYWxob3N0KCkge1xuICAgIGNvbnN0IHsgaHJlZiB9ID0gd2luZG93Py5sb2NhdGlvbjtcbiAgICBpZiAoIWhyZWYpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gaHJlZj8uc2VhcmNoKCdsb2NhbGhvc3QnKSA+PSAwO1xuICB9XG5cbiAgc3RhdGljIGlzU2FtZU9yaWdpbihmcm9udGVuZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaW5pdGlhbFBhdGg6IHN0cmluZyA9IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW47XG4gICAgcmV0dXJuIChpbml0aWFsUGF0aCB8fCAnJykgPT09IGZyb250ZW5kO1xuICB9XG59XG4iXX0=