@senior-agronegocio/angular-components 0.0.9861 → 0.0.9863

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 (195) hide show
  1. package/bundles/senior-agronegocio-angular-components.umd.js +3023 -3484
  2. package/bundles/senior-agronegocio-angular-components.umd.js.map +1 -1
  3. package/bundles/senior-agronegocio-angular-components.umd.min.js +2 -2
  4. package/bundles/senior-agronegocio-angular-components.umd.min.js.map +1 -1
  5. package/common/agro-number-utils.class.d.ts +0 -6
  6. package/common/agro-object-utils.class.d.ts +10 -0
  7. package/common/agro-regex.constant.d.ts +0 -3
  8. package/common/agro-string-utils.class.d.ts +0 -3
  9. package/components/event-control-board/event-control-board.component.d.ts +17 -25
  10. package/components/event-control-board/index.d.ts +3 -1
  11. package/components/event-control-board/service/entity-service.d.ts +3 -3
  12. package/components/event-control-board/service/event-control-board.service.d.ts +13 -0
  13. package/components/event-control-board/service/origination/origination-dto.d.ts +1 -1
  14. package/{services → components/event-control-board/service}/producer-invoice/producer-invoice-dto.d.ts +4 -4
  15. package/components/event-control-board/service/producer-invoice/producer-invoice.module.d.ts +2 -0
  16. package/components/event-control-board/service/producer-invoice/producer-invoice.service.d.ts +11 -0
  17. package/components/financial-title-table/financial-title-table-options.interface.d.ts +10 -0
  18. package/components/financial-title-table/financial-title-table.component.d.ts +64 -0
  19. package/components/financial-title-table/financial-title-table.module.d.ts +2 -0
  20. package/components/financial-title-table/index.d.ts +4 -0
  21. package/components/financial-title-table/services/financial/agro-financial.service.d.ts +23 -0
  22. package/components/financial-title-table/services/financial/enums.d.ts +27 -0
  23. package/components/financial-title-table/services/financial/index.d.ts +1 -0
  24. package/components/financial-title-table/services/financial/intefaces.d.ts +107 -0
  25. package/components/index.d.ts +1 -1
  26. package/esm2015/common/agro-number-utils.class.js +1 -18
  27. package/esm2015/common/agro-object-utils.class.js +29 -1
  28. package/esm2015/common/agro-platform-utils.class.js +7 -8
  29. package/esm2015/common/agro-regex.constant.js +2 -5
  30. package/esm2015/common/agro-string-utils.class.js +11 -27
  31. package/esm2015/components/cancel-event-dialog/cancel-event-dialog-config.js +1 -1
  32. package/esm2015/components/event-control-board/event-control-board.component.js +90 -110
  33. package/esm2015/components/event-control-board/event-control-board.module.js +5 -2
  34. package/esm2015/components/event-control-board/index.js +4 -2
  35. package/esm2015/components/event-control-board/service/entity-service.js +27 -25
  36. package/esm2015/components/event-control-board/service/event-control-board.service.js +37 -0
  37. package/esm2015/components/event-control-board/service/origination/origination-dto.js +1 -1
  38. package/esm2015/components/event-control-board/service/producer-invoice/producer-invoice-dto.js +1 -0
  39. package/esm2015/components/event-control-board/service/producer-invoice/producer-invoice.module.js +26 -0
  40. package/esm2015/components/event-control-board/service/producer-invoice/producer-invoice.service.js +24 -0
  41. package/esm2015/components/financial-title-table/financial-title-table-options.interface.js +1 -0
  42. package/esm2015/components/financial-title-table/financial-title-table.component.js +300 -0
  43. package/esm2015/components/financial-title-table/financial-title-table.module.js +43 -0
  44. package/esm2015/components/financial-title-table/index.js +4 -0
  45. package/esm2015/components/financial-title-table/services/financial/agro-financial.service.js +64 -0
  46. package/esm2015/components/financial-title-table/services/financial/enums.js +33 -0
  47. package/esm2015/components/financial-title-table/services/financial/index.js +2 -0
  48. package/esm2015/components/financial-title-table/services/financial/intefaces.js +1 -0
  49. package/esm2015/components/index.js +2 -2
  50. package/esm2015/lib-translation.module.js +1 -3
  51. package/esm2015/pipe/index.js +1 -5
  52. package/esm2015/public-api.js +6 -6
  53. package/esm2015/senior-agronegocio-angular-components.js +2 -3
  54. package/esm2015/services/entity-service.js +12 -14
  55. package/esm2015/services/i18n/en-US.js +30 -9
  56. package/esm2015/services/i18n/es-CO.js +31 -10
  57. package/esm2015/services/i18n/pt-BR.js +290 -272
  58. package/esm2015/services/index.js +1 -1
  59. package/esm2015/services/lib-translation.service.js +3 -3
  60. package/esm5/common/agro-number-utils.class.js +1 -19
  61. package/esm5/common/agro-object-utils.class.js +29 -1
  62. package/esm5/common/agro-platform-utils.class.js +7 -8
  63. package/esm5/common/agro-regex.constant.js +2 -5
  64. package/esm5/common/agro-string-utils.class.js +11 -27
  65. package/esm5/components/cancel-event-dialog/cancel-event-dialog-config.js +1 -1
  66. package/esm5/components/event-control-board/event-control-board.component.js +91 -113
  67. package/esm5/components/event-control-board/event-control-board.module.js +5 -2
  68. package/esm5/components/event-control-board/index.js +4 -2
  69. package/esm5/components/event-control-board/service/entity-service.js +26 -24
  70. package/esm5/components/event-control-board/service/event-control-board.service.js +38 -0
  71. package/esm5/components/event-control-board/service/origination/origination-dto.js +1 -1
  72. package/esm5/components/event-control-board/service/producer-invoice/producer-invoice-dto.js +1 -0
  73. package/esm5/components/event-control-board/service/producer-invoice/producer-invoice.module.js +29 -0
  74. package/esm5/components/event-control-board/service/producer-invoice/producer-invoice.service.js +27 -0
  75. package/esm5/components/financial-title-table/financial-title-table-options.interface.js +1 -0
  76. package/esm5/components/financial-title-table/financial-title-table.component.js +320 -0
  77. package/esm5/components/financial-title-table/financial-title-table.module.js +46 -0
  78. package/esm5/components/financial-title-table/index.js +4 -0
  79. package/esm5/components/financial-title-table/services/financial/agro-financial.service.js +71 -0
  80. package/esm5/components/financial-title-table/services/financial/enums.js +33 -0
  81. package/esm5/components/financial-title-table/services/financial/index.js +2 -0
  82. package/esm5/components/financial-title-table/services/financial/intefaces.js +1 -0
  83. package/esm5/components/index.js +2 -2
  84. package/esm5/lib-translation.module.js +1 -3
  85. package/esm5/pipe/index.js +1 -5
  86. package/esm5/public-api.js +6 -6
  87. package/esm5/senior-agronegocio-angular-components.js +2 -3
  88. package/esm5/services/entity-service.js +11 -13
  89. package/esm5/services/i18n/en-US.js +30 -9
  90. package/esm5/services/i18n/es-CO.js +31 -10
  91. package/esm5/services/i18n/pt-BR.js +290 -272
  92. package/esm5/services/index.js +1 -1
  93. package/esm5/services/lib-translation.service.js +3 -3
  94. package/fesm2015/senior-agronegocio-angular-components.js +2831 -3199
  95. package/fesm2015/senior-agronegocio-angular-components.js.map +1 -1
  96. package/fesm5/senior-agronegocio-angular-components.js +3028 -3475
  97. package/fesm5/senior-agronegocio-angular-components.js.map +1 -1
  98. package/package.json +55 -7
  99. package/pipe/index.d.ts +0 -4
  100. package/public-api.d.ts +5 -5
  101. package/senior-agronegocio-angular-components.d.ts +1 -2
  102. package/senior-agronegocio-angular-components.metadata.json +1 -1
  103. package/services/entity-service.d.ts +1 -2
  104. package/services/i18n/en-US.d.ts +29 -8
  105. package/services/i18n/es-CO.d.ts +29 -8
  106. package/services/i18n/pt-BR.d.ts +288 -270
  107. package/common/agro-object-stringifier.class.d.ts +0 -16
  108. package/components/modal-invoice-pj/for-fixation/modal-fixation-options.interface.d.ts +0 -5
  109. package/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.component.d.ts +0 -35
  110. package/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.module.d.ts +0 -2
  111. package/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.component.d.ts +0 -26
  112. package/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.module.d.ts +0 -2
  113. package/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.component.d.ts +0 -26
  114. package/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.module.d.ts +0 -2
  115. package/components/modal-invoice-pj/index.d.ts +0 -9
  116. package/components/modal-invoice-pj/modal-invoice-pj-base.class.d.ts +0 -53
  117. package/components/modal-invoice-pj/modal-invoice-pj-options.interface.d.ts +0 -10
  118. package/components/modal-invoice-pj/modal-shared-imports.d.ts +0 -8
  119. package/components/modal-invoice-pj/services/agro-invoice/agro-invoice.module.d.ts +0 -2
  120. package/components/modal-invoice-pj/services/agro-invoice/agro-invoice.service.d.ts +0 -16
  121. package/components/modal-invoice-pj/services/agro-invoice/index.d.ts +0 -2
  122. package/components/modal-invoice-pj/services/agro-invoice/interfaces.d.ts +0 -75
  123. package/esm2015/common/agro-object-stringifier.class.js +0 -31
  124. package/esm2015/components/modal-invoice-pj/for-fixation/modal-fixation-options.interface.js +0 -1
  125. package/esm2015/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.component.js +0 -189
  126. package/esm2015/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.module.js +0 -16
  127. package/esm2015/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.component.js +0 -60
  128. package/esm2015/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.module.js +0 -16
  129. package/esm2015/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.component.js +0 -60
  130. package/esm2015/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.module.js +0 -16
  131. package/esm2015/components/modal-invoice-pj/index.js +0 -8
  132. package/esm2015/components/modal-invoice-pj/modal-invoice-pj-base.class.js +0 -193
  133. package/esm2015/components/modal-invoice-pj/modal-invoice-pj-options.interface.js +0 -1
  134. package/esm2015/components/modal-invoice-pj/modal-shared-imports.js +0 -32
  135. package/esm2015/components/modal-invoice-pj/services/agro-invoice/agro-invoice.module.js +0 -28
  136. package/esm2015/components/modal-invoice-pj/services/agro-invoice/agro-invoice.service.js +0 -49
  137. package/esm2015/components/modal-invoice-pj/services/agro-invoice/index.js +0 -3
  138. package/esm2015/components/modal-invoice-pj/services/agro-invoice/interfaces.js +0 -13
  139. package/esm2015/pipe/cnpj-cpf/cnpj-cpf.pipe.js +0 -28
  140. package/esm2015/pipe/cnpj-cpf/cnpj-cpf.pipe.module.js +0 -15
  141. package/esm2015/pipe/cnpj-cpf/index.js +0 -3
  142. package/esm2015/pipe/kilogram/index.js +0 -3
  143. package/esm2015/pipe/kilogram/kilogram.module.js +0 -17
  144. package/esm2015/pipe/kilogram/kilogram.pipe.js +0 -38
  145. package/esm2015/pipe/stringifier/index.js +0 -3
  146. package/esm2015/pipe/stringifier/stringifier.pipe.js +0 -13
  147. package/esm2015/pipe/stringifier/stringifier.pipe.module.js +0 -15
  148. package/esm2015/pipe/telephone/index.js +0 -3
  149. package/esm2015/pipe/telephone/telephone.pipe.js +0 -91
  150. package/esm2015/pipe/telephone/telephone.pipe.module.js +0 -15
  151. package/esm2015/services/producer-invoice/producer-invoice-dto.js +0 -1
  152. package/esm2015/services/producer-invoice/producer-invoice.service.js +0 -64
  153. package/esm5/common/agro-object-stringifier.class.js +0 -35
  154. package/esm5/components/modal-invoice-pj/for-fixation/modal-fixation-options.interface.js +0 -1
  155. package/esm5/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.component.js +0 -221
  156. package/esm5/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.module.js +0 -19
  157. package/esm5/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.component.js +0 -63
  158. package/esm5/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.module.js +0 -19
  159. package/esm5/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.component.js +0 -63
  160. package/esm5/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.module.js +0 -19
  161. package/esm5/components/modal-invoice-pj/index.js +0 -8
  162. package/esm5/components/modal-invoice-pj/modal-invoice-pj-base.class.js +0 -210
  163. package/esm5/components/modal-invoice-pj/modal-invoice-pj-options.interface.js +0 -1
  164. package/esm5/components/modal-invoice-pj/modal-shared-imports.js +0 -32
  165. package/esm5/components/modal-invoice-pj/services/agro-invoice/agro-invoice.module.js +0 -31
  166. package/esm5/components/modal-invoice-pj/services/agro-invoice/agro-invoice.service.js +0 -56
  167. package/esm5/components/modal-invoice-pj/services/agro-invoice/index.js +0 -3
  168. package/esm5/components/modal-invoice-pj/services/agro-invoice/interfaces.js +0 -13
  169. package/esm5/pipe/cnpj-cpf/cnpj-cpf.pipe.js +0 -35
  170. package/esm5/pipe/cnpj-cpf/cnpj-cpf.pipe.module.js +0 -18
  171. package/esm5/pipe/cnpj-cpf/index.js +0 -3
  172. package/esm5/pipe/kilogram/index.js +0 -3
  173. package/esm5/pipe/kilogram/kilogram.module.js +0 -20
  174. package/esm5/pipe/kilogram/kilogram.pipe.js +0 -41
  175. package/esm5/pipe/stringifier/index.js +0 -3
  176. package/esm5/pipe/stringifier/stringifier.pipe.js +0 -16
  177. package/esm5/pipe/stringifier/stringifier.pipe.module.js +0 -18
  178. package/esm5/pipe/telephone/index.js +0 -3
  179. package/esm5/pipe/telephone/telephone.pipe.js +0 -95
  180. package/esm5/pipe/telephone/telephone.pipe.module.js +0 -18
  181. package/esm5/services/producer-invoice/producer-invoice-dto.js +0 -1
  182. package/esm5/services/producer-invoice/producer-invoice.service.js +0 -72
  183. package/pipe/cnpj-cpf/cnpj-cpf.pipe.d.ts +0 -4
  184. package/pipe/cnpj-cpf/cnpj-cpf.pipe.module.d.ts +0 -2
  185. package/pipe/cnpj-cpf/index.d.ts +0 -2
  186. package/pipe/kilogram/index.d.ts +0 -2
  187. package/pipe/kilogram/kilogram.module.d.ts +0 -2
  188. package/pipe/kilogram/kilogram.pipe.d.ts +0 -8
  189. package/pipe/stringifier/index.d.ts +0 -2
  190. package/pipe/stringifier/stringifier.pipe.d.ts +0 -9
  191. package/pipe/stringifier/stringifier.pipe.module.d.ts +0 -2
  192. package/pipe/telephone/index.d.ts +0 -2
  193. package/pipe/telephone/telephone.pipe.d.ts +0 -21
  194. package/pipe/telephone/telephone.pipe.module.d.ts +0 -2
  195. package/services/producer-invoice/producer-invoice.service.d.ts +0 -18
@@ -68,10 +68,4 @@ export declare class AgroNumberUtils {
68
68
  * @returns O número arredondado.
69
69
  */
70
70
  static roundTo(value: number, decimals?: number): number;
71
- /**
72
- * Pega apenas números, convertendo strings para números e retornarndo apenas o maior inteiro encontrado.
73
- * @param value - O valor a ser processado.
74
- * @returns O maior número inteiro encontrado ou 0 se nenhum número for encontrado.
75
- */
76
- static getNearInteger(value: any): number;
77
71
  }
@@ -1,3 +1,4 @@
1
+ import { FieldType } from "@seniorsistemas/angular-components";
1
2
  export { AgroObjectUtils as AOU, AgroObjectUtils as ObjectUtils };
2
3
  /**
3
4
  * Classe utilitária para operações de objeto.
@@ -158,4 +159,13 @@ export declare class AgroObjectUtils {
158
159
  * @param value
159
160
  */
160
161
  static fromString(value: string): any;
162
+ /**
163
+ * Retorna o valor de uma propriedade de um objeto, formatado conforme o tipo especificado.
164
+ *
165
+ * @param obj - O objeto do qual a propriedade será extraída.
166
+ * @param path - O caminho da propriedade no objeto (pode ser um caminho aninhado).
167
+ * @param type - O tipo de formatação a ser aplicada (String, Date, Money).
168
+ * @returns O valor formatado da propriedade.
169
+ */
170
+ static getPropAndFormatValue(obj: any, path: any, type: FieldType): any;
161
171
  }
@@ -149,7 +149,4 @@ export declare const AGRO_REGEX: {
149
149
  * Formato: AAA-0000
150
150
  */
151
151
  isOldLicensePlate: RegExp;
152
- isISODate: RegExp;
153
- isISOTime: RegExp;
154
- isISODateTime: RegExp;
155
152
  };
@@ -91,7 +91,4 @@ export declare class AgroStringUtils {
91
91
  static applyMask(value: string, mask: AgroStringMasks | string): string;
92
92
  static isValid(str: NullableString): boolean;
93
93
  static isInvalid(str: NullableString): boolean;
94
- static isISODate(value: string): boolean;
95
- static isISOTime(value: string): boolean;
96
- static isISODatetime(value: string): boolean;
97
94
  }
@@ -1,33 +1,25 @@
1
- import { EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
2
- import { FormBuilder, FormGroup } from '@angular/forms';
3
- import { BadgeColors, ButtonPriority, FormField, Step } from '@seniorsistemas/angular-components';
4
- import { DialogService, MessageService } from 'primeng';
5
- import { AGRO_NUMBERS } from '../../enums/agro-numbers.enum';
6
- import { LibTranslationService } from '../../services/lib-translation.service';
7
- import { WebsocketService } from '../../services/websocket';
8
- import { CancelEventDialogConfig } from '../cancel-event-dialog/cancel-event-dialog-config';
9
- import { EventOrigin } from './common/event-origin';
10
- import { EventStatus } from './common/event-status';
11
- import { E070Emp } from './service/e070emp/e070emp';
12
- import { E070Fil } from './service/e070fil/e070fil';
13
- import { EventControlItemService } from './service/event-control-item/event-control-item.service';
14
- import { EventControlService } from './service/event-control/event-control.service';
15
- import { PaginatorStorageService } from './service/paginator-storage.service';
16
- import { TransferService } from './service/transfer/transfer.service';
17
- import { FixationService } from './service/fixation-entity/fixation.service';
18
- import { ProducerInvoiceService } from '../../services/producer-invoice/producer-invoice.service';
1
+ import { EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges } from "@angular/core";
2
+ import { FormBuilder, FormGroup } from "@angular/forms";
3
+ import { BadgeColors, ButtonPriority, FormField, Step } from "@seniorsistemas/angular-components";
4
+ import { DialogService, MessageService } from "primeng";
5
+ import { AGRO_NUMBERS } from "../../enums/agro-numbers.enum";
6
+ import { LibTranslationService } from "../../services/lib-translation.service";
7
+ import { WebsocketService } from "../../services/websocket";
8
+ import { CancelEventDialogConfig } from "../cancel-event-dialog/cancel-event-dialog-config";
9
+ import { EventOrigin } from "./common/event-origin";
10
+ import { EventStatus } from "./common/event-status";
11
+ import { E070Emp } from "./service/e070emp/e070emp";
12
+ import { E070Fil } from "./service/e070fil/e070fil";
13
+ import { EventControlBoardService } from "./service/event-control-board.service";
14
+ import { PaginatorStorageService } from "./service/paginator-storage.service";
19
15
  export declare class EventControlBoardComponent implements OnInit, OnDestroy, OnChanges {
20
16
  private readonly translate;
21
17
  private readonly formBuilder;
22
18
  private readonly websocketService;
19
+ private readonly eventControlBoardService;
23
20
  private readonly paginatorStorageService;
24
21
  private readonly messageService;
25
22
  private readonly dialogService;
26
- eventControlService: EventControlService;
27
- eventControlItemService: EventControlItemService;
28
- transferService: TransferService;
29
- producerInvoiceService: ProducerInvoiceService;
30
- fixationService: FixationService;
31
23
  company: E070Emp;
32
24
  branch: E070Fil;
33
25
  controlCode: string[];
@@ -42,7 +34,7 @@ export declare class EventControlBoardComponent implements OnInit, OnDestroy, On
42
34
  producerInvoice: any;
43
35
  steps: Step[];
44
36
  selectedStep: any;
45
- eventId: '';
37
+ eventId: "";
46
38
  showSidebar: boolean;
47
39
  showReprocessButton: boolean;
48
40
  sidebarTitle: string;
@@ -64,7 +56,7 @@ export declare class EventControlBoardComponent implements OnInit, OnDestroy, On
64
56
  private readonly eventItem;
65
57
  private readonly inputFieldsPath;
66
58
  private readonly invoiceTypeTranslate;
67
- constructor(translate: LibTranslationService, formBuilder: FormBuilder, websocketService: WebsocketService, paginatorStorageService: PaginatorStorageService, messageService: MessageService, dialogService: DialogService, eventControlService: EventControlService, eventControlItemService: EventControlItemService, transferService: TransferService, producerInvoiceService: ProducerInvoiceService, fixationService: FixationService);
59
+ constructor(translate: LibTranslationService, formBuilder: FormBuilder, websocketService: WebsocketService, eventControlBoardService: EventControlBoardService, paginatorStorageService: PaginatorStorageService, messageService: MessageService, dialogService: DialogService);
68
60
  ngOnInit(): Promise<void>;
69
61
  ngOnChanges(changes: SimpleChanges): void;
70
62
  private updateCompanyAndBranchFormFields;
@@ -1,6 +1,7 @@
1
+ export { EventControlBoardComponent } from "./event-control-board.component";
2
+ export { EventControlBoardService } from "./service/event-control-board.service";
1
3
  export { SharedModule } from "./shared.module";
2
4
  export { EventControlBoardModule } from "./event-control-board.module";
3
- export { EventControlBoardComponent } from "./event-control-board.component";
4
5
  export { EventStepsModule } from "../event-steps/index";
5
6
  export { FixationModule } from "./service/fixation-entity/fixation.module";
6
7
  export { E001pesModule } from "./service/e001pes/e001pes.module";
@@ -14,6 +15,7 @@ export { EventControlItemModule } from "./service/event-control-item/event-contr
14
15
  export { ExternalInvoiceModule } from "./service/external-invoice/external-invoice.module";
15
16
  export { InvoiceModule } from "./service/invoice/invoice.module";
16
17
  export { OriginationModule } from "./service/origination/origination.module";
18
+ export { ProducerInvoiceModule } from "./service/producer-invoice/producer-invoice.module";
17
19
  export { RuralEstateModule } from "./service/rural-estate/rural-estate.module";
18
20
  export { TicketModule } from "./service/ticket/ticket.module";
19
21
  export { PaginatorStorageService } from "./service/paginator-storage.service";
@@ -1,6 +1,6 @@
1
- import { HttpParams, HttpClient } from '@angular/common/http';
2
- import { MessageService, SortMeta } from 'primeng';
3
- import { LibTranslationService } from '../../../services/lib-translation.service';
1
+ import { HttpParams, HttpClient } from "@angular/common/http";
2
+ import { MessageService, SortMeta } from "primeng";
3
+ import { LibTranslationService } from "../../../services/lib-translation.service";
4
4
  export declare class EntityService<T> {
5
5
  protected http: HttpClient;
6
6
  protected messageService: MessageService;
@@ -0,0 +1,13 @@
1
+ import { EventControlItemService } from "./event-control-item/event-control-item.service";
2
+ import { EventControlService } from "./event-control/event-control.service";
3
+ import { ProducerInvoiceService } from "./producer-invoice/producer-invoice.service";
4
+ import { TransferService } from "./transfer/transfer.service";
5
+ import { FixationService } from "./fixation-entity/fixation.service";
6
+ export declare class EventControlBoardService {
7
+ eventControlService: EventControlService;
8
+ eventControlItemService: EventControlItemService;
9
+ transferService: TransferService;
10
+ producerInvoiceService: ProducerInvoiceService;
11
+ fixationService: FixationService;
12
+ constructor(eventControlService: EventControlService, eventControlItemService: EventControlItemService, transferService: TransferService, producerInvoiceService: ProducerInvoiceService, fixationService: FixationService);
13
+ }
@@ -11,7 +11,7 @@ import { DocumentsToIssue } from "../../common/documentsToIssue";
11
11
  import { RuralEstateDto } from "../rural-estate/rural-estate-dto";
12
12
  import { TicketDto } from "../ticket/ticket-dto";
13
13
  import { ExternalInvoiceDto } from "../external-invoice/external-invoice-dto";
14
- import { ProducerInvoiceDto } from "../../../../services/producer-invoice/producer-invoice-dto";
14
+ import { ProducerInvoiceDto } from "../producer-invoice/producer-invoice-dto";
15
15
  import { ControlStatus } from "../../common/control-status";
16
16
  export interface OriginationDto {
17
17
  id?: string;
@@ -1,7 +1,7 @@
1
- import { E001pesDto } from "../../components/event-control-board/service/e001pes/e001pes-dto";
2
- import { ExternalInvoiceDto } from "../../components/event-control-board/service/external-invoice/external-invoice-dto";
3
- import { OriginationDto } from "../../components/event-control-board/service/origination/origination-dto";
4
- import { RuralEstateDto } from "../../components/event-control-board/service/rural-estate/rural-estate-dto";
1
+ import { E001pesDto } from "../e001pes/e001pes-dto";
2
+ import { ExternalInvoiceDto } from "../external-invoice/external-invoice-dto";
3
+ import { OriginationDto } from "../origination/origination-dto";
4
+ import { RuralEstateDto } from "../rural-estate/rural-estate-dto";
5
5
  export interface ProducerInvoiceDto {
6
6
  id?: string;
7
7
  balanceEntryControl?: OriginationDto;
@@ -0,0 +1,2 @@
1
+ export declare class ProducerInvoiceModule {
2
+ }
@@ -0,0 +1,11 @@
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { MessageService } from 'primeng/api';
3
+ import { LibTranslationService as TranslateService } from "../../../../services/lib-translation.service";
4
+ import { ProducerInvoiceDto } from '../producer-invoice/producer-invoice-dto';
5
+ import { EntityService } from '../entity-service';
6
+ export declare class ProducerInvoiceService extends EntityService<ProducerInvoiceDto> {
7
+ protected http: HttpClient;
8
+ protected messageService: MessageService;
9
+ protected translate: TranslateService;
10
+ constructor(http: HttpClient, messageService: MessageService, translate: TranslateService);
11
+ }
@@ -0,0 +1,10 @@
1
+ import { StatusType, TypeAccount } from "./services/financial/enums";
2
+ export interface FinancialTitleOptions {
3
+ typeAccount: TypeAccount;
4
+ companyId?: string;
5
+ branchId?: string;
6
+ producerId?: string;
7
+ status?: StatusType;
8
+ titleId?: string;
9
+ numberTitle?: string;
10
+ }
@@ -0,0 +1,64 @@
1
+ import { AfterViewInit, EventEmitter, OnDestroy, OnInit } from "@angular/core";
2
+ import { FormArray, FormGroup } from "@angular/forms";
3
+ import { BadgeColors, ButtonPriority, ButtonSize, FieldType } from "@seniorsistemas/angular-components";
4
+ import { LazyLoadEvent, MessageService, Table } from "primeng";
5
+ import { LibTranslationService } from "../../services/lib-translation.service";
6
+ import { FinancialTitleOptions } from "./financial-title-table-options.interface";
7
+ import { AgroFinancialService } from "./services/financial/agro-financial.service";
8
+ import { FinancialTitleListDto, RecordTitleDto } from "./services/financial/intefaces";
9
+ interface ColumnConfig {
10
+ field: string;
11
+ header: string;
12
+ path: string[];
13
+ type: FieldType;
14
+ }
15
+ export declare class FinancialTitleTableComponent implements OnInit, AfterViewInit, OnDestroy {
16
+ private readonly translate;
17
+ private readonly financialService;
18
+ private readonly messageService;
19
+ table: Table;
20
+ options: FinancialTitleOptions;
21
+ selected: FinancialTitleListDto[];
22
+ selectionChange: EventEmitter<any[]>;
23
+ gridData: FinancialTitleListDto[];
24
+ gridTotalRecords: number;
25
+ errorMessage: any;
26
+ tableInitialized: boolean;
27
+ showSidebar: boolean;
28
+ selectedRow: RecordTitleDto;
29
+ gridColumns: ColumnConfig[];
30
+ sidebarFields: any[];
31
+ componentLoading: boolean;
32
+ buttonSize: typeof ButtonSize;
33
+ buttonPriority: typeof ButtonPriority;
34
+ badgeColors: typeof BadgeColors;
35
+ form: FormGroup;
36
+ private ngUnsubscribe;
37
+ private currentListParams;
38
+ get titlesForm(): FormArray;
39
+ constructor(translate: LibTranslationService, financialService: AgroFinancialService, messageService: MessageService);
40
+ ngOnInit(): void;
41
+ ngAfterViewInit(): void;
42
+ ngOnDestroy(): void;
43
+ getPageSize(): any;
44
+ getRowIndex(): number;
45
+ getSortField(): any;
46
+ getSortOrder(): any;
47
+ updateGrid(event: LazyLoadEvent): void;
48
+ onSelectionChange(event: any): void;
49
+ onUnselect(event: any): void;
50
+ showDetails(rowData: any): void;
51
+ closeDetails(): void;
52
+ isLastColumn(index: number, columns: any[]): boolean;
53
+ getStyleColumns(field: string): any;
54
+ getProp(obj: any, col: any): any;
55
+ private subscribeToValuePaidChanges;
56
+ private initRowEdit;
57
+ private applyValidationToRowEdit;
58
+ private getValidatorsForRowEdit;
59
+ private cancelRowEdit;
60
+ private synchronizeCheckboxAndEditableFieldState;
61
+ private getFields;
62
+ private addMessage;
63
+ }
64
+ export {};
@@ -0,0 +1,2 @@
1
+ export declare class FinancialTitleTableModule {
2
+ }
@@ -0,0 +1,4 @@
1
+ export { FinancialTitleTableComponent } from "./financial-title-table.component";
2
+ export { FinancialTitleTableModule } from "./financial-title-table.module";
3
+ export { FinancialTitleOptions } from "./financial-title-table-options.interface";
4
+ export { AgroFinancialService } from "./services/financial/index";
@@ -0,0 +1,23 @@
1
+ import { HttpClient } from "@angular/common/http";
2
+ import { MessageService } from "primeng/api";
3
+ import { Observable } from "rxjs";
4
+ import { AgroEntityService } from "../../../../services/entity-service";
5
+ import { LibTranslationService } from "../../../../services/lib-translation.service";
6
+ import { FinancialQueryDataResponse, RequestListTitlesInput, TitleDto } from "./intefaces";
7
+ export declare class AgroFinancialService extends AgroEntityService<TitleDto> {
8
+ protected http: HttpClient;
9
+ protected messageService: MessageService;
10
+ protected translate: LibTranslationService;
11
+ private readonly pooling;
12
+ constructor(http: HttpClient, messageService: MessageService, translate: LibTranslationService);
13
+ listTitles(input: RequestListTitlesInput): Observable<FinancialQueryDataResponse>;
14
+ private requestListTitles;
15
+ private getListTitlesResponse;
16
+ /**
17
+ * Realiza o polling para obter o resultado da listagem de títulos financeiros
18
+ *
19
+ * @param requestId Id da requisição utlizada na busca pelo resultado
20
+ * @returns
21
+ */
22
+ private pollListTitlesResult;
23
+ }
@@ -0,0 +1,27 @@
1
+ export declare enum TypeAccount {
2
+ PAYABLE = "PAYABLE",
3
+ RECEIVABLE = "RECEIVABLE"
4
+ }
5
+ export declare enum StatusType {
6
+ OPEN = "OPEN",
7
+ PAID = "PAID",
8
+ CANCELLED = "CANCELLED"
9
+ }
10
+ export declare enum TitleFieldsOrderBy {
11
+ NUMBER_TITLE = "NUMBER_TITLE",
12
+ ISSUE_DATE = "ISSUE_DATE",
13
+ DUE_DATE = "DUE_DATE",
14
+ ORIGINAL_VALUE = "ORIGINAL_VALUE",
15
+ OPEN_VALUE = "OPEN_VALUE",
16
+ NET_VALUE = "NET_VALUE",
17
+ STATUS = "STATUS"
18
+ }
19
+ export declare enum OrderByType {
20
+ ASC = "ASC",
21
+ DESC = "DESC"
22
+ }
23
+ export declare enum QueryStatus {
24
+ PENDING = "PENDING",
25
+ FINISHED = "FINISHED",
26
+ FAILED = "FAILED"
27
+ }
@@ -0,0 +1 @@
1
+ export { AgroFinancialService } from "./agro-financial.service";
@@ -0,0 +1,107 @@
1
+ import { OrderByType, QueryStatus, StatusType, TitleFieldsOrderBy, TypeAccount } from "./enums";
2
+ export interface FinancialTitleListDto extends RecordTitleDto {
3
+ valuePaid?: number;
4
+ hasError?: boolean;
5
+ }
6
+ export interface RecordTitleDto {
7
+ id?: string;
8
+ company: RecGenericDto;
9
+ branch: RecGenericDto;
10
+ producer: RecGenericDto;
11
+ numberTitle: string;
12
+ titleType?: RecGenericDto;
13
+ typeAccount: TypeAccount;
14
+ values: RecTitleValuesDto;
15
+ issueDate?: string;
16
+ dueDate?: string;
17
+ status: StatusType;
18
+ }
19
+ export interface RecGenericDto {
20
+ id?: string;
21
+ cod?: string;
22
+ desc?: string;
23
+ }
24
+ export interface RecTitleValuesDto {
25
+ originalValue: number;
26
+ openValue: number;
27
+ discountValue: number;
28
+ otherDiscountValue: number;
29
+ interestValue: number;
30
+ fineValue: number;
31
+ otherAdditionValue: number;
32
+ chargeValue: number;
33
+ monetaryCorrectionValue: number;
34
+ netValue: number;
35
+ withheldTaxValue?: number;
36
+ }
37
+ export interface RequestListTitlesInput {
38
+ pageRequest: RecPageRequest;
39
+ filter: FilterTitle;
40
+ }
41
+ export interface RequestListTitlesOutput {
42
+ requestId: string;
43
+ }
44
+ export interface GetListTitlesResponseInput {
45
+ requestId: string;
46
+ }
47
+ export interface GetListTitlesResponseOutput {
48
+ result: FinancialQueryDataResponse;
49
+ status: QueryStatus;
50
+ message?: string;
51
+ }
52
+ export interface FinancialQueryDataResponse {
53
+ titles: RecordTitleDto[];
54
+ totalElements: number;
55
+ message?: string;
56
+ status: QueryStatus;
57
+ queryId?: string;
58
+ }
59
+ export interface RecPageRequest {
60
+ offset?: number;
61
+ size?: number;
62
+ orderBy?: RecOrderBy;
63
+ }
64
+ export interface RecOrderBy {
65
+ field: TitleFieldsOrderBy;
66
+ order: OrderByType;
67
+ }
68
+ export interface FilterTitle {
69
+ typeAccount: TypeAccount;
70
+ companyId?: string;
71
+ branchId?: string;
72
+ producerId?: string;
73
+ status?: StatusType;
74
+ titleId?: string;
75
+ numberTitle?: string;
76
+ }
77
+ export interface TitleDto {
78
+ id?: string;
79
+ seq: number;
80
+ company: any;
81
+ branch: any;
82
+ producer: any;
83
+ numberTitle: string;
84
+ origin: any;
85
+ application: any;
86
+ typeAccount: any;
87
+ integrationStatus?: any;
88
+ integrationType?: any;
89
+ status: any;
90
+ issueDate?: string;
91
+ dueDate?: string;
92
+ originalValue: number;
93
+ openValue: number;
94
+ observation: string;
95
+ typeId: string;
96
+ groupId: string;
97
+ transactionId: string;
98
+ externalId: string;
99
+ integrationMessage?: string;
100
+ eventControlItemId?: string;
101
+ integrationBatchId?: string;
102
+ createdBy?: string;
103
+ createdDate?: Date;
104
+ lastModifiedBy?: string;
105
+ lastModifiedDate?: Date;
106
+ custom?: any;
107
+ }
@@ -1,4 +1,4 @@
1
1
  export * from "./event-control-board/index";
2
2
  export * from "./event-steps/index";
3
3
  export * from "./cancel-event-dialog/index";
4
- export * from "./modal-invoice-pj/index";
4
+ export * from "./financial-title-table/index";
@@ -108,22 +108,5 @@ export class AgroNumberUtils {
108
108
  const factor = Math.pow(AGRO_NUMBERS.TEN, decimals);
109
109
  return Math.round(value * factor) / factor;
110
110
  }
111
- /**
112
- * Pega apenas números, convertendo strings para números e retornarndo apenas o maior inteiro encontrado.
113
- * @param value - O valor a ser processado.
114
- * @returns O maior número inteiro encontrado ou 0 se nenhum número for encontrado.
115
- */
116
- static getNearInteger(value) {
117
- if (typeof value === "number") {
118
- return Math.floor(value);
119
- }
120
- if (typeof value === "string") {
121
- const numbers = value.match(/\d+/g);
122
- if (numbers && numbers.length > 0) {
123
- return Math.max(...numbers.map(Number));
124
- }
125
- }
126
- return 0;
127
- }
128
111
  }
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1udW1iZXItdXRpbHMuY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbW1vbi9hZ3JvLW51bWJlci11dGlscy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFeEMsTUFBTSxPQUFPLGVBQWU7SUFDeEI7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFRO1FBQzdCLE9BQU8sR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLEtBQUssU0FBUyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEdBQVE7UUFDaEMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQWE7UUFDM0IsT0FBTyxLQUFLLEdBQUcsWUFBWSxDQUFDLEdBQUcsS0FBSyxZQUFZLENBQUMsSUFBSSxDQUFDO0lBQ3RELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBYTtRQUMxQixPQUFPLEtBQUssR0FBRyxZQUFZLENBQUMsR0FBRyxLQUFLLFlBQVksQ0FBQyxJQUFJLENBQUM7SUFDdEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBZSxFQUFFLEtBQWE7UUFDNUMsSUFBSSxLQUFLLEtBQUssWUFBWSxDQUFDLElBQUksRUFBRTtZQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7U0FDakQ7UUFDTCxPQUFPLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQWEsRUFBRSxXQUFtQixLQUFLLEVBQUUsU0FBaUIsT0FBTztRQUMvRSxPQUFPLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUU7WUFDakMsS0FBSyxFQUFFLFVBQVU7WUFDakIsUUFBUSxFQUFFLFFBQVE7U0FDckIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFXLEVBQUUsR0FBVztRQUN6QyxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUU7WUFDWixNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7U0FDbEU7UUFDRCxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFhO1FBQ3hCLElBQUksS0FBSyxJQUFJLFlBQVksQ0FBQyxHQUFHLEVBQUU7WUFDM0IsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFDRCxLQUFLLElBQUksQ0FBQyxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDdkQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxLQUFLLFlBQVksQ0FBQyxJQUFJLEVBQUU7Z0JBQ2pDLE9BQU8sS0FBSyxDQUFDO2FBQ2hCO1NBQ0o7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFhLEVBQUUsV0FBbUIsWUFBWSxDQUFDLEdBQUc7UUFDN0QsSUFBSSxRQUFRLEdBQUcsWUFBWSxDQUFDLElBQUksRUFBRTtZQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7U0FDeEU7UUFDRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDcEQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUM7SUFDL0MsQ0FBQztJQUdEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQVU7UUFDNUIsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDM0IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzVCO1FBRUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDM0IsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNwQyxJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDL0IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2FBQzNDO1NBQ0o7UUFFRCxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDbGFzc2UgZGUgdXRpbGl0w6FyaW9zIHBhcmEgb3BlcmHDp8O1ZXMgY29tIG7Dum1lcm9zLlxyXG4gKi9cclxuXHJcbmltcG9ydCB7IEFHUk9fTlVNQkVSUyB9IGZyb20gXCIuLi9lbnVtc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFncm9OdW1iZXJVdGlscyB7XHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG7Dum1lcm8gw6kgbnVsbyBvdSBpbmRlZmluaWRvLlxyXG4gICAgICogQHBhcmFtIG51bSAtIE8gbsO6bWVybyBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG7Dum1lcm8gZm9yIG51bG8gb3UgaW5kZWZpbmlkbywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNOdWxsT3JVbmRlZmluZWQobnVtOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gbnVtID09PSBudWxsIHx8IG51bSA9PT0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gbsO6bWVybyBuw6NvIMOpIG51bG8gZSBuw6NvIMOpIGluZGVmaW5pZG8uXHJcbiAgICAgKiBAcGFyYW0gbnVtIC0gTyBuw7ptZXJvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gbsO6bWVybyBuw6NvIGZvciBudWxvIGUgbsOjbyBmb3IgaW5kZWZpbmlkbywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNOb3ROdWxsT3JVbmRlZmluZWQobnVtOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIUFncm9OdW1iZXJVdGlscy5pc051bGxPclVuZGVmaW5lZChudW0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gbsO6bWVybyDDqSBwYXIuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHZhbHVlIE8gbsO6bWVybyBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBmb3IgcGFyLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc0V2ZW4odmFsdWU6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHZhbHVlICUgQUdST19OVU1CRVJTLlRXTyA9PT0gQUdST19OVU1CRVJTLlpFUk87XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBuw7ptZXJvIMOpIMOtbXBhci5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgTyBuw7ptZXJvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIGZvciDDrW1wYXIsIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzT2RkKHZhbHVlOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB2YWx1ZSAlIEFHUk9fTlVNQkVSUy5UV08gIT09IEFHUk9fTlVNQkVSUy5aRVJPO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsY3VsYSBhIHBvcmNlbnRhZ2VtIGRlIHVtIHZhbG9yIGVtIHJlbGHDp8OjbyBhIHVtIHRvdGFsLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBwYXJ0aWFsIE8gdmFsb3IgcGFyY2lhbC5cclxuICAgICAqIEBwYXJhbSB0b3RhbCBPIHZhbG9yIHRvdGFsLlxyXG4gICAgICogQHJldHVybnMgQSBwb3JjZW50YWdlbSBjYWxjdWxhZGEuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBwZXJjZW50YWdlKHBhcnRpYWw6IG51bWJlciwgdG90YWw6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICAgICAgaWYgKHRvdGFsID09PSBBR1JPX05VTUJFUlMuWkVSTykge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJPIHRvdGFsIG7Do28gcG9kZSBzZXIgemVyby5cIik7XHJcbiAgICAgICAgfVxyXG4gICAgcmV0dXJuIChwYXJ0aWFsIC8gdG90YWwpICogQUdST19OVU1CRVJTLk9ORV9IVU5EUkVEO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRm9ybWF0YSB1bSBuw7ptZXJvIHBhcmEgbyBmb3JtYXRvIG1vbmV0w6FyaW8uXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHZhbHVlIE8gbsO6bWVybyBhIHNlciBmb3JtYXRhZG8uXHJcbiAgICAgKiBAcGFyYW0gY3VycmVuY3kgTyBzw61tYm9sbyBkYSBtb2VkYSAocGFkcsOjbzogXCJCUkxcIikuXHJcbiAgICAgKiBAcGFyYW0gbG9jYWxlIE8gY8OzZGlnbyBkYSBsb2NhbGlkYWRlIChwYWRyw6NvOiBcInB0LUJSXCIpLlxyXG4gICAgICogQHJldHVybnMgVW1hIHN0cmluZyBubyBmb3JtYXRvIG1vbmV0w6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyB0b0N1cnJlbmN5KHZhbHVlOiBudW1iZXIsIGN1cnJlbmN5OiBzdHJpbmcgPSBcIkJSTFwiLCBsb2NhbGU6IHN0cmluZyA9IFwicHQtQlJcIik6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBJbnRsLk51bWJlckZvcm1hdChsb2NhbGUsIHtcclxuICAgICAgICAgICAgc3R5bGU6IFwiY3VycmVuY3lcIixcclxuICAgICAgICAgICAgY3VycmVuY3k6IGN1cnJlbmN5LFxyXG4gICAgICAgIH0pLmZvcm1hdCh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXJhIHVtIG7Dum1lcm8gYWxlYXTDs3JpbyBubyBpbnRlcnZhbG8gZXNwZWNpZmljYWRvLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBtaW4gTyB2YWxvciBtw61uaW1vIChpbmNsdXNpdm8pLlxyXG4gICAgICogQHBhcmFtIG1heCBPIHZhbG9yIG3DoXhpbW8gKGV4Y2x1c2l2bykuXHJcbiAgICAgKiBAcmV0dXJucyBVbSBuw7ptZXJvIGFsZWF0w7NyaW8gbm8gaW50ZXJ2YWxvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgcmFuZG9tSW5SYW5nZShtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgICAgIGlmIChtYXggPD0gbWluKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk8gdmFsb3IgbcOheGltbyBkZXZlIHNlciBtYWlvciBxdWUgbyBtw61uaW1vLlwiKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIE1hdGgucmFuZG9tKCkgKiAobWF4IC0gbWluKSArIG1pbjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG7Dum1lcm8gw6kgcHJpbW8uXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHZhbHVlIE8gbsO6bWVybyBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBmb3IgcHJpbW8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzUHJpbWUodmFsdWU6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICh2YWx1ZSA8PSBBR1JPX05VTUJFUlMuT05FKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IEFHUk9fTlVNQkVSUy5UV087IGkgPD0gTWF0aC5zcXJ0KHZhbHVlKTsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZSAlIGkgPT09IEFHUk9fTlVNQkVSUy5aRVJPKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBcnJlZG9uZGEgdW0gbsO6bWVybyBwYXJhIGBuYCBjYXNhcyBkZWNpbWFpcy5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgTyBuw7ptZXJvIGEgc2VyIGFycmVkb25kYWRvLlxyXG4gICAgICogQHBhcmFtIGRlY2ltYWxzIE8gbsO6bWVybyBkZSBjYXNhcyBkZWNpbWFpcyAocGFkcsOjbzogMikuXHJcbiAgICAgKiBAcmV0dXJucyBPIG7Dum1lcm8gYXJyZWRvbmRhZG8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyByb3VuZFRvKHZhbHVlOiBudW1iZXIsIGRlY2ltYWxzOiBudW1iZXIgPSBBR1JPX05VTUJFUlMuVFdPKTogbnVtYmVyIHtcclxuICAgICAgICBpZiAoZGVjaW1hbHMgPCBBR1JPX05VTUJFUlMuWkVSTykge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJPIG7Dum1lcm8gZGUgY2FzYXMgZGVjaW1haXMgbsOjbyBwb2RlIHNlciBuZWdhdGl2by5cIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGZhY3RvciA9IE1hdGgucG93KEFHUk9fTlVNQkVSUy5URU4sIGRlY2ltYWxzKTtcclxuICAgICAgICByZXR1cm4gTWF0aC5yb3VuZCh2YWx1ZSAqIGZhY3RvcikgLyBmYWN0b3I7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGVnYSBhcGVuYXMgbsO6bWVyb3MsIGNvbnZlcnRlbmRvIHN0cmluZ3MgcGFyYSBuw7ptZXJvcyBlIHJldG9ybmFybmRvIGFwZW5hcyBvIG1haW9yIGludGVpcm8gZW5jb250cmFkby5cclxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIE8gdmFsb3IgYSBzZXIgcHJvY2Vzc2Fkby5cclxuICAgICAqIEByZXR1cm5zIE8gbWFpb3IgbsO6bWVybyBpbnRlaXJvIGVuY29udHJhZG8gb3UgMCBzZSBuZW5odW0gbsO6bWVybyBmb3IgZW5jb250cmFkby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGdldE5lYXJJbnRlZ2VyKHZhbHVlOiBhbnkpOiBudW1iZXIge1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIE1hdGguZmxvb3IodmFsdWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgICAgICBjb25zdCBudW1iZXJzID0gdmFsdWUubWF0Y2goL1xcZCsvZyk7XHJcbiAgICAgICAgICAgIGlmIChudW1iZXJzICYmIG51bWJlcnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIE1hdGgubWF4KC4uLm51bWJlcnMubWFwKE51bWJlcikpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gMDtcclxuICAgIH1cclxufVxyXG4iXX0=
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1udW1iZXItdXRpbHMuY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbW1vbi9hZ3JvLW51bWJlci11dGlscy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFeEMsTUFBTSxPQUFPLGVBQWU7SUFDeEI7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFRO1FBQzdCLE9BQU8sR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLEtBQUssU0FBUyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEdBQVE7UUFDaEMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQWE7UUFDM0IsT0FBTyxLQUFLLEdBQUcsWUFBWSxDQUFDLEdBQUcsS0FBSyxZQUFZLENBQUMsSUFBSSxDQUFDO0lBQ3RELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBYTtRQUMxQixPQUFPLEtBQUssR0FBRyxZQUFZLENBQUMsR0FBRyxLQUFLLFlBQVksQ0FBQyxJQUFJLENBQUM7SUFDdEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBZSxFQUFFLEtBQWE7UUFDNUMsSUFBSSxLQUFLLEtBQUssWUFBWSxDQUFDLElBQUksRUFBRTtZQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7U0FDakQ7UUFDTCxPQUFPLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQWEsRUFBRSxXQUFtQixLQUFLLEVBQUUsU0FBaUIsT0FBTztRQUMvRSxPQUFPLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUU7WUFDakMsS0FBSyxFQUFFLFVBQVU7WUFDakIsUUFBUSxFQUFFLFFBQVE7U0FDckIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFXLEVBQUUsR0FBVztRQUN6QyxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUU7WUFDWixNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7U0FDbEU7UUFDRCxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFhO1FBQ3hCLElBQUksS0FBSyxJQUFJLFlBQVksQ0FBQyxHQUFHLEVBQUU7WUFDM0IsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFDRCxLQUFLLElBQUksQ0FBQyxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDdkQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxLQUFLLFlBQVksQ0FBQyxJQUFJLEVBQUU7Z0JBQ2pDLE9BQU8sS0FBSyxDQUFDO2FBQ2hCO1NBQ0o7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFhLEVBQUUsV0FBbUIsWUFBWSxDQUFDLEdBQUc7UUFDN0QsSUFBSSxRQUFRLEdBQUcsWUFBWSxDQUFDLElBQUksRUFBRTtZQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7U0FDeEU7UUFDRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDcEQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUM7SUFDL0MsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENsYXNzZSBkZSB1dGlsaXTDoXJpb3MgcGFyYSBvcGVyYcOnw7VlcyBjb20gbsO6bWVyb3MuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgQUdST19OVU1CRVJTIH0gZnJvbSBcIi4uL2VudW1zXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgQWdyb051bWJlclV0aWxzIHtcclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gbsO6bWVybyDDqSBudWxvIG91IGluZGVmaW5pZG8uXHJcbiAgICAgKiBAcGFyYW0gbnVtIC0gTyBuw7ptZXJvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gbsO6bWVybyBmb3IgbnVsbyBvdSBpbmRlZmluaWRvLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc051bGxPclVuZGVmaW5lZChudW06IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBudW0gPT09IG51bGwgfHwgbnVtID09PSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBuw7ptZXJvIG7Do28gw6kgbnVsbyBlIG7Do28gw6kgaW5kZWZpbmlkby5cclxuICAgICAqIEBwYXJhbSBudW0gLSBPIG7Dum1lcm8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBuw7ptZXJvIG7Do28gZm9yIG51bG8gZSBuw6NvIGZvciBpbmRlZmluaWRvLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc05vdE51bGxPclVuZGVmaW5lZChudW06IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhQWdyb051bWJlclV0aWxzLmlzTnVsbE9yVW5kZWZpbmVkKG51bSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBuw7ptZXJvIMOpIHBhci5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgTyBuw7ptZXJvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIGZvciBwYXIsIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzRXZlbih2YWx1ZTogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdmFsdWUgJSBBR1JPX05VTUJFUlMuVFdPID09PSBBR1JPX05VTUJFUlMuWkVSTztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG7Dum1lcm8gw6kgw61tcGFyLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB2YWx1ZSBPIG7Dum1lcm8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgZm9yIMOtbXBhciwgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNPZGQodmFsdWU6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHZhbHVlICUgQUdST19OVU1CRVJTLlRXTyAhPT0gQUdST19OVU1CRVJTLlpFUk87XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxjdWxhIGEgcG9yY2VudGFnZW0gZGUgdW0gdmFsb3IgZW0gcmVsYcOnw6NvIGEgdW0gdG90YWwuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHBhcnRpYWwgTyB2YWxvciBwYXJjaWFsLlxyXG4gICAgICogQHBhcmFtIHRvdGFsIE8gdmFsb3IgdG90YWwuXHJcbiAgICAgKiBAcmV0dXJucyBBIHBvcmNlbnRhZ2VtIGNhbGN1bGFkYS5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIHBlcmNlbnRhZ2UocGFydGlhbDogbnVtYmVyLCB0b3RhbDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICBpZiAodG90YWwgPT09IEFHUk9fTlVNQkVSUy5aRVJPKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk8gdG90YWwgbsOjbyBwb2RlIHNlciB6ZXJvLlwiKTtcclxuICAgICAgICB9XHJcbiAgICByZXR1cm4gKHBhcnRpYWwgLyB0b3RhbCkgKiBBR1JPX05VTUJFUlMuT05FX0hVTkRSRUQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGb3JtYXRhIHVtIG7Dum1lcm8gcGFyYSBvIGZvcm1hdG8gbW9uZXTDoXJpby5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgTyBuw7ptZXJvIGEgc2VyIGZvcm1hdGFkby5cclxuICAgICAqIEBwYXJhbSBjdXJyZW5jeSBPIHPDrW1ib2xvIGRhIG1vZWRhIChwYWRyw6NvOiBcIkJSTFwiKS5cclxuICAgICAqIEBwYXJhbSBsb2NhbGUgTyBjw7NkaWdvIGRhIGxvY2FsaWRhZGUgKHBhZHLDo286IFwicHQtQlJcIikuXHJcbiAgICAgKiBAcmV0dXJucyBVbWEgc3RyaW5nIG5vIGZvcm1hdG8gbW9uZXTDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIHRvQ3VycmVuY3kodmFsdWU6IG51bWJlciwgY3VycmVuY3k6IHN0cmluZyA9IFwiQlJMXCIsIGxvY2FsZTogc3RyaW5nID0gXCJwdC1CUlwiKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gbmV3IEludGwuTnVtYmVyRm9ybWF0KGxvY2FsZSwge1xyXG4gICAgICAgICAgICBzdHlsZTogXCJjdXJyZW5jeVwiLFxyXG4gICAgICAgICAgICBjdXJyZW5jeTogY3VycmVuY3ksXHJcbiAgICAgICAgfSkuZm9ybWF0KHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdlcmEgdW0gbsO6bWVybyBhbGVhdMOzcmlvIG5vIGludGVydmFsbyBlc3BlY2lmaWNhZG8uXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIG1pbiBPIHZhbG9yIG3DrW5pbW8gKGluY2x1c2l2bykuXHJcbiAgICAgKiBAcGFyYW0gbWF4IE8gdmFsb3IgbcOheGltbyAoZXhjbHVzaXZvKS5cclxuICAgICAqIEByZXR1cm5zIFVtIG7Dum1lcm8gYWxlYXTDs3JpbyBubyBpbnRlcnZhbG8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyByYW5kb21JblJhbmdlKG1pbjogbnVtYmVyLCBtYXg6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICAgICAgaWYgKG1heCA8PSBtaW4pIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTyB2YWxvciBtw6F4aW1vIGRldmUgc2VyIG1haW9yIHF1ZSBvIG3DrW5pbW8uXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gTWF0aC5yYW5kb20oKSAqIChtYXggLSBtaW4pICsgbWluO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gbsO6bWVybyDDqSBwcmltby5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgTyBuw7ptZXJvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIGZvciBwcmltbywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNQcmltZSh2YWx1ZTogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHZhbHVlIDw9IEFHUk9fTlVNQkVSUy5PTkUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmb3IgKGxldCBpID0gQUdST19OVU1CRVJTLlRXTzsgaSA8PSBNYXRoLnNxcnQodmFsdWUpOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHZhbHVlICUgaSA9PT0gQUdST19OVU1CRVJTLlpFUk8pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFycmVkb25kYSB1bSBuw7ptZXJvIHBhcmEgYG5gIGNhc2FzIGRlY2ltYWlzLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB2YWx1ZSBPIG7Dum1lcm8gYSBzZXIgYXJyZWRvbmRhZG8uXHJcbiAgICAgKiBAcGFyYW0gZGVjaW1hbHMgTyBuw7ptZXJvIGRlIGNhc2FzIGRlY2ltYWlzIChwYWRyw6NvOiAyKS5cclxuICAgICAqIEByZXR1cm5zIE8gbsO6bWVybyBhcnJlZG9uZGFkby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIHJvdW5kVG8odmFsdWU6IG51bWJlciwgZGVjaW1hbHM6IG51bWJlciA9IEFHUk9fTlVNQkVSUy5UV08pOiBudW1iZXIge1xyXG4gICAgICAgIGlmIChkZWNpbWFscyA8IEFHUk9fTlVNQkVSUy5aRVJPKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk8gbsO6bWVybyBkZSBjYXNhcyBkZWNpbWFpcyBuw6NvIHBvZGUgc2VyIG5lZ2F0aXZvLlwiKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZmFjdG9yID0gTWF0aC5wb3coQUdST19OVU1CRVJTLlRFTiwgZGVjaW1hbHMpO1xyXG4gICAgICAgIHJldHVybiBNYXRoLnJvdW5kKHZhbHVlICogZmFjdG9yKSAvIGZhY3RvcjtcclxuICAgIH1cclxufVxyXG4iXX0=