monkey-front-core 0.0.499 → 0.0.501

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