@senior-gestao-pessoas/payroll-core 8.7.0 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (872) hide show
  1. package/bundles/senior-gestao-pessoas-payroll-core.umd.js +3024 -10904
  2. package/bundles/senior-gestao-pessoas-payroll-core.umd.js.map +1 -1
  3. package/bundles/senior-gestao-pessoas-payroll-core.umd.min.js +1 -1
  4. package/bundles/senior-gestao-pessoas-payroll-core.umd.min.js.map +1 -1
  5. package/components/workstationgroup-lookup/autocomplete.service.d.ts +31 -0
  6. package/esm2015/components/admission-draft-summary/admission-draft-summary.component.js +106 -0
  7. package/esm2015/components/admission-draft-summary/admission-draft-summary.module.js +17 -0
  8. package/esm2015/components/admission-draft-summary/admission-draft-summary.service.js +27 -0
  9. package/esm2015/components/admission-draft-summary/index.js +4 -0
  10. package/esm2015/components/block-ui/block-ui.component.js +19 -0
  11. package/esm2015/components/block-ui/block-ui.module.js +25 -0
  12. package/esm2015/components/block-ui/index.js +3 -0
  13. package/esm2015/components/breadcrumb/breadcrumb.component.js +76 -0
  14. package/esm2015/components/breadcrumb/breadcrumb.module.js +25 -0
  15. package/esm2015/components/breadcrumb/index.js +3 -0
  16. package/esm2015/components/control-messages-error/control-messages-error.component.js +28 -0
  17. package/esm2015/components/control-messages-error/control-messages-error.module.js +17 -0
  18. package/esm2015/components/control-messages-error/index.js +3 -0
  19. package/esm2015/components/custom-fields/custom-fields.component.js +32 -0
  20. package/esm2015/components/custom-fields/custom-fields.module.js +31 -0
  21. package/esm2015/components/custom-fields/index.js +3 -0
  22. package/esm2015/components/data-list/data-list.component.js +305 -0
  23. package/esm2015/components/data-list/data-list.module.js +28 -0
  24. package/esm2015/components/data-list/data-list.service.js +19 -0
  25. package/esm2015/components/data-list/entity-odata-response.js +26 -0
  26. package/esm2015/components/data-list/index.js +2 -0
  27. package/esm2015/components/data-list-rest/data-list-rest.component.js +239 -0
  28. package/esm2015/components/data-list-rest/data-list-rest.module.js +28 -0
  29. package/esm2015/components/data-list-rest/data-list-rest.service.js +19 -0
  30. package/esm2015/components/data-list-rest/index.js +2 -0
  31. package/esm2015/components/directives/directives.module.js +17 -0
  32. package/esm2015/components/directives/index.js +4 -0
  33. package/esm2015/components/directives/name-not-spaces.directive.js +31 -0
  34. package/esm2015/components/directives/only-number.directive.js +41 -0
  35. package/esm2015/components/employee-selector/employee-selector.component.js +65 -0
  36. package/esm2015/components/employee-selector/employee-selector.module.js +18 -0
  37. package/esm2015/components/employee-selector/index.js +3 -0
  38. package/esm2015/components/employee-summary/employee-summary.component.js +108 -0
  39. package/esm2015/components/employee-summary/employee-summary.module.js +17 -0
  40. package/esm2015/components/employee-summary/employee-summary.service.js +33 -0
  41. package/esm2015/components/employee-summary/index.js +4 -0
  42. package/esm2015/components/error-page/error-page.component.js +15 -0
  43. package/esm2015/components/error-page/error-page.module.js +16 -0
  44. package/esm2015/components/error-page/index.js +3 -0
  45. package/esm2015/components/field-validator/field-validator.component.js +40 -0
  46. package/esm2015/components/field-validator/field-validator.module.js +18 -0
  47. package/esm2015/components/field-validator/index.js +3 -0
  48. package/esm2015/components/file-upload/file-upload.component.js +135 -0
  49. package/esm2015/components/file-upload/file-upload.module.js +19 -0
  50. package/esm2015/components/file-upload/file-upload.service.js +44 -0
  51. package/esm2015/components/file-upload/index.js +3 -0
  52. package/esm2015/components/from-to/from-to.component.js +16 -0
  53. package/esm2015/components/from-to/from-to.module.js +19 -0
  54. package/esm2015/components/from-to/index.js +3 -0
  55. package/esm2015/components/historical-bank-account/historical-bank-account-form/historical-bank-account-form.component.js +332 -0
  56. package/esm2015/components/historical-bank-account/historical-bank-account.component.js +329 -0
  57. package/esm2015/components/historical-bank-account/historical-bank-account.module.js +56 -0
  58. package/esm2015/components/historical-bank-account/historical-bank-account.service.js +20 -0
  59. package/esm2015/components/historical-bank-account/index.js +4 -0
  60. package/esm2015/components/historical-bank-account-list/historical-bank-account-list.component.js +223 -0
  61. package/esm2015/components/historical-bank-account-list/historical-bank-account-list.module.js +39 -0
  62. package/esm2015/components/historical-bank-account-list/historical-bank-account-list.service.js +35 -0
  63. package/esm2015/components/historical-bank-account-list/index.js +4 -0
  64. package/esm2015/components/image-cropper/image-crop.component.js +146 -0
  65. package/esm2015/components/image-cropper/image-crop.module.js +39 -0
  66. package/esm2015/components/image-cropper/image-crop.service.js +88 -0
  67. package/esm2015/components/image-cropper/index.js +4 -0
  68. package/esm2015/components/input-date/index.js +3 -0
  69. package/esm2015/components/input-date/input-date.component.js +115 -0
  70. package/esm2015/components/input-date/input-date.module.js +17 -0
  71. package/esm2015/components/input-date-model/index.js +3 -0
  72. package/esm2015/components/input-date-model/input-date-model.component.js +100 -0
  73. package/esm2015/components/input-date-model/input-date-model.module.js +17 -0
  74. package/esm2015/components/input-rest-auto-complete/index.js +4 -0
  75. package/esm2015/components/input-rest-auto-complete/input-rest-auto-complete.component.js +303 -0
  76. package/esm2015/components/input-rest-auto-complete/input-rest-auto-complete.module.js +21 -0
  77. package/esm2015/components/input-rest-auto-complete/input-rest-auto-complete.service.js +20 -0
  78. package/esm2015/components/input-rest-auto-complete-employee/index.js +3 -0
  79. package/esm2015/components/input-rest-auto-complete-employee/input-rest-auto-complete-employee.component.js +190 -0
  80. package/esm2015/components/input-rest-auto-complete-employee/input-rest-auto-complete-employee.module.js +28 -0
  81. package/esm2015/components/input-rest-auto-complete-employee/input-rest-auto-complete-employee.service.js +20 -0
  82. package/esm2015/components/input-rest-auto-complete-employee-model/index.js +3 -0
  83. package/esm2015/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.component.js +179 -0
  84. package/esm2015/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.module.js +28 -0
  85. package/esm2015/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.service.js +20 -0
  86. package/esm2015/components/input-rest-auto-complete-enum/index.js +4 -0
  87. package/esm2015/components/input-rest-auto-complete-enum/input-rest-auto-complete-enum.component.js +146 -0
  88. package/esm2015/components/input-rest-auto-complete-enum/input-rest-auto-complete-enum.module.js +28 -0
  89. package/esm2015/components/input-rest-auto-complete-enum/input-rest-auto-complete-enum.service.js +23 -0
  90. package/esm2015/components/input-rest-auto-complete-jobposition/index.js +4 -0
  91. package/esm2015/components/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.component.js +173 -0
  92. package/esm2015/components/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.module.js +28 -0
  93. package/esm2015/components/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.service.js +20 -0
  94. package/esm2015/components/input-rest-auto-complete-model/index.js +3 -0
  95. package/esm2015/components/input-rest-auto-complete-model/input-rest-auto-complete-model.component.js +227 -0
  96. package/esm2015/components/input-rest-auto-complete-model/input-rest-auto-complete-model.module.js +28 -0
  97. package/esm2015/components/input-rest-auto-complete-model/input-rest-auto-complete-model.service.js +20 -0
  98. package/esm2015/components/input-rest-auto-complete-model-enum/index.js +3 -0
  99. package/esm2015/components/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.component.js +124 -0
  100. package/esm2015/components/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.module.js +28 -0
  101. package/esm2015/components/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.service.js +23 -0
  102. package/esm2015/components/list-rest/index.js +3 -0
  103. package/esm2015/components/list-rest/list-rest.component.js +117 -0
  104. package/esm2015/components/list-rest/list-rest.module.js +33 -0
  105. package/esm2015/components/list-rest/list-rest.service.js +23 -0
  106. package/esm2015/components/lookup/index.js +2 -0
  107. package/esm2015/components/lookup/lookup.component.js +324 -0
  108. package/esm2015/components/lookup/lookup.module.js +20 -0
  109. package/esm2015/components/lookup/lookup.service.js +52 -0
  110. package/esm2015/components/shared/http-client.service.js +165 -0
  111. package/esm2015/components/shared/shared.module.js +21 -0
  112. package/esm2015/components/spinner/index.js +3 -0
  113. package/esm2015/components/spinner/spinner-loader.component.js +12 -0
  114. package/esm2015/components/spinner/spinner-loader.module.js +23 -0
  115. package/esm2015/components/toast/index.js +4 -0
  116. package/esm2015/components/toast/toast.component.js +88 -0
  117. package/esm2015/components/toast/toast.module.js +20 -0
  118. package/esm2015/components/toast/toast.service.js +42 -0
  119. package/esm2015/components/type-admission/index.js +3 -0
  120. package/esm2015/components/type-admission/type-admission.module.js +14 -0
  121. package/esm2015/components/type-admission/type-admission.services.js +62 -0
  122. package/esm2015/components/utils/cnpj-validator.js +62 -0
  123. package/esm2015/components/utils/cpf-validator.js +45 -0
  124. package/esm2015/components/utils/date-validator/date-validators.js +144 -0
  125. package/esm2015/components/utils/helpers.js +476 -0
  126. package/esm2015/components/utils/validations.js +127 -0
  127. package/esm2015/components/vanilla/string-methods.js +22 -0
  128. package/esm2015/components/workstationgroup-lookup/autocomplete.service.js +111 -0
  129. package/esm2015/components/workstationgroup-lookup/index.js +3 -0
  130. package/esm2015/components/workstationgroup-lookup/lookup.service.js +142 -0
  131. package/esm2015/components/workstationgroup-lookup/workstationgroup-lookup.component.js +587 -0
  132. package/esm2015/components/workstationgroup-lookup/workstationgroup-lookup.dto.js +48 -0
  133. package/esm2015/components/workstationgroup-lookup/workstationgroup-lookup.module.js +21 -0
  134. package/esm2015/core/entities/entity-odata-parameter.js +33 -0
  135. package/esm2015/core/entities/index.js +2 -0
  136. package/esm2015/core/enums/companyIndicationType.js +18 -0
  137. package/esm2015/core/enums/comparetype.enumeration.js +14 -0
  138. package/esm2015/core/enums/coreFieldType.js +5 -0
  139. package/esm2015/core/enums/direction.enumeration.js +6 -0
  140. package/esm2015/core/enums/httpRequestType.js +6 -0
  141. package/esm2015/core/enums/index.js +14 -0
  142. package/esm2015/core/enums/menu-type.enumeration.js +6 -0
  143. package/esm2015/core/enums/moduleType.js +22 -0
  144. package/esm2015/core/enums/operators.enumeration.js +14 -0
  145. package/esm2015/core/enums/parameter-type.enumeration.js +12 -0
  146. package/esm2015/core/enums/report-format.enumeration.js +12 -0
  147. package/esm2015/core/enums/report-stage.enumeration.js +12 -0
  148. package/esm2015/core/enums/serviceType.js +9 -0
  149. package/esm2015/core/enums/usingType.js +42 -0
  150. package/esm2015/core/interfaces/date-compare-options.js +1 -0
  151. package/esm2015/core/interfaces/date-validate-options.js +1 -0
  152. package/esm2015/core/interfaces/field-validators-object.js +1 -0
  153. package/esm2015/core/interfaces/index.js +1 -0
  154. package/esm2015/core/interfaces/pagination-data.js +1 -0
  155. package/esm2015/core/interfaces/report/domain-service.interface.js +1 -0
  156. package/esm2015/core/interfaces/report/generation-status.interface.js +1 -0
  157. package/esm2015/core/interfaces/report/get-parameters-out.interface.js +1 -0
  158. package/esm2015/core/interfaces/report/index.js +1 -0
  159. package/esm2015/core/interfaces/report/lookup-parameter.interface.js +1 -0
  160. package/esm2015/core/interfaces/report/parameter-def.interface.js +1 -0
  161. package/esm2015/core/interfaces/report/parameter-value.interface.js +1 -0
  162. package/esm2015/core/interfaces/report/report-header.interface.js +1 -0
  163. package/esm2015/core/interfaces/report/report-in.interface.js +1 -0
  164. package/esm2015/core/interfaces/report/report-menu.interface.js +1 -0
  165. package/esm2015/core/interfaces/report/report-out.interface.js +1 -0
  166. package/esm2015/core/interfaces/report/report.interface.js +1 -0
  167. package/esm2015/public_api.js +52 -58
  168. package/esm2015/senior-gestao-pessoas-payroll-core.js +19 -24
  169. package/esm2015/services/autocomplete-parameters.service.js +116 -0
  170. package/esm2015/services/company-indications.service.js +42 -0
  171. package/esm2015/services/form-comparator.service.js +99 -0
  172. package/esm2015/services/integration.service.js +19 -0
  173. package/esm2015/services/lookup-parameters.service.js +345 -0
  174. package/esm2015/services/permissions.service.js +89 -0
  175. package/esm2015/services/report.service.js +109 -0
  176. package/esm2015/services/services.module.js +29 -0
  177. package/esm2015/services/workflow-data.service.js +26 -0
  178. package/esm2015/services/workflow-integrator.service.js +248 -0
  179. package/esm5/components/admission-draft-summary/admission-draft-summary.component.js +109 -0
  180. package/esm5/components/admission-draft-summary/admission-draft-summary.module.js +20 -0
  181. package/esm5/components/admission-draft-summary/admission-draft-summary.service.js +28 -0
  182. package/esm5/components/admission-draft-summary/index.js +4 -0
  183. package/esm5/components/block-ui/block-ui.component.js +22 -0
  184. package/esm5/components/block-ui/block-ui.module.js +28 -0
  185. package/esm5/components/block-ui/index.js +3 -0
  186. package/esm5/components/breadcrumb/breadcrumb.component.js +79 -0
  187. package/esm5/components/breadcrumb/breadcrumb.module.js +28 -0
  188. package/esm5/components/breadcrumb/index.js +3 -0
  189. package/esm5/components/control-messages-error/control-messages-error.component.js +34 -0
  190. package/esm5/components/control-messages-error/control-messages-error.module.js +20 -0
  191. package/esm5/components/control-messages-error/index.js +3 -0
  192. package/esm5/components/custom-fields/custom-fields.component.js +33 -0
  193. package/esm5/components/custom-fields/custom-fields.module.js +34 -0
  194. package/esm5/components/custom-fields/index.js +3 -0
  195. package/esm5/components/data-list/data-list.component.js +338 -0
  196. package/esm5/components/data-list/data-list.module.js +31 -0
  197. package/esm5/components/data-list/data-list.service.js +20 -0
  198. package/esm5/components/data-list/entity-odata-response.js +40 -0
  199. package/esm5/components/data-list/index.js +2 -0
  200. package/esm5/components/data-list-rest/data-list-rest.component.js +264 -0
  201. package/esm5/components/data-list-rest/data-list-rest.module.js +31 -0
  202. package/esm5/components/data-list-rest/data-list-rest.service.js +20 -0
  203. package/esm5/components/data-list-rest/index.js +2 -0
  204. package/esm5/components/directives/directives.module.js +20 -0
  205. package/esm5/components/directives/index.js +4 -0
  206. package/esm5/components/directives/name-not-spaces.directive.js +32 -0
  207. package/esm5/components/directives/only-number.directive.js +42 -0
  208. package/esm5/components/employee-selector/employee-selector.component.js +75 -0
  209. package/esm5/components/employee-selector/employee-selector.module.js +21 -0
  210. package/esm5/components/employee-selector/index.js +3 -0
  211. package/esm5/components/employee-summary/employee-summary.component.js +111 -0
  212. package/esm5/components/employee-summary/employee-summary.module.js +20 -0
  213. package/esm5/components/employee-summary/employee-summary.service.js +34 -0
  214. package/esm5/components/employee-summary/index.js +4 -0
  215. package/esm5/components/error-page/error-page.component.js +17 -0
  216. package/esm5/components/error-page/error-page.module.js +19 -0
  217. package/esm5/components/error-page/index.js +3 -0
  218. package/esm5/components/field-validator/field-validator.component.js +42 -0
  219. package/esm5/components/field-validator/field-validator.module.js +21 -0
  220. package/esm5/components/field-validator/index.js +3 -0
  221. package/esm5/components/file-upload/file-upload.component.js +138 -0
  222. package/esm5/components/file-upload/file-upload.module.js +22 -0
  223. package/esm5/components/file-upload/file-upload.service.js +45 -0
  224. package/esm5/components/file-upload/index.js +3 -0
  225. package/esm5/components/from-to/from-to.component.js +18 -0
  226. package/esm5/components/from-to/from-to.module.js +22 -0
  227. package/esm5/components/from-to/index.js +3 -0
  228. package/esm5/components/historical-bank-account/historical-bank-account-form/historical-bank-account-form.component.js +353 -0
  229. package/esm5/components/historical-bank-account/historical-bank-account.component.js +363 -0
  230. package/esm5/components/historical-bank-account/historical-bank-account.module.js +59 -0
  231. package/esm5/components/historical-bank-account/historical-bank-account.service.js +22 -0
  232. package/esm5/components/historical-bank-account/index.js +4 -0
  233. package/esm5/components/historical-bank-account-list/historical-bank-account-list.component.js +243 -0
  234. package/esm5/components/historical-bank-account-list/historical-bank-account-list.module.js +42 -0
  235. package/esm5/components/historical-bank-account-list/historical-bank-account-list.service.js +37 -0
  236. package/esm5/components/historical-bank-account-list/index.js +4 -0
  237. package/esm5/components/image-cropper/image-crop.component.js +164 -0
  238. package/esm5/components/image-cropper/image-crop.module.js +41 -0
  239. package/esm5/components/image-cropper/image-crop.service.js +106 -0
  240. package/esm5/components/image-cropper/index.js +4 -0
  241. package/esm5/components/input-date/index.js +3 -0
  242. package/esm5/components/input-date/input-date.component.js +129 -0
  243. package/esm5/components/input-date/input-date.module.js +20 -0
  244. package/esm5/components/input-date-model/index.js +3 -0
  245. package/esm5/components/input-date-model/input-date-model.component.js +110 -0
  246. package/esm5/components/input-date-model/input-date-model.module.js +20 -0
  247. package/esm5/components/input-rest-auto-complete/index.js +4 -0
  248. package/esm5/components/input-rest-auto-complete/input-rest-auto-complete.component.js +317 -0
  249. package/esm5/components/input-rest-auto-complete/input-rest-auto-complete.module.js +24 -0
  250. package/esm5/components/input-rest-auto-complete/input-rest-auto-complete.service.js +22 -0
  251. package/esm5/components/input-rest-auto-complete-employee/index.js +3 -0
  252. package/esm5/components/input-rest-auto-complete-employee/input-rest-auto-complete-employee.component.js +192 -0
  253. package/esm5/components/input-rest-auto-complete-employee/input-rest-auto-complete-employee.module.js +31 -0
  254. package/esm5/components/input-rest-auto-complete-employee/input-rest-auto-complete-employee.service.js +21 -0
  255. package/esm5/components/input-rest-auto-complete-employee-model/index.js +3 -0
  256. package/esm5/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.component.js +185 -0
  257. package/esm5/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.module.js +31 -0
  258. package/esm5/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.service.js +21 -0
  259. package/esm5/components/input-rest-auto-complete-enum/index.js +4 -0
  260. package/esm5/components/input-rest-auto-complete-enum/input-rest-auto-complete-enum.component.js +162 -0
  261. package/esm5/components/input-rest-auto-complete-enum/input-rest-auto-complete-enum.module.js +31 -0
  262. package/esm5/components/input-rest-auto-complete-enum/input-rest-auto-complete-enum.service.js +24 -0
  263. package/esm5/components/input-rest-auto-complete-jobposition/index.js +4 -0
  264. package/esm5/components/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.component.js +176 -0
  265. package/esm5/components/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.module.js +31 -0
  266. package/esm5/components/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.service.js +21 -0
  267. package/esm5/components/input-rest-auto-complete-model/index.js +3 -0
  268. package/esm5/components/input-rest-auto-complete-model/input-rest-auto-complete-model.component.js +234 -0
  269. package/esm5/components/input-rest-auto-complete-model/input-rest-auto-complete-model.module.js +31 -0
  270. package/esm5/components/input-rest-auto-complete-model/input-rest-auto-complete-model.service.js +22 -0
  271. package/esm5/components/input-rest-auto-complete-model-enum/index.js +3 -0
  272. package/esm5/components/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.component.js +130 -0
  273. package/esm5/components/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.module.js +31 -0
  274. package/esm5/components/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.service.js +24 -0
  275. package/esm5/components/list-rest/index.js +3 -0
  276. package/esm5/components/list-rest/list-rest.component.js +119 -0
  277. package/esm5/components/list-rest/list-rest.module.js +36 -0
  278. package/esm5/components/list-rest/list-rest.service.js +24 -0
  279. package/esm5/components/lookup/index.js +2 -0
  280. package/esm5/components/lookup/lookup.component.js +339 -0
  281. package/esm5/components/lookup/lookup.module.js +23 -0
  282. package/esm5/components/lookup/lookup.service.js +54 -0
  283. package/esm5/components/shared/http-client.service.js +179 -0
  284. package/esm5/components/shared/shared.module.js +22 -0
  285. package/esm5/components/spinner/index.js +3 -0
  286. package/esm5/components/spinner/spinner-loader.component.js +15 -0
  287. package/esm5/components/spinner/spinner-loader.module.js +26 -0
  288. package/esm5/components/toast/index.js +4 -0
  289. package/esm5/components/toast/toast.component.js +88 -0
  290. package/esm5/components/toast/toast.module.js +23 -0
  291. package/esm5/components/toast/toast.service.js +47 -0
  292. package/esm5/components/type-admission/index.js +3 -0
  293. package/esm5/components/type-admission/type-admission.module.js +17 -0
  294. package/esm5/components/type-admission/type-admission.services.js +75 -0
  295. package/esm5/components/utils/cnpj-validator.js +66 -0
  296. package/esm5/components/utils/cpf-validator.js +49 -0
  297. package/esm5/components/utils/date-validator/date-validators.js +149 -0
  298. package/esm5/components/utils/helpers.js +502 -0
  299. package/esm5/components/utils/validations.js +131 -0
  300. package/esm5/components/vanilla/string-methods.js +24 -0
  301. package/esm5/components/workstationgroup-lookup/autocomplete.service.js +124 -0
  302. package/esm5/components/workstationgroup-lookup/index.js +3 -0
  303. package/esm5/components/workstationgroup-lookup/lookup.service.js +147 -0
  304. package/esm5/components/workstationgroup-lookup/workstationgroup-lookup.component.js +609 -0
  305. package/esm5/components/workstationgroup-lookup/workstationgroup-lookup.dto.js +50 -0
  306. package/esm5/components/workstationgroup-lookup/workstationgroup-lookup.module.js +24 -0
  307. package/esm5/core/entities/entity-odata-parameter.js +47 -0
  308. package/esm5/core/entities/index.js +2 -0
  309. package/esm5/core/enums/companyIndicationType.js +18 -0
  310. package/esm5/core/enums/comparetype.enumeration.js +14 -0
  311. package/esm5/core/enums/coreFieldType.js +5 -0
  312. package/esm5/core/enums/direction.enumeration.js +6 -0
  313. package/esm5/core/enums/httpRequestType.js +6 -0
  314. package/esm5/core/enums/index.js +14 -0
  315. package/esm5/core/enums/menu-type.enumeration.js +6 -0
  316. package/esm5/core/enums/moduleType.js +22 -0
  317. package/esm5/core/enums/operators.enumeration.js +14 -0
  318. package/esm5/core/enums/parameter-type.enumeration.js +12 -0
  319. package/esm5/core/enums/report-format.enumeration.js +12 -0
  320. package/esm5/core/enums/report-stage.enumeration.js +12 -0
  321. package/esm5/core/enums/serviceType.js +9 -0
  322. package/esm5/core/enums/usingType.js +42 -0
  323. package/esm5/core/interfaces/date-compare-options.js +1 -0
  324. package/esm5/core/interfaces/date-validate-options.js +1 -0
  325. package/esm5/core/interfaces/field-validators-object.js +1 -0
  326. package/esm5/core/interfaces/index.js +1 -0
  327. package/esm5/core/interfaces/pagination-data.js +1 -0
  328. package/esm5/core/interfaces/report/domain-service.interface.js +1 -0
  329. package/esm5/core/interfaces/report/generation-status.interface.js +1 -0
  330. package/esm5/core/interfaces/report/get-parameters-out.interface.js +1 -0
  331. package/esm5/core/interfaces/report/index.js +1 -0
  332. package/esm5/core/interfaces/report/lookup-parameter.interface.js +1 -0
  333. package/esm5/core/interfaces/report/parameter-def.interface.js +1 -0
  334. package/esm5/core/interfaces/report/parameter-value.interface.js +1 -0
  335. package/esm5/core/interfaces/report/report-header.interface.js +1 -0
  336. package/esm5/core/interfaces/report/report-in.interface.js +1 -0
  337. package/esm5/core/interfaces/report/report-menu.interface.js +1 -0
  338. package/esm5/core/interfaces/report/report-out.interface.js +1 -0
  339. package/esm5/core/interfaces/report/report.interface.js +1 -0
  340. package/esm5/public_api.js +52 -58
  341. package/esm5/senior-gestao-pessoas-payroll-core.js +19 -24
  342. package/esm5/services/autocomplete-parameters.service.js +129 -0
  343. package/esm5/services/company-indications.service.js +43 -0
  344. package/esm5/services/form-comparator.service.js +119 -0
  345. package/esm5/services/integration.service.js +20 -0
  346. package/esm5/services/lookup-parameters.service.js +362 -0
  347. package/esm5/services/permissions.service.js +100 -0
  348. package/esm5/services/report.service.js +110 -0
  349. package/esm5/services/services.module.js +32 -0
  350. package/esm5/services/workflow-data.service.js +27 -0
  351. package/esm5/services/workflow-integrator.service.js +361 -0
  352. package/fesm2015/senior-gestao-pessoas-payroll-core.js +2939 -8866
  353. package/fesm2015/senior-gestao-pessoas-payroll-core.js.map +1 -1
  354. package/fesm5/senior-gestao-pessoas-payroll-core.js +2999 -10876
  355. package/fesm5/senior-gestao-pessoas-payroll-core.js.map +1 -1
  356. package/package.json +7 -1
  357. package/public_api.d.ts +52 -52
  358. package/senior-gestao-pessoas-payroll-core.d.ts +17 -17
  359. package/senior-gestao-pessoas-payroll-core.metadata.json +1 -1
  360. package/esm2015/lib/components/admission-draft-summary/admission-draft-summary.component.js +0 -203
  361. package/esm2015/lib/components/admission-draft-summary/admission-draft-summary.module.js +0 -20
  362. package/esm2015/lib/components/admission-draft-summary/admission-draft-summary.service.js +0 -59
  363. package/esm2015/lib/components/admission-draft-summary/index.js +0 -9
  364. package/esm2015/lib/components/block-ui/block-ui.component.js +0 -26
  365. package/esm2015/lib/components/block-ui/block-ui.module.js +0 -28
  366. package/esm2015/lib/components/block-ui/index.js +0 -8
  367. package/esm2015/lib/components/breadcrumb/breadcrumb.component.js +0 -151
  368. package/esm2015/lib/components/breadcrumb/breadcrumb.module.js +0 -28
  369. package/esm2015/lib/components/breadcrumb/index.js +0 -8
  370. package/esm2015/lib/components/control-messages-error/control-messages-error.component.js +0 -41
  371. package/esm2015/lib/components/control-messages-error/control-messages-error.module.js +0 -20
  372. package/esm2015/lib/components/control-messages-error/index.js +0 -8
  373. package/esm2015/lib/components/custom-fields/custom-fields.component.js +0 -65
  374. package/esm2015/lib/components/custom-fields/custom-fields.module.js +0 -34
  375. package/esm2015/lib/components/custom-fields/index.js +0 -8
  376. package/esm2015/lib/components/data-list/data-list.component.js +0 -456
  377. package/esm2015/lib/components/data-list/data-list.module.js +0 -31
  378. package/esm2015/lib/components/data-list/data-list.service.js +0 -38
  379. package/esm2015/lib/components/data-list/entity-odata-response.js +0 -72
  380. package/esm2015/lib/components/data-list/index.js +0 -7
  381. package/esm2015/lib/components/data-list-rest/data-list-rest.component.js +0 -354
  382. package/esm2015/lib/components/data-list-rest/data-list-rest.module.js +0 -31
  383. package/esm2015/lib/components/data-list-rest/data-list-rest.service.js +0 -38
  384. package/esm2015/lib/components/data-list-rest/index.js +0 -7
  385. package/esm2015/lib/components/directives/directives.module.js +0 -20
  386. package/esm2015/lib/components/directives/index.js +0 -9
  387. package/esm2015/lib/components/directives/name-not-spaces.directive.js +0 -59
  388. package/esm2015/lib/components/directives/only-number.directive.js +0 -60
  389. package/esm2015/lib/components/employee-selector/employee-selector.component.js +0 -145
  390. package/esm2015/lib/components/employee-selector/employee-selector.module.js +0 -21
  391. package/esm2015/lib/components/employee-selector/index.js +0 -8
  392. package/esm2015/lib/components/employee-summary/employee-summary.component.js +0 -200
  393. package/esm2015/lib/components/employee-summary/employee-summary.module.js +0 -20
  394. package/esm2015/lib/components/employee-summary/employee-summary.service.js +0 -74
  395. package/esm2015/lib/components/employee-summary/index.js +0 -9
  396. package/esm2015/lib/components/error-page/error-page.component.js +0 -23
  397. package/esm2015/lib/components/error-page/error-page.module.js +0 -19
  398. package/esm2015/lib/components/error-page/index.js +0 -8
  399. package/esm2015/lib/components/field-validator/field-validator.component.js +0 -64
  400. package/esm2015/lib/components/field-validator/field-validator.module.js +0 -21
  401. package/esm2015/lib/components/field-validator/index.js +0 -8
  402. package/esm2015/lib/components/file-upload/file-upload.component.js +0 -220
  403. package/esm2015/lib/components/file-upload/file-upload.module.js +0 -22
  404. package/esm2015/lib/components/file-upload/file-upload.service.js +0 -83
  405. package/esm2015/lib/components/file-upload/index.js +0 -8
  406. package/esm2015/lib/components/from-to/from-to.component.js +0 -25
  407. package/esm2015/lib/components/from-to/from-to.module.js +0 -22
  408. package/esm2015/lib/components/from-to/index.js +0 -8
  409. package/esm2015/lib/components/historical-bank-account/historical-bank-account-form/historical-bank-account-form.component.js +0 -514
  410. package/esm2015/lib/components/historical-bank-account/historical-bank-account.component.js +0 -542
  411. package/esm2015/lib/components/historical-bank-account/historical-bank-account.module.js +0 -59
  412. package/esm2015/lib/components/historical-bank-account/historical-bank-account.service.js +0 -40
  413. package/esm2015/lib/components/historical-bank-account/index.js +0 -9
  414. package/esm2015/lib/components/historical-bank-account-list/historical-bank-account-list.component.js +0 -359
  415. package/esm2015/lib/components/historical-bank-account-list/historical-bank-account-list.module.js +0 -42
  416. package/esm2015/lib/components/historical-bank-account-list/historical-bank-account-list.service.js +0 -62
  417. package/esm2015/lib/components/historical-bank-account-list/index.js +0 -9
  418. package/esm2015/lib/components/image-cropper/image-crop.component.js +0 -248
  419. package/esm2015/lib/components/image-cropper/image-crop.module.js +0 -38
  420. package/esm2015/lib/components/image-cropper/image-crop.service.js +0 -164
  421. package/esm2015/lib/components/image-cropper/index.js +0 -9
  422. package/esm2015/lib/components/input-date/index.js +0 -8
  423. package/esm2015/lib/components/input-date/input-date.component.js +0 -189
  424. package/esm2015/lib/components/input-date/input-date.module.js +0 -20
  425. package/esm2015/lib/components/input-date-model/index.js +0 -8
  426. package/esm2015/lib/components/input-date-model/input-date-model.component.js +0 -169
  427. package/esm2015/lib/components/input-date-model/input-date-model.module.js +0 -20
  428. package/esm2015/lib/components/input-rest-auto-complete/index.js +0 -9
  429. package/esm2015/lib/components/input-rest-auto-complete/input-rest-auto-complete.component.js +0 -444
  430. package/esm2015/lib/components/input-rest-auto-complete/input-rest-auto-complete.module.js +0 -24
  431. package/esm2015/lib/components/input-rest-auto-complete/input-rest-auto-complete.service.js +0 -40
  432. package/esm2015/lib/components/input-rest-auto-complete-employee/index.js +0 -8
  433. package/esm2015/lib/components/input-rest-auto-complete-employee/input-rest-auto-complete-employee.component.js +0 -263
  434. package/esm2015/lib/components/input-rest-auto-complete-employee/input-rest-auto-complete-employee.module.js +0 -31
  435. package/esm2015/lib/components/input-rest-auto-complete-employee/input-rest-auto-complete-employee.service.js +0 -40
  436. package/esm2015/lib/components/input-rest-auto-complete-employee-model/index.js +0 -8
  437. package/esm2015/lib/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.component.js +0 -253
  438. package/esm2015/lib/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.module.js +0 -31
  439. package/esm2015/lib/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.service.js +0 -40
  440. package/esm2015/lib/components/input-rest-auto-complete-enum/index.js +0 -9
  441. package/esm2015/lib/components/input-rest-auto-complete-enum/input-rest-auto-complete-enum.component.js +0 -209
  442. package/esm2015/lib/components/input-rest-auto-complete-enum/input-rest-auto-complete-enum.module.js +0 -31
  443. package/esm2015/lib/components/input-rest-auto-complete-enum/input-rest-auto-complete-enum.service.js +0 -44
  444. package/esm2015/lib/components/input-rest-auto-complete-jobposition/index.js +0 -9
  445. package/esm2015/lib/components/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.component.js +0 -254
  446. package/esm2015/lib/components/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.module.js +0 -31
  447. package/esm2015/lib/components/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.service.js +0 -40
  448. package/esm2015/lib/components/input-rest-auto-complete-model/index.js +0 -8
  449. package/esm2015/lib/components/input-rest-auto-complete-model/input-rest-auto-complete-model.component.js +0 -331
  450. package/esm2015/lib/components/input-rest-auto-complete-model/input-rest-auto-complete-model.module.js +0 -31
  451. package/esm2015/lib/components/input-rest-auto-complete-model/input-rest-auto-complete-model.service.js +0 -40
  452. package/esm2015/lib/components/input-rest-auto-complete-model-enum/index.js +0 -8
  453. package/esm2015/lib/components/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.component.js +0 -176
  454. package/esm2015/lib/components/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.module.js +0 -31
  455. package/esm2015/lib/components/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.service.js +0 -44
  456. package/esm2015/lib/components/list-rest/index.js +0 -8
  457. package/esm2015/lib/components/list-rest/list-rest.component.js +0 -192
  458. package/esm2015/lib/components/list-rest/list-rest.module.js +0 -36
  459. package/esm2015/lib/components/list-rest/list-rest.service.js +0 -48
  460. package/esm2015/lib/components/lookup/index.js +0 -7
  461. package/esm2015/lib/components/lookup/lookup.component.js +0 -471
  462. package/esm2015/lib/components/lookup/lookup.module.js +0 -23
  463. package/esm2015/lib/components/lookup/lookup.service.js +0 -91
  464. package/esm2015/lib/components/shared/http-client.service.js +0 -293
  465. package/esm2015/lib/components/shared/shared.module.js +0 -26
  466. package/esm2015/lib/components/spinner/index.js +0 -8
  467. package/esm2015/lib/components/spinner/spinner-loader.component.js +0 -15
  468. package/esm2015/lib/components/spinner/spinner-loader.module.js +0 -26
  469. package/esm2015/lib/components/toast/index.js +0 -9
  470. package/esm2015/lib/components/toast/toast.component.js +0 -156
  471. package/esm2015/lib/components/toast/toast.module.js +0 -23
  472. package/esm2015/lib/components/toast/toast.service.js +0 -76
  473. package/esm2015/lib/components/type-admission/index.js +0 -8
  474. package/esm2015/lib/components/type-admission/type-admission.module.js +0 -17
  475. package/esm2015/lib/components/type-admission/type-admission.services.js +0 -135
  476. package/esm2015/lib/components/utils/cnpj-validator.js +0 -82
  477. package/esm2015/lib/components/utils/cpf-validator.js +0 -76
  478. package/esm2015/lib/components/utils/date-validator/date-validators.js +0 -184
  479. package/esm2015/lib/components/utils/helpers.js +0 -737
  480. package/esm2015/lib/components/utils/validations.js +0 -237
  481. package/esm2015/lib/components/vanilla/string-methods.js +0 -37
  482. package/esm2015/lib/components/workstationgroup-lookup/autocomplete.service.js +0 -175
  483. package/esm2015/lib/components/workstationgroup-lookup/index.js +0 -8
  484. package/esm2015/lib/components/workstationgroup-lookup/lookup.service.js +0 -254
  485. package/esm2015/lib/components/workstationgroup-lookup/workstationgroup-lookup.component.js +0 -832
  486. package/esm2015/lib/components/workstationgroup-lookup/workstationgroup-lookup.dto.js +0 -193
  487. package/esm2015/lib/components/workstationgroup-lookup/workstationgroup-lookup.module.js +0 -24
  488. package/esm2015/lib/core/entities/entity-odata-parameter.js +0 -82
  489. package/esm2015/lib/core/entities/index.js +0 -7
  490. package/esm2015/lib/core/enums/companyIndicationType.js +0 -24
  491. package/esm2015/lib/core/enums/comparetype.enumeration.js +0 -16
  492. package/esm2015/lib/core/enums/coreFieldType.js +0 -11
  493. package/esm2015/lib/core/enums/direction.enumeration.js +0 -12
  494. package/esm2015/lib/core/enums/httpRequestType.js +0 -12
  495. package/esm2015/lib/core/enums/index.js +0 -19
  496. package/esm2015/lib/core/enums/menu-type.enumeration.js +0 -12
  497. package/esm2015/lib/core/enums/moduleType.js +0 -28
  498. package/esm2015/lib/core/enums/operators.enumeration.js +0 -20
  499. package/esm2015/lib/core/enums/parameter-type.enumeration.js +0 -18
  500. package/esm2015/lib/core/enums/report-format.enumeration.js +0 -18
  501. package/esm2015/lib/core/enums/report-stage.enumeration.js +0 -18
  502. package/esm2015/lib/core/enums/serviceType.js +0 -15
  503. package/esm2015/lib/core/enums/usingType.js +0 -48
  504. package/esm2015/lib/core/interfaces/date-compare-options.js +0 -19
  505. package/esm2015/lib/core/interfaces/date-validate-options.js +0 -17
  506. package/esm2015/lib/core/interfaces/field-validators-object.js +0 -20
  507. package/esm2015/lib/core/interfaces/index.js +0 -10
  508. package/esm2015/lib/core/interfaces/pagination-data.js +0 -18
  509. package/esm2015/lib/core/interfaces/report/domain-service.interface.js +0 -16
  510. package/esm2015/lib/core/interfaces/report/generation-status.interface.js +0 -22
  511. package/esm2015/lib/core/interfaces/report/get-parameters-out.interface.js +0 -16
  512. package/esm2015/lib/core/interfaces/report/index.js +0 -15
  513. package/esm2015/lib/core/interfaces/report/lookup-parameter.interface.js +0 -20
  514. package/esm2015/lib/core/interfaces/report/parameter-def.interface.js +0 -20
  515. package/esm2015/lib/core/interfaces/report/parameter-value.interface.js +0 -16
  516. package/esm2015/lib/core/interfaces/report/report-header.interface.js +0 -16
  517. package/esm2015/lib/core/interfaces/report/report-in.interface.js +0 -20
  518. package/esm2015/lib/core/interfaces/report/report-menu.interface.js +0 -18
  519. package/esm2015/lib/core/interfaces/report/report-out.interface.js +0 -14
  520. package/esm2015/lib/core/interfaces/report/report.interface.js +0 -48
  521. package/esm2015/lib/services/autocomplete-parameters.service.js +0 -180
  522. package/esm2015/lib/services/company-indications.service.js +0 -101
  523. package/esm2015/lib/services/form-comparator.service.js +0 -208
  524. package/esm2015/lib/services/integration.service.js +0 -37
  525. package/esm2015/lib/services/lookup-parameters.service.js +0 -557
  526. package/esm2015/lib/services/permissions.service.js +0 -218
  527. package/esm2015/lib/services/report.service.js +0 -161
  528. package/esm2015/lib/services/services.module.js +0 -32
  529. package/esm2015/lib/services/workflow-data.service.js +0 -57
  530. package/esm2015/lib/services/workflow-integrator.service.js +0 -416
  531. package/esm5/lib/components/admission-draft-summary/admission-draft-summary.component.js +0 -214
  532. package/esm5/lib/components/admission-draft-summary/admission-draft-summary.module.js +0 -24
  533. package/esm5/lib/components/admission-draft-summary/admission-draft-summary.service.js +0 -71
  534. package/esm5/lib/components/admission-draft-summary/index.js +0 -9
  535. package/esm5/lib/components/block-ui/block-ui.component.js +0 -30
  536. package/esm5/lib/components/block-ui/block-ui.module.js +0 -32
  537. package/esm5/lib/components/block-ui/index.js +0 -8
  538. package/esm5/lib/components/breadcrumb/breadcrumb.component.js +0 -170
  539. package/esm5/lib/components/breadcrumb/breadcrumb.module.js +0 -32
  540. package/esm5/lib/components/breadcrumb/index.js +0 -8
  541. package/esm5/lib/components/control-messages-error/control-messages-error.component.js +0 -48
  542. package/esm5/lib/components/control-messages-error/control-messages-error.module.js +0 -24
  543. package/esm5/lib/components/control-messages-error/index.js +0 -8
  544. package/esm5/lib/components/custom-fields/custom-fields.component.js +0 -70
  545. package/esm5/lib/components/custom-fields/custom-fields.module.js +0 -38
  546. package/esm5/lib/components/custom-fields/index.js +0 -8
  547. package/esm5/lib/components/data-list/data-list.component.js +0 -557
  548. package/esm5/lib/components/data-list/data-list.module.js +0 -35
  549. package/esm5/lib/components/data-list/data-list.service.js +0 -42
  550. package/esm5/lib/components/data-list/entity-odata-response.js +0 -83
  551. package/esm5/lib/components/data-list/index.js +0 -7
  552. package/esm5/lib/components/data-list-rest/data-list-rest.component.js +0 -414
  553. package/esm5/lib/components/data-list-rest/data-list-rest.module.js +0 -35
  554. package/esm5/lib/components/data-list-rest/data-list-rest.service.js +0 -42
  555. package/esm5/lib/components/data-list-rest/index.js +0 -7
  556. package/esm5/lib/components/directives/directives.module.js +0 -24
  557. package/esm5/lib/components/directives/index.js +0 -9
  558. package/esm5/lib/components/directives/name-not-spaces.directive.js +0 -66
  559. package/esm5/lib/components/directives/only-number.directive.js +0 -63
  560. package/esm5/lib/components/employee-selector/employee-selector.component.js +0 -168
  561. package/esm5/lib/components/employee-selector/employee-selector.module.js +0 -25
  562. package/esm5/lib/components/employee-selector/index.js +0 -8
  563. package/esm5/lib/components/employee-summary/employee-summary.component.js +0 -212
  564. package/esm5/lib/components/employee-summary/employee-summary.module.js +0 -24
  565. package/esm5/lib/components/employee-summary/employee-summary.service.js +0 -95
  566. package/esm5/lib/components/employee-summary/index.js +0 -9
  567. package/esm5/lib/components/error-page/error-page.component.js +0 -29
  568. package/esm5/lib/components/error-page/error-page.module.js +0 -23
  569. package/esm5/lib/components/error-page/index.js +0 -8
  570. package/esm5/lib/components/field-validator/field-validator.component.js +0 -74
  571. package/esm5/lib/components/field-validator/field-validator.module.js +0 -25
  572. package/esm5/lib/components/field-validator/index.js +0 -8
  573. package/esm5/lib/components/file-upload/file-upload.component.js +0 -261
  574. package/esm5/lib/components/file-upload/file-upload.module.js +0 -26
  575. package/esm5/lib/components/file-upload/file-upload.service.js +0 -99
  576. package/esm5/lib/components/file-upload/index.js +0 -8
  577. package/esm5/lib/components/from-to/from-to.component.js +0 -28
  578. package/esm5/lib/components/from-to/from-to.module.js +0 -26
  579. package/esm5/lib/components/from-to/index.js +0 -8
  580. package/esm5/lib/components/historical-bank-account/historical-bank-account-form/historical-bank-account-form.component.js +0 -657
  581. package/esm5/lib/components/historical-bank-account/historical-bank-account.component.js +0 -624
  582. package/esm5/lib/components/historical-bank-account/historical-bank-account.module.js +0 -63
  583. package/esm5/lib/components/historical-bank-account/historical-bank-account.service.js +0 -46
  584. package/esm5/lib/components/historical-bank-account/index.js +0 -9
  585. package/esm5/lib/components/historical-bank-account-list/historical-bank-account-list.component.js +0 -402
  586. package/esm5/lib/components/historical-bank-account-list/historical-bank-account-list.module.js +0 -46
  587. package/esm5/lib/components/historical-bank-account-list/historical-bank-account-list.service.js +0 -68
  588. package/esm5/lib/components/historical-bank-account-list/index.js +0 -9
  589. package/esm5/lib/components/image-cropper/image-crop.component.js +0 -287
  590. package/esm5/lib/components/image-cropper/image-crop.module.js +0 -39
  591. package/esm5/lib/components/image-cropper/image-crop.service.js +0 -221
  592. package/esm5/lib/components/image-cropper/index.js +0 -9
  593. package/esm5/lib/components/input-date/index.js +0 -8
  594. package/esm5/lib/components/input-date/input-date.component.js +0 -218
  595. package/esm5/lib/components/input-date/input-date.module.js +0 -24
  596. package/esm5/lib/components/input-date-model/index.js +0 -8
  597. package/esm5/lib/components/input-date-model/input-date-model.component.js +0 -190
  598. package/esm5/lib/components/input-date-model/input-date-model.module.js +0 -24
  599. package/esm5/lib/components/input-rest-auto-complete/index.js +0 -9
  600. package/esm5/lib/components/input-rest-auto-complete/input-rest-auto-complete.component.js +0 -497
  601. package/esm5/lib/components/input-rest-auto-complete/input-rest-auto-complete.module.js +0 -28
  602. package/esm5/lib/components/input-rest-auto-complete/input-rest-auto-complete.service.js +0 -46
  603. package/esm5/lib/components/input-rest-auto-complete-employee/index.js +0 -8
  604. package/esm5/lib/components/input-rest-auto-complete-employee/input-rest-auto-complete-employee.component.js +0 -300
  605. package/esm5/lib/components/input-rest-auto-complete-employee/input-rest-auto-complete-employee.module.js +0 -35
  606. package/esm5/lib/components/input-rest-auto-complete-employee/input-rest-auto-complete-employee.service.js +0 -44
  607. package/esm5/lib/components/input-rest-auto-complete-employee-model/index.js +0 -8
  608. package/esm5/lib/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.component.js +0 -291
  609. package/esm5/lib/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.module.js +0 -35
  610. package/esm5/lib/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.service.js +0 -44
  611. package/esm5/lib/components/input-rest-auto-complete-enum/index.js +0 -9
  612. package/esm5/lib/components/input-rest-auto-complete-enum/input-rest-auto-complete-enum.component.js +0 -252
  613. package/esm5/lib/components/input-rest-auto-complete-enum/input-rest-auto-complete-enum.module.js +0 -35
  614. package/esm5/lib/components/input-rest-auto-complete-enum/input-rest-auto-complete-enum.service.js +0 -48
  615. package/esm5/lib/components/input-rest-auto-complete-jobposition/index.js +0 -9
  616. package/esm5/lib/components/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.component.js +0 -302
  617. package/esm5/lib/components/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.module.js +0 -35
  618. package/esm5/lib/components/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.service.js +0 -44
  619. package/esm5/lib/components/input-rest-auto-complete-model/index.js +0 -8
  620. package/esm5/lib/components/input-rest-auto-complete-model/input-rest-auto-complete-model.component.js +0 -379
  621. package/esm5/lib/components/input-rest-auto-complete-model/input-rest-auto-complete-model.module.js +0 -35
  622. package/esm5/lib/components/input-rest-auto-complete-model/input-rest-auto-complete-model.service.js +0 -46
  623. package/esm5/lib/components/input-rest-auto-complete-model-enum/index.js +0 -8
  624. package/esm5/lib/components/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.component.js +0 -206
  625. package/esm5/lib/components/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.module.js +0 -35
  626. package/esm5/lib/components/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.service.js +0 -48
  627. package/esm5/lib/components/list-rest/index.js +0 -8
  628. package/esm5/lib/components/list-rest/list-rest.component.js +0 -219
  629. package/esm5/lib/components/list-rest/list-rest.module.js +0 -40
  630. package/esm5/lib/components/list-rest/list-rest.service.js +0 -57
  631. package/esm5/lib/components/lookup/index.js +0 -7
  632. package/esm5/lib/components/lookup/lookup.component.js +0 -600
  633. package/esm5/lib/components/lookup/lookup.module.js +0 -27
  634. package/esm5/lib/components/lookup/lookup.service.js +0 -94
  635. package/esm5/lib/components/shared/http-client.service.js +0 -355
  636. package/esm5/lib/components/shared/shared.module.js +0 -28
  637. package/esm5/lib/components/spinner/index.js +0 -8
  638. package/esm5/lib/components/spinner/spinner-loader.component.js +0 -19
  639. package/esm5/lib/components/spinner/spinner-loader.module.js +0 -30
  640. package/esm5/lib/components/toast/index.js +0 -9
  641. package/esm5/lib/components/toast/toast.component.js +0 -173
  642. package/esm5/lib/components/toast/toast.module.js +0 -27
  643. package/esm5/lib/components/toast/toast.service.js +0 -123
  644. package/esm5/lib/components/type-admission/index.js +0 -8
  645. package/esm5/lib/components/type-admission/type-admission.module.js +0 -21
  646. package/esm5/lib/components/type-admission/type-admission.services.js +0 -191
  647. package/esm5/lib/components/utils/cnpj-validator.js +0 -94
  648. package/esm5/lib/components/utils/cpf-validator.js +0 -98
  649. package/esm5/lib/components/utils/date-validator/date-validators.js +0 -289
  650. package/esm5/lib/components/utils/helpers.js +0 -763
  651. package/esm5/lib/components/utils/validations.js +0 -241
  652. package/esm5/lib/components/vanilla/string-methods.js +0 -42
  653. package/esm5/lib/components/workstationgroup-lookup/autocomplete.service.js +0 -250
  654. package/esm5/lib/components/workstationgroup-lookup/index.js +0 -8
  655. package/esm5/lib/components/workstationgroup-lookup/lookup.service.js +0 -318
  656. package/esm5/lib/components/workstationgroup-lookup/workstationgroup-lookup.component.js +0 -908
  657. package/esm5/lib/components/workstationgroup-lookup/workstationgroup-lookup.dto.js +0 -200
  658. package/esm5/lib/components/workstationgroup-lookup/workstationgroup-lookup.module.js +0 -28
  659. package/esm5/lib/core/entities/entity-odata-parameter.js +0 -96
  660. package/esm5/lib/core/entities/index.js +0 -7
  661. package/esm5/lib/core/enums/companyIndicationType.js +0 -24
  662. package/esm5/lib/core/enums/comparetype.enumeration.js +0 -16
  663. package/esm5/lib/core/enums/coreFieldType.js +0 -11
  664. package/esm5/lib/core/enums/direction.enumeration.js +0 -12
  665. package/esm5/lib/core/enums/httpRequestType.js +0 -12
  666. package/esm5/lib/core/enums/index.js +0 -19
  667. package/esm5/lib/core/enums/menu-type.enumeration.js +0 -12
  668. package/esm5/lib/core/enums/moduleType.js +0 -28
  669. package/esm5/lib/core/enums/operators.enumeration.js +0 -20
  670. package/esm5/lib/core/enums/parameter-type.enumeration.js +0 -18
  671. package/esm5/lib/core/enums/report-format.enumeration.js +0 -18
  672. package/esm5/lib/core/enums/report-stage.enumeration.js +0 -18
  673. package/esm5/lib/core/enums/serviceType.js +0 -15
  674. package/esm5/lib/core/enums/usingType.js +0 -48
  675. package/esm5/lib/core/interfaces/date-compare-options.js +0 -19
  676. package/esm5/lib/core/interfaces/date-validate-options.js +0 -17
  677. package/esm5/lib/core/interfaces/field-validators-object.js +0 -20
  678. package/esm5/lib/core/interfaces/index.js +0 -10
  679. package/esm5/lib/core/interfaces/pagination-data.js +0 -18
  680. package/esm5/lib/core/interfaces/report/domain-service.interface.js +0 -16
  681. package/esm5/lib/core/interfaces/report/generation-status.interface.js +0 -22
  682. package/esm5/lib/core/interfaces/report/get-parameters-out.interface.js +0 -16
  683. package/esm5/lib/core/interfaces/report/index.js +0 -15
  684. package/esm5/lib/core/interfaces/report/lookup-parameter.interface.js +0 -20
  685. package/esm5/lib/core/interfaces/report/parameter-def.interface.js +0 -20
  686. package/esm5/lib/core/interfaces/report/parameter-value.interface.js +0 -16
  687. package/esm5/lib/core/interfaces/report/report-header.interface.js +0 -16
  688. package/esm5/lib/core/interfaces/report/report-in.interface.js +0 -20
  689. package/esm5/lib/core/interfaces/report/report-menu.interface.js +0 -18
  690. package/esm5/lib/core/interfaces/report/report-out.interface.js +0 -14
  691. package/esm5/lib/core/interfaces/report/report.interface.js +0 -48
  692. package/esm5/lib/services/autocomplete-parameters.service.js +0 -255
  693. package/esm5/lib/services/company-indications.service.js +0 -126
  694. package/esm5/lib/services/form-comparator.service.js +0 -278
  695. package/esm5/lib/services/integration.service.js +0 -40
  696. package/esm5/lib/services/lookup-parameters.service.js +0 -748
  697. package/esm5/lib/services/permissions.service.js +0 -253
  698. package/esm5/lib/services/report.service.js +0 -231
  699. package/esm5/lib/services/services.module.js +0 -36
  700. package/esm5/lib/services/workflow-data.service.js +0 -73
  701. package/esm5/lib/services/workflow-integrator.service.js +0 -715
  702. package/lib/components/workstationgroup-lookup/autocomplete.service.d.ts +0 -31
  703. /package/{lib/components → components}/admission-draft-summary/admission-draft-summary.component.d.ts +0 -0
  704. /package/{lib/components → components}/admission-draft-summary/admission-draft-summary.module.d.ts +0 -0
  705. /package/{lib/components → components}/admission-draft-summary/admission-draft-summary.service.d.ts +0 -0
  706. /package/{lib/components → components}/admission-draft-summary/index.d.ts +0 -0
  707. /package/{lib/components → components}/block-ui/block-ui.component.d.ts +0 -0
  708. /package/{lib/components → components}/block-ui/block-ui.module.d.ts +0 -0
  709. /package/{lib/components → components}/block-ui/index.d.ts +0 -0
  710. /package/{lib/components → components}/breadcrumb/breadcrumb.component.d.ts +0 -0
  711. /package/{lib/components → components}/breadcrumb/breadcrumb.module.d.ts +0 -0
  712. /package/{lib/components → components}/breadcrumb/index.d.ts +0 -0
  713. /package/{lib/components → components}/control-messages-error/control-messages-error.component.d.ts +0 -0
  714. /package/{lib/components → components}/control-messages-error/control-messages-error.module.d.ts +0 -0
  715. /package/{lib/components → components}/control-messages-error/index.d.ts +0 -0
  716. /package/{lib/components → components}/custom-fields/custom-fields.component.d.ts +0 -0
  717. /package/{lib/components → components}/custom-fields/custom-fields.module.d.ts +0 -0
  718. /package/{lib/components → components}/custom-fields/index.d.ts +0 -0
  719. /package/{lib/components → components}/data-list/data-list.component.d.ts +0 -0
  720. /package/{lib/components → components}/data-list/data-list.module.d.ts +0 -0
  721. /package/{lib/components → components}/data-list/data-list.service.d.ts +0 -0
  722. /package/{lib/components → components}/data-list/entity-odata-response.d.ts +0 -0
  723. /package/{lib/components → components}/data-list/index.d.ts +0 -0
  724. /package/{lib/components → components}/data-list-rest/data-list-rest.component.d.ts +0 -0
  725. /package/{lib/components → components}/data-list-rest/data-list-rest.module.d.ts +0 -0
  726. /package/{lib/components → components}/data-list-rest/data-list-rest.service.d.ts +0 -0
  727. /package/{lib/components → components}/data-list-rest/index.d.ts +0 -0
  728. /package/{lib/components → components}/directives/directives.module.d.ts +0 -0
  729. /package/{lib/components → components}/directives/index.d.ts +0 -0
  730. /package/{lib/components → components}/directives/name-not-spaces.directive.d.ts +0 -0
  731. /package/{lib/components → components}/directives/only-number.directive.d.ts +0 -0
  732. /package/{lib/components → components}/employee-selector/employee-selector.component.d.ts +0 -0
  733. /package/{lib/components → components}/employee-selector/employee-selector.module.d.ts +0 -0
  734. /package/{lib/components → components}/employee-selector/index.d.ts +0 -0
  735. /package/{lib/components → components}/employee-summary/employee-summary.component.d.ts +0 -0
  736. /package/{lib/components → components}/employee-summary/employee-summary.module.d.ts +0 -0
  737. /package/{lib/components → components}/employee-summary/employee-summary.service.d.ts +0 -0
  738. /package/{lib/components → components}/employee-summary/index.d.ts +0 -0
  739. /package/{lib/components → components}/error-page/error-page.component.d.ts +0 -0
  740. /package/{lib/components → components}/error-page/error-page.module.d.ts +0 -0
  741. /package/{lib/components → components}/error-page/index.d.ts +0 -0
  742. /package/{lib/components → components}/field-validator/field-validator.component.d.ts +0 -0
  743. /package/{lib/components → components}/field-validator/field-validator.module.d.ts +0 -0
  744. /package/{lib/components → components}/field-validator/index.d.ts +0 -0
  745. /package/{lib/components → components}/file-upload/file-upload.component.d.ts +0 -0
  746. /package/{lib/components → components}/file-upload/file-upload.module.d.ts +0 -0
  747. /package/{lib/components → components}/file-upload/file-upload.service.d.ts +0 -0
  748. /package/{lib/components → components}/file-upload/index.d.ts +0 -0
  749. /package/{lib/components → components}/from-to/from-to.component.d.ts +0 -0
  750. /package/{lib/components → components}/from-to/from-to.module.d.ts +0 -0
  751. /package/{lib/components → components}/from-to/index.d.ts +0 -0
  752. /package/{lib/components → components}/historical-bank-account/historical-bank-account-form/historical-bank-account-form.component.d.ts +0 -0
  753. /package/{lib/components → components}/historical-bank-account/historical-bank-account.component.d.ts +0 -0
  754. /package/{lib/components → components}/historical-bank-account/historical-bank-account.module.d.ts +0 -0
  755. /package/{lib/components → components}/historical-bank-account/historical-bank-account.service.d.ts +0 -0
  756. /package/{lib/components → components}/historical-bank-account/index.d.ts +0 -0
  757. /package/{lib/components → components}/historical-bank-account-list/historical-bank-account-list.component.d.ts +0 -0
  758. /package/{lib/components → components}/historical-bank-account-list/historical-bank-account-list.module.d.ts +0 -0
  759. /package/{lib/components → components}/historical-bank-account-list/historical-bank-account-list.service.d.ts +0 -0
  760. /package/{lib/components → components}/historical-bank-account-list/index.d.ts +0 -0
  761. /package/{lib/components → components}/image-cropper/image-crop.component.d.ts +0 -0
  762. /package/{lib/components → components}/image-cropper/image-crop.module.d.ts +0 -0
  763. /package/{lib/components → components}/image-cropper/image-crop.service.d.ts +0 -0
  764. /package/{lib/components → components}/image-cropper/index.d.ts +0 -0
  765. /package/{lib/components → components}/input-date/index.d.ts +0 -0
  766. /package/{lib/components → components}/input-date/input-date.component.d.ts +0 -0
  767. /package/{lib/components → components}/input-date/input-date.module.d.ts +0 -0
  768. /package/{lib/components → components}/input-date-model/index.d.ts +0 -0
  769. /package/{lib/components → components}/input-date-model/input-date-model.component.d.ts +0 -0
  770. /package/{lib/components → components}/input-date-model/input-date-model.module.d.ts +0 -0
  771. /package/{lib/components → components}/input-rest-auto-complete/index.d.ts +0 -0
  772. /package/{lib/components → components}/input-rest-auto-complete/input-rest-auto-complete.component.d.ts +0 -0
  773. /package/{lib/components → components}/input-rest-auto-complete/input-rest-auto-complete.module.d.ts +0 -0
  774. /package/{lib/components → components}/input-rest-auto-complete/input-rest-auto-complete.service.d.ts +0 -0
  775. /package/{lib/components → components}/input-rest-auto-complete-employee/index.d.ts +0 -0
  776. /package/{lib/components → components}/input-rest-auto-complete-employee/input-rest-auto-complete-employee.component.d.ts +0 -0
  777. /package/{lib/components → components}/input-rest-auto-complete-employee/input-rest-auto-complete-employee.module.d.ts +0 -0
  778. /package/{lib/components → components}/input-rest-auto-complete-employee/input-rest-auto-complete-employee.service.d.ts +0 -0
  779. /package/{lib/components → components}/input-rest-auto-complete-employee-model/index.d.ts +0 -0
  780. /package/{lib/components → components}/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.component.d.ts +0 -0
  781. /package/{lib/components → components}/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.module.d.ts +0 -0
  782. /package/{lib/components → components}/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.service.d.ts +0 -0
  783. /package/{lib/components → components}/input-rest-auto-complete-enum/index.d.ts +0 -0
  784. /package/{lib/components → components}/input-rest-auto-complete-enum/input-rest-auto-complete-enum.component.d.ts +0 -0
  785. /package/{lib/components → components}/input-rest-auto-complete-enum/input-rest-auto-complete-enum.module.d.ts +0 -0
  786. /package/{lib/components → components}/input-rest-auto-complete-enum/input-rest-auto-complete-enum.service.d.ts +0 -0
  787. /package/{lib/components → components}/input-rest-auto-complete-jobposition/index.d.ts +0 -0
  788. /package/{lib/components → components}/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.component.d.ts +0 -0
  789. /package/{lib/components → components}/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.module.d.ts +0 -0
  790. /package/{lib/components → components}/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.service.d.ts +0 -0
  791. /package/{lib/components → components}/input-rest-auto-complete-model/index.d.ts +0 -0
  792. /package/{lib/components → components}/input-rest-auto-complete-model/input-rest-auto-complete-model.component.d.ts +0 -0
  793. /package/{lib/components → components}/input-rest-auto-complete-model/input-rest-auto-complete-model.module.d.ts +0 -0
  794. /package/{lib/components → components}/input-rest-auto-complete-model/input-rest-auto-complete-model.service.d.ts +0 -0
  795. /package/{lib/components → components}/input-rest-auto-complete-model-enum/index.d.ts +0 -0
  796. /package/{lib/components → components}/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.component.d.ts +0 -0
  797. /package/{lib/components → components}/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.module.d.ts +0 -0
  798. /package/{lib/components → components}/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.service.d.ts +0 -0
  799. /package/{lib/components → components}/list-rest/index.d.ts +0 -0
  800. /package/{lib/components → components}/list-rest/list-rest.component.d.ts +0 -0
  801. /package/{lib/components → components}/list-rest/list-rest.module.d.ts +0 -0
  802. /package/{lib/components → components}/list-rest/list-rest.service.d.ts +0 -0
  803. /package/{lib/components → components}/lookup/index.d.ts +0 -0
  804. /package/{lib/components → components}/lookup/lookup.component.d.ts +0 -0
  805. /package/{lib/components → components}/lookup/lookup.module.d.ts +0 -0
  806. /package/{lib/components → components}/lookup/lookup.service.d.ts +0 -0
  807. /package/{lib/components → components}/shared/http-client.service.d.ts +0 -0
  808. /package/{lib/components → components}/shared/shared.module.d.ts +0 -0
  809. /package/{lib/components → components}/spinner/index.d.ts +0 -0
  810. /package/{lib/components → components}/spinner/spinner-loader.component.d.ts +0 -0
  811. /package/{lib/components → components}/spinner/spinner-loader.module.d.ts +0 -0
  812. /package/{lib/components → components}/toast/index.d.ts +0 -0
  813. /package/{lib/components → components}/toast/toast.component.d.ts +0 -0
  814. /package/{lib/components → components}/toast/toast.module.d.ts +0 -0
  815. /package/{lib/components → components}/toast/toast.service.d.ts +0 -0
  816. /package/{lib/components → components}/type-admission/index.d.ts +0 -0
  817. /package/{lib/components → components}/type-admission/type-admission.module.d.ts +0 -0
  818. /package/{lib/components → components}/type-admission/type-admission.services.d.ts +0 -0
  819. /package/{lib/components → components}/utils/cnpj-validator.d.ts +0 -0
  820. /package/{lib/components → components}/utils/cpf-validator.d.ts +0 -0
  821. /package/{lib/components → components}/utils/date-validator/date-validators.d.ts +0 -0
  822. /package/{lib/components → components}/utils/helpers.d.ts +0 -0
  823. /package/{lib/components → components}/utils/validations.d.ts +0 -0
  824. /package/{lib/components → components}/vanilla/string-methods.d.ts +0 -0
  825. /package/{lib/components → components}/workstationgroup-lookup/index.d.ts +0 -0
  826. /package/{lib/components → components}/workstationgroup-lookup/lookup.service.d.ts +0 -0
  827. /package/{lib/components → components}/workstationgroup-lookup/workstationgroup-lookup.component.d.ts +0 -0
  828. /package/{lib/components → components}/workstationgroup-lookup/workstationgroup-lookup.dto.d.ts +0 -0
  829. /package/{lib/components → components}/workstationgroup-lookup/workstationgroup-lookup.module.d.ts +0 -0
  830. /package/{lib/core → core}/entities/entity-odata-parameter.d.ts +0 -0
  831. /package/{lib/core → core}/entities/index.d.ts +0 -0
  832. /package/{lib/core → core}/enums/companyIndicationType.d.ts +0 -0
  833. /package/{lib/core → core}/enums/comparetype.enumeration.d.ts +0 -0
  834. /package/{lib/core → core}/enums/coreFieldType.d.ts +0 -0
  835. /package/{lib/core → core}/enums/direction.enumeration.d.ts +0 -0
  836. /package/{lib/core → core}/enums/httpRequestType.d.ts +0 -0
  837. /package/{lib/core → core}/enums/index.d.ts +0 -0
  838. /package/{lib/core → core}/enums/menu-type.enumeration.d.ts +0 -0
  839. /package/{lib/core → core}/enums/moduleType.d.ts +0 -0
  840. /package/{lib/core → core}/enums/operators.enumeration.d.ts +0 -0
  841. /package/{lib/core → core}/enums/parameter-type.enumeration.d.ts +0 -0
  842. /package/{lib/core → core}/enums/report-format.enumeration.d.ts +0 -0
  843. /package/{lib/core → core}/enums/report-stage.enumeration.d.ts +0 -0
  844. /package/{lib/core → core}/enums/serviceType.d.ts +0 -0
  845. /package/{lib/core → core}/enums/usingType.d.ts +0 -0
  846. /package/{lib/core → core}/interfaces/date-compare-options.d.ts +0 -0
  847. /package/{lib/core → core}/interfaces/date-validate-options.d.ts +0 -0
  848. /package/{lib/core → core}/interfaces/field-validators-object.d.ts +0 -0
  849. /package/{lib/core → core}/interfaces/index.d.ts +0 -0
  850. /package/{lib/core → core}/interfaces/pagination-data.d.ts +0 -0
  851. /package/{lib/core → core}/interfaces/report/domain-service.interface.d.ts +0 -0
  852. /package/{lib/core → core}/interfaces/report/generation-status.interface.d.ts +0 -0
  853. /package/{lib/core → core}/interfaces/report/get-parameters-out.interface.d.ts +0 -0
  854. /package/{lib/core → core}/interfaces/report/index.d.ts +0 -0
  855. /package/{lib/core → core}/interfaces/report/lookup-parameter.interface.d.ts +0 -0
  856. /package/{lib/core → core}/interfaces/report/parameter-def.interface.d.ts +0 -0
  857. /package/{lib/core → core}/interfaces/report/parameter-value.interface.d.ts +0 -0
  858. /package/{lib/core → core}/interfaces/report/report-header.interface.d.ts +0 -0
  859. /package/{lib/core → core}/interfaces/report/report-in.interface.d.ts +0 -0
  860. /package/{lib/core → core}/interfaces/report/report-menu.interface.d.ts +0 -0
  861. /package/{lib/core → core}/interfaces/report/report-out.interface.d.ts +0 -0
  862. /package/{lib/core → core}/interfaces/report/report.interface.d.ts +0 -0
  863. /package/{lib/services → services}/autocomplete-parameters.service.d.ts +0 -0
  864. /package/{lib/services → services}/company-indications.service.d.ts +0 -0
  865. /package/{lib/services → services}/form-comparator.service.d.ts +0 -0
  866. /package/{lib/services → services}/integration.service.d.ts +0 -0
  867. /package/{lib/services → services}/lookup-parameters.service.d.ts +0 -0
  868. /package/{lib/services → services}/permissions.service.d.ts +0 -0
  869. /package/{lib/services → services}/report.service.d.ts +0 -0
  870. /package/{lib/services → services}/services.module.d.ts +0 -0
  871. /package/{lib/services → services}/workflow-data.service.d.ts +0 -0
  872. /package/{lib/services → services}/workflow-integrator.service.d.ts +0 -0
@@ -1,737 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: lib/components/utils/helpers.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
- import { FormArray, FormControl, FormGroup, Validators } from '@angular/forms';
7
- import * as chance from 'chance';
8
- import * as momentImported from 'moment';
9
- import business from 'moment-business';
10
- /** @type {?} */
11
- const moment = momentImported;
12
- /**
13
- * @param {?} item
14
- * @return {?}
15
- */
16
- export function isObject(item) {
17
- return item && typeof item === 'object' && !Array.isArray(item);
18
- }
19
- /**
20
- * @param {?} item
21
- * @return {?}
22
- */
23
- export function isShallow(item) {
24
- return Array.isArray(item) && item.find((/**
25
- * @param {?} value
26
- * @return {?}
27
- */
28
- value => typeof value === 'object')) ? false : true;
29
- }
30
- /**
31
- * @param {?} value
32
- * @return {?}
33
- */
34
- export function convertBooleanString(value) {
35
- if (typeof value === 'boolean') {
36
- return value === true ? 'true' : 'false';
37
- }
38
- return value;
39
- }
40
- /**
41
- * @param {?} value
42
- * @return {?}
43
- */
44
- export function convertStringToBoolean(value) {
45
- return value === true || value.toLowerCase() === 'true';
46
- }
47
- /**
48
- * @param {?} target
49
- * @param {...?} sources
50
- * @return {?}
51
- */
52
- export function assign(target, ...sources) {
53
- if (!sources.length) {
54
- return target;
55
- }
56
- /** @type {?} */
57
- const source = sources.shift();
58
- if (isObject(target) && isObject(source)) {
59
- for (const key in source) {
60
- if (isObject(source[key])) {
61
- if (!target[key]) {
62
- Object.assign(target, { [key]: {} });
63
- }
64
- assign(target[key], source[key]);
65
- }
66
- else {
67
- if (isShallow(source[key])) {
68
- Object.assign(target, { [key]: source[key] });
69
- }
70
- else {
71
- if (!target[key]) {
72
- Object.assign(target, { [key]: [] });
73
- }
74
- Object.assign(target, { [key]: source[key].map((/**
75
- * @param {?} item
76
- * @param {?} index
77
- * @return {?}
78
- */
79
- (item, index) => assign(target[key][index] || {}, item))) });
80
- }
81
- }
82
- }
83
- }
84
- return assign(target, ...sources);
85
- }
86
- /**
87
- * @param {?} value
88
- * @return {?}
89
- */
90
- export function isValid(value) {
91
- return value === 0 || typeof value === 'boolean' ? true : value !== undefined && value !== null && value !== '';
92
- }
93
- /**
94
- * @param {?} value
95
- * @param {?=} withDays
96
- * @return {?}
97
- */
98
- export function isValidDate(value, withDays = true) {
99
- if (value && isFullDate(value, withDays)) {
100
- if (withDays) {
101
- return moment(value.replace(/[^\d]+/g, ''), 'DDMMYYYY').isValid();
102
- }
103
- else {
104
- return moment(value.replace(/[^\d]+/g, ''), 'MMYYYY').isValid();
105
- }
106
- }
107
- return true;
108
- }
109
- /**
110
- * @param {?} value
111
- * @param {?=} withDays
112
- * @return {?}
113
- */
114
- export function isFullDate(value, withDays = true) {
115
- if (value) {
116
- /** @type {?} */
117
- let totalLength;
118
- if (withDays) {
119
- totalLength = 8;
120
- }
121
- else {
122
- totalLength = 6;
123
- }
124
- return value.replace(/[^\d]+/g, '').length === totalLength;
125
- }
126
- return true;
127
- }
128
- /**
129
- * @param {?} tableIdObject
130
- * @return {?}
131
- */
132
- export function autoCompleteObjectForIdObject(tableIdObject) {
133
- if (!isObject(tableIdObject)) {
134
- console.error('Paramentro não é um objeto');
135
- return false;
136
- }
137
- if (tableIdObject.hasOwnProperty('tableId')) {
138
- console.error('Paramentro não é um objeto Auto Complete válido, falta tableId');
139
- }
140
- if (!isValid(tableIdObject.tableId)) {
141
- console.error('tableId esta vazio');
142
- }
143
- return { id: tableIdObject.tableId };
144
- }
145
- /**
146
- * @param {?} name
147
- * @param {?} value
148
- * @return {?}
149
- */
150
- export function isDateField(name, value) {
151
- /** @type {?} */
152
- const testDate = name.search('Date');
153
- if (testDate !== -1) {
154
- return invertFieldDate(value);
155
- }
156
- return value;
157
- }
158
- /**
159
- * @param {?} value
160
- * @param {?=} inFormat
161
- * @param {?=} outFormat
162
- * @return {?}
163
- */
164
- export function invertFieldDate(value, inFormat = 'DDMMYYYY', outFormat = 'YYYY-MM-DD') {
165
- if (!isValid(value)) {
166
- return;
167
- }
168
- /** @type {?} */
169
- const formatIn = getFormatDate(value, inFormat);
170
- return moment(value.replace(/[^\d]+/g, ''), formatIn).format(outFormat);
171
- }
172
- /**
173
- * @param {?} value
174
- * @param {?} quantidade
175
- * @return {?}
176
- */
177
- export function getAddWeekDaysBusiness(value, quantidade) {
178
- return business.addWeekDays(getMoment(value), quantidade).format('DD/MM/YYYY');
179
- }
180
- /**
181
- * @param {?} startDate
182
- * @param {?} endDate
183
- * @return {?}
184
- */
185
- export function getWeekDaysBusiness(startDate, endDate) {
186
- /** @type {?} */
187
- const endMoment = endDate ? getMoment(endDate) : getMoment(startDate).endOf('month');
188
- return business.weekDays(getMoment(startDate), endMoment);
189
- }
190
- /**
191
- * @param {?} value
192
- * @param {?} inFormat
193
- * @return {?}
194
- */
195
- export function getFormatDate(value, inFormat) {
196
- if (value.search('/') !== -1) {
197
- return 'DDMMYYYY';
198
- }
199
- else if (value.search('-') !== -1) {
200
- return 'YYYYMMDD';
201
- }
202
- return inFormat;
203
- }
204
- /**
205
- * FIXME - Está fixo para uso do calendário portugues Brasil
206
- * @param {?} value
207
- * @param {?=} outFormat
208
- * @return {?}
209
- */
210
- export function ngCalendarFormat(value, outFormat = 'DD/MM/YYYY') {
211
- if (isValidDate(value)) {
212
- if (typeof value === 'string') {
213
- return value;
214
- }
215
- else {
216
- return _moment(value).format(outFormat);
217
- }
218
- }
219
- }
220
- /**
221
- * @param {?=} outFormat
222
- * @return {?}
223
- */
224
- export function getNowDate(outFormat = 'YYYY-MM-DD') {
225
- return moment().format(outFormat);
226
- }
227
- /**
228
- * @param {?} value
229
- * @param {?=} inFormat
230
- * @return {?}
231
- */
232
- export function getMoment(value, inFormat = 'DDMMYYYY') {
233
- /** @type {?} */
234
- const formatIn = getFormatDate(value, inFormat);
235
- return moment(value.replace(/[^\d]+/g, ''), formatIn);
236
- }
237
- /**
238
- * @param {?} value
239
- * @param {?=} format
240
- * @return {?}
241
- */
242
- export function _moment(value, format) {
243
- if (format) {
244
- return moment(value, format);
245
- }
246
- return moment(value);
247
- }
248
- /**
249
- * @param {?} objs
250
- * @return {?}
251
- */
252
- export function getObjValids(objs) {
253
- /** @type {?} */
254
- const json = Object.assign({}, objs);
255
- /** @type {?} */
256
- const jsonReturn = {};
257
- Object.keys(json).map((/**
258
- * @param {?} key
259
- * @return {?}
260
- */
261
- key => {
262
- if (isValid(json[key])) {
263
- jsonReturn[key] = isDateField(key, json[key]);
264
- }
265
- }));
266
- return jsonReturn;
267
- }
268
- /**
269
- * @param {?} obj
270
- * @return {?}
271
- */
272
- export function removeEmpty(obj) {
273
- Object.keys(obj).forEach((/**
274
- * @param {?} k
275
- * @return {?}
276
- */
277
- k => (obj[k] && typeof obj[k] === 'object' && removeEmpty(obj[k])) || (!obj[k] && obj[k] !== undefined && delete obj[k])));
278
- return obj;
279
- }
280
- /**
281
- * @param {?} value
282
- * @param {?=} i18n
283
- * @return {?}
284
- */
285
- export function formatMoney(value, i18n = 'EN') {
286
- switch (i18n) {
287
- case 'EN':
288
- return isValid(value)
289
- ? value
290
- .toString()
291
- .replace('.', '')
292
- .replace(',', '.')
293
- : '';
294
- case 'BR':
295
- return isValid(value)
296
- ? value
297
- .toString()
298
- .replace('.', ',')
299
- .replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1.')
300
- : '';
301
- default:
302
- return isValid(value)
303
- ? value
304
- .toString()
305
- .replace('.', '')
306
- .replace(',', '.')
307
- : '';
308
- }
309
- }
310
- /**
311
- * @return {?}
312
- */
313
- export function uiid() {
314
- return new chance()
315
- .guid()
316
- .replace(/[^a-zA-Z0-9.]/g, '')
317
- .toUpperCase();
318
- }
319
- /**
320
- * @param {?} custom
321
- * @param {?=} customEntity
322
- * @param {?=} locale
323
- * @return {?}
324
- */
325
- export function mountCustomForSave(custom, customEntity = null, locale = null) {
326
- /** @type {?} */
327
- const custonField = [];
328
- if (customEntity && custom.length) {
329
- customEntity.map((/**
330
- * @param {?} val
331
- * @param {?} key
332
- * @return {?}
333
- */
334
- (val, key) => {
335
- /** @type {?} */
336
- const field = Object.keys(custom[key]).toString();
337
- /** @type {?} */
338
- const valOrnull = isValid(custom[key][field]) ? custom[key][field] : null;
339
- /** @type {?} */
340
- const value = val.type === 'date' && locale && isValid(valOrnull) ? moment(valOrnull, getFormat(locale)).format('YYYY-MM-DD') : valOrnull;
341
- custonField.push({
342
- field: field,
343
- value: value,
344
- });
345
- }));
346
- }
347
- return custonField.length ? custonField : null;
348
- }
349
- /**
350
- * Prepara o objeto de campos customizados para salvar as entidades que
351
- * são utilizadas a partir do CRUD customizado.
352
- * @param {?} objectFields objeto com os campos customizados da entidade.
353
- * @return {?}
354
- */
355
- export function mountCustomToSave(objectFields) {
356
- /** @type {?} */
357
- const customFields = [];
358
- Object.entries(objectFields).forEach((/**
359
- * @param {?} __0
360
- * @return {?}
361
- */
362
- ([field, value]) => {
363
- customFields.push({
364
- field: field,
365
- value: value,
366
- });
367
- }));
368
- return customFields;
369
- }
370
- /**
371
- * Prepara o objeto de campos customizados para exibir as entidades que
372
- * são utilizadas a partir do CRUD customizado.
373
- * @param {?} customFields objeto com os campos customizados da entidade.
374
- * @return {?}
375
- */
376
- export function mountCustomToShow(customFields) {
377
- /** @type {?} */
378
- const customFieldsToShow = {};
379
- if (customFields && customFields.length) {
380
- customFields.forEach((/**
381
- * @param {?} item
382
- * @return {?}
383
- */
384
- item => {
385
- if (item.type === 'date' && item.value) {
386
- item.value = _moment(item.value).format('L');
387
- }
388
- customFieldsToShow[item.field] = item.value;
389
- }));
390
- }
391
- return customFieldsToShow;
392
- }
393
- /**
394
- * Prepara o objeto de campos customizados para salvar as entidades que
395
- * são utilizadas a partir do CRUD gerado.
396
- * @param {?} objectFields objeto com os campos customizados da entidade.
397
- * @return {?}
398
- */
399
- export function mountGeneratedCustomToSave(objectFields) {
400
- Object.entries(objectFields).forEach((/**
401
- * @param {?} __0
402
- * @return {?}
403
- */
404
- ([key, value]) => {
405
- if (!value) {
406
- delete objectFields[key];
407
- }
408
- }));
409
- return objectFields;
410
- }
411
- /**
412
- * @param {?} custom
413
- * @return {?}
414
- */
415
- export function mountCustomForShow(custom) {
416
- /** @type {?} */
417
- const customField = [];
418
- Object.keys(custom || {}).forEach((/**
419
- * @param {?} val
420
- * @return {?}
421
- */
422
- val => {
423
- if (custom[val].type === 'date' && custom[val].value) {
424
- custom[val].value = _moment(custom[val].value).format('L');
425
- }
426
- customField.push(custom[val]);
427
- }));
428
- return customField;
429
- }
430
- /**
431
- * @param {?} custonFields
432
- * @param {?} custom
433
- * @return {?}
434
- */
435
- export function setValueCustom(custonFields, custom) {
436
- /** @type {?} */
437
- const isCustons = custom ? Object.keys(custom).length : 0;
438
- custonFields.map((/**
439
- * @param {?} val
440
- * @return {?}
441
- */
442
- val => {
443
- val.value = isCustons > 0 ? custom[val.field] : null;
444
- }));
445
- return custonFields;
446
- }
447
- /**
448
- * Adiciona um erro no controle do formulário. Deve ser chamado com .call passando o contexto da class.
449
- * Ex.: setErrors.call(this.contractGroup, 'registerEmployeeNumber', 'exist', !payload)
450
- *
451
- * @param {?} formControlName Nome do controle do formulário.
452
- * @param {?} keyError Nome do error a ser exibido em tela.
453
- * @param {?} isInvalid Se houver algum erro de validação no campo.
454
- * @return {?}
455
- */
456
- export function setErrors(formControlName, keyError, isInvalid) {
457
- setTimeout((/**
458
- * @return {?}
459
- */
460
- () => {
461
- if (isInvalid) {
462
- /** @type {?} */
463
- const errors = Object.assign({}, this.get(formControlName).errors);
464
- errors[keyError] = isInvalid;
465
- this.get(formControlName).setErrors(errors);
466
- }
467
- else {
468
- /** @type {?} */
469
- const errors = this.get(formControlName).errors;
470
- if (errors && Object.keys(errors).length) {
471
- delete errors[keyError];
472
- if (!Object.keys(errors).length) {
473
- this.get(formControlName).setErrors(null);
474
- }
475
- }
476
- }
477
- }), 0);
478
- }
479
- /**
480
- * Faz loop do nos controls do formulário e subArray caso existir
481
- * setando os inválidos
482
- * Ex.: verifyValidationsForm.call(this.initialGroup);
483
- * @return {?}
484
- */
485
- export function verifyValidationsForm() {
486
- Object.keys(this.controls).map((/**
487
- * @param {?} field
488
- * @return {?}
489
- */
490
- field => {
491
- /** @type {?} */
492
- const control = this.get(field);
493
- control.markAsDirty();
494
- if (control instanceof FormGroup || control instanceof FormArray) {
495
- verifyValidationsForm.call(control);
496
- }
497
- }));
498
- }
499
- /**
500
- * Retorna a idade de acordo com a data de nascimento.
501
- *
502
- * @param {?} birthday
503
- * @return {?}
504
- */
505
- export function getYears(birthday) {
506
- /** @type {?} */
507
- const currentDate = moment();
508
- /** @type {?} */
509
- const years = currentDate.diff(birthday, 'years', false);
510
- return years;
511
- }
512
- /**
513
- * @param {?} customFields
514
- * @return {?}
515
- */
516
- export function setCustonFields(customFields) {
517
- customFields.map((/**
518
- * @param {?} val
519
- * @return {?}
520
- */
521
- val => {
522
- /** @type {?} */
523
- const addCuston = {};
524
- /** @type {?} */
525
- let value = val.value || null;
526
- if (typeof value === 'boolean') {
527
- value = value ? 'true' : 'false';
528
- }
529
- addCuston[val.field] = new FormControl(value);
530
- this.push(new FormGroup(addCuston));
531
- }));
532
- return customFields;
533
- }
534
- /**
535
- * @param {?} formGroup
536
- * @param {?} name
537
- * @param {?} required
538
- * @param {?=} validators
539
- * @return {?}
540
- */
541
- export function setRequired(formGroup, name, required, validators) {
542
- if (required) {
543
- formGroup.controls[name].setValidators(Validators.compose(validators && validators.length ? validators : [Validators.required]));
544
- formGroup.controls[name].updateValueAndValidity();
545
- }
546
- else {
547
- formGroup.controls[name].setValidators(null);
548
- formGroup.controls[name].updateValueAndValidity();
549
- }
550
- }
551
- /**
552
- * Esse método tem como função setar os campos enable ou disable.
553
- * @param {?} formGroup FormGroup onde se encontra os campos a serem alterados.
554
- * @param {?} condition Condição para validação. True = enabled, False = disabled.
555
- * @param {?} fields Campos a serem manipulados.
556
- * @param {?=} fieldsToClear Campos a serem limpos. É opicional e se não foi passado o método limpará os mesmos campos dos fields.
557
- * @return {?}
558
- */
559
- export function configEnabledFields(formGroup, condition, fields, fieldsToClear) {
560
- if (condition) {
561
- fields.forEach((/**
562
- * @param {?} field
563
- * @return {?}
564
- */
565
- field => formGroup.get(field).enable()));
566
- }
567
- else {
568
- fields.forEach((/**
569
- * @param {?} field
570
- * @return {?}
571
- */
572
- field => formGroup.get(field).disable()));
573
- clearValues(formGroup, fieldsToClear ? fieldsToClear : fields);
574
- }
575
- }
576
- /**
577
- * Esse método tem como função setar os campos como requeridos ou não.
578
- *
579
- * @param {?} formGroup FormGroup onde se encontra os campos a serem alterados.
580
- * @param {?} condition Se será ou não requeridos.
581
- * @param {?} fields Lista de campos.
582
- * @return {?}
583
- */
584
- export function setRequiredFields(formGroup, condition, fields) {
585
- if (condition) {
586
- fields.forEach((/**
587
- * @param {?} field
588
- * @return {?}
589
- */
590
- field => setRequired(formGroup, field, true, [Validators.required])));
591
- }
592
- else {
593
- fields.forEach((/**
594
- * @param {?} field
595
- * @return {?}
596
- */
597
- field => setRequired(formGroup, field, false)));
598
- }
599
- }
600
- /**
601
- * Esse método tem como função setar validações dinâmicas nos campos.
602
- *
603
- * @param {?} formGroup FormGroup onde se encontra os campos a serem alterados.
604
- * @param {?} fields Lista de objetos [{field: campo, validators: validações, disable: boolean}].
605
- * @return {?}
606
- */
607
- export function setValidatorsAndDisableFields(formGroup, fields) {
608
- fields.forEach((/**
609
- * @param {?} currentField
610
- * @return {?}
611
- */
612
- (currentField) => {
613
- setValidator(formGroup, currentField.field, currentField.validators);
614
- setDisableField(formGroup, currentField.disabled, currentField.field, currentField.clearValue);
615
- }));
616
- }
617
- /**
618
- * @param {?} formGroup
619
- * @param {?} name
620
- * @param {?=} validators
621
- * @return {?}
622
- */
623
- export function setValidator(formGroup, name, validators) {
624
- if (validators && validators.length) {
625
- formGroup.controls[name].setValidators(Validators.compose(validators));
626
- formGroup.controls[name].updateValueAndValidity();
627
- }
628
- else {
629
- formGroup.controls[name].setValidators(null);
630
- formGroup.controls[name].updateValueAndValidity();
631
- }
632
- }
633
- /**
634
- * Esse método tem como função setar os campos enable ou disable.
635
- * @param {?} formGroup FormGroup onde se encontra os campos a serem alterados.
636
- * @param {?} condition Condição para validação. True = disabled, False = enabled.
637
- * @param {?} field Campo a ser manipulados.
638
- * @param {?=} clearValue Campos a ser limpos. É opicional e se não foi passado o método limpará o campo do field.
639
- * @return {?}
640
- */
641
- export function setDisableField(formGroup, condition, field, clearValue = true) {
642
- if (condition) {
643
- formGroup.get(field).disable();
644
- if (clearValue)
645
- formGroup.get(field).reset();
646
- }
647
- else {
648
- formGroup.get(field).enable();
649
- }
650
- }
651
- /**
652
- * Ordena array de objetos
653
- * @param {?} key o campo que deseja ordenar
654
- * @param {?=} order a ordem que deseja ordenar o campo
655
- * @return {?}
656
- */
657
- export function compareValues(key, order = "ASC") {
658
- return (/**
659
- * @param {?} a
660
- * @param {?} b
661
- * @return {?}
662
- */
663
- function innerSort(a, b) {
664
- if (!a.hasOwnProperty(key) || !b.hasOwnProperty(key)) {
665
- return 0;
666
- }
667
- /** @type {?} */
668
- const varA = (typeof a[key] === "string")
669
- ? a[key].toUpperCase() : a[key];
670
- /** @type {?} */
671
- const varB = (typeof b[key] === "string")
672
- ? b[key].toUpperCase() : b[key];
673
- /** @type {?} */
674
- let comparison = 0;
675
- if (varA > varB) {
676
- comparison = 1;
677
- }
678
- else if (varA < varB) {
679
- comparison = -1;
680
- }
681
- return ((order === "DESC") ? (comparison * -1) : comparison);
682
- });
683
- }
684
- /**
685
- * Esse método tem como função limpar o valor dos campos.
686
- *
687
- * @param {?} formGroup FormGroup onde se encontra os campos a serem limpos.
688
- * @param {?} fields Campos a serem limpos.
689
- * @return {?}
690
- */
691
- export function clearValues(formGroup, fields) {
692
- fields.forEach((/**
693
- * @param {?} field
694
- * @return {?}
695
- */
696
- field => formGroup.get(field).reset()));
697
- }
698
- /**
699
- *
700
- * @param {?} qs = window.location.search
701
- * @return {?} Object com parametros query string
702
- */
703
- export function getQueryParams(qs) {
704
- qs = qs.split('+').join(' ');
705
- /** @type {?} */
706
- const params = {};
707
- /** @type {?} */
708
- let tokens;
709
- /** @type {?} */
710
- const re = /[?&]?([^=]+)=([^&]*)/g;
711
- while ((tokens = re.exec(qs))) {
712
- params[decodeURIComponent(tokens[1])] = decodeURIComponent(tokens[2]);
713
- }
714
- return params;
715
- }
716
- /**
717
- * @param {?} locale
718
- * @return {?}
719
- */
720
- export function getFormat(locale) {
721
- if (locale) {
722
- /** @type {?} */
723
- let dateFormat = locale.calendar.dateFormat.toString();
724
- dateFormat = dateFormat.replace(/[y]/g, 'YY');
725
- dateFormat = dateFormat.replace(/[/]/g, '');
726
- return dateFormat.toUpperCase();
727
- }
728
- }
729
- /**
730
- * Remove os caracteres que não sejam números do valor
731
- * @param {?} value valor a ser tratado
732
- * @return {?} string O valor sem caracteres especiais
733
- */
734
- export function removeCharacteresSpecials(value) {
735
- return value ? value.toString().replace(/[&\/\\#,+()$~%.'":*?<>{}-]/g, "") : null;
736
- }
737
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItZ2VzdGFvLXBlc3NvYXMvcGF5cm9sbC1jb3JlLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvdXRpbHMvaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvRSxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEtBQUssY0FBYyxNQUFNLFFBQVEsQ0FBQztBQUN6QyxPQUFPLFFBQVEsTUFBTSxpQkFBaUIsQ0FBQzs7TUFJakMsTUFBTSxHQUFHLGNBQWM7Ozs7O0FBRTdCLE1BQU0sVUFBVSxRQUFRLENBQUMsSUFBSTtJQUMzQixPQUFPLElBQUksSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2xFLENBQUM7Ozs7O0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxJQUFJO0lBQzVCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSTs7OztJQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQzdGLENBQUM7Ozs7O0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUFDLEtBQUs7SUFDeEMsSUFBSSxPQUFPLEtBQUssS0FBSyxTQUFTLEVBQUU7UUFDOUIsT0FBTyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztLQUMxQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQzs7Ozs7QUFFRCxNQUFNLFVBQVUsc0JB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QUFVLFNBQVMsQ0FBQyxNQUFNO0lBQzlCLElBQUksTUFBTSxFQUFFOztZQUNOLFVBQVUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUU7UUFDdEQsVUFBVSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzlDLFVBQVUsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM1QyxPQUFPLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztLQUNqQztBQUNILENBQUM7Ozs7OztBQU9ELE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxLQUFVO0lBQ2hELE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLDZCQUE2QixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDdEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1BcnJheSwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMvJztcbmltcG9ydCAqIGFzIGNoYW5jZSBmcm9tICdjaGFuY2UnO1xuaW1wb3J0ICogYXMgbW9tZW50SW1wb3J0ZWQgZnJvbSAnbW9tZW50JztcbmltcG9ydCBidXNpbmVzcyBmcm9tICdtb21lbnQtYnVzaW5lc3MnO1xuaW1wb3J0IHsgTG9jYWxlT3B0aW9ucyB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgRmllbGRWYWxpZGF0b3JzT2JqZWN0IH0gZnJvbSAnLi4vLi4vY29yZS9pbnRlcmZhY2VzL2ZpZWxkLXZhbGlkYXRvcnMtb2JqZWN0JztcblxuY29uc3QgbW9tZW50ID0gbW9tZW50SW1wb3J0ZWQ7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc09iamVjdChpdGVtKSB7XG4gIHJldHVybiBpdGVtICYmIHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShpdGVtKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU2hhbGxvdyhpdGVtKSB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KGl0ZW0pICYmIGl0ZW0uZmluZCh2YWx1ZSA9PiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSA/IGZhbHNlIDogdHJ1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRCb29sZWFuU3RyaW5nKHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gdHJ1ZSA/ICd0cnVlJyA6ICdmYWxzZSc7XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydFN0cmluZ1RvQm9vbGVhbih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgPT09IHRydWUgfHwgdmFsdWUudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzaWduKHRhcmdldCwgLi4uc291cmNlcykge1xuICBpZiAoIXNvdXJjZXMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxuXG4gIGNvbnN0IHNvdXJjZSA9IHNvdXJjZXMuc2hpZnQoKTtcbiAgaWYgKGlzT2JqZWN0KHRhcmdldCkgJiYgaXNPYmplY3Qoc291cmNlKSkge1xuICAgIGZvciAoY29uc3Qga2V5IGluIHNvdXJjZSkge1xuICAgICAgaWYgKGlzT2JqZWN0KHNvdXJjZVtrZXldKSkge1xuICAgICAgICBpZiAoIXRhcmdldFtrZXldKSB7XG4gICAgICAgICAgT2JqZWN0LmFzc2lnbih0YXJnZXQsIHsgW2tleV06IHt9IH0pO1xuICAgICAgICB9XG4gICAgICAgIGFzc2lnbih0YXJnZXRba2V5XSwgc291cmNlW2tleV0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGlzU2hhbGxvdyhzb3VyY2Vba2V5XSkpIHtcbiAgICAgICAgICBPYmplY3QuYXNzaWduKHRhcmdldCwgeyBba2V5XTogc291cmNlW2tleV0gfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKCF0YXJnZXRba2V5XSkge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih0YXJnZXQsIHsgW2tleV06IFtdIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBPYmplY3QuYXNzaWduKHRhcmdldCwgeyBba2V5XTogc291cmNlW2tleV0ubWFwKChpdGVtLCBpbmRleCkgPT4gYXNzaWduKHRhcmdldFtrZXldW2luZGV4XSB8fCB7fSwgaXRlbSkpIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBhc3NpZ24odGFyZ2V0LCAuLi5zb3VyY2VzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWQodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlID09PSAwIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nID8gdHJ1ZSA6IHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09ICcnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZERhdGUodmFsdWUsIHdpdGhEYXlzID0gdHJ1ZSkge1xuICBpZiAodmFsdWUgJiYgaXNGdWxsRGF0ZSh2YWx1ZSwgd2l0aERheXMpKSB7XG4gICAgaWYgKHdpdGhEYXlzKSB7XG4gICAgICByZXR1cm4gbW9tZW50KHZhbHVlLnJlcGxhY2UoL1teXFxkXSsvZywgJycpLCAnRERNTVlZWVknKS5pc1ZhbGlkKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBtb21lbnQodmFsdWUucmVwbGFjZSgvW15cXGRdKy9nLCAnJyksICdNTVlZWVknKS5pc1ZhbGlkKCk7XG4gICAgfVxuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNGdWxsRGF0ZSh2YWx1ZSwgd2l0aERheXMgPSB0cnVlKSB7XG4gIGlmICh2YWx1ZSkge1xuICAgIGxldCB0b3RhbExlbmd0aDtcbiAgICBpZiAod2l0aERheXMpIHtcbiAgICAgIHRvdGFsTGVuZ3RoID0gODtcbiAgICB9IGVsc2Uge1xuICAgICAgdG90YWxMZW5ndGggPSA2O1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWUucmVwbGFjZSgvW15cXGRdKy9nLCAnJykubGVuZ3RoID09PSB0b3RhbExlbmd0aDtcbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGF1dG9Db21wbGV0ZU9iamVjdEZvcklkT2JqZWN0KHRhYmxlSWRPYmplY3QpIHtcbiAgaWYgKCFpc09iamVjdCh0YWJsZUlkT2JqZWN0KSkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ1BhcmFtZW50cm8gbsOjbyDDqSB1bSBvYmpldG8nKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAodGFibGVJZE9iamVjdC5oYXNPd25Qcm9wZXJ0eSgndGFibGVJZCcpKSB7XG4gICAgY29uc29sZS5lcnJvcignUGFyYW1lbnRybyBuw6NvIMOpIHVtIG9iamV0byBBdXRvIENvbXBsZXRlIHbDoWxpZG8sIGZhbHRhIHRhYmxlSWQnKTtcbiAgfVxuXG4gIGlmICghaXNWYWxpZCh0YWJsZUlkT2JqZWN0LnRhYmxlSWQpKSB7XG4gICAgY29uc29sZS5lcnJvcigndGFibGVJZCBlc3RhIHZhemlvJyk7XG4gIH1cblxuICByZXR1cm4geyBpZDogdGFibGVJZE9iamVjdC50YWJsZUlkIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGVGaWVsZChuYW1lLCB2YWx1ZSkge1xuICBjb25zdCB0ZXN0RGF0ZSA9IG5hbWUuc2VhcmNoKCdEYXRlJyk7XG4gIGlmICh0ZXN0RGF0ZSAhPT0gLTEpIHtcbiAgICByZXR1cm4gaW52ZXJ0RmllbGREYXRlKHZhbHVlKTtcbiAgfVxuICByZXR1cm4gdmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnZlcnRGaWVsZERhdGUodmFsdWUsIGluRm9ybWF0ID0gJ0RETU1ZWVlZJywgb3V0Rm9ybWF0ID0gJ1lZWVktTU0tREQnKSB7XG4gIGlmICghaXNWYWxpZCh2YWx1ZSkpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgZm9ybWF0SW4gPSBnZXRGb3JtYXREYXRlKHZhbHVlLCBpbkZvcm1hdCk7XG4gIHJldHVybiBtb21lbnQodmFsdWUucmVwbGFjZSgvW15cXGRdKy9nLCAnJyksIGZvcm1hdEluKS5mb3JtYXQob3V0Rm9ybWF0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFkZFdlZWtEYXlzQnVzaW5lc3ModmFsdWUsIHF1YW50aWRhZGUpIHtcbiAgcmV0dXJuIGJ1c2luZXNzLmFkZFdlZWtEYXlzKGdldE1vbWVudCh2YWx1ZSksIHF1YW50aWRhZGUpLmZvcm1hdCgnREQvTU0vWVlZWScpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2Vla0RheXNCdXNpbmVzcyhzdGFydERhdGUsIGVuZERhdGUpIHtcbiAgY29uc3QgZW5kTW9tZW50ID0gZW5kRGF0ZSA/IGdldE1vbWVudChlbmREYXRlKSA6IGdldE1vbWVudChzdGFydERhdGUpLmVuZE9mKCdtb250aCcpO1xuICByZXR1cm4gYnVzaW5lc3Mud2Vla0RheXMoZ2V0TW9tZW50KHN0YXJ0RGF0ZSksIGVuZE1vbWVudCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGb3JtYXREYXRlKHZhbHVlLCBpbkZvcm1hdCkge1xuICBpZiAodmFsdWUuc2VhcmNoKCcvJykgIT09IC0xKSB7XG4gICAgcmV0dXJuICdERE1NWVlZWSc7XG4gIH0gZWxzZSBpZiAodmFsdWUuc2VhcmNoKCctJykgIT09IC0xKSB7XG4gICAgcmV0dXJuICdZWVlZTU1ERCc7XG4gIH1cbiAgcmV0dXJuIGluRm9ybWF0O1xufVxuXG4vKipcbiAqIEZJWE1FIC0gRXN0w6EgZml4byBwYXJhIHVzbyBkbyBjYWxlbmTDoXJpbyBwb3J0dWd1ZXMgQnJhc2lsXG4gKiBAcGFyYW0gdmFsdWVcbiAqIEBwYXJhbSBvdXRGb3JtYXRcbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBuZ0NhbGVuZGFyRm9ybWF0KHZhbHVlLCBvdXRGb3JtYXQgPSAnREQvTU0vWVlZWScpIHtcbiAgaWYgKGlzVmFsaWREYXRlKHZhbHVlKSkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBfbW9tZW50KHZhbHVlKS5mb3JtYXQob3V0Rm9ybWF0KTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE5vd0RhdGUob3V0Rm9ybWF0ID0gJ1lZWVktTU0tREQnKSB7XG4gIHJldHVybiBtb21lbnQoKS5mb3JtYXQob3V0Rm9ybWF0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE1vbWVudCh2YWx1ZSwgaW5Gb3JtYXQgPSAnRERNTVlZWVknKSB7XG4gIGNvbnN0IGZvcm1hdEluID0gZ2V0Rm9ybWF0RGF0ZSh2YWx1ZSwgaW5Gb3JtYXQpO1xuICByZXR1cm4gbW9tZW50KHZhbHVlLnJlcGxhY2UoL1teXFxkXSsvZywgJycpLCBmb3JtYXRJbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfbW9tZW50KHZhbHVlLCBmb3JtYXQ/OiBzdHJpbmcpIHtcbiAgaWYgKGZvcm1hdCkge1xuICAgIHJldHVybiBtb21lbnQodmFsdWUsIGZvcm1hdCk7XG4gIH1cbiAgcmV0dXJuIG1vbWVudCh2YWx1ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPYmpWYWxpZHMob2Jqcykge1xuICBjb25zdCBqc29uID0gT2JqZWN0LmFzc2lnbih7fSwgb2Jqcyk7XG4gIGNvbnN0IGpzb25SZXR1cm4gPSB7fTtcbiAgT2JqZWN0LmtleXMoanNvbikubWFwKGtleSA9PiB7XG4gICAgaWYgKGlzVmFsaWQoanNvbltrZXldKSkge1xuICAgICAganNvblJldHVybltrZXldID0gaXNEYXRlRmllbGQoa2V5LCBqc29uW2tleV0pO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBqc29uUmV0dXJuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlRW1wdHkob2JqKSB7XG4gIE9iamVjdC5rZXlzKG9iaikuZm9yRWFjaChcbiAgICBrID0+IChvYmpba10gJiYgdHlwZW9mIG9ialtrXSA9PT0gJ29iamVjdCcgJiYgcmVtb3ZlRW1wdHkob2JqW2tdKSkgfHwgKCFvYmpba10gJiYgb2JqW2tdICE9PSB1bmRlZmluZWQgJiYgZGVsZXRlIG9ialtrXSlcbiAgKTtcbiAgcmV0dXJuIG9iajtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdE1vbmV5KHZhbHVlLCBpMThuID0gJ0VOJykge1xuICBzd2l0Y2ggKGkxOG4pIHtcbiAgICBjYXNlICdFTic6XG4gICAgICByZXR1cm4gaXNWYWxpZCh2YWx1ZSlcbiAgICAgICAgPyB2YWx1ZVxuICAgICAgICAgICAgLnRvU3RyaW5nKClcbiAgICAgICAgICAgIC5yZXBsYWNlKCcuJywgJycpXG4gICAgICAgICAgICAucmVwbGFjZSgnLCcsICcuJylcbiAgICAgICAgOiAnJztcbiAgICBjYXNlICdCUic6XG4gICAgICByZXR1cm4gaXNWYWxpZCh2YWx1ZSlcbiAgICAgICAgPyB2YWx1ZVxuICAgICAgICAgICAgLnRvU3RyaW5nKClcbiAgICAgICAgICAgIC5yZXBsYWNlKCcuJywgJywnKVxuICAgICAgICAgICAgLnJlcGxhY2UoLyhcXGQpKD89KFxcZHszfSkrKD8hXFxkKSkvZywgJyQxLicpXG4gICAgICAgIDogJyc7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBpc1ZhbGlkKHZhbHVlKVxuICAgICAgICA/IHZhbHVlXG4gICAgICAgICAgICAudG9TdHJpbmcoKVxuICAgICAgICAgICAgLnJlcGxhY2UoJy4nLCAnJylcbiAgICAgICAgICAgIC5yZXBsYWNlKCcsJywgJy4nKVxuICAgICAgICA6ICcnO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1aWlkKCkge1xuICByZXR1cm4gbmV3IGNoYW5jZSgpXG4gICAgLmd1aWQoKVxuICAgIC5yZXBsYWNlKC9bXmEtekEtWjAtOS5dL2csICcnKVxuICAgIC50b1VwcGVyQ2FzZSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbW91bnRDdXN0b21Gb3JTYXZlKGN1c3RvbSwgY3VzdG9tRW50aXR5ID0gbnVsbCwgbG9jYWxlID0gbnVsbCkge1xuICBjb25zdCBjdXN0b25GaWVsZCA9IFtdO1xuICBpZiAoY3VzdG9tRW50aXR5ICYmIGN1c3RvbS5sZW5ndGgpIHtcbiAgICBjdXN0b21FbnRpdHkubWFwKCh2YWwsIGtleSkgPT4ge1xuICAgICAgY29uc3QgZmllbGQgPSBPYmplY3Qua2V5cyhjdXN0b21ba2V5XSkudG9TdHJpbmcoKTtcbiAgICAgIGNvbnN0IHZhbE9ybnVsbCA9IGlzVmFsaWQoY3VzdG9tW2tleV1bZmllbGRdKSA/IGN1c3RvbVtrZXldW2ZpZWxkXSA6IG51bGw7XG4gICAgICBjb25zdCB2YWx1ZSA9XG4gICAgICAgIHZhbC50eXBlID09PSAnZGF0ZScgJiYgbG9jYWxlICYmIGlzVmFsaWQodmFsT3JudWxsKSA/IG1vbWVudCh2YWxPcm51bGwsIGdldEZvcm1hdChsb2NhbGUpKS5mb3JtYXQoJ1lZWVktTU0tREQnKSA6IHZhbE9ybnVsbDtcbiAgICAgIGN1c3RvbkZpZWxkLnB1c2goe1xuICAgICAgICBmaWVsZDogZmllbGQsXG4gICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIHJldHVybiBjdXN0b25GaWVsZC5sZW5ndGggPyBjdXN0b25GaWVsZCA6IG51bGw7XG59XG5cbi8qKlxuICogUHJlcGFyYSBvIG9iamV0byBkZSBjYW1wb3MgY3VzdG9taXphZG9zIHBhcmEgc2FsdmFyIGFzIGVudGlkYWRlcyBxdWVcbiAqIHPDo28gdXRpbGl6YWRhcyBhIHBhcnRpciBkbyBDUlVEIGN1c3RvbWl6YWRvLlxuICogQHBhcmFtIG9iamVjdEZpZWxkcyBvYmpldG8gY29tIG9zIGNhbXBvcyBjdXN0b21pemFkb3MgZGEgZW50aWRhZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtb3VudEN1c3RvbVRvU2F2ZShvYmplY3RGaWVsZHMpIHtcbiAgY29uc3QgY3VzdG9tRmllbGRzID0gW107XG4gIE9iamVjdC5lbnRyaWVzKG9iamVjdEZpZWxkcykuZm9yRWFjaCgoW2ZpZWxkLCB2YWx1ZV0pID0+IHtcbiAgICBjdXN0b21GaWVsZHMucHVzaCh7XG4gICAgICBmaWVsZDogZmllbGQsXG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgfSk7XG4gIH0pO1xuICByZXR1cm4gY3VzdG9tRmllbGRzO1xufVxuXG4vKipcbiAqIFByZXBhcmEgbyBvYmpldG8gZGUgY2FtcG9zIGN1c3RvbWl6YWRvcyBwYXJhIGV4aWJpciBhcyBlbnRpZGFkZXMgcXVlXG4gKiBzw6NvIHV0aWxpemFkYXMgYSBwYXJ0aXIgZG8gQ1JVRCBjdXN0b21pemFkby5cbiAqIEBwYXJhbSBjdXN0b21GaWVsZHMgb2JqZXRvIGNvbSBvcyBjYW1wb3MgY3VzdG9taXphZG9zIGRhIGVudGlkYWRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbW91bnRDdXN0b21Ub1Nob3coY3VzdG9tRmllbGRzKSB7XG4gIGNvbnN0IGN1c3RvbUZpZWxkc1RvU2hvdyA9IHt9O1xuICBpZiAoY3VzdG9tRmllbGRzICYmIGN1c3RvbUZpZWxkcy5sZW5ndGgpIHtcbiAgICBjdXN0b21GaWVsZHMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGlmIChpdGVtLnR5cGUgPT09ICdkYXRlJyAmJiBpdGVtLnZhbHVlKSB7XG4gICAgICAgIGl0ZW0udmFsdWUgPSBfbW9tZW50KGl0ZW0udmFsdWUpLmZvcm1hdCgnTCcpO1xuICAgICAgfVxuICAgICAgY3VzdG9tRmllbGRzVG9TaG93W2l0ZW0uZmllbGRdID0gaXRlbS52YWx1ZTtcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gY3VzdG9tRmllbGRzVG9TaG93O1xufVxuXG4vKipcbiAqIFByZXBhcmEgbyBvYmpldG8gZGUgY2FtcG9zIGN1c3RvbWl6YWRvcyBwYXJhIHNhbHZhciBhcyBlbnRpZGFkZXMgcXVlXG4gKiBzw6NvIHV0aWxpemFkYXMgYSBwYXJ0aXIgZG8gQ1JVRCBnZXJhZG8uXG4gKiBAcGFyYW0gb2JqZWN0RmllbGRzIG9iamV0byBjb20gb3MgY2FtcG9zIGN1c3RvbWl6YWRvcyBkYSBlbnRpZGFkZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vdW50R2VuZXJhdGVkQ3VzdG9tVG9TYXZlKG9iamVjdEZpZWxkcykge1xuICBPYmplY3QuZW50cmllcyhvYmplY3RGaWVsZHMpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIGRlbGV0ZSBvYmplY3RGaWVsZHNba2V5XTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gb2JqZWN0RmllbGRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbW91bnRDdXN0b21Gb3JTaG93KGN1c3RvbSkge1xuICBjb25zdCBjdXN0b21GaWVsZCA9IFtdO1xuICBPYmplY3Qua2V5cyhjdXN0b20gfHwge30pLmZvckVhY2godmFsID0+IHtcbiAgICBpZiAoY3VzdG9tW3ZhbF0udHlwZSA9PT0gJ2RhdGUnICYmIGN1c3RvbVt2YWxdLnZhbHVlKSB7XG4gICAgICBjdXN0b21bdmFsXS52YWx1ZSA9IF9tb21lbnQoY3VzdG9tW3ZhbF0udmFsdWUpLmZvcm1hdCgnTCcpO1xuICAgIH1cbiAgICBjdXN0b21GaWVsZC5wdXNoKGN1c3RvbVt2YWxdKTtcbiAgfSk7XG4gIHJldHVybiBjdXN0b21GaWVsZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFZhbHVlQ3VzdG9tKGN1c3RvbkZpZWxkcywgY3VzdG9tKSB7XG4gIGNvbnN0IGlzQ3VzdG9ucyA9IGN1c3RvbSA/IE9iamVjdC5rZXlzKGN1c3RvbSkubGVuZ3RoIDogMDtcbiAgY3VzdG9uRmllbGRzLm1hcCh2YWwgPT4ge1xuICAgIHZhbC52YWx1ZSA9IGlzQ3VzdG9ucyA+IDAgPyBjdXN0b21bdmFsLmZpZWxkXSA6IG51bGw7XG4gIH0pO1xuICByZXR1cm4gY3VzdG9uRmllbGRzO1xufVxuXG4vKipcbiAqICBBZGljaW9uYSB1bSBlcnJvIG5vIGNvbnRyb2xlIGRvIGZvcm11bMOhcmlvLiBEZXZlIHNlciBjaGFtYWRvIGNvbSAuY2FsbCBwYXNzYW5kbyBvIGNvbnRleHRvIGRhIGNsYXNzLlxuICogIEV4Ljogc2V0RXJyb3JzLmNhbGwodGhpcy5jb250cmFjdEdyb3VwLCAncmVnaXN0ZXJFbXBsb3llZU51bWJlcicsICdleGlzdCcsICFwYXlsb2FkKVxuICpcbiAqIEBwYXJhbSBmb3JtQ29udHJvbE5hbWUgTm9tZSBkbyBjb250cm9sZSBkbyBmb3JtdWzDoXJpby5cbiAqIEBwYXJhbSBrZXlFcnJvciBOb21lIGRvIGVycm9yIGEgc2VyIGV4aWJpZG8gZW0gdGVsYS5cbiAqIEBwYXJhbSBpc0ludmFsaWQgU2UgaG91dmVyIGFsZ3VtIGVycm8gZGUgdmFsaWRhw6fDo28gbm8gY2FtcG8uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRFcnJvcnMoZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmcsIGtleUVycm9yOiBzdHJpbmcsIGlzSW52YWxpZDogYm9vbGVhbik6IHZvaWQge1xuICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICBpZiAoaXNJbnZhbGlkKSB7XG4gICAgICBjb25zdCBlcnJvcnMgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmdldChmb3JtQ29udHJvbE5hbWUpLmVycm9ycyk7XG4gICAgICBlcnJvcnNba2V5RXJyb3JdID0gaXNJbnZhbGlkO1xuICAgICAgdGhpcy5nZXQoZm9ybUNvbnRyb2xOYW1lKS5zZXRFcnJvcnMoZXJyb3JzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZXJyb3JzID0gdGhpcy5nZXQoZm9ybUNvbnRyb2xOYW1lKS5lcnJvcnM7XG5cbiAgICAgIGlmIChlcnJvcnMgJiYgT2JqZWN0LmtleXMoZXJyb3JzKS5sZW5ndGgpIHtcbiAgICAgICAgZGVsZXRlIGVycm9yc1trZXlFcnJvcl07XG5cbiAgICAgICAgaWYgKCFPYmplY3Qua2V5cyhlcnJvcnMpLmxlbmd0aCkge1xuICAgICAgICAgIHRoaXMuZ2V0KGZvcm1Db250cm9sTmFtZSkuc2V0RXJyb3JzKG51bGwpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LCAwKTtcbn1cblxuLyoqXG4gKiBGYXogbG9vcCBkbyBub3MgY29udHJvbHMgZG8gZm9ybXVsw6FyaW8gZSBzdWJBcnJheSBjYXNvIGV4aXN0aXJcbiAqIHNldGFuZG8gb3MgaW52w6FsaWRvc1xuICogRXguOiB2ZXJpZnlWYWxpZGF0aW9uc0Zvcm0uY2FsbCh0aGlzLmluaXRpYWxHcm91cCk7XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2ZXJpZnlWYWxpZGF0aW9uc0Zvcm0oKSB7XG4gIE9iamVjdC5rZXlzKHRoaXMuY29udHJvbHMpLm1hcChmaWVsZCA9PiB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ2V0KGZpZWxkKTtcbiAgICBjb250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtR3JvdXAgfHwgY29udHJvbCBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xuICAgICAgdmVyaWZ5VmFsaWRhdGlvbnNGb3JtLmNhbGwoY29udHJvbCk7XG4gICAgfVxuICB9KTtcbn1cblxuLyoqXG4gKiBSZXRvcm5hIGEgaWRhZGUgZGUgYWNvcmRvIGNvbSBhIGRhdGEgZGUgbmFzY2ltZW50by5cbiAqXG4gKiBAcGFyYW0gYmlydGhkYXlEYXRlIERhdGEgZGUgbmFzY2ltZW50by5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFllYXJzKGJpcnRoZGF5KSB7XG4gIGNvbnN0IGN1cnJlbnREYXRlID0gbW9tZW50KCk7XG4gIGNvbnN0IHllYXJzID0gY3VycmVudERhdGUuZGlmZihiaXJ0aGRheSwgJ3llYXJzJywgZmFsc2UpO1xuICByZXR1cm4geWVhcnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRDdXN0b25GaWVsZHMoY3VzdG9tRmllbGRzKSB7XG4gIGN1c3RvbUZpZWxkcy5tYXAodmFsID0+IHtcbiAgICBjb25zdCBhZGRDdXN0b24gPSB7fTtcbiAgICBsZXQgdmFsdWUgPSB2YWwudmFsdWUgfHwgbnVsbDtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicpIHtcbiAgICAgIHZhbHVlID0gdmFsdWUgPyAndHJ1ZScgOiAnZmFsc2UnO1xuICAgIH1cbiAgICBhZGRDdXN0b25bdmFsLmZpZWxkXSA9IG5ldyBGb3JtQ29udHJvbCh2YWx1ZSk7XG4gICAgdGhpcy5wdXNoKG5ldyBGb3JtR3JvdXAoYWRkQ3VzdG9uKSk7XG4gIH0pO1xuICByZXR1cm4gY3VzdG9tRmllbGRzO1xufVxuXG4gICAgZXhwb3J0IGZ1bmN0aW9uIHNldFJlcXVpcmVkKGZvcm1Hcm91cDogRm9ybUdyb3VwLCBuYW1lOiBzdHJpbmcsIHJlcXVpcmVkOiBib29sZWFuLCB2YWxpZGF0b3JzPzogVmFsaWRhdG9yRm5bXSkge1xuICBpZiAocmVxdWlyZWQpIHtcbiAgICBmb3JtR3JvdXAuY29udHJvbHNbbmFtZV0uc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLmNvbXBvc2UodmFsaWRhdG9ycyAmJiB2YWxpZGF0b3JzLmxlbmd0aCA/IHZhbGlkYXRvcnMgOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pKTtcbiAgICBmb3JtR3JvdXAuY29udHJvbHNbbmFtZV0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9IGVsc2Uge1xuICAgIGZvcm1Hcm91cC5jb250cm9sc1tuYW1lXS5zZXRWYWxpZGF0b3JzKG51bGwpO1xuICAgIGZvcm1Hcm91cC5jb250cm9sc1tuYW1lXS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cbn1cblxuLyoqXG4gKiBFc3NlIG3DqXRvZG8gdGVtIGNvbW8gZnVuw6fDo28gc2V0YXIgb3MgY2FtcG9zIGVuYWJsZSBvdSBkaXNhYmxlLlxuICogQHBhcmFtIGZvcm1Hcm91cCBGb3JtR3JvdXAgb25kZSBzZSBlbmNvbnRyYSBvcyBjYW1wb3MgYSBzZXJlbSBhbHRlcmFkb3MuXG4gKiBAcGFyYW0gY29uZGl0aW9uIENvbmRpw6fDo28gcGFyYSB2YWxpZGHDp8Ojby4gVHJ1ZSA9IGVuYWJsZWQsIEZhbHNlID0gZGlzYWJsZWQuXG4gKiBAcGFyYW0gZmllbGRzIENhbXBvcyBhIHNlcmVtIG1hbmlwdWxhZG9zLlxuICogQHBhcmFtIGZpZWxkc1RvQ2xlYXIgQ2FtcG9zIGEgc2VyZW0gbGltcG9zLiDDiSBvcGljaW9uYWwgZSBzZSBuw6NvIGZvaSBwYXNzYWRvIG8gbcOpdG9kbyBsaW1wYXLDoSBvcyBtZXNtb3MgY2FtcG9zIGRvcyBmaWVsZHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb25maWdFbmFibGVkRmllbGRzKGZvcm1Hcm91cDogRm9ybUdyb3VwLCBjb25kaXRpb246IGJvb2xlYW4sIGZpZWxkczogQXJyYXk8c3RyaW5nPiwgZmllbGRzVG9DbGVhcj86IEFycmF5PHN0cmluZz4pIHtcbiAgaWYgKGNvbmRpdGlvbikge1xuICAgIGZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IGZvcm1Hcm91cC5nZXQoZmllbGQpLmVuYWJsZSgpKTtcbiAgfSBlbHNlIHtcbiAgICBmaWVsZHMuZm9yRWFjaChmaWVsZCA9PiBmb3JtR3JvdXAuZ2V0KGZpZWxkKS5kaXNhYmxlKCkpO1xuICAgIGNsZWFyVmFsdWVzKGZvcm1Hcm91cCwgZmllbGRzVG9DbGVhciA/IGZpZWxkc1RvQ2xlYXIgOiBmaWVsZHMpO1xuICB9XG59XG5cbi8qKlxuICogRXNzZSBtw6l0b2RvIHRlbSBjb21vIGZ1bsOnw6NvIHNldGFyIG9zIGNhbXBvcyBjb21vIHJlcXVlcmlkb3Mgb3UgbsOjby5cbiAqXG4gKiBAcGFyYW0gZm9ybUdyb3VwIEZvcm1Hcm91cCBvbmRlIHNlIGVuY29udHJhIG9zIGNhbXBvcyBhIHNlcmVtIGFsdGVyYWRvcy5cbiAqIEBwYXJhbSBjb25kaXRpb24gU2Ugc2Vyw6Egb3UgbsOjbyByZXF1ZXJpZG9zLlxuICogQHBhcmFtIGZpZWxkcyBMaXN0YSBkZSBjYW1wb3MuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRSZXF1aXJlZEZpZWxkcyhmb3JtR3JvdXA6IEZvcm1Hcm91cCwgY29uZGl0aW9uOiBib29sZWFuLCBmaWVsZHM6IEFycmF5PHN0cmluZz4pIHtcbiAgaWYgKGNvbmRpdGlvbikge1xuICAgIGZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHNldFJlcXVpcmVkKGZvcm1Hcm91cCwgZmllbGQsIHRydWUsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSkpO1xuICB9IGVsc2Uge1xuICAgIGZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHNldFJlcXVpcmVkKGZvcm1Hcm91cCwgZmllbGQsIGZhbHNlKSk7XG4gIH1cbn1cblxuXG4vKipcbiAqIEVzc2UgbcOpdG9kbyB0ZW0gY29tbyBmdW7Dp8OjbyBzZXRhciB2YWxpZGHDp8O1ZXMgZGluw6JtaWNhcyBub3MgY2FtcG9zLlxuICpcbiAqIEBwYXJhbSBmb3JtR3JvdXAgRm9ybUdyb3VwIG9uZGUgc2UgZW5jb250cmEgb3MgY2FtcG9zIGEgc2VyZW0gYWx0ZXJhZG9zLlxuICogQHBhcmFtIGZpZWxkcyBMaXN0YSBkZSBvYmpldG9zIFt7ZmllbGQ6IGNhbXBvLCB2YWxpZGF0b3JzOiB2YWxpZGHDp8O1ZXMsIGRpc2FibGU6IGJvb2xlYW59XS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldFZhbGlkYXRvcnNBbmREaXNhYmxlRmllbGRzKGZvcm1Hcm91cDogRm9ybUdyb3VwLCBmaWVsZHM6IEFycmF5PEZpZWxkVmFsaWRhdG9yc09iamVjdD4pIHtcbiAgICBmaWVsZHMuZm9yRWFjaCgoY3VycmVudEZpZWxkOiBGaWVsZFZhbGlkYXRvcnNPYmplY3QpID0+IHtcbiAgICAgICAgc2V0VmFsaWRhdG9yKGZvcm1Hcm91cCwgY3VycmVudEZpZWxkLmZpZWxkLCAgY3VycmVudEZpZWxkLnZhbGlkYXRvcnMpO1xuICAgICAgICBzZXREaXNhYmxlRmllbGQoZm9ybUdyb3VwLCBjdXJyZW50RmllbGQuZGlzYWJsZWQsICBjdXJyZW50RmllbGQuZmllbGQsIGN1cnJlbnRGaWVsZC5jbGVhclZhbHVlKTtcbiAgICB9KTtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gc2V0VmFsaWRhdG9yKGZvcm1Hcm91cDogRm9ybUdyb3VwLCBuYW1lOiBzdHJpbmcsIHZhbGlkYXRvcnM/OiBWYWxpZGF0b3JGbltdKSB7XG4gICAgaWYgKHZhbGlkYXRvcnMgJiYgdmFsaWRhdG9ycy5sZW5ndGgpIHtcbiAgICAgICAgZm9ybUdyb3VwLmNvbnRyb2xzW25hbWVdLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5jb21wb3NlKHZhbGlkYXRvcnMpKTtcbiAgICAgICAgZm9ybUdyb3VwLmNvbnRyb2xzW25hbWVdLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBmb3JtR3JvdXAuY29udHJvbHNbbmFtZV0uc2V0VmFsaWRhdG9ycyhudWxsKTtcbiAgICAgICAgZm9ybUdyb3VwLmNvbnRyb2xzW25hbWVdLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG59XG5cblxuLyoqXG4gKiBFc3NlIG3DqXRvZG8gdGVtIGNvbW8gZnVuw6fDo28gc2V0YXIgb3MgY2FtcG9zIGVuYWJsZSBvdSBkaXNhYmxlLlxuICogQHBhcmFtIGZvcm1Hcm91cCBGb3JtR3JvdXAgb25kZSBzZSBlbmNvbnRyYSBvcyBjYW1wb3MgYSBzZXJlbSBhbHRlcmFkb3MuXG4gKiBAcGFyYW0gY29uZGl0aW9uIENvbmRpw6fDo28gcGFyYSB2YWxpZGHDp8Ojby4gVHJ1ZSA9IGRpc2FibGVkLCBGYWxzZSA9IGVuYWJsZWQuXG4gKiBAcGFyYW0gZmllbGQgQ2FtcG8gYSBzZXIgbWFuaXB1bGFkb3MuXG4gKiBAcGFyYW0gY2xlYXJWYWx1ZSBDYW1wb3MgYSBzZXIgbGltcG9zLiDDiSBvcGljaW9uYWwgZSBzZSBuw6NvIGZvaSBwYXNzYWRvIG8gbcOpdG9kbyBsaW1wYXLDoSBvIGNhbXBvIGRvIGZpZWxkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0RGlzYWJsZUZpZWxkKGZvcm1Hcm91cDogRm9ybUdyb3VwLCBjb25kaXRpb246IGJvb2xlYW4sIGZpZWxkOiBzdHJpbmcsIGNsZWFyVmFsdWU6IGJvb2xlYW4gPSB0cnVlKSB7XG4gICAgaWYgKGNvbmRpdGlvbikge1xuICAgICAgICBmb3JtR3JvdXAuZ2V0KGZpZWxkKS5kaXNhYmxlKCk7XG4gICAgICAgIGlmIChjbGVhclZhbHVlKSBmb3JtR3JvdXAuZ2V0KGZpZWxkKS5yZXNldCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGZvcm1Hcm91cC5nZXQoZmllbGQpLmVuYWJsZSgpO1xuICAgIH1cbn1cblxuLyoqXG4gKiBPcmRlbmEgYXJyYXkgZGUgb2JqZXRvc1xuICogQHBhcmFtIGtleSBvIGNhbXBvIHF1ZSBkZXNlamEgb3JkZW5hclxuICogQHBhcmFtIG9yZGVyIGEgb3JkZW0gcXVlIGRlc2VqYSBvcmRlbmFyIG8gY2FtcG9cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbXBhcmVWYWx1ZXMoa2V5OiBzdHJpbmcsIG9yZGVyOiBzdHJpbmcgPSBcIkFTQ1wiKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIGlubmVyU29ydChhOiBhbnksIGI6IGFueSkge1xuICAgICAgICBpZiAoIWEuaGFzT3duUHJvcGVydHkoa2V5KSB8fCAhYi5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZhckEgPSAodHlwZW9mIGFba2V5XSA9PT0gXCJzdHJpbmdcIilcbiAgICAgICAgICAgID8gYVtrZXldLnRvVXBwZXJDYXNlKCkgOiBhW2tleV07XG4gICAgICAgIGNvbnN0IHZhckIgPSAodHlwZW9mIGJba2V5XSA9PT0gXCJzdHJpbmdcIilcbiAgICAgICAgICAgID8gYltrZXldLnRvVXBwZXJDYXNlKCkgOiBiW2tleV07XG5cbiAgICAgICAgbGV0IGNvbXBhcmlzb24gPSAwO1xuICAgICAgICBpZiAodmFyQSA+IHZhckIpIHtcbiAgICAgICAgICAgIGNvbXBhcmlzb24gPSAxO1xuICAgICAgICB9IGVsc2UgaWYgKHZhckEgPCB2YXJCKSB7XG4gICAgICAgICAgICBjb21wYXJpc29uID0gLTE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChvcmRlciA9PT0gXCJERVNDXCIpID8gKGNvbXBhcmlzb24gKiAtMSkgOiBjb21wYXJpc29uXG4gICAgICAgICk7XG4gICAgfTtcbn1cblxuLyoqXG4gKiBFc3NlIG3DqXRvZG8gdGVtIGNvbW8gZnVuw6fDo28gbGltcGFyIG8gdmFsb3IgZG9zIGNhbXBvcy5cbiAqXG4gKiBAcGFyYW0gZm9ybUdyb3VwIEZvcm1Hcm91cCBvbmRlIHNlIGVuY29udHJhIG9zIGNhbXBvcyBhIHNlcmVtIGxpbXBvcy5cbiAqIEBwYXJhbSBmaWVsZHMgQ2FtcG9zIGEgc2VyZW0gbGltcG9zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xlYXJWYWx1ZXMoZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGZpZWxkczogQXJyYXk8c3RyaW5nPikge1xuICBmaWVsZHMuZm9yRWFjaChmaWVsZCA9PiBmb3JtR3JvdXAuZ2V0KGZpZWxkKS5yZXNldCgpKTtcbn1cblxuLyoqXG4gKlxuICogQHBhcmFtIHFzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaFxuICogQHJldHVybnMgT2JqZWN0IGNvbSBwYXJhbWV0cm9zIHF1ZXJ5IHN0cmluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UXVlcnlQYXJhbXMocXMpIHtcbiAgcXMgPSBxcy5zcGxpdCgnKycpLmpvaW4oJyAnKTtcblxuICBjb25zdCBwYXJhbXMgPSB7fTtcbiAgbGV0IHRva2VucztcbiAgY29uc3QgcmUgPSAvWz8mXT8oW149XSspPShbXiZdKikvZztcblxuICB3aGlsZSAoKHRva2VucyA9IHJlLmV4ZWMocXMpKSkge1xuICAgIHBhcmFtc1tkZWNvZGVVUklDb21wb25lbnQodG9rZW5zWzFdKV0gPSBkZWNvZGVVUklDb21wb25lbnQodG9rZW5zWzJdKTtcbiAgfVxuXG4gIHJldHVybiBwYXJhbXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGb3JtYXQobG9jYWxlKSB7XG4gIGlmIChsb2NhbGUpIHtcbiAgICBsZXQgZGF0ZUZvcm1hdCA9IGxvY2FsZS5jYWxlbmRhci5kYXRlRm9ybWF0LnRvU3RyaW5nKCk7XG4gICAgZGF0ZUZvcm1hdCA9IGRhdGVGb3JtYXQucmVwbGFjZSgvW3ldL2csICdZWScpO1xuICAgIGRhdGVGb3JtYXQgPSBkYXRlRm9ybWF0LnJlcGxhY2UoL1svXS9nLCAnJyk7XG4gICAgcmV0dXJuIGRhdGVGb3JtYXQudG9VcHBlckNhc2UoKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlbW92ZSBvcyBjYXJhY3RlcmVzIHF1ZSBuw6NvIHNlamFtIG7Dum1lcm9zIGRvIHZhbG9yXG4gKiBAcGFyYW0gdmFsdWUgdmFsb3IgYSBzZXIgdHJhdGFkb1xuICogQHJldHVybnMgc3RyaW5nIE8gdmFsb3Igc2VtIGNhcmFjdGVyZXMgZXNwZWNpYWlzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVDaGFyYWN0ZXJlc1NwZWNpYWxzKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICAgIHJldHVybiB2YWx1ZSA/IHZhbHVlLnRvU3RyaW5nKCkucmVwbGFjZSgvWyZcXC9cXFxcIywrKCkkfiUuJ1wiOio/PD57fS1dL2csIFwiXCIpIDogbnVsbDtcbn1cbiJdfQ==