@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,620 +0,0 @@
1
- import { __assign, __awaiter, __decorate, __generator } 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
- var moment = require("moment");
25
- var EventControlBoardComponent = /** @class */ (function () {
26
- function EventControlBoardComponent(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
- EventControlBoardComponent.prototype.ngOnInit = function () {
60
- return __awaiter(this, void 0, void 0, function () {
61
- return __generator(this, function (_a) {
62
- this.gridColumns = this.setGridColumns();
63
- this.callWebsocket();
64
- return [2 /*return*/];
65
- });
66
- });
67
- };
68
- EventControlBoardComponent.prototype.ngOnChanges = function (changes) {
69
- if (!this.filterFormGroup) {
70
- this.initializeFormGroup();
71
- this.setFormFields();
72
- }
73
- this.updateCompanyAndBranchFormFields(changes);
74
- this.updateEventOriginAndControlCodeFormFields(changes);
75
- this.updateEventStatusAndCreatedDateFormFields(changes);
76
- this.onSearch();
77
- };
78
- EventControlBoardComponent.prototype.updateCompanyAndBranchFormFields = function (changes) {
79
- var _a, _b, _c, _d;
80
- if (changes.company && changes.company.currentValue !== changes.company.previousValue) {
81
- (_a = this.filterFormGroup.get("company")) === null || _a === void 0 ? void 0 : _a.setValue((_b = changes.company.currentValue) !== null && _b !== void 0 ? _b : null);
82
- }
83
- if (changes.branch && changes.branch.currentValue !== changes.branch.previousValue) {
84
- (_c = this.filterFormGroup.get("branch")) === null || _c === void 0 ? void 0 : _c.setValue((_d = changes.branch.currentValue) !== null && _d !== void 0 ? _d : null);
85
- }
86
- };
87
- EventControlBoardComponent.prototype.updateEventOriginAndControlCodeFormFields = function (changes) {
88
- var _a, _b, _c, _d;
89
- if (changes.eventOrigin && changes.eventOrigin.currentValue !== changes.eventOrigin.previousValue) {
90
- (_a = this.filterFormGroup.get("eventOrigin")) === null || _a === void 0 ? void 0 : _a.setValue((_b = changes.eventOrigin.currentValue) !== null && _b !== void 0 ? _b : null);
91
- }
92
- if (changes.controlCode && changes.controlCode.currentValue !== changes.controlCode.previousValue) {
93
- (_c = this.filterFormGroup.get("controlCode")) === null || _c === void 0 ? void 0 : _c.setValue((_d = changes.controlCode.currentValue) !== null && _d !== void 0 ? _d : null);
94
- }
95
- };
96
- EventControlBoardComponent.prototype.updateEventStatusAndCreatedDateFormFields = function (changes) {
97
- var _a, _b, _c, _d;
98
- if (changes.eventStatus && changes.eventStatus.currentValue !== changes.eventStatus.previousValue) {
99
- (_a = this.filterFormGroup.get("status")) === null || _a === void 0 ? void 0 : _a.setValue((_b = changes.eventStatus.currentValue) !== null && _b !== void 0 ? _b : null);
100
- }
101
- if (changes.createdDate && changes.createdDate.currentValue !== changes.createdDate.previousValue) {
102
- (_c = this.filterFormGroup.get("createdDate")) === null || _c === void 0 ? void 0 : _c.setValue((_d = changes.createdDate.currentValue) !== null && _d !== void 0 ? _d : null);
103
- }
104
- };
105
- EventControlBoardComponent.prototype.initializeFormGroup = function () {
106
- var _a, _b, _c, _d, _e, _f, _g;
107
- this.filterFormGroup = this.formBuilder.group({
108
- company: [{ value: (_a = this.company) !== null && _a !== void 0 ? _a : null, disabled: false }, Validators.compose([])],
109
- branch: [{ value: (_b = this.branch) !== null && _b !== void 0 ? _b : null, disabled: false }, Validators.compose([])],
110
- controlCode: [{ value: (_c = this.controlCode) !== null && _c !== void 0 ? _c : null, disabled: false }, Validators.compose([])],
111
- externalId: [{ value: (_d = this.externalId) !== null && _d !== void 0 ? _d : null, disabled: false }, Validators.compose([])],
112
- eventOrigin: [{ value: (_e = this.eventOrigin) !== null && _e !== void 0 ? _e : null, disabled: false }, Validators.compose([])],
113
- status: [{ value: (_f = this.eventStatus) !== null && _f !== void 0 ? _f : null, disabled: false }, Validators.compose([])],
114
- createdDate: [{ value: (_g = this.createdDate) !== null && _g !== void 0 ? _g : null, disabled: false }, Validators.compose([])],
115
- });
116
- };
117
- EventControlBoardComponent.prototype.setFormFields = function () {
118
- this.filterFields = [
119
- new FormField({
120
- name: "company",
121
- type: FieldType.Chips,
122
- }),
123
- new FormField({
124
- name: "branch",
125
- type: FieldType.Chips,
126
- }),
127
- new FormField({
128
- name: "controlCode",
129
- type: FieldType.Chips,
130
- }),
131
- new FormField({
132
- name: "externalId",
133
- type: FieldType.String,
134
- }),
135
- new FormField({
136
- name: "eventOrigin",
137
- type: FieldType.Enum,
138
- }),
139
- new FormField({
140
- name: "status",
141
- type: FieldType.Enum,
142
- }),
143
- new FormField({
144
- name: "createdDate",
145
- type: FieldType.Date,
146
- }),
147
- ];
148
- };
149
- EventControlBoardComponent.prototype.setGridColumns = function () {
150
- return [
151
- { field: "company", header: this.translate.instant("agro.angular_components.company") },
152
- { field: "branch", header: this.translate.instant("agro.angular_components.label_branch") },
153
- { field: "eventOrigin", header: this.translate.instant("agro.angular_components.event_origin_label") },
154
- { field: "controlCode", header: this.translate.instant("agro.angular_components.control_code") },
155
- ];
156
- };
157
- EventControlBoardComponent.prototype.ngOnDestroy = function () {
158
- this.ngUnsubscribe.next();
159
- this.ngUnsubscribe.complete();
160
- this.websocketService.disconnect();
161
- };
162
- EventControlBoardComponent.prototype.callWebsocket = function () {
163
- var _this = this;
164
- this.websocketService
165
- .onEvent({
166
- domain: "agro",
167
- service: "agro_events",
168
- primitive: "processedEvent",
169
- })
170
- .pipe(takeUntil(this.ngUnsubscribe))
171
- .subscribe(function (message) {
172
- var _a, _b;
173
- var externalId = (_a = message === null || message === void 0 ? void 0 : message.data) === null || _a === void 0 ? void 0 : _a.externalId;
174
- var filterData = _this.filterFormGroup.getRawValue();
175
- if (!externalId || _this.externalId === externalId || ((_b = _this.gridData) === null || _b === void 0 ? void 0 : _b.some(function (item) { return item.externalId === externalId; }))) {
176
- _this.updateGrid({ filterData: filterData });
177
- _this.processedEvent.emit(message);
178
- }
179
- });
180
- this.websocketService
181
- .onEvent({
182
- domain: "platform",
183
- service: "notifications",
184
- primitive: "userNotified",
185
- })
186
- .pipe(takeUntil(this.ngUnsubscribe))
187
- .subscribe(function () {
188
- var filterData = _this.filterFormGroup.getRawValue();
189
- _this.updateGrid({ filterData: filterData });
190
- });
191
- };
192
- EventControlBoardComponent.prototype.onSearch = function () {
193
- var filterData = this.filterFormGroup.getRawValue();
194
- this.gridLoading = true;
195
- this.resetGrid({ filterData: filterData });
196
- this.updateGrid({ filterData: filterData });
197
- };
198
- EventControlBoardComponent.prototype.resetGrid = function (listParams) {
199
- if (listParams) {
200
- this.currentListParams = __assign(__assign({}, this.currentListParams), listParams);
201
- }
202
- this.currentListParams.page = AGRO_NUMBERS.ZERO;
203
- };
204
- EventControlBoardComponent.prototype.updateGrid = function (listParams) {
205
- var _this = this;
206
- if (listParams === void 0) { listParams = {}; }
207
- var _a;
208
- this.currentListParams = __assign(__assign({}, this.currentListParams), listParams);
209
- if (((_a = this.currentListParams.sort) === null || _a === void 0 ? void 0 : _a.length) <= 0) {
210
- this.currentListParams.sort = this.standalone ?
211
- [{ field: "createdDate", order: 1 }] :
212
- [{ field: "lastModifiedDate", order: -1 }];
213
- }
214
- this.currentListParams.filterQuery = this.getFilter();
215
- this.eventControlService
216
- .list(this.currentListParams)
217
- .pipe(takeUntil(this.ngUnsubscribe), catchError(function (err) {
218
- _this.gridLoading = false;
219
- throw err;
220
- }))
221
- .subscribe(function (list) {
222
- _this.gridData = list.contents;
223
- _this.gridTotalRecords = list.totalElements;
224
- if (!_this.gridData || _this.gridData.length <= AGRO_NUMBERS.ZERO) {
225
- _this.gridLoading = false;
226
- return;
227
- }
228
- _this.processEventControlItems();
229
- });
230
- };
231
- EventControlBoardComponent.prototype.getFilter = function () {
232
- var _a, _b;
233
- var filterData = this.currentListParams.filterData;
234
- var filters = [];
235
- if ((_a = filterData["company"]) === null || _a === void 0 ? void 0 : _a.id) {
236
- filters.push("e070emp.id eq '" + filterData["company"].id + "'");
237
- }
238
- if ((_b = filterData["branch"]) === null || _b === void 0 ? void 0 : _b.id) {
239
- filters.push("e070fil.id eq '" + filterData["branch"].id + "'");
240
- }
241
- var controlCode = filterData["controlCode"];
242
- if (controlCode && Array.isArray(controlCode) && controlCode.length > 0) {
243
- var codes = controlCode.map(function (code) { return parseInt(code, 10); }).join(",");
244
- filters.push("controlCode in (" + codes + ")");
245
- }
246
- if (filterData["externalId"]) {
247
- filters.push("externalId eq '" + filterData["externalId"] + "'");
248
- }
249
- if (filterData["eventOrigin"]) {
250
- filters.push("eventOrigin eq '" + filterData["eventOrigin"] + "'");
251
- }
252
- if (filterData["status"]) {
253
- filters.push("eventControlItem.status eq '" + filterData["status"] + "'");
254
- }
255
- if (filterData["createdDate"]) {
256
- filters.push("createdDate ge '" + this.getStartDate(filterData["createdDate"]) + "'");
257
- filters.push("createdDate le '" + this.getEndDate(filterData["createdDate"]) + "'");
258
- }
259
- return filters.join(" and ");
260
- };
261
- EventControlBoardComponent.prototype.getEndDate = function (value) {
262
- var endDate = moment(value).endOf("day").format("YYYY-MM-DDTHH:mm:ss") + "Z";
263
- return endDate;
264
- };
265
- EventControlBoardComponent.prototype.getStartDate = function (value) {
266
- var startDate = moment(value).startOf("day").format("YYYY-MM-DDTHH:mm:ss") + "Z";
267
- return startDate;
268
- };
269
- EventControlBoardComponent.prototype.getDisplayFields = function () {
270
- return [
271
- '*',
272
- 'company.*',
273
- 'branch.*',
274
- 'eventControlItem.eventDomain',
275
- 'eventControlItem.id',
276
- 'eventControlItem.eventDomain',
277
- 'eventControlItem.eventService',
278
- 'eventControlItem.eventPrimitive',
279
- 'eventControlItem.eventControl',
280
- 'eventControlItem.eventGroup',
281
- 'eventControlItem.sequence',
282
- 'eventControlItem.eventOperation',
283
- 'eventControlItem.output',
284
- 'eventControlItem.input',
285
- 'eventControlItem.status',
286
- 'eventControlItem.subTitle',
287
- 'eventControlItem.message',
288
- 'eventControlItem.createdBy',
289
- 'eventControlItem.createdDate',
290
- 'eventControlItem.lastModifiedBy',
291
- 'eventControlItem.lastModifiedDate',
292
- ];
293
- };
294
- EventControlBoardComponent.prototype.processEventControlItems = function () {
295
- var _this = this;
296
- this.gridData.forEach(function (item) {
297
- var sortedItems = item.eventControlItem.sort(function (a, b) {
298
- return a.sequence - b.sequence;
299
- });
300
- var steps = sortedItems.map(function (detail, index) { return _this.createStep(detail, item, index); });
301
- var activeIndex = _this.calculateActiveIndex(sortedItems);
302
- item.groups = [{ steps: steps, activeIndex: activeIndex }];
303
- item.activeIndex = activeIndex;
304
- });
305
- this.gridDataResolved = this.gridData;
306
- this.gridLoading = false;
307
- };
308
- EventControlBoardComponent.prototype.calculateActiveIndex = function (details) {
309
- var lastActive = details.reduce(function (lastIndex, detail, currentIndex) { return (detail.status !== EventStatus.PENDING ? currentIndex : lastIndex); }, -1);
310
- if (lastActive !== -1 && details[lastActive].status === EventStatus.SUCCESS) {
311
- return lastActive + 1;
312
- }
313
- return lastActive;
314
- };
315
- EventControlBoardComponent.prototype.createStep = function (detail, item, detailIndex) {
316
- console.log('Detail:', detail);
317
- return {
318
- item: detail,
319
- controlCode: item.controlCode,
320
- eventType: item.eventOrigin,
321
- label: this.getEventLabel(detail),
322
- subLabel: this.formatSubtitle(detail),
323
- disabled: detail.status === EventStatus.PENDING && detailIndex !== this.calculateActiveIndex(item.eventControlItem),
324
- tooltip: this.getEventLabel(detail),
325
- state: this.determineStepState(detail),
326
- };
327
- };
328
- EventControlBoardComponent.prototype.determineStepState = function (detail) {
329
- if (detail.status === EventStatus.SUCCESS) {
330
- return StepState.Success;
331
- }
332
- if (detail.status === EventStatus.FAILED) {
333
- return StepState.Warning;
334
- }
335
- return StepState.Default;
336
- };
337
- EventControlBoardComponent.prototype.getEventLabel = function (detail) {
338
- var _a;
339
- var eventLabel = (_a = this.eventItem.find(function (e) { return e.value === detail.eventOperation; })) === null || _a === void 0 ? void 0 : _a.label;
340
- console.log('Getting label for event operation:', eventLabel);
341
- if (eventLabel) {
342
- return this.translate.instant(eventLabel);
343
- }
344
- var localLabel = this.translate.instant("agro.angular_components." + detail.eventOperation);
345
- if (localLabel) {
346
- return localLabel;
347
- }
348
- return detail.eventOperation;
349
- };
350
- EventControlBoardComponent.prototype.formatSubtitle = function (detail) {
351
- var _a;
352
- var eventOperation = detail.eventOperation, subTitle = detail.subTitle;
353
- var invoiceOperations = [
354
- EventOperation.CREATE_INVOICE_FIXATION,
355
- EventOperation.CANCEL_INVOICE_FIXATION,
356
- EventOperation.ORIGINATION_CREATE_INVOICE
357
- ];
358
- var numberPrefixOperations = [
359
- EventOperation.CLOSE_INVOICE_FIXATION,
360
- EventOperation.REOPEN_INVOICE_FIXATION
361
- ];
362
- var prescriptionOperations = [
363
- EventOperation.PRESCRIPTION_DATA_LOAD_PRODUCT_TYPE,
364
- EventOperation.PRESCRIPTION_DATA_LOAD_ACTIVE_PRINCIPLE,
365
- EventOperation.PRESCRIPTION_DATA_LOAD_FORMULATION,
366
- EventOperation.PRESCRIPTION_DATA_LOAD_BULLETIN,
367
- EventOperation.PRESCRIPTION_DATA_LOAD_APPLICATION_UNIT,
368
- EventOperation.PRESCRIPTION_DATA_LOAD_SPECIE,
369
- EventOperation.PRESCRIPTION_DATA_LOAD_APPLICATION_TYPE,
370
- EventOperation.PRESCRIPTION_DATA_LOAD_PROBLEMS,
371
- EventOperation.PRESCRIPTION_DATA_LOAD_APPLICATION
372
- ];
373
- var formattedSubtitle = subTitle;
374
- if (invoiceOperations.includes(eventOperation)) {
375
- var label = (_a = this.invoiceTypeTranslate.find(function (e) { return e.value === subTitle; })) === null || _a === void 0 ? void 0 : _a.label;
376
- formattedSubtitle = label ? this.translate.instant(label) : subTitle;
377
- }
378
- if (numberPrefixOperations.includes(eventOperation)) {
379
- formattedSubtitle = subTitle ? "n\u00B0 " + subTitle : subTitle;
380
- }
381
- if (prescriptionOperations.includes(eventOperation)) {
382
- formattedSubtitle = this.translate.instant('agro.angular_components.new_prescription_page', { count: subTitle });
383
- }
384
- return formattedSubtitle;
385
- };
386
- EventControlBoardComponent.prototype.onGridChange = function (event) {
387
- var size = event === null || event === void 0 ? void 0 : event.rows;
388
- var page = (event === null || event === void 0 ? void 0 : event.first) / size;
389
- var sort = event.multiSortMeta;
390
- this.gridLoading = true;
391
- if (size !== AGRO_NUMBERS.TEN || page !== AGRO_NUMBERS.ZERO || (sort && sort.length > AGRO_NUMBERS.ZERO)) {
392
- this.paginatorStorageService.storePaginator("EventControlBoardPaginator", { page: page, size: size, sort: sort });
393
- }
394
- return this.updateGrid({ page: page, size: size, sort: sort });
395
- };
396
- EventControlBoardComponent.prototype.getPageSize = function () {
397
- return this.currentListParams.size;
398
- };
399
- EventControlBoardComponent.prototype.getRowIndex = function () {
400
- return this.currentListParams.page * this.currentListParams.size;
401
- };
402
- EventControlBoardComponent.prototype.getSortField = function () {
403
- if (!this.currentListParams.sort || this.currentListParams.sort.length <= AGRO_NUMBERS.ZERO) {
404
- return this.gridColumns[AGRO_NUMBERS.ZERO].field;
405
- }
406
- return this.currentListParams.sort[AGRO_NUMBERS.ZERO].field;
407
- };
408
- EventControlBoardComponent.prototype.getSortOrder = function () {
409
- if (!this.currentListParams.sort || this.currentListParams.sort.length <= AGRO_NUMBERS.ZERO) {
410
- return AGRO_NUMBERS.ONE;
411
- }
412
- return this.currentListParams.sort[AGRO_NUMBERS.ZERO].order;
413
- };
414
- EventControlBoardComponent.prototype.getErrorMessages = function () {
415
- var translatedErrorMessages = {};
416
- var _loop_1 = function (key) {
417
- if (LookupErrorMessages.hasOwnProperty(key)) {
418
- this_1.translate.get(LookupErrorMessages[key]).subscribe(function (res) {
419
- translatedErrorMessages[key] = res;
420
- });
421
- }
422
- };
423
- var this_1 = this;
424
- for (var key in LookupErrorMessages) {
425
- _loop_1(key);
426
- }
427
- return translatedErrorMessages;
428
- };
429
- EventControlBoardComponent.prototype.getProducerInvoiceIdFromParams = function (param) {
430
- var _a, _b, _c, _d, _e;
431
- if (!param) {
432
- return null;
433
- }
434
- return (_e = [
435
- (_a = param.producerInvoiceIds) === null || _a === void 0 ? void 0 : _a[0],
436
- (_c = (_b = param.invoice) === null || _b === void 0 ? void 0 : _b.generalData) === null || _c === void 0 ? void 0 : _c.transactionalId,
437
- param.producerInvoiceId,
438
- param.externalId,
439
- (_d = param.externalInvoiceIds) === null || _d === void 0 ? void 0 : _d[0],
440
- ].find(function (id) { return id; })) !== null && _e !== void 0 ? _e : null;
441
- };
442
- EventControlBoardComponent.prototype.getProducerBalanceEntryControlIdFromParams = function (param) {
443
- var producerBalanceEntryControlId = param.producerBalanceEntryControlId;
444
- return producerBalanceEntryControlId ? producerBalanceEntryControlId : null;
445
- };
446
- EventControlBoardComponent.prototype.stepSelected = function (event) {
447
- var _this = this;
448
- this.selectedStep = event.step;
449
- this.applySidebarTitle("");
450
- switch (this.selectedStep.eventType) {
451
- case EventOrigin.BALANCE_ENTRY_CONTROL:
452
- case EventOrigin.TICKET:
453
- case EventOrigin.INVOICE:
454
- case EventOrigin.CREATE_INVOICE:
455
- this.sidebarLoading = true;
456
- {
457
- var param = JSON.parse(this.selectedStep.item.input);
458
- var producerInvoiceId = this.getProducerInvoiceIdFromParams(param);
459
- var filterQuery = "";
460
- if (!producerInvoiceId) {
461
- var producerBalanceEntryControlId = this.getProducerBalanceEntryControlIdFromParams(param);
462
- if (!producerBalanceEntryControlId) {
463
- this.sidebarLoading = false;
464
- return;
465
- }
466
- filterQuery = "producerBalanceEntryControl.id eq '" + producerBalanceEntryControlId + "'";
467
- }
468
- else {
469
- filterQuery = "id eq '" + producerInvoiceId + "'";
470
- }
471
- this.producerInvoiceService
472
- .list({
473
- displayFields: ["*", "producerBalanceEntryControl.*", "producerBalanceEntryControl.producer.*"],
474
- filterQuery: filterQuery,
475
- page: 0,
476
- size: 1,
477
- })
478
- .pipe(takeUntil(this.ngUnsubscribe))
479
- .subscribe(function (result) {
480
- _this.producerInvoice = result === null || result === void 0 ? void 0 : result.contents[0];
481
- _this.producerInvoice;
482
- _this.sidebarLoading = false;
483
- _this.applySidebarTitle(_this.getProducerInvoiceNumberAndSerie());
484
- }, function () {
485
- _this.sidebarLoading = false;
486
- });
487
- }
488
- break;
489
- case EventOrigin.FIXATION:
490
- case EventOrigin.CANCEL_FIXATION:
491
- case EventOrigin.CHANGE_REQUEST:
492
- case EventOrigin.TRANSFER:
493
- break;
494
- }
495
- this.showReprocessButton = event.step.state === StepState.Warning;
496
- this.showSidebar = true;
497
- };
498
- EventControlBoardComponent.prototype.applySidebarTitle = function (title) {
499
- this.sidebarTitle = this.translate.instant("agro.angular_components.event_sidebar_title", { eventNumber: title });
500
- };
501
- EventControlBoardComponent.prototype.getProducerInvoiceNumberAndSerie = function () {
502
- var _a, _b;
503
- if (((_a = this.producerInvoice) === null || _a === void 0 ? void 0 : _a.number) && ((_b = this.producerInvoice) === null || _b === void 0 ? void 0 : _b.series)) {
504
- return this.producerInvoice.number + " - " + this.producerInvoice.series;
505
- }
506
- return "";
507
- };
508
- EventControlBoardComponent.prototype.reprocessEvent = function () {
509
- var _this = this;
510
- var reprocessEventObj = {
511
- eventControlItemId: this.selectedStep.item.id,
512
- };
513
- this.eventControlItemService
514
- .reprocessFailedEvent(reprocessEventObj)
515
- .pipe(takeUntil(this.ngUnsubscribe))
516
- .subscribe(function () {
517
- _this.addMessage("info", "agro.angular_components.reprocessing_event_message_title", "agro.angular_components.reprocessing_event_message_description");
518
- }, function () {
519
- _this.addMessage("error", "agro.angular_components.error_reprocessing_event_message_title", "agro.angular_components.error_reprocessing_event_message_description");
520
- });
521
- };
522
- EventControlBoardComponent.prototype.addMessage = function (severity, summary, detail, life) {
523
- if (life === void 0) { life = AGRO_NUMBERS.FIVE_SECONDS; }
524
- this.messageService.add({
525
- severity: severity,
526
- summary: this.translate.instant(summary),
527
- detail: this.translate.instant(detail),
528
- life: life,
529
- });
530
- };
531
- EventControlBoardComponent.prototype.openModal = function () {
532
- this.displayModal = true;
533
- this.showSidebar = false;
534
- };
535
- EventControlBoardComponent.prototype.openCancelModal = function () {
536
- var _a, _b, _c;
537
- return __awaiter(this, void 0, void 0, function () {
538
- return __generator(this, function (_d) {
539
- switch (_d.label) {
540
- case 0: return [4 /*yield*/, ((_b = (_a = this.cancelEventDialogConfig).beforeOpen) === null || _b === void 0 ? void 0 : _b.call(_a))];
541
- case 1:
542
- _d.sent();
543
- this.dialogService.open(CancelEventDialogComponent, {
544
- header: (_c = this.cancelEventDialogConfig) === null || _c === void 0 ? void 0 : _c.header,
545
- contentStyle: { height: "100%" },
546
- closable: true,
547
- closeOnEscape: false,
548
- data: { cancelEventDialogConfig: this.cancelEventDialogConfig },
549
- });
550
- return [2 /*return*/];
551
- }
552
- });
553
- });
554
- };
555
- EventControlBoardComponent.prototype.confirmModal = function () {
556
- this.reprocessEvent();
557
- this.displayModal = false;
558
- };
559
- EventControlBoardComponent.prototype.cancelModal = function () {
560
- this.displayModal = false;
561
- };
562
- EventControlBoardComponent.prototype.closeSidebar = function () {
563
- this.showSidebar = false;
564
- };
565
- EventControlBoardComponent.ctorParameters = function () { return [
566
- { type: LibTranslationService },
567
- { type: FormBuilder },
568
- { type: WebsocketService },
569
- { type: EventControlService },
570
- { type: PaginatorStorageService },
571
- { type: EventControlItemService },
572
- { type: ProducerInvoiceService },
573
- { type: MessageService },
574
- { type: DialogService }
575
- ]; };
576
- __decorate([
577
- Input()
578
- ], EventControlBoardComponent.prototype, "company", void 0);
579
- __decorate([
580
- Input()
581
- ], EventControlBoardComponent.prototype, "branch", void 0);
582
- __decorate([
583
- Input()
584
- ], EventControlBoardComponent.prototype, "controlCode", void 0);
585
- __decorate([
586
- Input()
587
- ], EventControlBoardComponent.prototype, "eventOrigin", void 0);
588
- __decorate([
589
- Input()
590
- ], EventControlBoardComponent.prototype, "eventStatus", void 0);
591
- __decorate([
592
- Input()
593
- ], EventControlBoardComponent.prototype, "externalId", void 0);
594
- __decorate([
595
- Input()
596
- ], EventControlBoardComponent.prototype, "createdDate", void 0);
597
- __decorate([
598
- Input()
599
- ], EventControlBoardComponent.prototype, "standalone", void 0);
600
- __decorate([
601
- Input()
602
- ], EventControlBoardComponent.prototype, "showCancelButton", void 0);
603
- __decorate([
604
- Input()
605
- ], EventControlBoardComponent.prototype, "cancelEventDialogConfig", void 0);
606
- __decorate([
607
- Output()
608
- ], EventControlBoardComponent.prototype, "processedEvent", void 0);
609
- EventControlBoardComponent = __decorate([
610
- Component({
611
- selector: "event-control-board",
612
- 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",
613
- providers: [{ provide: LOCALE_ID, useValue: "pt-BR" }],
614
- 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}"]
615
- })
616
- ], EventControlBoardComponent);
617
- return EventControlBoardComponent;
618
- }());
619
- export { EventControlBoardComponent };
620
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtY29udHJvbC1ib2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZXZlbnQtY29udHJvbC1ib2FyZC9ldmVudC1jb250cm9sLWJvYXJkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxRQUFRLE1BQU0sNEJBQTRCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBZ0MsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFRLFNBQVMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hILE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFNUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDbEcsT0FB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QjtRQUFSLEtBQUssRUFBRTt3RUFBNEI7SUFDM0I7UUFBUixLQUFLLEVBQUU7K0VBQW1EO0lBQ2pEO1FBQVQsTUFBTSxFQUFFO3NFQUE2RDtJQVg3RCwwQkFBMEI7UUFOdEMsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLHFCQUFxQjtZQUMvQixva2lCQUFtRDtZQUVuRCxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDOztTQUN6RCxDQUFDO09BQ1csMEJBQTBCLENBbW5CdEM7SUFBRCxpQ0FBQztDQUFBLEFBbm5CRCxJQW1uQkM7U0FubkJZLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlZ2lzdGVyTG9jYWxlRGF0YSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IGxvY2FsZVB0IGZyb20gXCJAYW5ndWxhci9jb21tb24vbG9jYWxlcy9wdFwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIExPQ0FMRV9JRCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBCYWRnZUNvbG9ycywgQnV0dG9uUHJpb3JpdHksIEZpZWxkVHlwZSwgRm9ybUZpZWxkLCBTdGVwLCBTdGVwU3RhdGUgfSBmcm9tIFwiQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50c1wiO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlLCBNZXNzYWdlU2VydmljZSB9IGZyb20gXCJwcmltZW5nXCI7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgQUdST19OVU1CRVJTIH0gZnJvbSBcIi4uLy4uL2VudW1zL2Fncm8tbnVtYmVycy5lbnVtXCI7XHJcbmltcG9ydCB7IExpYlRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9saWItdHJhbnNsYXRpb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBQcm9kdWNlckludm9pY2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3Byb2R1Y2VyLWludm9pY2VcIjtcclxuaW1wb3J0IHsgV2Vic29ja2V0U2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy93ZWJzb2NrZXRcIjtcclxuaW1wb3J0IHsgQ2FuY2VsRXZlbnREaWFsb2dDb25maWcgfSBmcm9tIFwiLi4vY2FuY2VsLWV2ZW50LWRpYWxvZy9jYW5jZWwtZXZlbnQtZGlhbG9nLWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBDYW5jZWxFdmVudERpYWxvZ0NvbXBvbmVudCB9IGZyb20gXCIuLi9jYW5jZWwtZXZlbnQtZGlhbG9nL2NhbmNlbC1ldmVudC1kaWFsb2cuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IGV2ZW50SXRlbSB9IGZyb20gXCIuL2NvbW1vbi9ldmVudC1jb250cm9sLWNvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBFdmVudE9wZXJhdGlvbiB9IGZyb20gXCIuL2NvbW1vbi9ldmVudC1vcGVyYXRpb25cIjtcclxuaW1wb3J0IHsgRXZlbnRPcmlnaW4gfSBmcm9tIFwiLi9jb21tb24vZXZlbnQtb3JpZ2luXCI7XHJcbmltcG9ydCB7IEV2ZW50U3RhdHVzIH0gZnJvbSBcIi4vY29tbW9uL2V2ZW50LXN0YXR1c1wiO1xyXG5pbXBvcnQgeyBpbnZvaWNlVHlwZVRyYW5zbGF0ZSB9IGZyb20gXCIuL2NvbW1vbi9pbnB1dC1maWVsZHMtdHJhbnNsYXRlXCI7XHJcbmltcG9ydCB7IExvb2t1cEVycm9yTWVzc2FnZXMgfSBmcm9tIFwiLi9jb21tb24vbG9va3VwLWVycm9yLW1lc3NhZ2UuY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IEUwNzBFbXAgfSBmcm9tIFwiLi9zZXJ2aWNlL2UwNzBlbXAvZTA3MGVtcFwiO1xyXG5pbXBvcnQgeyBFMDcwRmlsIH0gZnJvbSBcIi4vc2VydmljZS9lMDcwZmlsL2UwNzBmaWxcIjtcclxuaW1wb3J0IHsgRXZlbnRDb250cm9sSXRlbSB9IGZyb20gXCIuL3NlcnZpY2UvZXZlbnQtY29udHJvbC1pdGVtL2V2ZW50LWNvbnRyb2wtaXRlbVwiO1xyXG5pbXBvcnQgeyBFdmVudENvbnRyb2xJdGVtU2VydmljZSwgUmVwcm9jZXNzRmFpbGVkRXZlbnQgfSBmcm9tIFwiLi9zZXJ2aWNlL2V2ZW50LWNvbnRyb2wtaXRlbS9ldmVudC1jb250cm9sLWl0ZW0uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBFdmVudENvbnRyb2wgfSBmcm9tIFwiLi9zZXJ2aWNlL2V2ZW50LWNvbnRyb2wvZXZlbnQtY29udHJvbFwiO1xyXG5pbXBvcnQgeyBFdmVudENvbnRyb2xTZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZS9ldmVudC1jb250cm9sL2V2ZW50LWNvbnRyb2wuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBQYWdpbmF0b3JTdG9yYWdlU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2UvcGFnaW5hdG9yLXN0b3JhZ2Uuc2VydmljZVwiO1xyXG5jb25zdCBtb21lbnQgPSByZXF1aXJlKFwibW9tZW50XCIpO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJldmVudC1jb250cm9sLWJvYXJkXCIsXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2V2ZW50LWNvbnRyb2wtYm9hcmQuY29tcG9uZW50Lmh0bWxcIixcclxuICAgIHN0eWxlVXJsczogW1wiLi9ldmVudC1jb250cm9sLWJvYXJkLmNvbXBvbmVudC5zY3NzXCJdLFxyXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBMT0NBTEVfSUQsIHVzZVZhbHVlOiBcInB0LUJSXCIgfV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFdmVudENvbnRyb2xCb2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xyXG4gICAgQElucHV0KCkgY29tcGFueSE6IEUwNzBFbXA7XHJcbiAgICBASW5wdXQoKSBicmFuY2ghOiBFMDcwRmlsO1xyXG4gICAgQElucHV0KCkgY29udHJvbENvZGUhOiBzdHJpbmdbXTtcclxuICAgIEBJbnB1dCgpIGV2ZW50T3JpZ2luITogRXZlbnRPcmlnaW47XHJcbiAgICBASW5wdXQoKSBldmVudFN0YXR1cyE6IEV2ZW50U3RhdHVzO1xyXG4gICAgQElucHV0KCkgZXh0ZXJuYWxJZCE6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGNyZWF0ZWREYXRlITogRGF0ZTtcclxuICAgIEBJbnB1dCgpIHN0YW5kYWxvbmUhOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgc2hvd0NhbmNlbEJ1dHRvbiE6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBjYW5jZWxFdmVudERpYWxvZ0NvbmZpZyE6IENhbmNlbEV2ZW50RGlhbG9nQ29uZmlnO1xyXG4gICAgQE91dHB1dCgpIHByb2Nlc3NlZEV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIHB1YmxpYyBwcm9kdWNlckludm9pY2UhOiBhbnk7XHJcblxyXG4gICAgcHVibGljIHN0ZXBzOiBTdGVwW10gPSBbXTtcclxuICAgIHB1YmxpYyBzZWxlY3RlZFN0ZXA6IGFueTtcclxuICAgIHB1YmxpYyBldmVudElkITogXCJcIjtcclxuICAgIHB1YmxpYyBzaG93U2lkZWJhciA9IGZhbHNlO1xyXG4gICAgcHVibGljIHNob3dSZXByb2Nlc3NCdXR0b24gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBzaWRlYmFyVGl0bGUhOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgc2lkZWJhckxvYWRpbmchOiBib29sZWFuO1xyXG5cclxuICAgIHB1YmxpYyBmaWx0ZXJGb3JtR3JvdXAhOiBGb3JtR3JvdXA7XHJcbiAgICBwdWJsaWMgZmlsdGVyRmllbGRzITogRm9ybUZpZWxkW107XHJcblxyXG4gICAgcHVibGljIGdyaWREYXRhITogYW55W107XHJcbiAgICBwdWJsaWMgZ3JpZERhdGFSZXNvbHZlZCE6IGFueVtdO1xyXG4gICAgcHVibGljIGdyaWRDb2x1bW5zITogYW55W107XHJcbiAgICBwdWJsaWMgZ3JpZFRvdGFsUmVjb3JkcyA9IEFHUk9fTlVNQkVSUy5aRVJPO1xyXG4gICAgcHVibGljIGdyaWRMb2FkaW5nID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgZGlzcGxheU1vZGFsID0gZmFsc2U7XHJcblxyXG4gICAgcHVibGljIEJ1dHRvblByaW9yaXR5ID0gQnV0dG9uUHJpb3JpdHk7XHJcbiAgICBwdWJsaWMgQmFkZ2VDb2xvcnMgPSBCYWRnZUNvbG9ycztcclxuXHJcbiAgICBwdWJsaWMgcGVybWlzc2lvbnM6IGFueSA9IHt9O1xyXG4gICAgcHVibGljIGxvY2FsZUNvbmZpZzogYW55ID0ge307XHJcblxyXG4gICAgcHVibGljIGN1cnJlbnRMaXN0UGFyYW1zOiBhbnkgPSB7XHJcbiAgICAgICAgcGFnZTogQUdST19OVU1CRVJTLlpFUk8sXHJcbiAgICAgICAgc2l6ZTogQUdST19OVU1CRVJTLlRFTixcclxuICAgICAgICBkaXNwbGF5RmllbGRzOiB0aGlzLmdldERpc3BsYXlGaWVsZHMoKSxcclxuICAgICAgICBzb3J0OiBbXSxcclxuICAgICAgICBmaWx0ZXJEYXRhOiB7fVxyXG4gICAgfTtcclxuXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBldmVudEl0ZW0gPSBldmVudEl0ZW07XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGludm9pY2VUeXBlVHJhbnNsYXRlID0gaW52b2ljZVR5cGVUcmFuc2xhdGU7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IExpYlRyYW5zbGF0aW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHdlYnNvY2tldFNlcnZpY2U6IFdlYnNvY2tldFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBldmVudENvbnRyb2xTZXJ2aWNlOiBFdmVudENvbnRyb2xTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcGFnaW5hdG9yU3RvcmFnZVNlcnZpY2U6IFBhZ2luYXRvclN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRDb250cm9sSXRlbVNlcnZpY2U6IEV2ZW50Q29udHJvbEl0ZW1TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjZXJJbnZvaWNlU2VydmljZTogUHJvZHVjZXJJbnZvaWNlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2VcclxuICAgICkge1xyXG4gICAgICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVQdCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuZ3JpZENvbHVtbnMgPSB0aGlzLnNldEdyaWRDb2x1bW5zKCk7XHJcbiAgICAgICAgdGhpcy5jYWxsV2Vic29ja2V0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBpZiAoIXRoaXMuZmlsdGVyRm9ybUdyb3VwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZUZvcm1Hcm91cCgpO1xyXG4gICAgICAgICAgICB0aGlzLnNldEZvcm1GaWVsZHMoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMudXBkYXRlQ29tcGFueUFuZEJyYW5jaEZvcm1GaWVsZHMoY2hhbmdlcyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVFdmVudE9yaWdpbkFuZENvbnRyb2xDb2RlRm9ybUZpZWxkcyhjaGFuZ2VzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUV2ZW50U3RhdHVzQW5kQ3JlYXRlZERhdGVGb3JtRmllbGRzKGNoYW5nZXMpO1xyXG4gICAgICAgIHRoaXMub25TZWFyY2goKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZUNvbXBhbnlBbmRCcmFuY2hGb3JtRmllbGRzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBpZiAoY2hhbmdlcy5jb21wYW55ICYmIGNoYW5nZXMuY29tcGFueS5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMuY29tcGFueS5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldChcImNvbXBhbnlcIik/LnNldFZhbHVlKGNoYW5nZXMuY29tcGFueS5jdXJyZW50VmFsdWUgPz8gbnVsbCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY2hhbmdlcy5icmFuY2ggJiYgY2hhbmdlcy5icmFuY2guY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLmJyYW5jaC5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldChcImJyYW5jaFwiKT8uc2V0VmFsdWUoY2hhbmdlcy5icmFuY2guY3VycmVudFZhbHVlID8/IG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZUV2ZW50T3JpZ2luQW5kQ29udHJvbENvZGVGb3JtRmllbGRzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBpZiAoY2hhbmdlcy5ldmVudE9yaWdpbiAmJiBjaGFuZ2VzLmV2ZW50T3JpZ2luLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5ldmVudE9yaWdpbi5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldChcImV2ZW50T3JpZ2luXCIpPy5zZXRWYWx1ZShjaGFuZ2VzLmV2ZW50T3JpZ2luLmN1cnJlbnRWYWx1ZSA/PyBudWxsKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjaGFuZ2VzLmNvbnRyb2xDb2RlICYmIGNoYW5nZXMuY29udHJvbENvZGUuY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLmNvbnRyb2xDb2RlLnByZXZpb3VzVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KFwiY29udHJvbENvZGVcIik/LnNldFZhbHVlKGNoYW5nZXMuY29udHJvbENvZGUuY3VycmVudFZhbHVlID8/IG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZUV2ZW50U3RhdHVzQW5kQ3JlYXRlZERhdGVGb3JtRmllbGRzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBpZiAoY2hhbmdlcy5ldmVudFN0YXR1cyAmJiBjaGFuZ2VzLmV2ZW50U3RhdHVzLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5ldmVudFN0YXR1cy5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldChcInN0YXR1c1wiKT8uc2V0VmFsdWUoY2hhbmdlcy5ldmVudFN0YXR1cy5jdXJyZW50VmFsdWUgPz8gbnVsbCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY2hhbmdlcy5jcmVhdGVkRGF0ZSAmJiBjaGFuZ2VzLmNyZWF0ZWREYXRlLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5jcmVhdGVkRGF0ZS5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldChcImNyZWF0ZWREYXRlXCIpPy5zZXRWYWx1ZShjaGFuZ2VzLmNyZWF0ZWREYXRlLmN1cnJlbnRWYWx1ZSA/PyBudWxsKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplRm9ybUdyb3VwKCkge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgICAgICAgIGNvbXBhbnk6IFt7IHZhbHVlOiB0aGlzLmNvbXBhbnkgPz8gbnVsbCwgZGlzYWJsZWQ6IGZhbHNlIH0sIFZhbGlkYXRvcnMuY29tcG9zZShbXSldLFxyXG4gICAgICAgICAgICBicmFuY2g6IFt7IHZhbHVlOiB0aGlzLmJyYW5jaCA/PyBudWxsLCBkaXNhYmxlZDogZmFsc2UgfSwgVmFsaWRhdG9ycy5jb21wb3NlKFtdKV0sXHJcbiAgICAgICAgICAgIGNvbnRyb2xDb2RlOiBbeyB2YWx1ZTogdGhpcy5jb250cm9sQ29kZSA/PyBudWxsLCBkaXNhYmxlZDogZmFsc2UgfSwgVmFsaWRhdG9ycy5jb21wb3NlKFtdKV0sXHJcbiAgICAgICAgICAgIGV4dGVybmFsSWQ6IFt7IHZhbHVlOiB0aGlzLmV4dGVybmFsSWQgPz8gbnVsbCwgZGlzYWJsZWQ6IGZhbHNlIH0sIFZhbGlkYXRvcnMuY29tcG9zZShbXSldLFxyXG4gICAgICAgICAgICBldmVudE9yaWdpbjogW3sgdmFsdWU6IHRoaXMuZXZlbnRPcmlnaW4gPz8gbnVsbCwgZGlzYWJsZWQ6IGZhbHNlIH0sIFZhbGlkYXRvcnMuY29tcG9zZShbXSldLFxyXG4gICAgICAgICAgICBzdGF0dXM6IFt7IHZhbHVlOiB0aGlzLmV2ZW50U3RhdHVzID8/IG51bGwsIGRpc2FibGVkOiBmYWxzZSB9LCBWYWxpZGF0b3JzLmNvbXBvc2UoW10pXSxcclxuICAgICAgICAgICAgY3JlYXRlZERhdGU6IFt7IHZhbHVlOiB0aGlzLmNyZWF0ZWREYXRlID8/IG51bGwsIGRpc2FibGVkOiBmYWxzZSB9LCBWYWxpZGF0b3JzLmNvbXBvc2UoW10pXSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldEZvcm1GaWVsZHMoKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJGaWVsZHMgPSBbXHJcbiAgICAgICAgICAgIG5ldyBGb3JtRmllbGQoe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJjb21wYW55XCIsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuQ2hpcHMsXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgRm9ybUZpZWxkKHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiYnJhbmNoXCIsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuQ2hpcHMsXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgRm9ybUZpZWxkKHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiY29udHJvbENvZGVcIixcclxuICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5DaGlwcyxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBGb3JtRmllbGQoe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJleHRlcm5hbElkXCIsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuU3RyaW5nLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IEZvcm1GaWVsZCh7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcImV2ZW50T3JpZ2luXCIsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuRW51bSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBGb3JtRmllbGQoe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJzdGF0dXNcIixcclxuICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5FbnVtLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IEZvcm1GaWVsZCh7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcImNyZWF0ZWREYXRlXCIsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuRGF0ZSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgXTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldEdyaWRDb2x1bW5zKCkge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICAgIHsgZmllbGQ6IFwiY29tcGFueVwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5jb21wYW55XCIpIH0sXHJcbiAgICAgICAgICAgIHsgZmllbGQ6IFwiYnJhbmNoXCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmxhYmVsX2JyYW5jaFwiKSB9LFxyXG4gICAgICAgICAgICB7IGZpZWxkOiBcImV2ZW50T3JpZ2luXCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmV2ZW50X29yaWdpbl9sYWJlbFwiKSB9LFxyXG4gICAgICAgICAgICB7IGZpZWxkOiBcImNvbnRyb2xDb2RlXCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmNvbnRyb2xfY29kZVwiKSB9LFxyXG4gICAgICAgIF07XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XHJcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgdGhpcy53ZWJzb2NrZXRTZXJ2aWNlLmRpc2Nvbm5lY3QoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2FsbFdlYnNvY2tldCgpIHtcclxuICAgICAgICB0aGlzLndlYnNvY2tldFNlcnZpY2VcclxuICAgICAgICAgICAgLm9uRXZlbnQ8YW55Pih7XHJcbiAgICAgICAgICAgICAgICBkb21haW46IFwiYWdyb1wiLFxyXG4gICAgICAgICAgICAgICAgc2VydmljZTogXCJhZ3JvX2V2ZW50c1wiLFxyXG4gICAgICAgICAgICAgICAgcHJpbWl0aXZlOiBcInByb2Nlc3NlZEV2ZW50XCIsXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChtZXNzYWdlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBleHRlcm5hbElkID0gbWVzc2FnZT8uZGF0YT8uZXh0ZXJuYWxJZDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlckRhdGEgPSB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFleHRlcm5hbElkIHx8IHRoaXMuZXh0ZXJuYWxJZCA9PT0gZXh0ZXJuYWxJZCB8fCB0aGlzLmdyaWREYXRhPy5zb21lKChpdGVtOiBhbnkpID0+IGl0ZW0uZXh0ZXJuYWxJZCA9PT0gZXh0ZXJuYWxJZCkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUdyaWQoeyBmaWx0ZXJEYXRhIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc2VkRXZlbnQuZW1pdChtZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMud2Vic29ja2V0U2VydmljZVxyXG4gICAgICAgICAgICAub25FdmVudDxhbnk+KHtcclxuICAgICAgICAgICAgICAgIGRvbWFpbjogXCJwbGF0Zm9ybVwiLFxyXG4gICAgICAgICAgICAgICAgc2VydmljZTogXCJub3RpZmljYXRpb25zXCIsXHJcbiAgICAgICAgICAgICAgICBwcmltaXRpdmU6IFwidXNlck5vdGlmaWVkXCIsXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlckRhdGEgPSB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVHcmlkKHsgZmlsdGVyRGF0YSB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uU2VhcmNoKCkge1xyXG4gICAgICAgIGNvbnN0IGZpbHRlckRhdGEgPSB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgICAgIHRoaXMuZ3JpZExvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMucmVzZXRHcmlkKHsgZmlsdGVyRGF0YSB9KTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUdyaWQoeyBmaWx0ZXJEYXRhIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZXNldEdyaWQobGlzdFBhcmFtcz86IGFueSkge1xyXG4gICAgICAgIGlmIChsaXN0UGFyYW1zKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudExpc3RQYXJhbXMgPSB7IC4uLnRoaXMuY3VycmVudExpc3RQYXJhbXMsIC4uLmxpc3RQYXJhbXMgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jdXJyZW50TGlzdFBhcmFtcy5wYWdlID0gQUdST19OVU1CRVJTLlpFUk87XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB1cGRhdGVHcmlkKGxpc3RQYXJhbXM6IGFueSA9IHt9KSB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50TGlzdFBhcmFtcyA9IHsgLi4udGhpcy5jdXJyZW50TGlzdFBhcmFtcywgLi4ubGlzdFBhcmFtcyB9O1xyXG5cclxuICAgICAgICBpZiAodGhpcy5jdXJyZW50TGlzdFBhcmFtcy5zb3J0Py5sZW5ndGggPD0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNvcnQgPSB0aGlzLnN0YW5kYWxvbmUgP1xyXG4gICAgICAgICAgICAgICAgW3sgZmllbGQ6IFwiY3JlYXRlZERhdGVcIiwgb3JkZXI6IDEgfV0gOlxyXG4gICAgICAgICAgICAgICAgW3sgZmllbGQ6IFwibGFzdE1vZGlmaWVkRGF0ZVwiLCBvcmRlcjogLTEgfV07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLmZpbHRlclF1ZXJ5ID0gdGhpcy5nZXRGaWx0ZXIoKTtcclxuXHJcbiAgICAgICAgdGhpcy5ldmVudENvbnRyb2xTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5saXN0KHRoaXMuY3VycmVudExpc3RQYXJhbXMpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXHJcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JpZExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGxpc3Q6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ncmlkRGF0YSA9IGxpc3QuY29udGVudHM7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdyaWRUb3RhbFJlY29yZHMgPSBsaXN0LnRvdGFsRWxlbWVudHM7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZ3JpZERhdGEgfHwgdGhpcy5ncmlkRGF0YS5sZW5ndGggPD0gQUdST19OVU1CRVJTLlpFUk8pIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyaWRMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzRXZlbnRDb250cm9sSXRlbXMoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRGaWx0ZXIoKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCB7IGZpbHRlckRhdGEgfSA9IHRoaXMuY3VycmVudExpc3RQYXJhbXM7XHJcbiAgICAgICAgY29uc3QgZmlsdGVyczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKGZpbHRlckRhdGFbXCJjb21wYW55XCJdPy5pZCkge1xyXG4gICAgICAgICAgICBmaWx0ZXJzLnB1c2goYGUwNzBlbXAuaWQgZXEgJyR7ZmlsdGVyRGF0YVtcImNvbXBhbnlcIl0uaWR9J2ApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGZpbHRlckRhdGFbXCJicmFuY2hcIl0/LmlkKSB7XHJcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaChgZTA3MGZpbC5pZCBlcSAnJHtmaWx0ZXJEYXRhW1wiYnJhbmNoXCJdLmlkfSdgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGNvbnRyb2xDb2RlID0gZmlsdGVyRGF0YVtcImNvbnRyb2xDb2RlXCJdO1xyXG4gICAgICAgIGlmIChjb250cm9sQ29kZSAmJiBBcnJheS5pc0FycmF5KGNvbnRyb2xDb2RlKSAmJiBjb250cm9sQ29kZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvZGVzID0gY29udHJvbENvZGUubWFwKChjb2RlOiBzdHJpbmcpID0+IHBhcnNlSW50KGNvZGUsIDEwKSkuam9pbihcIixcIik7XHJcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaChgY29udHJvbENvZGUgaW4gKCR7Y29kZXN9KWApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGZpbHRlckRhdGFbXCJleHRlcm5hbElkXCJdKSB7XHJcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaChgZXh0ZXJuYWxJZCBlcSAnJHtmaWx0ZXJEYXRhW1wiZXh0ZXJuYWxJZFwiXX0nYCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZmlsdGVyRGF0YVtcImV2ZW50T3JpZ2luXCJdKSB7XHJcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaChgZXZlbnRPcmlnaW4gZXEgJyR7ZmlsdGVyRGF0YVtcImV2ZW50T3JpZ2luXCJdfSdgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChmaWx0ZXJEYXRhW1wic3RhdHVzXCJdKSB7XHJcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaChgZXZlbnRDb250cm9sSXRlbS5zdGF0dXMgZXEgJyR7ZmlsdGVyRGF0YVtcInN0YXR1c1wiXX0nYCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZmlsdGVyRGF0YVtcImNyZWF0ZWREYXRlXCJdKSB7XHJcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaChgY3JlYXRlZERhdGUgZ2UgJyR7dGhpcy5nZXRTdGFydERhdGUoZmlsdGVyRGF0YVtcImNyZWF0ZWREYXRlXCJdKX0nYCk7XHJcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaChgY3JlYXRlZERhdGUgbGUgJyR7dGhpcy5nZXRFbmREYXRlKGZpbHRlckRhdGFbXCJjcmVhdGVkRGF0ZVwiXSl9J2ApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGZpbHRlcnMuam9pbihcIiBhbmQgXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0RW5kRGF0ZSh2YWx1ZTogYW55KTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBlbmREYXRlID0gbW9tZW50KHZhbHVlKS5lbmRPZihcImRheVwiKS5mb3JtYXQoXCJZWVlZLU1NLUREVEhIOm1tOnNzXCIpICsgXCJaXCI7XHJcbiAgICAgICAgcmV0dXJuIGVuZERhdGU7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIGdldFN0YXJ0RGF0ZSh2YWx1ZTogYW55KTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBzdGFydERhdGUgPSBtb21lbnQodmFsdWUpLnN0YXJ0T2YoXCJkYXlcIikuZm9ybWF0KFwiWVlZWS1NTS1ERFRISDptbTpzc1wiKSArIFwiWlwiO1xyXG4gICAgICAgIHJldHVybiBzdGFydERhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXREaXNwbGF5RmllbGRzKCk6IHN0cmluZ1tdIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgICAnKicsXHJcbiAgICAgICAgICAgICdjb21wYW55LionLFxyXG4gICAgICAgICAgICAnYnJhbmNoLionLFxyXG4gICAgICAgICAgICAnZXZlbnRDb250cm9sSXRlbS5ldmVudERvbWFpbicsXHJcbiAgICAgICAgICAgICdldmVudENvbnRyb2xJdGVtLmlkJyxcclxuICAgICAgICAgICAgJ2V2ZW50Q29udHJvbEl0ZW0uZXZlbnREb21haW4nLFxyXG4gICAgICAgICAgICAnZXZlbnRDb250cm9sSXRlbS5ldmVudFNlcnZpY2UnLFxyXG4gICAgICAgICAgICAnZXZlbnRDb250cm9sSXRlbS5ldmVudFByaW1pdGl2ZScsXHJcbiAgICAgICAgICAgICdldmVudENvbnRyb2xJdGVtLmV2ZW50Q29udHJvbCcsXHJcbiAgICAgICAgICAgICdldmVudENvbnRyb2xJdGVtLmV2ZW50R3JvdXAnLFxyXG4gICAgICAgICAgICAnZXZlbnRDb250cm9sSXRlbS5zZXF1ZW5jZScsXHJcbiAgICAgICAgICAgICdldmVudENvbnRyb2xJdGVtLmV2ZW50T3BlcmF0aW9uJyxcclxuICAgICAgICAgICAgJ2V2ZW50Q29udHJvbEl0ZW0ub3V0cHV0JyxcclxuICAgICAgICAgICAgJ2V2ZW50Q29udHJvbEl0ZW0uaW5wdXQnLFxyXG4gICAgICAgICAgICAnZXZlbnRDb250cm9sSXRlbS5zdGF0dXMnLFxyXG4gICAgICAgICAgICAnZXZlbnRDb250cm9sSXRlbS5zdWJUaXRsZScsXHJcbiAgICAgICAgICAgICdldmVudENvbnRyb2xJdGVtLm1lc3NhZ2UnLFxyXG4gICAgICAgICAgICAnZXZlbnRDb250cm9sSXRlbS5jcmVhdGVkQnknLFxyXG4gICAgICAgICAgICAnZXZlbnRDb250cm9sSXRlbS5jcmVhdGVkRGF0ZScsXHJcbiAgICAgICAgICAgICdldmVudENvbnRyb2xJdGVtLmxhc3RNb2RpZmllZEJ5JyxcclxuICAgICAgICAgICAgJ2V2ZW50Q29udHJvbEl0ZW0ubGFzdE1vZGlmaWVkRGF0ZScsXHJcbiAgICAgICAgXTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHByb2Nlc3NFdmVudENvbnRyb2xJdGVtcygpIHtcclxuICAgICAgICB0aGlzLmdyaWREYXRhLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgc29ydGVkSXRlbXMgPSBpdGVtLmV2ZW50Q29udHJvbEl0ZW0uc29ydCgoYTogRXZlbnRDb250cm9sSXRlbSwgYjogRXZlbnRDb250cm9sSXRlbSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGEuc2VxdWVuY2UgLSBiLnNlcXVlbmNlO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgY29uc3Qgc3RlcHMgPSBzb3J0ZWRJdGVtcy5tYXAoKGRldGFpbDogRXZlbnRDb250cm9sSXRlbSwgaW5kZXg6IG51bWJlcikgPT4gdGhpcy5jcmVhdGVTdGVwKGRldGFpbCwgaXRlbSwgaW5kZXgpKTtcclxuICAgICAgICAgICAgY29uc3QgYWN0aXZlSW5kZXggPSB0aGlzLmNhbGN1bGF0ZUFjdGl2ZUluZGV4KHNvcnRlZEl0ZW1zKTtcclxuICAgICAgICAgICAgaXRlbS5ncm91cHMgPSBbeyBzdGVwcywgYWN0aXZlSW5kZXggfV07XHJcbiAgICAgICAgICAgIGl0ZW0uYWN0aXZlSW5kZXggPSBhY3RpdmVJbmRleDtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmdyaWREYXRhUmVzb2x2ZWQgPSB0aGlzLmdyaWREYXRhO1xyXG4gICAgICAgIHRoaXMuZ3JpZExvYWRpbmcgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNhbGN1bGF0ZUFjdGl2ZUluZGV4KGRldGFpbHM6IEV2ZW50Q29udHJvbEl0ZW1bXSk6IG51bWJlciB7XHJcbiAgICAgICAgY29uc3QgbGFzdEFjdGl2ZSA9IGRldGFpbHMucmVkdWNlKFxyXG4gICAgICAgICAgICAobGFzdEluZGV4LCBkZXRhaWwsIGN1cnJlbnRJbmRleCkgPT4gKGRldGFpbC5zdGF0dXMgIT09IEV2ZW50U3RhdHVzLlBFTkRJTkcgPyBjdXJyZW50SW5kZXggOiBsYXN0SW5kZXgpLFxyXG4gICAgICAgICAgICAtMVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGxhc3RBY3RpdmUgIT09IC0xICYmIGRldGFpbHNbbGFzdEFjdGl2ZV0uc3RhdHVzID09PSBFdmVudFN0YXR1cy5TVUNDRVNTKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBsYXN0QWN0aXZlICsgMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGxhc3RBY3RpdmU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjcmVhdGVTdGVwKGRldGFpbDogRXZlbnRDb250cm9sSXRlbSwgaXRlbTogRXZlbnRDb250cm9sLCBkZXRhaWxJbmRleDogbnVtYmVyKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0RldGFpbDonLCBkZXRhaWwpO1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGl0ZW06IGRldGFpbCxcclxuICAgICAgICAgICAgY29udHJvbENvZGU6IGl0ZW0uY29udHJvbENvZGUsXHJcbiAgICAgICAgICAgIGV2ZW50VHlwZTogaXRlbS5ldmVudE9yaWdpbixcclxuICAgICAgICAgICAgbGFiZWw6IHRoaXMuZ2V0RXZlbnRMYWJlbChkZXRhaWwpLFxyXG4gICAgICAgICAgICBzdWJMYWJlbDogdGhpcy5mb3JtYXRTdWJ0aXRsZShkZXRhaWwpLFxyXG4gICAgICAgICAgICBkaXNhYmxlZDogZGV0YWlsLnN0YXR1cyA9PT0gRXZlbnRTdGF0dXMuUEVORElORyAmJiBkZXRhaWxJbmRleCAhPT0gdGhpcy5jYWxjdWxhdGVBY3RpdmVJbmRleChpdGVtLmV2ZW50Q29udHJvbEl0ZW0pLFxyXG4gICAgICAgICAgICB0b29sdGlwOiB0aGlzLmdldEV2ZW50TGFiZWwoZGV0YWlsKSxcclxuICAgICAgICAgICAgc3RhdGU6IHRoaXMuZGV0ZXJtaW5lU3RlcFN0YXRlKGRldGFpbCksXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGRldGVybWluZVN0ZXBTdGF0ZShkZXRhaWw6IHsgc3RhdHVzOiBFdmVudFN0YXR1cyB9KTogU3RlcFN0YXRlIHtcclxuICAgICAgICBpZiAoZGV0YWlsLnN0YXR1cyA9PT0gRXZlbnRTdGF0dXMuU1VDQ0VTUykge1xyXG4gICAgICAgICAgICByZXR1cm4gU3RlcFN0YXRlLlN1Y2Nlc3M7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChkZXRhaWwuc3RhdHVzID09PSBFdmVudFN0YXR1cy5GQUlMRUQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFN0ZXBTdGF0ZS5XYXJuaW5nO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gU3RlcFN0YXRlLkRlZmF1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRFdmVudExhYmVsKGRldGFpbDogYW55KTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBldmVudExhYmVsID0gdGhpcy5ldmVudEl0ZW0uZmluZCgoZSkgPT4gZS52YWx1ZSA9PT0gZGV0YWlsLmV2ZW50T3BlcmF0aW9uKT8ubGFiZWw7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0dldHRpbmcgbGFiZWwgZm9yIGV2ZW50IG9wZXJhdGlvbjonLCBldmVudExhYmVsKTtcclxuICAgICAgICBpZiAoZXZlbnRMYWJlbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudChldmVudExhYmVsKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgbG9jYWxMYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5cIiArIGRldGFpbC5ldmVudE9wZXJhdGlvbik7XHJcbiAgICAgICAgaWYgKGxvY2FsTGFiZWwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGxvY2FsTGFiZWw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBkZXRhaWwuZXZlbnRPcGVyYXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBmb3JtYXRTdWJ0aXRsZShkZXRhaWw6IEV2ZW50Q29udHJvbEl0ZW0pOiBzdHJpbmcgfCBudWxsIHtcclxuICAgICAgICBjb25zdCB7IGV2ZW50T3BlcmF0aW9uLCBzdWJUaXRsZSB9ID0gZGV0YWlsO1xyXG5cclxuICAgICAgICBjb25zdCBpbnZvaWNlT3BlcmF0aW9ucyA9IFtcclxuICAgICAgICAgICAgRXZlbnRPcGVyYXRpb24uQ1JFQVRFX0lOVk9JQ0VfRklYQVRJT04sXHJcbiAgICAgICAgICAgIEV2ZW50T3BlcmF0aW9uLkNBTkNFTF9JTlZPSUNFX0ZJWEFUSU9OLFxyXG4gICAgICAgICAgICBFdmVudE9wZXJhdGlvbi5PUklHSU5BVElPTl9DUkVBVEVfSU5WT0lDRVxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIGNvbnN0IG51bWJlclByZWZpeE9wZXJhdGlvbnMgPSBbXHJcbiAgICAgICAgICAgIEV2ZW50T3BlcmF0aW9uLkNMT1NFX0lOVk9JQ0VfRklYQVRJT04sXHJcbiAgICAgICAgICAgIEV2ZW50T3BlcmF0aW9uLlJFT1BFTl9JTlZPSUNFX0ZJWEFUSU9OXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgY29uc3QgcHJlc2NyaXB0aW9uT3BlcmF0aW9ucyA9IFtcclxuICAgICAgICAgICAgRXZlbnRPcGVyYXRpb24uUFJFU0NSSVBUSU9OX0RBVEFfTE9BRF9QUk9EVUNUX1RZUEUsXHJcbiAgICAgICAgICAgIEV2ZW50T3BlcmF0aW9uLlBSRVNDUklQVElPTl9EQVRBX0xPQURfQUNUSVZFX1BSSU5DSVBMRSxcclxuICAgICAgICAgICAgRXZlbnRPcGVyYXRpb24uUFJFU0NSSVBUSU9OX0RBVEFfTE9BRF9GT1JNVUxBVElPTixcclxuICAgICAgICAgICAgRXZlbnRPcGVyYXRpb24uUFJFU0NSSVBUSU9OX0RBVEFfTE9BRF9CVUxMRVRJTixcclxuICAgICAgICAgICAgRXZlbnRPcGVyYXRpb24uUFJFU0NSSVBUSU9OX0RBVEFfTE9BRF9BUFBMSUNBVElPTl9VTklULFxyXG4gICAgICAgICAgICBFdmVudE9wZXJhdGlvbi5QUkVTQ1JJUFRJT05fREFUQV9MT0FEX1NQRUNJRSxcclxuICAgICAgICAgICAgRXZlbnRPcGVyYXRpb24uUFJFU0NSSVBUSU9OX0RBVEFfTE9BRF9BUFBMSUNBVElPTl9UWVBFLFxyXG4gICAgICAgICAgICBFdmVudE9wZXJhdGlvbi5QUkVTQ1JJUFRJT05fREFUQV9MT0FEX1BST0JMRU1TLFxyXG4gICAgICAgICAgICBFdmVudE9wZXJhdGlvbi5QUkVTQ1JJUFRJT05fREFUQV9MT0FEX0FQUExJQ0FUSU9OXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgbGV0IGZvcm1hdHRlZFN1YnRpdGxlID0gc3ViVGl0bGU7XHJcbiAgICAgICAgaWYgKGludm9pY2VPcGVyYXRpb25zLmluY2x1ZGVzKGV2ZW50T3BlcmF0aW9uKSkge1xyXG4gICAgICAgICAgICBjb25zdCBsYWJlbCA9IHRoaXMuaW52b2ljZVR5cGVUcmFuc2xhdGUuZmluZCgoZSkgPT4gZS52YWx1ZSA9PT0gc3ViVGl0bGUpPy5sYWJlbDtcclxuICAgICAgICAgICAgZm9ybWF0dGVkU3VidGl0bGUgPSBsYWJlbCA/IHRoaXMudHJhbnNsYXRlLmluc3RhbnQobGFiZWwpIDogc3ViVGl0bGU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAobnVtYmVyUHJlZml4T3BlcmF0aW9ucy5pbmNsdWRlcyhldmVudE9wZXJhdGlvbikpIHtcclxuICAgICAgICAgICAgZm9ybWF0dGVkU3VidGl0bGUgPSBzdWJUaXRsZSA/IGBuwrAgJHtzdWJUaXRsZX1gIDogc3ViVGl0bGU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocHJlc2NyaXB0aW9uT3BlcmF0aW9ucy5pbmNsdWRlcyhldmVudE9wZXJhdGlvbikpIHtcclxuICAgICAgICAgICAgZm9ybWF0dGVkU3VidGl0bGUgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5uZXdfcHJlc2NyaXB0aW9uX3BhZ2UnLCB7IGNvdW50OiBzdWJUaXRsZSB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBmb3JtYXR0ZWRTdWJ0aXRsZTtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIHB1YmxpYyBvbkdyaWRDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgICAgIGNvbnN0IHNpemUgPSBldmVudD8ucm93cztcclxuICAgICAgICBjb25zdCBwYWdlID0gZXZlbnQ/LmZpcnN0IC8gc2l6ZTtcclxuICAgICAgICBjb25zdCBzb3J0ID0gZXZlbnQubXVsdGlTb3J0TWV0YTtcclxuICAgICAgICB0aGlzLmdyaWRMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICBpZiAoc2l6ZSAhPT0gQUdST19OVU1CRVJTLlRFTiB8fCBwYWdlICE9PSBBR1JPX05VTUJFUlMuWkVSTyB8fCAoc29ydCAmJiBzb3J0Lmxlbmd0aCA+IEFHUk9fTlVNQkVSUy5aRVJPKSkge1xyXG4gICAgICAgICAgICB0aGlzLnBhZ2luYXRvclN0b3JhZ2VTZXJ2aWNlLnN0b3JlUGFnaW5hdG9yKFwiRXZlbnRDb250cm9sQm9hcmRQYWdpbmF0b3JcIiwgeyBwYWdlLCBzaXplLCBzb3J0IH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlR3JpZCh7IHBhZ2UsIHNpemUsIHNvcnQgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFBhZ2VTaXplKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNpemU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFJvd0luZGV4KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnBhZ2UgKiB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNpemU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFNvcnRGaWVsZCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuY3VycmVudExpc3RQYXJhbXMuc29ydCB8fCB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNvcnQubGVuZ3RoIDw9IEFHUk9fTlVNQkVSUy5aRVJPKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdyaWRDb2x1bW5zW0FHUk9fTlVNQkVSUy5aRVJPXS5maWVsZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudExpc3RQYXJhbXMuc29ydFtBR1JPX05VTUJFUlMuWkVST10uZmllbGQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFNvcnRPcmRlcigpIHtcclxuICAgICAgICBpZiAoIXRoaXMuY3VycmVudExpc3RQYXJhbXMuc29ydCB8fCB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNvcnQubGVuZ3RoIDw9IEFHUk9fTlVNQkVSUy5aRVJPKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBBR1JPX05VTUJFUlMuT05FO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudExpc3RQYXJhbXMuc29ydFtBR1JPX05VTUJFUlMuWkVST10ub3JkZXI7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldEVycm9yTWVzc2FnZXMoKSB7XHJcbiAgICAgICAgY29uc3QgdHJhbnNsYXRlZEVycm9yTWVzc2FnZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBMb29rdXBFcnJvck1lc3NhZ2VzKSB7XHJcbiAgICAgICAgICAgIGlmIChMb29rdXBFcnJvck1lc3NhZ2VzLmhhc093blByb3BlcnR5KGtleSkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmdldChMb29rdXBFcnJvck1lc3NhZ2VzW2tleV0pLnN1YnNjcmliZSgocmVzOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGVkRXJyb3JNZXNzYWdlc1trZXldID0gcmVzO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRyYW5zbGF0ZWRFcnJvck1lc3NhZ2VzO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFByb2R1Y2VySW52b2ljZUlkRnJvbVBhcmFtcyhwYXJhbTogYW55KTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICAgICAgaWYgKCFwYXJhbSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICAgIHBhcmFtLnByb2R1Y2VySW52b2ljZUlkcz8uWzBdLFxyXG4gICAgICAgICAgICBwYXJhbS5pbnZvaWNlPy5nZW5lcmFsRGF0YT8udHJhbnNhY3Rpb25hbElkLFxyXG4gICAgICAgICAgICBwYXJhbS5wcm9kdWNlckludm9pY2VJZCxcclxuICAgICAgICAgICAgcGFyYW0uZXh0ZXJuYWxJZCxcclxuICAgICAgICAgICAgcGFyYW0uZXh0ZXJuYWxJbnZvaWNlSWRzPy5bMF0sXHJcbiAgICAgICAgXS5maW5kKChpZCkgPT4gaWQpID8/IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UHJvZHVjZXJCYWxhbmNlRW50cnlDb250cm9sSWRGcm9tUGFyYW1zKHBhcmFtOiBhbnkpIHtcclxuICAgICAgICBjb25zdCB7IHByb2R1Y2VyQmFsYW5jZUVudHJ5Q29udHJvbElkIH0gPSBwYXJhbTtcclxuICAgICAgICByZXR1cm4gcHJvZHVjZXJCYWxhbmNlRW50cnlDb250cm9sSWQgPyBwcm9kdWNlckJhbGFuY2VFbnRyeUNvbnRyb2xJZCA6IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0ZXBTZWxlY3RlZChldmVudDogYW55KSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFN0ZXAgPSBldmVudC5zdGVwO1xyXG4gICAgICAgIHRoaXMuYXBwbHlTaWRlYmFyVGl0bGUoXCJcIik7XHJcblxyXG4gICAgICAgIHN3aXRjaCAodGhpcy5zZWxlY3RlZFN0ZXAuZXZlbnRUeXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgRXZlbnRPcmlnaW4uQkFMQU5DRV9FTlRSWV9DT05UUk9MOlxyXG4gICAgICAgICAgICBjYXNlIEV2ZW50T3JpZ2luLlRJQ0tFVDpcclxuICAgICAgICAgICAgY2FzZSBFdmVudE9yaWdpbi5JTlZPSUNFOlxyXG4gICAgICAgICAgICBjYXNlIEV2ZW50T3JpZ2luLkNSRUFURV9JTlZPSUNFOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zaWRlYmFyTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyYW0gPSBKU09OLnBhcnNlKHRoaXMuc2VsZWN0ZWRTdGVwLml0ZW0uaW5wdXQpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByb2R1Y2VySW52b2ljZUlkID0gdGhpcy5nZXRQcm9kdWNlckludm9pY2VJZEZyb21QYXJhbXMocGFyYW0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBmaWx0ZXJRdWVyeSA9IFwiXCI7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghcHJvZHVjZXJJbnZvaWNlSWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJvZHVjZXJCYWxhbmNlRW50cnlDb250cm9sSWQgPSB0aGlzLmdldFByb2R1Y2VyQmFsYW5jZUVudHJ5Q29udHJvbElkRnJvbVBhcmFtcyhwYXJhbSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb2R1Y2VyQmFsYW5jZUVudHJ5Q29udHJvbElkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNpZGViYXJMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclF1ZXJ5ID0gYHByb2R1Y2VyQmFsYW5jZUVudHJ5Q29udHJvbC5pZCBlcSAnJHtwcm9kdWNlckJhbGFuY2VFbnRyeUNvbnRyb2xJZH0nYDtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJRdWVyeSA9IGBpZCBlcSAnJHtwcm9kdWNlckludm9pY2VJZH0nYDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjZXJJbnZvaWNlU2VydmljZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAubGlzdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5RmllbGRzOiBbXCIqXCIsIFwicHJvZHVjZXJCYWxhbmNlRW50cnlDb250cm9sLipcIiwgXCJwcm9kdWNlckJhbGFuY2VFbnRyeUNvbnRyb2wucHJvZHVjZXIuKlwiXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclF1ZXJ5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZTogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9kdWNlckludm9pY2UgPSByZXN1bHQ/LmNvbnRlbnRzWzBdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjZXJJbnZvaWNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2lkZWJhckxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGx5U2lkZWJhclRpdGxlKHRoaXMuZ2V0UHJvZHVjZXJJbnZvaWNlTnVtYmVyQW5kU2VyaWUoKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2lkZWJhckxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIEV2ZW50T3JpZ2luLkZJWEFUSU9OOlxyXG4gICAgICAgICAgICBjYXNlIEV2ZW50T3JpZ2luLkNBTkNFTF9GSVhBVElPTjpcclxuICAgICAgICAgICAgY2FzZSBFdmVudE9yaWdpbi5DSEFOR0VfUkVRVUVTVDpcclxuICAgICAgICAgICAgY2FzZSBFdmVudE9yaWdpbi5UUkFOU0ZFUjpcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zaG93UmVwcm9jZXNzQnV0dG9uID0gZXZlbnQuc3RlcC5zdGF0ZSA9PT0gU3RlcFN0YXRlLldhcm5pbmc7XHJcblxyXG4gICAgICAgIHRoaXMuc2hvd1NpZGViYXIgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYXBwbHlTaWRlYmFyVGl0bGUodGl0bGU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuc2lkZWJhclRpdGxlID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmV2ZW50X3NpZGViYXJfdGl0bGVcIiwgeyBldmVudE51bWJlcjogdGl0bGUgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRQcm9kdWNlckludm9pY2VOdW1iZXJBbmRTZXJpZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh0aGlzLnByb2R1Y2VySW52b2ljZT8ubnVtYmVyICYmIHRoaXMucHJvZHVjZXJJbnZvaWNlPy5zZXJpZXMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGAke3RoaXMucHJvZHVjZXJJbnZvaWNlLm51bWJlcn0gLSAke3RoaXMucHJvZHVjZXJJbnZvaWNlLnNlcmllc31gO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVwcm9jZXNzRXZlbnQoKSB7XHJcbiAgICAgICAgY29uc3QgcmVwcm9jZXNzRXZlbnRPYmo6IFJlcHJvY2Vzc0ZhaWxlZEV2ZW50ID0ge1xyXG4gICAgICAgICAgICBldmVudENvbnRyb2xJdGVtSWQ6IHRoaXMuc2VsZWN0ZWRTdGVwLml0ZW0uaWQsXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmV2ZW50Q29udHJvbEl0ZW1TZXJ2aWNlXHJcbiAgICAgICAgICAgIC5yZXByb2Nlc3NGYWlsZWRFdmVudChyZXByb2Nlc3NFdmVudE9iailcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRNZXNzYWdlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcImluZm9cIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5yZXByb2Nlc3NpbmdfZXZlbnRfbWVzc2FnZV90aXRsZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLnJlcHJvY2Vzc2luZ19ldmVudF9tZXNzYWdlX2Rlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZE1lc3NhZ2UoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZXJyb3JcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5lcnJvcl9yZXByb2Nlc3NpbmdfZXZlbnRfbWVzc2FnZV90aXRsZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmVycm9yX3JlcHJvY2Vzc2luZ19ldmVudF9tZXNzYWdlX2Rlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYWRkTWVzc2FnZShzZXZlcml0eTogc3RyaW5nLCBzdW1tYXJ5OiBzdHJpbmcsIGRldGFpbDogc3RyaW5nLCBsaWZlID0gQUdST19OVU1CRVJTLkZJVkVfU0VDT05EUykge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcclxuICAgICAgICAgICAgc2V2ZXJpdHksXHJcbiAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoc3VtbWFyeSksXHJcbiAgICAgICAgICAgIGRldGFpbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChkZXRhaWwpLFxyXG4gICAgICAgICAgICBsaWZlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvcGVuTW9kYWwoKSB7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5TW9kYWwgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2hvd1NpZGViYXIgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgb3BlbkNhbmNlbE1vZGFsKCkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuY2FuY2VsRXZlbnREaWFsb2dDb25maWcuYmVmb3JlT3Blbj8uKCk7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW4oQ2FuY2VsRXZlbnREaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgICAgICAgaGVhZGVyOiB0aGlzLmNhbmNlbEV2ZW50RGlhbG9nQ29uZmlnPy5oZWFkZXIsXHJcbiAgICAgICAgICAgIGNvbnRlbnRTdHlsZTogeyBoZWlnaHQ6IFwiMTAwJVwiIH0sXHJcbiAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICBjbG9zZU9uRXNjYXBlOiBmYWxzZSxcclxuICAgICAgICAgICAgZGF0YTogeyBjYW5jZWxFdmVudERpYWxvZ0NvbmZpZzogdGhpcy5jYW5jZWxFdmVudERpYWxvZ0NvbmZpZyB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjb25maXJtTW9kYWwoKSB7XHJcbiAgICAgICAgdGhpcy5yZXByb2Nlc3NFdmVudCgpO1xyXG4gICAgICAgIHRoaXMuZGlzcGxheU1vZGFsID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNhbmNlbE1vZGFsKCkge1xyXG4gICAgICAgIHRoaXMuZGlzcGxheU1vZGFsID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNsb3NlU2lkZWJhcigpIHtcclxuICAgICAgICB0aGlzLnNob3dTaWRlYmFyID0gZmFsc2U7XHJcbiAgICB9XHJcbn1cclxuIl19