@senior-gestao-pessoas/payroll-core 9.5.0-71c63479-42df-4b8e-8295-7f214bdd37f5 → 9.5.0-f5093372-3d3f-4b82-a958-d1cdf848ce4d

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 (21) hide show
  1. package/bundles/senior-gestao-pessoas-payroll-core.umd.js +45 -7
  2. package/bundles/senior-gestao-pessoas-payroll-core.umd.js.map +1 -1
  3. package/bundles/senior-gestao-pessoas-payroll-core.umd.min.js +2 -2
  4. package/bundles/senior-gestao-pessoas-payroll-core.umd.min.js.map +1 -1
  5. package/components/historical-pix-account/historical-pix-account-form/historical-pix-account-form.component.d.ts +1 -0
  6. package/components/historical-pix-account/historical-pix-account.component.d.ts +3 -1
  7. package/components/shared/shared-state.service.d.ts +3 -0
  8. package/esm2015/components/historical-pix-account/historical-pix-account-form/historical-pix-account-form.component.js +8 -6
  9. package/esm2015/components/historical-pix-account/historical-pix-account.component.js +35 -5
  10. package/esm2015/components/historical-pix-account-list/historical-pix-account-list.component.js +2 -1
  11. package/esm2015/components/shared/shared-state.service.js +6 -1
  12. package/esm5/components/historical-pix-account/historical-pix-account-form/historical-pix-account-form.component.js +8 -6
  13. package/esm5/components/historical-pix-account/historical-pix-account.component.js +35 -5
  14. package/esm5/components/historical-pix-account-list/historical-pix-account-list.component.js +2 -1
  15. package/esm5/components/shared/shared-state.service.js +6 -1
  16. package/fesm2015/senior-gestao-pessoas-payroll-core.js +45 -7
  17. package/fesm2015/senior-gestao-pessoas-payroll-core.js.map +1 -1
  18. package/fesm5/senior-gestao-pessoas-payroll-core.js +45 -7
  19. package/fesm5/senior-gestao-pessoas-payroll-core.js.map +1 -1
  20. package/package.json +1 -1
  21. package/senior-gestao-pessoas-payroll-core.metadata.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"senior-gestao-pessoas-payroll-core.js","sources":["ng://@senior-gestao-pessoas/payroll-core/components/utils/cpf-validator.ts","ng://@senior-gestao-pessoas/payroll-core/components/utils/cnpj-validator.ts","ng://@senior-gestao-pessoas/payroll-core/components/vanilla/string-methods.ts","ng://@senior-gestao-pessoas/payroll-core/components/block-ui/block-ui.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/block-ui/block-ui.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/breadcrumb/breadcrumb.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/shared/shared.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/breadcrumb/breadcrumb.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/control-messages-error/control-messages-error.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/control-messages-error/control-messages-error.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/custom-fields/custom-fields.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-date/input-date.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-date/input-date.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/custom-fields/custom-fields.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/directives/name-not-spaces.directive.ts","ng://@senior-gestao-pessoas/payroll-core/components/directives/only-number.directive.ts","ng://@senior-gestao-pessoas/payroll-core/components/directives/directives.module.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/usingType.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/companyIndicationType.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/coreFieldType.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/direction.enumeration.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/moduleType.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/operators.enumeration.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/comparetype.enumeration.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/serviceType.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/httpRequestType.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/report-format.enumeration.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/parameter-type.enumeration.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/menu-type.enumeration.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/report-stage.enumeration.ts","ng://@senior-gestao-pessoas/payroll-core/components/data-list-rest/data-list-rest.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/data-list-rest/data-list-rest.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/data-list-rest/data-list-rest.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/employee-summary/employee-summary.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/employee-summary/employee-summary.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/employee-summary/employee-summary.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/admission-draft-summary/admission-draft-summary.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/admission-draft-summary/admission-draft-summary.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/admission-draft-summary/admission-draft-summary.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/error-page/error-page.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/error-page/error-page.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/field-validator/field-validator.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/field-validator/field-validator.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/toast/toast.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/shared/http-client.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/file-upload/file-upload.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/file-upload/file-upload.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/file-upload/file-upload.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/image-cropper/image-crop.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/image-cropper/image-crop.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/image-cropper/image-crop.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-date-model/input-date-model.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-date-model/input-date-model.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/utils/helpers.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete/input-rest-auto-complete.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete/input-rest-auto-complete.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete/input-rest-auto-complete.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-employee/input-rest-auto-complete-employee.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-employee/input-rest-auto-complete-employee.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-employee/input-rest-auto-complete-employee.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-enum/input-rest-auto-complete-enum.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-enum/input-rest-auto-complete-enum.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-enum/input-rest-auto-complete-enum.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-model/input-rest-auto-complete-model.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-model/input-rest-auto-complete-model.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-model/input-rest-auto-complete-model.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/list-rest/list-rest.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/list-rest/list-rest.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/list-rest/list-rest.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/spinner/spinner-loader.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/spinner/spinner-loader.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/type-admission/type-admission.services.ts","ng://@senior-gestao-pessoas/payroll-core/components/type-admission/type-admission.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/utils/validations.ts","ng://@senior-gestao-pessoas/payroll-core/services/company-indications.service.ts","ng://@senior-gestao-pessoas/payroll-core/services/integration.service.ts","ng://@senior-gestao-pessoas/payroll-core/services/lookup-parameters.service.ts","ng://@senior-gestao-pessoas/payroll-core/services/autocomplete-parameters.service.ts","ng://@senior-gestao-pessoas/payroll-core/services/report.service.ts","ng://@senior-gestao-pessoas/payroll-core/services/workflow-data.service.ts","ng://@senior-gestao-pessoas/payroll-core/services/form-comparator.service.ts","ng://@senior-gestao-pessoas/payroll-core/services/services.module.ts","ng://@senior-gestao-pessoas/payroll-core/services/permissions.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/toast/toast.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/toast/toast.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/data-list/data-list.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/data-list/data-list.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/data-list/data-list.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/lookup/lookup.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/lookup/lookup.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/lookup/lookup.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/workstationgroup-lookup/autocomplete.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/workstationgroup-lookup/lookup.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/workstationgroup-lookup/workstationgroup-lookup.dto.ts","ng://@senior-gestao-pessoas/payroll-core/components/workstationgroup-lookup/workstationgroup-lookup.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/workstationgroup-lookup/workstationgroup-lookup.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-bank-account/historical-bank-account.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-bank-account/historical-bank-account-form/historical-bank-account-form.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-bank-account/historical-bank-account.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-bank-account/historical-bank-account.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-bank-account-list/historical-bank-account-list.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-bank-account-list/historical-bank-account-list.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-bank-account-list/historical-bank-account-list.module.ts","ng://@senior-gestao-pessoas/payroll-core/core/entities/entity-odata-parameter.ts","ng://@senior-gestao-pessoas/payroll-core/components/utils/date-validator/date-validators.ts","ng://@senior-gestao-pessoas/payroll-core/services/workflow-integrator.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/employee-selector/employee-selector.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/employee-selector/employee-selector.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/from-to/from-to.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/from-to/from-to.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/utils/format-utils/format-utils.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/shared/shared-state.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/utils/generic-validators.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-pix-account/historical-pix-account-base.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-pix-account/historical-pix-account.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-pix-account/historical-pix-account.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-pix-account/historical-pix-account-form/historical-pix-account-form.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-pix-account/historical-pix-account.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-pix-account-list/historical-pix-account-list.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-pix-account-list/historical-pix-account-list.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-pix-account-list/historical-pix-account-list.module.ts","ng://@senior-gestao-pessoas/payroll-core/public_api.ts","ng://@senior-gestao-pessoas/payroll-core/senior-gestao-pessoas-payroll-core.ts"],"sourcesContent":["import { AbstractControl, Validators } from '@angular/forms';\n\n/**\n * Created by Bruno.Curioletti on 30/05/2017.\n */\nexport class CPFValidator {\n calcChecker1(firstNineDigits) {\n let sum = null;\n\n for (let j = 0; j < 9; ++j) {\n sum += firstNineDigits.toString().charAt(j) * (10 - j);\n }\n\n const lastSumChecker1 = sum % 11;\n const checker1 = lastSumChecker1 < 2 ? 0 : 11 - lastSumChecker1;\n\n return checker1;\n }\n\n calcChecker2(cpfWithChecker1) {\n let sum = null;\n\n for (let k = 0; k < 10; ++k) {\n sum += cpfWithChecker1.toString().charAt(k) * (11 - k);\n }\n\n const lastSumChecker2 = sum % 11;\n const checker2 = lastSumChecker2 < 2 ? 0 : 11 - lastSumChecker2;\n\n return checker2;\n }\n\n checkCPF(value) {\n const cleanCPF = value.replace(/\\.|\\-|\\s/g, ''),\n firstNineDigits = cleanCPF.substring(0, 9),\n checker = cleanCPF.substring(9, 11);\n\n if (cleanCPF.length !== 11) {\n return false;\n }\n\n // Checking if all digits are equal\n for (let i = 0; i < 10; i++) {\n if ('' + firstNineDigits + checker === Array(12).join(i.toString())) {\n return false;\n }\n }\n const checker1 = this.calcChecker1(firstNineDigits);\n const checker2 = this.calcChecker2(firstNineDigits + '' + checker1);\n\n if (checker.toString() === checker1.toString() + checker2.toString()) {\n return true;\n } else {\n return false;\n }\n }\n}\n\nexport const cpfValidator = new CPFValidator();\n","import { AbstractControl, Validators } from '@angular/forms';\n\nexport class CNPJValidator {\n\n /**\n * Valida se o CNPJ é valido. Deve-se ser informado o cnpj sem máscara.\n */\n checkCNPJ(value) {\n let cnpj = value;\n\n if (cnpj) {\n let size, numbers, digits, sum, pos, result;\n cnpj = cnpj.replace(/[^\\d]+/g, '');\n\n if (cnpj.length !== 14) {\n return true;\n }\n\n // Elimina CNPJs invalidos conhecidos\n if (\n cnpj === '00000000000000' ||\n cnpj === '11111111111111' ||\n cnpj === '22222222222222' ||\n cnpj === '33333333333333' ||\n cnpj === '44444444444444' ||\n cnpj === '55555555555555' ||\n cnpj === '66666666666666' ||\n cnpj === '77777777777777' ||\n cnpj === '88888888888888' ||\n cnpj === '99999999999999'\n ) {\n return false;\n }\n\n // Valida DVs\n size = cnpj.length - 2;\n numbers = cnpj.substring(0, size);\n digits = cnpj.substring(size);\n sum = 0;\n pos = size - 7;\n for (let i = size; i >= 1; i--) {\n sum += numbers.charAt(size - i) * pos--;\n if (pos < 2) {\n pos = 9;\n }\n }\n result = sum % 11 < 2 ? 0 : 11 - (sum % 11);\n if (result !== Number(digits.charAt(0))) {\n return false ;\n }\n\n size = size + 1;\n numbers = cnpj.substring(0, size);\n sum = 0;\n pos = size - 7;\n for (let i = size; i >= 1; i--) {\n sum += numbers.charAt(size - i) * pos--;\n if (pos < 2) {\n pos = 9;\n }\n }\n result = sum % 11 < 2 ? 0 : 11 - (sum % 11);\n if (result !== Number(digits.charAt(1))) {\n return false;\n }\n\n return true;\n }\n return true;\n }\n}\n\nexport const cnpjValidator = new CNPJValidator();\n","export class StringMethods {\n\n constructor() {\n this.addStringFormat();\n }\n\n addStringFormat() {\n if (!String.prototype.hasOwnProperty('format')) {\n const format = {\n format: function () {\n let formatted = this;\n for (let i = 0; i < arguments.length; i++) {\n const regexp = new RegExp('\\\\{' + i + '\\\\}', 'gi');\n formatted = formatted.replace(regexp, arguments[i]);\n }\n return formatted;\n }\n };\n Object.assign(String.prototype, format);\n }\n }\n}\n\nexport const stringMethods = new StringMethods();\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'block-ui',\n templateUrl: './block-ui.component.html',\n styleUrls: ['./block-ui.component.css'],\n})\nexport class BlockUiComponent {\n @Input()\n blocked: boolean;\n @Input()\n target: string;\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { BlockUIModule } from 'primeng/blockui';\nimport { ProgressSpinnerModule } from 'primeng/progressspinner';\n\nimport { BlockUiComponent } from './block-ui.component';\n\n@NgModule({\n imports: [\n FormsModule,\n BlockUIModule,\n ProgressSpinnerModule\n ],\n declarations: [\n BlockUiComponent\n ],\n exports: [\n BlockUiComponent\n ]\n})\nexport class BlockUiModule {}\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MenuItem } from 'primeng/components/common/menuitem';\nimport { filter } from 'rxjs/operators';\n\n@Component({\n selector: 'c-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n})\nexport class BreadcrumbComponent implements OnInit {\n public items: MenuItem[];\n public title: string;\n\n constructor(private activatedRoute: ActivatedRoute, private router: Router, private translate: TranslateService) {\n this.items = [];\n }\n\n ngOnInit() {\n this.router.events.pipe(filter(event => event instanceof NavigationEnd)).subscribe(() => {\n const root: ActivatedRoute = this.activatedRoute.root;\n this.items = this.getBreadcrumbs(root, []);\n });\n }\n\n private getBreadcrumbs(route: ActivatedRoute, breadcrumbs: MenuItem[]): MenuItem[] {\n const children: ActivatedRoute[] = route.children;\n if (children.length === 0) {\n return breadcrumbs;\n }\n\n this.generateBreadcrumb(children, breadcrumbs);\n\n const index = (breadcrumbs.length && breadcrumbs.length - 1) || 0;\n this.title = breadcrumbs[index] && breadcrumbs[index].label;\n return breadcrumbs;\n }\n\n private generateBreadcrumb(children: ActivatedRoute[], breadcrumbs: MenuItem[]) {\n const ROUTE_DATA_BREADCRUMB = 'breadcrumb';\n children.forEach((child: ActivatedRoute, index: number) => {\n if (child.snapshot.data.hasOwnProperty(ROUTE_DATA_BREADCRUMB)) {\n child.snapshot.data[ROUTE_DATA_BREADCRUMB].map(val => {\n const breadcrumb: MenuItem = {\n label: this.translate.instant(val.name),\n queryParams: child.snapshot.queryParams,\n routerLink: this.getFormattedUrl(child, val.routerLink),\n url: this.getFormattedUrl(child, val.url),\n };\n\n if (val.routerLink) {\n breadcrumb.disabled = true;\n breadcrumb.routerLinkActiveOptions = { exact: true };\n }\n breadcrumbs.push(breadcrumb);\n });\n }\n\n if (child.children && child.children.length) {\n this.generateBreadcrumb(child.children, breadcrumbs);\n }\n });\n }\n\n getFormattedUrl(activatedRoute: ActivatedRoute, url: string): string {\n if (url) {\n Object.keys(activatedRoute.snapshot.params).forEach(param => {\n url = url.replace(`:${param}`, activatedRoute.snapshot.params[param]);\n });\n\n if (url.includes(':') && activatedRoute.parent) {\n return this.getFormattedUrl(activatedRoute.parent, url);\n }\n }\n return url;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n exports: [\n CommonModule,\n TranslateModule,\n ]\n})\nexport class SharedModule {\n constructor() {\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { BreadcrumbModule } from 'primeng/breadcrumb';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { BreadcrumbComponent } from './breadcrumb.component';\n\n@NgModule({\n imports: [\n FormsModule,\n BreadcrumbModule,\n SharedModule,\n ],\n declarations: [\n BreadcrumbComponent\n ],\n exports: [\n BreadcrumbComponent\n ]\n})\nexport class BreadcrumbSDSModule {\n}\n","import { Component, Input } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n selector: 'control-messages-error',\n templateUrl: \"./control-messages-error.component.html\",\n styleUrls: [\"./control-messages-error.component.css\"],\n})\nexport class ControlMessagesErrorComponent {\n @Input()\n control: FormControl;\n @Input()\n errorList: object;\n\n constructor() {}\n\n get errorMessage() {\n for (const propertyName in this.control.errors) {\n if (this.control.errors.hasOwnProperty(propertyName) && (this.control.touched || this.control.dirty)) {\n return this.errorList[propertyName];\n }\n }\n return null;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { ControlMessagesErrorComponent } from './control-messages-error.component';\n\n@NgModule({\n imports: [CommonModule, SharedModule, ReactiveFormsModule],\n declarations: [ControlMessagesErrorComponent],\n exports: [ControlMessagesErrorComponent],\n})\nexport class ControlMessagesErrorModule {}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\nexport interface IField {\n field: string;\n label: string;\n type: string;\n regex: string;\n mask: string;\n value: string;\n}\n\n@Component({\n selector: 'custom-fields',\n templateUrl: './custom-fields.component.html',\n styleUrls: ['./custom-fields.component.css'],\n})\nexport class CustomFieldsComponent implements OnInit {\n @Input()\n params?: IField;\n @Input()\n disabled?: boolean;\n @Input()\n readonly?: boolean;\n @Input()\n required?: boolean;\n @Input()\n form: FormGroup;\n\n optionsBoolean = [{ label: 'Selecione', value: '' }, { label: 'Sim', value: 'true' }, { label: 'Não', value: 'false' }];\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild, OnDestroy } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { LocaleService } from '@seniorsistemas/angular-components';\nimport * as _moment from 'moment';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nconst moment = _moment;\n\n@Component({\n selector: 'input-date-calendar',\n templateUrl: './input-date.component.html',\n})\nexport class InputDateComponent implements OnInit, OnDestroy {\n @ViewChild('inputDateElement', { static: false })\n _inputDateElement: ElementRef;\n @Input()\n form: FormGroup;\n @Input()\n name: string;\n @Input()\n disabled?: boolean;\n @Input()\n unmask = true;\n @Input()\n inputId: string;\n @Input()\n withoutDay: boolean;\n @Input()\n readonly: boolean;\n\n @Output()\n onBlurGetMoment: EventEmitter<any> = new EventEmitter();\n\n private ngUnsubscribe = new Subject();\n private _date: any;\n private locale: any;\n private format: any;\n mask = null;\n\n constructor(private localeService: LocaleService) {}\n\n ngOnInit() {\n this.localeService\n .get()\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(loc => {\n this.mask = this.formatMask(loc);\n this.format = this.setFormat();\n if (this.form.get(this.name).value) {\n const newDate = this.form.get(this.name).value.toString();\n const momentDate = moment(newDate, this.format || 'YYYY-MM-DD');\n this.form.get(this.name).setValue(momentDate.format(this.format || 'L'));\n this._date = momentDate;\n }\n });\n }\n\n ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n formatMask(loc) {\n this.locale = loc;\n let dateMask = this.locale.calendar.dateFormat.toString();\n\n if (this.withoutDay) {\n dateMask = dateMask.replace('dd/', '').replace('-dd', '');\n }\n\n dateMask = dateMask.replace(/[d]|[m]/g, '9');\n return dateMask.replace(/[y]/g, '99');\n }\n\n setFormat() {\n let dateFormat = this.locale.calendar.dateFormat.toString();\n dateFormat = dateFormat.replace(/[y]/g, 'YY');\n\n if (this.withoutDay) {\n dateFormat = dateFormat.replace('dd/', '').replace('-dd', '');\n }\n\n return dateFormat.toUpperCase();\n }\n\n get placeholder() {\n return this.mask ? this.mask.toString().replace(/[9]/g, '_') : '';\n }\n\n onBlur(event) {\n if (event && event.target && event.target.value) {\n const dateComponent = this.form.get(this.name).value;\n this._date = moment(dateComponent, this.format);\n this.onBlurGetMoment.emit(this._date);\n } else {\n this._date = {};\n this.form.get(this.name).setValue(null);\n this.onBlurGetMoment.emit(null);\n }\n }\n\n @Input()\n get model() {\n const dateComponet = this.form.get(this.name).value;\n return moment(dateComponet, this.format);\n }\n\n get inputDateElement() {\n return this._inputDateElement;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { InputMaskModule } from 'primeng/inputmask';\n\nimport { InputDateComponent } from './input-date.component';\n\n@NgModule({\n imports: [InputMaskModule, FormsModule, ReactiveFormsModule, CommonModule],\n declarations: [InputDateComponent],\n exports: [InputDateComponent],\n})\nexport class InputDateModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputMaskModule } from 'primeng/inputmask';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { SharedModule } from 'primeng/shared';\n\nimport { InputDateModule } from '../input-date/input-date.module';\nimport { CustomFieldsComponent } from './custom-fields.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n SharedModule,\n InputTextModule,\n InputDateModule,\n DropdownModule,\n InputMaskModule\n ],\n declarations: [CustomFieldsComponent],\n providers: [],\n exports: [CustomFieldsComponent]\n})\nexport class CustomFieldsModule {\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[name-not-spaces]',\n})\nexport class NameNotSpacesDirective {\n private el: HTMLInputElement;\n\n constructor(private elementRef: ElementRef) {\n this.el = this.elementRef.nativeElement;\n }\n\n @HostListener('blur', ['$event.target.value'])\n onBlur(value) {\n this.cleanVar(value);\n }\n\n cleanVar(val) {\n const clean = val.trim().replace(/^\\s+|\\s+$|\\s+(?=\\s)/g, '');\n if (val !== clean) {\n this.el.value = clean;\n }\n return clean;\n }\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[only-number]',\n})\nexport class OnlyNumberDirective {\n constructor(private el: ElementRef) {}\n @HostListener('keydown', ['$event'])\n onKeyDown(event) {\n const e = <KeyboardEvent>event;\n\n if (\n [46, 8, 9, 27, 13, 110, 190].indexOf(e.keyCode) !== -1 ||\n // Allow: Ctrl+A\n (e.keyCode === 65 && (e.ctrlKey || e.metaKey)) ||\n // Allow: Ctrl+C\n (e.keyCode === 67 && (e.ctrlKey || e.metaKey)) ||\n // Allow: Ctrl+V\n (e.keyCode === 86 && (e.ctrlKey || e.metaKey)) ||\n // Allow: Ctrl+X\n (e.keyCode === 88 && (e.ctrlKey || e.metaKey)) ||\n // Allow: home, end, left, right\n (e.keyCode >= 35 && e.keyCode <= 39)\n ) {\n // let it happen, don't do anything\n return;\n }\n // Ensure that it is a number and stop the keypress\n if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {\n e.preventDefault();\n }\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { NameNotSpacesDirective } from './name-not-spaces.directive';\nimport { OnlyNumberDirective } from './only-number.directive';\n\n@NgModule({\n imports: [],\n declarations: [OnlyNumberDirective, NameNotSpacesDirective],\n exports: [OnlyNumberDirective, NameNotSpacesDirective],\n providers: [],\n schemas: [],\n})\nexport class CoreDirectives {}\n","export enum UsingType {\n // \"Empresas de transporte.\"\n TYPE_1 = 'TYPE_1',\n // \"Clientes de agência de emprego.\"\n TYPE_2 = 'TYPE_2',\n // \"Entidades de ensino.\"\n TYPE_3 = 'TYPE_3',\n // \"Conveniados médicos.\"\n TYPE_4 = 'TYPE_4',\n // \"Seguradoras.\"\n TYPE_6 = 'TYPE_6',\n // \"Escritórios advocacia.\"\n TYPE_7 = 'TYPE_7',\n // \"Conveniados tickets.\"\n TYPE_8 = 'TYPE_8',\n // \"Empregos anteriores.\"\n TYPE_9 = 'TYPE_9',\n // \"Cooperativa de trabalho.\"\n TYPE_10 = 'TYPE_10',\n // \"Fornecedor/Fabricante de EPI/EPC.\"\n TYPE_11 = 'TYPE_11',\n // \"Escolas de educação infantil.\"\n TYPE_12 = 'TYPE_12',\n // \"Entidade de ensino - Nível superior.\"\n TYPE_14 = 'TYPE_14',\n // \"Empresas de refeição.\"\n TYPE_15 = 'TYPE_15',\n // \"Entidades de ensino - Nível médio.\"\n TYPE_16 = 'TYPE_16',\n // \"Fornecedor para treinamento.\"\n TYPE_17 = 'TYPE_17',\n // \"Higienização ou serviços gerais.\"\n TYPE_18 = 'TYPE_18',\n // \"Agente de integração.\"\n TYPE_19 = 'TYPE_19',\n // \"Empresas de software.\"\n TYPE_20 = 'TYPE_20',\n // \"Laboratório.\"\n TYPE_21 = 'TYPE_21',\n}\n","export enum CompanyIndicationType {\n // Usa rotinas de dependente\n USE_DEPENDENTS = 'USE_DEPENDENTS',\n // Controla frequência de vacinação\n VACCINATION_FREQUENCY = 'VACCINATION_FREQUENCY',\n // Usa calculo de rateio\n APPORTIONMENT_CALCULATION = 'APPORTIONMENT_CALCULATION',\n // Assinalamento usa posto de trabalho para colaborador\n USE_WORKSTATION_GROUP_EMPLOYEE = 'USE_WORKSTATION_GROUP_EMPLOYEE',\n // Estrutura\n STRUCTURE = 'STRUCTURE',\n // Anuidade\n PAY_ANNUITY = 'PAY_ANNUITY',\n // Usa histórico de contas bancárias\n USE_HISTORICAL_BANK_ACCOUNT = 'USE_HISTORICAL_BANK_ACCOUNT'\n}\n","export enum CoreFieldType {\n searchValue = 'searchValue',\n}\n","export enum DirectionEnumeration {\n ASC = 'ASC',\n DESC = 'DESC',\n}\n","export enum ModuleType {\n /** Painel de gestão */\n MANAGEMENT_PANEL = 'MANAGEMENT_PANEL',\n /** Gestão de desempenho*/\n PERFORMANCE_MANAGEMENT = 'PERFORMANCE_MANAGEMENT',\n /** Carreira e sucessão */\n CAREER_SUCCESSION = 'CAREER_SUCCESSION',\n /** Recrutamento */\n RECRUIT_MANAGEMENT = 'RECRUIT_MANAGEMENT',\n /** Gestão de remuneração */\n REMUNERATION_MANAGEMENT = 'REMUNERATION_MANAGEMENT',\n /** Gestão de desenvolvimento */\n DEVELOPMENT_MANAGEMENT = 'DEVELOPMENT_MANAGEMENT',\n /** Folha de pagamento */\n PAYROLL = 'PAYROLL',\n /** Aplicativo */\n APP = 'APP',\n /** Moods */\n MOODS = 'MOODS'\n}\n","export enum Operators {\n EQUAL = 'eq',\n DIFFERENT = 'ne',\n LESS_THAN = 'it',\n GREATER_THAN = 'gt',\n LESS__EQUAL_THAN = 'le',\n GREATER_EQUAL_THAN = 'ge',\n CONTAINING = 'containing',\n LOWER = 'lower',\n AND = 'and',\n OR = 'or',\n}\n","/**\n * Enum com as funções de comparação da biblioteca Moment.js\n * Não contempla a função isBetween, será necessário fazer uma validação esoecífica para usá-la\n */\nexport enum CompareType {\n isBefore = \"isBefore\",\n isAfter = \"isAfter\",\n isSame = \"isSame\",\n isSameOrAfter = \"isSameOrAfter\",\n isSameOrBefore = \"isSameOrBefore\",\n isNotSame = \"isNotSame\",\n}\n","export enum ServiceType {\n ENTRY = 'entry',\n GENERAL_REGISTER = 'general_register',\n ORGANIZATION_REGISTER = 'organization_register',\n PAYROLL = 'payroll',\n DEPENDENT = 'dependent',\n}\n","export enum HttpRequestType {\n POST = \"post\",\n GET = \"get\",\n}\n","export enum ReportFormat {\n PDF = \"Pdf\",\n CSV = \"Csv\",\n HTML = \"Html\",\n XLS = \"Xls\",\n XLSX = \"Xlsx\",\n XML = \"Xml\",\n ODT = \"Odt\",\n RTF = \"Rtf\"\n}\n","export enum ParameterType {\n STRING = \"String\",\n INTEGER = \"Integer\",\n DOUBLE = \"Double\",\n BOOLEAN = \"Boolean\",\n DATE = \"Date\",\n DATETIME = \"DateTime\",\n TIME = \"Time\",\n OBJECT = \"Object\"\n}\n","export enum MenuType {\n DEFAULT = \"DEFAULT\",\n ACTION = \"ACTION\"\n}\n","export enum ReportStage {\n STARTING = \"Starting\",\n COMPILING = \"Compiling\",\n FILLING = \"Filling\",\n EXPORTING = \"Exporting\",\n DONE = \"Done\",\n CANCELLED = \"Cancelled\",\n GENERATED = \"Generated\",\n ERROR = \"Error\"\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class DataListRestService {\n constructor(private http: HttpClient) {}\n\n getList(endpoint: string, body: object): Observable<any> {\n return this.http.post(`${endpoint}`, body);\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { Table } from 'primeng/table';\nimport { Subject } from 'rxjs';\nimport { map, takeUntil } from 'rxjs/operators';\n\nimport { DirectionEnumeration } from '../../core/enums';\nimport { DataListRestService } from './data-list-rest.service';\n\n@Component({\n selector: 'c-data-list-rest',\n templateUrl: './data-list-rest.component.html',\n styleUrls: ['./data-list-rest.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [DataListRestService],\n})\nexport class DataListRestComponent implements OnInit, OnDestroy {\n @ViewChild('dataListTable', { static: false })\n dataListTable: Table;\n\n @Input()\n id: string;\n @Input()\n dataKey: string;\n @Input()\n rows = 10;\n @Input()\n emptyMessage: string;\n @Input()\n columns: any[];\n @Input()\n paginator = true;\n @Input()\n first = 1;\n @Input()\n alwaysShowPaginator = true;\n @Input()\n actions?: Function;\n @Input()\n actionLabel: string;\n @Input()\n selectionMode: string;\n @Input()\n lazy: boolean;\n @Input()\n isMultipleSelection: boolean;\n @Input()\n isSortable: boolean;\n @Input()\n showHeaderCheckBox: boolean;\n @Input()\n sortMode = 'multiple';\n @Input()\n endpoint: string;\n @Input()\n totalRecords: number;\n @Input()\n orderBy: { field: string; direction: DirectionEnumeration }[];\n @Input()\n singularMessageRecords: string;\n @Input()\n pluralMessageRecords: string;\n @Input()\n keyPayload: string;\n @Input()\n initParameters: any;\n @Input()\n responsive = true;\n @Input()\n scrollable = false;\n\n @Output()\n lazyLoad: EventEmitter<any> = new EventEmitter();\n @Output()\n loadingChange: EventEmitter<any> = new EventEmitter();\n @Output()\n listDataChange: EventEmitter<any> = new EventEmitter();\n @Output()\n selectedDataChange: EventEmitter<any> = new EventEmitter();\n @Output()\n headerCheckboxToggle: EventEmitter<any> = new EventEmitter();\n\n private _loading: boolean;\n private _listData: any[];\n private _selectedData: any[];\n private _searchParameters: any;\n private ngUnsubscribe = new Subject();\n\n constructor(private dataListService: DataListRestService) {}\n\n ngOnInit() {\n if (!this.lazy) {\n this.getlistData();\n }\n }\n\n ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n getActions(data: any, index: number) {\n return this.actions(data, index);\n }\n\n pagination(event) {\n if (!this.lazy) {\n this.getlistData(event.rows, Math.floor(event.first / event.rows));\n }\n }\n\n onLazyLoad(event) {\n this.loading = true;\n\n if (event.multiSortMeta && event.multiSortMeta.length) {\n this.orderBy = <{ field: string; direction: DirectionEnumeration }[]>[];\n event.multiSortMeta.map(value => {\n this.orderBy.push({ field: value.field, direction: value.order === 1 ? DirectionEnumeration.ASC : DirectionEnumeration.DESC });\n });\n }\n\n this.getlistData(event.rows, Math.floor(event.first / event.rows) + 1);\n }\n\n onFilter() {\n if (this.lazy) {\n this.loading = true;\n }\n\n this.getlistData();\n }\n\n get recordsMessage() {\n return `${this.totalRecords || 0} ${this.totalRecords === 1 ? this.singularMessageRecords : this.pluralMessageRecords}`;\n }\n\n getlistData(size = this.rows, offset = this.first): void {\n if (this.endpoint) {\n this.dataListService\n .getList(this.endpoint, {\n page: { current: offset, size: size, orderBy: this.orderBy },\n ...this.initParameters,\n ...this._searchParameters,\n })\n .pipe(\n takeUntil(this.ngUnsubscribe),\n map((data: any) => data && data.result)\n )\n .subscribe((data: any) => {\n this.listData = data[this.keyPayload];\n this.totalRecords = data.countResult;\n if (this.lazy) {\n this.lazyLoad.emit(this.listData);\n }\n });\n } else {\n if (this.lazy) {\n this.lazyLoad.emit(this.listData);\n }\n }\n }\n\n onHeaderCheckboxToggle(event) {\n this.headerCheckboxToggle.emit(event);\n }\n\n getFieldValue(rowData, col) {\n if (col['field'] && col['field'].includes('.')) {\n const objectPath = col['field'].split('.');\n objectPath.map(value => (rowData = rowData && rowData[value]));\n return rowData;\n }\n return rowData[col['field']];\n }\n\n @Input()\n set parameters(searchParameters: any) {\n if (searchParameters) {\n this._searchParameters = { ...searchParameters };\n\n if (this.dataListTable) {\n this.dataListTable.first = 0;\n }\n\n this.onFilter();\n }\n }\n\n set loading(value: boolean) {\n this._loading = value;\n this.loadingChange.emit(this._loading);\n }\n\n @Input()\n get loading() {\n return this._loading;\n }\n\n set listData(value: any[]) {\n this._listData = value;\n this.listDataChange.emit(this._listData);\n }\n\n @Input()\n get listData() {\n return this._listData;\n }\n\n set selectedData(value: any[]) {\n this._selectedData = value;\n this.selectedDataChange.emit(this._selectedData);\n }\n\n @Input()\n get selectedData() {\n return this._selectedData;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ButtonModule, LoadingStateModule } from '@seniorsistemas/angular-components';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { TableModule } from 'primeng/table';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { DataListRestComponent } from './data-list-rest.component';\n\n@NgModule({\n imports: [\n CommonModule,\n SharedModule,\n // Angular Components\n ButtonModule,\n LoadingStateModule,\n // Primeng\n TableModule,\n TooltipModule,\n ],\n declarations: [DataListRestComponent],\n exports: [DataListRestComponent],\n})\nexport class DataListRestModule {}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable()\nexport class EmployeeSummaryService {\n private employeeBasicInformations = new Subject<any>();\n\n constructor(private http: HttpClient) {}\n\n findEmployee(path: string, employeeId: string): Observable<any> {\n return this.http.post(`hcm/payroll/queries/${path}`, { employeeId: employeeId });\n }\n\n findEmployeeAutoComplete(path: string, terms: string): Observable<any> {\n return this.http.post(`hcm/payroll/queries/${path}`, { valueSearch: terms });\n }\n\n blobServiceRequestAccess(path: string, body: object): Observable<any> {\n return this.http.post(`hcm/payroll/actions/${path}`, body);\n }\n\n setEmployeeBasicInformations(employeeBasicInformations: any) {\n this.employeeBasicInformations.next(employeeBasicInformations);\n }\n\n getEmployeeBasicInformations(): Observable<any> {\n return this.employeeBasicInformations.asObservable();\n }\n}\n","import { Component, Input, OnDestroy, OnInit } from \"@angular/core\";\nimport { ActivatedRoute, Params } from \"@angular/router\";\nimport * as moment_ from \"moment\";\nimport { Subject } from \"rxjs\";\nimport { finalize, map, takeUntil } from \"rxjs/operators\";\n\nimport { EmployeeSummaryService } from \"./employee-summary.service\";\n\nexport interface IEmployeeSummary {\n name: string;\n jobPosition: string;\n photoSource?: string;\n employer?: string;\n location?: string;\n hireDate?: any;\n registernumber?: any;\n timeTrackingResumeType?: string;\n age?: string;\n}\n\nconst moment = moment_;\n\n@Component({\n selector: \"c-employee-summary\",\n templateUrl: \"./employee-summary.component.html\",\n})\nexport class EmployeeSummaryComponent implements OnInit, OnDestroy {\n @Input()\n public timetrackingLabel: string = \"Status\";\n @Input()\n public hireDate: string;\n @Input()\n public hireLabel: string = \"Admissão\";\n @Input()\n public registerNumberLabel: string = \"Matrícula\";\n @Input()\n public ageLabel: string = \"Idade\";\n @Input()\n public loadingLabel: string = \"...\";\n @Input()\n public loadingDescription: string = \"Carregando...\";\n public emploayeeData: IEmployeeSummary;\n public isLoading: boolean = false;\n\n private ngUnsubscribe = new Subject();\n\n constructor(private activatedRoute: ActivatedRoute, private employeeService: EmployeeSummaryService) {\n }\n\n public ngOnInit() {\n this.emploayeeData = {\n name: this.loadingLabel,\n jobPosition: this.loadingDescription,\n };\n\n this.activatedRoute.params.pipe(takeUntil(this.ngUnsubscribe)).subscribe((params: Params) => {\n if (params.employeeId) {\n this.getInformation(params.employeeId);\n }\n });\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next(true);\n this.ngUnsubscribe.complete();\n }\n\n private getInformation(employeeId: string) {\n this.isLoading = true;\n\n this.employeeService\n .findEmployee(\"employeeContractualInformations\", employeeId)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n map((data: any) => data && data.result),\n finalize(() => {\n this.isLoading = false;\n }),\n )\n .subscribe(payload => {\n this.employeeService.setEmployeeBasicInformations(payload);\n\n this.emploayeeData = {\n ...payload,\n timeTrackingResumeType: payload.timeTrackingResumeType && payload.timeTrackingResumeType.value,\n };\n const location: string[] = [];\n\n if (payload.city) {\n location.push(payload.city);\n }\n if (payload.stateAbbreviation) {\n location.push(payload.stateAbbreviation);\n }\n\n this.emploayeeData.location = location.join(\" - \");\n\n if (payload.hireDate) {\n this.emploayeeData.hireDate = this.hireDate ? this.hireDate : moment(payload.hireDate).format(\"L\");\n }\n\n if (payload.idPicture) {\n const request = {\n fileId: payload.idPicture,\n ttl: 2,\n thumbnail: false,\n };\n\n this.employeeService\n .blobServiceRequestAccess(\"blobServiceRequestAccess\", request)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n map((data: any) => data && data.result),\n )\n .subscribe((imageData: any) => {\n if (imageData) {\n this.emploayeeData.photoSource = imageData.locationURI;\n }\n });\n }\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { LoadingStateModule, ObjectCardModule } from '@seniorsistemas/angular-components';\n\nimport { EmployeeSummaryComponent } from './employee-summary.component';\nimport { EmployeeSummaryService } from './employee-summary.service';\n\n@NgModule({\n imports: [ObjectCardModule, LoadingStateModule],\n declarations: [EmployeeSummaryComponent],\n exports: [EmployeeSummaryComponent],\n providers: [EmployeeSummaryService],\n})\nexport class EmployeeSummaryModule {}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable()\nexport class AdmissionDraftSummaryService {\n private admissionDraftBasicInformations = new Subject<any>();\n\n constructor(private http: HttpClient) {\n }\n\n findAdmissionDraft(draftId: string): Observable<any> {\n return this.http.post('hcm/payroll/queries/admissionDraftQuery', { id: draftId });\n }\n\n\n blobServiceRequestAccess(path: string, body: object): Observable<any> {\n return this.http.post(`hcm/payroll/actions/${path}`, body);\n }\n\n setAdmissionDraftBasicInformations(draftBasicInformations: any) {\n this.admissionDraftBasicInformations.next(draftBasicInformations);\n }\n}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute, Params } from '@angular/router';\nimport { TranslateService } from \"@ngx-translate/core\";\nimport * as moment_ from 'moment';\nimport { Subject } from 'rxjs';\nimport { finalize, map, takeUntil } from 'rxjs/operators';\n\nimport { AdmissionDraftSummaryService } from './admission-draft-summary.service';\n\nexport interface IAdmissionDraftSummary {\n id?: string;\n name: string;\n documentNumber: string;\n originDraftType: string;\n companyName: string;\n localeOfCompany: string;\n hiringDate: any;\n attachment?: any;\n photoSource?: string;\n}\n\nconst moment = moment_;\n\n@Component({\n selector: 'c-admission-draft-summary',\n templateUrl: './admission-draft-summary.component.html',\n})\nexport class AdmissionDraftSummaryComponent implements OnInit, OnDestroy {\n @Input()\n public originType: string;\n @Input()\n public hireLabel: string = 'Admissão';\n @Input()\n public hireDate: string = '...';\n @Input()\n public badgeText: string = 'Rascunho';\n @Input()\n public loadingLabel: string = '...';\n @Input()\n public documentNumberLabel: string = 'Documento';\n @Input()\n public loadingDescription: string = 'Carregando...';\n public draftData: IAdmissionDraftSummary;\n public isLoading: boolean = false;\n\n private ngUnsubscribe = new Subject();\n\n constructor(private activatedRoute: ActivatedRoute,\n private admissionDraftSummaryService: AdmissionDraftSummaryService,\n private translateService: TranslateService) {\n }\n\n public ngOnInit() {\n this.draftData = {\n name: this.loadingLabel,\n hiringDate: this.hireDate,\n documentNumber: this.loadingLabel,\n companyName: this.loadingLabel,\n localeOfCompany: this.loadingLabel,\n originDraftType: this.loadingLabel,\n };\n\n this.activatedRoute.params.pipe(takeUntil(this.ngUnsubscribe)).subscribe((params: Params) => {\n if (params.draftId) {\n this.getInformation(params.draftId);\n }\n });\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next(true);\n this.ngUnsubscribe.complete();\n }\n\n private getInformation(draftId: string) {\n this.isLoading = true;\n\n this.admissionDraftSummaryService\n .findAdmissionDraft(draftId)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n map((data: any) => data && data.result),\n finalize(() => {\n this.isLoading = false;\n }),\n )\n .subscribe(payload => {\n this.admissionDraftSummaryService.setAdmissionDraftBasicInformations(payload);\n payload.hiringDate = this.hireDate;\n\n this.draftData = {\n ...payload,\n };\n\n this.draftData.originDraftType = this.originType;\n if (payload.attachment && payload.attachment.fileId) {\n const request = {\n fileId: this.draftData.attachment.fileId,\n ttl: 2,\n thumbnail: false,\n };\n\n this.admissionDraftSummaryService\n .blobServiceRequestAccess('blobServiceRequestAccess', request)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n map((data: any) => data && data.result),\n )\n .subscribe((imageData: any) => {\n if (imageData) {\n this.draftData.photoSource = imageData.locationURI;\n }\n });\n }\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { LoadingStateModule, ObjectCardModule } from '@seniorsistemas/angular-components';\n\nimport { AdmissionDraftSummaryComponent } from './admission-draft-summary.component';\nimport { AdmissionDraftSummaryService } from './admission-draft-summary.service';\n\n@NgModule({\n imports: [ObjectCardModule, LoadingStateModule],\n declarations: [AdmissionDraftSummaryComponent],\n exports: [AdmissionDraftSummaryComponent],\n providers: [AdmissionDraftSummaryService],\n})\nexport class AdmissionDraftSummaryModule {}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'error-page',\n templateUrl: './error-page.component.html',\n styleUrls: ['./error-page.component.css'],\n})\nexport class ErrorPageComponent implements OnInit {\n constructor() {}\n\n ngOnInit() {}\n}\n","import { NgModule } from '@angular/core';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { ErrorPageComponent } from './error-page.component';\n\n@NgModule({\n imports: [SharedModule],\n declarations: [ErrorPageComponent],\n exports: [ErrorPageComponent],\n providers: [],\n})\nexport class ErrorPageModule {}\n","import { Component, Input, OnChanges, OnInit } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n@Component({\n selector: 'field-validator',\n templateUrl: './field-validator.component.html'\n})\nexport class FieldValidatorComponent implements OnInit, OnChanges {\n\n @Input()\n inputErrors: any;\n @Input()\n errorDefs: any;\n @Input()\n field: AbstractControl;\n @Input()\n onlyShowAfterTouched: boolean;\n\n errorMessage = '';\n\n constructor() { }\n\n ngOnInit() { }\n\n ngOnChanges(changes: any): void {\n const errors: any = changes.inputErrors.currentValue;\n this.errorMessage = '';\n if (errors) {\n Object.keys(this.errorDefs).some(key => {\n if (errors[key]) {\n this.errorMessage = this.errorDefs[key];\n return true;\n }\n });\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { FieldValidatorComponent } from './field-validator.component';\n\n@NgModule({\n imports: [CommonModule, SharedModule, ReactiveFormsModule],\n declarations: [FieldValidatorComponent],\n exports: [FieldValidatorComponent],\n providers: [],\n})\nexport class FieldValidatorModule {}\n","import { Observable, Subject } from 'rxjs';\n\nexport class ToastService {\n private messagesSubjectError = new Subject<object>();\n private messagesSubjectSuccess = new Subject<object>();\n private messagesSubjectWarning = new Subject<object>();\n\n constructor() {}\n\n /**\n * Exibe Toast de error (vermelho)\n * @param message\n * @param breakLine se deseja quebrar a mensagem caso tenha '\\n' contido\n */\n showError(message, breakLine = false) {\n this.messagesSubjectError.next({ message: message, breakLine: breakLine });\n }\n /**\n * Exibe Toast de success (verde)\n * @param message\n * @param breakLine se deseja quebrar a mensagem caso tenha '\\n' contido\n */\n showSuccess(message, breakLine = false) {\n this.messagesSubjectSuccess.next({ message: message, breakLine: breakLine });\n }\n /**\n * Exibe Toast de warning (amarelo)\n * @param message\n * @param breakLine se deseja quebrar a mensagem caso tenha '\\n' contido\n */\n showWarning(message, breakLine = false) {\n this.messagesSubjectWarning.next({ message: message, breakLine: breakLine });\n }\n\n loadErrorMessages(): Observable<any> {\n return this.messagesSubjectError.asObservable();\n }\n\n loadSuccessMessages(): Observable<any> {\n return this.messagesSubjectSuccess.asObservable();\n }\n\n loadWarningMessages(): Observable<any> {\n return this.messagesSubjectWarning.asObservable();\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ServiceType } from '../../core/enums/serviceType';\nimport { catchError} from \"rxjs/operators\";\nimport { MessageService } from 'primeng/api';\nimport { TranslateService } from '@ngx-translate/core';\nimport { throwError } from 'rxjs';\n\n@Injectable()\nexport class HttpClientService {\n constructor(private http: HttpClient, private messageService: MessageService, private translateService: TranslateService) {}\n\n query(path: string, body: object, service: ServiceType = ServiceType.PAYROLL): Observable<any> {\n const endpoit = `hcm/${service}/queries/${path}`;\n return this.http.post(endpoit, body)\n .pipe(\n catchError((exception: any): any => {\n if (exception && exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed_search\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n\n enumQuery(path: string, body: object, server = 'payroll'): Observable<any> {\n const endpoit = `hcm/${server}/queries/${path}`;\n return this.http.post(endpoit, body)\n .pipe(\n catchError((exception: any): any => {\n if (exception && exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed_search\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n\n action(path: string, body: object): Observable<any> {\n const endpoit = `hcm/payroll/actions/${path}`;\n return this.http.post(endpoit, body)\n .pipe(\n catchError((exception: any): any => {\n if (exception && exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n\n recruitmentAction(path: string, body: object): Observable<any> {\n const endpoint = `hcm/recruitment/actions/${path}`;\n return this.http.post(endpoint, body)\n .pipe(\n catchError((exception: any): any => {\n if (exception && exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n\n get(path: string): Observable<any> {\n const endpoit = `hcm/payroll/entities/${path}`;\n return this.http.get(endpoit)\n .pipe(\n catchError((exception: any): any => {\n if (exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed_search\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n\n getAutoComplete(entity: string, filter: string, service: ServiceType = ServiceType.PAYROLL): Observable<any> {\n const endpoit = `hcm/${service}/entities/${entity}?filter=${filter}&size=10&orderby=code+asc`;\n return this.http.get(endpoit)\n .pipe(\n catchError((exception: any): any => {\n if (exception && exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed_search\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n\n patch(path: string, body: object): Observable<any> {\n const endpoit = `hcm/payroll/entities/${path}`;\n return this.http.patch(endpoit, body)\n .pipe(\n catchError((exception: any): any => {\n if (exception && exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n\n post(path: string, body: object): Observable<any> {\n const endpoit = `hcm/payroll/${path}`;\n return this.http.post(endpoit, body)\n .pipe(\n catchError((exception: any): any => {\n if (exception && exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n\n put(path: string, body: object): Observable<any> {\n const endpoit = `hcm/payroll/entities/${path}`;\n return this.http.put(endpoit, body)\n .pipe(\n catchError((exception: any): any => {\n if (exception && exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n\n delete(path: string, key?: string): Observable<any> {\n const endpoit = key ? `hcm/payroll/entities/${path}/${key}` : `hcm/payroll/entities/${path}`;\n return this.http.delete(endpoit)\n .pipe(\n catchError((exception: any): any => {\n if (exception && exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { HttpClientService } from '../shared/http-client.service';\n\n@Injectable()\nexport class FileUploadService {\n httpOptions: object;\n\n constructor(private http: HttpClientService) {}\n\n blobServiceRequestUpload(file: Blob): Observable<any> {\n const requestUpload = {\n fileName: file[\"name\"],\n thumbnail: this.isImage(file),\n };\n const endpoint = 'blobServiceRequestUpload';\n return this.http.action(endpoint, requestUpload);\n }\n\n blobServiceRequestAccess(fileId): Observable<any> {\n const request = {\n fileId: fileId,\n tll: 2,\n thumbnail: false,\n };\n const endpoint = 'blobServiceRequestAccess';\n return this.http.action(endpoint, request);\n }\n\n blobServiceFileDelete(fileId): Observable<any> {\n const request = {\n fileId: fileId,\n thumbnail: false,\n };\n const endpoint = 'blobServiceDelete';\n return this.http.action(endpoint, request);\n }\n\n private isImage(file: Blob): boolean {\n return /^image\\//.test(file.type);\n }\n}\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { forkJoin, Observable } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { ToastService } from \"../toast/toast.service\";\n\nimport { FileUploadService } from \"./file-upload.service\";\n\n@Component({\n selector: \"c-file-upload\",\n templateUrl: \"./file-upload.component.html\",\n})\nexport class FileUploadComponent {\n @Input()\n errorTooltip: string;\n @Input()\n files: Blob[] = [];\n @Output()\n onUploadFile = new EventEmitter();\n @Output()\n onRemoveFile = new EventEmitter();\n\n constructor(private service: FileUploadService, private toastService: ToastService, private translate: TranslateService) {\n }\n\n uploadHandler(event: { files: Blob[] }) {\n const observables: any[] = [];\n if (event && event.files.length) {\n\n event.files.sort();\n if (event.files.length > 10 && event.files[10]) {\n delete event.files[10];\n }\n\n const countFiles: number = this.getFilesCountAndValidate(event.files);\n for (var i = 0; i < countFiles; i++) {\n const file = this.validateFileSize(event.files[i]);\n\n if (i <= 9 && file[\"isUploaded\"] && !file[\"complete\"])\n observables.push(this.saveFile(file));\n }\n\n forkJoin(...observables).subscribe(() => {\n this.onUploadFile.emit(this.files);\n });\n }\n }\n\n /**\n * Valida o tamanho do arquivo, limitando em 50mb.\n * @param file\n */\n private validateFileSize(file: Blob): Blob {\n if (file[\"isUploaded\"] && !file[\"complete\"] && file[\"size\"] > 50000000) {\n file[\"complete\"] = true;\n file[\"error\"] = this.translate.instant(\"hcm.payroll.attachments_max_mb\");\n this.toastService.showError(this.translate.instant(\"hcm.payroll.attachments_alert_error\"));\n }\n\n return file;\n }\n\n /**\n * Valida a quantidade de arquivos, limitando em 10 anexos.\n * @param files\n */\n private getFilesCountAndValidate(files: Blob[]): number {\n let countFiles = 0;\n if (files.length) {\n if (files.length > 10) {\n countFiles = 10;\n this.toastService.showError(this.translate.instant(\"hcm.payroll.attachments_max_length\"));\n } else {\n countFiles = files.length;\n }\n }\n return countFiles;\n }\n\n\n saveFile(file: Blob) {\n const obs = new Observable(observable => {\n return this.service\n .blobServiceRequestUpload(file)\n .pipe(map((response: any) => response && response.result))\n .subscribe(\n response => this.doUpload(response, file, observable),\n error => {\n file[\"complete\"] = true;\n file[\"error\"] = error.message;\n file[\"objectURL\"] = undefined;\n },\n );\n });\n return obs;\n }\n\n doUpload(response: any, file: any, observable: any) {\n const xhr = new XMLHttpRequest();\n file[\"id\"] = response.fileId;\n file[\"objectURL\"] = response.locationURI;\n file[\"version\"] = response.version;\n file[\"progress\"] = 0;\n\n xhr.upload.addEventListener(\n \"progress\",\n (evt: ProgressEvent) => {\n file[\"progress\"] = Math.round((evt.loaded * 100) / evt.total);\n },\n false,\n );\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n file[\"complete\"] = true;\n\n if (xhr.status < 200 || xhr.status >= 300) {\n file[\"objectURL\"] = undefined;\n file[\"error\"] = xhr.statusText || \"Erro ao anexar arquivo\";\n } else {\n file[\"error\"] = false;\n }\n observable.next(file);\n observable.complete();\n }\n };\n\n xhr.open(\"PUT\", file.objectURL, true);\n xhr.setRequestHeader(\"Translate\", \"f\");\n return xhr.send(file);\n }\n\n onCancelUpload(index: any) {\n this.files.splice(index, 1);\n }\n\n removeFile() {\n this.onRemoveFile.emit(this.files);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FileUploadModuleDeprecated } from '@senior-gestao-pessoas/angular-components';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { FileUploadComponent } from './file-upload.component';\nimport { FileUploadService } from './file-upload.service';\n\n@NgModule({\n imports: [CommonModule, FileUploadModuleDeprecated, SharedModule],\n declarations: [FileUploadComponent],\n providers: [FileUploadService],\n exports: [FileUploadComponent],\n})\nexport class FileUploadCoreModule {}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n@Injectable()\nexport class ImageCropService {\n constructor(private http: HttpClient) { }\n\n async saveImage(file: Blob | File, sourceImage: string, service: string) {\n if (!file) {\n return;\n }\n\n let fileUpload = null;\n if (file) {\n fileUpload = { fileName: file[\"name\"] };\n } else if (sourceImage) {\n fileUpload = { fileName: sourceImage.split('/')[1] };\n }\n if (fileUpload) {\n const response = await this.blobServiceRequestUpload(service, fileUpload).toPromise();\n const request = new XMLHttpRequest();\n request.open('PUT', response.result.locationURI, true);\n request.setRequestHeader('Translate', 'f');\n request.send(file);\n return response.result;\n }\n }\n\n urltoFile(url, filename, mimeType = null): Observable<Blob> {\n mimeType = mimeType || (url.match(/^data:([^;]+);/) || '')[1];\n return this.http.request(\"GET\", url, { responseType: 'arraybuffer' })\n .pipe(map(blob => {\n const file = new Blob([blob], { type: mimeType });\n file[\"name\"] = filename;\n return file;\n }));\n }\n\n async getImage(data: any, service: string, thumbnail: boolean) {\n if (data && data.fileId) {\n const response = await this.blobServiceRequestAccess(service, data.fileId, thumbnail).toPromise();\n return response.result.locationURI;\n }\n }\n\n buildUrl(service: string, resource: string) {\n return `hcm/${service}/${resource}`;\n }\n\n query(service: string, path: string, body: object): Observable<any> {\n const endpoit = `queries/${path}`;\n return this.http.post(this.buildUrl(service, endpoit), body);\n }\n\n blobServiceRequestUpload(service, file): Observable<any> {\n const requestUpload = {\n fileName: file.fileName,\n thumbnail: true,\n };\n const endpoint = 'actions/blobServiceRequestUpload';\n return this.http.post(this.buildUrl(service, endpoint), requestUpload);\n }\n\n blobServiceRequestAccess(service, fileId, thumbnail): Observable<any> {\n const request = {\n fileId: fileId,\n tll: 2,\n thumbnail: thumbnail,\n };\n const endpoint = 'actions/blobServiceRequestAccess';\n return this.http.post(this.buildUrl(service, endpoint), request);\n }\n\n blobServiceFileDelete(service, fileId): Observable<any> {\n const request = {\n fileId: fileId,\n thumbnail: true,\n };\n const endpoint = 'actions/blobServiceDelete';\n return this.http.post(this.buildUrl(service, endpoint), request);\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { CropperSettings, ImageCropperComponent } from 'ng2-img-cropper';\n\nimport { ToastService } from '../toast/toast.service';\nimport { ImageCropService } from './image-crop.service';\n\n@Component({\n selector: 'image-crop',\n templateUrl: './image-crop.component.html',\n styleUrls: ['./image-crop.component.css'],\n})\nexport class ImageCropComponent implements OnInit {\n @Input()\n service = 'payroll';\n @Output()\n onClickSave: EventEmitter<any> = new EventEmitter();\n\n private file: Blob;\n @ViewChild('cropper', { static: false })\n private cropper: ImageCropperComponent;\n defaulPerson = 'assets/default-person.png';\n personPhotoLink: string;\n personFirstName: string;\n display = false;\n cropperSettings: CropperSettings;\n imageCrop = [];\n data: any = {};\n\n constructor(private imageCropService: ImageCropService, private toastService: ToastService) {\n this.cropperSettings = new CropperSettings();\n this.cropperSettings.width = 100;\n this.cropperSettings.height = 100;\n this.cropperSettings.keepAspect = false;\n this.cropperSettings.preserveSize = true;\n this.cropperSettings.canvasWidth = 600;\n this.cropperSettings.canvasHeight = 450;\n this.cropperSettings.rounded = true;\n this.cropperSettings.minWithRelativeToResolution = false;\n this.cropperSettings.noFileInput = true;\n this.cropperSettings.cropperDrawSettings.strokeColor = 'rgba(255,255,255,1)';\n this.cropperSettings.cropperDrawSettings.strokeWidth = 1;\n }\n\n @Input()\n set image(data) {\n if (data && data.fileId && !this.personPhotoLink) {\n this.imageCropService.blobServiceRequestAccess(this.service, data.fileId, true).subscribe(response => {\n this.personPhotoLink = response.result.locationURI;\n });\n }\n }\n\n onUploadHandler($event) {\n this.file = $event.files[0];\n\n if (this.file && this.file.size > 5000000) {\n this.file = null;\n this.imageCrop = [];\n this.toastService.showError('O tamanho máximo permitido para a imagem é de 5MB');\n return;\n }\n this.display = false;\n\n const image: any = new Image();\n const myReader: FileReader = new FileReader();\n myReader.onloadend = (loadEvent: any) => {\n image.src = loadEvent.target.result;\n this.cropper.setImage(image);\n };\n\n myReader.readAsDataURL(this.file);\n this.display = true;\n }\n\n ngOnInit(): void {\n this.data.image = null;\n this.personPhotoLink = null;\n this.personFirstName = '';\n this.display = false;\n }\n\n showDialog(): void {\n this.display = true;\n }\n\n onHide() {\n this.display = false;\n }\n\n reset() {\n this.file = null;\n this.data = {};\n this.imageCrop = [];\n this.cropper.reset();\n this.data.image = null;\n this.personPhotoLink = null;\n this.personFirstName = '';\n }\n\n async saveImage() {\n if (!this.file) {\n this.onClickSave.emit(null);\n this.onHide();\n return;\n }\n\n const fileName = this.file['name'];\n if (this.cropper && this.cropper.image) {\n const fileImage = await this.urltoFile(this.cropper.image.image, fileName);\n this.personPhotoLink = this.data.image;\n let fileUpload = null;\n if (this.file) {\n fileUpload = { fileName: this.file['name'] };\n } else if (this.data) {\n fileUpload = { fileName: this.data.fileId.split('/')[1] };\n }\n if (fileUpload) {\n const thisContext = this;\n this.imageCropService.blobServiceRequestUpload(this.service, fileUpload).subscribe(response => {\n const request = new XMLHttpRequest();\n request.open('PUT', response.result.locationURI, true);\n request.setRequestHeader('Translate', 'f');\n request.send(fileImage);\n this.onClickSave.emit(response.result);\n this.onHide();\n });\n }\n }\n }\n\n urltoFile(url, filename, mimeType = null) {\n mimeType = mimeType || (url.match(/^data:([^;]+);/) || '')[1];\n return fetch(url)\n .then(function(res) {\n return res.arrayBuffer();\n })\n .then(function(buf) {\n return new File([buf], filename, { type: mimeType });\n });\n }\n\n deleteImage() {\n this.imageCropService.blobServiceFileDelete(this.service, this.data && this.data.image && this.data.image.fileId);\n this.reset();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ImageCropperModule } from 'ng2-img-cropper';\nimport { ButtonModule } from 'primeng/button';\nimport { DialogModule } from 'primeng/dialog';\nimport { FileUploadModule } from 'primeng/fileupload';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { ImageCropComponent } from './image-crop.component';\nimport { ImageCropService } from './image-crop.service';\nimport { ThumbnailModule, ImageCropperService } from '@seniorsistemas/angular-components';\n\n@NgModule({\n imports: [\n CommonModule,\n SharedModule,\n DialogModule,\n ButtonModule,\n FileUploadModule,\n ImageCropperModule,\n ImageCropperModule,\n ThumbnailModule],\n declarations: [ImageCropComponent],\n providers: [ImageCropService, ImageCropperService],\n exports: [ImageCropComponent],\n})\n/**\n * @deprecated\n */\nexport class ImageCropModule {}\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\nimport * as _moment from \"moment\";\nimport { LocaleService } from \"@seniorsistemas/angular-components\";\n\nconst moment = _moment;\n\n@Component({\n selector: \"input-date-calendar-model\",\n templateUrl: \"./input-date-model.component.html\",\n})\nexport class InputDateModelComponent implements OnInit {\n @Input()\n name: string;\n @Input()\n disabled?: boolean;\n @Input()\n withoutDay: boolean;\n @Input()\n unmask: boolean;\n @Input()\n style: boolean;\n @Input()\n styleClass: string;\n\n @Output()\n onBlurGetMoment: EventEmitter<any> = new EventEmitter();\n @Output()\n modelChange: EventEmitter<any> = new EventEmitter();\n\n private _date: any;\n private locale: any;\n private format: any;\n private _model: any;\n mask = null;\n\n constructor(private localeService: LocaleService) {\n }\n\n ngOnInit() {\n this.localeService.get().subscribe(loc => {\n this.mask = this.formatMask(loc);\n this.format = this.getFormat();\n if (this.model) {\n const newDate = this.model;\n const momentDate = moment(newDate, this.format || \"YYYY-MM-DD\");\n if (momentDate.isValid()) {\n this.model = momentDate.format(this.format || \"L\");\n this._date = momentDate;\n } else {\n this._date = null;\n }\n }\n });\n }\n\n formatMask(loc) {\n this.locale = loc;\n let dateMask = this.locale.calendar.dateFormat.toString();\n\n if (this.withoutDay) {\n dateMask = dateMask.replace(\"dd/\", \"\").replace(\"-dd\", \"\");\n }\n\n dateMask = dateMask.replace(/[d]|[m]/g, \"9\");\n return dateMask.replace(/[y]/g, \"99\");\n }\n\n getFormat() {\n let dateFormat = this.locale.calendar.dateFormat.toString();\n dateFormat = dateFormat.replace(/[y]/g, \"YY\");\n\n if (this.withoutDay) {\n dateFormat = dateFormat.replace(\"dd/\", \"\").replace(\"-dd\", \"\");\n }\n\n return dateFormat.toUpperCase();\n }\n\n get placeholder() {\n return this.mask ? this.mask.toString().replace(/[9]/g, \"_\") : \"\";\n }\n\n onBlur() {\n const dateComponet = this.model;\n this._date = moment(dateComponet, this.format);\n this.onBlurGetMoment.emit(this._date);\n }\n\n set model(val) {\n this._model = val;\n this.modelChange.emit(this._model);\n }\n\n @Input()\n get model() {\n return this._model;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { InputMaskModule } from 'primeng/inputmask';\n\nimport { InputDateModelComponent } from './input-date-model.component';\n\n@NgModule({\n imports: [InputMaskModule, FormsModule, ReactiveFormsModule, CommonModule],\n declarations: [InputDateModelComponent],\n exports: [InputDateModelComponent],\n})\nexport class InputDateModelModule {}\n","import { FormArray, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { ValidatorFn } from '@angular/forms/';\nimport * as chance from 'chance';\nimport * as momentImported from 'moment';\nimport business from 'moment-business';\nimport { LocaleOptions } from '@seniorsistemas/angular-components';\nimport { FieldValidatorsObject } from '../../core/interfaces/field-validators-object';\n\nconst moment = momentImported;\n\nexport function isObject(item) {\n return item && typeof item === 'object' && !Array.isArray(item);\n}\n\nexport function isShallow(item) {\n return Array.isArray(item) && item.find(value => typeof value === 'object') ? false : true;\n}\n\nexport function convertBooleanString(value) {\n if (typeof value === 'boolean') {\n return value === true ? 'true' : 'false';\n }\n return value;\n}\n\nexport function convertStringToBoolean(value) {\n return value === true || value.toLowerCase() === 'true';\n}\n\nexport function assign(target, ...sources) {\n if (!sources.length) {\n return target;\n }\n\n const source = sources.shift();\n if (isObject(target) && isObject(source)) {\n for (const key in source) {\n if (isObject(source[key])) {\n if (!target[key]) {\n Object.assign(target, { [key]: {} });\n }\n assign(target[key], source[key]);\n } else {\n if (isShallow(source[key])) {\n Object.assign(target, { [key]: source[key] });\n } else {\n if (!target[key]) {\n Object.assign(target, { [key]: [] });\n }\n Object.assign(target, { [key]: source[key].map((item, index) => assign(target[key][index] || {}, item)) });\n }\n }\n }\n }\n return assign(target, ...sources);\n}\n\nexport function isValid(value) {\n return value === 0 || typeof value === 'boolean' ? true : value !== undefined && value !== null && value !== '';\n}\n\nexport function isValidDate(value, withDays = true) {\n if (value && isFullDate(value, withDays)) {\n if (withDays) {\n return moment(value.replace(/[^\\d]+/g, ''), 'DDMMYYYY').isValid();\n } else {\n return moment(value.replace(/[^\\d]+/g, ''), 'MMYYYY').isValid();\n }\n }\n return true;\n}\n\nexport function isFullDate(value, withDays = true) {\n if (value) {\n let totalLength;\n if (withDays) {\n totalLength = 8;\n } else {\n totalLength = 6;\n }\n return value.replace(/[^\\d]+/g, '').length === totalLength;\n }\n return true;\n}\n\nexport function autoCompleteObjectForIdObject(tableIdObject) {\n if (!isObject(tableIdObject)) {\n console.error('Paramentro não é um objeto');\n return false;\n }\n\n if (tableIdObject.hasOwnProperty('tableId')) {\n console.error('Paramentro não é um objeto Auto Complete válido, falta tableId');\n }\n\n if (!isValid(tableIdObject.tableId)) {\n console.error('tableId esta vazio');\n }\n\n return { id: tableIdObject.tableId };\n}\n\nexport function isDateField(name, value) {\n const testDate = name.search('Date');\n if (testDate !== -1) {\n return invertFieldDate(value);\n }\n return value;\n}\n\nexport function invertFieldDate(value, inFormat = 'DDMMYYYY', outFormat = 'YYYY-MM-DD') {\n if (!isValid(value)) {\n return;\n }\n const formatIn = getFormatDate(value, inFormat);\n return moment(value.replace(/[^\\d]+/g, ''), formatIn).format(outFormat);\n}\n\nexport function getAddWeekDaysBusiness(value, quantidade) {\n return business.addWeekDays(getMoment(value), quantidade).format('DD/MM/YYYY');\n}\n\nexport function getWeekDaysBusiness(startDate, endDate) {\n const endMoment = endDate ? getMoment(endDate) : getMoment(startDate).endOf('month');\n return business.weekDays(getMoment(startDate), endMoment);\n}\n\nexport function getFormatDate(value, inFormat) {\n if (value.search('/') !== -1) {\n return 'DDMMYYYY';\n } else if (value.search('-') !== -1) {\n return 'YYYYMMDD';\n }\n return inFormat;\n}\n\n/**\n * FIXME - Está fixo para uso do calendário portugues Brasil\n * @param value\n * @param outFormat\n * @returns\n */\nexport function ngCalendarFormat(value, outFormat = 'DD/MM/YYYY') {\n if (isValidDate(value)) {\n if (typeof value === 'string') {\n return value;\n } else {\n return _moment(value).format(outFormat);\n }\n }\n}\n\nexport function getNowDate(outFormat = 'YYYY-MM-DD') {\n return moment().format(outFormat);\n}\n\nexport function getMoment(value, inFormat = 'DDMMYYYY') {\n const formatIn = getFormatDate(value, inFormat);\n return moment(value.replace(/[^\\d]+/g, ''), formatIn);\n}\n\nexport function _moment(value, format?: string) {\n if (format) {\n return moment(value, format);\n }\n return moment(value);\n}\n\nexport function getObjValids(objs) {\n const json = Object.assign({}, objs);\n const jsonReturn = {};\n Object.keys(json).map(key => {\n if (isValid(json[key])) {\n jsonReturn[key] = isDateField(key, json[key]);\n }\n });\n return jsonReturn;\n}\n\nexport function removeEmpty(obj) {\n Object.keys(obj).forEach(\n k => (obj[k] && typeof obj[k] === 'object' && removeEmpty(obj[k])) || (!obj[k] && obj[k] !== undefined && delete obj[k])\n );\n return obj;\n}\n\nexport function formatMoney(value, i18n = 'EN') {\n switch (i18n) {\n case 'EN':\n return isValid(value)\n ? value\n .toString()\n .replace('.', '')\n .replace(',', '.')\n : '';\n case 'BR':\n return isValid(value)\n ? value\n .toString()\n .replace('.', ',')\n .replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1.')\n : '';\n default:\n return isValid(value)\n ? value\n .toString()\n .replace('.', '')\n .replace(',', '.')\n : '';\n }\n}\n\nexport function uiid() {\n return new chance()\n .guid()\n .replace(/[^a-zA-Z0-9.]/g, '')\n .toUpperCase();\n}\n\nexport function mountCustomForSave(custom, customEntity = null, locale = null) {\n const custonField = [];\n if (customEntity && custom.length) {\n customEntity.map((val, key) => {\n const field = Object.keys(custom[key]).toString();\n const valOrnull = isValid(custom[key][field]) ? custom[key][field] : null;\n const value =\n val.type === 'date' && locale && isValid(valOrnull) ? moment(valOrnull, getFormat(locale)).format('YYYY-MM-DD') : valOrnull;\n custonField.push({\n field: field,\n value: value,\n });\n });\n }\n return custonField.length ? custonField : null;\n}\n\n/**\n * Prepara o objeto de campos customizados para salvar as entidades que\n * são utilizadas a partir do CRUD customizado.\n * @param objectFields objeto com os campos customizados da entidade.\n */\nexport function mountCustomToSave(objectFields) {\n const customFields = [];\n Object.entries(objectFields).forEach(([field, value]) => {\n customFields.push({\n field: field,\n value: value,\n });\n });\n return customFields;\n}\n\n/**\n * Prepara o objeto de campos customizados para exibir as entidades que\n * são utilizadas a partir do CRUD customizado.\n * @param customFields objeto com os campos customizados da entidade.\n */\nexport function mountCustomToShow(customFields) {\n const customFieldsToShow = {};\n if (customFields && customFields.length) {\n customFields.forEach(item => {\n if (item.type === 'date' && item.value) {\n item.value = _moment(item.value).format('L');\n }\n customFieldsToShow[item.field] = item.value;\n });\n }\n return customFieldsToShow;\n}\n\n/**\n * Prepara o objeto de campos customizados para salvar as entidades que\n * são utilizadas a partir do CRUD gerado.\n * @param objectFields objeto com os campos customizados da entidade.\n */\nexport function mountGeneratedCustomToSave(objectFields) {\n Object.entries(objectFields).forEach(([key, value]) => {\n if (!value) {\n delete objectFields[key];\n }\n });\n return objectFields;\n}\n\nexport function mountCustomForShow(custom) {\n const customField = [];\n Object.keys(custom || {}).forEach(val => {\n if (custom[val].type === 'date' && custom[val].value) {\n custom[val].value = _moment(custom[val].value).format('L');\n }\n customField.push(custom[val]);\n });\n return customField;\n}\n\nexport function setValueCustom(custonFields, custom) {\n const isCustons = custom ? Object.keys(custom).length : 0;\n custonFields.map(val => {\n val.value = isCustons > 0 ? custom[val.field] : null;\n });\n return custonFields;\n}\n\n/**\n * Adiciona um erro no controle do formulário. Deve ser chamado com .call passando o contexto da class.\n * Ex.: setErrors.call(this.contractGroup, 'registerEmployeeNumber', 'exist', !payload)\n *\n * @param formControlName Nome do controle do formulário.\n * @param keyError Nome do error a ser exibido em tela.\n * @param isInvalid Se houver algum erro de validação no campo.\n */\nexport function setErrors(formControlName: string, keyError: string, isInvalid: boolean): void {\n setTimeout(() => {\n if (isInvalid) {\n const errors = Object.assign({}, this.get(formControlName).errors);\n errors[keyError] = isInvalid;\n this.get(formControlName).setErrors(errors);\n } else {\n const errors = this.get(formControlName).errors;\n\n if (errors && Object.keys(errors).length) {\n delete errors[keyError];\n\n if (!Object.keys(errors).length) {\n this.get(formControlName).setErrors(null);\n }\n }\n }\n }, 0);\n}\n\n/**\n * Faz loop do nos controls do formulário e subArray caso existir\n * setando os inválidos\n * Ex.: verifyValidationsForm.call(this.initialGroup);\n */\nexport function verifyValidationsForm() {\n Object.keys(this.controls).map(field => {\n const control = this.get(field);\n control.markAsDirty();\n if (control instanceof FormGroup || control instanceof FormArray) {\n verifyValidationsForm.call(control);\n }\n });\n}\n\n/**\n * Retorna a idade de acordo com a data de nascimento.\n *\n * @param birthdayDate Data de nascimento.\n */\nexport function getYears(birthday) {\n const currentDate = moment();\n const years = currentDate.diff(birthday, 'years', false);\n return years;\n}\n\nexport function setCustonFields(customFields) {\n customFields.map(val => {\n const addCuston = {};\n let value = val.value || null;\n if (typeof value === 'boolean') {\n value = value ? 'true' : 'false';\n }\n addCuston[val.field] = new FormControl(value);\n this.push(new FormGroup(addCuston));\n });\n return customFields;\n}\n\n export function setRequired(formGroup: FormGroup, name: string, required: boolean, validators?: ValidatorFn[]) {\n if (required) {\n formGroup.controls[name].setValidators(Validators.compose(validators && validators.length ? validators : [Validators.required]));\n formGroup.controls[name].updateValueAndValidity();\n } else {\n formGroup.controls[name].setValidators(null);\n formGroup.controls[name].updateValueAndValidity();\n }\n}\n\n/**\n * Esse método tem como função setar os campos enable ou disable.\n * @param formGroup FormGroup onde se encontra os campos a serem alterados.\n * @param condition Condição para validação. True = enabled, False = disabled.\n * @param fields Campos a serem manipulados.\n * @param fieldsToClear Campos a serem limpos. É opicional e se não foi passado o método limpará os mesmos campos dos fields.\n */\nexport function configEnabledFields(formGroup: FormGroup, condition: boolean, fields: Array<string>, fieldsToClear?: Array<string>) {\n if (condition) {\n fields.forEach(field => formGroup.get(field).enable());\n } else {\n fields.forEach(field => formGroup.get(field).disable());\n clearValues(formGroup, fieldsToClear ? fieldsToClear : fields);\n }\n}\n\n/**\n * Esse método tem como função setar os campos como requeridos ou não.\n *\n * @param formGroup FormGroup onde se encontra os campos a serem alterados.\n * @param condition Se será ou não requeridos.\n * @param fields Lista de campos.\n */\nexport function setRequiredFields(formGroup: FormGroup, condition: boolean, fields: Array<string>) {\n if (condition) {\n fields.forEach(field => setRequired(formGroup, field, true, [Validators.required]));\n } else {\n fields.forEach(field => setRequired(formGroup, field, false));\n }\n}\n\n\n/**\n * Esse método tem como função setar validações dinâmicas nos campos.\n *\n * @param formGroup FormGroup onde se encontra os campos a serem alterados.\n * @param fields Lista de objetos [{field: campo, validators: validações, disable: boolean}].\n */\nexport function setValidatorsAndDisableFields(formGroup: FormGroup, fields: Array<FieldValidatorsObject>) {\n fields.forEach((currentField: FieldValidatorsObject) => {\n setValidator(formGroup, currentField.field, currentField.validators);\n setDisableField(formGroup, currentField.disabled, currentField.field, currentField.clearValue);\n });\n}\n\n\nexport function setValidator(formGroup: FormGroup, name: string, validators?: ValidatorFn[]) {\n if (validators && validators.length) {\n formGroup.controls[name].setValidators(Validators.compose(validators));\n formGroup.controls[name].updateValueAndValidity();\n } else {\n formGroup.controls[name].setValidators(null);\n formGroup.controls[name].updateValueAndValidity();\n }\n}\n\n\n/**\n * Esse método tem como função setar os campos enable ou disable.\n * @param formGroup FormGroup onde se encontra os campos a serem alterados.\n * @param condition Condição para validação. True = disabled, False = enabled.\n * @param field Campo a ser manipulados.\n * @param clearValue Campos a ser limpos. É opicional e se não foi passado o método limpará o campo do field.\n */\nexport function setDisableField(formGroup: FormGroup, condition: boolean, field: string, clearValue: boolean = true) {\n if (condition) {\n formGroup.get(field).disable();\n if (clearValue) formGroup.get(field).reset();\n } else {\n formGroup.get(field).enable();\n }\n}\n\n/**\n * Ordena array de objetos\n * @param key o campo que deseja ordenar\n * @param order a ordem que deseja ordenar o campo\n */\nexport function compareValues(key: string, order: string = \"ASC\") {\n return function innerSort(a: any, b: any) {\n if (!a.hasOwnProperty(key) || !b.hasOwnProperty(key)) {\n return 0;\n }\n\n const varA = (typeof a[key] === \"string\")\n ? a[key].toUpperCase() : a[key];\n const varB = (typeof b[key] === \"string\")\n ? b[key].toUpperCase() : b[key];\n\n let comparison = 0;\n if (varA > varB) {\n comparison = 1;\n } else if (varA < varB) {\n comparison = -1;\n }\n return (\n (order === \"DESC\") ? (comparison * -1) : comparison\n );\n };\n}\n\n/**\n * Esse método tem como função limpar o valor dos campos.\n *\n * @param formGroup FormGroup onde se encontra os campos a serem limpos.\n * @param fields Campos a serem limpos.\n */\nexport function clearValues(formGroup: FormGroup, fields: Array<string>) {\n fields.forEach(field => formGroup.get(field).reset());\n}\n\n/**\n *\n * @param qs = window.location.search\n * @returns Object com parametros query string\n */\nexport function getQueryParams(qs) {\n qs = qs.split('+').join(' ');\n\n const params = {};\n let tokens;\n const re = /[?&]?([^=]+)=([^&]*)/g;\n\n while ((tokens = re.exec(qs))) {\n params[decodeURIComponent(tokens[1])] = decodeURIComponent(tokens[2]);\n }\n\n return params;\n}\n\nexport function getFormat(locale) {\n if (locale) {\n let dateFormat = locale.calendar.dateFormat.toString();\n dateFormat = dateFormat.replace(/[y]/g, 'YY');\n dateFormat = dateFormat.replace(/[/]/g, '');\n return dateFormat.toUpperCase();\n }\n}\n\n/**\n * Remove os caracteres que não sejam números do valor\n * @param value valor a ser tratado\n * @returns string O valor sem caracteres especiais\n */\nexport function removeCharacteresSpecials(value: any): string {\n return value ? value.toString().replace(/[&\\/\\\\#,+()$~%.'\":*?<>{}-]/g, \"\") : null;\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { HttpClientService } from '../shared/http-client.service';\nimport { ServiceType } from '../../core/enums/serviceType';\n\n@Injectable()\nexport class InputRestAutoCompleteService {\n constructor(private http: HttpClientService) {}\n\n query(path: string, body: object, service: ServiceType = ServiceType.PAYROLL): Observable<any> {\n return this.http.query(path, body, service);\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\nimport { _moment, isValid } from '../utils/helpers';\nimport { InputRestAutoCompleteService } from './input-rest-auto-complete.service';\nimport { ServiceType } from '../../core/enums/serviceType';\n\nexport interface IConditions {\n fields: Array<string[]>;\n fieldType: string;\n expression: string;\n value: string;\n}\n\n@Component({\n selector: 'input-rest-auto-complete',\n templateUrl: './input-rest-auto-complete.component.html',\n styleUrls: ['./input-rest-auto-complete.component.css'],\n})\nexport class InputRestAutoCompleteComponent implements OnInit {\n @ViewChild('autoCompleteObject', { static: true })\n _autoCompleteObject: ElementRef;\n @Input()\n name: string;\n @Input()\n table: string;\n @Input()\n order: Array<any[]>;\n @Input()\n enableEntityFilters: boolean;\n @Input()\n fields: Array<any[]>;\n @Input()\n conditionsFields?: Array<any[]>;\n @Input()\n conditions: Array<IConditions>;\n @Input()\n placeholder: string;\n @Input()\n readonly: boolean;\n @Input()\n required: boolean;\n @Input()\n disabled: boolean;\n @Input()\n dropdown: boolean;\n @Input()\n forceSelection = true;\n @Input()\n error: object;\n @Input()\n emptyMessage: string;\n @Input()\n keyCode?: string;\n @Input()\n keyName = 'name';\n @Input()\n concatFieldsForName?: any[];\n @Input()\n itemSelect: any;\n @Input()\n form: FormGroup;\n @Input()\n inputId: string;\n @Input()\n isTimetrackingSituation: boolean;\n @Input()\n isDepartmentFromCompany: boolean;\n @Input()\n companyId: string;\n @Input()\n referenceDate: string;\n @Input()\n isDismissalReason: boolean;\n @Input()\n keyToExclude: any = [];\n @Input()\n usingType: any = [];\n @Input()\n minCharactersToSearch = 3;\n @Input()\n isWagetype: boolean;\n private isDropdown: boolean;\n @Input()\n multiple = false;\n @Input()\n serviceType: ServiceType = ServiceType.PAYROLL;\n @Output()\n onBlur: EventEmitter<any> = new EventEmitter();\n @Output()\n onSelect: EventEmitter<any> = new EventEmitter();\n @Output()\n onClear: EventEmitter<any> = new EventEmitter();\n\n suggestions: any[] = [];\n\n constructor(private service: InputRestAutoCompleteService) {}\n\n ngOnInit() {}\n\n filterQuery(event: any): any {\n const query = event.query;\n if (!(isNaN(query) && query.toString().length < this.minCharactersToSearch)) {\n try {\n if (this.isTimetrackingSituation) {\n return this.service\n .query('autocompleteTimetrackingSituation', {\n valueSearch: query,\n referenceDate: this.referenceDate,\n })\n .subscribe(payload => this.formaterResponce(payload.result));\n } else if (this.isDismissalReason) {\n const params = { valueSearch: query };\n if (this.referenceDate) {\n params['referenceDate'] = this.referenceDate;\n }\n return this.service\n .query('autocompleteDismissalReason', params, ServiceType.GENERAL_REGISTER)\n .subscribe(payload => this.formaterResponce(payload.result));\n } else if (this.usingType && this.usingType.length) {\n return this.service\n .query('autocompleteOtherCompanyFilterUsingType', {\n searchText: query,\n usingType: this.usingType,\n })\n .subscribe(payload => this.formaterResponce(payload.result));\n } else if (this.isDepartmentFromCompany) {\n return this.service\n .query('autocompleteDepartmentQuery', {\n searchText: query,\n companyId: this.companyId,\n referenceDate: this.referenceDate,\n })\n .subscribe(payload => this.formaterResponce(payload.result));\n } else if (this.isWagetype) {\n const params = { searchText: query, companyId: this.companyId };\n return this.service\n .query('autocompleteWagetypeQuery', params, ServiceType.ENTRY)\n .subscribe(payload => this.formaterResponce(payload.result));\n }\n this.service\n .query('autocomplete', this.getParamsRest(query), this.serviceType).subscribe(payload => this.formaterResponce(payload.result));\n } catch (e) {\n console.log(e);\n }\n }\n }\n\n formaterResponce(result) {\n this.suggestions = [];\n const valsResult = [];\n result.map(value => {\n const valueConcat = {\n tableId: value.tableId,\n name: '',\n };\n if (this.isTimetrackingSituation || this.isDismissalReason || (this.usingType && this.usingType.length)) {\n if (this.keyToExclude.includes(value.fields && value.fields[2] && value.fields[2].value)) {\n return;\n }\n\n let fieldName = '';\n\n value.fields.map(val => {\n valueConcat[val.name] = val.value;\n });\n\n fieldName += value.fields.filter(val => val.name.toLowerCase() === 'code').map(code => (code ? (code.value += ' - ') : ''))[0];\n if (this.usingType && this.usingType.length && (!fieldName || fieldName === 'undefined')) {\n fieldName = '';\n }\n fieldName += value.fields.filter(val => val.name.toLowerCase() === 'name').map(name => (name ? name.value : ''))[0];\n\n valueConcat.name = fieldName;\n valsResult.push(valueConcat);\n } else {\n value.fields.map(val => {\n valueConcat[val.name] = val.value;\n });\n let fieldName = '';\n if (this.concatFieldsForName) {\n this.concatFieldsForName.map(val => {\n // se o campo for data, formata pro locale do usuário\n if (val.includes('date') || val.includes('Birthday')) {\n valueConcat[val] = _moment(valueConcat[val]).format('DD/MM/YYYY');\n }\n fieldName += valueConcat[val] + ' - ';\n });\n fieldName = fieldName.slice(0, -3);\n } else {\n if (this.keyCode) {\n fieldName += valueConcat[this.keyCode] + ' - ';\n }\n if (this.keyName) {\n fieldName += valueConcat[this.keyName];\n }\n }\n valueConcat.name = fieldName;\n valsResult.push(valueConcat);\n }\n });\n this.suggestions = [...valsResult];\n return valsResult;\n }\n\n getParamsRest(search: string): object {\n return {\n table: this.table,\n fields: this.fields,\n order: this.order,\n conditions: this.getConditionsRest(search),\n enableEntityFilters: this.enableEntityFilters,\n };\n }\n\n getConditionsRest(search: string) {\n const conditiosReturn = [\n {\n fields: this.conditionsFields || this.fields,\n expression: 'LIKE',\n value: `${search}`,\n },\n ];\n\n if (this.conditions) {\n this.conditions.map(val => {\n if (['IS_NULL', 'IS_NOT_NULL', 'IS_TRUE'].includes(val.expression) || isValid(val.value)) {\n conditiosReturn.push(val);\n }\n });\n }\n\n return conditiosReturn;\n }\n\n /**\n * Externiza a função de select das opções\n * <input-rest-auto-complete (onSelect)=\"onSelectHandle($event)\" ></input-rest-auto-complete>\n * @param option\n */\n selectOption(option: object) {\n this.onSelect.emit(option);\n }\n\n async onClearItem(option: object) {\n await this.onClear.emit(option);\n this.form.get(this.name).reset();\n }\n\n onBlurItem(option: object) {\n if (!this.isDropdown) {\n this.form.controls[this.name].markAsDirty();\n this.onBlur.emit(option);\n } else {\n this.isDropdown = false;\n }\n }\n\n onDropdownClick() {\n this.isDropdown = true;\n }\n\n get autoCompleteObject() {\n return this._autoCompleteObject;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { AutoCompleteModule } from 'primeng/autocomplete';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { InputRestAutoCompleteComponent } from './input-rest-auto-complete.component';\nimport { InputRestAutoCompleteService } from './input-rest-auto-complete.service';\n\n@NgModule({\n imports: [CommonModule, FormsModule, HttpClientModule, AutoCompleteModule, SharedModule, ReactiveFormsModule],\n declarations: [InputRestAutoCompleteComponent],\n providers: [InputRestAutoCompleteService],\n exports: [InputRestAutoCompleteComponent],\n})\nexport class InputRestAutoCompleteModule {}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { HttpClientService } from '../shared/http-client.service';\n\n@Injectable()\nexport class InputRestAutoCompleteEmployeeService {\n constructor(private http: HttpClientService) {}\n\n query(path: string, body: object): Observable<any> {\n const endpoit = `queries/${path}`;\n return this.http.post(endpoit, body);\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\nimport { getMoment } from '../utils/helpers';\nimport { InputRestAutoCompleteEmployeeService } from './input-rest-auto-complete-employee.service';\n\nexport interface IConditions {\n fields: Array<string[]>;\n value: string;\n}\n\n@Component({\n selector: 'input-rest-auto-complete-employee',\n templateUrl: './input-rest-auto-complete-employee.component.html',\n styleUrls: ['./input-rest-auto-complete-employee.component.css'],\n})\nexport class InputRestAutoCompleteEmployeeComponent implements OnInit {\n @Input()\n name: string;\n @Input()\n value: string;\n @Input()\n company: any;\n @Input()\n branch: any;\n @Input()\n employeeType: any;\n @Input()\n otherContractType: any;\n @Input()\n filterEmployeeType: boolean;\n @Input()\n enableEntityFilters: boolean;\n @Input()\n placeholder: string;\n @Input()\n readonly: boolean;\n @Input()\n required: boolean;\n @Input()\n disabled: boolean;\n @Input()\n dropdown: boolean;\n @Input()\n forceSelection = true;\n @Input()\n error: object;\n @Input()\n emptyMessage: string;\n @Input()\n keyCode: string;\n @Input()\n keyName = 'name';\n @Input()\n itemSelect: any;\n @Input()\n form: FormGroup;\n @Input()\n inputId: string;\n private isDropdown: boolean;\n\n @Output()\n onBlur: EventEmitter<any> = new EventEmitter();\n @Output()\n onSelect: EventEmitter<any> = new EventEmitter();\n @Output()\n onClear: EventEmitter<any> = new EventEmitter();\n\n suggestions: any[] = [];\n\n constructor(private service: InputRestAutoCompleteEmployeeService) {}\n\n ngOnInit() {}\n\n filterQuery(event: any) {\n const query = event.query;\n if (!(isNaN(query) && query.toString().length < 3)) {\n try {\n this.service.query('autocompleteEmployee', this.getParamsRest(query)).subscribe(payload => this.formaterResponce(payload.result));\n } catch (e) {\n console.log('Erro ao buscar no back');\n }\n }\n }\n\n formaterResponce(result) {\n this.suggestions = [];\n const valsResult = [];\n result.map(value => {\n const valueConcat = {\n tableId: value.tableId,\n code: '',\n name: '',\n fullname: '',\n admission: '',\n document: '',\n };\n\n if (value.fields && value.fields.length) {\n valueConcat.fullname = value.fields[0].value;\n valueConcat.admission = value.fields[1].value;\n valueConcat.document = value.fields[2].value;\n valueConcat.code = value.fields.length === 4 && value.fields[3].value;\n\n // Pode acontecer de não vim o código.\n if (valueConcat.code) {\n valueConcat.name = valueConcat.code\n .concat(' - ')\n .concat(valueConcat.fullname)\n .concat(' - ')\n .concat(getMoment(valueConcat.admission).format('DD/MM/YYYY'));\n } else {\n valueConcat.name = valueConcat.fullname.concat(' - ').concat(getMoment(valueConcat.admission).format('DD/MM/YYYY'));\n }\n\n valsResult.push(valueConcat);\n }\n });\n this.suggestions = valsResult;\n return valsResult;\n }\n\n getParamsRest(search: string): object {\n const returnFilter = {\n valueSearch: search,\n enableEntityFilters: this.enableEntityFilters,\n };\n if (this.company) {\n returnFilter['company'] = this.company;\n }\n if (this.branch) {\n returnFilter['companyBranch'] = this.branch;\n }\n if (this.employeeType) {\n returnFilter['employeeType'] = this.employeeType;\n }\n if (this.otherContractType) {\n returnFilter['otherContractType'] = this.otherContractType;\n }\n if (this.filterEmployeeType === false) {\n returnFilter['filterEmployeeType'] = this.filterEmployeeType;\n }\n return returnFilter;\n }\n\n /**\n * Externiza a função de select das opções\n * <input-rest-auto-complete-employee (onSelect)=\"onSelectHandle($event)\" ></input-rest-auto-complete-employee>\n * @param option\n */\n selectOption(option: object) {\n this.onSelect.emit(option);\n }\n\n onClearItem(option: object) {\n this.onClear.emit(option);\n }\n\n onBlurItem(option: object) {\n if (!this.isDropdown) {\n this.form.controls[this.name].markAsDirty();\n this.onBlur.emit(option);\n } else {\n this.isDropdown = false;\n }\n }\n\n onDropdownClick() {\n this.isDropdown = true;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { AutoCompleteModule } from 'primeng/autocomplete';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { InputRestAutoCompleteEmployeeComponent } from './input-rest-auto-complete-employee.component';\nimport { InputRestAutoCompleteEmployeeService } from './input-rest-auto-complete-employee.service';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n HttpClientModule,\n AutoCompleteModule,\n SharedModule,\n ReactiveFormsModule\n ],\n declarations: [ InputRestAutoCompleteEmployeeComponent ],\n providers: [ InputRestAutoCompleteEmployeeService ],\n exports: [ InputRestAutoCompleteEmployeeComponent ]\n})\nexport class InputRestAutoCompleteEmployeeModule {\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { HttpClientService } from '../shared/http-client.service';\n\n@Injectable()\nexport class InputRestAutoCompleteEmployeeModelService {\n constructor(private http: HttpClientService) {}\n\n query(path: string, body: object): Observable<any> {\n const endpoit = `queries/${path}`;\n return this.http.post(endpoit, body);\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\nimport { getMoment } from '../utils/helpers';\nimport { InputRestAutoCompleteEmployeeModelService } from './input-rest-auto-complete-employee-model.service';\nimport { ActivatedRoute } from '@angular/router';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nexport interface IConditions {\n fields: Array<string[]>;\n value: string;\n}\n\n@Component({\n selector: 'input-rest-auto-complete-employee-model',\n templateUrl: './input-rest-auto-complete-employee-model.component.html',\n styleUrls: ['./input-rest-auto-complete-employee-model.component.css'],\n})\nexport class InputRestAutoCompleteEmployeeModelComponent implements OnInit {\n private _model: any;\n @Input()\n name: string;\n @Input()\n value: string;\n @Input()\n company: any;\n @Input()\n branch: any;\n @Input()\n employeeType: any;\n @Input()\n placeholder: string;\n @Input()\n readonly: boolean;\n @Input()\n required: boolean;\n @Input()\n disabled: boolean;\n @Input()\n dropdown: boolean;\n @Input()\n forceSelection = true;\n @Input()\n error: object;\n @Input()\n emptyMessage: string;\n @Input()\n keyCode: string;\n @Input()\n keyName = 'name';\n @Input()\n itemSelect: any;\n @Input()\n style: any;\n @Input()\n inputStyle: any;\n\n @Output()\n onBlur: EventEmitter<any> = new EventEmitter();\n @Output()\n onSelect: EventEmitter<any> = new EventEmitter();\n @Output()\n onClear: EventEmitter<any> = new EventEmitter();\n @Output()\n modelChange: EventEmitter<any> = new EventEmitter();\n\n suggestions: any[] = [];\n private useWorkflow: boolean;\n private ngUnsubscribe = new Subject();\n\n constructor(private service: InputRestAutoCompleteEmployeeModelService,\n private activatedRoute: ActivatedRoute,\n ) {}\n\n ngOnInit() {\n this.activatedRoute.data.pipe(takeUntil(this.ngUnsubscribe)).subscribe((data) => {\n this.useWorkflow = !!(data && data.useWorkflow);\n });\n }\n\n filterQuery(event: any) {\n const query = event.query;\n if (!(isNaN(query) && query.toString().length < 3)) {\n try {\n this.service.query('autocompleteEmployee', this.getParamsRest(query)).subscribe(payload => this.formaterResponce(payload.result));\n } catch (e) {\n console.log('Erro ao buscar no back');\n }\n }\n }\n\n formaterResponce(result) {\n this.suggestions = [];\n const valsResult = [];\n result.map(value => {\n const valueConcat = {\n tableId: value.tableId,\n code: '',\n name: '',\n fullname: '',\n admission: '',\n document: '',\n };\n\n if (value.fields && value.fields.length) {\n valueConcat.fullname = value.fields[0].value;\n valueConcat.admission = value.fields[1].value;\n valueConcat.document = value.fields[2].value;\n valueConcat.code = value.fields.length === 4 && value.fields[3].value;\n\n // Pode acontecer de não vim o código.\n if (valueConcat.code) {\n valueConcat.name = valueConcat.code\n .concat(' - ')\n .concat(valueConcat.fullname)\n .concat(' - ')\n .concat(getMoment(valueConcat.admission).format('DD/MM/YYYY'));\n } else {\n valueConcat.name = valueConcat.fullname.concat(' - ').concat(getMoment(valueConcat.admission).format('DD/MM/YYYY'));\n }\n\n valsResult.push(valueConcat);\n }\n });\n this.suggestions = valsResult;\n return valsResult;\n }\n\n getParamsRest(search: string): object {\n const returnFilter = {\n valueSearch: search,\n };\n if (this.company) {\n returnFilter['company'] = this.company;\n }\n if (this.branch) {\n returnFilter['companyBranch'] = this.branch;\n }\n if (this.employeeType) {\n returnFilter['employeeType'] = this.employeeType;\n }\n /**\n * If para uso do BPO\n * Serve para tirar os colaboradores demitidos do dropbox do autocomplete\n */\n if (this.useWorkflow) {\n returnFilter['timeTrackingResumeType'] = {key: \"FIRED\"};\n }\n\n return returnFilter;\n }\n\n /**\n * Externiza a função de select das opções\n * <input-rest-auto-complete-employee (onSelect)=\"onSelectHandle($event)\" ></input-rest-auto-complete-employee>\n * @param option\n */\n selectOption(option: object) {\n this.onSelect.emit(option);\n }\n\n onClearItem(option: object) {\n this.onClear.emit(option);\n }\n\n onBlurItem(option: object) {\n this.onBlur.emit(option);\n }\n\n set model(val) {\n this._model = val;\n this.modelChange.emit(this._model);\n }\n\n @Input()\n get model() {\n return this._model;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {HttpClientModule} from '@angular/common/http';\nimport {AutoCompleteModule} from 'primeng/autocomplete';\n\nimport {InputRestAutoCompleteEmployeeModelComponent} from './input-rest-auto-complete-employee-model.component';\nimport {InputRestAutoCompleteEmployeeModelService} from './input-rest-auto-complete-employee-model.service';\nimport {SharedModule} from '../shared/shared.module';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n SharedModule,\n HttpClientModule,\n AutoCompleteModule,\n ReactiveFormsModule\n ],\n declarations: [InputRestAutoCompleteEmployeeModelComponent],\n providers: [InputRestAutoCompleteEmployeeModelService],\n exports: [InputRestAutoCompleteEmployeeModelComponent]\n})\nexport class InputRestAutoCompleteEmployeeModelModule {\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { HttpClientService } from '../shared/http-client.service';\n\n@Injectable()\nexport class InputRestAutoCompleteEnumService {\n constructor(private http: HttpClientService) {}\n\n query(server: string, enumeration: string): Observable<any> {\n const endpoint = 'enumQuery';\n const request = {\n names: [enumeration],\n };\n return this.http.enumQuery(endpoint, request, server);\n }\n}\n","import { Component, OnInit, EventEmitter, Input, Output, ElementRef, ViewChild } from '@angular/core';\nimport { InputRestAutoCompleteEnumService } from './input-rest-auto-complete-enum.service';\nimport { FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'input-rest-auto-complete-enum',\n templateUrl: './input-rest-auto-complete-enum.component.html',\n styleUrls: ['./input-rest-auto-complete-enum.component.css']\n})\nexport class InputRestAutoCompleteEnumComponent implements OnInit {\n\n @ViewChild('autoCompleteObject', { static: true }) _autoCompleteObjectEl: ElementRef;\n @Input() name: string;\n @Input() placeholder: string;\n @Input() readonly: boolean;\n @Input() required: boolean;\n @Input() disabled: boolean;\n @Input() dropdown: boolean;\n @Input() forceSelection = true;\n @Input() error: object;\n @Input() emptyMessage: string;\n @Input() itemSelect: any;\n @Input() inputId: string;\n private isDropdown: boolean;\n @Input() keyToExclude: any = [];\n @Input() keyToKeep: any = [];\n\n @Input() server: string;\n @Input() enumeration: string;\n @Input() form: FormGroup;\n @Input() multiple = false;\n\n @Output() onSelect: EventEmitter<any> = new EventEmitter();\n @Output() onBlur: EventEmitter<any> = new EventEmitter();\n @Output() onClear: EventEmitter<any> = new EventEmitter();\n\n suggestions: any[] = [];\n payload: any[];\n\n constructor(private service: InputRestAutoCompleteEnumService) {\n }\n\n ngOnInit() {\n try {\n this.service.query(this.server, this.enumeration).subscribe(\n payload =>\n this.payload = payload.results[0].items);\n } catch (e) {\n console.log('Erro ao buscar no back');\n }\n }\n\n filterQuery(event: any) {\n const query = event.query;\n this.suggestions = [];\n if (!(isNaN(query) && (query.toString().length < 3))) {\n if (this.keyToExclude && this.keyToExclude.length) {\n this.payload = this.payload && this.payload.filter(record => !this.keyToExclude.includes(record.key));\n } else if (this.keyToKeep && this.keyToKeep.length) {\n this.payload = this.payload && this.payload.filter(record => this.keyToKeep.includes(record.key));\n }\n for (let i = 0; i < this.payload.length; i++) {\n const item = this.payload[i];\n if (item.value.toLowerCase().indexOf(query.toLowerCase()) !== -1) {\n this.suggestions.push(item);\n }\n }\n }\n }\n\n\n /**\n * Externiza a função de select das opções\n * <input-rest-auto-complete-enum (onSelect)=\"onSelectHandle($event)\" ></input-rest-auto-complete-enum>\n * @param option\n */\n selectOption(option: object) {\n this.onSelect.emit(option);\n }\n\n onBlurItem(option: object) {\n if (!this.isDropdown) {\n this.form.controls[this.name].markAsDirty();\n this.onBlur.emit(option);\n } else {\n this.isDropdown = false;\n }\n }\n\n onDropdownClick() {\n this.isDropdown = true;\n }\n\n async onClearItem(option: object) {\n await this.onClear.emit(option);\n this.form.get(this.name).reset();\n }\n\n get autoCompleteObject() {\n return this._autoCompleteObjectEl;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {HttpClientModule} from '@angular/common/http';\nimport {AutoCompleteModule} from 'primeng/autocomplete';\n\nimport {InputRestAutoCompleteEnumComponent} from './input-rest-auto-complete-enum.component';\nimport {InputRestAutoCompleteEnumService} from './input-rest-auto-complete-enum.service';\nimport {SharedModule} from '../shared/shared.module';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n HttpClientModule,\n AutoCompleteModule,\n SharedModule,\n ReactiveFormsModule\n ],\n declarations: [InputRestAutoCompleteEnumComponent],\n providers: [InputRestAutoCompleteEnumService],\n exports: [InputRestAutoCompleteEnumComponent]\n})\nexport class InputRestAutoCompleteEnumModule {\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ServiceType } from '../../core/enums';\n\nimport { HttpClientService } from '../shared/http-client.service';\n\n@Injectable()\nexport class InputRestAutoCompleteModelService {\n constructor(private http: HttpClientService) {}\n\n query(path: string, body: object, service: ServiceType = ServiceType.PAYROLL): Observable<any> {\n return this.http.query(path, body, service);\n }\n}\n","import { Component, OnInit, EventEmitter, Input, Output } from '@angular/core';\nimport { ServiceType } from '../../core/enums/serviceType';\nimport { InputRestAutoCompleteModelService } from './input-rest-auto-complete-model.service';\nimport { isValid, _moment } from '../utils/helpers';\n\nexport interface IConditions {\n fields: Array<string[]>;\n fieldType: string;\n expression: string;\n value: string;\n}\n\n@Component({\n selector: 'input-rest-auto-complete-model',\n templateUrl: './input-rest-auto-complete-model.component.html',\n styleUrls: ['./input-rest-auto-complete-model.component.css'],\n})\n\nexport class InputRestAutoCompleteModelComponent implements OnInit {\n\n private _model: any;\n @Input() name: string;\n @Input() table: string;\n @Input() order: Array<any[]>;\n @Input() fields: Array<any[]>;\n @Input() conditionsFields?: Array<any[]>;\n @Input() conditions: Array<IConditions>;\n @Input() placeholder: string;\n @Input() readonly: boolean;\n @Input() required: boolean;\n @Input() disabled: boolean;\n @Input() dropdown: boolean;\n @Input() forceSelection = true;\n @Input() error: object;\n @Input() emptyMessage: string;\n @Input() keyCode: string;\n @Input() keyName = 'name';\n @Input() concatFieldsForName?: any[];\n @Input() itemSelect: any;\n @Input() style: any;\n @Input() inputStyle: any;\n @Input() keysToExclude: any = [];\n @Input() isWagetype: boolean;\n @Input() companyId: string;\n @Input() wagetypeReferenceDates?: { entryReferenceStartDate: string, entryReferenceEndDate: string };\n @Output() onBlur: EventEmitter<any> = new EventEmitter();\n @Output() onSelect: EventEmitter<any> = new EventEmitter();\n @Output() onClear: EventEmitter<any> = new EventEmitter();\n @Output() onFocus: EventEmitter<any> = new EventEmitter();\n @Output() modelChange: EventEmitter<any> = new EventEmitter();\n\n suggestions: any[] = [];\n\n constructor(private service: InputRestAutoCompleteModelService) {\n }\n\n ngOnInit() {\n\n }\n\n filterQuery(event: any) {\n const query = event.query;\n if (!(isNaN(query) && (query.toString().length < 3))) {\n try {\n if (this.isWagetype) {\n const params = { searchText: query, companyId: this.companyId, ...this.wagetypeReferenceDates };\n return this.service\n .query('autocompleteWagetypeQuery', params, ServiceType.ENTRY)\n .subscribe(payload => this.formaterResponce(payload.result));\n }\n this.service.query('autocomplete', this.getParamsRest(query)).subscribe(payload => this.formaterResponce(payload.result));\n } catch (e) {\n console.log('Erro ao buscar no back');\n }\n }\n }\n\n formaterResponce(result) {\n this.suggestions = [];\n const valsResult = [];\n result.map((value) => {\n const valueConcat = {\n tableId: value.tableId,\n name: '',\n };\n value.fields.map((val) => {\n valueConcat[val.name] = val.value;\n });\n\n if (this.keysToExclude.includes(value && value.tableId)) {\n return;\n }\n\n let fieldName = '';\n if (this.concatFieldsForName) {\n this.concatFieldsForName.map(val => {\n // se o campo for data, formata pro locale do usuário\n if (val.includes('date')) {\n valueConcat[val] = _moment(valueConcat[val]).format('L');\n }\n fieldName += valueConcat[val] + ' - ';\n });\n fieldName = fieldName.slice(0, -3);\n } else {\n if (this.keyCode) {\n fieldName += valueConcat[this.keyCode] + ' - ';\n }\n if (this.keyName) {\n fieldName += valueConcat[this.keyName];\n }\n }\n valueConcat.name = fieldName;\n valsResult.push(valueConcat);\n });\n this.suggestions = valsResult;\n return valsResult;\n }\n\n getParamsRest(search: string): object {\n return {\n 'table': this.table,\n 'fields': this.fields,\n 'order': this.order,\n 'conditions': this.getConditionsRest(search),\n };\n }\n\n getConditionsRest(search: string) {\n const conditiosReturn = [{\n 'fields': this.conditionsFields || this.fields,\n 'expression': 'LIKE',\n 'value': `${ search }`,\n }];\n\n if (this.conditions) {\n this.conditions.map(val => {\n if (!['IS_NULL', 'IS_NOT_NULL', 'IS_TRUE'].includes(val.expression)\n && isValid(val.value)) {\n conditiosReturn.push(val);\n }\n });\n }\n\n return conditiosReturn;\n }\n\n /**\n * Externiza a função de select das opções\n * <input-rest-auto-complete (onSelect)=\"onSelectHandle($event)\" ></input-rest-auto-complete>\n * @param option\n */\n selectOption(option: object) {\n this.onSelect.emit(option);\n }\n\n onClearItem(option: object) {\n this.onClear.emit(option);\n }\n\n onBlurItem(option: object) {\n this.onBlur.emit(option);\n }\n\n onFocusItem(option: object) {\n this.onFocus.emit(option);\n }\n\n set model(val) {\n this._model = val;\n this.modelChange.emit(this._model);\n }\n\n @Input()\n get model() {\n return this._model;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {AutoCompleteModule} from 'primeng/autocomplete';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {HttpClientModule} from '@angular/common/http';\n\nimport {InputRestAutoCompleteModelComponent} from './input-rest-auto-complete-model.component';\nimport {InputRestAutoCompleteModelService} from './input-rest-auto-complete-model.service';\nimport {SharedModule} from '../shared/shared.module';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n HttpClientModule,\n AutoCompleteModule,\n SharedModule,\n ReactiveFormsModule\n ],\n declarations: [InputRestAutoCompleteModelComponent],\n providers: [InputRestAutoCompleteModelService],\n exports: [InputRestAutoCompleteModelComponent]\n})\nexport class InputRestAutoCompleteModelModule {\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { HttpClientService } from '../shared/http-client.service';\n\n@Injectable()\nexport class InputRestAutoCompleteModelEnumService {\n constructor(private http: HttpClientService) {}\n\n query(server: string, enumeration: string): Observable<any> {\n const endpoit = `enumQuery`;\n const request = {\n names: [enumeration],\n };\n return this.http.enumQuery(endpoit, request, server);\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\nimport { InputRestAutoCompleteModelEnumService } from './input-rest-auto-complete-model-enum.service';\n\n@Component({\n selector: 'input-rest-auto-complete-model-enum',\n templateUrl: './input-rest-auto-complete-model-enum.component.html',\n styleUrls: ['./input-rest-auto-complete-model-enum.component.css'],\n})\nexport class InputRestAutoCompleteModelEnumComponent implements OnInit {\n private _model: any;\n @Input()\n name: string;\n @Input()\n placeholder: string;\n @Input()\n readonly: boolean;\n @Input()\n required: boolean;\n @Input()\n disabled: boolean;\n @Input()\n dropdown: boolean;\n @Input()\n forceSelection = true;\n @Input()\n error: object;\n @Input()\n emptyMessage: string;\n @Input()\n itemSelect: any;\n @Input()\n style: any;\n @Input()\n inputStyle: any;\n\n @Input()\n server: string;\n\n @Input()\n enumeration: string;\n\n @Output()\n onSelect: EventEmitter<any> = new EventEmitter();\n @Output()\n onBlur: EventEmitter<any> = new EventEmitter();\n @Output()\n onClear: EventEmitter<any> = new EventEmitter();\n @Output()\n modelChange: EventEmitter<any> = new EventEmitter();\n\n suggestions: any[] = [];\n payload: any[];\n\n constructor(private service: InputRestAutoCompleteModelEnumService) {}\n\n ngOnInit() {\n try {\n this.service.query(this.server, this.enumeration).subscribe(payload => (this.payload = payload.results));\n } catch (e) {\n console.log('Erro ao buscar no back');\n }\n }\n\n filterQuery(event: any) {\n const query = event.query;\n this.suggestions = [];\n if (!(isNaN(query) && query.toString().length < 3)) {\n for (let i = 0; i < this.payload[0].items.length; i++) {\n const item = this.payload[0].items[i];\n if (item.value.toLowerCase().indexOf(query.toLowerCase()) !== -1) {\n this.suggestions.push(item);\n }\n }\n }\n }\n\n /**\n * Externiza a função de select das opções\n * <input-rest-auto-complete-enum (onSelect)=\"onSelectHandle($event)\" ></input-rest-auto-complete-enum>\n * @param option\n */\n selectOption(option: object) {\n this.onSelect.emit(option);\n }\n\n onBlurItem(option: object) {\n this.onBlur.emit(option);\n }\n\n onClearItem(option: object) {\n this.onClear.emit(option);\n }\n\n set model(val) {\n this._model = val;\n this.modelChange.emit(this._model);\n }\n\n @Input()\n get model() {\n return this._model;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {AutoCompleteModule} from 'primeng/autocomplete';\nimport {InputRestAutoCompleteModelEnumComponent} from './input-rest-auto-complete-model-enum.component';\nimport {InputRestAutoCompleteModelEnumService} from './input-rest-auto-complete-model-enum.service';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {HttpClientModule} from '@angular/common/http';\n\nimport {SharedModule} from '../shared/shared.module';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n HttpClientModule,\n AutoCompleteModule,\n SharedModule,\n ReactiveFormsModule\n ],\n declarations: [InputRestAutoCompleteModelEnumComponent],\n providers: [InputRestAutoCompleteModelEnumService],\n exports: [InputRestAutoCompleteModelEnumComponent]\n})\nexport class InputRestAutoCompleteModelEnumModule {\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { HttpClientService } from '../shared/http-client.service';\n\n@Injectable()\nexport class InputRestAutoCompleteJobpositionService {\n constructor(private http: HttpClientService) {}\n\n query(path: string, body: object): Observable<any> {\n const endpoit = `queries/${path}`;\n return this.http.post(endpoit, body);\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\nimport { InputRestAutoCompleteJobpositionService } from './input-rest-auto-complete-jobposition.service';\n\n@Component({\n selector: 'input-rest-auto-complete-jobposition',\n templateUrl: './input-rest-auto-complete-jobposition.component.html',\n styleUrls: ['./input-rest-auto-complete-jobposition.component.css'],\n})\nexport class InputRestAutoCompleteJobpositionComponent implements OnInit {\n @Input()\n name: string;\n @Input()\n value: string;\n @Input()\n companyId: string;\n @Input()\n creationDate: string;\n @Input()\n expirationDate: string;\n @Input()\n jobpositionsFilter: Array<string>;\n @Input()\n ignoredJobpositions: Array<string>;\n @Input()\n order: Array<any>;\n @Input()\n placeholder: string;\n @Input()\n readonly: boolean;\n @Input()\n required: boolean;\n @Input()\n disabled: boolean;\n @Input()\n dropdown: boolean;\n @Input()\n forceSelection = true;\n @Input()\n error: object;\n @Input()\n emptyMessage: string;\n @Input()\n itemSelect: any;\n @Input()\n form: FormGroup;\n @Input()\n inputId: string;\n @Input()\n minCharactersToSearch = 3;\n @Input()\n multiple = false;\n private isDropdown: boolean;\n\n @Output()\n onBlur: EventEmitter<any> = new EventEmitter();\n @Output()\n onSelect: EventEmitter<any> = new EventEmitter();\n @Output()\n onClear: EventEmitter<any> = new EventEmitter();\n @Output()\n onFocus: EventEmitter<any> = new EventEmitter();\n\n suggestions: any[] = [];\n\n constructor(private service: InputRestAutoCompleteJobpositionService) { }\n\n ngOnInit() { }\n\n filterQuery(event: any) {\n const query = event.query;\n if (!(isNaN(query) && query.toString().length < this.minCharactersToSearch)) {\n try {\n this.service.query('autocompleteJobpositionQuery',\n this.getParamsRest(query)).subscribe(payload => this.formaterResponse(payload.result));\n } catch (e) {\n console.log('Erro ao buscar no back');\n }\n }\n }\n\n formaterResponse(result) {\n this.suggestions = [];\n const valsResult = [];\n result.map(value => {\n const valueConcat = {\n tableId: value.tableId,\n name: '',\n };\n\n value.fields.map(val => {\n valueConcat[val.name] = val.value;\n });\n\n valueConcat.name = valueConcat['Code'] + ' - ' + valueConcat['Name'];\n valsResult.push(valueConcat);\n });\n this.suggestions = valsResult;\n return valsResult;\n }\n\n getParamsRest(search: string): object {\n const returnFilter = {\n searchText: search,\n companyId: this.companyId ? this.replace(this.companyId) : null,\n creationDate: this.creationDate ? this.replace(this.creationDate) : null,\n expirationDate: this.expirationDate ? this.replace(this.expirationDate) : null,\n jobpositionsFilter: this.jobpositionsFilter ? this.replaceArray(this.jobpositionsFilter) : null,\n ignoredJobpositions: this.ignoredJobpositions ? this.replaceArray(this.ignoredJobpositions) : null,\n order: this.order,\n };\n\n return returnFilter;\n }\n\n private replace(value: string): string {\n return value.replace(new RegExp(\"'\", 'g'), \"\");\n }\n\n private replaceArray(value: Array<string>): Array<string> {\n return value.map(e => this.replace(e));\n }\n\n /**\n * Externiza a função de select das opções\n * <input-rest-auto-complete-jobposition (onSelect)=\"onSelectHandle($event)\" ></input-rest-auto-complete-jobposition>\n * @param option\n */\n selectOption(option: object) {\n this.onSelect.emit(option);\n }\n\n onClearItem(option: object) {\n this.onClear.emit(option);\n }\n\n onBlurItem(option: object) {\n if (!this.isDropdown) {\n this.form.controls[this.name].markAsDirty();\n this.onBlur.emit(option);\n } else {\n this.isDropdown = false;\n }\n }\n\n onDropdownClick() {\n this.isDropdown = true;\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { AutoCompleteModule } from \"primeng/autocomplete\";\nimport { SharedModule } from \"primeng/shared\";\nimport { InputRestAutoCompleteJobpositionComponent } from \"./input-rest-auto-complete-jobposition.component\";\nimport { InputRestAutoCompleteJobpositionService } from \"./input-rest-auto-complete-jobposition.service\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n HttpClientModule,\n AutoCompleteModule,\n SharedModule,\n ReactiveFormsModule\n ],\n declarations: [ InputRestAutoCompleteJobpositionComponent ],\n providers: [ InputRestAutoCompleteJobpositionService ],\n exports: [ InputRestAutoCompleteJobpositionComponent ]\n})\nexport class InputRestAutoCompleteJobpositionModule {\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { HttpClientService } from '../shared/http-client.service';\n\n@Injectable()\nexport class ListRestService {\n constructor(private http: HttpClientService) {}\n\n query(path: string, body: object): Observable<any> {\n const endpoit = `queries/${path}`;\n return this.http.post(endpoit, body);\n }\n\n queryEntity(path: string, body: object): Observable<any> {\n return this.http.get(path);\n }\n}\n","import { Component, OnInit, OnChanges, SimpleChanges, Input, Output, EventEmitter, ViewEncapsulation } from '@angular/core';\nimport { ListRestService } from './list-rest.service';\nimport { TranslateService } from '@ngx-translate/core';\n\nexport interface IColumns {\n label: string;\n field: string;\n}\n\n@Component({\n selector: 'list-rest',\n templateUrl: './list-rest.component.html',\n styleUrls: ['./list-rest.component.scss'],\n})\nexport class ListRestComponent implements OnInit, OnChanges {\n @Input()\n emptyMessage: string;\n @Input()\n urlRest: string;\n @Input()\n keyPayload: string;\n @Input()\n columns: Array<IColumns[]>;\n @Input()\n arguments? = { page: { current: 1, size: '10' } };\n @Input()\n filterValues?: (event?: any) => void;\n @Input()\n getRowActionsFun?: Function;\n @Input()\n scope?: any;\n @Input()\n reload?: boolean;\n @Input()\n isEntity?: boolean;\n @Input() alwaysShowPaginator: boolean = false;\n\n @Output()\n onLoadPayload: EventEmitter<any> = new EventEmitter();\n @Output()\n loadedList = new EventEmitter<boolean>();\n\n totalRecords: number;\n payload: any[];\n\n constructor(private translateService: TranslateService, private service: ListRestService) {}\n\n ngOnInit() {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.hasOwnProperty('arguments')) {\n this.arguments = Object.assign({}, changes.arguments.currentValue);\n this.getList(1);\n }\n if (changes.hasOwnProperty('reload') && changes.reload.currentValue === true) {\n this.getList(1);\n }\n }\n\n getList(page: number) {\n this.loadedList.emit(true);\n try {\n const args = Object.assign({}, this.arguments);\n args.page.current = page;\n if (this.isEntity) {\n this.service.queryEntity(this.urlRest, args).subscribe(payload => {\n this.onResponseQuery(payload, page);\n this.loadedList.emit(false);\n });\n } else {\n this.service.query(this.urlRest, args).subscribe(payload => {\n this.onResponseQuery(payload.result, page);\n this.loadedList.emit(false);\n });\n }\n } catch (e) {\n console.log('Erro ao tentar buscar lista no back');\n }\n }\n\n onResponseQuery(payload, page) {\n this.payload = this.filterValues ? this.filterValues.bind(this.scope)(payload[this.keyPayload]) : payload[this.keyPayload];\n this.onLoadPayload.emit({\n result: payload[this.keyPayload],\n page: page,\n });\n this.totalRecords = this.isEntity ? payload.totalElements : payload.countResult;\n }\n\n onHandlePage(event) {\n const currentPage = event.first / event.rows + 1;\n this.getList(currentPage);\n }\n\n getRowActions(data: any) {\n return this.getRowActionsFun.call(this.scope, data);\n }\n\n handleClickActions(button): void {\n const toClick = button.containerViewChild.nativeElement.getElementsByClassName('ui-splitbutton-menubutton')[0] as HTMLElement;\n toClick.click();\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ButtonModule } from \"primeng/button\";\nimport { TableModule } from \"primeng/table\";\nimport { SplitButtonModule } from \"primeng/splitbutton\";\nimport { InputTextModule } from \"primeng/inputtext\";\n\nimport { SharedModule } from \"../shared/shared.module\";\nimport { ListRestComponent } from \"./list-rest.component\";\nimport { ListRestService } from \"./list-rest.service\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n SharedModule,\n HttpClientModule,\n TableModule,\n InputTextModule,\n ButtonModule,\n SplitButtonModule,\n ],\n declarations: [ListRestComponent],\n providers: [ListRestService],\n exports: [ListRestComponent],\n})\nexport class ListRestModule {\n}\n","import {Component} from '@angular/core';\n\n@Component({\n selector: 'spinner-loader',\n templateUrl: './spinner-loader.component.html'\n})\nexport class SpinnerLoaderComponent {\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ProgressSpinnerModule } from 'primeng/progressspinner';\nimport { SpinnerLoaderComponent } from './spinner-loader.component';\n\n@NgModule({\n imports: [\n FormsModule,\n ProgressSpinnerModule\n ],\n declarations: [\n SpinnerLoaderComponent\n ],\n exports: [\n SpinnerLoaderComponent\n ]\n})\nexport class SpinnerLoaderModule {}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class TypeAdmissionServices {\n private company: any = {};\n private contractNationality: any = {};\n private contractType: any = {};\n\n constructor() {}\n\n public setCompany(company: any) {\n this.company = company;\n }\n\n public getCompanyId() {\n return this.company.companyId;\n }\n\n public setContractNationality(contractNationality: any) {\n this.contractNationality = contractNationality;\n }\n\n public isBrazilianAdmission() {\n return this.company.abbreviation === 'BR' && this.contractNationality.key === 'National';\n }\n\n public isBrazilAndforeignContract() {\n return this.company.abbreviation === 'BR' && this.contractNationality.key !== 'National';\n }\n\n public isForeignAdmission() {\n return this.company.abbreviation !== 'BR' && this.contractNationality.key === 'National';\n }\n\n public isForeignAndforeignContract() {\n return this.company.abbreviation !== 'BR' && this.contractNationality.key !== 'National';\n }\n\n public isBrazilianCompany() {\n return this.company.abbreviation === 'BR';\n }\n\n public isNationalContract() {\n return this.contractNationality.key === 'National';\n }\n\n public getCountryID() {\n return this.company.id;\n }\n\n public get contractNationalityKey() {\n return this.contractNationality.key;\n }\n\n public get abbreviation() {\n return this.company.abbreviation;\n }\n\n public getCurrency() {\n return this.company.currency;\n }\n\n public getStructureID() {\n return this.company.structure;\n }\n\n public setContractType(contractType: any) {\n this.contractType = contractType;\n }\n\n public get contractTypeKey() {\n return this.contractType ? this.contractType.key : this.contractType;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TypeAdmissionServices} from './type-admission.services';\n\n@NgModule({\n imports: [CommonModule],\n providers: [TypeAdmissionServices],\n})\nexport class TypeAdmissionModule {\n}\n","import * as _moment from 'moment';\n\nconst moment = _moment;\n\nexport function isRequired(value) {\n return value !== undefined && value !== null && value.length > 0;\n}\n\nexport function isMax(value, max) {\n return value.length <= max;\n}\n\nexport function isNumber(value) {\n const regex = /^\\d*$/;\n return regex.test(value);\n}\n\nexport function notEmpty(value) {\n return value ? value : false;\n}\n\nexport function numberOrZero(value) {\n return isNumber(notEmpty(value)) ? Number.parseInt(value) : 0;\n}\n\nexport function sun(...val) {\n return val.reduce((pv, cv) => numberOrZero(cv) + pv, 0);\n}\n\nexport function firstNameLengthIsValid(name) {\n const firstName = name.split(' ');\n return firstName[0].trim().length > 0 ? firstName[0].trim().length >= 2 : true;\n}\n\nexport function firstNameIsValid(name) {\n const firstName = name.split(' ');\n return firstName.length >= 2 && firstName[1].length >= 1;\n}\n\nexport function fullNameLengthIsValid(fullName) {\n return fullName.length <= 70;\n}\n\nexport function containsMoreThanTwoRepeatedCharacters(fullName) {\n const regex = /([a-zA-Z])\\1{2}/g;\n return !regex.test(fullName);\n}\n\nexport function containsMoreThanOneConsecutiveAbbreviation(fullName) {\n const regex = /(\\b.\\s)(.\\s)(.\\b)\\1?/g;\n return !regex.test(fullName);\n}\n\nexport function containsMoreThanOneConsecutiveBlankSpace(fullName) {\n const regex = /(\\w[ ]{2,}\\w)/;\n return !regex.test(fullName);\n}\n\n/**\n* Validada se nome não contém caracteres especiais.\n* @param fullName Nome completo.\n* @returns boolean de acordo com a validação.\n */\nexport function containsSpecialCharacters(fullName) {\n const regex = /[[\\]!@#$%&*_+=`´{}^~<>.,:;?|()\\/\\\\-]/;\n return !regex.test(fullName);\n}\n\nexport function removeWhiteSpaces(msg: string) {\n if (msg && String(msg)) {\n return String(msg).replace(/\\s/g,\"\");\n }\n return String(msg);\n}\n\nexport function isValidPIS(pis) {\n const multiplicadorBase = '3298765432';\n let total = 0;\n let resto = 0;\n let multiplicando = 0;\n let multiplicador = 0;\n let digito = 99;\n\n // Retira a mascara\n const numeroPIS = pis.replace(/[^\\d]+/g, '');\n\n if (\n numeroPIS.length !== 11 ||\n numeroPIS === '00000000000' ||\n numeroPIS === '11111111111' ||\n numeroPIS === '22222222222' ||\n numeroPIS === '33333333333' ||\n numeroPIS === '44444444444' ||\n numeroPIS === '55555555555' ||\n numeroPIS === '66666666666' ||\n numeroPIS === '77777777777' ||\n numeroPIS === '88888888888' ||\n numeroPIS === '99999999999'\n ) {\n return false;\n } else {\n for (let i = 0; i < 10; i++) {\n multiplicando = parseInt(numeroPIS.substring(i, i + 1));\n multiplicador = parseInt(multiplicadorBase.substring(i, i + 1));\n total += multiplicando * multiplicador;\n }\n\n resto = 11 - (total % 11);\n resto = resto === 10 || resto === 11 ? 0 : resto;\n\n digito = parseInt('' + numeroPIS.charAt(10));\n return resto === digito;\n }\n}\n\nexport function validateBirthDate(birthday, date) {\n if (birthday && date) {\n const birthdayCompare = moment(typeof birthday === 'string' ? birthday.replace(/[^\\d]+/g, '') : birthday, 'DDMMYYYY')\n .format('YYYY-MM-DD')\n .toString();\n const dateCompare = moment(date.replace(/[^\\d]+/g, ''), 'DDMMYYYY')\n .format('YYYY-MM-DD')\n .toString();\n return moment(dateCompare).isSameOrAfter(birthdayCompare);\n }\n}\n\nexport function isBirthDayValid(birthdayCompare, dateCompare) {\n if (birthdayCompare && dateCompare) {\n return dateCompare.isSameOrAfter(birthdayCompare);\n }\n}\n\nexport function isDateExpirationBeforeExpeditionDate(expeditionDateCompare, dateCompare) {\n if (expeditionDateCompare && dateCompare) {\n return dateCompare.isSameOrAfter(expeditionDateCompare);\n }\n}\n\nexport function isDateSameOrAfterCurrentDate(dateCompareMoment) {\n if (dateCompareMoment) {\n const currentDateCompare = moment();\n return dateCompareMoment.isSameOrAfter(currentDateCompare);\n }\n}\n\nexport function isDateCompare(momentDate, momentDateCompare, compare) {\n if (momentDate && momentDate.isValid() && momentDateCompare && compare) {\n return momentDate[compare](momentDateCompare);\n }\n return true;\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { HttpClientService } from '../components/shared/http-client.service';\nimport { CompanyIndicationType } from '../core/enums';\n\n@Injectable()\nexport class CompanyIndicationsService {\n private companyUseWorkstationGroupSubject = new Subject<any>();\n private useWorkstationGroup: any;\n private structure;\n\n constructor(private http: HttpClientService) {}\n\n getCompanyIndications(companyId: string, companyIndicationTypes: CompanyIndicationType[]) {\n return this.http\n .query('companyIndicationQuery', { companyId: companyId, companyIndicationType: companyIndicationTypes })\n .pipe(map((payload: any) => payload.result));\n }\n\n setCompanyUseWorkstationGroup(indication) {\n this.companyUseWorkstationGroupSubject.next(indication);\n }\n\n setStructure(indication) {\n this.structure = indication;\n }\n\n getStructure() {\n return this.structure;\n }\n\n getCompanyUseWorkstationGroup(): Observable<any> {\n return this.companyUseWorkstationGroupSubject.asObservable();\n }\n\n setUseWorkstationGroup(useIndication) {\n this.useWorkstationGroup = useIndication;\n }\n\n getUseWorkstationGroup() {\n return this.useWorkstationGroup;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { HttpClientService } from '../components/shared/http-client.service';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class IntegrationService {\n constructor(private http: HttpClientService) {}\n\n hasModule(module): Observable<any> {\n return this.http.query('hasModule', { module: module });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { MessageService } from \"primeng/api\";\nimport { map, catchError } from \"rxjs/operators\";\nimport { Observable, throwError } from \"rxjs\";\nimport { EntityODataParameter } from '../core/entities';\nimport { FieldType, FormField } from '@seniorsistemas/angular-components';\nimport * as moment_ from 'moment';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { PaginationData } from '../core/interfaces';\n\nconst moment = moment_;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LookupParametersService {\n\n private searchLookupFields: any;\n private endpoint: string;\n private parameters: any;\n private concatFields: any;\n private concatOtherFields: any;\n private lookupDisplayField: string;\n private searchFields: any;\n private httpPostParams: any;\n private page: PaginationData;\n private _httpParams: HttpParams = new HttpParams();\n\n constructor(private http: HttpClient, private messageService: MessageService, private translateService: TranslateService) {\n }\n\n\n lookupRequestPost(httpPostParams: any, endpoint: string, concatFields: Array<FormField> = null, lookupDisplayField: string) {\n this.httpPostParams = httpPostParams;\n this.postConfigPageSize(httpPostParams);\n this.lookupDisplayField = lookupDisplayField;\n this.concatFields = concatFields;\n return this.postDataLookup(endpoint);\n }\n\n postConfigPageSize(httpPostParams: any) {\n if (httpPostParams) {\n this.httpPostParams.page.size = httpPostParams.page && httpPostParams.page.size ? httpPostParams.page.size : 10;\n this.httpPostParams.page.current = httpPostParams.page && httpPostParams.page.current ? httpPostParams.page.current : 0;\n }\n }\n\n /**\n * Função chamada no change do autocomplete (Lookup fechado).\n * @param event valor atribuido no autocomplete do lookup fechado\n * @param endpoint endpoint que sera feito a requisição.\n * @param searchLookupFields campos que seram filtrados pelo autocomplete (lookup fechado)\n * @param searchFields array com os campos do filtro\n * @param concatFields array com os formFields que seram concatenados\n * @param concatOtherFields converte os campos enumeração para serem concatenados na grid\n * @param lookupDisplayField campo que sera alterado com os dados concatenados informado acima\n * @param params parâmetros para ser usado no lookup\n */\n lookupRequest(event: any, endpoint: string, searchLookupFields: Array<String>, searchFields: Array<FormField>,\n concatFields: Array<FormField>, lookupDisplayField: string, concatOtherFields: Array<FormField> = [], params: any = []) {\n\n this.searchLookupFields = searchLookupFields;\n this.endpoint = endpoint;\n this.parameters = params;\n this.concatFields = concatFields;\n this.concatOtherFields = concatOtherFields;\n this.lookupDisplayField = lookupDisplayField;\n this.searchFields = searchFields;\n\n this.generateLookupParameters(event);\n this.configHttpParamsPagination('10', '0');\n this.configHttpParamsOrderBy(event.multiSortMeta);\n return this.getDataLookup();\n }\n\n /**\n * Função chamada no change do filtro do lookup (Lookup aberto).\n * @param event valor atribuido no autocomplete do lookup fechado\n * @param endpoint endpoint que sera feito a requisição.\n * @param searchFields array com os campos do filtro\n * @param concatFields array com os formFields que seram concatenados\n * @param concatOtherFields converte os campos enumeração para serem concatenados na grid\n * @param lookupDisplayField campo que sera alterado com os dados concatenados informado acima\n * @param params parâmetros para ser usado no lookup\n */\n searchRequest(event: any, endpoint: string, searchFields: Array<FormField>,\n concatFields: Array<FormField>, lookupDisplayField: string, concatOtherFields: Array<FormField> = [], params: any = []) {\n\n this.endpoint = endpoint;\n this.parameters = params;\n this.concatFields = concatFields;\n this.concatOtherFields = concatOtherFields;\n this.lookupDisplayField = lookupDisplayField;\n this.searchFields = searchFields;\n this.generateGridParameters(event.filterData);\n this.configHttpParamsPagination(event.rows.toString(), Math.floor(event.first / event.rows).toString());\n this.configHttpParamsOrderBy(event.multiSortMeta);\n return this.getDataLookup();\n }\n\n\n /**\n * GET\n * @param endpoint Busca e faz o tratamento dos dados do lookup.\n * @param httpParams HttpParams\n */\n private getDataLookup() {\n return this.getUrlDataLookup(this.endpoint, this.httpParams).pipe(\n map((payload: any) => {\n const { contents } = payload;\n\n if (this.concatFields && this.concatFields.length) {\n contents.map(value => {\n this.convertGridFieldValue(value);\n value[this.lookupDisplayField] = this.generateDisplayFieldValue({ ...value });\n });\n }\n\n return payload;\n }),\n );\n }\n\n\n /**\n * POST\n * @param endpoint Busca e faz o tratamento dos dados do lookup.\n * @param httpParams HttpParams\n */\n private postDataLookup(endpoint) {\n return this.postUrlDataLookup(endpoint, this.httpPostParams).pipe(\n map((payload: any) => {\n const { contents } = payload;\n\n if (this.concatFields && this.concatFields.length) {\n contents.map(value => {\n if (this.concatOtherFields) {\n this.convertGridFieldValue(value);\n }\n value[this.lookupDisplayField] = this.generateDisplayFieldValue({ ...value });\n });\n }\n\n return payload;\n }),\n );\n }\n\n /**\n * Converte o valor do campo para apresentação no lookup.\n *\n * @param content Valor do campo para conversão.\n * @param field FormField do campo.\n */\n private convertLookupFieldValue(content: any, field: FormField): any {\n if (content) {\n switch (field.type) {\n case FieldType.Date:\n content = moment(content).format('L');\n break;\n case FieldType.Enum:\n const enumValue = field.options.filter((enumeration: any) => enumeration.value === content)[0];\n content = enumValue ? enumValue.label : content;\n break;\n }\n }\n\n return content;\n }\n\n /**\n * Converte os dados para visualização na grid\n * @param content\n */\n private convertGridFieldValue(content: any): void {\n if (content) {\n this.concatOtherFields.forEach((field: FormField) => {\n switch (field.type) {\n case FieldType.Enum:\n const enumValue = field.options.filter((enumeration: any) => enumeration.value === content[field.name])[0];\n content[field.name] = enumValue ? enumValue.label : content[field.name];\n break;\n }\n });\n }\n }\n\n /**\n * Faz a concatenação de valores do registro para ser apresentado no lookup ao selecionar o dado.\n * @param contentValue Valor do registro.\n */\n private generateDisplayFieldValue(contentValue: any): string {\n let displayField = '';\n\n this.concatFields.forEach((field: FormField) => {\n const fieldValue = this.convertLookupFieldValue(contentValue[field.name], field);\n if (fieldValue) {\n if (displayField) {\n displayField += ` - ${fieldValue}`;\n } else {\n displayField = fieldValue;\n }\n }\n });\n return displayField;\n }\n\n /**\n * Gera os parametros de pesquisa via lookup\n * @param value\n */\n private generateLookupParameters(value?: string): void {\n let lookupParameters = '';\n this.searchLookupFields.forEach((lookupField: string) => {\n const searchField = this.searchFields.filter(field => lookupField === field.name)[0];\n if (lookupParameters) {\n lookupParameters += ` or ${this.getParameterByType(searchField.type, lookupField, value)}`;\n } else {\n lookupParameters = `${this.getParameterByType(searchField.type, lookupField, value)}`;\n }\n });\n\n this.parameters.forEach((parameter: EntityODataParameter) => {\n if (lookupParameters) {\n lookupParameters += ` and ${parameter.toString()}`;\n } else {\n lookupParameters = `${parameter.toString()}`;\n }\n });\n\n this.httpParams = new HttpParams().set('filter', lookupParameters);\n }\n\n /**\n * Gera os parametros de pesquisa via pesquisa na grid\n * @param filterData\n */\n private generateGridParameters(filterData: object): void {\n let gridParameters = '';\n Object.keys(filterData).forEach((attribute: string) => {\n if (filterData[attribute]) {\n const searchField = this.searchFields.filter(field => attribute === field.name)[0];\n if (gridParameters) {\n gridParameters += ` and ${this.getParameterByType(searchField.type, attribute, filterData[attribute])}`;\n } else {\n gridParameters += this.getParameterByType(searchField.type, attribute, filterData[attribute]);\n }\n }\n });\n\n this.parameters.forEach((parameter: EntityODataParameter) => {\n if (gridParameters) {\n gridParameters += ` and ${parameter.toString()}`;\n } else {\n gridParameters = `${parameter.toString()}`;\n }\n });\n\n this.httpParams = new HttpParams().set('filter', gridParameters);\n }\n\n /**\n * Gera a string de consulta CRUD de um campo.\n * @param type Tipo do campo.\n * @param attribute Nome do atribute da entidade\n * @param value Valor do campo\n */\n private getParameterByType(type: FieldType, attribute: string, value: any): string {\n switch (type) {\n case FieldType.Date:\n return `${attribute} eq '${moment(value).format('YYYY-MM-DD')}'`;\n case FieldType.Enum:\n return `${attribute} eq '${value}'`;\n case FieldType.Integer:\n return `${attribute} eq ${value}`;\n case FieldType.Autocomplete:\n return `${attribute} eq '${value.id}'`;\n default:\n return `containing(lower(${attribute}), lower('${value}'))`;\n }\n }\n\n /**\n *\n * @param size a quantidade de registros na página.\n * @param offset o número da página a ser recuperada, lembrando que a numeração de páginas começa em 0 (zero).\n */\n private configHttpParamsPagination(size: string, offset: string): void {\n this.httpParams = this.httpParams.set('size', size);\n this.httpParams = this.httpParams.set('offset', offset);\n }\n\n /**\n * Gera o orderby do HttpParams\n */\n private configHttpParamsOrderBy(multiSortMeta: { field: string; order: number }[]): void {\n if (multiSortMeta && multiSortMeta.length) {\n let orderBy = '';\n multiSortMeta.map(value => {\n if (orderBy) {\n orderBy += `,${value.field}+${value.order === 1 ? 'asc' : 'desc'}`;\n } else {\n orderBy += `${value.field}+${value.order === 1 ? 'asc' : 'desc'}`;\n }\n });\n\n this.httpParams = this.httpParams.set('orderby', orderBy);\n }\n }\n\n set httpParams(value: HttpParams) {\n this._httpParams = value;\n }\n\n get httpParams() {\n return this._httpParams;\n }\n\n private getUrlDataLookup(endpoint: string, httpParams: HttpParams): Observable<any> {\n if (httpParams) {\n return this.http.get(`${endpoint}`, { params: httpParams })\n .pipe(\n catchError((exception: any): any => {\n if (exception && exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed_search\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n } else {\n return this.http.get(`${endpoint}`)\n .pipe(\n catchError((exception: any): any => {\n if (exception && exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed_search\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n }\n\n private postUrlDataLookup(endpoint: string, httpParams: any): Observable<any> {\n if (httpParams) {\n return this.http.post(`${endpoint}`, { ...httpParams })\n .pipe(\n catchError((exception: any): any => {\n if (exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n } else {\n return this.http.post(`${endpoint}`, {})\n .pipe(\n catchError((exception: any): any => {\n if (exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClientService } from '../components/shared/http-client.service';\nimport { CoreFieldType } from '../core/enums/coreFieldType';\nimport { FieldType } from '@seniorsistemas/angular-components';\nimport * as _moment from 'moment';\nimport { map } from 'rxjs/operators';\nimport { ServiceType } from '../core/enums/serviceType';\n\n\nconst moment = _moment;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AutocompleteParametersService {\n\n constructor(private httpClienteService: HttpClientService) { }\n\n public getAutoComplete(entity: string, params: object, searchFields: any, codeIsString: boolean, service: ServiceType) {\n const getParams = this.generateGridParameters(params, searchFields, codeIsString);\n return this.httpClienteService.getAutoComplete(entity, getParams, service)\n .pipe(map((result) => result && result.contents));\n }\n\n public getAutoCompleteQuery(query: string, params: object) {\n return this.httpClienteService.query(query, params)\n .pipe(map((data) => data && data.result));\n }\n\n /**\n * Gera os parametros de pesquisa via pesquisa na grid\n * @param filterData\n */\n private generateGridParameters(filterData: object, searchFields: any, codeIsString: boolean): string {\n let gridParameters = \"\";\n Object.keys(filterData).forEach((attribute: string) => {\n const filterSearchField = searchFields && searchFields.filter(field => attribute === field.name)[0];\n let filterQueryString = null;\n let operatorsQuery = \"\";\n let searchField: any = filterSearchField && filterSearchField.type;\n if (!filterSearchField && attribute != CoreFieldType.searchValue) searchField = FieldType.String;\n if (!filterSearchField && attribute === CoreFieldType.searchValue) searchField = CoreFieldType.searchValue;\n if (gridParameters) operatorsQuery = \" and \";\n filterQueryString = this.getParameterByType(searchField, attribute, filterData[attribute], codeIsString);\n if (filterQueryString) gridParameters += ` ${operatorsQuery} ${filterQueryString}`;\n });\n return gridParameters;\n }\n\n /**\n * Gera a string de consulta CRUD de um campo.\n * @param type Tipo do campo.\n * @param attribute Nome do atribute da entidade\n * @param value Valor do campo\n */\n private getParameterByType(type: any, attribute: string, value: any, codeIsString: boolean): string {\n if (!value && type != CoreFieldType.searchValue) return `${attribute} is null`;\n if (value && value === 'not null' && type != CoreFieldType.searchValue) return `${attribute} is not null`;\n switch (type) {\n case FieldType.Date:\n return `${attribute} eq '${moment(value).format('YYYY-MM-DD')}'`;\n case FieldType.Enum:\n return `${attribute} eq '${value}'`;\n case FieldType.Integer:\n return `${attribute} eq ${value}`;\n case FieldType.Autocomplete:\n return `${attribute} eq '${value.id}'`;\n case CoreFieldType.searchValue:\n return `${this.getParameterBySearchType(value, codeIsString)}`;\n default:\n return this.getSearchFilterString(attribute, value);\n }\n }\n\n /**\n * Retorna o filtro formatador para ser chamdo no endpoint\n * @param valueFilterSearch valor pra adicionar no filtro\n */\n private getParameterBySearchType(valueFilterSearch: any, codeIsString: boolean): string {\n let searchFilter = \"\";\n if (valueFilterSearch) {\n for (const [key, value] of Object.entries(valueFilterSearch)) {\n if (key === \"code\" && Number(value)) {\n const hasQuote = codeIsString ? \"'\" : \"\";\n if (searchFilter)\n searchFilter += ` or ${key} eq ${hasQuote}${value}${hasQuote}`;\n else\n searchFilter += `${key} eq ${hasQuote}${value}${hasQuote}`;\n } else if (key != \"code\") {\n if (searchFilter)\n searchFilter += ` or ${this.getSearchFilterString(key, value)}`;\n else\n searchFilter += this.getSearchFilterString(key, value);\n }\n }\n searchFilter = searchFilter ? `(${searchFilter})` : '';\n }\n return searchFilter;\n }\n\n /**\n * Formata o filtro quando for \"Ou\"\n * @param attribute\n * @param value\n */\n private getSearchFilterString(attribute: string, value: any): string { return `containing(lower(${attribute}), lower('${value}'))`; }\n\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { Report, ReportIn, ReportOut, GetParametersOut } from \"../core/interfaces\";\n\nconst ENDPOINTS = {\n reportParameters: \"platform/report/queries/getParameters\",\n reportUri: \"platform/report/queries/getReportUri\",\n reportStatus: \"platform/report/queries/getReportStatus\",\n reportsByName: \"platform/report/queries/findReportsByName\",\n reportsRunning: \"platform/report/queries/getRunningReports\",\n reportsGenerate: \"platform/report/actions/generateReport\"\n};\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class ReportService {\n constructor(private http: HttpClient) {}\n\n /**\n * Procura por relatórios que contenham no seu nome a string conforme parâmetro `name`\n * @param name Nome ou parte do nome do relatório\n */\n public findReportsByName(\n name: string,\n ): Observable<Report[]> {\n return this.http\n .post(`${ENDPOINTS.reportsByName}`, {\n name: name\n })\n .pipe(\n map((payload: any) => {\n const result = payload.reports ? payload.reports : [];\n return result as Report[];\n })\n );\n }\n\n /**\n * Procura por relatórios que contenham o nome exato conforme parâmetro `name`.\n * No momento a plataforma não disponibilza uma query exata para isso.\n * Portanto este método procura pelo nome informado dentro do resultado da query `findReportsByName`\n * @param name Nome exato do relatório\n */\n public findReportByName(\n name: string,\n ): Observable<Report> {\n name = name || \"\";\n return this.findReportsByName(name).pipe(\n map((payload: any) => {\n const filtered =\n payload && payload.filter((report: any) => report.name && report.name === name);\n return filtered && filtered.length == 1 ? (filtered[0] as Report) : null;\n })\n );\n }\n\n /**\n * Retorna a lista de parâmetros de entrada do relatório\n * @param reportId Id do relatório\n * @param reportFileId Identificador de um arquivo de relatório (opcional)\n */\n public getParameters(reportId: string, reportFileId?: any): Observable<GetParametersOut> {\n return this.http\n .post(`${ENDPOINTS.reportParameters}`, { id: reportId, reportFileId: reportFileId })\n .pipe(\n map((payload: any) => {\n return payload ? (payload as GetParametersOut) : null;\n })\n );\n }\n\n /**\n * Retorna a URL para visualização do relatório gerado\n * @param reportTicket Ticket do relatório gerado\n */\n public getReportUri(reportTicket: string): Observable<string> {\n return this.http.post(`${ENDPOINTS.reportUri}`, { reportTicket: reportTicket }).pipe(\n map((payload: any) => {\n return payload && payload.reportUri;\n })\n );\n }\n\n /**\n * Retorna o status do relatório\n * @param reportTicket Ticket do relatório gerado\n */\n public getReportStatus(reportTicket: string): Observable<string> {\n return this.http.post(`${ENDPOINTS.reportStatus}`, { reportTicket: reportTicket }).pipe(\n map((payload: any) => {\n return payload && payload.reportStatus;\n })\n );\n }\n\n /**\n * Gera o relatório\n * @param reportIn Dados do relatório a ser gerado\n */\n public generateReport(reportIn: ReportIn): Observable<ReportOut> {\n return this.http.post(`${ENDPOINTS.reportsGenerate}`, reportIn).pipe(\n map((payload: any) => {\n return payload ? (payload as ReportOut) : null;\n })\n );\n }\n\n /**\n * Retorna uma lista com os relatórios sendo executados ou já finalizados\n * @param page página inicial\n * @param size tamanho da página\n */\n public getRunningReports(page: number, size: number): Observable<any> {\n return this.http.post(`${ENDPOINTS.reportsRunning}`, {\n offset: page,\n limit: size,\n orderByDesc: true,\n filterCancelled: true\n });\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { BehaviorSubject, Subject, Observable } from \"rxjs\";\n\n@Injectable()\nexport class WorkflowDataService {\n private useWorkflowValueChange: Subject<boolean> = new Subject<boolean>();\n private _draftJSON: BehaviorSubject<string> = new BehaviorSubject<string>(null);\n\n constructor() {\n }\n\n public setUseWorkflow(useWorkflow: boolean): void {\n this.useWorkflowValueChange.next(useWorkflow);\n }\n\n public getUseWorkflow() {\n return this.useWorkflowValueChange.asObservable();\n }\n\n public setDraftJSON(draftJSON: string) {\n this._draftJSON.next(draftJSON);\n }\n\n public getDraftJSON(): Observable<string> {\n return this._draftJSON.asObservable();\n }\n}\n","import { Injectable } from \"@angular/core\";\n\nexport interface Divergence {\n oldValue: any;\n newValue: any;\n}\n\nexport interface DivergenceArray extends Divergence {\n key: string;\n}\n\n@Injectable()\nexport class FormComparatorService {\n private _oldFormData: object;\n private _newFormData: object;\n private _divergentFormData: { divergentKey?: Divergence };\n\n constructor() {\n this.resetDivergentFormData();\n }\n\n public resetDivergentFormData() {\n this._divergentFormData = {};\n }\n\n /**\n * checkFormDisagreements\n *\n * @description\n * Checa se existem divergẽncias entre os objetos armazenados nas\n * propriedades *oldFormData* e *newFormData*.\n *\n * `Se forem idênticos:`\n * levanta uma exceção.\n *\n * `Se houverem divergências:`\n * as armazena na propriedade divergentFormData.\n */\n public checkFormDisagreements(ignoreId: boolean = false): void {\n this.resetDivergentFormData();\n this._sanitizeEmptyStrings();\n if (ignoreId) this._removeIdsFromFormDatas();\n\n if (this._oldFormData === this._newFormData) {\n this._throwIdenticalMessage();\n } else {\n Object.keys(this._oldFormData).forEach((key) => {\n if (this._oldFormData[key] !== this._newFormData[key]) {\n this._divergentFormData[key] = this._createDivergencePair(key);\n }\n });\n\n Object.keys(this._newFormData).forEach((key) => {\n if (this._newFormData[key] !== this._oldFormData[key]) {\n this._divergentFormData[key] = this._createDivergencePair(key);\n }\n });\n\n if (this._isDivergentFormDataEmpty) this._throwIdenticalMessage();\n }\n }\n\n private _removeIdsFromFormDatas() {\n [this._oldFormData, this._newFormData].forEach((formData) => {\n delete formData[\"id\"];\n });\n }\n\n private _sanitizeEmptyStrings(): void {\n [this._oldFormData, this._newFormData].forEach((formData) => {\n Object.keys(formData).map((key) => {\n if (formData[key] === \"\") formData[key] = null;\n });\n });\n }\n\n private _createDivergencePair(key: string): Divergence {\n const divergence: Divergence = { oldValue: null, newValue: null };\n\n divergence.oldValue = this._oldFormData[key];\n divergence.newValue = this._newFormData[key];\n\n return divergence;\n }\n\n private _throwIdenticalMessage() {\n throw new Error(\"The objects oldFormData and newFormData are identical\");\n }\n\n public set oldFormData(v: object) {\n this._oldFormData = v;\n }\n\n public get oldFormData(): object {\n return this._oldFormData;\n }\n\n public set newFormData(v: object) {\n this._newFormData = v;\n }\n\n public get newFormData(): object {\n return this._newFormData;\n }\n\n public get divergentFormArray(): Array<DivergenceArray> {\n const divergentFormArray: Array<DivergenceArray> = [];\n\n Object.entries(this._divergentFormData).map(([key, divergence]) => {\n const object = { key: null, oldValue: null, newValue: null };\n\n object.key = key;\n object.oldValue = divergence.oldValue;\n object.newValue = divergence.newValue;\n\n divergentFormArray.push(object);\n });\n\n return divergentFormArray;\n }\n\n public get _isDivergentFormDataEmpty(): boolean {\n return Object.entries(this._divergentFormData).length === 0;\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { CompanyIndicationsService } from \"./company-indications.service\";\nimport { IntegrationService } from \"./integration.service\";\nimport { LookupParametersService } from \"./lookup-parameters.service\";\nimport { AutocompleteParametersService } from \"./autocomplete-parameters.service\";\nimport { ReportService } from \"./report.service\";\nimport { WorkflowDataService } from './workflow-data.service';\nimport { FormComparatorService } from \"./form-comparator.service\";\n\nexport { WorkflowDataService } from './workflow-data.service';\n\n@NgModule({\n imports: [CommonModule],\n providers: [\n CompanyIndicationsService,\n IntegrationService,\n LookupParametersService,\n AutocompleteParametersService,\n ReportService,\n WorkflowDataService,\n FormComparatorService\n ]\n})\nexport class ServicesModule {}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { service, user } from '@seniorsistemas/senior-platform-data';\nimport { from, Observable } from 'rxjs';\nimport { flatMap, map } from 'rxjs/operators';\n\n@Injectable()\nexport class PermissionService {\n private actionUrl = `platform/authorization/queries/checkAccess`;\n private resourceAddress = `res://senior.com.br/hcm/payroll/`;\n private defaultActions = ['Visualizar', 'Incluir', 'Editar', 'Excluir'];\n private _resources: string[] = [];\n private _attributes: { name: string; value: string }[] = [];\n private observable: Observable<any>;\n private permissions: any;\n private httpOptions;\n private restUrl;\n\n constructor(private http: HttpClient) {\n user.getAuthHeader().then(token => {\n this.httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n Authorization: token,\n }),\n };\n });\n\n service.getRestUrl().then(restUrl => (this.restUrl = restUrl));\n }\n\n protected get(resource: string = ''): Observable<any> {\n if (this.permissions) {\n this.observable = Observable.of(this.permissions);\n } else if (!this.observable) {\n this.observable = this.getPermissions().pipe(map((permissions: any) => (this.permissions = permissions)));\n }\n\n return this.observable.pipe(map((permissions: any) => (resource ? permissions[resource] : permissions)));\n }\n\n protected getAbac(resource: string, attributes: { name: string; value: string }[]): Observable<any> {\n this.attributes = attributes;\n\n return this.getAbacPermission(resource);\n }\n\n private getAbacPermission(resource: string): Observable<any> {\n return this.http.post(\n this.actionUrl,\n {\n includeFilters: false,\n permissions: [\n {\n resource: `${this.resourceAddress}${resource}`,\n action: 'Visualizar',\n attributes: this._attributes.map((res: { name: string; value: string }) => ({\n attribute: res.name,\n value: res.value,\n })),\n }\n ]\n },\n this.httpOptions\n );\n }\n\n private getPermissions() {\n const permissions = [];\n this._resources.forEach((resource: string) =>\n this.defaultActions.forEach((action: string) =>\n permissions.push({ action, resource: `${this.resourceAddress}${resource}` })\n )\n );\n return this.http\n .post(this.actionUrl, {\n includeFilters: false,\n permissions: [\n ...permissions\n ]\n },\n this.httpOptions\n )\n .pipe(\n map((res: any) => {\n const permissoes = res.permissions;\n const values = {};\n\n permissoes.forEach((perm: any) => {\n const name = perm.resource.replace(this.resourceAddress, '');\n values[name] = values[name] || {};\n values[name][perm.action.toLowerCase()] = perm.authorized;\n });\n\n return values;\n })\n );\n }\n\n private set attributes(value: { name: string; value: string }[]) {\n this._attributes = value;\n }\n\n protected setResources(values: string[]) {\n this._resources = values;\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MessageService } from 'primeng/api';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { ToastService } from './toast.service';\n\n@Component({\n selector: 'c-toast',\n template: `\n <p-toast [ngClass]=\"breakLine ? 'ui-toast-break-line' : ''\" [key]=\"key\"></p-toast>\n `,\n})\nexport class ToastComponent implements OnInit, OnDestroy {\n // Chave para garantir que as mensagens adicionadas por esse serviço\n // sejam exibidas apenas nesse componente.\n public key = 'TOAST';\n public breakLine: boolean = false;\n private ngUnsubscribe = new Subject();\n\n constructor(private toastService: ToastService, private messageService: MessageService, private translateService: TranslateService) {}\n\n ngOnInit() {\n this.toastService\n .loadErrorMessages()\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(payload => {\n this.createErrorMessage(payload && payload.message);\n this.breakLine = payload && payload.breakLine;\n });\n\n this.toastService\n .loadSuccessMessages()\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(payload => {\n this.createSuccessMessage(payload && payload.message);\n this.breakLine = payload && payload.breakLine;\n });\n\n this.toastService\n .loadWarningMessages()\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(payload => {\n this.createWarningMessage(payload && payload.message);\n this.breakLine = payload && payload.breakLine;\n });\n }\n\n ngOnDestroy() {\n this.ngUnsubscribe.next(true);\n this.ngUnsubscribe.complete();\n }\n\n createErrorMessage(message: string, summary?: string) {\n this.messageService.clear();\n this.messageService.add({\n severity: 'error',\n summary: summary || this.translateService.instant('hcm.payroll.error'),\n detail: message,\n sticky: true,\n key: this.key,\n });\n }\n\n createSuccessMessage(message: string, summary?: string) {\n this.messageService.add({\n severity: 'success',\n summary: summary || this.translateService.instant('hcm.payroll.success'),\n detail: message,\n key: this.key,\n });\n }\n\n createWarningMessage(message: string, summary?: string) {\n this.messageService.add({\n severity: 'warn',\n summary: summary || this.translateService.instant('hcm.payroll.warn'),\n detail: message,\n sticky: true,\n key: this.key,\n });\n }\n\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MessageService } from 'primeng/api';\nimport { ToastModule as ToastModulePrimeng } from 'primeng/toast';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { ToastComponent } from './toast.component';\nimport { ToastService } from './toast.service';\n\n@NgModule({\n imports: [CommonModule, SharedModule, ToastModulePrimeng],\n declarations: [ToastComponent],\n providers: [ToastService, MessageService],\n exports: [ToastComponent],\n})\nexport class ToastModule {}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class DataListService {\n constructor(private http: HttpClient) {}\n\n getList(endpoint: string, httpParams: HttpParams): Observable<any> {\n return this.http.get(`${endpoint}`, { params: httpParams });\n }\n}\n","import { HttpParams } from '@angular/common/http';\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { SplitButton } from 'primeng/splitbutton';\nimport { Table } from 'primeng/table';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { EntityODataParameter } from '../../core/entities';\nimport { DirectionEnumeration } from '../../core/enums';\nimport { DataListService } from './data-list.service';\nimport { EntityODataResponse } from './entity-odata-response';\n\n@Component({\n selector: 'c-data-list',\n templateUrl: './data-list.component.html',\n styleUrls: ['./data-list.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DataListComponent implements OnInit, OnDestroy {\n @ViewChild('dataListTable', { static: false })\n dataListTable: Table;\n\n @Input()\n id: string;\n @Input()\n dataKey: string;\n @Input()\n rows = 10;\n @Input()\n emptyMessage: string;\n @Input()\n columns: any[];\n @Input()\n paginator = true;\n @Input()\n first = 0;\n @Input()\n alwaysShowPaginator = true;\n @Input()\n actions?: Function;\n @Input()\n actionLabel: string;\n @Input()\n selectionMode: string;\n @Input()\n lazy: boolean;\n @Input()\n isMultipleSelection: boolean;\n @Input()\n isSortable: boolean;\n @Input()\n showHeaderCheckBox: boolean;\n @Input()\n sortMode = 'multiple';\n @Input()\n endpoint: string;\n @Input()\n displayFields: string[];\n @Input()\n orderBy: { field: string; direction: DirectionEnumeration }[];\n @Input()\n singularMessageRecords: string;\n @Input()\n pluralMessageRecords: string;\n @Input()\n initParameters: EntityODataParameter[];\n\n @Output()\n lazyLoad: EventEmitter<any> = new EventEmitter();\n @Output()\n loadingChange: EventEmitter<any> = new EventEmitter();\n @Output()\n totalRecordsChange: EventEmitter<any> = new EventEmitter();\n @Output()\n listDataChange: EventEmitter<any> = new EventEmitter();\n @Output()\n selectedDataChange: EventEmitter<any> = new EventEmitter();\n @Output()\n headerCheckboxToggle: EventEmitter<any> = new EventEmitter();\n\n private _httpParams: HttpParams = new HttpParams();\n private _loading: boolean;\n private _totalRecords: number;\n private _listData: any[];\n private _selectedData: any[];\n private ngUnsubscribe = new Subject();\n\n constructor(private dataListService: DataListService) {}\n\n ngOnInit() {\n if (!this.lazy) {\n this.getlistData();\n }\n }\n\n ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n getActions(data: any, index: number) {\n return this.actions(data, index);\n }\n\n handleClickActions(button: SplitButton) {\n const toClick = button.containerViewChild.nativeElement.getElementsByClassName('ui-splitbutton-menubutton')[0] as HTMLElement;\n toClick.click();\n }\n\n pagination(event) {\n if (!this.lazy) {\n this.getlistData(event.rows, Math.floor(event.first / event.rows));\n }\n }\n\n onLazyLoad(event) {\n this.loading = true;\n\n if (event.multiSortMeta && event.multiSortMeta.length) {\n this.orderBy = <{ field: string; direction: DirectionEnumeration }[]>[];\n event.multiSortMeta.map(value => {\n this.orderBy.push({ field: value.field, direction: value.order === 1 ? DirectionEnumeration.ASC : DirectionEnumeration.DESC });\n });\n }\n\n this.getlistData(event.rows, Math.floor(event.first / event.rows));\n }\n\n onFilter() {\n if (this.lazy) {\n this.loading = true;\n }\n\n this.getlistData();\n }\n\n get recordsMessage() {\n return `${this.totalRecords || 0} ${this.totalRecords === 1 ? this.singularMessageRecords : this.pluralMessageRecords}`;\n }\n\n getlistData(size = this.rows, offset = this.first): void {\n if (this.endpoint) {\n this.configParameters(this.initParameters);\n this.configHttpParamsDisplayFields();\n this.configHttpParamsPagination(size.toString(), offset.toString());\n this.configHttpParamsOrderBy();\n this.dataListService\n .getList(this.endpoint, this.httpParams)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((data: EntityODataResponse) => {\n this.listData = data.contents;\n this.totalRecords = data.totalElements;\n if (this.lazy) {\n this.lazyLoad.emit(this.listData);\n }\n });\n } else {\n if (this.lazy) {\n this.lazyLoad.emit(this.listData);\n }\n }\n }\n\n /**\n *\n * @param size a quantidade de registros na página.\n * @param offset o número da página a ser recuperada, lembrando que a numeração de páginas começa em 0 (zero).\n */\n configHttpParamsPagination(size: string, offset: string): void {\n this.httpParams = this.httpParams.set('size', size);\n this.httpParams = this.httpParams.set('offset', offset);\n }\n\n /**\n * Gera o orderby do HttpParams\n */\n configHttpParamsOrderBy(): void {\n if (this.orderBy && this.orderBy.length) {\n let orderBy = '';\n this.orderBy.map(value => {\n if (orderBy) {\n orderBy += `,${value.field}+${value.direction}`;\n } else {\n orderBy += `${value.field}+${value.direction}`;\n }\n });\n\n this.httpParams = this.httpParams.set('orderby', orderBy);\n }\n }\n\n /**\n * Gera HttpParams dos campos a serem retornados na requisição.\n */\n configHttpParamsDisplayFields(): void {\n if (this.displayFields && this.displayFields.length) {\n this.httpParams = this.httpParams.set('displayfields', this.displayFields.toString());\n }\n }\n\n onHeaderCheckboxToggle(event) {\n this.headerCheckboxToggle.emit(event);\n }\n\n getFieldValue(rowData, col) {\n if (col['field'] && col['field'].includes('.')) {\n const objectPath = col['field'].split('.');\n objectPath.map(value => (rowData = rowData && rowData[value]));\n return rowData;\n }\n return rowData[col['field']];\n }\n\n private configParameters(entityODataParameters: EntityODataParameter[]) {\n let parameters = '';\n if (entityODataParameters) {\n entityODataParameters.forEach((parameter: EntityODataParameter) => {\n if (parameters) {\n parameters += ` and ${parameter.toString()}`;\n } else {\n parameters = `${parameter.toString()}`;\n }\n });\n\n this.httpParams = new HttpParams().set('filter', parameters);\n }\n }\n\n @Input()\n set parameters(entityODataParameters: EntityODataParameter[]) {\n this.configParameters(entityODataParameters);\n if (entityODataParameters) {\n if (this.dataListTable) {\n this.dataListTable.first = 0;\n }\n this.onFilter();\n }\n }\n\n set httpParams(value: HttpParams) {\n this._httpParams = value;\n }\n\n get httpParams() {\n return this._httpParams;\n }\n\n set loading(value: boolean) {\n this._loading = value;\n this.loadingChange.emit(this._loading);\n }\n\n @Input()\n get loading() {\n return this._loading;\n }\n\n set listData(value: any[]) {\n this._listData = value;\n this.listDataChange.emit(this._listData);\n }\n\n @Input()\n get listData() {\n return this._listData;\n }\n\n set selectedData(value: any[]) {\n this._selectedData = value;\n this.selectedDataChange.emit(this._selectedData);\n }\n\n @Input()\n get selectedData() {\n return this._selectedData;\n }\n\n set totalRecords(value: number) {\n this._totalRecords = value;\n this.totalRecordsChange.emit(this.totalRecords);\n }\n\n @Input()\n get totalRecords(): number {\n return this._totalRecords;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ButtonModule, LoadingStateModule } from '@seniorsistemas/angular-components';\nimport { SplitButtonModule } from 'primeng/splitbutton';\nimport { TableModule } from 'primeng/table';\nimport { TooltipModule } from 'primeng/tooltip';\n\nimport { DataListComponent } from './data-list.component';\nimport { DataListService } from './data-list.service';\n\n@NgModule({\n imports: [\n CommonModule,\n // Angular Components\n ButtonModule,\n LoadingStateModule,\n // Primeng\n TableModule,\n TooltipModule,\n ],\n declarations: [DataListComponent],\n exports: [DataListComponent],\n providers: [DataListService],\n})\nexport class DataListModule {}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { MessageService } from \"primeng/api\";\nimport { Observable, throwError } from \"rxjs\";\nimport { catchError } from \"rxjs/operators\";\n\n@Injectable()\nexport class LookupService {\n constructor(private http: HttpClient, private messageService: MessageService, private translateService: TranslateService) {}\n\n getDataLookup(endpoint: string, httpParams: HttpParams): Observable<any> {\n if (httpParams) {\n return this.http.get(`${endpoint}`, { params: httpParams })\n .pipe(\n catchError((exception: any): any => {\n if (exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n } else {\n return this.http.get(`${endpoint}`)\n .pipe(\n catchError((exception: any): any => {\n if (exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n }\n}\n","import { HttpParams } from '@angular/common/http';\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { FieldType, FormField } from '@seniorsistemas/angular-components';\nimport * as moment_ from 'moment';\nimport { Subject } from 'rxjs';\nimport { map, takeUntil } from 'rxjs/operators';\n\nimport { EntityODataParameter } from '../../core/entities';\nimport { LookupService } from './lookup.service';\n\nconst moment = moment_;\n\n@Component({\n selector: 'c-lookup',\n templateUrl: './lookup.component.html',\n})\nexport class LookupComponent implements OnInit, OnDestroy {\n @Input()\n id: string;\n @Input()\n dataKey: string;\n @Input()\n concatFields: FormField[];\n @Input()\n searchTitle: string;\n @Input()\n formGroup: FormGroup;\n @Input()\n controlName: string;\n @Input()\n multiple: boolean;\n @Input()\n endpoint: string;\n @Input()\n lookupDisplayField: string;\n @Input()\n searchTotalRecordsLabel = 'hcm.payroll.lookup_search_total_records_label';\n @Input()\n filterLabel = 'hcm.payroll.lookup_generic_filter_label';\n @Input()\n clearLabel = 'hcm.payroll.lookup_generic_clean_filter_label';\n @Input()\n cancelLabel = 'hcm.payroll.lookup_generic_btn_cancel_label';\n @Input()\n selectLabel = 'hcm.payroll.lookup_btn_select_label';\n @Input()\n lookupEmptyMessage = 'hcm.payroll.lookup_auto_complete_empty_message';\n @Input()\n searchTotalRecords: number;\n @Input()\n lookupSuggestions: any[] = [];\n @Input()\n searchGridFields: FormField[] = [];\n @Input()\n searchLookupFields: string[] = [];\n @Input()\n searchGridData: FormField[] = [];\n @Input()\n searchFields: any[] = [];\n @Input()\n parameters: EntityODataParameter[] = [];\n @Output()\n onSelect: EventEmitter<any> = new EventEmitter();\n @Output()\n onClear: EventEmitter<any> = new EventEmitter();\n @Output()\n modelChange: EventEmitter<any> = new EventEmitter();\n private _httpParams: HttpParams = new HttpParams();\n private _model: any;\n private ngUnsubscribe = new Subject();\n\n constructor(private lookupService: LookupService) {}\n\n ngOnInit() {}\n\n ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n lookupRequest(event) {\n this.generateLookupParameters(event);\n this.configHttpParamsPagination('10', '0');\n this.getDataLookup(this.endpoint, this.httpParams)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(data => (this.lookupSuggestions = data && [...data.contents]));\n }\n\n searchRequest(event: any) {\n this.generateGridParameters(event.filterData);\n this.configHttpParamsPagination(event.rows.toString(), Math.floor(event.first / event.rows).toString());\n this.configHttpParamsOrderBy(event.multiSortMeta);\n this.getDataLookup(this.endpoint, this.httpParams)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(data => (this.searchGridData = data && [...data.contents]));\n }\n\n /**\n *\n * @param endpoint Busca e faz o tratamento dos dados do lookup.\n * @param httpParams HttpParams\n */\n private getDataLookup(endpoint: string, httpParams: HttpParams) {\n return this.lookupService.getDataLookup(this.endpoint, this.httpParams).pipe(\n map((payload: any) => {\n const { totalElements, contents } = payload;\n this.searchTotalRecords = totalElements;\n\n if (this.concatFields && this.concatFields.length) {\n contents.map(value => {\n this.convertGridFieldValue(value);\n value[this.lookupDisplayField] = this.generateDisplayFieldValue({ ...value });\n });\n }\n\n return payload;\n })\n );\n }\n\n /**\n * Converte o valor do campo para apresentação no lookup.\n *\n * @param content Valor do campo para conversão.\n * @param field FormField do campo.\n */\n private convertLookupFieldValue(content: any, field: FormField): any {\n if (content) {\n switch (field.type) {\n case FieldType.Date:\n content = moment(content).format('L');\n break;\n case FieldType.Enum:\n const enumValue = field.options.filter((enumeration: any) => enumeration.value === content)[0];\n content = enumValue ? enumValue.label : content;\n break;\n }\n }\n\n return content;\n }\n\n /**\n * Converte os dados para visualização na grid\n * @param content\n */\n private convertGridFieldValue(content: any): void {\n if (content) {\n this.searchGridFields.forEach((field: FormField) => {\n switch (field.type) {\n case FieldType.Enum:\n const enumValue = field.options.filter((enumeration: any) => enumeration.value === content[field.name])[0];\n content[field.name] = enumValue ? enumValue.label : content[field.name];\n break;\n }\n });\n }\n }\n\n /**\n * Faz a concatenação de valores do registro para ser apresentado no lookup ao selecionar o dado.\n * @param contentValue Valor do registro.\n */\n private generateDisplayFieldValue(contentValue: any): string {\n let displayField = '';\n\n this.concatFields.forEach((field: FormField) => {\n const fieldValue = this.convertLookupFieldValue(contentValue[field.name], field);\n if (fieldValue) {\n if (displayField) {\n displayField += ` - ${fieldValue}`;\n } else {\n displayField = fieldValue;\n }\n }\n });\n return displayField;\n }\n\n /**\n * Gera os parametros de pesquisa via lookup\n * @param value\n */\n private generateLookupParameters(value?: string): void {\n let lookupParameters = '';\n this.searchLookupFields.forEach((lookupField: string) => {\n const searchField = this.searchFields.filter(field => lookupField === field.name)[0];\n if (lookupParameters) {\n lookupParameters += ` or ${this.getParameterByType(searchField.type, lookupField, value)}`;\n } else {\n lookupParameters = `${this.getParameterByType(searchField.type, lookupField, value)}`;\n }\n });\n\n this.parameters.forEach((parameter: EntityODataParameter) => {\n if (lookupParameters) {\n lookupParameters += ` and ${parameter.toString()}`;\n } else {\n lookupParameters = `${parameter.toString()}`;\n }\n });\n\n this.httpParams = new HttpParams().set('filter', lookupParameters);\n }\n\n /**\n * Gera os parametros de pesquisa via pesquisa na grid\n * @param filterData\n */\n private generateGridParameters(filterData: object): void {\n let gridParameters = '';\n Object.keys(filterData).forEach((attribute: string) => {\n if (filterData[attribute]) {\n const searchField = this.searchFields.filter(field => attribute === field.name)[0];\n if (gridParameters) {\n gridParameters += ` and ${this.getParameterByType(searchField.type, attribute, filterData[attribute])}`;\n } else {\n gridParameters += this.getParameterByType(searchField.type, attribute, filterData[attribute]);\n }\n }\n });\n\n this.parameters.forEach((parameter: EntityODataParameter) => {\n if (gridParameters) {\n gridParameters += ` and ${parameter.toString()}`;\n } else {\n gridParameters = `${parameter.toString()}`;\n }\n });\n\n this.httpParams = new HttpParams().set('filter', gridParameters);\n }\n\n /**\n * Gera a string de consulta CRUD de um campo.\n * @param type Tipo do campo.\n * @param attribute Nome do atribute da entidade\n * @param value Valor do campo\n */\n private getParameterByType(type: FieldType, attribute: string, value: any): string {\n switch (type) {\n case FieldType.Date:\n return `${attribute} eq '${moment(value).format('YYYY-MM-DD')}'`;\n case FieldType.Enum:\n return `${attribute} eq '${value}'`;\n case FieldType.Integer:\n return `${attribute} eq ${value}`;\n case FieldType.Autocomplete:\n return `${attribute} eq ${value.id}`;\n default:\n return `containing(lower(${attribute}), lower('${value}'))`;\n }\n }\n\n /**\n *\n * @param size a quantidade de registros na página.\n * @param offset o número da página a ser recuperada, lembrando que a numeração de páginas começa em 0 (zero).\n */\n private configHttpParamsPagination(size: string, offset: string): void {\n this.httpParams = this.httpParams.set('size', size);\n this.httpParams = this.httpParams.set('offset', offset);\n }\n\n /**\n * Gera o orderby do HttpParams\n */\n private configHttpParamsOrderBy(multiSortMeta: { field: string; order: number }[]): void {\n if (multiSortMeta && multiSortMeta.length) {\n let orderBy = '';\n multiSortMeta.map(value => {\n if (orderBy) {\n orderBy += `,${value.field}+${value.order === 1 ? 'asc' : 'desc'}`;\n } else {\n orderBy += `${value.field}+${value.order === 1 ? 'asc' : 'desc'}`;\n }\n });\n\n this.httpParams = this.httpParams.set('orderby', orderBy);\n }\n }\n\n set httpParams(value: HttpParams) {\n this._httpParams = value;\n }\n\n get httpParams() {\n return this._httpParams;\n }\n\n set model(value: any) {\n this._model = value;\n this.modelChange.emit(value);\n }\n\n @Input()\n get model() {\n return this._model;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { DynamicFormModule } from '@seniorsistemas/angular-components';\n\nimport { LookupComponent } from './lookup.component';\nimport { LookupService } from './lookup.service';\n\n@NgModule({\n imports: [CommonModule, FormsModule, DynamicFormModule, ReactiveFormsModule, TranslateModule],\n declarations: [LookupComponent],\n exports: [LookupComponent],\n providers: [LookupService],\n})\nexport class LookupModule {}\n","import { Injectable } from '@angular/core';\nimport { HttpClientService } from '../shared/http-client.service';\nimport { CoreFieldType } from '../../core/enums/coreFieldType';\nimport { FieldType } from '@seniorsistemas/angular-components';\nimport * as _moment from 'moment';\nimport { map } from 'rxjs/operators';\nimport { ServiceType } from '../../core/enums/serviceType';\n\n\nconst moment = _moment;\n\n@Injectable()\nexport class AutocompleteService {\n\n constructor(private httpClienteService: HttpClientService) { }\n\n public getAutoComplete(entity: string, params: object, searchFields: any, codeIsString: boolean, service: ServiceType) {\n const getParams = this.generateGridParameters(params, searchFields, codeIsString);\n return this.httpClienteService.getAutoComplete(entity, getParams, service)\n .pipe(map((result) => result && result.contents));\n }\n\n public getAutoCompleteQuery(query: string, params: object) {\n return this.httpClienteService.query(query, params)\n .pipe(map((data) => data && data.result));\n }\n\n /**\n * Gera os parametros de pesquisa via pesquisa na grid\n * @param filterData\n */\n private generateGridParameters(filterData: object, searchFields: any, codeIsString: boolean): string {\n let gridParameters = \"\";\n Object.keys(filterData).forEach((attribute: string) => {\n const filterSearchField = searchFields && searchFields.filter(field => attribute === field.name)[0];\n let filterQueryString = null;\n let operatorsQuery = \"\";\n let searchField: any = filterSearchField && filterSearchField.type;\n if (!filterSearchField && attribute != CoreFieldType.searchValue) searchField = FieldType.String;\n if (!filterSearchField && attribute === CoreFieldType.searchValue) searchField = CoreFieldType.searchValue;\n if (gridParameters) operatorsQuery = \" and \";\n filterQueryString = this.getParameterByType(searchField, attribute, filterData[attribute], codeIsString);\n if (filterQueryString) gridParameters += ` ${operatorsQuery} ${filterQueryString}`;\n });\n return gridParameters;\n }\n\n /**\n * Gera a string de consulta CRUD de um campo.\n * @param type Tipo do campo.\n * @param attribute Nome do atribute da entidade\n * @param value Valor do campo\n */\n private getParameterByType(type: any, attribute: string, value: any, codeIsString: boolean): string {\n if (!value && type != CoreFieldType.searchValue) return `${attribute} is null`;\n if (value && value === 'not null' && type != CoreFieldType.searchValue) return `${attribute} is not null`;\n switch (type) {\n case FieldType.Date:\n return `${attribute} eq '${moment(value).format('YYYY-MM-DD')}'`;\n case FieldType.Enum:\n return `${attribute} eq '${value}'`;\n case FieldType.Integer:\n return `${attribute} eq ${value}`;\n case FieldType.Autocomplete:\n return `${attribute} eq '${value.id}'`;\n case CoreFieldType.searchValue:\n return `${this.getParameterBySearchType(value, codeIsString)}`;\n default:\n return this.getSearchFilterString(attribute, value);\n }\n }\n\n /**\n * Retorna o filtro formatador para ser chamdo no endpoint\n * @param valueFilterSearch valor pra adicionar no filtro\n */\n private getParameterBySearchType(valueFilterSearch: any, codeIsString: boolean): string {\n let searchFilter = \"\";\n if (valueFilterSearch) {\n for (const [key, value] of Object.entries(valueFilterSearch)) {\n if (key === \"code\" && Number(value)) {\n const hasQuote = codeIsString ? \"'\" : \"\";\n if (searchFilter)\n searchFilter += ` or ${key} eq ${hasQuote}${value}${hasQuote}`;\n else\n searchFilter += `${key} eq ${hasQuote}${value}${hasQuote}`;\n } else if (key != \"code\") {\n if (searchFilter)\n searchFilter += ` or ${this.getSearchFilterString(key, value)}`;\n else\n searchFilter += this.getSearchFilterString(key, value);\n }\n }\n searchFilter = searchFilter ? `(${searchFilter})` : '';\n }\n return searchFilter;\n }\n\n /**\n * Formata o filtro quando for \"Ou\"\n * @param attribute\n * @param value\n */\n private getSearchFilterString(attribute: string, value: any): string { return `containing(lower(${attribute}), lower('${value}'))`; }\n\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { FieldType, FormField } from \"@seniorsistemas/angular-components\";\nimport * as moment_ from \"moment\";\nimport { MessageService } from \"primeng/api\";\nimport { Observable, throwError } from \"rxjs\";\nimport { map, catchError } from \"rxjs/operators\";\nimport { PaginationData } from \"../../core/interfaces\";\n\nconst moment = moment_;\n\n@Injectable()\nexport class LookupService {\n\n private concatFields: any;\n private concatOtherFields: any;\n private lookupDisplayField: string;\n private httpPostParams: any;\n private page: PaginationData;\n\n constructor(private http: HttpClient, private messageService: MessageService, private translateService: TranslateService) {\n }\n\n\n lookupRequestPost(httpPostParams: any, endpoint: string, concatFields: Array<FormField> = null, lookupDisplayField: string) {\n this.httpPostParams = httpPostParams;\n this.postConfigPageSize(httpPostParams);\n this.lookupDisplayField = lookupDisplayField;\n this.concatFields = concatFields;\n return this.postDataLookup(endpoint);\n }\n\n postConfigPageSize(httpPostParams: any) {\n if (httpPostParams) {\n this.httpPostParams.page.size = httpPostParams.page && httpPostParams.page.size ? httpPostParams.page.size : 10;\n this.httpPostParams.page.current = httpPostParams.page && httpPostParams.page.current ? httpPostParams.page.current : 0;\n }\n }\n\n /**\n * POST\n * @param endpoint Busca e faz o tratamento dos dados do lookup.\n * @param httpParams HttpParams\n */\n private postDataLookup(endpoint) {\n return this.postUrlDataLookup(endpoint, this.httpPostParams).pipe(\n map((payload: any) => {\n const { contents } = payload;\n\n if (this.concatFields && this.concatFields.length) {\n contents.map(value => {\n if (this.concatOtherFields) {\n this.convertGridFieldValue(value);\n }\n value[this.lookupDisplayField] = this.generateDisplayFieldValue({ ...value });\n });\n }\n\n return payload;\n }),\n );\n }\n\n /**\n * Converte o valor do campo para apresentação no lookup.\n *\n * @param content Valor do campo para conversão.\n * @param field FormField do campo.\n */\n private convertLookupFieldValue(content: any, field: FormField): any {\n if (content) {\n switch (field.type) {\n case FieldType.Date:\n content = moment(content).format(\"L\");\n break;\n case FieldType.Enum:\n const enumValue = field.options.filter((enumeration: any) => enumeration.value === content)[0];\n content = enumValue ? enumValue.label : content;\n break;\n }\n }\n\n return content;\n }\n\n /**\n * Converte os dados para visualização na grid\n * @param content\n */\n private convertGridFieldValue(content: any): void {\n if (content) {\n this.concatOtherFields.forEach((field: FormField) => {\n switch (field.type) {\n case FieldType.Enum:\n const enumValue = field.options.filter((enumeration: any) => enumeration.value === content[field.name])[0];\n content[field.name] = enumValue ? enumValue.label : content[field.name];\n break;\n }\n });\n }\n }\n\n /**\n * Faz a concatenação de valores do registro para ser apresentado no lookup ao selecionar o dado.\n * @param contentValue Valor do registro.\n */\n private generateDisplayFieldValue(contentValue: any): string {\n let displayField = \"\";\n\n this.concatFields.forEach((field: FormField) => {\n const fieldValue = this.convertLookupFieldValue(contentValue[field.name], field);\n if (fieldValue) {\n if (displayField) {\n displayField += ` - ${ fieldValue }`;\n } else {\n displayField = fieldValue;\n }\n }\n });\n return displayField;\n }\n\n private postUrlDataLookup(endpoint: string, httpParams: any): Observable<any> {\n if (httpParams) {\n return this.http.post(`${ endpoint }`, { ...httpParams })\n .pipe(\n catchError((exception: any): any => {\n if (exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n } else {\n return this.http.post(`${ endpoint }`, {})\n .pipe(\n catchError((exception: any): any => {\n if (exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n }\n}\n","export class WorkstationgroupLookupDto {\n private code?: string;\n private name?: string;\n private companyId?: string;\n private companyBranchId?: string;\n private departmentId?: string;\n private costcenterId?: string;\n private jobpositionIds?: any;\n private syndicateId?: string;\n private shiftId?: string;\n private workshiftId?: string;\n private workshiftGroupId?: string;\n private intervalGroupId?: string;\n private scaleTeamId?: string;\n private scaleCategoryId?: string;\n private employmentRelationshipId?: string;\n private contractType?: string;\n private expenseNatureId?: string;\n private allowDeficient?: string;\n private disabilityIds?: any;\n private listExpired?: boolean;\n private referenceDate?: string;\n private searchText?: string;\n private manager: string;\n private page: any;\n\n constructor(payload: any, referenceDate?: string) {\n const { filterData } = payload;\n this.name = filterData.name || null;\n this.code = filterData.code || null;\n this.searchText = filterData.searchText || null;\n this.companyId = filterData.headoffice || null;\n this.companyBranchId = filterData.branchoffice && filterData.branchoffice.id || null;\n this.departmentId = filterData.department && filterData.department.tableId || null;\n this.costcenterId = filterData.costcenter && filterData.costcenter.id || null;\n this.jobpositionIds = filterData.jobposition || null;\n this.syndicateId = filterData.syndicate && filterData.syndicate.id || null;\n this.shiftId = filterData.workshiftScale || null;\n this.workshiftId = filterData.workshiftId && filterData.workshiftId.id || null;\n this.workshiftGroupId = filterData.workshiftGroupId && filterData.workshiftGroupId.id || null;\n this.intervalGroupId = filterData.intervalGroupId && filterData.intervalGroupId.is || null;\n this.scaleTeamId = filterData.scaleTeamId && filterData.scaleTeamId.id || null;\n this.scaleCategoryId = filterData.scaleCategoryId && filterData.scaleCategoryId.id || null;\n this.employmentRelationshipId = filterData.employmentRelationshipId && filterData.employmentRelationshipId.id || null;\n this.contractType = filterData.contractType || null;\n this.expenseNatureId = filterData.expenseNatureId && filterData.expenseNatureId.id || null;\n this.allowDeficient = filterData.allowDeficient || null;\n this.disabilityIds = filterData.disabilityIds || null;\n this.listExpired = filterData.hasOwnProperty('listExpired') ? filterData.listExpired : false;\n this.manager = filterData.manager ? filterData.manager.tableId : null;\n this.referenceDate = referenceDate || null;\n this.page = {\n current: payload.first ? payload.first : 0,\n size: payload.rows ? payload.rows : 10\n } || null;\n\n }\n\n getToFilter() {\n const objDTO = this;\n objDTO.jobpositionIds = this.convertListIds(this.jobpositionIds);\n objDTO.disabilityIds = this.convertListIds(this.disabilityIds);\n return objDTO;\n }\n\n\n convertListIds(list: any) {\n if (list)\n return list.map((index: any) => {\n if (index.tableId)\n return index.tableId;\n else\n return index.id;\n });\n }\n\n}\n","import {\n Component,\n OnDestroy,\n OnInit,\n ViewChild,\n ElementRef,\n Input,\n Output,\n EventEmitter,\n AfterViewInit,\n ChangeDetectorRef,\n} from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { FieldType, FormField } from \"@seniorsistemas/angular-components\";\nimport * as moment_ from \"moment\";\nimport { now } from \"moment\";\nimport { Subject, BehaviorSubject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { ServiceType } from \"../../core/enums\";\nimport { invertFieldDate, getNowDate } from \"../utils/helpers\";\nimport { AutocompleteService } from \"./autocomplete.service\";\nimport { LookupService } from \"./lookup.service\";\nimport { WorkstationgroupLookupDto } from \"./workstationgroup-lookup.dto\";\n\nconst moment = moment_;\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: \"c-workstationgroup-lookup\",\n templateUrl: \"./workstationgroup-lookup.component.html\",\n})\nexport class WorkstationgroupLookupComponent implements OnInit, OnDestroy, AfterViewInit {\n\n @ViewChild(\"workstationgroupEl\", { static: false })\n workstationgroupEl: ElementRef;\n\n @Input()\n public currentCompanyId: string = null;\n @Input()\n public currentCompanyName: string = null;\n @Input()\n public hireDate: string;\n @Input()\n public dateFormat: string;\n @Input()\n public required: boolean;\n @Input()\n public disabled: boolean;\n @Input()\n public form: FormGroup;\n @Input()\n public name: string;\n\n @Output()\n public onSelect: EventEmitter<any> = new EventEmitter();\n @Output()\n public onClear: EventEmitter<any> = new EventEmitter();\n @Output()\n public onBlur: EventEmitter<any> = new EventEmitter();\n\n private companyBranchId: string = null;\n\n public lookupSuggestions: any[] = [];\n public searchGridData: FormField[] = [];\n public suggestionsObservable: BehaviorSubject<any> = new BehaviorSubject([]);\n public totalRecords: number = 0;\n private valueEnumShift = [\n {\n label: this.translate.instant(\"hcm.payroll.enum_WorkshiftScale_FIRST_SHIFT\"),\n value: \"0\",\n enum: \"FIRST_SHIFT\",\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_WorkshiftScale_SECOND_SHIFT\"),\n value: \"1\",\n enum: \"SECOND_SHIFT\",\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_WorkshiftScale_THIRD_SHIFT\"),\n value: \"2\",\n enum: \"THIRD_SHIFT\",\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_WorkshiftScale_FOURTH_SHIFT\"),\n value: \"3\",\n enum: \"FOURTH_SHIFT\",\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_WorkshiftScale_MIXED\"),\n value: \"4\",\n enum: \"MIXED\",\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_WorkshiftScale_GENERAL\"),\n value: \"5\",\n enum: \"GENERAL\",\n },\n ];\n private concatFieldsName = [\n new FormField({\n name: \"code\",\n label: this.translate.instant(\"hcm.payroll.code\"),\n type: FieldType.String,\n }),\n new FormField({\n name: \"name\",\n label: this.translate.instant(\"hcm.payroll.employees_addition_workstation\"),\n type: FieldType.String,\n }),\n ];\n\n private concatName = [\n new FormField({\n name: \"code\",\n label: this.translate.instant(\"hcm.payroll.code\"),\n type: FieldType.String,\n }),\n ];\n public gridFields = [\n new FormField({\n name: \"name\",\n label: this.translate.instant(\"hcm.payroll.employees_addition_workstation\"),\n type: FieldType.String,\n }),\n new FormField({\n name: \"manager\",\n label: this.translate.instant(\"hcm.payroll.workstation_form_lookup_search_manager_label\"),\n type: FieldType.String,\n }),\n ];\n public searchFields = [\n ...this.concatName,\n {\n name: \"name\",\n label: this.translate.instant(\"hcm.payroll.movimentation_name\"),\n type: FieldType.String,\n },\n {\n name: \"headoffice\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.employees_company\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"companyname\",\n },\n {\n name: \"branchoffice\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.employees_addition_branch\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n onRemove: () => this.companyBranchId = null,\n onSelect: ({ id }: { id: string }) => this.companyBranchId = id,\n onSearch: (val: string) => {\n this.getAutocomplete(\n \"company\",\n val ? { companyname: val, code: val } : null,\n \"code\", \"companyname\",\n { headquarter: this.currentCompanyId ? this.currentCompanyId : \"not null\" },\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"companyname\",\n },\n {\n name: \"manager\",\n type: FieldType.Autocomplete,\n multiple: false,\n label: this.translate.instant(\"hcm.payroll.workstation_form_lookup_search_manager_label\"),\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocompleteQuery(\n \"autocompleteManager\",\n {\n valueSearch: val ? val : \"\",\n companyId: {tableId: this.currentCompanyId},\n companyBranchId: {tableId: this.companyBranchId ? this.companyBranchId : \"\"},\n },\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"manager\",\n },\n {\n name: \"department\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.movimentation_historical_department_tab\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocompleteQuery(\n \"autocompleteDepartmentQuery\",\n {\n searchText: val ? val : \"\",\n companyId: this.currentCompanyId,\n referenceDate: moment(now()).format(\"YYYY-MM-DD\"),\n },\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"name\",\n },\n {\n name: \"costcenter\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.employees_addition_cost_center\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocomplete(\n \"costcenter\",\n val ? { name: val, code: val } : null,\n \"code\", \"name\",\n this.currentCompanyId ? { company: this.currentCompanyId } : null,\n true,\n ServiceType.ORGANIZATION_REGISTER,\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"name\",\n },\n {\n name: \"jobposition\",\n type: FieldType.Autocomplete,\n multiple: true,\n label: this.translate.instant(\"hcm.payroll.movimentation_historical_job_position_tab\"),\n dataKey: \"tableId\",\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocompleteQuery(\n \"autocompleteJobpositionQuery\",\n {\n searchText: val ? val : \"\",\n companyId: this.currentCompanyId,\n creationDate: moment().format(\"YYYY-MM-DD\"),\n expirationDate: moment().format(\"YYYY-MM-DD\"),\n },\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"name\",\n },\n {\n name: \"syndicate\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.employees_addition_syndicate\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocomplete(\n \"syndicate\",\n val ? { name: val, code: val } : null,\n \"code\", \"name\",\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"name\",\n },\n {\n name: \"workshiftScale\",\n type: FieldType.Enum,\n label: this.translate.instant(\"hcm.payroll.SHIFT\"),\n showClear: true,\n size: { md: 12 },\n onChange: () => {\n this.resetDependenciesOfShift(true);\n },\n options: this.valueEnumShift,\n },\n {\n name: \"workshiftId\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.employees_addition_scale\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocomplete(\n \"workshift\",\n val ? { description: val, code: val } : null,\n \"code\", \"description\",\n this.workstationFilterForm.get(\"workshiftScale\").value ?\n { workshiftScale: this.valueEnumShift[this.workstationFilterForm.get(\"workshiftScale\").value].enum } : null,\n );\n },\n onSelect: () => {\n this.resetDependenciesOfShift();\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"description\",\n },\n {\n name: \"workshiftGroupId\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.employees_addition_workshift-group\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocomplete(\n \"workshiftGroup\",\n val ? { code: val } : null,\n \"code\", \"baseDate\",\n this.workstationFilterForm.get(\"workshiftId\").value ?\n { workshift: this.workstationFilterForm.get(\"workshiftId\").value.id } : null,\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"baseDate\",\n },\n {\n name: \"intervalGroupId\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.employees_addition_class_interval\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocomplete(\n \"intervalGroup\",\n val ? { description: val, code: val } : null,\n \"code\", \"description\",\n this.workstationFilterForm.get(\"workshiftId\").value ?\n { workshift: this.workstationFilterForm.get(\"workshiftId\").value.id } : null,\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"description\",\n },\n {\n name: \"scaleTeamId\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.employees_addition_scale_team\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocomplete(\n \"scaleTeam\",\n val ? { name: val, code: val } : null,\n \"code\", \"name\",\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"name\",\n },\n {\n name: \"scaleCategoryId\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.employees_addition_scale_category\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocomplete(\n \"scaleCategory\",\n val ? { name: val, code: val } : null,\n \"code\", \"name\",\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"name\",\n },\n {\n name: \"employmentRelationshipId\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.employees_addition_employment_relationship\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocomplete(\n \"employmentRelationship\",\n val ? { name: val, code: val } : null,\n \"code\", \"name\",\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"name\",\n },\n {\n name: \"contractType\",\n type: FieldType.Enum,\n label: this.translate.instant(\"hcm.payroll.employees_temporary_contract_temporary_contract_type\"),\n showClear: true,\n size: { md: 12 },\n options: [\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_Employee\"),\n value: \"0\",\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_Manager\"),\n value: 1,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_FarmWorker\"),\n value: 2,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_Retired\"),\n value: 3,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_Trainee\"),\n value: 4,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_Apprentice\"),\n value: 5,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_FixedDueDate\"),\n value: 6,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_RetiredManager\"),\n value: 7,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_PublicAgent\"),\n value: 8,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_Teacher\"),\n value: 9,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_CooperativeWorker\"),\n value: 10,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_DomesticWorker\"),\n value: 11,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_TeacherFixedDueDate\"),\n value: 12,\n },\n ],\n },\n {\n name: \"expenseNatureId\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.employees_addition_expense_nature\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocomplete(\n \"expenseNature\",\n val ? { name: val, code: val } : null,\n \"code\", \"name\",\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"name\",\n },\n {\n name: \"allowDeficient\",\n type: FieldType.Enum,\n label: this.translate.instant(\"hcm.payroll.allow_deficient\"),\n showClear: true,\n size: { md: 12 },\n options: [\n {\n label: this.translate.instant(\"hcm.payroll.enum_DecisionPcD_No\"),\n value: \"0\",\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_DecisionPcD_Also\"),\n value: 1,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_DecisionPcD_Only\"),\n value: 2,\n },\n ],\n },\n {\n name: \"disabilityIds\",\n type: FieldType.Autocomplete,\n multiple: true,\n label: this.translate.instant(\"hcm.payroll.employees_addition_disability\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n // visible: () => Number(this.workstationFilterForm.get('allowDeficient').value),\n onSearch: (val: string) => {\n this.getAutocomplete(\n \"disability\",\n val ? { name: val, code: val } : null,\n \"code\", \"name\",\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"name\",\n },\n ];\n\n private ngUnsubscribe = new Subject();\n\n constructor(\n private translate: TranslateService,\n private cd: ChangeDetectorRef,\n private autocompleteParametersService: AutocompleteService,\n private lookupParametersService: LookupService) {\n }\n\n public ngOnInit() {\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public ngAfterViewInit() {\n this.cd.detectChanges();\n const companyForm = this.workstationFilterForm.get(\"headoffice\");\n companyForm.setValue({ id: this.currentCompanyId, companyname: this.currentCompanyName });\n companyForm.disable();\n }\n\n public get workstationFilterForm() {\n return this.workstationgroupEl && this.workstationgroupEl[\"formGroupDialog\"];\n }\n\n public selectOption(option: object) {\n this.onSelect.emit(option);\n }\n\n async onClearItem(option: object) {\n await this.onClear.emit(option);\n this.form.get(this.name).reset();\n }\n\n private resetDependenciesOfShift(isShift: boolean = false): void {\n if (isShift) {\n this.workstationFilterForm.get(\"workshiftId\").reset();\n }\n this.workstationFilterForm.get(\"workshiftGroupId\").reset();\n this.workstationFilterForm.get(\"intervalGroupId\").reset();\n }\n\n public searchRequest($event: any) {\n const endpoint = \"hcm/payroll/queries/workstationgroupFilterQuery\";\n const company = this.workstationFilterForm.get(\"headoffice\");\n const isLookupOpen: boolean = $event && $event.filterData;\n company.setValue({\n id: this.currentCompanyId,\n companyname: this.currentCompanyName,\n });\n\n $event = { ...this.getValueEvent($event, isLookupOpen)};\n\n const referenceDate = this.getHireDate().replace(/\\'/g, \"\");\n const filter = new WorkstationgroupLookupDto($event, referenceDate);\n this.lookupParametersService.lookupRequestPost(filter.getToFilter(), endpoint, [...this.concatFieldsName], \"name\")\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((data: any) => {\n if (isLookupOpen) {\n this.searchGridData = data && [...data.contents];\n } else {\n this.lookupSuggestions = data && [...data.contents];\n }\n this.totalRecords = data && data.totalPages;\n });\n }\n\n private getValueEvent($event: any, isLookupOpen: boolean): Object {\n if (isLookupOpen) {\n $event.filterData.headoffice = this.currentCompanyId;\n } else {\n $event = {\n filterData: {\n headoffice: this.currentCompanyId,\n searchText: $event\n },\n };\n }\n return $event;\n }\n\n private getAutocompleteQuery(nameQuery: string, searchValue: object) {\n this.autocompleteParametersService.getAutoCompleteQuery(nameQuery, searchValue)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((data: any) => {\n if (nameQuery === \"autocompleteDepartmentQuery\") {\n data.filter((field: any) => {\n if (field.fields && field.fields[0]) {\n field[\"name\"] = `${ field.fields[1].value } - ${ field.fields[0].value }`;\n }\n });\n } else if (nameQuery === \"autocompleteJobpositionQuery\") {\n data.filter((field: any) => {\n if (field.fields && field.fields[0] && field.fields[1]) {\n field[\"name\"] = `${ field.fields[0].value } - ${ field.fields[1].value }`;\n }\n });\n } else if (nameQuery === \"autocompleteManager\") {\n data.map((field: any) => {\n field[\"manager\"] = field.fields[0].value ? field.fields[0].value : field.fields[3].value;\n });\n }\n\n this.suggestionsObservable.next(data);\n });\n }\n\n private getAutocomplete(\n nameEntity: string,\n searchValue: object,\n concatOtherFields: string,\n nameFieldConcat: string,\n additionalParams: object = null,\n codeIsString: boolean = false,\n service: ServiceType = ServiceType.PAYROLL,\n ) {\n this.autocompleteParametersService.getAutoComplete(\n nameEntity, {\n ...additionalParams,\n searchValue: { ...searchValue },\n }, this.searchFields, codeIsString, service)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((data: any) => {\n if (nameEntity === \"workshiftGroup\") {\n data.filter((filterData: any) => {\n if (filterData.baseDate) {\n const dateIsMoment = moment(filterData.baseDate, \"YYYY-MM-DD\");\n if (dateIsMoment.isValid()) {\n return filterData.baseDate = dateIsMoment.format(this.dateFormat);\n }\n }\n });\n }\n this.suggestionsObservable.next(this.getConcatFields(data, concatOtherFields, nameFieldConcat));\n });\n }\n\n private getConcatFields(data: any, concatOtherFields: string, nameFieldConcat: string) {\n if (nameFieldConcat && concatOtherFields) {\n data.filter((field: any) => {\n field[nameFieldConcat] = `${ field[concatOtherFields] } - ${ field[nameFieldConcat] }`;\n });\n }\n return data;\n }\n\n public getHireDate() {\n const momentHireDate = moment(this.hireDate).format(this.dateFormat);\n return momentHireDate ? `'${ invertFieldDate(momentHireDate, this.dateFormat) }'` : `'${ getNowDate() }'`;\n }\n\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { DynamicFormModule } from \"@seniorsistemas/angular-components\";\nimport { AutocompleteService } from \"./autocomplete.service\";\nimport { LookupService } from \"./lookup.service\";\n\nimport { WorkstationgroupLookupComponent } from \"./workstationgroup-lookup.component\";\n\n@NgModule({\n imports: [FormsModule, DynamicFormModule, ReactiveFormsModule, CommonModule, TranslateModule],\n declarations: [WorkstationgroupLookupComponent],\n exports: [WorkstationgroupLookupComponent],\n providers: [AutocompleteService, LookupService],\n})\nexport class WorkstationgroupLookupModule {\n}\n","import {\n Component,\n OnInit,\n ViewChild,\n Input,\n ChangeDetectorRef,\n AfterViewInit,\n OnDestroy, EventEmitter,\n} from \"@angular/core\";\nimport { FormGroup, FormBuilder } from \"@angular/forms\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { CustomFieldsComponent, NumberLocaleOptions } from \"@seniorsistemas/angular-components\";\nimport { ConfirmationService } from \"primeng/api\";\nimport { compareValues, isValid, mountCustomToSave } from \"../utils/helpers\";\nimport { DirectionEnumeration } from \"../../core/enums\";\nimport { Subject } from \"rxjs\";\n\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: \"c-historical-bank-account\",\n templateUrl: \"./historical-bank-account.component.html\",\n styleUrls: [\"./historical-bank-account.component.scss\"],\n})\nexport class HistoricalBankAccountComponent implements OnInit, OnDestroy, AfterViewInit {\n @ViewChild(CustomFieldsComponent, { static: false })\n public customFields: CustomFieldsComponent;\n @Input()\n public formGroup: FormGroup;\n @Input()\n public fieldFormGroup: string;\n @Input()\n public _dateWhen: string;\n @Input()\n public _displayDateWhen: string;\n @Input()\n public recordByRow: number = 1;\n @Input()\n public showDateWhen: boolean = false;\n @Input()\n public msgTooltipAdd: string;\n @Input()\n public isEditMode: boolean = false;\n @Input()\n public isViewMode: boolean = false;\n @Input()\n public currency: NumberLocaleOptions;\n @Input()\n public customEntity: string;\n @Input()\n public customService: string;\n @Input()\n public withSideBar: boolean = true;\n\n private visibleChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n private ngUnsubscribe = new Subject();\n private historicalBankAccountList: FormGroup;\n private orderBy: { field: string; direction: DirectionEnumeration } = {\n field: \"displayDateWhen\",\n direction: DirectionEnumeration.DESC,\n };\n\n private _visible: boolean;\n public bankAccountItemInput: object = {};\n public totalRecords: number = 0;\n public actionLabel: string = this.translateService.instant(\"hcm.payroll.entries_query_actions_total_title\");\n public loading = true;\n public parameters: any;\n public msgTotalLimitByPercentage: string;\n public listData: object[] = [];\n public listDataNoPage: object[] = [];\n public cols = [\n {\n label: this.translateService.instant(\"hcm.payroll.historical_bank_account_label_date_when\"),\n field: \"displayDateWhen\",\n },\n {\n label: this.translateService.instant(\"hcm.payroll.historical_bank_account_label_bank\"),\n field: \"bank\",\n },\n {\n label: this.translateService.instant(\"hcm.payroll.historical_bank_account_label_bank_branch\"),\n field: \"bankBranch\",\n },\n {\n label: this.translateService.instant(\"hcm.payroll.historical_bank_account_label_account_type\"),\n field: \"accountType\",\n },\n {\n label: this.translateService.instant(\"hcm.payroll.historical_bank_account_label_account\"),\n field: \"bankAccount\",\n },\n {\n label: this.translateService.instant(\"hcm.payroll.historical_bank_account_label_digit\"),\n field: \"digit\",\n },\n {\n label: this.translateService.instant(\"hcm.payroll.historical_bank_account_label_percentage\"),\n field: \"percentage\",\n },\n ];\n actions = (rowData: any = {}, key: any) => {\n return [\n {\n visible: this.isEditMode,\n label: this.translateService.instant(\"hcm.payroll.employees_image_cropper_view\"),\n command: () => {\n rowData[\"index\"] = key;\n this.bankAccountItemInput = { currentItem: rowData, listData: this.listDataNoPage, isEditMode: false };\n this.visible = true;\n },\n },\n {\n visible: !!(!this.isEditMode && this.withSideBar),\n label: this.translateService.instant(\"hcm.payroll.edit\"),\n command: () => {\n rowData[\"index\"] = key;\n this.bankAccountItemInput = { currentItem: rowData, listData: this.listDataNoPage, isEditMode: true };\n this.visible = true;\n },\n },\n {\n visible: !this.isEditMode,\n label: this.translateService.instant(\"hcm.payroll.delete\"),\n command: () => {\n this.loading = true;\n this.deleteAnnuityItem(key);\n },\n },\n ];\n }\n\n constructor(\n private confirmationService: ConfirmationService,\n private translateService: TranslateService,\n private activatedRoute: ActivatedRoute,\n private cd: ChangeDetectorRef,\n private formBuilder: FormBuilder,\n ) {\n this.createFormGroup();\n }\n\n ngOnInit() {\n this.formGroup.setControl(this.fieldFormGroup, this.historicalBankAccountList);\n }\n\n private createFormGroup(): void {\n this.historicalBankAccountList = this.formBuilder.group({\n historicalBankAccountList: this.formBuilder.control(null),\n });\n }\n\n ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n\n public onLazyLoad(event?: any): void {\n const first = event && event.first ? event.first : 0;\n const rows = event && event.rows ? event.rows : this.recordByRow;\n const arrList = this.getHistoricalBankAccountList();\n this.listData = [];\n this.totalRecords = null;\n\n if (event && event.multiSortMeta && event.multiSortMeta.length) {\n event.multiSortMeta.map((value: any) => {\n this.orderBy.field = value.field;\n this.orderBy.direction = value.order === 1 ? DirectionEnumeration.ASC : DirectionEnumeration.DESC;\n });\n }\n\n if (arrList && arrList.length) {\n this.totalRecords = arrList.length;\n this.listData = arrList;\n this.listDataNoPage = [...arrList];\n this.listData.sort(compareValues(this.orderBy.field, this.orderBy.direction));\n this.listData = this.listData.slice(first, (first + rows));\n } else {\n this.listDataNoPage = [];\n }\n\n if (this.isEditMode || arrList && arrList.length === 1) {\n this.refreshCssInIE11();\n }\n\n this.loading = false;\n\n }\n\n /**\n * Um Bug de CSS que acontece nas linhas da tabela, que resolve só atualizando qualquer parte do CSS da pagina.\n */\n private refreshCssInIE11() {\n if (/msie\\s|trident\\/|edge\\//i.test(window.navigator.userAgent)) {\n setTimeout( () => {\n const row = document.getElementsByClassName(\"row0\");\n if (row && row[0])\n row[0].className = 'refresh';\n }, 1);\n }\n }\n\n public add(): void {\n this.bankAccountItemInput = {};\n this.visible = true;\n }\n\n private deleteAnnuityItem(index: number): void {\n let newlist = [...this.getHistoricalBankAccountList()];\n newlist.sort(compareValues(this.orderBy.field, this.orderBy.direction));\n delete newlist[index];\n newlist = newlist.filter(val => val);\n this.historicalBankAccountList.get(\"historicalBankAccountList\").setValue(newlist);\n this.verifyTotalPercentage();\n this.onLazyLoad();\n }\n\n public getHistoricalBankAccountList(): object[] {\n if (this.historicalBankAccountList.get(\"historicalBankAccountList\") &&\n this.historicalBankAccountList.get(\"historicalBankAccountList\").value &&\n this.historicalBankAccountList.get(\"historicalBankAccountList\").value.length)\n return this.historicalBankAccountList.get(\"historicalBankAccountList\") && this.historicalBankAccountList.get(\"historicalBankAccountList\").value;\n else\n return [];\n }\n\n public addItemInList($event: any): void {\n const index = $event && $event.index >= 0 ? $event.index : null;\n const newDataList = this.getHistoricalBankAccountList() ? this.getHistoricalBankAccountList() : [];\n\n if (index != null) {\n newDataList[index] = $event;\n delete $event.index;\n } else {\n if (isValid($event[\"customFields\"]) && Object.keys($event[\"customFields\"]).length) {\n const customValue = mountCustomToSave($event[\"customFields\"]);\n $event[\"customFields\"] = [...customValue];\n }\n $event[\"dateWhen\"] = this.dateWhen;\n newDataList.push($event);\n }\n\n\n\n this.historicalBankAccountList.get(\"historicalBankAccountList\").setValue(newDataList);\n this.verifyTotalPercentage();\n this.onLazyLoad({ first: this.getNumberPageByIndex(index, newDataList) });\n }\n\n private getNumberPageByIndex(index: number, list: object[]): number {\n if (index) {\n const total = list.length;\n const sub = this.recordByRow - 1;\n return Math.ceil(total / this.recordByRow) * this.recordByRow - sub - 1;\n }\n return null;\n }\n\n private verifyTotalPercentage(): void {\n const list = this.getHistoricalBankAccountList() ? this.getHistoricalBankAccountList() : [];\n const arrayPercentage = [];\n\n if (!list.length) return this.msgTotalLimitByPercentage = null;\n\n list.filter(item => arrayPercentage.push(item && item[\"percentage\"]));\n\n const sumPercentage = arrayPercentage.reduce((total: number, percentage: number) => {\n return total + percentage;\n }, 0);\n\n if (sumPercentage === 100) {\n this.msgTotalLimitByPercentage = this.translateService.instant(\"hcm.payroll.historical_bank_account_msg_limit_total_by_percentage\");\n } else {\n this.msgTotalLimitByPercentage = null;\n }\n\n }\n\n public get scopedActions() {\n return this.actions.bind(this);\n }\n\n public get recordsMessage() {\n return `${ this.totalRecords || 0 } ${ this.totalRecords === 1 ? this.translateService.instant(\"hcm.payroll.admission_register\") : this.translateService.instant(\"hcm.payroll.admission_registers\") }`;\n }\n\n public get getTooltipAndDisableButtonAdd() {\n return this.dateWhen ? null : this.msgTooltipAdd;\n }\n\n @Input()\n public get dateWhen(): string {\n return this._dateWhen;\n }\n\n public set dateWhen(value: string) {\n this._dateWhen = value;\n if (this._dateWhen) {\n this.listData.filter(row => row[\"dateWhen\"] = this._dateWhen);\n }\n }\n\n @Input()\n public get displayDateWhen(): string {\n return this._displayDateWhen;\n }\n\n public set displayDateWhen(value: string) {\n this._displayDateWhen = value;\n if (this._displayDateWhen) {\n this.listData.filter(row => row[\"displayDateWhen\"] = this._displayDateWhen);\n }\n }\n\n @Input()\n public set addListData(list: object[]) {\n this.loading = true;\n this.historicalBankAccountList.get(\"historicalBankAccountList\").patchValue(list);\n this.verifyTotalPercentage();\n this.onLazyLoad();\n }\n\n @Input()\n public get visible(): boolean {\n return this._visible;\n }\n\n public set visible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(this.visible);\n }\n public close(): void {\n this.visible = false;\n }\n\n}\n","import {\n Component,\n OnInit,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n OnDestroy,\n AfterViewInit,\n ViewChild,\n} from \"@angular/core\";\nimport { FormGroup, FormBuilder, Validators, ValidatorFn, AbstractControl } from \"@angular/forms\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { NumberLocaleOptions, CustomFieldsComponent } from \"@seniorsistemas/angular-components\";\nimport { Subject } from \"rxjs\";\nimport {\n verifyValidationsForm,\n clearValues,\n configEnabledFields,\n mountCustomToShow,\n} from \"../../utils/helpers\";\n\n@Component({\n selector: \"bank-account\",\n templateUrl: \"./historical-bank-account-form.component.html\",\n styleUrls: [\"../historical-bank-account.component.scss\"]\n})\nexport class HistoricalBankAccountFormComponent implements OnInit, OnDestroy, AfterViewInit {\n @ViewChild(CustomFieldsComponent, { static: true })\n customFields: CustomFieldsComponent;\n\n @Input()\n public currency: NumberLocaleOptions;\n @Input()\n public customEntity: string;\n @Input()\n public customService: string;\n @Input()\n public withSideBar: boolean = true;\n @Input()\n public isEditMode: boolean = false;\n\n @Output()\n public visibleChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output()\n public bankAccountItemToList: EventEmitter<any> = new EventEmitter<any>();\n\n private _visible: boolean;\n private ngUnsubscribe = new Subject();\n private employeeId: string;\n private bankAccountList: object[];\n private initialValidatorOfPercentage: ValidatorFn[] = [Validators.required, Validators.min(0.01)];\n private initialValidatorOfBankAccount: ValidatorFn[] = [Validators.required, Validators.maxLength(12)];\n\n\n public labelBtnAdd: string = \"hcm.payroll.employees_add\";\n public bankAccountFormGroup: FormGroup;\n public maxValuePercentage: number = 100.00;\n public visibleBtnSave: boolean = true;\n public isView: boolean = false;\n\n constructor(\n private translate: TranslateService,\n private formBuilder: FormBuilder,\n private route: ActivatedRoute,\n private cd: ChangeDetectorRef,\n ) {\n this.createFormGroup();\n this.registerSubjects();\n }\n\n /**\n * Método valida se o número atual informado na conta para o mesmo banco, agencia e tipo já foi inserido em outro registro da tabela.\n * Caso esta conta já esteja em uso por outro registro, retorna \"bankAccountDuplicate\" = true.\n * @param listCompare\n * @param accountTypeValue\n * @param bankValue\n * @param bankBranchValue\n */\n private validateDuplicateBankAccount(\n listCompare: object[],\n accountTypeValue: string,\n bankValue: string,\n bankBranchValue: string) {\n\n return (control: AbstractControl): Validators => {\n const value = control && control.value;\n let condition = false;\n listCompare.filter((item, key) => {\n if (key != item[\"index\"] && value && item[\"bank\"] && item[\"bank\"].tableId === bankValue &&\n item[\"bankBranch\"] && item[\"bankBranch\"].tableId === bankBranchValue &&\n item[\"accountType\"] && item[\"accountType\"].key === accountTypeValue &&\n Number(item[\"bankAccount\"]) === Number(value)) {\n return condition = true;\n }\n });\n\n if (condition) {\n return { bankAccountDuplicate: true };\n } else {\n return null;\n }\n };\n }\n\n ngOnInit() {\n }\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next(true);\n this.ngUnsubscribe.unsubscribe();\n }\n\n private registerSubjects(): void {\n }\n\n private createFormGroup(): void {\n this.bankAccountFormGroup = this.formBuilder.group({\n id: this.formBuilder.control(null),\n index: this.formBuilder.control(null),\n employee: this.formBuilder.control({ value: { tableId: null }, disabled: true }),\n dateWhen: this.formBuilder.control(null),\n displayDateWhen: this.formBuilder.control(null),\n bank: this.formBuilder.control(null, Validators.required),\n bankBranch: this.formBuilder.control(null, Validators.required),\n accountType: this.formBuilder.control(null, Validators.required),\n bankAccount: this.formBuilder.control(null, Validators.compose([...this.initialValidatorOfBankAccount])),\n digit: this.formBuilder.control(null, Validators.maxLength(3)),\n percentage: this.formBuilder.control(null, Validators.compose([\n ...this.initialValidatorOfPercentage,\n Validators.max(this.maxValuePercentage),\n ])),\n customFields: this.formBuilder.control(null),\n });\n }\n\n // Actions Bank\n public onSelectBank() {\n this.cleanBankInformation();\n this.beforeSetBankAccountValidator();\n }\n\n public onClearBank() {\n this.bankAccountFormGroup.get(\"bank\").reset();\n this.cleanBankInformation();\n this.beforeSetBankAccountValidator();\n }\n\n private cleanBankInformation(): void {\n const fields = [\"bankBranch\"];\n clearValues(this.bankAccountFormGroup, fields);\n }\n\n // Actions BankBranch\n public onClearBankBranch() {\n this.bankAccountFormGroup.get(\"bankBranch\").reset();\n this.beforeSetBankAccountValidator();\n }\n\n // Actions BankBranch\n public onClearAccountType() {\n this.bankAccountFormGroup.get(\"accountType\").reset();\n this.beforeSetBankAccountValidator();\n }\n\n @Input()\n public get visible(): boolean {\n return this._visible;\n }\n\n public set visible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(this.visible);\n }\n\n @Input()\n public set isEditAndViewValue(value: any) {\n this.resetForm();\n this.visibleBtnSave = true;\n if (value && value.currentItem && Object.keys(value.currentItem).length) {\n this.bankAccountFormGroup.patchValue(this.convertDTOToShowWithCustomFields({...value.currentItem}));\n this.labelBtnAdd = \"hcm.payroll.employees_update\";\n this.setValidatorsAccordingList(value.listData, value.currentItem[\"index\"]);\n if (!this.isView) {\n this.configEnableFields(value && value[\"isEditMode\"]);\n }\n } else {\n this.labelBtnAdd = \"hcm.payroll.employees_add\";\n }\n\n }\n\n public convertDTOToShowWithCustomFields(data: object): object {\n const obj = {... data};\n obj[\"customFields\"] = mountCustomToShow(obj[\"customFields\"]);\n return obj;\n }\n\n private configEnableFields(isEditMode: boolean) {\n this.visibleBtnSave = isEditMode;\n configEnabledFields(this.bankAccountFormGroup, isEditMode, [\n \"bank\",\n \"bankBranch\",\n \"accountType\",\n \"bankAccount\",\n \"digit\",\n \"percentage\",\n \"customFields\",\n ], []);\n }\n\n public close(): void {\n this.resetForm();\n this.visible = false;\n }\n\n public addItem(): void {\n this.bankAccountFormGroup.updateValueAndValidity();\n verifyValidationsForm.call(this.bankAccountFormGroup);\n\n if (this.bankAccountFormGroup.valid) {\n if (this.employeeId) {\n this.bankAccountFormGroup.get(\"employee\").setValue({\n tableId: this.employeeId,\n name: \"\",\n });\n }\n this.bankAccountItemToList.emit(this.bankAccountFormGroup.getRawValue());\n this.visible = false;\n this.resetForm();\n }\n }\n\n public resetForm(): void {\n this.bankAccountFormGroup.reset();\n this.labelBtnAdd = \"hcm.payroll.employees_add\";\n if (this.customFields && this.customFields.formGroup) this.customFields.formGroup.reset();\n }\n\n public getBankTableId() {\n return this.bankAccountFormGroup.controls.bank.value\n ? `'${ this.bankAccountFormGroup.controls.bank.value.tableId }'`\n : null;\n }\n\n\n public get percentagePlaceholder(): string {\n return `0${ this.currency && this.currency.decimalSeparator }00`;\n }\n\n public get optionsPercentage(): object {\n return { ...this.getOptions(), precision: 2 };\n }\n\n private getOptions(): any {\n return {\n prefix: \"\",\n thousands: this.currency.thousandsSeparator,\n decimal: this.currency.decimalSeparator,\n };\n }\n\n /**\n * O Input que recebe a lista do component pai e chama o método de validação passando a lista recebida.\n * @param bankAccountList\n */\n @Input()\n public set getListBankAccount(bankAccountList: object[]) {\n if (bankAccountList) {\n this.setValidatorsAccordingList(bankAccountList);\n } else {\n this.resetForm();\n }\n }\n\n /**\n * Recebe a lista de registros já inseridos na tabela adiciona em uma variável os valores que serão usados para\n * a validação dos campos \"percentage\" e \"bankAccount\".\n * Quando tem index significa que está em uma edição, os valores na posição do registro da edição (index) não serão adicionados\n * no array de comparação dos validators.\n * @param bankAccountList\n * @param index\n */\n private setValidatorsAccordingList(bankAccountList: object[], index: number = null) {\n this.bankAccountList = bankAccountList && bankAccountList.length ? [...bankAccountList] : [];\n\n const percentageIncluded = [];\n\n if (this.bankAccountList && this.bankAccountList.length) {\n this.bankAccountList.filter((field, key) => {\n if (field[\"percentage\"] && key != index) {\n percentageIncluded.push(field[\"percentage\"]);\n }\n });\n\n }\n this.beforeSetBankAccountValidator();\n this.validatePercentageValid(percentageIncluded);\n }\n\n /**\n * Antes de setar o validator prepara as variáveis necessária para que seja feita a validação do campo.\n */\n public beforeSetBankAccountValidator() {\n const bankAccount = this.bankAccountFormGroup.get(\"bankAccount\");\n\n const accountTypeValue = this.bankAccountFormGroup.get(\"accountType\") &&\n this.bankAccountFormGroup.get(\"accountType\").value &&\n this.bankAccountFormGroup.get(\"accountType\").value[\"key\"];\n\n const bankValue = this.bankAccountFormGroup.get(\"bank\") &&\n this.bankAccountFormGroup.get(\"bank\").value &&\n this.bankAccountFormGroup.get(\"bank\").value[\"tableId\"];\n\n const bankBranchValue = this.bankAccountFormGroup.get(\"bankBranch\") &&\n this.bankAccountFormGroup.get(\"bankBranch\").value &&\n this.bankAccountFormGroup.get(\"bankBranch\").value[\"tableId\"];\n\n if (bankValue &&\n bankBranchValue &&\n accountTypeValue &&\n this.bankAccountList &&\n this.bankAccountList.length) {\n\n bankAccount\n .setValidators(Validators.compose([\n ...this.initialValidatorOfBankAccount,\n this.validateDuplicateBankAccount(this.bankAccountList, accountTypeValue, bankValue, bankBranchValue),\n ]));\n bankAccount.updateValueAndValidity();\n } else {\n bankAccount\n .setValidators(Validators.compose([\n ...this.initialValidatorOfBankAccount,\n ]));\n }\n\n }\n\n /**\n * Este método calcula as parcentagens que já foram inseridas, e seta a diferença para chegar em\n * 100% na validação do campo \"percentage\" como um novo maxValue;\n * @param listValue\n */\n private validatePercentageValid(listValue: number[]) {\n const percentage = this.bankAccountFormGroup.get(\"percentage\");\n this.maxValuePercentage = listValue\n .reduce((currentValue, total) => currentValue - total,\n 100.00,\n );\n\n percentage\n .setValidators(Validators.compose([\n ...this.initialValidatorOfPercentage,\n Validators.max(this.maxValuePercentage),\n ]));\n percentage.updateValueAndValidity();\n }\n\n @Input()\n public set isViewMode(condition: boolean) {\n this.isView = !!(condition && !this.withSideBar);\n this.configEnableFields(!this.isView);\n if (!this.isView) this.resetForm();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { HttpClientService } from '../shared/http-client.service';\nimport { ServiceType } from '../../core/enums/serviceType';\n\n@Injectable()\nexport class HistoricalBankAccountService {\n constructor(private http: HttpClientService) {}\n\n query(path: string, body: object, service: ServiceType = ServiceType.PAYROLL): Observable<any> {\n return this.http.query(path, body, service);\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport {\n ButtonModule,\n LoadingStateModule,\n SidebarModule, ControlErrorsModule, CustomFieldsModule,\n} from \"@seniorsistemas/angular-components\";\nimport { CurrencyMaskModule } from \"ng2-currency-mask\";\nimport { ConfirmationService } from \"primeng/api\";\nimport { AutoCompleteModule } from \"primeng/autocomplete\";\nimport { FieldsetModule } from \"primeng/fieldset\";\nimport { InputTextModule } from \"primeng/inputtext\";\nimport { PanelModule } from \"primeng/panel\";\nimport { TableModule } from \"primeng/table\";\nimport { TooltipModule } from \"primeng/tooltip\";\nimport { CoreDirectives } from \"../directives/index\";\nimport { HistoricalBankAccountFormComponent } from \"./historical-bank-account-form/historical-bank-account-form.component\";\nimport { InputDateModule } from \"../input-date/index\";\nimport { InputRestAutoCompleteModule } from \"../input-rest-auto-complete/index\";\nimport { InputRestAutoCompleteEnumModule } from \"../input-rest-auto-complete-enum/index\";\n\nimport { SharedModule } from \"../shared/shared.module\";\nimport { HistoricalBankAccountComponent } from \"./historical-bank-account.component\";\nimport { HistoricalBankAccountService } from \"./historical-bank-account.service\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n HttpClientModule,\n AutoCompleteModule,\n SharedModule,\n ReactiveFormsModule,\n TableModule,\n ButtonModule,\n TooltipModule,\n LoadingStateModule,\n SidebarModule,\n InputDateModule,\n ControlErrorsModule,\n InputRestAutoCompleteEnumModule,\n CurrencyMaskModule,\n InputRestAutoCompleteModule,\n InputTextModule,\n CoreDirectives,\n FieldsetModule,\n CustomFieldsModule,\n PanelModule,\n ],\n declarations: [HistoricalBankAccountComponent, HistoricalBankAccountFormComponent],\n providers: [HistoricalBankAccountService, ConfirmationService],\n exports: [HistoricalBankAccountComponent],\n})\nexport class HistoricalBankAccountModule {\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { ServiceType } from '../../core/enums/serviceType';\n\nimport { HttpClientService } from \"../shared/http-client.service\";\n\n@Injectable()\nexport class HistoricalBankAccountListService {\n constructor(private http: HttpClientService, private httpClient: HttpClient) {\n }\n\n public remove(id: any, dateWhen: string, service: ServiceType = ServiceType.PAYROLL, dependentId?: string) {\n if (service === ServiceType.DEPENDENT) {\n return this.httpClient\n .post(\"hcm/dependent/queries/historicalJudicialPensionBankAccountDelete\", {\n dependentId: dependentId,\n dateWhen: dateWhen,\n });\n } else {\n return this.http.post(\"actions/historicalEmployeeBankAccountDelete\", {\n employeeId: id,\n dateWhen: dateWhen\n });\n }\n }\n\n}\n","import {\n Component,\n OnInit,\n ViewChild,\n ChangeDetectorRef,\n AfterViewInit,\n OnDestroy,\n Input,\n Output,\n EventEmitter,\n} from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { CustomFieldsComponent } from \"@seniorsistemas/angular-components\";\nimport * as moment_ from \"moment\";\nimport { ConfirmationService, MessageService } from \"primeng/api\";\nimport { ServiceType } from '../../core/enums/serviceType';\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { HistoricalBankAccountListService } from \"./historical-bank-account-list.service\";\n\nconst moment = moment_;\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: \"c-historical-bank-account-list\",\n templateUrl: \"./historical-bank-account-list.component.html\",\n styleUrls: [\"./historical-bank-account-list.component.scss\"],\n})\nexport class HistoricalBankAccountListComponent implements OnInit, OnDestroy, AfterViewInit {\n @ViewChild(CustomFieldsComponent, { static: false })\n public customFields: CustomFieldsComponent;\n\n @Input()\n public permission: object;\n @Input()\n public employeeId: string;\n @Input()\n public dependentId: string;\n @Input()\n public dateFormat: string;\n @Input()\n public endPoint: string = \"hcm/payroll/queries/historicalEmployeeBankAccountQuery\";\n @Input()\n public keyPayload: string = \"historicalEmployeeBankAccount\";\n @Input()\n public withSidebar: boolean = true;\n\n\n @Output()\n public enableView: EventEmitter<any> = new EventEmitter<any>();\n\n private lastRecord: any;\n private ngUnsubscribe = new Subject();\n public initParameters: any;\n public loading: boolean = true;\n public parameters: any;\n\n public columns = [\n {\n label: this.translateService.instant(\n \"hcm.payroll.historical_bank_account_label_date_when\",\n ),\n field: \"dateWhen\",\n },\n {\n label: this.translateService.instant(\n \"hcm.payroll.historical_bank_account_label_bank\",\n ),\n field: \"bank.name\",\n },\n {\n label: this.translateService.instant(\n \"hcm.payroll.historical_bank_account_label_bank_branch\",\n ),\n field: \"bankBranch.name\",\n },\n {\n label: this.translateService.instant(\n \"hcm.payroll.historical_bank_account_label_account\",\n ),\n field: \"bankAccount\",\n },\n {\n label: this.translateService.instant(\n \"hcm.payroll.historical_bank_account_label_percentage\",\n ),\n field: \"percentage\",\n },\n {\n label: this.translateService.instant(\n \"hcm.payroll.historical_bank_account_label_qtd_account\",\n ),\n field: \"numberOfBankAccount\",\n },\n ];\n\n constructor(\n private confirmationService: ConfirmationService,\n private translateService: TranslateService,\n private activatedRoute: ActivatedRoute,\n private cd: ChangeDetectorRef,\n private router: Router,\n private messageService: MessageService,\n private historicalBankAccountListService: HistoricalBankAccountListService,\n ) {\n }\n\n ngOnInit() {\n this.initParameters = { employeeId: this.employeeId, dependentId: this.dependentId };\n }\n\n\n ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n\n public onLazyLoad(payload: any) {\n payload.forEach((value: any) => {\n value.dateWhen = moment(value.dateWhen).format(this.dateFormat);\n });\n\n this.onGridLoad(payload);\n\n this.loading = false;\n }\n\n public getMenuActions(rowData: any) {\n return [\n {\n label: this.translateService.instant(\"hcm.payroll.employees_image_cropper_view\"),\n command: () => {\n const dateWhen = rowData && rowData.dateWhen && moment(rowData.dateWhen, this.dateFormat).format(\"YYYY-MM-DD\");\n if (this.withSidebar)\n this.router.navigate([`historical-bank-account/${ dateWhen }`], {\n relativeTo: this.activatedRoute,\n });\n else\n this.enableView.emit(dateWhen);\n },\n },\n {\n label: this.translateService.instant(\"hcm.payroll.delete\"),\n command: () => {\n if (this.isAllowToDeleteHistorical && rowData) {\n this.delete(rowData.id, rowData.dateWhen);\n } else {\n this.messageService.add({\n severity: \"error\",\n summary: this.translateService.instant(\"hcm.payroll.error\"),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n });\n }\n },\n },\n ];\n }\n\n public delete(id: any, dateWhen: string) {\n if (id === this.lastRecord.id) {\n const dateWhenToDto = moment(dateWhen, this.dateFormat).format(\"YYYY-MM-DD\");\n this.confirmationService.confirm({\n message: `${ this.translateService.instant(\n \"hcm.payroll.employees_movimentation_historical_bank_account_question_confirm_delete\",\n ) }?`,\n accept: () => {\n this.loading = true;\n const service = this.withSidebar ? ServiceType.PAYROLL : ServiceType.DEPENDENT;\n this.historicalBankAccountListService\n .remove(this.employeeId, dateWhenToDto, service, this.dependentId)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(\n () => {\n this.messageService.add({\n severity: \"success\",\n summary: this.translateService.instant(\"hcm.payroll.success\"),\n detail: this.translateService.instant(\"hcm.payroll.employees_movimentation_historical_bank_account_remove\"),\n });\n this.parameters = (this.parameters && { ...this.parameters }) || {};\n },\n () => {\n this.messageService.add({\n severity: \"error\",\n summary: this.translateService.instant(\"hcm.payroll.error\"),\n detail: this.translateService.instant(\"hcm.payroll.employees_movimentation_historical_bank_account_error_remove\"),\n });\n this.loading = false;\n },\n );\n },\n });\n } else {\n this.messageService.add({\n severity: \"error\",\n summary: this.translateService.instant(\"hcm.payroll.error\"),\n detail: this.translateService.instant(\"hcm.payroll.not_allowed_delete_last\"),\n });\n }\n }\n\n public add() {\n if (this.isAllowToAddHistorical) {\n this.router.navigate([\"historical-irrf-new\"], {\n relativeTo: this.activatedRoute,\n });\n } else {\n this.messageService.add({\n severity: \"error\",\n summary: this.translateService.instant(\"hcm.payroll.error\"),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n });\n }\n }\n\n private onGridLoad(payload: any) {\n if (payload && payload.length) {\n this.lastRecord = payload[0];\n }\n }\n\n private get isAllowToAddHistorical() {\n return (\n this.permission[\"incluir\"]\n );\n }\n\n private get isAllowToDeleteHistorical() {\n return (\n this.permission[\"excluir\"]\n );\n }\n\n public get scopedActions() {\n return this.getMenuActions.bind(this);\n }\n\n @Input()\n public set reloadList(condition: boolean) {\n if (condition) {\n this.loading = true;\n this.parameters = (this.parameters && { ...this.parameters }) || {};\n }\n }\n\n}\n","import { CommonModule } from \"@angular/common\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { ButtonModule, LoadingStateModule } from \"@seniorsistemas/angular-components\";\nimport { AutoCompleteModule } from \"primeng/autocomplete\";\nimport { ConfirmDialogModule } from \"primeng/confirmdialog\";\nimport { TableModule } from \"primeng/table\";\nimport { TooltipModule } from \"primeng/tooltip\";\nimport { DataListRestModule } from \"../data-list-rest/index\";\n\nimport { SharedModule } from \"../shared/shared.module\";\nimport { HistoricalBankAccountListComponent } from \"./historical-bank-account-list.component\";\nimport { HistoricalBankAccountListService } from \"./historical-bank-account-list.service\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n HttpClientModule,\n AutoCompleteModule,\n SharedModule,\n ReactiveFormsModule,\n TableModule,\n ButtonModule,\n TooltipModule,\n LoadingStateModule,\n DataListRestModule,\n ConfirmDialogModule,\n ],\n declarations: [HistoricalBankAccountListComponent],\n providers: [HistoricalBankAccountListService],\n exports: [HistoricalBankAccountListComponent],\n})\nexport class HistoricalBankAccountListModule {\n}\n","import { Operators } from '../enums';\n\nexport class EntityODataParameter {\n private _field: string;\n private _operation: Operators;\n private _value: any;\n\n constructor(entityODataParameter: { field: string; value: string; operation?: Operators }) {\n this.field = entityODataParameter.field;\n this.value = entityODataParameter.value;\n this.operation = entityODataParameter.operation;\n }\n\n set field(value) {\n this._field = value;\n }\n\n get field() {\n return this._field;\n }\n\n set operation(value) {\n this._operation = value;\n }\n\n get operation() {\n return this._operation;\n }\n\n set value(value) {\n this._value = value;\n }\n\n get value() {\n return this._value;\n }\n\n public toString(): string {\n if (this.operation === Operators.CONTAINING) {\n return `${this.operation}(lower(${this.field}), lower(${this.value}))`;\n }\n return `${this.field} ${this.operation || ''} ${this.value}`;\n }\n}\n","import { AbstractControl, Validators, ValidatorFn, ValidationErrors } from \"@angular/forms\";\nimport { CalendarLocaleOptions } from \"@seniorsistemas/angular-components\";\nimport * as _moment from \"moment\";\nimport { unitOfTime } from \"moment\";\nimport { CompareType } from \"../../../core/enums\";\nimport { DateValidateOptions, DateCompareOptions } from \"../../../core/interfaces\";\nimport { removeCharacteresSpecials } from \"../helpers\";\n\nconst moment = _moment;\nconst dateStartG5 = moment('31/12/1900', 'DD/MM/YYYY');\nconst dateEndG5 = moment('04/06/2080', 'DD/MM/YYYY');\n\nexport class DateValidator {\n constructor() { }\n\n /**\n * Validador que verifica se a data está no formato correto.\n * @param dateFormat Formato da data\n * @param options Opções para validar a data\n * @returns Objeto no formato { invalidDate: true } indicando que a data não é válida\n */\n static isValidDate(dateFormat: string, options?: DateValidateOptions): ValidatorFn {\n const validator: ValidatorFn = (control: AbstractControl): Validators => {\n const useG5DateRange = options && options.hasOwnProperty('useG5DateRange') ? options.useG5DateRange : true;\n const value = removeCharacteresSpecials(control.value);\n dateFormat = removeCharacteresSpecials(dateFormat);\n if (value && dateFormat && value.length === dateFormat.length && !control.value.includes('_')) {\n const dateValue = moment(value, dateFormat);\n const valid = dateValue.isValid();\n const isValidRange = useG5DateRange ? dateValue.isBetween(dateStartG5, dateEndG5, null, '[]') : true;\n return valid && isValidRange ? null : { invalidDate: true };\n }\n return null;\n };\n return validator;\n }\n /**\n * Validador que verifica se data inserida no formulário é inferior à data informada.\n * @param compareToDate Data a ser comparada.\n * @param dateFormat Informações do local\n * @param granularity Granularidade da comparação. Ex.: 'day', 'mounth', 'year'.\n * @returns Objeto no formato { lowerDate: true } indicando que a data é menor\n */\n static isDateLower(compareToDate: string, dateFormat: string, granularity: unitOfTime.StartOf = 'day'): ValidatorFn {\n const options: DateCompareOptions = { compareName: \"lowerDate\", granularity: granularity };\n const validator = this.isValidDateCompare(compareToDate, dateFormat, CompareType.isBefore, options);\n return validator;\n }\n\n /**\n * Validador genérico usando comparação entre datas\n * @param compareToDate Data a ser comparada\n * @param dateFormat Informações do local\n * @param compareType Tipo de comparação\n * @param options Opções para a comparação\n * @returns Objeto no formato { nomeChave: true } indicando que a data não é válida\n */\n static isValidDateCompare(compareToDate: string, dateFormat: string, compareType: CompareType, options?: DateCompareOptions):\n ValidatorFn {\n const validator: ValidatorFn = (control: AbstractControl): Validators => {\n const value = removeCharacteresSpecials(control.value);\n dateFormat = removeCharacteresSpecials(dateFormat);\n if (value && dateFormat && value.length === dateFormat.length && !control.value.includes('_')) {\n const referenceDate = moment(value, dateFormat);\n const compareTo = moment(compareToDate, dateFormat);\n return this.dateCompare(referenceDate, compareTo, compareType, options);\n }\n return null;\n };\n return validator;\n }\n\n /**\n * Retorna o formato da data de acordo com o local\n * @param calendar Informações de calendário\n * @param removeDayPart Remove os dias do formato da data (Opcional)\n * @returns Exemplo de retornos 'DDMMYYYY', 'MMYYYY', ou seja, retorna o formato somente com letras\n */\n static getDateFormatFromLocale(calendar: CalendarLocaleOptions, removeDayPart?: boolean): string {\n const dateFormat = calendar && calendar.dateFormat;\n if (dateFormat) {\n let result = dateFormat.replace(/[y]/g, \"YY\").replace(/[^a-zA-Z]/g, \"\").toUpperCase();\n if (removeDayPart) {\n result = result.replace(\"DD\", \"\");\n }\n return result;\n }\n return null;\n }\n\n /**\n * Retorna o formato da data/hora de acordo com o local\n * @param calendar Informações de calendário\n * @returns Exemplo de retornos 'DD/MM/YYYY HH:mm:ss'\n */\n static getDateTimeFormatFromLocale(calendar: CalendarLocaleOptions): string {\n if (calendar) {\n let dateFormat = calendar.dateFormat.toString();\n dateFormat = dateFormat.replace(/[y]/g, \"YY\").toUpperCase();\n dateFormat = dateFormat + \" HH:mm:ss\";\n\n return dateFormat;\n }\n return null;\n }\n\n /**\n * Retorna o formato da data de acordo com o local\n * @param calendar Informações de calendário\n * @returns Exemplo de retornos 'DD/MM/YYYY'\n */\n static getDateFormatFromCalendar(calendar: CalendarLocaleOptions): string {\n if (calendar && calendar.dateFormat) {\n let dateFormat = calendar.dateFormat.toString();\n dateFormat = dateFormat.replace(/[y]/g, \"YY\").toUpperCase();\n\n return dateFormat;\n }\n return null;\n }\n\n /**\n * Método auxiliar que realiza a comparação entre as datas e retorna um objeto caso a validação seja válida\n * @param referenceDate Data de referência para a comparação\n * @param compareToDate Data a ser comparada.\n * @param compareType Tipo de comparação.\n * @param options Opções para a comparação\n * @returns Objeto no formato { nomeChave: true } indicando que a data não é válida\n */\n private static dateCompare(referenceDate: any, compareToDate: any, compareType: CompareType, options?: DateCompareOptions):\n ValidationErrors {\n const compareTypeName: string = compareType === CompareType.isNotSame ? CompareType.isSame : compareType;\n const granularity = options && options.granularity ? options.granularity : \"day\";\n\n let comparison = referenceDate[compareTypeName](compareToDate, granularity);\n comparison = compareType === CompareType.isNotSame ? !comparison : comparison;\n if (comparison) {\n const keyName = options && options.compareName ? options.compareName : compareType;\n const result = {};\n result[keyName] = true;\n return result;\n }\n return null;\n }\n\n /**\n * Retorna uma mascara com as barras Ex: ‘DD/MM/YYYY‘\n * @param calendar\n */\n static getFormatDateWithBar(calendar: CalendarLocaleOptions): string {\n if (calendar && calendar.dateFormat) {\n let dateFormat = calendar.dateFormat.toString();\n dateFormat = dateFormat\n .replace(\"dd\", \"DD\")\n .replace(\"mm\", \"MM\")\n .replace(\"yy\", \"YYYY\");\n return dateFormat;\n }\n return null;\n }\n\n}\n","/**\n * WorkflowIntegrator\n * @version 1.0\n * @releaseDate 2020-05-27\n * @author Kallico Fróis <kallico.silva@senior.com.br>\n * @thanks Adriner Andrade <adriner.andrade@senior.com.br>\n *\n * @description Módulo desenvolvido para facilitar a integração entre a API do\n * Senior Workflow e Formulários WEB. A ferramenta foi desenvolvida para\n * interferir o mínimo possível no formulário, desacoplando seus métodos,\n * tratando as lógicas dentro da ferramenta, minimizando os impactos no\n * componente na qual é implementada.\n */\n\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\ndeclare const workflowCockpit: any;\n\nexport interface TaskData {\n processName: string;\n taskName: string;\n}\n\nexport interface NextAction {\n connectsWithAutomaticGateway: boolean; // Se a ação está associada a algum elemento de decisão automática.\n finish: boolean; // Se a ação finaliza a execução do processo.\n name: string; // Nome da ação a ser realizada.\n}\n\n@Injectable()\nexport class WorkflowIntegrator {\n private workflowCockpit: any;\n private _isRequestNew: boolean;\n private _nextAction: NextAction;\n private _nextActionName: string;\n private _taskData: TaskData;\n private _isFinishing: any;\n private _processVariables: object = {};\n private _workflowPayload: object = {};\n\n private onLoadActions: object;\n private onSubmitActions: object;\n private onRollbackActions: object;\n public processInstanceId: BehaviorSubject<number> = new BehaviorSubject(null);\n\n /**\n * ### WorkflowIntegrator - Integrador de componentes ao Senior Workflow.\n *\n * @Description\n * Instancia a classe do integrador com Senior Workflow.\n * Ao instanciar a classe automaticamente as Actions são resetadas.\n *\n * @Actions\n * As Actions são ações a serem executadas durante o ciclo de vida do Workflow\n * Estas podem ser definidas usando os métodos:\n * `addOnLoadAction()`, `addOnSubmitAction()`, `addOnRollbackAction()`.\n *\n *\n */\n constructor() {\n this.resetActions();\n }\n\n /**\n * Instancia o workflowCockpit (API de integração)\n *\n * @description\n * Ao executar este método, as `onLoadAtions` serão executadas!\n * Se houverem ações para executar logo após o carregamento do formulário no\n * Senior Workflow as **ações devem ser adicionadas anteriormente** à\n * chamada dessa função, através do método `addOnLoadAction()`.\n *\n */\n public init(): void {\n this.workflowCockpit = workflowCockpit({\n init: async (data: any, info: any): Promise<any> => {\n this._isRequestNew = info && info.isRequestNew();\n this._taskData = info && (await info.getTaskData());\n\n if (!this._isRequestNew) {\n const processVariablesFromWorkflow = await info.getInfoFromProcessVariables();\n\n this.addProcessVariable(\n \"processVariablesFromWorkflow\",\n processVariablesFromWorkflow\n );\n }\n\n this.processInstanceId.next(data.processInstanceId);\n\n return await this._onLoadWorkflow(data, info);\n },\n onSubmit: async (data: any, info: any): Promise<object> => {\n this._nextAction = data && (await data.nextAction);\n this._isFinishing = this._nextAction.finish;\n this._nextActionName = this._nextAction.name;\n\n\n await this._onSubmitWorkflow(data, info);\n\n return this._workflowPayload;\n },\n onError: async (data: any, info: any): Promise<any> => {\n await this._onRollbackWorkflow(data, info);\n },\n });\n }\n\n /** # Workflow LOAD Section # **/\n\n /**\n * Método chamado no carregamento do formulário no Senior Workflow.\n *\n ** @important\n * Deve finalizar chamando o método `_runActions(this.onSbumitActions)`.\n */\n private async _onLoadWorkflow(data: any, info: any): Promise<any> {\n return await this._runActions(this.onLoadActions);\n }\n\n /** # Workflow SUBMIT Section # **/\n\n /**\n * Método chamado ao clicar no botão `Enviar` do Senior Workflow.\n *\n * @important\n * Deve iniciar chamando o método `_runActions(this.onSbumitActions)`.\n */\n private async _onSubmitWorkflow(data: any, info: any): Promise<any> {\n return await this._runActions(this.onSubmitActions);\n }\n\n /** # Workflow ROLLBACK Section # **/\n\n /**\n * Método chamado ao ocorrer um erro no processamento do formulário por\n * parte do Senior Workflow\n *\n * * @important\n * Deve iniciar chamando o método `_runActions(this.onRollbackActions)`.\n */\n private async _onRollbackWorkflow(data: any, info: any): Promise<any> {\n return await this._runActions(this.onRollbackActions);\n }\n\n /** # ACTIONS Section # **/\n\n /**\n * Reseta os objetos com as Ações a serem efetuadas no ciclo de vida do\n * Senior Workflow.\n */\n public resetActions(): void {\n this.onLoadActions = {};\n this.onSubmitActions = {};\n this.onRollbackActions = {};\n }\n\n /**\n * Executa as ações do objeto passado nos argumentos\n *\n * @param actionsToRun Objeto onde que deve conter uma chave\n * identificadora e um valor com um *método* ou *promise* a ser executada/\n * resolvida\n */\n private async _runActions(actionsToRun: object): Promise<any> {\n const result: object = {};\n\n await Promise.all(\n Object.entries(actionsToRun).map(async ([key, value]) => {\n try {\n result[key] = await value();\n return;\n } catch (err) {\n throw Error(err);\n }\n })\n );\n\n return result;\n }\n\n /** # Actions SETTERs # */\n\n /**\n * Adiciona um ação à pilha para execução no momento do carregamento do\n * formulário no Senior Workflow;\n *\n * @important\n * As Ações de carregamento **devem ser adicionadas antes da chamada do\n * método** `init()`!\n *\n * @param id Nome identificador para a callback a ser executada;\n * @param callback Função a ser executada;\n */\n public addOnLoadAction(id: string, callback: any) {\n this.onLoadActions[id] = callback;\n }\n\n /**\n * Adiciona um ação à pilha para execução no momento do envio do formulário\n * para o Senior Workflow\n *\n * @param id Nome identificador para a callback a ser executada;\n * @param callback Função a ser executada;\n */\n public addOnSubmitAction(id: string, callback: any) {\n this.onSubmitActions[id] = callback;\n }\n\n /**\n * Adiciona um ação à pilha para execução em caso de haver um erro no\n * processamento do formulário por parte do Senior Workflow.\n *\n * @param id Nome identificador para a callback a ser executada;\n * @param callback Função a ser executada;\n */\n public addOnRollbackAction(id: string, callback: any) {\n this.onRollbackActions[id] = callback;\n }\n\n /**\n * Adiciona um objeto às Variáveis do Processo (`_processVariables`)\n *\n * @param id Nome identificador do objeto a ser adicionado\n * @param processVariable Objeto a ser adicionado as variáveis do processo\n */\n public addProcessVariable(id: string, processVariable: any): void {\n try {\n this._processVariables[id] = processVariable;\n } catch (err) {\n const error = {\n erro: err,\n message: `Não foi possível adicionar a variável ${id} às variáveis do processo.`,\n };\n throw error;\n }\n }\n\n /**\n * Define o objecto payload que será enviado ao Senior Worfkflow quando o usuário\n * clicar no botão enviar.\n *\n * @param payload Objeto a ser enviado para o Workflow\n */\n public setWorkflowPayload(payload: object): void {\n\n this._workflowPayload = payload;\n\n return;\n }\n\n /** # Actions GETTERs # */\n\n public get loadActions(): object {\n return this.onLoadActions;\n }\n\n public get submitActions(): object {\n return this.onSubmitActions;\n }\n\n public get rollbackActions(): object {\n return this.onRollbackActions;\n }\n\n /** # GETTERs # **/\n\n public get isRequestNew(): boolean {\n return this._isRequestNew;\n }\n\n public get isFinishing(): boolean {\n return this._isFinishing;\n }\n\n public get nextActionName(): string {\n return this._nextActionName;\n }\n\n public get taskData(): TaskData {\n return this._taskData;\n }\n\n public get processVariables(): any {\n const p = new Promise((resolve, reject) => {\n if (this._processVariables) {\n resolve(this._processVariables);\n } else {\n reject(\"Não foram encontradas variáveis para o processo\");\n }\n });\n\n p.then((data: any) => {\n this._processVariables = data;\n }).catch((err: any) => {\n throw err;\n });\n\n return this._processVariables;\n }\n}\n","import { OnDestroy } from \"@angular/core\";\nimport { Component, OnInit } from \"@angular/core\";\nimport { Router, ActivatedRoute } from \"@angular/router\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { WorkflowDataService } from \"../../services/workflow-data.service\";\n\n\n@Component({\n selector: \"lib-employee-selector\",\n templateUrl: \"./employee-selector.component.html\",\n styleUrls: [\"./employee-selector.component.scss\"],\n})\nexport class EmployeeSelectorComponent implements OnInit, OnDestroy {\n public results: any[];\n public employeeSelected: any;\n private _useWorkflow: boolean;\n\n private ngUnsubscribe = new Subject();\n private _routeEndpoint: string;\n\n constructor(\n private router: Router,\n private activatedRoute: ActivatedRoute,\n private workflowDataService: WorkflowDataService\n ) {}\n\n public ngOnInit(): void {\n this.registerSubscribers();\n }\n\n public registerSubscribers(): void {\n this.activatedRoute.data.pipe(takeUntil(this.ngUnsubscribe)).subscribe((data) => {\n this.useWorkflow = !!(data && data.useWorkflow);\n this.routeEndpoint = data && data.routeEndpoint;\n\n if (this.useWorkflow) {\n this.workflowDataService.setUseWorkflow(this.useWorkflow);\n }\n });\n }\n\n public onSelectEmployee(): void {\n const { tableId } = this.employeeSelected;\n\n if (tableId) {\n this.navigate(tableId);\n }\n }\n\n private navigate(employeeId: string): void {\n this.router.navigate([`workflow/${employeeId}/${this._routeEndpoint}`]);\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next(true);\n this.ngUnsubscribe.complete();\n }\n\n public set useWorkflow(v: boolean) {\n this._useWorkflow = v;\n }\n\n public get useWorkflow(): boolean {\n return this._useWorkflow;\n }\n\n public set routeEndpoint(routeEndpoint: string) {\n this._routeEndpoint = routeEndpoint;\n }\n\n public get routeEndpoint(): string {\n return this._routeEndpoint;\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { PanelModule } from \"primeng/panel\";\nimport { InputRestAutoCompleteEmployeeModelModule } from \"../input-rest-auto-complete-employee-model/index\";\nimport { SharedModule } from \"../shared/shared.module\";\n\nimport { EmployeeSelectorComponent } from \"./employee-selector.component\";\n\nexport { WorkflowDataService } from \"../../services/workflow-data.service\";\n\n@NgModule({\n imports: [SharedModule, PanelModule, InputRestAutoCompleteEmployeeModelModule],\n declarations: [EmployeeSelectorComponent],\n exports: [EmployeeSelectorComponent],\n})\nexport class EmployeeSelectorModule {}\n","import { Component, Input } from \"@angular/core\";\nimport { DivergenceArray } from \"../../services/form-comparator.service\";\n\n@Component({\n selector: \"from-to\",\n templateUrl: \"./from-to.component.html\",\n})\nexport class FromToComponent {\n @Input()\n divergentFormData: DivergenceArray[];\n\n constructor() {}\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FromToComponent } from \"./from-to.component\";\nimport { PanelModule } from \"primeng/panel\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\nimport { InputTextModule } from \"primeng/inputtext\";\n\n@NgModule({\n imports: [CommonModule, PanelModule, TranslateModule, ReactiveFormsModule, InputTextModule],\n declarations: [FromToComponent],\n exports: [FromToComponent],\n})\nexport class FromToModule {}\n","export class FormatUtilsService {\n\n /**\n * Retorna o CPF formatado\n * @param cpf CPF\n */\n static getFormattedCpf(cpf: string): string {\n if (cpf) {\n return cpf\n .replace(/\\D/g, \"\")\n .replace(/(\\d{3})(\\d)/, \"$1.$2\")\n .replace(/(\\d{3})(\\d)/, \"$1.$2\")\n .replace(/(\\d{3})(\\d)/, \"$1-$2\");\n }\n return null;\n }\n\n /**\n * Retorna o CPF formatado\n * @param cpf CPF\n */\n static getFormattedCpfEdited(cpf: string): string {\n if (!cpf) return '';\n\n cpf = cpf.replace(/\\D/g, '').slice(0, 11);\n\n if (cpf.length > 9) {\n cpf = cpf.replace(/^(\\d{3})(\\d{3})(\\d{3})(\\d{2})$/, \"$1.$2.$3-$4\");\n } else if (cpf.length > 6) {\n cpf = cpf.replace(/^(\\d{3})(\\d{3})(\\d{0,3})$/, \"$1.$2.$3\");\n } else if (cpf.length > 3) {\n cpf = cpf.replace(/^(\\d{3})(\\d{0,3})$/, \"$1.$2\");\n }\n\n return cpf;\n }\n\n /**\n * Retorna o CNPJ formatado\n * @param cnpj CNPJ\n */\n static getFormattedCnpj(cnpj: string): string {\n if (cnpj) {\n return cnpj\n .replace(/\\D/g, \"\")\n .replace(/(\\d{2})(\\d)/, \"$1.$2\")\n .replace(/(\\d{3})(\\d)/, \"$1.$2\")\n .replace(/(\\d{3})(\\d)/, \"$1/$2\")\n .replace(/(\\d{4})(\\d)/, \"$1-$2\");\n }\n return null;\n }\n\n /**\n * Retorna o CNPJ formatado\n * @param cnpj CNPJ\n */\n static getFormattedCnpjEdited(cnpj: string): string {\n if (!cnpj) return '';\n\n cnpj = cnpj.replace(/\\D/g, '').slice(0, 14);\n\n if (cnpj.length > 12) {\n cnpj = cnpj.replace(/^(\\d{2})(\\d{3})(\\d{3})(\\d{4})(\\d{2})$/, \"$1.$2.$3/$4-$5\");\n } else if (cnpj.length > 8) {\n cnpj = cnpj.replace(/^(\\d{2})(\\d{3})(\\d{3})(\\d{0,4})$/, \"$1.$2.$3/$4\");\n } else if (cnpj.length > 5) {\n cnpj = cnpj.replace(/^(\\d{2})(\\d{3})(\\d{0,3})$/, \"$1.$2.$3\");\n } else if (cnpj.length > 2) {\n cnpj = cnpj.replace(/^(\\d{2})(\\d{0,3})$/, \"$1.$2\");\n }\n\n return cnpj;\n }\n\n /**\n * Retorna a mascara do CPF/CNPJ\n * @param key Valores possíveis são CPF ou CNPJ\n */\n static getCpfCnpjMask(key: string) {\n switch (key) {\n case \"CPF\":\n return \"999.999.999-99\";\n case \"CNPJ\":\n return \"99.999.999/9999-99\";\n default:\n return \"\";\n }\n }\n\n /**\n * Método para formatar o número de inscrição do cliente.\n * @param subscriptionNumber\n * @param pixKeyType\n * @returns\n */\n static getFormattedSubscriptionNumber(subscriptionNumber: string, pixKeyType: any): string {\n if (!subscriptionNumber || !pixKeyType) return subscriptionNumber;\n\n switch (pixKeyType) {\n case 'CNPJ':\n return this.getFormattedCnpjEdited(subscriptionNumber);\n case 'CPF':\n return this.getFormattedCpfEdited(subscriptionNumber);\n default:\n return subscriptionNumber;\n }\n }\n\n /**\n * Metódo para formatar o número de telefone.\n * @param telephoneNumber String contendo o número de telefone.\n * @returns String formatada com o número de telefone.\n */\n static getFormattedTelephoneNumber(telephoneNumber: string): string {\n let tel = telephoneNumber.replace(/\\D/g, '');\n tel = tel.replace(/^0/, '');\n if (tel.length > 10) {\n // ########## -> (##) #####-####\n tel = tel.replace(/^(\\d{2})?(\\d{5})?(\\d{4}).*/, '($1) $2-$3');\n } else if (tel.length > 9) {\n // AA######### -> (AA) ####-####\n tel = tel.replace(/^(\\d{2})?(\\d{4})?(\\d{4}).*/, '($1) $2-$3');\n } else if (tel.length > 5) {\n // ####### -> (##) ####-#\n tel = tel.replace(/^(\\d{2})?(\\d{4})?(\\d{0,4}).*/, '($1) $2-$3');\n } else if (tel.length > 1) {\n // #### -> (##) ##\n tel = tel.replace(/^(\\d{2})?(\\d{0,5}).*/, '($1) $2');\n } else {\n if (tel !== '') { tel = tel.replace(/^(\\d*)/, '($1'); }\n }\n\n return tel;\n }\n\n /**\n * Metódo para formatar a porcentagem para 2 casas decimais.\n * @param value Número a ser formatado.\n */\n static getFormattedPercentage(value: string): string {\n return parseFloat(value).toFixed(2).replace('.', ',') + '%';\n }\n\n /**\n * Metódo para formatar o número de telefone de um campo Input.\n * @param event Evento do Input do campo de telefone.\n */\n static formatTelephoneInputEvent(event: any) {\n let telephoneNumber = event.target.value;\n\n // Permite Backspace para usuário remover \")\" e \"-\"\n if (event.keyCode === 8 && (telephoneNumber.length === 9 || telephoneNumber.length === 4 || telephoneNumber.length === 3)) {\n return;\n }\n\n event.target.value = FormatUtilsService.getFormattedTelephoneNumber(telephoneNumber);\n }\n\n /**\n * Formata o campo de input de CPF em tempo real.\n * @param event Evento do input\n */\n static formatCpfInputEvent(event: any): void {\n let cpf = event.target.value;\n\n // Permite apagar nos pontos sensíveis\n if (event.keyCode === 8 && (\n cpf.length === 4 || cpf.length === 8 || cpf.length === 12)) {\n return;\n }\n\n event.target.value = FormatUtilsService.getFormattedCpfEdited(cpf);\n }\n\n /**\n * Formata o campo de input de CNPJ em tempo real.\n * @param event Evento do input\n */\n static formatCnpjInputEvent(event: any): void {\n let cnpj = event.target.value;\n\n // Permite apagar nos pontos sensíveis\n if (event.keyCode === 8 && (\n cnpj.length === 3 || cnpj.length === 7 || cnpj.length === 11 || cnpj.length === 16)) {\n return;\n }\n\n event.target.value = FormatUtilsService.getFormattedCnpjEdited(cnpj);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SharedStateService {\n private hideFieldSubject = new BehaviorSubject<boolean>(true);\n hideField$ = this.hideFieldSubject.asObservable();\n\n private showButtonSubject = new BehaviorSubject<boolean>(true);\n showButton$ = this.showButtonSubject.asObservable();\n\n private saveButtonSubject = new BehaviorSubject<boolean>(true);\n saveButton$ = this.saveButtonSubject.asObservable();\n\n private showEditMode = new BehaviorSubject<boolean>(true);\n showEditMode$ = this.showEditMode.asObservable();\n\n private activeValidatorsOnEditModalOpen = new Subject<void>();\n activeValidatorsOnEditModalOpen$ = this.activeValidatorsOnEditModalOpen.asObservable();\n\n setHideField(value: boolean) {\n this.hideFieldSubject.next(value);\n }\n\n setShowButton(value: boolean) {\n this.showButtonSubject.next(value);\n }\n\n setSaveButton(value: boolean) {\n this.saveButtonSubject.next(value);\n }\n\n setShowEditMode(value: boolean) {\n this.showEditMode.next(value);\n }\n\n triggerActiveValidatorsOnEditModalOpen() {\n this.activeValidatorsOnEditModalOpen.next();\n }\n}\n","import { Validators, AbstractControl } from \"@angular/forms\";\n\nexport class GenericValidator {\n constructor() { }\n\n /**\n * Valida o CEI (Cadastro específico de INSS) digitado.\n */\n static isValidCei(control: AbstractControl): Validators {\n const cei = control.value;\n\n if (!cei) return null;\n else if (cei.length != 11) return null;\n\n const multiplicadorBase = \"3298765432\";\n let total = 0;\n let resto = 0;\n let multiplicando = 0;\n let multiplicador = 0;\n\n if (\n cei.length !== 11 ||\n cei === \"00000000000\" ||\n cei === \"11111111111\" ||\n cei === \"22222222222\" ||\n cei === \"33333333333\" ||\n cei === \"44444444444\" ||\n cei === \"55555555555\" ||\n cei === \"66666666666\" ||\n cei === \"77777777777\" ||\n cei === \"88888888888\" ||\n cei === \"99999999999\"\n )\n return { invalidCei: true };\n else {\n for (let i = 0; i < 10; i++) {\n multiplicando = parseInt(cei.substring(i, i + 1), 10);\n multiplicador = parseInt(multiplicadorBase.substring(i, i + 1), 10);\n total += multiplicando * multiplicador;\n }\n\n resto = 11 - (total % 11);\n resto = resto === 10 || resto === 11 ? 0 : resto;\n\n const digito = parseInt(\"\" + cei.charAt(10), 10);\n return resto === digito ? null : { invalidCei: true };\n }\n }\n\n /**\n * Valida se o CPF é valido. Deve-se ser informado o cpf sem máscara.\n */\n static isValidCpf(control: AbstractControl): Validators {\n const cpf = control.value;\n if (cpf) {\n let numbers, digits, sum, i, result, equalDigits;\n equalDigits = 1;\n if (cpf.length < 11) {\n return null;\n }\n\n for (i = 0; i < cpf.length - 1; i++) {\n if (cpf.charAt(i) !== cpf.charAt(i + 1)) {\n equalDigits = 0;\n break;\n }\n }\n if (!equalDigits) {\n numbers = cpf.substring(0, 9);\n digits = cpf.substring(9);\n sum = 0;\n for (i = 10; i > 1; i--) {\n sum += numbers.charAt(10 - i) * i;\n }\n result = sum % 11 < 2 ? 0 : 11 - (sum % 11);\n if (result !== Number(digits.charAt(0))) {\n return { cpfNotValid: true };\n }\n numbers = cpf.substring(0, 10);\n sum = 0;\n for (i = 11; i > 1; i--) {\n sum += numbers.charAt(11 - i) * i;\n }\n result = sum % 11 < 2 ? 0 : 11 - (sum % 11);\n if (result !== Number(digits.charAt(1))) {\n return { cpfNotValid: true };\n }\n return null;\n } else {\n return { cpfNotValid: true };\n }\n }\n return null;\n }\n\n /**\n * Valida se o CNPJ é valido. Deve-se ser informado o cpf sem máscara.\n */\n static isValidCnpj(control: AbstractControl): Validators {\n let cnpj = control.value;\n\n if (cnpj) {\n let size, numbers, digits, sum, pos, result;\n cnpj = cnpj.replace(/[^\\d]+/g, '');\n\n if (cnpj.length !== 14) {\n return null;\n }\n\n // Elimina CNPJs invalidos conhecidos\n if (\n cnpj === '00000000000000' ||\n cnpj === '11111111111111' ||\n cnpj === '22222222222222' ||\n cnpj === '33333333333333' ||\n cnpj === '44444444444444' ||\n cnpj === '55555555555555' ||\n cnpj === '66666666666666' ||\n cnpj === '77777777777777' ||\n cnpj === '88888888888888' ||\n cnpj === '99999999999999'\n ) {\n return { cnpjNotValid: true };\n }\n\n // Valida DVs\n size = cnpj.length - 2;\n numbers = cnpj.substring(0, size);\n digits = cnpj.substring(size);\n sum = 0;\n pos = size - 7;\n for (let i = size; i >= 1; i--) {\n sum += numbers.charAt(size - i) * pos--;\n if (pos < 2) {\n pos = 9;\n }\n }\n result = sum % 11 < 2 ? 0 : 11 - (sum % 11);\n if (result !== Number(digits.charAt(0))) {\n return { cnpjNotValid: true };\n }\n\n size = size + 1;\n numbers = cnpj.substring(0, size);\n sum = 0;\n pos = size - 7;\n for (let i = size; i >= 1; i--) {\n sum += numbers.charAt(size - i) * pos--;\n if (pos < 2) {\n pos = 9;\n }\n }\n result = sum % 11 < 2 ? 0 : 11 - (sum % 11);\n if (result !== Number(digits.charAt(1))) {\n return { cnpjNotValid: true };\n }\n\n return null;\n }\n return null;\n }\n\n /**\n * Válida o número de telefone da chave PIX.\n */\n static isValidPhoneNumber(control: AbstractControl): Validators {\n let cellPhoneKey = control.value || '';\n cellPhoneKey = cellPhoneKey.replace(/[\\s()-]/g, '');\n const regexNumberTelephone = /^[1-9][\\d]{1,2}\\d{8,10}$/;\n\n const isValidNumberTelephone = regexNumberTelephone.test(cellPhoneKey);\n\n return isValidNumberTelephone ? null : { invalidPhoneNumber: true };\n }\n\n /**\n * Valida o email da chave PIX.\n */\n static isValidEmail(control: AbstractControl): Validators {\n const emailKey = control.value;\n const regexValidEmail = /^[\\w-\\.]+@[\\w-]+(\\.[\\w-]{2,4}){1,2}$/;\n\n const isValidEmail = regexValidEmail.test(emailKey);\n\n return isValidEmail ? null : { invalidEmail: true };\n }\n}\n","import {\n AbstractControl,\n FormBuilder,\n FormGroup,\n ValidatorFn,\n Validators,\n } from \"@angular/forms\";\n import { GenericValidator } from \"../utils/generic-validators\";\n import { FormatUtilsService } from \"../utils/format-utils/format-utils.service\";\n\n export abstract class HistoricakPixAccountBase {\n protected formBuilder: FormBuilder;\n protected _paramsForm: FormGroup = new FormGroup({});\n protected _defaultCpfNumber: string = null;\n\n public initialValidatorOfPercentage: ValidatorFn[] = [Validators.required, Validators.min(0.01)];\n public pixAccountList: object[] = [];\n public maxValuePercentage = 100.0;\n public pixKeyType: string;\n public pixAccountFormGroup: FormGroup;\n public isShowPixKeyFieldValidatorMessage = false;\n\n constructor(formBuilder: FormBuilder) {\n this.formBuilder = formBuilder;\n this.createFormGroupBase();\n }\n\n public phoneMask(event: any): void {\n FormatUtilsService.formatTelephoneInputEvent(event);\n }\n\n public cpfMask(event: any): void {\n FormatUtilsService.formatCpfInputEvent(event);\n }\n\n public cnpjMask(event: any): void {\n FormatUtilsService.formatCnpjInputEvent(event);\n }\n\n public onChangePixKeyType(item: any, form?: FormGroup): void {\n if (!item || !item.key) return;\n\n this.pixKeyType = item.key;\n\n const targetForm = (typeof form !== 'undefined' && form !== null)\n ? form\n : this.pixAccountFormGroup;\n\n this.isShowPixKeyFieldValidatorMessage = true;\n\n const pixKeyControl = targetForm.get(\"pixKey\");\n if (pixKeyControl) {\n pixKeyControl.reset();\n }\n\n this.setPixKeyValidators(true, targetForm);\n\n if (item.key === \"CPF\") {\n this.setDefaultCpfPixKey(targetForm);\n }\n }\n\n public onClearPixKeyType(form?: FormGroup): void {\n var targetForm = (typeof form !== 'undefined' && form !== null)\n ? form\n : this.pixAccountFormGroup;\n\n this.isShowPixKeyFieldValidatorMessage = false;\n\n if (targetForm.get(\"pixKey\")) {\n targetForm.get(\"pixKey\").reset();\n }\n }\n\n public setDefaultCpfPixKey(form?: FormGroup): void {\n var targetForm = (typeof form !== 'undefined' && form !== null)\n ? form\n : this.pixAccountFormGroup;\n\n if (this._defaultCpfNumber) {\n if (targetForm.get(\"pixKey\")) {\n targetForm.get(\"pixKey\").setValue(this._defaultCpfNumber);\n }\n } else {\n var sheetDocument = this._paramsForm.get(\"sheetDocument\");\n if (sheetDocument && sheetDocument.get(\"cpfNumber\")) {\n var cpf = sheetDocument.get(\"cpfNumber\").value;\n if (cpf && targetForm.get(\"pixKey\")) {\n targetForm.get(\"pixKey\").setValue(cpf);\n }\n }\n }\n }\n\n protected createFormGroupBase(): void {\n this.pixAccountFormGroup = this.formBuilder.group({\n id: this.formBuilder.control(null),\n index: this.formBuilder.control(null),\n employee: this.formBuilder.control({ value: { tableId: null }, disabled: true }),\n dateChange: this.formBuilder.control(null),\n pixKeyType: this.formBuilder.control(null, Validators.required),\n pixKey: this.formBuilder.control(null),\n percentage: this.formBuilder.control(\n null,\n Validators.compose([\n ...this.initialValidatorOfPercentage,\n Validators.max(this.maxValuePercentage),\n ])\n ),\n externalId: this.formBuilder.control(null),\n customFields: this.formBuilder.control(null),\n });\n }\n\n protected setValidatorsAccordingList(\n pixAccountList: object[],\n index: number | null = null,\n isEditMode: boolean = true,\n form?: FormGroup\n ): void {\n var targetForm = (typeof form !== 'undefined' && form !== null)\n ? form\n : this.pixAccountFormGroup;\n\n this.pixAccountList = (pixAccountList && pixAccountList.length > 0)\n ? [].concat(pixAccountList)\n : [];\n\n var percentageIncluded: number[] = [];\n\n for (var i = 0; i < this.pixAccountList.length; i++) {\n var field: any = this.pixAccountList[i];\n if (field && field.percentage && i !== index) {\n percentageIncluded.push(field.percentage);\n }\n }\n\n this.beforeSetPixKeyTypeValidator(targetForm);\n this.setPixKeyValidators(isEditMode, targetForm);\n this.validatePercentageValid(percentageIncluded, targetForm);\n }\n\n protected beforeSetPixKeyTypeValidator(form: FormGroup): void {\n const control = form.get(\"pixKeyType\");\n\n if (this.pixAccountList && this.pixAccountList.length) {\n control.setValidators(\n Validators.compose([\n Validators.required,\n this.validateDuplicatePixKeyTypeBankAccount(this.pixAccountList),\n ])\n );\n } else {\n control.setValidators(Validators.required);\n }\n control.updateValueAndValidity();\n }\n\n protected setPixKeyValidators(isEditMode: boolean, form: FormGroup): void {\n const pixKey = form.get(\"pixKey\");\n switch (this.pixKeyType) {\n case \"TELEPHONE\":\n pixKey.setValidators(Validators.compose([Validators.required, GenericValidator.isValidPhoneNumber]));\n break;\n case \"EMAIL\":\n pixKey.setValidators(Validators.compose([Validators.required, GenericValidator.isValidEmail]));\n break;\n case \"CPF\":\n pixKey.setValidators(Validators.compose([Validators.required, GenericValidator.isValidCpf]));\n break;\n case \"CNPJ\":\n pixKey.setValidators(Validators.compose([Validators.required, GenericValidator.isValidCnpj]));\n break;\n case \"RANDOM_KEY\":\n pixKey.setValidators(Validators.required);\n break;\n default:\n pixKey.clearValidators();\n }\n\n if (isEditMode) {\n pixKey.enable();\n }\n\n pixKey.updateValueAndValidity();\n }\n\n protected validatePercentageValid(listValue: number[], form: FormGroup): void {\n const percentage = form.get(\"percentage\");\n this.maxValuePercentage = listValue.reduce((acc, val) => acc - val, 100.0);\n\n percentage.setValidators(\n Validators.compose([\n ...this.initialValidatorOfPercentage,\n Validators.max(this.maxValuePercentage),\n ])\n );\n\n percentage.updateValueAndValidity();\n }\n\n private validateDuplicatePixKeyTypeBankAccount(listCompare: object[]) {\n return (control: AbstractControl): { [key: string]: any } | null => {\n const value = control.value;\n const isDuplicate = listCompare.some(\n (field: any) =>\n value &&\n field.pixKeyType.key === \"BANK_ACCOUNT\" &&\n value.key === \"BANK_ACCOUNT\"\n );\n return isDuplicate ? { pixKeyTypeBankAccountDuplicate: true } : null;\n };\n }\n\n public get paramsForm(): FormGroup {\n return this._paramsForm;\n }\n\n public set paramsForm(value: FormGroup) {\n this._paramsForm = value;\n }\n\n public get defaultCpfNumber(): string {\n return this._defaultCpfNumber;\n }\n\n public set defaultCpfNumber(value: string) {\n this._defaultCpfNumber = value;\n }\n }\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { HttpClientService } from '../shared/http-client.service';\nimport { ServiceType } from '../../core/enums/serviceType';\n\n@Injectable()\nexport class HistoricalPixAccountService {\n constructor(private http: HttpClientService) {}\n\n query(path: string, body: object, service: ServiceType = ServiceType.PAYROLL): Observable<any> {\n return this.http.query(path, body, service);\n }\n\n enumQuery() {\n const path = 'enumQuery';\n const body = {\n names: ['PixKeyType']\n };\n\n return this.http.query(path, body, ServiceType.PAYROLL);\n }\n}\n","import {\n Component,\n OnInit,\n ViewChild,\n Input,\n ChangeDetectorRef,\n AfterViewInit,\n OnDestroy,\n EventEmitter,\n Output,\n OnChanges,\n SimpleChanges,\n} from \"@angular/core\";\nimport { FormGroup, FormBuilder, Validators } from \"@angular/forms\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { CustomFieldsComponent, NumberLocaleOptions } from \"@seniorsistemas/angular-components\";\nimport { compareValues, isValid, mountCustomToSave } from \"../utils/helpers\";\nimport { DirectionEnumeration } from \"../../core/enums\";\nimport { Subject } from \"rxjs\";\nimport { FormatUtilsService } from \"../utils/format-utils/format-utils.service\";\nimport { SharedStateService } from \"../shared/shared-state.service\";\nimport { HistoricakPixAccountBase } from \"./historical-pix-account-base\";\nimport { HistoricalPixAccountService } from \"./historical-pix-account.service\";\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: \"c-historical-pix-account\",\n templateUrl: \"./historical-pix-account.component.html\",\n styleUrls: [\"./historical-pix-account.component.scss\"],\n})\nexport class HistoricalPixAccountComponent extends HistoricakPixAccountBase implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n @ViewChild(CustomFieldsComponent, { static: false })\n public customFields: CustomFieldsComponent;\n @ViewChild('dataListPix', { static: false }) dataListPix: any;\n @Input()\n public formGroup: FormGroup;\n @Input()\n public fieldFormGroup: string;\n @Input()\n public _dateChange: string;\n @Input()\n public _displayDateChange: string;\n @Input()\n public recordByRow: number = 1;\n @Input()\n public showDateChange: boolean = false;\n @Input()\n public msgTooltipAdd: string;\n @Input()\n public isEditMode: boolean = false;\n @Input()\n public isViewMode: boolean = false;\n @Input()\n public currency: NumberLocaleOptions;\n @Input()\n public customEntity: string;\n @Input()\n public customService: string;\n @Input()\n public withSideBar: boolean = true;\n @Input()\n public permission: object;\n @Input()\n public listDataReciever: any[] = [];\n @Input()\n public addExistentHistoricData: any[] = [];\n @Input()\n public getListPixAccount: object[] = [];\n @Input()\n public isEditModeForSave: boolean = false;\n\n @Output()\n public isViewModeActive: EventEmitter<any> = new EventEmitter<boolean>();\n @Output()\n public isEditModeActive: EventEmitter<any> = new EventEmitter<boolean>();\n @Output()\n public isDeleteModeActive: EventEmitter<any> = new EventEmitter<boolean>();\n @Output()\n public isValidChangeForm: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n\n private listFromApp: any[] = [];\n private visibleChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n private ngUnsubscribe = new Subject();\n private historicalPixAccountList: FormGroup;\n private orderBy: { field: string; direction: DirectionEnumeration } = {\n field: \"dateChange\",\n direction: DirectionEnumeration.DESC,\n };\n\n private _visible: boolean;\n public pixAccountItemInput: object = {};\n public totalRecords: number = 0;\n public actionLabel: string = this.translateService.instant(\"hcm.payroll.entries_query_actions_total_title\");\n public loading = true;\n public parameters: any;\n public msgTotalLimitByPercentage: string;\n public listData: object[] = [];\n public listDataNoPage: object[] = [];\n public showButtonView = true;\n public showEditMode = false;\n public hasRecordsPix = true;\n public maxValuePercentage: number = 100.00;\n public hideFields = this.sharedStateService.hideField$;\n public suggestions: any[] = [];\n public formGroupByRow: { [index: number]: FormGroup } = {};\n\n public cols = [\n {\n label: this.translateService.instant(\"hcm.payroll.employees_addition_pix_key_type\"),\n field: \"pixKeyType\",\n },\n {\n label: this.translateService.instant(\"hcm.payroll.employees_addition_pix_key\"),\n field: \"pixKey\",\n },\n {\n label: this.translateService.instant(\"hcm.payroll.historical_pix_account_label_percentage\"),\n field: \"percentage\",\n },\n {\n label: this.translateService.instant(\"hcm.payroll.movimentation_generic_action\"),\n field: \"actions\",\n }\n ];\n actions = (rowData: any = {}, key: any) => {\n return [\n {\n visible: this.isEditMode,\n label: this.translateService.instant(\"hcm.payroll.employees_image_cropper_view\"),\n command: () => {\n if (this.isAllowToViewHistorical) {\n rowData[\"index\"] = key;\n this.pixAccountItemInput = { currentItem: rowData, listData: this.listDataNoPage, isEditMode: false };\n this.visible = true;\n } else {\n this.isViewModeActive.emit(true);\n }\n },\n },\n {\n visible: !!(!this.isEditMode && this.withSideBar),\n label: this.translateService.instant(\"hcm.payroll.edit\"),\n command: () => {\n if (this.isAllowToEditHistorical) {\n rowData[\"index\"] = key;\n this.pixAccountItemInput = { currentItem: rowData, listData: this.listDataNoPage, isEditMode: true };\n this.visible = true;\n } else {\n this.isEditModeActive.emit(true);\n if (this.listFromApp.length == 0) {\n rowData[\"index\"] = key;\n this.pixAccountItemInput = { currentItem: rowData, listData: this.listDataNoPage, isEditMode: true };\n this.visible = true;\n }\n }\n },\n },\n {\n visible: !this.isEditMode || this.showEditMode,\n label: this.translateService.instant(\"hcm.payroll.delete\"),\n command: () => {\n if (this.isAllowToDeleteHistorical) {\n this.loading = true;\n this.deleteAnnuityItem(key);\n } else {\n this.isDeleteModeActive.emit(true);\n if (this.listFromApp.length == 0) {\n this.loading = true;\n this.deleteAnnuityItem(key);\n }\n }\n },\n },\n ];\n }\n\n constructor(\n private translateService: TranslateService,\n private cd: ChangeDetectorRef,\n formBuilder: FormBuilder,\n private sharedStateService: SharedStateService,\n private service: HistoricalPixAccountService,\n ) {\n super(formBuilder);\n this.createFormGroup();\n }\n\n ngOnInit() {\n this.formGroup.setControl(this.fieldFormGroup, this.historicalPixAccountList);\n this.sharedStateService.showButton$.subscribe((value) => {\n this.showButtonView = value;\n });\n\n this.sharedStateService.showEditMode$.subscribe((value) => {\n this.showEditMode = value;\n this.isEditModeForSave = value;\n });\n\n this.sharedStateService.activeValidatorsOnEditModalOpen$\n .subscribe(() => {\n Object.values(this.formGroupByRow).forEach(fg => {\n Object.values(fg.controls).forEach(control => {\n control.markAsTouched();\n control.updateValueAndValidity();\n });\n });\n this.emitFormValidity();\n });\n\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['listDataReciever'] && changes['listDataReciever'].currentValue) {\n this.listFromApp = changes['listDataReciever'].currentValue;\n }\n if (changes['addExistentHistoricData'] && changes['addExistentHistoricData'].currentValue) {\n this.getHistoricalPixAccountList();\n }\n\n if (changes['addExistentHistoricData'] && changes['addExistentHistoricData'].currentValue) {\n const newData = changes['addExistentHistoricData'].currentValue;\n this.rebuildFormGroupMap(newData);\n }\n }\n\n private createFormGroup(): void {\n this.historicalPixAccountList = this.formBuilder.group({\n historicalPixAccountList: this.formBuilder.control(null),\n });\n }\n\n ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n\n private emitFormValidity(): void {\n const allValid = Object.values(this.formGroupByRow).every(fg => {\n fg.updateValueAndValidity();\n return fg.valid;\n });\n this.isValidChangeForm.emit(allValid);\n }\n\n filterPixKeyType(event: any): void {\n const query = event.query;\n this.service.enumQuery().subscribe((response) => {\n const pixKeyTypeEnum = response.results.find((result: any) => result.enumName === 'PixKeyType');\n if (pixKeyTypeEnum) {\n this.suggestions = pixKeyTypeEnum.items.filter((item: any) =>\n item.value.toLowerCase().includes(query.toLowerCase())\n );\n } else {\n this.suggestions = [];\n }\n });\n }\n\n createPixRowFormGroup(): FormGroup {\n return this.formBuilder.group({\n pixKeyType: [null, Validators.required],\n pixKey: [null],\n percentage: [0, Validators.compose([\n ...this.initialValidatorOfPercentage,\n Validators.max(this.maxValuePercentage),\n ])]\n });\n }\n\n onPixKeyInput(event: any, index: number): void {\n const inputValue = event.target.value;\n const inputRawValue = inputValue.replace(/\\D/g, '');\n\n const form = this.formGroupByRow[index];\n const pixKeyControl = form.get('pixKey');\n\n if(pixKeyControl) {\n pixKeyControl.setValue(inputRawValue, { emitEvent: false });\n pixKeyControl.markAsDirty();\n pixKeyControl.updateValueAndValidity();\n }\n this.setPixKeyValidators(true, form);\n this.emitFormValidity();\n }\n\n onBlurPixCpfAndCnpj(index: number): void {\n const form = this.formGroupByRow[index];\n const pixKeyControl = form.get('pixKey');\n const pixKeyTypeControl = form.get('pixKeyType');\n\n if (!pixKeyControl || !pixKeyTypeControl) return;\n\n const currentValue = pixKeyControl.value;\n const pixKeyType = pixKeyTypeControl.value.key;\n const rawValue = (currentValue || '').replace(/\\D/g, '');\n\n pixKeyControl.setValue(rawValue, { emitEvent: false });\n\n if (pixKeyControl.valid) {\n form.patchValue({\n pixKeyFormatted: FormatUtilsService.getFormattedSubscriptionNumber(rawValue, pixKeyType)\n });\n }\n this.emitFormValidity();\n }\n\n public getFormattedPixKey(type: string, value: string): string {\n return FormatUtilsService.getFormattedSubscriptionNumber(value, type);\n }\n\n public syncPixDataToParentForm(): void {\n if (!this.isEditModeForSave) return;\n\n const values = Object.values(this.formGroupByRow).map(fg => {\n const value = fg.getRawValue();\n const pixKeyType = value.pixKeyType.key;\n\n if (pixKeyType === 'CPF' || pixKeyType === 'CNPJ') {\n value.pixKey = (value.pixKey || '').replace(/[.\\-\\/]/g, '');\n } else if (pixKeyType === 'TELEPHONE') {\n value.pixKey = (value.pixKey || '').replace(/[()\\s\\-]/g, '');\n }\n\n return value;\n });\n\n this.formGroup\n .get(this.fieldFormGroup)\n .get('historicalPixAccountList')\n .setValue(values);\n\n this.emitFormValidity();\n }\n\n public syncResetPixFormToParent(): void {\n this.formGroupByRow = {};\n this.historicalPixAccountList.reset();\n this.historicalPixAccountList.get('historicalPixAccountList').setValue([]);\n\n if (this.addExistentHistoricData.length) {\n this.rebuildFormGroupMap(this.addExistentHistoricData);\n }\n }\n\n public onLazyLoad(event?: any): void {\n const first = event && event.first ? event.first : 0;\n const rows = event && event.rows ? event.rows : this.recordByRow;\n const arrList = this.getHistoricalPixAccountList();\n this.listData = [];\n this.totalRecords = null;\n\n if (event && event.multiSortMeta && event.multiSortMeta.length) {\n event.multiSortMeta.map((value: any) => {\n this.orderBy.field = value.field;\n this.orderBy.direction = value.order === 1 ? DirectionEnumeration.ASC : DirectionEnumeration.DESC;\n });\n }\n\n if (arrList && arrList.length) {\n this.totalRecords = arrList.length;\n this.listData = arrList;\n this.listDataNoPage = [...arrList];\n this.listData.sort(compareValues(this.orderBy.field, this.orderBy.direction));\n this.listData = this.listData.slice(first, (first + rows));\n } else {\n this.listDataNoPage = [];\n }\n\n if (this.isEditMode || arrList && arrList.length === 1) {\n this.refreshCssInIE11();\n }\n\n this.loading = false;\n this.cd.detectChanges();\n\n }\n\n /**\n * Um Bug de CSS que acontece nas linhas da tabela, que resolve só atualizando qualquer parte do CSS da pagina.\n */\n private refreshCssInIE11() {\n if (/msie\\s|trident\\/|edge\\//i.test(window.navigator.userAgent)) {\n setTimeout( () => {\n const row = document.getElementsByClassName(\"row0\");\n if (row && row[0])\n row[0].className = 'refresh';\n }, 1);\n }\n }\n\n public add(): void {\n this.pixAccountItemInput = {};\n this.visible = true;\n }\n\n addPix(): void {\n const newItem = {\n pixKeyType: {},\n pixKey: '',\n percentage: 0\n };\n\n const index = this.addExistentHistoricData.length;\n\n this.addExistentHistoricData = [\n ...this.addExistentHistoricData,\n newItem\n ];\n\n this.formGroupByRow[index] = this.createPixRowFormGroup();\n\n this.setValidatorsAccordingList(this.addExistentHistoricData, index, true);\n\n this.emitFormValidity();\n }\n\n\n deletePix(index: number): void {\n this.addExistentHistoricData = this.addExistentHistoricData.filter((_, i) => i !== index);\n this.rebuildFormGroupMap(this.addExistentHistoricData);\n this.emitFormValidity();\n }\n\n\n private rebuildFormGroupMap(data: any[]): void {\n this.formGroupByRow = {};\n\n data.forEach((item, index) => {\n const form = this.createPixRowFormGroup();\n const pixKeyType = item.pixKeyType.key;\n const pixKeyRaw = item.pixKey;\n\n if (pixKeyType === 'CPF' || pixKeyType === 'CNPJ') {\n item.pixKey = FormatUtilsService.getFormattedSubscriptionNumber(pixKeyRaw, pixKeyType);\n }\n if (pixKeyType === 'TELEPHONE') {\n item.pixKey = FormatUtilsService.getFormattedTelephoneNumber(pixKeyRaw);\n }\n\n form.patchValue(item);\n this.formGroupByRow[index] = form;\n\n this.pixKeyType = pixKeyType;\n this.setPixKeyValidators(true, form);\n\n this.setValidatorsAccordingList(data, index, this.isEditMode);\n });\n\n this.emitFormValidity();\n }\n\n onPixKeyTypeChange(item: any, index: number): void {\n const form = this.formGroupByRow[index];\n this.onChangePixKeyType(item, form);\n\n this.addExistentHistoricData[index].pixKey = '';\n\n setTimeout(() => {\n if (this.dataListPix.editingCell) {\n this.dataListPix.editingCell = null;\n }\n });\n\n this.cd.detectChanges();\n }\n\n onPixKeyTypeClear(index: number): void {\n const form = this.formGroupByRow[index];\n this.onClearPixKeyType(form);\n }\n\n private deleteAnnuityItem(index: number): void {\n let newlist = [...this.getHistoricalPixAccountList()];\n newlist.sort(compareValues(this.orderBy.field, this.orderBy.direction));\n delete newlist[index];\n newlist = newlist.filter(val => val);\n this.historicalPixAccountList.get(\"historicalPixAccountList\").setValue(newlist);\n this.verifyTotalPercentage();\n this.onLazyLoad();\n }\n\n public getHistoricalPixAccountList(): object[] {\n if (this.historicalPixAccountList.get(\"historicalPixAccountList\") &&\n this.historicalPixAccountList.get(\"historicalPixAccountList\").value &&\n this.historicalPixAccountList.get(\"historicalPixAccountList\").value.length)\n return this.historicalPixAccountList.get(\"historicalPixAccountList\") && this.historicalPixAccountList.get(\"historicalPixAccountList\").value;\n else\n return [];\n }\n\n public addItemInList($event: any): void {\n const index = $event && $event.index >= 0 ? $event.index : null;\n const newDataList = this.getHistoricalPixAccountList() ? this.getHistoricalPixAccountList() : [];\n\n if (index != null) {\n newDataList[index] = $event;\n delete $event.index;\n } else {\n if (isValid($event[\"customFields\"]) && Object.keys($event[\"customFields\"]).length) {\n const customValue = mountCustomToSave($event[\"customFields\"]);\n $event[\"customFields\"] = [...customValue];\n }\n $event[\"dateChange\"] = this.dateChange;\n newDataList.push($event);\n }\n\n this.historicalPixAccountList.get(\"historicalPixAccountList\").setValue(newDataList);\n this.verifyTotalPercentage();\n this.onLazyLoad({ first: this.getNumberPageByIndex(index, newDataList) });\n }\n\n private getNumberPageByIndex(index: number, list: object[]): number {\n if (index) {\n const total = list.length;\n const sub = this.recordByRow - 1;\n return Math.ceil(total / this.recordByRow) * this.recordByRow - sub - 1;\n }\n return null;\n }\n\n private verifyTotalPercentage(): void {\n const list = this.getHistoricalPixAccountList() ? this.getHistoricalPixAccountList() : [];\n const arrayPercentage: any = [];\n\n if (!list.length) return this.msgTotalLimitByPercentage = null;\n\n list.filter((item: any) => arrayPercentage.push(item && item[\"percentage\"]));\n\n const sumPercentage = arrayPercentage.reduce((total: number, percentage: number) => {\n return total + percentage;\n }, 0);\n\n if (sumPercentage === 100) {\n this.msgTotalLimitByPercentage = this.translateService.instant(\"hcm.payroll.historical_pix_account_msg_limit_total_by_percentage\");\n } else {\n this.msgTotalLimitByPercentage = null;\n }\n\n }\n\n public onSyncValue(field: string, index: number): void {\n if (\n this.formGroupByRow &&\n this.formGroupByRow[index] &&\n this.formGroupByRow[index].get(field)\n ) {\n const value = this.formGroupByRow[index].get(field).value;\n this.addExistentHistoricData[index][field] = value;\n }\n this.emitFormValidity();\n }\n\n public get scopedActions() {\n return this.actions.bind(this);\n }\n\n public get recordsMessage() {\n return `${ this.totalRecords || 0 } ${ this.totalRecords === 1 ? this.translateService.instant(\"hcm.payroll.admission_register\") : this.translateService.instant(\"hcm.payroll.admission_registers\") }`;\n }\n\n public get getTooltipAndDisableButtonAdd() {\n return this.dateChange ? null : this.msgTooltipAdd;\n }\n\n @Input()\n public get dateChange(): string {\n return this._dateChange;\n }\n\n public set dateChange(value: string) {\n this._dateChange = value;\n if (this._dateChange) {\n this.listData.filter((row: any) => row[\"dateChange\"] = this._dateChange);\n }\n }\n\n @Input()\n public get displayDateChange(): string {\n return this._displayDateChange;\n }\n\n public set displayDateChange(value: string) {\n this._displayDateChange = value;\n if (this._displayDateChange) {\n this.listData.filter((row: any) => row[\"displayDateChange\"] = this._displayDateChange);\n }\n }\n\n @Input()\n public set addListData(list: object[]) {\n this.loading = true;\n this.historicalPixAccountList.get(\"historicalPixAccountList\").patchValue(list);\n this.verifyTotalPercentage();\n this.onLazyLoad();\n }\n\n @Input()\n public get visible(): boolean {\n return this._visible;\n }\n\n @Input()\n public set paramsForm(value: FormGroup) {\n this._paramsForm = value;\n }\n\n @Input()\n public set defaultCpfNumber(value: string) {\n this._defaultCpfNumber = value;\n }\n\n public set visible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(this.visible);\n }\n public close(): void {\n this.visible = false;\n }\n\n public getFormattedTelephoneNumber(telephoneNumber: string): string {\n return FormatUtilsService.getFormattedTelephoneNumber(telephoneNumber);\n }\n\n public getFormattedCpf(cpf: string): string {\n return FormatUtilsService.getFormattedCpf(cpf);\n }\n\n public getFormattedCnpj(cnpj: string): string {\n return FormatUtilsService.getFormattedCnpj(cnpj);\n }\n\n public getFormattedPercentage(value: string): string {\n return FormatUtilsService.getFormattedPercentage(value);\n }\n\n private get isAllowToAddHistorical() {\n return (\n this.permission[\"incluir\"]\n );\n }\n\n private get isAllowToDeleteHistorical() {\n return (\n this.permission[\"excluir\"]\n );\n }\n\n private get isAllowToEditHistorical() {\n return (\n this.permission[\"editar\"]\n );\n }\n\n private get isAllowToViewHistorical() {\n return (\n this.permission[\"visualizar\"]\n );\n }\n}\n","import {\n Component,\n OnInit,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n OnDestroy,\n AfterViewInit,\n ViewChild,\n} from \"@angular/core\";\nimport { FormGroup, FormBuilder, Validators, ValidatorFn, AbstractControl } from \"@angular/forms\";\nimport { NumberLocaleOptions, CustomFieldsComponent } from \"@seniorsistemas/angular-components\";\nimport { Subject } from \"rxjs\";\nimport {\n verifyValidationsForm,\n configEnabledFields,\n mountCustomToShow,\n} from \"../../utils/helpers\";\nimport { FormatUtilsService } from \"../../utils/format-utils/format-utils.service\";\nimport { SharedStateService } from \"../../shared/shared-state.service\";\nimport { HistoricakPixAccountBase } from \"../historical-pix-account-base\";\n\n@Component({\n selector: \"pix-account\",\n templateUrl: \"./historical-pix-account-form.component.html\",\n styleUrls: [\"../historical-pix-account.component.scss\"]\n})\nexport class HistoricalPixAccountFormComponent extends HistoricakPixAccountBase implements OnInit, OnDestroy, AfterViewInit {\n @ViewChild(CustomFieldsComponent, { static: true })\n customFields: CustomFieldsComponent;\n\n @Input() public currency: NumberLocaleOptions;\n @Input() public customEntity: string;\n @Input() public customService: string;\n @Input() public withSideBar: boolean = true;\n @Input() public isEditMode: boolean = false;\n\n @Output() public visibleChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output() public pixAccountItemToList: EventEmitter<any> = new EventEmitter<any>();\n\n private _visible: boolean;\n private ngUnsubscribe = new Subject();\n private employeeId: string;\n\n public labelBtnAdd: string = \"hcm.payroll.employees_add\";\n public visibleBtnSave: boolean = true;\n public isView: boolean = false;\n public isShowPixKeyFieldValidatorMessage = false;\n public hideFields = this.sharedStateService.hideField$;\n\n constructor(\n formBuilder: FormBuilder,\n private cd: ChangeDetectorRef,\n private sharedStateService: SharedStateService\n ) {\n super(formBuilder);\n this.registerSubjects();\n }\n\n ngOnInit(): void {}\n\n ngAfterViewInit(): void {\n this.cd.detectChanges();\n }\n\n ngOnDestroy(): void {\n this.ngUnsubscribe.next(true);\n this.ngUnsubscribe.unsubscribe();\n }\n\n private registerSubjects(): void {}\n\n @Input()\n public get visible(): boolean {\n return this._visible;\n }\n\n public set visible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(this.visible);\n }\n\n @Input()\n public set isEditAndViewValue(value: any) {\n this.resetForm();\n this.visibleBtnSave = true;\n if (value && value.currentItem && Object.keys(value.currentItem).length) {\n this.pixAccountFormGroup.patchValue(this.convertDTOToShowWithCustomFields({ ...value.currentItem }));\n this.labelBtnAdd = \"hcm.payroll.employees_update\";\n this.setValidatorsAccordingList(value.listData, value.currentItem[\"index\"], value && value[\"isEditMode\"]);\n if (!this.isView) {\n this.configEnableFields(value && value[\"isEditMode\"]);\n } else {\n if (this.pixAccountFormGroup.get(\"pixKeyType\").value) {\n this.pixKeyType = this.pixAccountFormGroup.get(\"pixKeyType\").value.key;\n this.formatPixKeyTelephoneNumber();\n }\n }\n } else {\n this.labelBtnAdd = \"hcm.payroll.employees_add\";\n }\n }\n\n private formatPixKeyTelephoneNumber(): void {\n if (this.pixKeyType === \"TELEPHONE\") {\n const pixKeyCtrl = this.pixAccountFormGroup.get(\"pixKey\");\n pixKeyCtrl.setValue(FormatUtilsService.getFormattedTelephoneNumber(pixKeyCtrl.value));\n }\n }\n\n public convertDTOToShowWithCustomFields(data: object): object {\n const obj: any = { ...data };\n obj[\"customFields\"] = mountCustomToShow(obj[\"customFields\"]);\n return obj;\n }\n\n private configEnableFields(isEditMode: boolean): void {\n this.visibleBtnSave = isEditMode;\n\n if (this.pixAccountFormGroup.get(\"pixKeyType\").value) {\n this.pixKeyType = this.pixAccountFormGroup.get(\"pixKeyType\").value.key;\n this.setPixKeyValidators(isEditMode, this.pixAccountFormGroup);\n this.formatPixKeyTelephoneNumber();\n }\n\n configEnabledFields(this.pixAccountFormGroup, isEditMode, [\n \"pixKeyType\",\n \"pixKey\",\n \"percentage\",\n \"customFields\"\n ], []);\n }\n\n public close(): void {\n this.resetForm();\n this.visible = false;\n }\n\n public addItem(): void {\n this.pixAccountFormGroup.updateValueAndValidity();\n verifyValidationsForm.call(this.pixAccountFormGroup);\n\n if (this.pixAccountFormGroup.valid) {\n if (this.employeeId) {\n this.pixAccountFormGroup.get(\"employee\").setValue({\n tableId: this.employeeId,\n name: \"\"\n });\n }\n this.pixAccountItemToList.emit(this.pixAccountFormGroup.getRawValue());\n this.visible = false;\n this.resetForm();\n }\n }\n\n public resetForm(): void {\n this.pixAccountFormGroup.reset();\n this.labelBtnAdd = \"hcm.payroll.employees_add\";\n if (this.customFields && this.customFields.formGroup) this.customFields.formGroup.reset();\n }\n\n public get percentagePlaceholder(): string {\n return `0${this.currency && this.currency.decimalSeparator}00`;\n }\n\n public get optionsPercentage(): object {\n return { ...this.getOptions(), precision: 2 };\n }\n\n private getOptions(): any {\n return {\n prefix: \"\",\n thousands: this.currency.thousandsSeparator,\n decimal: this.currency.decimalSeparator\n };\n }\n\n @Input()\n public set getListPixAccount(pixAccountList: object[]) {\n if (pixAccountList) {\n this.setValidatorsAccordingList(pixAccountList, null, false);\n } else {\n this.resetForm();\n }\n }\n\n @Input()\n public set isViewMode(condition: boolean) {\n this.isView = !!(condition && !this.withSideBar);\n this.configEnableFields(!this.isView);\n if (!this.isView) this.resetForm();\n }\n\n @Input()\n public set paramsForm(value: FormGroup) {\n this._paramsForm = value;\n }\n\n @Input()\n public set defaultCpfNumber(value: string) {\n this._defaultCpfNumber = value;\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport {\n ButtonModule,\n LoadingStateModule,\n SidebarModule, ControlErrorsModule, CustomFieldsModule,\n} from \"@seniorsistemas/angular-components\";\nimport { CurrencyMaskModule } from \"ng2-currency-mask\";\nimport { ConfirmationService } from \"primeng/api\";\nimport { AutoCompleteModule } from \"primeng/autocomplete\";\nimport { FieldsetModule } from \"primeng/fieldset\";\nimport { InputTextModule } from \"primeng/inputtext\";\nimport { PanelModule } from \"primeng/panel\";\nimport { TableModule } from \"primeng/table\";\nimport { TooltipModule } from \"primeng/tooltip\";\nimport { CoreDirectives } from \"../directives/index\";\nimport { HistoricalPixAccountFormComponent } from \"./historical-pix-account-form/historical-pix-account-form.component\";\nimport { InputDateModule } from \"../input-date/index\";\nimport { InputRestAutoCompleteModule } from \"../input-rest-auto-complete/index\";\nimport { InputRestAutoCompleteEnumModule } from \"../input-rest-auto-complete-enum/index\";\n\nimport { SharedModule } from \"../shared/shared.module\";\nimport { HistoricalPixAccountComponent } from \"./historical-pix-account.component\";\nimport { HistoricalPixAccountService } from \"./historical-pix-account.service\";\nimport { InputMaskModule } from \"primeng/inputmask\";\nimport { DropdownModule } from \"primeng/dropdown\";\nimport { TabViewModule } from 'primeng/tabview';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n HttpClientModule,\n AutoCompleteModule,\n SharedModule,\n ReactiveFormsModule,\n TableModule,\n ButtonModule,\n TooltipModule,\n LoadingStateModule,\n SidebarModule,\n InputDateModule,\n ControlErrorsModule,\n InputRestAutoCompleteEnumModule,\n CurrencyMaskModule,\n InputRestAutoCompleteModule,\n InputTextModule,\n CoreDirectives,\n FieldsetModule,\n CustomFieldsModule,\n PanelModule,\n InputMaskModule,\n DropdownModule,\n TabViewModule,\n ],\n declarations: [HistoricalPixAccountComponent, HistoricalPixAccountFormComponent],\n providers: [HistoricalPixAccountService, ConfirmationService],\n exports: [HistoricalPixAccountComponent],\n})\nexport class HistoricalPixAccountModule {\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { ServiceType } from '../../core/enums/serviceType';\n\nimport { HttpClientService } from \"../shared/http-client.service\";\n\n@Injectable()\nexport class HistoricalPixAccountListService {\n constructor(private http: HttpClientService, private httpClient: HttpClient) {\n }\n\n public remove(id: any, dateWhen: string, service: ServiceType = ServiceType.PAYROLL, dependentId?: string) {\n if (service === ServiceType.DEPENDENT) {\n return this.httpClient\n .post(\"hcm/dependent/queries/historicalDependentJudicialPensionPixDelete\", {\n dependentId: dependentId,\n dateWhen: dateWhen,\n });\n } else {\n return this.http.post(\"actions/historicalEmployeePixDelete\", {\n employeeId: id,\n dateWhen: dateWhen\n });\n }\n }\n\n}\n","import {\n Component,\n OnInit,\n ViewChild,\n ChangeDetectorRef,\n AfterViewInit,\n OnDestroy,\n Input,\n Output,\n EventEmitter,\n} from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { CustomFieldsComponent } from \"@seniorsistemas/angular-components\";\nimport * as moment_ from \"moment\";\nimport { ConfirmationService, MessageService } from \"primeng/api\";\nimport { ServiceType } from '../../core/enums/serviceType';\nimport { Subject, Subscription } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { HistoricalPixAccountListService } from \"./historical-pix-account-list.service\";\nimport { SharedStateService } from \"../shared/shared-state.service\";\n\nconst moment = moment_;\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: \"c-historical-pix-account-list\",\n templateUrl: \"./historical-pix-account-list.component.html\",\n styleUrls: [\"./historical-pix-account-list.component.scss\"],\n})\nexport class HistoricalPixAccountListComponent implements OnInit, OnDestroy, AfterViewInit {\n @ViewChild(CustomFieldsComponent, { static: false })\n public customFields: CustomFieldsComponent;\n\n @Input()\n public permission: object;\n @Input()\n public employeeId: string;\n @Input()\n public dependentId: string;\n @Input()\n public dateFormat: string;\n @Input()\n public endPoint: string = \"hcm/payroll/queries/historicalEmployeePixQuery\";\n @Input()\n public keyPayload: string = \"historicalEmployeePix\";\n @Input()\n public withSidebar: boolean = true;\n @Input()\n public hideField: boolean;\n\n @Output()\n public isOnlyView: EventEmitter<any> = new EventEmitter<boolean>();\n @Output()\n public isOnlyEdit: EventEmitter<any> = new EventEmitter<boolean>();\n @Output()\n public enableView: EventEmitter<any> = new EventEmitter<any>();\n @Output()\n public isEditJudicialDependentPix: EventEmitter<any> = new EventEmitter<boolean>();\n\n private lastRecord: any;\n private ngUnsubscribe = new Subject();\n private _subscription: Subscription;\n public initParameters: any;\n public loading: boolean = true;\n public parameters: any;\n\n public columns = [\n {\n label: this.translateService.instant(\n \"hcm.payroll.historical_pix_account_label_date_change\",\n ),\n field: \"dateChange\",\n },\n {\n label: this.translateService.instant(\n \"hcm.payroll.employees_movimentation_historical_pix_account_label_qtd_account\",\n ),\n field: \"numberOfPixAccount\",\n },\n ];\n\n constructor(\n private confirmationService: ConfirmationService,\n private translateService: TranslateService,\n private activatedRoute: ActivatedRoute,\n private cd: ChangeDetectorRef,\n private router: Router,\n private messageService: MessageService,\n private historicalPixAccountListService: HistoricalPixAccountListService,\n private sharedStateService: SharedStateService,\n ) {}\n\n ngOnInit() {\n this.initParameters = { employeeId: this.employeeId, dependentId: this.dependentId };\n }\n\n ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n this.unsubscribe();\n }\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n\n public onLazyLoad(payload: any) {\n payload.forEach((value: any) => {\n value.dateChange = moment(value.dateChange).format(this.dateFormat);\n });\n\n this.onGridLoad(payload);\n\n this.loading = false;\n }\n\n public getMenuActions(rowData: any) {\n return [\n {\n label: this.translateService.instant(\"hcm.payroll.employees_image_cropper_view\"),\n command: () => {\n if(this.isAllowToViewHistorical) {\n this.sharedStateService.setHideField(true);\n this.sharedStateService.setShowButton(false);\n this.sharedStateService.setShowEditMode(false);\n const dateChange = rowData && rowData.dateChange && moment(rowData.dateChange, this.dateFormat).format(\"YYYY-MM-DD\");\n if (this.withSidebar) {\n this.isOnlyView.emit(true);\n this.router.navigate([`historical-pix-account/${ dateChange }`], {\n relativeTo: this.activatedRoute,\n });\n } else {\n this.sharedStateService.setSaveButton(false);\n this.enableView.emit(dateChange);\n }\n } else {\n this.isNotAllowMessage();\n }\n },\n },\n {\n label: this.translateService.instant(\"hcm.payroll.edit\"),\n command: () => {\n if(this.isAllowToEditHistorical) {\n this.sharedStateService.setHideField(true);\n this.sharedStateService.setShowButton(false);\n this.sharedStateService.setShowEditMode(true);\n const dateChange = rowData && rowData.dateChange && moment(rowData.dateChange, this.dateFormat).format(\"YYYY-MM-DD\");\n if (this.withSidebar) {\n this.router.navigate([`historical-pix-account/${ dateChange }`], {\n relativeTo: this.activatedRoute,\n });\n } else {\n setTimeout(() => {\n this.sharedStateService.triggerActiveValidatorsOnEditModalOpen();\n });\n this.sharedStateService.setSaveButton(true);\n this.enableView.emit(dateChange);\n }\n } else {\n this.isNotAllowMessage();\n }\n },\n },\n {\n label: this.translateService.instant(\"hcm.payroll.delete\"),\n command: () => {\n if (this.isAllowToDeleteHistorical && rowData) {\n this.delete(rowData.id, rowData.dateChange);\n } else {\n this.isNotAllowMessage();\n }\n },\n }\n ];\n }\n\n public delete(id: any, dateChange: string) {\n if (id === this.lastRecord.id) {\n const dateChangeToDto = moment(dateChange, this.dateFormat).format(\"YYYY-MM-DD\");\n this.confirmationService.confirm({\n message: `${ this.translateService.instant(\n \"hcm.payroll.employees_movimentation_historical_pix_account_question_confirm_delete\",\n ) }?`,\n accept: () => {\n this.loading = true;\n const service = this.withSidebar ? ServiceType.PAYROLL : ServiceType.DEPENDENT;\n this.historicalPixAccountListService\n .remove(this.employeeId, dateChangeToDto, service, this.dependentId)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(\n () => {\n this.messageService.add({\n severity: \"success\",\n summary: this.translateService.instant(\"hcm.payroll.success\"),\n detail: this.translateService.instant(\"hcm.payroll.employees_movimentation_historical_pix_account_remove\"),\n });\n this.parameters = (this.parameters && { ...this.parameters }) || {};\n },\n () => {\n this.messageService.add({\n severity: \"error\",\n summary: this.translateService.instant(\"hcm.payroll.error\"),\n detail: this.translateService.instant(\"hcm.payroll.employees_movimentation_historical_pix_account_error_remove\"),\n });\n this.loading = false;\n },\n );\n },\n });\n } else {\n this.messageService.add({\n severity: \"error\",\n summary: this.translateService.instant(\"hcm.payroll.error\"),\n detail: this.translateService.instant(\"hcm.payroll.not_allowed_delete_last\"),\n });\n }\n }\n\n public add() {\n if (this.isAllowToAddHistorical) {\n this.router.navigate([\"historical-pix-account-new\"], {\n relativeTo: this.activatedRoute,\n });\n } else {\n this.messageService.add({\n severity: \"error\",\n summary: this.translateService.instant(\"hcm.payroll.error\"),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n });\n }\n }\n\n private isNotAllowMessage() {\n this.messageService.add({\n severity: \"error\",\n summary: this.translateService.instant(\"hcm.payroll.error\"),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n });\n }\n\n private onGridLoad(payload: any) {\n if (payload && payload.length) {\n this.lastRecord = payload[0];\n }\n }\n\n private unsubscribe() {\n if (this._subscription) {\n this._subscription.unsubscribe();\n }\n }\n\n @Input()\n public set hideFieldsOnAdd$(subject: Subject<boolean>) {\n this.unsubscribe();\n if (subject) {\n this._subscription = subject.subscribe((value) => {\n this.sharedStateService.setHideField(value);\n });\n }\n }\n\n private get isAllowToAddHistorical() {\n return (\n this.permission[\"incluir\"]\n );\n }\n\n private get isAllowToDeleteHistorical() {\n return (\n this.permission[\"excluir\"]\n );\n }\n\n private get isAllowToViewHistorical() {\n return (\n this.permission[\"visualizar\"]\n );\n }\n\n private get isAllowToEditHistorical() {\n return (\n this.permission[\"editar\"]\n );\n }\n\n public get scopedActions() {\n return this.getMenuActions.bind(this);\n }\n\n @Input()\n public set reloadList(condition: boolean) {\n if (condition) {\n this.loading = true;\n this.parameters = (this.parameters && { ...this.parameters }) || {};\n }\n }\n\n}\n","import { CommonModule } from \"@angular/common\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { ButtonModule, LoadingStateModule } from \"@seniorsistemas/angular-components\";\nimport { AutoCompleteModule } from \"primeng/autocomplete\";\nimport { ConfirmDialogModule } from \"primeng/confirmdialog\";\nimport { TableModule } from \"primeng/table\";\nimport { TooltipModule } from \"primeng/tooltip\";\nimport { DataListRestModule } from \"../data-list-rest/index\";\n\nimport { SharedModule } from \"../shared/shared.module\";\nimport { HistoricalPixAccountListComponent } from \"./historical-pix-account-list.component\";\nimport { HistoricalPixAccountListService } from \"./historical-pix-account-list.service\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n HttpClientModule,\n AutoCompleteModule,\n SharedModule,\n ReactiveFormsModule,\n TableModule,\n ButtonModule,\n TooltipModule,\n LoadingStateModule,\n DataListRestModule,\n ConfirmDialogModule,\n ],\n declarations: [HistoricalPixAccountListComponent],\n providers: [HistoricalPixAccountListService],\n exports: [HistoricalPixAccountListComponent],\n})\nexport class HistoricalPixAccountListModule {\n}\n","/*\n * Public API Surface of core\n */\nexport * from './components/utils/cpf-validator';\nexport * from './components/utils/cnpj-validator';\nexport * from './components/vanilla/string-methods';\nexport * from './components/block-ui/index';\nexport * from './components/breadcrumb/index';\nexport * from './components/control-messages-error/index';\nexport * from './components/custom-fields/index';\nexport * from './components/directives/index';\nexport * from './components/data-list-rest/index';\nexport * from './components/employee-summary/index';\nexport * from './components/admission-draft-summary/index';\nexport * from './components/error-page/index';\nexport * from './components/field-validator/index';\nexport * from './components/file-upload/index';\nexport * from './components/image-cropper/index';\nexport * from './components/input-date/index';\nexport * from './components/input-date-model/index';\nexport * from './components/input-rest-auto-complete/index';\nexport * from './components/input-rest-auto-complete-employee/index';\nexport * from './components/input-rest-auto-complete-employee-model/index';\nexport * from './components/input-rest-auto-complete-enum/index';\nexport * from './components/input-rest-auto-complete-model/index';\nexport * from './components/input-rest-auto-complete-model-enum/index';\nexport * from './components/input-rest-auto-complete-jobposition/index';\nexport * from './components/list-rest/index';\nexport * from './components/spinner/index';\nexport * from './components/type-admission/index';\nexport * from './components/utils/helpers';\nexport * from './components/utils/validations';\nexport * from './components/shared/http-client.service';\nexport * from './services/services.module';\nexport * from './services/permissions.service';\nexport * from './components/toast/index';\nexport * from './services/integration.service';\nexport * from './components/data-list/index';\nexport * from './services/company-indications.service';\nexport * from './services/lookup-parameters.service';\nexport * from './services/autocomplete-parameters.service';\nexport * from './components/lookup/index';\nexport * from './components/workstationgroup-lookup/index';\nexport * from './components/historical-bank-account/index';\nexport * from './components/historical-bank-account-list/index';\nexport * from './core/enums/index';\nexport * from './core/entities/index';\nexport * from './components/utils/date-validator/date-validators';\nexport * from './core/interfaces/index';\nexport * from './services/report.service';\nexport * from './services/workflow-integrator.service';\nexport * from './services/workflow-data.service';\nexport * from './components/employee-selector/index';\nexport * from './services/form-comparator.service';\nexport * from './components/from-to/index';\nexport * from './components/historical-pix-account/index';\nexport * from './components/historical-pix-account-list/index';\nexport * from './components/shared/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n\nexport {DataListRestComponent as ɵb} from './components/data-list-rest/data-list-rest.component';\nexport {DataListRestService as ɵc} from './components/data-list-rest/data-list-rest.service';\nexport {DataListComponent as ɵj} from './components/data-list/data-list.component';\nexport {DataListService as ɵk} from './components/data-list/data-list.service';\nexport {FileUploadService as ɵd} from './components/file-upload/file-upload.service';\nexport {HistoricalBankAccountFormComponent as ɵq} from './components/historical-bank-account/historical-bank-account-form/historical-bank-account-form.component';\nexport {HistoricakPixAccountBase as ɵr} from './components/historical-pix-account/historical-pix-account-base';\nexport {HistoricalPixAccountFormComponent as ɵs} from './components/historical-pix-account/historical-pix-account-form/historical-pix-account-form.component';\nexport {InputRestAutoCompleteEmployeeModelComponent as ɵf} from './components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.component';\nexport {InputRestAutoCompleteEmployeeComponent as ɵe} from './components/input-rest-auto-complete-employee/input-rest-auto-complete-employee.component';\nexport {InputRestAutoCompleteModelEnumComponent as ɵh} from './components/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.component';\nexport {InputRestAutoCompleteModelComponent as ɵg} from './components/input-rest-auto-complete-model/input-rest-auto-complete-model.component';\nexport {ListRestService as ɵi} from './components/list-rest/list-rest.service';\nexport {LookupComponent as ɵl} from './components/lookup/lookup.component';\nexport {LookupService as ɵm} from './components/lookup/lookup.service';\nexport {SharedModule as ɵa} from './components/shared/shared.module';\nexport {AutocompleteService as ɵo} from './components/workstationgroup-lookup/autocomplete.service';\nexport {LookupService as ɵp} from './components/workstationgroup-lookup/lookup.service';\nexport {WorkstationgroupLookupComponent as ɵn} from './components/workstationgroup-lookup/workstationgroup-lookup.component';"],"names":["tslib_1.__decorate","_moment","SharedModule","moment","ButtonModule","momentImported","tslib_1.__values","ToastModulePrimeng","LookupService","CustomFieldsComponent","CustomFieldsModule","tslib_1.__extends"],"mappings":"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"}
1
+ {"version":3,"file":"senior-gestao-pessoas-payroll-core.js","sources":["ng://@senior-gestao-pessoas/payroll-core/components/utils/cpf-validator.ts","ng://@senior-gestao-pessoas/payroll-core/components/utils/cnpj-validator.ts","ng://@senior-gestao-pessoas/payroll-core/components/vanilla/string-methods.ts","ng://@senior-gestao-pessoas/payroll-core/components/block-ui/block-ui.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/block-ui/block-ui.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/breadcrumb/breadcrumb.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/shared/shared.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/breadcrumb/breadcrumb.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/control-messages-error/control-messages-error.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/control-messages-error/control-messages-error.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/custom-fields/custom-fields.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-date/input-date.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-date/input-date.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/custom-fields/custom-fields.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/directives/name-not-spaces.directive.ts","ng://@senior-gestao-pessoas/payroll-core/components/directives/only-number.directive.ts","ng://@senior-gestao-pessoas/payroll-core/components/directives/directives.module.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/usingType.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/companyIndicationType.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/coreFieldType.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/direction.enumeration.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/moduleType.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/operators.enumeration.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/comparetype.enumeration.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/serviceType.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/httpRequestType.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/report-format.enumeration.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/parameter-type.enumeration.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/menu-type.enumeration.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/report-stage.enumeration.ts","ng://@senior-gestao-pessoas/payroll-core/components/data-list-rest/data-list-rest.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/data-list-rest/data-list-rest.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/data-list-rest/data-list-rest.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/employee-summary/employee-summary.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/employee-summary/employee-summary.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/employee-summary/employee-summary.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/admission-draft-summary/admission-draft-summary.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/admission-draft-summary/admission-draft-summary.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/admission-draft-summary/admission-draft-summary.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/error-page/error-page.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/error-page/error-page.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/field-validator/field-validator.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/field-validator/field-validator.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/toast/toast.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/shared/http-client.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/file-upload/file-upload.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/file-upload/file-upload.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/file-upload/file-upload.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/image-cropper/image-crop.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/image-cropper/image-crop.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/image-cropper/image-crop.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-date-model/input-date-model.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-date-model/input-date-model.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/utils/helpers.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete/input-rest-auto-complete.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete/input-rest-auto-complete.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete/input-rest-auto-complete.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-employee/input-rest-auto-complete-employee.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-employee/input-rest-auto-complete-employee.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-employee/input-rest-auto-complete-employee.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-enum/input-rest-auto-complete-enum.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-enum/input-rest-auto-complete-enum.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-enum/input-rest-auto-complete-enum.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-model/input-rest-auto-complete-model.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-model/input-rest-auto-complete-model.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-model/input-rest-auto-complete-model.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/list-rest/list-rest.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/list-rest/list-rest.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/list-rest/list-rest.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/spinner/spinner-loader.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/spinner/spinner-loader.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/type-admission/type-admission.services.ts","ng://@senior-gestao-pessoas/payroll-core/components/type-admission/type-admission.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/utils/validations.ts","ng://@senior-gestao-pessoas/payroll-core/services/company-indications.service.ts","ng://@senior-gestao-pessoas/payroll-core/services/integration.service.ts","ng://@senior-gestao-pessoas/payroll-core/services/lookup-parameters.service.ts","ng://@senior-gestao-pessoas/payroll-core/services/autocomplete-parameters.service.ts","ng://@senior-gestao-pessoas/payroll-core/services/report.service.ts","ng://@senior-gestao-pessoas/payroll-core/services/workflow-data.service.ts","ng://@senior-gestao-pessoas/payroll-core/services/form-comparator.service.ts","ng://@senior-gestao-pessoas/payroll-core/services/services.module.ts","ng://@senior-gestao-pessoas/payroll-core/services/permissions.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/toast/toast.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/toast/toast.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/data-list/data-list.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/data-list/data-list.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/data-list/data-list.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/lookup/lookup.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/lookup/lookup.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/lookup/lookup.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/workstationgroup-lookup/autocomplete.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/workstationgroup-lookup/lookup.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/workstationgroup-lookup/workstationgroup-lookup.dto.ts","ng://@senior-gestao-pessoas/payroll-core/components/workstationgroup-lookup/workstationgroup-lookup.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/workstationgroup-lookup/workstationgroup-lookup.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-bank-account/historical-bank-account.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-bank-account/historical-bank-account-form/historical-bank-account-form.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-bank-account/historical-bank-account.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-bank-account/historical-bank-account.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-bank-account-list/historical-bank-account-list.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-bank-account-list/historical-bank-account-list.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-bank-account-list/historical-bank-account-list.module.ts","ng://@senior-gestao-pessoas/payroll-core/core/entities/entity-odata-parameter.ts","ng://@senior-gestao-pessoas/payroll-core/components/utils/date-validator/date-validators.ts","ng://@senior-gestao-pessoas/payroll-core/services/workflow-integrator.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/employee-selector/employee-selector.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/employee-selector/employee-selector.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/from-to/from-to.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/from-to/from-to.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/utils/format-utils/format-utils.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/shared/shared-state.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/utils/generic-validators.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-pix-account/historical-pix-account-base.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-pix-account/historical-pix-account.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-pix-account/historical-pix-account.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-pix-account/historical-pix-account-form/historical-pix-account-form.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-pix-account/historical-pix-account.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-pix-account-list/historical-pix-account-list.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-pix-account-list/historical-pix-account-list.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-pix-account-list/historical-pix-account-list.module.ts","ng://@senior-gestao-pessoas/payroll-core/public_api.ts","ng://@senior-gestao-pessoas/payroll-core/senior-gestao-pessoas-payroll-core.ts"],"sourcesContent":["import { AbstractControl, Validators } from '@angular/forms';\n\n/**\n * Created by Bruno.Curioletti on 30/05/2017.\n */\nexport class CPFValidator {\n calcChecker1(firstNineDigits) {\n let sum = null;\n\n for (let j = 0; j < 9; ++j) {\n sum += firstNineDigits.toString().charAt(j) * (10 - j);\n }\n\n const lastSumChecker1 = sum % 11;\n const checker1 = lastSumChecker1 < 2 ? 0 : 11 - lastSumChecker1;\n\n return checker1;\n }\n\n calcChecker2(cpfWithChecker1) {\n let sum = null;\n\n for (let k = 0; k < 10; ++k) {\n sum += cpfWithChecker1.toString().charAt(k) * (11 - k);\n }\n\n const lastSumChecker2 = sum % 11;\n const checker2 = lastSumChecker2 < 2 ? 0 : 11 - lastSumChecker2;\n\n return checker2;\n }\n\n checkCPF(value) {\n const cleanCPF = value.replace(/\\.|\\-|\\s/g, ''),\n firstNineDigits = cleanCPF.substring(0, 9),\n checker = cleanCPF.substring(9, 11);\n\n if (cleanCPF.length !== 11) {\n return false;\n }\n\n // Checking if all digits are equal\n for (let i = 0; i < 10; i++) {\n if ('' + firstNineDigits + checker === Array(12).join(i.toString())) {\n return false;\n }\n }\n const checker1 = this.calcChecker1(firstNineDigits);\n const checker2 = this.calcChecker2(firstNineDigits + '' + checker1);\n\n if (checker.toString() === checker1.toString() + checker2.toString()) {\n return true;\n } else {\n return false;\n }\n }\n}\n\nexport const cpfValidator = new CPFValidator();\n","import { AbstractControl, Validators } from '@angular/forms';\n\nexport class CNPJValidator {\n\n /**\n * Valida se o CNPJ é valido. Deve-se ser informado o cnpj sem máscara.\n */\n checkCNPJ(value) {\n let cnpj = value;\n\n if (cnpj) {\n let size, numbers, digits, sum, pos, result;\n cnpj = cnpj.replace(/[^\\d]+/g, '');\n\n if (cnpj.length !== 14) {\n return true;\n }\n\n // Elimina CNPJs invalidos conhecidos\n if (\n cnpj === '00000000000000' ||\n cnpj === '11111111111111' ||\n cnpj === '22222222222222' ||\n cnpj === '33333333333333' ||\n cnpj === '44444444444444' ||\n cnpj === '55555555555555' ||\n cnpj === '66666666666666' ||\n cnpj === '77777777777777' ||\n cnpj === '88888888888888' ||\n cnpj === '99999999999999'\n ) {\n return false;\n }\n\n // Valida DVs\n size = cnpj.length - 2;\n numbers = cnpj.substring(0, size);\n digits = cnpj.substring(size);\n sum = 0;\n pos = size - 7;\n for (let i = size; i >= 1; i--) {\n sum += numbers.charAt(size - i) * pos--;\n if (pos < 2) {\n pos = 9;\n }\n }\n result = sum % 11 < 2 ? 0 : 11 - (sum % 11);\n if (result !== Number(digits.charAt(0))) {\n return false ;\n }\n\n size = size + 1;\n numbers = cnpj.substring(0, size);\n sum = 0;\n pos = size - 7;\n for (let i = size; i >= 1; i--) {\n sum += numbers.charAt(size - i) * pos--;\n if (pos < 2) {\n pos = 9;\n }\n }\n result = sum % 11 < 2 ? 0 : 11 - (sum % 11);\n if (result !== Number(digits.charAt(1))) {\n return false;\n }\n\n return true;\n }\n return true;\n }\n}\n\nexport const cnpjValidator = new CNPJValidator();\n","export class StringMethods {\n\n constructor() {\n this.addStringFormat();\n }\n\n addStringFormat() {\n if (!String.prototype.hasOwnProperty('format')) {\n const format = {\n format: function () {\n let formatted = this;\n for (let i = 0; i < arguments.length; i++) {\n const regexp = new RegExp('\\\\{' + i + '\\\\}', 'gi');\n formatted = formatted.replace(regexp, arguments[i]);\n }\n return formatted;\n }\n };\n Object.assign(String.prototype, format);\n }\n }\n}\n\nexport const stringMethods = new StringMethods();\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'block-ui',\n templateUrl: './block-ui.component.html',\n styleUrls: ['./block-ui.component.css'],\n})\nexport class BlockUiComponent {\n @Input()\n blocked: boolean;\n @Input()\n target: string;\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { BlockUIModule } from 'primeng/blockui';\nimport { ProgressSpinnerModule } from 'primeng/progressspinner';\n\nimport { BlockUiComponent } from './block-ui.component';\n\n@NgModule({\n imports: [\n FormsModule,\n BlockUIModule,\n ProgressSpinnerModule\n ],\n declarations: [\n BlockUiComponent\n ],\n exports: [\n BlockUiComponent\n ]\n})\nexport class BlockUiModule {}\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MenuItem } from 'primeng/components/common/menuitem';\nimport { filter } from 'rxjs/operators';\n\n@Component({\n selector: 'c-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n})\nexport class BreadcrumbComponent implements OnInit {\n public items: MenuItem[];\n public title: string;\n\n constructor(private activatedRoute: ActivatedRoute, private router: Router, private translate: TranslateService) {\n this.items = [];\n }\n\n ngOnInit() {\n this.router.events.pipe(filter(event => event instanceof NavigationEnd)).subscribe(() => {\n const root: ActivatedRoute = this.activatedRoute.root;\n this.items = this.getBreadcrumbs(root, []);\n });\n }\n\n private getBreadcrumbs(route: ActivatedRoute, breadcrumbs: MenuItem[]): MenuItem[] {\n const children: ActivatedRoute[] = route.children;\n if (children.length === 0) {\n return breadcrumbs;\n }\n\n this.generateBreadcrumb(children, breadcrumbs);\n\n const index = (breadcrumbs.length && breadcrumbs.length - 1) || 0;\n this.title = breadcrumbs[index] && breadcrumbs[index].label;\n return breadcrumbs;\n }\n\n private generateBreadcrumb(children: ActivatedRoute[], breadcrumbs: MenuItem[]) {\n const ROUTE_DATA_BREADCRUMB = 'breadcrumb';\n children.forEach((child: ActivatedRoute, index: number) => {\n if (child.snapshot.data.hasOwnProperty(ROUTE_DATA_BREADCRUMB)) {\n child.snapshot.data[ROUTE_DATA_BREADCRUMB].map(val => {\n const breadcrumb: MenuItem = {\n label: this.translate.instant(val.name),\n queryParams: child.snapshot.queryParams,\n routerLink: this.getFormattedUrl(child, val.routerLink),\n url: this.getFormattedUrl(child, val.url),\n };\n\n if (val.routerLink) {\n breadcrumb.disabled = true;\n breadcrumb.routerLinkActiveOptions = { exact: true };\n }\n breadcrumbs.push(breadcrumb);\n });\n }\n\n if (child.children && child.children.length) {\n this.generateBreadcrumb(child.children, breadcrumbs);\n }\n });\n }\n\n getFormattedUrl(activatedRoute: ActivatedRoute, url: string): string {\n if (url) {\n Object.keys(activatedRoute.snapshot.params).forEach(param => {\n url = url.replace(`:${param}`, activatedRoute.snapshot.params[param]);\n });\n\n if (url.includes(':') && activatedRoute.parent) {\n return this.getFormattedUrl(activatedRoute.parent, url);\n }\n }\n return url;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n exports: [\n CommonModule,\n TranslateModule,\n ]\n})\nexport class SharedModule {\n constructor() {\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { BreadcrumbModule } from 'primeng/breadcrumb';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { BreadcrumbComponent } from './breadcrumb.component';\n\n@NgModule({\n imports: [\n FormsModule,\n BreadcrumbModule,\n SharedModule,\n ],\n declarations: [\n BreadcrumbComponent\n ],\n exports: [\n BreadcrumbComponent\n ]\n})\nexport class BreadcrumbSDSModule {\n}\n","import { Component, Input } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n selector: 'control-messages-error',\n templateUrl: \"./control-messages-error.component.html\",\n styleUrls: [\"./control-messages-error.component.css\"],\n})\nexport class ControlMessagesErrorComponent {\n @Input()\n control: FormControl;\n @Input()\n errorList: object;\n\n constructor() {}\n\n get errorMessage() {\n for (const propertyName in this.control.errors) {\n if (this.control.errors.hasOwnProperty(propertyName) && (this.control.touched || this.control.dirty)) {\n return this.errorList[propertyName];\n }\n }\n return null;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { ControlMessagesErrorComponent } from './control-messages-error.component';\n\n@NgModule({\n imports: [CommonModule, SharedModule, ReactiveFormsModule],\n declarations: [ControlMessagesErrorComponent],\n exports: [ControlMessagesErrorComponent],\n})\nexport class ControlMessagesErrorModule {}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\nexport interface IField {\n field: string;\n label: string;\n type: string;\n regex: string;\n mask: string;\n value: string;\n}\n\n@Component({\n selector: 'custom-fields',\n templateUrl: './custom-fields.component.html',\n styleUrls: ['./custom-fields.component.css'],\n})\nexport class CustomFieldsComponent implements OnInit {\n @Input()\n params?: IField;\n @Input()\n disabled?: boolean;\n @Input()\n readonly?: boolean;\n @Input()\n required?: boolean;\n @Input()\n form: FormGroup;\n\n optionsBoolean = [{ label: 'Selecione', value: '' }, { label: 'Sim', value: 'true' }, { label: 'Não', value: 'false' }];\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild, OnDestroy } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { LocaleService } from '@seniorsistemas/angular-components';\nimport * as _moment from 'moment';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nconst moment = _moment;\n\n@Component({\n selector: 'input-date-calendar',\n templateUrl: './input-date.component.html',\n})\nexport class InputDateComponent implements OnInit, OnDestroy {\n @ViewChild('inputDateElement', { static: false })\n _inputDateElement: ElementRef;\n @Input()\n form: FormGroup;\n @Input()\n name: string;\n @Input()\n disabled?: boolean;\n @Input()\n unmask = true;\n @Input()\n inputId: string;\n @Input()\n withoutDay: boolean;\n @Input()\n readonly: boolean;\n\n @Output()\n onBlurGetMoment: EventEmitter<any> = new EventEmitter();\n\n private ngUnsubscribe = new Subject();\n private _date: any;\n private locale: any;\n private format: any;\n mask = null;\n\n constructor(private localeService: LocaleService) {}\n\n ngOnInit() {\n this.localeService\n .get()\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(loc => {\n this.mask = this.formatMask(loc);\n this.format = this.setFormat();\n if (this.form.get(this.name).value) {\n const newDate = this.form.get(this.name).value.toString();\n const momentDate = moment(newDate, this.format || 'YYYY-MM-DD');\n this.form.get(this.name).setValue(momentDate.format(this.format || 'L'));\n this._date = momentDate;\n }\n });\n }\n\n ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n formatMask(loc) {\n this.locale = loc;\n let dateMask = this.locale.calendar.dateFormat.toString();\n\n if (this.withoutDay) {\n dateMask = dateMask.replace('dd/', '').replace('-dd', '');\n }\n\n dateMask = dateMask.replace(/[d]|[m]/g, '9');\n return dateMask.replace(/[y]/g, '99');\n }\n\n setFormat() {\n let dateFormat = this.locale.calendar.dateFormat.toString();\n dateFormat = dateFormat.replace(/[y]/g, 'YY');\n\n if (this.withoutDay) {\n dateFormat = dateFormat.replace('dd/', '').replace('-dd', '');\n }\n\n return dateFormat.toUpperCase();\n }\n\n get placeholder() {\n return this.mask ? this.mask.toString().replace(/[9]/g, '_') : '';\n }\n\n onBlur(event) {\n if (event && event.target && event.target.value) {\n const dateComponent = this.form.get(this.name).value;\n this._date = moment(dateComponent, this.format);\n this.onBlurGetMoment.emit(this._date);\n } else {\n this._date = {};\n this.form.get(this.name).setValue(null);\n this.onBlurGetMoment.emit(null);\n }\n }\n\n @Input()\n get model() {\n const dateComponet = this.form.get(this.name).value;\n return moment(dateComponet, this.format);\n }\n\n get inputDateElement() {\n return this._inputDateElement;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { InputMaskModule } from 'primeng/inputmask';\n\nimport { InputDateComponent } from './input-date.component';\n\n@NgModule({\n imports: [InputMaskModule, FormsModule, ReactiveFormsModule, CommonModule],\n declarations: [InputDateComponent],\n exports: [InputDateComponent],\n})\nexport class InputDateModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputMaskModule } from 'primeng/inputmask';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { SharedModule } from 'primeng/shared';\n\nimport { InputDateModule } from '../input-date/input-date.module';\nimport { CustomFieldsComponent } from './custom-fields.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n SharedModule,\n InputTextModule,\n InputDateModule,\n DropdownModule,\n InputMaskModule\n ],\n declarations: [CustomFieldsComponent],\n providers: [],\n exports: [CustomFieldsComponent]\n})\nexport class CustomFieldsModule {\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[name-not-spaces]',\n})\nexport class NameNotSpacesDirective {\n private el: HTMLInputElement;\n\n constructor(private elementRef: ElementRef) {\n this.el = this.elementRef.nativeElement;\n }\n\n @HostListener('blur', ['$event.target.value'])\n onBlur(value) {\n this.cleanVar(value);\n }\n\n cleanVar(val) {\n const clean = val.trim().replace(/^\\s+|\\s+$|\\s+(?=\\s)/g, '');\n if (val !== clean) {\n this.el.value = clean;\n }\n return clean;\n }\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[only-number]',\n})\nexport class OnlyNumberDirective {\n constructor(private el: ElementRef) {}\n @HostListener('keydown', ['$event'])\n onKeyDown(event) {\n const e = <KeyboardEvent>event;\n\n if (\n [46, 8, 9, 27, 13, 110, 190].indexOf(e.keyCode) !== -1 ||\n // Allow: Ctrl+A\n (e.keyCode === 65 && (e.ctrlKey || e.metaKey)) ||\n // Allow: Ctrl+C\n (e.keyCode === 67 && (e.ctrlKey || e.metaKey)) ||\n // Allow: Ctrl+V\n (e.keyCode === 86 && (e.ctrlKey || e.metaKey)) ||\n // Allow: Ctrl+X\n (e.keyCode === 88 && (e.ctrlKey || e.metaKey)) ||\n // Allow: home, end, left, right\n (e.keyCode >= 35 && e.keyCode <= 39)\n ) {\n // let it happen, don't do anything\n return;\n }\n // Ensure that it is a number and stop the keypress\n if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {\n e.preventDefault();\n }\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { NameNotSpacesDirective } from './name-not-spaces.directive';\nimport { OnlyNumberDirective } from './only-number.directive';\n\n@NgModule({\n imports: [],\n declarations: [OnlyNumberDirective, NameNotSpacesDirective],\n exports: [OnlyNumberDirective, NameNotSpacesDirective],\n providers: [],\n schemas: [],\n})\nexport class CoreDirectives {}\n","export enum UsingType {\n // \"Empresas de transporte.\"\n TYPE_1 = 'TYPE_1',\n // \"Clientes de agência de emprego.\"\n TYPE_2 = 'TYPE_2',\n // \"Entidades de ensino.\"\n TYPE_3 = 'TYPE_3',\n // \"Conveniados médicos.\"\n TYPE_4 = 'TYPE_4',\n // \"Seguradoras.\"\n TYPE_6 = 'TYPE_6',\n // \"Escritórios advocacia.\"\n TYPE_7 = 'TYPE_7',\n // \"Conveniados tickets.\"\n TYPE_8 = 'TYPE_8',\n // \"Empregos anteriores.\"\n TYPE_9 = 'TYPE_9',\n // \"Cooperativa de trabalho.\"\n TYPE_10 = 'TYPE_10',\n // \"Fornecedor/Fabricante de EPI/EPC.\"\n TYPE_11 = 'TYPE_11',\n // \"Escolas de educação infantil.\"\n TYPE_12 = 'TYPE_12',\n // \"Entidade de ensino - Nível superior.\"\n TYPE_14 = 'TYPE_14',\n // \"Empresas de refeição.\"\n TYPE_15 = 'TYPE_15',\n // \"Entidades de ensino - Nível médio.\"\n TYPE_16 = 'TYPE_16',\n // \"Fornecedor para treinamento.\"\n TYPE_17 = 'TYPE_17',\n // \"Higienização ou serviços gerais.\"\n TYPE_18 = 'TYPE_18',\n // \"Agente de integração.\"\n TYPE_19 = 'TYPE_19',\n // \"Empresas de software.\"\n TYPE_20 = 'TYPE_20',\n // \"Laboratório.\"\n TYPE_21 = 'TYPE_21',\n}\n","export enum CompanyIndicationType {\n // Usa rotinas de dependente\n USE_DEPENDENTS = 'USE_DEPENDENTS',\n // Controla frequência de vacinação\n VACCINATION_FREQUENCY = 'VACCINATION_FREQUENCY',\n // Usa calculo de rateio\n APPORTIONMENT_CALCULATION = 'APPORTIONMENT_CALCULATION',\n // Assinalamento usa posto de trabalho para colaborador\n USE_WORKSTATION_GROUP_EMPLOYEE = 'USE_WORKSTATION_GROUP_EMPLOYEE',\n // Estrutura\n STRUCTURE = 'STRUCTURE',\n // Anuidade\n PAY_ANNUITY = 'PAY_ANNUITY',\n // Usa histórico de contas bancárias\n USE_HISTORICAL_BANK_ACCOUNT = 'USE_HISTORICAL_BANK_ACCOUNT'\n}\n","export enum CoreFieldType {\n searchValue = 'searchValue',\n}\n","export enum DirectionEnumeration {\n ASC = 'ASC',\n DESC = 'DESC',\n}\n","export enum ModuleType {\n /** Painel de gestão */\n MANAGEMENT_PANEL = 'MANAGEMENT_PANEL',\n /** Gestão de desempenho*/\n PERFORMANCE_MANAGEMENT = 'PERFORMANCE_MANAGEMENT',\n /** Carreira e sucessão */\n CAREER_SUCCESSION = 'CAREER_SUCCESSION',\n /** Recrutamento */\n RECRUIT_MANAGEMENT = 'RECRUIT_MANAGEMENT',\n /** Gestão de remuneração */\n REMUNERATION_MANAGEMENT = 'REMUNERATION_MANAGEMENT',\n /** Gestão de desenvolvimento */\n DEVELOPMENT_MANAGEMENT = 'DEVELOPMENT_MANAGEMENT',\n /** Folha de pagamento */\n PAYROLL = 'PAYROLL',\n /** Aplicativo */\n APP = 'APP',\n /** Moods */\n MOODS = 'MOODS'\n}\n","export enum Operators {\n EQUAL = 'eq',\n DIFFERENT = 'ne',\n LESS_THAN = 'it',\n GREATER_THAN = 'gt',\n LESS__EQUAL_THAN = 'le',\n GREATER_EQUAL_THAN = 'ge',\n CONTAINING = 'containing',\n LOWER = 'lower',\n AND = 'and',\n OR = 'or',\n}\n","/**\n * Enum com as funções de comparação da biblioteca Moment.js\n * Não contempla a função isBetween, será necessário fazer uma validação esoecífica para usá-la\n */\nexport enum CompareType {\n isBefore = \"isBefore\",\n isAfter = \"isAfter\",\n isSame = \"isSame\",\n isSameOrAfter = \"isSameOrAfter\",\n isSameOrBefore = \"isSameOrBefore\",\n isNotSame = \"isNotSame\",\n}\n","export enum ServiceType {\n ENTRY = 'entry',\n GENERAL_REGISTER = 'general_register',\n ORGANIZATION_REGISTER = 'organization_register',\n PAYROLL = 'payroll',\n DEPENDENT = 'dependent',\n}\n","export enum HttpRequestType {\n POST = \"post\",\n GET = \"get\",\n}\n","export enum ReportFormat {\n PDF = \"Pdf\",\n CSV = \"Csv\",\n HTML = \"Html\",\n XLS = \"Xls\",\n XLSX = \"Xlsx\",\n XML = \"Xml\",\n ODT = \"Odt\",\n RTF = \"Rtf\"\n}\n","export enum ParameterType {\n STRING = \"String\",\n INTEGER = \"Integer\",\n DOUBLE = \"Double\",\n BOOLEAN = \"Boolean\",\n DATE = \"Date\",\n DATETIME = \"DateTime\",\n TIME = \"Time\",\n OBJECT = \"Object\"\n}\n","export enum MenuType {\n DEFAULT = \"DEFAULT\",\n ACTION = \"ACTION\"\n}\n","export enum ReportStage {\n STARTING = \"Starting\",\n COMPILING = \"Compiling\",\n FILLING = \"Filling\",\n EXPORTING = \"Exporting\",\n DONE = \"Done\",\n CANCELLED = \"Cancelled\",\n GENERATED = \"Generated\",\n ERROR = \"Error\"\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class DataListRestService {\n constructor(private http: HttpClient) {}\n\n getList(endpoint: string, body: object): Observable<any> {\n return this.http.post(`${endpoint}`, body);\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { Table } from 'primeng/table';\nimport { Subject } from 'rxjs';\nimport { map, takeUntil } from 'rxjs/operators';\n\nimport { DirectionEnumeration } from '../../core/enums';\nimport { DataListRestService } from './data-list-rest.service';\n\n@Component({\n selector: 'c-data-list-rest',\n templateUrl: './data-list-rest.component.html',\n styleUrls: ['./data-list-rest.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [DataListRestService],\n})\nexport class DataListRestComponent implements OnInit, OnDestroy {\n @ViewChild('dataListTable', { static: false })\n dataListTable: Table;\n\n @Input()\n id: string;\n @Input()\n dataKey: string;\n @Input()\n rows = 10;\n @Input()\n emptyMessage: string;\n @Input()\n columns: any[];\n @Input()\n paginator = true;\n @Input()\n first = 1;\n @Input()\n alwaysShowPaginator = true;\n @Input()\n actions?: Function;\n @Input()\n actionLabel: string;\n @Input()\n selectionMode: string;\n @Input()\n lazy: boolean;\n @Input()\n isMultipleSelection: boolean;\n @Input()\n isSortable: boolean;\n @Input()\n showHeaderCheckBox: boolean;\n @Input()\n sortMode = 'multiple';\n @Input()\n endpoint: string;\n @Input()\n totalRecords: number;\n @Input()\n orderBy: { field: string; direction: DirectionEnumeration }[];\n @Input()\n singularMessageRecords: string;\n @Input()\n pluralMessageRecords: string;\n @Input()\n keyPayload: string;\n @Input()\n initParameters: any;\n @Input()\n responsive = true;\n @Input()\n scrollable = false;\n\n @Output()\n lazyLoad: EventEmitter<any> = new EventEmitter();\n @Output()\n loadingChange: EventEmitter<any> = new EventEmitter();\n @Output()\n listDataChange: EventEmitter<any> = new EventEmitter();\n @Output()\n selectedDataChange: EventEmitter<any> = new EventEmitter();\n @Output()\n headerCheckboxToggle: EventEmitter<any> = new EventEmitter();\n\n private _loading: boolean;\n private _listData: any[];\n private _selectedData: any[];\n private _searchParameters: any;\n private ngUnsubscribe = new Subject();\n\n constructor(private dataListService: DataListRestService) {}\n\n ngOnInit() {\n if (!this.lazy) {\n this.getlistData();\n }\n }\n\n ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n getActions(data: any, index: number) {\n return this.actions(data, index);\n }\n\n pagination(event) {\n if (!this.lazy) {\n this.getlistData(event.rows, Math.floor(event.first / event.rows));\n }\n }\n\n onLazyLoad(event) {\n this.loading = true;\n\n if (event.multiSortMeta && event.multiSortMeta.length) {\n this.orderBy = <{ field: string; direction: DirectionEnumeration }[]>[];\n event.multiSortMeta.map(value => {\n this.orderBy.push({ field: value.field, direction: value.order === 1 ? DirectionEnumeration.ASC : DirectionEnumeration.DESC });\n });\n }\n\n this.getlistData(event.rows, Math.floor(event.first / event.rows) + 1);\n }\n\n onFilter() {\n if (this.lazy) {\n this.loading = true;\n }\n\n this.getlistData();\n }\n\n get recordsMessage() {\n return `${this.totalRecords || 0} ${this.totalRecords === 1 ? this.singularMessageRecords : this.pluralMessageRecords}`;\n }\n\n getlistData(size = this.rows, offset = this.first): void {\n if (this.endpoint) {\n this.dataListService\n .getList(this.endpoint, {\n page: { current: offset, size: size, orderBy: this.orderBy },\n ...this.initParameters,\n ...this._searchParameters,\n })\n .pipe(\n takeUntil(this.ngUnsubscribe),\n map((data: any) => data && data.result)\n )\n .subscribe((data: any) => {\n this.listData = data[this.keyPayload];\n this.totalRecords = data.countResult;\n if (this.lazy) {\n this.lazyLoad.emit(this.listData);\n }\n });\n } else {\n if (this.lazy) {\n this.lazyLoad.emit(this.listData);\n }\n }\n }\n\n onHeaderCheckboxToggle(event) {\n this.headerCheckboxToggle.emit(event);\n }\n\n getFieldValue(rowData, col) {\n if (col['field'] && col['field'].includes('.')) {\n const objectPath = col['field'].split('.');\n objectPath.map(value => (rowData = rowData && rowData[value]));\n return rowData;\n }\n return rowData[col['field']];\n }\n\n @Input()\n set parameters(searchParameters: any) {\n if (searchParameters) {\n this._searchParameters = { ...searchParameters };\n\n if (this.dataListTable) {\n this.dataListTable.first = 0;\n }\n\n this.onFilter();\n }\n }\n\n set loading(value: boolean) {\n this._loading = value;\n this.loadingChange.emit(this._loading);\n }\n\n @Input()\n get loading() {\n return this._loading;\n }\n\n set listData(value: any[]) {\n this._listData = value;\n this.listDataChange.emit(this._listData);\n }\n\n @Input()\n get listData() {\n return this._listData;\n }\n\n set selectedData(value: any[]) {\n this._selectedData = value;\n this.selectedDataChange.emit(this._selectedData);\n }\n\n @Input()\n get selectedData() {\n return this._selectedData;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ButtonModule, LoadingStateModule } from '@seniorsistemas/angular-components';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { TableModule } from 'primeng/table';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { DataListRestComponent } from './data-list-rest.component';\n\n@NgModule({\n imports: [\n CommonModule,\n SharedModule,\n // Angular Components\n ButtonModule,\n LoadingStateModule,\n // Primeng\n TableModule,\n TooltipModule,\n ],\n declarations: [DataListRestComponent],\n exports: [DataListRestComponent],\n})\nexport class DataListRestModule {}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable()\nexport class EmployeeSummaryService {\n private employeeBasicInformations = new Subject<any>();\n\n constructor(private http: HttpClient) {}\n\n findEmployee(path: string, employeeId: string): Observable<any> {\n return this.http.post(`hcm/payroll/queries/${path}`, { employeeId: employeeId });\n }\n\n findEmployeeAutoComplete(path: string, terms: string): Observable<any> {\n return this.http.post(`hcm/payroll/queries/${path}`, { valueSearch: terms });\n }\n\n blobServiceRequestAccess(path: string, body: object): Observable<any> {\n return this.http.post(`hcm/payroll/actions/${path}`, body);\n }\n\n setEmployeeBasicInformations(employeeBasicInformations: any) {\n this.employeeBasicInformations.next(employeeBasicInformations);\n }\n\n getEmployeeBasicInformations(): Observable<any> {\n return this.employeeBasicInformations.asObservable();\n }\n}\n","import { Component, Input, OnDestroy, OnInit } from \"@angular/core\";\nimport { ActivatedRoute, Params } from \"@angular/router\";\nimport * as moment_ from \"moment\";\nimport { Subject } from \"rxjs\";\nimport { finalize, map, takeUntil } from \"rxjs/operators\";\n\nimport { EmployeeSummaryService } from \"./employee-summary.service\";\n\nexport interface IEmployeeSummary {\n name: string;\n jobPosition: string;\n photoSource?: string;\n employer?: string;\n location?: string;\n hireDate?: any;\n registernumber?: any;\n timeTrackingResumeType?: string;\n age?: string;\n}\n\nconst moment = moment_;\n\n@Component({\n selector: \"c-employee-summary\",\n templateUrl: \"./employee-summary.component.html\",\n})\nexport class EmployeeSummaryComponent implements OnInit, OnDestroy {\n @Input()\n public timetrackingLabel: string = \"Status\";\n @Input()\n public hireDate: string;\n @Input()\n public hireLabel: string = \"Admissão\";\n @Input()\n public registerNumberLabel: string = \"Matrícula\";\n @Input()\n public ageLabel: string = \"Idade\";\n @Input()\n public loadingLabel: string = \"...\";\n @Input()\n public loadingDescription: string = \"Carregando...\";\n public emploayeeData: IEmployeeSummary;\n public isLoading: boolean = false;\n\n private ngUnsubscribe = new Subject();\n\n constructor(private activatedRoute: ActivatedRoute, private employeeService: EmployeeSummaryService) {\n }\n\n public ngOnInit() {\n this.emploayeeData = {\n name: this.loadingLabel,\n jobPosition: this.loadingDescription,\n };\n\n this.activatedRoute.params.pipe(takeUntil(this.ngUnsubscribe)).subscribe((params: Params) => {\n if (params.employeeId) {\n this.getInformation(params.employeeId);\n }\n });\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next(true);\n this.ngUnsubscribe.complete();\n }\n\n private getInformation(employeeId: string) {\n this.isLoading = true;\n\n this.employeeService\n .findEmployee(\"employeeContractualInformations\", employeeId)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n map((data: any) => data && data.result),\n finalize(() => {\n this.isLoading = false;\n }),\n )\n .subscribe(payload => {\n this.employeeService.setEmployeeBasicInformations(payload);\n\n this.emploayeeData = {\n ...payload,\n timeTrackingResumeType: payload.timeTrackingResumeType && payload.timeTrackingResumeType.value,\n };\n const location: string[] = [];\n\n if (payload.city) {\n location.push(payload.city);\n }\n if (payload.stateAbbreviation) {\n location.push(payload.stateAbbreviation);\n }\n\n this.emploayeeData.location = location.join(\" - \");\n\n if (payload.hireDate) {\n this.emploayeeData.hireDate = this.hireDate ? this.hireDate : moment(payload.hireDate).format(\"L\");\n }\n\n if (payload.idPicture) {\n const request = {\n fileId: payload.idPicture,\n ttl: 2,\n thumbnail: false,\n };\n\n this.employeeService\n .blobServiceRequestAccess(\"blobServiceRequestAccess\", request)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n map((data: any) => data && data.result),\n )\n .subscribe((imageData: any) => {\n if (imageData) {\n this.emploayeeData.photoSource = imageData.locationURI;\n }\n });\n }\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { LoadingStateModule, ObjectCardModule } from '@seniorsistemas/angular-components';\n\nimport { EmployeeSummaryComponent } from './employee-summary.component';\nimport { EmployeeSummaryService } from './employee-summary.service';\n\n@NgModule({\n imports: [ObjectCardModule, LoadingStateModule],\n declarations: [EmployeeSummaryComponent],\n exports: [EmployeeSummaryComponent],\n providers: [EmployeeSummaryService],\n})\nexport class EmployeeSummaryModule {}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable()\nexport class AdmissionDraftSummaryService {\n private admissionDraftBasicInformations = new Subject<any>();\n\n constructor(private http: HttpClient) {\n }\n\n findAdmissionDraft(draftId: string): Observable<any> {\n return this.http.post('hcm/payroll/queries/admissionDraftQuery', { id: draftId });\n }\n\n\n blobServiceRequestAccess(path: string, body: object): Observable<any> {\n return this.http.post(`hcm/payroll/actions/${path}`, body);\n }\n\n setAdmissionDraftBasicInformations(draftBasicInformations: any) {\n this.admissionDraftBasicInformations.next(draftBasicInformations);\n }\n}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute, Params } from '@angular/router';\nimport { TranslateService } from \"@ngx-translate/core\";\nimport * as moment_ from 'moment';\nimport { Subject } from 'rxjs';\nimport { finalize, map, takeUntil } from 'rxjs/operators';\n\nimport { AdmissionDraftSummaryService } from './admission-draft-summary.service';\n\nexport interface IAdmissionDraftSummary {\n id?: string;\n name: string;\n documentNumber: string;\n originDraftType: string;\n companyName: string;\n localeOfCompany: string;\n hiringDate: any;\n attachment?: any;\n photoSource?: string;\n}\n\nconst moment = moment_;\n\n@Component({\n selector: 'c-admission-draft-summary',\n templateUrl: './admission-draft-summary.component.html',\n})\nexport class AdmissionDraftSummaryComponent implements OnInit, OnDestroy {\n @Input()\n public originType: string;\n @Input()\n public hireLabel: string = 'Admissão';\n @Input()\n public hireDate: string = '...';\n @Input()\n public badgeText: string = 'Rascunho';\n @Input()\n public loadingLabel: string = '...';\n @Input()\n public documentNumberLabel: string = 'Documento';\n @Input()\n public loadingDescription: string = 'Carregando...';\n public draftData: IAdmissionDraftSummary;\n public isLoading: boolean = false;\n\n private ngUnsubscribe = new Subject();\n\n constructor(private activatedRoute: ActivatedRoute,\n private admissionDraftSummaryService: AdmissionDraftSummaryService,\n private translateService: TranslateService) {\n }\n\n public ngOnInit() {\n this.draftData = {\n name: this.loadingLabel,\n hiringDate: this.hireDate,\n documentNumber: this.loadingLabel,\n companyName: this.loadingLabel,\n localeOfCompany: this.loadingLabel,\n originDraftType: this.loadingLabel,\n };\n\n this.activatedRoute.params.pipe(takeUntil(this.ngUnsubscribe)).subscribe((params: Params) => {\n if (params.draftId) {\n this.getInformation(params.draftId);\n }\n });\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next(true);\n this.ngUnsubscribe.complete();\n }\n\n private getInformation(draftId: string) {\n this.isLoading = true;\n\n this.admissionDraftSummaryService\n .findAdmissionDraft(draftId)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n map((data: any) => data && data.result),\n finalize(() => {\n this.isLoading = false;\n }),\n )\n .subscribe(payload => {\n this.admissionDraftSummaryService.setAdmissionDraftBasicInformations(payload);\n payload.hiringDate = this.hireDate;\n\n this.draftData = {\n ...payload,\n };\n\n this.draftData.originDraftType = this.originType;\n if (payload.attachment && payload.attachment.fileId) {\n const request = {\n fileId: this.draftData.attachment.fileId,\n ttl: 2,\n thumbnail: false,\n };\n\n this.admissionDraftSummaryService\n .blobServiceRequestAccess('blobServiceRequestAccess', request)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n map((data: any) => data && data.result),\n )\n .subscribe((imageData: any) => {\n if (imageData) {\n this.draftData.photoSource = imageData.locationURI;\n }\n });\n }\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { LoadingStateModule, ObjectCardModule } from '@seniorsistemas/angular-components';\n\nimport { AdmissionDraftSummaryComponent } from './admission-draft-summary.component';\nimport { AdmissionDraftSummaryService } from './admission-draft-summary.service';\n\n@NgModule({\n imports: [ObjectCardModule, LoadingStateModule],\n declarations: [AdmissionDraftSummaryComponent],\n exports: [AdmissionDraftSummaryComponent],\n providers: [AdmissionDraftSummaryService],\n})\nexport class AdmissionDraftSummaryModule {}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'error-page',\n templateUrl: './error-page.component.html',\n styleUrls: ['./error-page.component.css'],\n})\nexport class ErrorPageComponent implements OnInit {\n constructor() {}\n\n ngOnInit() {}\n}\n","import { NgModule } from '@angular/core';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { ErrorPageComponent } from './error-page.component';\n\n@NgModule({\n imports: [SharedModule],\n declarations: [ErrorPageComponent],\n exports: [ErrorPageComponent],\n providers: [],\n})\nexport class ErrorPageModule {}\n","import { Component, Input, OnChanges, OnInit } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n@Component({\n selector: 'field-validator',\n templateUrl: './field-validator.component.html'\n})\nexport class FieldValidatorComponent implements OnInit, OnChanges {\n\n @Input()\n inputErrors: any;\n @Input()\n errorDefs: any;\n @Input()\n field: AbstractControl;\n @Input()\n onlyShowAfterTouched: boolean;\n\n errorMessage = '';\n\n constructor() { }\n\n ngOnInit() { }\n\n ngOnChanges(changes: any): void {\n const errors: any = changes.inputErrors.currentValue;\n this.errorMessage = '';\n if (errors) {\n Object.keys(this.errorDefs).some(key => {\n if (errors[key]) {\n this.errorMessage = this.errorDefs[key];\n return true;\n }\n });\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { FieldValidatorComponent } from './field-validator.component';\n\n@NgModule({\n imports: [CommonModule, SharedModule, ReactiveFormsModule],\n declarations: [FieldValidatorComponent],\n exports: [FieldValidatorComponent],\n providers: [],\n})\nexport class FieldValidatorModule {}\n","import { Observable, Subject } from 'rxjs';\n\nexport class ToastService {\n private messagesSubjectError = new Subject<object>();\n private messagesSubjectSuccess = new Subject<object>();\n private messagesSubjectWarning = new Subject<object>();\n\n constructor() {}\n\n /**\n * Exibe Toast de error (vermelho)\n * @param message\n * @param breakLine se deseja quebrar a mensagem caso tenha '\\n' contido\n */\n showError(message, breakLine = false) {\n this.messagesSubjectError.next({ message: message, breakLine: breakLine });\n }\n /**\n * Exibe Toast de success (verde)\n * @param message\n * @param breakLine se deseja quebrar a mensagem caso tenha '\\n' contido\n */\n showSuccess(message, breakLine = false) {\n this.messagesSubjectSuccess.next({ message: message, breakLine: breakLine });\n }\n /**\n * Exibe Toast de warning (amarelo)\n * @param message\n * @param breakLine se deseja quebrar a mensagem caso tenha '\\n' contido\n */\n showWarning(message, breakLine = false) {\n this.messagesSubjectWarning.next({ message: message, breakLine: breakLine });\n }\n\n loadErrorMessages(): Observable<any> {\n return this.messagesSubjectError.asObservable();\n }\n\n loadSuccessMessages(): Observable<any> {\n return this.messagesSubjectSuccess.asObservable();\n }\n\n loadWarningMessages(): Observable<any> {\n return this.messagesSubjectWarning.asObservable();\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ServiceType } from '../../core/enums/serviceType';\nimport { catchError} from \"rxjs/operators\";\nimport { MessageService } from 'primeng/api';\nimport { TranslateService } from '@ngx-translate/core';\nimport { throwError } from 'rxjs';\n\n@Injectable()\nexport class HttpClientService {\n constructor(private http: HttpClient, private messageService: MessageService, private translateService: TranslateService) {}\n\n query(path: string, body: object, service: ServiceType = ServiceType.PAYROLL): Observable<any> {\n const endpoit = `hcm/${service}/queries/${path}`;\n return this.http.post(endpoit, body)\n .pipe(\n catchError((exception: any): any => {\n if (exception && exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed_search\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n\n enumQuery(path: string, body: object, server = 'payroll'): Observable<any> {\n const endpoit = `hcm/${server}/queries/${path}`;\n return this.http.post(endpoit, body)\n .pipe(\n catchError((exception: any): any => {\n if (exception && exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed_search\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n\n action(path: string, body: object): Observable<any> {\n const endpoit = `hcm/payroll/actions/${path}`;\n return this.http.post(endpoit, body)\n .pipe(\n catchError((exception: any): any => {\n if (exception && exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n\n recruitmentAction(path: string, body: object): Observable<any> {\n const endpoint = `hcm/recruitment/actions/${path}`;\n return this.http.post(endpoint, body)\n .pipe(\n catchError((exception: any): any => {\n if (exception && exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n\n get(path: string): Observable<any> {\n const endpoit = `hcm/payroll/entities/${path}`;\n return this.http.get(endpoit)\n .pipe(\n catchError((exception: any): any => {\n if (exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed_search\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n\n getAutoComplete(entity: string, filter: string, service: ServiceType = ServiceType.PAYROLL): Observable<any> {\n const endpoit = `hcm/${service}/entities/${entity}?filter=${filter}&size=10&orderby=code+asc`;\n return this.http.get(endpoit)\n .pipe(\n catchError((exception: any): any => {\n if (exception && exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed_search\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n\n patch(path: string, body: object): Observable<any> {\n const endpoit = `hcm/payroll/entities/${path}`;\n return this.http.patch(endpoit, body)\n .pipe(\n catchError((exception: any): any => {\n if (exception && exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n\n post(path: string, body: object): Observable<any> {\n const endpoit = `hcm/payroll/${path}`;\n return this.http.post(endpoit, body)\n .pipe(\n catchError((exception: any): any => {\n if (exception && exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n\n put(path: string, body: object): Observable<any> {\n const endpoit = `hcm/payroll/entities/${path}`;\n return this.http.put(endpoit, body)\n .pipe(\n catchError((exception: any): any => {\n if (exception && exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n\n delete(path: string, key?: string): Observable<any> {\n const endpoit = key ? `hcm/payroll/entities/${path}/${key}` : `hcm/payroll/entities/${path}`;\n return this.http.delete(endpoit)\n .pipe(\n catchError((exception: any): any => {\n if (exception && exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { HttpClientService } from '../shared/http-client.service';\n\n@Injectable()\nexport class FileUploadService {\n httpOptions: object;\n\n constructor(private http: HttpClientService) {}\n\n blobServiceRequestUpload(file: Blob): Observable<any> {\n const requestUpload = {\n fileName: file[\"name\"],\n thumbnail: this.isImage(file),\n };\n const endpoint = 'blobServiceRequestUpload';\n return this.http.action(endpoint, requestUpload);\n }\n\n blobServiceRequestAccess(fileId): Observable<any> {\n const request = {\n fileId: fileId,\n tll: 2,\n thumbnail: false,\n };\n const endpoint = 'blobServiceRequestAccess';\n return this.http.action(endpoint, request);\n }\n\n blobServiceFileDelete(fileId): Observable<any> {\n const request = {\n fileId: fileId,\n thumbnail: false,\n };\n const endpoint = 'blobServiceDelete';\n return this.http.action(endpoint, request);\n }\n\n private isImage(file: Blob): boolean {\n return /^image\\//.test(file.type);\n }\n}\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { forkJoin, Observable } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { ToastService } from \"../toast/toast.service\";\n\nimport { FileUploadService } from \"./file-upload.service\";\n\n@Component({\n selector: \"c-file-upload\",\n templateUrl: \"./file-upload.component.html\",\n})\nexport class FileUploadComponent {\n @Input()\n errorTooltip: string;\n @Input()\n files: Blob[] = [];\n @Output()\n onUploadFile = new EventEmitter();\n @Output()\n onRemoveFile = new EventEmitter();\n\n constructor(private service: FileUploadService, private toastService: ToastService, private translate: TranslateService) {\n }\n\n uploadHandler(event: { files: Blob[] }) {\n const observables: any[] = [];\n if (event && event.files.length) {\n\n event.files.sort();\n if (event.files.length > 10 && event.files[10]) {\n delete event.files[10];\n }\n\n const countFiles: number = this.getFilesCountAndValidate(event.files);\n for (var i = 0; i < countFiles; i++) {\n const file = this.validateFileSize(event.files[i]);\n\n if (i <= 9 && file[\"isUploaded\"] && !file[\"complete\"])\n observables.push(this.saveFile(file));\n }\n\n forkJoin(...observables).subscribe(() => {\n this.onUploadFile.emit(this.files);\n });\n }\n }\n\n /**\n * Valida o tamanho do arquivo, limitando em 50mb.\n * @param file\n */\n private validateFileSize(file: Blob): Blob {\n if (file[\"isUploaded\"] && !file[\"complete\"] && file[\"size\"] > 50000000) {\n file[\"complete\"] = true;\n file[\"error\"] = this.translate.instant(\"hcm.payroll.attachments_max_mb\");\n this.toastService.showError(this.translate.instant(\"hcm.payroll.attachments_alert_error\"));\n }\n\n return file;\n }\n\n /**\n * Valida a quantidade de arquivos, limitando em 10 anexos.\n * @param files\n */\n private getFilesCountAndValidate(files: Blob[]): number {\n let countFiles = 0;\n if (files.length) {\n if (files.length > 10) {\n countFiles = 10;\n this.toastService.showError(this.translate.instant(\"hcm.payroll.attachments_max_length\"));\n } else {\n countFiles = files.length;\n }\n }\n return countFiles;\n }\n\n\n saveFile(file: Blob) {\n const obs = new Observable(observable => {\n return this.service\n .blobServiceRequestUpload(file)\n .pipe(map((response: any) => response && response.result))\n .subscribe(\n response => this.doUpload(response, file, observable),\n error => {\n file[\"complete\"] = true;\n file[\"error\"] = error.message;\n file[\"objectURL\"] = undefined;\n },\n );\n });\n return obs;\n }\n\n doUpload(response: any, file: any, observable: any) {\n const xhr = new XMLHttpRequest();\n file[\"id\"] = response.fileId;\n file[\"objectURL\"] = response.locationURI;\n file[\"version\"] = response.version;\n file[\"progress\"] = 0;\n\n xhr.upload.addEventListener(\n \"progress\",\n (evt: ProgressEvent) => {\n file[\"progress\"] = Math.round((evt.loaded * 100) / evt.total);\n },\n false,\n );\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n file[\"complete\"] = true;\n\n if (xhr.status < 200 || xhr.status >= 300) {\n file[\"objectURL\"] = undefined;\n file[\"error\"] = xhr.statusText || \"Erro ao anexar arquivo\";\n } else {\n file[\"error\"] = false;\n }\n observable.next(file);\n observable.complete();\n }\n };\n\n xhr.open(\"PUT\", file.objectURL, true);\n xhr.setRequestHeader(\"Translate\", \"f\");\n return xhr.send(file);\n }\n\n onCancelUpload(index: any) {\n this.files.splice(index, 1);\n }\n\n removeFile() {\n this.onRemoveFile.emit(this.files);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FileUploadModuleDeprecated } from '@senior-gestao-pessoas/angular-components';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { FileUploadComponent } from './file-upload.component';\nimport { FileUploadService } from './file-upload.service';\n\n@NgModule({\n imports: [CommonModule, FileUploadModuleDeprecated, SharedModule],\n declarations: [FileUploadComponent],\n providers: [FileUploadService],\n exports: [FileUploadComponent],\n})\nexport class FileUploadCoreModule {}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n@Injectable()\nexport class ImageCropService {\n constructor(private http: HttpClient) { }\n\n async saveImage(file: Blob | File, sourceImage: string, service: string) {\n if (!file) {\n return;\n }\n\n let fileUpload = null;\n if (file) {\n fileUpload = { fileName: file[\"name\"] };\n } else if (sourceImage) {\n fileUpload = { fileName: sourceImage.split('/')[1] };\n }\n if (fileUpload) {\n const response = await this.blobServiceRequestUpload(service, fileUpload).toPromise();\n const request = new XMLHttpRequest();\n request.open('PUT', response.result.locationURI, true);\n request.setRequestHeader('Translate', 'f');\n request.send(file);\n return response.result;\n }\n }\n\n urltoFile(url, filename, mimeType = null): Observable<Blob> {\n mimeType = mimeType || (url.match(/^data:([^;]+);/) || '')[1];\n return this.http.request(\"GET\", url, { responseType: 'arraybuffer' })\n .pipe(map(blob => {\n const file = new Blob([blob], { type: mimeType });\n file[\"name\"] = filename;\n return file;\n }));\n }\n\n async getImage(data: any, service: string, thumbnail: boolean) {\n if (data && data.fileId) {\n const response = await this.blobServiceRequestAccess(service, data.fileId, thumbnail).toPromise();\n return response.result.locationURI;\n }\n }\n\n buildUrl(service: string, resource: string) {\n return `hcm/${service}/${resource}`;\n }\n\n query(service: string, path: string, body: object): Observable<any> {\n const endpoit = `queries/${path}`;\n return this.http.post(this.buildUrl(service, endpoit), body);\n }\n\n blobServiceRequestUpload(service, file): Observable<any> {\n const requestUpload = {\n fileName: file.fileName,\n thumbnail: true,\n };\n const endpoint = 'actions/blobServiceRequestUpload';\n return this.http.post(this.buildUrl(service, endpoint), requestUpload);\n }\n\n blobServiceRequestAccess(service, fileId, thumbnail): Observable<any> {\n const request = {\n fileId: fileId,\n tll: 2,\n thumbnail: thumbnail,\n };\n const endpoint = 'actions/blobServiceRequestAccess';\n return this.http.post(this.buildUrl(service, endpoint), request);\n }\n\n blobServiceFileDelete(service, fileId): Observable<any> {\n const request = {\n fileId: fileId,\n thumbnail: true,\n };\n const endpoint = 'actions/blobServiceDelete';\n return this.http.post(this.buildUrl(service, endpoint), request);\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { CropperSettings, ImageCropperComponent } from 'ng2-img-cropper';\n\nimport { ToastService } from '../toast/toast.service';\nimport { ImageCropService } from './image-crop.service';\n\n@Component({\n selector: 'image-crop',\n templateUrl: './image-crop.component.html',\n styleUrls: ['./image-crop.component.css'],\n})\nexport class ImageCropComponent implements OnInit {\n @Input()\n service = 'payroll';\n @Output()\n onClickSave: EventEmitter<any> = new EventEmitter();\n\n private file: Blob;\n @ViewChild('cropper', { static: false })\n private cropper: ImageCropperComponent;\n defaulPerson = 'assets/default-person.png';\n personPhotoLink: string;\n personFirstName: string;\n display = false;\n cropperSettings: CropperSettings;\n imageCrop = [];\n data: any = {};\n\n constructor(private imageCropService: ImageCropService, private toastService: ToastService) {\n this.cropperSettings = new CropperSettings();\n this.cropperSettings.width = 100;\n this.cropperSettings.height = 100;\n this.cropperSettings.keepAspect = false;\n this.cropperSettings.preserveSize = true;\n this.cropperSettings.canvasWidth = 600;\n this.cropperSettings.canvasHeight = 450;\n this.cropperSettings.rounded = true;\n this.cropperSettings.minWithRelativeToResolution = false;\n this.cropperSettings.noFileInput = true;\n this.cropperSettings.cropperDrawSettings.strokeColor = 'rgba(255,255,255,1)';\n this.cropperSettings.cropperDrawSettings.strokeWidth = 1;\n }\n\n @Input()\n set image(data) {\n if (data && data.fileId && !this.personPhotoLink) {\n this.imageCropService.blobServiceRequestAccess(this.service, data.fileId, true).subscribe(response => {\n this.personPhotoLink = response.result.locationURI;\n });\n }\n }\n\n onUploadHandler($event) {\n this.file = $event.files[0];\n\n if (this.file && this.file.size > 5000000) {\n this.file = null;\n this.imageCrop = [];\n this.toastService.showError('O tamanho máximo permitido para a imagem é de 5MB');\n return;\n }\n this.display = false;\n\n const image: any = new Image();\n const myReader: FileReader = new FileReader();\n myReader.onloadend = (loadEvent: any) => {\n image.src = loadEvent.target.result;\n this.cropper.setImage(image);\n };\n\n myReader.readAsDataURL(this.file);\n this.display = true;\n }\n\n ngOnInit(): void {\n this.data.image = null;\n this.personPhotoLink = null;\n this.personFirstName = '';\n this.display = false;\n }\n\n showDialog(): void {\n this.display = true;\n }\n\n onHide() {\n this.display = false;\n }\n\n reset() {\n this.file = null;\n this.data = {};\n this.imageCrop = [];\n this.cropper.reset();\n this.data.image = null;\n this.personPhotoLink = null;\n this.personFirstName = '';\n }\n\n async saveImage() {\n if (!this.file) {\n this.onClickSave.emit(null);\n this.onHide();\n return;\n }\n\n const fileName = this.file['name'];\n if (this.cropper && this.cropper.image) {\n const fileImage = await this.urltoFile(this.cropper.image.image, fileName);\n this.personPhotoLink = this.data.image;\n let fileUpload = null;\n if (this.file) {\n fileUpload = { fileName: this.file['name'] };\n } else if (this.data) {\n fileUpload = { fileName: this.data.fileId.split('/')[1] };\n }\n if (fileUpload) {\n const thisContext = this;\n this.imageCropService.blobServiceRequestUpload(this.service, fileUpload).subscribe(response => {\n const request = new XMLHttpRequest();\n request.open('PUT', response.result.locationURI, true);\n request.setRequestHeader('Translate', 'f');\n request.send(fileImage);\n this.onClickSave.emit(response.result);\n this.onHide();\n });\n }\n }\n }\n\n urltoFile(url, filename, mimeType = null) {\n mimeType = mimeType || (url.match(/^data:([^;]+);/) || '')[1];\n return fetch(url)\n .then(function(res) {\n return res.arrayBuffer();\n })\n .then(function(buf) {\n return new File([buf], filename, { type: mimeType });\n });\n }\n\n deleteImage() {\n this.imageCropService.blobServiceFileDelete(this.service, this.data && this.data.image && this.data.image.fileId);\n this.reset();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ImageCropperModule } from 'ng2-img-cropper';\nimport { ButtonModule } from 'primeng/button';\nimport { DialogModule } from 'primeng/dialog';\nimport { FileUploadModule } from 'primeng/fileupload';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { ImageCropComponent } from './image-crop.component';\nimport { ImageCropService } from './image-crop.service';\nimport { ThumbnailModule, ImageCropperService } from '@seniorsistemas/angular-components';\n\n@NgModule({\n imports: [\n CommonModule,\n SharedModule,\n DialogModule,\n ButtonModule,\n FileUploadModule,\n ImageCropperModule,\n ImageCropperModule,\n ThumbnailModule],\n declarations: [ImageCropComponent],\n providers: [ImageCropService, ImageCropperService],\n exports: [ImageCropComponent],\n})\n/**\n * @deprecated\n */\nexport class ImageCropModule {}\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\nimport * as _moment from \"moment\";\nimport { LocaleService } from \"@seniorsistemas/angular-components\";\n\nconst moment = _moment;\n\n@Component({\n selector: \"input-date-calendar-model\",\n templateUrl: \"./input-date-model.component.html\",\n})\nexport class InputDateModelComponent implements OnInit {\n @Input()\n name: string;\n @Input()\n disabled?: boolean;\n @Input()\n withoutDay: boolean;\n @Input()\n unmask: boolean;\n @Input()\n style: boolean;\n @Input()\n styleClass: string;\n\n @Output()\n onBlurGetMoment: EventEmitter<any> = new EventEmitter();\n @Output()\n modelChange: EventEmitter<any> = new EventEmitter();\n\n private _date: any;\n private locale: any;\n private format: any;\n private _model: any;\n mask = null;\n\n constructor(private localeService: LocaleService) {\n }\n\n ngOnInit() {\n this.localeService.get().subscribe(loc => {\n this.mask = this.formatMask(loc);\n this.format = this.getFormat();\n if (this.model) {\n const newDate = this.model;\n const momentDate = moment(newDate, this.format || \"YYYY-MM-DD\");\n if (momentDate.isValid()) {\n this.model = momentDate.format(this.format || \"L\");\n this._date = momentDate;\n } else {\n this._date = null;\n }\n }\n });\n }\n\n formatMask(loc) {\n this.locale = loc;\n let dateMask = this.locale.calendar.dateFormat.toString();\n\n if (this.withoutDay) {\n dateMask = dateMask.replace(\"dd/\", \"\").replace(\"-dd\", \"\");\n }\n\n dateMask = dateMask.replace(/[d]|[m]/g, \"9\");\n return dateMask.replace(/[y]/g, \"99\");\n }\n\n getFormat() {\n let dateFormat = this.locale.calendar.dateFormat.toString();\n dateFormat = dateFormat.replace(/[y]/g, \"YY\");\n\n if (this.withoutDay) {\n dateFormat = dateFormat.replace(\"dd/\", \"\").replace(\"-dd\", \"\");\n }\n\n return dateFormat.toUpperCase();\n }\n\n get placeholder() {\n return this.mask ? this.mask.toString().replace(/[9]/g, \"_\") : \"\";\n }\n\n onBlur() {\n const dateComponet = this.model;\n this._date = moment(dateComponet, this.format);\n this.onBlurGetMoment.emit(this._date);\n }\n\n set model(val) {\n this._model = val;\n this.modelChange.emit(this._model);\n }\n\n @Input()\n get model() {\n return this._model;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { InputMaskModule } from 'primeng/inputmask';\n\nimport { InputDateModelComponent } from './input-date-model.component';\n\n@NgModule({\n imports: [InputMaskModule, FormsModule, ReactiveFormsModule, CommonModule],\n declarations: [InputDateModelComponent],\n exports: [InputDateModelComponent],\n})\nexport class InputDateModelModule {}\n","import { FormArray, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { ValidatorFn } from '@angular/forms/';\nimport * as chance from 'chance';\nimport * as momentImported from 'moment';\nimport business from 'moment-business';\nimport { LocaleOptions } from '@seniorsistemas/angular-components';\nimport { FieldValidatorsObject } from '../../core/interfaces/field-validators-object';\n\nconst moment = momentImported;\n\nexport function isObject(item) {\n return item && typeof item === 'object' && !Array.isArray(item);\n}\n\nexport function isShallow(item) {\n return Array.isArray(item) && item.find(value => typeof value === 'object') ? false : true;\n}\n\nexport function convertBooleanString(value) {\n if (typeof value === 'boolean') {\n return value === true ? 'true' : 'false';\n }\n return value;\n}\n\nexport function convertStringToBoolean(value) {\n return value === true || value.toLowerCase() === 'true';\n}\n\nexport function assign(target, ...sources) {\n if (!sources.length) {\n return target;\n }\n\n const source = sources.shift();\n if (isObject(target) && isObject(source)) {\n for (const key in source) {\n if (isObject(source[key])) {\n if (!target[key]) {\n Object.assign(target, { [key]: {} });\n }\n assign(target[key], source[key]);\n } else {\n if (isShallow(source[key])) {\n Object.assign(target, { [key]: source[key] });\n } else {\n if (!target[key]) {\n Object.assign(target, { [key]: [] });\n }\n Object.assign(target, { [key]: source[key].map((item, index) => assign(target[key][index] || {}, item)) });\n }\n }\n }\n }\n return assign(target, ...sources);\n}\n\nexport function isValid(value) {\n return value === 0 || typeof value === 'boolean' ? true : value !== undefined && value !== null && value !== '';\n}\n\nexport function isValidDate(value, withDays = true) {\n if (value && isFullDate(value, withDays)) {\n if (withDays) {\n return moment(value.replace(/[^\\d]+/g, ''), 'DDMMYYYY').isValid();\n } else {\n return moment(value.replace(/[^\\d]+/g, ''), 'MMYYYY').isValid();\n }\n }\n return true;\n}\n\nexport function isFullDate(value, withDays = true) {\n if (value) {\n let totalLength;\n if (withDays) {\n totalLength = 8;\n } else {\n totalLength = 6;\n }\n return value.replace(/[^\\d]+/g, '').length === totalLength;\n }\n return true;\n}\n\nexport function autoCompleteObjectForIdObject(tableIdObject) {\n if (!isObject(tableIdObject)) {\n console.error('Paramentro não é um objeto');\n return false;\n }\n\n if (tableIdObject.hasOwnProperty('tableId')) {\n console.error('Paramentro não é um objeto Auto Complete válido, falta tableId');\n }\n\n if (!isValid(tableIdObject.tableId)) {\n console.error('tableId esta vazio');\n }\n\n return { id: tableIdObject.tableId };\n}\n\nexport function isDateField(name, value) {\n const testDate = name.search('Date');\n if (testDate !== -1) {\n return invertFieldDate(value);\n }\n return value;\n}\n\nexport function invertFieldDate(value, inFormat = 'DDMMYYYY', outFormat = 'YYYY-MM-DD') {\n if (!isValid(value)) {\n return;\n }\n const formatIn = getFormatDate(value, inFormat);\n return moment(value.replace(/[^\\d]+/g, ''), formatIn).format(outFormat);\n}\n\nexport function getAddWeekDaysBusiness(value, quantidade) {\n return business.addWeekDays(getMoment(value), quantidade).format('DD/MM/YYYY');\n}\n\nexport function getWeekDaysBusiness(startDate, endDate) {\n const endMoment = endDate ? getMoment(endDate) : getMoment(startDate).endOf('month');\n return business.weekDays(getMoment(startDate), endMoment);\n}\n\nexport function getFormatDate(value, inFormat) {\n if (value.search('/') !== -1) {\n return 'DDMMYYYY';\n } else if (value.search('-') !== -1) {\n return 'YYYYMMDD';\n }\n return inFormat;\n}\n\n/**\n * FIXME - Está fixo para uso do calendário portugues Brasil\n * @param value\n * @param outFormat\n * @returns\n */\nexport function ngCalendarFormat(value, outFormat = 'DD/MM/YYYY') {\n if (isValidDate(value)) {\n if (typeof value === 'string') {\n return value;\n } else {\n return _moment(value).format(outFormat);\n }\n }\n}\n\nexport function getNowDate(outFormat = 'YYYY-MM-DD') {\n return moment().format(outFormat);\n}\n\nexport function getMoment(value, inFormat = 'DDMMYYYY') {\n const formatIn = getFormatDate(value, inFormat);\n return moment(value.replace(/[^\\d]+/g, ''), formatIn);\n}\n\nexport function _moment(value, format?: string) {\n if (format) {\n return moment(value, format);\n }\n return moment(value);\n}\n\nexport function getObjValids(objs) {\n const json = Object.assign({}, objs);\n const jsonReturn = {};\n Object.keys(json).map(key => {\n if (isValid(json[key])) {\n jsonReturn[key] = isDateField(key, json[key]);\n }\n });\n return jsonReturn;\n}\n\nexport function removeEmpty(obj) {\n Object.keys(obj).forEach(\n k => (obj[k] && typeof obj[k] === 'object' && removeEmpty(obj[k])) || (!obj[k] && obj[k] !== undefined && delete obj[k])\n );\n return obj;\n}\n\nexport function formatMoney(value, i18n = 'EN') {\n switch (i18n) {\n case 'EN':\n return isValid(value)\n ? value\n .toString()\n .replace('.', '')\n .replace(',', '.')\n : '';\n case 'BR':\n return isValid(value)\n ? value\n .toString()\n .replace('.', ',')\n .replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1.')\n : '';\n default:\n return isValid(value)\n ? value\n .toString()\n .replace('.', '')\n .replace(',', '.')\n : '';\n }\n}\n\nexport function uiid() {\n return new chance()\n .guid()\n .replace(/[^a-zA-Z0-9.]/g, '')\n .toUpperCase();\n}\n\nexport function mountCustomForSave(custom, customEntity = null, locale = null) {\n const custonField = [];\n if (customEntity && custom.length) {\n customEntity.map((val, key) => {\n const field = Object.keys(custom[key]).toString();\n const valOrnull = isValid(custom[key][field]) ? custom[key][field] : null;\n const value =\n val.type === 'date' && locale && isValid(valOrnull) ? moment(valOrnull, getFormat(locale)).format('YYYY-MM-DD') : valOrnull;\n custonField.push({\n field: field,\n value: value,\n });\n });\n }\n return custonField.length ? custonField : null;\n}\n\n/**\n * Prepara o objeto de campos customizados para salvar as entidades que\n * são utilizadas a partir do CRUD customizado.\n * @param objectFields objeto com os campos customizados da entidade.\n */\nexport function mountCustomToSave(objectFields) {\n const customFields = [];\n Object.entries(objectFields).forEach(([field, value]) => {\n customFields.push({\n field: field,\n value: value,\n });\n });\n return customFields;\n}\n\n/**\n * Prepara o objeto de campos customizados para exibir as entidades que\n * são utilizadas a partir do CRUD customizado.\n * @param customFields objeto com os campos customizados da entidade.\n */\nexport function mountCustomToShow(customFields) {\n const customFieldsToShow = {};\n if (customFields && customFields.length) {\n customFields.forEach(item => {\n if (item.type === 'date' && item.value) {\n item.value = _moment(item.value).format('L');\n }\n customFieldsToShow[item.field] = item.value;\n });\n }\n return customFieldsToShow;\n}\n\n/**\n * Prepara o objeto de campos customizados para salvar as entidades que\n * são utilizadas a partir do CRUD gerado.\n * @param objectFields objeto com os campos customizados da entidade.\n */\nexport function mountGeneratedCustomToSave(objectFields) {\n Object.entries(objectFields).forEach(([key, value]) => {\n if (!value) {\n delete objectFields[key];\n }\n });\n return objectFields;\n}\n\nexport function mountCustomForShow(custom) {\n const customField = [];\n Object.keys(custom || {}).forEach(val => {\n if (custom[val].type === 'date' && custom[val].value) {\n custom[val].value = _moment(custom[val].value).format('L');\n }\n customField.push(custom[val]);\n });\n return customField;\n}\n\nexport function setValueCustom(custonFields, custom) {\n const isCustons = custom ? Object.keys(custom).length : 0;\n custonFields.map(val => {\n val.value = isCustons > 0 ? custom[val.field] : null;\n });\n return custonFields;\n}\n\n/**\n * Adiciona um erro no controle do formulário. Deve ser chamado com .call passando o contexto da class.\n * Ex.: setErrors.call(this.contractGroup, 'registerEmployeeNumber', 'exist', !payload)\n *\n * @param formControlName Nome do controle do formulário.\n * @param keyError Nome do error a ser exibido em tela.\n * @param isInvalid Se houver algum erro de validação no campo.\n */\nexport function setErrors(formControlName: string, keyError: string, isInvalid: boolean): void {\n setTimeout(() => {\n if (isInvalid) {\n const errors = Object.assign({}, this.get(formControlName).errors);\n errors[keyError] = isInvalid;\n this.get(formControlName).setErrors(errors);\n } else {\n const errors = this.get(formControlName).errors;\n\n if (errors && Object.keys(errors).length) {\n delete errors[keyError];\n\n if (!Object.keys(errors).length) {\n this.get(formControlName).setErrors(null);\n }\n }\n }\n }, 0);\n}\n\n/**\n * Faz loop do nos controls do formulário e subArray caso existir\n * setando os inválidos\n * Ex.: verifyValidationsForm.call(this.initialGroup);\n */\nexport function verifyValidationsForm() {\n Object.keys(this.controls).map(field => {\n const control = this.get(field);\n control.markAsDirty();\n if (control instanceof FormGroup || control instanceof FormArray) {\n verifyValidationsForm.call(control);\n }\n });\n}\n\n/**\n * Retorna a idade de acordo com a data de nascimento.\n *\n * @param birthdayDate Data de nascimento.\n */\nexport function getYears(birthday) {\n const currentDate = moment();\n const years = currentDate.diff(birthday, 'years', false);\n return years;\n}\n\nexport function setCustonFields(customFields) {\n customFields.map(val => {\n const addCuston = {};\n let value = val.value || null;\n if (typeof value === 'boolean') {\n value = value ? 'true' : 'false';\n }\n addCuston[val.field] = new FormControl(value);\n this.push(new FormGroup(addCuston));\n });\n return customFields;\n}\n\n export function setRequired(formGroup: FormGroup, name: string, required: boolean, validators?: ValidatorFn[]) {\n if (required) {\n formGroup.controls[name].setValidators(Validators.compose(validators && validators.length ? validators : [Validators.required]));\n formGroup.controls[name].updateValueAndValidity();\n } else {\n formGroup.controls[name].setValidators(null);\n formGroup.controls[name].updateValueAndValidity();\n }\n}\n\n/**\n * Esse método tem como função setar os campos enable ou disable.\n * @param formGroup FormGroup onde se encontra os campos a serem alterados.\n * @param condition Condição para validação. True = enabled, False = disabled.\n * @param fields Campos a serem manipulados.\n * @param fieldsToClear Campos a serem limpos. É opicional e se não foi passado o método limpará os mesmos campos dos fields.\n */\nexport function configEnabledFields(formGroup: FormGroup, condition: boolean, fields: Array<string>, fieldsToClear?: Array<string>) {\n if (condition) {\n fields.forEach(field => formGroup.get(field).enable());\n } else {\n fields.forEach(field => formGroup.get(field).disable());\n clearValues(formGroup, fieldsToClear ? fieldsToClear : fields);\n }\n}\n\n/**\n * Esse método tem como função setar os campos como requeridos ou não.\n *\n * @param formGroup FormGroup onde se encontra os campos a serem alterados.\n * @param condition Se será ou não requeridos.\n * @param fields Lista de campos.\n */\nexport function setRequiredFields(formGroup: FormGroup, condition: boolean, fields: Array<string>) {\n if (condition) {\n fields.forEach(field => setRequired(formGroup, field, true, [Validators.required]));\n } else {\n fields.forEach(field => setRequired(formGroup, field, false));\n }\n}\n\n\n/**\n * Esse método tem como função setar validações dinâmicas nos campos.\n *\n * @param formGroup FormGroup onde se encontra os campos a serem alterados.\n * @param fields Lista de objetos [{field: campo, validators: validações, disable: boolean}].\n */\nexport function setValidatorsAndDisableFields(formGroup: FormGroup, fields: Array<FieldValidatorsObject>) {\n fields.forEach((currentField: FieldValidatorsObject) => {\n setValidator(formGroup, currentField.field, currentField.validators);\n setDisableField(formGroup, currentField.disabled, currentField.field, currentField.clearValue);\n });\n}\n\n\nexport function setValidator(formGroup: FormGroup, name: string, validators?: ValidatorFn[]) {\n if (validators && validators.length) {\n formGroup.controls[name].setValidators(Validators.compose(validators));\n formGroup.controls[name].updateValueAndValidity();\n } else {\n formGroup.controls[name].setValidators(null);\n formGroup.controls[name].updateValueAndValidity();\n }\n}\n\n\n/**\n * Esse método tem como função setar os campos enable ou disable.\n * @param formGroup FormGroup onde se encontra os campos a serem alterados.\n * @param condition Condição para validação. True = disabled, False = enabled.\n * @param field Campo a ser manipulados.\n * @param clearValue Campos a ser limpos. É opicional e se não foi passado o método limpará o campo do field.\n */\nexport function setDisableField(formGroup: FormGroup, condition: boolean, field: string, clearValue: boolean = true) {\n if (condition) {\n formGroup.get(field).disable();\n if (clearValue) formGroup.get(field).reset();\n } else {\n formGroup.get(field).enable();\n }\n}\n\n/**\n * Ordena array de objetos\n * @param key o campo que deseja ordenar\n * @param order a ordem que deseja ordenar o campo\n */\nexport function compareValues(key: string, order: string = \"ASC\") {\n return function innerSort(a: any, b: any) {\n if (!a.hasOwnProperty(key) || !b.hasOwnProperty(key)) {\n return 0;\n }\n\n const varA = (typeof a[key] === \"string\")\n ? a[key].toUpperCase() : a[key];\n const varB = (typeof b[key] === \"string\")\n ? b[key].toUpperCase() : b[key];\n\n let comparison = 0;\n if (varA > varB) {\n comparison = 1;\n } else if (varA < varB) {\n comparison = -1;\n }\n return (\n (order === \"DESC\") ? (comparison * -1) : comparison\n );\n };\n}\n\n/**\n * Esse método tem como função limpar o valor dos campos.\n *\n * @param formGroup FormGroup onde se encontra os campos a serem limpos.\n * @param fields Campos a serem limpos.\n */\nexport function clearValues(formGroup: FormGroup, fields: Array<string>) {\n fields.forEach(field => formGroup.get(field).reset());\n}\n\n/**\n *\n * @param qs = window.location.search\n * @returns Object com parametros query string\n */\nexport function getQueryParams(qs) {\n qs = qs.split('+').join(' ');\n\n const params = {};\n let tokens;\n const re = /[?&]?([^=]+)=([^&]*)/g;\n\n while ((tokens = re.exec(qs))) {\n params[decodeURIComponent(tokens[1])] = decodeURIComponent(tokens[2]);\n }\n\n return params;\n}\n\nexport function getFormat(locale) {\n if (locale) {\n let dateFormat = locale.calendar.dateFormat.toString();\n dateFormat = dateFormat.replace(/[y]/g, 'YY');\n dateFormat = dateFormat.replace(/[/]/g, '');\n return dateFormat.toUpperCase();\n }\n}\n\n/**\n * Remove os caracteres que não sejam números do valor\n * @param value valor a ser tratado\n * @returns string O valor sem caracteres especiais\n */\nexport function removeCharacteresSpecials(value: any): string {\n return value ? value.toString().replace(/[&\\/\\\\#,+()$~%.'\":*?<>{}-]/g, \"\") : null;\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { HttpClientService } from '../shared/http-client.service';\nimport { ServiceType } from '../../core/enums/serviceType';\n\n@Injectable()\nexport class InputRestAutoCompleteService {\n constructor(private http: HttpClientService) {}\n\n query(path: string, body: object, service: ServiceType = ServiceType.PAYROLL): Observable<any> {\n return this.http.query(path, body, service);\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\nimport { _moment, isValid } from '../utils/helpers';\nimport { InputRestAutoCompleteService } from './input-rest-auto-complete.service';\nimport { ServiceType } from '../../core/enums/serviceType';\n\nexport interface IConditions {\n fields: Array<string[]>;\n fieldType: string;\n expression: string;\n value: string;\n}\n\n@Component({\n selector: 'input-rest-auto-complete',\n templateUrl: './input-rest-auto-complete.component.html',\n styleUrls: ['./input-rest-auto-complete.component.css'],\n})\nexport class InputRestAutoCompleteComponent implements OnInit {\n @ViewChild('autoCompleteObject', { static: true })\n _autoCompleteObject: ElementRef;\n @Input()\n name: string;\n @Input()\n table: string;\n @Input()\n order: Array<any[]>;\n @Input()\n enableEntityFilters: boolean;\n @Input()\n fields: Array<any[]>;\n @Input()\n conditionsFields?: Array<any[]>;\n @Input()\n conditions: Array<IConditions>;\n @Input()\n placeholder: string;\n @Input()\n readonly: boolean;\n @Input()\n required: boolean;\n @Input()\n disabled: boolean;\n @Input()\n dropdown: boolean;\n @Input()\n forceSelection = true;\n @Input()\n error: object;\n @Input()\n emptyMessage: string;\n @Input()\n keyCode?: string;\n @Input()\n keyName = 'name';\n @Input()\n concatFieldsForName?: any[];\n @Input()\n itemSelect: any;\n @Input()\n form: FormGroup;\n @Input()\n inputId: string;\n @Input()\n isTimetrackingSituation: boolean;\n @Input()\n isDepartmentFromCompany: boolean;\n @Input()\n companyId: string;\n @Input()\n referenceDate: string;\n @Input()\n isDismissalReason: boolean;\n @Input()\n keyToExclude: any = [];\n @Input()\n usingType: any = [];\n @Input()\n minCharactersToSearch = 3;\n @Input()\n isWagetype: boolean;\n private isDropdown: boolean;\n @Input()\n multiple = false;\n @Input()\n serviceType: ServiceType = ServiceType.PAYROLL;\n @Output()\n onBlur: EventEmitter<any> = new EventEmitter();\n @Output()\n onSelect: EventEmitter<any> = new EventEmitter();\n @Output()\n onClear: EventEmitter<any> = new EventEmitter();\n\n suggestions: any[] = [];\n\n constructor(private service: InputRestAutoCompleteService) {}\n\n ngOnInit() {}\n\n filterQuery(event: any): any {\n const query = event.query;\n if (!(isNaN(query) && query.toString().length < this.minCharactersToSearch)) {\n try {\n if (this.isTimetrackingSituation) {\n return this.service\n .query('autocompleteTimetrackingSituation', {\n valueSearch: query,\n referenceDate: this.referenceDate,\n })\n .subscribe(payload => this.formaterResponce(payload.result));\n } else if (this.isDismissalReason) {\n const params = { valueSearch: query };\n if (this.referenceDate) {\n params['referenceDate'] = this.referenceDate;\n }\n return this.service\n .query('autocompleteDismissalReason', params, ServiceType.GENERAL_REGISTER)\n .subscribe(payload => this.formaterResponce(payload.result));\n } else if (this.usingType && this.usingType.length) {\n return this.service\n .query('autocompleteOtherCompanyFilterUsingType', {\n searchText: query,\n usingType: this.usingType,\n })\n .subscribe(payload => this.formaterResponce(payload.result));\n } else if (this.isDepartmentFromCompany) {\n return this.service\n .query('autocompleteDepartmentQuery', {\n searchText: query,\n companyId: this.companyId,\n referenceDate: this.referenceDate,\n })\n .subscribe(payload => this.formaterResponce(payload.result));\n } else if (this.isWagetype) {\n const params = { searchText: query, companyId: this.companyId };\n return this.service\n .query('autocompleteWagetypeQuery', params, ServiceType.ENTRY)\n .subscribe(payload => this.formaterResponce(payload.result));\n }\n this.service\n .query('autocomplete', this.getParamsRest(query), this.serviceType).subscribe(payload => this.formaterResponce(payload.result));\n } catch (e) {\n console.log(e);\n }\n }\n }\n\n formaterResponce(result) {\n this.suggestions = [];\n const valsResult = [];\n result.map(value => {\n const valueConcat = {\n tableId: value.tableId,\n name: '',\n };\n if (this.isTimetrackingSituation || this.isDismissalReason || (this.usingType && this.usingType.length)) {\n if (this.keyToExclude.includes(value.fields && value.fields[2] && value.fields[2].value)) {\n return;\n }\n\n let fieldName = '';\n\n value.fields.map(val => {\n valueConcat[val.name] = val.value;\n });\n\n fieldName += value.fields.filter(val => val.name.toLowerCase() === 'code').map(code => (code ? (code.value += ' - ') : ''))[0];\n if (this.usingType && this.usingType.length && (!fieldName || fieldName === 'undefined')) {\n fieldName = '';\n }\n fieldName += value.fields.filter(val => val.name.toLowerCase() === 'name').map(name => (name ? name.value : ''))[0];\n\n valueConcat.name = fieldName;\n valsResult.push(valueConcat);\n } else {\n value.fields.map(val => {\n valueConcat[val.name] = val.value;\n });\n let fieldName = '';\n if (this.concatFieldsForName) {\n this.concatFieldsForName.map(val => {\n // se o campo for data, formata pro locale do usuário\n if (val.includes('date') || val.includes('Birthday')) {\n valueConcat[val] = _moment(valueConcat[val]).format('DD/MM/YYYY');\n }\n fieldName += valueConcat[val] + ' - ';\n });\n fieldName = fieldName.slice(0, -3);\n } else {\n if (this.keyCode) {\n fieldName += valueConcat[this.keyCode] + ' - ';\n }\n if (this.keyName) {\n fieldName += valueConcat[this.keyName];\n }\n }\n valueConcat.name = fieldName;\n valsResult.push(valueConcat);\n }\n });\n this.suggestions = [...valsResult];\n return valsResult;\n }\n\n getParamsRest(search: string): object {\n return {\n table: this.table,\n fields: this.fields,\n order: this.order,\n conditions: this.getConditionsRest(search),\n enableEntityFilters: this.enableEntityFilters,\n };\n }\n\n getConditionsRest(search: string) {\n const conditiosReturn = [\n {\n fields: this.conditionsFields || this.fields,\n expression: 'LIKE',\n value: `${search}`,\n },\n ];\n\n if (this.conditions) {\n this.conditions.map(val => {\n if (['IS_NULL', 'IS_NOT_NULL', 'IS_TRUE'].includes(val.expression) || isValid(val.value)) {\n conditiosReturn.push(val);\n }\n });\n }\n\n return conditiosReturn;\n }\n\n /**\n * Externiza a função de select das opções\n * <input-rest-auto-complete (onSelect)=\"onSelectHandle($event)\" ></input-rest-auto-complete>\n * @param option\n */\n selectOption(option: object) {\n this.onSelect.emit(option);\n }\n\n async onClearItem(option: object) {\n await this.onClear.emit(option);\n this.form.get(this.name).reset();\n }\n\n onBlurItem(option: object) {\n if (!this.isDropdown) {\n this.form.controls[this.name].markAsDirty();\n this.onBlur.emit(option);\n } else {\n this.isDropdown = false;\n }\n }\n\n onDropdownClick() {\n this.isDropdown = true;\n }\n\n get autoCompleteObject() {\n return this._autoCompleteObject;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { AutoCompleteModule } from 'primeng/autocomplete';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { InputRestAutoCompleteComponent } from './input-rest-auto-complete.component';\nimport { InputRestAutoCompleteService } from './input-rest-auto-complete.service';\n\n@NgModule({\n imports: [CommonModule, FormsModule, HttpClientModule, AutoCompleteModule, SharedModule, ReactiveFormsModule],\n declarations: [InputRestAutoCompleteComponent],\n providers: [InputRestAutoCompleteService],\n exports: [InputRestAutoCompleteComponent],\n})\nexport class InputRestAutoCompleteModule {}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { HttpClientService } from '../shared/http-client.service';\n\n@Injectable()\nexport class InputRestAutoCompleteEmployeeService {\n constructor(private http: HttpClientService) {}\n\n query(path: string, body: object): Observable<any> {\n const endpoit = `queries/${path}`;\n return this.http.post(endpoit, body);\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\nimport { getMoment } from '../utils/helpers';\nimport { InputRestAutoCompleteEmployeeService } from './input-rest-auto-complete-employee.service';\n\nexport interface IConditions {\n fields: Array<string[]>;\n value: string;\n}\n\n@Component({\n selector: 'input-rest-auto-complete-employee',\n templateUrl: './input-rest-auto-complete-employee.component.html',\n styleUrls: ['./input-rest-auto-complete-employee.component.css'],\n})\nexport class InputRestAutoCompleteEmployeeComponent implements OnInit {\n @Input()\n name: string;\n @Input()\n value: string;\n @Input()\n company: any;\n @Input()\n branch: any;\n @Input()\n employeeType: any;\n @Input()\n otherContractType: any;\n @Input()\n filterEmployeeType: boolean;\n @Input()\n enableEntityFilters: boolean;\n @Input()\n placeholder: string;\n @Input()\n readonly: boolean;\n @Input()\n required: boolean;\n @Input()\n disabled: boolean;\n @Input()\n dropdown: boolean;\n @Input()\n forceSelection = true;\n @Input()\n error: object;\n @Input()\n emptyMessage: string;\n @Input()\n keyCode: string;\n @Input()\n keyName = 'name';\n @Input()\n itemSelect: any;\n @Input()\n form: FormGroup;\n @Input()\n inputId: string;\n private isDropdown: boolean;\n\n @Output()\n onBlur: EventEmitter<any> = new EventEmitter();\n @Output()\n onSelect: EventEmitter<any> = new EventEmitter();\n @Output()\n onClear: EventEmitter<any> = new EventEmitter();\n\n suggestions: any[] = [];\n\n constructor(private service: InputRestAutoCompleteEmployeeService) {}\n\n ngOnInit() {}\n\n filterQuery(event: any) {\n const query = event.query;\n if (!(isNaN(query) && query.toString().length < 3)) {\n try {\n this.service.query('autocompleteEmployee', this.getParamsRest(query)).subscribe(payload => this.formaterResponce(payload.result));\n } catch (e) {\n console.log('Erro ao buscar no back');\n }\n }\n }\n\n formaterResponce(result) {\n this.suggestions = [];\n const valsResult = [];\n result.map(value => {\n const valueConcat = {\n tableId: value.tableId,\n code: '',\n name: '',\n fullname: '',\n admission: '',\n document: '',\n };\n\n if (value.fields && value.fields.length) {\n valueConcat.fullname = value.fields[0].value;\n valueConcat.admission = value.fields[1].value;\n valueConcat.document = value.fields[2].value;\n valueConcat.code = value.fields.length === 4 && value.fields[3].value;\n\n // Pode acontecer de não vim o código.\n if (valueConcat.code) {\n valueConcat.name = valueConcat.code\n .concat(' - ')\n .concat(valueConcat.fullname)\n .concat(' - ')\n .concat(getMoment(valueConcat.admission).format('DD/MM/YYYY'));\n } else {\n valueConcat.name = valueConcat.fullname.concat(' - ').concat(getMoment(valueConcat.admission).format('DD/MM/YYYY'));\n }\n\n valsResult.push(valueConcat);\n }\n });\n this.suggestions = valsResult;\n return valsResult;\n }\n\n getParamsRest(search: string): object {\n const returnFilter = {\n valueSearch: search,\n enableEntityFilters: this.enableEntityFilters,\n };\n if (this.company) {\n returnFilter['company'] = this.company;\n }\n if (this.branch) {\n returnFilter['companyBranch'] = this.branch;\n }\n if (this.employeeType) {\n returnFilter['employeeType'] = this.employeeType;\n }\n if (this.otherContractType) {\n returnFilter['otherContractType'] = this.otherContractType;\n }\n if (this.filterEmployeeType === false) {\n returnFilter['filterEmployeeType'] = this.filterEmployeeType;\n }\n return returnFilter;\n }\n\n /**\n * Externiza a função de select das opções\n * <input-rest-auto-complete-employee (onSelect)=\"onSelectHandle($event)\" ></input-rest-auto-complete-employee>\n * @param option\n */\n selectOption(option: object) {\n this.onSelect.emit(option);\n }\n\n onClearItem(option: object) {\n this.onClear.emit(option);\n }\n\n onBlurItem(option: object) {\n if (!this.isDropdown) {\n this.form.controls[this.name].markAsDirty();\n this.onBlur.emit(option);\n } else {\n this.isDropdown = false;\n }\n }\n\n onDropdownClick() {\n this.isDropdown = true;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { AutoCompleteModule } from 'primeng/autocomplete';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { InputRestAutoCompleteEmployeeComponent } from './input-rest-auto-complete-employee.component';\nimport { InputRestAutoCompleteEmployeeService } from './input-rest-auto-complete-employee.service';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n HttpClientModule,\n AutoCompleteModule,\n SharedModule,\n ReactiveFormsModule\n ],\n declarations: [ InputRestAutoCompleteEmployeeComponent ],\n providers: [ InputRestAutoCompleteEmployeeService ],\n exports: [ InputRestAutoCompleteEmployeeComponent ]\n})\nexport class InputRestAutoCompleteEmployeeModule {\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { HttpClientService } from '../shared/http-client.service';\n\n@Injectable()\nexport class InputRestAutoCompleteEmployeeModelService {\n constructor(private http: HttpClientService) {}\n\n query(path: string, body: object): Observable<any> {\n const endpoit = `queries/${path}`;\n return this.http.post(endpoit, body);\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\nimport { getMoment } from '../utils/helpers';\nimport { InputRestAutoCompleteEmployeeModelService } from './input-rest-auto-complete-employee-model.service';\nimport { ActivatedRoute } from '@angular/router';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nexport interface IConditions {\n fields: Array<string[]>;\n value: string;\n}\n\n@Component({\n selector: 'input-rest-auto-complete-employee-model',\n templateUrl: './input-rest-auto-complete-employee-model.component.html',\n styleUrls: ['./input-rest-auto-complete-employee-model.component.css'],\n})\nexport class InputRestAutoCompleteEmployeeModelComponent implements OnInit {\n private _model: any;\n @Input()\n name: string;\n @Input()\n value: string;\n @Input()\n company: any;\n @Input()\n branch: any;\n @Input()\n employeeType: any;\n @Input()\n placeholder: string;\n @Input()\n readonly: boolean;\n @Input()\n required: boolean;\n @Input()\n disabled: boolean;\n @Input()\n dropdown: boolean;\n @Input()\n forceSelection = true;\n @Input()\n error: object;\n @Input()\n emptyMessage: string;\n @Input()\n keyCode: string;\n @Input()\n keyName = 'name';\n @Input()\n itemSelect: any;\n @Input()\n style: any;\n @Input()\n inputStyle: any;\n\n @Output()\n onBlur: EventEmitter<any> = new EventEmitter();\n @Output()\n onSelect: EventEmitter<any> = new EventEmitter();\n @Output()\n onClear: EventEmitter<any> = new EventEmitter();\n @Output()\n modelChange: EventEmitter<any> = new EventEmitter();\n\n suggestions: any[] = [];\n private useWorkflow: boolean;\n private ngUnsubscribe = new Subject();\n\n constructor(private service: InputRestAutoCompleteEmployeeModelService,\n private activatedRoute: ActivatedRoute,\n ) {}\n\n ngOnInit() {\n this.activatedRoute.data.pipe(takeUntil(this.ngUnsubscribe)).subscribe((data) => {\n this.useWorkflow = !!(data && data.useWorkflow);\n });\n }\n\n filterQuery(event: any) {\n const query = event.query;\n if (!(isNaN(query) && query.toString().length < 3)) {\n try {\n this.service.query('autocompleteEmployee', this.getParamsRest(query)).subscribe(payload => this.formaterResponce(payload.result));\n } catch (e) {\n console.log('Erro ao buscar no back');\n }\n }\n }\n\n formaterResponce(result) {\n this.suggestions = [];\n const valsResult = [];\n result.map(value => {\n const valueConcat = {\n tableId: value.tableId,\n code: '',\n name: '',\n fullname: '',\n admission: '',\n document: '',\n };\n\n if (value.fields && value.fields.length) {\n valueConcat.fullname = value.fields[0].value;\n valueConcat.admission = value.fields[1].value;\n valueConcat.document = value.fields[2].value;\n valueConcat.code = value.fields.length === 4 && value.fields[3].value;\n\n // Pode acontecer de não vim o código.\n if (valueConcat.code) {\n valueConcat.name = valueConcat.code\n .concat(' - ')\n .concat(valueConcat.fullname)\n .concat(' - ')\n .concat(getMoment(valueConcat.admission).format('DD/MM/YYYY'));\n } else {\n valueConcat.name = valueConcat.fullname.concat(' - ').concat(getMoment(valueConcat.admission).format('DD/MM/YYYY'));\n }\n\n valsResult.push(valueConcat);\n }\n });\n this.suggestions = valsResult;\n return valsResult;\n }\n\n getParamsRest(search: string): object {\n const returnFilter = {\n valueSearch: search,\n };\n if (this.company) {\n returnFilter['company'] = this.company;\n }\n if (this.branch) {\n returnFilter['companyBranch'] = this.branch;\n }\n if (this.employeeType) {\n returnFilter['employeeType'] = this.employeeType;\n }\n /**\n * If para uso do BPO\n * Serve para tirar os colaboradores demitidos do dropbox do autocomplete\n */\n if (this.useWorkflow) {\n returnFilter['timeTrackingResumeType'] = {key: \"FIRED\"};\n }\n\n return returnFilter;\n }\n\n /**\n * Externiza a função de select das opções\n * <input-rest-auto-complete-employee (onSelect)=\"onSelectHandle($event)\" ></input-rest-auto-complete-employee>\n * @param option\n */\n selectOption(option: object) {\n this.onSelect.emit(option);\n }\n\n onClearItem(option: object) {\n this.onClear.emit(option);\n }\n\n onBlurItem(option: object) {\n this.onBlur.emit(option);\n }\n\n set model(val) {\n this._model = val;\n this.modelChange.emit(this._model);\n }\n\n @Input()\n get model() {\n return this._model;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {HttpClientModule} from '@angular/common/http';\nimport {AutoCompleteModule} from 'primeng/autocomplete';\n\nimport {InputRestAutoCompleteEmployeeModelComponent} from './input-rest-auto-complete-employee-model.component';\nimport {InputRestAutoCompleteEmployeeModelService} from './input-rest-auto-complete-employee-model.service';\nimport {SharedModule} from '../shared/shared.module';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n SharedModule,\n HttpClientModule,\n AutoCompleteModule,\n ReactiveFormsModule\n ],\n declarations: [InputRestAutoCompleteEmployeeModelComponent],\n providers: [InputRestAutoCompleteEmployeeModelService],\n exports: [InputRestAutoCompleteEmployeeModelComponent]\n})\nexport class InputRestAutoCompleteEmployeeModelModule {\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { HttpClientService } from '../shared/http-client.service';\n\n@Injectable()\nexport class InputRestAutoCompleteEnumService {\n constructor(private http: HttpClientService) {}\n\n query(server: string, enumeration: string): Observable<any> {\n const endpoint = 'enumQuery';\n const request = {\n names: [enumeration],\n };\n return this.http.enumQuery(endpoint, request, server);\n }\n}\n","import { Component, OnInit, EventEmitter, Input, Output, ElementRef, ViewChild } from '@angular/core';\nimport { InputRestAutoCompleteEnumService } from './input-rest-auto-complete-enum.service';\nimport { FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'input-rest-auto-complete-enum',\n templateUrl: './input-rest-auto-complete-enum.component.html',\n styleUrls: ['./input-rest-auto-complete-enum.component.css']\n})\nexport class InputRestAutoCompleteEnumComponent implements OnInit {\n\n @ViewChild('autoCompleteObject', { static: true }) _autoCompleteObjectEl: ElementRef;\n @Input() name: string;\n @Input() placeholder: string;\n @Input() readonly: boolean;\n @Input() required: boolean;\n @Input() disabled: boolean;\n @Input() dropdown: boolean;\n @Input() forceSelection = true;\n @Input() error: object;\n @Input() emptyMessage: string;\n @Input() itemSelect: any;\n @Input() inputId: string;\n private isDropdown: boolean;\n @Input() keyToExclude: any = [];\n @Input() keyToKeep: any = [];\n\n @Input() server: string;\n @Input() enumeration: string;\n @Input() form: FormGroup;\n @Input() multiple = false;\n\n @Output() onSelect: EventEmitter<any> = new EventEmitter();\n @Output() onBlur: EventEmitter<any> = new EventEmitter();\n @Output() onClear: EventEmitter<any> = new EventEmitter();\n\n suggestions: any[] = [];\n payload: any[];\n\n constructor(private service: InputRestAutoCompleteEnumService) {\n }\n\n ngOnInit() {\n try {\n this.service.query(this.server, this.enumeration).subscribe(\n payload =>\n this.payload = payload.results[0].items);\n } catch (e) {\n console.log('Erro ao buscar no back');\n }\n }\n\n filterQuery(event: any) {\n const query = event.query;\n this.suggestions = [];\n if (!(isNaN(query) && (query.toString().length < 3))) {\n if (this.keyToExclude && this.keyToExclude.length) {\n this.payload = this.payload && this.payload.filter(record => !this.keyToExclude.includes(record.key));\n } else if (this.keyToKeep && this.keyToKeep.length) {\n this.payload = this.payload && this.payload.filter(record => this.keyToKeep.includes(record.key));\n }\n for (let i = 0; i < this.payload.length; i++) {\n const item = this.payload[i];\n if (item.value.toLowerCase().indexOf(query.toLowerCase()) !== -1) {\n this.suggestions.push(item);\n }\n }\n }\n }\n\n\n /**\n * Externiza a função de select das opções\n * <input-rest-auto-complete-enum (onSelect)=\"onSelectHandle($event)\" ></input-rest-auto-complete-enum>\n * @param option\n */\n selectOption(option: object) {\n this.onSelect.emit(option);\n }\n\n onBlurItem(option: object) {\n if (!this.isDropdown) {\n this.form.controls[this.name].markAsDirty();\n this.onBlur.emit(option);\n } else {\n this.isDropdown = false;\n }\n }\n\n onDropdownClick() {\n this.isDropdown = true;\n }\n\n async onClearItem(option: object) {\n await this.onClear.emit(option);\n this.form.get(this.name).reset();\n }\n\n get autoCompleteObject() {\n return this._autoCompleteObjectEl;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {HttpClientModule} from '@angular/common/http';\nimport {AutoCompleteModule} from 'primeng/autocomplete';\n\nimport {InputRestAutoCompleteEnumComponent} from './input-rest-auto-complete-enum.component';\nimport {InputRestAutoCompleteEnumService} from './input-rest-auto-complete-enum.service';\nimport {SharedModule} from '../shared/shared.module';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n HttpClientModule,\n AutoCompleteModule,\n SharedModule,\n ReactiveFormsModule\n ],\n declarations: [InputRestAutoCompleteEnumComponent],\n providers: [InputRestAutoCompleteEnumService],\n exports: [InputRestAutoCompleteEnumComponent]\n})\nexport class InputRestAutoCompleteEnumModule {\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ServiceType } from '../../core/enums';\n\nimport { HttpClientService } from '../shared/http-client.service';\n\n@Injectable()\nexport class InputRestAutoCompleteModelService {\n constructor(private http: HttpClientService) {}\n\n query(path: string, body: object, service: ServiceType = ServiceType.PAYROLL): Observable<any> {\n return this.http.query(path, body, service);\n }\n}\n","import { Component, OnInit, EventEmitter, Input, Output } from '@angular/core';\nimport { ServiceType } from '../../core/enums/serviceType';\nimport { InputRestAutoCompleteModelService } from './input-rest-auto-complete-model.service';\nimport { isValid, _moment } from '../utils/helpers';\n\nexport interface IConditions {\n fields: Array<string[]>;\n fieldType: string;\n expression: string;\n value: string;\n}\n\n@Component({\n selector: 'input-rest-auto-complete-model',\n templateUrl: './input-rest-auto-complete-model.component.html',\n styleUrls: ['./input-rest-auto-complete-model.component.css'],\n})\n\nexport class InputRestAutoCompleteModelComponent implements OnInit {\n\n private _model: any;\n @Input() name: string;\n @Input() table: string;\n @Input() order: Array<any[]>;\n @Input() fields: Array<any[]>;\n @Input() conditionsFields?: Array<any[]>;\n @Input() conditions: Array<IConditions>;\n @Input() placeholder: string;\n @Input() readonly: boolean;\n @Input() required: boolean;\n @Input() disabled: boolean;\n @Input() dropdown: boolean;\n @Input() forceSelection = true;\n @Input() error: object;\n @Input() emptyMessage: string;\n @Input() keyCode: string;\n @Input() keyName = 'name';\n @Input() concatFieldsForName?: any[];\n @Input() itemSelect: any;\n @Input() style: any;\n @Input() inputStyle: any;\n @Input() keysToExclude: any = [];\n @Input() isWagetype: boolean;\n @Input() companyId: string;\n @Input() wagetypeReferenceDates?: { entryReferenceStartDate: string, entryReferenceEndDate: string };\n @Output() onBlur: EventEmitter<any> = new EventEmitter();\n @Output() onSelect: EventEmitter<any> = new EventEmitter();\n @Output() onClear: EventEmitter<any> = new EventEmitter();\n @Output() onFocus: EventEmitter<any> = new EventEmitter();\n @Output() modelChange: EventEmitter<any> = new EventEmitter();\n\n suggestions: any[] = [];\n\n constructor(private service: InputRestAutoCompleteModelService) {\n }\n\n ngOnInit() {\n\n }\n\n filterQuery(event: any) {\n const query = event.query;\n if (!(isNaN(query) && (query.toString().length < 3))) {\n try {\n if (this.isWagetype) {\n const params = { searchText: query, companyId: this.companyId, ...this.wagetypeReferenceDates };\n return this.service\n .query('autocompleteWagetypeQuery', params, ServiceType.ENTRY)\n .subscribe(payload => this.formaterResponce(payload.result));\n }\n this.service.query('autocomplete', this.getParamsRest(query)).subscribe(payload => this.formaterResponce(payload.result));\n } catch (e) {\n console.log('Erro ao buscar no back');\n }\n }\n }\n\n formaterResponce(result) {\n this.suggestions = [];\n const valsResult = [];\n result.map((value) => {\n const valueConcat = {\n tableId: value.tableId,\n name: '',\n };\n value.fields.map((val) => {\n valueConcat[val.name] = val.value;\n });\n\n if (this.keysToExclude.includes(value && value.tableId)) {\n return;\n }\n\n let fieldName = '';\n if (this.concatFieldsForName) {\n this.concatFieldsForName.map(val => {\n // se o campo for data, formata pro locale do usuário\n if (val.includes('date')) {\n valueConcat[val] = _moment(valueConcat[val]).format('L');\n }\n fieldName += valueConcat[val] + ' - ';\n });\n fieldName = fieldName.slice(0, -3);\n } else {\n if (this.keyCode) {\n fieldName += valueConcat[this.keyCode] + ' - ';\n }\n if (this.keyName) {\n fieldName += valueConcat[this.keyName];\n }\n }\n valueConcat.name = fieldName;\n valsResult.push(valueConcat);\n });\n this.suggestions = valsResult;\n return valsResult;\n }\n\n getParamsRest(search: string): object {\n return {\n 'table': this.table,\n 'fields': this.fields,\n 'order': this.order,\n 'conditions': this.getConditionsRest(search),\n };\n }\n\n getConditionsRest(search: string) {\n const conditiosReturn = [{\n 'fields': this.conditionsFields || this.fields,\n 'expression': 'LIKE',\n 'value': `${ search }`,\n }];\n\n if (this.conditions) {\n this.conditions.map(val => {\n if (!['IS_NULL', 'IS_NOT_NULL', 'IS_TRUE'].includes(val.expression)\n && isValid(val.value)) {\n conditiosReturn.push(val);\n }\n });\n }\n\n return conditiosReturn;\n }\n\n /**\n * Externiza a função de select das opções\n * <input-rest-auto-complete (onSelect)=\"onSelectHandle($event)\" ></input-rest-auto-complete>\n * @param option\n */\n selectOption(option: object) {\n this.onSelect.emit(option);\n }\n\n onClearItem(option: object) {\n this.onClear.emit(option);\n }\n\n onBlurItem(option: object) {\n this.onBlur.emit(option);\n }\n\n onFocusItem(option: object) {\n this.onFocus.emit(option);\n }\n\n set model(val) {\n this._model = val;\n this.modelChange.emit(this._model);\n }\n\n @Input()\n get model() {\n return this._model;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {AutoCompleteModule} from 'primeng/autocomplete';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {HttpClientModule} from '@angular/common/http';\n\nimport {InputRestAutoCompleteModelComponent} from './input-rest-auto-complete-model.component';\nimport {InputRestAutoCompleteModelService} from './input-rest-auto-complete-model.service';\nimport {SharedModule} from '../shared/shared.module';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n HttpClientModule,\n AutoCompleteModule,\n SharedModule,\n ReactiveFormsModule\n ],\n declarations: [InputRestAutoCompleteModelComponent],\n providers: [InputRestAutoCompleteModelService],\n exports: [InputRestAutoCompleteModelComponent]\n})\nexport class InputRestAutoCompleteModelModule {\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { HttpClientService } from '../shared/http-client.service';\n\n@Injectable()\nexport class InputRestAutoCompleteModelEnumService {\n constructor(private http: HttpClientService) {}\n\n query(server: string, enumeration: string): Observable<any> {\n const endpoit = `enumQuery`;\n const request = {\n names: [enumeration],\n };\n return this.http.enumQuery(endpoit, request, server);\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\nimport { InputRestAutoCompleteModelEnumService } from './input-rest-auto-complete-model-enum.service';\n\n@Component({\n selector: 'input-rest-auto-complete-model-enum',\n templateUrl: './input-rest-auto-complete-model-enum.component.html',\n styleUrls: ['./input-rest-auto-complete-model-enum.component.css'],\n})\nexport class InputRestAutoCompleteModelEnumComponent implements OnInit {\n private _model: any;\n @Input()\n name: string;\n @Input()\n placeholder: string;\n @Input()\n readonly: boolean;\n @Input()\n required: boolean;\n @Input()\n disabled: boolean;\n @Input()\n dropdown: boolean;\n @Input()\n forceSelection = true;\n @Input()\n error: object;\n @Input()\n emptyMessage: string;\n @Input()\n itemSelect: any;\n @Input()\n style: any;\n @Input()\n inputStyle: any;\n\n @Input()\n server: string;\n\n @Input()\n enumeration: string;\n\n @Output()\n onSelect: EventEmitter<any> = new EventEmitter();\n @Output()\n onBlur: EventEmitter<any> = new EventEmitter();\n @Output()\n onClear: EventEmitter<any> = new EventEmitter();\n @Output()\n modelChange: EventEmitter<any> = new EventEmitter();\n\n suggestions: any[] = [];\n payload: any[];\n\n constructor(private service: InputRestAutoCompleteModelEnumService) {}\n\n ngOnInit() {\n try {\n this.service.query(this.server, this.enumeration).subscribe(payload => (this.payload = payload.results));\n } catch (e) {\n console.log('Erro ao buscar no back');\n }\n }\n\n filterQuery(event: any) {\n const query = event.query;\n this.suggestions = [];\n if (!(isNaN(query) && query.toString().length < 3)) {\n for (let i = 0; i < this.payload[0].items.length; i++) {\n const item = this.payload[0].items[i];\n if (item.value.toLowerCase().indexOf(query.toLowerCase()) !== -1) {\n this.suggestions.push(item);\n }\n }\n }\n }\n\n /**\n * Externiza a função de select das opções\n * <input-rest-auto-complete-enum (onSelect)=\"onSelectHandle($event)\" ></input-rest-auto-complete-enum>\n * @param option\n */\n selectOption(option: object) {\n this.onSelect.emit(option);\n }\n\n onBlurItem(option: object) {\n this.onBlur.emit(option);\n }\n\n onClearItem(option: object) {\n this.onClear.emit(option);\n }\n\n set model(val) {\n this._model = val;\n this.modelChange.emit(this._model);\n }\n\n @Input()\n get model() {\n return this._model;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {AutoCompleteModule} from 'primeng/autocomplete';\nimport {InputRestAutoCompleteModelEnumComponent} from './input-rest-auto-complete-model-enum.component';\nimport {InputRestAutoCompleteModelEnumService} from './input-rest-auto-complete-model-enum.service';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {HttpClientModule} from '@angular/common/http';\n\nimport {SharedModule} from '../shared/shared.module';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n HttpClientModule,\n AutoCompleteModule,\n SharedModule,\n ReactiveFormsModule\n ],\n declarations: [InputRestAutoCompleteModelEnumComponent],\n providers: [InputRestAutoCompleteModelEnumService],\n exports: [InputRestAutoCompleteModelEnumComponent]\n})\nexport class InputRestAutoCompleteModelEnumModule {\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { HttpClientService } from '../shared/http-client.service';\n\n@Injectable()\nexport class InputRestAutoCompleteJobpositionService {\n constructor(private http: HttpClientService) {}\n\n query(path: string, body: object): Observable<any> {\n const endpoit = `queries/${path}`;\n return this.http.post(endpoit, body);\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\nimport { InputRestAutoCompleteJobpositionService } from './input-rest-auto-complete-jobposition.service';\n\n@Component({\n selector: 'input-rest-auto-complete-jobposition',\n templateUrl: './input-rest-auto-complete-jobposition.component.html',\n styleUrls: ['./input-rest-auto-complete-jobposition.component.css'],\n})\nexport class InputRestAutoCompleteJobpositionComponent implements OnInit {\n @Input()\n name: string;\n @Input()\n value: string;\n @Input()\n companyId: string;\n @Input()\n creationDate: string;\n @Input()\n expirationDate: string;\n @Input()\n jobpositionsFilter: Array<string>;\n @Input()\n ignoredJobpositions: Array<string>;\n @Input()\n order: Array<any>;\n @Input()\n placeholder: string;\n @Input()\n readonly: boolean;\n @Input()\n required: boolean;\n @Input()\n disabled: boolean;\n @Input()\n dropdown: boolean;\n @Input()\n forceSelection = true;\n @Input()\n error: object;\n @Input()\n emptyMessage: string;\n @Input()\n itemSelect: any;\n @Input()\n form: FormGroup;\n @Input()\n inputId: string;\n @Input()\n minCharactersToSearch = 3;\n @Input()\n multiple = false;\n private isDropdown: boolean;\n\n @Output()\n onBlur: EventEmitter<any> = new EventEmitter();\n @Output()\n onSelect: EventEmitter<any> = new EventEmitter();\n @Output()\n onClear: EventEmitter<any> = new EventEmitter();\n @Output()\n onFocus: EventEmitter<any> = new EventEmitter();\n\n suggestions: any[] = [];\n\n constructor(private service: InputRestAutoCompleteJobpositionService) { }\n\n ngOnInit() { }\n\n filterQuery(event: any) {\n const query = event.query;\n if (!(isNaN(query) && query.toString().length < this.minCharactersToSearch)) {\n try {\n this.service.query('autocompleteJobpositionQuery',\n this.getParamsRest(query)).subscribe(payload => this.formaterResponse(payload.result));\n } catch (e) {\n console.log('Erro ao buscar no back');\n }\n }\n }\n\n formaterResponse(result) {\n this.suggestions = [];\n const valsResult = [];\n result.map(value => {\n const valueConcat = {\n tableId: value.tableId,\n name: '',\n };\n\n value.fields.map(val => {\n valueConcat[val.name] = val.value;\n });\n\n valueConcat.name = valueConcat['Code'] + ' - ' + valueConcat['Name'];\n valsResult.push(valueConcat);\n });\n this.suggestions = valsResult;\n return valsResult;\n }\n\n getParamsRest(search: string): object {\n const returnFilter = {\n searchText: search,\n companyId: this.companyId ? this.replace(this.companyId) : null,\n creationDate: this.creationDate ? this.replace(this.creationDate) : null,\n expirationDate: this.expirationDate ? this.replace(this.expirationDate) : null,\n jobpositionsFilter: this.jobpositionsFilter ? this.replaceArray(this.jobpositionsFilter) : null,\n ignoredJobpositions: this.ignoredJobpositions ? this.replaceArray(this.ignoredJobpositions) : null,\n order: this.order,\n };\n\n return returnFilter;\n }\n\n private replace(value: string): string {\n return value.replace(new RegExp(\"'\", 'g'), \"\");\n }\n\n private replaceArray(value: Array<string>): Array<string> {\n return value.map(e => this.replace(e));\n }\n\n /**\n * Externiza a função de select das opções\n * <input-rest-auto-complete-jobposition (onSelect)=\"onSelectHandle($event)\" ></input-rest-auto-complete-jobposition>\n * @param option\n */\n selectOption(option: object) {\n this.onSelect.emit(option);\n }\n\n onClearItem(option: object) {\n this.onClear.emit(option);\n }\n\n onBlurItem(option: object) {\n if (!this.isDropdown) {\n this.form.controls[this.name].markAsDirty();\n this.onBlur.emit(option);\n } else {\n this.isDropdown = false;\n }\n }\n\n onDropdownClick() {\n this.isDropdown = true;\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { AutoCompleteModule } from \"primeng/autocomplete\";\nimport { SharedModule } from \"primeng/shared\";\nimport { InputRestAutoCompleteJobpositionComponent } from \"./input-rest-auto-complete-jobposition.component\";\nimport { InputRestAutoCompleteJobpositionService } from \"./input-rest-auto-complete-jobposition.service\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n HttpClientModule,\n AutoCompleteModule,\n SharedModule,\n ReactiveFormsModule\n ],\n declarations: [ InputRestAutoCompleteJobpositionComponent ],\n providers: [ InputRestAutoCompleteJobpositionService ],\n exports: [ InputRestAutoCompleteJobpositionComponent ]\n})\nexport class InputRestAutoCompleteJobpositionModule {\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { HttpClientService } from '../shared/http-client.service';\n\n@Injectable()\nexport class ListRestService {\n constructor(private http: HttpClientService) {}\n\n query(path: string, body: object): Observable<any> {\n const endpoit = `queries/${path}`;\n return this.http.post(endpoit, body);\n }\n\n queryEntity(path: string, body: object): Observable<any> {\n return this.http.get(path);\n }\n}\n","import { Component, OnInit, OnChanges, SimpleChanges, Input, Output, EventEmitter, ViewEncapsulation } from '@angular/core';\nimport { ListRestService } from './list-rest.service';\nimport { TranslateService } from '@ngx-translate/core';\n\nexport interface IColumns {\n label: string;\n field: string;\n}\n\n@Component({\n selector: 'list-rest',\n templateUrl: './list-rest.component.html',\n styleUrls: ['./list-rest.component.scss'],\n})\nexport class ListRestComponent implements OnInit, OnChanges {\n @Input()\n emptyMessage: string;\n @Input()\n urlRest: string;\n @Input()\n keyPayload: string;\n @Input()\n columns: Array<IColumns[]>;\n @Input()\n arguments? = { page: { current: 1, size: '10' } };\n @Input()\n filterValues?: (event?: any) => void;\n @Input()\n getRowActionsFun?: Function;\n @Input()\n scope?: any;\n @Input()\n reload?: boolean;\n @Input()\n isEntity?: boolean;\n @Input() alwaysShowPaginator: boolean = false;\n\n @Output()\n onLoadPayload: EventEmitter<any> = new EventEmitter();\n @Output()\n loadedList = new EventEmitter<boolean>();\n\n totalRecords: number;\n payload: any[];\n\n constructor(private translateService: TranslateService, private service: ListRestService) {}\n\n ngOnInit() {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.hasOwnProperty('arguments')) {\n this.arguments = Object.assign({}, changes.arguments.currentValue);\n this.getList(1);\n }\n if (changes.hasOwnProperty('reload') && changes.reload.currentValue === true) {\n this.getList(1);\n }\n }\n\n getList(page: number) {\n this.loadedList.emit(true);\n try {\n const args = Object.assign({}, this.arguments);\n args.page.current = page;\n if (this.isEntity) {\n this.service.queryEntity(this.urlRest, args).subscribe(payload => {\n this.onResponseQuery(payload, page);\n this.loadedList.emit(false);\n });\n } else {\n this.service.query(this.urlRest, args).subscribe(payload => {\n this.onResponseQuery(payload.result, page);\n this.loadedList.emit(false);\n });\n }\n } catch (e) {\n console.log('Erro ao tentar buscar lista no back');\n }\n }\n\n onResponseQuery(payload, page) {\n this.payload = this.filterValues ? this.filterValues.bind(this.scope)(payload[this.keyPayload]) : payload[this.keyPayload];\n this.onLoadPayload.emit({\n result: payload[this.keyPayload],\n page: page,\n });\n this.totalRecords = this.isEntity ? payload.totalElements : payload.countResult;\n }\n\n onHandlePage(event) {\n const currentPage = event.first / event.rows + 1;\n this.getList(currentPage);\n }\n\n getRowActions(data: any) {\n return this.getRowActionsFun.call(this.scope, data);\n }\n\n handleClickActions(button): void {\n const toClick = button.containerViewChild.nativeElement.getElementsByClassName('ui-splitbutton-menubutton')[0] as HTMLElement;\n toClick.click();\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ButtonModule } from \"primeng/button\";\nimport { TableModule } from \"primeng/table\";\nimport { SplitButtonModule } from \"primeng/splitbutton\";\nimport { InputTextModule } from \"primeng/inputtext\";\n\nimport { SharedModule } from \"../shared/shared.module\";\nimport { ListRestComponent } from \"./list-rest.component\";\nimport { ListRestService } from \"./list-rest.service\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n SharedModule,\n HttpClientModule,\n TableModule,\n InputTextModule,\n ButtonModule,\n SplitButtonModule,\n ],\n declarations: [ListRestComponent],\n providers: [ListRestService],\n exports: [ListRestComponent],\n})\nexport class ListRestModule {\n}\n","import {Component} from '@angular/core';\n\n@Component({\n selector: 'spinner-loader',\n templateUrl: './spinner-loader.component.html'\n})\nexport class SpinnerLoaderComponent {\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ProgressSpinnerModule } from 'primeng/progressspinner';\nimport { SpinnerLoaderComponent } from './spinner-loader.component';\n\n@NgModule({\n imports: [\n FormsModule,\n ProgressSpinnerModule\n ],\n declarations: [\n SpinnerLoaderComponent\n ],\n exports: [\n SpinnerLoaderComponent\n ]\n})\nexport class SpinnerLoaderModule {}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class TypeAdmissionServices {\n private company: any = {};\n private contractNationality: any = {};\n private contractType: any = {};\n\n constructor() {}\n\n public setCompany(company: any) {\n this.company = company;\n }\n\n public getCompanyId() {\n return this.company.companyId;\n }\n\n public setContractNationality(contractNationality: any) {\n this.contractNationality = contractNationality;\n }\n\n public isBrazilianAdmission() {\n return this.company.abbreviation === 'BR' && this.contractNationality.key === 'National';\n }\n\n public isBrazilAndforeignContract() {\n return this.company.abbreviation === 'BR' && this.contractNationality.key !== 'National';\n }\n\n public isForeignAdmission() {\n return this.company.abbreviation !== 'BR' && this.contractNationality.key === 'National';\n }\n\n public isForeignAndforeignContract() {\n return this.company.abbreviation !== 'BR' && this.contractNationality.key !== 'National';\n }\n\n public isBrazilianCompany() {\n return this.company.abbreviation === 'BR';\n }\n\n public isNationalContract() {\n return this.contractNationality.key === 'National';\n }\n\n public getCountryID() {\n return this.company.id;\n }\n\n public get contractNationalityKey() {\n return this.contractNationality.key;\n }\n\n public get abbreviation() {\n return this.company.abbreviation;\n }\n\n public getCurrency() {\n return this.company.currency;\n }\n\n public getStructureID() {\n return this.company.structure;\n }\n\n public setContractType(contractType: any) {\n this.contractType = contractType;\n }\n\n public get contractTypeKey() {\n return this.contractType ? this.contractType.key : this.contractType;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TypeAdmissionServices} from './type-admission.services';\n\n@NgModule({\n imports: [CommonModule],\n providers: [TypeAdmissionServices],\n})\nexport class TypeAdmissionModule {\n}\n","import * as _moment from 'moment';\n\nconst moment = _moment;\n\nexport function isRequired(value) {\n return value !== undefined && value !== null && value.length > 0;\n}\n\nexport function isMax(value, max) {\n return value.length <= max;\n}\n\nexport function isNumber(value) {\n const regex = /^\\d*$/;\n return regex.test(value);\n}\n\nexport function notEmpty(value) {\n return value ? value : false;\n}\n\nexport function numberOrZero(value) {\n return isNumber(notEmpty(value)) ? Number.parseInt(value) : 0;\n}\n\nexport function sun(...val) {\n return val.reduce((pv, cv) => numberOrZero(cv) + pv, 0);\n}\n\nexport function firstNameLengthIsValid(name) {\n const firstName = name.split(' ');\n return firstName[0].trim().length > 0 ? firstName[0].trim().length >= 2 : true;\n}\n\nexport function firstNameIsValid(name) {\n const firstName = name.split(' ');\n return firstName.length >= 2 && firstName[1].length >= 1;\n}\n\nexport function fullNameLengthIsValid(fullName) {\n return fullName.length <= 70;\n}\n\nexport function containsMoreThanTwoRepeatedCharacters(fullName) {\n const regex = /([a-zA-Z])\\1{2}/g;\n return !regex.test(fullName);\n}\n\nexport function containsMoreThanOneConsecutiveAbbreviation(fullName) {\n const regex = /(\\b.\\s)(.\\s)(.\\b)\\1?/g;\n return !regex.test(fullName);\n}\n\nexport function containsMoreThanOneConsecutiveBlankSpace(fullName) {\n const regex = /(\\w[ ]{2,}\\w)/;\n return !regex.test(fullName);\n}\n\n/**\n* Validada se nome não contém caracteres especiais.\n* @param fullName Nome completo.\n* @returns boolean de acordo com a validação.\n */\nexport function containsSpecialCharacters(fullName) {\n const regex = /[[\\]!@#$%&*_+=`´{}^~<>.,:;?|()\\/\\\\-]/;\n return !regex.test(fullName);\n}\n\nexport function removeWhiteSpaces(msg: string) {\n if (msg && String(msg)) {\n return String(msg).replace(/\\s/g,\"\");\n }\n return String(msg);\n}\n\nexport function isValidPIS(pis) {\n const multiplicadorBase = '3298765432';\n let total = 0;\n let resto = 0;\n let multiplicando = 0;\n let multiplicador = 0;\n let digito = 99;\n\n // Retira a mascara\n const numeroPIS = pis.replace(/[^\\d]+/g, '');\n\n if (\n numeroPIS.length !== 11 ||\n numeroPIS === '00000000000' ||\n numeroPIS === '11111111111' ||\n numeroPIS === '22222222222' ||\n numeroPIS === '33333333333' ||\n numeroPIS === '44444444444' ||\n numeroPIS === '55555555555' ||\n numeroPIS === '66666666666' ||\n numeroPIS === '77777777777' ||\n numeroPIS === '88888888888' ||\n numeroPIS === '99999999999'\n ) {\n return false;\n } else {\n for (let i = 0; i < 10; i++) {\n multiplicando = parseInt(numeroPIS.substring(i, i + 1));\n multiplicador = parseInt(multiplicadorBase.substring(i, i + 1));\n total += multiplicando * multiplicador;\n }\n\n resto = 11 - (total % 11);\n resto = resto === 10 || resto === 11 ? 0 : resto;\n\n digito = parseInt('' + numeroPIS.charAt(10));\n return resto === digito;\n }\n}\n\nexport function validateBirthDate(birthday, date) {\n if (birthday && date) {\n const birthdayCompare = moment(typeof birthday === 'string' ? birthday.replace(/[^\\d]+/g, '') : birthday, 'DDMMYYYY')\n .format('YYYY-MM-DD')\n .toString();\n const dateCompare = moment(date.replace(/[^\\d]+/g, ''), 'DDMMYYYY')\n .format('YYYY-MM-DD')\n .toString();\n return moment(dateCompare).isSameOrAfter(birthdayCompare);\n }\n}\n\nexport function isBirthDayValid(birthdayCompare, dateCompare) {\n if (birthdayCompare && dateCompare) {\n return dateCompare.isSameOrAfter(birthdayCompare);\n }\n}\n\nexport function isDateExpirationBeforeExpeditionDate(expeditionDateCompare, dateCompare) {\n if (expeditionDateCompare && dateCompare) {\n return dateCompare.isSameOrAfter(expeditionDateCompare);\n }\n}\n\nexport function isDateSameOrAfterCurrentDate(dateCompareMoment) {\n if (dateCompareMoment) {\n const currentDateCompare = moment();\n return dateCompareMoment.isSameOrAfter(currentDateCompare);\n }\n}\n\nexport function isDateCompare(momentDate, momentDateCompare, compare) {\n if (momentDate && momentDate.isValid() && momentDateCompare && compare) {\n return momentDate[compare](momentDateCompare);\n }\n return true;\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { HttpClientService } from '../components/shared/http-client.service';\nimport { CompanyIndicationType } from '../core/enums';\n\n@Injectable()\nexport class CompanyIndicationsService {\n private companyUseWorkstationGroupSubject = new Subject<any>();\n private useWorkstationGroup: any;\n private structure;\n\n constructor(private http: HttpClientService) {}\n\n getCompanyIndications(companyId: string, companyIndicationTypes: CompanyIndicationType[]) {\n return this.http\n .query('companyIndicationQuery', { companyId: companyId, companyIndicationType: companyIndicationTypes })\n .pipe(map((payload: any) => payload.result));\n }\n\n setCompanyUseWorkstationGroup(indication) {\n this.companyUseWorkstationGroupSubject.next(indication);\n }\n\n setStructure(indication) {\n this.structure = indication;\n }\n\n getStructure() {\n return this.structure;\n }\n\n getCompanyUseWorkstationGroup(): Observable<any> {\n return this.companyUseWorkstationGroupSubject.asObservable();\n }\n\n setUseWorkstationGroup(useIndication) {\n this.useWorkstationGroup = useIndication;\n }\n\n getUseWorkstationGroup() {\n return this.useWorkstationGroup;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { HttpClientService } from '../components/shared/http-client.service';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class IntegrationService {\n constructor(private http: HttpClientService) {}\n\n hasModule(module): Observable<any> {\n return this.http.query('hasModule', { module: module });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { MessageService } from \"primeng/api\";\nimport { map, catchError } from \"rxjs/operators\";\nimport { Observable, throwError } from \"rxjs\";\nimport { EntityODataParameter } from '../core/entities';\nimport { FieldType, FormField } from '@seniorsistemas/angular-components';\nimport * as moment_ from 'moment';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { PaginationData } from '../core/interfaces';\n\nconst moment = moment_;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LookupParametersService {\n\n private searchLookupFields: any;\n private endpoint: string;\n private parameters: any;\n private concatFields: any;\n private concatOtherFields: any;\n private lookupDisplayField: string;\n private searchFields: any;\n private httpPostParams: any;\n private page: PaginationData;\n private _httpParams: HttpParams = new HttpParams();\n\n constructor(private http: HttpClient, private messageService: MessageService, private translateService: TranslateService) {\n }\n\n\n lookupRequestPost(httpPostParams: any, endpoint: string, concatFields: Array<FormField> = null, lookupDisplayField: string) {\n this.httpPostParams = httpPostParams;\n this.postConfigPageSize(httpPostParams);\n this.lookupDisplayField = lookupDisplayField;\n this.concatFields = concatFields;\n return this.postDataLookup(endpoint);\n }\n\n postConfigPageSize(httpPostParams: any) {\n if (httpPostParams) {\n this.httpPostParams.page.size = httpPostParams.page && httpPostParams.page.size ? httpPostParams.page.size : 10;\n this.httpPostParams.page.current = httpPostParams.page && httpPostParams.page.current ? httpPostParams.page.current : 0;\n }\n }\n\n /**\n * Função chamada no change do autocomplete (Lookup fechado).\n * @param event valor atribuido no autocomplete do lookup fechado\n * @param endpoint endpoint que sera feito a requisição.\n * @param searchLookupFields campos que seram filtrados pelo autocomplete (lookup fechado)\n * @param searchFields array com os campos do filtro\n * @param concatFields array com os formFields que seram concatenados\n * @param concatOtherFields converte os campos enumeração para serem concatenados na grid\n * @param lookupDisplayField campo que sera alterado com os dados concatenados informado acima\n * @param params parâmetros para ser usado no lookup\n */\n lookupRequest(event: any, endpoint: string, searchLookupFields: Array<String>, searchFields: Array<FormField>,\n concatFields: Array<FormField>, lookupDisplayField: string, concatOtherFields: Array<FormField> = [], params: any = []) {\n\n this.searchLookupFields = searchLookupFields;\n this.endpoint = endpoint;\n this.parameters = params;\n this.concatFields = concatFields;\n this.concatOtherFields = concatOtherFields;\n this.lookupDisplayField = lookupDisplayField;\n this.searchFields = searchFields;\n\n this.generateLookupParameters(event);\n this.configHttpParamsPagination('10', '0');\n this.configHttpParamsOrderBy(event.multiSortMeta);\n return this.getDataLookup();\n }\n\n /**\n * Função chamada no change do filtro do lookup (Lookup aberto).\n * @param event valor atribuido no autocomplete do lookup fechado\n * @param endpoint endpoint que sera feito a requisição.\n * @param searchFields array com os campos do filtro\n * @param concatFields array com os formFields que seram concatenados\n * @param concatOtherFields converte os campos enumeração para serem concatenados na grid\n * @param lookupDisplayField campo que sera alterado com os dados concatenados informado acima\n * @param params parâmetros para ser usado no lookup\n */\n searchRequest(event: any, endpoint: string, searchFields: Array<FormField>,\n concatFields: Array<FormField>, lookupDisplayField: string, concatOtherFields: Array<FormField> = [], params: any = []) {\n\n this.endpoint = endpoint;\n this.parameters = params;\n this.concatFields = concatFields;\n this.concatOtherFields = concatOtherFields;\n this.lookupDisplayField = lookupDisplayField;\n this.searchFields = searchFields;\n this.generateGridParameters(event.filterData);\n this.configHttpParamsPagination(event.rows.toString(), Math.floor(event.first / event.rows).toString());\n this.configHttpParamsOrderBy(event.multiSortMeta);\n return this.getDataLookup();\n }\n\n\n /**\n * GET\n * @param endpoint Busca e faz o tratamento dos dados do lookup.\n * @param httpParams HttpParams\n */\n private getDataLookup() {\n return this.getUrlDataLookup(this.endpoint, this.httpParams).pipe(\n map((payload: any) => {\n const { contents } = payload;\n\n if (this.concatFields && this.concatFields.length) {\n contents.map(value => {\n this.convertGridFieldValue(value);\n value[this.lookupDisplayField] = this.generateDisplayFieldValue({ ...value });\n });\n }\n\n return payload;\n }),\n );\n }\n\n\n /**\n * POST\n * @param endpoint Busca e faz o tratamento dos dados do lookup.\n * @param httpParams HttpParams\n */\n private postDataLookup(endpoint) {\n return this.postUrlDataLookup(endpoint, this.httpPostParams).pipe(\n map((payload: any) => {\n const { contents } = payload;\n\n if (this.concatFields && this.concatFields.length) {\n contents.map(value => {\n if (this.concatOtherFields) {\n this.convertGridFieldValue(value);\n }\n value[this.lookupDisplayField] = this.generateDisplayFieldValue({ ...value });\n });\n }\n\n return payload;\n }),\n );\n }\n\n /**\n * Converte o valor do campo para apresentação no lookup.\n *\n * @param content Valor do campo para conversão.\n * @param field FormField do campo.\n */\n private convertLookupFieldValue(content: any, field: FormField): any {\n if (content) {\n switch (field.type) {\n case FieldType.Date:\n content = moment(content).format('L');\n break;\n case FieldType.Enum:\n const enumValue = field.options.filter((enumeration: any) => enumeration.value === content)[0];\n content = enumValue ? enumValue.label : content;\n break;\n }\n }\n\n return content;\n }\n\n /**\n * Converte os dados para visualização na grid\n * @param content\n */\n private convertGridFieldValue(content: any): void {\n if (content) {\n this.concatOtherFields.forEach((field: FormField) => {\n switch (field.type) {\n case FieldType.Enum:\n const enumValue = field.options.filter((enumeration: any) => enumeration.value === content[field.name])[0];\n content[field.name] = enumValue ? enumValue.label : content[field.name];\n break;\n }\n });\n }\n }\n\n /**\n * Faz a concatenação de valores do registro para ser apresentado no lookup ao selecionar o dado.\n * @param contentValue Valor do registro.\n */\n private generateDisplayFieldValue(contentValue: any): string {\n let displayField = '';\n\n this.concatFields.forEach((field: FormField) => {\n const fieldValue = this.convertLookupFieldValue(contentValue[field.name], field);\n if (fieldValue) {\n if (displayField) {\n displayField += ` - ${fieldValue}`;\n } else {\n displayField = fieldValue;\n }\n }\n });\n return displayField;\n }\n\n /**\n * Gera os parametros de pesquisa via lookup\n * @param value\n */\n private generateLookupParameters(value?: string): void {\n let lookupParameters = '';\n this.searchLookupFields.forEach((lookupField: string) => {\n const searchField = this.searchFields.filter(field => lookupField === field.name)[0];\n if (lookupParameters) {\n lookupParameters += ` or ${this.getParameterByType(searchField.type, lookupField, value)}`;\n } else {\n lookupParameters = `${this.getParameterByType(searchField.type, lookupField, value)}`;\n }\n });\n\n this.parameters.forEach((parameter: EntityODataParameter) => {\n if (lookupParameters) {\n lookupParameters += ` and ${parameter.toString()}`;\n } else {\n lookupParameters = `${parameter.toString()}`;\n }\n });\n\n this.httpParams = new HttpParams().set('filter', lookupParameters);\n }\n\n /**\n * Gera os parametros de pesquisa via pesquisa na grid\n * @param filterData\n */\n private generateGridParameters(filterData: object): void {\n let gridParameters = '';\n Object.keys(filterData).forEach((attribute: string) => {\n if (filterData[attribute]) {\n const searchField = this.searchFields.filter(field => attribute === field.name)[0];\n if (gridParameters) {\n gridParameters += ` and ${this.getParameterByType(searchField.type, attribute, filterData[attribute])}`;\n } else {\n gridParameters += this.getParameterByType(searchField.type, attribute, filterData[attribute]);\n }\n }\n });\n\n this.parameters.forEach((parameter: EntityODataParameter) => {\n if (gridParameters) {\n gridParameters += ` and ${parameter.toString()}`;\n } else {\n gridParameters = `${parameter.toString()}`;\n }\n });\n\n this.httpParams = new HttpParams().set('filter', gridParameters);\n }\n\n /**\n * Gera a string de consulta CRUD de um campo.\n * @param type Tipo do campo.\n * @param attribute Nome do atribute da entidade\n * @param value Valor do campo\n */\n private getParameterByType(type: FieldType, attribute: string, value: any): string {\n switch (type) {\n case FieldType.Date:\n return `${attribute} eq '${moment(value).format('YYYY-MM-DD')}'`;\n case FieldType.Enum:\n return `${attribute} eq '${value}'`;\n case FieldType.Integer:\n return `${attribute} eq ${value}`;\n case FieldType.Autocomplete:\n return `${attribute} eq '${value.id}'`;\n default:\n return `containing(lower(${attribute}), lower('${value}'))`;\n }\n }\n\n /**\n *\n * @param size a quantidade de registros na página.\n * @param offset o número da página a ser recuperada, lembrando que a numeração de páginas começa em 0 (zero).\n */\n private configHttpParamsPagination(size: string, offset: string): void {\n this.httpParams = this.httpParams.set('size', size);\n this.httpParams = this.httpParams.set('offset', offset);\n }\n\n /**\n * Gera o orderby do HttpParams\n */\n private configHttpParamsOrderBy(multiSortMeta: { field: string; order: number }[]): void {\n if (multiSortMeta && multiSortMeta.length) {\n let orderBy = '';\n multiSortMeta.map(value => {\n if (orderBy) {\n orderBy += `,${value.field}+${value.order === 1 ? 'asc' : 'desc'}`;\n } else {\n orderBy += `${value.field}+${value.order === 1 ? 'asc' : 'desc'}`;\n }\n });\n\n this.httpParams = this.httpParams.set('orderby', orderBy);\n }\n }\n\n set httpParams(value: HttpParams) {\n this._httpParams = value;\n }\n\n get httpParams() {\n return this._httpParams;\n }\n\n private getUrlDataLookup(endpoint: string, httpParams: HttpParams): Observable<any> {\n if (httpParams) {\n return this.http.get(`${endpoint}`, { params: httpParams })\n .pipe(\n catchError((exception: any): any => {\n if (exception && exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed_search\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n } else {\n return this.http.get(`${endpoint}`)\n .pipe(\n catchError((exception: any): any => {\n if (exception && exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed_search\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n }\n\n private postUrlDataLookup(endpoint: string, httpParams: any): Observable<any> {\n if (httpParams) {\n return this.http.post(`${endpoint}`, { ...httpParams })\n .pipe(\n catchError((exception: any): any => {\n if (exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n } else {\n return this.http.post(`${endpoint}`, {})\n .pipe(\n catchError((exception: any): any => {\n if (exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClientService } from '../components/shared/http-client.service';\nimport { CoreFieldType } from '../core/enums/coreFieldType';\nimport { FieldType } from '@seniorsistemas/angular-components';\nimport * as _moment from 'moment';\nimport { map } from 'rxjs/operators';\nimport { ServiceType } from '../core/enums/serviceType';\n\n\nconst moment = _moment;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AutocompleteParametersService {\n\n constructor(private httpClienteService: HttpClientService) { }\n\n public getAutoComplete(entity: string, params: object, searchFields: any, codeIsString: boolean, service: ServiceType) {\n const getParams = this.generateGridParameters(params, searchFields, codeIsString);\n return this.httpClienteService.getAutoComplete(entity, getParams, service)\n .pipe(map((result) => result && result.contents));\n }\n\n public getAutoCompleteQuery(query: string, params: object) {\n return this.httpClienteService.query(query, params)\n .pipe(map((data) => data && data.result));\n }\n\n /**\n * Gera os parametros de pesquisa via pesquisa na grid\n * @param filterData\n */\n private generateGridParameters(filterData: object, searchFields: any, codeIsString: boolean): string {\n let gridParameters = \"\";\n Object.keys(filterData).forEach((attribute: string) => {\n const filterSearchField = searchFields && searchFields.filter(field => attribute === field.name)[0];\n let filterQueryString = null;\n let operatorsQuery = \"\";\n let searchField: any = filterSearchField && filterSearchField.type;\n if (!filterSearchField && attribute != CoreFieldType.searchValue) searchField = FieldType.String;\n if (!filterSearchField && attribute === CoreFieldType.searchValue) searchField = CoreFieldType.searchValue;\n if (gridParameters) operatorsQuery = \" and \";\n filterQueryString = this.getParameterByType(searchField, attribute, filterData[attribute], codeIsString);\n if (filterQueryString) gridParameters += ` ${operatorsQuery} ${filterQueryString}`;\n });\n return gridParameters;\n }\n\n /**\n * Gera a string de consulta CRUD de um campo.\n * @param type Tipo do campo.\n * @param attribute Nome do atribute da entidade\n * @param value Valor do campo\n */\n private getParameterByType(type: any, attribute: string, value: any, codeIsString: boolean): string {\n if (!value && type != CoreFieldType.searchValue) return `${attribute} is null`;\n if (value && value === 'not null' && type != CoreFieldType.searchValue) return `${attribute} is not null`;\n switch (type) {\n case FieldType.Date:\n return `${attribute} eq '${moment(value).format('YYYY-MM-DD')}'`;\n case FieldType.Enum:\n return `${attribute} eq '${value}'`;\n case FieldType.Integer:\n return `${attribute} eq ${value}`;\n case FieldType.Autocomplete:\n return `${attribute} eq '${value.id}'`;\n case CoreFieldType.searchValue:\n return `${this.getParameterBySearchType(value, codeIsString)}`;\n default:\n return this.getSearchFilterString(attribute, value);\n }\n }\n\n /**\n * Retorna o filtro formatador para ser chamdo no endpoint\n * @param valueFilterSearch valor pra adicionar no filtro\n */\n private getParameterBySearchType(valueFilterSearch: any, codeIsString: boolean): string {\n let searchFilter = \"\";\n if (valueFilterSearch) {\n for (const [key, value] of Object.entries(valueFilterSearch)) {\n if (key === \"code\" && Number(value)) {\n const hasQuote = codeIsString ? \"'\" : \"\";\n if (searchFilter)\n searchFilter += ` or ${key} eq ${hasQuote}${value}${hasQuote}`;\n else\n searchFilter += `${key} eq ${hasQuote}${value}${hasQuote}`;\n } else if (key != \"code\") {\n if (searchFilter)\n searchFilter += ` or ${this.getSearchFilterString(key, value)}`;\n else\n searchFilter += this.getSearchFilterString(key, value);\n }\n }\n searchFilter = searchFilter ? `(${searchFilter})` : '';\n }\n return searchFilter;\n }\n\n /**\n * Formata o filtro quando for \"Ou\"\n * @param attribute\n * @param value\n */\n private getSearchFilterString(attribute: string, value: any): string { return `containing(lower(${attribute}), lower('${value}'))`; }\n\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { Report, ReportIn, ReportOut, GetParametersOut } from \"../core/interfaces\";\n\nconst ENDPOINTS = {\n reportParameters: \"platform/report/queries/getParameters\",\n reportUri: \"platform/report/queries/getReportUri\",\n reportStatus: \"platform/report/queries/getReportStatus\",\n reportsByName: \"platform/report/queries/findReportsByName\",\n reportsRunning: \"platform/report/queries/getRunningReports\",\n reportsGenerate: \"platform/report/actions/generateReport\"\n};\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class ReportService {\n constructor(private http: HttpClient) {}\n\n /**\n * Procura por relatórios que contenham no seu nome a string conforme parâmetro `name`\n * @param name Nome ou parte do nome do relatório\n */\n public findReportsByName(\n name: string,\n ): Observable<Report[]> {\n return this.http\n .post(`${ENDPOINTS.reportsByName}`, {\n name: name\n })\n .pipe(\n map((payload: any) => {\n const result = payload.reports ? payload.reports : [];\n return result as Report[];\n })\n );\n }\n\n /**\n * Procura por relatórios que contenham o nome exato conforme parâmetro `name`.\n * No momento a plataforma não disponibilza uma query exata para isso.\n * Portanto este método procura pelo nome informado dentro do resultado da query `findReportsByName`\n * @param name Nome exato do relatório\n */\n public findReportByName(\n name: string,\n ): Observable<Report> {\n name = name || \"\";\n return this.findReportsByName(name).pipe(\n map((payload: any) => {\n const filtered =\n payload && payload.filter((report: any) => report.name && report.name === name);\n return filtered && filtered.length == 1 ? (filtered[0] as Report) : null;\n })\n );\n }\n\n /**\n * Retorna a lista de parâmetros de entrada do relatório\n * @param reportId Id do relatório\n * @param reportFileId Identificador de um arquivo de relatório (opcional)\n */\n public getParameters(reportId: string, reportFileId?: any): Observable<GetParametersOut> {\n return this.http\n .post(`${ENDPOINTS.reportParameters}`, { id: reportId, reportFileId: reportFileId })\n .pipe(\n map((payload: any) => {\n return payload ? (payload as GetParametersOut) : null;\n })\n );\n }\n\n /**\n * Retorna a URL para visualização do relatório gerado\n * @param reportTicket Ticket do relatório gerado\n */\n public getReportUri(reportTicket: string): Observable<string> {\n return this.http.post(`${ENDPOINTS.reportUri}`, { reportTicket: reportTicket }).pipe(\n map((payload: any) => {\n return payload && payload.reportUri;\n })\n );\n }\n\n /**\n * Retorna o status do relatório\n * @param reportTicket Ticket do relatório gerado\n */\n public getReportStatus(reportTicket: string): Observable<string> {\n return this.http.post(`${ENDPOINTS.reportStatus}`, { reportTicket: reportTicket }).pipe(\n map((payload: any) => {\n return payload && payload.reportStatus;\n })\n );\n }\n\n /**\n * Gera o relatório\n * @param reportIn Dados do relatório a ser gerado\n */\n public generateReport(reportIn: ReportIn): Observable<ReportOut> {\n return this.http.post(`${ENDPOINTS.reportsGenerate}`, reportIn).pipe(\n map((payload: any) => {\n return payload ? (payload as ReportOut) : null;\n })\n );\n }\n\n /**\n * Retorna uma lista com os relatórios sendo executados ou já finalizados\n * @param page página inicial\n * @param size tamanho da página\n */\n public getRunningReports(page: number, size: number): Observable<any> {\n return this.http.post(`${ENDPOINTS.reportsRunning}`, {\n offset: page,\n limit: size,\n orderByDesc: true,\n filterCancelled: true\n });\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { BehaviorSubject, Subject, Observable } from \"rxjs\";\n\n@Injectable()\nexport class WorkflowDataService {\n private useWorkflowValueChange: Subject<boolean> = new Subject<boolean>();\n private _draftJSON: BehaviorSubject<string> = new BehaviorSubject<string>(null);\n\n constructor() {\n }\n\n public setUseWorkflow(useWorkflow: boolean): void {\n this.useWorkflowValueChange.next(useWorkflow);\n }\n\n public getUseWorkflow() {\n return this.useWorkflowValueChange.asObservable();\n }\n\n public setDraftJSON(draftJSON: string) {\n this._draftJSON.next(draftJSON);\n }\n\n public getDraftJSON(): Observable<string> {\n return this._draftJSON.asObservable();\n }\n}\n","import { Injectable } from \"@angular/core\";\n\nexport interface Divergence {\n oldValue: any;\n newValue: any;\n}\n\nexport interface DivergenceArray extends Divergence {\n key: string;\n}\n\n@Injectable()\nexport class FormComparatorService {\n private _oldFormData: object;\n private _newFormData: object;\n private _divergentFormData: { divergentKey?: Divergence };\n\n constructor() {\n this.resetDivergentFormData();\n }\n\n public resetDivergentFormData() {\n this._divergentFormData = {};\n }\n\n /**\n * checkFormDisagreements\n *\n * @description\n * Checa se existem divergẽncias entre os objetos armazenados nas\n * propriedades *oldFormData* e *newFormData*.\n *\n * `Se forem idênticos:`\n * levanta uma exceção.\n *\n * `Se houverem divergências:`\n * as armazena na propriedade divergentFormData.\n */\n public checkFormDisagreements(ignoreId: boolean = false): void {\n this.resetDivergentFormData();\n this._sanitizeEmptyStrings();\n if (ignoreId) this._removeIdsFromFormDatas();\n\n if (this._oldFormData === this._newFormData) {\n this._throwIdenticalMessage();\n } else {\n Object.keys(this._oldFormData).forEach((key) => {\n if (this._oldFormData[key] !== this._newFormData[key]) {\n this._divergentFormData[key] = this._createDivergencePair(key);\n }\n });\n\n Object.keys(this._newFormData).forEach((key) => {\n if (this._newFormData[key] !== this._oldFormData[key]) {\n this._divergentFormData[key] = this._createDivergencePair(key);\n }\n });\n\n if (this._isDivergentFormDataEmpty) this._throwIdenticalMessage();\n }\n }\n\n private _removeIdsFromFormDatas() {\n [this._oldFormData, this._newFormData].forEach((formData) => {\n delete formData[\"id\"];\n });\n }\n\n private _sanitizeEmptyStrings(): void {\n [this._oldFormData, this._newFormData].forEach((formData) => {\n Object.keys(formData).map((key) => {\n if (formData[key] === \"\") formData[key] = null;\n });\n });\n }\n\n private _createDivergencePair(key: string): Divergence {\n const divergence: Divergence = { oldValue: null, newValue: null };\n\n divergence.oldValue = this._oldFormData[key];\n divergence.newValue = this._newFormData[key];\n\n return divergence;\n }\n\n private _throwIdenticalMessage() {\n throw new Error(\"The objects oldFormData and newFormData are identical\");\n }\n\n public set oldFormData(v: object) {\n this._oldFormData = v;\n }\n\n public get oldFormData(): object {\n return this._oldFormData;\n }\n\n public set newFormData(v: object) {\n this._newFormData = v;\n }\n\n public get newFormData(): object {\n return this._newFormData;\n }\n\n public get divergentFormArray(): Array<DivergenceArray> {\n const divergentFormArray: Array<DivergenceArray> = [];\n\n Object.entries(this._divergentFormData).map(([key, divergence]) => {\n const object = { key: null, oldValue: null, newValue: null };\n\n object.key = key;\n object.oldValue = divergence.oldValue;\n object.newValue = divergence.newValue;\n\n divergentFormArray.push(object);\n });\n\n return divergentFormArray;\n }\n\n public get _isDivergentFormDataEmpty(): boolean {\n return Object.entries(this._divergentFormData).length === 0;\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { CompanyIndicationsService } from \"./company-indications.service\";\nimport { IntegrationService } from \"./integration.service\";\nimport { LookupParametersService } from \"./lookup-parameters.service\";\nimport { AutocompleteParametersService } from \"./autocomplete-parameters.service\";\nimport { ReportService } from \"./report.service\";\nimport { WorkflowDataService } from './workflow-data.service';\nimport { FormComparatorService } from \"./form-comparator.service\";\n\nexport { WorkflowDataService } from './workflow-data.service';\n\n@NgModule({\n imports: [CommonModule],\n providers: [\n CompanyIndicationsService,\n IntegrationService,\n LookupParametersService,\n AutocompleteParametersService,\n ReportService,\n WorkflowDataService,\n FormComparatorService\n ]\n})\nexport class ServicesModule {}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { service, user } from '@seniorsistemas/senior-platform-data';\nimport { from, Observable } from 'rxjs';\nimport { flatMap, map } from 'rxjs/operators';\n\n@Injectable()\nexport class PermissionService {\n private actionUrl = `platform/authorization/queries/checkAccess`;\n private resourceAddress = `res://senior.com.br/hcm/payroll/`;\n private defaultActions = ['Visualizar', 'Incluir', 'Editar', 'Excluir'];\n private _resources: string[] = [];\n private _attributes: { name: string; value: string }[] = [];\n private observable: Observable<any>;\n private permissions: any;\n private httpOptions;\n private restUrl;\n\n constructor(private http: HttpClient) {\n user.getAuthHeader().then(token => {\n this.httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n Authorization: token,\n }),\n };\n });\n\n service.getRestUrl().then(restUrl => (this.restUrl = restUrl));\n }\n\n protected get(resource: string = ''): Observable<any> {\n if (this.permissions) {\n this.observable = Observable.of(this.permissions);\n } else if (!this.observable) {\n this.observable = this.getPermissions().pipe(map((permissions: any) => (this.permissions = permissions)));\n }\n\n return this.observable.pipe(map((permissions: any) => (resource ? permissions[resource] : permissions)));\n }\n\n protected getAbac(resource: string, attributes: { name: string; value: string }[]): Observable<any> {\n this.attributes = attributes;\n\n return this.getAbacPermission(resource);\n }\n\n private getAbacPermission(resource: string): Observable<any> {\n return this.http.post(\n this.actionUrl,\n {\n includeFilters: false,\n permissions: [\n {\n resource: `${this.resourceAddress}${resource}`,\n action: 'Visualizar',\n attributes: this._attributes.map((res: { name: string; value: string }) => ({\n attribute: res.name,\n value: res.value,\n })),\n }\n ]\n },\n this.httpOptions\n );\n }\n\n private getPermissions() {\n const permissions = [];\n this._resources.forEach((resource: string) =>\n this.defaultActions.forEach((action: string) =>\n permissions.push({ action, resource: `${this.resourceAddress}${resource}` })\n )\n );\n return this.http\n .post(this.actionUrl, {\n includeFilters: false,\n permissions: [\n ...permissions\n ]\n },\n this.httpOptions\n )\n .pipe(\n map((res: any) => {\n const permissoes = res.permissions;\n const values = {};\n\n permissoes.forEach((perm: any) => {\n const name = perm.resource.replace(this.resourceAddress, '');\n values[name] = values[name] || {};\n values[name][perm.action.toLowerCase()] = perm.authorized;\n });\n\n return values;\n })\n );\n }\n\n private set attributes(value: { name: string; value: string }[]) {\n this._attributes = value;\n }\n\n protected setResources(values: string[]) {\n this._resources = values;\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MessageService } from 'primeng/api';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { ToastService } from './toast.service';\n\n@Component({\n selector: 'c-toast',\n template: `\n <p-toast [ngClass]=\"breakLine ? 'ui-toast-break-line' : ''\" [key]=\"key\"></p-toast>\n `,\n})\nexport class ToastComponent implements OnInit, OnDestroy {\n // Chave para garantir que as mensagens adicionadas por esse serviço\n // sejam exibidas apenas nesse componente.\n public key = 'TOAST';\n public breakLine: boolean = false;\n private ngUnsubscribe = new Subject();\n\n constructor(private toastService: ToastService, private messageService: MessageService, private translateService: TranslateService) {}\n\n ngOnInit() {\n this.toastService\n .loadErrorMessages()\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(payload => {\n this.createErrorMessage(payload && payload.message);\n this.breakLine = payload && payload.breakLine;\n });\n\n this.toastService\n .loadSuccessMessages()\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(payload => {\n this.createSuccessMessage(payload && payload.message);\n this.breakLine = payload && payload.breakLine;\n });\n\n this.toastService\n .loadWarningMessages()\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(payload => {\n this.createWarningMessage(payload && payload.message);\n this.breakLine = payload && payload.breakLine;\n });\n }\n\n ngOnDestroy() {\n this.ngUnsubscribe.next(true);\n this.ngUnsubscribe.complete();\n }\n\n createErrorMessage(message: string, summary?: string) {\n this.messageService.clear();\n this.messageService.add({\n severity: 'error',\n summary: summary || this.translateService.instant('hcm.payroll.error'),\n detail: message,\n sticky: true,\n key: this.key,\n });\n }\n\n createSuccessMessage(message: string, summary?: string) {\n this.messageService.add({\n severity: 'success',\n summary: summary || this.translateService.instant('hcm.payroll.success'),\n detail: message,\n key: this.key,\n });\n }\n\n createWarningMessage(message: string, summary?: string) {\n this.messageService.add({\n severity: 'warn',\n summary: summary || this.translateService.instant('hcm.payroll.warn'),\n detail: message,\n sticky: true,\n key: this.key,\n });\n }\n\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MessageService } from 'primeng/api';\nimport { ToastModule as ToastModulePrimeng } from 'primeng/toast';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { ToastComponent } from './toast.component';\nimport { ToastService } from './toast.service';\n\n@NgModule({\n imports: [CommonModule, SharedModule, ToastModulePrimeng],\n declarations: [ToastComponent],\n providers: [ToastService, MessageService],\n exports: [ToastComponent],\n})\nexport class ToastModule {}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class DataListService {\n constructor(private http: HttpClient) {}\n\n getList(endpoint: string, httpParams: HttpParams): Observable<any> {\n return this.http.get(`${endpoint}`, { params: httpParams });\n }\n}\n","import { HttpParams } from '@angular/common/http';\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { SplitButton } from 'primeng/splitbutton';\nimport { Table } from 'primeng/table';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { EntityODataParameter } from '../../core/entities';\nimport { DirectionEnumeration } from '../../core/enums';\nimport { DataListService } from './data-list.service';\nimport { EntityODataResponse } from './entity-odata-response';\n\n@Component({\n selector: 'c-data-list',\n templateUrl: './data-list.component.html',\n styleUrls: ['./data-list.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DataListComponent implements OnInit, OnDestroy {\n @ViewChild('dataListTable', { static: false })\n dataListTable: Table;\n\n @Input()\n id: string;\n @Input()\n dataKey: string;\n @Input()\n rows = 10;\n @Input()\n emptyMessage: string;\n @Input()\n columns: any[];\n @Input()\n paginator = true;\n @Input()\n first = 0;\n @Input()\n alwaysShowPaginator = true;\n @Input()\n actions?: Function;\n @Input()\n actionLabel: string;\n @Input()\n selectionMode: string;\n @Input()\n lazy: boolean;\n @Input()\n isMultipleSelection: boolean;\n @Input()\n isSortable: boolean;\n @Input()\n showHeaderCheckBox: boolean;\n @Input()\n sortMode = 'multiple';\n @Input()\n endpoint: string;\n @Input()\n displayFields: string[];\n @Input()\n orderBy: { field: string; direction: DirectionEnumeration }[];\n @Input()\n singularMessageRecords: string;\n @Input()\n pluralMessageRecords: string;\n @Input()\n initParameters: EntityODataParameter[];\n\n @Output()\n lazyLoad: EventEmitter<any> = new EventEmitter();\n @Output()\n loadingChange: EventEmitter<any> = new EventEmitter();\n @Output()\n totalRecordsChange: EventEmitter<any> = new EventEmitter();\n @Output()\n listDataChange: EventEmitter<any> = new EventEmitter();\n @Output()\n selectedDataChange: EventEmitter<any> = new EventEmitter();\n @Output()\n headerCheckboxToggle: EventEmitter<any> = new EventEmitter();\n\n private _httpParams: HttpParams = new HttpParams();\n private _loading: boolean;\n private _totalRecords: number;\n private _listData: any[];\n private _selectedData: any[];\n private ngUnsubscribe = new Subject();\n\n constructor(private dataListService: DataListService) {}\n\n ngOnInit() {\n if (!this.lazy) {\n this.getlistData();\n }\n }\n\n ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n getActions(data: any, index: number) {\n return this.actions(data, index);\n }\n\n handleClickActions(button: SplitButton) {\n const toClick = button.containerViewChild.nativeElement.getElementsByClassName('ui-splitbutton-menubutton')[0] as HTMLElement;\n toClick.click();\n }\n\n pagination(event) {\n if (!this.lazy) {\n this.getlistData(event.rows, Math.floor(event.first / event.rows));\n }\n }\n\n onLazyLoad(event) {\n this.loading = true;\n\n if (event.multiSortMeta && event.multiSortMeta.length) {\n this.orderBy = <{ field: string; direction: DirectionEnumeration }[]>[];\n event.multiSortMeta.map(value => {\n this.orderBy.push({ field: value.field, direction: value.order === 1 ? DirectionEnumeration.ASC : DirectionEnumeration.DESC });\n });\n }\n\n this.getlistData(event.rows, Math.floor(event.first / event.rows));\n }\n\n onFilter() {\n if (this.lazy) {\n this.loading = true;\n }\n\n this.getlistData();\n }\n\n get recordsMessage() {\n return `${this.totalRecords || 0} ${this.totalRecords === 1 ? this.singularMessageRecords : this.pluralMessageRecords}`;\n }\n\n getlistData(size = this.rows, offset = this.first): void {\n if (this.endpoint) {\n this.configParameters(this.initParameters);\n this.configHttpParamsDisplayFields();\n this.configHttpParamsPagination(size.toString(), offset.toString());\n this.configHttpParamsOrderBy();\n this.dataListService\n .getList(this.endpoint, this.httpParams)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((data: EntityODataResponse) => {\n this.listData = data.contents;\n this.totalRecords = data.totalElements;\n if (this.lazy) {\n this.lazyLoad.emit(this.listData);\n }\n });\n } else {\n if (this.lazy) {\n this.lazyLoad.emit(this.listData);\n }\n }\n }\n\n /**\n *\n * @param size a quantidade de registros na página.\n * @param offset o número da página a ser recuperada, lembrando que a numeração de páginas começa em 0 (zero).\n */\n configHttpParamsPagination(size: string, offset: string): void {\n this.httpParams = this.httpParams.set('size', size);\n this.httpParams = this.httpParams.set('offset', offset);\n }\n\n /**\n * Gera o orderby do HttpParams\n */\n configHttpParamsOrderBy(): void {\n if (this.orderBy && this.orderBy.length) {\n let orderBy = '';\n this.orderBy.map(value => {\n if (orderBy) {\n orderBy += `,${value.field}+${value.direction}`;\n } else {\n orderBy += `${value.field}+${value.direction}`;\n }\n });\n\n this.httpParams = this.httpParams.set('orderby', orderBy);\n }\n }\n\n /**\n * Gera HttpParams dos campos a serem retornados na requisição.\n */\n configHttpParamsDisplayFields(): void {\n if (this.displayFields && this.displayFields.length) {\n this.httpParams = this.httpParams.set('displayfields', this.displayFields.toString());\n }\n }\n\n onHeaderCheckboxToggle(event) {\n this.headerCheckboxToggle.emit(event);\n }\n\n getFieldValue(rowData, col) {\n if (col['field'] && col['field'].includes('.')) {\n const objectPath = col['field'].split('.');\n objectPath.map(value => (rowData = rowData && rowData[value]));\n return rowData;\n }\n return rowData[col['field']];\n }\n\n private configParameters(entityODataParameters: EntityODataParameter[]) {\n let parameters = '';\n if (entityODataParameters) {\n entityODataParameters.forEach((parameter: EntityODataParameter) => {\n if (parameters) {\n parameters += ` and ${parameter.toString()}`;\n } else {\n parameters = `${parameter.toString()}`;\n }\n });\n\n this.httpParams = new HttpParams().set('filter', parameters);\n }\n }\n\n @Input()\n set parameters(entityODataParameters: EntityODataParameter[]) {\n this.configParameters(entityODataParameters);\n if (entityODataParameters) {\n if (this.dataListTable) {\n this.dataListTable.first = 0;\n }\n this.onFilter();\n }\n }\n\n set httpParams(value: HttpParams) {\n this._httpParams = value;\n }\n\n get httpParams() {\n return this._httpParams;\n }\n\n set loading(value: boolean) {\n this._loading = value;\n this.loadingChange.emit(this._loading);\n }\n\n @Input()\n get loading() {\n return this._loading;\n }\n\n set listData(value: any[]) {\n this._listData = value;\n this.listDataChange.emit(this._listData);\n }\n\n @Input()\n get listData() {\n return this._listData;\n }\n\n set selectedData(value: any[]) {\n this._selectedData = value;\n this.selectedDataChange.emit(this._selectedData);\n }\n\n @Input()\n get selectedData() {\n return this._selectedData;\n }\n\n set totalRecords(value: number) {\n this._totalRecords = value;\n this.totalRecordsChange.emit(this.totalRecords);\n }\n\n @Input()\n get totalRecords(): number {\n return this._totalRecords;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ButtonModule, LoadingStateModule } from '@seniorsistemas/angular-components';\nimport { SplitButtonModule } from 'primeng/splitbutton';\nimport { TableModule } from 'primeng/table';\nimport { TooltipModule } from 'primeng/tooltip';\n\nimport { DataListComponent } from './data-list.component';\nimport { DataListService } from './data-list.service';\n\n@NgModule({\n imports: [\n CommonModule,\n // Angular Components\n ButtonModule,\n LoadingStateModule,\n // Primeng\n TableModule,\n TooltipModule,\n ],\n declarations: [DataListComponent],\n exports: [DataListComponent],\n providers: [DataListService],\n})\nexport class DataListModule {}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { MessageService } from \"primeng/api\";\nimport { Observable, throwError } from \"rxjs\";\nimport { catchError } from \"rxjs/operators\";\n\n@Injectable()\nexport class LookupService {\n constructor(private http: HttpClient, private messageService: MessageService, private translateService: TranslateService) {}\n\n getDataLookup(endpoint: string, httpParams: HttpParams): Observable<any> {\n if (httpParams) {\n return this.http.get(`${endpoint}`, { params: httpParams })\n .pipe(\n catchError((exception: any): any => {\n if (exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n } else {\n return this.http.get(`${endpoint}`)\n .pipe(\n catchError((exception: any): any => {\n if (exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n }\n}\n","import { HttpParams } from '@angular/common/http';\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { FieldType, FormField } from '@seniorsistemas/angular-components';\nimport * as moment_ from 'moment';\nimport { Subject } from 'rxjs';\nimport { map, takeUntil } from 'rxjs/operators';\n\nimport { EntityODataParameter } from '../../core/entities';\nimport { LookupService } from './lookup.service';\n\nconst moment = moment_;\n\n@Component({\n selector: 'c-lookup',\n templateUrl: './lookup.component.html',\n})\nexport class LookupComponent implements OnInit, OnDestroy {\n @Input()\n id: string;\n @Input()\n dataKey: string;\n @Input()\n concatFields: FormField[];\n @Input()\n searchTitle: string;\n @Input()\n formGroup: FormGroup;\n @Input()\n controlName: string;\n @Input()\n multiple: boolean;\n @Input()\n endpoint: string;\n @Input()\n lookupDisplayField: string;\n @Input()\n searchTotalRecordsLabel = 'hcm.payroll.lookup_search_total_records_label';\n @Input()\n filterLabel = 'hcm.payroll.lookup_generic_filter_label';\n @Input()\n clearLabel = 'hcm.payroll.lookup_generic_clean_filter_label';\n @Input()\n cancelLabel = 'hcm.payroll.lookup_generic_btn_cancel_label';\n @Input()\n selectLabel = 'hcm.payroll.lookup_btn_select_label';\n @Input()\n lookupEmptyMessage = 'hcm.payroll.lookup_auto_complete_empty_message';\n @Input()\n searchTotalRecords: number;\n @Input()\n lookupSuggestions: any[] = [];\n @Input()\n searchGridFields: FormField[] = [];\n @Input()\n searchLookupFields: string[] = [];\n @Input()\n searchGridData: FormField[] = [];\n @Input()\n searchFields: any[] = [];\n @Input()\n parameters: EntityODataParameter[] = [];\n @Output()\n onSelect: EventEmitter<any> = new EventEmitter();\n @Output()\n onClear: EventEmitter<any> = new EventEmitter();\n @Output()\n modelChange: EventEmitter<any> = new EventEmitter();\n private _httpParams: HttpParams = new HttpParams();\n private _model: any;\n private ngUnsubscribe = new Subject();\n\n constructor(private lookupService: LookupService) {}\n\n ngOnInit() {}\n\n ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n lookupRequest(event) {\n this.generateLookupParameters(event);\n this.configHttpParamsPagination('10', '0');\n this.getDataLookup(this.endpoint, this.httpParams)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(data => (this.lookupSuggestions = data && [...data.contents]));\n }\n\n searchRequest(event: any) {\n this.generateGridParameters(event.filterData);\n this.configHttpParamsPagination(event.rows.toString(), Math.floor(event.first / event.rows).toString());\n this.configHttpParamsOrderBy(event.multiSortMeta);\n this.getDataLookup(this.endpoint, this.httpParams)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(data => (this.searchGridData = data && [...data.contents]));\n }\n\n /**\n *\n * @param endpoint Busca e faz o tratamento dos dados do lookup.\n * @param httpParams HttpParams\n */\n private getDataLookup(endpoint: string, httpParams: HttpParams) {\n return this.lookupService.getDataLookup(this.endpoint, this.httpParams).pipe(\n map((payload: any) => {\n const { totalElements, contents } = payload;\n this.searchTotalRecords = totalElements;\n\n if (this.concatFields && this.concatFields.length) {\n contents.map(value => {\n this.convertGridFieldValue(value);\n value[this.lookupDisplayField] = this.generateDisplayFieldValue({ ...value });\n });\n }\n\n return payload;\n })\n );\n }\n\n /**\n * Converte o valor do campo para apresentação no lookup.\n *\n * @param content Valor do campo para conversão.\n * @param field FormField do campo.\n */\n private convertLookupFieldValue(content: any, field: FormField): any {\n if (content) {\n switch (field.type) {\n case FieldType.Date:\n content = moment(content).format('L');\n break;\n case FieldType.Enum:\n const enumValue = field.options.filter((enumeration: any) => enumeration.value === content)[0];\n content = enumValue ? enumValue.label : content;\n break;\n }\n }\n\n return content;\n }\n\n /**\n * Converte os dados para visualização na grid\n * @param content\n */\n private convertGridFieldValue(content: any): void {\n if (content) {\n this.searchGridFields.forEach((field: FormField) => {\n switch (field.type) {\n case FieldType.Enum:\n const enumValue = field.options.filter((enumeration: any) => enumeration.value === content[field.name])[0];\n content[field.name] = enumValue ? enumValue.label : content[field.name];\n break;\n }\n });\n }\n }\n\n /**\n * Faz a concatenação de valores do registro para ser apresentado no lookup ao selecionar o dado.\n * @param contentValue Valor do registro.\n */\n private generateDisplayFieldValue(contentValue: any): string {\n let displayField = '';\n\n this.concatFields.forEach((field: FormField) => {\n const fieldValue = this.convertLookupFieldValue(contentValue[field.name], field);\n if (fieldValue) {\n if (displayField) {\n displayField += ` - ${fieldValue}`;\n } else {\n displayField = fieldValue;\n }\n }\n });\n return displayField;\n }\n\n /**\n * Gera os parametros de pesquisa via lookup\n * @param value\n */\n private generateLookupParameters(value?: string): void {\n let lookupParameters = '';\n this.searchLookupFields.forEach((lookupField: string) => {\n const searchField = this.searchFields.filter(field => lookupField === field.name)[0];\n if (lookupParameters) {\n lookupParameters += ` or ${this.getParameterByType(searchField.type, lookupField, value)}`;\n } else {\n lookupParameters = `${this.getParameterByType(searchField.type, lookupField, value)}`;\n }\n });\n\n this.parameters.forEach((parameter: EntityODataParameter) => {\n if (lookupParameters) {\n lookupParameters += ` and ${parameter.toString()}`;\n } else {\n lookupParameters = `${parameter.toString()}`;\n }\n });\n\n this.httpParams = new HttpParams().set('filter', lookupParameters);\n }\n\n /**\n * Gera os parametros de pesquisa via pesquisa na grid\n * @param filterData\n */\n private generateGridParameters(filterData: object): void {\n let gridParameters = '';\n Object.keys(filterData).forEach((attribute: string) => {\n if (filterData[attribute]) {\n const searchField = this.searchFields.filter(field => attribute === field.name)[0];\n if (gridParameters) {\n gridParameters += ` and ${this.getParameterByType(searchField.type, attribute, filterData[attribute])}`;\n } else {\n gridParameters += this.getParameterByType(searchField.type, attribute, filterData[attribute]);\n }\n }\n });\n\n this.parameters.forEach((parameter: EntityODataParameter) => {\n if (gridParameters) {\n gridParameters += ` and ${parameter.toString()}`;\n } else {\n gridParameters = `${parameter.toString()}`;\n }\n });\n\n this.httpParams = new HttpParams().set('filter', gridParameters);\n }\n\n /**\n * Gera a string de consulta CRUD de um campo.\n * @param type Tipo do campo.\n * @param attribute Nome do atribute da entidade\n * @param value Valor do campo\n */\n private getParameterByType(type: FieldType, attribute: string, value: any): string {\n switch (type) {\n case FieldType.Date:\n return `${attribute} eq '${moment(value).format('YYYY-MM-DD')}'`;\n case FieldType.Enum:\n return `${attribute} eq '${value}'`;\n case FieldType.Integer:\n return `${attribute} eq ${value}`;\n case FieldType.Autocomplete:\n return `${attribute} eq ${value.id}`;\n default:\n return `containing(lower(${attribute}), lower('${value}'))`;\n }\n }\n\n /**\n *\n * @param size a quantidade de registros na página.\n * @param offset o número da página a ser recuperada, lembrando que a numeração de páginas começa em 0 (zero).\n */\n private configHttpParamsPagination(size: string, offset: string): void {\n this.httpParams = this.httpParams.set('size', size);\n this.httpParams = this.httpParams.set('offset', offset);\n }\n\n /**\n * Gera o orderby do HttpParams\n */\n private configHttpParamsOrderBy(multiSortMeta: { field: string; order: number }[]): void {\n if (multiSortMeta && multiSortMeta.length) {\n let orderBy = '';\n multiSortMeta.map(value => {\n if (orderBy) {\n orderBy += `,${value.field}+${value.order === 1 ? 'asc' : 'desc'}`;\n } else {\n orderBy += `${value.field}+${value.order === 1 ? 'asc' : 'desc'}`;\n }\n });\n\n this.httpParams = this.httpParams.set('orderby', orderBy);\n }\n }\n\n set httpParams(value: HttpParams) {\n this._httpParams = value;\n }\n\n get httpParams() {\n return this._httpParams;\n }\n\n set model(value: any) {\n this._model = value;\n this.modelChange.emit(value);\n }\n\n @Input()\n get model() {\n return this._model;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { DynamicFormModule } from '@seniorsistemas/angular-components';\n\nimport { LookupComponent } from './lookup.component';\nimport { LookupService } from './lookup.service';\n\n@NgModule({\n imports: [CommonModule, FormsModule, DynamicFormModule, ReactiveFormsModule, TranslateModule],\n declarations: [LookupComponent],\n exports: [LookupComponent],\n providers: [LookupService],\n})\nexport class LookupModule {}\n","import { Injectable } from '@angular/core';\nimport { HttpClientService } from '../shared/http-client.service';\nimport { CoreFieldType } from '../../core/enums/coreFieldType';\nimport { FieldType } from '@seniorsistemas/angular-components';\nimport * as _moment from 'moment';\nimport { map } from 'rxjs/operators';\nimport { ServiceType } from '../../core/enums/serviceType';\n\n\nconst moment = _moment;\n\n@Injectable()\nexport class AutocompleteService {\n\n constructor(private httpClienteService: HttpClientService) { }\n\n public getAutoComplete(entity: string, params: object, searchFields: any, codeIsString: boolean, service: ServiceType) {\n const getParams = this.generateGridParameters(params, searchFields, codeIsString);\n return this.httpClienteService.getAutoComplete(entity, getParams, service)\n .pipe(map((result) => result && result.contents));\n }\n\n public getAutoCompleteQuery(query: string, params: object) {\n return this.httpClienteService.query(query, params)\n .pipe(map((data) => data && data.result));\n }\n\n /**\n * Gera os parametros de pesquisa via pesquisa na grid\n * @param filterData\n */\n private generateGridParameters(filterData: object, searchFields: any, codeIsString: boolean): string {\n let gridParameters = \"\";\n Object.keys(filterData).forEach((attribute: string) => {\n const filterSearchField = searchFields && searchFields.filter(field => attribute === field.name)[0];\n let filterQueryString = null;\n let operatorsQuery = \"\";\n let searchField: any = filterSearchField && filterSearchField.type;\n if (!filterSearchField && attribute != CoreFieldType.searchValue) searchField = FieldType.String;\n if (!filterSearchField && attribute === CoreFieldType.searchValue) searchField = CoreFieldType.searchValue;\n if (gridParameters) operatorsQuery = \" and \";\n filterQueryString = this.getParameterByType(searchField, attribute, filterData[attribute], codeIsString);\n if (filterQueryString) gridParameters += ` ${operatorsQuery} ${filterQueryString}`;\n });\n return gridParameters;\n }\n\n /**\n * Gera a string de consulta CRUD de um campo.\n * @param type Tipo do campo.\n * @param attribute Nome do atribute da entidade\n * @param value Valor do campo\n */\n private getParameterByType(type: any, attribute: string, value: any, codeIsString: boolean): string {\n if (!value && type != CoreFieldType.searchValue) return `${attribute} is null`;\n if (value && value === 'not null' && type != CoreFieldType.searchValue) return `${attribute} is not null`;\n switch (type) {\n case FieldType.Date:\n return `${attribute} eq '${moment(value).format('YYYY-MM-DD')}'`;\n case FieldType.Enum:\n return `${attribute} eq '${value}'`;\n case FieldType.Integer:\n return `${attribute} eq ${value}`;\n case FieldType.Autocomplete:\n return `${attribute} eq '${value.id}'`;\n case CoreFieldType.searchValue:\n return `${this.getParameterBySearchType(value, codeIsString)}`;\n default:\n return this.getSearchFilterString(attribute, value);\n }\n }\n\n /**\n * Retorna o filtro formatador para ser chamdo no endpoint\n * @param valueFilterSearch valor pra adicionar no filtro\n */\n private getParameterBySearchType(valueFilterSearch: any, codeIsString: boolean): string {\n let searchFilter = \"\";\n if (valueFilterSearch) {\n for (const [key, value] of Object.entries(valueFilterSearch)) {\n if (key === \"code\" && Number(value)) {\n const hasQuote = codeIsString ? \"'\" : \"\";\n if (searchFilter)\n searchFilter += ` or ${key} eq ${hasQuote}${value}${hasQuote}`;\n else\n searchFilter += `${key} eq ${hasQuote}${value}${hasQuote}`;\n } else if (key != \"code\") {\n if (searchFilter)\n searchFilter += ` or ${this.getSearchFilterString(key, value)}`;\n else\n searchFilter += this.getSearchFilterString(key, value);\n }\n }\n searchFilter = searchFilter ? `(${searchFilter})` : '';\n }\n return searchFilter;\n }\n\n /**\n * Formata o filtro quando for \"Ou\"\n * @param attribute\n * @param value\n */\n private getSearchFilterString(attribute: string, value: any): string { return `containing(lower(${attribute}), lower('${value}'))`; }\n\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { FieldType, FormField } from \"@seniorsistemas/angular-components\";\nimport * as moment_ from \"moment\";\nimport { MessageService } from \"primeng/api\";\nimport { Observable, throwError } from \"rxjs\";\nimport { map, catchError } from \"rxjs/operators\";\nimport { PaginationData } from \"../../core/interfaces\";\n\nconst moment = moment_;\n\n@Injectable()\nexport class LookupService {\n\n private concatFields: any;\n private concatOtherFields: any;\n private lookupDisplayField: string;\n private httpPostParams: any;\n private page: PaginationData;\n\n constructor(private http: HttpClient, private messageService: MessageService, private translateService: TranslateService) {\n }\n\n\n lookupRequestPost(httpPostParams: any, endpoint: string, concatFields: Array<FormField> = null, lookupDisplayField: string) {\n this.httpPostParams = httpPostParams;\n this.postConfigPageSize(httpPostParams);\n this.lookupDisplayField = lookupDisplayField;\n this.concatFields = concatFields;\n return this.postDataLookup(endpoint);\n }\n\n postConfigPageSize(httpPostParams: any) {\n if (httpPostParams) {\n this.httpPostParams.page.size = httpPostParams.page && httpPostParams.page.size ? httpPostParams.page.size : 10;\n this.httpPostParams.page.current = httpPostParams.page && httpPostParams.page.current ? httpPostParams.page.current : 0;\n }\n }\n\n /**\n * POST\n * @param endpoint Busca e faz o tratamento dos dados do lookup.\n * @param httpParams HttpParams\n */\n private postDataLookup(endpoint) {\n return this.postUrlDataLookup(endpoint, this.httpPostParams).pipe(\n map((payload: any) => {\n const { contents } = payload;\n\n if (this.concatFields && this.concatFields.length) {\n contents.map(value => {\n if (this.concatOtherFields) {\n this.convertGridFieldValue(value);\n }\n value[this.lookupDisplayField] = this.generateDisplayFieldValue({ ...value });\n });\n }\n\n return payload;\n }),\n );\n }\n\n /**\n * Converte o valor do campo para apresentação no lookup.\n *\n * @param content Valor do campo para conversão.\n * @param field FormField do campo.\n */\n private convertLookupFieldValue(content: any, field: FormField): any {\n if (content) {\n switch (field.type) {\n case FieldType.Date:\n content = moment(content).format(\"L\");\n break;\n case FieldType.Enum:\n const enumValue = field.options.filter((enumeration: any) => enumeration.value === content)[0];\n content = enumValue ? enumValue.label : content;\n break;\n }\n }\n\n return content;\n }\n\n /**\n * Converte os dados para visualização na grid\n * @param content\n */\n private convertGridFieldValue(content: any): void {\n if (content) {\n this.concatOtherFields.forEach((field: FormField) => {\n switch (field.type) {\n case FieldType.Enum:\n const enumValue = field.options.filter((enumeration: any) => enumeration.value === content[field.name])[0];\n content[field.name] = enumValue ? enumValue.label : content[field.name];\n break;\n }\n });\n }\n }\n\n /**\n * Faz a concatenação de valores do registro para ser apresentado no lookup ao selecionar o dado.\n * @param contentValue Valor do registro.\n */\n private generateDisplayFieldValue(contentValue: any): string {\n let displayField = \"\";\n\n this.concatFields.forEach((field: FormField) => {\n const fieldValue = this.convertLookupFieldValue(contentValue[field.name], field);\n if (fieldValue) {\n if (displayField) {\n displayField += ` - ${ fieldValue }`;\n } else {\n displayField = fieldValue;\n }\n }\n });\n return displayField;\n }\n\n private postUrlDataLookup(endpoint: string, httpParams: any): Observable<any> {\n if (httpParams) {\n return this.http.post(`${ endpoint }`, { ...httpParams })\n .pipe(\n catchError((exception: any): any => {\n if (exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n } else {\n return this.http.post(`${ endpoint }`, {})\n .pipe(\n catchError((exception: any): any => {\n if (exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n }\n}\n","export class WorkstationgroupLookupDto {\n private code?: string;\n private name?: string;\n private companyId?: string;\n private companyBranchId?: string;\n private departmentId?: string;\n private costcenterId?: string;\n private jobpositionIds?: any;\n private syndicateId?: string;\n private shiftId?: string;\n private workshiftId?: string;\n private workshiftGroupId?: string;\n private intervalGroupId?: string;\n private scaleTeamId?: string;\n private scaleCategoryId?: string;\n private employmentRelationshipId?: string;\n private contractType?: string;\n private expenseNatureId?: string;\n private allowDeficient?: string;\n private disabilityIds?: any;\n private listExpired?: boolean;\n private referenceDate?: string;\n private searchText?: string;\n private manager: string;\n private page: any;\n\n constructor(payload: any, referenceDate?: string) {\n const { filterData } = payload;\n this.name = filterData.name || null;\n this.code = filterData.code || null;\n this.searchText = filterData.searchText || null;\n this.companyId = filterData.headoffice || null;\n this.companyBranchId = filterData.branchoffice && filterData.branchoffice.id || null;\n this.departmentId = filterData.department && filterData.department.tableId || null;\n this.costcenterId = filterData.costcenter && filterData.costcenter.id || null;\n this.jobpositionIds = filterData.jobposition || null;\n this.syndicateId = filterData.syndicate && filterData.syndicate.id || null;\n this.shiftId = filterData.workshiftScale || null;\n this.workshiftId = filterData.workshiftId && filterData.workshiftId.id || null;\n this.workshiftGroupId = filterData.workshiftGroupId && filterData.workshiftGroupId.id || null;\n this.intervalGroupId = filterData.intervalGroupId && filterData.intervalGroupId.is || null;\n this.scaleTeamId = filterData.scaleTeamId && filterData.scaleTeamId.id || null;\n this.scaleCategoryId = filterData.scaleCategoryId && filterData.scaleCategoryId.id || null;\n this.employmentRelationshipId = filterData.employmentRelationshipId && filterData.employmentRelationshipId.id || null;\n this.contractType = filterData.contractType || null;\n this.expenseNatureId = filterData.expenseNatureId && filterData.expenseNatureId.id || null;\n this.allowDeficient = filterData.allowDeficient || null;\n this.disabilityIds = filterData.disabilityIds || null;\n this.listExpired = filterData.hasOwnProperty('listExpired') ? filterData.listExpired : false;\n this.manager = filterData.manager ? filterData.manager.tableId : null;\n this.referenceDate = referenceDate || null;\n this.page = {\n current: payload.first ? payload.first : 0,\n size: payload.rows ? payload.rows : 10\n } || null;\n\n }\n\n getToFilter() {\n const objDTO = this;\n objDTO.jobpositionIds = this.convertListIds(this.jobpositionIds);\n objDTO.disabilityIds = this.convertListIds(this.disabilityIds);\n return objDTO;\n }\n\n\n convertListIds(list: any) {\n if (list)\n return list.map((index: any) => {\n if (index.tableId)\n return index.tableId;\n else\n return index.id;\n });\n }\n\n}\n","import {\n Component,\n OnDestroy,\n OnInit,\n ViewChild,\n ElementRef,\n Input,\n Output,\n EventEmitter,\n AfterViewInit,\n ChangeDetectorRef,\n} from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { FieldType, FormField } from \"@seniorsistemas/angular-components\";\nimport * as moment_ from \"moment\";\nimport { now } from \"moment\";\nimport { Subject, BehaviorSubject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { ServiceType } from \"../../core/enums\";\nimport { invertFieldDate, getNowDate } from \"../utils/helpers\";\nimport { AutocompleteService } from \"./autocomplete.service\";\nimport { LookupService } from \"./lookup.service\";\nimport { WorkstationgroupLookupDto } from \"./workstationgroup-lookup.dto\";\n\nconst moment = moment_;\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: \"c-workstationgroup-lookup\",\n templateUrl: \"./workstationgroup-lookup.component.html\",\n})\nexport class WorkstationgroupLookupComponent implements OnInit, OnDestroy, AfterViewInit {\n\n @ViewChild(\"workstationgroupEl\", { static: false })\n workstationgroupEl: ElementRef;\n\n @Input()\n public currentCompanyId: string = null;\n @Input()\n public currentCompanyName: string = null;\n @Input()\n public hireDate: string;\n @Input()\n public dateFormat: string;\n @Input()\n public required: boolean;\n @Input()\n public disabled: boolean;\n @Input()\n public form: FormGroup;\n @Input()\n public name: string;\n\n @Output()\n public onSelect: EventEmitter<any> = new EventEmitter();\n @Output()\n public onClear: EventEmitter<any> = new EventEmitter();\n @Output()\n public onBlur: EventEmitter<any> = new EventEmitter();\n\n private companyBranchId: string = null;\n\n public lookupSuggestions: any[] = [];\n public searchGridData: FormField[] = [];\n public suggestionsObservable: BehaviorSubject<any> = new BehaviorSubject([]);\n public totalRecords: number = 0;\n private valueEnumShift = [\n {\n label: this.translate.instant(\"hcm.payroll.enum_WorkshiftScale_FIRST_SHIFT\"),\n value: \"0\",\n enum: \"FIRST_SHIFT\",\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_WorkshiftScale_SECOND_SHIFT\"),\n value: \"1\",\n enum: \"SECOND_SHIFT\",\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_WorkshiftScale_THIRD_SHIFT\"),\n value: \"2\",\n enum: \"THIRD_SHIFT\",\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_WorkshiftScale_FOURTH_SHIFT\"),\n value: \"3\",\n enum: \"FOURTH_SHIFT\",\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_WorkshiftScale_MIXED\"),\n value: \"4\",\n enum: \"MIXED\",\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_WorkshiftScale_GENERAL\"),\n value: \"5\",\n enum: \"GENERAL\",\n },\n ];\n private concatFieldsName = [\n new FormField({\n name: \"code\",\n label: this.translate.instant(\"hcm.payroll.code\"),\n type: FieldType.String,\n }),\n new FormField({\n name: \"name\",\n label: this.translate.instant(\"hcm.payroll.employees_addition_workstation\"),\n type: FieldType.String,\n }),\n ];\n\n private concatName = [\n new FormField({\n name: \"code\",\n label: this.translate.instant(\"hcm.payroll.code\"),\n type: FieldType.String,\n }),\n ];\n public gridFields = [\n new FormField({\n name: \"name\",\n label: this.translate.instant(\"hcm.payroll.employees_addition_workstation\"),\n type: FieldType.String,\n }),\n new FormField({\n name: \"manager\",\n label: this.translate.instant(\"hcm.payroll.workstation_form_lookup_search_manager_label\"),\n type: FieldType.String,\n }),\n ];\n public searchFields = [\n ...this.concatName,\n {\n name: \"name\",\n label: this.translate.instant(\"hcm.payroll.movimentation_name\"),\n type: FieldType.String,\n },\n {\n name: \"headoffice\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.employees_company\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"companyname\",\n },\n {\n name: \"branchoffice\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.employees_addition_branch\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n onRemove: () => this.companyBranchId = null,\n onSelect: ({ id }: { id: string }) => this.companyBranchId = id,\n onSearch: (val: string) => {\n this.getAutocomplete(\n \"company\",\n val ? { companyname: val, code: val } : null,\n \"code\", \"companyname\",\n { headquarter: this.currentCompanyId ? this.currentCompanyId : \"not null\" },\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"companyname\",\n },\n {\n name: \"manager\",\n type: FieldType.Autocomplete,\n multiple: false,\n label: this.translate.instant(\"hcm.payroll.workstation_form_lookup_search_manager_label\"),\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocompleteQuery(\n \"autocompleteManager\",\n {\n valueSearch: val ? val : \"\",\n companyId: {tableId: this.currentCompanyId},\n companyBranchId: {tableId: this.companyBranchId ? this.companyBranchId : \"\"},\n },\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"manager\",\n },\n {\n name: \"department\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.movimentation_historical_department_tab\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocompleteQuery(\n \"autocompleteDepartmentQuery\",\n {\n searchText: val ? val : \"\",\n companyId: this.currentCompanyId,\n referenceDate: moment(now()).format(\"YYYY-MM-DD\"),\n },\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"name\",\n },\n {\n name: \"costcenter\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.employees_addition_cost_center\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocomplete(\n \"costcenter\",\n val ? { name: val, code: val } : null,\n \"code\", \"name\",\n this.currentCompanyId ? { company: this.currentCompanyId } : null,\n true,\n ServiceType.ORGANIZATION_REGISTER,\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"name\",\n },\n {\n name: \"jobposition\",\n type: FieldType.Autocomplete,\n multiple: true,\n label: this.translate.instant(\"hcm.payroll.movimentation_historical_job_position_tab\"),\n dataKey: \"tableId\",\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocompleteQuery(\n \"autocompleteJobpositionQuery\",\n {\n searchText: val ? val : \"\",\n companyId: this.currentCompanyId,\n creationDate: moment().format(\"YYYY-MM-DD\"),\n expirationDate: moment().format(\"YYYY-MM-DD\"),\n },\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"name\",\n },\n {\n name: \"syndicate\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.employees_addition_syndicate\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocomplete(\n \"syndicate\",\n val ? { name: val, code: val } : null,\n \"code\", \"name\",\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"name\",\n },\n {\n name: \"workshiftScale\",\n type: FieldType.Enum,\n label: this.translate.instant(\"hcm.payroll.SHIFT\"),\n showClear: true,\n size: { md: 12 },\n onChange: () => {\n this.resetDependenciesOfShift(true);\n },\n options: this.valueEnumShift,\n },\n {\n name: \"workshiftId\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.employees_addition_scale\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocomplete(\n \"workshift\",\n val ? { description: val, code: val } : null,\n \"code\", \"description\",\n this.workstationFilterForm.get(\"workshiftScale\").value ?\n { workshiftScale: this.valueEnumShift[this.workstationFilterForm.get(\"workshiftScale\").value].enum } : null,\n );\n },\n onSelect: () => {\n this.resetDependenciesOfShift();\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"description\",\n },\n {\n name: \"workshiftGroupId\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.employees_addition_workshift-group\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocomplete(\n \"workshiftGroup\",\n val ? { code: val } : null,\n \"code\", \"baseDate\",\n this.workstationFilterForm.get(\"workshiftId\").value ?\n { workshift: this.workstationFilterForm.get(\"workshiftId\").value.id } : null,\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"baseDate\",\n },\n {\n name: \"intervalGroupId\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.employees_addition_class_interval\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocomplete(\n \"intervalGroup\",\n val ? { description: val, code: val } : null,\n \"code\", \"description\",\n this.workstationFilterForm.get(\"workshiftId\").value ?\n { workshift: this.workstationFilterForm.get(\"workshiftId\").value.id } : null,\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"description\",\n },\n {\n name: \"scaleTeamId\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.employees_addition_scale_team\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocomplete(\n \"scaleTeam\",\n val ? { name: val, code: val } : null,\n \"code\", \"name\",\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"name\",\n },\n {\n name: \"scaleCategoryId\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.employees_addition_scale_category\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocomplete(\n \"scaleCategory\",\n val ? { name: val, code: val } : null,\n \"code\", \"name\",\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"name\",\n },\n {\n name: \"employmentRelationshipId\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.employees_addition_employment_relationship\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocomplete(\n \"employmentRelationship\",\n val ? { name: val, code: val } : null,\n \"code\", \"name\",\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"name\",\n },\n {\n name: \"contractType\",\n type: FieldType.Enum,\n label: this.translate.instant(\"hcm.payroll.employees_temporary_contract_temporary_contract_type\"),\n showClear: true,\n size: { md: 12 },\n options: [\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_Employee\"),\n value: \"0\",\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_Manager\"),\n value: 1,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_FarmWorker\"),\n value: 2,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_Retired\"),\n value: 3,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_Trainee\"),\n value: 4,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_Apprentice\"),\n value: 5,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_FixedDueDate\"),\n value: 6,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_RetiredManager\"),\n value: 7,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_PublicAgent\"),\n value: 8,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_Teacher\"),\n value: 9,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_CooperativeWorker\"),\n value: 10,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_DomesticWorker\"),\n value: 11,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_TeacherFixedDueDate\"),\n value: 12,\n },\n ],\n },\n {\n name: \"expenseNatureId\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.employees_addition_expense_nature\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocomplete(\n \"expenseNature\",\n val ? { name: val, code: val } : null,\n \"code\", \"name\",\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"name\",\n },\n {\n name: \"allowDeficient\",\n type: FieldType.Enum,\n label: this.translate.instant(\"hcm.payroll.allow_deficient\"),\n showClear: true,\n size: { md: 12 },\n options: [\n {\n label: this.translate.instant(\"hcm.payroll.enum_DecisionPcD_No\"),\n value: \"0\",\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_DecisionPcD_Also\"),\n value: 1,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_DecisionPcD_Only\"),\n value: 2,\n },\n ],\n },\n {\n name: \"disabilityIds\",\n type: FieldType.Autocomplete,\n multiple: true,\n label: this.translate.instant(\"hcm.payroll.employees_addition_disability\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n // visible: () => Number(this.workstationFilterForm.get('allowDeficient').value),\n onSearch: (val: string) => {\n this.getAutocomplete(\n \"disability\",\n val ? { name: val, code: val } : null,\n \"code\", \"name\",\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"name\",\n },\n ];\n\n private ngUnsubscribe = new Subject();\n\n constructor(\n private translate: TranslateService,\n private cd: ChangeDetectorRef,\n private autocompleteParametersService: AutocompleteService,\n private lookupParametersService: LookupService) {\n }\n\n public ngOnInit() {\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public ngAfterViewInit() {\n this.cd.detectChanges();\n const companyForm = this.workstationFilterForm.get(\"headoffice\");\n companyForm.setValue({ id: this.currentCompanyId, companyname: this.currentCompanyName });\n companyForm.disable();\n }\n\n public get workstationFilterForm() {\n return this.workstationgroupEl && this.workstationgroupEl[\"formGroupDialog\"];\n }\n\n public selectOption(option: object) {\n this.onSelect.emit(option);\n }\n\n async onClearItem(option: object) {\n await this.onClear.emit(option);\n this.form.get(this.name).reset();\n }\n\n private resetDependenciesOfShift(isShift: boolean = false): void {\n if (isShift) {\n this.workstationFilterForm.get(\"workshiftId\").reset();\n }\n this.workstationFilterForm.get(\"workshiftGroupId\").reset();\n this.workstationFilterForm.get(\"intervalGroupId\").reset();\n }\n\n public searchRequest($event: any) {\n const endpoint = \"hcm/payroll/queries/workstationgroupFilterQuery\";\n const company = this.workstationFilterForm.get(\"headoffice\");\n const isLookupOpen: boolean = $event && $event.filterData;\n company.setValue({\n id: this.currentCompanyId,\n companyname: this.currentCompanyName,\n });\n\n $event = { ...this.getValueEvent($event, isLookupOpen)};\n\n const referenceDate = this.getHireDate().replace(/\\'/g, \"\");\n const filter = new WorkstationgroupLookupDto($event, referenceDate);\n this.lookupParametersService.lookupRequestPost(filter.getToFilter(), endpoint, [...this.concatFieldsName], \"name\")\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((data: any) => {\n if (isLookupOpen) {\n this.searchGridData = data && [...data.contents];\n } else {\n this.lookupSuggestions = data && [...data.contents];\n }\n this.totalRecords = data && data.totalPages;\n });\n }\n\n private getValueEvent($event: any, isLookupOpen: boolean): Object {\n if (isLookupOpen) {\n $event.filterData.headoffice = this.currentCompanyId;\n } else {\n $event = {\n filterData: {\n headoffice: this.currentCompanyId,\n searchText: $event\n },\n };\n }\n return $event;\n }\n\n private getAutocompleteQuery(nameQuery: string, searchValue: object) {\n this.autocompleteParametersService.getAutoCompleteQuery(nameQuery, searchValue)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((data: any) => {\n if (nameQuery === \"autocompleteDepartmentQuery\") {\n data.filter((field: any) => {\n if (field.fields && field.fields[0]) {\n field[\"name\"] = `${ field.fields[1].value } - ${ field.fields[0].value }`;\n }\n });\n } else if (nameQuery === \"autocompleteJobpositionQuery\") {\n data.filter((field: any) => {\n if (field.fields && field.fields[0] && field.fields[1]) {\n field[\"name\"] = `${ field.fields[0].value } - ${ field.fields[1].value }`;\n }\n });\n } else if (nameQuery === \"autocompleteManager\") {\n data.map((field: any) => {\n field[\"manager\"] = field.fields[0].value ? field.fields[0].value : field.fields[3].value;\n });\n }\n\n this.suggestionsObservable.next(data);\n });\n }\n\n private getAutocomplete(\n nameEntity: string,\n searchValue: object,\n concatOtherFields: string,\n nameFieldConcat: string,\n additionalParams: object = null,\n codeIsString: boolean = false,\n service: ServiceType = ServiceType.PAYROLL,\n ) {\n this.autocompleteParametersService.getAutoComplete(\n nameEntity, {\n ...additionalParams,\n searchValue: { ...searchValue },\n }, this.searchFields, codeIsString, service)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((data: any) => {\n if (nameEntity === \"workshiftGroup\") {\n data.filter((filterData: any) => {\n if (filterData.baseDate) {\n const dateIsMoment = moment(filterData.baseDate, \"YYYY-MM-DD\");\n if (dateIsMoment.isValid()) {\n return filterData.baseDate = dateIsMoment.format(this.dateFormat);\n }\n }\n });\n }\n this.suggestionsObservable.next(this.getConcatFields(data, concatOtherFields, nameFieldConcat));\n });\n }\n\n private getConcatFields(data: any, concatOtherFields: string, nameFieldConcat: string) {\n if (nameFieldConcat && concatOtherFields) {\n data.filter((field: any) => {\n field[nameFieldConcat] = `${ field[concatOtherFields] } - ${ field[nameFieldConcat] }`;\n });\n }\n return data;\n }\n\n public getHireDate() {\n const momentHireDate = moment(this.hireDate).format(this.dateFormat);\n return momentHireDate ? `'${ invertFieldDate(momentHireDate, this.dateFormat) }'` : `'${ getNowDate() }'`;\n }\n\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { DynamicFormModule } from \"@seniorsistemas/angular-components\";\nimport { AutocompleteService } from \"./autocomplete.service\";\nimport { LookupService } from \"./lookup.service\";\n\nimport { WorkstationgroupLookupComponent } from \"./workstationgroup-lookup.component\";\n\n@NgModule({\n imports: [FormsModule, DynamicFormModule, ReactiveFormsModule, CommonModule, TranslateModule],\n declarations: [WorkstationgroupLookupComponent],\n exports: [WorkstationgroupLookupComponent],\n providers: [AutocompleteService, LookupService],\n})\nexport class WorkstationgroupLookupModule {\n}\n","import {\n Component,\n OnInit,\n ViewChild,\n Input,\n ChangeDetectorRef,\n AfterViewInit,\n OnDestroy, EventEmitter,\n} from \"@angular/core\";\nimport { FormGroup, FormBuilder } from \"@angular/forms\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { CustomFieldsComponent, NumberLocaleOptions } from \"@seniorsistemas/angular-components\";\nimport { ConfirmationService } from \"primeng/api\";\nimport { compareValues, isValid, mountCustomToSave } from \"../utils/helpers\";\nimport { DirectionEnumeration } from \"../../core/enums\";\nimport { Subject } from \"rxjs\";\n\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: \"c-historical-bank-account\",\n templateUrl: \"./historical-bank-account.component.html\",\n styleUrls: [\"./historical-bank-account.component.scss\"],\n})\nexport class HistoricalBankAccountComponent implements OnInit, OnDestroy, AfterViewInit {\n @ViewChild(CustomFieldsComponent, { static: false })\n public customFields: CustomFieldsComponent;\n @Input()\n public formGroup: FormGroup;\n @Input()\n public fieldFormGroup: string;\n @Input()\n public _dateWhen: string;\n @Input()\n public _displayDateWhen: string;\n @Input()\n public recordByRow: number = 1;\n @Input()\n public showDateWhen: boolean = false;\n @Input()\n public msgTooltipAdd: string;\n @Input()\n public isEditMode: boolean = false;\n @Input()\n public isViewMode: boolean = false;\n @Input()\n public currency: NumberLocaleOptions;\n @Input()\n public customEntity: string;\n @Input()\n public customService: string;\n @Input()\n public withSideBar: boolean = true;\n\n private visibleChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n private ngUnsubscribe = new Subject();\n private historicalBankAccountList: FormGroup;\n private orderBy: { field: string; direction: DirectionEnumeration } = {\n field: \"displayDateWhen\",\n direction: DirectionEnumeration.DESC,\n };\n\n private _visible: boolean;\n public bankAccountItemInput: object = {};\n public totalRecords: number = 0;\n public actionLabel: string = this.translateService.instant(\"hcm.payroll.entries_query_actions_total_title\");\n public loading = true;\n public parameters: any;\n public msgTotalLimitByPercentage: string;\n public listData: object[] = [];\n public listDataNoPage: object[] = [];\n public cols = [\n {\n label: this.translateService.instant(\"hcm.payroll.historical_bank_account_label_date_when\"),\n field: \"displayDateWhen\",\n },\n {\n label: this.translateService.instant(\"hcm.payroll.historical_bank_account_label_bank\"),\n field: \"bank\",\n },\n {\n label: this.translateService.instant(\"hcm.payroll.historical_bank_account_label_bank_branch\"),\n field: \"bankBranch\",\n },\n {\n label: this.translateService.instant(\"hcm.payroll.historical_bank_account_label_account_type\"),\n field: \"accountType\",\n },\n {\n label: this.translateService.instant(\"hcm.payroll.historical_bank_account_label_account\"),\n field: \"bankAccount\",\n },\n {\n label: this.translateService.instant(\"hcm.payroll.historical_bank_account_label_digit\"),\n field: \"digit\",\n },\n {\n label: this.translateService.instant(\"hcm.payroll.historical_bank_account_label_percentage\"),\n field: \"percentage\",\n },\n ];\n actions = (rowData: any = {}, key: any) => {\n return [\n {\n visible: this.isEditMode,\n label: this.translateService.instant(\"hcm.payroll.employees_image_cropper_view\"),\n command: () => {\n rowData[\"index\"] = key;\n this.bankAccountItemInput = { currentItem: rowData, listData: this.listDataNoPage, isEditMode: false };\n this.visible = true;\n },\n },\n {\n visible: !!(!this.isEditMode && this.withSideBar),\n label: this.translateService.instant(\"hcm.payroll.edit\"),\n command: () => {\n rowData[\"index\"] = key;\n this.bankAccountItemInput = { currentItem: rowData, listData: this.listDataNoPage, isEditMode: true };\n this.visible = true;\n },\n },\n {\n visible: !this.isEditMode,\n label: this.translateService.instant(\"hcm.payroll.delete\"),\n command: () => {\n this.loading = true;\n this.deleteAnnuityItem(key);\n },\n },\n ];\n }\n\n constructor(\n private confirmationService: ConfirmationService,\n private translateService: TranslateService,\n private activatedRoute: ActivatedRoute,\n private cd: ChangeDetectorRef,\n private formBuilder: FormBuilder,\n ) {\n this.createFormGroup();\n }\n\n ngOnInit() {\n this.formGroup.setControl(this.fieldFormGroup, this.historicalBankAccountList);\n }\n\n private createFormGroup(): void {\n this.historicalBankAccountList = this.formBuilder.group({\n historicalBankAccountList: this.formBuilder.control(null),\n });\n }\n\n ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n\n public onLazyLoad(event?: any): void {\n const first = event && event.first ? event.first : 0;\n const rows = event && event.rows ? event.rows : this.recordByRow;\n const arrList = this.getHistoricalBankAccountList();\n this.listData = [];\n this.totalRecords = null;\n\n if (event && event.multiSortMeta && event.multiSortMeta.length) {\n event.multiSortMeta.map((value: any) => {\n this.orderBy.field = value.field;\n this.orderBy.direction = value.order === 1 ? DirectionEnumeration.ASC : DirectionEnumeration.DESC;\n });\n }\n\n if (arrList && arrList.length) {\n this.totalRecords = arrList.length;\n this.listData = arrList;\n this.listDataNoPage = [...arrList];\n this.listData.sort(compareValues(this.orderBy.field, this.orderBy.direction));\n this.listData = this.listData.slice(first, (first + rows));\n } else {\n this.listDataNoPage = [];\n }\n\n if (this.isEditMode || arrList && arrList.length === 1) {\n this.refreshCssInIE11();\n }\n\n this.loading = false;\n\n }\n\n /**\n * Um Bug de CSS que acontece nas linhas da tabela, que resolve só atualizando qualquer parte do CSS da pagina.\n */\n private refreshCssInIE11() {\n if (/msie\\s|trident\\/|edge\\//i.test(window.navigator.userAgent)) {\n setTimeout( () => {\n const row = document.getElementsByClassName(\"row0\");\n if (row && row[0])\n row[0].className = 'refresh';\n }, 1);\n }\n }\n\n public add(): void {\n this.bankAccountItemInput = {};\n this.visible = true;\n }\n\n private deleteAnnuityItem(index: number): void {\n let newlist = [...this.getHistoricalBankAccountList()];\n newlist.sort(compareValues(this.orderBy.field, this.orderBy.direction));\n delete newlist[index];\n newlist = newlist.filter(val => val);\n this.historicalBankAccountList.get(\"historicalBankAccountList\").setValue(newlist);\n this.verifyTotalPercentage();\n this.onLazyLoad();\n }\n\n public getHistoricalBankAccountList(): object[] {\n if (this.historicalBankAccountList.get(\"historicalBankAccountList\") &&\n this.historicalBankAccountList.get(\"historicalBankAccountList\").value &&\n this.historicalBankAccountList.get(\"historicalBankAccountList\").value.length)\n return this.historicalBankAccountList.get(\"historicalBankAccountList\") && this.historicalBankAccountList.get(\"historicalBankAccountList\").value;\n else\n return [];\n }\n\n public addItemInList($event: any): void {\n const index = $event && $event.index >= 0 ? $event.index : null;\n const newDataList = this.getHistoricalBankAccountList() ? this.getHistoricalBankAccountList() : [];\n\n if (index != null) {\n newDataList[index] = $event;\n delete $event.index;\n } else {\n if (isValid($event[\"customFields\"]) && Object.keys($event[\"customFields\"]).length) {\n const customValue = mountCustomToSave($event[\"customFields\"]);\n $event[\"customFields\"] = [...customValue];\n }\n $event[\"dateWhen\"] = this.dateWhen;\n newDataList.push($event);\n }\n\n\n\n this.historicalBankAccountList.get(\"historicalBankAccountList\").setValue(newDataList);\n this.verifyTotalPercentage();\n this.onLazyLoad({ first: this.getNumberPageByIndex(index, newDataList) });\n }\n\n private getNumberPageByIndex(index: number, list: object[]): number {\n if (index) {\n const total = list.length;\n const sub = this.recordByRow - 1;\n return Math.ceil(total / this.recordByRow) * this.recordByRow - sub - 1;\n }\n return null;\n }\n\n private verifyTotalPercentage(): void {\n const list = this.getHistoricalBankAccountList() ? this.getHistoricalBankAccountList() : [];\n const arrayPercentage = [];\n\n if (!list.length) return this.msgTotalLimitByPercentage = null;\n\n list.filter(item => arrayPercentage.push(item && item[\"percentage\"]));\n\n const sumPercentage = arrayPercentage.reduce((total: number, percentage: number) => {\n return total + percentage;\n }, 0);\n\n if (sumPercentage === 100) {\n this.msgTotalLimitByPercentage = this.translateService.instant(\"hcm.payroll.historical_bank_account_msg_limit_total_by_percentage\");\n } else {\n this.msgTotalLimitByPercentage = null;\n }\n\n }\n\n public get scopedActions() {\n return this.actions.bind(this);\n }\n\n public get recordsMessage() {\n return `${ this.totalRecords || 0 } ${ this.totalRecords === 1 ? this.translateService.instant(\"hcm.payroll.admission_register\") : this.translateService.instant(\"hcm.payroll.admission_registers\") }`;\n }\n\n public get getTooltipAndDisableButtonAdd() {\n return this.dateWhen ? null : this.msgTooltipAdd;\n }\n\n @Input()\n public get dateWhen(): string {\n return this._dateWhen;\n }\n\n public set dateWhen(value: string) {\n this._dateWhen = value;\n if (this._dateWhen) {\n this.listData.filter(row => row[\"dateWhen\"] = this._dateWhen);\n }\n }\n\n @Input()\n public get displayDateWhen(): string {\n return this._displayDateWhen;\n }\n\n public set displayDateWhen(value: string) {\n this._displayDateWhen = value;\n if (this._displayDateWhen) {\n this.listData.filter(row => row[\"displayDateWhen\"] = this._displayDateWhen);\n }\n }\n\n @Input()\n public set addListData(list: object[]) {\n this.loading = true;\n this.historicalBankAccountList.get(\"historicalBankAccountList\").patchValue(list);\n this.verifyTotalPercentage();\n this.onLazyLoad();\n }\n\n @Input()\n public get visible(): boolean {\n return this._visible;\n }\n\n public set visible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(this.visible);\n }\n public close(): void {\n this.visible = false;\n }\n\n}\n","import {\n Component,\n OnInit,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n OnDestroy,\n AfterViewInit,\n ViewChild,\n} from \"@angular/core\";\nimport { FormGroup, FormBuilder, Validators, ValidatorFn, AbstractControl } from \"@angular/forms\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { NumberLocaleOptions, CustomFieldsComponent } from \"@seniorsistemas/angular-components\";\nimport { Subject } from \"rxjs\";\nimport {\n verifyValidationsForm,\n clearValues,\n configEnabledFields,\n mountCustomToShow,\n} from \"../../utils/helpers\";\n\n@Component({\n selector: \"bank-account\",\n templateUrl: \"./historical-bank-account-form.component.html\",\n styleUrls: [\"../historical-bank-account.component.scss\"]\n})\nexport class HistoricalBankAccountFormComponent implements OnInit, OnDestroy, AfterViewInit {\n @ViewChild(CustomFieldsComponent, { static: true })\n customFields: CustomFieldsComponent;\n\n @Input()\n public currency: NumberLocaleOptions;\n @Input()\n public customEntity: string;\n @Input()\n public customService: string;\n @Input()\n public withSideBar: boolean = true;\n @Input()\n public isEditMode: boolean = false;\n\n @Output()\n public visibleChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output()\n public bankAccountItemToList: EventEmitter<any> = new EventEmitter<any>();\n\n private _visible: boolean;\n private ngUnsubscribe = new Subject();\n private employeeId: string;\n private bankAccountList: object[];\n private initialValidatorOfPercentage: ValidatorFn[] = [Validators.required, Validators.min(0.01)];\n private initialValidatorOfBankAccount: ValidatorFn[] = [Validators.required, Validators.maxLength(12)];\n\n\n public labelBtnAdd: string = \"hcm.payroll.employees_add\";\n public bankAccountFormGroup: FormGroup;\n public maxValuePercentage: number = 100.00;\n public visibleBtnSave: boolean = true;\n public isView: boolean = false;\n\n constructor(\n private translate: TranslateService,\n private formBuilder: FormBuilder,\n private route: ActivatedRoute,\n private cd: ChangeDetectorRef,\n ) {\n this.createFormGroup();\n this.registerSubjects();\n }\n\n /**\n * Método valida se o número atual informado na conta para o mesmo banco, agencia e tipo já foi inserido em outro registro da tabela.\n * Caso esta conta já esteja em uso por outro registro, retorna \"bankAccountDuplicate\" = true.\n * @param listCompare\n * @param accountTypeValue\n * @param bankValue\n * @param bankBranchValue\n */\n private validateDuplicateBankAccount(\n listCompare: object[],\n accountTypeValue: string,\n bankValue: string,\n bankBranchValue: string) {\n\n return (control: AbstractControl): Validators => {\n const value = control && control.value;\n let condition = false;\n listCompare.filter((item, key) => {\n if (key != item[\"index\"] && value && item[\"bank\"] && item[\"bank\"].tableId === bankValue &&\n item[\"bankBranch\"] && item[\"bankBranch\"].tableId === bankBranchValue &&\n item[\"accountType\"] && item[\"accountType\"].key === accountTypeValue &&\n Number(item[\"bankAccount\"]) === Number(value)) {\n return condition = true;\n }\n });\n\n if (condition) {\n return { bankAccountDuplicate: true };\n } else {\n return null;\n }\n };\n }\n\n ngOnInit() {\n }\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next(true);\n this.ngUnsubscribe.unsubscribe();\n }\n\n private registerSubjects(): void {\n }\n\n private createFormGroup(): void {\n this.bankAccountFormGroup = this.formBuilder.group({\n id: this.formBuilder.control(null),\n index: this.formBuilder.control(null),\n employee: this.formBuilder.control({ value: { tableId: null }, disabled: true }),\n dateWhen: this.formBuilder.control(null),\n displayDateWhen: this.formBuilder.control(null),\n bank: this.formBuilder.control(null, Validators.required),\n bankBranch: this.formBuilder.control(null, Validators.required),\n accountType: this.formBuilder.control(null, Validators.required),\n bankAccount: this.formBuilder.control(null, Validators.compose([...this.initialValidatorOfBankAccount])),\n digit: this.formBuilder.control(null, Validators.maxLength(3)),\n percentage: this.formBuilder.control(null, Validators.compose([\n ...this.initialValidatorOfPercentage,\n Validators.max(this.maxValuePercentage),\n ])),\n customFields: this.formBuilder.control(null),\n });\n }\n\n // Actions Bank\n public onSelectBank() {\n this.cleanBankInformation();\n this.beforeSetBankAccountValidator();\n }\n\n public onClearBank() {\n this.bankAccountFormGroup.get(\"bank\").reset();\n this.cleanBankInformation();\n this.beforeSetBankAccountValidator();\n }\n\n private cleanBankInformation(): void {\n const fields = [\"bankBranch\"];\n clearValues(this.bankAccountFormGroup, fields);\n }\n\n // Actions BankBranch\n public onClearBankBranch() {\n this.bankAccountFormGroup.get(\"bankBranch\").reset();\n this.beforeSetBankAccountValidator();\n }\n\n // Actions BankBranch\n public onClearAccountType() {\n this.bankAccountFormGroup.get(\"accountType\").reset();\n this.beforeSetBankAccountValidator();\n }\n\n @Input()\n public get visible(): boolean {\n return this._visible;\n }\n\n public set visible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(this.visible);\n }\n\n @Input()\n public set isEditAndViewValue(value: any) {\n this.resetForm();\n this.visibleBtnSave = true;\n if (value && value.currentItem && Object.keys(value.currentItem).length) {\n this.bankAccountFormGroup.patchValue(this.convertDTOToShowWithCustomFields({...value.currentItem}));\n this.labelBtnAdd = \"hcm.payroll.employees_update\";\n this.setValidatorsAccordingList(value.listData, value.currentItem[\"index\"]);\n if (!this.isView) {\n this.configEnableFields(value && value[\"isEditMode\"]);\n }\n } else {\n this.labelBtnAdd = \"hcm.payroll.employees_add\";\n }\n\n }\n\n public convertDTOToShowWithCustomFields(data: object): object {\n const obj = {... data};\n obj[\"customFields\"] = mountCustomToShow(obj[\"customFields\"]);\n return obj;\n }\n\n private configEnableFields(isEditMode: boolean) {\n this.visibleBtnSave = isEditMode;\n configEnabledFields(this.bankAccountFormGroup, isEditMode, [\n \"bank\",\n \"bankBranch\",\n \"accountType\",\n \"bankAccount\",\n \"digit\",\n \"percentage\",\n \"customFields\",\n ], []);\n }\n\n public close(): void {\n this.resetForm();\n this.visible = false;\n }\n\n public addItem(): void {\n this.bankAccountFormGroup.updateValueAndValidity();\n verifyValidationsForm.call(this.bankAccountFormGroup);\n\n if (this.bankAccountFormGroup.valid) {\n if (this.employeeId) {\n this.bankAccountFormGroup.get(\"employee\").setValue({\n tableId: this.employeeId,\n name: \"\",\n });\n }\n this.bankAccountItemToList.emit(this.bankAccountFormGroup.getRawValue());\n this.visible = false;\n this.resetForm();\n }\n }\n\n public resetForm(): void {\n this.bankAccountFormGroup.reset();\n this.labelBtnAdd = \"hcm.payroll.employees_add\";\n if (this.customFields && this.customFields.formGroup) this.customFields.formGroup.reset();\n }\n\n public getBankTableId() {\n return this.bankAccountFormGroup.controls.bank.value\n ? `'${ this.bankAccountFormGroup.controls.bank.value.tableId }'`\n : null;\n }\n\n\n public get percentagePlaceholder(): string {\n return `0${ this.currency && this.currency.decimalSeparator }00`;\n }\n\n public get optionsPercentage(): object {\n return { ...this.getOptions(), precision: 2 };\n }\n\n private getOptions(): any {\n return {\n prefix: \"\",\n thousands: this.currency.thousandsSeparator,\n decimal: this.currency.decimalSeparator,\n };\n }\n\n /**\n * O Input que recebe a lista do component pai e chama o método de validação passando a lista recebida.\n * @param bankAccountList\n */\n @Input()\n public set getListBankAccount(bankAccountList: object[]) {\n if (bankAccountList) {\n this.setValidatorsAccordingList(bankAccountList);\n } else {\n this.resetForm();\n }\n }\n\n /**\n * Recebe a lista de registros já inseridos na tabela adiciona em uma variável os valores que serão usados para\n * a validação dos campos \"percentage\" e \"bankAccount\".\n * Quando tem index significa que está em uma edição, os valores na posição do registro da edição (index) não serão adicionados\n * no array de comparação dos validators.\n * @param bankAccountList\n * @param index\n */\n private setValidatorsAccordingList(bankAccountList: object[], index: number = null) {\n this.bankAccountList = bankAccountList && bankAccountList.length ? [...bankAccountList] : [];\n\n const percentageIncluded = [];\n\n if (this.bankAccountList && this.bankAccountList.length) {\n this.bankAccountList.filter((field, key) => {\n if (field[\"percentage\"] && key != index) {\n percentageIncluded.push(field[\"percentage\"]);\n }\n });\n\n }\n this.beforeSetBankAccountValidator();\n this.validatePercentageValid(percentageIncluded);\n }\n\n /**\n * Antes de setar o validator prepara as variáveis necessária para que seja feita a validação do campo.\n */\n public beforeSetBankAccountValidator() {\n const bankAccount = this.bankAccountFormGroup.get(\"bankAccount\");\n\n const accountTypeValue = this.bankAccountFormGroup.get(\"accountType\") &&\n this.bankAccountFormGroup.get(\"accountType\").value &&\n this.bankAccountFormGroup.get(\"accountType\").value[\"key\"];\n\n const bankValue = this.bankAccountFormGroup.get(\"bank\") &&\n this.bankAccountFormGroup.get(\"bank\").value &&\n this.bankAccountFormGroup.get(\"bank\").value[\"tableId\"];\n\n const bankBranchValue = this.bankAccountFormGroup.get(\"bankBranch\") &&\n this.bankAccountFormGroup.get(\"bankBranch\").value &&\n this.bankAccountFormGroup.get(\"bankBranch\").value[\"tableId\"];\n\n if (bankValue &&\n bankBranchValue &&\n accountTypeValue &&\n this.bankAccountList &&\n this.bankAccountList.length) {\n\n bankAccount\n .setValidators(Validators.compose([\n ...this.initialValidatorOfBankAccount,\n this.validateDuplicateBankAccount(this.bankAccountList, accountTypeValue, bankValue, bankBranchValue),\n ]));\n bankAccount.updateValueAndValidity();\n } else {\n bankAccount\n .setValidators(Validators.compose([\n ...this.initialValidatorOfBankAccount,\n ]));\n }\n\n }\n\n /**\n * Este método calcula as parcentagens que já foram inseridas, e seta a diferença para chegar em\n * 100% na validação do campo \"percentage\" como um novo maxValue;\n * @param listValue\n */\n private validatePercentageValid(listValue: number[]) {\n const percentage = this.bankAccountFormGroup.get(\"percentage\");\n this.maxValuePercentage = listValue\n .reduce((currentValue, total) => currentValue - total,\n 100.00,\n );\n\n percentage\n .setValidators(Validators.compose([\n ...this.initialValidatorOfPercentage,\n Validators.max(this.maxValuePercentage),\n ]));\n percentage.updateValueAndValidity();\n }\n\n @Input()\n public set isViewMode(condition: boolean) {\n this.isView = !!(condition && !this.withSideBar);\n this.configEnableFields(!this.isView);\n if (!this.isView) this.resetForm();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { HttpClientService } from '../shared/http-client.service';\nimport { ServiceType } from '../../core/enums/serviceType';\n\n@Injectable()\nexport class HistoricalBankAccountService {\n constructor(private http: HttpClientService) {}\n\n query(path: string, body: object, service: ServiceType = ServiceType.PAYROLL): Observable<any> {\n return this.http.query(path, body, service);\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport {\n ButtonModule,\n LoadingStateModule,\n SidebarModule, ControlErrorsModule, CustomFieldsModule,\n} from \"@seniorsistemas/angular-components\";\nimport { CurrencyMaskModule } from \"ng2-currency-mask\";\nimport { ConfirmationService } from \"primeng/api\";\nimport { AutoCompleteModule } from \"primeng/autocomplete\";\nimport { FieldsetModule } from \"primeng/fieldset\";\nimport { InputTextModule } from \"primeng/inputtext\";\nimport { PanelModule } from \"primeng/panel\";\nimport { TableModule } from \"primeng/table\";\nimport { TooltipModule } from \"primeng/tooltip\";\nimport { CoreDirectives } from \"../directives/index\";\nimport { HistoricalBankAccountFormComponent } from \"./historical-bank-account-form/historical-bank-account-form.component\";\nimport { InputDateModule } from \"../input-date/index\";\nimport { InputRestAutoCompleteModule } from \"../input-rest-auto-complete/index\";\nimport { InputRestAutoCompleteEnumModule } from \"../input-rest-auto-complete-enum/index\";\n\nimport { SharedModule } from \"../shared/shared.module\";\nimport { HistoricalBankAccountComponent } from \"./historical-bank-account.component\";\nimport { HistoricalBankAccountService } from \"./historical-bank-account.service\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n HttpClientModule,\n AutoCompleteModule,\n SharedModule,\n ReactiveFormsModule,\n TableModule,\n ButtonModule,\n TooltipModule,\n LoadingStateModule,\n SidebarModule,\n InputDateModule,\n ControlErrorsModule,\n InputRestAutoCompleteEnumModule,\n CurrencyMaskModule,\n InputRestAutoCompleteModule,\n InputTextModule,\n CoreDirectives,\n FieldsetModule,\n CustomFieldsModule,\n PanelModule,\n ],\n declarations: [HistoricalBankAccountComponent, HistoricalBankAccountFormComponent],\n providers: [HistoricalBankAccountService, ConfirmationService],\n exports: [HistoricalBankAccountComponent],\n})\nexport class HistoricalBankAccountModule {\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { ServiceType } from '../../core/enums/serviceType';\n\nimport { HttpClientService } from \"../shared/http-client.service\";\n\n@Injectable()\nexport class HistoricalBankAccountListService {\n constructor(private http: HttpClientService, private httpClient: HttpClient) {\n }\n\n public remove(id: any, dateWhen: string, service: ServiceType = ServiceType.PAYROLL, dependentId?: string) {\n if (service === ServiceType.DEPENDENT) {\n return this.httpClient\n .post(\"hcm/dependent/queries/historicalJudicialPensionBankAccountDelete\", {\n dependentId: dependentId,\n dateWhen: dateWhen,\n });\n } else {\n return this.http.post(\"actions/historicalEmployeeBankAccountDelete\", {\n employeeId: id,\n dateWhen: dateWhen\n });\n }\n }\n\n}\n","import {\n Component,\n OnInit,\n ViewChild,\n ChangeDetectorRef,\n AfterViewInit,\n OnDestroy,\n Input,\n Output,\n EventEmitter,\n} from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { CustomFieldsComponent } from \"@seniorsistemas/angular-components\";\nimport * as moment_ from \"moment\";\nimport { ConfirmationService, MessageService } from \"primeng/api\";\nimport { ServiceType } from '../../core/enums/serviceType';\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { HistoricalBankAccountListService } from \"./historical-bank-account-list.service\";\n\nconst moment = moment_;\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: \"c-historical-bank-account-list\",\n templateUrl: \"./historical-bank-account-list.component.html\",\n styleUrls: [\"./historical-bank-account-list.component.scss\"],\n})\nexport class HistoricalBankAccountListComponent implements OnInit, OnDestroy, AfterViewInit {\n @ViewChild(CustomFieldsComponent, { static: false })\n public customFields: CustomFieldsComponent;\n\n @Input()\n public permission: object;\n @Input()\n public employeeId: string;\n @Input()\n public dependentId: string;\n @Input()\n public dateFormat: string;\n @Input()\n public endPoint: string = \"hcm/payroll/queries/historicalEmployeeBankAccountQuery\";\n @Input()\n public keyPayload: string = \"historicalEmployeeBankAccount\";\n @Input()\n public withSidebar: boolean = true;\n\n\n @Output()\n public enableView: EventEmitter<any> = new EventEmitter<any>();\n\n private lastRecord: any;\n private ngUnsubscribe = new Subject();\n public initParameters: any;\n public loading: boolean = true;\n public parameters: any;\n\n public columns = [\n {\n label: this.translateService.instant(\n \"hcm.payroll.historical_bank_account_label_date_when\",\n ),\n field: \"dateWhen\",\n },\n {\n label: this.translateService.instant(\n \"hcm.payroll.historical_bank_account_label_bank\",\n ),\n field: \"bank.name\",\n },\n {\n label: this.translateService.instant(\n \"hcm.payroll.historical_bank_account_label_bank_branch\",\n ),\n field: \"bankBranch.name\",\n },\n {\n label: this.translateService.instant(\n \"hcm.payroll.historical_bank_account_label_account\",\n ),\n field: \"bankAccount\",\n },\n {\n label: this.translateService.instant(\n \"hcm.payroll.historical_bank_account_label_percentage\",\n ),\n field: \"percentage\",\n },\n {\n label: this.translateService.instant(\n \"hcm.payroll.historical_bank_account_label_qtd_account\",\n ),\n field: \"numberOfBankAccount\",\n },\n ];\n\n constructor(\n private confirmationService: ConfirmationService,\n private translateService: TranslateService,\n private activatedRoute: ActivatedRoute,\n private cd: ChangeDetectorRef,\n private router: Router,\n private messageService: MessageService,\n private historicalBankAccountListService: HistoricalBankAccountListService,\n ) {\n }\n\n ngOnInit() {\n this.initParameters = { employeeId: this.employeeId, dependentId: this.dependentId };\n }\n\n\n ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n\n public onLazyLoad(payload: any) {\n payload.forEach((value: any) => {\n value.dateWhen = moment(value.dateWhen).format(this.dateFormat);\n });\n\n this.onGridLoad(payload);\n\n this.loading = false;\n }\n\n public getMenuActions(rowData: any) {\n return [\n {\n label: this.translateService.instant(\"hcm.payroll.employees_image_cropper_view\"),\n command: () => {\n const dateWhen = rowData && rowData.dateWhen && moment(rowData.dateWhen, this.dateFormat).format(\"YYYY-MM-DD\");\n if (this.withSidebar)\n this.router.navigate([`historical-bank-account/${ dateWhen }`], {\n relativeTo: this.activatedRoute,\n });\n else\n this.enableView.emit(dateWhen);\n },\n },\n {\n label: this.translateService.instant(\"hcm.payroll.delete\"),\n command: () => {\n if (this.isAllowToDeleteHistorical && rowData) {\n this.delete(rowData.id, rowData.dateWhen);\n } else {\n this.messageService.add({\n severity: \"error\",\n summary: this.translateService.instant(\"hcm.payroll.error\"),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n });\n }\n },\n },\n ];\n }\n\n public delete(id: any, dateWhen: string) {\n if (id === this.lastRecord.id) {\n const dateWhenToDto = moment(dateWhen, this.dateFormat).format(\"YYYY-MM-DD\");\n this.confirmationService.confirm({\n message: `${ this.translateService.instant(\n \"hcm.payroll.employees_movimentation_historical_bank_account_question_confirm_delete\",\n ) }?`,\n accept: () => {\n this.loading = true;\n const service = this.withSidebar ? ServiceType.PAYROLL : ServiceType.DEPENDENT;\n this.historicalBankAccountListService\n .remove(this.employeeId, dateWhenToDto, service, this.dependentId)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(\n () => {\n this.messageService.add({\n severity: \"success\",\n summary: this.translateService.instant(\"hcm.payroll.success\"),\n detail: this.translateService.instant(\"hcm.payroll.employees_movimentation_historical_bank_account_remove\"),\n });\n this.parameters = (this.parameters && { ...this.parameters }) || {};\n },\n () => {\n this.messageService.add({\n severity: \"error\",\n summary: this.translateService.instant(\"hcm.payroll.error\"),\n detail: this.translateService.instant(\"hcm.payroll.employees_movimentation_historical_bank_account_error_remove\"),\n });\n this.loading = false;\n },\n );\n },\n });\n } else {\n this.messageService.add({\n severity: \"error\",\n summary: this.translateService.instant(\"hcm.payroll.error\"),\n detail: this.translateService.instant(\"hcm.payroll.not_allowed_delete_last\"),\n });\n }\n }\n\n public add() {\n if (this.isAllowToAddHistorical) {\n this.router.navigate([\"historical-irrf-new\"], {\n relativeTo: this.activatedRoute,\n });\n } else {\n this.messageService.add({\n severity: \"error\",\n summary: this.translateService.instant(\"hcm.payroll.error\"),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n });\n }\n }\n\n private onGridLoad(payload: any) {\n if (payload && payload.length) {\n this.lastRecord = payload[0];\n }\n }\n\n private get isAllowToAddHistorical() {\n return (\n this.permission[\"incluir\"]\n );\n }\n\n private get isAllowToDeleteHistorical() {\n return (\n this.permission[\"excluir\"]\n );\n }\n\n public get scopedActions() {\n return this.getMenuActions.bind(this);\n }\n\n @Input()\n public set reloadList(condition: boolean) {\n if (condition) {\n this.loading = true;\n this.parameters = (this.parameters && { ...this.parameters }) || {};\n }\n }\n\n}\n","import { CommonModule } from \"@angular/common\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { ButtonModule, LoadingStateModule } from \"@seniorsistemas/angular-components\";\nimport { AutoCompleteModule } from \"primeng/autocomplete\";\nimport { ConfirmDialogModule } from \"primeng/confirmdialog\";\nimport { TableModule } from \"primeng/table\";\nimport { TooltipModule } from \"primeng/tooltip\";\nimport { DataListRestModule } from \"../data-list-rest/index\";\n\nimport { SharedModule } from \"../shared/shared.module\";\nimport { HistoricalBankAccountListComponent } from \"./historical-bank-account-list.component\";\nimport { HistoricalBankAccountListService } from \"./historical-bank-account-list.service\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n HttpClientModule,\n AutoCompleteModule,\n SharedModule,\n ReactiveFormsModule,\n TableModule,\n ButtonModule,\n TooltipModule,\n LoadingStateModule,\n DataListRestModule,\n ConfirmDialogModule,\n ],\n declarations: [HistoricalBankAccountListComponent],\n providers: [HistoricalBankAccountListService],\n exports: [HistoricalBankAccountListComponent],\n})\nexport class HistoricalBankAccountListModule {\n}\n","import { Operators } from '../enums';\n\nexport class EntityODataParameter {\n private _field: string;\n private _operation: Operators;\n private _value: any;\n\n constructor(entityODataParameter: { field: string; value: string; operation?: Operators }) {\n this.field = entityODataParameter.field;\n this.value = entityODataParameter.value;\n this.operation = entityODataParameter.operation;\n }\n\n set field(value) {\n this._field = value;\n }\n\n get field() {\n return this._field;\n }\n\n set operation(value) {\n this._operation = value;\n }\n\n get operation() {\n return this._operation;\n }\n\n set value(value) {\n this._value = value;\n }\n\n get value() {\n return this._value;\n }\n\n public toString(): string {\n if (this.operation === Operators.CONTAINING) {\n return `${this.operation}(lower(${this.field}), lower(${this.value}))`;\n }\n return `${this.field} ${this.operation || ''} ${this.value}`;\n }\n}\n","import { AbstractControl, Validators, ValidatorFn, ValidationErrors } from \"@angular/forms\";\nimport { CalendarLocaleOptions } from \"@seniorsistemas/angular-components\";\nimport * as _moment from \"moment\";\nimport { unitOfTime } from \"moment\";\nimport { CompareType } from \"../../../core/enums\";\nimport { DateValidateOptions, DateCompareOptions } from \"../../../core/interfaces\";\nimport { removeCharacteresSpecials } from \"../helpers\";\n\nconst moment = _moment;\nconst dateStartG5 = moment('31/12/1900', 'DD/MM/YYYY');\nconst dateEndG5 = moment('04/06/2080', 'DD/MM/YYYY');\n\nexport class DateValidator {\n constructor() { }\n\n /**\n * Validador que verifica se a data está no formato correto.\n * @param dateFormat Formato da data\n * @param options Opções para validar a data\n * @returns Objeto no formato { invalidDate: true } indicando que a data não é válida\n */\n static isValidDate(dateFormat: string, options?: DateValidateOptions): ValidatorFn {\n const validator: ValidatorFn = (control: AbstractControl): Validators => {\n const useG5DateRange = options && options.hasOwnProperty('useG5DateRange') ? options.useG5DateRange : true;\n const value = removeCharacteresSpecials(control.value);\n dateFormat = removeCharacteresSpecials(dateFormat);\n if (value && dateFormat && value.length === dateFormat.length && !control.value.includes('_')) {\n const dateValue = moment(value, dateFormat);\n const valid = dateValue.isValid();\n const isValidRange = useG5DateRange ? dateValue.isBetween(dateStartG5, dateEndG5, null, '[]') : true;\n return valid && isValidRange ? null : { invalidDate: true };\n }\n return null;\n };\n return validator;\n }\n /**\n * Validador que verifica se data inserida no formulário é inferior à data informada.\n * @param compareToDate Data a ser comparada.\n * @param dateFormat Informações do local\n * @param granularity Granularidade da comparação. Ex.: 'day', 'mounth', 'year'.\n * @returns Objeto no formato { lowerDate: true } indicando que a data é menor\n */\n static isDateLower(compareToDate: string, dateFormat: string, granularity: unitOfTime.StartOf = 'day'): ValidatorFn {\n const options: DateCompareOptions = { compareName: \"lowerDate\", granularity: granularity };\n const validator = this.isValidDateCompare(compareToDate, dateFormat, CompareType.isBefore, options);\n return validator;\n }\n\n /**\n * Validador genérico usando comparação entre datas\n * @param compareToDate Data a ser comparada\n * @param dateFormat Informações do local\n * @param compareType Tipo de comparação\n * @param options Opções para a comparação\n * @returns Objeto no formato { nomeChave: true } indicando que a data não é válida\n */\n static isValidDateCompare(compareToDate: string, dateFormat: string, compareType: CompareType, options?: DateCompareOptions):\n ValidatorFn {\n const validator: ValidatorFn = (control: AbstractControl): Validators => {\n const value = removeCharacteresSpecials(control.value);\n dateFormat = removeCharacteresSpecials(dateFormat);\n if (value && dateFormat && value.length === dateFormat.length && !control.value.includes('_')) {\n const referenceDate = moment(value, dateFormat);\n const compareTo = moment(compareToDate, dateFormat);\n return this.dateCompare(referenceDate, compareTo, compareType, options);\n }\n return null;\n };\n return validator;\n }\n\n /**\n * Retorna o formato da data de acordo com o local\n * @param calendar Informações de calendário\n * @param removeDayPart Remove os dias do formato da data (Opcional)\n * @returns Exemplo de retornos 'DDMMYYYY', 'MMYYYY', ou seja, retorna o formato somente com letras\n */\n static getDateFormatFromLocale(calendar: CalendarLocaleOptions, removeDayPart?: boolean): string {\n const dateFormat = calendar && calendar.dateFormat;\n if (dateFormat) {\n let result = dateFormat.replace(/[y]/g, \"YY\").replace(/[^a-zA-Z]/g, \"\").toUpperCase();\n if (removeDayPart) {\n result = result.replace(\"DD\", \"\");\n }\n return result;\n }\n return null;\n }\n\n /**\n * Retorna o formato da data/hora de acordo com o local\n * @param calendar Informações de calendário\n * @returns Exemplo de retornos 'DD/MM/YYYY HH:mm:ss'\n */\n static getDateTimeFormatFromLocale(calendar: CalendarLocaleOptions): string {\n if (calendar) {\n let dateFormat = calendar.dateFormat.toString();\n dateFormat = dateFormat.replace(/[y]/g, \"YY\").toUpperCase();\n dateFormat = dateFormat + \" HH:mm:ss\";\n\n return dateFormat;\n }\n return null;\n }\n\n /**\n * Retorna o formato da data de acordo com o local\n * @param calendar Informações de calendário\n * @returns Exemplo de retornos 'DD/MM/YYYY'\n */\n static getDateFormatFromCalendar(calendar: CalendarLocaleOptions): string {\n if (calendar && calendar.dateFormat) {\n let dateFormat = calendar.dateFormat.toString();\n dateFormat = dateFormat.replace(/[y]/g, \"YY\").toUpperCase();\n\n return dateFormat;\n }\n return null;\n }\n\n /**\n * Método auxiliar que realiza a comparação entre as datas e retorna um objeto caso a validação seja válida\n * @param referenceDate Data de referência para a comparação\n * @param compareToDate Data a ser comparada.\n * @param compareType Tipo de comparação.\n * @param options Opções para a comparação\n * @returns Objeto no formato { nomeChave: true } indicando que a data não é válida\n */\n private static dateCompare(referenceDate: any, compareToDate: any, compareType: CompareType, options?: DateCompareOptions):\n ValidationErrors {\n const compareTypeName: string = compareType === CompareType.isNotSame ? CompareType.isSame : compareType;\n const granularity = options && options.granularity ? options.granularity : \"day\";\n\n let comparison = referenceDate[compareTypeName](compareToDate, granularity);\n comparison = compareType === CompareType.isNotSame ? !comparison : comparison;\n if (comparison) {\n const keyName = options && options.compareName ? options.compareName : compareType;\n const result = {};\n result[keyName] = true;\n return result;\n }\n return null;\n }\n\n /**\n * Retorna uma mascara com as barras Ex: ‘DD/MM/YYYY‘\n * @param calendar\n */\n static getFormatDateWithBar(calendar: CalendarLocaleOptions): string {\n if (calendar && calendar.dateFormat) {\n let dateFormat = calendar.dateFormat.toString();\n dateFormat = dateFormat\n .replace(\"dd\", \"DD\")\n .replace(\"mm\", \"MM\")\n .replace(\"yy\", \"YYYY\");\n return dateFormat;\n }\n return null;\n }\n\n}\n","/**\n * WorkflowIntegrator\n * @version 1.0\n * @releaseDate 2020-05-27\n * @author Kallico Fróis <kallico.silva@senior.com.br>\n * @thanks Adriner Andrade <adriner.andrade@senior.com.br>\n *\n * @description Módulo desenvolvido para facilitar a integração entre a API do\n * Senior Workflow e Formulários WEB. A ferramenta foi desenvolvida para\n * interferir o mínimo possível no formulário, desacoplando seus métodos,\n * tratando as lógicas dentro da ferramenta, minimizando os impactos no\n * componente na qual é implementada.\n */\n\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\ndeclare const workflowCockpit: any;\n\nexport interface TaskData {\n processName: string;\n taskName: string;\n}\n\nexport interface NextAction {\n connectsWithAutomaticGateway: boolean; // Se a ação está associada a algum elemento de decisão automática.\n finish: boolean; // Se a ação finaliza a execução do processo.\n name: string; // Nome da ação a ser realizada.\n}\n\n@Injectable()\nexport class WorkflowIntegrator {\n private workflowCockpit: any;\n private _isRequestNew: boolean;\n private _nextAction: NextAction;\n private _nextActionName: string;\n private _taskData: TaskData;\n private _isFinishing: any;\n private _processVariables: object = {};\n private _workflowPayload: object = {};\n\n private onLoadActions: object;\n private onSubmitActions: object;\n private onRollbackActions: object;\n public processInstanceId: BehaviorSubject<number> = new BehaviorSubject(null);\n\n /**\n * ### WorkflowIntegrator - Integrador de componentes ao Senior Workflow.\n *\n * @Description\n * Instancia a classe do integrador com Senior Workflow.\n * Ao instanciar a classe automaticamente as Actions são resetadas.\n *\n * @Actions\n * As Actions são ações a serem executadas durante o ciclo de vida do Workflow\n * Estas podem ser definidas usando os métodos:\n * `addOnLoadAction()`, `addOnSubmitAction()`, `addOnRollbackAction()`.\n *\n *\n */\n constructor() {\n this.resetActions();\n }\n\n /**\n * Instancia o workflowCockpit (API de integração)\n *\n * @description\n * Ao executar este método, as `onLoadAtions` serão executadas!\n * Se houverem ações para executar logo após o carregamento do formulário no\n * Senior Workflow as **ações devem ser adicionadas anteriormente** à\n * chamada dessa função, através do método `addOnLoadAction()`.\n *\n */\n public init(): void {\n this.workflowCockpit = workflowCockpit({\n init: async (data: any, info: any): Promise<any> => {\n this._isRequestNew = info && info.isRequestNew();\n this._taskData = info && (await info.getTaskData());\n\n if (!this._isRequestNew) {\n const processVariablesFromWorkflow = await info.getInfoFromProcessVariables();\n\n this.addProcessVariable(\n \"processVariablesFromWorkflow\",\n processVariablesFromWorkflow\n );\n }\n\n this.processInstanceId.next(data.processInstanceId);\n\n return await this._onLoadWorkflow(data, info);\n },\n onSubmit: async (data: any, info: any): Promise<object> => {\n this._nextAction = data && (await data.nextAction);\n this._isFinishing = this._nextAction.finish;\n this._nextActionName = this._nextAction.name;\n\n\n await this._onSubmitWorkflow(data, info);\n\n return this._workflowPayload;\n },\n onError: async (data: any, info: any): Promise<any> => {\n await this._onRollbackWorkflow(data, info);\n },\n });\n }\n\n /** # Workflow LOAD Section # **/\n\n /**\n * Método chamado no carregamento do formulário no Senior Workflow.\n *\n ** @important\n * Deve finalizar chamando o método `_runActions(this.onSbumitActions)`.\n */\n private async _onLoadWorkflow(data: any, info: any): Promise<any> {\n return await this._runActions(this.onLoadActions);\n }\n\n /** # Workflow SUBMIT Section # **/\n\n /**\n * Método chamado ao clicar no botão `Enviar` do Senior Workflow.\n *\n * @important\n * Deve iniciar chamando o método `_runActions(this.onSbumitActions)`.\n */\n private async _onSubmitWorkflow(data: any, info: any): Promise<any> {\n return await this._runActions(this.onSubmitActions);\n }\n\n /** # Workflow ROLLBACK Section # **/\n\n /**\n * Método chamado ao ocorrer um erro no processamento do formulário por\n * parte do Senior Workflow\n *\n * * @important\n * Deve iniciar chamando o método `_runActions(this.onRollbackActions)`.\n */\n private async _onRollbackWorkflow(data: any, info: any): Promise<any> {\n return await this._runActions(this.onRollbackActions);\n }\n\n /** # ACTIONS Section # **/\n\n /**\n * Reseta os objetos com as Ações a serem efetuadas no ciclo de vida do\n * Senior Workflow.\n */\n public resetActions(): void {\n this.onLoadActions = {};\n this.onSubmitActions = {};\n this.onRollbackActions = {};\n }\n\n /**\n * Executa as ações do objeto passado nos argumentos\n *\n * @param actionsToRun Objeto onde que deve conter uma chave\n * identificadora e um valor com um *método* ou *promise* a ser executada/\n * resolvida\n */\n private async _runActions(actionsToRun: object): Promise<any> {\n const result: object = {};\n\n await Promise.all(\n Object.entries(actionsToRun).map(async ([key, value]) => {\n try {\n result[key] = await value();\n return;\n } catch (err) {\n throw Error(err);\n }\n })\n );\n\n return result;\n }\n\n /** # Actions SETTERs # */\n\n /**\n * Adiciona um ação à pilha para execução no momento do carregamento do\n * formulário no Senior Workflow;\n *\n * @important\n * As Ações de carregamento **devem ser adicionadas antes da chamada do\n * método** `init()`!\n *\n * @param id Nome identificador para a callback a ser executada;\n * @param callback Função a ser executada;\n */\n public addOnLoadAction(id: string, callback: any) {\n this.onLoadActions[id] = callback;\n }\n\n /**\n * Adiciona um ação à pilha para execução no momento do envio do formulário\n * para o Senior Workflow\n *\n * @param id Nome identificador para a callback a ser executada;\n * @param callback Função a ser executada;\n */\n public addOnSubmitAction(id: string, callback: any) {\n this.onSubmitActions[id] = callback;\n }\n\n /**\n * Adiciona um ação à pilha para execução em caso de haver um erro no\n * processamento do formulário por parte do Senior Workflow.\n *\n * @param id Nome identificador para a callback a ser executada;\n * @param callback Função a ser executada;\n */\n public addOnRollbackAction(id: string, callback: any) {\n this.onRollbackActions[id] = callback;\n }\n\n /**\n * Adiciona um objeto às Variáveis do Processo (`_processVariables`)\n *\n * @param id Nome identificador do objeto a ser adicionado\n * @param processVariable Objeto a ser adicionado as variáveis do processo\n */\n public addProcessVariable(id: string, processVariable: any): void {\n try {\n this._processVariables[id] = processVariable;\n } catch (err) {\n const error = {\n erro: err,\n message: `Não foi possível adicionar a variável ${id} às variáveis do processo.`,\n };\n throw error;\n }\n }\n\n /**\n * Define o objecto payload que será enviado ao Senior Worfkflow quando o usuário\n * clicar no botão enviar.\n *\n * @param payload Objeto a ser enviado para o Workflow\n */\n public setWorkflowPayload(payload: object): void {\n\n this._workflowPayload = payload;\n\n return;\n }\n\n /** # Actions GETTERs # */\n\n public get loadActions(): object {\n return this.onLoadActions;\n }\n\n public get submitActions(): object {\n return this.onSubmitActions;\n }\n\n public get rollbackActions(): object {\n return this.onRollbackActions;\n }\n\n /** # GETTERs # **/\n\n public get isRequestNew(): boolean {\n return this._isRequestNew;\n }\n\n public get isFinishing(): boolean {\n return this._isFinishing;\n }\n\n public get nextActionName(): string {\n return this._nextActionName;\n }\n\n public get taskData(): TaskData {\n return this._taskData;\n }\n\n public get processVariables(): any {\n const p = new Promise((resolve, reject) => {\n if (this._processVariables) {\n resolve(this._processVariables);\n } else {\n reject(\"Não foram encontradas variáveis para o processo\");\n }\n });\n\n p.then((data: any) => {\n this._processVariables = data;\n }).catch((err: any) => {\n throw err;\n });\n\n return this._processVariables;\n }\n}\n","import { OnDestroy } from \"@angular/core\";\nimport { Component, OnInit } from \"@angular/core\";\nimport { Router, ActivatedRoute } from \"@angular/router\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { WorkflowDataService } from \"../../services/workflow-data.service\";\n\n\n@Component({\n selector: \"lib-employee-selector\",\n templateUrl: \"./employee-selector.component.html\",\n styleUrls: [\"./employee-selector.component.scss\"],\n})\nexport class EmployeeSelectorComponent implements OnInit, OnDestroy {\n public results: any[];\n public employeeSelected: any;\n private _useWorkflow: boolean;\n\n private ngUnsubscribe = new Subject();\n private _routeEndpoint: string;\n\n constructor(\n private router: Router,\n private activatedRoute: ActivatedRoute,\n private workflowDataService: WorkflowDataService\n ) {}\n\n public ngOnInit(): void {\n this.registerSubscribers();\n }\n\n public registerSubscribers(): void {\n this.activatedRoute.data.pipe(takeUntil(this.ngUnsubscribe)).subscribe((data) => {\n this.useWorkflow = !!(data && data.useWorkflow);\n this.routeEndpoint = data && data.routeEndpoint;\n\n if (this.useWorkflow) {\n this.workflowDataService.setUseWorkflow(this.useWorkflow);\n }\n });\n }\n\n public onSelectEmployee(): void {\n const { tableId } = this.employeeSelected;\n\n if (tableId) {\n this.navigate(tableId);\n }\n }\n\n private navigate(employeeId: string): void {\n this.router.navigate([`workflow/${employeeId}/${this._routeEndpoint}`]);\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next(true);\n this.ngUnsubscribe.complete();\n }\n\n public set useWorkflow(v: boolean) {\n this._useWorkflow = v;\n }\n\n public get useWorkflow(): boolean {\n return this._useWorkflow;\n }\n\n public set routeEndpoint(routeEndpoint: string) {\n this._routeEndpoint = routeEndpoint;\n }\n\n public get routeEndpoint(): string {\n return this._routeEndpoint;\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { PanelModule } from \"primeng/panel\";\nimport { InputRestAutoCompleteEmployeeModelModule } from \"../input-rest-auto-complete-employee-model/index\";\nimport { SharedModule } from \"../shared/shared.module\";\n\nimport { EmployeeSelectorComponent } from \"./employee-selector.component\";\n\nexport { WorkflowDataService } from \"../../services/workflow-data.service\";\n\n@NgModule({\n imports: [SharedModule, PanelModule, InputRestAutoCompleteEmployeeModelModule],\n declarations: [EmployeeSelectorComponent],\n exports: [EmployeeSelectorComponent],\n})\nexport class EmployeeSelectorModule {}\n","import { Component, Input } from \"@angular/core\";\nimport { DivergenceArray } from \"../../services/form-comparator.service\";\n\n@Component({\n selector: \"from-to\",\n templateUrl: \"./from-to.component.html\",\n})\nexport class FromToComponent {\n @Input()\n divergentFormData: DivergenceArray[];\n\n constructor() {}\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FromToComponent } from \"./from-to.component\";\nimport { PanelModule } from \"primeng/panel\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\nimport { InputTextModule } from \"primeng/inputtext\";\n\n@NgModule({\n imports: [CommonModule, PanelModule, TranslateModule, ReactiveFormsModule, InputTextModule],\n declarations: [FromToComponent],\n exports: [FromToComponent],\n})\nexport class FromToModule {}\n","export class FormatUtilsService {\n\n /**\n * Retorna o CPF formatado\n * @param cpf CPF\n */\n static getFormattedCpf(cpf: string): string {\n if (cpf) {\n return cpf\n .replace(/\\D/g, \"\")\n .replace(/(\\d{3})(\\d)/, \"$1.$2\")\n .replace(/(\\d{3})(\\d)/, \"$1.$2\")\n .replace(/(\\d{3})(\\d)/, \"$1-$2\");\n }\n return null;\n }\n\n /**\n * Retorna o CPF formatado\n * @param cpf CPF\n */\n static getFormattedCpfEdited(cpf: string): string {\n if (!cpf) return '';\n\n cpf = cpf.replace(/\\D/g, '').slice(0, 11);\n\n if (cpf.length > 9) {\n cpf = cpf.replace(/^(\\d{3})(\\d{3})(\\d{3})(\\d{2})$/, \"$1.$2.$3-$4\");\n } else if (cpf.length > 6) {\n cpf = cpf.replace(/^(\\d{3})(\\d{3})(\\d{0,3})$/, \"$1.$2.$3\");\n } else if (cpf.length > 3) {\n cpf = cpf.replace(/^(\\d{3})(\\d{0,3})$/, \"$1.$2\");\n }\n\n return cpf;\n }\n\n /**\n * Retorna o CNPJ formatado\n * @param cnpj CNPJ\n */\n static getFormattedCnpj(cnpj: string): string {\n if (cnpj) {\n return cnpj\n .replace(/\\D/g, \"\")\n .replace(/(\\d{2})(\\d)/, \"$1.$2\")\n .replace(/(\\d{3})(\\d)/, \"$1.$2\")\n .replace(/(\\d{3})(\\d)/, \"$1/$2\")\n .replace(/(\\d{4})(\\d)/, \"$1-$2\");\n }\n return null;\n }\n\n /**\n * Retorna o CNPJ formatado\n * @param cnpj CNPJ\n */\n static getFormattedCnpjEdited(cnpj: string): string {\n if (!cnpj) return '';\n\n cnpj = cnpj.replace(/\\D/g, '').slice(0, 14);\n\n if (cnpj.length > 12) {\n cnpj = cnpj.replace(/^(\\d{2})(\\d{3})(\\d{3})(\\d{4})(\\d{2})$/, \"$1.$2.$3/$4-$5\");\n } else if (cnpj.length > 8) {\n cnpj = cnpj.replace(/^(\\d{2})(\\d{3})(\\d{3})(\\d{0,4})$/, \"$1.$2.$3/$4\");\n } else if (cnpj.length > 5) {\n cnpj = cnpj.replace(/^(\\d{2})(\\d{3})(\\d{0,3})$/, \"$1.$2.$3\");\n } else if (cnpj.length > 2) {\n cnpj = cnpj.replace(/^(\\d{2})(\\d{0,3})$/, \"$1.$2\");\n }\n\n return cnpj;\n }\n\n /**\n * Retorna a mascara do CPF/CNPJ\n * @param key Valores possíveis são CPF ou CNPJ\n */\n static getCpfCnpjMask(key: string) {\n switch (key) {\n case \"CPF\":\n return \"999.999.999-99\";\n case \"CNPJ\":\n return \"99.999.999/9999-99\";\n default:\n return \"\";\n }\n }\n\n /**\n * Método para formatar o número de inscrição do cliente.\n * @param subscriptionNumber\n * @param pixKeyType\n * @returns\n */\n static getFormattedSubscriptionNumber(subscriptionNumber: string, pixKeyType: any): string {\n if (!subscriptionNumber || !pixKeyType) return subscriptionNumber;\n\n switch (pixKeyType) {\n case 'CNPJ':\n return this.getFormattedCnpjEdited(subscriptionNumber);\n case 'CPF':\n return this.getFormattedCpfEdited(subscriptionNumber);\n default:\n return subscriptionNumber;\n }\n }\n\n /**\n * Metódo para formatar o número de telefone.\n * @param telephoneNumber String contendo o número de telefone.\n * @returns String formatada com o número de telefone.\n */\n static getFormattedTelephoneNumber(telephoneNumber: string): string {\n let tel = telephoneNumber.replace(/\\D/g, '');\n tel = tel.replace(/^0/, '');\n if (tel.length > 10) {\n // ########## -> (##) #####-####\n tel = tel.replace(/^(\\d{2})?(\\d{5})?(\\d{4}).*/, '($1) $2-$3');\n } else if (tel.length > 9) {\n // AA######### -> (AA) ####-####\n tel = tel.replace(/^(\\d{2})?(\\d{4})?(\\d{4}).*/, '($1) $2-$3');\n } else if (tel.length > 5) {\n // ####### -> (##) ####-#\n tel = tel.replace(/^(\\d{2})?(\\d{4})?(\\d{0,4}).*/, '($1) $2-$3');\n } else if (tel.length > 1) {\n // #### -> (##) ##\n tel = tel.replace(/^(\\d{2})?(\\d{0,5}).*/, '($1) $2');\n } else {\n if (tel !== '') { tel = tel.replace(/^(\\d*)/, '($1'); }\n }\n\n return tel;\n }\n\n /**\n * Metódo para formatar a porcentagem para 2 casas decimais.\n * @param value Número a ser formatado.\n */\n static getFormattedPercentage(value: string): string {\n return parseFloat(value).toFixed(2).replace('.', ',') + '%';\n }\n\n /**\n * Metódo para formatar o número de telefone de um campo Input.\n * @param event Evento do Input do campo de telefone.\n */\n static formatTelephoneInputEvent(event: any) {\n let telephoneNumber = event.target.value;\n\n // Permite Backspace para usuário remover \")\" e \"-\"\n if (event.keyCode === 8 && (telephoneNumber.length === 9 || telephoneNumber.length === 4 || telephoneNumber.length === 3)) {\n return;\n }\n\n event.target.value = FormatUtilsService.getFormattedTelephoneNumber(telephoneNumber);\n }\n\n /**\n * Formata o campo de input de CPF em tempo real.\n * @param event Evento do input\n */\n static formatCpfInputEvent(event: any): void {\n let cpf = event.target.value;\n\n // Permite apagar nos pontos sensíveis\n if (event.keyCode === 8 && (\n cpf.length === 4 || cpf.length === 8 || cpf.length === 12)) {\n return;\n }\n\n event.target.value = FormatUtilsService.getFormattedCpfEdited(cpf);\n }\n\n /**\n * Formata o campo de input de CNPJ em tempo real.\n * @param event Evento do input\n */\n static formatCnpjInputEvent(event: any): void {\n let cnpj = event.target.value;\n\n // Permite apagar nos pontos sensíveis\n if (event.keyCode === 8 && (\n cnpj.length === 3 || cnpj.length === 7 || cnpj.length === 11 || cnpj.length === 16)) {\n return;\n }\n\n event.target.value = FormatUtilsService.getFormattedCnpjEdited(cnpj);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SharedStateService {\n private hideFieldSubject = new BehaviorSubject<boolean>(true);\n hideField$ = this.hideFieldSubject.asObservable();\n\n private showButtonSubject = new BehaviorSubject<boolean>(true);\n showButton$ = this.showButtonSubject.asObservable();\n\n private saveButtonSubject = new BehaviorSubject<boolean>(true);\n saveButton$ = this.saveButtonSubject.asObservable();\n\n private showEditMode = new BehaviorSubject<boolean>(true);\n showEditMode$ = this.showEditMode.asObservable();\n\n private activeValidatorsOnEditModalOpen = new Subject<void>();\n activeValidatorsOnEditModalOpen$ = this.activeValidatorsOnEditModalOpen.asObservable();\n\n private shouldReloadWindowOnlyEditMode = new BehaviorSubject<boolean>(false);\n shouldReloadWindowOnlyEditMode$ = this.shouldReloadWindowOnlyEditMode.asObservable();\n\n setHideField(value: boolean) {\n this.hideFieldSubject.next(value);\n }\n\n setShowButton(value: boolean) {\n this.showButtonSubject.next(value);\n }\n\n setSaveButton(value: boolean) {\n this.saveButtonSubject.next(value);\n }\n\n setShowEditMode(value: boolean) {\n this.showEditMode.next(value);\n }\n\n setShouldReloadWindowOnlyEditMode(value: boolean) {\n this.shouldReloadWindowOnlyEditMode.next(value);\n }\n\n triggerActiveValidatorsOnEditModalOpen() {\n this.activeValidatorsOnEditModalOpen.next();\n }\n}\n","import { Validators, AbstractControl } from \"@angular/forms\";\n\nexport class GenericValidator {\n constructor() { }\n\n /**\n * Valida o CEI (Cadastro específico de INSS) digitado.\n */\n static isValidCei(control: AbstractControl): Validators {\n const cei = control.value;\n\n if (!cei) return null;\n else if (cei.length != 11) return null;\n\n const multiplicadorBase = \"3298765432\";\n let total = 0;\n let resto = 0;\n let multiplicando = 0;\n let multiplicador = 0;\n\n if (\n cei.length !== 11 ||\n cei === \"00000000000\" ||\n cei === \"11111111111\" ||\n cei === \"22222222222\" ||\n cei === \"33333333333\" ||\n cei === \"44444444444\" ||\n cei === \"55555555555\" ||\n cei === \"66666666666\" ||\n cei === \"77777777777\" ||\n cei === \"88888888888\" ||\n cei === \"99999999999\"\n )\n return { invalidCei: true };\n else {\n for (let i = 0; i < 10; i++) {\n multiplicando = parseInt(cei.substring(i, i + 1), 10);\n multiplicador = parseInt(multiplicadorBase.substring(i, i + 1), 10);\n total += multiplicando * multiplicador;\n }\n\n resto = 11 - (total % 11);\n resto = resto === 10 || resto === 11 ? 0 : resto;\n\n const digito = parseInt(\"\" + cei.charAt(10), 10);\n return resto === digito ? null : { invalidCei: true };\n }\n }\n\n /**\n * Valida se o CPF é valido. Deve-se ser informado o cpf sem máscara.\n */\n static isValidCpf(control: AbstractControl): Validators {\n const cpf = control.value;\n if (cpf) {\n let numbers, digits, sum, i, result, equalDigits;\n equalDigits = 1;\n if (cpf.length < 11) {\n return null;\n }\n\n for (i = 0; i < cpf.length - 1; i++) {\n if (cpf.charAt(i) !== cpf.charAt(i + 1)) {\n equalDigits = 0;\n break;\n }\n }\n if (!equalDigits) {\n numbers = cpf.substring(0, 9);\n digits = cpf.substring(9);\n sum = 0;\n for (i = 10; i > 1; i--) {\n sum += numbers.charAt(10 - i) * i;\n }\n result = sum % 11 < 2 ? 0 : 11 - (sum % 11);\n if (result !== Number(digits.charAt(0))) {\n return { cpfNotValid: true };\n }\n numbers = cpf.substring(0, 10);\n sum = 0;\n for (i = 11; i > 1; i--) {\n sum += numbers.charAt(11 - i) * i;\n }\n result = sum % 11 < 2 ? 0 : 11 - (sum % 11);\n if (result !== Number(digits.charAt(1))) {\n return { cpfNotValid: true };\n }\n return null;\n } else {\n return { cpfNotValid: true };\n }\n }\n return null;\n }\n\n /**\n * Valida se o CNPJ é valido. Deve-se ser informado o cpf sem máscara.\n */\n static isValidCnpj(control: AbstractControl): Validators {\n let cnpj = control.value;\n\n if (cnpj) {\n let size, numbers, digits, sum, pos, result;\n cnpj = cnpj.replace(/[^\\d]+/g, '');\n\n if (cnpj.length !== 14) {\n return null;\n }\n\n // Elimina CNPJs invalidos conhecidos\n if (\n cnpj === '00000000000000' ||\n cnpj === '11111111111111' ||\n cnpj === '22222222222222' ||\n cnpj === '33333333333333' ||\n cnpj === '44444444444444' ||\n cnpj === '55555555555555' ||\n cnpj === '66666666666666' ||\n cnpj === '77777777777777' ||\n cnpj === '88888888888888' ||\n cnpj === '99999999999999'\n ) {\n return { cnpjNotValid: true };\n }\n\n // Valida DVs\n size = cnpj.length - 2;\n numbers = cnpj.substring(0, size);\n digits = cnpj.substring(size);\n sum = 0;\n pos = size - 7;\n for (let i = size; i >= 1; i--) {\n sum += numbers.charAt(size - i) * pos--;\n if (pos < 2) {\n pos = 9;\n }\n }\n result = sum % 11 < 2 ? 0 : 11 - (sum % 11);\n if (result !== Number(digits.charAt(0))) {\n return { cnpjNotValid: true };\n }\n\n size = size + 1;\n numbers = cnpj.substring(0, size);\n sum = 0;\n pos = size - 7;\n for (let i = size; i >= 1; i--) {\n sum += numbers.charAt(size - i) * pos--;\n if (pos < 2) {\n pos = 9;\n }\n }\n result = sum % 11 < 2 ? 0 : 11 - (sum % 11);\n if (result !== Number(digits.charAt(1))) {\n return { cnpjNotValid: true };\n }\n\n return null;\n }\n return null;\n }\n\n /**\n * Válida o número de telefone da chave PIX.\n */\n static isValidPhoneNumber(control: AbstractControl): Validators {\n let cellPhoneKey = control.value || '';\n cellPhoneKey = cellPhoneKey.replace(/[\\s()-]/g, '');\n const regexNumberTelephone = /^[1-9][\\d]{1,2}\\d{8,10}$/;\n\n const isValidNumberTelephone = regexNumberTelephone.test(cellPhoneKey);\n\n return isValidNumberTelephone ? null : { invalidPhoneNumber: true };\n }\n\n /**\n * Valida o email da chave PIX.\n */\n static isValidEmail(control: AbstractControl): Validators {\n const emailKey = control.value;\n const regexValidEmail = /^[\\w-\\.]+@[\\w-]+(\\.[\\w-]{2,4}){1,2}$/;\n\n const isValidEmail = regexValidEmail.test(emailKey);\n\n return isValidEmail ? null : { invalidEmail: true };\n }\n}\n","import {\n AbstractControl,\n FormBuilder,\n FormGroup,\n ValidatorFn,\n Validators,\n } from \"@angular/forms\";\n import { GenericValidator } from \"../utils/generic-validators\";\n import { FormatUtilsService } from \"../utils/format-utils/format-utils.service\";\n\n export abstract class HistoricakPixAccountBase {\n protected formBuilder: FormBuilder;\n protected _paramsForm: FormGroup = new FormGroup({});\n protected _defaultCpfNumber: string = null;\n\n public initialValidatorOfPercentage: ValidatorFn[] = [Validators.required, Validators.min(0.01)];\n public pixAccountList: object[] = [];\n public maxValuePercentage = 100.0;\n public pixKeyType: string;\n public pixAccountFormGroup: FormGroup;\n public isShowPixKeyFieldValidatorMessage = false;\n\n constructor(formBuilder: FormBuilder) {\n this.formBuilder = formBuilder;\n this.createFormGroupBase();\n }\n\n public phoneMask(event: any): void {\n FormatUtilsService.formatTelephoneInputEvent(event);\n }\n\n public cpfMask(event: any): void {\n FormatUtilsService.formatCpfInputEvent(event);\n }\n\n public cnpjMask(event: any): void {\n FormatUtilsService.formatCnpjInputEvent(event);\n }\n\n public onChangePixKeyType(item: any, form?: FormGroup): void {\n if (!item || !item.key) return;\n\n this.pixKeyType = item.key;\n\n const targetForm = (typeof form !== 'undefined' && form !== null)\n ? form\n : this.pixAccountFormGroup;\n\n this.isShowPixKeyFieldValidatorMessage = true;\n\n const pixKeyControl = targetForm.get(\"pixKey\");\n if (pixKeyControl) {\n pixKeyControl.reset();\n }\n\n this.setPixKeyValidators(true, targetForm);\n\n if (item.key === \"CPF\") {\n this.setDefaultCpfPixKey(targetForm);\n }\n }\n\n public onClearPixKeyType(form?: FormGroup): void {\n var targetForm = (typeof form !== 'undefined' && form !== null)\n ? form\n : this.pixAccountFormGroup;\n\n this.isShowPixKeyFieldValidatorMessage = false;\n\n if (targetForm.get(\"pixKey\")) {\n targetForm.get(\"pixKey\").reset();\n }\n }\n\n public setDefaultCpfPixKey(form?: FormGroup): void {\n var targetForm = (typeof form !== 'undefined' && form !== null)\n ? form\n : this.pixAccountFormGroup;\n\n if (this._defaultCpfNumber) {\n if (targetForm.get(\"pixKey\")) {\n targetForm.get(\"pixKey\").setValue(this._defaultCpfNumber);\n }\n } else {\n var sheetDocument = this._paramsForm.get(\"sheetDocument\");\n if (sheetDocument && sheetDocument.get(\"cpfNumber\")) {\n var cpf = sheetDocument.get(\"cpfNumber\").value;\n if (cpf && targetForm.get(\"pixKey\")) {\n targetForm.get(\"pixKey\").setValue(cpf);\n }\n }\n }\n }\n\n protected createFormGroupBase(): void {\n this.pixAccountFormGroup = this.formBuilder.group({\n id: this.formBuilder.control(null),\n index: this.formBuilder.control(null),\n employee: this.formBuilder.control({ value: { tableId: null }, disabled: true }),\n dateChange: this.formBuilder.control(null),\n pixKeyType: this.formBuilder.control(null, Validators.required),\n pixKey: this.formBuilder.control(null),\n percentage: this.formBuilder.control(\n null,\n Validators.compose([\n ...this.initialValidatorOfPercentage,\n Validators.max(this.maxValuePercentage),\n ])\n ),\n externalId: this.formBuilder.control(null),\n customFields: this.formBuilder.control(null),\n });\n }\n\n protected setValidatorsAccordingList(\n pixAccountList: object[],\n index: number | null = null,\n isEditMode: boolean = true,\n form?: FormGroup\n ): void {\n var targetForm = (typeof form !== 'undefined' && form !== null)\n ? form\n : this.pixAccountFormGroup;\n\n this.pixAccountList = (pixAccountList && pixAccountList.length > 0)\n ? [].concat(pixAccountList)\n : [];\n\n var percentageIncluded: number[] = [];\n\n for (var i = 0; i < this.pixAccountList.length; i++) {\n var field: any = this.pixAccountList[i];\n if (field && field.percentage && i !== index) {\n percentageIncluded.push(field.percentage);\n }\n }\n\n this.beforeSetPixKeyTypeValidator(targetForm);\n this.setPixKeyValidators(isEditMode, targetForm);\n this.validatePercentageValid(percentageIncluded, targetForm);\n }\n\n protected beforeSetPixKeyTypeValidator(form: FormGroup): void {\n const control = form.get(\"pixKeyType\");\n\n if (this.pixAccountList && this.pixAccountList.length) {\n control.setValidators(\n Validators.compose([\n Validators.required,\n this.validateDuplicatePixKeyTypeBankAccount(this.pixAccountList),\n ])\n );\n } else {\n control.setValidators(Validators.required);\n }\n control.updateValueAndValidity();\n }\n\n protected setPixKeyValidators(isEditMode: boolean, form: FormGroup): void {\n const pixKey = form.get(\"pixKey\");\n switch (this.pixKeyType) {\n case \"TELEPHONE\":\n pixKey.setValidators(Validators.compose([Validators.required, GenericValidator.isValidPhoneNumber]));\n break;\n case \"EMAIL\":\n pixKey.setValidators(Validators.compose([Validators.required, GenericValidator.isValidEmail]));\n break;\n case \"CPF\":\n pixKey.setValidators(Validators.compose([Validators.required, GenericValidator.isValidCpf]));\n break;\n case \"CNPJ\":\n pixKey.setValidators(Validators.compose([Validators.required, GenericValidator.isValidCnpj]));\n break;\n case \"RANDOM_KEY\":\n pixKey.setValidators(Validators.required);\n break;\n default:\n pixKey.clearValidators();\n }\n\n if (isEditMode) {\n pixKey.enable();\n }\n\n pixKey.updateValueAndValidity();\n }\n\n protected validatePercentageValid(listValue: number[], form: FormGroup): void {\n const percentage = form.get(\"percentage\");\n this.maxValuePercentage = listValue.reduce((acc, val) => acc - val, 100.0);\n\n percentage.setValidators(\n Validators.compose([\n ...this.initialValidatorOfPercentage,\n Validators.max(this.maxValuePercentage),\n ])\n );\n\n percentage.updateValueAndValidity();\n }\n\n private validateDuplicatePixKeyTypeBankAccount(listCompare: object[]) {\n return (control: AbstractControl): { [key: string]: any } | null => {\n const value = control.value;\n const isDuplicate = listCompare.some(\n (field: any) =>\n value &&\n field.pixKeyType.key === \"BANK_ACCOUNT\" &&\n value.key === \"BANK_ACCOUNT\"\n );\n return isDuplicate ? { pixKeyTypeBankAccountDuplicate: true } : null;\n };\n }\n\n public get paramsForm(): FormGroup {\n return this._paramsForm;\n }\n\n public set paramsForm(value: FormGroup) {\n this._paramsForm = value;\n }\n\n public get defaultCpfNumber(): string {\n return this._defaultCpfNumber;\n }\n\n public set defaultCpfNumber(value: string) {\n this._defaultCpfNumber = value;\n }\n }\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { HttpClientService } from '../shared/http-client.service';\nimport { ServiceType } from '../../core/enums/serviceType';\n\n@Injectable()\nexport class HistoricalPixAccountService {\n constructor(private http: HttpClientService) {}\n\n query(path: string, body: object, service: ServiceType = ServiceType.PAYROLL): Observable<any> {\n return this.http.query(path, body, service);\n }\n\n enumQuery() {\n const path = 'enumQuery';\n const body = {\n names: ['PixKeyType']\n };\n\n return this.http.query(path, body, ServiceType.PAYROLL);\n }\n}\n","import {\n Component,\n OnInit,\n ViewChild,\n Input,\n ChangeDetectorRef,\n AfterViewInit,\n OnDestroy,\n EventEmitter,\n Output,\n OnChanges,\n SimpleChanges,\n} from \"@angular/core\";\nimport { FormGroup, FormBuilder, Validators } from \"@angular/forms\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { CustomFieldsComponent, NumberLocaleOptions } from \"@seniorsistemas/angular-components\";\nimport { compareValues, isValid, mountCustomToSave } from \"../utils/helpers\";\nimport { DirectionEnumeration } from \"../../core/enums\";\nimport { Subject } from \"rxjs\";\nimport { FormatUtilsService } from \"../utils/format-utils/format-utils.service\";\nimport { SharedStateService } from \"../shared/shared-state.service\";\nimport { HistoricakPixAccountBase } from \"./historical-pix-account-base\";\nimport { HistoricalPixAccountService } from \"./historical-pix-account.service\";\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: \"c-historical-pix-account\",\n templateUrl: \"./historical-pix-account.component.html\",\n styleUrls: [\"./historical-pix-account.component.scss\"],\n})\nexport class HistoricalPixAccountComponent extends HistoricakPixAccountBase implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n @ViewChild(CustomFieldsComponent, { static: false })\n public customFields: CustomFieldsComponent;\n @ViewChild('dataListPix', { static: false }) dataListPix: any;\n @Input()\n public formGroup: FormGroup;\n @Input()\n public fieldFormGroup: string;\n @Input()\n public _dateChange: string;\n @Input()\n public _displayDateChange: string;\n @Input()\n public recordByRow: number = 1;\n @Input()\n public showDateChange: boolean = false;\n @Input()\n public msgTooltipAdd: string;\n @Input()\n public isEditMode: boolean = false;\n @Input()\n public isViewMode: boolean = false;\n @Input()\n public currency: NumberLocaleOptions;\n @Input()\n public customEntity: string;\n @Input()\n public customService: string;\n @Input()\n public withSideBar: boolean = true;\n @Input()\n public permission: object;\n @Input()\n public listDataReciever: any[] = [];\n @Input()\n public addExistentHistoricData: any[] = [];\n @Input()\n public getListPixAccount: object[] = [];\n @Input()\n public isEditModeForSave: boolean = false;\n @Input()\n public showField: boolean = false;\n\n @Output()\n public isViewModeActive: EventEmitter<any> = new EventEmitter<boolean>();\n @Output()\n public isEditModeActive: EventEmitter<any> = new EventEmitter<boolean>();\n @Output()\n public isDeleteModeActive: EventEmitter<any> = new EventEmitter<boolean>();\n @Output()\n public isValidChangeForm: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output()\n public reloadOnlyOnEdit: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n\n private listFromApp: any[] = [];\n private visibleChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n private ngUnsubscribe = new Subject();\n private historicalPixAccountList: FormGroup;\n private orderBy: { field: string; direction: DirectionEnumeration } = {\n field: \"dateChange\",\n direction: DirectionEnumeration.DESC,\n };\n\n private _visible: boolean;\n public pixAccountItemInput: object = {};\n public totalRecords: number = 0;\n public actionLabel: string = this.translateService.instant(\"hcm.payroll.entries_query_actions_total_title\");\n public loading = true;\n public parameters: any;\n public msgTotalLimitByPercentage: string;\n public listData: object[] = [];\n public listDataNoPage: object[] = [];\n public showButtonView = true;\n public showEditMode = false;\n public hasRecordsPix = true;\n public hideFields = this.sharedStateService.hideField$;\n public suggestions: any[] = [];\n public formGroupByRow: { [index: number]: FormGroup } = {};\n public showFields: boolean;\n\n public cols = [\n {\n label: this.translateService.instant(\"hcm.payroll.employees_addition_pix_key_type\"),\n field: \"pixKeyType\",\n },\n {\n label: this.translateService.instant(\"hcm.payroll.employees_addition_pix_key\"),\n field: \"pixKey\",\n },\n {\n label: this.translateService.instant(\"hcm.payroll.historical_pix_account_label_percentage\"),\n field: \"percentage\",\n },\n {\n label: this.translateService.instant(\"hcm.payroll.movimentation_generic_action\"),\n field: \"actions\",\n }\n ];\n\n actions = (rowData: any = {}, key: any) => {\n return [\n {\n visible: this.isEditMode,\n label: this.translateService.instant(\"hcm.payroll.employees_image_cropper_view\"),\n command: () => {\n if (this.isAllowToViewHistorical) {\n rowData[\"index\"] = key;\n this.pixAccountItemInput = { currentItem: rowData, listData: this.listDataNoPage, isEditMode: false };\n this.visible = true;\n } else {\n this.isViewModeActive.emit(true);\n }\n },\n },\n {\n visible: !!(!this.isEditMode && this.withSideBar),\n label: this.translateService.instant(\"hcm.payroll.edit\"),\n command: () => {\n if (this.isAllowToEditHistorical) {\n rowData[\"index\"] = key;\n this.pixAccountItemInput = { currentItem: rowData, listData: this.listDataNoPage, isEditMode: true };\n this.visible = true;\n } else {\n this.isEditModeActive.emit(true);\n if (this.listFromApp.length == 0) {\n rowData[\"index\"] = key;\n this.pixAccountItemInput = { currentItem: rowData, listData: this.listDataNoPage, isEditMode: true };\n this.visible = true;\n }\n }\n },\n },\n {\n visible: !this.isEditMode || this.showEditMode,\n label: this.translateService.instant(\"hcm.payroll.delete\"),\n command: () => {\n if (this.isAllowToDeleteHistorical) {\n this.loading = true;\n this.deleteAnnuityItem(key);\n } else {\n this.isDeleteModeActive.emit(true);\n if (this.listFromApp.length == 0) {\n this.loading = true;\n this.deleteAnnuityItem(key);\n }\n }\n },\n },\n ];\n }\n\n constructor(\n private translateService: TranslateService,\n private cd: ChangeDetectorRef,\n formBuilder: FormBuilder,\n private sharedStateService: SharedStateService,\n private service: HistoricalPixAccountService,\n ) {\n super(formBuilder);\n this.createFormGroup();\n }\n\n ngOnInit() {\n this.showFields = this.showField;\n this.formGroup.setControl(this.fieldFormGroup, this.historicalPixAccountList);\n this.sharedStateService.showButton$.subscribe((value) => {\n this.showButtonView = value;\n });\n\n this.sharedStateService.showEditMode$.subscribe((value) => {\n this.showEditMode = value;\n this.isEditModeForSave = value;\n });\n\n this.sharedStateService.shouldReloadWindowOnlyEditMode$.subscribe((value) => {\n this.reloadOnlyOnEdit.emit(value);\n });\n\n this.sharedStateService.activeValidatorsOnEditModalOpen$\n .subscribe(() => {\n Object.values(this.formGroupByRow).forEach(fg => {\n Object.values(fg.controls).forEach(control => {\n control.markAsTouched();\n control.updateValueAndValidity();\n });\n });\n this.emitFormValidity();\n });\n\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['listDataReciever'] && changes['listDataReciever'].currentValue) {\n this.listFromApp = changes['listDataReciever'].currentValue;\n }\n if (changes['addExistentHistoricData'] && changes['addExistentHistoricData'].currentValue) {\n this.getHistoricalPixAccountList();\n }\n\n if (changes['addExistentHistoricData'] && changes['addExistentHistoricData'].currentValue) {\n const newData = changes['addExistentHistoricData'].currentValue;\n this.rebuildFormGroupMap(newData);\n }\n\n if (changes['isEditMode']) {\n this.isEditMode = changes['isEditMode'].currentValue;\n this.cd.detectChanges();\n }\n }\n\n private createFormGroup(): void {\n this.historicalPixAccountList = this.formBuilder.group({\n historicalPixAccountList: this.formBuilder.control(null),\n });\n }\n\n ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n\n private emitFormValidity(): void {\n const allValid = Object.values(this.formGroupByRow).every(fg => {\n fg.updateValueAndValidity();\n return fg.valid;\n });\n this.isValidChangeForm.emit(allValid);\n }\n\n filterPixKeyType(event: any): void {\n const query = event.query;\n this.service.enumQuery().subscribe((response) => {\n const pixKeyTypeEnum = response.results.find((result: any) => result.enumName === 'PixKeyType');\n if (pixKeyTypeEnum) {\n this.suggestions = pixKeyTypeEnum.items.filter((item: any) =>\n item.value.toLowerCase().includes(query.toLowerCase())\n );\n } else {\n this.suggestions = [];\n }\n });\n }\n\n createPixRowFormGroup(): FormGroup {\n return this.formBuilder.group({\n pixKeyType: [null, Validators.required],\n pixKey: [null],\n percentage: [0, Validators.compose([\n ...this.initialValidatorOfPercentage,\n Validators.max(this.maxValuePercentage),\n ])]\n });\n }\n\n onPixKeyInput(event: any, index: number): void {\n const inputValue = event.target.value;\n const inputRawValue = inputValue.replace(/\\D/g, '');\n\n const form = this.formGroupByRow[index];\n const pixKeyControl = form.get('pixKey');\n\n if(pixKeyControl) {\n pixKeyControl.setValue(inputRawValue, { emitEvent: false });\n pixKeyControl.markAsDirty();\n pixKeyControl.updateValueAndValidity();\n }\n this.setPixKeyValidators(true, form);\n this.emitFormValidity();\n }\n\n onBlurPixCpfAndCnpj(index: number): void {\n const form = this.formGroupByRow[index];\n const pixKeyControl = form.get('pixKey');\n const pixKeyTypeControl = form.get('pixKeyType');\n\n if (!pixKeyControl || !pixKeyTypeControl) return;\n\n const currentValue = pixKeyControl.value;\n const pixKeyType = pixKeyTypeControl.value.key;\n const rawValue = (currentValue || '').replace(/\\D/g, '');\n\n pixKeyControl.setValue(rawValue, { emitEvent: false });\n\n if (pixKeyControl.valid) {\n form.patchValue({\n pixKeyFormatted: FormatUtilsService.getFormattedSubscriptionNumber(rawValue, pixKeyType)\n });\n }\n this.emitFormValidity();\n }\n\n public getFormattedPixKey(type: string, value: string): string {\n return FormatUtilsService.getFormattedSubscriptionNumber(value, type);\n }\n\n public syncPixDataToParentForm(): void {\n if (!this.isEditModeForSave) return;\n\n const values = Object.values(this.formGroupByRow).map(fg => {\n const value = fg.getRawValue();\n const pixKeyType = value.pixKeyType.key;\n\n if (pixKeyType === 'CPF' || pixKeyType === 'CNPJ') {\n value.pixKey = (value.pixKey || '').replace(/[.\\-\\/]/g, '');\n } else if (pixKeyType === 'TELEPHONE') {\n value.pixKey = (value.pixKey || '').replace(/[()\\s\\-]/g, '');\n }\n\n return value;\n });\n\n this.formGroup\n .get(this.fieldFormGroup)\n .get('historicalPixAccountList')\n .setValue(values);\n\n this.emitFormValidity();\n }\n\n public syncResetPixFormToParent(): void {\n this.formGroupByRow = {};\n this.historicalPixAccountList.reset();\n this.historicalPixAccountList.get('historicalPixAccountList').setValue([]);\n\n if (this.addExistentHistoricData.length) {\n this.rebuildFormGroupMap(this.addExistentHistoricData);\n }\n }\n\n public onLazyLoad(event?: any): void {\n const first = event && event.first ? event.first : 0;\n const rows = event && event.rows ? event.rows : this.recordByRow;\n const arrList = this.getHistoricalPixAccountList();\n this.listData = [];\n this.totalRecords = null;\n\n if (event && event.multiSortMeta && event.multiSortMeta.length) {\n event.multiSortMeta.map((value: any) => {\n this.orderBy.field = value.field;\n this.orderBy.direction = value.order === 1 ? DirectionEnumeration.ASC : DirectionEnumeration.DESC;\n });\n }\n\n if (arrList && arrList.length) {\n this.totalRecords = arrList.length;\n this.listData = arrList;\n this.listDataNoPage = [...arrList];\n this.listData.sort(compareValues(this.orderBy.field, this.orderBy.direction));\n this.listData = this.listData.slice(first, (first + rows));\n } else {\n this.listDataNoPage = [];\n }\n\n if (this.isEditMode || arrList && arrList.length === 1) {\n this.refreshCssInIE11();\n }\n\n this.loading = false;\n this.cd.detectChanges();\n\n }\n\n /**\n * Um Bug de CSS que acontece nas linhas da tabela, que resolve só atualizando qualquer parte do CSS da pagina.\n */\n private refreshCssInIE11() {\n if (/msie\\s|trident\\/|edge\\//i.test(window.navigator.userAgent)) {\n setTimeout( () => {\n const row = document.getElementsByClassName(\"row0\");\n if (row && row[0])\n row[0].className = 'refresh';\n }, 1);\n }\n }\n\n public add(): void {\n this.pixAccountItemInput = {};\n this.visible = true;\n }\n\n addPix(): void {\n const newItem = {\n pixKeyType: {},\n pixKey: '',\n percentage: 0\n };\n\n const index = this.addExistentHistoricData.length;\n\n this.addExistentHistoricData = [\n ...this.addExistentHistoricData,\n newItem\n ];\n\n this.formGroupByRow[index] = this.createPixRowFormGroup();\n\n this.setValidatorsAccordingList(this.addExistentHistoricData, index, true);\n\n this.emitFormValidity();\n }\n\n\n deletePix(index: number): void {\n if (this.dataListPix.editingCell) {\n this.dataListPix.editingCell = null;\n }\n this.addExistentHistoricData = this.addExistentHistoricData.filter((_, i) => i !== index);\n this.rebuildFormGroupMap(this.addExistentHistoricData);\n this.emitFormValidity();\n }\n\n\n private rebuildFormGroupMap(data: any[]): void {\n this.formGroupByRow = {};\n\n data.forEach((item, index) => {\n const form = this.createPixRowFormGroup();\n const pixKeyType = item.pixKeyType.key;\n const pixKeyRaw = item.pixKey;\n\n if (pixKeyType === 'CPF' || pixKeyType === 'CNPJ') {\n item.pixKey = FormatUtilsService.getFormattedSubscriptionNumber(pixKeyRaw, pixKeyType);\n }\n if (pixKeyType === 'TELEPHONE') {\n item.pixKey = FormatUtilsService.getFormattedTelephoneNumber(pixKeyRaw);\n }\n\n form.patchValue(item);\n this.formGroupByRow[index] = form;\n\n this.pixKeyType = pixKeyType;\n this.setPixKeyValidators(true, form);\n\n this.setValidatorsAccordingList(data, index, this.isEditMode);\n\n const listValues = data\n .filter((_, i) => i !== index)\n .map(row => row.percentage ? parseFloat(row.percentage) : 0);\n\n this.validatePercentageValid(listValues, form);\n });\n\n this.emitFormValidity();\n }\n\n onPixKeyTypeChange(item: any, index: number): void {\n const form = this.formGroupByRow[index];\n this.onChangePixKeyType(item, form);\n\n this.addExistentHistoricData[index].pixKey = '';\n\n setTimeout(() => {\n if (this.dataListPix.editingCell) {\n this.dataListPix.editingCell = null;\n }\n });\n\n this.cd.detectChanges();\n }\n\n onPixKeyTypeClear(index: number): void {\n const form = this.formGroupByRow[index];\n this.onClearPixKeyType(form);\n }\n\n private deleteAnnuityItem(index: number): void {\n let newlist = [...this.getHistoricalPixAccountList()];\n newlist.sort(compareValues(this.orderBy.field, this.orderBy.direction));\n delete newlist[index];\n newlist = newlist.filter(val => val);\n this.historicalPixAccountList.get(\"historicalPixAccountList\").setValue(newlist);\n this.verifyTotalPercentage();\n this.onLazyLoad();\n }\n\n public getHistoricalPixAccountList(): object[] {\n if (this.historicalPixAccountList.get(\"historicalPixAccountList\") &&\n this.historicalPixAccountList.get(\"historicalPixAccountList\").value &&\n this.historicalPixAccountList.get(\"historicalPixAccountList\").value.length)\n return this.historicalPixAccountList.get(\"historicalPixAccountList\") && this.historicalPixAccountList.get(\"historicalPixAccountList\").value;\n else\n return [];\n }\n\n public addItemInList($event: any): void {\n const index = $event && $event.index >= 0 ? $event.index : null;\n const newDataList = this.getHistoricalPixAccountList() ? this.getHistoricalPixAccountList() : [];\n\n if (index != null) {\n newDataList[index] = $event;\n delete $event.index;\n } else {\n if (isValid($event[\"customFields\"]) && Object.keys($event[\"customFields\"]).length) {\n const customValue = mountCustomToSave($event[\"customFields\"]);\n $event[\"customFields\"] = [...customValue];\n }\n $event[\"dateChange\"] = this.dateChange;\n newDataList.push($event);\n }\n\n this.historicalPixAccountList.get(\"historicalPixAccountList\").setValue(newDataList);\n this.verifyTotalPercentage();\n this.onLazyLoad({ first: this.getNumberPageByIndex(index, newDataList) });\n }\n\n private getNumberPageByIndex(index: number, list: object[]): number {\n if (index) {\n const total = list.length;\n const sub = this.recordByRow - 1;\n return Math.ceil(total / this.recordByRow) * this.recordByRow - sub - 1;\n }\n return null;\n }\n\n private verifyTotalPercentage(): void {\n const list = this.getHistoricalPixAccountList() ? this.getHistoricalPixAccountList() : [];\n const arrayPercentage: any = [];\n\n if (!list.length) return this.msgTotalLimitByPercentage = null;\n\n list.filter((item: any) => arrayPercentage.push(item && item[\"percentage\"]));\n\n const sumPercentage = arrayPercentage.reduce((total: number, percentage: number) => {\n return total + percentage;\n }, 0);\n\n if (sumPercentage === 100) {\n this.msgTotalLimitByPercentage = this.translateService.instant(\"hcm.payroll.historical_pix_account_msg_limit_total_by_percentage\");\n } else {\n this.msgTotalLimitByPercentage = null;\n }\n\n }\n\n public onSyncValue(field: string, index: number): void {\n if (\n this.formGroupByRow &&\n this.formGroupByRow[index] &&\n this.formGroupByRow[index].get(field)\n ) {\n const control = this.formGroupByRow[index].get(field);\n const value = control.value;\n\n this.addExistentHistoricData[index][field] = value;\n\n control.markAsDirty();\n control.markAsTouched();\n control.updateValueAndValidity();\n\n const currentList = this.addExistentHistoricData.map((item, i) => {\n return i === index ? 0 : item.percentage;\n });\n\n this.validatePercentageValid(currentList, this.formGroupByRow[index]);\n\n this.emitFormValidity();\n }\n }\n\n public get scopedActions() {\n return this.actions.bind(this);\n }\n\n public get recordsMessage() {\n return `${ this.totalRecords || 0 } ${ this.totalRecords === 1 ? this.translateService.instant(\"hcm.payroll.admission_register\") : this.translateService.instant(\"hcm.payroll.admission_registers\") }`;\n }\n\n public get getTooltipAndDisableButtonAdd() {\n return this.dateChange ? null : this.msgTooltipAdd;\n }\n\n @Input()\n public get dateChange(): string {\n return this._dateChange;\n }\n\n public set dateChange(value: string) {\n this._dateChange = value;\n if (this._dateChange) {\n this.listData.filter((row: any) => row[\"dateChange\"] = this._dateChange);\n }\n }\n\n @Input()\n public get displayDateChange(): string {\n return this._displayDateChange;\n }\n\n public set displayDateChange(value: string) {\n this._displayDateChange = value;\n if (this._displayDateChange) {\n this.listData.filter((row: any) => row[\"displayDateChange\"] = this._displayDateChange);\n }\n }\n\n @Input()\n public set addListData(list: object[]) {\n this.loading = true;\n this.historicalPixAccountList.get(\"historicalPixAccountList\").patchValue(list);\n this.verifyTotalPercentage();\n this.onLazyLoad();\n }\n\n @Input()\n public get visible(): boolean {\n return this._visible;\n }\n\n @Input()\n public set paramsForm(value: FormGroup) {\n this._paramsForm = value;\n }\n\n @Input()\n public set defaultCpfNumber(value: string) {\n this._defaultCpfNumber = value;\n }\n\n public set visible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(this.visible);\n }\n public close(): void {\n this.visible = false;\n }\n\n public getFormattedTelephoneNumber(telephoneNumber: string): string {\n return FormatUtilsService.getFormattedTelephoneNumber(telephoneNumber);\n }\n\n public getFormattedCpf(cpf: string): string {\n return FormatUtilsService.getFormattedCpf(cpf);\n }\n\n public getFormattedCnpj(cnpj: string): string {\n return FormatUtilsService.getFormattedCnpj(cnpj);\n }\n\n public getFormattedPercentage(value: string): string {\n return FormatUtilsService.getFormattedPercentage(value);\n }\n\n private get isAllowToAddHistorical() {\n return (\n this.permission[\"incluir\"]\n );\n }\n\n private get isAllowToDeleteHistorical() {\n return (\n this.permission[\"excluir\"]\n );\n }\n\n private get isAllowToEditHistorical() {\n return (\n this.permission[\"editar\"]\n );\n }\n\n private get isAllowToViewHistorical() {\n return (\n this.permission[\"visualizar\"]\n );\n }\n}\n","import {\n Component,\n OnInit,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n OnDestroy,\n AfterViewInit,\n ViewChild,\n} from \"@angular/core\";\nimport { FormGroup, FormBuilder } from \"@angular/forms\";\nimport { NumberLocaleOptions, CustomFieldsComponent } from \"@seniorsistemas/angular-components\";\nimport { Subject } from \"rxjs\";\nimport {\n configEnabledFields,\n mountCustomToShow,\n} from \"../../utils/helpers\";\nimport { FormatUtilsService } from \"../../utils/format-utils/format-utils.service\";\nimport { SharedStateService } from \"../../shared/shared-state.service\";\nimport { HistoricakPixAccountBase } from \"../historical-pix-account-base\";\n\n@Component({\n selector: \"pix-account\",\n templateUrl: \"./historical-pix-account-form.component.html\",\n styleUrls: [\"../historical-pix-account.component.scss\"]\n})\nexport class HistoricalPixAccountFormComponent extends HistoricakPixAccountBase implements OnInit, OnDestroy, AfterViewInit {\n @ViewChild(CustomFieldsComponent, { static: true })\n customFields: CustomFieldsComponent;\n\n @Input() public currency: NumberLocaleOptions;\n @Input() public customEntity: string;\n @Input() public customService: string;\n @Input() public withSideBar: boolean = true;\n @Input() public isEditMode: boolean = false;\n @Input() public showField: boolean = false;\n\n @Output() public visibleChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output() public pixAccountItemToList: EventEmitter<any> = new EventEmitter<any>();\n\n private _visible: boolean;\n private ngUnsubscribe = new Subject();\n private employeeId: string;\n\n public labelBtnAdd: string = \"hcm.payroll.employees_add\";\n public visibleBtnSave: boolean = true;\n public isView: boolean = false;\n public isShowPixKeyFieldValidatorMessage = false;\n public hideFields = this.sharedStateService.hideField$;\n\n constructor(\n formBuilder: FormBuilder,\n private cd: ChangeDetectorRef,\n private sharedStateService: SharedStateService\n ) {\n super(formBuilder);\n this.registerSubjects();\n }\n\n ngOnInit(): void {}\n\n ngAfterViewInit(): void {\n this.cd.detectChanges();\n }\n\n ngOnDestroy(): void {\n this.ngUnsubscribe.next(true);\n this.ngUnsubscribe.unsubscribe();\n }\n\n private registerSubjects(): void {}\n\n @Input()\n public get visible(): boolean {\n return this._visible;\n }\n\n public set visible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(this.visible);\n }\n\n @Input()\n public set isEditAndViewValue(value: any) {\n this.resetForm();\n this.visibleBtnSave = true;\n if (value && value.currentItem && Object.keys(value.currentItem).length) {\n this.pixAccountFormGroup.patchValue(this.convertDTOToShowWithCustomFields({ ...value.currentItem }));\n this.labelBtnAdd = \"hcm.payroll.employees_update\";\n this.setValidatorsAccordingList(value.listData, value.currentItem[\"index\"], value && value[\"isEditMode\"]);\n if (!this.isView) {\n this.configEnableFields(value && value[\"isEditMode\"]);\n } else {\n if (this.pixAccountFormGroup.get(\"pixKeyType\").value) {\n this.pixKeyType = this.pixAccountFormGroup.get(\"pixKeyType\").value.key;\n this.formatPixKeyTelephoneNumber();\n }\n }\n } else {\n this.labelBtnAdd = \"hcm.payroll.employees_add\";\n }\n }\n\n private formatPixKeyTelephoneNumber(): void {\n if (this.pixKeyType === \"TELEPHONE\") {\n const pixKeyCtrl = this.pixAccountFormGroup.get(\"pixKey\");\n pixKeyCtrl.setValue(FormatUtilsService.getFormattedTelephoneNumber(pixKeyCtrl.value));\n }\n }\n\n public convertDTOToShowWithCustomFields(data: object): object {\n const obj: any = { ...data };\n obj[\"customFields\"] = mountCustomToShow(obj[\"customFields\"]);\n return obj;\n }\n\n private configEnableFields(isEditMode: boolean): void {\n this.visibleBtnSave = isEditMode;\n\n if (this.pixAccountFormGroup.get(\"pixKeyType\").value) {\n this.pixKeyType = this.pixAccountFormGroup.get(\"pixKeyType\").value.key;\n this.setPixKeyValidators(isEditMode, this.pixAccountFormGroup);\n this.formatPixKeyTelephoneNumber();\n }\n\n configEnabledFields(this.pixAccountFormGroup, isEditMode, [\n \"pixKeyType\",\n \"pixKey\",\n \"percentage\",\n \"customFields\"\n ], []);\n }\n\n public close(): void {\n this.resetForm();\n this.visible = false;\n }\n\n public addItem(): void {\n if (this.pixAccountFormGroup.valid) {\n if (this.employeeId) {\n this.pixAccountFormGroup.get(\"employee\").setValue({\n tableId: this.employeeId,\n name: \"\"\n });\n }\n this.pixAccountItemToList.emit(this.pixAccountFormGroup.getRawValue());\n this.visible = false;\n this.resetForm();\n }\n }\n\n public resetForm(): void {\n this.pixAccountFormGroup.reset();\n this.labelBtnAdd = \"hcm.payroll.employees_add\";\n if (this.customFields && this.customFields.formGroup) this.customFields.formGroup.reset();\n }\n\n public get percentagePlaceholder(): string {\n return `0${this.currency && this.currency.decimalSeparator}00`;\n }\n\n public get optionsPercentage(): object {\n return { ...this.getOptions(), precision: 2 };\n }\n\n private getOptions(): any {\n return {\n prefix: \"\",\n thousands: this.currency.thousandsSeparator,\n decimal: this.currency.decimalSeparator\n };\n }\n\n @Input()\n public set getListPixAccount(pixAccountList: object[]) {\n if (pixAccountList) {\n this.setValidatorsAccordingList(pixAccountList, null, false);\n } else {\n this.resetForm();\n }\n }\n\n @Input()\n public set isViewMode(condition: boolean) {\n this.isView = !!(condition && !this.withSideBar);\n this.configEnableFields(!this.isView);\n if (!this.isView) this.resetForm();\n }\n\n @Input()\n public set paramsForm(value: FormGroup) {\n this._paramsForm = value;\n }\n\n @Input()\n public set defaultCpfNumber(value: string) {\n this._defaultCpfNumber = value;\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport {\n ButtonModule,\n LoadingStateModule,\n SidebarModule, ControlErrorsModule, CustomFieldsModule,\n} from \"@seniorsistemas/angular-components\";\nimport { CurrencyMaskModule } from \"ng2-currency-mask\";\nimport { ConfirmationService } from \"primeng/api\";\nimport { AutoCompleteModule } from \"primeng/autocomplete\";\nimport { FieldsetModule } from \"primeng/fieldset\";\nimport { InputTextModule } from \"primeng/inputtext\";\nimport { PanelModule } from \"primeng/panel\";\nimport { TableModule } from \"primeng/table\";\nimport { TooltipModule } from \"primeng/tooltip\";\nimport { CoreDirectives } from \"../directives/index\";\nimport { HistoricalPixAccountFormComponent } from \"./historical-pix-account-form/historical-pix-account-form.component\";\nimport { InputDateModule } from \"../input-date/index\";\nimport { InputRestAutoCompleteModule } from \"../input-rest-auto-complete/index\";\nimport { InputRestAutoCompleteEnumModule } from \"../input-rest-auto-complete-enum/index\";\n\nimport { SharedModule } from \"../shared/shared.module\";\nimport { HistoricalPixAccountComponent } from \"./historical-pix-account.component\";\nimport { HistoricalPixAccountService } from \"./historical-pix-account.service\";\nimport { InputMaskModule } from \"primeng/inputmask\";\nimport { DropdownModule } from \"primeng/dropdown\";\nimport { TabViewModule } from 'primeng/tabview';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n HttpClientModule,\n AutoCompleteModule,\n SharedModule,\n ReactiveFormsModule,\n TableModule,\n ButtonModule,\n TooltipModule,\n LoadingStateModule,\n SidebarModule,\n InputDateModule,\n ControlErrorsModule,\n InputRestAutoCompleteEnumModule,\n CurrencyMaskModule,\n InputRestAutoCompleteModule,\n InputTextModule,\n CoreDirectives,\n FieldsetModule,\n CustomFieldsModule,\n PanelModule,\n InputMaskModule,\n DropdownModule,\n TabViewModule,\n ],\n declarations: [HistoricalPixAccountComponent, HistoricalPixAccountFormComponent],\n providers: [HistoricalPixAccountService, ConfirmationService],\n exports: [HistoricalPixAccountComponent],\n})\nexport class HistoricalPixAccountModule {\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { ServiceType } from '../../core/enums/serviceType';\n\nimport { HttpClientService } from \"../shared/http-client.service\";\n\n@Injectable()\nexport class HistoricalPixAccountListService {\n constructor(private http: HttpClientService, private httpClient: HttpClient) {\n }\n\n public remove(id: any, dateWhen: string, service: ServiceType = ServiceType.PAYROLL, dependentId?: string) {\n if (service === ServiceType.DEPENDENT) {\n return this.httpClient\n .post(\"hcm/dependent/queries/historicalDependentJudicialPensionPixDelete\", {\n dependentId: dependentId,\n dateWhen: dateWhen,\n });\n } else {\n return this.http.post(\"actions/historicalEmployeePixDelete\", {\n employeeId: id,\n dateWhen: dateWhen\n });\n }\n }\n\n}\n","import {\n Component,\n OnInit,\n ViewChild,\n ChangeDetectorRef,\n AfterViewInit,\n OnDestroy,\n Input,\n Output,\n EventEmitter,\n} from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { CustomFieldsComponent } from \"@seniorsistemas/angular-components\";\nimport * as moment_ from \"moment\";\nimport { ConfirmationService, MessageService } from \"primeng/api\";\nimport { ServiceType } from '../../core/enums/serviceType';\nimport { Subject, Subscription } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { HistoricalPixAccountListService } from \"./historical-pix-account-list.service\";\nimport { SharedStateService } from \"../shared/shared-state.service\";\n\nconst moment = moment_;\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: \"c-historical-pix-account-list\",\n templateUrl: \"./historical-pix-account-list.component.html\",\n styleUrls: [\"./historical-pix-account-list.component.scss\"],\n})\nexport class HistoricalPixAccountListComponent implements OnInit, OnDestroy, AfterViewInit {\n @ViewChild(CustomFieldsComponent, { static: false })\n public customFields: CustomFieldsComponent;\n\n @Input()\n public permission: object;\n @Input()\n public employeeId: string;\n @Input()\n public dependentId: string;\n @Input()\n public dateFormat: string;\n @Input()\n public endPoint: string = \"hcm/payroll/queries/historicalEmployeePixQuery\";\n @Input()\n public keyPayload: string = \"historicalEmployeePix\";\n @Input()\n public withSidebar: boolean = true;\n @Input()\n public hideField: boolean;\n\n @Output()\n public isOnlyView: EventEmitter<any> = new EventEmitter<boolean>();\n @Output()\n public isOnlyEdit: EventEmitter<any> = new EventEmitter<boolean>();\n @Output()\n public enableView: EventEmitter<any> = new EventEmitter<any>();\n @Output()\n public isEditJudicialDependentPix: EventEmitter<any> = new EventEmitter<boolean>();\n\n private lastRecord: any;\n private ngUnsubscribe = new Subject();\n private _subscription: Subscription;\n public initParameters: any;\n public loading: boolean = true;\n public parameters: any;\n\n public columns = [\n {\n label: this.translateService.instant(\n \"hcm.payroll.historical_pix_account_label_date_change\",\n ),\n field: \"dateChange\",\n },\n {\n label: this.translateService.instant(\n \"hcm.payroll.employees_movimentation_historical_pix_account_label_qtd_account\",\n ),\n field: \"numberOfPixAccount\",\n },\n ];\n\n constructor(\n private confirmationService: ConfirmationService,\n private translateService: TranslateService,\n private activatedRoute: ActivatedRoute,\n private cd: ChangeDetectorRef,\n private router: Router,\n private messageService: MessageService,\n private historicalPixAccountListService: HistoricalPixAccountListService,\n private sharedStateService: SharedStateService,\n ) {}\n\n ngOnInit() {\n this.initParameters = { employeeId: this.employeeId, dependentId: this.dependentId };\n }\n\n ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n this.unsubscribe();\n }\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n\n public onLazyLoad(payload: any) {\n payload.forEach((value: any) => {\n value.dateChange = moment(value.dateChange).format(this.dateFormat);\n });\n\n this.onGridLoad(payload);\n\n this.loading = false;\n }\n\n public getMenuActions(rowData: any) {\n return [\n {\n label: this.translateService.instant(\"hcm.payroll.employees_image_cropper_view\"),\n command: () => {\n if(this.isAllowToViewHistorical) {\n this.sharedStateService.setHideField(true);\n this.sharedStateService.setShowButton(false);\n this.sharedStateService.setShowEditMode(false);\n const dateChange = rowData && rowData.dateChange && moment(rowData.dateChange, this.dateFormat).format(\"YYYY-MM-DD\");\n if (this.withSidebar) {\n this.isOnlyView.emit(true);\n this.router.navigate([`historical-pix-account/${ dateChange }`], {\n relativeTo: this.activatedRoute,\n });\n } else {\n this.sharedStateService.setSaveButton(false);\n this.enableView.emit(dateChange);\n }\n } else {\n this.isNotAllowMessage();\n }\n },\n },\n {\n label: this.translateService.instant(\"hcm.payroll.edit\"),\n command: () => {\n if(this.isAllowToEditHistorical) {\n this.sharedStateService.setHideField(true);\n this.sharedStateService.setShowButton(false);\n this.sharedStateService.setShowEditMode(true);\n const dateChange = rowData && rowData.dateChange && moment(rowData.dateChange, this.dateFormat).format(\"YYYY-MM-DD\");\n if (this.withSidebar) {\n this.router.navigate([`historical-pix-account/${ dateChange }`], {\n relativeTo: this.activatedRoute,\n });\n this.sharedStateService.setShouldReloadWindowOnlyEditMode(true);\n } else {\n setTimeout(() => {\n this.sharedStateService.triggerActiveValidatorsOnEditModalOpen();\n });\n this.sharedStateService.setSaveButton(true);\n this.enableView.emit(dateChange);\n }\n } else {\n this.isNotAllowMessage();\n }\n },\n },\n {\n label: this.translateService.instant(\"hcm.payroll.delete\"),\n command: () => {\n if (this.isAllowToDeleteHistorical && rowData) {\n this.delete(rowData.id, rowData.dateChange);\n } else {\n this.isNotAllowMessage();\n }\n },\n }\n ];\n }\n\n public delete(id: any, dateChange: string) {\n if (id === this.lastRecord.id) {\n const dateChangeToDto = moment(dateChange, this.dateFormat).format(\"YYYY-MM-DD\");\n this.confirmationService.confirm({\n message: `${ this.translateService.instant(\n \"hcm.payroll.employees_movimentation_historical_pix_account_question_confirm_delete\",\n ) }?`,\n accept: () => {\n this.loading = true;\n const service = this.withSidebar ? ServiceType.PAYROLL : ServiceType.DEPENDENT;\n this.historicalPixAccountListService\n .remove(this.employeeId, dateChangeToDto, service, this.dependentId)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(\n () => {\n this.messageService.add({\n severity: \"success\",\n summary: this.translateService.instant(\"hcm.payroll.success\"),\n detail: this.translateService.instant(\"hcm.payroll.employees_movimentation_historical_pix_account_remove\"),\n });\n this.parameters = (this.parameters && { ...this.parameters }) || {};\n },\n () => {\n this.messageService.add({\n severity: \"error\",\n summary: this.translateService.instant(\"hcm.payroll.error\"),\n detail: this.translateService.instant(\"hcm.payroll.employees_movimentation_historical_pix_account_error_remove\"),\n });\n this.loading = false;\n },\n );\n },\n });\n } else {\n this.messageService.add({\n severity: \"error\",\n summary: this.translateService.instant(\"hcm.payroll.error\"),\n detail: this.translateService.instant(\"hcm.payroll.not_allowed_delete_last\"),\n });\n }\n }\n\n public add() {\n if (this.isAllowToAddHistorical) {\n this.router.navigate([\"historical-pix-account-new\"], {\n relativeTo: this.activatedRoute,\n });\n } else {\n this.messageService.add({\n severity: \"error\",\n summary: this.translateService.instant(\"hcm.payroll.error\"),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n });\n }\n }\n\n private isNotAllowMessage() {\n this.messageService.add({\n severity: \"error\",\n summary: this.translateService.instant(\"hcm.payroll.error\"),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n });\n }\n\n private onGridLoad(payload: any) {\n if (payload && payload.length) {\n this.lastRecord = payload[0];\n }\n }\n\n private unsubscribe() {\n if (this._subscription) {\n this._subscription.unsubscribe();\n }\n }\n\n @Input()\n public set hideFieldsOnAdd$(subject: Subject<boolean>) {\n this.unsubscribe();\n if (subject) {\n this._subscription = subject.subscribe((value) => {\n this.sharedStateService.setHideField(value);\n });\n }\n }\n\n private get isAllowToAddHistorical() {\n return (\n this.permission[\"incluir\"]\n );\n }\n\n private get isAllowToDeleteHistorical() {\n return (\n this.permission[\"excluir\"]\n );\n }\n\n private get isAllowToViewHistorical() {\n return (\n this.permission[\"visualizar\"]\n );\n }\n\n private get isAllowToEditHistorical() {\n return (\n this.permission[\"editar\"]\n );\n }\n\n public get scopedActions() {\n return this.getMenuActions.bind(this);\n }\n\n @Input()\n public set reloadList(condition: boolean) {\n if (condition) {\n this.loading = true;\n this.parameters = (this.parameters && { ...this.parameters }) || {};\n }\n }\n\n}\n","import { CommonModule } from \"@angular/common\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { ButtonModule, LoadingStateModule } from \"@seniorsistemas/angular-components\";\nimport { AutoCompleteModule } from \"primeng/autocomplete\";\nimport { ConfirmDialogModule } from \"primeng/confirmdialog\";\nimport { TableModule } from \"primeng/table\";\nimport { TooltipModule } from \"primeng/tooltip\";\nimport { DataListRestModule } from \"../data-list-rest/index\";\n\nimport { SharedModule } from \"../shared/shared.module\";\nimport { HistoricalPixAccountListComponent } from \"./historical-pix-account-list.component\";\nimport { HistoricalPixAccountListService } from \"./historical-pix-account-list.service\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n HttpClientModule,\n AutoCompleteModule,\n SharedModule,\n ReactiveFormsModule,\n TableModule,\n ButtonModule,\n TooltipModule,\n LoadingStateModule,\n DataListRestModule,\n ConfirmDialogModule,\n ],\n declarations: [HistoricalPixAccountListComponent],\n providers: [HistoricalPixAccountListService],\n exports: [HistoricalPixAccountListComponent],\n})\nexport class HistoricalPixAccountListModule {\n}\n","/*\n * Public API Surface of core\n */\nexport * from './components/utils/cpf-validator';\nexport * from './components/utils/cnpj-validator';\nexport * from './components/vanilla/string-methods';\nexport * from './components/block-ui/index';\nexport * from './components/breadcrumb/index';\nexport * from './components/control-messages-error/index';\nexport * from './components/custom-fields/index';\nexport * from './components/directives/index';\nexport * from './components/data-list-rest/index';\nexport * from './components/employee-summary/index';\nexport * from './components/admission-draft-summary/index';\nexport * from './components/error-page/index';\nexport * from './components/field-validator/index';\nexport * from './components/file-upload/index';\nexport * from './components/image-cropper/index';\nexport * from './components/input-date/index';\nexport * from './components/input-date-model/index';\nexport * from './components/input-rest-auto-complete/index';\nexport * from './components/input-rest-auto-complete-employee/index';\nexport * from './components/input-rest-auto-complete-employee-model/index';\nexport * from './components/input-rest-auto-complete-enum/index';\nexport * from './components/input-rest-auto-complete-model/index';\nexport * from './components/input-rest-auto-complete-model-enum/index';\nexport * from './components/input-rest-auto-complete-jobposition/index';\nexport * from './components/list-rest/index';\nexport * from './components/spinner/index';\nexport * from './components/type-admission/index';\nexport * from './components/utils/helpers';\nexport * from './components/utils/validations';\nexport * from './components/shared/http-client.service';\nexport * from './services/services.module';\nexport * from './services/permissions.service';\nexport * from './components/toast/index';\nexport * from './services/integration.service';\nexport * from './components/data-list/index';\nexport * from './services/company-indications.service';\nexport * from './services/lookup-parameters.service';\nexport * from './services/autocomplete-parameters.service';\nexport * from './components/lookup/index';\nexport * from './components/workstationgroup-lookup/index';\nexport * from './components/historical-bank-account/index';\nexport * from './components/historical-bank-account-list/index';\nexport * from './core/enums/index';\nexport * from './core/entities/index';\nexport * from './components/utils/date-validator/date-validators';\nexport * from './core/interfaces/index';\nexport * from './services/report.service';\nexport * from './services/workflow-integrator.service';\nexport * from './services/workflow-data.service';\nexport * from './components/employee-selector/index';\nexport * from './services/form-comparator.service';\nexport * from './components/from-to/index';\nexport * from './components/historical-pix-account/index';\nexport * from './components/historical-pix-account-list/index';\nexport * from './components/shared/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n\nexport {DataListRestComponent as ɵb} from './components/data-list-rest/data-list-rest.component';\nexport {DataListRestService as ɵc} from './components/data-list-rest/data-list-rest.service';\nexport {DataListComponent as ɵj} from './components/data-list/data-list.component';\nexport {DataListService as ɵk} from './components/data-list/data-list.service';\nexport {FileUploadService as ɵd} from './components/file-upload/file-upload.service';\nexport {HistoricalBankAccountFormComponent as ɵq} from './components/historical-bank-account/historical-bank-account-form/historical-bank-account-form.component';\nexport {HistoricakPixAccountBase as ɵr} from './components/historical-pix-account/historical-pix-account-base';\nexport {HistoricalPixAccountFormComponent as ɵs} from './components/historical-pix-account/historical-pix-account-form/historical-pix-account-form.component';\nexport {InputRestAutoCompleteEmployeeModelComponent as ɵf} from './components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.component';\nexport {InputRestAutoCompleteEmployeeComponent as ɵe} from './components/input-rest-auto-complete-employee/input-rest-auto-complete-employee.component';\nexport {InputRestAutoCompleteModelEnumComponent as ɵh} from './components/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.component';\nexport {InputRestAutoCompleteModelComponent as ɵg} from './components/input-rest-auto-complete-model/input-rest-auto-complete-model.component';\nexport {ListRestService as ɵi} from './components/list-rest/list-rest.service';\nexport {LookupComponent as ɵl} from './components/lookup/lookup.component';\nexport {LookupService as ɵm} from './components/lookup/lookup.service';\nexport {SharedModule as ɵa} from './components/shared/shared.module';\nexport {AutocompleteService as ɵo} from './components/workstationgroup-lookup/autocomplete.service';\nexport {LookupService as ɵp} from './components/workstationgroup-lookup/lookup.service';\nexport {WorkstationgroupLookupComponent as ɵn} from './components/workstationgroup-lookup/workstationgroup-lookup.component';"],"names":["tslib_1.__decorate","_moment","SharedModule","moment","ButtonModule","momentImported","tslib_1.__values","ToastModulePrimeng","LookupService","CustomFieldsComponent","CustomFieldsModule","tslib_1.__extends"],"mappings":"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"}