@senior-agronegocio/angular-components 0.0.9884 → 1.0.1

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 -5
  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/{esm2015/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 -7931
  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 +52 -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 -8889
  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 -598
  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-string-masks.enum.js +0 -12
  500. package/esm2015/enums/date-comparison-type.enum.js +0 -6
  501. package/esm2015/enums/fixation-status.js +0 -10
  502. package/esm2015/enums/index.js +0 -8
  503. package/esm2015/enums/invoice-status.enum.js +0 -14
  504. package/esm2015/enums/number-comparison-type.enum.js +0 -10
  505. package/esm2015/enums/unit-measurement.enum.js +0 -60
  506. package/esm2015/form-validator/agro-form-validator.js +0 -319
  507. package/esm2015/form-validator/index.js +0 -2
  508. package/esm2015/lib-translation.module.js +0 -23
  509. package/esm2015/pipe/cnpj-cpf/cnpj-cpf.pipe.js +0 -28
  510. package/esm2015/pipe/cnpj-cpf/cnpj-cpf.pipe.module.js +0 -15
  511. package/esm2015/pipe/cnpj-cpf/index.js +0 -3
  512. package/esm2015/pipe/index.js +0 -6
  513. package/esm2015/pipe/kilogram/index.js +0 -3
  514. package/esm2015/pipe/kilogram/kilogram.module.js +0 -17
  515. package/esm2015/pipe/kilogram/kilogram.pipe.js +0 -38
  516. package/esm2015/pipe/lib-translate.pipe.js +0 -24
  517. package/esm2015/pipe/stringifier/index.js +0 -3
  518. package/esm2015/pipe/stringifier/stringifier.pipe.js +0 -13
  519. package/esm2015/pipe/stringifier/stringifier.pipe.module.js +0 -15
  520. package/esm2015/pipe/telephone/index.js +0 -3
  521. package/esm2015/pipe/telephone/telephone.pipe.js +0 -91
  522. package/esm2015/pipe/telephone/telephone.pipe.module.js +0 -15
  523. package/esm2015/public-api.js +0 -9
  524. package/esm2015/senior-agronegocio-angular-components.js +0 -7
  525. package/esm2015/services/agro-entity-service.js +0 -132
  526. package/esm2015/services/i18n/en-US.js +0 -322
  527. package/esm2015/services/i18n/es-CO.js +0 -322
  528. package/esm2015/services/i18n/pt-BR.js +0 -322
  529. package/esm2015/services/index.js +0 -3
  530. package/esm2015/services/lib-translation.service.js +0 -58
  531. package/esm2015/services/producer-invoice/index.js +0 -3
  532. package/esm2015/services/producer-invoice/producer-invoice-dto.js +0 -1
  533. package/esm2015/services/producer-invoice/producer-invoice.js +0 -32
  534. package/esm2015/services/producer-invoice/producer-invoice.service.js +0 -64
  535. package/esm2015/services/websocket/async-lock.js +0 -34
  536. package/esm2015/services/websocket/index.js +0 -6
  537. package/esm2015/services/websocket/models/index.js +0 -2
  538. package/esm2015/services/websocket/models/primitive-manager.js +0 -39
  539. package/esm2015/services/websocket/protocols/index.js +0 -1
  540. package/esm2015/services/websocket/protocols/on-event-options.js +0 -1
  541. package/esm2015/services/websocket/protocols/primitive-event.js +0 -1
  542. package/esm2015/services/websocket/user-information.service.js +0 -34
  543. package/esm2015/services/websocket/websocket.module.js +0 -21
  544. package/esm2015/services/websocket/websocket.service.js +0 -338
  545. package/esm5/agro-angular-components.module.js +0 -26
  546. package/esm5/common/agro-array-utils.class.js +0 -90
  547. package/esm5/common/agro-cookie-utils.class.js +0 -54
  548. package/esm5/common/agro-date-utils.class.js +0 -126
  549. package/esm5/common/agro-logics.class.js +0 -96
  550. package/esm5/common/agro-name-utils.class.js +0 -64
  551. package/esm5/common/agro-number-utils.class.js +0 -137
  552. package/esm5/common/agro-object-stringifier.class.js +0 -38
  553. package/esm5/common/agro-object-utils.class.js +0 -306
  554. package/esm5/common/agro-platform-utils.class.js +0 -123
  555. package/esm5/common/agro-regex.constant.js +0 -156
  556. package/esm5/common/agro-string-utils.class.js +0 -380
  557. package/esm5/common/agro-unit-converter.class.js +0 -258
  558. package/esm5/common/colors.class.js +0 -83
  559. package/esm5/common/index.js +0 -13
  560. package/esm5/components/cancel-event-dialog/cancel-event-dialog-config.js +0 -1
  561. package/esm5/components/cancel-event-dialog/cancel-event-dialog.component.js +0 -128
  562. package/esm5/components/cancel-event-dialog/cancel-event-dialog.module.js +0 -22
  563. package/esm5/components/cancel-event-dialog/index.js +0 -3
  564. package/esm5/components/event-control-board/common/control-status.js +0 -7
  565. package/esm5/components/event-control-board/common/documentsToIssue.js +0 -6
  566. package/esm5/components/event-control-board/common/event-control-constants.js +0 -113
  567. package/esm5/components/event-control-board/common/event-operation.js +0 -54
  568. package/esm5/components/event-control-board/common/event-origin.js +0 -14
  569. package/esm5/components/event-control-board/common/event-status.js +0 -9
  570. package/esm5/components/event-control-board/common/input-fields-translate.js +0 -11
  571. package/esm5/components/event-control-board/common/input-fields.js +0 -7
  572. package/esm5/components/event-control-board/common/invoice-type.js +0 -11
  573. package/esm5/components/event-control-board/common/lookup-error-message.constants.js +0 -11
  574. package/esm5/components/event-control-board/common/operation.js +0 -7
  575. package/esm5/components/event-control-board/common/operationType.js +0 -7
  576. package/esm5/components/event-control-board/common/status-entity.js +0 -6
  577. package/esm5/components/event-control-board/common/ticket-status.js +0 -9
  578. package/esm5/components/event-control-board/common/transfer-status.js +0 -8
  579. package/esm5/components/event-control-board/event-control-board.component.js +0 -620
  580. package/esm5/components/event-control-board/event-control-board.module.js +0 -69
  581. package/esm5/components/event-control-board/index.js +0 -22
  582. package/esm5/components/event-control-board/service/e001pes/e001pes-dto.js +0 -1
  583. package/esm5/components/event-control-board/service/e001pes/e001pes.js +0 -25
  584. package/esm5/components/event-control-board/service/e001pes/e001pes.module.js +0 -27
  585. package/esm5/components/event-control-board/service/e001pes/e001pes.service.js +0 -37
  586. package/esm5/components/event-control-board/service/e001tns/e001tns-dto.js +0 -1
  587. package/esm5/components/event-control-board/service/e001tns/e001tns.js +0 -45
  588. package/esm5/components/event-control-board/service/e001tns/e001tns.module.js +0 -29
  589. package/esm5/components/event-control-board/service/e001tns/e001tns.service.js +0 -27
  590. package/esm5/components/event-control-board/service/e012fam/e012fam-dto.js +0 -1
  591. package/esm5/components/event-control-board/service/e012fam/e012fam.js +0 -25
  592. package/esm5/components/event-control-board/service/e012fam/e012fam.service.js +0 -27
  593. package/esm5/components/event-control-board/service/e070emp/e070emp-dto.js +0 -1
  594. package/esm5/components/event-control-board/service/e070emp/e070emp.js +0 -34
  595. package/esm5/components/event-control-board/service/e070emp/e070emp.module.js +0 -27
  596. package/esm5/components/event-control-board/service/e070emp/e070emp.service.js +0 -34
  597. package/esm5/components/event-control-board/service/e070fil/e070fil-dto.js +0 -1
  598. package/esm5/components/event-control-board/service/e070fil/e070fil.js +0 -48
  599. package/esm5/components/event-control-board/service/e070fil/e070fil.module.js +0 -27
  600. package/esm5/components/event-control-board/service/e070fil/e070fil.service.js +0 -34
  601. package/esm5/components/event-control-board/service/e075der/e075der-dto.js +0 -1
  602. package/esm5/components/event-control-board/service/e075der/e075der.js +0 -36
  603. package/esm5/components/event-control-board/service/e075der/e075der.module.js +0 -27
  604. package/esm5/components/event-control-board/service/e075der/e075der.service.js +0 -32
  605. package/esm5/components/event-control-board/service/e113saf/e113saf-dto.js +0 -1
  606. package/esm5/components/event-control-board/service/e113saf/e113saf.js +0 -25
  607. package/esm5/components/event-control-board/service/e205dep/deposit-dto.js +0 -1
  608. package/esm5/components/event-control-board/service/e205dep/e205dep-dto.js +0 -1
  609. package/esm5/components/event-control-board/service/e205dep/e205dep.js +0 -25
  610. package/esm5/components/event-control-board/service/e205dep/e205dep.service.js +0 -32
  611. package/esm5/components/event-control-board/service/event-control/event-control-dto.js +0 -1
  612. package/esm5/components/event-control-board/service/event-control/event-control.js +0 -25
  613. package/esm5/components/event-control-board/service/event-control/event-control.module.js +0 -27
  614. package/esm5/components/event-control-board/service/event-control/event-control.service.js +0 -27
  615. package/esm5/components/event-control-board/service/event-control-item/event-control-item-dto.js +0 -1
  616. package/esm5/components/event-control-board/service/event-control-item/event-control-item.js +0 -40
  617. package/esm5/components/event-control-board/service/event-control-item/event-control-item.module.js +0 -27
  618. package/esm5/components/event-control-board/service/event-control-item/event-control-item.service.js +0 -32
  619. package/esm5/components/event-control-board/service/external-invoice/external-invoice-dto.js +0 -1
  620. package/esm5/components/event-control-board/service/external-invoice/external-invoice.js +0 -25
  621. package/esm5/components/event-control-board/service/external-invoice/external-invoice.module.js +0 -27
  622. package/esm5/components/event-control-board/service/external-invoice/external-invoice.service.js +0 -27
  623. package/esm5/components/event-control-board/service/fixation-entity/fixation-dto.js +0 -1
  624. package/esm5/components/event-control-board/service/fixation-entity/fixation.module.js +0 -27
  625. package/esm5/components/event-control-board/service/fixation-entity/fixation.service.js +0 -32
  626. package/esm5/components/event-control-board/service/invoice/invoice-dto.js +0 -1
  627. package/esm5/components/event-control-board/service/invoice/invoice.js +0 -48
  628. package/esm5/components/event-control-board/service/invoice/invoice.module.js +0 -29
  629. package/esm5/components/event-control-board/service/invoice/invoice.service.js +0 -27
  630. package/esm5/components/event-control-board/service/origination/operationType.js +0 -7
  631. package/esm5/components/event-control-board/service/origination/origination-dto.js +0 -1
  632. package/esm5/components/event-control-board/service/origination/origination.js +0 -62
  633. package/esm5/components/event-control-board/service/origination/origination.module.js +0 -27
  634. package/esm5/components/event-control-board/service/origination/origination.service.js +0 -27
  635. package/esm5/components/event-control-board/service/paginator-storage.service.js +0 -71
  636. package/esm5/components/event-control-board/service/rural-estate/rural-estate-dto.js +0 -1
  637. package/esm5/components/event-control-board/service/rural-estate/rural-estate.js +0 -83
  638. package/esm5/components/event-control-board/service/rural-estate/rural-estate.module.js +0 -27
  639. package/esm5/components/event-control-board/service/rural-estate/rural-estate.service.js +0 -27
  640. package/esm5/components/event-control-board/service/ticket/ticket-dto.js +0 -1
  641. package/esm5/components/event-control-board/service/ticket/ticket.js +0 -44
  642. package/esm5/components/event-control-board/service/ticket/ticket.module.js +0 -29
  643. package/esm5/components/event-control-board/service/ticket/ticket.service.js +0 -62
  644. package/esm5/components/event-control-board/service/transfer/transfer-dto.js +0 -1
  645. package/esm5/components/event-control-board/service/transfer/transfer.module.js +0 -29
  646. package/esm5/components/event-control-board/service/transfer/transfer.service.js +0 -37
  647. package/esm5/components/event-control-board/shared.module.js +0 -59
  648. package/esm5/components/event-steps/event-steps.component.js +0 -113
  649. package/esm5/components/event-steps/event-steps.module.js +0 -19
  650. package/esm5/components/event-steps/index.js +0 -3
  651. package/esm5/components/financial-title-table/financial-title-table-options.interface.js +0 -1
  652. package/esm5/components/financial-title-table/financial-title-table.component.js +0 -438
  653. package/esm5/components/financial-title-table/financial-title-table.module.js +0 -48
  654. package/esm5/components/financial-title-table/index.js +0 -4
  655. package/esm5/components/financial-title-table/services/financial/agro-financial.service.js +0 -76
  656. package/esm5/components/financial-title-table/services/financial/enums.js +0 -33
  657. package/esm5/components/financial-title-table/services/financial/index.js +0 -3
  658. package/esm5/components/financial-title-table/services/financial/intefaces.js +0 -1
  659. package/esm5/components/index.js +0 -6
  660. package/esm5/components/modal-invoice-pj/for-fixation/modal-fixation-options.interface.js +0 -1
  661. package/esm5/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.component.js +0 -223
  662. package/esm5/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.module.js +0 -19
  663. package/esm5/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.component.js +0 -67
  664. package/esm5/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.module.js +0 -19
  665. package/esm5/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.component.js +0 -40
  666. package/esm5/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.module.js +0 -19
  667. package/esm5/components/modal-invoice-pj/index.js +0 -8
  668. package/esm5/components/modal-invoice-pj/modal-invoice-pj-base.class.js +0 -213
  669. package/esm5/components/modal-invoice-pj/modal-invoice-pj-options.interface.js +0 -1
  670. package/esm5/components/modal-invoice-pj/modal-shared-imports.js +0 -32
  671. package/esm5/components/modal-invoice-pj/services/agro-invoice/agro-invoice.module.js +0 -31
  672. package/esm5/components/modal-invoice-pj/services/agro-invoice/agro-invoice.service.js +0 -56
  673. package/esm5/components/modal-invoice-pj/services/agro-invoice/index.js +0 -3
  674. package/esm5/components/modal-invoice-pj/services/agro-invoice/interfaces.js +0 -13
  675. package/esm5/enums/agro-entity-status.enum.js +0 -6
  676. package/esm5/enums/agro-numbers.enum.js +0 -1009
  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 -8647
  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
@@ -1,598 +0,0 @@
1
- import { __awaiter, __decorate } from "tslib";
2
- import { registerLocaleData } from "@angular/common";
3
- import localePt from "@angular/common/locales/pt";
4
- import { Component, EventEmitter, Input, LOCALE_ID, Output } from "@angular/core";
5
- import { FormBuilder, FormGroup, Validators } from "@angular/forms";
6
- import { BadgeColors, ButtonPriority, FieldType, FormField, StepState } from "@seniorsistemas/angular-components";
7
- import { DialogService, MessageService } from "primeng";
8
- import { Subject } from "rxjs";
9
- import { catchError, takeUntil } from "rxjs/operators";
10
- import { AGRO_NUMBERS } from "../../enums/agro-numbers.enum";
11
- import { LibTranslationService } from "../../services/lib-translation.service";
12
- import { ProducerInvoiceService } from "../../services/producer-invoice";
13
- import { WebsocketService } from "../../services/websocket";
14
- import { CancelEventDialogComponent } from "../cancel-event-dialog/cancel-event-dialog.component";
15
- import { eventItem } from "./common/event-control-constants";
16
- import { EventOperation } from "./common/event-operation";
17
- import { EventOrigin } from "./common/event-origin";
18
- import { EventStatus } from "./common/event-status";
19
- import { invoiceTypeTranslate } from "./common/input-fields-translate";
20
- import { LookupErrorMessages } from "./common/lookup-error-message.constants";
21
- import { EventControlItemService, ReprocessFailedEvent } from "./service/event-control-item/event-control-item.service";
22
- import { EventControlService } from "./service/event-control/event-control.service";
23
- import { PaginatorStorageService } from "./service/paginator-storage.service";
24
- const moment = require("moment");
25
- let EventControlBoardComponent = class EventControlBoardComponent {
26
- constructor(translate, formBuilder, websocketService, eventControlService, paginatorStorageService, eventControlItemService, producerInvoiceService, messageService, dialogService) {
27
- this.translate = translate;
28
- this.formBuilder = formBuilder;
29
- this.websocketService = websocketService;
30
- this.eventControlService = eventControlService;
31
- this.paginatorStorageService = paginatorStorageService;
32
- this.eventControlItemService = eventControlItemService;
33
- this.producerInvoiceService = producerInvoiceService;
34
- this.messageService = messageService;
35
- this.dialogService = dialogService;
36
- this.processedEvent = new EventEmitter();
37
- this.steps = [];
38
- this.showSidebar = false;
39
- this.showReprocessButton = false;
40
- this.gridTotalRecords = AGRO_NUMBERS.ZERO;
41
- this.gridLoading = false;
42
- this.displayModal = false;
43
- this.ButtonPriority = ButtonPriority;
44
- this.BadgeColors = BadgeColors;
45
- this.permissions = {};
46
- this.localeConfig = {};
47
- this.currentListParams = {
48
- page: AGRO_NUMBERS.ZERO,
49
- size: AGRO_NUMBERS.TEN,
50
- displayFields: this.getDisplayFields(),
51
- sort: [],
52
- filterData: {}
53
- };
54
- this.ngUnsubscribe = new Subject();
55
- this.eventItem = eventItem;
56
- this.invoiceTypeTranslate = invoiceTypeTranslate;
57
- registerLocaleData(localePt);
58
- }
59
- ngOnInit() {
60
- return __awaiter(this, void 0, void 0, function* () {
61
- this.gridColumns = this.setGridColumns();
62
- this.callWebsocket();
63
- });
64
- }
65
- ngOnChanges(changes) {
66
- if (!this.filterFormGroup) {
67
- this.initializeFormGroup();
68
- this.setFormFields();
69
- }
70
- this.updateCompanyAndBranchFormFields(changes);
71
- this.updateEventOriginAndControlCodeFormFields(changes);
72
- this.updateEventStatusAndCreatedDateFormFields(changes);
73
- this.onSearch();
74
- }
75
- updateCompanyAndBranchFormFields(changes) {
76
- var _a, _b, _c, _d;
77
- if (changes.company && changes.company.currentValue !== changes.company.previousValue) {
78
- (_a = this.filterFormGroup.get("company")) === null || _a === void 0 ? void 0 : _a.setValue((_b = changes.company.currentValue) !== null && _b !== void 0 ? _b : null);
79
- }
80
- if (changes.branch && changes.branch.currentValue !== changes.branch.previousValue) {
81
- (_c = this.filterFormGroup.get("branch")) === null || _c === void 0 ? void 0 : _c.setValue((_d = changes.branch.currentValue) !== null && _d !== void 0 ? _d : null);
82
- }
83
- }
84
- updateEventOriginAndControlCodeFormFields(changes) {
85
- var _a, _b, _c, _d;
86
- if (changes.eventOrigin && changes.eventOrigin.currentValue !== changes.eventOrigin.previousValue) {
87
- (_a = this.filterFormGroup.get("eventOrigin")) === null || _a === void 0 ? void 0 : _a.setValue((_b = changes.eventOrigin.currentValue) !== null && _b !== void 0 ? _b : null);
88
- }
89
- if (changes.controlCode && changes.controlCode.currentValue !== changes.controlCode.previousValue) {
90
- (_c = this.filterFormGroup.get("controlCode")) === null || _c === void 0 ? void 0 : _c.setValue((_d = changes.controlCode.currentValue) !== null && _d !== void 0 ? _d : null);
91
- }
92
- }
93
- updateEventStatusAndCreatedDateFormFields(changes) {
94
- var _a, _b, _c, _d;
95
- if (changes.eventStatus && changes.eventStatus.currentValue !== changes.eventStatus.previousValue) {
96
- (_a = this.filterFormGroup.get("status")) === null || _a === void 0 ? void 0 : _a.setValue((_b = changes.eventStatus.currentValue) !== null && _b !== void 0 ? _b : null);
97
- }
98
- if (changes.createdDate && changes.createdDate.currentValue !== changes.createdDate.previousValue) {
99
- (_c = this.filterFormGroup.get("createdDate")) === null || _c === void 0 ? void 0 : _c.setValue((_d = changes.createdDate.currentValue) !== null && _d !== void 0 ? _d : null);
100
- }
101
- }
102
- initializeFormGroup() {
103
- var _a, _b, _c, _d, _e, _f, _g;
104
- this.filterFormGroup = this.formBuilder.group({
105
- company: [{ value: (_a = this.company) !== null && _a !== void 0 ? _a : null, disabled: false }, Validators.compose([])],
106
- branch: [{ value: (_b = this.branch) !== null && _b !== void 0 ? _b : null, disabled: false }, Validators.compose([])],
107
- controlCode: [{ value: (_c = this.controlCode) !== null && _c !== void 0 ? _c : null, disabled: false }, Validators.compose([])],
108
- externalId: [{ value: (_d = this.externalId) !== null && _d !== void 0 ? _d : null, disabled: false }, Validators.compose([])],
109
- eventOrigin: [{ value: (_e = this.eventOrigin) !== null && _e !== void 0 ? _e : null, disabled: false }, Validators.compose([])],
110
- status: [{ value: (_f = this.eventStatus) !== null && _f !== void 0 ? _f : null, disabled: false }, Validators.compose([])],
111
- createdDate: [{ value: (_g = this.createdDate) !== null && _g !== void 0 ? _g : null, disabled: false }, Validators.compose([])],
112
- });
113
- }
114
- setFormFields() {
115
- this.filterFields = [
116
- new FormField({
117
- name: "company",
118
- type: FieldType.Chips,
119
- }),
120
- new FormField({
121
- name: "branch",
122
- type: FieldType.Chips,
123
- }),
124
- new FormField({
125
- name: "controlCode",
126
- type: FieldType.Chips,
127
- }),
128
- new FormField({
129
- name: "externalId",
130
- type: FieldType.String,
131
- }),
132
- new FormField({
133
- name: "eventOrigin",
134
- type: FieldType.Enum,
135
- }),
136
- new FormField({
137
- name: "status",
138
- type: FieldType.Enum,
139
- }),
140
- new FormField({
141
- name: "createdDate",
142
- type: FieldType.Date,
143
- }),
144
- ];
145
- }
146
- setGridColumns() {
147
- return [
148
- { field: "company", header: this.translate.instant("agro.angular_components.company") },
149
- { field: "branch", header: this.translate.instant("agro.angular_components.label_branch") },
150
- { field: "eventOrigin", header: this.translate.instant("agro.angular_components.event_origin_label") },
151
- { field: "controlCode", header: this.translate.instant("agro.angular_components.control_code") },
152
- ];
153
- }
154
- ngOnDestroy() {
155
- this.ngUnsubscribe.next();
156
- this.ngUnsubscribe.complete();
157
- this.websocketService.disconnect();
158
- }
159
- callWebsocket() {
160
- this.websocketService
161
- .onEvent({
162
- domain: "agro",
163
- service: "agro_events",
164
- primitive: "processedEvent",
165
- })
166
- .pipe(takeUntil(this.ngUnsubscribe))
167
- .subscribe((message) => {
168
- var _a, _b;
169
- const externalId = (_a = message === null || message === void 0 ? void 0 : message.data) === null || _a === void 0 ? void 0 : _a.externalId;
170
- const filterData = this.filterFormGroup.getRawValue();
171
- if (!externalId || this.externalId === externalId || ((_b = this.gridData) === null || _b === void 0 ? void 0 : _b.some((item) => item.externalId === externalId))) {
172
- this.updateGrid({ filterData });
173
- this.processedEvent.emit(message);
174
- }
175
- });
176
- this.websocketService
177
- .onEvent({
178
- domain: "platform",
179
- service: "notifications",
180
- primitive: "userNotified",
181
- })
182
- .pipe(takeUntil(this.ngUnsubscribe))
183
- .subscribe(() => {
184
- const filterData = this.filterFormGroup.getRawValue();
185
- this.updateGrid({ filterData });
186
- });
187
- }
188
- onSearch() {
189
- const filterData = this.filterFormGroup.getRawValue();
190
- this.gridLoading = true;
191
- this.resetGrid({ filterData });
192
- this.updateGrid({ filterData });
193
- }
194
- resetGrid(listParams) {
195
- if (listParams) {
196
- this.currentListParams = Object.assign(Object.assign({}, this.currentListParams), listParams);
197
- }
198
- this.currentListParams.page = AGRO_NUMBERS.ZERO;
199
- }
200
- updateGrid(listParams = {}) {
201
- var _a;
202
- this.currentListParams = Object.assign(Object.assign({}, this.currentListParams), listParams);
203
- if (((_a = this.currentListParams.sort) === null || _a === void 0 ? void 0 : _a.length) <= 0) {
204
- this.currentListParams.sort = this.standalone ?
205
- [{ field: "createdDate", order: 1 }] :
206
- [{ field: "lastModifiedDate", order: -1 }];
207
- }
208
- this.currentListParams.filterQuery = this.getFilter();
209
- this.eventControlService
210
- .list(this.currentListParams)
211
- .pipe(takeUntil(this.ngUnsubscribe), catchError((err) => {
212
- this.gridLoading = false;
213
- throw err;
214
- }))
215
- .subscribe((list) => {
216
- this.gridData = list.contents;
217
- this.gridTotalRecords = list.totalElements;
218
- if (!this.gridData || this.gridData.length <= AGRO_NUMBERS.ZERO) {
219
- this.gridLoading = false;
220
- return;
221
- }
222
- this.processEventControlItems();
223
- });
224
- }
225
- getFilter() {
226
- var _a, _b;
227
- const { filterData } = this.currentListParams;
228
- const filters = [];
229
- if ((_a = filterData["company"]) === null || _a === void 0 ? void 0 : _a.id) {
230
- filters.push(`e070emp.id eq '${filterData["company"].id}'`);
231
- }
232
- if ((_b = filterData["branch"]) === null || _b === void 0 ? void 0 : _b.id) {
233
- filters.push(`e070fil.id eq '${filterData["branch"].id}'`);
234
- }
235
- const controlCode = filterData["controlCode"];
236
- if (controlCode && Array.isArray(controlCode) && controlCode.length > 0) {
237
- const codes = controlCode.map((code) => parseInt(code, 10)).join(",");
238
- filters.push(`controlCode in (${codes})`);
239
- }
240
- if (filterData["externalId"]) {
241
- filters.push(`externalId eq '${filterData["externalId"]}'`);
242
- }
243
- if (filterData["eventOrigin"]) {
244
- filters.push(`eventOrigin eq '${filterData["eventOrigin"]}'`);
245
- }
246
- if (filterData["status"]) {
247
- filters.push(`eventControlItem.status eq '${filterData["status"]}'`);
248
- }
249
- if (filterData["createdDate"]) {
250
- filters.push(`createdDate ge '${this.getStartDate(filterData["createdDate"])}'`);
251
- filters.push(`createdDate le '${this.getEndDate(filterData["createdDate"])}'`);
252
- }
253
- return filters.join(" and ");
254
- }
255
- getEndDate(value) {
256
- const endDate = moment(value).endOf("day").format("YYYY-MM-DDTHH:mm:ss") + "Z";
257
- return endDate;
258
- }
259
- getStartDate(value) {
260
- const startDate = moment(value).startOf("day").format("YYYY-MM-DDTHH:mm:ss") + "Z";
261
- return startDate;
262
- }
263
- getDisplayFields() {
264
- return [
265
- '*',
266
- 'company.*',
267
- 'branch.*',
268
- 'eventControlItem.eventDomain',
269
- 'eventControlItem.id',
270
- 'eventControlItem.eventDomain',
271
- 'eventControlItem.eventService',
272
- 'eventControlItem.eventPrimitive',
273
- 'eventControlItem.eventControl',
274
- 'eventControlItem.eventGroup',
275
- 'eventControlItem.sequence',
276
- 'eventControlItem.eventOperation',
277
- 'eventControlItem.output',
278
- 'eventControlItem.input',
279
- 'eventControlItem.status',
280
- 'eventControlItem.subTitle',
281
- 'eventControlItem.message',
282
- 'eventControlItem.createdBy',
283
- 'eventControlItem.createdDate',
284
- 'eventControlItem.lastModifiedBy',
285
- 'eventControlItem.lastModifiedDate',
286
- ];
287
- }
288
- processEventControlItems() {
289
- this.gridData.forEach((item) => {
290
- const sortedItems = item.eventControlItem.sort((a, b) => {
291
- return a.sequence - b.sequence;
292
- });
293
- const steps = sortedItems.map((detail, index) => this.createStep(detail, item, index));
294
- const activeIndex = this.calculateActiveIndex(sortedItems);
295
- item.groups = [{ steps, activeIndex }];
296
- item.activeIndex = activeIndex;
297
- });
298
- this.gridDataResolved = this.gridData;
299
- this.gridLoading = false;
300
- }
301
- calculateActiveIndex(details) {
302
- const lastActive = details.reduce((lastIndex, detail, currentIndex) => (detail.status !== EventStatus.PENDING ? currentIndex : lastIndex), -1);
303
- if (lastActive !== -1 && details[lastActive].status === EventStatus.SUCCESS) {
304
- return lastActive + 1;
305
- }
306
- return lastActive;
307
- }
308
- createStep(detail, item, detailIndex) {
309
- console.log('Detail:', detail);
310
- return {
311
- item: detail,
312
- controlCode: item.controlCode,
313
- eventType: item.eventOrigin,
314
- label: this.getEventLabel(detail),
315
- subLabel: this.formatSubtitle(detail),
316
- disabled: detail.status === EventStatus.PENDING && detailIndex !== this.calculateActiveIndex(item.eventControlItem),
317
- tooltip: this.getEventLabel(detail),
318
- state: this.determineStepState(detail),
319
- };
320
- }
321
- determineStepState(detail) {
322
- if (detail.status === EventStatus.SUCCESS) {
323
- return StepState.Success;
324
- }
325
- if (detail.status === EventStatus.FAILED) {
326
- return StepState.Warning;
327
- }
328
- return StepState.Default;
329
- }
330
- getEventLabel(detail) {
331
- var _a;
332
- const eventLabel = (_a = this.eventItem.find((e) => e.value === detail.eventOperation)) === null || _a === void 0 ? void 0 : _a.label;
333
- console.log('Getting label for event operation:', eventLabel);
334
- if (eventLabel) {
335
- return this.translate.instant(eventLabel);
336
- }
337
- const localLabel = this.translate.instant("agro.angular_components." + detail.eventOperation);
338
- if (localLabel) {
339
- return localLabel;
340
- }
341
- return detail.eventOperation;
342
- }
343
- formatSubtitle(detail) {
344
- var _a;
345
- const { eventOperation, subTitle } = detail;
346
- const invoiceOperations = [
347
- EventOperation.CREATE_INVOICE_FIXATION,
348
- EventOperation.CANCEL_INVOICE_FIXATION,
349
- EventOperation.ORIGINATION_CREATE_INVOICE
350
- ];
351
- const numberPrefixOperations = [
352
- EventOperation.CLOSE_INVOICE_FIXATION,
353
- EventOperation.REOPEN_INVOICE_FIXATION
354
- ];
355
- const prescriptionOperations = [
356
- EventOperation.PRESCRIPTION_DATA_LOAD_PRODUCT_TYPE,
357
- EventOperation.PRESCRIPTION_DATA_LOAD_ACTIVE_PRINCIPLE,
358
- EventOperation.PRESCRIPTION_DATA_LOAD_FORMULATION,
359
- EventOperation.PRESCRIPTION_DATA_LOAD_BULLETIN,
360
- EventOperation.PRESCRIPTION_DATA_LOAD_APPLICATION_UNIT,
361
- EventOperation.PRESCRIPTION_DATA_LOAD_SPECIE,
362
- EventOperation.PRESCRIPTION_DATA_LOAD_APPLICATION_TYPE,
363
- EventOperation.PRESCRIPTION_DATA_LOAD_PROBLEMS,
364
- EventOperation.PRESCRIPTION_DATA_LOAD_APPLICATION
365
- ];
366
- let formattedSubtitle = subTitle;
367
- if (invoiceOperations.includes(eventOperation)) {
368
- const label = (_a = this.invoiceTypeTranslate.find((e) => e.value === subTitle)) === null || _a === void 0 ? void 0 : _a.label;
369
- formattedSubtitle = label ? this.translate.instant(label) : subTitle;
370
- }
371
- if (numberPrefixOperations.includes(eventOperation)) {
372
- formattedSubtitle = subTitle ? `n° ${subTitle}` : subTitle;
373
- }
374
- if (prescriptionOperations.includes(eventOperation)) {
375
- formattedSubtitle = this.translate.instant('agro.angular_components.new_prescription_page', { count: subTitle });
376
- }
377
- return formattedSubtitle;
378
- }
379
- onGridChange(event) {
380
- const size = event === null || event === void 0 ? void 0 : event.rows;
381
- const page = (event === null || event === void 0 ? void 0 : event.first) / size;
382
- const sort = event.multiSortMeta;
383
- this.gridLoading = true;
384
- if (size !== AGRO_NUMBERS.TEN || page !== AGRO_NUMBERS.ZERO || (sort && sort.length > AGRO_NUMBERS.ZERO)) {
385
- this.paginatorStorageService.storePaginator("EventControlBoardPaginator", { page, size, sort });
386
- }
387
- return this.updateGrid({ page, size, sort });
388
- }
389
- getPageSize() {
390
- return this.currentListParams.size;
391
- }
392
- getRowIndex() {
393
- return this.currentListParams.page * this.currentListParams.size;
394
- }
395
- getSortField() {
396
- if (!this.currentListParams.sort || this.currentListParams.sort.length <= AGRO_NUMBERS.ZERO) {
397
- return this.gridColumns[AGRO_NUMBERS.ZERO].field;
398
- }
399
- return this.currentListParams.sort[AGRO_NUMBERS.ZERO].field;
400
- }
401
- getSortOrder() {
402
- if (!this.currentListParams.sort || this.currentListParams.sort.length <= AGRO_NUMBERS.ZERO) {
403
- return AGRO_NUMBERS.ONE;
404
- }
405
- return this.currentListParams.sort[AGRO_NUMBERS.ZERO].order;
406
- }
407
- getErrorMessages() {
408
- const translatedErrorMessages = {};
409
- for (const key in LookupErrorMessages) {
410
- if (LookupErrorMessages.hasOwnProperty(key)) {
411
- this.translate.get(LookupErrorMessages[key]).subscribe((res) => {
412
- translatedErrorMessages[key] = res;
413
- });
414
- }
415
- }
416
- return translatedErrorMessages;
417
- }
418
- getProducerInvoiceIdFromParams(param) {
419
- var _a, _b, _c, _d, _e;
420
- if (!param) {
421
- return null;
422
- }
423
- return (_e = [
424
- (_a = param.producerInvoiceIds) === null || _a === void 0 ? void 0 : _a[0],
425
- (_c = (_b = param.invoice) === null || _b === void 0 ? void 0 : _b.generalData) === null || _c === void 0 ? void 0 : _c.transactionalId,
426
- param.producerInvoiceId,
427
- param.externalId,
428
- (_d = param.externalInvoiceIds) === null || _d === void 0 ? void 0 : _d[0],
429
- ].find((id) => id)) !== null && _e !== void 0 ? _e : null;
430
- }
431
- getProducerBalanceEntryControlIdFromParams(param) {
432
- const { producerBalanceEntryControlId } = param;
433
- return producerBalanceEntryControlId ? producerBalanceEntryControlId : null;
434
- }
435
- stepSelected(event) {
436
- this.selectedStep = event.step;
437
- this.applySidebarTitle("");
438
- switch (this.selectedStep.eventType) {
439
- case EventOrigin.BALANCE_ENTRY_CONTROL:
440
- case EventOrigin.TICKET:
441
- case EventOrigin.INVOICE:
442
- case EventOrigin.CREATE_INVOICE:
443
- this.sidebarLoading = true;
444
- {
445
- const param = JSON.parse(this.selectedStep.item.input);
446
- const producerInvoiceId = this.getProducerInvoiceIdFromParams(param);
447
- let filterQuery = "";
448
- if (!producerInvoiceId) {
449
- const producerBalanceEntryControlId = this.getProducerBalanceEntryControlIdFromParams(param);
450
- if (!producerBalanceEntryControlId) {
451
- this.sidebarLoading = false;
452
- return;
453
- }
454
- filterQuery = `producerBalanceEntryControl.id eq '${producerBalanceEntryControlId}'`;
455
- }
456
- else {
457
- filterQuery = `id eq '${producerInvoiceId}'`;
458
- }
459
- this.producerInvoiceService
460
- .list({
461
- displayFields: ["*", "producerBalanceEntryControl.*", "producerBalanceEntryControl.producer.*"],
462
- filterQuery,
463
- page: 0,
464
- size: 1,
465
- })
466
- .pipe(takeUntil(this.ngUnsubscribe))
467
- .subscribe((result) => {
468
- this.producerInvoice = result === null || result === void 0 ? void 0 : result.contents[0];
469
- this.producerInvoice;
470
- this.sidebarLoading = false;
471
- this.applySidebarTitle(this.getProducerInvoiceNumberAndSerie());
472
- }, () => {
473
- this.sidebarLoading = false;
474
- });
475
- }
476
- break;
477
- case EventOrigin.FIXATION:
478
- case EventOrigin.CANCEL_FIXATION:
479
- case EventOrigin.CHANGE_REQUEST:
480
- case EventOrigin.TRANSFER:
481
- break;
482
- }
483
- this.showReprocessButton = event.step.state === StepState.Warning;
484
- this.showSidebar = true;
485
- }
486
- applySidebarTitle(title) {
487
- this.sidebarTitle = this.translate.instant("agro.angular_components.event_sidebar_title", { eventNumber: title });
488
- }
489
- getProducerInvoiceNumberAndSerie() {
490
- var _a, _b;
491
- if (((_a = this.producerInvoice) === null || _a === void 0 ? void 0 : _a.number) && ((_b = this.producerInvoice) === null || _b === void 0 ? void 0 : _b.series)) {
492
- return `${this.producerInvoice.number} - ${this.producerInvoice.series}`;
493
- }
494
- return "";
495
- }
496
- reprocessEvent() {
497
- const reprocessEventObj = {
498
- eventControlItemId: this.selectedStep.item.id,
499
- };
500
- this.eventControlItemService
501
- .reprocessFailedEvent(reprocessEventObj)
502
- .pipe(takeUntil(this.ngUnsubscribe))
503
- .subscribe(() => {
504
- this.addMessage("info", "agro.angular_components.reprocessing_event_message_title", "agro.angular_components.reprocessing_event_message_description");
505
- }, () => {
506
- this.addMessage("error", "agro.angular_components.error_reprocessing_event_message_title", "agro.angular_components.error_reprocessing_event_message_description");
507
- });
508
- }
509
- addMessage(severity, summary, detail, life = AGRO_NUMBERS.FIVE_SECONDS) {
510
- this.messageService.add({
511
- severity,
512
- summary: this.translate.instant(summary),
513
- detail: this.translate.instant(detail),
514
- life,
515
- });
516
- }
517
- openModal() {
518
- this.displayModal = true;
519
- this.showSidebar = false;
520
- }
521
- openCancelModal() {
522
- var _a, _b, _c;
523
- return __awaiter(this, void 0, void 0, function* () {
524
- yield ((_b = (_a = this.cancelEventDialogConfig).beforeOpen) === null || _b === void 0 ? void 0 : _b.call(_a));
525
- this.dialogService.open(CancelEventDialogComponent, {
526
- header: (_c = this.cancelEventDialogConfig) === null || _c === void 0 ? void 0 : _c.header,
527
- contentStyle: { height: "100%" },
528
- closable: true,
529
- closeOnEscape: false,
530
- data: { cancelEventDialogConfig: this.cancelEventDialogConfig },
531
- });
532
- });
533
- }
534
- confirmModal() {
535
- this.reprocessEvent();
536
- this.displayModal = false;
537
- }
538
- cancelModal() {
539
- this.displayModal = false;
540
- }
541
- closeSidebar() {
542
- this.showSidebar = false;
543
- }
544
- };
545
- EventControlBoardComponent.ctorParameters = () => [
546
- { type: LibTranslationService },
547
- { type: FormBuilder },
548
- { type: WebsocketService },
549
- { type: EventControlService },
550
- { type: PaginatorStorageService },
551
- { type: EventControlItemService },
552
- { type: ProducerInvoiceService },
553
- { type: MessageService },
554
- { type: DialogService }
555
- ];
556
- __decorate([
557
- Input()
558
- ], EventControlBoardComponent.prototype, "company", void 0);
559
- __decorate([
560
- Input()
561
- ], EventControlBoardComponent.prototype, "branch", void 0);
562
- __decorate([
563
- Input()
564
- ], EventControlBoardComponent.prototype, "controlCode", void 0);
565
- __decorate([
566
- Input()
567
- ], EventControlBoardComponent.prototype, "eventOrigin", void 0);
568
- __decorate([
569
- Input()
570
- ], EventControlBoardComponent.prototype, "eventStatus", void 0);
571
- __decorate([
572
- Input()
573
- ], EventControlBoardComponent.prototype, "externalId", void 0);
574
- __decorate([
575
- Input()
576
- ], EventControlBoardComponent.prototype, "createdDate", void 0);
577
- __decorate([
578
- Input()
579
- ], EventControlBoardComponent.prototype, "standalone", void 0);
580
- __decorate([
581
- Input()
582
- ], EventControlBoardComponent.prototype, "showCancelButton", void 0);
583
- __decorate([
584
- Input()
585
- ], EventControlBoardComponent.prototype, "cancelEventDialogConfig", void 0);
586
- __decorate([
587
- Output()
588
- ], EventControlBoardComponent.prototype, "processedEvent", void 0);
589
- EventControlBoardComponent = __decorate([
590
- Component({
591
- selector: "event-control-board",
592
- template: "<ng-container *sLoadingState=\"gridLoading\">\r\n <p-panel>\r\n <p-header>\r\n {{ \"agro.angular_components.event_control_header\" | libTranslate }}\r\n </p-header>\r\n <div class=\"ui-g\">\r\n <div class=\"ui-g-12\">\r\n <s-button\r\n id=\"refresh-button\"\r\n [priority]=\"ButtonPriority.Primary\"\r\n iconClass=\"fa fa-refresh\"\r\n [label]=\"'agro.angular_components.refresh' | libTranslate\"\r\n (click)=\"onSearch()\"\r\n >\r\n </s-button>\r\n <s-button\r\n *ngIf=\"standalone && showCancelButton\"\r\n id=\"cancel-button-agro-events-lib\"\r\n iconClass=\"fa fa-times\"\r\n [label]=\"'agro.angular_components.cancel' | libTranslate\"\r\n (click)=\"openCancelModal()\"\r\n >\r\n </s-button>\r\n </div>\r\n </div>\r\n <div class=\"ui-g\">\r\n <div class=\"ui-g-12 ui-md-12\" *ngIf=\"!gridData || gridData?.length === 0\">\r\n <s-empty-state\r\n iconClass=\"fa fa-exclamation-triangle\"\r\n title=\"{{ 'agro.angular_components.nothing_found' | libTranslate }}\"\r\n [showPrimaryAction]=\"false\"\r\n description=\"{{ 'agro.angular_components.table_empty_description' | libTranslate }}\"\r\n >\r\n </s-empty-state>\r\n </div>\r\n <ng-container *ngIf=\"gridData?.length > 0\">\r\n <p-table\r\n stylelass=\"custom-table\"\r\n #eventControlTable\r\n [value]=\"gridDataResolved\"\r\n [columns]=\"gridColumns\"\r\n dataKey=\"id\"\r\n [lazy]=\"true\"\r\n [scrollable]=\"true\"\r\n [resizableColumns]=\"true\"\r\n [paginator]=\"!standalone\"\r\n [totalRecords]=\"gridTotalRecords\"\r\n [rows]=\"10\"\r\n [responsive]=\"true\"\r\n (onLazyLoad)=\"onGridChange($event)\"\r\n [sortOrder]=\"getSortOrder()\"\r\n [first]=\"getRowIndex()\"\r\n [lazyLoadOnInit]=\"false\"\r\n sortMode=\"multiple\"\r\n [rows]=\"getPageSize()\"\r\n [rowsPerPageOptions]=\"[10, 20, 50, 100]\"\r\n >\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <ng-container *ngIf=\"!standalone\">\r\n <th *ngFor=\"let col of columns\" class=\"ui-lg-1 ui-md-1\" [pSortableColumn]=\"col.field\" scope=\"col\">\r\n <div class=\"senior-header\">\r\n <span class=\"senior-header-title\">{{ col.header }}</span>\r\n <p-sortIcon [field]=\"col.field\"></p-sortIcon>\r\n </div>\r\n </th>\r\n </ng-container>\r\n <th class=\"ui-lg-8 ui-md-7\" scope=\"col\">\r\n {{ \"agro.angular_components.panel_title_events_events\" | libTranslate }}\r\n </th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowData>\r\n <tr>\r\n <ng-container *ngIf=\"!standalone\">\r\n <td class=\"ui-lg-1 ui-md-1\">\r\n {{ rowData.e070emp?.nomEmp }}\r\n </td>\r\n <td class=\"ui-lg-1 ui-md-1\">\r\n {{ rowData.e070fil?.nomFil }}\r\n </td>\r\n <td class=\"ui-lg-1 ui-md-1\">\r\n <ng-container [ngSwitch]=\"rowData.eventOrigin\">\r\n <span *ngSwitchCase=\"'BALANCE_ENTRY_CONTROL'\">\r\n {{ \"agro.angular_components.balance_entry_control_event\" | libTranslate }}\r\n </span>\r\n <span *ngSwitchCase=\"'TICKET'\">\r\n {{ \"agro.angular_components.ticket_maintenance_header\" | libTranslate }}\r\n </span>\r\n <span *ngSwitchCase=\"'TRANSFER'\">\r\n {{ \"agro.angular_components.transfer_origin_event\" | libTranslate }}\r\n </span>\r\n <span *ngSwitchCase=\"'INVOICE'\">\r\n {{ \"agro.angular_components.CREATE_INVOICE_FIXATION\" | libTranslate }}\r\n </span>\r\n <span *ngSwitchCase=\"'CHANGE_REQUEST'\">\r\n {{ \"agro.angular_components.change_request_event\" | libTranslate }}\r\n </span>\r\n <span *ngSwitchCase=\"'FIXATION'\">\r\n {{ \"agro.angular_components.fixation_event\" | libTranslate }}\r\n </span>\r\n <span *ngSwitchCase=\"'CANCEL_FIXATION'\">\r\n {{ \"agro.angular_components.cancel_fixation_event\" | libTranslate }}\r\n </span>\r\n <span *ngSwitchCase=\"'TRANSFER_CANCELLATION'\">\r\n {{ \"agro.angular_components.transfer_cancellation_event\" | libTranslate }}\r\n </span>\r\n <span *ngSwitchCase=\"'AGRONOMIC_PRESCRIPTION'\">\r\n {{ \"agro.angular_components.agronomic_prescription_origin_event\" | libTranslate }}\r\n </span>\r\n <span *ngSwitchCase=\"'PRESCRIPTION_INTEGRATION_HUB'\">\r\n {{ \"agro.angular_components.agronomic_prescription_origin_event\" | libTranslate }}\r\n </span>\r\n </ng-container>\r\n </td>\r\n <td class=\"ui-lg-1 ui ui-md-1\">\r\n {{ rowData.controlCode || \"\" }}\r\n </td>\r\n </ng-container>\r\n <td class=\"ui-lg-8 ui-md-7\">\r\n <ng-container *ngFor=\"let group of rowData.groups\">\r\n <s-event-steps\r\n [steps]=\"group.steps || []\"\r\n [activeIndex]=\"group.activeIndex\"\r\n (stepSelected)=\"stepSelected($event)\"\r\n >\r\n </s-event-steps>\r\n </ng-container>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template *ngIf=\"!standalone\" pTemplate=\"paginatorright\" class=\"custom-table\">\r\n <span>\r\n {{ \"agro.angular_components.registers_found\" | libTranslate: { total: gridTotalRecords } }}\r\n </span>\r\n </ng-template>\r\n </p-table>\r\n </ng-container>\r\n </div>\r\n </p-panel>\r\n</ng-container>\r\n<s-sidebar\r\n [visible]=\"showSidebar\"\r\n (visibleChange)=\"closeSidebar()\"\r\n header=\"{{ 'agro.angular_components.event_details_header' | libTranslate }}\"\r\n>\r\n <div class=\"ui-fluid\">\r\n <p-fieldset [legend]=\"sidebarTitle\" [toggleable]=\"false\">\r\n <div class=\"ui-g\">\r\n <div class=\"ui-g-4\">\r\n <span\r\n ><strong>{{ \"agro.angular_components.event_origin_label\" | libTranslate }}</strong></span\r\n >\r\n <ng-container [ngSwitch]=\"selectedStep?.eventType\">\r\n <p *ngSwitchCase=\"'BALANCE_ENTRY_CONTROL'\">\r\n {{ \"agro.angular_components.balance_entry_control_event\" | libTranslate }}\r\n </p>\r\n <p *ngSwitchCase=\"'TICKET'\">\r\n {{ \"agro.angular_components.ticket_maintenance_header\" | libTranslate }}\r\n </p>\r\n <p *ngSwitchCase=\"'TRANSFER'\">\r\n {{ \"agro.angular_components.transfer_origin_event\" | libTranslate }}\r\n </p>\r\n <p *ngSwitchCase=\"'INVOICE'\">\r\n {{ \"agro.angular_components.CREATE_INVOICE_FIXATION\" | libTranslate }}\r\n </p>\r\n <p *ngSwitchCase=\"'CHANGE_REQUEST'\">\r\n {{ \"agro.angular_components.change_request_event\" | libTranslate }}\r\n </p>\r\n <p *ngSwitchCase=\"'FIXATION'\">\r\n {{ \"agro.angular_components.fixation_event\" | libTranslate }}\r\n </p>\r\n <p *ngSwitchCase=\"'CANCEL_FIXATION'\">\r\n {{ \"agro.angular_components.cancel_fixation_event\" | libTranslate }}\r\n </p>\r\n <p *ngSwitchCase=\"'TRANSFER_CANCELLATION'\">\r\n {{ \"agro.angular_components.transfer_cancellation_event\" | libTranslate }}\r\n </p>\r\n <p *ngSwitchCase=\"'AGRONOMIC_PRESCRIPTION'\">\r\n {{ \"agro.angular_components.agronomic_prescription_origin_event\" | libTranslate }}\r\n </p>\r\n <p *ngSwitchCase=\"'PRESCRIPTION_INTEGRATION_HUB'\">\r\n {{ \"agro.angular_components.agronomic_prescription_origin_event\" | libTranslate }}\r\n </p>\r\n </ng-container>\r\n </div>\r\n <div class=\"ui-g-4\" *ngIf=\"producerInvoice?.producerBalanceEntryControl.producer.e001pes.nomPes\">\r\n <span\r\n ><strong>{{ \"agro.angular_components.supplier\" | libTranslate }}</strong></span\r\n >\r\n <p>{{ producerInvoice?.producerBalanceEntryControl.producer.e001pes.nomPes }}</p>\r\n </div>\r\n <div class=\"ui-g-4\" *ngIf=\"producerInvoice?.producerBalanceEntryControl.ruralEstate.name\">\r\n <span\r\n ><strong>{{ \"agro.angular_components.rural_estate\" | libTranslate }}</strong></span\r\n >\r\n <p>{{ producerInvoice?.producerBalanceEntryControl.ruralEstate.name }}</p>\r\n </div>\r\n <div class=\"ui-g-4\" *ngIf=\"selectedStep?.controlCode\">\r\n <span\r\n ><strong>{{ \"agro.angular_components.control_code\" | libTranslate }}</strong></span\r\n >\r\n <p>{{ selectedStep?.controlCode }}</p>\r\n </div>\r\n <div class=\"ui-g-4\">\r\n <span\r\n ><strong>{{ \"agro.angular_components.status_label\" | libTranslate }}</strong></span\r\n >\r\n <ng-container [ngSwitch]=\"selectedStep?.item.status\">\r\n <p *ngSwitchCase=\"'SUCCESS'\">\r\n <s-badge\r\n [color]=\"BadgeColors.Green\"\r\n text=\"{{ 'agro.angular_components.panel_title_events_completed_successfully' | libTranslate }}\"\r\n [selectable]=\"false\"\r\n >\r\n </s-badge>\r\n </p>\r\n <p *ngSwitchCase=\"'PROCESSING'\">\r\n <s-badge\r\n [color]=\"BadgeColors.Orange\"\r\n text=\"{{ 'agro.angular_components.processing' | libTranslate }}\"\r\n [selectable]=\"false\"\r\n >\r\n </s-badge>\r\n </p>\r\n <p *ngSwitchCase=\"'FAILED'\">\r\n <s-badge\r\n [color]=\"BadgeColors.Red\"\r\n text=\"{{ 'agro.angular_components.panel_title_events_ended_with_error' | libTranslate }}\"\r\n [selectable]=\"false\"\r\n >\r\n </s-badge>\r\n </p>\r\n <p *ngSwitchCase=\"'PENDING'\">\r\n <s-badge\r\n [color]=\"BadgeColors.Gray\"\r\n text=\"{{ 'agro.angular_components.pending' | libTranslate }}\"\r\n [selectable]=\"false\"\r\n >\r\n </s-badge>\r\n </p>\r\n </ng-container>\r\n </div>\r\n <div class=\"ui-g-4\">\r\n <span\r\n ><strong>{{ \"agro.angular_components.last_update_date\" | libTranslate }}</strong></span\r\n >\r\n <p>{{ selectedStep?.item.lastModifiedDate | date: \"dd/MM/yyyy HH:mm:ss\" }}</p>\r\n </div>\r\n <div class=\"ui-g-4\" *ngIf=\"selectedStep?.item.status === 'FAILED'\">\r\n <span\r\n ><strong>{{ \"agro.angular_components.event_error_message\" | libTranslate }}</strong></span\r\n >\r\n <p>{{ selectedStep?.item.message || \"-\" }}</p>\r\n </div>\r\n </div>\r\n </p-fieldset>\r\n </div>\r\n <s-footer>\r\n <div class=\"ui-g\">\r\n <div class=\"ui-g-12 width-fit\">\r\n <s-button\r\n id=\"sidebar-close-button\"\r\n [priority]=\"ButtonPriority.Primary\"\r\n [label]=\"'agro.angular_components.events_close' | libTranslate\"\r\n [auxiliary]=\"false\"\r\n (click)=\"closeSidebar()\"\r\n >\r\n </s-button>\r\n <s-button\r\n *ngIf=\"showReprocessButton\"\r\n id=\"sidebar-reprocess-button\"\r\n [priority]=\"ButtonPriority.Secondary\"\r\n iconClass=\"fa fa-refresh\"\r\n [label]=\"'agro.angular_components.reprocess_event' | libTranslate\"\r\n [auxiliary]=\"false\"\r\n (click)=\"openModal()\"\r\n >\r\n </s-button>\r\n </div>\r\n </div>\r\n </s-footer>\r\n</s-sidebar>\r\n\r\n<p-dialog [header]=\"'agro.angular_components.event_modal_title' | libTranslate\" [(visible)]=\"displayModal\" [modal]=\"true\" class=\"dialog\">\r\n <div class=\"event-modal-text\">{{ \"agro.angular_components.event_modal\" | libTranslate }}</div>\r\n <p-footer>\r\n <div class=\"ui-dialog-buttonpane ui-widget-content ui-helper-clearfix\">\r\n <button\r\n id=\"modal-yes\"\r\n type=\"button\"\r\n pButton\r\n icon=\"fa fa-check\"\r\n (click)=\"confirmModal()\"\r\n label=\"{{ 'agro.angular_components.yes' | libTranslate }}\"\r\n class=\"ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only\"\r\n ></button>\r\n <button\r\n id=\"modal-no\"\r\n type=\"button\"\r\n pButton\r\n icon=\"fa fa-close\"\r\n (click)=\"cancelModal()\"\r\n label=\"{{ 'agro.angular_components.no' | libTranslate }}\"\r\n class=\"ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only\"\r\n ></button>\r\n </div>\r\n </p-footer>\r\n</p-dialog>\r\n",
593
- providers: [{ provide: LOCALE_ID, useValue: "pt-BR" }],
594
- styles: [".frozen{border-left:2px solid #ddd}.dialog{width:\"600px\";height:\"300px\";z-index:100000}:host ::ng-deep #cancel-button-agro-events-lib{background-color:#9c3a3a!important;border-color:#9c3a3a!important}:host ::ng-deep #cancel-button-agro-events-lib:hover{background-color:#642525!important}"]
595
- })
596
- ], EventControlBoardComponent);
597
- export { EventControlBoardComponent };
598
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtY29udHJvbC1ib2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZXZlbnQtY29udHJvbC1ib2FyZC9ldmVudC1jb250cm9sLWJvYXJkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxRQUFRLE1BQU0sNEJBQTRCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBZ0MsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFRLFNBQVMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hILE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFNUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDbEcsT0FB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fSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCBsb2NhbGVQdCBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvcHRcIjtcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBMT0NBTEVfSUQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgQmFkZ2VDb2xvcnMsIEJ1dHRvblByaW9yaXR5LCBGaWVsZFR5cGUsIEZvcm1GaWVsZCwgU3RlcCwgU3RlcFN0YXRlIH0gZnJvbSBcIkBzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHNcIjtcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSwgTWVzc2FnZVNlcnZpY2UgfSBmcm9tIFwicHJpbWVuZ1wiO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IEFHUk9fTlVNQkVSUyB9IGZyb20gXCIuLi8uLi9lbnVtcy9hZ3JvLW51bWJlcnMuZW51bVwiO1xyXG5pbXBvcnQgeyBMaWJUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvbGliLXRyYW5zbGF0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUHJvZHVjZXJJbnZvaWNlU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9wcm9kdWNlci1pbnZvaWNlXCI7XHJcbmltcG9ydCB7IFdlYnNvY2tldFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvd2Vic29ja2V0XCI7XHJcbmltcG9ydCB7IENhbmNlbEV2ZW50RGlhbG9nQ29uZmlnIH0gZnJvbSBcIi4uL2NhbmNlbC1ldmVudC1kaWFsb2cvY2FuY2VsLWV2ZW50LWRpYWxvZy1jb25maWdcIjtcclxuaW1wb3J0IHsgQ2FuY2VsRXZlbnREaWFsb2dDb21wb25lbnQgfSBmcm9tIFwiLi4vY2FuY2VsLWV2ZW50LWRpYWxvZy9jYW5jZWwtZXZlbnQtZGlhbG9nLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBldmVudEl0ZW0gfSBmcm9tIFwiLi9jb21tb24vZXZlbnQtY29udHJvbC1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgRXZlbnRPcGVyYXRpb24gfSBmcm9tIFwiLi9jb21tb24vZXZlbnQtb3BlcmF0aW9uXCI7XHJcbmltcG9ydCB7IEV2ZW50T3JpZ2luIH0gZnJvbSBcIi4vY29tbW9uL2V2ZW50LW9yaWdpblwiO1xyXG5pbXBvcnQgeyBFdmVudFN0YXR1cyB9IGZyb20gXCIuL2NvbW1vbi9ldmVudC1zdGF0dXNcIjtcclxuaW1wb3J0IHsgaW52b2ljZVR5cGVUcmFuc2xhdGUgfSBmcm9tIFwiLi9jb21tb24vaW5wdXQtZmllbGRzLXRyYW5zbGF0ZVwiO1xyXG5pbXBvcnQgeyBMb29rdXBFcnJvck1lc3NhZ2VzIH0gZnJvbSBcIi4vY29tbW9uL2xvb2t1cC1lcnJvci1tZXNzYWdlLmNvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBFMDcwRW1wIH0gZnJvbSBcIi4vc2VydmljZS9lMDcwZW1wL2UwNzBlbXBcIjtcclxuaW1wb3J0IHsgRTA3MEZpbCB9IGZyb20gXCIuL3NlcnZpY2UvZTA3MGZpbC9lMDcwZmlsXCI7XHJcbmltcG9ydCB7IEV2ZW50Q29udHJvbEl0ZW0gfSBmcm9tIFwiLi9zZXJ2aWNlL2V2ZW50LWNvbnRyb2wtaXRlbS9ldmVudC1jb250cm9sLWl0ZW1cIjtcclxuaW1wb3J0IHsgRXZlbnRDb250cm9sSXRlbVNlcnZpY2UsIFJlcHJvY2Vzc0ZhaWxlZEV2ZW50IH0gZnJvbSBcIi4vc2VydmljZS9ldmVudC1jb250cm9sLWl0ZW0vZXZlbnQtY29udHJvbC1pdGVtLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRXZlbnRDb250cm9sIH0gZnJvbSBcIi4vc2VydmljZS9ldmVudC1jb250cm9sL2V2ZW50LWNvbnRyb2xcIjtcclxuaW1wb3J0IHsgRXZlbnRDb250cm9sU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2UvZXZlbnQtY29udHJvbC9ldmVudC1jb250cm9sLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUGFnaW5hdG9yU3RvcmFnZVNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlL3BhZ2luYXRvci1zdG9yYWdlLnNlcnZpY2VcIjtcclxuY29uc3QgbW9tZW50ID0gcmVxdWlyZShcIm1vbWVudFwiKTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiZXZlbnQtY29udHJvbC1ib2FyZFwiLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9ldmVudC1jb250cm9sLWJvYXJkLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgICBzdHlsZVVybHM6IFtcIi4vZXZlbnQtY29udHJvbC1ib2FyZC5jb21wb25lbnQuc2Nzc1wiXSxcclxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTE9DQUxFX0lELCB1c2VWYWx1ZTogXCJwdC1CUlwiIH1dLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXZlbnRDb250cm9sQm9hcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcclxuICAgIEBJbnB1dCgpIGNvbXBhbnkhOiBFMDcwRW1wO1xyXG4gICAgQElucHV0KCkgYnJhbmNoITogRTA3MEZpbDtcclxuICAgIEBJbnB1dCgpIGNvbnRyb2xDb2RlITogc3RyaW5nW107XHJcbiAgICBASW5wdXQoKSBldmVudE9yaWdpbiE6IEV2ZW50T3JpZ2luO1xyXG4gICAgQElucHV0KCkgZXZlbnRTdGF0dXMhOiBFdmVudFN0YXR1cztcclxuICAgIEBJbnB1dCgpIGV4dGVybmFsSWQhOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBjcmVhdGVkRGF0ZSE6IERhdGU7XHJcbiAgICBASW5wdXQoKSBzdGFuZGFsb25lITogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIHNob3dDYW5jZWxCdXR0b24hOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgY2FuY2VsRXZlbnREaWFsb2dDb25maWchOiBDYW5jZWxFdmVudERpYWxvZ0NvbmZpZztcclxuICAgIEBPdXRwdXQoKSBwcm9jZXNzZWRFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgICBwdWJsaWMgcHJvZHVjZXJJbnZvaWNlITogYW55O1xyXG5cclxuICAgIHB1YmxpYyBzdGVwczogU3RlcFtdID0gW107XHJcbiAgICBwdWJsaWMgc2VsZWN0ZWRTdGVwOiBhbnk7XHJcbiAgICBwdWJsaWMgZXZlbnRJZCE6IFwiXCI7XHJcbiAgICBwdWJsaWMgc2hvd1NpZGViYXIgPSBmYWxzZTtcclxuICAgIHB1YmxpYyBzaG93UmVwcm9jZXNzQnV0dG9uID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgc2lkZWJhclRpdGxlITogc3RyaW5nO1xyXG4gICAgcHVibGljIHNpZGViYXJMb2FkaW5nITogYm9vbGVhbjtcclxuXHJcbiAgICBwdWJsaWMgZmlsdGVyRm9ybUdyb3VwITogRm9ybUdyb3VwO1xyXG4gICAgcHVibGljIGZpbHRlckZpZWxkcyE6IEZvcm1GaWVsZFtdO1xyXG5cclxuICAgIHB1YmxpYyBncmlkRGF0YSE6IGFueVtdO1xyXG4gICAgcHVibGljIGdyaWREYXRhUmVzb2x2ZWQhOiBhbnlbXTtcclxuICAgIHB1YmxpYyBncmlkQ29sdW1ucyE6IGFueVtdO1xyXG4gICAgcHVibGljIGdyaWRUb3RhbFJlY29yZHMgPSBBR1JPX05VTUJFUlMuWkVSTztcclxuICAgIHB1YmxpYyBncmlkTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgcHVibGljIGRpc3BsYXlNb2RhbCA9IGZhbHNlO1xyXG5cclxuICAgIHB1YmxpYyBCdXR0b25Qcmlvcml0eSA9IEJ1dHRvblByaW9yaXR5O1xyXG4gICAgcHVibGljIEJhZGdlQ29sb3JzID0gQmFkZ2VDb2xvcnM7XHJcblxyXG4gICAgcHVibGljIHBlcm1pc3Npb25zOiBhbnkgPSB7fTtcclxuICAgIHB1YmxpYyBsb2NhbGVDb25maWc6IGFueSA9IHt9O1xyXG5cclxuICAgIHB1YmxpYyBjdXJyZW50TGlzdFBhcmFtczogYW55ID0ge1xyXG4gICAgICAgIHBhZ2U6IEFHUk9fTlVNQkVSUy5aRVJPLFxyXG4gICAgICAgIHNpemU6IEFHUk9fTlVNQkVSUy5URU4sXHJcbiAgICAgICAgZGlzcGxheUZpZWxkczogdGhpcy5nZXREaXNwbGF5RmllbGRzKCksXHJcbiAgICAgICAgc29ydDogW10sXHJcbiAgICAgICAgZmlsdGVyRGF0YToge31cclxuICAgIH07XHJcblxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRJdGVtID0gZXZlbnRJdGVtO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbnZvaWNlVHlwZVRyYW5zbGF0ZSA9IGludm9pY2VUeXBlVHJhbnNsYXRlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBMaWJUcmFuc2xhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB3ZWJzb2NrZXRTZXJ2aWNlOiBXZWJzb2NrZXRTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRDb250cm9sU2VydmljZTogRXZlbnRDb250cm9sU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHBhZ2luYXRvclN0b3JhZ2VTZXJ2aWNlOiBQYWdpbmF0b3JTdG9yYWdlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGV2ZW50Q29udHJvbEl0ZW1TZXJ2aWNlOiBFdmVudENvbnRyb2xJdGVtU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHByb2R1Y2VySW52b2ljZVNlcnZpY2U6IFByb2R1Y2VySW52b2ljZVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgICAgICByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlUHQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmdyaWRDb2x1bW5zID0gdGhpcy5zZXRHcmlkQ29sdW1ucygpO1xyXG4gICAgICAgIHRoaXMuY2FsbFdlYnNvY2tldCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmZpbHRlckZvcm1Hcm91cCkge1xyXG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVGb3JtR3JvdXAoKTtcclxuICAgICAgICAgICAgdGhpcy5zZXRGb3JtRmllbGRzKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnVwZGF0ZUNvbXBhbnlBbmRCcmFuY2hGb3JtRmllbGRzKGNoYW5nZXMpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRXZlbnRPcmlnaW5BbmRDb250cm9sQ29kZUZvcm1GaWVsZHMoY2hhbmdlcyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVFdmVudFN0YXR1c0FuZENyZWF0ZWREYXRlRm9ybUZpZWxkcyhjaGFuZ2VzKTtcclxuICAgICAgICB0aGlzLm9uU2VhcmNoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB1cGRhdGVDb21wYW55QW5kQnJhbmNoRm9ybUZpZWxkcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAgICAgaWYgKGNoYW5nZXMuY29tcGFueSAmJiBjaGFuZ2VzLmNvbXBhbnkuY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLmNvbXBhbnkucHJldmlvdXNWYWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXQoXCJjb21wYW55XCIpPy5zZXRWYWx1ZShjaGFuZ2VzLmNvbXBhbnkuY3VycmVudFZhbHVlID8/IG51bGwpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGNoYW5nZXMuYnJhbmNoICYmIGNoYW5nZXMuYnJhbmNoLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5icmFuY2gucHJldmlvdXNWYWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXQoXCJicmFuY2hcIik/LnNldFZhbHVlKGNoYW5nZXMuYnJhbmNoLmN1cnJlbnRWYWx1ZSA/PyBudWxsKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB1cGRhdGVFdmVudE9yaWdpbkFuZENvbnRyb2xDb2RlRm9ybUZpZWxkcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAgICAgaWYgKGNoYW5nZXMuZXZlbnRPcmlnaW4gJiYgY2hhbmdlcy5ldmVudE9yaWdpbi5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMuZXZlbnRPcmlnaW4ucHJldmlvdXNWYWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXQoXCJldmVudE9yaWdpblwiKT8uc2V0VmFsdWUoY2hhbmdlcy5ldmVudE9yaWdpbi5jdXJyZW50VmFsdWUgPz8gbnVsbCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY2hhbmdlcy5jb250cm9sQ29kZSAmJiBjaGFuZ2VzLmNvbnRyb2xDb2RlLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5jb250cm9sQ29kZS5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldChcImNvbnRyb2xDb2RlXCIpPy5zZXRWYWx1ZShjaGFuZ2VzLmNvbnRyb2xDb2RlLmN1cnJlbnRWYWx1ZSA/PyBudWxsKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB1cGRhdGVFdmVudFN0YXR1c0FuZENyZWF0ZWREYXRlRm9ybUZpZWxkcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAgICAgaWYgKGNoYW5nZXMuZXZlbnRTdGF0dXMgJiYgY2hhbmdlcy5ldmVudFN0YXR1cy5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMuZXZlbnRTdGF0dXMucHJldmlvdXNWYWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXQoXCJzdGF0dXNcIik/LnNldFZhbHVlKGNoYW5nZXMuZXZlbnRTdGF0dXMuY3VycmVudFZhbHVlID8/IG51bGwpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGNoYW5nZXMuY3JlYXRlZERhdGUgJiYgY2hhbmdlcy5jcmVhdGVkRGF0ZS5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMuY3JlYXRlZERhdGUucHJldmlvdXNWYWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXQoXCJjcmVhdGVkRGF0ZVwiKT8uc2V0VmFsdWUoY2hhbmdlcy5jcmVhdGVkRGF0ZS5jdXJyZW50VmFsdWUgPz8gbnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdGlhbGl6ZUZvcm1Hcm91cCgpIHtcclxuICAgICAgICB0aGlzLmZpbHRlckZvcm1Hcm91cCA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICAgICAgICBjb21wYW55OiBbeyB2YWx1ZTogdGhpcy5jb21wYW55ID8/IG51bGwsIGRpc2FibGVkOiBmYWxzZSB9LCBWYWxpZGF0b3JzLmNvbXBvc2UoW10pXSxcclxuICAgICAgICAgICAgYnJhbmNoOiBbeyB2YWx1ZTogdGhpcy5icmFuY2ggPz8gbnVsbCwgZGlzYWJsZWQ6IGZhbHNlIH0sIFZhbGlkYXRvcnMuY29tcG9zZShbXSldLFxyXG4gICAgICAgICAgICBjb250cm9sQ29kZTogW3sgdmFsdWU6IHRoaXMuY29udHJvbENvZGUgPz8gbnVsbCwgZGlzYWJsZWQ6IGZhbHNlIH0sIFZhbGlkYXRvcnMuY29tcG9zZShbXSldLFxyXG4gICAgICAgICAgICBleHRlcm5hbElkOiBbeyB2YWx1ZTogdGhpcy5leHRlcm5hbElkID8/IG51bGwsIGRpc2FibGVkOiBmYWxzZSB9LCBWYWxpZGF0b3JzLmNvbXBvc2UoW10pXSxcclxuICAgICAgICAgICAgZXZlbnRPcmlnaW46IFt7IHZhbHVlOiB0aGlzLmV2ZW50T3JpZ2luID8/IG51bGwsIGRpc2FibGVkOiBmYWxzZSB9LCBWYWxpZGF0b3JzLmNvbXBvc2UoW10pXSxcclxuICAgICAgICAgICAgc3RhdHVzOiBbeyB2YWx1ZTogdGhpcy5ldmVudFN0YXR1cyA/PyBudWxsLCBkaXNhYmxlZDogZmFsc2UgfSwgVmFsaWRhdG9ycy5jb21wb3NlKFtdKV0sXHJcbiAgICAgICAgICAgIGNyZWF0ZWREYXRlOiBbeyB2YWx1ZTogdGhpcy5jcmVhdGVkRGF0ZSA/PyBudWxsLCBkaXNhYmxlZDogZmFsc2UgfSwgVmFsaWRhdG9ycy5jb21wb3NlKFtdKV0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXRGb3JtRmllbGRzKCkge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyRmllbGRzID0gW1xyXG4gICAgICAgICAgICBuZXcgRm9ybUZpZWxkKHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiY29tcGFueVwiLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLkNoaXBzLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IEZvcm1GaWVsZCh7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcImJyYW5jaFwiLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLkNoaXBzLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IEZvcm1GaWVsZCh7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcImNvbnRyb2xDb2RlXCIsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuQ2hpcHMsXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgRm9ybUZpZWxkKHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiZXh0ZXJuYWxJZFwiLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLlN0cmluZyxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBGb3JtRmllbGQoe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJldmVudE9yaWdpblwiLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLkVudW0sXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgRm9ybUZpZWxkKHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwic3RhdHVzXCIsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuRW51bSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBGb3JtRmllbGQoe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJjcmVhdGVkRGF0ZVwiLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLkRhdGUsXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgIF07XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXRHcmlkQ29sdW1ucygpIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgICB7IGZpZWxkOiBcImNvbXBhbnlcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuY29tcGFueVwiKSB9LFxyXG4gICAgICAgICAgICB7IGZpZWxkOiBcImJyYW5jaFwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5sYWJlbF9icmFuY2hcIikgfSxcclxuICAgICAgICAgICAgeyBmaWVsZDogXCJldmVudE9yaWdpblwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5ldmVudF9vcmlnaW5fbGFiZWxcIikgfSxcclxuICAgICAgICAgICAgeyBmaWVsZDogXCJjb250cm9sQ29kZVwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5jb250cm9sX2NvZGVcIikgfSxcclxuICAgICAgICBdO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xyXG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgIHRoaXMud2Vic29ja2V0U2VydmljZS5kaXNjb25uZWN0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNhbGxXZWJzb2NrZXQoKSB7XHJcbiAgICAgICAgdGhpcy53ZWJzb2NrZXRTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5vbkV2ZW50PGFueT4oe1xyXG4gICAgICAgICAgICAgICAgZG9tYWluOiBcImFncm9cIixcclxuICAgICAgICAgICAgICAgIHNlcnZpY2U6IFwiYWdyb19ldmVudHNcIixcclxuICAgICAgICAgICAgICAgIHByaW1pdGl2ZTogXCJwcm9jZXNzZWRFdmVudFwiLFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgobWVzc2FnZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZXh0ZXJuYWxJZCA9IG1lc3NhZ2U/LmRhdGE/LmV4dGVybmFsSWQ7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJEYXRhID0gdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0UmF3VmFsdWUoKTtcclxuICAgICAgICAgICAgICAgIGlmICghZXh0ZXJuYWxJZCB8fCB0aGlzLmV4dGVybmFsSWQgPT09IGV4dGVybmFsSWQgfHwgdGhpcy5ncmlkRGF0YT8uc29tZSgoaXRlbTogYW55KSA9PiBpdGVtLmV4dGVybmFsSWQgPT09IGV4dGVybmFsSWQpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVHcmlkKHsgZmlsdGVyRGF0YSB9KTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NlZEV2ZW50LmVtaXQobWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLndlYnNvY2tldFNlcnZpY2VcclxuICAgICAgICAgICAgLm9uRXZlbnQ8YW55Pih7XHJcbiAgICAgICAgICAgICAgICBkb21haW46IFwicGxhdGZvcm1cIixcclxuICAgICAgICAgICAgICAgIHNlcnZpY2U6IFwibm90aWZpY2F0aW9uc1wiLFxyXG4gICAgICAgICAgICAgICAgcHJpbWl0aXZlOiBcInVzZXJOb3RpZmllZFwiLFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJEYXRhID0gdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0UmF3VmFsdWUoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlR3JpZCh7IGZpbHRlckRhdGEgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvblNlYXJjaCgpIHtcclxuICAgICAgICBjb25zdCBmaWx0ZXJEYXRhID0gdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0UmF3VmFsdWUoKTtcclxuICAgICAgICB0aGlzLmdyaWRMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnJlc2V0R3JpZCh7IGZpbHRlckRhdGEgfSk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVHcmlkKHsgZmlsdGVyRGF0YSB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVzZXRHcmlkKGxpc3RQYXJhbXM/OiBhbnkpIHtcclxuICAgICAgICBpZiAobGlzdFBhcmFtcykge1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zID0geyAuLi50aGlzLmN1cnJlbnRMaXN0UGFyYW1zLCAuLi5saXN0UGFyYW1zIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY3VycmVudExpc3RQYXJhbXMucGFnZSA9IEFHUk9fTlVNQkVSUy5aRVJPO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdXBkYXRlR3JpZChsaXN0UGFyYW1zOiBhbnkgPSB7fSkge1xyXG4gICAgICAgIHRoaXMuY3VycmVudExpc3RQYXJhbXMgPSB7IC4uLnRoaXMuY3VycmVudExpc3RQYXJhbXMsIC4uLmxpc3RQYXJhbXMgfTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudExpc3RQYXJhbXMuc29ydD8ubGVuZ3RoIDw9IDApIHtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGlzdFBhcmFtcy5zb3J0ID0gdGhpcy5zdGFuZGFsb25lID9cclxuICAgICAgICAgICAgICAgIFt7IGZpZWxkOiBcImNyZWF0ZWREYXRlXCIsIG9yZGVyOiAxIH1dIDpcclxuICAgICAgICAgICAgICAgIFt7IGZpZWxkOiBcImxhc3RNb2RpZmllZERhdGVcIiwgb3JkZXI6IC0xIH1dO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5jdXJyZW50TGlzdFBhcmFtcy5maWx0ZXJRdWVyeSA9IHRoaXMuZ2V0RmlsdGVyKCk7XHJcblxyXG4gICAgICAgIHRoaXMuZXZlbnRDb250cm9sU2VydmljZVxyXG4gICAgICAgICAgICAubGlzdCh0aGlzLmN1cnJlbnRMaXN0UGFyYW1zKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxyXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyaWRMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChsaXN0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZERhdGEgPSBsaXN0LmNvbnRlbnRzO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ncmlkVG90YWxSZWNvcmRzID0gbGlzdC50b3RhbEVsZW1lbnRzO1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmdyaWREYXRhIHx8IHRoaXMuZ3JpZERhdGEubGVuZ3RoIDw9IEFHUk9fTlVNQkVSUy5aRVJPKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ncmlkTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc0V2ZW50Q29udHJvbEl0ZW1zKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0RmlsdGVyKCk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgeyBmaWx0ZXJEYXRhIH0gPSB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zO1xyXG4gICAgICAgIGNvbnN0IGZpbHRlcnM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgICAgIGlmIChmaWx0ZXJEYXRhW1wiY29tcGFueVwiXT8uaWQpIHtcclxuICAgICAgICAgICAgZmlsdGVycy5wdXNoKGBlMDcwZW1wLmlkIGVxICcke2ZpbHRlckRhdGFbXCJjb21wYW55XCJdLmlkfSdgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChmaWx0ZXJEYXRhW1wiYnJhbmNoXCJdPy5pZCkge1xyXG4gICAgICAgICAgICBmaWx0ZXJzLnB1c2goYGUwNzBmaWwuaWQgZXEgJyR7ZmlsdGVyRGF0YVtcImJyYW5jaFwiXS5pZH0nYCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBjb250cm9sQ29kZSA9IGZpbHRlckRhdGFbXCJjb250cm9sQ29kZVwiXTtcclxuICAgICAgICBpZiAoY29udHJvbENvZGUgJiYgQXJyYXkuaXNBcnJheShjb250cm9sQ29kZSkgJiYgY29udHJvbENvZGUubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBjb25zdCBjb2RlcyA9IGNvbnRyb2xDb2RlLm1hcCgoY29kZTogc3RyaW5nKSA9PiBwYXJzZUludChjb2RlLCAxMCkpLmpvaW4oXCIsXCIpO1xyXG4gICAgICAgICAgICBmaWx0ZXJzLnB1c2goYGNvbnRyb2xDb2RlIGluICgke2NvZGVzfSlgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChmaWx0ZXJEYXRhW1wiZXh0ZXJuYWxJZFwiXSkge1xyXG4gICAgICAgICAgICBmaWx0ZXJzLnB1c2goYGV4dGVybmFsSWQgZXEgJyR7ZmlsdGVyRGF0YVtcImV4dGVybmFsSWRcIl19J2ApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGZpbHRlckRhdGFbXCJldmVudE9yaWdpblwiXSkge1xyXG4gICAgICAgICAgICBmaWx0ZXJzLnB1c2goYGV2ZW50T3JpZ2luIGVxICcke2ZpbHRlckRhdGFbXCJldmVudE9yaWdpblwiXX0nYCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZmlsdGVyRGF0YVtcInN0YXR1c1wiXSkge1xyXG4gICAgICAgICAgICBmaWx0ZXJzLnB1c2goYGV2ZW50Q29udHJvbEl0ZW0uc3RhdHVzIGVxICcke2ZpbHRlckRhdGFbXCJzdGF0dXNcIl19J2ApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGZpbHRlckRhdGFbXCJjcmVhdGVkRGF0ZVwiXSkge1xyXG4gICAgICAgICAgICBmaWx0ZXJzLnB1c2goYGNyZWF0ZWREYXRlIGdlICcke3RoaXMuZ2V0U3RhcnREYXRlKGZpbHRlckRhdGFbXCJjcmVhdGVkRGF0ZVwiXSl9J2ApO1xyXG4gICAgICAgICAgICBmaWx0ZXJzLnB1c2goYGNyZWF0ZWREYXRlIGxlICcke3RoaXMuZ2V0RW5kRGF0ZShmaWx0ZXJEYXRhW1wiY3JlYXRlZERhdGVcIl0pfSdgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBmaWx0ZXJzLmpvaW4oXCIgYW5kIFwiKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldEVuZERhdGUodmFsdWU6IGFueSk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgZW5kRGF0ZSA9IG1vbWVudCh2YWx1ZSkuZW5kT2YoXCJkYXlcIikuZm9ybWF0KFwiWVlZWS1NTS1ERFRISDptbTpzc1wiKSArIFwiWlwiO1xyXG4gICAgICAgIHJldHVybiBlbmREYXRlO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBnZXRTdGFydERhdGUodmFsdWU6IGFueSk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3Qgc3RhcnREYXRlID0gbW9tZW50KHZhbHVlKS5zdGFydE9mKFwiZGF5XCIpLmZvcm1hdChcIllZWVktTU0tRERUSEg6bW06c3NcIikgKyBcIlpcIjtcclxuICAgICAgICByZXR1cm4gc3RhcnREYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0RGlzcGxheUZpZWxkcygpOiBzdHJpbmdbXSB7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgICAgJyonLFxyXG4gICAgICAgICAgICAnY29tcGFueS4qJyxcclxuICAgICAgICAgICAgJ2JyYW5jaC4qJyxcclxuICAgICAgICAgICAgJ2V2ZW50Q29udHJvbEl0ZW0uZXZlbnREb21haW4nLFxyXG4gICAgICAgICAgICAnZXZlbnRDb250cm9sSXRlbS5pZCcsXHJcbiAgICAgICAgICAgICdldmVudENvbnRyb2xJdGVtLmV2ZW50RG9tYWluJyxcclxuICAgICAgICAgICAgJ2V2ZW50Q29udHJvbEl0ZW0uZXZlbnRTZXJ2aWNlJyxcclxuICAgICAgICAgICAgJ2V2ZW50Q29udHJvbEl0ZW0uZXZlbnRQcmltaXRpdmUnLFxyXG4gICAgICAgICAgICAnZXZlbnRDb250cm9sSXRlbS5ldmVudENvbnRyb2wnLFxyXG4gICAgICAgICAgICAnZXZlbnRDb250cm9sSXRlbS5ldmVudEdyb3VwJyxcclxuICAgICAgICAgICAgJ2V2ZW50Q29udHJvbEl0ZW0uc2VxdWVuY2UnLFxyXG4gICAgICAgICAgICAnZXZlbnRDb250cm9sSXRlbS5ldmVudE9wZXJhdGlvbicsXHJcbiAgICAgICAgICAgICdldmVudENvbnRyb2xJdGVtLm91dHB1dCcsXHJcbiAgICAgICAgICAgICdldmVudENvbnRyb2xJdGVtLmlucHV0JyxcclxuICAgICAgICAgICAgJ2V2ZW50Q29udHJvbEl0ZW0uc3RhdHVzJyxcclxuICAgICAgICAgICAgJ2V2ZW50Q29udHJvbEl0ZW0uc3ViVGl0bGUnLFxyXG4gICAgICAgICAgICAnZXZlbnRDb250cm9sSXRlbS5tZXNzYWdlJyxcclxuICAgICAgICAgICAgJ2V2ZW50Q29udHJvbEl0ZW0uY3JlYXRlZEJ5JyxcclxuICAgICAgICAgICAgJ2V2ZW50Q29udHJvbEl0ZW0uY3JlYXRlZERhdGUnLFxyXG4gICAgICAgICAgICAnZXZlbnRDb250cm9sSXRlbS5sYXN0TW9kaWZpZWRCeScsXHJcbiAgICAgICAgICAgICdldmVudENvbnRyb2xJdGVtLmxhc3RNb2RpZmllZERhdGUnLFxyXG4gICAgICAgIF07XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBwcm9jZXNzRXZlbnRDb250cm9sSXRlbXMoKSB7XHJcbiAgICAgICAgdGhpcy5ncmlkRGF0YS5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNvcnRlZEl0ZW1zID0gaXRlbS5ldmVudENvbnRyb2xJdGVtLnNvcnQoKGE6IEV2ZW50Q29udHJvbEl0ZW0sIGI6IEV2ZW50Q29udHJvbEl0ZW0pID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBhLnNlcXVlbmNlIC0gYi5zZXF1ZW5jZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHN0ZXBzID0gc29ydGVkSXRlbXMubWFwKChkZXRhaWw6IEV2ZW50Q29udHJvbEl0ZW0sIGluZGV4OiBudW1iZXIpID0+IHRoaXMuY3JlYXRlU3RlcChkZXRhaWwsIGl0ZW0sIGluZGV4KSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUluZGV4ID0gdGhpcy5jYWxjdWxhdGVBY3RpdmVJbmRleChzb3J0ZWRJdGVtcyk7XHJcbiAgICAgICAgICAgIGl0ZW0uZ3JvdXBzID0gW3sgc3RlcHMsIGFjdGl2ZUluZGV4IH1dO1xyXG4gICAgICAgICAgICBpdGVtLmFjdGl2ZUluZGV4ID0gYWN0aXZlSW5kZXg7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5ncmlkRGF0YVJlc29sdmVkID0gdGhpcy5ncmlkRGF0YTtcclxuICAgICAgICB0aGlzLmdyaWRMb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVBY3RpdmVJbmRleChkZXRhaWxzOiBFdmVudENvbnRyb2xJdGVtW10pOiBudW1iZXIge1xyXG4gICAgICAgIGNvbnN0IGxhc3RBY3RpdmUgPSBkZXRhaWxzLnJlZHVjZShcclxuICAgICAgICAgICAgKGxhc3RJbmRleCwgZGV0YWlsLCBjdXJyZW50SW5kZXgpID0+IChkZXRhaWwuc3RhdHVzICE9PSBFdmVudFN0YXR1cy5QRU5ESU5HID8gY3VycmVudEluZGV4IDogbGFzdEluZGV4KSxcclxuICAgICAgICAgICAgLTFcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChsYXN0QWN0aXZlICE9PSAtMSAmJiBkZXRhaWxzW2xhc3RBY3RpdmVdLnN0YXR1cyA9PT0gRXZlbnRTdGF0dXMuU1VDQ0VTUykge1xyXG4gICAgICAgICAgICByZXR1cm4gbGFzdEFjdGl2ZSArIDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBsYXN0QWN0aXZlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY3JlYXRlU3RlcChkZXRhaWw6IEV2ZW50Q29udHJvbEl0ZW0sIGl0ZW06IEV2ZW50Q29udHJvbCwgZGV0YWlsSW5kZXg6IG51bWJlcikge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdEZXRhaWw6JywgZGV0YWlsKTtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBpdGVtOiBkZXRhaWwsXHJcbiAgICAgICAgICAgIGNvbnRyb2xDb2RlOiBpdGVtLmNvbnRyb2xDb2RlLFxyXG4gICAgICAgICAgICBldmVudFR5cGU6IGl0ZW0uZXZlbnRPcmlnaW4sXHJcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLmdldEV2ZW50TGFiZWwoZGV0YWlsKSxcclxuICAgICAgICAgICAgc3ViTGFiZWw6IHRoaXMuZm9ybWF0U3VidGl0bGUoZGV0YWlsKSxcclxuICAgICAgICAgICAgZGlzYWJsZWQ6IGRldGFpbC5zdGF0dXMgPT09IEV2ZW50U3RhdHVzLlBFTkRJTkcgJiYgZGV0YWlsSW5kZXggIT09IHRoaXMuY2FsY3VsYXRlQWN0aXZlSW5kZXgoaXRlbS5ldmVudENvbnRyb2xJdGVtKSxcclxuICAgICAgICAgICAgdG9vbHRpcDogdGhpcy5nZXRFdmVudExhYmVsKGRldGFpbCksXHJcbiAgICAgICAgICAgIHN0YXRlOiB0aGlzLmRldGVybWluZVN0ZXBTdGF0ZShkZXRhaWwpLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBkZXRlcm1pbmVTdGVwU3RhdGUoZGV0YWlsOiB7IHN0YXR1czogRXZlbnRTdGF0dXMgfSk6IFN0ZXBTdGF0ZSB7XHJcbiAgICAgICAgaWYgKGRldGFpbC5zdGF0dXMgPT09IEV2ZW50U3RhdHVzLlNVQ0NFU1MpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFN0ZXBTdGF0ZS5TdWNjZXNzO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZGV0YWlsLnN0YXR1cyA9PT0gRXZlbnRTdGF0dXMuRkFJTEVEKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBTdGVwU3RhdGUuV2FybmluZztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIFN0ZXBTdGF0ZS5EZWZhdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0RXZlbnRMYWJlbChkZXRhaWw6IGFueSk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgZXZlbnRMYWJlbCA9IHRoaXMuZXZlbnRJdGVtLmZpbmQoKGUpID0+IGUudmFsdWUgPT09IGRldGFpbC5ldmVudE9wZXJhdGlvbik/LmxhYmVsO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdHZXR0aW5nIGxhYmVsIGZvciBldmVudCBvcGVyYXRpb246JywgZXZlbnRMYWJlbCk7XHJcbiAgICAgICAgaWYgKGV2ZW50TGFiZWwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoZXZlbnRMYWJlbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGxvY2FsTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuXCIgKyBkZXRhaWwuZXZlbnRPcGVyYXRpb24pO1xyXG4gICAgICAgIGlmIChsb2NhbExhYmVsKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBsb2NhbExhYmVsO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZGV0YWlsLmV2ZW50T3BlcmF0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZm9ybWF0U3VidGl0bGUoZGV0YWlsOiBFdmVudENvbnRyb2xJdGVtKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICAgICAgY29uc3QgeyBldmVudE9wZXJhdGlvbiwgc3ViVGl0bGUgfSA9IGRldGFpbDtcclxuXHJcbiAgICAgICAgY29uc3QgaW52b2ljZU9wZXJhdGlvbnMgPSBbXHJcbiAgICAgICAgICAgIEV2ZW50T3BlcmF0aW9uLkNSRUFURV9JTlZPSUNFX0ZJWEFUSU9OLFxyXG4gICAgICAgICAgICBFdmVudE9wZXJhdGlvbi5DQU5DRUxfSU5WT0lDRV9GSVhBVElPTixcclxuICAgICAgICAgICAgRXZlbnRPcGVyYXRpb24uT1JJR0lOQVRJT05fQ1JFQVRFX0lOVk9JQ0VcclxuICAgICAgICBdO1xyXG5cclxuICAgICAgICBjb25zdCBudW1iZXJQcmVmaXhPcGVyYXRpb25zID0gW1xyXG4gICAgICAgICAgICBFdmVudE9wZXJhdGlvbi5DTE9TRV9JTlZPSUNFX0ZJWEFUSU9OLFxyXG4gICAgICAgICAgICBFdmVudE9wZXJhdGlvbi5SRU9QRU5fSU5WT0lDRV9GSVhBVElPTlxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIGNvbnN0IHByZXNjcmlwdGlvbk9wZXJhdGlvbnMgPSBbXHJcbiAgICAgICAgICAgIEV2ZW50T3BlcmF0aW9uLlBSRVNDUklQVElPTl9EQVRBX0xPQURfUFJPRFVDVF9UWVBFLFxyXG4gICAgICAgICAgICBFdmVudE9wZXJhdGlvbi5QUkVTQ1JJUFRJT05fREFUQV9MT0FEX0FDVElWRV9QUklOQ0lQTEUsXHJcbiAgICAgICAgICAgIEV2ZW50T3BlcmF0aW9uLlBSRVNDUklQVElPTl9EQVRBX0xPQURfRk9STVVMQVRJT04sXHJcbiAgICAgICAgICAgIEV2ZW50T3BlcmF0aW9uLlBSRVNDUklQVElPTl9EQVRBX0xPQURfQlVMTEVUSU4sXHJcbiAgICAgICAgICAgIEV2ZW50T3BlcmF0aW9uLlBSRVNDUklQVElPTl9EQVRBX0xPQURfQVBQTElDQVRJT05fVU5JVCxcclxuICAgICAgICAgICAgRXZlbnRPcGVyYXRpb24uUFJFU0NSSVBUSU9OX0RBVEFfTE9BRF9TUEVDSUUsXHJcbiAgICAgICAgICAgIEV2ZW50T3BlcmF0aW9uLlBSRVNDUklQVElPTl9EQVRBX0xPQURfQVBQTElDQVRJT05fVFlQRSxcclxuICAgICAgICAgICAgRXZlbnRPcGVyYXRpb24uUFJFU0NSSVBUSU9OX0RBVEFfTE9BRF9QUk9CTEVNUyxcclxuICAgICAgICAgICAgRXZlbnRPcGVyYXRpb24uUFJFU0NSSVBUSU9OX0RBVEFfTE9BRF9BUFBMSUNBVElPTlxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIGxldCBmb3JtYXR0ZWRTdWJ0aXRsZSA9IHN1YlRpdGxlO1xyXG4gICAgICAgIGlmIChpbnZvaWNlT3BlcmF0aW9ucy5pbmNsdWRlcyhldmVudE9wZXJhdGlvbikpIHtcclxuICAgICAgICAgICAgY29uc3QgbGFiZWwgPSB0aGlzLmludm9pY2VUeXBlVHJhbnNsYXRlLmZpbmQoKGUpID0+IGUudmFsdWUgPT09IHN1YlRpdGxlKT8ubGFiZWw7XHJcbiAgICAgICAgICAgIGZvcm1hdHRlZFN1YnRpdGxlID0gbGFiZWwgPyB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGxhYmVsKSA6IHN1YlRpdGxlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG51bWJlclByZWZpeE9wZXJhdGlvbnMuaW5jbHVkZXMoZXZlbnRPcGVyYXRpb24pKSB7XHJcbiAgICAgICAgICAgIGZvcm1hdHRlZFN1YnRpdGxlID0gc3ViVGl0bGUgPyBgbsKwICR7c3ViVGl0bGV9YCA6IHN1YlRpdGxlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHByZXNjcmlwdGlvbk9wZXJhdGlvbnMuaW5jbHVkZXMoZXZlbnRPcGVyYXRpb24pKSB7XHJcbiAgICAgICAgICAgIGZvcm1hdHRlZFN1YnRpdGxlID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnYWdyby5hbmd1bGFyX2NvbXBvbmVudHMubmV3X3ByZXNjcmlwdGlvbl9wYWdlJywgeyBjb3VudDogc3ViVGl0bGUgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZm9ybWF0dGVkU3VidGl0bGU7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICBwdWJsaWMgb25HcmlkQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgICAgICBjb25zdCBzaXplID0gZXZlbnQ/LnJvd3M7XHJcbiAgICAgICAgY29uc3QgcGFnZSA9IGV2ZW50Py5maXJzdCAvIHNpemU7XHJcbiAgICAgICAgY29uc3Qgc29ydCA9IGV2ZW50Lm11bHRpU29ydE1ldGE7XHJcbiAgICAgICAgdGhpcy5ncmlkTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgaWYgKHNpemUgIT09IEFHUk9fTlVNQkVSUy5URU4gfHwgcGFnZSAhPT0gQUdST19OVU1CRVJTLlpFUk8gfHwgKHNvcnQgJiYgc29ydC5sZW5ndGggPiBBR1JPX05VTUJFUlMuWkVSTykpIHtcclxuICAgICAgICAgICAgdGhpcy5wYWdpbmF0b3JTdG9yYWdlU2VydmljZS5zdG9yZVBhZ2luYXRvcihcIkV2ZW50Q29udHJvbEJvYXJkUGFnaW5hdG9yXCIsIHsgcGFnZSwgc2l6ZSwgc29ydCB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZUdyaWQoeyBwYWdlLCBzaXplLCBzb3J0IH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRQYWdlU2l6ZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50TGlzdFBhcmFtcy5zaXplO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRSb3dJbmRleCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50TGlzdFBhcmFtcy5wYWdlICogdGhpcy5jdXJyZW50TGlzdFBhcmFtcy5zaXplO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRTb3J0RmllbGQoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNvcnQgfHwgdGhpcy5jdXJyZW50TGlzdFBhcmFtcy5zb3J0Lmxlbmd0aCA8PSBBR1JPX05VTUJFUlMuWkVSTykge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5ncmlkQ29sdW1uc1tBR1JPX05VTUJFUlMuWkVST10uZmllbGQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNvcnRbQUdST19OVU1CRVJTLlpFUk9dLmZpZWxkO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRTb3J0T3JkZXIoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNvcnQgfHwgdGhpcy5jdXJyZW50TGlzdFBhcmFtcy5zb3J0Lmxlbmd0aCA8PSBBR1JPX05VTUJFUlMuWkVSTykge1xyXG4gICAgICAgICAgICByZXR1cm4gQUdST19OVU1CRVJTLk9ORTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNvcnRbQUdST19OVU1CRVJTLlpFUk9dLm9yZGVyO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRFcnJvck1lc3NhZ2VzKCkge1xyXG4gICAgICAgIGNvbnN0IHRyYW5zbGF0ZWRFcnJvck1lc3NhZ2VzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gTG9va3VwRXJyb3JNZXNzYWdlcykge1xyXG4gICAgICAgICAgICBpZiAoTG9va3VwRXJyb3JNZXNzYWdlcy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZS5nZXQoTG9va3VwRXJyb3JNZXNzYWdlc1trZXldKS5zdWJzY3JpYmUoKHJlczogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlZEVycm9yTWVzc2FnZXNba2V5XSA9IHJlcztcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cmFuc2xhdGVkRXJyb3JNZXNzYWdlcztcclxuICAgIH1cclxuXHJcbiAgICBnZXRQcm9kdWNlckludm9pY2VJZEZyb21QYXJhbXMocGFyYW06IGFueSk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgICAgIGlmICghcGFyYW0pIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgICBwYXJhbS5wcm9kdWNlckludm9pY2VJZHM/LlswXSxcclxuICAgICAgICAgICAgcGFyYW0uaW52b2ljZT8uZ2VuZXJhbERhdGE/LnRyYW5zYWN0aW9uYWxJZCxcclxuICAgICAgICAgICAgcGFyYW0ucHJvZHVjZXJJbnZvaWNlSWQsXHJcbiAgICAgICAgICAgIHBhcmFtLmV4dGVybmFsSWQsXHJcbiAgICAgICAgICAgIHBhcmFtLmV4dGVybmFsSW52b2ljZUlkcz8uWzBdLFxyXG4gICAgICAgIF0uZmluZCgoaWQpID0+IGlkKSA/PyBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFByb2R1Y2VyQmFsYW5jZUVudHJ5Q29udHJvbElkRnJvbVBhcmFtcyhwYXJhbTogYW55KSB7XHJcbiAgICAgICAgY29uc3QgeyBwcm9kdWNlckJhbGFuY2VFbnRyeUNvbnRyb2xJZCB9ID0gcGFyYW07XHJcbiAgICAgICAgcmV0dXJuIHByb2R1Y2VyQmFsYW5jZUVudHJ5Q29udHJvbElkID8gcHJvZHVjZXJCYWxhbmNlRW50cnlDb250cm9sSWQgOiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGVwU2VsZWN0ZWQoZXZlbnQ6IGFueSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTdGVwID0gZXZlbnQuc3RlcDtcclxuICAgICAgICB0aGlzLmFwcGx5U2lkZWJhclRpdGxlKFwiXCIpO1xyXG5cclxuICAgICAgICBzd2l0Y2ggKHRoaXMuc2VsZWN0ZWRTdGVwLmV2ZW50VHlwZSkge1xyXG4gICAgICAgICAgICBjYXNlIEV2ZW50T3JpZ2luLkJBTEFOQ0VfRU5UUllfQ09OVFJPTDpcclxuICAgICAgICAgICAgY2FzZSBFdmVudE9yaWdpbi5USUNLRVQ6XHJcbiAgICAgICAgICAgIGNhc2UgRXZlbnRPcmlnaW4uSU5WT0lDRTpcclxuICAgICAgICAgICAgY2FzZSBFdmVudE9yaWdpbi5DUkVBVEVfSU5WT0lDRTpcclxuICAgICAgICAgICAgICAgIHRoaXMuc2lkZWJhckxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmFtID0gSlNPTi5wYXJzZSh0aGlzLnNlbGVjdGVkU3RlcC5pdGVtLmlucHV0KTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBwcm9kdWNlckludm9pY2VJZCA9IHRoaXMuZ2V0UHJvZHVjZXJJbnZvaWNlSWRGcm9tUGFyYW1zKHBhcmFtKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZmlsdGVyUXVlcnkgPSBcIlwiO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXByb2R1Y2VySW52b2ljZUlkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByb2R1Y2VyQmFsYW5jZUVudHJ5Q29udHJvbElkID0gdGhpcy5nZXRQcm9kdWNlckJhbGFuY2VFbnRyeUNvbnRyb2xJZEZyb21QYXJhbXMocGFyYW0pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwcm9kdWNlckJhbGFuY2VFbnRyeUNvbnRyb2xJZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaWRlYmFyTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJRdWVyeSA9IGBwcm9kdWNlckJhbGFuY2VFbnRyeUNvbnRyb2wuaWQgZXEgJyR7cHJvZHVjZXJCYWxhbmNlRW50cnlDb250cm9sSWR9J2A7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyUXVlcnkgPSBgaWQgZXEgJyR7cHJvZHVjZXJJbnZvaWNlSWR9J2A7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y2VySW52b2ljZVNlcnZpY2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgLmxpc3Qoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheUZpZWxkczogW1wiKlwiLCBcInByb2R1Y2VyQmFsYW5jZUVudHJ5Q29udHJvbC4qXCIsIFwicHJvZHVjZXJCYWxhbmNlRW50cnlDb250cm9sLnByb2R1Y2VyLipcIl0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJRdWVyeSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2U6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAxLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjZXJJbnZvaWNlID0gcmVzdWx0Py5jb250ZW50c1swXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y2VySW52b2ljZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNpZGViYXJMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBseVNpZGViYXJUaXRsZSh0aGlzLmdldFByb2R1Y2VySW52b2ljZU51bWJlckFuZFNlcmllKCkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNpZGViYXJMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBFdmVudE9yaWdpbi5GSVhBVElPTjpcclxuICAgICAgICAgICAgY2FzZSBFdmVudE9yaWdpbi5DQU5DRUxfRklYQVRJT046XHJcbiAgICAgICAgICAgIGNhc2UgRXZlbnRPcmlnaW4uQ0hBTkdFX1JFUVVFU1Q6XHJcbiAgICAgICAgICAgIGNhc2UgRXZlbnRPcmlnaW4uVFJBTlNGRVI6XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2hvd1JlcHJvY2Vzc0J1dHRvbiA9IGV2ZW50LnN0ZXAuc3RhdGUgPT09IFN0ZXBTdGF0ZS5XYXJuaW5nO1xyXG5cclxuICAgICAgICB0aGlzLnNob3dTaWRlYmFyID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGFwcGx5U2lkZWJhclRpdGxlKHRpdGxlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLnNpZGViYXJUaXRsZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5ldmVudF9zaWRlYmFyX3RpdGxlXCIsIHsgZXZlbnROdW1iZXI6IHRpdGxlIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0UHJvZHVjZXJJbnZvaWNlTnVtYmVyQW5kU2VyaWUoKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodGhpcy5wcm9kdWNlckludm9pY2U/Lm51bWJlciAmJiB0aGlzLnByb2R1Y2VySW52b2ljZT8uc2VyaWVzKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgJHt0aGlzLnByb2R1Y2VySW52b2ljZS5udW1iZXJ9IC0gJHt0aGlzLnByb2R1Y2VySW52b2ljZS5zZXJpZXN9YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlcHJvY2Vzc0V2ZW50KCkge1xyXG4gICAgICAgIGNvbnN0IHJlcHJvY2Vzc0V2ZW50T2JqOiBSZXByb2Nlc3NGYWlsZWRFdmVudCA9IHtcclxuICAgICAgICAgICAgZXZlbnRDb250cm9sSXRlbUlkOiB0aGlzLnNlbGVjdGVkU3RlcC5pdGVtLmlkLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5ldmVudENvbnRyb2xJdGVtU2VydmljZVxyXG4gICAgICAgICAgICAucmVwcm9jZXNzRmFpbGVkRXZlbnQocmVwcm9jZXNzRXZlbnRPYmopXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkTWVzc2FnZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJpbmZvXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMucmVwcm9jZXNzaW5nX2V2ZW50X21lc3NhZ2VfdGl0bGVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5yZXByb2Nlc3NpbmdfZXZlbnRfbWVzc2FnZV9kZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRNZXNzYWdlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcImVycm9yXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuZXJyb3JfcmVwcm9jZXNzaW5nX2V2ZW50X21lc3NhZ2VfdGl0bGVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5lcnJvcl9yZXByb2Nlc3NpbmdfZXZlbnRfbWVzc2FnZV9kZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGFkZE1lc3NhZ2Uoc2V2ZXJpdHk6IHN0cmluZywgc3VtbWFyeTogc3RyaW5nLCBkZXRhaWw6IHN0cmluZywgbGlmZSA9IEFHUk9fTlVNQkVSUy5GSVZFX1NFQ09ORFMpIHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XHJcbiAgICAgICAgICAgIHNldmVyaXR5LFxyXG4gICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHN1bW1hcnkpLFxyXG4gICAgICAgICAgICBkZXRhaWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoZGV0YWlsKSxcclxuICAgICAgICAgICAgbGlmZSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb3Blbk1vZGFsKCkge1xyXG4gICAgICAgIHRoaXMuZGlzcGxheU1vZGFsID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNob3dTaWRlYmFyID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIG9wZW5DYW5jZWxNb2RhbCgpIHtcclxuICAgICAgICBhd2FpdCB0aGlzLmNhbmNlbEV2ZW50RGlhbG9nQ29uZmlnLmJlZm9yZU9wZW4/LigpO1xyXG4gICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKENhbmNlbEV2ZW50RGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgIGhlYWRlcjogdGhpcy5jYW5jZWxFdmVudERpYWxvZ0NvbmZpZz8uaGVhZGVyLFxyXG4gICAgICAgICAgICBjb250ZW50U3R5bGU6IHsgaGVpZ2h0OiBcIjEwMCVcIiB9LFxyXG4gICAgICAgICAgICBjbG9zYWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgY2xvc2VPbkVzY2FwZTogZmFsc2UsXHJcbiAgICAgICAgICAgIGRhdGE6IHsgY2FuY2VsRXZlbnREaWFsb2dDb25maWc6IHRoaXMuY2FuY2VsRXZlbnREaWFsb2dDb25maWcgfSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY29uZmlybU1vZGFsKCkge1xyXG4gICAgICAgIHRoaXMucmVwcm9jZXNzRXZlbnQoKTtcclxuICAgICAgICB0aGlzLmRpc3BsYXlNb2RhbCA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjYW5jZWxNb2RhbCgpIHtcclxuICAgICAgICB0aGlzLmRpc3BsYXlNb2RhbCA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjbG9zZVNpZGViYXIoKSB7XHJcbiAgICAgICAgdGhpcy5zaG93U2lkZWJhciA9IGZhbHNlO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==