@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
@@ -0,0 +1,502 @@
1
+ import * as tslib_1 from "tslib";
2
+ import { FormArray, FormControl, FormGroup, Validators } from '@angular/forms';
3
+ import * as chance from 'chance';
4
+ import * as momentImported from 'moment';
5
+ import business from 'moment-business';
6
+ var moment = momentImported;
7
+ export function isObject(item) {
8
+ return item && typeof item === 'object' && !Array.isArray(item);
9
+ }
10
+ export function isShallow(item) {
11
+ return Array.isArray(item) && item.find(function (value) { return typeof value === 'object'; }) ? false : true;
12
+ }
13
+ export function convertBooleanString(value) {
14
+ if (typeof value === 'boolean') {
15
+ return value === true ? 'true' : 'false';
16
+ }
17
+ return value;
18
+ }
19
+ export function convertStringToBoolean(value) {
20
+ return value === true || value.toLowerCase() === 'true';
21
+ }
22
+ export function assign(target) {
23
+ var sources = [];
24
+ for (var _i = 1; _i < arguments.length; _i++) {
25
+ sources[_i - 1] = arguments[_i];
26
+ }
27
+ if (!sources.length) {
28
+ return target;
29
+ }
30
+ var source = sources.shift();
31
+ if (isObject(target) && isObject(source)) {
32
+ var _loop_1 = function (key) {
33
+ var _a, _b, _c, _d;
34
+ if (isObject(source[key])) {
35
+ if (!target[key]) {
36
+ Object.assign(target, (_a = {}, _a[key] = {}, _a));
37
+ }
38
+ assign(target[key], source[key]);
39
+ }
40
+ else {
41
+ if (isShallow(source[key])) {
42
+ Object.assign(target, (_b = {}, _b[key] = source[key], _b));
43
+ }
44
+ else {
45
+ if (!target[key]) {
46
+ Object.assign(target, (_c = {}, _c[key] = [], _c));
47
+ }
48
+ Object.assign(target, (_d = {}, _d[key] = source[key].map(function (item, index) { return assign(target[key][index] || {}, item); }), _d));
49
+ }
50
+ }
51
+ };
52
+ for (var key in source) {
53
+ _loop_1(key);
54
+ }
55
+ }
56
+ return assign.apply(void 0, tslib_1.__spread([target], sources));
57
+ }
58
+ export function isValid(value) {
59
+ return value === 0 || typeof value === 'boolean' ? true : value !== undefined && value !== null && value !== '';
60
+ }
61
+ export function isValidDate(value, withDays) {
62
+ if (withDays === void 0) { withDays = true; }
63
+ if (value && isFullDate(value, withDays)) {
64
+ if (withDays) {
65
+ return moment(value.replace(/[^\d]+/g, ''), 'DDMMYYYY').isValid();
66
+ }
67
+ else {
68
+ return moment(value.replace(/[^\d]+/g, ''), 'MMYYYY').isValid();
69
+ }
70
+ }
71
+ return true;
72
+ }
73
+ export function isFullDate(value, withDays) {
74
+ if (withDays === void 0) { withDays = true; }
75
+ if (value) {
76
+ var totalLength = void 0;
77
+ if (withDays) {
78
+ totalLength = 8;
79
+ }
80
+ else {
81
+ totalLength = 6;
82
+ }
83
+ return value.replace(/[^\d]+/g, '').length === totalLength;
84
+ }
85
+ return true;
86
+ }
87
+ export function autoCompleteObjectForIdObject(tableIdObject) {
88
+ if (!isObject(tableIdObject)) {
89
+ console.error('Paramentro não é um objeto');
90
+ return false;
91
+ }
92
+ if (tableIdObject.hasOwnProperty('tableId')) {
93
+ console.error('Paramentro não é um objeto Auto Complete válido, falta tableId');
94
+ }
95
+ if (!isValid(tableIdObject.tableId)) {
96
+ console.error('tableId esta vazio');
97
+ }
98
+ return { id: tableIdObject.tableId };
99
+ }
100
+ export function isDateField(name, value) {
101
+ var testDate = name.search('Date');
102
+ if (testDate !== -1) {
103
+ return invertFieldDate(value);
104
+ }
105
+ return value;
106
+ }
107
+ export function invertFieldDate(value, inFormat, outFormat) {
108
+ if (inFormat === void 0) { inFormat = 'DDMMYYYY'; }
109
+ if (outFormat === void 0) { outFormat = 'YYYY-MM-DD'; }
110
+ if (!isValid(value)) {
111
+ return;
112
+ }
113
+ var formatIn = getFormatDate(value, inFormat);
114
+ return moment(value.replace(/[^\d]+/g, ''), formatIn).format(outFormat);
115
+ }
116
+ export function getAddWeekDaysBusiness(value, quantidade) {
117
+ return business.addWeekDays(getMoment(value), quantidade).format('DD/MM/YYYY');
118
+ }
119
+ export function getWeekDaysBusiness(startDate, endDate) {
120
+ var endMoment = endDate ? getMoment(endDate) : getMoment(startDate).endOf('month');
121
+ return business.weekDays(getMoment(startDate), endMoment);
122
+ }
123
+ export function getFormatDate(value, inFormat) {
124
+ if (value.search('/') !== -1) {
125
+ return 'DDMMYYYY';
126
+ }
127
+ else if (value.search('-') !== -1) {
128
+ return 'YYYYMMDD';
129
+ }
130
+ return inFormat;
131
+ }
132
+ /**
133
+ * FIXME - Está fixo para uso do calendário portugues Brasil
134
+ * @param value
135
+ * @param outFormat
136
+ * @returns
137
+ */
138
+ export function ngCalendarFormat(value, outFormat) {
139
+ if (outFormat === void 0) { outFormat = 'DD/MM/YYYY'; }
140
+ if (isValidDate(value)) {
141
+ if (typeof value === 'string') {
142
+ return value;
143
+ }
144
+ else {
145
+ return _moment(value).format(outFormat);
146
+ }
147
+ }
148
+ }
149
+ export function getNowDate(outFormat) {
150
+ if (outFormat === void 0) { outFormat = 'YYYY-MM-DD'; }
151
+ return moment().format(outFormat);
152
+ }
153
+ export function getMoment(value, inFormat) {
154
+ if (inFormat === void 0) { inFormat = 'DDMMYYYY'; }
155
+ var formatIn = getFormatDate(value, inFormat);
156
+ return moment(value.replace(/[^\d]+/g, ''), formatIn);
157
+ }
158
+ export function _moment(value, format) {
159
+ if (format) {
160
+ return moment(value, format);
161
+ }
162
+ return moment(value);
163
+ }
164
+ export function getObjValids(objs) {
165
+ var json = Object.assign({}, objs);
166
+ var jsonReturn = {};
167
+ Object.keys(json).map(function (key) {
168
+ if (isValid(json[key])) {
169
+ jsonReturn[key] = isDateField(key, json[key]);
170
+ }
171
+ });
172
+ return jsonReturn;
173
+ }
174
+ export function removeEmpty(obj) {
175
+ Object.keys(obj).forEach(function (k) { return (obj[k] && typeof obj[k] === 'object' && removeEmpty(obj[k])) || (!obj[k] && obj[k] !== undefined && delete obj[k]); });
176
+ return obj;
177
+ }
178
+ export function formatMoney(value, i18n) {
179
+ if (i18n === void 0) { i18n = 'EN'; }
180
+ switch (i18n) {
181
+ case 'EN':
182
+ return isValid(value)
183
+ ? value
184
+ .toString()
185
+ .replace('.', '')
186
+ .replace(',', '.')
187
+ : '';
188
+ case 'BR':
189
+ return isValid(value)
190
+ ? value
191
+ .toString()
192
+ .replace('.', ',')
193
+ .replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1.')
194
+ : '';
195
+ default:
196
+ return isValid(value)
197
+ ? value
198
+ .toString()
199
+ .replace('.', '')
200
+ .replace(',', '.')
201
+ : '';
202
+ }
203
+ }
204
+ export function uiid() {
205
+ return new chance()
206
+ .guid()
207
+ .replace(/[^a-zA-Z0-9.]/g, '')
208
+ .toUpperCase();
209
+ }
210
+ export function mountCustomForSave(custom, customEntity, locale) {
211
+ if (customEntity === void 0) { customEntity = null; }
212
+ if (locale === void 0) { locale = null; }
213
+ var custonField = [];
214
+ if (customEntity && custom.length) {
215
+ customEntity.map(function (val, key) {
216
+ var field = Object.keys(custom[key]).toString();
217
+ var valOrnull = isValid(custom[key][field]) ? custom[key][field] : null;
218
+ var value = val.type === 'date' && locale && isValid(valOrnull) ? moment(valOrnull, getFormat(locale)).format('YYYY-MM-DD') : valOrnull;
219
+ custonField.push({
220
+ field: field,
221
+ value: value,
222
+ });
223
+ });
224
+ }
225
+ return custonField.length ? custonField : null;
226
+ }
227
+ /**
228
+ * Prepara o objeto de campos customizados para salvar as entidades que
229
+ * são utilizadas a partir do CRUD customizado.
230
+ * @param objectFields objeto com os campos customizados da entidade.
231
+ */
232
+ export function mountCustomToSave(objectFields) {
233
+ var customFields = [];
234
+ Object.entries(objectFields).forEach(function (_a) {
235
+ var _b = tslib_1.__read(_a, 2), field = _b[0], value = _b[1];
236
+ customFields.push({
237
+ field: field,
238
+ value: value,
239
+ });
240
+ });
241
+ return customFields;
242
+ }
243
+ /**
244
+ * Prepara o objeto de campos customizados para exibir as entidades que
245
+ * são utilizadas a partir do CRUD customizado.
246
+ * @param customFields objeto com os campos customizados da entidade.
247
+ */
248
+ export function mountCustomToShow(customFields) {
249
+ var customFieldsToShow = {};
250
+ if (customFields && customFields.length) {
251
+ customFields.forEach(function (item) {
252
+ if (item.type === 'date' && item.value) {
253
+ item.value = _moment(item.value).format('L');
254
+ }
255
+ customFieldsToShow[item.field] = item.value;
256
+ });
257
+ }
258
+ return customFieldsToShow;
259
+ }
260
+ /**
261
+ * Prepara o objeto de campos customizados para salvar as entidades que
262
+ * são utilizadas a partir do CRUD gerado.
263
+ * @param objectFields objeto com os campos customizados da entidade.
264
+ */
265
+ export function mountGeneratedCustomToSave(objectFields) {
266
+ Object.entries(objectFields).forEach(function (_a) {
267
+ var _b = tslib_1.__read(_a, 2), key = _b[0], value = _b[1];
268
+ if (!value) {
269
+ delete objectFields[key];
270
+ }
271
+ });
272
+ return objectFields;
273
+ }
274
+ export function mountCustomForShow(custom) {
275
+ var customField = [];
276
+ Object.keys(custom || {}).forEach(function (val) {
277
+ if (custom[val].type === 'date' && custom[val].value) {
278
+ custom[val].value = _moment(custom[val].value).format('L');
279
+ }
280
+ customField.push(custom[val]);
281
+ });
282
+ return customField;
283
+ }
284
+ export function setValueCustom(custonFields, custom) {
285
+ var isCustons = custom ? Object.keys(custom).length : 0;
286
+ custonFields.map(function (val) {
287
+ val.value = isCustons > 0 ? custom[val.field] : null;
288
+ });
289
+ return custonFields;
290
+ }
291
+ /**
292
+ * Adiciona um erro no controle do formulário. Deve ser chamado com .call passando o contexto da class.
293
+ * Ex.: setErrors.call(this.contractGroup, 'registerEmployeeNumber', 'exist', !payload)
294
+ *
295
+ * @param formControlName Nome do controle do formulário.
296
+ * @param keyError Nome do error a ser exibido em tela.
297
+ * @param isInvalid Se houver algum erro de validação no campo.
298
+ */
299
+ export function setErrors(formControlName, keyError, isInvalid) {
300
+ var _this = this;
301
+ setTimeout(function () {
302
+ if (isInvalid) {
303
+ var errors = Object.assign({}, _this.get(formControlName).errors);
304
+ errors[keyError] = isInvalid;
305
+ _this.get(formControlName).setErrors(errors);
306
+ }
307
+ else {
308
+ var errors = _this.get(formControlName).errors;
309
+ if (errors && Object.keys(errors).length) {
310
+ delete errors[keyError];
311
+ if (!Object.keys(errors).length) {
312
+ _this.get(formControlName).setErrors(null);
313
+ }
314
+ }
315
+ }
316
+ }, 0);
317
+ }
318
+ /**
319
+ * Faz loop do nos controls do formulário e subArray caso existir
320
+ * setando os inválidos
321
+ * Ex.: verifyValidationsForm.call(this.initialGroup);
322
+ */
323
+ export function verifyValidationsForm() {
324
+ var _this = this;
325
+ Object.keys(this.controls).map(function (field) {
326
+ var control = _this.get(field);
327
+ control.markAsDirty();
328
+ if (control instanceof FormGroup || control instanceof FormArray) {
329
+ verifyValidationsForm.call(control);
330
+ }
331
+ });
332
+ }
333
+ /**
334
+ * Retorna a idade de acordo com a data de nascimento.
335
+ *
336
+ * @param birthdayDate Data de nascimento.
337
+ */
338
+ export function getYears(birthday) {
339
+ var currentDate = moment();
340
+ var years = currentDate.diff(birthday, 'years', false);
341
+ return years;
342
+ }
343
+ export function setCustonFields(customFields) {
344
+ var _this = this;
345
+ customFields.map(function (val) {
346
+ var addCuston = {};
347
+ var value = val.value || null;
348
+ if (typeof value === 'boolean') {
349
+ value = value ? 'true' : 'false';
350
+ }
351
+ addCuston[val.field] = new FormControl(value);
352
+ _this.push(new FormGroup(addCuston));
353
+ });
354
+ return customFields;
355
+ }
356
+ export function setRequired(formGroup, name, required, validators) {
357
+ if (required) {
358
+ formGroup.controls[name].setValidators(Validators.compose(validators && validators.length ? validators : [Validators.required]));
359
+ formGroup.controls[name].updateValueAndValidity();
360
+ }
361
+ else {
362
+ formGroup.controls[name].setValidators(null);
363
+ formGroup.controls[name].updateValueAndValidity();
364
+ }
365
+ }
366
+ /**
367
+ * Esse método tem como função setar os campos enable ou disable.
368
+ * @param formGroup FormGroup onde se encontra os campos a serem alterados.
369
+ * @param condition Condição para validação. True = enabled, False = disabled.
370
+ * @param fields Campos a serem manipulados.
371
+ * @param fieldsToClear Campos a serem limpos. É opicional e se não foi passado o método limpará os mesmos campos dos fields.
372
+ */
373
+ export function configEnabledFields(formGroup, condition, fields, fieldsToClear) {
374
+ if (condition) {
375
+ fields.forEach(function (field) { return formGroup.get(field).enable(); });
376
+ }
377
+ else {
378
+ fields.forEach(function (field) { return formGroup.get(field).disable(); });
379
+ clearValues(formGroup, fieldsToClear ? fieldsToClear : fields);
380
+ }
381
+ }
382
+ /**
383
+ * Esse método tem como função setar os campos como requeridos ou não.
384
+ *
385
+ * @param formGroup FormGroup onde se encontra os campos a serem alterados.
386
+ * @param condition Se será ou não requeridos.
387
+ * @param fields Lista de campos.
388
+ */
389
+ export function setRequiredFields(formGroup, condition, fields) {
390
+ if (condition) {
391
+ fields.forEach(function (field) { return setRequired(formGroup, field, true, [Validators.required]); });
392
+ }
393
+ else {
394
+ fields.forEach(function (field) { return setRequired(formGroup, field, false); });
395
+ }
396
+ }
397
+ /**
398
+ * Esse método tem como função setar validações dinâmicas nos campos.
399
+ *
400
+ * @param formGroup FormGroup onde se encontra os campos a serem alterados.
401
+ * @param fields Lista de objetos [{field: campo, validators: validações, disable: boolean}].
402
+ */
403
+ export function setValidatorsAndDisableFields(formGroup, fields) {
404
+ fields.forEach(function (currentField) {
405
+ setValidator(formGroup, currentField.field, currentField.validators);
406
+ setDisableField(formGroup, currentField.disabled, currentField.field, currentField.clearValue);
407
+ });
408
+ }
409
+ export function setValidator(formGroup, name, validators) {
410
+ if (validators && validators.length) {
411
+ formGroup.controls[name].setValidators(Validators.compose(validators));
412
+ formGroup.controls[name].updateValueAndValidity();
413
+ }
414
+ else {
415
+ formGroup.controls[name].setValidators(null);
416
+ formGroup.controls[name].updateValueAndValidity();
417
+ }
418
+ }
419
+ /**
420
+ * Esse método tem como função setar os campos enable ou disable.
421
+ * @param formGroup FormGroup onde se encontra os campos a serem alterados.
422
+ * @param condition Condição para validação. True = disabled, False = enabled.
423
+ * @param field Campo a ser manipulados.
424
+ * @param clearValue Campos a ser limpos. É opicional e se não foi passado o método limpará o campo do field.
425
+ */
426
+ export function setDisableField(formGroup, condition, field, clearValue) {
427
+ if (clearValue === void 0) { clearValue = true; }
428
+ if (condition) {
429
+ formGroup.get(field).disable();
430
+ if (clearValue)
431
+ formGroup.get(field).reset();
432
+ }
433
+ else {
434
+ formGroup.get(field).enable();
435
+ }
436
+ }
437
+ /**
438
+ * Ordena array de objetos
439
+ * @param key o campo que deseja ordenar
440
+ * @param order a ordem que deseja ordenar o campo
441
+ */
442
+ export function compareValues(key, order) {
443
+ if (order === void 0) { order = "ASC"; }
444
+ return function innerSort(a, b) {
445
+ if (!a.hasOwnProperty(key) || !b.hasOwnProperty(key)) {
446
+ return 0;
447
+ }
448
+ var varA = (typeof a[key] === "string")
449
+ ? a[key].toUpperCase() : a[key];
450
+ var varB = (typeof b[key] === "string")
451
+ ? b[key].toUpperCase() : b[key];
452
+ var comparison = 0;
453
+ if (varA > varB) {
454
+ comparison = 1;
455
+ }
456
+ else if (varA < varB) {
457
+ comparison = -1;
458
+ }
459
+ return ((order === "DESC") ? (comparison * -1) : comparison);
460
+ };
461
+ }
462
+ /**
463
+ * Esse método tem como função limpar o valor dos campos.
464
+ *
465
+ * @param formGroup FormGroup onde se encontra os campos a serem limpos.
466
+ * @param fields Campos a serem limpos.
467
+ */
468
+ export function clearValues(formGroup, fields) {
469
+ fields.forEach(function (field) { return formGroup.get(field).reset(); });
470
+ }
471
+ /**
472
+ *
473
+ * @param qs = window.location.search
474
+ * @returns Object com parametros query string
475
+ */
476
+ export function getQueryParams(qs) {
477
+ qs = qs.split('+').join(' ');
478
+ var params = {};
479
+ var tokens;
480
+ var re = /[?&]?([^=]+)=([^&]*)/g;
481
+ while ((tokens = re.exec(qs))) {
482
+ params[decodeURIComponent(tokens[1])] = decodeURIComponent(tokens[2]);
483
+ }
484
+ return params;
485
+ }
486
+ export function getFormat(locale) {
487
+ if (locale) {
488
+ var dateFormat = locale.calendar.dateFormat.toString();
489
+ dateFormat = dateFormat.replace(/[y]/g, 'YY');
490
+ dateFormat = dateFormat.replace(/[/]/g, '');
491
+ return dateFormat.toUpperCase();
492
+ }
493
+ }
494
+ /**
495
+ * Remove os caracteres que não sejam números do valor
496
+ * @param value valor a ser tratado
497
+ * @returns string O valor sem caracteres especiais
498
+ */
499
+ export function removeCharacteresSpecials(value) {
500
+ return value ? value.toString().replace(/[&\/\\#,+()$~%.'":*?<>{}-]/g, "") : null;
501
+ }
502
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItZ2VzdGFvLXBlc3NvYXMvcGF5cm9sbC1jb3JlLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy91dGlscy9oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0UsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDakMsT0FBTyxLQUFLLGNBQWMsTUFBTSxRQUFRLENBQUM7QUFDekMsT0FBTyxRQUFRLE1BQU0saUJBQWlCLENBQUM7QUFJdkMsSUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDO0FBRTlCLE1BQU0sVUFBVSxRQUFRLENBQUMsSUFBSTtJQUMzQixPQUFPLElBQUksSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2xFLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLElBQUk7SUFDNUIsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBQSxLQUFLLElBQUksT0FBQSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQXpCLENBQXlCLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDN0YsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxLQUFLO0lBQ3hDLElBQUksT0FBTyxLQUFLLEtBQUssU0FBUyxFQUFFO1FBQzlCLE9BQU8sS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7S0FDMUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxNQUFNLFVBQVUsc0JBQXNCLENB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b3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zLyc7XG5pbXBvcnQgKiBhcyBjaGFuY2UgZnJvbSAnY2hhbmNlJztcbmltcG9ydCAqIGFzIG1vbWVudEltcG9ydGVkIGZyb20gJ21vbWVudCc7XG5pbXBvcnQgYnVzaW5lc3MgZnJvbSAnbW9tZW50LWJ1c2luZXNzJztcbmltcG9ydCB7IExvY2FsZU9wdGlvbnMgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IEZpZWxkVmFsaWRhdG9yc09iamVjdCB9IGZyb20gJy4uLy4uL2NvcmUvaW50ZXJmYWNlcy9maWVsZC12YWxpZGF0b3JzLW9iamVjdCc7XG5cbmNvbnN0IG1vbWVudCA9IG1vbWVudEltcG9ydGVkO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3QoaXRlbSkge1xuICByZXR1cm4gaXRlbSAmJiB0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkoaXRlbSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NoYWxsb3coaXRlbSkge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheShpdGVtKSAmJiBpdGVtLmZpbmQodmFsdWUgPT4gdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JykgPyBmYWxzZSA6IHRydWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0Qm9vbGVhblN0cmluZyh2YWx1ZSkge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicpIHtcbiAgICByZXR1cm4gdmFsdWUgPT09IHRydWUgPyAndHJ1ZScgOiAnZmFsc2UnO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRTdHJpbmdUb0Jvb2xlYW4odmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlID09PSB0cnVlIHx8IHZhbHVlLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzc2lnbih0YXJnZXQsIC4uLnNvdXJjZXMpIHtcbiAgaWYgKCFzb3VyY2VzLmxlbmd0aCkge1xuICAgIHJldHVybiB0YXJnZXQ7XG4gIH1cblxuICBjb25zdCBzb3VyY2UgPSBzb3VyY2VzLnNoaWZ0KCk7XG4gIGlmIChpc09iamVjdCh0YXJnZXQpICYmIGlzT2JqZWN0KHNvdXJjZSkpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBzb3VyY2UpIHtcbiAgICAgIGlmIChpc09iamVjdChzb3VyY2Vba2V5XSkpIHtcbiAgICAgICAgaWYgKCF0YXJnZXRba2V5XSkge1xuICAgICAgICAgIE9iamVjdC5hc3NpZ24odGFyZ2V0LCB7IFtrZXldOiB7fSB9KTtcbiAgICAgICAgfVxuICAgICAgICBhc3NpZ24odGFyZ2V0W2tleV0sIHNvdXJjZVtrZXldKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChpc1NoYWxsb3coc291cmNlW2tleV0pKSB7XG4gICAgICAgICAgT2JqZWN0LmFzc2lnbih0YXJnZXQsIHsgW2tleV06IHNvdXJjZVtrZXldIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICghdGFyZ2V0W2tleV0pIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGFyZ2V0LCB7IFtrZXldOiBbXSB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgT2JqZWN0LmFzc2lnbih0YXJnZXQsIHsgW2tleV06IHNvdXJjZVtrZXldLm1hcCgoaXRlbSwgaW5kZXgpID0+IGFzc2lnbih0YXJnZXRba2V5XVtpbmRleF0gfHwge30sIGl0ZW0pKSB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gYXNzaWduKHRhcmdldCwgLi4uc291cmNlcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSA9PT0gMCB8fCB0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJyA/IHRydWUgOiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSAnJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWREYXRlKHZhbHVlLCB3aXRoRGF5cyA9IHRydWUpIHtcbiAgaWYgKHZhbHVlICYmIGlzRnVsbERhdGUodmFsdWUsIHdpdGhEYXlzKSkge1xuICAgIGlmICh3aXRoRGF5cykge1xuICAgICAgcmV0dXJuIG1vbWVudCh2YWx1ZS5yZXBsYWNlKC9bXlxcZF0rL2csICcnKSwgJ0RETU1ZWVlZJykuaXNWYWxpZCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbW9tZW50KHZhbHVlLnJlcGxhY2UoL1teXFxkXSsvZywgJycpLCAnTU1ZWVlZJykuaXNWYWxpZCgpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRnVsbERhdGUodmFsdWUsIHdpdGhEYXlzID0gdHJ1ZSkge1xuICBpZiAodmFsdWUpIHtcbiAgICBsZXQgdG90YWxMZW5ndGg7XG4gICAgaWYgKHdpdGhEYXlzKSB7XG4gICAgICB0b3RhbExlbmd0aCA9IDg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRvdGFsTGVuZ3RoID0gNjtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoL1teXFxkXSsvZywgJycpLmxlbmd0aCA9PT0gdG90YWxMZW5ndGg7XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhdXRvQ29tcGxldGVPYmplY3RGb3JJZE9iamVjdCh0YWJsZUlkT2JqZWN0KSB7XG4gIGlmICghaXNPYmplY3QodGFibGVJZE9iamVjdCkpIHtcbiAgICBjb25zb2xlLmVycm9yKCdQYXJhbWVudHJvIG7Do28gw6kgdW0gb2JqZXRvJyk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKHRhYmxlSWRPYmplY3QuaGFzT3duUHJvcGVydHkoJ3RhYmxlSWQnKSkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ1BhcmFtZW50cm8gbsOjbyDDqSB1bSBvYmpldG8gQXV0byBDb21wbGV0ZSB2w6FsaWRvLCBmYWx0YSB0YWJsZUlkJyk7XG4gIH1cblxuICBpZiAoIWlzVmFsaWQodGFibGVJZE9iamVjdC50YWJsZUlkKSkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ3RhYmxlSWQgZXN0YSB2YXppbycpO1xuICB9XG5cbiAgcmV0dXJuIHsgaWQ6IHRhYmxlSWRPYmplY3QudGFibGVJZCB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNEYXRlRmllbGQobmFtZSwgdmFsdWUpIHtcbiAgY29uc3QgdGVzdERhdGUgPSBuYW1lLnNlYXJjaCgnRGF0ZScpO1xuICBpZiAodGVzdERhdGUgIT09IC0xKSB7XG4gICAgcmV0dXJuIGludmVydEZpZWxkRGF0ZSh2YWx1ZSk7XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW52ZXJ0RmllbGREYXRlKHZhbHVlLCBpbkZvcm1hdCA9ICdERE1NWVlZWScsIG91dEZvcm1hdCA9ICdZWVlZLU1NLUREJykge1xuICBpZiAoIWlzVmFsaWQodmFsdWUpKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IGZvcm1hdEluID0gZ2V0Rm9ybWF0RGF0ZSh2YWx1ZSwgaW5Gb3JtYXQpO1xuICByZXR1cm4gbW9tZW50KHZhbHVlLnJlcGxhY2UoL1teXFxkXSsvZywgJycpLCBmb3JtYXRJbikuZm9ybWF0KG91dEZvcm1hdCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBZGRXZWVrRGF5c0J1c2luZXNzKHZhbHVlLCBxdWFudGlkYWRlKSB7XG4gIHJldHVybiBidXNpbmVzcy5hZGRXZWVrRGF5cyhnZXRNb21lbnQodmFsdWUpLCBxdWFudGlkYWRlKS5mb3JtYXQoJ0REL01NL1lZWVknKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFdlZWtEYXlzQnVzaW5lc3Moc3RhcnREYXRlLCBlbmREYXRlKSB7XG4gIGNvbnN0IGVuZE1vbWVudCA9IGVuZERhdGUgPyBnZXRNb21lbnQoZW5kRGF0ZSkgOiBnZXRNb21lbnQoc3RhcnREYXRlKS5lbmRPZignbW9udGgnKTtcbiAgcmV0dXJuIGJ1c2luZXNzLndlZWtEYXlzKGdldE1vbWVudChzdGFydERhdGUpLCBlbmRNb21lbnQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybWF0RGF0ZSh2YWx1ZSwgaW5Gb3JtYXQpIHtcbiAgaWYgKHZhbHVlLnNlYXJjaCgnLycpICE9PSAtMSkge1xuICAgIHJldHVybiAnRERNTVlZWVknO1xuICB9IGVsc2UgaWYgKHZhbHVlLnNlYXJjaCgnLScpICE9PSAtMSkge1xuICAgIHJldHVybiAnWVlZWU1NREQnO1xuICB9XG4gIHJldHVybiBpbkZvcm1hdDtcbn1cblxuLyoqXG4gKiBGSVhNRSAtIEVzdMOhIGZpeG8gcGFyYSB1c28gZG8gY2FsZW5kw6FyaW8gcG9ydHVndWVzIEJyYXNpbFxuICogQHBhcmFtIHZhbHVlXG4gKiBAcGFyYW0gb3V0Rm9ybWF0XG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgZnVuY3Rpb24gbmdDYWxlbmRhckZvcm1hdCh2YWx1ZSwgb3V0Rm9ybWF0ID0gJ0REL01NL1lZWVknKSB7XG4gIGlmIChpc1ZhbGlkRGF0ZSh2YWx1ZSkpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gX21vbWVudCh2YWx1ZSkuZm9ybWF0KG91dEZvcm1hdCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXROb3dEYXRlKG91dEZvcm1hdCA9ICdZWVlZLU1NLUREJykge1xuICByZXR1cm4gbW9tZW50KCkuZm9ybWF0KG91dEZvcm1hdCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRNb21lbnQodmFsdWUsIGluRm9ybWF0ID0gJ0RETU1ZWVlZJykge1xuICBjb25zdCBmb3JtYXRJbiA9IGdldEZvcm1hdERhdGUodmFsdWUsIGluRm9ybWF0KTtcbiAgcmV0dXJuIG1vbWVudCh2YWx1ZS5yZXBsYWNlKC9bXlxcZF0rL2csICcnKSwgZm9ybWF0SW4pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX21vbWVudCh2YWx1ZSwgZm9ybWF0Pzogc3RyaW5nKSB7XG4gIGlmIChmb3JtYXQpIHtcbiAgICByZXR1cm4gbW9tZW50KHZhbHVlLCBmb3JtYXQpO1xuICB9XG4gIHJldHVybiBtb21lbnQodmFsdWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0T2JqVmFsaWRzKG9ianMpIHtcbiAgY29uc3QganNvbiA9IE9iamVjdC5hc3NpZ24oe30sIG9ianMpO1xuICBjb25zdCBqc29uUmV0dXJuID0ge307XG4gIE9iamVjdC5rZXlzKGpzb24pLm1hcChrZXkgPT4ge1xuICAgIGlmIChpc1ZhbGlkKGpzb25ba2V5XSkpIHtcbiAgICAgIGpzb25SZXR1cm5ba2V5XSA9IGlzRGF0ZUZpZWxkKGtleSwganNvbltrZXldKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4ganNvblJldHVybjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUVtcHR5KG9iaikge1xuICBPYmplY3Qua2V5cyhvYmopLmZvckVhY2goXG4gICAgayA9PiAob2JqW2tdICYmIHR5cGVvZiBvYmpba10gPT09ICdvYmplY3QnICYmIHJlbW92ZUVtcHR5KG9ialtrXSkpIHx8ICghb2JqW2tdICYmIG9ialtrXSAhPT0gdW5kZWZpbmVkICYmIGRlbGV0ZSBvYmpba10pXG4gICk7XG4gIHJldHVybiBvYmo7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRNb25leSh2YWx1ZSwgaTE4biA9ICdFTicpIHtcbiAgc3dpdGNoIChpMThuKSB7XG4gICAgY2FzZSAnRU4nOlxuICAgICAgcmV0dXJuIGlzVmFsaWQodmFsdWUpXG4gICAgICAgID8gdmFsdWVcbiAgICAgICAgICAgIC50b1N0cmluZygpXG4gICAgICAgICAgICAucmVwbGFjZSgnLicsICcnKVxuICAgICAgICAgICAgLnJlcGxhY2UoJywnLCAnLicpXG4gICAgICAgIDogJyc7XG4gICAgY2FzZSAnQlInOlxuICAgICAgcmV0dXJuIGlzVmFsaWQodmFsdWUpXG4gICAgICAgID8gdmFsdWVcbiAgICAgICAgICAgIC50b1N0cmluZygpXG4gICAgICAgICAgICAucmVwbGFjZSgnLicsICcsJylcbiAgICAgICAgICAgIC5yZXBsYWNlKC8oXFxkKSg/PShcXGR7M30pKyg/IVxcZCkpL2csICckMS4nKVxuICAgICAgICA6ICcnO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gaXNWYWxpZCh2YWx1ZSlcbiAgICAgICAgPyB2YWx1ZVxuICAgICAgICAgICAgLnRvU3RyaW5nKClcbiAgICAgICAgICAgIC5yZXBsYWNlKCcuJywgJycpXG4gICAgICAgICAgICAucmVwbGFjZSgnLCcsICcuJylcbiAgICAgICAgOiAnJztcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdWlpZCgpIHtcbiAgcmV0dXJuIG5ldyBjaGFuY2UoKVxuICAgIC5ndWlkKClcbiAgICAucmVwbGFjZSgvW15hLXpBLVowLTkuXS9nLCAnJylcbiAgICAudG9VcHBlckNhc2UoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vdW50Q3VzdG9tRm9yU2F2ZShjdXN0b20sIGN1c3RvbUVudGl0eSA9IG51bGwsIGxvY2FsZSA9IG51bGwpIHtcbiAgY29uc3QgY3VzdG9uRmllbGQgPSBbXTtcbiAgaWYgKGN1c3RvbUVudGl0eSAmJiBjdXN0b20ubGVuZ3RoKSB7XG4gICAgY3VzdG9tRW50aXR5Lm1hcCgodmFsLCBrZXkpID0+IHtcbiAgICAgIGNvbnN0IGZpZWxkID0gT2JqZWN0LmtleXMoY3VzdG9tW2tleV0pLnRvU3RyaW5nKCk7XG4gICAgICBjb25zdCB2YWxPcm51bGwgPSBpc1ZhbGlkKGN1c3RvbVtrZXldW2ZpZWxkXSkgPyBjdXN0b21ba2V5XVtmaWVsZF0gOiBudWxsO1xuICAgICAgY29uc3QgdmFsdWUgPVxuICAgICAgICB2YWwudHlwZSA9PT0gJ2RhdGUnICYmIGxvY2FsZSAmJiBpc1ZhbGlkKHZhbE9ybnVsbCkgPyBtb21lbnQodmFsT3JudWxsLCBnZXRGb3JtYXQobG9jYWxlKSkuZm9ybWF0KCdZWVlZLU1NLUREJykgOiB2YWxPcm51bGw7XG4gICAgICBjdXN0b25GaWVsZC5wdXNoKHtcbiAgICAgICAgZmllbGQ6IGZpZWxkLFxuICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gY3VzdG9uRmllbGQubGVuZ3RoID8gY3VzdG9uRmllbGQgOiBudWxsO1xufVxuXG4vKipcbiAqIFByZXBhcmEgbyBvYmpldG8gZGUgY2FtcG9zIGN1c3RvbWl6YWRvcyBwYXJhIHNhbHZhciBhcyBlbnRpZGFkZXMgcXVlXG4gKiBzw6NvIHV0aWxpemFkYXMgYSBwYXJ0aXIgZG8gQ1JVRCBjdXN0b21pemFkby5cbiAqIEBwYXJhbSBvYmplY3RGaWVsZHMgb2JqZXRvIGNvbSBvcyBjYW1wb3MgY3VzdG9taXphZG9zIGRhIGVudGlkYWRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbW91bnRDdXN0b21Ub1NhdmUob2JqZWN0RmllbGRzKSB7XG4gIGNvbnN0IGN1c3RvbUZpZWxkcyA9IFtdO1xuICBPYmplY3QuZW50cmllcyhvYmplY3RGaWVsZHMpLmZvckVhY2goKFtmaWVsZCwgdmFsdWVdKSA9PiB7XG4gICAgY3VzdG9tRmllbGRzLnB1c2goe1xuICAgICAgZmllbGQ6IGZpZWxkLFxuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgIH0pO1xuICB9KTtcbiAgcmV0dXJuIGN1c3RvbUZpZWxkcztcbn1cblxuLyoqXG4gKiBQcmVwYXJhIG8gb2JqZXRvIGRlIGNhbXBvcyBjdXN0b21pemFkb3MgcGFyYSBleGliaXIgYXMgZW50aWRhZGVzIHF1ZVxuICogc8OjbyB1dGlsaXphZGFzIGEgcGFydGlyIGRvIENSVUQgY3VzdG9taXphZG8uXG4gKiBAcGFyYW0gY3VzdG9tRmllbGRzIG9iamV0byBjb20gb3MgY2FtcG9zIGN1c3RvbWl6YWRvcyBkYSBlbnRpZGFkZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vdW50Q3VzdG9tVG9TaG93KGN1c3RvbUZpZWxkcykge1xuICBjb25zdCBjdXN0b21GaWVsZHNUb1Nob3cgPSB7fTtcbiAgaWYgKGN1c3RvbUZpZWxkcyAmJiBjdXN0b21GaWVsZHMubGVuZ3RoKSB7XG4gICAgY3VzdG9tRmllbGRzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBpZiAoaXRlbS50eXBlID09PSAnZGF0ZScgJiYgaXRlbS52YWx1ZSkge1xuICAgICAgICBpdGVtLnZhbHVlID0gX21vbWVudChpdGVtLnZhbHVlKS5mb3JtYXQoJ0wnKTtcbiAgICAgIH1cbiAgICAgIGN1c3RvbUZpZWxkc1RvU2hvd1tpdGVtLmZpZWxkXSA9IGl0ZW0udmFsdWU7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGN1c3RvbUZpZWxkc1RvU2hvdztcbn1cblxuLyoqXG4gKiBQcmVwYXJhIG8gb2JqZXRvIGRlIGNhbXBvcyBjdXN0b21pemFkb3MgcGFyYSBzYWx2YXIgYXMgZW50aWRhZGVzIHF1ZVxuICogc8OjbyB1dGlsaXphZGFzIGEgcGFydGlyIGRvIENSVUQgZ2VyYWRvLlxuICogQHBhcmFtIG9iamVjdEZpZWxkcyBvYmpldG8gY29tIG9zIGNhbXBvcyBjdXN0b21pemFkb3MgZGEgZW50aWRhZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtb3VudEdlbmVyYXRlZEN1c3RvbVRvU2F2ZShvYmplY3RGaWVsZHMpIHtcbiAgT2JqZWN0LmVudHJpZXMob2JqZWN0RmllbGRzKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICBkZWxldGUgb2JqZWN0RmllbGRzW2tleV07XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIG9iamVjdEZpZWxkcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vdW50Q3VzdG9tRm9yU2hvdyhjdXN0b20pIHtcbiAgY29uc3QgY3VzdG9tRmllbGQgPSBbXTtcbiAgT2JqZWN0LmtleXMoY3VzdG9tIHx8IHt9KS5mb3JFYWNoKHZhbCA9PiB7XG4gICAgaWYgKGN1c3RvbVt2YWxdLnR5cGUgPT09ICdkYXRlJyAmJiBjdXN0b21bdmFsXS52YWx1ZSkge1xuICAgICAgY3VzdG9tW3ZhbF0udmFsdWUgPSBfbW9tZW50KGN1c3RvbVt2YWxdLnZhbHVlKS5mb3JtYXQoJ0wnKTtcbiAgICB9XG4gICAgY3VzdG9tRmllbGQucHVzaChjdXN0b21bdmFsXSk7XG4gIH0pO1xuICByZXR1cm4gY3VzdG9tRmllbGQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRWYWx1ZUN1c3RvbShjdXN0b25GaWVsZHMsIGN1c3RvbSkge1xuICBjb25zdCBpc0N1c3RvbnMgPSBjdXN0b20gPyBPYmplY3Qua2V5cyhjdXN0b20pLmxlbmd0aCA6IDA7XG4gIGN1c3RvbkZpZWxkcy5tYXAodmFsID0+IHtcbiAgICB2YWwudmFsdWUgPSBpc0N1c3RvbnMgPiAwID8gY3VzdG9tW3ZhbC5maWVsZF0gOiBudWxsO1xuICB9KTtcbiAgcmV0dXJuIGN1c3RvbkZpZWxkcztcbn1cblxuLyoqXG4gKiAgQWRpY2lvbmEgdW0gZXJybyBubyBjb250cm9sZSBkbyBmb3JtdWzDoXJpby4gRGV2ZSBzZXIgY2hhbWFkbyBjb20gLmNhbGwgcGFzc2FuZG8gbyBjb250ZXh0byBkYSBjbGFzcy5cbiAqICBFeC46IHNldEVycm9ycy5jYWxsKHRoaXMuY29udHJhY3RHcm91cCwgJ3JlZ2lzdGVyRW1wbG95ZWVOdW1iZXInLCAnZXhpc3QnLCAhcGF5bG9hZClcbiAqXG4gKiBAcGFyYW0gZm9ybUNvbnRyb2xOYW1lIE5vbWUgZG8gY29udHJvbGUgZG8gZm9ybXVsw6FyaW8uXG4gKiBAcGFyYW0ga2V5RXJyb3IgTm9tZSBkbyBlcnJvciBhIHNlciBleGliaWRvIGVtIHRlbGEuXG4gKiBAcGFyYW0gaXNJbnZhbGlkIFNlIGhvdXZlciBhbGd1bSBlcnJvIGRlIHZhbGlkYcOnw6NvIG5vIGNhbXBvLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0RXJyb3JzKGZvcm1Db250cm9sTmFtZTogc3RyaW5nLCBrZXlFcnJvcjogc3RyaW5nLCBpc0ludmFsaWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgaWYgKGlzSW52YWxpZCkge1xuICAgICAgY29uc3QgZXJyb3JzID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5nZXQoZm9ybUNvbnRyb2xOYW1lKS5lcnJvcnMpO1xuICAgICAgZXJyb3JzW2tleUVycm9yXSA9IGlzSW52YWxpZDtcbiAgICAgIHRoaXMuZ2V0KGZvcm1Db250cm9sTmFtZSkuc2V0RXJyb3JzKGVycm9ycyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGVycm9ycyA9IHRoaXMuZ2V0KGZvcm1Db250cm9sTmFtZSkuZXJyb3JzO1xuXG4gICAgICBpZiAoZXJyb3JzICYmIE9iamVjdC5rZXlzKGVycm9ycykubGVuZ3RoKSB7XG4gICAgICAgIGRlbGV0ZSBlcnJvcnNba2V5RXJyb3JdO1xuXG4gICAgICAgIGlmICghT2JqZWN0LmtleXMoZXJyb3JzKS5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLmdldChmb3JtQ29udHJvbE5hbWUpLnNldEVycm9ycyhudWxsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSwgMCk7XG59XG5cbi8qKlxuICogRmF6IGxvb3AgZG8gbm9zIGNvbnRyb2xzIGRvIGZvcm11bMOhcmlvIGUgc3ViQXJyYXkgY2FzbyBleGlzdGlyXG4gKiBzZXRhbmRvIG9zIGludsOhbGlkb3NcbiAqIEV4LjogdmVyaWZ5VmFsaWRhdGlvbnNGb3JtLmNhbGwodGhpcy5pbml0aWFsR3JvdXApO1xuICovXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5VmFsaWRhdGlvbnNGb3JtKCkge1xuICBPYmplY3Qua2V5cyh0aGlzLmNvbnRyb2xzKS5tYXAoZmllbGQgPT4ge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmdldChmaWVsZCk7XG4gICAgY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwIHx8IGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcbiAgICAgIHZlcmlmeVZhbGlkYXRpb25zRm9ybS5jYWxsKGNvbnRyb2wpO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogUmV0b3JuYSBhIGlkYWRlIGRlIGFjb3JkbyBjb20gYSBkYXRhIGRlIG5hc2NpbWVudG8uXG4gKlxuICogQHBhcmFtIGJpcnRoZGF5RGF0ZSBEYXRhIGRlIG5hc2NpbWVudG8uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRZZWFycyhiaXJ0aGRheSkge1xuICBjb25zdCBjdXJyZW50RGF0ZSA9IG1vbWVudCgpO1xuICBjb25zdCB5ZWFycyA9IGN1cnJlbnREYXRlLmRpZmYoYmlydGhkYXksICd5ZWFycycsIGZhbHNlKTtcbiAgcmV0dXJuIHllYXJzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0Q3VzdG9uRmllbGRzKGN1c3RvbUZpZWxkcykge1xuICBjdXN0b21GaWVsZHMubWFwKHZhbCA9PiB7XG4gICAgY29uc3QgYWRkQ3VzdG9uID0ge307XG4gICAgbGV0IHZhbHVlID0gdmFsLnZhbHVlIHx8IG51bGw7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlID8gJ3RydWUnIDogJ2ZhbHNlJztcbiAgICB9XG4gICAgYWRkQ3VzdG9uW3ZhbC5maWVsZF0gPSBuZXcgRm9ybUNvbnRyb2wodmFsdWUpO1xuICAgIHRoaXMucHVzaChuZXcgRm9ybUdyb3VwKGFkZEN1c3RvbikpO1xuICB9KTtcbiAgcmV0dXJuIGN1c3RvbUZpZWxkcztcbn1cblxuICAgIGV4cG9ydCBmdW5jdGlvbiBzZXRSZXF1aXJlZChmb3JtR3JvdXA6IEZvcm1Hcm91cCwgbmFtZTogc3RyaW5nLCByZXF1aXJlZDogYm9vbGVhbiwgdmFsaWRhdG9ycz86IFZhbGlkYXRvckZuW10pIHtcbiAgaWYgKHJlcXVpcmVkKSB7XG4gICAgZm9ybUdyb3VwLmNvbnRyb2xzW25hbWVdLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5jb21wb3NlKHZhbGlkYXRvcnMgJiYgdmFsaWRhdG9ycy5sZW5ndGggPyB2YWxpZGF0b3JzIDogW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSk7XG4gICAgZm9ybUdyb3VwLmNvbnRyb2xzW25hbWVdLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfSBlbHNlIHtcbiAgICBmb3JtR3JvdXAuY29udHJvbHNbbmFtZV0uc2V0VmFsaWRhdG9ycyhudWxsKTtcbiAgICBmb3JtR3JvdXAuY29udHJvbHNbbmFtZV0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG59XG5cbi8qKlxuICogRXNzZSBtw6l0b2RvIHRlbSBjb21vIGZ1bsOnw6NvIHNldGFyIG9zIGNhbXBvcyBlbmFibGUgb3UgZGlzYWJsZS5cbiAqIEBwYXJhbSBmb3JtR3JvdXAgRm9ybUdyb3VwIG9uZGUgc2UgZW5jb250cmEgb3MgY2FtcG9zIGEgc2VyZW0gYWx0ZXJhZG9zLlxuICogQHBhcmFtIGNvbmRpdGlvbiBDb25kacOnw6NvIHBhcmEgdmFsaWRhw6fDo28uIFRydWUgPSBlbmFibGVkLCBGYWxzZSA9IGRpc2FibGVkLlxuICogQHBhcmFtIGZpZWxkcyBDYW1wb3MgYSBzZXJlbSBtYW5pcHVsYWRvcy5cbiAqIEBwYXJhbSBmaWVsZHNUb0NsZWFyIENhbXBvcyBhIHNlcmVtIGxpbXBvcy4gw4kgb3BpY2lvbmFsIGUgc2UgbsOjbyBmb2kgcGFzc2FkbyBvIG3DqXRvZG8gbGltcGFyw6Egb3MgbWVzbW9zIGNhbXBvcyBkb3MgZmllbGRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29uZmlnRW5hYmxlZEZpZWxkcyhmb3JtR3JvdXA6IEZvcm1Hcm91cCwgY29uZGl0aW9uOiBib29sZWFuLCBmaWVsZHM6IEFycmF5PHN0cmluZz4sIGZpZWxkc1RvQ2xlYXI/OiBBcnJheTxzdHJpbmc+KSB7XG4gIGlmIChjb25kaXRpb24pIHtcbiAgICBmaWVsZHMuZm9yRWFjaChmaWVsZCA9PiBmb3JtR3JvdXAuZ2V0KGZpZWxkKS5lbmFibGUoKSk7XG4gIH0gZWxzZSB7XG4gICAgZmllbGRzLmZvckVhY2goZmllbGQgPT4gZm9ybUdyb3VwLmdldChmaWVsZCkuZGlzYWJsZSgpKTtcbiAgICBjbGVhclZhbHVlcyhmb3JtR3JvdXAsIGZpZWxkc1RvQ2xlYXIgPyBmaWVsZHNUb0NsZWFyIDogZmllbGRzKTtcbiAgfVxufVxuXG4vKipcbiAqIEVzc2UgbcOpdG9kbyB0ZW0gY29tbyBmdW7Dp8OjbyBzZXRhciBvcyBjYW1wb3MgY29tbyByZXF1ZXJpZG9zIG91IG7Do28uXG4gKlxuICogQHBhcmFtIGZvcm1Hcm91cCBGb3JtR3JvdXAgb25kZSBzZSBlbmNvbnRyYSBvcyBjYW1wb3MgYSBzZXJlbSBhbHRlcmFkb3MuXG4gKiBAcGFyYW0gY29uZGl0aW9uIFNlIHNlcsOhIG91IG7Do28gcmVxdWVyaWRvcy5cbiAqIEBwYXJhbSBmaWVsZHMgTGlzdGEgZGUgY2FtcG9zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0UmVxdWlyZWRGaWVsZHMoZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGNvbmRpdGlvbjogYm9vbGVhbiwgZmllbGRzOiBBcnJheTxzdHJpbmc+KSB7XG4gIGlmIChjb25kaXRpb24pIHtcbiAgICBmaWVsZHMuZm9yRWFjaChmaWVsZCA9PiBzZXRSZXF1aXJlZChmb3JtR3JvdXAsIGZpZWxkLCB0cnVlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pKTtcbiAgfSBlbHNlIHtcbiAgICBmaWVsZHMuZm9yRWFjaChmaWVsZCA9PiBzZXRSZXF1aXJlZChmb3JtR3JvdXAsIGZpZWxkLCBmYWxzZSkpO1xuICB9XG59XG5cblxuLyoqXG4gKiBFc3NlIG3DqXRvZG8gdGVtIGNvbW8gZnVuw6fDo28gc2V0YXIgdmFsaWRhw6fDtWVzIGRpbsOibWljYXMgbm9zIGNhbXBvcy5cbiAqXG4gKiBAcGFyYW0gZm9ybUdyb3VwIEZvcm1Hcm91cCBvbmRlIHNlIGVuY29udHJhIG9zIGNhbXBvcyBhIHNlcmVtIGFsdGVyYWRvcy5cbiAqIEBwYXJhbSBmaWVsZHMgTGlzdGEgZGUgb2JqZXRvcyBbe2ZpZWxkOiBjYW1wbywgdmFsaWRhdG9yczogdmFsaWRhw6fDtWVzLCBkaXNhYmxlOiBib29sZWFufV0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRWYWxpZGF0b3JzQW5kRGlzYWJsZUZpZWxkcyhmb3JtR3JvdXA6IEZvcm1Hcm91cCwgZmllbGRzOiBBcnJheTxGaWVsZFZhbGlkYXRvcnNPYmplY3Q+KSB7XG4gICAgZmllbGRzLmZvckVhY2goKGN1cnJlbnRGaWVsZDogRmllbGRWYWxpZGF0b3JzT2JqZWN0KSA9PiB7XG4gICAgICAgIHNldFZhbGlkYXRvcihmb3JtR3JvdXAsIGN1cnJlbnRGaWVsZC5maWVsZCwgIGN1cnJlbnRGaWVsZC52YWxpZGF0b3JzKTtcbiAgICAgICAgc2V0RGlzYWJsZUZpZWxkKGZvcm1Hcm91cCwgY3VycmVudEZpZWxkLmRpc2FibGVkLCAgY3VycmVudEZpZWxkLmZpZWxkLCBjdXJyZW50RmllbGQuY2xlYXJWYWx1ZSk7XG4gICAgfSk7XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFZhbGlkYXRvcihmb3JtR3JvdXA6IEZvcm1Hcm91cCwgbmFtZTogc3RyaW5nLCB2YWxpZGF0b3JzPzogVmFsaWRhdG9yRm5bXSkge1xuICAgIGlmICh2YWxpZGF0b3JzICYmIHZhbGlkYXRvcnMubGVuZ3RoKSB7XG4gICAgICAgIGZvcm1Hcm91cC5jb250cm9sc1tuYW1lXS5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMuY29tcG9zZSh2YWxpZGF0b3JzKSk7XG4gICAgICAgIGZvcm1Hcm91cC5jb250cm9sc1tuYW1lXS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZm9ybUdyb3VwLmNvbnRyb2xzW25hbWVdLnNldFZhbGlkYXRvcnMobnVsbCk7XG4gICAgICAgIGZvcm1Hcm91cC5jb250cm9sc1tuYW1lXS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxufVxuXG5cbi8qKlxuICogRXNzZSBtw6l0b2RvIHRlbSBjb21vIGZ1bsOnw6NvIHNldGFyIG9zIGNhbXBvcyBlbmFibGUgb3UgZGlzYWJsZS5cbiAqIEBwYXJhbSBmb3JtR3JvdXAgRm9ybUdyb3VwIG9uZGUgc2UgZW5jb250cmEgb3MgY2FtcG9zIGEgc2VyZW0gYWx0ZXJhZG9zLlxuICogQHBhcmFtIGNvbmRpdGlvbiBDb25kacOnw6NvIHBhcmEgdmFsaWRhw6fDo28uIFRydWUgPSBkaXNhYmxlZCwgRmFsc2UgPSBlbmFibGVkLlxuICogQHBhcmFtIGZpZWxkIENhbXBvIGEgc2VyIG1hbmlwdWxhZG9zLlxuICogQHBhcmFtIGNsZWFyVmFsdWUgQ2FtcG9zIGEgc2VyIGxpbXBvcy4gw4kgb3BpY2lvbmFsIGUgc2UgbsOjbyBmb2kgcGFzc2FkbyBvIG3DqXRvZG8gbGltcGFyw6EgbyBjYW1wbyBkbyBmaWVsZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldERpc2FibGVGaWVsZChmb3JtR3JvdXA6IEZvcm1Hcm91cCwgY29uZGl0aW9uOiBib29sZWFuLCBmaWVsZDogc3RyaW5nLCBjbGVhclZhbHVlOiBib29sZWFuID0gdHJ1ZSkge1xuICAgIGlmIChjb25kaXRpb24pIHtcbiAgICAgICAgZm9ybUdyb3VwLmdldChmaWVsZCkuZGlzYWJsZSgpO1xuICAgICAgICBpZiAoY2xlYXJWYWx1ZSkgZm9ybUdyb3VwLmdldChmaWVsZCkucmVzZXQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBmb3JtR3JvdXAuZ2V0KGZpZWxkKS5lbmFibGUoKTtcbiAgICB9XG59XG5cbi8qKlxuICogT3JkZW5hIGFycmF5IGRlIG9iamV0b3NcbiAqIEBwYXJhbSBrZXkgbyBjYW1wbyBxdWUgZGVzZWphIG9yZGVuYXJcbiAqIEBwYXJhbSBvcmRlciBhIG9yZGVtIHF1ZSBkZXNlamEgb3JkZW5hciBvIGNhbXBvXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21wYXJlVmFsdWVzKGtleTogc3RyaW5nLCBvcmRlcjogc3RyaW5nID0gXCJBU0NcIikge1xuICAgIHJldHVybiBmdW5jdGlvbiBpbm5lclNvcnQoYTogYW55LCBiOiBhbnkpIHtcbiAgICAgICAgaWYgKCFhLmhhc093blByb3BlcnR5KGtleSkgfHwgIWIuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB2YXJBID0gKHR5cGVvZiBhW2tleV0gPT09IFwic3RyaW5nXCIpXG4gICAgICAgICAgICA/IGFba2V5XS50b1VwcGVyQ2FzZSgpIDogYVtrZXldO1xuICAgICAgICBjb25zdCB2YXJCID0gKHR5cGVvZiBiW2tleV0gPT09IFwic3RyaW5nXCIpXG4gICAgICAgICAgICA/IGJba2V5XS50b1VwcGVyQ2FzZSgpIDogYltrZXldO1xuXG4gICAgICAgIGxldCBjb21wYXJpc29uID0gMDtcbiAgICAgICAgaWYgKHZhckEgPiB2YXJCKSB7XG4gICAgICAgICAgICBjb21wYXJpc29uID0gMTtcbiAgICAgICAgfSBlbHNlIGlmICh2YXJBIDwgdmFyQikge1xuICAgICAgICAgICAgY29tcGFyaXNvbiA9IC0xO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAob3JkZXIgPT09IFwiREVTQ1wiKSA/IChjb21wYXJpc29uICogLTEpIDogY29tcGFyaXNvblxuICAgICAgICApO1xuICAgIH07XG59XG5cbi8qKlxuICogRXNzZSBtw6l0b2RvIHRlbSBjb21vIGZ1bsOnw6NvIGxpbXBhciBvIHZhbG9yIGRvcyBjYW1wb3MuXG4gKlxuICogQHBhcmFtIGZvcm1Hcm91cCBGb3JtR3JvdXAgb25kZSBzZSBlbmNvbnRyYSBvcyBjYW1wb3MgYSBzZXJlbSBsaW1wb3MuXG4gKiBAcGFyYW0gZmllbGRzIENhbXBvcyBhIHNlcmVtIGxpbXBvcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyVmFsdWVzKGZvcm1Hcm91cDogRm9ybUdyb3VwLCBmaWVsZHM6IEFycmF5PHN0cmluZz4pIHtcbiAgZmllbGRzLmZvckVhY2goZmllbGQgPT4gZm9ybUdyb3VwLmdldChmaWVsZCkucmVzZXQoKSk7XG59XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBxcyA9IHdpbmRvdy5sb2NhdGlvbi5zZWFyY2hcbiAqIEByZXR1cm5zIE9iamVjdCBjb20gcGFyYW1ldHJvcyBxdWVyeSBzdHJpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFF1ZXJ5UGFyYW1zKHFzKSB7XG4gIHFzID0gcXMuc3BsaXQoJysnKS5qb2luKCcgJyk7XG5cbiAgY29uc3QgcGFyYW1zID0ge307XG4gIGxldCB0b2tlbnM7XG4gIGNvbnN0IHJlID0gL1s/Jl0/KFtePV0rKT0oW14mXSopL2c7XG5cbiAgd2hpbGUgKCh0b2tlbnMgPSByZS5leGVjKHFzKSkpIHtcbiAgICBwYXJhbXNbZGVjb2RlVVJJQ29tcG9uZW50KHRva2Vuc1sxXSldID0gZGVjb2RlVVJJQ29tcG9uZW50KHRva2Vuc1syXSk7XG4gIH1cblxuICByZXR1cm4gcGFyYW1zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybWF0KGxvY2FsZSkge1xuICBpZiAobG9jYWxlKSB7XG4gICAgbGV0IGRhdGVGb3JtYXQgPSBsb2NhbGUuY2FsZW5kYXIuZGF0ZUZvcm1hdC50b1N0cmluZygpO1xuICAgIGRhdGVGb3JtYXQgPSBkYXRlRm9ybWF0LnJlcGxhY2UoL1t5XS9nLCAnWVknKTtcbiAgICBkYXRlRm9ybWF0ID0gZGF0ZUZvcm1hdC5yZXBsYWNlKC9bL10vZywgJycpO1xuICAgIHJldHVybiBkYXRlRm9ybWF0LnRvVXBwZXJDYXNlKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZW1vdmUgb3MgY2FyYWN0ZXJlcyBxdWUgbsOjbyBzZWphbSBuw7ptZXJvcyBkbyB2YWxvclxuICogQHBhcmFtIHZhbHVlIHZhbG9yIGEgc2VyIHRyYXRhZG9cbiAqIEByZXR1cm5zIHN0cmluZyBPIHZhbG9yIHNlbSBjYXJhY3RlcmVzIGVzcGVjaWFpc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlQ2hhcmFjdGVyZXNTcGVjaWFscyh2YWx1ZTogYW55KTogc3RyaW5nIHtcbiAgICByZXR1cm4gdmFsdWUgPyB2YWx1ZS50b1N0cmluZygpLnJlcGxhY2UoL1smXFwvXFxcXCMsKygpJH4lLidcIjoqPzw+e30tXS9nLCBcIlwiKSA6IG51bGw7XG59XG4iXX0=