@seniorsistemas/yms-integration 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/bundles/seniorsistemas-yms-integration.umd.js +2922 -1185
  2. package/bundles/seniorsistemas-yms-integration.umd.js.map +1 -1
  3. package/bundles/seniorsistemas-yms-integration.umd.min.js +1 -1
  4. package/bundles/seniorsistemas-yms-integration.umd.min.js.map +1 -1
  5. package/esm2015/index.js +9 -1
  6. package/esm2015/seniorsistemas-yms-integration.js +48 -38
  7. package/esm2015/src/devices/balancas/balancas.service.js +4 -1
  8. package/esm2015/src/devices/balancas/visualiar-balanca/visualizar-balanca.component.js +8 -25
  9. package/esm2015/src/devices/balancas/weightScale.js +1 -1
  10. package/esm2015/src/devices/cancelas/cancelas.service.js +5 -1
  11. package/esm2015/src/devices/cancelas/controlador-cancela/controlador-cancela.component.js +91 -21
  12. package/esm2015/src/devices/cancelas/gate.js +1 -1
  13. package/esm2015/src/devices/dock/dock.module.js +12 -0
  14. package/esm2015/src/devices/dock/dock.service.js +22 -0
  15. package/esm2015/src/erp-senior/components/nota-form/nota-form.component.js +24 -9
  16. package/esm2015/src/erp-senior/core/entities/agenda/agenda.module.js +2 -2
  17. package/esm2015/src/erp-senior/core/entities/cidade/cidade.module.js +2 -2
  18. package/esm2015/src/erp-senior/core/entities/contrato-compra/contrato-compra.module.js +2 -2
  19. package/esm2015/src/erp-senior/core/entities/contrato-compra-item/contrato-compra-item.module.js +2 -2
  20. package/esm2015/src/erp-senior/core/entities/derivacao/derivacao.module.js +2 -2
  21. package/esm2015/src/erp-senior/core/entities/devolucao/devolucao.module.js +2 -2
  22. package/esm2015/src/erp-senior/core/entities/empresa/empresa.module.js +2 -2
  23. package/esm2015/src/erp-senior/core/entities/estado/estado.module.js +2 -2
  24. package/esm2015/src/erp-senior/core/entities/expedicao/expedicao.module.js +2 -2
  25. package/esm2015/src/erp-senior/core/entities/familia-produto/familia-produto.js +5 -7
  26. package/esm2015/src/erp-senior/core/entities/familia-produto/familia-produto.module.js +2 -2
  27. package/esm2015/src/erp-senior/core/entities/filial/filial.module.js +2 -2
  28. package/esm2015/src/erp-senior/core/entities/log-integracao/log-integracao.module.js +2 -2
  29. package/esm2015/src/erp-senior/core/entities/motorista/motorista.js +1 -1
  30. package/esm2015/src/erp-senior/core/entities/ordem-compra/ordem-compra.module.js +7 -2
  31. package/esm2015/src/erp-senior/core/entities/pais/pais.module.js +2 -2
  32. package/esm2015/src/erp-senior/core/entities/pedido-venda/pedido-venda.module.js +2 -2
  33. package/esm2015/src/erp-senior/core/entities/pedido-venda-item/pedido-venda-item.module.js +2 -2
  34. package/esm2015/src/erp-senior/core/entities/pessoa/pessoa.module.js +2 -2
  35. package/esm2015/src/erp-senior/core/entities/pessoa-endereco/pessoa-endereco-dto.js +1 -5
  36. package/esm2015/src/erp-senior/core/entities/pessoa-endereco/pessoa-endereco.js +1 -7
  37. package/esm2015/src/erp-senior/core/entities/pessoa-endereco/pessoa-endereco.module.js +2 -2
  38. package/esm2015/src/erp-senior/core/entities/pessoa-fisica/pessoa-fisica.module.js +2 -2
  39. package/esm2015/src/erp-senior/core/entities/pessoa-juridica/pessoa-juridica.module.js +2 -2
  40. package/esm2015/src/erp-senior/core/entities/processo-avulso/processo-avulso.module.js +7 -2
  41. package/esm2015/src/erp-senior/core/entities/produto/produto.js +1 -9
  42. package/esm2015/src/erp-senior/core/entities/produto/produto.module.js +2 -2
  43. package/esm2015/src/erp-senior/core/entities/recebimento-contrato/recebimento.module.js +7 -2
  44. package/esm2015/src/erp-senior/core/entities/recebimento-ordem-compra/recebimento-ordem-compra.module.js +11 -12
  45. package/esm2015/src/erp-senior/core/entities/royalty/royalty.module.js +2 -2
  46. package/esm2015/src/erp-senior/core/entities/safra/safra.module.js +2 -2
  47. package/esm2015/src/erp-senior/core/entities/transgenia/transgenia.js +1 -1
  48. package/esm2015/src/erp-senior/core/entities/transportadora/transportadora.module.js +2 -2
  49. package/esm2015/src/erp-senior/core/entities/unidade-medida/unidade-medida.module.js +2 -2
  50. package/esm2015/src/erp-senior/core/verifica-nota-fiscal/verificaNotaFiscal.js +9 -1
  51. package/esm2015/src/erp-senior/devolucao/form/devolucao-form.component.js +12 -7
  52. package/esm2015/src/erp-senior/expedicao/form/expedicao-form.component.js +15 -21
  53. package/esm2015/src/erp-senior/processo-avulso/form/processo-avulso-form.component.js +7 -2
  54. package/esm2015/src/erp-senior/recebimento/contrato-form/contrato-form.component.js +20 -4
  55. package/esm2015/src/erp-senior/recebimento/form/recebimento-form.component.js +242 -199
  56. package/esm2015/src/erp-senior/recebimento-ordem-compra/form/recebimento-ordem-compra-form.component.js +29 -20
  57. package/esm2015/src/erp-senior/recebimento-ordem-compra/ordem-compra-form/ordem-compra-form.component.js +13 -4
  58. package/esm2015/src/sam-senior/components/credencial-form/credencial-form.component.js +126 -0
  59. package/esm2015/src/sam-senior/components/scheduling/lobby.service.js +22 -0
  60. package/esm2015/src/sam-senior/components/scheduling/scheduling.component.js +191 -0
  61. package/esm2015/src/sam-senior/components/scheduling/shechuling.service.js +40 -0
  62. package/esm2015/src/sam-senior/components/visited-info/visited-info.component.js +59 -0
  63. package/esm2015/src/sam-senior/components/visited-info/visited-info.service.js +26 -0
  64. package/esm2015/src/sam-senior/components/visitor-edit/visitor-edit-form/visitante-form/visitor-edit-form.component.js +84 -0
  65. package/esm2015/src/sam-senior/components/visitor-edit/visitor-edit-list/visitor-edit-list.component.js +364 -0
  66. package/esm2015/src/sam-senior/components/visitor-list/visitor-list.component.js +64 -0
  67. package/esm2015/src/sam-senior/components/visitor-list/visitor-list.service.js +26 -0
  68. package/esm2015/src/sam-senior/components/visitor-list.module.js +36 -0
  69. package/esm2015/src/sam-senior/core/entity-service.js +102 -0
  70. package/esm2015/src/sam-senior/core/lookup.js +184 -0
  71. package/esm2015/src/sam-senior/core/utils.js +26 -0
  72. package/esm2015/src/sam-senior/entities/credential-card-dto.js +9 -0
  73. package/esm2015/src/sam-senior/entities/lobby-dto.js +3 -0
  74. package/esm2015/src/sam-senior/entities/scheduling-dto.js +3 -0
  75. package/esm2015/src/sam-senior/entities/scheduling-visitors.js +3 -0
  76. package/esm2015/src/sam-senior/entities/scheduling.js +26 -0
  77. package/esm2015/src/sam-senior/entities/visited.js +3 -0
  78. package/esm2015/src/sam-senior/entities/visitor-credentials-dto.js +6 -0
  79. package/esm2015/src/sam-senior/entities/visitor-dto.js +1 -0
  80. package/esm2015/src/sam-senior/entities/visitor-situation.js +10 -0
  81. package/esm2015/src/sam-senior/form/form-sam.component.js +61 -0
  82. package/esm2015/src/sam-senior/models/card-credential.js +7 -0
  83. package/esm2015/src/sam-senior/models/visit-situation.js +8 -0
  84. package/esm2015/src/sam-senior/models/visitor-situation.js +10 -0
  85. package/esm2015/src/sam-senior/models/visitor.js +23 -0
  86. package/esm2015/src/sam-senior/sam-senior.module.js +75 -0
  87. package/esm2015/src/utils/build-form-field.js +28 -0
  88. package/esm5/index.js +9 -1
  89. package/esm5/seniorsistemas-yms-integration.js +48 -38
  90. package/esm5/src/devices/balancas/balancas.service.js +4 -1
  91. package/esm5/src/devices/balancas/visualiar-balanca/visualizar-balanca.component.js +8 -25
  92. package/esm5/src/devices/balancas/weightScale.js +1 -1
  93. package/esm5/src/devices/cancelas/cancelas.service.js +5 -1
  94. package/esm5/src/devices/cancelas/controlador-cancela/controlador-cancela.component.js +94 -21
  95. package/esm5/src/devices/cancelas/gate.js +1 -1
  96. package/esm5/src/devices/dock/dock.module.js +15 -0
  97. package/esm5/src/devices/dock/dock.service.js +25 -0
  98. package/esm5/src/erp-senior/components/nota-form/nota-form.component.js +24 -9
  99. package/esm5/src/erp-senior/core/entities/agenda/agenda.module.js +2 -2
  100. package/esm5/src/erp-senior/core/entities/cidade/cidade.module.js +2 -2
  101. package/esm5/src/erp-senior/core/entities/contrato-compra/contrato-compra.module.js +2 -2
  102. package/esm5/src/erp-senior/core/entities/contrato-compra-item/contrato-compra-item.module.js +2 -2
  103. package/esm5/src/erp-senior/core/entities/derivacao/derivacao.module.js +2 -2
  104. package/esm5/src/erp-senior/core/entities/devolucao/devolucao.module.js +2 -2
  105. package/esm5/src/erp-senior/core/entities/empresa/empresa.module.js +2 -2
  106. package/esm5/src/erp-senior/core/entities/estado/estado.module.js +2 -2
  107. package/esm5/src/erp-senior/core/entities/expedicao/expedicao.module.js +2 -2
  108. package/esm5/src/erp-senior/core/entities/familia-produto/familia-produto.js +5 -7
  109. package/esm5/src/erp-senior/core/entities/familia-produto/familia-produto.module.js +2 -2
  110. package/esm5/src/erp-senior/core/entities/filial/filial.module.js +2 -2
  111. package/esm5/src/erp-senior/core/entities/log-integracao/log-integracao.module.js +2 -2
  112. package/esm5/src/erp-senior/core/entities/motorista/motorista.js +1 -1
  113. package/esm5/src/erp-senior/core/entities/ordem-compra/ordem-compra.module.js +7 -2
  114. package/esm5/src/erp-senior/core/entities/pais/pais.module.js +2 -2
  115. package/esm5/src/erp-senior/core/entities/pedido-venda/pedido-venda.module.js +2 -2
  116. package/esm5/src/erp-senior/core/entities/pedido-venda-item/pedido-venda-item.module.js +2 -2
  117. package/esm5/src/erp-senior/core/entities/pessoa/pessoa.module.js +2 -2
  118. package/esm5/src/erp-senior/core/entities/pessoa-endereco/pessoa-endereco-dto.js +1 -5
  119. package/esm5/src/erp-senior/core/entities/pessoa-endereco/pessoa-endereco.js +1 -7
  120. package/esm5/src/erp-senior/core/entities/pessoa-endereco/pessoa-endereco.module.js +2 -2
  121. package/esm5/src/erp-senior/core/entities/pessoa-fisica/pessoa-fisica.module.js +2 -2
  122. package/esm5/src/erp-senior/core/entities/pessoa-juridica/pessoa-juridica.module.js +2 -2
  123. package/esm5/src/erp-senior/core/entities/processo-avulso/processo-avulso.module.js +7 -2
  124. package/esm5/src/erp-senior/core/entities/produto/produto.js +1 -9
  125. package/esm5/src/erp-senior/core/entities/produto/produto.module.js +2 -2
  126. package/esm5/src/erp-senior/core/entities/recebimento-contrato/recebimento.module.js +7 -2
  127. package/esm5/src/erp-senior/core/entities/recebimento-ordem-compra/recebimento-ordem-compra.module.js +11 -12
  128. package/esm5/src/erp-senior/core/entities/royalty/royalty.module.js +2 -2
  129. package/esm5/src/erp-senior/core/entities/safra/safra.module.js +2 -2
  130. package/esm5/src/erp-senior/core/entities/transgenia/transgenia.js +1 -1
  131. package/esm5/src/erp-senior/core/entities/transportadora/transportadora.module.js +2 -2
  132. package/esm5/src/erp-senior/core/entities/unidade-medida/unidade-medida.module.js +2 -2
  133. package/esm5/src/erp-senior/core/verifica-nota-fiscal/verificaNotaFiscal.js +9 -1
  134. package/esm5/src/erp-senior/devolucao/form/devolucao-form.component.js +12 -7
  135. package/esm5/src/erp-senior/expedicao/form/expedicao-form.component.js +15 -21
  136. package/esm5/src/erp-senior/processo-avulso/form/processo-avulso-form.component.js +7 -2
  137. package/esm5/src/erp-senior/recebimento/contrato-form/contrato-form.component.js +21 -4
  138. package/esm5/src/erp-senior/recebimento/form/recebimento-form.component.js +244 -203
  139. package/esm5/src/erp-senior/recebimento-ordem-compra/form/recebimento-ordem-compra-form.component.js +29 -20
  140. package/esm5/src/erp-senior/recebimento-ordem-compra/ordem-compra-form/ordem-compra-form.component.js +14 -4
  141. package/esm5/src/sam-senior/components/credencial-form/credencial-form.component.js +144 -0
  142. package/esm5/src/sam-senior/components/scheduling/lobby.service.js +25 -0
  143. package/esm5/src/sam-senior/components/scheduling/scheduling.component.js +199 -0
  144. package/esm5/src/sam-senior/components/scheduling/shechuling.service.js +43 -0
  145. package/esm5/src/sam-senior/components/visited-info/visited-info.component.js +56 -0
  146. package/esm5/src/sam-senior/components/visited-info/visited-info.service.js +29 -0
  147. package/esm5/src/sam-senior/components/visitor-edit/visitor-edit-form/visitante-form/visitor-edit-form.component.js +87 -0
  148. package/esm5/src/sam-senior/components/visitor-edit/visitor-edit-list/visitor-edit-list.component.js +384 -0
  149. package/esm5/src/sam-senior/components/visitor-list/visitor-list.component.js +82 -0
  150. package/esm5/src/sam-senior/components/visitor-list/visitor-list.service.js +29 -0
  151. package/esm5/src/sam-senior/components/visitor-list.module.js +37 -0
  152. package/esm5/src/sam-senior/core/entity-service.js +107 -0
  153. package/esm5/src/sam-senior/core/lookup.js +229 -0
  154. package/esm5/src/sam-senior/core/utils.js +28 -0
  155. package/esm5/src/sam-senior/entities/credential-card-dto.js +13 -0
  156. package/esm5/src/sam-senior/entities/lobby-dto.js +7 -0
  157. package/esm5/src/sam-senior/entities/scheduling-dto.js +7 -0
  158. package/esm5/src/sam-senior/entities/scheduling-visitors.js +7 -0
  159. package/esm5/src/sam-senior/entities/scheduling.js +30 -0
  160. package/esm5/src/sam-senior/entities/visited.js +7 -0
  161. package/esm5/src/sam-senior/entities/visitor-credentials-dto.js +8 -0
  162. package/esm5/src/sam-senior/entities/visitor-dto.js +1 -0
  163. package/esm5/src/sam-senior/entities/visitor-situation.js +10 -0
  164. package/esm5/src/sam-senior/form/form-sam.component.js +64 -0
  165. package/esm5/src/sam-senior/models/card-credential.js +7 -0
  166. package/esm5/src/sam-senior/models/visit-situation.js +8 -0
  167. package/esm5/src/sam-senior/models/visitor-situation.js +10 -0
  168. package/esm5/src/sam-senior/models/visitor.js +32 -0
  169. package/esm5/src/sam-senior/sam-senior.module.js +76 -0
  170. package/esm5/src/utils/build-form-field.js +29 -0
  171. package/fesm2015/seniorsistemas-yms-integration.js +2763 -1193
  172. package/fesm2015/seniorsistemas-yms-integration.js.map +1 -1
  173. package/fesm5/seniorsistemas-yms-integration.js +2888 -1169
  174. package/fesm5/seniorsistemas-yms-integration.js.map +1 -1
  175. package/index.d.ts +7 -0
  176. package/package.json +3 -3
  177. package/seniorsistemas-yms-integration.d.ts +47 -37
  178. package/seniorsistemas-yms-integration.metadata.json +1 -1
  179. package/src/devices/balancas/balancas.service.d.ts +1 -0
  180. package/src/devices/balancas/visualiar-balanca/visualizar-balanca.component.d.ts +2 -11
  181. package/src/devices/balancas/weightScale.d.ts +2 -2
  182. package/src/devices/cancelas/cancelas.service.d.ts +1 -0
  183. package/src/devices/cancelas/controlador-cancela/controlador-cancela.component.d.ts +12 -8
  184. package/src/devices/cancelas/gate.d.ts +2 -0
  185. package/src/devices/dock/dock.module.d.ts +2 -0
  186. package/src/devices/dock/dock.service.d.ts +10 -0
  187. package/src/erp-senior/components/nota-form/nota-form.component.d.ts +7 -1
  188. package/src/erp-senior/core/entities/motorista/motorista.d.ts +3 -0
  189. package/src/erp-senior/core/entities/pessoa-endereco/pessoa-endereco-dto.d.ts +2 -0
  190. package/src/erp-senior/core/entities/pessoa-endereco/pessoa-endereco.d.ts +2 -0
  191. package/src/erp-senior/core/entities/transgenia/transgenia.d.ts +2 -0
  192. package/src/erp-senior/core/verifica-nota-fiscal/verificaNotaFiscal.d.ts +2 -0
  193. package/src/erp-senior/devolucao/form/devolucao-form.component.d.ts +2 -0
  194. package/src/erp-senior/processo-avulso/form/processo-avulso-form.component.d.ts +2 -0
  195. package/src/erp-senior/recebimento/contrato-form/contrato-form.component.d.ts +10 -4
  196. package/src/erp-senior/recebimento/form/recebimento-form.component.d.ts +25 -10
  197. package/src/erp-senior/recebimento-ordem-compra/form/recebimento-ordem-compra-form.component.d.ts +4 -2
  198. package/src/erp-senior/recebimento-ordem-compra/ordem-compra-form/ordem-compra-form.component.d.ts +6 -2
  199. package/src/sam-senior/components/credencial-form/credencial-form.component.d.ts +29 -0
  200. package/src/sam-senior/components/scheduling/lobby.service.d.ts +9 -0
  201. package/src/sam-senior/components/scheduling/scheduling.component.d.ts +43 -0
  202. package/src/sam-senior/components/scheduling/shechuling.service.d.ts +14 -0
  203. package/src/sam-senior/components/visited-info/visited-info.component.d.ts +15 -0
  204. package/src/sam-senior/components/visited-info/visited-info.service.d.ts +10 -0
  205. package/src/sam-senior/components/visitor-edit/visitor-edit-form/visitante-form/visitor-edit-form.component.d.ts +22 -0
  206. package/src/sam-senior/components/visitor-edit/visitor-edit-list/visitor-edit-list.component.d.ts +56 -0
  207. package/src/sam-senior/components/visitor-list/visitor-list.component.d.ts +16 -0
  208. package/src/sam-senior/components/visitor-list/visitor-list.service.d.ts +10 -0
  209. package/src/sam-senior/components/visitor-list.module.d.ts +5 -0
  210. package/src/sam-senior/core/entity-service.d.ts +35 -0
  211. package/src/sam-senior/core/lookup.d.ts +38 -0
  212. package/src/sam-senior/core/utils.d.ts +18 -0
  213. package/src/sam-senior/entities/credential-card-dto.d.ts +12 -0
  214. package/src/sam-senior/entities/lobby-dto.d.ts +5 -0
  215. package/src/sam-senior/entities/scheduling-dto.d.ts +11 -0
  216. package/src/sam-senior/entities/scheduling-visitors.d.ts +6 -0
  217. package/src/sam-senior/entities/scheduling.d.ts +12 -0
  218. package/src/sam-senior/entities/visited.d.ts +4 -0
  219. package/src/sam-senior/entities/visitor-credentials-dto.d.ts +6 -0
  220. package/src/sam-senior/entities/visitor-dto.d.ts +10 -0
  221. package/src/sam-senior/entities/visitor-situation.d.ts +8 -0
  222. package/src/sam-senior/form/form-sam.component.d.ts +18 -0
  223. package/src/sam-senior/models/card-credential.d.ts +16 -0
  224. package/src/sam-senior/models/visit-situation.d.ts +6 -0
  225. package/src/sam-senior/models/visitor-situation.d.ts +8 -0
  226. package/src/sam-senior/models/visitor.d.ts +24 -0
  227. package/src/sam-senior/sam-senior.module.d.ts +6 -0
  228. package/src/utils/build-form-field.d.ts +9 -0
@@ -8,20 +8,25 @@ import { Subject } from 'rxjs';
8
8
  import * as _moment from "moment";
9
9
  import { OrdemCompraService } from "../../core/entities/ordem-compra/ordem-compra.service";
10
10
  import { OrdemCompra } from "../../core/entities/ordem-compra/ordem-compra";
11
+ import { ActivatedRoute } from "@angular/router";
12
+ import { takeUntil } from "rxjs/operators";
11
13
  var moment = _moment;
12
14
  var OrdemCompraFormComponent = /** @class */ (function () {
13
- function OrdemCompraFormComponent(dialogRef, dialogConfig, ordemCompraService, translate, fb) {
15
+ function OrdemCompraFormComponent(dialogRef, dialogConfig, ordemCompraService, translate, fb, route) {
14
16
  this.dialogRef = dialogRef;
15
17
  this.dialogConfig = dialogConfig;
16
18
  this.ordemCompraService = ordemCompraService;
17
19
  this.translate = translate;
18
20
  this.fb = fb;
21
+ this.route = route;
19
22
  this.ordemCompraLookupDisplayFields = ["codigo", "empresa.nome"];
20
23
  this.ordemCompraAdvancedDisplayFields = ["id", "codigo", "empresa.nome", "filial.nome", "pessoa.nome"];
21
24
  this.ordemCompraLookupSeparator = " - ";
25
+ this.permissions = {};
22
26
  this.ngUnsubscribe = new Subject();
23
27
  }
24
28
  OrdemCompraFormComponent.prototype.ngOnInit = function () {
29
+ var _this = this;
25
30
  var data = this.dialogConfig.data;
26
31
  this.agenda = data.agenda;
27
32
  this.filial = data.filial;
@@ -33,6 +38,10 @@ var OrdemCompraFormComponent = /** @class */ (function () {
33
38
  this.formGroup = this.getForm();
34
39
  this.ordemCompraSearchFields = this.getOrdemCompraFields();
35
40
  this.ordemCompraSearchGridFields = this.getOrdemCompraGridFields();
41
+ this.route.data.pipe(takeUntil(this.ngUnsubscribe)).subscribe(function (dataChanges) { return _this.onRouteDataChange(dataChanges); });
42
+ };
43
+ OrdemCompraFormComponent.prototype.onRouteDataChange = function (dataChanges) {
44
+ this.permissions = dataChanges.allPermissions.agenda;
36
45
  };
37
46
  OrdemCompraFormComponent.prototype.ngOnDestroy = function () {
38
47
  this.ngUnsubscribe.next();
@@ -183,15 +192,16 @@ var OrdemCompraFormComponent = /** @class */ (function () {
183
192
  };
184
193
  OrdemCompraFormComponent = tslib_1.__decorate([
185
194
  Component({
186
- template: "<form [formGroup]=\"formGroup\">\n <div class=\"ui-g ui-fluid\">\n <div class=\"ui-g-12 ui-md-6\">\n <label for=\"ordemCompra\">Ordem Compra</label>\n <s-lookup dataKey=\"id\" name=\"ordemCompra\"\n formControlName=\"ordemCompra\" [searchFields]=\"ordemCompraSearchFields\"\n [searchGridFields]=\"ordemCompraSearchGridFields\"\n [searchGridData]=\"ordemCompraSearchGridData\" [multiple]=\"false\"\n [lookupSuggestions]=\"ordemCompraLookupSuggestions\"\n (onLookupRequest)=\"onOrdemCompraLookupRequest($event)\"\n (onSearchRequest)=\"onOrdemCompraSearchRequest($event)\"\n lookupDisplayField=\"label\" [searchTotalRecords]=\"ordemCompraSearchTotalRecords\"\n [searchTitle]=\"'yms.erp.recebimento_ordem_compra_search_title' | translate\"\n [searchEmptyTitle]=\"'yms.erp.nothing_found' | translate\"\n [filterLabel]=\"'yms.erp.filter' | translate\" [clearLabel]=\"'yms.erp.clear' | translate\"\n [cancelLabel]=\"'yms.erp.cancel' | translate\" [selectLabel]=\"'yms.erp.select' | translate\"\n [searchTotalRecordsLabel]=\"'yms.erp.total_records' | translate: {value: ordemCompraSearchTotalRecords}\">\n </s-lookup>\n </div>\n </div>\n \n <div style=\"margin-top: 10px;\">\n <div class=\"separator\"></div>\n <s-button style=\"float: right;\" [label]=\"'save' | translate\" priority=\"primary\" (onClick)=\"save()\"></s-button>\n <s-button style=\"float: right;\" [label]=\"'cancel' | translate\" priority=\"link\" (onClick)=\"close()\"></s-button>\n </div>\n</form>"
195
+ template: "<form [formGroup]=\"formGroup\">\n <div class=\"ui-g ui-fluid\">\n <div class=\"ui-g-12 ui-md-6\">\n <label for=\"ordemCompra\">Ordem Compra</label>\n <s-lookup dataKey=\"id\" name=\"ordemCompra\"\n formControlName=\"ordemCompra\" [searchFields]=\"ordemCompraSearchFields\"\n [searchGridFields]=\"ordemCompraSearchGridFields\"\n [searchGridData]=\"ordemCompraSearchGridData\" [multiple]=\"false\"\n [lookupSuggestions]=\"ordemCompraLookupSuggestions\"\n (onLookupRequest)=\"onOrdemCompraLookupRequest($event)\"\n (onSearchRequest)=\"onOrdemCompraSearchRequest($event)\"\n lookupDisplayField=\"label\" [searchTotalRecords]=\"ordemCompraSearchTotalRecords\"\n [searchTitle]=\"'yms.erp.recebimento_ordem_compra_search_title' | translate\"\n [searchEmptyTitle]=\"'yms.erp.nothing_found' | translate\"\n [filterLabel]=\"'yms.erp.filter' | translate\" [clearLabel]=\"'yms.erp.clear' | translate\"\n [cancelLabel]=\"'yms.erp.cancel' | translate\" [selectLabel]=\"'yms.erp.select' | translate\"\n [searchTotalRecordsLabel]=\"'yms.erp.total_records' | translate: {value: ordemCompraSearchTotalRecords}\">\n </s-lookup>\n </div>\n </div>\n \n <div style=\"margin-top: 10px;\">\n <div class=\"separator\"></div>\n <s-button style=\"float: right;\" [label]=\"'save' | translate\" priority=\"primary\" (onClick)=\"save()\"\n [disabled]=\"!permissions.editar\"></s-button>\n <s-button style=\"float: right;\" [label]=\"'cancel' | translate\" priority=\"link\" (onClick)=\"close()\"></s-button>\n </div>\n</form>"
187
196
  }),
188
197
  tslib_1.__metadata("design:paramtypes", [DynamicDialogRef,
189
198
  DynamicDialogConfig,
190
199
  OrdemCompraService,
191
200
  TranslateService,
192
- FormBuilder])
201
+ FormBuilder,
202
+ ActivatedRoute])
193
203
  ], OrdemCompraFormComponent);
194
204
  return OrdemCompraFormComponent;
195
205
  }());
196
206
  export { OrdemCompraFormComponent };
197
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZW0tY29tcHJhLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3ltcy1pbnRlZ3JhdGlvbi8iLCJzb3VyY2VzIjpbInNyYy9lcnAtc2VuaW9yL3JlY2ViaW1lbnRvLW9yZGVtLWNvbXByYS9vcmRlbS1jb21wcmEtZm9ybS9vcmRlbS1jb21wcmEtZm9ybS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQztBQUNsQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUkzRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDNUUsSUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDO0FBS3ZCO0lBa0JJLGtDQUNZLFNBQTJCLEVBQzNCLFlBQWlDLEVBQ2pDLGtCQUFzQyxFQUN0QyxTQUEyQixFQUMzQixFQUFlO1FBSmYsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ2pDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsT0FB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QW5OUSx3QkFBd0I7UUFIcEMsU0FBUyxDQUFDO1lBQ1AsdXNEQUFpRDtTQUNwRCxDQUFDO2lEQW9CeUIsZ0JBQWdCO1lBQ2IsbUJBQW1CO1lBQ2Isa0JBQWtCO1lBQzNCLGdCQUFnQjtZQUN2QixXQUFXO09BdkJsQix3QkFBd0IsQ0FvTnBDO0lBQUQsK0JBQUM7Q0FBQSxBQXBORCxJQW9OQztTQXBOWSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIsIEZvcm1BcnJheSwgVmFsaWRhdG9ycywgRm9ybUNvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IER5bmFtaWNEaWFsb2dSZWYsIER5bmFtaWNEaWFsb2dDb25maWcgfSBmcm9tIFwicHJpbWVuZy9hcGlcIjtcbmltcG9ydCB7IEZvcm1GaWVsZCwgRmllbGRUeXBlIH0gZnJvbSBcIkBzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHNcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0ICogYXMgX21vbWVudCBmcm9tIFwibW9tZW50XCI7XG5pbXBvcnQgeyBPcmRlbUNvbXByYVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9lbnRpdGllcy9vcmRlbS1jb21wcmEvb3JkZW0tY29tcHJhLnNlcnZpY2VcIjtcbmltcG9ydCB7IFBlc3NvYSB9IGZyb20gJy4vLi4vLi4vY29yZS9lbnRpdGllcy9wZXNzb2EvcGVzc29hJztcbmltcG9ydCB7IEZpbGlhbCB9IGZyb20gJy4vLi4vLi4vY29yZS9lbnRpdGllcy9maWxpYWwvZmlsaWFsJztcbmltcG9ydCB7IEFnZW5kYSB9IGZyb20gXCIuLi8uLi9jb3JlL2VudGl0aWVzL2FnZW5kYS9hZ2VuZGFcIjtcbmltcG9ydCB7IE9yZGVtQ29tcHJhIH0gZnJvbSBcIi4uLy4uL2NvcmUvZW50aXRpZXMvb3JkZW0tY29tcHJhL29yZGVtLWNvbXByYVwiO1xuY29uc3QgbW9tZW50ID0gX21vbWVudDtcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6ICcuL29yZGVtLWNvbXByYS1mb3JtLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBPcmRlbUNvbXByYUZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gICAgcHVibGljIG9yZGVtQ29tcHJhU2VhcmNoRmllbGRzOiBGb3JtRmllbGRbXTtcbiAgICBwdWJsaWMgb3JkZW1Db21wcmFTZWFyY2hHcmlkRmllbGRzOiBGb3JtRmllbGRbXTtcbiAgICBwdWJsaWMgb3JkZW1Db21wcmFTZWFyY2hHcmlkRGF0YTogT3JkZW1Db21wcmFbXTtcbiAgICBwdWJsaWMgb3JkZW1Db21wcmFMb29rdXBEaXNwbGF5RmllbGRzID0gW1wiY29kaWdvXCIsIFwiZW1wcmVzYS5ub21lXCJdO1xuICAgIHB1YmxpYyBvcmRlbUNvbXByYUFkdmFuY2VkRGlzcGxheUZpZWxkcyA9IFtcImlkXCIsIFwiY29kaWdvXCIsIFwiZW1wcmVzYS5ub21lXCIsIFwiZmlsaWFsLm5vbWVcIiwgXCJwZXNzb2Eubm9tZVwiXTtcbiAgICBwdWJsaWMgb3JkZW1Db21wcmFMb29rdXBTZXBhcmF0b3IgPSBcIiAtIFwiO1xuICAgIHB1YmxpYyBvcmRlbUNvbXByYUxvb2t1cFN1Z2dlc3Rpb25zOiBPcmRlbUNvbXByYVtdO1xuICAgIHB1YmxpYyBvcmRlbUNvbXByYVNlYXJjaFRvdGFsUmVjb3JkczogbnVtYmVyO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcml2YXRlIGFnZW5kYTogQWdlbmRhO1xuICAgIHByaXZhdGUgZmlsaWFsOiBGaWxpYWw7XG4gICAgcHJpdmF0ZSBmb3JuZWNlZG9yOiBQZXNzb2E7XG4gICAgcHJpdmF0ZSBvcmRlbnNDb21wcmE6IHN0cmluZ1tdO1xuXG4gICAgY29uc3RydWN0b3IgKFxuICAgICAgICBwcml2YXRlIGRpYWxvZ1JlZjogRHluYW1pY0RpYWxvZ1JlZixcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2dDb25maWc6IER5bmFtaWNEaWFsb2dDb25maWcsXG4gICAgICAgIHByaXZhdGUgb3JkZW1Db21wcmFTZXJ2aWNlOiBPcmRlbUNvbXByYVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlclxuICAgICkgeyB9XG4gICBcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyBkYXRhIH0gPSB0aGlzLmRpYWxvZ0NvbmZpZztcbiAgICAgICAgdGhpcy5hZ2VuZGEgPSBkYXRhLmFnZW5kYTtcbiAgICAgICAgdGhpcy5maWxpYWwgPSBkYXRhLmZpbGlhbDtcbiAgICAgICAgdGhpcy5mb3JuZWNlZG9yID0gZGF0YS5mb3JuZWNlZG9yO1xuICAgICAgICB0aGlzLm9yZGVuc0NvbXByYSA9IGRhdGEub3JkZW5zLm1hcCgoeyBvcmRlbUNvbXByYTogb3JkZW1Db21wcmEgfTogYW55KSA9PiAhIW9yZGVtQ29tcHJhID8gb3JkZW1Db21wcmEuaWQgOiB1bmRlZmluZWQpLmZpbHRlcigodmFsOiBhbnkpID0+ICEhdmFsKTtcblxuICAgICAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuZ2V0Rm9ybSgpO1xuXG4gICAgICAgIHRoaXMub3JkZW1Db21wcmFTZWFyY2hGaWVsZHMgPSB0aGlzLmdldE9yZGVtQ29tcHJhRmllbGRzKCk7XG4gICAgICAgIHRoaXMub3JkZW1Db21wcmFTZWFyY2hHcmlkRmllbGRzID0gdGhpcy5nZXRPcmRlbUNvbXByYUdyaWRGaWVsZHMoKTtcbiAgICB9XG4gICAgXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbk9yZGVtQ29tcHJhTG9va3VwUmVxdWVzdCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHNvcnQgPSB0aGlzLm9yZGVtQ29tcHJhTG9va3VwRGlzcGxheUZpZWxkcy5tYXAoKGZpZWxkOiBhbnkpID0+ICh7IGZpZWxkLCBvcmRlcjogJ0FzYycgfSkpWzBdO1xuXG4gICAgICAgIGNvbnN0IGZpbHRlcjogYW55ID0ge1xuICAgICAgICAgICAgbnVtZXJvOiArdmFsdWUucmVwbGFjZSgvXFxEL2csIFwiXCIpXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgZmlsaWFsID0gdGhpcy5maWxpYWw7XG4gICAgICAgIGlmIChmaWxpYWwgJiYgZmlsaWFsLmVtcHJlc2EgJiYgZmlsaWFsLmVtcHJlc2EuaWQpIHtcbiAgICAgICAgICAgIGZpbHRlci5lbXByZXNhSWQgPSBmaWxpYWwuZW1wcmVzYS5pZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMub3JkZW1Db21wcmFTZXJ2aWNlXG4gICAgICAgICAgICAubGlzdE9yZGVuc0NvbXByYSh7XG4gICAgICAgICAgICAgICAgLi4uZmlsdGVyLFxuICAgICAgICAgICAgICAgIHBlc3NvYUlkOiAodGhpcy5mb3JuZWNlZG9yIHx8IHtpZDogdW5kZWZpbmVkfSkuaWQsXG4gICAgICAgICAgICAgICAgZmlsaWFsSWQ6IChmaWxpYWwgfHwge2lkOiB1bmRlZmluZWR9KS5pZCxcbiAgICAgICAgICAgICAgICB0aXBvQWdlbmRhbWVudG9JZDogdGhpcy5hZ2VuZGEgJiYgdGhpcy5hZ2VuZGEudGlwb0FnZW5kYW1lbnRvID8gdGhpcy5hZ2VuZGEudGlwb0FnZW5kYW1lbnRvLmlkIDogbnVsbCxcbiAgICAgICAgICAgICAgICBvcmRlbnNDb21wcmFTZWxlY2lvbmFkb3M6IHRoaXMub3JkZW5zQ29tcHJhLFxuICAgICAgICAgICAgICAgIHBhZ2luYToge1xuICAgICAgICAgICAgICAgICAgICBsaW1pdDogMzAsXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldDogMCxcbiAgICAgICAgICAgICAgICAgICAgbGlzdGFPcmRlbmFjYW86IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW1wbzogc29ydC5maWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmRlbmFjYW86IHNvcnQub3JkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChsaXN0OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9yZGVtQ29tcHJhTG9va3VwU3VnZ2VzdGlvbnMgPSBsaXN0LmNvbnRlbnRzLm1hcChPcmRlbUNvbXByYS5mcm9tRHRvKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbk9yZGVtQ29tcHJhU2VhcmNoUmVxdWVzdChldmVudDogYW55KSB7XG4gICAgICAgIGNvbnN0IHsgZmlyc3QsIHJvd3MsIG11bHRpU29ydE1ldGEsIGZpbHRlckRhdGEgfSA9IGV2ZW50O1xuICAgICAgICBjb25zdCBwYWdlID0gZmlyc3QgLyByb3dzO1xuICAgICAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmdldE9yZGVtQ29tcHJhRmllbGRzKClcbiAgICAgICAgICAgIC5maWx0ZXIoKHsgbmFtZSB9KSA9PiBmaWx0ZXJEYXRhW25hbWVdICE9IHVuZGVmaW5lZCAmJiBmaWx0ZXJEYXRhW25hbWVdICE9IFwiXCIpXG4gICAgICAgICAgICAucmVkdWNlKChhLCBiOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi5hLFxuICAgICAgICAgICAgICAgICAgICBbYi5uYW1lXTogZmlsdGVyRGF0YVtiLm5hbWVdXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0sIHt9IGFzIGFueSk7XG5cbiAgICAgICAgY29uc3QgZmlsaWFsID0gdGhpcy5maWxpYWw7XG4gICAgICAgIGlmIChmaWxpYWwgJiYgZmlsaWFsLmVtcHJlc2EgJiYgZmlsaWFsLmVtcHJlc2EuaWQpIHtcbiAgICAgICAgICAgIGZpbHRlci5lbXByZXNhSWQgPSBmaWxpYWwuZW1wcmVzYS5pZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGZpbHRlci5kYXRhRW1pc3NhbyA9IGZpbHRlci5kYXRhRW1pc3NhbyAmJiBtb21lbnQoZmlsdGVyLmRhdGFFbWlzc2FvKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpO1xuICAgICAgICBjb25zdCBzb3J0ID0gKG11bHRpU29ydE1ldGEgfHwgW10pLmxlbmd0aCA/IHsgZmllbGQ6IG11bHRpU29ydE1ldGFbMF0uZmllbGQsIG9yZGVyOiBtdWx0aVNvcnRNZXRhWzBdLm9yZGVyID09PSAxID8gJ0FzYycgOiAnRGVzYycgfSA6IHsgZmllbGQ6ICdudW1lcm8nLCBvcmRlcjogJ0FzYycgfTtcblxuICAgICAgICB0aGlzLm9yZGVtQ29tcHJhU2VydmljZVxuICAgICAgICAgICAgLmxpc3RPcmRlbnNDb21wcmEoe1xuICAgICAgICAgICAgICAgIC4uLmZpbHRlcixcbiAgICAgICAgICAgICAgICBwZXNzb2FJZDogKHRoaXMuZm9ybmVjZWRvciB8fCB7aWQ6IHVuZGVmaW5lZH0pLmlkLFxuICAgICAgICAgICAgICAgIGZpbGlhbElkOiAoZmlsaWFsIHx8IHtpZDogdW5kZWZpbmVkfSkuaWQsXG4gICAgICAgICAgICAgICAgdGlwb0FnZW5kYW1lbnRvSWQ6IHRoaXMuYWdlbmRhICYmIHRoaXMuYWdlbmRhLnRpcG9BZ2VuZGFtZW50byA/IHRoaXMuYWdlbmRhLnRpcG9BZ2VuZGFtZW50by5pZCA6IG51bGwsXG4gICAgICAgICAgICAgICAgb3JkZW5zQ29tcHJhU2VsZWNpb25hZG9zOiB0aGlzLm9yZGVuc0NvbXByYSxcbiAgICAgICAgICAgICAgICBwYWdpbmE6IHtcbiAgICAgICAgICAgICAgICAgICAgbGltaXQ6IHJvd3MsXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldDogcGFnZSxcbiAgICAgICAgICAgICAgICAgICAgbGlzdGFPcmRlbmFjYW86IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW1wbzogc29ydC5maWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmRlbmFjYW86IHNvcnQub3JkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChsaXN0OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9yZGVtQ29tcHJhU2VhcmNoR3JpZERhdGEgPSBsaXN0LmNvbnRlbnRzLm1hcChPcmRlbUNvbXByYS5mcm9tRHRvKTtcbiAgICAgICAgICAgICAgICB0aGlzLm9yZGVtQ29tcHJhU2VhcmNoVG90YWxSZWNvcmRzID0gbGlzdC50b3RhbEVsZW1lbnRzO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFJlY1BhZ2luYShmaXJzdDogbnVtYmVyLCByb3dzOiBudW1iZXIsIHNvcnQ6IGFueSkge1xuICAgICAgICBjb25zdCBwYWdlID0gZmlyc3QgLyByb3dzO1xuICAgICAgICBjb25zdCBvcmRlckJ5ID0gc29ydCAmJiBzb3J0Lmxlbmd0aCBcbiAgICAgICAgICAgID8gc29ydC5tYXAoKHM6IGFueSkgPT4gICh7IGNhbXBvOiBzLmZpZWxkLCBvcmRlbmFjYW86IHMub3JkZXIgPT09IDEgPyAnQXNjJyA6ICdEZXNjJyB9KSkgXG4gICAgICAgICAgICA6IFtdO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBvZmZzZXQ6IHBhZ2UsXG4gICAgICAgICAgICBsaW1pdDogcm93cyxcbiAgICAgICAgICAgIGxpc3RhT3JkZW5hY2FvOiBvcmRlckJ5XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkYXRlQWxsRm9ybUZpZWxkcyhmb3JtR3JvdXA6IEZvcm1Hcm91cCkge1xuICAgICAgICBPYmplY3Qua2V5cyhmb3JtR3JvdXAuY29udHJvbHMpLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5nZXQoZmllbGQpO1xuICAgICAgICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCkge1xuICAgICAgICAgICAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtR3JvdXApe1xuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGVBbGxGb3JtRmllbGRzKGNvbnRyb2wpO1xuICAgICAgICAgICAgfSBcbiAgICAgICAgICAgIGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcbiAgICAgICAgICAgICAgICBjb250cm9sLmNvbnRyb2xzLmZvckVhY2goKGZvcm06IEZvcm1Hcm91cCkgPT4gdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHMoZm9ybSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2F2ZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmZvcm1Hcm91cC52YWxpZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGVBbGxGb3JtRmllbGRzKHRoaXMuZm9ybUdyb3VwKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNsb3NlKHRoaXMuZm9ybUdyb3VwLmdldCgnb3JkZW1Db21wcmEnKS52YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsb3NlKGRhdGE/OiBhbnkpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoZGF0YSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRGb3JtKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICBvcmRlbUNvbXByYTogW3VuZGVmaW5lZCwgVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRPcmRlbUNvbXByYUZpZWxkcygpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIG5ldyBGb3JtRmllbGQoe1xuICAgICAgICAgICAgICAgIG5hbWU6IFwiY29kaWdvXCIsXG4gICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLlN0cmluZyxcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5lcnAub3JkZW1fY29tcHJhX2NvZGlnb1wiKVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBuZXcgRm9ybUZpZWxkKHtcbiAgICAgICAgICAgICAgICBuYW1lOiBcImVtcHJlc2Eubm9tZVwiLFxuICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5TdHJpbmcsXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuZXJwLmVtcHJlc2FcIilcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbmV3IEZvcm1GaWVsZCh7XG4gICAgICAgICAgICAgICAgbmFtZTogXCJmaWxpYWwubm9tZVwiLFxuICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5TdHJpbmcsXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuZXJwLmZpbGlhbFwiKVxuICAgICAgICAgICAgfSksXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRPcmRlbUNvbXByYUdyaWRGaWVsZHMoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBuZXcgRm9ybUZpZWxkKHtcbiAgICAgICAgICAgICAgICBuYW1lOiBcImNvZGlnb1wiLFxuICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5JbnRlZ2VyLFxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmVycC5vcmRlbV9jb21wcmFfY29kaWdvXCIpXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG5ldyBGb3JtRmllbGQoe1xuICAgICAgICAgICAgICAgIG5hbWU6IFwiZW1wcmVzYS5ub21lXCIsXG4gICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLlN0cmluZyxcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5lcnAuZW1wcmVzYVwiKVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBuZXcgRm9ybUZpZWxkKHtcbiAgICAgICAgICAgICAgICBuYW1lOiBcImZpbGlhbC5ub21lXCIsXG4gICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLlN0cmluZyxcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5lcnAuZmlsaWFsXCIpXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG5ldyBGb3JtRmllbGQoe1xuICAgICAgICAgICAgICAgIG5hbWU6IFwicGVzc29hLm5vbWVcIixcbiAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuU3RyaW5nLFxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmVycC5wZXNzb2Ffbm9tZVwiKVxuICAgICAgICAgICAgfSksXG4gICAgICAgIF07XG4gICAgfVxufSJdfQ==
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZW0tY29tcHJhLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3ltcy1pbnRlZ3JhdGlvbi8iLCJzb3VyY2VzIjpbInNyYy9lcnAtc2VuaW9yL3JlY2ViaW1lbnRvLW9yZGVtLWNvbXByYS9vcmRlbS1jb21wcmEtZm9ybS9vcmRlbS1jb21wcmEtZm9ybS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQztBQUNsQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUkzRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxJQUFNLE1BQU0sR0FBRyxPQUFPLENBQUM7QUFLdkI7SUFtQkksa0NBQ1ksU0FBMkIsRUFDM0IsWUFBaUMsRUFDakMsa0JBQXNDLEVBQ3RDLFNBQTJCLEVBQ2xCLEVBQWUsRUFDZixLQUFxQjtRQUw5QixjQUFTLEdBQVQsU0FBUyxDQUFr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QkFDVixJQUFJLEVBQUUsY0FBYztnQkFDcEIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNO2dCQUN0QixLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUM7YUFDbkQsQ0FBQztZQUNGLElBQUksU0FBUyxDQUFDO2dCQUNWLElBQUksRUFBRSxhQUFhO2dCQUNuQixJQUFJLEVBQUUsU0FBUyxDQUFDLE1BQU07Z0JBQ3RCLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQzthQUNsRCxDQUFDO1lBQ0YsSUFBSSxTQUFTLENBQUM7Z0JBQ1YsSUFBSSxFQUFFLGFBQWE7Z0JBQ25CLElBQUksRUFBRSxTQUFTLENBQUMsTUFBTTtnQkFDdEIsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDO2FBQ3ZELENBQUM7U0FDTCxDQUFDO0lBQ04sQ0FBQztJQTFOUSx3QkFBd0I7UUFIcEMsU0FBUyxDQUFDO1lBQ1AsdXZEQUFpRDtTQUNwRCxDQUFDO2lEQXFCeUIsZ0JBQWdCO1lBQ2IsbUJBQW1CO1lBQ2Isa0JBQWtCO1lBQzNCLGdCQUFnQjtZQUNkLFdBQVc7WUFDUixjQUFjO09BekJqQyx3QkFBd0IsQ0EyTnBDO0lBQUQsK0JBQUM7Q0FBQSxBQTNORCxJQTJOQztTQTNOWSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIsIEZvcm1BcnJheSwgVmFsaWRhdG9ycywgRm9ybUNvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IER5bmFtaWNEaWFsb2dSZWYsIER5bmFtaWNEaWFsb2dDb25maWcgfSBmcm9tIFwicHJpbWVuZy9hcGlcIjtcbmltcG9ydCB7IEZvcm1GaWVsZCwgRmllbGRUeXBlIH0gZnJvbSBcIkBzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHNcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0ICogYXMgX21vbWVudCBmcm9tIFwibW9tZW50XCI7XG5pbXBvcnQgeyBPcmRlbUNvbXByYVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9lbnRpdGllcy9vcmRlbS1jb21wcmEvb3JkZW0tY29tcHJhLnNlcnZpY2VcIjtcbmltcG9ydCB7IFBlc3NvYSB9IGZyb20gJy4vLi4vLi4vY29yZS9lbnRpdGllcy9wZXNzb2EvcGVzc29hJztcbmltcG9ydCB7IEZpbGlhbCB9IGZyb20gJy4vLi4vLi4vY29yZS9lbnRpdGllcy9maWxpYWwvZmlsaWFsJztcbmltcG9ydCB7IEFnZW5kYSB9IGZyb20gXCIuLi8uLi9jb3JlL2VudGl0aWVzL2FnZW5kYS9hZ2VuZGFcIjtcbmltcG9ydCB7IE9yZGVtQ29tcHJhIH0gZnJvbSBcIi4uLy4uL2NvcmUvZW50aXRpZXMvb3JkZW0tY29tcHJhL29yZGVtLWNvbXByYVwiO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmNvbnN0IG1vbWVudCA9IF9tb21lbnQ7XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiAnLi9vcmRlbS1jb21wcmEtZm9ybS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgT3JkZW1Db21wcmFGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcblxuICAgIHB1YmxpYyBvcmRlbUNvbXByYVNlYXJjaEZpZWxkczogRm9ybUZpZWxkW107XG4gICAgcHVibGljIG9yZGVtQ29tcHJhU2VhcmNoR3JpZEZpZWxkczogRm9ybUZpZWxkW107XG4gICAgcHVibGljIG9yZGVtQ29tcHJhU2VhcmNoR3JpZERhdGE6IE9yZGVtQ29tcHJhW107XG4gICAgcHVibGljIG9yZGVtQ29tcHJhTG9va3VwRGlzcGxheUZpZWxkcyA9IFtcImNvZGlnb1wiLCBcImVtcHJlc2Eubm9tZVwiXTtcbiAgICBwdWJsaWMgb3JkZW1Db21wcmFBZHZhbmNlZERpc3BsYXlGaWVsZHMgPSBbXCJpZFwiLCBcImNvZGlnb1wiLCBcImVtcHJlc2Eubm9tZVwiLCBcImZpbGlhbC5ub21lXCIsIFwicGVzc29hLm5vbWVcIl07XG4gICAgcHVibGljIG9yZGVtQ29tcHJhTG9va3VwU2VwYXJhdG9yID0gXCIgLSBcIjtcbiAgICBwdWJsaWMgb3JkZW1Db21wcmFMb29rdXBTdWdnZXN0aW9uczogT3JkZW1Db21wcmFbXTtcbiAgICBwdWJsaWMgb3JkZW1Db21wcmFTZWFyY2hUb3RhbFJlY29yZHM6IG51bWJlcjtcbiAgICBwdWJsaWMgcGVybWlzc2lvbnM6IGFueSA9IHt9O1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcml2YXRlIGFnZW5kYTogQWdlbmRhO1xuICAgIHByaXZhdGUgZmlsaWFsOiBGaWxpYWw7XG4gICAgcHJpdmF0ZSBmb3JuZWNlZG9yOiBQZXNzb2E7XG4gICAgcHJpdmF0ZSBvcmRlbnNDb21wcmE6IHN0cmluZ1tdO1xuXG4gICAgY29uc3RydWN0b3IgKFxuICAgICAgICBwcml2YXRlIGRpYWxvZ1JlZjogRHluYW1pY0RpYWxvZ1JlZixcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2dDb25maWc6IER5bmFtaWNEaWFsb2dDb25maWcsXG4gICAgICAgIHByaXZhdGUgb3JkZW1Db21wcmFTZXJ2aWNlOiBPcmRlbUNvbXByYVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGZiOiBGb3JtQnVpbGRlcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgKSB7IH1cbiAgIFxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCB7IGRhdGEgfSA9IHRoaXMuZGlhbG9nQ29uZmlnO1xuICAgICAgICB0aGlzLmFnZW5kYSA9IGRhdGEuYWdlbmRhO1xuICAgICAgICB0aGlzLmZpbGlhbCA9IGRhdGEuZmlsaWFsO1xuICAgICAgICB0aGlzLmZvcm5lY2Vkb3IgPSBkYXRhLmZvcm5lY2Vkb3I7XG4gICAgICAgIHRoaXMub3JkZW5zQ29tcHJhID0gZGF0YS5vcmRlbnMubWFwKCh7IG9yZGVtQ29tcHJhOiBvcmRlbUNvbXByYSB9OiBhbnkpID0+ICEhb3JkZW1Db21wcmEgPyBvcmRlbUNvbXByYS5pZCA6IHVuZGVmaW5lZCkuZmlsdGVyKCh2YWw6IGFueSkgPT4gISF2YWwpO1xuXG4gICAgICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5nZXRGb3JtKCk7XG5cbiAgICAgICAgdGhpcy5vcmRlbUNvbXByYVNlYXJjaEZpZWxkcyA9IHRoaXMuZ2V0T3JkZW1Db21wcmFGaWVsZHMoKTtcbiAgICAgICAgdGhpcy5vcmRlbUNvbXByYVNlYXJjaEdyaWRGaWVsZHMgPSB0aGlzLmdldE9yZGVtQ29tcHJhR3JpZEZpZWxkcygpO1xuICAgICAgICB0aGlzLnJvdXRlLmRhdGEucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKChkYXRhQ2hhbmdlczogYW55KSA9PiB0aGlzLm9uUm91dGVEYXRhQ2hhbmdlKGRhdGFDaGFuZ2VzKSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uUm91dGVEYXRhQ2hhbmdlKGRhdGFDaGFuZ2VzOiBhbnkpIHtcbiAgICAgICAgdGhpcy5wZXJtaXNzaW9ucyA9IGRhdGFDaGFuZ2VzLmFsbFBlcm1pc3Npb25zLmFnZW5kYTtcbiAgICB9XG4gICAgXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbk9yZGVtQ29tcHJhTG9va3VwUmVxdWVzdCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHNvcnQgPSB0aGlzLm9yZGVtQ29tcHJhTG9va3VwRGlzcGxheUZpZWxkcy5tYXAoKGZpZWxkOiBhbnkpID0+ICh7IGZpZWxkLCBvcmRlcjogJ0FzYycgfSkpWzBdO1xuXG4gICAgICAgIGNvbnN0IGZpbHRlcjogYW55ID0ge1xuICAgICAgICAgICAgbnVtZXJvOiArdmFsdWUucmVwbGFjZSgvXFxEL2csIFwiXCIpXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgZmlsaWFsID0gdGhpcy5maWxpYWw7XG4gICAgICAgIGlmIChmaWxpYWwgJiYgZmlsaWFsLmVtcHJlc2EgJiYgZmlsaWFsLmVtcHJlc2EuaWQpIHtcbiAgICAgICAgICAgIGZpbHRlci5lbXByZXNhSWQgPSBmaWxpYWwuZW1wcmVzYS5pZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMub3JkZW1Db21wcmFTZXJ2aWNlXG4gICAgICAgICAgICAubGlzdE9yZGVuc0NvbXByYSh7XG4gICAgICAgICAgICAgICAgLi4uZmlsdGVyLFxuICAgICAgICAgICAgICAgIHBlc3NvYUlkOiAodGhpcy5mb3JuZWNlZG9yIHx8IHtpZDogdW5kZWZpbmVkfSkuaWQsXG4gICAgICAgICAgICAgICAgZmlsaWFsSWQ6IChmaWxpYWwgfHwge2lkOiB1bmRlZmluZWR9KS5pZCxcbiAgICAgICAgICAgICAgICB0aXBvQWdlbmRhbWVudG9JZDogdGhpcy5hZ2VuZGEgJiYgdGhpcy5hZ2VuZGEudGlwb0FnZW5kYW1lbnRvID8gdGhpcy5hZ2VuZGEudGlwb0FnZW5kYW1lbnRvLmlkIDogbnVsbCxcbiAgICAgICAgICAgICAgICBvcmRlbnNDb21wcmFTZWxlY2lvbmFkb3M6IHRoaXMub3JkZW5zQ29tcHJhLFxuICAgICAgICAgICAgICAgIHBhZ2luYToge1xuICAgICAgICAgICAgICAgICAgICBsaW1pdDogMzAsXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldDogMCxcbiAgICAgICAgICAgICAgICAgICAgbGlzdGFPcmRlbmFjYW86IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW1wbzogc29ydC5maWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmRlbmFjYW86IHNvcnQub3JkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChsaXN0OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9yZGVtQ29tcHJhTG9va3VwU3VnZ2VzdGlvbnMgPSBsaXN0LmNvbnRlbnRzLm1hcChPcmRlbUNvbXByYS5mcm9tRHRvKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbk9yZGVtQ29tcHJhU2VhcmNoUmVxdWVzdChldmVudDogYW55KSB7XG4gICAgICAgIGNvbnN0IHsgZmlyc3QsIHJvd3MsIG11bHRpU29ydE1ldGEsIGZpbHRlckRhdGEgfSA9IGV2ZW50O1xuICAgICAgICBjb25zdCBwYWdlID0gZmlyc3QgLyByb3dzO1xuICAgICAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmdldE9yZGVtQ29tcHJhRmllbGRzKClcbiAgICAgICAgICAgIC5maWx0ZXIoKHsgbmFtZSB9KSA9PiBmaWx0ZXJEYXRhW25hbWVdICE9IHVuZGVmaW5lZCAmJiBmaWx0ZXJEYXRhW25hbWVdICE9IFwiXCIpXG4gICAgICAgICAgICAucmVkdWNlKChhLCBiOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi5hLFxuICAgICAgICAgICAgICAgICAgICBbYi5uYW1lXTogZmlsdGVyRGF0YVtiLm5hbWVdXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0sIHt9IGFzIGFueSk7XG5cbiAgICAgICAgY29uc3QgZmlsaWFsID0gdGhpcy5maWxpYWw7XG4gICAgICAgIGlmIChmaWxpYWwgJiYgZmlsaWFsLmVtcHJlc2EgJiYgZmlsaWFsLmVtcHJlc2EuaWQpIHtcbiAgICAgICAgICAgIGZpbHRlci5lbXByZXNhSWQgPSBmaWxpYWwuZW1wcmVzYS5pZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGZpbHRlci5kYXRhRW1pc3NhbyA9IGZpbHRlci5kYXRhRW1pc3NhbyAmJiBtb21lbnQoZmlsdGVyLmRhdGFFbWlzc2FvKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpO1xuICAgICAgICBjb25zdCBzb3J0ID0gKG11bHRpU29ydE1ldGEgfHwgW10pLmxlbmd0aCA/IHsgZmllbGQ6IG11bHRpU29ydE1ldGFbMF0uZmllbGQsIG9yZGVyOiBtdWx0aVNvcnRNZXRhWzBdLm9yZGVyID09PSAxID8gJ0FzYycgOiAnRGVzYycgfSA6IHsgZmllbGQ6ICdudW1lcm8nLCBvcmRlcjogJ0FzYycgfTtcblxuICAgICAgICB0aGlzLm9yZGVtQ29tcHJhU2VydmljZVxuICAgICAgICAgICAgLmxpc3RPcmRlbnNDb21wcmEoe1xuICAgICAgICAgICAgICAgIC4uLmZpbHRlcixcbiAgICAgICAgICAgICAgICBwZXNzb2FJZDogKHRoaXMuZm9ybmVjZWRvciB8fCB7aWQ6IHVuZGVmaW5lZH0pLmlkLFxuICAgICAgICAgICAgICAgIGZpbGlhbElkOiAoZmlsaWFsIHx8IHtpZDogdW5kZWZpbmVkfSkuaWQsXG4gICAgICAgICAgICAgICAgdGlwb0FnZW5kYW1lbnRvSWQ6IHRoaXMuYWdlbmRhICYmIHRoaXMuYWdlbmRhLnRpcG9BZ2VuZGFtZW50byA/IHRoaXMuYWdlbmRhLnRpcG9BZ2VuZGFtZW50by5pZCA6IG51bGwsXG4gICAgICAgICAgICAgICAgb3JkZW5zQ29tcHJhU2VsZWNpb25hZG9zOiB0aGlzLm9yZGVuc0NvbXByYSxcbiAgICAgICAgICAgICAgICBwYWdpbmE6IHtcbiAgICAgICAgICAgICAgICAgICAgbGltaXQ6IHJvd3MsXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldDogcGFnZSxcbiAgICAgICAgICAgICAgICAgICAgbGlzdGFPcmRlbmFjYW86IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW1wbzogc29ydC5maWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmRlbmFjYW86IHNvcnQub3JkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChsaXN0OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9yZGVtQ29tcHJhU2VhcmNoR3JpZERhdGEgPSBsaXN0LmNvbnRlbnRzLm1hcChPcmRlbUNvbXByYS5mcm9tRHRvKTtcbiAgICAgICAgICAgICAgICB0aGlzLm9yZGVtQ29tcHJhU2VhcmNoVG90YWxSZWNvcmRzID0gbGlzdC50b3RhbEVsZW1lbnRzO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFJlY1BhZ2luYShmaXJzdDogbnVtYmVyLCByb3dzOiBudW1iZXIsIHNvcnQ6IGFueSkge1xuICAgICAgICBjb25zdCBwYWdlID0gZmlyc3QgLyByb3dzO1xuICAgICAgICBjb25zdCBvcmRlckJ5ID0gc29ydCAmJiBzb3J0Lmxlbmd0aCBcbiAgICAgICAgICAgID8gc29ydC5tYXAoKHM6IGFueSkgPT4gICh7IGNhbXBvOiBzLmZpZWxkLCBvcmRlbmFjYW86IHMub3JkZXIgPT09IDEgPyAnQXNjJyA6ICdEZXNjJyB9KSkgXG4gICAgICAgICAgICA6IFtdO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBvZmZzZXQ6IHBhZ2UsXG4gICAgICAgICAgICBsaW1pdDogcm93cyxcbiAgICAgICAgICAgIGxpc3RhT3JkZW5hY2FvOiBvcmRlckJ5XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkYXRlQWxsRm9ybUZpZWxkcyhmb3JtR3JvdXA6IEZvcm1Hcm91cCkge1xuICAgICAgICBPYmplY3Qua2V5cyhmb3JtR3JvdXAuY29udHJvbHMpLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5nZXQoZmllbGQpO1xuICAgICAgICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCkge1xuICAgICAgICAgICAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtR3JvdXApe1xuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGVBbGxGb3JtRmllbGRzKGNvbnRyb2wpO1xuICAgICAgICAgICAgfSBcbiAgICAgICAgICAgIGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcbiAgICAgICAgICAgICAgICBjb250cm9sLmNvbnRyb2xzLmZvckVhY2goKGZvcm06IEZvcm1Hcm91cCkgPT4gdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHMoZm9ybSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2F2ZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmZvcm1Hcm91cC52YWxpZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGVBbGxGb3JtRmllbGRzKHRoaXMuZm9ybUdyb3VwKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNsb3NlKHRoaXMuZm9ybUdyb3VwLmdldCgnb3JkZW1Db21wcmEnKS52YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsb3NlKGRhdGE/OiBhbnkpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoZGF0YSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRGb3JtKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICBvcmRlbUNvbXByYTogW3VuZGVmaW5lZCwgVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRPcmRlbUNvbXByYUZpZWxkcygpIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIG5ldyBGb3JtRmllbGQoe1xuICAgICAgICAgICAgICAgIG5hbWU6IFwiY29kaWdvXCIsXG4gICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLlN0cmluZyxcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5lcnAub3JkZW1fY29tcHJhX2NvZGlnb1wiKVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBuZXcgRm9ybUZpZWxkKHtcbiAgICAgICAgICAgICAgICBuYW1lOiBcImVtcHJlc2Eubm9tZVwiLFxuICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5TdHJpbmcsXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuZXJwLmVtcHJlc2FcIilcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbmV3IEZvcm1GaWVsZCh7XG4gICAgICAgICAgICAgICAgbmFtZTogXCJmaWxpYWwubm9tZVwiLFxuICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5TdHJpbmcsXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuZXJwLmZpbGlhbFwiKVxuICAgICAgICAgICAgfSksXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRPcmRlbUNvbXByYUdyaWRGaWVsZHMoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBuZXcgRm9ybUZpZWxkKHtcbiAgICAgICAgICAgICAgICBuYW1lOiBcImNvZGlnb1wiLFxuICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5JbnRlZ2VyLFxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmVycC5vcmRlbV9jb21wcmFfY29kaWdvXCIpXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG5ldyBGb3JtRmllbGQoe1xuICAgICAgICAgICAgICAgIG5hbWU6IFwiZW1wcmVzYS5ub21lXCIsXG4gICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLlN0cmluZyxcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5lcnAuZW1wcmVzYVwiKVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBuZXcgRm9ybUZpZWxkKHtcbiAgICAgICAgICAgICAgICBuYW1lOiBcImZpbGlhbC5ub21lXCIsXG4gICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLlN0cmluZyxcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5lcnAuZmlsaWFsXCIpXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG5ldyBGb3JtRmllbGQoe1xuICAgICAgICAgICAgICAgIG5hbWU6IFwicGVzc29hLm5vbWVcIixcbiAgICAgICAgICAgICAgICB0eXBlOiBGaWVsZFR5cGUuU3RyaW5nLFxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmVycC5wZXNzb2Ffbm9tZVwiKVxuICAgICAgICAgICAgfSksXG4gICAgICAgIF07XG4gICAgfVxufSJdfQ==
@@ -0,0 +1,144 @@
1
+ import * as tslib_1 from "tslib";
2
+ import { Subject } from "rxjs";
3
+ import { ActivatedRoute } from "@angular/router";
4
+ import { Component } from "@angular/core";
5
+ import { FormBuilder, FormControl, FormGroup, Validators } from "@angular/forms";
6
+ import { ConfirmationService, DynamicDialogConfig, DynamicDialogRef } from "primeng/api";
7
+ import { takeUntil } from "rxjs/operators";
8
+ import * as _moment from "moment";
9
+ var moment = _moment;
10
+ import { TranslateService } from "@ngx-translate/core";
11
+ import { CardTechnology } from "../../entities/credential-card-dto";
12
+ var CredencialFormComponent = /** @class */ (function () {
13
+ function CredencialFormComponent(fb, dialogRef, translate, route, dialogConfig) {
14
+ this.fb = fb;
15
+ this.dialogRef = dialogRef;
16
+ this.translate = translate;
17
+ this.route = route;
18
+ this.dialogConfig = dialogConfig;
19
+ this.unsubscribe$ = new Subject();
20
+ this.technologies = [];
21
+ this.localeConfig = {};
22
+ }
23
+ CredencialFormComponent.prototype.ngOnInit = function () {
24
+ var _this = this;
25
+ this.formGroup = this.fb.group({
26
+ tecnologiaCracha: [undefined, Validators.compose([Validators.required])],
27
+ numero: [undefined, Validators.compose([Validators.required])],
28
+ validadeCredencial: [undefined, Validators.compose([Validators.required])],
29
+ hora: [undefined, Validators.compose([Validators.required])],
30
+ });
31
+ this.route.data.pipe(takeUntil(this.unsubscribe$)).subscribe(function (data) {
32
+ _this.localeConfig = data.localeConfig;
33
+ });
34
+ this.tecnologiaCracha(CardTechnology.BARCODE_CARD, CardTechnology.RFID_CARD, CardTechnology.SMART_CARD);
35
+ this.formataDataEHoraDaCredencial();
36
+ };
37
+ CredencialFormComponent.prototype.ngOnDestroy = function () {
38
+ this.unsubscribe$.next();
39
+ this.unsubscribe$.complete();
40
+ };
41
+ CredencialFormComponent.prototype.gerar = function () {
42
+ if (!this.formGroup.valid) {
43
+ return this.validateAllFormFields(this.formGroup);
44
+ }
45
+ var endDate = this.getDataHora();
46
+ var visitante = this.dialogConfig.data.visitante;
47
+ var visitorCredentialCardList = this.gerarCredencial(visitante, endDate);
48
+ this.close(visitorCredentialCardList);
49
+ };
50
+ CredencialFormComponent.prototype.tecnologiaCracha = function () {
51
+ var cardTechnologies = [];
52
+ for (var _i = 0; _i < arguments.length; _i++) {
53
+ cardTechnologies[_i] = arguments[_i];
54
+ }
55
+ var e_1, _a;
56
+ this.technologies = [];
57
+ try {
58
+ for (var cardTechnologies_1 = tslib_1.__values(cardTechnologies), cardTechnologies_1_1 = cardTechnologies_1.next(); !cardTechnologies_1_1.done; cardTechnologies_1_1 = cardTechnologies_1.next()) {
59
+ var cardTechnology = cardTechnologies_1_1.value;
60
+ this.technologies.push({
61
+ label: this.getTecnologiaCrachaTraduzida(cardTechnology),
62
+ value: cardTechnology,
63
+ });
64
+ }
65
+ }
66
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
67
+ finally {
68
+ try {
69
+ if (cardTechnologies_1_1 && !cardTechnologies_1_1.done && (_a = cardTechnologies_1.return)) _a.call(cardTechnologies_1);
70
+ }
71
+ finally { if (e_1) throw e_1.error; }
72
+ }
73
+ };
74
+ CredencialFormComponent.prototype.getTecnologiaCrachaTraduzida = function (cardTechnology) {
75
+ if (cardTechnology === CardTechnology.BARCODE_CARD) {
76
+ return this.translate.instant("yms.patio.cartao_credencial_codigo_barras");
77
+ }
78
+ if (cardTechnology === CardTechnology.RFID_CARD) {
79
+ return this.translate.instant("yms.patio.cartao_credencial_rfid");
80
+ }
81
+ if (cardTechnology === CardTechnology.SMART_CARD) {
82
+ return this.translate.instant("yms.patio.cartao_credencial_smart");
83
+ }
84
+ };
85
+ CredencialFormComponent.prototype.formataDataEHoraDaCredencial = function () {
86
+ var data = moment().add(1, "hour");
87
+ this.formGroup.get("validadeCredencial").disable();
88
+ this.definiValor("validadeCredencial", data.format("DD/MM/YYYY"));
89
+ this.definiValor("hora", data.format("HH:mm"));
90
+ };
91
+ CredencialFormComponent.prototype.getDataHora = function () {
92
+ var dataHora = new Date();
93
+ var horaValue = this.formGroup.get("hora").value;
94
+ var horas = moment().date(horaValue).add(1, "hour").hours();
95
+ var minutos = moment().date(horaValue).minutes();
96
+ dataHora.setHours(horas);
97
+ dataHora.setMinutes(minutos);
98
+ return dataHora;
99
+ };
100
+ CredencialFormComponent.prototype.gerarCredencial = function (visitante, endDate) {
101
+ return {
102
+ visitor: visitante,
103
+ cardTechnology: this.formGroup.get("tecnologiaCracha").value,
104
+ cardNumber: this.formGroup.get("numero").value,
105
+ endDate: endDate,
106
+ };
107
+ };
108
+ CredencialFormComponent.prototype.definiValor = function (campo, valor) {
109
+ return this.formGroup.get(campo).setValue(valor);
110
+ };
111
+ CredencialFormComponent.prototype.close = function (data) {
112
+ this.dialogRef.close(data);
113
+ };
114
+ CredencialFormComponent.prototype.validateAllFormFields = function (formGroup) {
115
+ var _this = this;
116
+ Object.keys(formGroup.controls).forEach(function (field) {
117
+ var control = formGroup.get(field);
118
+ if (control instanceof FormControl) {
119
+ control.markAsDirty({ onlySelf: true });
120
+ }
121
+ else if (control instanceof FormGroup) {
122
+ _this.validateAllFormFields(control);
123
+ }
124
+ else {
125
+ throw 'Instance fot found';
126
+ }
127
+ });
128
+ formGroup.markAsDirty({ onlySelf: true });
129
+ };
130
+ CredencialFormComponent = tslib_1.__decorate([
131
+ Component({
132
+ template: "<form [formGroup]=\"formGroup\">\n <div class=\"ui-g ui-fluid\">\n <div class=\"ui-g-12 required\">\n <label for=\"tecnologiaCracha\">{{\n \"yms.patio.motorista_tecnologiaCracha\" | translate\n }}</label>\n <p-dropdown\n inputId=\"tecnologiaCracha\"\n name=\"tecnologiaCracha\"\n [options]=\"this.technologies\"\n formControlName=\"tecnologiaCracha\"\n [autoWidth]=\"false\"\n placeholder=\"{{\n 'yms.patio.visitante_credencial_tecnologia_cracha_place_holder' | translate\n }}\"\n ></p-dropdown>\n <s-control-errors\n [control]=\"formGroup.controls['tecnologiaCracha']\"\n [errorMessages]=\"{ required: 'error_required' | translate }\"\n ></s-control-errors>\n </div>\n <div class=\"ui-g-12 required\">\n <label for=\"numero\">{{ \"yms.patio.visitante_credencial_numero\" | translate }}</label>\n <input\n id=\"numero\"\n type=\"text\"\n name=\"numero\"\n pInputText\n formControlName=\"numero\"\n autocomplete=\"off\"\n />\n <s-control-errors\n [control]=\"formGroup.controls['numero']\"\n [errorMessages]=\"{ required: 'error_required' | translate }\"\n ></s-control-errors>\n </div>\n <div class=\"ui-g-12 ui-md-6 required\">\n <label for=\"validadeCredencial\">{{\n \"yms.patio.visitante_validade_credencial\" | translate\n }}</label>\n <input\n id=\"validadeCredencial\"\n type=\"text\"\n name=\"validadeCredencial\"\n pInputText\n formControlName=\"validadeCredencial\"\n autocomplete=\"off\"\n />\n <s-control-errors\n [control]=\"formGroup.controls['numero']\"\n [errorMessages]=\"{ required: 'error_required' | translate }\"\n ></s-control-errors>\n </div>\n <div class=\"ui-g-12 ui-md-6 required\">\n <label for=\"hora\">{{ \"yms.patio.visitante_credecnial_hora\" | translate }}</label>\n <p-calendar\n id=\"hora\"\n name=\"hora\"\n formControlName=\"hora\"\n [locale]=\"localeConfig.calendar\"\n inputId=\"hora\"\n [showTime]=\"true\"\n [hourFormat]=\"localeConfig.calendar.hourFormat\"\n [timeOnly]=\"true\"\n >\n </p-calendar>\n <s-control-errors\n [control]=\"formGroup.controls['numero']\"\n [errorMessages]=\"{ required: 'error_required' | translate }\"\n ></s-control-errors>\n </div>\n </div>\n\n <s-button\n [label]=\"'yms.patio.visitante_button_cancelar' | translate\"\n (onClick)=\"close()\"\n priority=\"link\"\n ></s-button>\n <s-button\n [label]=\"'yms.patio.visitante_button_gerar' | translate\"\n (onClick)=\"gerar()\"\n ></s-button>\n</form>\n",
133
+ providers: [ConfirmationService]
134
+ }),
135
+ tslib_1.__metadata("design:paramtypes", [FormBuilder,
136
+ DynamicDialogRef,
137
+ TranslateService,
138
+ ActivatedRoute,
139
+ DynamicDialogConfig])
140
+ ], CredencialFormComponent);
141
+ return CredencialFormComponent;
142
+ }());
143
+ export { CredencialFormComponent };
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGVuY2lhbC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy95bXMtaW50ZWdyYXRpb24vIiwic291cmNlcyI6WyJzcmMvc2FtLXNlbmlvci9jb21wb25lbnRzL2NyZWRlbmNpYWwtZm9ybS9jcmVkZW5jaWFsLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQztBQUNsQyxJQUFNLE1BQU0sR0FBRyxPQUFPLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBT3BFO0lBT0ksaUNBQ1ksRUFBZSxFQUNmLFNBQTJCLEVBQzNCLFNBQTJCLEVBQzNCLEtBQXFCLEVBQ3JCLFlBQWlDO1FBSmpDLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFUNUIsaUJBQVksR0FBRyxJQUFJ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UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBbElRLHVCQUF1QjtRQUpuQyxTQUFTLENBQUM7WUFDUCxzbEdBQStDO1lBQy9DLFNBQVMsRUFBRSxDQUFDLG1CQUFtQixDQUFDO1NBQ25DLENBQUM7aURBU2tCLFdBQVc7WUFDSixnQkFBZ0I7WUFDaEIsZ0JBQWdCO1lBQ3BCLGNBQWM7WUFDUCxtQkFBbUI7T0FacEMsdUJBQXVCLENBbUluQztJQUFELDhCQUFDO0NBQUEsQUFuSUQsSUFtSUM7U0FuSVksdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UsIER5bmFtaWNEaWFsb2dDb25maWcsIER5bmFtaWNEaWFsb2dSZWYgfSBmcm9tIFwicHJpbWVuZy9hcGlcIjtcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0ICogYXMgX21vbWVudCBmcm9tIFwibW9tZW50XCI7XG5jb25zdCBtb21lbnQgPSBfbW9tZW50O1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBDYXJkVGVjaG5vbG9neSB9IGZyb20gXCIuLi8uLi9lbnRpdGllcy9jcmVkZW50aWFsLWNhcmQtZHRvXCI7XG5pbXBvcnQgeyBWaXNpdG9yIH0gZnJvbSBcIi4uLy4uL21vZGVscy92aXNpdG9yXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiBcIi4vY3JlZGVuY2lhbC1mb3JtLmNvbXBvbmVudC5odG1sXCIsXG4gICAgcHJvdmlkZXJzOiBbQ29uZmlybWF0aW9uU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIENyZWRlbmNpYWxGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHB1YmxpYyB0ZWNobm9sb2dpZXM6IGFueVtdID0gW107XG4gICAgcHVibGljIGxvY2FsZUNvbmZpZzogYW55ID0ge307XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgICAgIHByaXZhdGUgZGlhbG9nUmVmOiBEeW5hbWljRGlhbG9nUmVmLFxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgZGlhbG9nQ29uZmlnOiBEeW5hbWljRGlhbG9nQ29uZmlnXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgICB0ZWNub2xvZ2lhQ3JhY2hhOiBbdW5kZWZpbmVkLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKV0sXG4gICAgICAgICAgICBudW1lcm86IFt1bmRlZmluZWQsIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZF0pXSxcbiAgICAgICAgICAgIHZhbGlkYWRlQ3JlZGVuY2lhbDogW3VuZGVmaW5lZCwgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSldLFxuICAgICAgICAgICAgaG9yYTogW3VuZGVmaW5lZCwgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSldLFxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnJvdXRlLmRhdGEucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKS5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2NhbGVDb25maWcgPSBkYXRhLmxvY2FsZUNvbmZpZztcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy50ZWNub2xvZ2lhQ3JhY2hhKFxuICAgICAgICAgICAgQ2FyZFRlY2hub2xvZ3kuQkFSQ09ERV9DQVJELFxuICAgICAgICAgICAgQ2FyZFRlY2hub2xvZ3kuUkZJRF9DQVJELFxuICAgICAgICAgICAgQ2FyZFRlY2hub2xvZ3kuU01BUlRfQ0FSRFxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuZm9ybWF0YURhdGFFSG9yYURhQ3JlZGVuY2lhbCgpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdlcmFyKCkge1xuICAgICAgICBpZiAoIXRoaXMuZm9ybUdyb3VwLnZhbGlkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHModGhpcy5mb3JtR3JvdXApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZW5kRGF0ZSA9IHRoaXMuZ2V0RGF0YUhvcmEoKTtcbiAgICAgICAgY29uc3QgdmlzaXRhbnRlID0gdGhpcy5kaWFsb2dDb25maWcuZGF0YS52aXNpdGFudGU7XG5cbiAgICAgICAgY29uc3QgdmlzaXRvckNyZWRlbnRpYWxDYXJkTGlzdCA9IHRoaXMuZ2VyYXJDcmVkZW5jaWFsKHZpc2l0YW50ZSwgZW5kRGF0ZSk7XG4gICAgICAgIHRoaXMuY2xvc2UodmlzaXRvckNyZWRlbnRpYWxDYXJkTGlzdCk7XG4gICAgfVxuXG4gICAgcHVibGljIHRlY25vbG9naWFDcmFjaGEoLi4uY2FyZFRlY2hub2xvZ2llczogQ2FyZFRlY2hub2xvZ3lbXSkge1xuICAgICAgICB0aGlzLnRlY2hub2xvZ2llcyA9IFtdO1xuXG4gICAgICAgIGZvciAoY29uc3QgY2FyZFRlY2hub2xvZ3kgb2YgY2FyZFRlY2hub2xvZ2llcykge1xuICAgICAgICAgICAgdGhpcy50ZWNobm9sb2dpZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuZ2V0VGVjbm9sb2dpYUNyYWNoYVRyYWR1emlkYShjYXJkVGVjaG5vbG9neSksXG4gICAgICAgICAgICAgICAgdmFsdWU6IGNhcmRUZWNobm9sb2d5LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFRlY25vbG9naWFDcmFjaGFUcmFkdXppZGEoY2FyZFRlY2hub2xvZ3k6IENhcmRUZWNobm9sb2d5KTogc3RyaW5nIHtcbiAgICAgICAgaWYgKGNhcmRUZWNobm9sb2d5ID09PSBDYXJkVGVjaG5vbG9neS5CQVJDT0RFX0NBUkQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLnBhdGlvLmNhcnRhb19jcmVkZW5jaWFsX2NvZGlnb19iYXJyYXNcIik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2FyZFRlY2hub2xvZ3kgPT09IENhcmRUZWNobm9sb2d5LlJGSURfQ0FSRCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMucGF0aW8uY2FydGFvX2NyZWRlbmNpYWxfcmZpZFwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjYXJkVGVjaG5vbG9neSA9PT0gQ2FyZFRlY2hub2xvZ3kuU01BUlRfQ0FSRCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMucGF0aW8uY2FydGFvX2NyZWRlbmNpYWxfc21hcnRcIik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZm9ybWF0YURhdGFFSG9yYURhQ3JlZGVuY2lhbCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IG1vbWVudCgpLmFkZCgxLCBcImhvdXJcIik7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChcInZhbGlkYWRlQ3JlZGVuY2lhbFwiKS5kaXNhYmxlKCk7XG5cbiAgICAgICAgdGhpcy5kZWZpbmlWYWxvcihcInZhbGlkYWRlQ3JlZGVuY2lhbFwiLCBkYXRhLmZvcm1hdChcIkREL01NL1lZWVlcIikpO1xuICAgICAgICB0aGlzLmRlZmluaVZhbG9yKFwiaG9yYVwiLCBkYXRhLmZvcm1hdChcIkhIOm1tXCIpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERhdGFIb3JhKCk6IERhdGUge1xuICAgICAgICBjb25zdCBkYXRhSG9yYTogRGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgIGNvbnN0IGhvcmFWYWx1ZSA9IHRoaXMuZm9ybUdyb3VwLmdldChcImhvcmFcIikudmFsdWU7XG5cbiAgICAgICAgY29uc3QgaG9yYXM6IG51bWJlciA9IG1vbWVudCgpLmRhdGUoaG9yYVZhbHVlKS5hZGQoMSwgXCJob3VyXCIpLmhvdXJzKCk7XG4gICAgICAgIGNvbnN0IG1pbnV0b3M6IG51bWJlciA9IG1vbWVudCgpLmRhdGUoaG9yYVZhbHVlKS5taW51dGVzKCk7XG5cbiAgICAgICAgZGF0YUhvcmEuc2V0SG91cnMoaG9yYXMpO1xuICAgICAgICBkYXRhSG9yYS5zZXRNaW51dGVzKG1pbnV0b3MpO1xuXG4gICAgICAgIHJldHVybiBkYXRhSG9yYTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdlcmFyQ3JlZGVuY2lhbCh2aXNpdGFudGU6IFZpc2l0b3IsIGVuZERhdGU6IERhdGUpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHZpc2l0b3I6IHZpc2l0YW50ZSxcbiAgICAgICAgICAgIGNhcmRUZWNobm9sb2d5OiB0aGlzLmZvcm1Hcm91cC5nZXQoXCJ0ZWNub2xvZ2lhQ3JhY2hhXCIpLnZhbHVlLFxuICAgICAgICAgICAgY2FyZE51bWJlcjogdGhpcy5mb3JtR3JvdXAuZ2V0KFwibnVtZXJvXCIpLnZhbHVlLFxuICAgICAgICAgICAgZW5kRGF0ZTogZW5kRGF0ZSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlZmluaVZhbG9yKGNhbXBvOiBzdHJpbmcsIHZhbG9yOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUdyb3VwLmdldChjYW1wbykuc2V0VmFsdWUodmFsb3IpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZShkYXRhPzogYW55KSB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKGRhdGEpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmFsaWRhdGVBbGxGb3JtRmllbGRzKGZvcm1Hcm91cDogRm9ybUdyb3VwKSB7XG4gICAgICAgIE9iamVjdC5rZXlzKGZvcm1Hcm91cC5jb250cm9scykuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGZpZWxkKTtcblxuICAgICAgICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCkge1xuICAgICAgICAgICAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGVBbGxGb3JtRmllbGRzKGNvbnRyb2wpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvdyAnSW5zdGFuY2UgZm90IGZvdW5kJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgZm9ybUdyb3VwLm1hcmtBc0RpcnR5KHsgb25seVNlbGY6IHRydWUgfSk7XG4gICAgfVxufSJdfQ==
@@ -0,0 +1,25 @@
1
+ import * as tslib_1 from "tslib";
2
+ import { HttpClient } from "@angular/common/http";
3
+ import { Injectable } from "@angular/core";
4
+ import { EntityService } from "./../../core/entity-service";
5
+ import { MessageService } from "primeng/components/common/messageservice";
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common/http";
8
+ import * as i2 from "primeng/components/common/messageservice";
9
+ var LobbyService = /** @class */ (function (_super) {
10
+ tslib_1.__extends(LobbyService, _super);
11
+ function LobbyService(http, messageService) {
12
+ var _this = _super.call(this, http, messageService, "sam/lobby/entities/lobby") || this;
13
+ _this.http = http;
14
+ _this.messageService = messageService;
15
+ return _this;
16
+ }
17
+ LobbyService.ngInjectableDef = i0.defineInjectable({ factory: function LobbyService_Factory() { return new LobbyService(i0.inject(i1.HttpClient), i0.inject(i2.MessageService)); }, token: LobbyService, providedIn: "root" });
18
+ LobbyService = tslib_1.__decorate([
19
+ Injectable({ providedIn: 'root' }),
20
+ tslib_1.__metadata("design:paramtypes", [HttpClient, MessageService])
21
+ ], LobbyService);
22
+ return LobbyService;
23
+ }(EntityService));
24
+ export { LobbyService };
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9iYnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy95bXMtaW50ZWdyYXRpb24vIiwic291cmNlcyI6WyJzcmMvc2FtLXNlbmlvci9jb21wb25lbnRzL3NjaGVkdWxpbmcvbG9iYnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7OztBQUkxRTtJQUFrQyx3Q0FBdUI7SUFDckQsc0JBQXNCLElBQWdCLEVBQVksY0FBOEI7UUFBaEYsWUFDSSxrQkFBTSxJQUFJLEVBQUUsY0FBYyxFQUFFLDBCQUEwQixDQUFDLFNBQzFEO1FBRnFCLFVBQUksR0FBSixJQUFJLENBQVk7UUFBWSxvQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7O0lBRWhGLENBQUM7O0lBSFEsWUFBWTtRQUR4QixVQUFVLENBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDLENBQUM7aURBRUQsVUFBVSxFQUE0QixjQUFjO09BRHZFLFlBQVksQ0FJeEI7dUJBWEQ7Q0FXQyxBQUpELENBQWtDLGFBQWEsR0FJOUM7U0FKWSxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBFbnRpdHlTZXJ2aWNlIH0gZnJvbSBcIi4vLi4vLi4vY29yZS9lbnRpdHktc2VydmljZVwiO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tIFwicHJpbWVuZy9jb21wb25lbnRzL2NvbW1vbi9tZXNzYWdlc2VydmljZVwiO1xuaW1wb3J0IHsgTG9iYnlEdG8gfSBmcm9tIFwiLi8uLi8uLi9lbnRpdGllcy9sb2JieS1kdG9cIjtcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgTG9iYnlTZXJ2aWNlIGV4dGVuZHMgRW50aXR5U2VydmljZTxMb2JieUR0bz4ge1xuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50LCBwcm90ZWN0ZWQgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKGh0dHAsIG1lc3NhZ2VTZXJ2aWNlLCBcInNhbS9sb2JieS9lbnRpdGllcy9sb2JieVwiKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,199 @@
1
+ import * as tslib_1 from "tslib";
2
+ import { Component, EventEmitter, Input, Output } from "@angular/core";
3
+ import { FormBuilder, FormControl, FormGroup, Validators } from "@angular/forms";
4
+ import { ActivatedRoute } from "@angular/router";
5
+ import { TranslateService } from "@ngx-translate/core";
6
+ import { FieldType, FormField } from "@seniorsistemas/angular-components";
7
+ import { MessageService } from "primeng/components/common/messageservice";
8
+ import { Subject, NEVER } from "rxjs";
9
+ import { finalize, takeUntil, mergeMap } from "rxjs/operators";
10
+ import { SchedulingService } from "./shechuling.service";
11
+ import { Lookup } from "../../core/lookup";
12
+ import { LobbyService } from "./lobby.service";
13
+ import { SchedulingVisitors } from "./../../entities/scheduling-visitors";
14
+ import { SchedulingDto } from "./../../entities/scheduling-dto";
15
+ import { VisitSituation } from "../../models/visit-situation";
16
+ var SchedulingComponent = /** @class */ (function () {
17
+ function SchedulingComponent(fb, route, translate, messageService, lobbyService, schedulingService) {
18
+ this.fb = fb;
19
+ this.route = route;
20
+ this.translate = translate;
21
+ this.messageService = messageService;
22
+ this.lobbyService = lobbyService;
23
+ this.schedulingService = schedulingService;
24
+ this.notSavedData = new EventEmitter();
25
+ this.schedulingVisitors = new SchedulingVisitors();
26
+ this.isFormModified = false;
27
+ this.loading = false;
28
+ this.localeConfig = {};
29
+ this.ngUnsubscribe = new Subject();
30
+ }
31
+ SchedulingComponent.prototype.ngOnInit = function () {
32
+ var _this = this;
33
+ this.createForm();
34
+ this.portariaLookup = new Lookup(this.getLobbyFields(), this.lobbyService);
35
+ this.route.data.pipe(takeUntil(this.ngUnsubscribe)).subscribe(function (data) {
36
+ _this.localeConfig = data.localeConfig;
37
+ });
38
+ this.formGroup.valueChanges.subscribe(function (changes) { return _this.isFormModified = true; });
39
+ };
40
+ SchedulingComponent.prototype.ngAfterViewInit = function () {
41
+ this.saveAndInitButton = document.getElementById('init');
42
+ };
43
+ SchedulingComponent.prototype.ngOnDestroy = function () {
44
+ this.ngUnsubscribe.next();
45
+ this.ngUnsubscribe.complete();
46
+ };
47
+ SchedulingComponent.prototype.ngOnChanges = function () {
48
+ var _this = this;
49
+ if (this.agenda.id) {
50
+ this.loading = true;
51
+ this.schedulingService
52
+ .getSchedulingByYms(this.agenda.id)
53
+ .pipe(takeUntil(this.ngUnsubscribe), finalize(function () { return (_this.loading = false); }))
54
+ .subscribe(function (res) {
55
+ if (res.scheduling) {
56
+ var scheduling = res.scheduling;
57
+ _this.schedulingVisitors.scheduling = scheduling;
58
+ _this.schedulingVisitors.visitors = res.visitors;
59
+ _this.formGroup.controls["motivoVisita"].setValue(scheduling.description);
60
+ _this.formGroup.controls["dataSaida"].setValue(new Date(scheduling.expectedEndDate));
61
+ _this.formGroup.controls["horaSaida"].setValue(new Date(scheduling.expectedEndDate));
62
+ _this.getLobby(scheduling).subscribe(function (lobby) {
63
+ return _this.formGroup.controls["portaria"].setValue(lobby);
64
+ });
65
+ }
66
+ else {
67
+ var dataSaida = new Date();
68
+ dataSaida.setHours(new Date().getHours() + 1);
69
+ _this.schedulingVisitors.scheduling = new SchedulingDto();
70
+ _this.schedulingVisitors.visitors = [];
71
+ _this.schedulingVisitors.scheduling.visitSituation = VisitSituation.PENDING;
72
+ _this.schedulingVisitors.scheduling.description = _this.agenda.descricao;
73
+ _this.schedulingVisitors.scheduling.expectedStartDate = new Date();
74
+ _this.schedulingVisitors.scheduling.expectedEndDate = dataSaida;
75
+ _this.formGroup.controls["motivoVisita"].setValue(_this.schedulingVisitors.scheduling.description);
76
+ _this.formGroup.controls["dataSaida"].setValue(_this.schedulingVisitors.scheduling.expectedStartDate);
77
+ _this.formGroup.controls["horaSaida"].setValue(_this.schedulingVisitors.scheduling.expectedEndDate);
78
+ }
79
+ });
80
+ this.patchActualValue();
81
+ }
82
+ };
83
+ SchedulingComponent.prototype.getLobby = function (scheduling) {
84
+ if (scheduling.lobbyIdSAM) {
85
+ return this.lobbyService.get(scheduling.lobbyIdSAM);
86
+ }
87
+ };
88
+ SchedulingComponent.prototype.patchActualValue = function () {
89
+ var _this = this;
90
+ var timeoutPatch = 500;
91
+ setTimeout(function () {
92
+ _this.actualValue = _this.formGroup.value;
93
+ _this.formGroup.patchValue(_this.actualValue);
94
+ }, timeoutPatch);
95
+ };
96
+ SchedulingComponent.prototype.canSave = function () {
97
+ if (!this.agenda || !this.agenda.id || !this.isFormModified) {
98
+ return false;
99
+ }
100
+ return true;
101
+ };
102
+ SchedulingComponent.prototype.onSave = function (start) {
103
+ var _this = this;
104
+ if (this.formGroup.invalid) {
105
+ this.validateAllFormFields(this.formGroup);
106
+ return;
107
+ }
108
+ this.isFormModified = false;
109
+ var scheduling = this.schedulingVisitors.scheduling;
110
+ scheduling.idYMS = this.agenda.id;
111
+ scheduling.description = this.formGroup.controls['motivoVisita'].value;
112
+ scheduling.expectedStartDate = new Date();
113
+ var dataSaida = this.formGroup.controls['dataSaida'].value;
114
+ var horaSaida = this.formGroup.controls['horaSaida'].value;
115
+ scheduling.expectedEndDate = this.getDate(dataSaida, horaSaida);
116
+ var portaria = this.formGroup.controls['portaria'].value;
117
+ if (portaria) {
118
+ scheduling.lobbyIdSAM = portaria.id;
119
+ }
120
+ this.loading = true;
121
+ this.schedulingService
122
+ .saveScheduling(this.schedulingVisitors)
123
+ .pipe(takeUntil(this.ngUnsubscribe), mergeMap(function (res) {
124
+ _this.schedulingVisitors = res;
125
+ if (start) {
126
+ return _this.schedulingService.startScheduling(_this.schedulingVisitors.scheduling.idYMS);
127
+ }
128
+ _this.loading = false;
129
+ return NEVER;
130
+ }), finalize(function () { return (_this.loading = false); }))
131
+ .subscribe(function (success) {
132
+ if (success && _this.saveAndInitButton) {
133
+ _this.saveAndInitButton.click();
134
+ }
135
+ _this.loading = false;
136
+ });
137
+ };
138
+ SchedulingComponent.prototype.validateAllFormFields = function (formGroup) {
139
+ var _this = this;
140
+ Object.keys(formGroup.controls).forEach(function (field) {
141
+ var control = formGroup.get(field);
142
+ if (control instanceof FormControl) {
143
+ control.markAsDirty({ onlySelf: true });
144
+ }
145
+ else if (control instanceof FormGroup) {
146
+ _this.validateAllFormFields(control);
147
+ }
148
+ else {
149
+ // nada a fazer
150
+ }
151
+ });
152
+ };
153
+ SchedulingComponent.prototype.getDate = function (data, hora) {
154
+ return new Date(data.getFullYear(), data.getMonth(), data.getDate(), hora.getHours(), hora.getMinutes());
155
+ };
156
+ SchedulingComponent.prototype.reset = function () {
157
+ this.formGroup.patchValue(tslib_1.__assign({}, this.actualValue));
158
+ };
159
+ SchedulingComponent.prototype.createForm = function () {
160
+ this.formGroup = this.fb.group({
161
+ motivoVisita: [undefined, Validators.compose([Validators.required])],
162
+ portaria: [undefined, Validators.compose([Validators.required])],
163
+ dataSaida: [undefined, Validators.compose([Validators.required])],
164
+ horaSaida: [undefined, Validators.compose([Validators.required])],
165
+ });
166
+ };
167
+ SchedulingComponent.prototype.getLobbyFields = function () {
168
+ return [
169
+ new FormField({
170
+ name: "name",
171
+ type: FieldType.String,
172
+ label: this.translate.instant("yms.patio.sam_portaria_descricao"),
173
+ }),
174
+ ];
175
+ };
176
+ tslib_1.__decorate([
177
+ Input(),
178
+ tslib_1.__metadata("design:type", Object)
179
+ ], SchedulingComponent.prototype, "agenda", void 0);
180
+ tslib_1.__decorate([
181
+ Output(),
182
+ tslib_1.__metadata("design:type", EventEmitter)
183
+ ], SchedulingComponent.prototype, "notSavedData", void 0);
184
+ SchedulingComponent = tslib_1.__decorate([
185
+ Component({
186
+ selector: "scheduling",
187
+ template: "<visited-info [agenda]=\"agenda\"> </visited-info>\r\n<form [formGroup]=\"formGroup\" *sLoadingState=\"loading\" novalidate>\r\n <div class=\"ui-fluid\">\r\n <div class=\"ui-g\">\r\n <div class=\"ui-g-12 ui-md-6 required\">\r\n <label for=\"motivoVisita\">{{ \"yms.patio.sam_motivo_visita\" | translate }}</label>\r\n <input\r\n type=\"text\"\r\n id=\"motivoVisita\"\r\n name=\"motivoVisita\"\r\n pInputText\r\n formControlName=\"motivoVisita\"\r\n autocomplete=\"off\"\r\n />\r\n <s-control-errors\r\n [control]=\"formGroup.controls['motivoVisita']\"\r\n [errorMessages]=\"{ required: 'error_required' | translate }\"\r\n >\r\n </s-control-errors>\r\n </div>\r\n <div class=\"ui-g-12 ui-md-6 required\">\r\n <label for=\"portaria\">{{ \"yms.patio.sam_portaria\" | translate }}</label>\r\n <s-lookup\r\n dataKey=\"id\"\r\n id=\"portaria\"\r\n name=\"portaria\"\r\n formControlName=\"portaria\"\r\n lookupDisplayField=\"name\"\r\n [multiple]=\"false\"\r\n (onLookupRequest)=\"portariaLookup.lookupRequest($event)\"\r\n (onSearchRequest)=\"portariaLookup.searchRequest($event)\"\r\n [searchTitle]=\"'yms.patio.sam_portaria' | translate\"\r\n [searchEmptyTitle]=\"'nothing_found' | translate\"\r\n [searchFields]=\"portariaLookup.searchFields\"\r\n [searchGridFields]=\"portariaLookup.searchGridFields\"\r\n [searchGridData]=\"portariaLookup.searchGridData\"\r\n [searchTotalRecords]=\"portariaLookup.searchTotalRecords\"\r\n [searchTotalRecordsLabel]=\"\r\n 'total_records' | translate : { value: portariaLookup.searchTotalRecords }\r\n \">\r\n </s-lookup>\r\n <s-control-errors \r\n [control]=\"formGroup.controls['portaria']\"\r\n [errorMessages]=\"{ required: 'error_required' | translate }\">\r\n </s-control-errors>\r\n </div>\r\n <div class=\"ui-g-6 ui-md-3 required\">\r\n <label for=\"dataSaida\">{{ \"yms.patio.sam_data_saida\" | translate }}</label>\r\n <p-calendar\r\n id=\"dataSaida\"\r\n name=\"dataSaida\"\r\n formControlName=\"dataSaida\"\r\n inputId=\"dataSaida\"\r\n [showIcon]=\"true\"\r\n [locale]=\"localeConfig.calendar\"\r\n [dateFormat]=\"localeConfig.calendar.dateFormat\"\r\n >\r\n </p-calendar>\r\n <s-control-errors\r\n [control]=\"formGroup.controls['dataSaida']\"\r\n [errorMessages]=\"{ required: 'error_required' | translate }\"\r\n >\r\n </s-control-errors>\r\n </div>\r\n <div class=\"ui-g-6 ui-md-3 required\">\r\n <label for=\"horaSaida\">{{ \"yms.patio.sam_hora_saida\" | translate }}</label>\r\n <p-calendar\r\n id=\"horaSaida\"\r\n name=\"horaSaida\"\r\n formControlName=\"horaSaida\"\r\n [locale]=\"localeConfig.calendar\"\r\n inputId=\"horaSaida\"\r\n [showTime]=\"true\"\r\n [hourFormat]=\"localeConfig.calendar.hourFormat\"\r\n [timeOnly]=\"true\"\r\n >\r\n </p-calendar>\r\n <s-control-errors\r\n [control]=\"formGroup.controls['horaSaida']\"\r\n [errorMessages]=\"{ required: 'error_required' | translate }\"\r\n >\r\n </s-control-errors>\r\n </div>\r\n </div>\r\n </div>\r\n</form>\r\n<div class=\"separator\"></div>\r\n<div *ngIf=\"schedulingVisitors.visitors\">\r\n <visitante-component\r\n [motorista]=\"agenda.motorista\"\r\n [(visitors)]=\"schedulingVisitors.visitors\"\r\n (hasChange)=\"isFormModified = $event\">\r\n </visitante-component>\r\n</div>\r\n<div class=\"separator\"></div>\r\n<div style=\"margin-top: 10px\">\r\n <s-button priority=\"primary\" [label]=\"'save' | translate\" (onClick)=\"onSave()\"\r\n [disabled]=\"loading || !canSave()\"></s-button>\r\n <s-button *ngIf=\"saveAndInitButton\" priority=\"primary\" [label]=\"'save_and_init' | translate\" (onClick)=\"onSave(true)\"\r\n [disabled]=\"loading\"></s-button>\r\n \r\n</div>\r\n"
188
+ }),
189
+ tslib_1.__metadata("design:paramtypes", [FormBuilder,
190
+ ActivatedRoute,
191
+ TranslateService,
192
+ MessageService,
193
+ LobbyService,
194
+ SchedulingService])
195
+ ], SchedulingComponent);
196
+ return SchedulingComponent;
197
+ }());
198
+ export { SchedulingComponent };
199
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMveW1zLWludGVncmF0aW9uLyIsInNvdXJjZXMiOlsic3JjL3NhbS1zZW5pb3IvY29tcG9uZW50cy9zY2hlZHVsaW5nL3NjaGVkdWxpbmcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUcvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENB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Q3BFLENBQUM7U0FDTCxDQUFDO0lBQ04sQ0FBQztJQTdNUTtRQUFSLEtBQUssRUFBRTs7dURBQWE7SUFDWDtRQUFULE1BQU0sRUFBRTswQ0FBZSxZQUFZOzZEQUErQjtJQUYxRCxtQkFBbUI7UUFKL0IsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLFlBQVk7WUFDdEIsMjVKQUEwQztTQUM3QyxDQUFDO2lEQWlCMkIsV0FBVztZQUNSLGNBQWM7WUFDVixnQkFBZ0I7WUFDWCxjQUFjO1lBQ2hCLFlBQVk7WUFDUCxpQkFBaUI7T0FyQmhELG1CQUFtQixDQStNL0I7SUFBRCwwQkFBQztDQUFBLEFBL01ELElBK01DO1NBL01ZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcclxuaW1wb3J0IHsgRmllbGRUeXBlLCBGb3JtRmllbGQgfSBmcm9tIFwiQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50c1wiO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gXCJwcmltZW5nL2NvbXBvbmVudHMvY29tbW9uL21lc3NhZ2VzZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFN1YmplY3QsIE5FVkVSIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgZmluYWxpemUsIHRha2VVbnRpbCwgbWVyZ2VNYXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgTG9iYnlEdG8gfSBmcm9tIFwiLi8uLi8uLi9lbnRpdGllcy9sb2JieS1kdG9cIjtcclxuaW1wb3J0IHsgU2NoZWR1bGluZyB9IGZyb20gXCIuLy4uLy4uL2VudGl0aWVzL3NjaGVkdWxpbmdcIjtcclxuaW1wb3J0IHsgU2NoZWR1bGluZ1NlcnZpY2UgfSBmcm9tIFwiLi9zaGVjaHVsaW5nLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgTG9va3VwIH0gZnJvbSBcIi4uLy4uL2NvcmUvbG9va3VwXCI7XHJcbmltcG9ydCB7IExvYmJ5U2VydmljZSB9IGZyb20gXCIuL2xvYmJ5LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU2NoZWR1bGluZ1Zpc2l0b3JzIH0gZnJvbSBcIi4vLi4vLi4vZW50aXRpZXMvc2NoZWR1bGluZy12aXNpdG9yc1wiO1xyXG5pbXBvcnQgeyBTY2hlZHVsaW5nRHRvIH0gZnJvbSBcIi4vLi4vLi4vZW50aXRpZXMvc2NoZWR1bGluZy1kdG9cIjtcclxuaW1wb3J0IHsgVmlzaXRTaXR1YXRpb24gfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3Zpc2l0LXNpdHVhdGlvblwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJzY2hlZHVsaW5nXCIsXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3NjaGVkdWxpbmcuY29tcG9uZW50Lmh0bWxcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIFNjaGVkdWxpbmdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgICBASW5wdXQoKSBhZ2VuZGE6IGFueTtcclxuICAgIEBPdXRwdXQoKSBub3RTYXZlZERhdGE6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIHNjaGVkdWxpbmdWaXNpdG9yczogU2NoZWR1bGluZ1Zpc2l0b3JzID0gbmV3IFNjaGVkdWxpbmdWaXNpdG9ycygpO1xyXG4gICAgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XHJcbiAgICBpc0Zvcm1Nb2RpZmllZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgbG9hZGluZyA9IGZhbHNlOyAgICBcclxuICAgIGxvY2FsZUNvbmZpZzogYW55ID0ge307XHJcbiAgICBwb3J0YXJpYUxvb2t1cDogTG9va3VwPExvYmJ5RHRvPjtcclxuXHJcbiAgICBwcml2YXRlIGFjdHVhbFZhbHVlOiBhbnk7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICAgIHNhdmVBbmRJbml0QnV0dG9uOiBIVE1MQnV0dG9uRWxlbWVudDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGZiOiBGb3JtQnVpbGRlcixcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGxvYmJ5U2VydmljZTogTG9iYnlTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgc2NoZWR1bGluZ1NlcnZpY2U6IFNjaGVkdWxpbmdTZXJ2aWNlXHJcbiAgICApIHt9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVGb3JtKCk7XHJcblxyXG4gICAgICAgIHRoaXMucG9ydGFyaWFMb29rdXAgPSBuZXcgTG9va3VwKHRoaXMuZ2V0TG9iYnlGaWVsZHMoKSwgdGhpcy5sb2JieVNlcnZpY2UpO1xyXG5cclxuICAgICAgICB0aGlzLnJvdXRlLmRhdGEucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5sb2NhbGVDb25maWcgPSBkYXRhLmxvY2FsZUNvbmZpZztcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShjaGFuZ2VzID0+IHRoaXMuaXNGb3JtTW9kaWZpZWQgPSB0cnVlICk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICAgIHRoaXMuc2F2ZUFuZEluaXRCdXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5pdCcpIGFzIEhUTUxCdXR0b25FbGVtZW50O1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XHJcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuYWdlbmRhLmlkKSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnNjaGVkdWxpbmdTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICAuZ2V0U2NoZWR1bGluZ0J5WW1zKHRoaXMuYWdlbmRhLmlkKVxyXG4gICAgICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXHJcbiAgICAgICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4gKHRoaXMubG9hZGluZyA9IGZhbHNlKSlcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5zY2hlZHVsaW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNjaGVkdWxpbmcgPSByZXMuc2NoZWR1bGluZztcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsaW5nVmlzaXRvcnMuc2NoZWR1bGluZyAgPSBzY2hlZHVsaW5nO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxpbmdWaXNpdG9ycy52aXNpdG9ycyA9IHJlcy52aXNpdG9ycztcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHNbXCJtb3Rpdm9WaXNpdGFcIl0uc2V0VmFsdWUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlZHVsaW5nLmRlc2NyaXB0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzW1wiZGF0YVNhaWRhXCJdLnNldFZhbHVlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERhdGUoc2NoZWR1bGluZy5leHBlY3RlZEVuZERhdGUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzW1wiaG9yYVNhaWRhXCJdLnNldFZhbHVlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IERhdGUoc2NoZWR1bGluZy5leHBlY3RlZEVuZERhdGUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0TG9iYnkoc2NoZWR1bGluZykuc3Vic2NyaWJlKChsb2JieSkgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzW1wicG9ydGFyaWFcIl0uc2V0VmFsdWUobG9iYnkpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YVNhaWRhID0gbmV3IERhdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVNhaWRhLnNldEhvdXJzKG5ldyBEYXRlKCkuZ2V0SG91cnMoKSArIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxpbmdWaXNpdG9ycy5zY2hlZHVsaW5nID0gbmV3IFNjaGVkdWxpbmdEdG8oKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsaW5nVmlzaXRvcnMudmlzaXRvcnMgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsaW5nVmlzaXRvcnMuc2NoZWR1bGluZy52aXNpdFNpdHVhdGlvbiA9IFZpc2l0U2l0dWF0aW9uLlBFTkRJTkc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGluZ1Zpc2l0b3JzLnNjaGVkdWxpbmcuZGVzY3JpcHRpb24gPSB0aGlzLmFnZW5kYS5kZXNjcmljYW87XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGluZ1Zpc2l0b3JzLnNjaGVkdWxpbmcuZXhwZWN0ZWRTdGFydERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxpbmdWaXNpdG9ycy5zY2hlZHVsaW5nLmV4cGVjdGVkRW5kRGF0ZSA9IGRhdGFTYWlkYTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHNbXCJtb3Rpdm9WaXNpdGFcIl0uc2V0VmFsdWUodGhpcy5zY2hlZHVsaW5nVmlzaXRvcnMuc2NoZWR1bGluZy5kZXNjcmlwdGlvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzW1wiZGF0YVNhaWRhXCJdLnNldFZhbHVlKHRoaXMuc2NoZWR1bGluZ1Zpc2l0b3JzLnNjaGVkdWxpbmcuZXhwZWN0ZWRTdGFydERhdGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1tcImhvcmFTYWlkYVwiXS5zZXRWYWx1ZSh0aGlzLnNjaGVkdWxpbmdWaXNpdG9ycy5zY2hlZHVsaW5nLmV4cGVjdGVkRW5kRGF0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnBhdGNoQWN0dWFsVmFsdWUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRMb2JieShzY2hlZHVsaW5nOiBTY2hlZHVsaW5nKSB7XHJcbiAgICAgICAgaWYgKHNjaGVkdWxpbmcubG9iYnlJZFNBTSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2JieVNlcnZpY2UuZ2V0KHNjaGVkdWxpbmcubG9iYnlJZFNBTSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcGF0Y2hBY3R1YWxWYWx1ZSgpIHtcclxuICAgICAgICBjb25zdCB0aW1lb3V0UGF0Y2ggPSA1MDA7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0dWFsVmFsdWUgPSB0aGlzLmZvcm1Hcm91cC52YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZSh0aGlzLmFjdHVhbFZhbHVlKTtcclxuICAgICAgICB9LCB0aW1lb3V0UGF0Y2gpO1xyXG4gICAgfVxyXG5cclxuICAgIGNhblNhdmUoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmFnZW5kYSB8fCAhdGhpcy5hZ2VuZGEuaWQgfHwgIXRoaXMuaXNGb3JtTW9kaWZpZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBvblNhdmUoc3RhcnQ/OiBib29sZWFuKSB7XHJcblxyXG4gICAgICBpZiAodGhpcy5mb3JtR3JvdXAuaW52YWxpZCkge1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGVBbGxGb3JtRmllbGRzKHRoaXMuZm9ybUdyb3VwKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5pc0Zvcm1Nb2RpZmllZCA9IGZhbHNlO1xyXG5cclxuICAgICAgY29uc3Qgc2NoZWR1bGluZyA9IHRoaXMuc2NoZWR1bGluZ1Zpc2l0b3JzLnNjaGVkdWxpbmc7XHJcblxyXG4gICAgICBzY2hlZHVsaW5nLmlkWU1TID0gdGhpcy5hZ2VuZGEuaWQ7XHJcbiAgICAgIHNjaGVkdWxpbmcuZGVzY3JpcHRpb24gPSB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1snbW90aXZvVmlzaXRhJ10udmFsdWU7XHJcblxyXG4gICAgICBzY2hlZHVsaW5nLmV4cGVjdGVkU3RhcnREYXRlID0gbmV3IERhdGUoKTtcclxuXHJcbiAgICAgIGNvbnN0IGRhdGFTYWlkYTogRGF0ZSA9IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzWydkYXRhU2FpZGEnXS52YWx1ZTtcclxuICAgICAgY29uc3QgaG9yYVNhaWRhOiBEYXRlID0gdGhpcy5mb3JtR3JvdXAuY29udHJvbHNbJ2hvcmFTYWlkYSddLnZhbHVlO1xyXG4gICAgICBzY2hlZHVsaW5nLmV4cGVjdGVkRW5kRGF0ZSA9IHRoaXMuZ2V0RGF0ZShkYXRhU2FpZGEsIGhvcmFTYWlkYSk7XHJcblxyXG4gICAgICBjb25zdCBwb3J0YXJpYSA9IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzWydwb3J0YXJpYSddLnZhbHVlO1xyXG4gICAgICBpZiAocG9ydGFyaWEpIHtcclxuICAgICAgICBzY2hlZHVsaW5nLmxvYmJ5SWRTQU0gPSBwb3J0YXJpYS5pZDtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgdGhpcy5zY2hlZHVsaW5nU2VydmljZVxyXG4gICAgICAgIC5zYXZlU2NoZWR1bGluZyh0aGlzLnNjaGVkdWxpbmdWaXNpdG9ycylcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxyXG4gICAgICAgICAgbWVyZ2VNYXAoKHJlczogU2NoZWR1bGluZ1Zpc2l0b3JzKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2NoZWR1bGluZ1Zpc2l0b3JzID0gcmVzO1xyXG4gICAgICAgICAgICBpZiAoc3RhcnQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNjaGVkdWxpbmdTZXJ2aWNlLnN0YXJ0U2NoZWR1bGluZyhcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxpbmdWaXNpdG9ycy5zY2hlZHVsaW5nLmlkWU1TXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICByZXR1cm4gTkVWRVI7XHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLmxvYWRpbmcgPSBmYWxzZSkpXHJcbiAgICAgICAgKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHN1Y2Nlc3M6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHN1Y2Nlc3MgJiYgdGhpcy5zYXZlQW5kSW5pdEJ1dHRvbikge1xyXG4gICAgICAgICAgICB0aGlzLnNhdmVBbmRJbml0QnV0dG9uLmNsaWNrKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHZhbGlkYXRlQWxsRm9ybUZpZWxkcyhmb3JtR3JvdXA6IEZvcm1Hcm91cCkge1xyXG4gICAgICAgIE9iamVjdC5rZXlzKGZvcm1Hcm91cC5jb250cm9scykuZm9yRWFjaCgoZmllbGQpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5nZXQoZmllbGQpO1xyXG4gICAgICAgICAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sKSB7XHJcbiAgICAgICAgICAgICAgICBjb250cm9sLm1hcmtBc0RpcnR5KHsgb25seVNlbGY6IHRydWUgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHMoY29udHJvbCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgIC8vIG5hZGEgYSBmYXplclxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0RGF0ZShkYXRhOiBEYXRlLCBob3JhOiBEYXRlKTogRGF0ZSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKFxyXG4gICAgICAgICAgICBkYXRhLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgICAgICAgIGRhdGEuZ2V0TW9udGgoKSxcclxuICAgICAgICAgICAgZGF0YS5nZXREYXRlKCksXHJcbiAgICAgICAgICAgIGhvcmEuZ2V0SG91cnMoKSxcclxuICAgICAgICAgICAgaG9yYS5nZXRNaW51dGVzKClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHJlc2V0KCkge1xyXG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWUoeyAuLi50aGlzLmFjdHVhbFZhbHVlIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY3JlYXRlRm9ybSgpIHtcclxuICAgICAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgICBtb3Rpdm9WaXNpdGE6IFt1bmRlZmluZWQsIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZF0pXSxcclxuICAgICAgICAgICAgcG9ydGFyaWE6IFt1bmRlZmluZWQsIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZF0pXSxcclxuICAgICAgICAgICAgZGF0YVNhaWRhOiBbdW5kZWZpbmVkLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKV0sXHJcbiAgICAgICAgICAgIGhvcmFTYWlkYTogW3VuZGVmaW5lZCwgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSldLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0TG9iYnlGaWVsZHMoKSB7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgICAgbmV3IEZvcm1GaWVsZCh7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcIm5hbWVcIixcclxuICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5TdHJpbmcsXHJcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5wYXRpby5zYW1fcG9ydGFyaWFfZGVzY3JpY2FvXCIpLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICBdO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==