@senior-gestao-pessoas/payroll-core 9.6.0 → 9.6.1-feature-hcmgdp-12319-c14f3ab7
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.
- package/bundles/senior-gestao-pessoas-payroll-core.umd.js +12 -0
- package/bundles/senior-gestao-pessoas-payroll-core.umd.js.map +1 -1
- package/bundles/senior-gestao-pessoas-payroll-core.umd.min.js +1 -1
- package/bundles/senior-gestao-pessoas-payroll-core.umd.min.js.map +1 -1
- package/components/employee-summary/employee-summary.service.d.ts +1 -0
- package/components/input-rest-auto-complete/input-rest-auto-complete.component.d.ts +1 -0
- package/esm2015/components/employee-summary/employee-summary.service.js +4 -1
- package/esm2015/components/input-rest-auto-complete/input-rest-auto-complete.component.js +10 -1
- package/esm5/components/employee-summary/employee-summary.service.js +4 -1
- package/esm5/components/input-rest-auto-complete/input-rest-auto-complete.component.js +10 -1
- package/fesm2015/senior-gestao-pessoas-payroll-core.js +12 -0
- package/fesm2015/senior-gestao-pessoas-payroll-core.js.map +1 -1
- package/fesm5/senior-gestao-pessoas-payroll-core.js +12 -0
- package/fesm5/senior-gestao-pessoas-payroll-core.js.map +1 -1
- package/package.json +1 -1
- 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/utils/generic-validators.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.component.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.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 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 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 * 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 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 * 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","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 Component,\n OnInit,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n OnDestroy,\n AfterViewInit,\n ViewChild,\n DoCheck,\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 { GenericValidator } from \"../../utils/generic-validators\";\nimport { FormatUtilsService } from \"../../utils/format-utils/format-utils.service\";\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 implements OnInit, OnDestroy, AfterViewInit, DoCheck {\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 @Input()\n public paramsForm: FormGroup = new FormGroup({});\n @Input()\n public defaultCpfNumber: string = null;\n @Input()\n public permitsEditBankAccountForm: boolean = false;\n\n @Output()\n public visibleChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output()\n public pixAccountItemToList: EventEmitter<any> = new EventEmitter<any>();\n\n private _visible: boolean;\n private ngUnsubscribe = new Subject();\n private employeeId: string;\n private pixAccountList: object[];\n private initialValidatorOfPercentage: ValidatorFn[] = [Validators.required, Validators.min(0.01)];\n\n\n public labelBtnAdd: string = \"hcm.payroll.employees_add\";\n public pixAccountFormGroup: FormGroup;\n public maxValuePercentage: number = 100.00;\n public visibleBtnSave: boolean = true;\n public isView: boolean = false;\n public pixKeyType: string;\n public isShowPixKeyFieldValidatorMessage = false;\n\n constructor(\n private formBuilder: FormBuilder,\n private cd: ChangeDetectorRef,\n ) {\n this.createFormGroup();\n this.registerSubjects();\n }\n\n ngOnInit() {\n }\n\n ngDoCheck(): void {\n if (this.pixAccountFormGroup && this.pixKeyType === \"BANK_ACCOUNT\") {\n const pixKeyControl = this.pixAccountFormGroup.get(\"pixKey\");\n if (pixKeyControl && !pixKeyControl.disabled) {\n pixKeyControl.disable();\n }\n }\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.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(null, Validators.compose([\n ...this.initialValidatorOfPercentage,\n Validators.max(this.maxValuePercentage),\n ])),\n externalId: this.formBuilder.control(null),\n customFields: this.formBuilder.control(null),\n });\n }\n\n public onChangePixKeyType(item: any) {\n if (item.key) {\n this.pixKeyType = item.key;\n this.isShowPixKeyFieldValidatorMessage = true;\n this.pixAccountFormGroup.get(\"pixKey\").reset();\n this.setPixKeyValidators(true);\n\n if(item.key === \"CPF\") {\n this.setDefaultCpfPixKey();\n }\n }\n }\n\n public onClearPixKeyType() {\n this.isShowPixKeyFieldValidatorMessage = false;\n this.pixAccountFormGroup.get(\"pixKey\").reset();\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\n if (value && value.permitsEditBankAccount) {\n this.permitsEditBankAccountForm = true;\n }\n\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\n this.formatPixKeyTelephoneNumber();\n }\n }\n } else {\n this.labelBtnAdd = \"hcm.payroll.employees_add\";\n }\n\n }\n\n private formatPixKeyTelephoneNumber() {\n if (this.pixKeyType === \"TELEPHONE\") {\n this.pixAccountFormGroup.get(\"pixKey\").setValue(FormatUtilsService.getFormattedTelephoneNumber(this.pixAccountFormGroup.get(\"pixKey\").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) {\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);\n\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 /**\n * O Input que recebe a lista do component pai e chama o método de validação passando a lista recebida.\n * @param pixAccountList\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 /**\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 \"pixAccount\".\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 pixAccountList\n * @param index\n */\n private setValidatorsAccordingList(pixAccountList: object[], index: number = null, isEditMode: boolean = true) {\n this.pixAccountList = pixAccountList && pixAccountList.length ? [...pixAccountList] : [];\n\n const percentageIncluded: any = [];\n\n if (this.pixAccountList && this.pixAccountList.length) {\n this.pixAccountList.filter((field: any, key) => {\n if (field[\"percentage\"] && key != index) {\n percentageIncluded.push(field[\"percentage\"]);\n }\n });\n\n }\n this.beforeSetPixKeyTypeValidator();\n this.setPixKeyValidators(isEditMode);\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 setPixKeyValidators(isEditMode: boolean) {\n const genericPixKey = this.pixAccountFormGroup.get(\"pixKey\");\n if (this.pixKeyType) {\n switch (this.pixKeyType) {\n case \"TELEPHONE\":\n genericPixKey.setValidators(Validators.compose([\n Validators.required, GenericValidator.isValidPhoneNumber,\n ]));\n break;\n case \"EMAIL\":\n genericPixKey.setValidators(Validators.compose([\n Validators.required, GenericValidator.isValidEmail,\n ]));\n break;\n case \"CPF\":\n genericPixKey.setValidators(Validators.compose([\n Validators.required, GenericValidator.isValidCpf,\n ]));\n break;\n case \"CNPJ\":\n genericPixKey.setValidators(Validators.compose([\n Validators.required, GenericValidator.isValidCnpj,\n ]));\n break;\n case \"RANDOM_KEY\":\n genericPixKey.setValidators(Validators.required);\n break;\n default:\n genericPixKey.setValidators(null);\n break;\n }\n\n if(isEditMode) {\n genericPixKey.enable();\n }\n\n genericPixKey.updateValueAndValidity();\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.pixAccountFormGroup.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 public phoneMask(event: any) {\n FormatUtilsService.formatTelephoneInputEvent(event);\n }\n\n setDefaultCpfPixKey() {\n if(this.defaultCpfNumber) {\n this.pixAccountFormGroup.get(\"pixKey\").setValue(this.defaultCpfNumber);\n }\n else {\n const sheetDocument = this.paramsForm.get(\"sheetDocument\");\n if(sheetDocument) {\n const cpf = sheetDocument.get(\"cpfNumber\").value;\n if(cpf) {\n this.pixAccountFormGroup.get(\"pixKey\").setValue(cpf);\n }\n }\n }\n }\n\n public beforeSetPixKeyTypeValidator() {\n const pixKeyType = this.pixAccountFormGroup.get(\"pixKeyType\");\n\n if (this.pixAccountList && this.pixAccountList.length && pixKeyType) {\n pixKeyType\n .setValidators(Validators.compose([\n Validators.required,\n this.validateDuplicatePixKeyTypeBankAccount(this.pixAccountList),\n ]));\n\n } else {\n pixKeyType.setValidators(Validators.required);\n }\n }\n\n private validateDuplicatePixKeyTypeBankAccount(listCompare: object[]) {\n return (control: AbstractControl): Validators => {\n const value = control && control.value;\n let condition = false;\n listCompare.filter((field: any) => {\n if(value) {\n if (field[\"pixKeyType\"].key === 'BANK_ACCOUNT' && value.key === field[\"pixKeyType\"].key) {\n return condition = true;\n }\n }\n });\n\n if (condition && !this.permitsEditBankAccountForm) {\n return { pixKeyTypeBankAccountDuplicate: true };\n } else {\n return null;\n }\n };\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 } 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 { MessageService } from \"primeng/api\";\nimport { FormatUtilsService } from \"../utils/format-utils/format-utils.service\";\nimport { HistoricalPixAccountFormComponent } from \"./historical-pix-account-form/historical-pix-account-form.component\";\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 implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n @ViewChild(CustomFieldsComponent, { static: false })\n public customFields: CustomFieldsComponent;\n @ViewChild(HistoricalPixAccountFormComponent, { static: false })\n public formComponent: HistoricalPixAccountFormComponent;\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 paramsForm: FormGroup;\n @Input()\n public defaultCpfNumber: string = null;\n @Input()\n public permission: object;\n @Input()\n public listDataReciever: any[] = [];\n @Input()\n public showButtonEdit: 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\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 permitsEditBankAccount: boolean = false;\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 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) || this.showButtonEdit),\n label: this.translateService.instant(\"hcm.payroll.edit\"),\n command: () => {\n this.permitsEditBankAccount = true;\n if (this.isAllowToEditHistorical) {\n rowData[\"index\"] = key;\n this.pixAccountItemInput = {\n currentItem: rowData, listData: this.listDataNoPage, isEditMode: true, permitsEditBankAccount: true\n };\n this.visible = true;\n } else {\n this.isEditModeActive.emit(true);\n if (this.listFromApp.length == 0) {\n rowData[\"index\"] = key;\n this.pixAccountItemInput = {\n currentItem: rowData, listData: this.listDataNoPage, isEditMode: true, permitsEditBankAccount: true\n };\n }\n }\n },\n },\n {\n visible: !this.isEditMode,\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 public cd: ChangeDetectorRef,\n private formBuilder: FormBuilder,\n private messageService: MessageService,\n ) {\n this.createFormGroup();\n }\n\n ngOnInit() {\n this.formGroup.setControl(this.fieldFormGroup, this.historicalPixAccountList);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['listDataReciever'] && changes['listDataReciever'].currentValue) {\n this.listFromApp = changes['listDataReciever'].currentValue;\n }\n if (changes['showButtonEdit'] && changes['showButtonEdit'].currentValue) {\n this.permitsEditBankAccount = changes['showButtonEdit'].currentValue;\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 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\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 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 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 if (this.formComponent) {\n this.formComponent.permitsEditBankAccountForm = false;\n this.cd.detectChanges();\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 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 public set visible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(this.visible);\n\n if (!value) {\n this.pixAccountItemInput = {};\n }\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 { 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","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\";\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 ],\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 } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { HistoricalPixAccountListService } from \"./historical-pix-account-list.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\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 enableEdit: 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_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 ) {\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.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 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\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 const dateChange = rowData && rowData.dateChange && moment(rowData.dateChange, this.dateFormat).format(\"YYYY-MM-DD\");\n if (this.withSidebar) {\n this.isOnlyView.emit(false);\n this.isOnlyEdit.emit(true);\n this.router.navigate([`historical-pix-account/${ dateChange }`], {\n relativeTo: this.activatedRoute,\n });\n } else {\n this.enableEdit.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 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';\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 {HistoricalPixAccountFormComponent as ɵr} 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","ToastModulePrimeng","LookupService","CustomFieldsComponent","CustomFieldsModule"],"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/utils/generic-validators.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.component.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.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 getEmployeeDocuments(path: string, employeeId: string): Observable<any> {\n return this.http.post(`hcm/payroll/queries/${path}`, { employeeId: employeeId });\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 isSituationDefinition: 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.isSituationDefinition) {\n const params = { searchText: query };\n return this.service\n .query('autocompleteSituationDefinitionQuery', params, ServiceType.ORGANIZATION_REGISTER)\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 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 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 * 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 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 * 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","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 Component,\n OnInit,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n OnDestroy,\n AfterViewInit,\n ViewChild,\n DoCheck,\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 { GenericValidator } from \"../../utils/generic-validators\";\nimport { FormatUtilsService } from \"../../utils/format-utils/format-utils.service\";\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 implements OnInit, OnDestroy, AfterViewInit, DoCheck {\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 @Input()\n public paramsForm: FormGroup = new FormGroup({});\n @Input()\n public defaultCpfNumber: string = null;\n @Input()\n public permitsEditBankAccountForm: boolean = false;\n\n @Output()\n public visibleChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output()\n public pixAccountItemToList: EventEmitter<any> = new EventEmitter<any>();\n\n private _visible: boolean;\n private ngUnsubscribe = new Subject();\n private employeeId: string;\n private pixAccountList: object[];\n private initialValidatorOfPercentage: ValidatorFn[] = [Validators.required, Validators.min(0.01)];\n\n\n public labelBtnAdd: string = \"hcm.payroll.employees_add\";\n public pixAccountFormGroup: FormGroup;\n public maxValuePercentage: number = 100.00;\n public visibleBtnSave: boolean = true;\n public isView: boolean = false;\n public pixKeyType: string;\n public isShowPixKeyFieldValidatorMessage = false;\n\n constructor(\n private formBuilder: FormBuilder,\n private cd: ChangeDetectorRef,\n ) {\n this.createFormGroup();\n this.registerSubjects();\n }\n\n ngOnInit() {\n }\n\n ngDoCheck(): void {\n if (this.pixAccountFormGroup && this.pixKeyType === \"BANK_ACCOUNT\") {\n const pixKeyControl = this.pixAccountFormGroup.get(\"pixKey\");\n if (pixKeyControl && !pixKeyControl.disabled) {\n pixKeyControl.disable();\n }\n }\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.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(null, Validators.compose([\n ...this.initialValidatorOfPercentage,\n Validators.max(this.maxValuePercentage),\n ])),\n externalId: this.formBuilder.control(null),\n customFields: this.formBuilder.control(null),\n });\n }\n\n public onChangePixKeyType(item: any) {\n if (item.key) {\n this.pixKeyType = item.key;\n this.isShowPixKeyFieldValidatorMessage = true;\n this.pixAccountFormGroup.get(\"pixKey\").reset();\n this.setPixKeyValidators(true);\n\n if(item.key === \"CPF\") {\n this.setDefaultCpfPixKey();\n }\n }\n }\n\n public onClearPixKeyType() {\n this.isShowPixKeyFieldValidatorMessage = false;\n this.pixAccountFormGroup.get(\"pixKey\").reset();\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\n if (value && value.permitsEditBankAccount) {\n this.permitsEditBankAccountForm = true;\n }\n\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\n this.formatPixKeyTelephoneNumber();\n }\n }\n } else {\n this.labelBtnAdd = \"hcm.payroll.employees_add\";\n }\n\n }\n\n private formatPixKeyTelephoneNumber() {\n if (this.pixKeyType === \"TELEPHONE\") {\n this.pixAccountFormGroup.get(\"pixKey\").setValue(FormatUtilsService.getFormattedTelephoneNumber(this.pixAccountFormGroup.get(\"pixKey\").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) {\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);\n\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 /**\n * O Input que recebe a lista do component pai e chama o método de validação passando a lista recebida.\n * @param pixAccountList\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 /**\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 \"pixAccount\".\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 pixAccountList\n * @param index\n */\n private setValidatorsAccordingList(pixAccountList: object[], index: number = null, isEditMode: boolean = true) {\n this.pixAccountList = pixAccountList && pixAccountList.length ? [...pixAccountList] : [];\n\n const percentageIncluded: any = [];\n\n if (this.pixAccountList && this.pixAccountList.length) {\n this.pixAccountList.filter((field: any, key) => {\n if (field[\"percentage\"] && key != index) {\n percentageIncluded.push(field[\"percentage\"]);\n }\n });\n\n }\n this.beforeSetPixKeyTypeValidator();\n this.setPixKeyValidators(isEditMode);\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 setPixKeyValidators(isEditMode: boolean) {\n const genericPixKey = this.pixAccountFormGroup.get(\"pixKey\");\n if (this.pixKeyType) {\n switch (this.pixKeyType) {\n case \"TELEPHONE\":\n genericPixKey.setValidators(Validators.compose([\n Validators.required, GenericValidator.isValidPhoneNumber,\n ]));\n break;\n case \"EMAIL\":\n genericPixKey.setValidators(Validators.compose([\n Validators.required, GenericValidator.isValidEmail,\n ]));\n break;\n case \"CPF\":\n genericPixKey.setValidators(Validators.compose([\n Validators.required, GenericValidator.isValidCpf,\n ]));\n break;\n case \"CNPJ\":\n genericPixKey.setValidators(Validators.compose([\n Validators.required, GenericValidator.isValidCnpj,\n ]));\n break;\n case \"RANDOM_KEY\":\n genericPixKey.setValidators(Validators.required);\n break;\n default:\n genericPixKey.setValidators(null);\n break;\n }\n\n if(isEditMode) {\n genericPixKey.enable();\n }\n\n genericPixKey.updateValueAndValidity();\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.pixAccountFormGroup.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 public phoneMask(event: any) {\n FormatUtilsService.formatTelephoneInputEvent(event);\n }\n\n setDefaultCpfPixKey() {\n if(this.defaultCpfNumber) {\n this.pixAccountFormGroup.get(\"pixKey\").setValue(this.defaultCpfNumber);\n }\n else {\n const sheetDocument = this.paramsForm.get(\"sheetDocument\");\n if(sheetDocument) {\n const cpf = sheetDocument.get(\"cpfNumber\").value;\n if(cpf) {\n this.pixAccountFormGroup.get(\"pixKey\").setValue(cpf);\n }\n }\n }\n }\n\n public beforeSetPixKeyTypeValidator() {\n const pixKeyType = this.pixAccountFormGroup.get(\"pixKeyType\");\n\n if (this.pixAccountList && this.pixAccountList.length && pixKeyType) {\n pixKeyType\n .setValidators(Validators.compose([\n Validators.required,\n this.validateDuplicatePixKeyTypeBankAccount(this.pixAccountList),\n ]));\n\n } else {\n pixKeyType.setValidators(Validators.required);\n }\n }\n\n private validateDuplicatePixKeyTypeBankAccount(listCompare: object[]) {\n return (control: AbstractControl): Validators => {\n const value = control && control.value;\n let condition = false;\n listCompare.filter((field: any) => {\n if(value) {\n if (field[\"pixKeyType\"].key === 'BANK_ACCOUNT' && value.key === field[\"pixKeyType\"].key) {\n return condition = true;\n }\n }\n });\n\n if (condition && !this.permitsEditBankAccountForm) {\n return { pixKeyTypeBankAccountDuplicate: true };\n } else {\n return null;\n }\n };\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 } 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 { MessageService } from \"primeng/api\";\nimport { FormatUtilsService } from \"../utils/format-utils/format-utils.service\";\nimport { HistoricalPixAccountFormComponent } from \"./historical-pix-account-form/historical-pix-account-form.component\";\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 implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n @ViewChild(CustomFieldsComponent, { static: false })\n public customFields: CustomFieldsComponent;\n @ViewChild(HistoricalPixAccountFormComponent, { static: false })\n public formComponent: HistoricalPixAccountFormComponent;\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 paramsForm: FormGroup;\n @Input()\n public defaultCpfNumber: string = null;\n @Input()\n public permission: object;\n @Input()\n public listDataReciever: any[] = [];\n @Input()\n public showButtonEdit: 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\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 permitsEditBankAccount: boolean = false;\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 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) || this.showButtonEdit),\n label: this.translateService.instant(\"hcm.payroll.edit\"),\n command: () => {\n this.permitsEditBankAccount = true;\n if (this.isAllowToEditHistorical) {\n rowData[\"index\"] = key;\n this.pixAccountItemInput = {\n currentItem: rowData, listData: this.listDataNoPage, isEditMode: true, permitsEditBankAccount: true\n };\n this.visible = true;\n } else {\n this.isEditModeActive.emit(true);\n if (this.listFromApp.length == 0) {\n rowData[\"index\"] = key;\n this.pixAccountItemInput = {\n currentItem: rowData, listData: this.listDataNoPage, isEditMode: true, permitsEditBankAccount: true\n };\n }\n }\n },\n },\n {\n visible: !this.isEditMode,\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 public cd: ChangeDetectorRef,\n private formBuilder: FormBuilder,\n private messageService: MessageService,\n ) {\n this.createFormGroup();\n }\n\n ngOnInit() {\n this.formGroup.setControl(this.fieldFormGroup, this.historicalPixAccountList);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['listDataReciever'] && changes['listDataReciever'].currentValue) {\n this.listFromApp = changes['listDataReciever'].currentValue;\n }\n if (changes['showButtonEdit'] && changes['showButtonEdit'].currentValue) {\n this.permitsEditBankAccount = changes['showButtonEdit'].currentValue;\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 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\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 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 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 if (this.formComponent) {\n this.formComponent.permitsEditBankAccountForm = false;\n this.cd.detectChanges();\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 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 public set visible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(this.visible);\n\n if (!value) {\n this.pixAccountItemInput = {};\n }\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 { 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","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\";\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 ],\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 } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { HistoricalPixAccountListService } from \"./historical-pix-account-list.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\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 enableEdit: 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_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 ) {\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.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 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\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 const dateChange = rowData && rowData.dateChange && moment(rowData.dateChange, this.dateFormat).format(\"YYYY-MM-DD\");\n if (this.withSidebar) {\n this.isOnlyView.emit(false);\n this.isOnlyEdit.emit(true);\n this.router.navigate([`historical-pix-account/${ dateChange }`], {\n relativeTo: this.activatedRoute,\n });\n } else {\n this.enableEdit.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 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';\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 {HistoricalPixAccountFormComponent as ɵr} 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","ToastModulePrimeng","LookupService","CustomFieldsComponent","CustomFieldsModule"],"mappings":"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"}
|