@senior-agronegocio/angular-components 0.0.9883 → 1.0.0

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 (728) hide show
  1. package/README.md +25 -0
  2. package/agro-angular-components.module.d.ts +13 -9
  3. package/common/agro-array-utils.class.d.ts +48 -48
  4. package/common/agro-cookie-utils.class.d.ts +9 -9
  5. package/common/agro-date-utils.class.d.ts +88 -88
  6. package/common/agro-logics.class.d.ts +23 -23
  7. package/common/agro-name-utils.class.d.ts +22 -22
  8. package/common/agro-number-utils.class.d.ts +77 -77
  9. package/common/agro-object-stringifier.class.d.ts +16 -16
  10. package/common/agro-object-utils.class.d.ts +184 -173
  11. package/common/agro-platform-utils.class.d.ts +60 -60
  12. package/common/agro-regex.constant.d.ts +155 -155
  13. package/common/agro-string-utils.class.d.ts +97 -97
  14. package/common/agro-unit-converter.class.d.ts +23 -23
  15. package/common/colors.class.d.ts +78 -78
  16. package/common/edl-query-builder.class.d.ts +27 -0
  17. package/common/index.d.ts +15 -12
  18. package/components/cancel-event-dialog/cancel-event-dialog-config.d.ts +8 -8
  19. package/components/cancel-event-dialog/cancel-event-dialog.component.d.ts +34 -33
  20. package/components/cancel-event-dialog/cancel-event-dialog.module.d.ts +14 -2
  21. package/components/cancel-event-dialog/index.d.ts +3 -3
  22. package/components/event-control-board/common/control-status.d.ts +5 -5
  23. package/components/event-control-board/common/documentsToIssue.d.ts +4 -4
  24. package/components/event-control-board/common/event-control-constants.d.ts +11 -11
  25. package/components/event-control-board/common/event-operation.d.ts +52 -52
  26. package/components/event-control-board/common/event-origin.d.ts +12 -12
  27. package/components/event-control-board/common/event-status.d.ts +7 -7
  28. package/components/event-control-board/common/input-fields-translate.d.ts +5 -5
  29. package/components/event-control-board/common/input-fields.d.ts +5 -5
  30. package/components/event-control-board/common/invoice-type.d.ts +9 -9
  31. package/components/event-control-board/common/lookup-error-message.constants.d.ts +3 -3
  32. package/components/event-control-board/common/operation.d.ts +5 -5
  33. package/components/event-control-board/common/operationType.d.ts +5 -5
  34. package/components/event-control-board/common/status-entity.d.ts +4 -4
  35. package/components/event-control-board/common/ticket-status.d.ts +7 -7
  36. package/components/event-control-board/common/transfer-status.d.ts +6 -6
  37. package/components/event-control-board/event-control-board.component.d.ts +120 -106
  38. package/components/event-control-board/event-control-board.module.d.ts +31 -2
  39. package/components/event-control-board/index.d.ts +22 -22
  40. package/components/event-control-board/service/e001pes/e001pes-dto.d.ts +12 -12
  41. package/components/event-control-board/service/e001pes/e001pes.d.ts +15 -15
  42. package/components/event-control-board/service/e001pes/e001pes.module.d.ts +7 -2
  43. package/components/event-control-board/service/e001pes/e001pes.service.d.ts +16 -13
  44. package/components/event-control-board/service/e001tns/e001tns-dto.d.ts +14 -14
  45. package/components/event-control-board/service/e001tns/e001tns.d.ts +19 -19
  46. package/components/event-control-board/service/e001tns/e001tns.module.d.ts +7 -2
  47. package/components/event-control-board/service/e001tns/e001tns.service.d.ts +14 -11
  48. package/components/event-control-board/service/e012fam/e012fam-dto.d.ts +11 -11
  49. package/components/event-control-board/service/e012fam/e012fam.d.ts +14 -14
  50. package/components/event-control-board/service/e012fam/e012fam.service.d.ts +14 -11
  51. package/components/event-control-board/service/e070emp/e070emp-dto.d.ts +10 -10
  52. package/components/event-control-board/service/e070emp/e070emp.d.ts +13 -13
  53. package/components/event-control-board/service/e070emp/e070emp.module.d.ts +7 -2
  54. package/components/event-control-board/service/e070emp/e070emp.service.d.ts +15 -12
  55. package/components/event-control-board/service/e070fil/e070fil-dto.d.ts +14 -14
  56. package/components/event-control-board/service/e070fil/e070fil.d.ts +17 -17
  57. package/components/event-control-board/service/e070fil/e070fil.module.d.ts +7 -2
  58. package/components/event-control-board/service/e070fil/e070fil.service.d.ts +15 -12
  59. package/components/event-control-board/service/e075der/e075der-dto.d.ts +15 -15
  60. package/components/event-control-board/service/e075der/e075der.d.ts +18 -18
  61. package/components/event-control-board/service/e075der/e075der.module.d.ts +7 -2
  62. package/components/event-control-board/service/e075der/e075der.service.d.ts +15 -12
  63. package/components/event-control-board/service/e113saf/e113saf-dto.d.ts +11 -11
  64. package/components/event-control-board/service/e113saf/e113saf.d.ts +14 -14
  65. package/components/event-control-board/service/e205dep/deposit-dto.d.ts +11 -11
  66. package/components/event-control-board/service/e205dep/e205dep-dto.d.ts +15 -15
  67. package/components/event-control-board/service/e205dep/e205dep.d.ts +16 -16
  68. package/components/event-control-board/service/e205dep/e205dep.service.d.ts +15 -12
  69. package/components/event-control-board/service/event-control/event-control-dto.d.ts +15 -15
  70. package/components/event-control-board/service/event-control/event-control.d.ts +21 -21
  71. package/components/event-control-board/service/event-control/event-control.module.d.ts +7 -2
  72. package/components/event-control-board/service/event-control/event-control.service.d.ts +14 -11
  73. package/components/event-control-board/service/event-control-item/event-control-item-dto.d.ts +18 -18
  74. package/components/event-control-board/service/event-control-item/event-control-item.d.ts +25 -25
  75. package/components/event-control-board/service/event-control-item/event-control-item.module.d.ts +7 -2
  76. package/components/event-control-board/service/event-control-item/event-control-item.service.d.ts +18 -15
  77. package/components/event-control-board/service/external-invoice/external-invoice-dto.d.ts +13 -13
  78. package/components/event-control-board/service/external-invoice/external-invoice.d.ts +13 -13
  79. package/components/event-control-board/service/external-invoice/external-invoice.module.d.ts +7 -2
  80. package/components/event-control-board/service/external-invoice/external-invoice.service.d.ts +14 -11
  81. package/components/event-control-board/service/fixation-entity/fixation-dto.d.ts +41 -41
  82. package/components/event-control-board/service/fixation-entity/fixation.module.d.ts +7 -2
  83. package/components/event-control-board/service/fixation-entity/fixation.service.d.ts +18 -15
  84. package/components/event-control-board/service/invoice/invoice-dto.d.ts +15 -15
  85. package/components/event-control-board/service/invoice/invoice.d.ts +21 -21
  86. package/components/event-control-board/service/invoice/invoice.module.d.ts +7 -2
  87. package/components/event-control-board/service/invoice/invoice.service.d.ts +14 -11
  88. package/components/event-control-board/service/origination/operationType.d.ts +5 -5
  89. package/components/event-control-board/service/origination/origination-dto.d.ts +50 -50
  90. package/components/event-control-board/service/origination/origination.d.ts +51 -51
  91. package/components/event-control-board/service/origination/origination.module.d.ts +7 -2
  92. package/components/event-control-board/service/origination/origination.service.d.ts +14 -11
  93. package/components/event-control-board/service/paginator-storage.service.d.ts +8 -8
  94. package/components/event-control-board/service/rural-estate/rural-estate-dto.d.ts +28 -28
  95. package/components/event-control-board/service/rural-estate/rural-estate.d.ts +34 -34
  96. package/components/event-control-board/service/rural-estate/rural-estate.module.d.ts +7 -2
  97. package/components/event-control-board/service/rural-estate/rural-estate.service.d.ts +14 -11
  98. package/components/event-control-board/service/ticket/ticket-dto.d.ts +17 -17
  99. package/components/event-control-board/service/ticket/ticket.d.ts +18 -18
  100. package/components/event-control-board/service/ticket/ticket.module.d.ts +7 -2
  101. package/components/event-control-board/service/ticket/ticket.service.d.ts +48 -45
  102. package/components/event-control-board/service/transfer/transfer-dto.d.ts +32 -32
  103. package/components/event-control-board/service/transfer/transfer.module.d.ts +7 -2
  104. package/components/event-control-board/service/transfer/transfer.service.d.ts +16 -13
  105. package/components/event-control-board/shared.module.d.ts +31 -2
  106. package/components/event-steps/event-steps.component.d.ts +39 -36
  107. package/components/event-steps/event-steps.module.d.ts +9 -2
  108. package/components/event-steps/index.d.ts +2 -2
  109. package/components/financial-title-table/financial-title-table-options.interface.d.ts +10 -10
  110. package/components/financial-title-table/financial-title-table.component.d.ts +128 -126
  111. package/components/financial-title-table/financial-title-table.module.d.ts +26 -2
  112. package/components/financial-title-table/index.d.ts +4 -4
  113. package/components/financial-title-table/services/financial/agro-financial.service.d.ts +26 -23
  114. package/components/financial-title-table/services/financial/enums.d.ts +27 -27
  115. package/components/financial-title-table/services/financial/index.d.ts +3 -3
  116. package/components/financial-title-table/services/financial/intefaces.d.ts +107 -107
  117. package/components/index.d.ts +5 -5
  118. package/components/modal-invoice-pj/for-fixation/modal-fixation-options.interface.d.ts +5 -5
  119. package/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.component.d.ts +40 -36
  120. package/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.module.d.ts +26 -2
  121. package/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.component.d.ts +32 -28
  122. package/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.module.d.ts +26 -2
  123. package/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.component.d.ts +20 -17
  124. package/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.module.d.ts +26 -2
  125. package/components/modal-invoice-pj/index.d.ts +9 -9
  126. package/components/modal-invoice-pj/modal-invoice-pj-base.class.d.ts +64 -55
  127. package/components/modal-invoice-pj/modal-invoice-pj-options.interface.d.ts +10 -10
  128. package/components/modal-invoice-pj/modal-shared-imports.d.ts +7 -8
  129. package/components/modal-invoice-pj/services/agro-invoice/agro-invoice.module.d.ts +8 -2
  130. package/components/modal-invoice-pj/services/agro-invoice/agro-invoice.service.d.ts +19 -16
  131. package/components/modal-invoice-pj/services/agro-invoice/index.d.ts +2 -2
  132. package/components/modal-invoice-pj/services/agro-invoice/interfaces.d.ts +75 -75
  133. package/enums/agro-entity-status.enum.d.ts +4 -4
  134. package/enums/agro-numbers.enum.d.ts +1008 -1008
  135. package/enums/agro-string-masks.enum.d.ts +10 -10
  136. package/enums/date-comparison-type.enum.d.ts +4 -4
  137. package/enums/fixation-status.d.ts +8 -8
  138. package/enums/http-codes.enum.d.ts +64 -64
  139. package/enums/index.d.ts +8 -7
  140. package/enums/invoice-status.enum.d.ts +12 -12
  141. package/enums/number-comparison-type.enum.d.ts +8 -8
  142. package/enums/unit-measurement.enum.d.ts +49 -49
  143. package/esm2022/agro-angular-components.module.mjs +24 -0
  144. package/esm2022/common/agro-array-utils.class.mjs +74 -0
  145. package/esm2022/common/agro-cookie-utils.class.mjs +47 -0
  146. package/esm2022/common/agro-date-utils.class.mjs +121 -0
  147. package/esm2022/common/agro-logics.class.mjs +54 -0
  148. package/esm2022/common/agro-name-utils.class.mjs +60 -0
  149. package/esm2022/common/agro-number-utils.class.mjs +129 -0
  150. package/esm2022/common/agro-object-stringifier.class.mjs +34 -0
  151. package/esm2022/common/agro-object-utils.class.mjs +320 -0
  152. package/esm2022/common/agro-platform-utils.class.mjs +119 -0
  153. package/esm2022/common/agro-regex.constant.mjs +156 -0
  154. package/esm2022/common/agro-string-utils.class.mjs +363 -0
  155. package/esm2022/common/agro-unit-converter.class.mjs +254 -0
  156. package/esm2022/common/colors.class.mjs +79 -0
  157. package/esm2022/common/edl-query-builder.class.mjs +141 -0
  158. package/esm2022/common/index.mjs +14 -0
  159. package/esm2022/components/cancel-event-dialog/cancel-event-dialog-config.mjs +2 -0
  160. package/esm2022/components/cancel-event-dialog/cancel-event-dialog.component.mjs +117 -0
  161. package/esm2022/components/cancel-event-dialog/cancel-event-dialog.module.mjs +24 -0
  162. package/esm2022/components/cancel-event-dialog/index.mjs +3 -0
  163. package/esm2022/components/event-control-board/common/control-status.mjs +7 -0
  164. package/esm2022/components/event-control-board/common/documentsToIssue.mjs +6 -0
  165. package/esm2022/components/event-control-board/common/event-control-constants.mjs +113 -0
  166. package/esm2022/components/event-control-board/common/event-operation.mjs +54 -0
  167. package/esm2022/components/event-control-board/common/event-origin.mjs +14 -0
  168. package/esm2022/components/event-control-board/common/event-status.mjs +9 -0
  169. package/esm2022/components/event-control-board/common/input-fields-translate.mjs +11 -0
  170. package/esm2022/components/event-control-board/common/input-fields.mjs +7 -0
  171. package/esm2022/components/event-control-board/common/invoice-type.mjs +11 -0
  172. package/esm2022/components/event-control-board/common/lookup-error-message.constants.mjs +11 -0
  173. package/esm2022/components/event-control-board/common/operation.mjs +7 -0
  174. package/esm2022/components/event-control-board/common/operationType.mjs +7 -0
  175. package/esm2022/components/event-control-board/common/status-entity.mjs +6 -0
  176. package/esm2022/components/event-control-board/common/ticket-status.mjs +9 -0
  177. package/esm2022/components/event-control-board/common/transfer-status.mjs +8 -0
  178. package/esm2022/components/event-control-board/event-control-board.component.mjs +609 -0
  179. package/esm2022/components/event-control-board/event-control-board.module.mjs +120 -0
  180. package/esm2022/components/event-control-board/index.mjs +22 -0
  181. package/esm2022/components/event-control-board/service/e001pes/e001pes-dto.mjs +2 -0
  182. package/esm2022/components/event-control-board/service/e001pes/e001pes.mjs +30 -0
  183. package/esm2022/components/event-control-board/service/e001pes/e001pes.module.mjs +34 -0
  184. package/esm2022/components/event-control-board/service/e001pes/e001pes.service.mjs +33 -0
  185. package/esm2022/components/event-control-board/service/e001tns/e001tns-dto.mjs +2 -0
  186. package/esm2022/components/event-control-board/service/e001tns/e001tns.mjs +51 -0
  187. package/esm2022/components/event-control-board/service/e001tns/e001tns.module.mjs +38 -0
  188. package/esm2022/components/event-control-board/service/e001tns/e001tns.service.mjs +23 -0
  189. package/esm2022/components/event-control-board/service/e012fam/e012fam-dto.mjs +2 -0
  190. package/esm2022/components/event-control-board/service/e012fam/e012fam.mjs +29 -0
  191. package/esm2022/components/event-control-board/service/e012fam/e012fam.service.mjs +23 -0
  192. package/esm2022/components/event-control-board/service/e070emp/e070emp-dto.mjs +2 -0
  193. package/esm2022/components/event-control-board/service/e070emp/e070emp.mjs +37 -0
  194. package/esm2022/components/event-control-board/service/e070emp/e070emp.module.mjs +34 -0
  195. package/esm2022/components/event-control-board/service/e070emp/e070emp.service.mjs +30 -0
  196. package/esm2022/components/event-control-board/service/e070fil/e070fil-dto.mjs +2 -0
  197. package/esm2022/components/event-control-board/service/e070fil/e070fil.mjs +52 -0
  198. package/esm2022/components/event-control-board/service/e070fil/e070fil.module.mjs +34 -0
  199. package/esm2022/components/event-control-board/service/e070fil/e070fil.service.mjs +30 -0
  200. package/esm2022/components/event-control-board/service/e075der/e075der-dto.mjs +2 -0
  201. package/esm2022/components/event-control-board/service/e075der/e075der.mjs +41 -0
  202. package/esm2022/components/event-control-board/service/e075der/e075der.module.mjs +34 -0
  203. package/esm2022/components/event-control-board/service/e075der/e075der.service.mjs +28 -0
  204. package/esm2022/components/event-control-board/service/e113saf/e113saf-dto.mjs +2 -0
  205. package/{esm2015/components/event-control-board/service/e113saf/e113saf.js → esm2022/components/event-control-board/service/e113saf/e113saf.mjs} +29 -20
  206. package/esm2022/components/event-control-board/service/e205dep/deposit-dto.mjs +2 -0
  207. package/esm2022/components/event-control-board/service/e205dep/e205dep-dto.mjs +2 -0
  208. package/esm2022/components/event-control-board/service/e205dep/e205dep.mjs +31 -0
  209. package/esm2022/components/event-control-board/service/e205dep/e205dep.service.mjs +28 -0
  210. package/esm2022/components/event-control-board/service/event-control/event-control-dto.mjs +2 -0
  211. package/esm2022/components/event-control-board/service/event-control/event-control.mjs +32 -0
  212. package/esm2022/components/event-control-board/service/event-control/event-control.module.mjs +34 -0
  213. package/esm2022/components/event-control-board/service/event-control/event-control.service.mjs +23 -0
  214. package/esm2022/components/event-control-board/service/event-control-item/event-control-item-dto.mjs +2 -0
  215. package/esm2022/components/event-control-board/service/event-control-item/event-control-item.mjs +52 -0
  216. package/esm2022/components/event-control-board/service/event-control-item/event-control-item.module.mjs +34 -0
  217. package/esm2022/components/event-control-board/service/event-control-item/event-control-item.service.mjs +28 -0
  218. package/esm2022/components/event-control-board/service/external-invoice/external-invoice-dto.mjs +2 -0
  219. package/esm2022/components/event-control-board/service/external-invoice/external-invoice.mjs +28 -0
  220. package/esm2022/components/event-control-board/service/external-invoice/external-invoice.module.mjs +34 -0
  221. package/esm2022/components/event-control-board/service/external-invoice/external-invoice.service.mjs +23 -0
  222. package/esm2022/components/event-control-board/service/fixation-entity/fixation-dto.mjs +2 -0
  223. package/esm2022/components/event-control-board/service/fixation-entity/fixation.module.mjs +34 -0
  224. package/esm2022/components/event-control-board/service/fixation-entity/fixation.service.mjs +28 -0
  225. package/esm2022/components/event-control-board/service/invoice/invoice-dto.mjs +2 -0
  226. package/esm2022/components/event-control-board/service/invoice/invoice.mjs +56 -0
  227. package/esm2022/components/event-control-board/service/invoice/invoice.module.mjs +38 -0
  228. package/esm2022/components/event-control-board/service/invoice/invoice.service.mjs +23 -0
  229. package/esm2022/components/event-control-board/service/origination/operationType.mjs +7 -0
  230. package/esm2022/components/event-control-board/service/origination/origination-dto.mjs +2 -0
  231. package/esm2022/components/event-control-board/service/origination/origination.mjs +86 -0
  232. package/esm2022/components/event-control-board/service/origination/origination.module.mjs +34 -0
  233. package/esm2022/components/event-control-board/service/origination/origination.service.mjs +23 -0
  234. package/esm2022/components/event-control-board/service/paginator-storage.service.mjs +21 -0
  235. package/esm2022/components/event-control-board/service/rural-estate/rural-estate-dto.mjs +2 -0
  236. package/esm2022/components/event-control-board/service/rural-estate/rural-estate.mjs +102 -0
  237. package/esm2022/components/event-control-board/service/rural-estate/rural-estate.module.mjs +34 -0
  238. package/esm2022/components/event-control-board/service/rural-estate/rural-estate.service.mjs +23 -0
  239. package/esm2022/components/event-control-board/service/ticket/ticket-dto.mjs +2 -0
  240. package/esm2022/components/event-control-board/service/ticket/ticket.mjs +51 -0
  241. package/esm2022/components/event-control-board/service/ticket/ticket.module.mjs +38 -0
  242. package/esm2022/components/event-control-board/service/ticket/ticket.service.mjs +58 -0
  243. package/esm2022/components/event-control-board/service/transfer/transfer-dto.mjs +2 -0
  244. package/esm2022/components/event-control-board/service/transfer/transfer.module.mjs +38 -0
  245. package/esm2022/components/event-control-board/service/transfer/transfer.service.mjs +33 -0
  246. package/esm2022/components/event-control-board/shared.module.mjs +200 -0
  247. package/esm2022/components/event-steps/event-steps.component.mjs +129 -0
  248. package/esm2022/components/event-steps/event-steps.module.mjs +19 -0
  249. package/esm2022/components/event-steps/index.mjs +3 -0
  250. package/esm2022/components/financial-title-table/financial-title-table-options.interface.mjs +2 -0
  251. package/esm2022/components/financial-title-table/financial-title-table.component.mjs +422 -0
  252. package/esm2022/components/financial-title-table/financial-title-table.module.mjs +100 -0
  253. package/esm2022/components/financial-title-table/index.mjs +4 -0
  254. package/esm2022/components/financial-title-table/services/financial/agro-financial.service.mjs +68 -0
  255. package/esm2022/components/financial-title-table/services/financial/enums.mjs +33 -0
  256. package/esm2022/components/financial-title-table/services/financial/index.mjs +3 -0
  257. package/esm2022/components/financial-title-table/services/financial/intefaces.mjs +2 -0
  258. package/esm2022/components/index.mjs +6 -0
  259. package/esm2022/components/modal-invoice-pj/for-fixation/modal-fixation-options.interface.mjs +2 -0
  260. package/esm2022/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.component.mjs +190 -0
  261. package/esm2022/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.module.mjs +38 -0
  262. package/esm2022/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.component.mjs +67 -0
  263. package/esm2022/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.module.mjs +38 -0
  264. package/esm2022/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.component.mjs +41 -0
  265. package/esm2022/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.module.mjs +38 -0
  266. package/esm2022/components/modal-invoice-pj/index.mjs +8 -0
  267. package/esm2022/components/modal-invoice-pj/modal-invoice-pj-base.class.mjs +207 -0
  268. package/esm2022/components/modal-invoice-pj/modal-invoice-pj-options.interface.mjs +2 -0
  269. package/esm2022/components/modal-invoice-pj/modal-shared-imports.mjs +42 -0
  270. package/esm2022/components/modal-invoice-pj/services/agro-invoice/agro-invoice.module.mjs +41 -0
  271. package/esm2022/components/modal-invoice-pj/services/agro-invoice/agro-invoice.service.mjs +48 -0
  272. package/esm2022/components/modal-invoice-pj/services/agro-invoice/index.mjs +3 -0
  273. package/esm2022/components/modal-invoice-pj/services/agro-invoice/interfaces.mjs +13 -0
  274. package/esm2022/enums/agro-entity-status.enum.mjs +6 -0
  275. package/{esm5/enums/agro-numbers.enum.js → esm2022/enums/agro-numbers.enum.mjs} +1009 -1009
  276. package/esm2022/enums/agro-string-masks.enum.mjs +12 -0
  277. package/esm2022/enums/date-comparison-type.enum.mjs +6 -0
  278. package/esm2022/enums/fixation-status.mjs +10 -0
  279. package/{esm2015/enums/http-codes.enum.js → esm2022/enums/http-codes.enum.mjs} +66 -66
  280. package/esm2022/enums/index.mjs +8 -0
  281. package/esm2022/enums/invoice-status.enum.mjs +14 -0
  282. package/esm2022/enums/number-comparison-type.enum.mjs +10 -0
  283. package/esm2022/enums/unit-measurement.enum.mjs +60 -0
  284. package/esm2022/form-validator/agro-form-validator.mjs +315 -0
  285. package/esm2022/form-validator/index.mjs +2 -0
  286. package/esm2022/lib-translation.module.mjs +26 -0
  287. package/esm2022/pipe/cnpj-cpf/cnpj-cpf.pipe.mjs +30 -0
  288. package/esm2022/pipe/cnpj-cpf/cnpj-cpf.pipe.module.mjs +18 -0
  289. package/esm2022/pipe/cnpj-cpf/index.mjs +3 -0
  290. package/esm2022/pipe/index.mjs +6 -0
  291. package/esm2022/pipe/kilogram/index.mjs +3 -0
  292. package/esm2022/pipe/kilogram/kilogram.module.mjs +20 -0
  293. package/esm2022/pipe/kilogram/kilogram.pipe.mjs +38 -0
  294. package/esm2022/pipe/lib-translate.pipe.mjs +24 -0
  295. package/esm2022/pipe/stringifier/index.mjs +3 -0
  296. package/esm2022/pipe/stringifier/stringifier.pipe.mjs +15 -0
  297. package/esm2022/pipe/stringifier/stringifier.pipe.module.mjs +18 -0
  298. package/esm2022/pipe/telephone/index.mjs +3 -0
  299. package/esm2022/pipe/telephone/telephone.pipe.mjs +93 -0
  300. package/esm2022/pipe/telephone/telephone.pipe.module.mjs +18 -0
  301. package/esm2022/public-api.mjs +11 -0
  302. package/esm2022/senior-agronegocio-angular-components.mjs +5 -0
  303. package/esm2022/services/agro-entity-service.mjs +137 -0
  304. package/esm2022/services/i18n/en-US.mjs +322 -0
  305. package/esm2022/services/i18n/es-CO.mjs +322 -0
  306. package/esm2022/services/i18n/pt-BR.mjs +322 -0
  307. package/esm2022/services/index.mjs +3 -0
  308. package/esm2022/services/lib-translation.service.mjs +58 -0
  309. package/esm2022/services/producer-invoice/index.mjs +3 -0
  310. package/esm2022/services/producer-invoice/producer-invoice-dto.mjs +2 -0
  311. package/esm2022/services/producer-invoice/producer-invoice.mjs +49 -0
  312. package/esm2022/services/producer-invoice/producer-invoice.service.mjs +56 -0
  313. package/esm2022/services/websocket/async-lock.mjs +27 -0
  314. package/esm2022/services/websocket/index.mjs +7 -0
  315. package/esm2022/services/websocket/models/index.mjs +2 -0
  316. package/esm2022/services/websocket/models/primitive-manager.mjs +45 -0
  317. package/esm2022/services/websocket/protocols/index.mjs +2 -0
  318. package/esm2022/services/websocket/protocols/on-event-options.mjs +2 -0
  319. package/esm2022/services/websocket/protocols/primitive-event.mjs +2 -0
  320. package/esm2022/services/websocket/user-information.service.mjs +34 -0
  321. package/esm2022/services/websocket/websocket.module.mjs +27 -0
  322. package/esm2022/services/websocket/websocket.service.mjs +327 -0
  323. package/{fesm2015/senior-agronegocio-angular-components.js → fesm2022/senior-agronegocio-angular-components.mjs} +8600 -7930
  324. package/fesm2022/senior-agronegocio-angular-components.mjs.map +1 -0
  325. package/form-validator/agro-form-validator.d.ts +117 -117
  326. package/form-validator/index.d.ts +1 -1
  327. package/index.d.ts +5 -0
  328. package/lib-translation.module.d.ts +8 -2
  329. package/package.json +60 -29
  330. package/pipe/cnpj-cpf/cnpj-cpf.pipe.d.ts +7 -4
  331. package/pipe/cnpj-cpf/cnpj-cpf.pipe.module.d.ts +8 -2
  332. package/pipe/cnpj-cpf/index.d.ts +2 -2
  333. package/pipe/index.d.ts +5 -5
  334. package/pipe/kilogram/index.d.ts +2 -2
  335. package/pipe/kilogram/kilogram.module.d.ts +8 -2
  336. package/pipe/kilogram/kilogram.pipe.d.ts +11 -8
  337. package/pipe/lib-translate.pipe.d.ts +10 -7
  338. package/pipe/stringifier/index.d.ts +2 -2
  339. package/pipe/stringifier/stringifier.pipe.d.ts +12 -9
  340. package/pipe/stringifier/stringifier.pipe.module.d.ts +8 -2
  341. package/pipe/telephone/index.d.ts +2 -2
  342. package/pipe/telephone/telephone.pipe.d.ts +24 -21
  343. package/pipe/telephone/telephone.pipe.module.d.ts +8 -2
  344. package/public-api.d.ts +9 -8
  345. package/services/agro-entity-service.d.ts +63 -62
  346. package/services/i18n/en-US.d.ts +321 -321
  347. package/services/i18n/es-CO.d.ts +321 -321
  348. package/services/i18n/pt-BR.d.ts +321 -321
  349. package/services/index.d.ts +2 -2
  350. package/services/lib-translation.service.d.ts +19 -16
  351. package/services/producer-invoice/index.d.ts +3 -3
  352. package/services/producer-invoice/producer-invoice-dto.d.ts +26 -26
  353. package/services/producer-invoice/producer-invoice.d.ts +27 -27
  354. package/services/producer-invoice/producer-invoice.service.d.ts +21 -18
  355. package/services/websocket/async-lock.d.ts +6 -6
  356. package/services/websocket/index.d.ts +6 -6
  357. package/services/websocket/models/index.d.ts +1 -1
  358. package/services/websocket/models/primitive-manager.d.ts +19 -19
  359. package/services/websocket/protocols/index.d.ts +2 -2
  360. package/services/websocket/protocols/on-event-options.d.ts +8 -8
  361. package/services/websocket/protocols/primitive-event.d.ts +10 -10
  362. package/services/websocket/user-information.service.d.ts +10 -7
  363. package/services/websocket/websocket.module.d.ts +7 -2
  364. package/services/websocket/websocket.service.d.ts +103 -100
  365. package/bundles/senior-agronegocio-angular-components.umd.js +0 -8888
  366. package/bundles/senior-agronegocio-angular-components.umd.js.map +0 -1
  367. package/bundles/senior-agronegocio-angular-components.umd.min.js +0 -17
  368. package/bundles/senior-agronegocio-angular-components.umd.min.js.map +0 -1
  369. package/esm2015/agro-angular-components.module.js +0 -22
  370. package/esm2015/common/agro-array-utils.class.js +0 -74
  371. package/esm2015/common/agro-cookie-utils.class.js +0 -47
  372. package/esm2015/common/agro-date-utils.class.js +0 -121
  373. package/esm2015/common/agro-logics.class.js +0 -54
  374. package/esm2015/common/agro-name-utils.class.js +0 -60
  375. package/esm2015/common/agro-number-utils.class.js +0 -129
  376. package/esm2015/common/agro-object-stringifier.class.js +0 -34
  377. package/esm2015/common/agro-object-utils.class.js +0 -301
  378. package/esm2015/common/agro-platform-utils.class.js +0 -119
  379. package/esm2015/common/agro-regex.constant.js +0 -156
  380. package/esm2015/common/agro-string-utils.class.js +0 -364
  381. package/esm2015/common/agro-unit-converter.class.js +0 -255
  382. package/esm2015/common/colors.class.js +0 -79
  383. package/esm2015/common/index.js +0 -13
  384. package/esm2015/components/cancel-event-dialog/cancel-event-dialog-config.js +0 -1
  385. package/esm2015/components/cancel-event-dialog/cancel-event-dialog.component.js +0 -117
  386. package/esm2015/components/cancel-event-dialog/cancel-event-dialog.module.js +0 -19
  387. package/esm2015/components/cancel-event-dialog/index.js +0 -3
  388. package/esm2015/components/event-control-board/common/control-status.js +0 -7
  389. package/esm2015/components/event-control-board/common/documentsToIssue.js +0 -6
  390. package/esm2015/components/event-control-board/common/event-control-constants.js +0 -113
  391. package/esm2015/components/event-control-board/common/event-operation.js +0 -54
  392. package/esm2015/components/event-control-board/common/event-origin.js +0 -14
  393. package/esm2015/components/event-control-board/common/event-status.js +0 -9
  394. package/esm2015/components/event-control-board/common/input-fields-translate.js +0 -11
  395. package/esm2015/components/event-control-board/common/input-fields.js +0 -7
  396. package/esm2015/components/event-control-board/common/invoice-type.js +0 -11
  397. package/esm2015/components/event-control-board/common/lookup-error-message.constants.js +0 -11
  398. package/esm2015/components/event-control-board/common/operation.js +0 -7
  399. package/esm2015/components/event-control-board/common/operationType.js +0 -7
  400. package/esm2015/components/event-control-board/common/status-entity.js +0 -6
  401. package/esm2015/components/event-control-board/common/ticket-status.js +0 -9
  402. package/esm2015/components/event-control-board/common/transfer-status.js +0 -8
  403. package/esm2015/components/event-control-board/event-control-board.component.js +0 -597
  404. package/esm2015/components/event-control-board/event-control-board.module.js +0 -66
  405. package/esm2015/components/event-control-board/index.js +0 -22
  406. package/esm2015/components/event-control-board/service/e001pes/e001pes-dto.js +0 -1
  407. package/esm2015/components/event-control-board/service/e001pes/e001pes.js +0 -20
  408. package/esm2015/components/event-control-board/service/e001pes/e001pes.module.js +0 -24
  409. package/esm2015/components/event-control-board/service/e001pes/e001pes.service.js +0 -34
  410. package/esm2015/components/event-control-board/service/e001tns/e001tns-dto.js +0 -1
  411. package/esm2015/components/event-control-board/service/e001tns/e001tns.js +0 -42
  412. package/esm2015/components/event-control-board/service/e001tns/e001tns.module.js +0 -26
  413. package/esm2015/components/event-control-board/service/e001tns/e001tns.service.js +0 -24
  414. package/esm2015/components/event-control-board/service/e012fam/e012fam-dto.js +0 -1
  415. package/esm2015/components/event-control-board/service/e012fam/e012fam.js +0 -20
  416. package/esm2015/components/event-control-board/service/e012fam/e012fam.service.js +0 -24
  417. package/esm2015/components/event-control-board/service/e070emp/e070emp-dto.js +0 -1
  418. package/esm2015/components/event-control-board/service/e070emp/e070emp.js +0 -29
  419. package/esm2015/components/event-control-board/service/e070emp/e070emp.module.js +0 -24
  420. package/esm2015/components/event-control-board/service/e070emp/e070emp.service.js +0 -31
  421. package/esm2015/components/event-control-board/service/e070fil/e070fil-dto.js +0 -1
  422. package/esm2015/components/event-control-board/service/e070fil/e070fil.js +0 -41
  423. package/esm2015/components/event-control-board/service/e070fil/e070fil.module.js +0 -24
  424. package/esm2015/components/event-control-board/service/e070fil/e070fil.service.js +0 -31
  425. package/esm2015/components/event-control-board/service/e075der/e075der-dto.js +0 -1
  426. package/esm2015/components/event-control-board/service/e075der/e075der.js +0 -31
  427. package/esm2015/components/event-control-board/service/e075der/e075der.module.js +0 -24
  428. package/esm2015/components/event-control-board/service/e075der/e075der.service.js +0 -29
  429. package/esm2015/components/event-control-board/service/e113saf/e113saf-dto.js +0 -1
  430. package/esm2015/components/event-control-board/service/e205dep/deposit-dto.js +0 -1
  431. package/esm2015/components/event-control-board/service/e205dep/e205dep-dto.js +0 -1
  432. package/esm2015/components/event-control-board/service/e205dep/e205dep.js +0 -20
  433. package/esm2015/components/event-control-board/service/e205dep/e205dep.service.js +0 -29
  434. package/esm2015/components/event-control-board/service/event-control/event-control-dto.js +0 -1
  435. package/esm2015/components/event-control-board/service/event-control/event-control.js +0 -20
  436. package/esm2015/components/event-control-board/service/event-control/event-control.module.js +0 -24
  437. package/esm2015/components/event-control-board/service/event-control/event-control.service.js +0 -24
  438. package/esm2015/components/event-control-board/service/event-control-item/event-control-item-dto.js +0 -1
  439. package/esm2015/components/event-control-board/service/event-control-item/event-control-item.js +0 -35
  440. package/esm2015/components/event-control-board/service/event-control-item/event-control-item.module.js +0 -24
  441. package/esm2015/components/event-control-board/service/event-control-item/event-control-item.service.js +0 -29
  442. package/esm2015/components/event-control-board/service/external-invoice/external-invoice-dto.js +0 -1
  443. package/esm2015/components/event-control-board/service/external-invoice/external-invoice.js +0 -20
  444. package/esm2015/components/event-control-board/service/external-invoice/external-invoice.module.js +0 -24
  445. package/esm2015/components/event-control-board/service/external-invoice/external-invoice.service.js +0 -24
  446. package/esm2015/components/event-control-board/service/fixation-entity/fixation-dto.js +0 -1
  447. package/esm2015/components/event-control-board/service/fixation-entity/fixation.module.js +0 -24
  448. package/esm2015/components/event-control-board/service/fixation-entity/fixation.service.js +0 -29
  449. package/esm2015/components/event-control-board/service/invoice/invoice-dto.js +0 -1
  450. package/esm2015/components/event-control-board/service/invoice/invoice.js +0 -43
  451. package/esm2015/components/event-control-board/service/invoice/invoice.module.js +0 -26
  452. package/esm2015/components/event-control-board/service/invoice/invoice.service.js +0 -24
  453. package/esm2015/components/event-control-board/service/origination/operationType.js +0 -7
  454. package/esm2015/components/event-control-board/service/origination/origination-dto.js +0 -1
  455. package/esm2015/components/event-control-board/service/origination/origination.js +0 -59
  456. package/esm2015/components/event-control-board/service/origination/origination.module.js +0 -24
  457. package/esm2015/components/event-control-board/service/origination/origination.service.js +0 -24
  458. package/esm2015/components/event-control-board/service/paginator-storage.service.js +0 -32
  459. package/esm2015/components/event-control-board/service/rural-estate/rural-estate-dto.js +0 -1
  460. package/esm2015/components/event-control-board/service/rural-estate/rural-estate.js +0 -78
  461. package/esm2015/components/event-control-board/service/rural-estate/rural-estate.module.js +0 -24
  462. package/esm2015/components/event-control-board/service/rural-estate/rural-estate.service.js +0 -24
  463. package/esm2015/components/event-control-board/service/ticket/ticket-dto.js +0 -1
  464. package/esm2015/components/event-control-board/service/ticket/ticket.js +0 -39
  465. package/esm2015/components/event-control-board/service/ticket/ticket.module.js +0 -26
  466. package/esm2015/components/event-control-board/service/ticket/ticket.service.js +0 -59
  467. package/esm2015/components/event-control-board/service/transfer/transfer-dto.js +0 -1
  468. package/esm2015/components/event-control-board/service/transfer/transfer.module.js +0 -26
  469. package/esm2015/components/event-control-board/service/transfer/transfer.service.js +0 -34
  470. package/esm2015/components/event-control-board/shared.module.js +0 -56
  471. package/esm2015/components/event-steps/event-steps.component.js +0 -103
  472. package/esm2015/components/event-steps/event-steps.module.js +0 -16
  473. package/esm2015/components/event-steps/index.js +0 -3
  474. package/esm2015/components/financial-title-table/financial-title-table-options.interface.js +0 -1
  475. package/esm2015/components/financial-title-table/financial-title-table.component.js +0 -416
  476. package/esm2015/components/financial-title-table/financial-title-table.module.js +0 -45
  477. package/esm2015/components/financial-title-table/index.js +0 -4
  478. package/esm2015/components/financial-title-table/services/financial/agro-financial.service.js +0 -69
  479. package/esm2015/components/financial-title-table/services/financial/enums.js +0 -33
  480. package/esm2015/components/financial-title-table/services/financial/index.js +0 -3
  481. package/esm2015/components/financial-title-table/services/financial/intefaces.js +0 -1
  482. package/esm2015/components/index.js +0 -6
  483. package/esm2015/components/modal-invoice-pj/for-fixation/modal-fixation-options.interface.js +0 -1
  484. package/esm2015/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.component.js +0 -191
  485. package/esm2015/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.module.js +0 -16
  486. package/esm2015/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.component.js +0 -64
  487. package/esm2015/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.module.js +0 -16
  488. package/esm2015/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.component.js +0 -37
  489. package/esm2015/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.module.js +0 -16
  490. package/esm2015/components/modal-invoice-pj/index.js +0 -8
  491. package/esm2015/components/modal-invoice-pj/modal-invoice-pj-base.class.js +0 -196
  492. package/esm2015/components/modal-invoice-pj/modal-invoice-pj-options.interface.js +0 -1
  493. package/esm2015/components/modal-invoice-pj/modal-shared-imports.js +0 -32
  494. package/esm2015/components/modal-invoice-pj/services/agro-invoice/agro-invoice.module.js +0 -28
  495. package/esm2015/components/modal-invoice-pj/services/agro-invoice/agro-invoice.service.js +0 -49
  496. package/esm2015/components/modal-invoice-pj/services/agro-invoice/index.js +0 -3
  497. package/esm2015/components/modal-invoice-pj/services/agro-invoice/interfaces.js +0 -13
  498. package/esm2015/enums/agro-entity-status.enum.js +0 -6
  499. package/esm2015/enums/agro-numbers.enum.js +0 -1009
  500. package/esm2015/enums/agro-string-masks.enum.js +0 -12
  501. package/esm2015/enums/date-comparison-type.enum.js +0 -6
  502. package/esm2015/enums/fixation-status.js +0 -10
  503. package/esm2015/enums/index.js +0 -8
  504. package/esm2015/enums/invoice-status.enum.js +0 -14
  505. package/esm2015/enums/number-comparison-type.enum.js +0 -10
  506. package/esm2015/enums/unit-measurement.enum.js +0 -60
  507. package/esm2015/form-validator/agro-form-validator.js +0 -319
  508. package/esm2015/form-validator/index.js +0 -2
  509. package/esm2015/lib-translation.module.js +0 -23
  510. package/esm2015/pipe/cnpj-cpf/cnpj-cpf.pipe.js +0 -28
  511. package/esm2015/pipe/cnpj-cpf/cnpj-cpf.pipe.module.js +0 -15
  512. package/esm2015/pipe/cnpj-cpf/index.js +0 -3
  513. package/esm2015/pipe/index.js +0 -6
  514. package/esm2015/pipe/kilogram/index.js +0 -3
  515. package/esm2015/pipe/kilogram/kilogram.module.js +0 -17
  516. package/esm2015/pipe/kilogram/kilogram.pipe.js +0 -38
  517. package/esm2015/pipe/lib-translate.pipe.js +0 -24
  518. package/esm2015/pipe/stringifier/index.js +0 -3
  519. package/esm2015/pipe/stringifier/stringifier.pipe.js +0 -13
  520. package/esm2015/pipe/stringifier/stringifier.pipe.module.js +0 -15
  521. package/esm2015/pipe/telephone/index.js +0 -3
  522. package/esm2015/pipe/telephone/telephone.pipe.js +0 -91
  523. package/esm2015/pipe/telephone/telephone.pipe.module.js +0 -15
  524. package/esm2015/public-api.js +0 -9
  525. package/esm2015/senior-agronegocio-angular-components.js +0 -7
  526. package/esm2015/services/agro-entity-service.js +0 -132
  527. package/esm2015/services/i18n/en-US.js +0 -322
  528. package/esm2015/services/i18n/es-CO.js +0 -322
  529. package/esm2015/services/i18n/pt-BR.js +0 -322
  530. package/esm2015/services/index.js +0 -3
  531. package/esm2015/services/lib-translation.service.js +0 -58
  532. package/esm2015/services/producer-invoice/index.js +0 -3
  533. package/esm2015/services/producer-invoice/producer-invoice-dto.js +0 -1
  534. package/esm2015/services/producer-invoice/producer-invoice.js +0 -32
  535. package/esm2015/services/producer-invoice/producer-invoice.service.js +0 -64
  536. package/esm2015/services/websocket/async-lock.js +0 -34
  537. package/esm2015/services/websocket/index.js +0 -6
  538. package/esm2015/services/websocket/models/index.js +0 -2
  539. package/esm2015/services/websocket/models/primitive-manager.js +0 -39
  540. package/esm2015/services/websocket/protocols/index.js +0 -1
  541. package/esm2015/services/websocket/protocols/on-event-options.js +0 -1
  542. package/esm2015/services/websocket/protocols/primitive-event.js +0 -1
  543. package/esm2015/services/websocket/user-information.service.js +0 -34
  544. package/esm2015/services/websocket/websocket.module.js +0 -21
  545. package/esm2015/services/websocket/websocket.service.js +0 -338
  546. package/esm5/agro-angular-components.module.js +0 -26
  547. package/esm5/common/agro-array-utils.class.js +0 -90
  548. package/esm5/common/agro-cookie-utils.class.js +0 -54
  549. package/esm5/common/agro-date-utils.class.js +0 -126
  550. package/esm5/common/agro-logics.class.js +0 -96
  551. package/esm5/common/agro-name-utils.class.js +0 -64
  552. package/esm5/common/agro-number-utils.class.js +0 -137
  553. package/esm5/common/agro-object-stringifier.class.js +0 -38
  554. package/esm5/common/agro-object-utils.class.js +0 -306
  555. package/esm5/common/agro-platform-utils.class.js +0 -123
  556. package/esm5/common/agro-regex.constant.js +0 -156
  557. package/esm5/common/agro-string-utils.class.js +0 -380
  558. package/esm5/common/agro-unit-converter.class.js +0 -258
  559. package/esm5/common/colors.class.js +0 -83
  560. package/esm5/common/index.js +0 -13
  561. package/esm5/components/cancel-event-dialog/cancel-event-dialog-config.js +0 -1
  562. package/esm5/components/cancel-event-dialog/cancel-event-dialog.component.js +0 -128
  563. package/esm5/components/cancel-event-dialog/cancel-event-dialog.module.js +0 -22
  564. package/esm5/components/cancel-event-dialog/index.js +0 -3
  565. package/esm5/components/event-control-board/common/control-status.js +0 -7
  566. package/esm5/components/event-control-board/common/documentsToIssue.js +0 -6
  567. package/esm5/components/event-control-board/common/event-control-constants.js +0 -113
  568. package/esm5/components/event-control-board/common/event-operation.js +0 -54
  569. package/esm5/components/event-control-board/common/event-origin.js +0 -14
  570. package/esm5/components/event-control-board/common/event-status.js +0 -9
  571. package/esm5/components/event-control-board/common/input-fields-translate.js +0 -11
  572. package/esm5/components/event-control-board/common/input-fields.js +0 -7
  573. package/esm5/components/event-control-board/common/invoice-type.js +0 -11
  574. package/esm5/components/event-control-board/common/lookup-error-message.constants.js +0 -11
  575. package/esm5/components/event-control-board/common/operation.js +0 -7
  576. package/esm5/components/event-control-board/common/operationType.js +0 -7
  577. package/esm5/components/event-control-board/common/status-entity.js +0 -6
  578. package/esm5/components/event-control-board/common/ticket-status.js +0 -9
  579. package/esm5/components/event-control-board/common/transfer-status.js +0 -8
  580. package/esm5/components/event-control-board/event-control-board.component.js +0 -619
  581. package/esm5/components/event-control-board/event-control-board.module.js +0 -69
  582. package/esm5/components/event-control-board/index.js +0 -22
  583. package/esm5/components/event-control-board/service/e001pes/e001pes-dto.js +0 -1
  584. package/esm5/components/event-control-board/service/e001pes/e001pes.js +0 -25
  585. package/esm5/components/event-control-board/service/e001pes/e001pes.module.js +0 -27
  586. package/esm5/components/event-control-board/service/e001pes/e001pes.service.js +0 -37
  587. package/esm5/components/event-control-board/service/e001tns/e001tns-dto.js +0 -1
  588. package/esm5/components/event-control-board/service/e001tns/e001tns.js +0 -45
  589. package/esm5/components/event-control-board/service/e001tns/e001tns.module.js +0 -29
  590. package/esm5/components/event-control-board/service/e001tns/e001tns.service.js +0 -27
  591. package/esm5/components/event-control-board/service/e012fam/e012fam-dto.js +0 -1
  592. package/esm5/components/event-control-board/service/e012fam/e012fam.js +0 -25
  593. package/esm5/components/event-control-board/service/e012fam/e012fam.service.js +0 -27
  594. package/esm5/components/event-control-board/service/e070emp/e070emp-dto.js +0 -1
  595. package/esm5/components/event-control-board/service/e070emp/e070emp.js +0 -34
  596. package/esm5/components/event-control-board/service/e070emp/e070emp.module.js +0 -27
  597. package/esm5/components/event-control-board/service/e070emp/e070emp.service.js +0 -34
  598. package/esm5/components/event-control-board/service/e070fil/e070fil-dto.js +0 -1
  599. package/esm5/components/event-control-board/service/e070fil/e070fil.js +0 -48
  600. package/esm5/components/event-control-board/service/e070fil/e070fil.module.js +0 -27
  601. package/esm5/components/event-control-board/service/e070fil/e070fil.service.js +0 -34
  602. package/esm5/components/event-control-board/service/e075der/e075der-dto.js +0 -1
  603. package/esm5/components/event-control-board/service/e075der/e075der.js +0 -36
  604. package/esm5/components/event-control-board/service/e075der/e075der.module.js +0 -27
  605. package/esm5/components/event-control-board/service/e075der/e075der.service.js +0 -32
  606. package/esm5/components/event-control-board/service/e113saf/e113saf-dto.js +0 -1
  607. package/esm5/components/event-control-board/service/e113saf/e113saf.js +0 -25
  608. package/esm5/components/event-control-board/service/e205dep/deposit-dto.js +0 -1
  609. package/esm5/components/event-control-board/service/e205dep/e205dep-dto.js +0 -1
  610. package/esm5/components/event-control-board/service/e205dep/e205dep.js +0 -25
  611. package/esm5/components/event-control-board/service/e205dep/e205dep.service.js +0 -32
  612. package/esm5/components/event-control-board/service/event-control/event-control-dto.js +0 -1
  613. package/esm5/components/event-control-board/service/event-control/event-control.js +0 -25
  614. package/esm5/components/event-control-board/service/event-control/event-control.module.js +0 -27
  615. package/esm5/components/event-control-board/service/event-control/event-control.service.js +0 -27
  616. package/esm5/components/event-control-board/service/event-control-item/event-control-item-dto.js +0 -1
  617. package/esm5/components/event-control-board/service/event-control-item/event-control-item.js +0 -40
  618. package/esm5/components/event-control-board/service/event-control-item/event-control-item.module.js +0 -27
  619. package/esm5/components/event-control-board/service/event-control-item/event-control-item.service.js +0 -32
  620. package/esm5/components/event-control-board/service/external-invoice/external-invoice-dto.js +0 -1
  621. package/esm5/components/event-control-board/service/external-invoice/external-invoice.js +0 -25
  622. package/esm5/components/event-control-board/service/external-invoice/external-invoice.module.js +0 -27
  623. package/esm5/components/event-control-board/service/external-invoice/external-invoice.service.js +0 -27
  624. package/esm5/components/event-control-board/service/fixation-entity/fixation-dto.js +0 -1
  625. package/esm5/components/event-control-board/service/fixation-entity/fixation.module.js +0 -27
  626. package/esm5/components/event-control-board/service/fixation-entity/fixation.service.js +0 -32
  627. package/esm5/components/event-control-board/service/invoice/invoice-dto.js +0 -1
  628. package/esm5/components/event-control-board/service/invoice/invoice.js +0 -48
  629. package/esm5/components/event-control-board/service/invoice/invoice.module.js +0 -29
  630. package/esm5/components/event-control-board/service/invoice/invoice.service.js +0 -27
  631. package/esm5/components/event-control-board/service/origination/operationType.js +0 -7
  632. package/esm5/components/event-control-board/service/origination/origination-dto.js +0 -1
  633. package/esm5/components/event-control-board/service/origination/origination.js +0 -62
  634. package/esm5/components/event-control-board/service/origination/origination.module.js +0 -27
  635. package/esm5/components/event-control-board/service/origination/origination.service.js +0 -27
  636. package/esm5/components/event-control-board/service/paginator-storage.service.js +0 -71
  637. package/esm5/components/event-control-board/service/rural-estate/rural-estate-dto.js +0 -1
  638. package/esm5/components/event-control-board/service/rural-estate/rural-estate.js +0 -83
  639. package/esm5/components/event-control-board/service/rural-estate/rural-estate.module.js +0 -27
  640. package/esm5/components/event-control-board/service/rural-estate/rural-estate.service.js +0 -27
  641. package/esm5/components/event-control-board/service/ticket/ticket-dto.js +0 -1
  642. package/esm5/components/event-control-board/service/ticket/ticket.js +0 -44
  643. package/esm5/components/event-control-board/service/ticket/ticket.module.js +0 -29
  644. package/esm5/components/event-control-board/service/ticket/ticket.service.js +0 -62
  645. package/esm5/components/event-control-board/service/transfer/transfer-dto.js +0 -1
  646. package/esm5/components/event-control-board/service/transfer/transfer.module.js +0 -29
  647. package/esm5/components/event-control-board/service/transfer/transfer.service.js +0 -37
  648. package/esm5/components/event-control-board/shared.module.js +0 -59
  649. package/esm5/components/event-steps/event-steps.component.js +0 -113
  650. package/esm5/components/event-steps/event-steps.module.js +0 -19
  651. package/esm5/components/event-steps/index.js +0 -3
  652. package/esm5/components/financial-title-table/financial-title-table-options.interface.js +0 -1
  653. package/esm5/components/financial-title-table/financial-title-table.component.js +0 -438
  654. package/esm5/components/financial-title-table/financial-title-table.module.js +0 -48
  655. package/esm5/components/financial-title-table/index.js +0 -4
  656. package/esm5/components/financial-title-table/services/financial/agro-financial.service.js +0 -76
  657. package/esm5/components/financial-title-table/services/financial/enums.js +0 -33
  658. package/esm5/components/financial-title-table/services/financial/index.js +0 -3
  659. package/esm5/components/financial-title-table/services/financial/intefaces.js +0 -1
  660. package/esm5/components/index.js +0 -6
  661. package/esm5/components/modal-invoice-pj/for-fixation/modal-fixation-options.interface.js +0 -1
  662. package/esm5/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.component.js +0 -223
  663. package/esm5/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.module.js +0 -19
  664. package/esm5/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.component.js +0 -67
  665. package/esm5/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.module.js +0 -19
  666. package/esm5/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.component.js +0 -40
  667. package/esm5/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.module.js +0 -19
  668. package/esm5/components/modal-invoice-pj/index.js +0 -8
  669. package/esm5/components/modal-invoice-pj/modal-invoice-pj-base.class.js +0 -213
  670. package/esm5/components/modal-invoice-pj/modal-invoice-pj-options.interface.js +0 -1
  671. package/esm5/components/modal-invoice-pj/modal-shared-imports.js +0 -32
  672. package/esm5/components/modal-invoice-pj/services/agro-invoice/agro-invoice.module.js +0 -31
  673. package/esm5/components/modal-invoice-pj/services/agro-invoice/agro-invoice.service.js +0 -56
  674. package/esm5/components/modal-invoice-pj/services/agro-invoice/index.js +0 -3
  675. package/esm5/components/modal-invoice-pj/services/agro-invoice/interfaces.js +0 -13
  676. package/esm5/enums/agro-entity-status.enum.js +0 -6
  677. package/esm5/enums/agro-string-masks.enum.js +0 -12
  678. package/esm5/enums/date-comparison-type.enum.js +0 -6
  679. package/esm5/enums/fixation-status.js +0 -10
  680. package/esm5/enums/http-codes.enum.js +0 -66
  681. package/esm5/enums/index.js +0 -8
  682. package/esm5/enums/invoice-status.enum.js +0 -14
  683. package/esm5/enums/number-comparison-type.enum.js +0 -10
  684. package/esm5/enums/unit-measurement.enum.js +0 -60
  685. package/esm5/form-validator/agro-form-validator.js +0 -341
  686. package/esm5/form-validator/index.js +0 -2
  687. package/esm5/lib-translation.module.js +0 -26
  688. package/esm5/pipe/cnpj-cpf/cnpj-cpf.pipe.js +0 -35
  689. package/esm5/pipe/cnpj-cpf/cnpj-cpf.pipe.module.js +0 -18
  690. package/esm5/pipe/cnpj-cpf/index.js +0 -3
  691. package/esm5/pipe/index.js +0 -6
  692. package/esm5/pipe/kilogram/index.js +0 -3
  693. package/esm5/pipe/kilogram/kilogram.module.js +0 -20
  694. package/esm5/pipe/kilogram/kilogram.pipe.js +0 -41
  695. package/esm5/pipe/lib-translate.pipe.js +0 -29
  696. package/esm5/pipe/stringifier/index.js +0 -3
  697. package/esm5/pipe/stringifier/stringifier.pipe.js +0 -16
  698. package/esm5/pipe/stringifier/stringifier.pipe.module.js +0 -18
  699. package/esm5/pipe/telephone/index.js +0 -3
  700. package/esm5/pipe/telephone/telephone.pipe.js +0 -95
  701. package/esm5/pipe/telephone/telephone.pipe.module.js +0 -18
  702. package/esm5/public-api.js +0 -9
  703. package/esm5/senior-agronegocio-angular-components.js +0 -7
  704. package/esm5/services/agro-entity-service.js +0 -143
  705. package/esm5/services/i18n/en-US.js +0 -322
  706. package/esm5/services/i18n/es-CO.js +0 -322
  707. package/esm5/services/i18n/pt-BR.js +0 -322
  708. package/esm5/services/index.js +0 -3
  709. package/esm5/services/lib-translation.service.js +0 -60
  710. package/esm5/services/producer-invoice/index.js +0 -3
  711. package/esm5/services/producer-invoice/producer-invoice-dto.js +0 -1
  712. package/esm5/services/producer-invoice/producer-invoice.js +0 -37
  713. package/esm5/services/producer-invoice/producer-invoice.service.js +0 -72
  714. package/esm5/services/websocket/async-lock.js +0 -43
  715. package/esm5/services/websocket/index.js +0 -6
  716. package/esm5/services/websocket/models/index.js +0 -2
  717. package/esm5/services/websocket/models/primitive-manager.js +0 -58
  718. package/esm5/services/websocket/protocols/index.js +0 -1
  719. package/esm5/services/websocket/protocols/on-event-options.js +0 -1
  720. package/esm5/services/websocket/protocols/primitive-event.js +0 -1
  721. package/esm5/services/websocket/user-information.service.js +0 -38
  722. package/esm5/services/websocket/websocket.module.js +0 -24
  723. package/esm5/services/websocket/websocket.service.js +0 -410
  724. package/fesm2015/senior-agronegocio-angular-components.js.map +0 -1
  725. package/fesm5/senior-agronegocio-angular-components.js +0 -8646
  726. package/fesm5/senior-agronegocio-angular-components.js.map +0 -1
  727. package/senior-agronegocio-angular-components.d.ts +0 -6
  728. package/senior-agronegocio-angular-components.metadata.json +0 -1
@@ -0,0 +1,156 @@
1
+ export const AGRO_REGEX = {
2
+ /**
3
+ * Validação de E-mail
4
+ */
5
+ isEmail: /^[^\s@]+@[^\s@]+\.[^\s@]+$/,
6
+ /**
7
+ * Validação de Números Inteiros Positivos
8
+ */
9
+ positiveInteger: /^[1-9]\d*$/,
10
+ /**
11
+ * Validação de Números Decimais Positivos
12
+ */
13
+ positiveDecimal: /^\d*\.?\d+$/,
14
+ /**
15
+ * Validação de string que consiste apenas em espaços em branco ou está vazia.
16
+ */
17
+ onlyBlankSpaces: /^\s*$/,
18
+ /**
19
+ * Validação de CEP (Código Postal)
20
+ */
21
+ zipCode: /^\d{8}$|^\d{5}-\d{3}$/,
22
+ /**
23
+ * Validação de String (qualquer caractere)
24
+ */
25
+ isString: /^[\s\S]*$/,
26
+ /**
27
+ * Validação de UUID
28
+ */
29
+ isUUID: /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/,
30
+ /**
31
+ * Validação de Número
32
+ */
33
+ isNumber: /^-?\d+$/,
34
+ /**
35
+ * Validação de Número Decimal
36
+ */
37
+ isDecimal: /^\d*\.?\d+$/,
38
+ /**
39
+ * Validação de Placa de Veículo
40
+ */
41
+ isLicensePlate: /^[A-Za-z0-9]{1,7}-?[A-Za-z0-9]{1,7}$/,
42
+ /**
43
+ * Validação de Número de Telefone
44
+ */
45
+ isPhoneNumber: /^\+?\d{1,4}-?\d{6,11}$/,
46
+ /**
47
+ * Validação de Data (Formato YYYY-MM-DD)
48
+ */
49
+ isDate: /^\d{4}-\d{2}-\d{2}$/,
50
+ /**
51
+ * Validação de Hora (Formato HH:mm)
52
+ */
53
+ isTime: /^(0\d|1\d|2[0-3]):[0-5]\d$/,
54
+ /**
55
+ * Validação de Data e Hora (Formato YYYY-MM-DD HH:mm)
56
+ */
57
+ isDateTime: /^\d{4}-\d{2}-\d{2} (0\d|1\d|2[0-3]):[0-5]\d$/,
58
+ /**
59
+ * Validação de URL
60
+ */
61
+ isURL: /^(http|https):\/\/([\w-]+\.)+[\w-]+(\/[\w- ./?%&=]*)?$/,
62
+ /**
63
+ * Validação de Número Hexadecimal
64
+ */
65
+ isHexNumber: /^[0-9a-fA-F]+$/,
66
+ /**
67
+ * Validação de Base64
68
+ */
69
+ isBase64: /^[a-zA-Z0-9+/]+={0,2}$/,
70
+ /**
71
+ * Validação de Nome de Usuário (3 a 20 caracteres alfanuméricos)
72
+ */
73
+ isUsername: /^\w{3,20}$/,
74
+ /**
75
+ * Validação de Alfanumérico
76
+ */
77
+ isAlphanumeric: /^[a-zA-Z0-9]+$/,
78
+ /**
79
+ * Validação de Slug (letras minúsculas, números e traços)
80
+ */
81
+ isSlug: /^[a-z0-9-]+$/,
82
+ /**
83
+ * Validação de Número de Cartão de Crédito
84
+ */
85
+ isCreditCard: /^\d{4}-\d{4}-\d{4}-\d{4}$/,
86
+ /**
87
+ * Validação de Número Hexadecimal
88
+ */
89
+ isHexadecimal: /^[0-9a-fA-F]+$/,
90
+ /**
91
+ * Validação de Moeda
92
+ */
93
+ isCurrency: /^\d+(\.\d{1,2})?$/,
94
+ /**
95
+ * Validação de Porcentagem
96
+ */
97
+ isPercentage: /^(100(\.0{1,2})?|[1-9]?\d(\.\d{1,2})?)$/,
98
+ /**
99
+ * Validação de Tag HTML Simples
100
+ */
101
+ isHTMLTag: /^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/,
102
+ /**
103
+ * Validação de Nome de Usuário com Espaços (3 a 20 caracteres alfanuméricos e espaços)
104
+ */
105
+ isUsernameWithSpaces: /^[a-zA-Z0-9_ ]{3,20}$/,
106
+ /**
107
+ * Validação de Senha Forte (mínimo 8 caracteres, uma letra minúscula, uma letra maiúscula, um número e um caractere especial)
108
+ */
109
+ isStrongPassword: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/,
110
+ /**
111
+ * Validação de String Alfabética
112
+ */
113
+ isAlphabetic: /^[a-zA-Z]+$/,
114
+ /**
115
+ * Validação de Hora no Formato de 12 Horas
116
+ */
117
+ isTime12Hour: /^(0?[1-9]|1[0-2]):\d{2} (AM|PM)$/i,
118
+ /**
119
+ * Validação de Latitude
120
+ */
121
+ isLatitude: /^[-+]?([1-8]?\d(\.\d+)?|90(\.0+)?)$/,
122
+ /**
123
+ * Validação de Longitude
124
+ */
125
+ isLongitude: /^[-+]?(180(\.0+)?|((1[0-7]\d)|([1-9]?\d))(\.\d+)?)$/,
126
+ /**
127
+ * Validação de Endereço MAC
128
+ */
129
+ isMACAddress: /^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/,
130
+ /**
131
+ * Validação de Data de Expiração de Cartão de Crédito
132
+ */
133
+ isCreditCardExpiration: /^(0[1-9]|1[0-2])\/\d{2}$/,
134
+ /**
135
+ * Validação de Número de Seguro Social (SSN)
136
+ */
137
+ isSSN: /^\d{3}-\d{2}-\d{4}$/,
138
+ /**
139
+ * Validação se todos os dígitos são iguais
140
+ */
141
+ isAllDigitsEqual: /^(.)\1+$/,
142
+ /**
143
+ * Validação de Placa de Veículo do Mercosul
144
+ * Formato: ABC1D23
145
+ */
146
+ isMercosulLicensePlate: /^[A-Z]{3}[0-9]{1}[A-Z]{1}[0-9]{2}$/,
147
+ /**
148
+ * Validação de Placa de Veículo Antiga
149
+ * Formato: AAA-0000
150
+ */
151
+ isOldLicensePlate: /^[A-Z]{3}\d{4}$/,
152
+ isISODate: /^\d{4}-\d{2}-\d{2}$/,
153
+ isISOTime: /^\d{2}:\d{2}:\d{2}$/,
154
+ isISODateTime: /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?Z$/,
155
+ };
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1yZWdleC5jb25zdGFudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9jb21tb24vYWdyby1yZWdleC5jb25zdGFudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDdEI7O09BRUc7SUFDSCxPQUFPLEVBQUUsNEJBQTRCO0lBRXJDOztPQUVHO0lBQ0gsZUFBZSxFQUFFLFlBQVk7SUFFN0I7O09BRUc7SUFDSCxlQUFlLEVBQUUsYUFBYTtJQUU5Qjs7T0FFRztJQUNILGVBQWUsRUFBRSxPQUFPO0lBRXhCOztPQUVHO0lBQ0gsT0FBTyxFQUFFLHVCQUF1QjtJQUVoQzs7T0FFRztJQUNILFFBQVEsRUFBRSxXQUFXO0lBRXJCOztPQUVHO0lBQ0gsTUFBTSxFQUFFLDRGQUE0RjtJQUVwRzs7T0FFRztJQUNILFFBQVEsRUFBRSxTQUFTO0lBRW5COztPQUVHO0lBQ0gsU0FBUyxFQUFFLGFBQWE7SUFFeEI7O09BRUc7SUFDSCxjQUFjLEVBQUUsc0NBQXNDO0lBRXREOztPQUVHO0lBQ0gsYUFBYSxFQUFFLHdCQUF3QjtJQUV2Qzs7T0FFRztJQUNILE1BQU0sRUFBRSxxQkFBcUI7SUFFN0I7O09BRUc7SUFDSCxNQUFNLEVBQUUsNEJBQTRCO0lBRXBDOztPQUVHO0lBQ0gsVUFBVSxFQUFFLDhDQUE4QztJQUUxRDs7T0FFRztJQUNILEtBQUssRUFBRSx3REFBd0Q7SUFFL0Q7O09BRUc7SUFDSCxXQUFXLEVBQUUsZ0JBQWdCO0lBRTdCOztPQUVHO0lBQ0gsUUFBUSxFQUFFLHdCQUF3QjtJQUVsQzs7T0FFRztJQUNILFVBQVUsRUFBRSxZQUFZO0lBRXhCOztPQUVHO0lBQ0gsY0FBYyxFQUFFLGdCQUFnQjtJQUVoQzs7T0FFRztJQUNILE1BQU0sRUFBRSxjQUFjO0lBRXRCOztPQUVHO0lBQ0gsWUFBWSxFQUFFLDJCQUEyQjtJQUV6Qzs7T0FFRztJQUNILGFBQWEsRUFBRSxnQkFBZ0I7SUFFL0I7O09BRUc7SUFDSCxVQUFVLEVBQUUsbUJBQW1CO0lBRS9COztPQUVHO0lBQ0gsWUFBWSxFQUFFLHlDQUF5QztJQUV2RDs7T0FFRztJQUNILFNBQVMsRUFBRSwyQ0FBMkM7SUFFdEQ7O09BRUc7SUFDSCxvQkFBb0IsRUFBRSx1QkFBdUI7SUFFN0M7O09BRUc7SUFDSCxnQkFBZ0IsRUFBRSxzRUFBc0U7SUFFeEY7O09BRUc7SUFDSCxZQUFZLEVBQUUsYUFBYTtJQUUzQjs7T0FFRztJQUNILFlBQVksRUFBRSxtQ0FBbUM7SUFFakQ7O09BRUc7SUFDSCxVQUFVLEVBQUUscUNBQXFDO0lBRWpEOztPQUVHO0lBQ0gsV0FBVyxFQUFFLHFEQUFxRDtJQUVsRTs7T0FFRztJQUNILFlBQVksRUFBRSwyQ0FBMkM7SUFFekQ7O09BRUc7SUFDSCxzQkFBc0IsRUFBRSwwQkFBMEI7SUFFbEQ7O09BRUc7SUFDSCxLQUFLLEVBQUUscUJBQXFCO0lBRTVCOztPQUVHO0lBQ0gsZ0JBQWdCLEVBQUUsVUFBVTtJQUU1Qjs7O09BR0c7SUFDSCxzQkFBc0IsRUFBRSxvQ0FBb0M7SUFFNUQ7OztPQUdHO0lBQ0gsaUJBQWlCLEVBQUUsaUJBQWlCO0lBRXBDLFNBQVMsRUFBRSxxQkFBcUI7SUFDaEMsU0FBUyxFQUFFLHFCQUFxQjtJQUNoQyxhQUFhLEVBQUUsa0RBQWtEO0NBQ3BFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQUdST19SRUdFWCA9IHtcclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgRS1tYWlsXHJcbiAgICAgKi9cclxuICAgIGlzRW1haWw6IC9eW15cXHNAXStAW15cXHNAXStcXC5bXlxcc0BdKyQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgTsO6bWVyb3MgSW50ZWlyb3MgUG9zaXRpdm9zXHJcbiAgICAgKi9cclxuICAgIHBvc2l0aXZlSW50ZWdlcjogL15bMS05XVxcZCokLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE7Dum1lcm9zIERlY2ltYWlzIFBvc2l0aXZvc1xyXG4gICAgICovXHJcbiAgICBwb3NpdGl2ZURlY2ltYWw6IC9eXFxkKlxcLj9cXGQrJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBzdHJpbmcgcXVlIGNvbnNpc3RlIGFwZW5hcyBlbSBlc3Bhw6dvcyBlbSBicmFuY28gb3UgZXN0w6EgdmF6aWEuXHJcbiAgICAgKi9cclxuICAgIG9ubHlCbGFua1NwYWNlczogL15cXHMqJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBDRVAgKEPDs2RpZ28gUG9zdGFsKVxyXG4gICAgICovXHJcbiAgICB6aXBDb2RlOiAvXlxcZHs4fSR8XlxcZHs1fS1cXGR7M30kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIFN0cmluZyAocXVhbHF1ZXIgY2FyYWN0ZXJlKVxyXG4gICAgICovXHJcbiAgICBpc1N0cmluZzogL15bXFxzXFxTXSokLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIFVVSURcclxuICAgICAqL1xyXG4gICAgaXNVVUlEOiAvXlswLTlhLWZBLUZdezh9LVswLTlhLWZBLUZdezR9LVsxLTVdWzAtOWEtZkEtRl17M30tWzg5YWJBQl1bMC05YS1mQS1GXXszfS1bMC05YS1mQS1GXXsxMn0kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIE7Dum1lcm9cclxuICAgICAqL1xyXG4gICAgaXNOdW1iZXI6IC9eLT9cXGQrJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOw7ptZXJvIERlY2ltYWxcclxuICAgICAqL1xyXG4gICAgaXNEZWNpbWFsOiAvXlxcZCpcXC4/XFxkKyQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgUGxhY2EgZGUgVmXDrWN1bG9cclxuICAgICAqL1xyXG4gICAgaXNMaWNlbnNlUGxhdGU6IC9eW0EtWmEtejAtOV17MSw3fS0/W0EtWmEtejAtOV17MSw3fSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgTsO6bWVybyBkZSBUZWxlZm9uZVxyXG4gICAgICovXHJcbiAgICBpc1Bob25lTnVtYmVyOiAvXlxcKz9cXGR7MSw0fS0/XFxkezYsMTF9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBEYXRhIChGb3JtYXRvIFlZWVktTU0tREQpXHJcbiAgICAgKi9cclxuICAgIGlzRGF0ZTogL15cXGR7NH0tXFxkezJ9LVxcZHsyfSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgSG9yYSAoRm9ybWF0byBISDptbSlcclxuICAgICAqL1xyXG4gICAgaXNUaW1lOiAvXigwXFxkfDFcXGR8MlswLTNdKTpbMC01XVxcZCQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgRGF0YSBlIEhvcmEgKEZvcm1hdG8gWVlZWS1NTS1ERCBISDptbSlcclxuICAgICAqL1xyXG4gICAgaXNEYXRlVGltZTogL15cXGR7NH0tXFxkezJ9LVxcZHsyfSAoMFxcZHwxXFxkfDJbMC0zXSk6WzAtNV1cXGQkLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIFVSTFxyXG4gICAgICovXHJcbiAgICBpc1VSTDogL14oaHR0cHxodHRwcyk6XFwvXFwvKFtcXHctXStcXC4pK1tcXHctXSsoXFwvW1xcdy0gLi8/JSY9XSopPyQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgTsO6bWVybyBIZXhhZGVjaW1hbFxyXG4gICAgICovXHJcbiAgICBpc0hleE51bWJlcjogL15bMC05YS1mQS1GXSskLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIEJhc2U2NFxyXG4gICAgICovXHJcbiAgICBpc0Jhc2U2NDogL15bYS16QS1aMC05Ky9dKz17MCwyfSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgTm9tZSBkZSBVc3XDoXJpbyAoMyBhIDIwIGNhcmFjdGVyZXMgYWxmYW51bcOpcmljb3MpXHJcbiAgICAgKi9cclxuICAgIGlzVXNlcm5hbWU6IC9eXFx3ezMsMjB9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBBbGZhbnVtw6lyaWNvXHJcbiAgICAgKi9cclxuICAgIGlzQWxwaGFudW1lcmljOiAvXlthLXpBLVowLTldKyQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgU2x1ZyAobGV0cmFzIG1pbsO6c2N1bGFzLCBuw7ptZXJvcyBlIHRyYcOnb3MpXHJcbiAgICAgKi9cclxuICAgIGlzU2x1ZzogL15bYS16MC05LV0rJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBOw7ptZXJvIGRlIENhcnTDo28gZGUgQ3LDqWRpdG9cclxuICAgICAqL1xyXG4gICAgaXNDcmVkaXRDYXJkOiAvXlxcZHs0fS1cXGR7NH0tXFxkezR9LVxcZHs0fSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgTsO6bWVybyBIZXhhZGVjaW1hbFxyXG4gICAgICovXHJcbiAgICBpc0hleGFkZWNpbWFsOiAvXlswLTlhLWZBLUZdKyQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgTW9lZGFcclxuICAgICAqL1xyXG4gICAgaXNDdXJyZW5jeTogL15cXGQrKFxcLlxcZHsxLDJ9KT8kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIFBvcmNlbnRhZ2VtXHJcbiAgICAgKi9cclxuICAgIGlzUGVyY2VudGFnZTogL14oMTAwKFxcLjB7MSwyfSk/fFsxLTldP1xcZChcXC5cXGR7MSwyfSk/KSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgVGFnIEhUTUwgU2ltcGxlc1xyXG4gICAgICovXHJcbiAgICBpc0hUTUxUYWc6IC9ePChbYS16XSspKFtePF0rKSooPzo+KC4qKTxcXC9cXDE+fFxccytcXC8+KSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgTm9tZSBkZSBVc3XDoXJpbyBjb20gRXNwYcOnb3MgKDMgYSAyMCBjYXJhY3RlcmVzIGFsZmFudW3DqXJpY29zIGUgZXNwYcOnb3MpXHJcbiAgICAgKi9cclxuICAgIGlzVXNlcm5hbWVXaXRoU3BhY2VzOiAvXlthLXpBLVowLTlfIF17MywyMH0kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIFNlbmhhIEZvcnRlIChtw61uaW1vIDggY2FyYWN0ZXJlcywgdW1hIGxldHJhIG1pbsO6c2N1bGEsIHVtYSBsZXRyYSBtYWnDunNjdWxhLCB1bSBuw7ptZXJvIGUgdW0gY2FyYWN0ZXJlIGVzcGVjaWFsKVxyXG4gICAgICovXHJcbiAgICBpc1N0cm9uZ1Bhc3N3b3JkOiAvXig/PS4qW2Etel0pKD89LipbQS1aXSkoPz0uKlxcZCkoPz0uKltAJCElKj8mXSlbQS1aYS16XFxkQCQhJSo/Jl17OCx9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBTdHJpbmcgQWxmYWLDqXRpY2FcclxuICAgICAqL1xyXG4gICAgaXNBbHBoYWJldGljOiAvXlthLXpBLVpdKyQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgSG9yYSBubyBGb3JtYXRvIGRlIDEyIEhvcmFzXHJcbiAgICAgKi9cclxuICAgIGlzVGltZTEySG91cjogL14oMD9bMS05XXwxWzAtMl0pOlxcZHsyfSAoQU18UE0pJC9pLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgTGF0aXR1ZGVcclxuICAgICAqL1xyXG4gICAgaXNMYXRpdHVkZTogL15bLStdPyhbMS04XT9cXGQoXFwuXFxkKyk/fDkwKFxcLjArKT8pJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBMb25naXR1ZGVcclxuICAgICAqL1xyXG4gICAgaXNMb25naXR1ZGU6IC9eWy0rXT8oMTgwKFxcLjArKT98KCgxWzAtN11cXGQpfChbMS05XT9cXGQpKShcXC5cXGQrKT8pJC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBkZSBFbmRlcmXDp28gTUFDXHJcbiAgICAgKi9cclxuICAgIGlzTUFDQWRkcmVzczogL14oWzAtOUEtRmEtZl17Mn1bOi1dKXs1fShbMC05QS1GYS1mXXsyfSkkLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIERhdGEgZGUgRXhwaXJhw6fDo28gZGUgQ2FydMOjbyBkZSBDcsOpZGl0b1xyXG4gICAgICovXHJcbiAgICBpc0NyZWRpdENhcmRFeHBpcmF0aW9uOiAvXigwWzEtOV18MVswLTJdKVxcL1xcZHsyfSQvLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhw6fDo28gZGUgTsO6bWVybyBkZSBTZWd1cm8gU29jaWFsIChTU04pXHJcbiAgICAgKi9cclxuICAgIGlzU1NOOiAvXlxcZHszfS1cXGR7Mn0tXFxkezR9JC8sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGHDp8OjbyBzZSB0b2RvcyBvcyBkw61naXRvcyBzw6NvIGlndWFpc1xyXG4gICAgICovXHJcbiAgICBpc0FsbERpZ2l0c0VxdWFsOiAvXiguKVxcMSskLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIFBsYWNhIGRlIFZlw61jdWxvIGRvIE1lcmNvc3VsXHJcbiAgICAgKiBGb3JtYXRvOiBBQkMxRDIzXHJcbiAgICAgKi9cclxuICAgIGlzTWVyY29zdWxMaWNlbnNlUGxhdGU6IC9eW0EtWl17M31bMC05XXsxfVtBLVpdezF9WzAtOV17Mn0kLyxcclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYcOnw6NvIGRlIFBsYWNhIGRlIFZlw61jdWxvIEFudGlnYVxyXG4gICAgICogRm9ybWF0bzogQUFBLTAwMDBcclxuICAgICAqL1xyXG4gICAgaXNPbGRMaWNlbnNlUGxhdGU6IC9eW0EtWl17M31cXGR7NH0kLyxcclxuXHJcbiAgICBpc0lTT0RhdGU6IC9eXFxkezR9LVxcZHsyfS1cXGR7Mn0kLyxcclxuICAgIGlzSVNPVGltZTogL15cXGR7Mn06XFxkezJ9OlxcZHsyfSQvLFxyXG4gICAgaXNJU09EYXRlVGltZTogL15cXGR7NH0tXFxkezJ9LVxcZHsyfVRcXGR7Mn06XFxkezJ9OlxcZHsyfSg/OlxcLlxcZCspP1okLyxcclxufTtcclxuIl19
@@ -0,0 +1,363 @@
1
+ import { AGRO_NUMBERS } from "../enums";
2
+ import { AGRO_REGEX } from "./agro-regex.constant";
3
+ export { AgroStringUtils as StringUtils };
4
+ /**
5
+ * Classe utilitária para operações de string.
6
+ */
7
+ export class AgroStringUtils {
8
+ static CNPJ_TRADICIONAL_PESOS_1 = [
9
+ AGRO_NUMBERS.FIVE,
10
+ AGRO_NUMBERS.FOUR,
11
+ AGRO_NUMBERS.THREE,
12
+ AGRO_NUMBERS.TWO,
13
+ AGRO_NUMBERS.NINE,
14
+ AGRO_NUMBERS.EIGHT,
15
+ AGRO_NUMBERS.SEVEN,
16
+ AGRO_NUMBERS.SIX,
17
+ AGRO_NUMBERS.FIVE,
18
+ AGRO_NUMBERS.FOUR,
19
+ AGRO_NUMBERS.THREE,
20
+ AGRO_NUMBERS.TWO,
21
+ ];
22
+ static CNPJ_TRADICIONAL_PESOS_2 = [
23
+ AGRO_NUMBERS.SIX,
24
+ AGRO_NUMBERS.FIVE,
25
+ AGRO_NUMBERS.FOUR,
26
+ AGRO_NUMBERS.THREE,
27
+ AGRO_NUMBERS.TWO,
28
+ AGRO_NUMBERS.NINE,
29
+ AGRO_NUMBERS.EIGHT,
30
+ AGRO_NUMBERS.SEVEN,
31
+ AGRO_NUMBERS.SIX,
32
+ AGRO_NUMBERS.FIVE,
33
+ AGRO_NUMBERS.FOUR,
34
+ AGRO_NUMBERS.THREE,
35
+ AGRO_NUMBERS.TWO,
36
+ ];
37
+ // Pesos utilizados para cálculo de dígitos verificadores do CNPJ alfanumérico (2026)
38
+ static CNPJ_ALFANUMERICO_PESOS_1 = [
39
+ AGRO_NUMBERS.FIVE,
40
+ AGRO_NUMBERS.FOUR,
41
+ AGRO_NUMBERS.THREE,
42
+ AGRO_NUMBERS.TWO,
43
+ AGRO_NUMBERS.NINE,
44
+ AGRO_NUMBERS.EIGHT,
45
+ AGRO_NUMBERS.SEVEN,
46
+ AGRO_NUMBERS.SIX,
47
+ AGRO_NUMBERS.FIVE,
48
+ AGRO_NUMBERS.FOUR,
49
+ AGRO_NUMBERS.THREE,
50
+ AGRO_NUMBERS.TWO,
51
+ ];
52
+ static CNPJ_ALFANUMERICO_PESOS_2 = [
53
+ AGRO_NUMBERS.SIX,
54
+ AGRO_NUMBERS.FIVE,
55
+ AGRO_NUMBERS.FOUR,
56
+ AGRO_NUMBERS.THREE,
57
+ AGRO_NUMBERS.TWO,
58
+ AGRO_NUMBERS.NINE,
59
+ AGRO_NUMBERS.EIGHT,
60
+ AGRO_NUMBERS.SEVEN,
61
+ AGRO_NUMBERS.SIX,
62
+ AGRO_NUMBERS.FIVE,
63
+ AGRO_NUMBERS.FOUR,
64
+ AGRO_NUMBERS.THREE,
65
+ AGRO_NUMBERS.TWO,
66
+ ];
67
+ /** Retorna true se a string contém apenas letras */
68
+ static isOnlyLetters(str) {
69
+ if (!str) {
70
+ return false;
71
+ }
72
+ return /^[A-Za-z]+$/.test(str);
73
+ }
74
+ /** Retorna true se a string contém pelo menos uma letra */
75
+ static hasLetters(str) {
76
+ if (!str) {
77
+ return false;
78
+ }
79
+ return /[A-Za-z]/.test(str);
80
+ }
81
+ /** Retorna true se a string contém apenas números */
82
+ static isOnlyNumbers(str) {
83
+ if (!str) {
84
+ return false;
85
+ }
86
+ return /^\d+$/.test(str);
87
+ }
88
+ /** Retorna true se a string contém pelo menos um número */
89
+ static hasNumbers(str) {
90
+ if (!str) {
91
+ return false;
92
+ }
93
+ return /\d/.test(str);
94
+ }
95
+ /**
96
+ * Verifica se a string está vazia.
97
+ */
98
+ static isEmpty(str) {
99
+ if (str && AgroStringUtils.isString(str)) {
100
+ return str?.trim()?.length === AGRO_NUMBERS.ZERO;
101
+ }
102
+ return true;
103
+ }
104
+ /**
105
+ * Verifica se a string não está vazia.
106
+ */
107
+ static isNotEmpty(str) {
108
+ if (str && AgroStringUtils.isString(str)) {
109
+ return !AgroStringUtils.isEmpty(str);
110
+ }
111
+ return false;
112
+ }
113
+ /** Verifica se a string é nula, indefinida ou contém apenas espaços em branco */
114
+ static isBlank(str) {
115
+ return !str || AGRO_REGEX.onlyBlankSpaces.test(str);
116
+ }
117
+ /** Verifica se a string não é nula, indefinida ou contém apenas espaços em branco */
118
+ static isNotBlank(str) {
119
+ return !AgroStringUtils.isBlank(str);
120
+ }
121
+ /**
122
+ * Remove espaços em branco do início e do fim da string.
123
+ */
124
+ static trimToNull(str) {
125
+ if (!str) {
126
+ return null;
127
+ }
128
+ const trimmed = str.trim();
129
+ return trimmed === "" ? null : trimmed;
130
+ }
131
+ /**
132
+ * Compara duas strings ignorando diferenças entre maiúsculas e minúsculas.
133
+ */
134
+ static equalsIgnoreCase(str1, str2) {
135
+ return str1?.toLowerCase() === str2?.toLowerCase();
136
+ }
137
+ /**
138
+ * Compara duas strings considerando diferenças entre maiúsculas e minúsculas.
139
+ */
140
+ static equals(str1, str2) {
141
+ return str1 === str2;
142
+ }
143
+ static reverse(str) {
144
+ return str.split("").reverse().join("");
145
+ }
146
+ static isEmail(str) {
147
+ return AGRO_REGEX.isEmail.test(str);
148
+ }
149
+ static isPositiveInteger(str) {
150
+ return AGRO_REGEX.positiveInteger.test(str);
151
+ }
152
+ /** Retorna true se a string é uma string válida (não null, não undefined, não vazia) */
153
+ static isString(value) {
154
+ return typeof value === "string" && value.trim().length > AGRO_NUMBERS.ZERO;
155
+ }
156
+ static isPositiveDecimal(str) {
157
+ return AGRO_REGEX.positiveDecimal.test(str);
158
+ }
159
+ static isZipCode(str) {
160
+ return AGRO_REGEX.zipCode.test(str);
161
+ }
162
+ static isUUID(str) {
163
+ return AGRO_REGEX.isUUID.test(str);
164
+ }
165
+ static isNumber(str) {
166
+ return [AGRO_REGEX.isNumber.test(str), AGRO_REGEX.isDecimal.test(str)].includes(true);
167
+ }
168
+ static validateCPF(cpf) {
169
+ cpf = cpf.replace(/\D/g, "");
170
+ if (cpf.length !== AGRO_NUMBERS.ELEVEN || /^(\d)\1+$/.test(cpf)) {
171
+ return false;
172
+ }
173
+ const calcVerifier = (cpf, length) => {
174
+ let sum = AGRO_NUMBERS.ZERO;
175
+ for (let i = AGRO_NUMBERS.ZERO; i < length; i++) {
176
+ sum += parseInt(cpf[i], AGRO_NUMBERS.TEN) * (length + AGRO_NUMBERS.ONE - i);
177
+ }
178
+ const result = sum % AGRO_NUMBERS.ELEVEN;
179
+ return result < AGRO_NUMBERS.TWO ? AGRO_NUMBERS.ZERO : AGRO_NUMBERS.ELEVEN - result;
180
+ };
181
+ const digit1 = calcVerifier(cpf, AGRO_NUMBERS.NINE);
182
+ const digit2 = calcVerifier(cpf, AGRO_NUMBERS.TEN);
183
+ return (digit1 === parseInt(cpf[AGRO_NUMBERS.NINE], AGRO_NUMBERS.TEN) && digit2 === parseInt(cpf[AGRO_NUMBERS.TEN], AGRO_NUMBERS.TEN));
184
+ }
185
+ /**
186
+ * Detecta automaticamente se é CNPJ antigo ou novo formato.
187
+ */
188
+ static validateCNPJ(cnpj) {
189
+ if (!cnpj) {
190
+ return false;
191
+ }
192
+ cnpj = cnpj.trim();
193
+ // Se contém letras → valida formato alfanumérico
194
+ if (AgroStringUtils.hasLetters(cnpj)) {
195
+ return AgroStringUtils.validateCNPJAlfanumerico(cnpj);
196
+ }
197
+ // Caso contrário, valida como CNPJ tradicional
198
+ return AgroStringUtils.validateCNPJAntigo(cnpj);
199
+ }
200
+ /**
201
+ * Valida o CNPJ tradicional (somente números)
202
+ */
203
+ static validateCNPJAntigo(cnpj) {
204
+ cnpj = cnpj.replace(/\D/g, "");
205
+ if (!AgroStringUtils.isOnlyNumbers(cnpj)) {
206
+ return false;
207
+ }
208
+ if (cnpj.length !== AGRO_NUMBERS.FOURTEEN) {
209
+ return false;
210
+ }
211
+ if (/^(\d)\1{13}$/.test(cnpj)) {
212
+ return false;
213
+ }
214
+ let soma = AGRO_NUMBERS.ZERO;
215
+ for (let i = AGRO_NUMBERS.ZERO; i < AGRO_NUMBERS.TWELVE; i++) {
216
+ soma += parseInt(cnpj.charAt(i), AGRO_NUMBERS.TEN) * AgroStringUtils.CNPJ_TRADICIONAL_PESOS_1[i];
217
+ }
218
+ let resto = soma % AGRO_NUMBERS.ELEVEN;
219
+ const digito1 = resto < AGRO_NUMBERS.TWO ? AGRO_NUMBERS.ZERO : AGRO_NUMBERS.ELEVEN - resto;
220
+ soma = AGRO_NUMBERS.ZERO;
221
+ for (let i = AGRO_NUMBERS.ZERO; i < AGRO_NUMBERS.THIRTEEN; i++) {
222
+ soma += parseInt(cnpj.charAt(i), AGRO_NUMBERS.TEN) * AgroStringUtils.CNPJ_TRADICIONAL_PESOS_2[i];
223
+ }
224
+ resto = soma % AGRO_NUMBERS.ELEVEN;
225
+ const digito2 = resto < AGRO_NUMBERS.TWO ? AGRO_NUMBERS.ZERO : AGRO_NUMBERS.ELEVEN - resto;
226
+ return (parseInt(cnpj.charAt(AGRO_NUMBERS.TWELVE), AGRO_NUMBERS.TEN) === digito1 &&
227
+ parseInt(cnpj.charAt(AGRO_NUMBERS.THIRTEEN), AGRO_NUMBERS.TEN) === digito2);
228
+ }
229
+ /**
230
+ * Valida o CNPJ em formato alfanumérico (padrão 2026)
231
+ */
232
+ static validateCNPJAlfanumerico(cnpj) {
233
+ if (!AgroStringUtils.isString(cnpj)) {
234
+ return false;
235
+ }
236
+ // Remove caracteres especiais (pontos, barra, traço, espaços)
237
+ const clean = cnpj.replace(/[^A-Za-z0-9]/g, "").toUpperCase();
238
+ // O CNPJ deve ter exatamente 14 posições
239
+ if (clean.length !== AGRO_NUMBERS.FOURTEEN) {
240
+ return false;
241
+ }
242
+ // Verifica se há pelo menos uma letra e um número
243
+ if (!AgroStringUtils.hasLetters(clean) || !AgroStringUtils.hasNumbers(clean)) {
244
+ return false;
245
+ }
246
+ // Calcula o primeiro dígito verificador
247
+ const pesos1 = AgroStringUtils.CNPJ_ALFANUMERICO_PESOS_1;
248
+ const pesos2 = AgroStringUtils.CNPJ_ALFANUMERICO_PESOS_2;
249
+ // Pega os 12 primeiros caracteres
250
+ const base = clean.substring(AGRO_NUMBERS.ZERO, AGRO_NUMBERS.TWELVE);
251
+ const dvInformado = clean.substring(AGRO_NUMBERS.TWELVE, AGRO_NUMBERS.FOURTEEN);
252
+ const calculaDV = (str, pesos) => {
253
+ let soma = AGRO_NUMBERS.ZERO;
254
+ for (let i = AGRO_NUMBERS.ZERO; i < pesos.length; i++) {
255
+ const char = str.charAt(i);
256
+ const asciiValue = char.charCodeAt(0) - AGRO_NUMBERS.FORTY_EIGHT; // conforme documento (48 = '0')
257
+ soma += asciiValue * pesos[i]; // asciiValue já calculado a partir do enum FORTY_EIGHT
258
+ }
259
+ const resto = soma % AGRO_NUMBERS.ELEVEN;
260
+ const digito = AGRO_NUMBERS.ELEVEN - resto;
261
+ return digito > AGRO_NUMBERS.NINE ? AGRO_NUMBERS.ZERO : digito; // segue mesma regra do CNPJ tradicional
262
+ };
263
+ const dv1 = calculaDV(base, pesos1);
264
+ const dv2 = calculaDV(base + dv1.toString(), pesos2);
265
+ const dvCalculado = `${dv1}${dv2}`;
266
+ return dvCalculado === dvInformado;
267
+ }
268
+ /** Calcula a diferença entre duas strings em termos de número de caracteres diferentes */
269
+ static difference(str1, str2) {
270
+ const len1 = str1.length;
271
+ const len2 = str2.length;
272
+ let diff = Math.abs(len1 - len2);
273
+ for (let i = AGRO_NUMBERS.ZERO; i < Math.min(len1, len2); i++) {
274
+ if (str1[i] !== str2[i]) {
275
+ diff++;
276
+ }
277
+ }
278
+ return diff;
279
+ }
280
+ /** Verifica se str1 termina com str2 */
281
+ static endsWith(str1, str2) {
282
+ return str1.endsWith(str2);
283
+ }
284
+ /** Verifica se str1 começa com str2 */
285
+ static startsWith(str1, str2) {
286
+ return str1.startsWith(str2);
287
+ }
288
+ /** Verifica se str1 contém str2 */
289
+ static contains(str1, str2) {
290
+ return str1.includes(str2);
291
+ }
292
+ /** Verifica se str1 começa com str2, ignorando maiúsculas e minúsculas */
293
+ static startsWithIgnoreCase(str1, str2) {
294
+ return str1.toLowerCase().startsWith(str2.toLowerCase());
295
+ }
296
+ /** Verifica se str1 termina com str2, ignorando maiúsculas e minúsculas */
297
+ static endsWithIgnoreCase(str1, str2) {
298
+ return str1.toLowerCase().endsWith(str2.toLowerCase());
299
+ }
300
+ /** Inverte o caso de cada letra na string */
301
+ static swapCase(str) {
302
+ let swapped = "";
303
+ for (let i = AGRO_NUMBERS.ZERO; i < str.length; i++) {
304
+ const char = str[i];
305
+ swapped += char === char.toUpperCase() ? char.toLowerCase() : char.toUpperCase();
306
+ }
307
+ return swapped;
308
+ }
309
+ /** Coloca a primeira letra da string em maiúsculo */
310
+ static capitalize(str) {
311
+ return str.charAt(AGRO_NUMBERS.ZERO).toUpperCase() + str.slice(1);
312
+ }
313
+ /** Coloca a primeira letra da string em minúsculo */
314
+ static uncapitalize(str) {
315
+ return str.charAt(AGRO_NUMBERS.ZERO).toLowerCase() + str.slice(1);
316
+ }
317
+ /** Conta o número de ocorrências de uma substring dentro de uma string */
318
+ static countMatches(str, substring) {
319
+ const regex = new RegExp(substring, "g");
320
+ const matches = str.match(regex);
321
+ return matches ? matches.length : AGRO_NUMBERS.ZERO;
322
+ }
323
+ /**
324
+ * Aplica uma máscara simples à string fornecida.O padrão de máscaras é definido pelo enum AgroStringMasks ou
325
+ * pode ser uma string personalizada onde '9' representa um dígito a ser substituído pelo caractere correspondente
326
+ * da string.
327
+ */
328
+ static applyMask(value, mask) {
329
+ const valueChars = value.replace(/[^A-Za-z0-9]/g, "");
330
+ const maskChars = mask.split("");
331
+ let maskedValue = "";
332
+ let j = AGRO_NUMBERS.ZERO;
333
+ for (const maskChar of maskChars) {
334
+ if (j >= valueChars.length) {
335
+ break;
336
+ }
337
+ if (maskChar === "9") {
338
+ maskedValue += valueChars[j];
339
+ j += AGRO_NUMBERS.ONE; // increment extracted per Sonar recommendation
340
+ }
341
+ else {
342
+ maskedValue += maskChar;
343
+ }
344
+ }
345
+ return maskedValue;
346
+ }
347
+ static isValid(str) {
348
+ return typeof str !== "undefined" && str !== null && this.isNotEmpty(str);
349
+ }
350
+ static isInvalid(str) {
351
+ return !AgroStringUtils.isValid(str);
352
+ }
353
+ static isISODate(value) {
354
+ return AGRO_REGEX.isISODate.test(value);
355
+ }
356
+ static isISOTime(value) {
357
+ return AGRO_REGEX.isISOTime.test(value);
358
+ }
359
+ static isISODatetime(value) {
360
+ return AGRO_REGEX.isISODateTime.test(value);
361
+ }
362
+ }
363
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1zdHJpbmctdXRpbHMuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvY29tbW9uL2Fncm8tc3RyaW5nLXV0aWxzLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQW1CLE1BQU0sVUFBVSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVuRCxPQUFPLEVBQUUsZUFBZSxJQUFJLFdBQVcsRUFBRSxDQUFDO0FBSTFDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGVBQWU7SUFDaEIsTUFBTSxDQUFVLHdCQUF3QixHQUFhO1FBQ3pELFlBQVksQ0FBQyxJQUFJO1FBQ2pCLFlBQVksQ0FBQyxJQUFJO1FBQ2pCLFlBQVksQ0FBQyxLQUFLO1FBQ2xCLFlBQVksQ0FBQyxHQUFHO1FBQ2hCLFlBQVksQ0FBQyxJQUFJO1FBQ2pCLFlBQVksQ0FBQyxLQUFLO1FBQ2xCLFlBQVksQ0FBQyxLQUFLO1FBQ2xCLFlBQVksQ0FBQyxHQUFHO1FBQ2hCLFlBQVksQ0FBQyxJQUFJO1FBQ2pCLFlBQVksQ0FBQyxJQUFJO1FBQ2pCLFlBQVksQ0FBQyxLQUFLO1FBQ2xCLFlBQVksQ0FBQyxHQUFHO0tBQ25CLENBQUM7SUFDTSxNQUFNLENBQVUsd0JBQXdCLEdBQWE7UUFDekQsWUFBWSxDQUFDLEdBQUc7UUFDaEIsWUFBWSxDQUFDLElBQUk7UUFDakIsWUFBWSxDQUFDLElBQUk7UUFDakIsWUFBWSxDQUFDLEtBQUs7UUFDbEIsWUFBWSxDQUFDLEdBQUc7UUFDaEIsWUFBWSxDQUFDLElBQUk7UUFDakIsWUFBWSxDQUFDLEtBQUs7UUFDbEIsWUFBWSxDQUFDLEtBQUs7UUFDbEIsWUFBWSxDQUFDLEdBQUc7UUFDaEIsWUFBWSxDQUFDLElBQUk7UUFDakIsWUFBWSxDQUFDLElBQUk7UUFDakIsWUFBWSxDQUFDLEtBQUs7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QWEsQ0FBQyxLQUFhO1FBQzlCLE9BQU8sVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFHUk9fTlVNQkVSUywgQWdyb1N0cmluZ01hc2tzIH0gZnJvbSBcIi4uL2VudW1zXCI7XHJcbmltcG9ydCB7IEFHUk9fUkVHRVggfSBmcm9tIFwiLi9hZ3JvLXJlZ2V4LmNvbnN0YW50XCI7XHJcblxyXG5leHBvcnQgeyBBZ3JvU3RyaW5nVXRpbHMgYXMgU3RyaW5nVXRpbHMgfTtcclxuXHJcbmV4cG9ydCB0eXBlIE51bGxhYmxlU3RyaW5nID0gc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcclxuXHJcbi8qKlxyXG4gKiBDbGFzc2UgdXRpbGl0w6FyaWEgcGFyYSBvcGVyYcOnw7VlcyBkZSBzdHJpbmcuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgQWdyb1N0cmluZ1V0aWxzIHtcclxuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IENOUEpfVFJBRElDSU9OQUxfUEVTT1NfMTogbnVtYmVyW10gPSBbXHJcbiAgICAgICAgQUdST19OVU1CRVJTLkZJVkUsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLkZPVVIsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLlRIUkVFLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5UV08sXHJcbiAgICAgICAgQUdST19OVU1CRVJTLk5JTkUsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLkVJR0hULFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5TRVZFTixcclxuICAgICAgICBBR1JPX05VTUJFUlMuU0lYLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5GSVZFLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5GT1VSLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5USFJFRSxcclxuICAgICAgICBBR1JPX05VTUJFUlMuVFdPLFxyXG4gICAgXTtcclxuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IENOUEpfVFJBRElDSU9OQUxfUEVTT1NfMjogbnVtYmVyW10gPSBbXHJcbiAgICAgICAgQUdST19OVU1CRVJTLlNJWCxcclxuICAgICAgICBBR1JPX05VTUJFUlMuRklWRSxcclxuICAgICAgICBBR1JPX05VTUJFUlMuRk9VUixcclxuICAgICAgICBBR1JPX05VTUJFUlMuVEhSRUUsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLlRXTyxcclxuICAgICAgICBBR1JPX05VTUJFUlMuTklORSxcclxuICAgICAgICBBR1JPX05VTUJFUlMuRUlHSFQsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLlNFVkVOLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5TSVgsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLkZJVkUsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLkZPVVIsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLlRIUkVFLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5UV08sXHJcbiAgICBdO1xyXG4gICAgLy8gUGVzb3MgdXRpbGl6YWRvcyBwYXJhIGPDoWxjdWxvIGRlIGTDrWdpdG9zIHZlcmlmaWNhZG9yZXMgZG8gQ05QSiBhbGZhbnVtw6lyaWNvICgyMDI2KVxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgQ05QSl9BTEZBTlVNRVJJQ09fUEVTT1NfMTogbnVtYmVyW10gPSBbXHJcbiAgICAgICAgQUdST19OVU1CRVJTLkZJVkUsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLkZPVVIsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLlRIUkVFLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5UV08sXHJcbiAgICAgICAgQUdST19OVU1CRVJTLk5JTkUsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLkVJR0hULFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5TRVZFTixcclxuICAgICAgICBBR1JPX05VTUJFUlMuU0lYLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5GSVZFLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5GT1VSLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5USFJFRSxcclxuICAgICAgICBBR1JPX05VTUJFUlMuVFdPLFxyXG4gICAgXTtcclxuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IENOUEpfQUxGQU5VTUVSSUNPX1BFU09TXzI6IG51bWJlcltdID0gW1xyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5TSVgsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLkZJVkUsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLkZPVVIsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLlRIUkVFLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5UV08sXHJcbiAgICAgICAgQUdST19OVU1CRVJTLk5JTkUsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLkVJR0hULFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5TRVZFTixcclxuICAgICAgICBBR1JPX05VTUJFUlMuU0lYLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5GSVZFLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5GT1VSLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5USFJFRSxcclxuICAgICAgICBBR1JPX05VTUJFUlMuVFdPLFxyXG4gICAgXTtcclxuICAgIC8qKiBSZXRvcm5hIHRydWUgc2UgYSBzdHJpbmcgY29udMOpbSBhcGVuYXMgbGV0cmFzICovXHJcbiAgICBzdGF0aWMgaXNPbmx5TGV0dGVycyhzdHI6IE51bGxhYmxlU3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFzdHIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gL15bQS1aYS16XSskLy50ZXN0KHN0cik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFJldG9ybmEgdHJ1ZSBzZSBhIHN0cmluZyBjb250w6ltIHBlbG8gbWVub3MgdW1hIGxldHJhICovXHJcbiAgICBzdGF0aWMgaGFzTGV0dGVycyhzdHI6IE51bGxhYmxlU3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFzdHIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gL1tBLVphLXpdLy50ZXN0KHN0cik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFJldG9ybmEgdHJ1ZSBzZSBhIHN0cmluZyBjb250w6ltIGFwZW5hcyBuw7ptZXJvcyAqL1xyXG4gICAgc3RhdGljIGlzT25seU51bWJlcnMoc3RyOiBOdWxsYWJsZVN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghc3RyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIC9eXFxkKyQvLnRlc3Qoc3RyKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogUmV0b3JuYSB0cnVlIHNlIGEgc3RyaW5nIGNvbnTDqW0gcGVsbyBtZW5vcyB1bSBuw7ptZXJvICovXHJcbiAgICBzdGF0aWMgaGFzTnVtYmVycyhzdHI6IE51bGxhYmxlU3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFzdHIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gL1xcZC8udGVzdChzdHIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgYSBzdHJpbmcgZXN0w6EgdmF6aWEuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc0VtcHR5KHN0cjogTnVsbGFibGVTdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoc3RyICYmIEFncm9TdHJpbmdVdGlscy5pc1N0cmluZyhzdHIpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBzdHI/LnRyaW0oKT8ubGVuZ3RoID09PSBBR1JPX05VTUJFUlMuWkVSTztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSBhIHN0cmluZyBuw6NvIGVzdMOhIHZhemlhLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNOb3RFbXB0eShzdHI6IE51bGxhYmxlU3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHN0ciAmJiBBZ3JvU3RyaW5nVXRpbHMuaXNTdHJpbmcoc3RyKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gIUFncm9TdHJpbmdVdGlscy5pc0VtcHR5KHN0cik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogVmVyaWZpY2Egc2UgYSBzdHJpbmcgw6kgbnVsYSwgaW5kZWZpbmlkYSBvdSBjb250w6ltIGFwZW5hcyBlc3Bhw6dvcyBlbSBicmFuY28gKi9cclxuICAgIHN0YXRpYyBpc0JsYW5rKHN0cjogTnVsbGFibGVTdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIXN0ciB8fCBBR1JPX1JFR0VYLm9ubHlCbGFua1NwYWNlcy50ZXN0KHN0cik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFZlcmlmaWNhIHNlIGEgc3RyaW5nIG7Do28gw6kgbnVsYSwgaW5kZWZpbmlkYSBvdSBjb250w6ltIGFwZW5hcyBlc3Bhw6dvcyBlbSBicmFuY28gKi9cclxuICAgIHN0YXRpYyBpc05vdEJsYW5rKHN0cjogTnVsbGFibGVTdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIUFncm9TdHJpbmdVdGlscy5pc0JsYW5rKHN0cik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZW1vdmUgZXNwYcOnb3MgZW0gYnJhbmNvIGRvIGluw61jaW8gZSBkbyBmaW0gZGEgc3RyaW5nLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgdHJpbVRvTnVsbChzdHI6IE51bGxhYmxlU3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICAgICAgaWYgKCFzdHIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHRyaW1tZWQgPSBzdHIudHJpbSgpO1xyXG4gICAgICAgIHJldHVybiB0cmltbWVkID09PSBcIlwiID8gbnVsbCA6IHRyaW1tZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb21wYXJhIGR1YXMgc3RyaW5ncyBpZ25vcmFuZG8gZGlmZXJlbsOnYXMgZW50cmUgbWFpw7pzY3VsYXMgZSBtaW7DunNjdWxhcy5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGVxdWFsc0lnbm9yZUNhc2Uoc3RyMTogTnVsbGFibGVTdHJpbmcsIHN0cjI6IE51bGxhYmxlU3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHN0cjE/LnRvTG93ZXJDYXNlKCkgPT09IHN0cjI/LnRvTG93ZXJDYXNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb21wYXJhIGR1YXMgc3RyaW5ncyBjb25zaWRlcmFuZG8gZGlmZXJlbsOnYXMgZW50cmUgbWFpw7pzY3VsYXMgZSBtaW7DunNjdWxhcy5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGVxdWFscyhzdHIxOiBOdWxsYWJsZVN0cmluZywgc3RyMjogTnVsbGFibGVTdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gc3RyMSA9PT0gc3RyMjtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgcmV2ZXJzZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHN0ci5zcGxpdChcIlwiKS5yZXZlcnNlKCkuam9pbihcIlwiKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaXNFbWFpbChzdHI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBBR1JPX1JFR0VYLmlzRW1haWwudGVzdChzdHIpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc1Bvc2l0aXZlSW50ZWdlcihzdHI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBBR1JPX1JFR0VYLnBvc2l0aXZlSW50ZWdlci50ZXN0KHN0cik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFJldG9ybmEgdHJ1ZSBzZSBhIHN0cmluZyDDqSB1bWEgc3RyaW5nIHbDoWxpZGEgKG7Do28gbnVsbCwgbsOjbyB1bmRlZmluZWQsIG7Do28gdmF6aWEpICovXHJcbiAgICBzdGF0aWMgaXNTdHJpbmcodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiYgdmFsdWUudHJpbSgpLmxlbmd0aCA+IEFHUk9fTlVNQkVSUy5aRVJPO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc1Bvc2l0aXZlRGVjaW1hbChzdHI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBBR1JPX1JFR0VYLnBvc2l0aXZlRGVjaW1hbC50ZXN0KHN0cik7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzWmlwQ29kZShzdHI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBBR1JPX1JFR0VYLnppcENvZGUudGVzdChzdHIpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc1VVSUQoc3RyOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gQUdST19SRUdFWC5pc1VVSUQudGVzdChzdHIpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc051bWJlcihzdHI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBbQUdST19SRUdFWC5pc051bWJlci50ZXN0KHN0ciksIEFHUk9fUkVHRVguaXNEZWNpbWFsLnRlc3Qoc3RyKV0uaW5jbHVkZXModHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHZhbGlkYXRlQ1BGKGNwZjogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY3BmID0gY3BmLnJlcGxhY2UoL1xcRC9nLCBcIlwiKTtcclxuXHJcbiAgICAgICAgaWYgKGNwZi5sZW5ndGggIT09IEFHUk9fTlVNQkVSUy5FTEVWRU4gfHwgL14oXFxkKVxcMSskLy50ZXN0KGNwZikpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgY2FsY1ZlcmlmaWVyID0gKGNwZjogc3RyaW5nLCBsZW5ndGg6IG51bWJlcik6IG51bWJlciA9PiB7XHJcbiAgICAgICAgICAgIGxldCBzdW0gPSBBR1JPX05VTUJFUlMuWkVSTztcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IEFHUk9fTlVNQkVSUy5aRVJPOyBpIDwgbGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHN1bSArPSBwYXJzZUludChjcGZbaV0sIEFHUk9fTlVNQkVSUy5URU4pICogKGxlbmd0aCArIEFHUk9fTlVNQkVSUy5PTkUgLSBpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBzdW0gJSBBR1JPX05VTUJFUlMuRUxFVkVOO1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0IDwgQUdST19OVU1CRVJTLlRXTyA/IEFHUk9fTlVNQkVSUy5aRVJPIDogQUdST19OVU1CRVJTLkVMRVZFTiAtIHJlc3VsdDtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBjb25zdCBkaWdpdDEgPSBjYWxjVmVyaWZpZXIoY3BmLCBBR1JPX05VTUJFUlMuTklORSk7XHJcbiAgICAgICAgY29uc3QgZGlnaXQyID0gY2FsY1ZlcmlmaWVyKGNwZiwgQUdST19OVU1CRVJTLlRFTik7XHJcblxyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIGRpZ2l0MSA9PT0gcGFyc2VJbnQoY3BmW0FHUk9fTlVNQkVSUy5OSU5FXSwgQUdST19OVU1CRVJTLlRFTikgJiYgZGlnaXQyID09PSBwYXJzZUludChjcGZbQUdST19OVU1CRVJTLlRFTl0sIEFHUk9fTlVNQkVSUy5URU4pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERldGVjdGEgYXV0b21hdGljYW1lbnRlIHNlIMOpIENOUEogYW50aWdvIG91IG5vdm8gZm9ybWF0by5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIHZhbGlkYXRlQ05QSihjbnBqOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIWNucGopIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjbnBqID0gY25wai50cmltKCk7XHJcblxyXG4gICAgICAgIC8vIFNlIGNvbnTDqW0gbGV0cmFzIOKGkiB2YWxpZGEgZm9ybWF0byBhbGZhbnVtw6lyaWNvXHJcbiAgICAgICAgaWYgKEFncm9TdHJpbmdVdGlscy5oYXNMZXR0ZXJzKGNucGopKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBBZ3JvU3RyaW5nVXRpbHMudmFsaWRhdGVDTlBKQWxmYW51bWVyaWNvKGNucGopO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gQ2FzbyBjb250csOhcmlvLCB2YWxpZGEgY29tbyBDTlBKIHRyYWRpY2lvbmFsXHJcbiAgICAgICAgcmV0dXJuIEFncm9TdHJpbmdVdGlscy52YWxpZGF0ZUNOUEpBbnRpZ28oY25waik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGEgbyBDTlBKIHRyYWRpY2lvbmFsIChzb21lbnRlIG7Dum1lcm9zKVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHN0YXRpYyB2YWxpZGF0ZUNOUEpBbnRpZ28oY25wajogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY25waiA9IGNucGoucmVwbGFjZSgvXFxEL2csIFwiXCIpO1xyXG5cclxuICAgICAgICBpZiAoIUFncm9TdHJpbmdVdGlscy5pc09ubHlOdW1iZXJzKGNucGopKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGNucGoubGVuZ3RoICE9PSBBR1JPX05VTUJFUlMuRk9VUlRFRU4pIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoL14oXFxkKVxcMXsxM30kLy50ZXN0KGNucGopKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBzb21hID0gQUdST19OVU1CRVJTLlpFUk87XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IEFHUk9fTlVNQkVSUy5aRVJPOyBpIDwgQUdST19OVU1CRVJTLlRXRUxWRTsgaSsrKSB7XHJcbiAgICAgICAgICAgIHNvbWEgKz0gcGFyc2VJbnQoY25wai5jaGFyQXQoaSksIEFHUk9fTlVNQkVSUy5URU4pICogQWdyb1N0cmluZ1V0aWxzLkNOUEpfVFJBRElDSU9OQUxfUEVTT1NfMVtpXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IHJlc3RvID0gc29tYSAlIEFHUk9fTlVNQkVSUy5FTEVWRU47XHJcbiAgICAgICAgY29uc3QgZGlnaXRvMSA9IHJlc3RvIDwgQUdST19OVU1CRVJTLlRXTyA/IEFHUk9fTlVNQkVSUy5aRVJPIDogQUdST19OVU1CRVJTLkVMRVZFTiAtIHJlc3RvO1xyXG5cclxuICAgICAgICBzb21hID0gQUdST19OVU1CRVJTLlpFUk87XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IEFHUk9fTlVNQkVSUy5aRVJPOyBpIDwgQUdST19OVU1CRVJTLlRISVJURUVOOyBpKyspIHtcclxuICAgICAgICAgICAgc29tYSArPSBwYXJzZUludChjbnBqLmNoYXJBdChpKSwgQUdST19OVU1CRVJTLlRFTikgKiBBZ3JvU3RyaW5nVXRpbHMuQ05QSl9UUkFESUNJT05BTF9QRVNPU18yW2ldO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXN0byA9IHNvbWEgJSBBR1JPX05VTUJFUlMuRUxFVkVOO1xyXG4gICAgICAgIGNvbnN0IGRpZ2l0bzIgPSByZXN0byA8IEFHUk9fTlVNQkVSUy5UV08gPyBBR1JPX05VTUJFUlMuWkVSTyA6IEFHUk9fTlVNQkVSUy5FTEVWRU4gLSByZXN0bztcclxuXHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgcGFyc2VJbnQoY25wai5jaGFyQXQoQUdST19OVU1CRVJTLlRXRUxWRSksIEFHUk9fTlVNQkVSUy5URU4pID09PSBkaWdpdG8xICYmXHJcbiAgICAgICAgICAgIHBhcnNlSW50KGNucGouY2hhckF0KEFHUk9fTlVNQkVSUy5USElSVEVFTiksIEFHUk9fTlVNQkVSUy5URU4pID09PSBkaWdpdG8yXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYSBvIENOUEogZW0gZm9ybWF0byBhbGZhbnVtw6lyaWNvIChwYWRyw6NvIDIwMjYpXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgc3RhdGljIHZhbGlkYXRlQ05QSkFsZmFudW1lcmljbyhjbnBqOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIUFncm9TdHJpbmdVdGlscy5pc1N0cmluZyhjbnBqKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBSZW1vdmUgY2FyYWN0ZXJlcyBlc3BlY2lhaXMgKHBvbnRvcywgYmFycmEsIHRyYcOnbywgZXNwYcOnb3MpXHJcbiAgICAgICAgY29uc3QgY2xlYW4gPSBjbnBqLnJlcGxhY2UoL1teQS1aYS16MC05XS9nLCBcIlwiKS50b1VwcGVyQ2FzZSgpO1xyXG5cclxuICAgICAgICAvLyBPIENOUEogZGV2ZSB0ZXIgZXhhdGFtZW50ZSAxNCBwb3Npw6fDtWVzXHJcbiAgICAgICAgaWYgKGNsZWFuLmxlbmd0aCAhPT0gQUdST19OVU1CRVJTLkZPVVJURUVOKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIFZlcmlmaWNhIHNlIGjDoSBwZWxvIG1lbm9zIHVtYSBsZXRyYSBlIHVtIG7Dum1lcm9cclxuICAgICAgICBpZiAoIUFncm9TdHJpbmdVdGlscy5oYXNMZXR0ZXJzKGNsZWFuKSB8fCAhQWdyb1N0cmluZ1V0aWxzLmhhc051bWJlcnMoY2xlYW4pKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIENhbGN1bGEgbyBwcmltZWlybyBkw61naXRvIHZlcmlmaWNhZG9yXHJcbiAgICAgICAgY29uc3QgcGVzb3MxID0gQWdyb1N0cmluZ1V0aWxzLkNOUEpfQUxGQU5VTUVSSUNPX1BFU09TXzE7XHJcbiAgICAgICAgY29uc3QgcGVzb3MyID0gQWdyb1N0cmluZ1V0aWxzLkNOUEpfQUxGQU5VTUVSSUNPX1BFU09TXzI7XHJcblxyXG4gICAgICAgIC8vIFBlZ2Egb3MgMTIgcHJpbWVpcm9zIGNhcmFjdGVyZXNcclxuICAgICAgICBjb25zdCBiYXNlID0gY2xlYW4uc3Vic3RyaW5nKEFHUk9fTlVNQkVSUy5aRVJPLCBBR1JPX05VTUJFUlMuVFdFTFZFKTtcclxuICAgICAgICBjb25zdCBkdkluZm9ybWFkbyA9IGNsZWFuLnN1YnN0cmluZyhBR1JPX05VTUJFUlMuVFdFTFZFLCBBR1JPX05VTUJFUlMuRk9VUlRFRU4pO1xyXG5cclxuICAgICAgICBjb25zdCBjYWxjdWxhRFYgPSAoc3RyOiBzdHJpbmcsIHBlc29zOiBudW1iZXJbXSk6IG51bWJlciA9PiB7XHJcbiAgICAgICAgICAgIGxldCBzb21hID0gQUdST19OVU1CRVJTLlpFUk87XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSBBR1JPX05VTUJFUlMuWkVSTzsgaSA8IHBlc29zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjaGFyID0gc3RyLmNoYXJBdChpKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGFzY2lpVmFsdWUgPSBjaGFyLmNoYXJDb2RlQXQoMCkgLSBBR1JPX05VTUJFUlMuRk9SVFlfRUlHSFQ7IC8vIGNvbmZvcm1lIGRvY3VtZW50byAoNDggPSAnMCcpXHJcbiAgICAgICAgICAgICAgICBzb21hICs9IGFzY2lpVmFsdWUgKiBwZXNvc1tpXTsgLy8gYXNjaWlWYWx1ZSBqw6EgY2FsY3VsYWRvIGEgcGFydGlyIGRvIGVudW0gRk9SVFlfRUlHSFRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCByZXN0byA9IHNvbWEgJSBBR1JPX05VTUJFUlMuRUxFVkVOO1xyXG4gICAgICAgICAgICBjb25zdCBkaWdpdG8gPSBBR1JPX05VTUJFUlMuRUxFVkVOIC0gcmVzdG87XHJcbiAgICAgICAgICAgIHJldHVybiBkaWdpdG8gPiBBR1JPX05VTUJFUlMuTklORSA/IEFHUk9fTlVNQkVSUy5aRVJPIDogZGlnaXRvOyAvLyBzZWd1ZSBtZXNtYSByZWdyYSBkbyBDTlBKIHRyYWRpY2lvbmFsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgY29uc3QgZHYxID0gY2FsY3VsYURWKGJhc2UsIHBlc29zMSk7XHJcbiAgICAgICAgY29uc3QgZHYyID0gY2FsY3VsYURWKGJhc2UgKyBkdjEudG9TdHJpbmcoKSwgcGVzb3MyKTtcclxuXHJcbiAgICAgICAgY29uc3QgZHZDYWxjdWxhZG8gPSBgJHtkdjF9JHtkdjJ9YDtcclxuXHJcbiAgICAgICAgcmV0dXJuIGR2Q2FsY3VsYWRvID09PSBkdkluZm9ybWFkbztcclxuICAgIH1cclxuXHJcbiAgICAvKiogQ2FsY3VsYSBhIGRpZmVyZW7Dp2EgZW50cmUgZHVhcyBzdHJpbmdzIGVtIHRlcm1vcyBkZSBuw7ptZXJvIGRlIGNhcmFjdGVyZXMgZGlmZXJlbnRlcyAqL1xyXG4gICAgc3RhdGljIGRpZmZlcmVuY2Uoc3RyMTogc3RyaW5nLCBzdHIyOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgICAgIGNvbnN0IGxlbjEgPSBzdHIxLmxlbmd0aDtcclxuICAgICAgICBjb25zdCBsZW4yID0gc3RyMi5sZW5ndGg7XHJcbiAgICAgICAgbGV0IGRpZmYgPSBNYXRoLmFicyhsZW4xIC0gbGVuMik7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IEFHUk9fTlVNQkVSUy5aRVJPOyBpIDwgTWF0aC5taW4obGVuMSwgbGVuMik7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoc3RyMVtpXSAhPT0gc3RyMltpXSkge1xyXG4gICAgICAgICAgICAgICAgZGlmZisrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBkaWZmO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBWZXJpZmljYSBzZSBzdHIxIHRlcm1pbmEgY29tIHN0cjIgKi9cclxuICAgIHN0YXRpYyBlbmRzV2l0aChzdHIxOiBzdHJpbmcsIHN0cjI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBzdHIxLmVuZHNXaXRoKHN0cjIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBWZXJpZmljYSBzZSBzdHIxIGNvbWXDp2EgY29tIHN0cjIgKi9cclxuICAgIHN0YXRpYyBzdGFydHNXaXRoKHN0cjE6IHN0cmluZywgc3RyMjogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHN0cjEuc3RhcnRzV2l0aChzdHIyKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogVmVyaWZpY2Egc2Ugc3RyMSBjb250w6ltIHN0cjIgKi9cclxuICAgIHN0YXRpYyBjb250YWlucyhzdHIxOiBzdHJpbmcsIHN0cjI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBzdHIxLmluY2x1ZGVzKHN0cjIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBWZXJpZmljYSBzZSBzdHIxIGNvbWXDp2EgY29tIHN0cjIsIGlnbm9yYW5kbyBtYWnDunNjdWxhcyBlIG1pbsO6c2N1bGFzICovXHJcbiAgICBzdGF0aWMgc3RhcnRzV2l0aElnbm9yZUNhc2Uoc3RyMTogc3RyaW5nLCBzdHIyOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gc3RyMS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoc3RyMi50b0xvd2VyQ2FzZSgpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogVmVyaWZpY2Egc2Ugc3RyMSB0ZXJtaW5hIGNvbSBzdHIyLCBpZ25vcmFuZG8gbWFpw7pzY3VsYXMgZSBtaW7DunNjdWxhcyAqL1xyXG4gICAgc3RhdGljIGVuZHNXaXRoSWdub3JlQ2FzZShzdHIxOiBzdHJpbmcsIHN0cjI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBzdHIxLnRvTG93ZXJDYXNlKCkuZW5kc1dpdGgoc3RyMi50b0xvd2VyQ2FzZSgpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogSW52ZXJ0ZSBvIGNhc28gZGUgY2FkYSBsZXRyYSBuYSBzdHJpbmcgKi9cclxuICAgIHN0YXRpYyBzd2FwQ2FzZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgbGV0IHN3YXBwZWQgPSBcIlwiO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSBBR1JPX05VTUJFUlMuWkVSTzsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBjaGFyID0gc3RyW2ldO1xyXG4gICAgICAgICAgICBzd2FwcGVkICs9IGNoYXIgPT09IGNoYXIudG9VcHBlckNhc2UoKSA/IGNoYXIudG9Mb3dlckNhc2UoKSA6IGNoYXIudG9VcHBlckNhc2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHN3YXBwZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIENvbG9jYSBhIHByaW1laXJhIGxldHJhIGRhIHN0cmluZyBlbSBtYWnDunNjdWxvICovXHJcbiAgICBzdGF0aWMgY2FwaXRhbGl6ZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHN0ci5jaGFyQXQoQUdST19OVU1CRVJTLlpFUk8pLnRvVXBwZXJDYXNlKCkgKyBzdHIuc2xpY2UoMSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIENvbG9jYSBhIHByaW1laXJhIGxldHJhIGRhIHN0cmluZyBlbSBtaW7DunNjdWxvICovXHJcbiAgICBzdGF0aWMgdW5jYXBpdGFsaXplKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gc3RyLmNoYXJBdChBR1JPX05VTUJFUlMuWkVSTykudG9Mb3dlckNhc2UoKSArIHN0ci5zbGljZSgxKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQ29udGEgbyBuw7ptZXJvIGRlIG9jb3Jyw6puY2lhcyBkZSB1bWEgc3Vic3RyaW5nIGRlbnRybyBkZSB1bWEgc3RyaW5nICovXHJcbiAgICBzdGF0aWMgY291bnRNYXRjaGVzKHN0cjogc3RyaW5nLCBzdWJzdHJpbmc6IHN0cmluZyk6IG51bWJlciB7XHJcbiAgICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKHN1YnN0cmluZywgXCJnXCIpO1xyXG4gICAgICAgIGNvbnN0IG1hdGNoZXMgPSBzdHIubWF0Y2gocmVnZXgpO1xyXG4gICAgICAgIHJldHVybiBtYXRjaGVzID8gbWF0Y2hlcy5sZW5ndGggOiBBR1JPX05VTUJFUlMuWkVSTztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFwbGljYSB1bWEgbcOhc2NhcmEgc2ltcGxlcyDDoCBzdHJpbmcgZm9ybmVjaWRhLk8gcGFkcsOjbyBkZSBtw6FzY2FyYXMgw6kgZGVmaW5pZG8gcGVsbyBlbnVtIEFncm9TdHJpbmdNYXNrcyBvdVxyXG4gICAgICogcG9kZSBzZXIgdW1hIHN0cmluZyBwZXJzb25hbGl6YWRhIG9uZGUgJzknIHJlcHJlc2VudGEgdW0gZMOtZ2l0byBhIHNlciBzdWJzdGl0dcOtZG8gcGVsbyBjYXJhY3RlcmUgY29ycmVzcG9uZGVudGVcclxuICAgICAqIGRhIHN0cmluZy5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGFwcGx5TWFzayh2YWx1ZTogc3RyaW5nLCBtYXNrOiBBZ3JvU3RyaW5nTWFza3MgfCBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlQ2hhcnMgPSB2YWx1ZS5yZXBsYWNlKC9bXkEtWmEtejAtOV0vZywgXCJcIik7XHJcblxyXG4gICAgICAgIGNvbnN0IG1hc2tDaGFycyA9IG1hc2suc3BsaXQoXCJcIik7XHJcbiAgICAgICAgbGV0IG1hc2tlZFZhbHVlID0gXCJcIjtcclxuICAgICAgICBsZXQgaiA9IEFHUk9fTlVNQkVSUy5aRVJPO1xyXG4gICAgICAgIGZvciAoY29uc3QgbWFza0NoYXIgb2YgbWFza0NoYXJzKSB7XHJcbiAgICAgICAgICAgIGlmIChqID49IHZhbHVlQ2hhcnMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAobWFza0NoYXIgPT09IFwiOVwiKSB7XHJcbiAgICAgICAgICAgICAgICBtYXNrZWRWYWx1ZSArPSB2YWx1ZUNoYXJzW2pdO1xyXG4gICAgICAgICAgICAgICAgaiArPSBBR1JPX05VTUJFUlMuT05FOyAvLyBpbmNyZW1lbnQgZXh0cmFjdGVkIHBlciBTb25hciByZWNvbW1lbmRhdGlvblxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbWFza2VkVmFsdWUgKz0gbWFza0NoYXI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG1hc2tlZFZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc1ZhbGlkKHN0cjogTnVsbGFibGVTdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIHN0ciAhPT0gXCJ1bmRlZmluZWRcIiAmJiBzdHIgIT09IG51bGwgJiYgdGhpcy5pc05vdEVtcHR5KHN0cik7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzSW52YWxpZChzdHI6IE51bGxhYmxlU3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICFBZ3JvU3RyaW5nVXRpbHMuaXNWYWxpZChzdHIpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc0lTT0RhdGUodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBBR1JPX1JFR0VYLmlzSVNPRGF0ZS50ZXN0KHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaXNJU09UaW1lKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gQUdST19SRUdFWC5pc0lTT1RpbWUudGVzdCh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzSVNPRGF0ZXRpbWUodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBBR1JPX1JFR0VYLmlzSVNPRGF0ZVRpbWUudGVzdCh2YWx1ZSk7XHJcbiAgICB9XHJcbn1cclxuIl19