@senior-gestao-pessoas/payroll-core 9.0.0 → 9.1.0-5e184124-4e09-4f1a-9bdd-3cc4483b1cbf

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/bundles/senior-gestao-pessoas-payroll-core.umd.js +1015 -3
  2. package/bundles/senior-gestao-pessoas-payroll-core.umd.js.map +1 -1
  3. package/bundles/senior-gestao-pessoas-payroll-core.umd.min.js +1 -1
  4. package/bundles/senior-gestao-pessoas-payroll-core.umd.min.js.map +1 -1
  5. package/components/historical-pix-account/historical-pix-account-form/historical-pix-account-form.component.d.ts +74 -0
  6. package/components/historical-pix-account/historical-pix-account.component.d.ts +74 -0
  7. package/components/historical-pix-account/historical-pix-account.module.d.ts +2 -0
  8. package/components/historical-pix-account/historical-pix-account.service.d.ts +8 -0
  9. package/components/historical-pix-account/index.d.ts +3 -0
  10. package/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.component.d.ts +5 -1
  11. package/components/utils/format-utils/format-utils.service.d.ts +33 -0
  12. package/components/utils/generic-validators.d.ts +24 -0
  13. package/esm2015/components/historical-pix-account/historical-pix-account-form/historical-pix-account-form.component.js +312 -0
  14. package/esm2015/components/historical-pix-account/historical-pix-account.component.js +323 -0
  15. package/esm2015/components/historical-pix-account/historical-pix-account.module.js +58 -0
  16. package/esm2015/components/historical-pix-account/historical-pix-account.service.js +20 -0
  17. package/esm2015/components/historical-pix-account/index.js +4 -0
  18. package/esm2015/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.component.js +21 -4
  19. package/esm2015/components/utils/format-utils/format-utils.service.js +96 -0
  20. package/esm2015/components/utils/generic-validators.js +164 -0
  21. package/esm2015/public_api.js +2 -1
  22. package/esm2015/senior-gestao-pessoas-payroll-core.js +2 -1
  23. package/esm5/components/historical-pix-account/historical-pix-account-form/historical-pix-account-form.component.js +336 -0
  24. package/esm5/components/historical-pix-account/historical-pix-account.component.js +357 -0
  25. package/esm5/components/historical-pix-account/historical-pix-account.module.js +61 -0
  26. package/esm5/components/historical-pix-account/historical-pix-account.service.js +22 -0
  27. package/esm5/components/historical-pix-account/index.js +4 -0
  28. package/esm5/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.component.js +22 -4
  29. package/esm5/components/utils/format-utils/format-utils.service.js +100 -0
  30. package/esm5/components/utils/generic-validators.js +167 -0
  31. package/esm5/public_api.js +2 -1
  32. package/esm5/senior-gestao-pessoas-payroll-core.js +2 -1
  33. package/fesm2015/senior-gestao-pessoas-payroll-core.js +943 -4
  34. package/fesm2015/senior-gestao-pessoas-payroll-core.js.map +1 -1
  35. package/fesm5/senior-gestao-pessoas-payroll-core.js +1012 -4
  36. package/fesm5/senior-gestao-pessoas-payroll-core.js.map +1 -1
  37. package/package.json +1 -1
  38. package/public_api.d.ts +1 -0
  39. package/senior-gestao-pessoas-payroll-core.d.ts +1 -0
  40. package/senior-gestao-pessoas-payroll-core.metadata.json +1 -1
@@ -3129,8 +3129,9 @@ InputRestAutoCompleteEmployeeModelService = __decorate([
3129
3129
  ], InputRestAutoCompleteEmployeeModelService);
3130
3130
 
3131
3131
  let InputRestAutoCompleteEmployeeModelComponent = class InputRestAutoCompleteEmployeeModelComponent {
3132
- constructor(service) {
3132
+ constructor(service, activatedRoute) {
3133
3133
  this.service = service;
3134
+ this.activatedRoute = activatedRoute;
3134
3135
  this.forceSelection = true;
3135
3136
  this.keyName = 'name';
3136
3137
  this.onBlur = new EventEmitter();
@@ -3138,8 +3139,13 @@ let InputRestAutoCompleteEmployeeModelComponent = class InputRestAutoCompleteEmp
3138
3139
  this.onClear = new EventEmitter();
3139
3140
  this.modelChange = new EventEmitter();
3140
3141
  this.suggestions = [];
3142
+ this.ngUnsubscribe = new Subject();
3143
+ }
3144
+ ngOnInit() {
3145
+ this.activatedRoute.data.pipe(takeUntil(this.ngUnsubscribe)).subscribe((data) => {
3146
+ this.useWorkflow = !!(data && data.useWorkflow);
3147
+ });
3141
3148
  }
3142
- ngOnInit() { }
3143
3149
  filterQuery(event) {
3144
3150
  const query = event.query;
3145
3151
  if (!(isNaN(query) && query.toString().length < 3)) {
@@ -3198,6 +3204,13 @@ let InputRestAutoCompleteEmployeeModelComponent = class InputRestAutoCompleteEmp
3198
3204
  if (this.employeeType) {
3199
3205
  returnFilter['employeeType'] = this.employeeType;
3200
3206
  }
3207
+ /**
3208
+ * If para uso do BPO
3209
+ * Serve para tirar os colaboradores demitidos do dropbox do autocomplete
3210
+ */
3211
+ if (this.useWorkflow) {
3212
+ returnFilter['timeTrackingResumeType'] = { key: "FIRED" };
3213
+ }
3201
3214
  return returnFilter;
3202
3215
  }
3203
3216
  /**
@@ -3223,7 +3236,8 @@ let InputRestAutoCompleteEmployeeModelComponent = class InputRestAutoCompleteEmp
3223
3236
  }
3224
3237
  };
3225
3238
  InputRestAutoCompleteEmployeeModelComponent.ctorParameters = () => [
3226
- { type: InputRestAutoCompleteEmployeeModelService }
3239
+ { type: InputRestAutoCompleteEmployeeModelService },
3240
+ { type: ActivatedRoute }
3227
3241
  ];
3228
3242
  __decorate([
3229
3243
  Input()
@@ -8411,6 +8425,931 @@ FromToModule = __decorate([
8411
8425
  })
8412
8426
  ], FromToModule);
8413
8427
 
8428
+ class FormatUtilsService {
8429
+ /**
8430
+ * Retorna o CPF formatado
8431
+ * @param cpf CPF
8432
+ */
8433
+ static getFormattedCpf(cpf) {
8434
+ if (cpf) {
8435
+ return cpf
8436
+ .replace(/\D/g, "")
8437
+ .replace(/(\d{3})(\d)/, "$1.$2")
8438
+ .replace(/(\d{3})(\d)/, "$1.$2")
8439
+ .replace(/(\d{3})(\d)/, "$1-$2");
8440
+ }
8441
+ return null;
8442
+ }
8443
+ /**
8444
+ * Retorna o CNPJ formatado
8445
+ * @param cnpj CNPJ
8446
+ */
8447
+ static getFormattedCnpj(cnpj) {
8448
+ if (cnpj) {
8449
+ return cnpj
8450
+ .replace(/\D/g, "")
8451
+ .replace(/(\d{2})(\d)/, "$1.$2")
8452
+ .replace(/(\d{3})(\d)/, "$1.$2")
8453
+ .replace(/(\d{3})(\d)/, "$1/$2")
8454
+ .replace(/(\d{4})(\d)/, "$1-$2");
8455
+ }
8456
+ return null;
8457
+ }
8458
+ /**
8459
+ * Retorna a mascara do CPF/CNPJ
8460
+ * @param key Valores possíveis são CPF ou CNPJ
8461
+ */
8462
+ static getCpfCnpjMask(key) {
8463
+ switch (key) {
8464
+ case "CPF":
8465
+ return "999.999.999-99";
8466
+ case "CNPJ":
8467
+ return "99.999.999/9999-99";
8468
+ default:
8469
+ return "";
8470
+ }
8471
+ }
8472
+ /**
8473
+ * Metódo para formatar o número de telefone.
8474
+ * @param telephoneNumber String contendo o número de telefone.
8475
+ * @returns String formatada com o número de telefone.
8476
+ */
8477
+ static getFormattedTelephoneNumber(telephoneNumber) {
8478
+ let tel = telephoneNumber.replace(/\D/g, '');
8479
+ tel = tel.replace(/^0/, '');
8480
+ if (tel.length > 10) {
8481
+ // ########## -> (##) #####-####
8482
+ tel = tel.replace(/^(\d{2})?(\d{5})?(\d{4}).*/, '($1) $2-$3');
8483
+ }
8484
+ else if (tel.length > 9) {
8485
+ // AA######### -> (AA) ####-####
8486
+ tel = tel.replace(/^(\d{2})?(\d{4})?(\d{4}).*/, '($1) $2-$3');
8487
+ }
8488
+ else if (tel.length > 5) {
8489
+ // ####### -> (##) ####-#
8490
+ tel = tel.replace(/^(\d{2})?(\d{4})?(\d{0,4}).*/, '($1) $2-$3');
8491
+ }
8492
+ else if (tel.length > 1) {
8493
+ // #### -> (##) ##
8494
+ tel = tel.replace(/^(\d{2})?(\d{0,5}).*/, '($1) $2');
8495
+ }
8496
+ else {
8497
+ if (tel !== '') {
8498
+ tel = tel.replace(/^(\d*)/, '($1');
8499
+ }
8500
+ }
8501
+ return tel;
8502
+ }
8503
+ /**
8504
+ * Metódo para formatar o número de telefone de um campo Input.
8505
+ * @param event Evento do Input do campo de telefone.
8506
+ */
8507
+ static formatTelephoneInputEvent(event) {
8508
+ let telephoneNumber = event.target.value;
8509
+ // Permite Backspace para usuário remover ")" e "-"
8510
+ if (event.keyCode === 8 && (telephoneNumber.length === 9 || telephoneNumber.length === 4 || telephoneNumber.length === 3)) {
8511
+ return;
8512
+ }
8513
+ event.target.value = FormatUtilsService.getFormattedTelephoneNumber(telephoneNumber);
8514
+ }
8515
+ /**
8516
+ * Metódo para formatar a porcentagem para 2 casas decimais.
8517
+ * @param value Número a ser formatado.
8518
+ */
8519
+ static getFormattedPercentage(value) {
8520
+ return parseFloat(value).toFixed(2).replace('.', ',') + '%';
8521
+ }
8522
+ }
8523
+
8524
+ let HistoricalPixAccountComponent = class HistoricalPixAccountComponent {
8525
+ constructor(translateService, cd, formBuilder) {
8526
+ this.translateService = translateService;
8527
+ this.cd = cd;
8528
+ this.formBuilder = formBuilder;
8529
+ this.recordByRow = 1;
8530
+ this.showDateChange = false;
8531
+ this.isEditMode = false;
8532
+ this.isViewMode = false;
8533
+ this.withSideBar = true;
8534
+ this.visibleChange = new EventEmitter();
8535
+ this.ngUnsubscribe = new Subject();
8536
+ this.orderBy = {
8537
+ field: "dateChange",
8538
+ direction: DirectionEnumeration.DESC,
8539
+ };
8540
+ this.pixAccountItemInput = {};
8541
+ this.totalRecords = 0;
8542
+ this.actionLabel = this.translateService.instant("hcm.payroll.entries_query_actions_total_title");
8543
+ this.loading = true;
8544
+ this.listData = [];
8545
+ this.listDataNoPage = [];
8546
+ this.cols = [
8547
+ {
8548
+ label: this.translateService.instant("hcm.payroll.employees_addition_pix_key_type"),
8549
+ field: "pixKeyType",
8550
+ },
8551
+ {
8552
+ label: this.translateService.instant("hcm.payroll.employees_addition_pix_key"),
8553
+ field: "pixKey",
8554
+ },
8555
+ {
8556
+ label: this.translateService.instant("hcm.payroll.historical_pix_account_label_percentage"),
8557
+ field: "percentage",
8558
+ },
8559
+ ];
8560
+ this.actions = (rowData = {}, key) => {
8561
+ return [
8562
+ {
8563
+ visible: this.isEditMode,
8564
+ label: this.translateService.instant("hcm.payroll.employees_image_cropper_view"),
8565
+ command: () => {
8566
+ rowData["index"] = key;
8567
+ this.pixAccountItemInput = { currentItem: rowData, listData: this.listDataNoPage, isEditMode: false };
8568
+ this.visible = true;
8569
+ },
8570
+ },
8571
+ {
8572
+ visible: !!(!this.isEditMode && this.withSideBar),
8573
+ label: this.translateService.instant("hcm.payroll.edit"),
8574
+ command: () => {
8575
+ rowData["index"] = key;
8576
+ this.pixAccountItemInput = { currentItem: rowData, listData: this.listDataNoPage, isEditMode: true };
8577
+ this.visible = true;
8578
+ },
8579
+ },
8580
+ {
8581
+ visible: !this.isEditMode,
8582
+ label: this.translateService.instant("hcm.payroll.delete"),
8583
+ command: () => {
8584
+ this.loading = true;
8585
+ this.deleteAnnuityItem(key);
8586
+ },
8587
+ },
8588
+ ];
8589
+ };
8590
+ this.createFormGroup();
8591
+ }
8592
+ ngOnInit() {
8593
+ this.formGroup.setControl(this.fieldFormGroup, this.historicalPixAccountList);
8594
+ }
8595
+ createFormGroup() {
8596
+ this.historicalPixAccountList = this.formBuilder.group({
8597
+ historicalPixAccountList: this.formBuilder.control(null),
8598
+ });
8599
+ }
8600
+ ngOnDestroy() {
8601
+ this.ngUnsubscribe.next();
8602
+ this.ngUnsubscribe.complete();
8603
+ }
8604
+ ngAfterViewInit() {
8605
+ this.cd.detectChanges();
8606
+ }
8607
+ onLazyLoad(event) {
8608
+ const first = event && event.first ? event.first : 0;
8609
+ const rows = event && event.rows ? event.rows : this.recordByRow;
8610
+ const arrList = this.getHistoricalPixAccountList();
8611
+ this.listData = [];
8612
+ this.totalRecords = null;
8613
+ if (event && event.multiSortMeta && event.multiSortMeta.length) {
8614
+ event.multiSortMeta.map((value) => {
8615
+ this.orderBy.field = value.field;
8616
+ this.orderBy.direction = value.order === 1 ? DirectionEnumeration.ASC : DirectionEnumeration.DESC;
8617
+ });
8618
+ }
8619
+ if (arrList && arrList.length) {
8620
+ this.totalRecords = arrList.length;
8621
+ this.listData = arrList;
8622
+ this.listDataNoPage = [...arrList];
8623
+ this.listData.sort(compareValues(this.orderBy.field, this.orderBy.direction));
8624
+ this.listData = this.listData.slice(first, (first + rows));
8625
+ }
8626
+ else {
8627
+ this.listDataNoPage = [];
8628
+ }
8629
+ if (this.isEditMode || arrList && arrList.length === 1) {
8630
+ this.refreshCssInIE11();
8631
+ }
8632
+ this.loading = false;
8633
+ }
8634
+ /**
8635
+ * Um Bug de CSS que acontece nas linhas da tabela, que resolve só atualizando qualquer parte do CSS da pagina.
8636
+ */
8637
+ refreshCssInIE11() {
8638
+ if (/msie\s|trident\/|edge\//i.test(window.navigator.userAgent)) {
8639
+ setTimeout(() => {
8640
+ const row = document.getElementsByClassName("row0");
8641
+ if (row && row[0])
8642
+ row[0].className = 'refresh';
8643
+ }, 1);
8644
+ }
8645
+ }
8646
+ add() {
8647
+ this.pixAccountItemInput = {};
8648
+ this.visible = true;
8649
+ }
8650
+ deleteAnnuityItem(index) {
8651
+ let newlist = [...this.getHistoricalPixAccountList()];
8652
+ newlist.sort(compareValues(this.orderBy.field, this.orderBy.direction));
8653
+ delete newlist[index];
8654
+ newlist = newlist.filter(val => val);
8655
+ this.historicalPixAccountList.get("historicalPixAccountList").setValue(newlist);
8656
+ this.verifyTotalPercentage();
8657
+ this.onLazyLoad();
8658
+ }
8659
+ getHistoricalPixAccountList() {
8660
+ if (this.historicalPixAccountList.get("historicalPixAccountList") &&
8661
+ this.historicalPixAccountList.get("historicalPixAccountList").value &&
8662
+ this.historicalPixAccountList.get("historicalPixAccountList").value.length)
8663
+ return this.historicalPixAccountList.get("historicalPixAccountList") && this.historicalPixAccountList.get("historicalPixAccountList").value;
8664
+ else
8665
+ return [];
8666
+ }
8667
+ addItemInList($event) {
8668
+ const index = $event && $event.index >= 0 ? $event.index : null;
8669
+ const newDataList = this.getHistoricalPixAccountList() ? this.getHistoricalPixAccountList() : [];
8670
+ if (index != null) {
8671
+ newDataList[index] = $event;
8672
+ delete $event.index;
8673
+ }
8674
+ else {
8675
+ if (isValid($event["customFields"]) && Object.keys($event["customFields"]).length) {
8676
+ const customValue = mountCustomToSave($event["customFields"]);
8677
+ $event["customFields"] = [...customValue];
8678
+ }
8679
+ $event["dateChange"] = this.dateChange;
8680
+ newDataList.push($event);
8681
+ }
8682
+ this.historicalPixAccountList.get("historicalPixAccountList").setValue(newDataList);
8683
+ this.verifyTotalPercentage();
8684
+ this.onLazyLoad({ first: this.getNumberPageByIndex(index, newDataList) });
8685
+ }
8686
+ getNumberPageByIndex(index, list) {
8687
+ if (index) {
8688
+ const total = list.length;
8689
+ const sub = this.recordByRow - 1;
8690
+ return Math.ceil(total / this.recordByRow) * this.recordByRow - sub - 1;
8691
+ }
8692
+ return null;
8693
+ }
8694
+ verifyTotalPercentage() {
8695
+ const list = this.getHistoricalPixAccountList() ? this.getHistoricalPixAccountList() : [];
8696
+ const arrayPercentage = [];
8697
+ if (!list.length)
8698
+ return this.msgTotalLimitByPercentage = null;
8699
+ list.filter((item) => arrayPercentage.push(item && item["percentage"]));
8700
+ const sumPercentage = arrayPercentage.reduce((total, percentage) => {
8701
+ return total + percentage;
8702
+ }, 0);
8703
+ if (sumPercentage === 100) {
8704
+ this.msgTotalLimitByPercentage = this.translateService.instant("hcm.payroll.historical_pix_account_msg_limit_total_by_percentage");
8705
+ }
8706
+ else {
8707
+ this.msgTotalLimitByPercentage = null;
8708
+ }
8709
+ }
8710
+ get scopedActions() {
8711
+ return this.actions.bind(this);
8712
+ }
8713
+ get recordsMessage() {
8714
+ return `${this.totalRecords || 0} ${this.totalRecords === 1 ? this.translateService.instant("hcm.payroll.admission_register") : this.translateService.instant("hcm.payroll.admission_registers")}`;
8715
+ }
8716
+ get getTooltipAndDisableButtonAdd() {
8717
+ return this.dateChange ? null : this.msgTooltipAdd;
8718
+ }
8719
+ get dateChange() {
8720
+ return this._dateChange;
8721
+ }
8722
+ set dateChange(value) {
8723
+ this._dateChange = value;
8724
+ if (this._dateChange) {
8725
+ this.listData.filter((row) => row["dateChange"] = this._dateChange);
8726
+ }
8727
+ }
8728
+ get displayDateChange() {
8729
+ return this._displayDateChange;
8730
+ }
8731
+ set displayDateChange(value) {
8732
+ this._displayDateChange = value;
8733
+ if (this._displayDateChange) {
8734
+ this.listData.filter((row) => row["displayDateChange"] = this._displayDateChange);
8735
+ }
8736
+ }
8737
+ set addListData(list) {
8738
+ this.loading = true;
8739
+ this.historicalPixAccountList.get("historicalPixAccountList").patchValue(list);
8740
+ this.verifyTotalPercentage();
8741
+ this.onLazyLoad();
8742
+ }
8743
+ get visible() {
8744
+ return this._visible;
8745
+ }
8746
+ set visible(value) {
8747
+ this._visible = value;
8748
+ this.visibleChange.emit(this.visible);
8749
+ }
8750
+ close() {
8751
+ this.visible = false;
8752
+ }
8753
+ getFormattedCpfTelephoneNumber(telephoneNumber) {
8754
+ return FormatUtilsService.getFormattedTelephoneNumber(telephoneNumber);
8755
+ }
8756
+ getFormattedCpf(cpf) {
8757
+ return FormatUtilsService.getFormattedCpf(cpf);
8758
+ }
8759
+ getFormattedCnpj(cnpj) {
8760
+ return FormatUtilsService.getFormattedCnpj(cnpj);
8761
+ }
8762
+ getFormattedPercentage(value) {
8763
+ return FormatUtilsService.getFormattedPercentage(value);
8764
+ }
8765
+ };
8766
+ HistoricalPixAccountComponent.ctorParameters = () => [
8767
+ { type: TranslateService },
8768
+ { type: ChangeDetectorRef },
8769
+ { type: FormBuilder }
8770
+ ];
8771
+ __decorate([
8772
+ ViewChild(CustomFieldsComponent$1, { static: false })
8773
+ ], HistoricalPixAccountComponent.prototype, "customFields", void 0);
8774
+ __decorate([
8775
+ Input()
8776
+ ], HistoricalPixAccountComponent.prototype, "formGroup", void 0);
8777
+ __decorate([
8778
+ Input()
8779
+ ], HistoricalPixAccountComponent.prototype, "fieldFormGroup", void 0);
8780
+ __decorate([
8781
+ Input()
8782
+ ], HistoricalPixAccountComponent.prototype, "_dateChange", void 0);
8783
+ __decorate([
8784
+ Input()
8785
+ ], HistoricalPixAccountComponent.prototype, "_displayDateChange", void 0);
8786
+ __decorate([
8787
+ Input()
8788
+ ], HistoricalPixAccountComponent.prototype, "recordByRow", void 0);
8789
+ __decorate([
8790
+ Input()
8791
+ ], HistoricalPixAccountComponent.prototype, "showDateChange", void 0);
8792
+ __decorate([
8793
+ Input()
8794
+ ], HistoricalPixAccountComponent.prototype, "msgTooltipAdd", void 0);
8795
+ __decorate([
8796
+ Input()
8797
+ ], HistoricalPixAccountComponent.prototype, "isEditMode", void 0);
8798
+ __decorate([
8799
+ Input()
8800
+ ], HistoricalPixAccountComponent.prototype, "isViewMode", void 0);
8801
+ __decorate([
8802
+ Input()
8803
+ ], HistoricalPixAccountComponent.prototype, "currency", void 0);
8804
+ __decorate([
8805
+ Input()
8806
+ ], HistoricalPixAccountComponent.prototype, "customEntity", void 0);
8807
+ __decorate([
8808
+ Input()
8809
+ ], HistoricalPixAccountComponent.prototype, "customService", void 0);
8810
+ __decorate([
8811
+ Input()
8812
+ ], HistoricalPixAccountComponent.prototype, "withSideBar", void 0);
8813
+ __decorate([
8814
+ Input()
8815
+ ], HistoricalPixAccountComponent.prototype, "paramsForm", void 0);
8816
+ __decorate([
8817
+ Input()
8818
+ ], HistoricalPixAccountComponent.prototype, "dateChange", null);
8819
+ __decorate([
8820
+ Input()
8821
+ ], HistoricalPixAccountComponent.prototype, "displayDateChange", null);
8822
+ __decorate([
8823
+ Input()
8824
+ ], HistoricalPixAccountComponent.prototype, "addListData", null);
8825
+ __decorate([
8826
+ Input()
8827
+ ], HistoricalPixAccountComponent.prototype, "visible", null);
8828
+ HistoricalPixAccountComponent = __decorate([
8829
+ Component({
8830
+ // tslint:disable-next-line:component-selector
8831
+ selector: "c-historical-pix-account",
8832
+ template: "<s-sidebar *ngIf=\"withSideBar\" [visible]=\"visible\" (visibleChange)=\"close()\"\n header=\"{{'hcm.payroll.historical_pix_account_title_form'|translate}}\">\n<pix-account [(visible)]=\"visible\"\n [isEditAndViewValue]=\"pixAccountItemInput\"\n [currency]=\"currency\"\n [customEntity]=\"customEntity\"\n [customService]=\"customService\"\n [getListPixAccount]=\"listDataNoPage\"\n [paramsForm]=\"paramsForm\"\n (pixAccountItemToList)=\"addItemInList($event)\"></pix-account>\n</s-sidebar>\n\n<div *ngIf=\"!withSideBar\">\n <pix-account [(visible)]=\"visible\"\n [isEditAndViewValue]=\"pixAccountItemInput\"\n [currency]=\"currency\"\n [customEntity]=\"customEntity\"\n [customService]=\"customService\"\n [getListPixAccount]=\"listDataNoPage\"\n [withSideBar]=\"false\"\n [isViewMode]=\"isViewMode\"\n [paramsForm]=\"paramsForm\"\n (pixAccountItemToList)=\"addItemInList($event)\"></pix-account>\n</div>\n\n<div class=\"ui-g-1\" *ngIf=\"withSideBar && !isEditMode\">\n <div class=\"form-group \">\n <s-button id=\"ta-addPayAnnuity\"\n [disabled]=\"getTooltipAndDisableButtonAdd || msgTotalLimitByPercentage\"\n (onClick)=\"add()\"\n [pTooltip]=\"getTooltipAndDisableButtonAdd || msgTotalLimitByPercentage\"\n tooltipPosition=\"top\"\n label=\"{{'hcm.payroll.historical_pix_account_add'|translate}}\"></s-button>\n </div>\n</div>\n<div class=\"ui-g-12\">\n <p-table\n id=\"table-annuity\"\n [value]=\"listData\"\n [columns]=\"cols\"\n (onLazyLoad)=\"onLazyLoad($event)\"\n [lazy]=\"true\"\n [scrollable]=\"true\"\n [paginator]=\"true\"\n [totalRecords]=\"totalRecords\"\n [sortMode]=\"'multiple'\"\n *sLoadingState=\"loading\"\n [rows]=\"recordByRow\"\n dataKey=\"id\">\n <ng-template pTemplate=\"colgroup\" let-coumns>\n <colgroup>\n <col [ngClass]=\"'col-default-m'\">\n <col [ngClass]=\"'col-default-m'\">\n <col [ngClass]=\"'col-default-s'\">\n <col [ngClass]=\"'col-action'\">\n </colgroup>\n </ng-template>\n <ng-template pTemplate=\"header\" let-columns>\n <!-- Cabe\u00E7alhos quando da table \u00E9 permitido ordenar as colunas -->\n <tr>\n <!-- Cabe\u00E7alhos das colunas da tabela -->\n <th\n [pSortableColumn]=\"'pixKeyType'\"\n [pTooltip]=\"'hcm.payroll.employees_addition_pix_key_type' | translate\"\n tooltipPosition=\"top\"\n showDelay=\"500\"\n >\n <div class=\"senior-header\" id=\"table-0\">\n <span\n id=\"table-annuity-s-0\">{{ 'hcm.payroll.employees_addition_pix_key_type' | translate }}</span>\n <p-sortIcon class=\"p-sorticon-status\"\n [field]=\"'hcm.payroll.employees_addition_pix_key_type' | translate\"></p-sortIcon>\n </div>\n </th>\n\n <th\n [pSortableColumn]=\"'pixKey'\"\n [pTooltip]=\"'hcm.payroll.employees_addition_pix_key' | translate\"\n tooltipPosition=\"top\"\n showDelay=\"500\"\n >\n <div class=\"senior-header\">\n <span>{{ 'hcm.payroll.employees_addition_pix_key' | translate }}</span>\n <p-sortIcon class=\"p-sorticon-status\"\n [field]=\"'hcm.payroll.employees_addition_pix_key' | translate\"></p-sortIcon>\n </div>\n </th>\n\n <th\n [pSortableColumn]=\"'percentage'\"\n [pTooltip]=\"'hcm.payroll.historical_pix_account_label_percentage' | translate\"\n tooltipPosition=\"top\"\n showDelay=\"500\"\n >\n <div class=\"senior-header\">\n <span>{{ 'hcm.payroll.historical_pix_account_label_percentage' | translate }}</span>\n <p-sortIcon class=\"p-sorticon-status\"\n [field]=\"'hcm.payroll.historical_pix_account_label_percentage' | translate\"></p-sortIcon>\n </div>\n </th>\n <!-- Cabe\u00E7alho da coluna de a\u00E7\u00F5es -->\n <th id=\"col-actions\"></th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-rowData let-key=\"rowIndex\">\n\n <tr [ngClass]=\"'row'+key\" [pSelectableRow]=\"rowData\">\n <td [pTooltip]=\"rowData?.pixKeyType.value\" tooltipPosition=\"top\"\n showDelay=\"500\">\n <span>{{ rowData?.pixKeyType.value }}</span>\n </td>\n <td [pTooltip]=\"rowData?.pixKey\" tooltipPosition=\"top\"\n showDelay=\"500\">\n <ng-container [ngSwitch]=\"rowData?.pixKeyType.key\">\n <span *ngSwitchCase=\"'TELEPHONE'\">{{ getFormattedCpfTelephoneNumber(rowData?.pixKey) }}</span>\n <span *ngSwitchCase=\"'CPF'\">{{ getFormattedCpf(rowData?.pixKey) }}</span>\n <span *ngSwitchCase=\"'CNPJ'\">{{ getFormattedCnpj(rowData?.pixKey) }}</span>\n <span *ngSwitchDefault>{{ rowData?.pixKey }}</span>\n </ng-container>\n\n </td>\n <td [pTooltip]=\"rowData?.percentage\" tooltipPosition=\"top\"\n showDelay=\"500\">\n <span>{{ getFormattedPercentage(rowData?.percentage) }}</span>\n </td>\n <td id=\"col-actions-{{key}}\" class=\"col-actions \"\n *ngIf=\"actions && actions(rowData, key)?.length\">\n <s-button id=\"table-admission-btn-actions-{{key}}\"\n *ngIf=\"actions(rowData, key).length > 1\" [label]=\"actionLabel\"\n priority=\"default\" [model]=\"scopedActions(rowData, key)\"\n [disabled]=\"false\" [auxiliary]=\"true\"></s-button>\n\n <s-button id=\"table-admission-btn-action-{{key}}\"\n *ngIf=\"actions(rowData, key).length <= 1\"\n [label]=\"scopedActions(rowData, key)[0].label\"\n priority=\"default\"\n (click)=\"scopedActions(rowData, key)[0].command()\"\n [disabled]=\"false\" [auxiliary]=\"true\"></s-button>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\" let-columns>\n <tr>\n <td [attr.colspan]=\"columns.length +2\">\n {{'hcm.payroll.admission_empty_message'|translate}}\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"paginatorright\">\n <span *ngIf=\"totalRecords\">{{recordsMessage}}</span>\n </ng-template>\n </p-table>\n</div>\n",
8833
+ styles: [".refresh{width:100%!important}#table-annuity .col-default-s{width:10%}#table-annuity .col-default-m{width:12%}#table-annuity .col-default-l{width:16%}#table-annuity .col-action{width:10%}#table-annuity .icon-warning{text-align:center!important;color:#ff6d00c7!important}@media screen and (max-width:612px){#table-annuity .col-default-1,#table-annuity .col-default-2{width:16%}#table-annuity .col-default-3{width:26%}#table-annuity .col-icon{width:10%}#table-annuity .col-action{width:27%}}#main{display:-webkit-box;display:flex;height:100%;width:100%;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}#main form{height:100%}#main .footer{border-top:1px solid #ccc;padding-top:15px;margin-top:15px;flex-shrink:0;margin-bottom:-18px}#main .footer-s-border{padding-left:7px;flex-shrink:0;margin-bottom:-18px}"]
8834
+ })
8835
+ ], HistoricalPixAccountComponent);
8836
+
8837
+ class GenericValidator {
8838
+ constructor() { }
8839
+ /**
8840
+ * Valida o CEI (Cadastro específico de INSS) digitado.
8841
+ */
8842
+ static isValidCei(control) {
8843
+ const cei = control.value;
8844
+ if (!cei)
8845
+ return null;
8846
+ else if (cei.length != 11)
8847
+ return null;
8848
+ const multiplicadorBase = "3298765432";
8849
+ let total = 0;
8850
+ let resto = 0;
8851
+ let multiplicando = 0;
8852
+ let multiplicador = 0;
8853
+ if (cei.length !== 11 ||
8854
+ cei === "00000000000" ||
8855
+ cei === "11111111111" ||
8856
+ cei === "22222222222" ||
8857
+ cei === "33333333333" ||
8858
+ cei === "44444444444" ||
8859
+ cei === "55555555555" ||
8860
+ cei === "66666666666" ||
8861
+ cei === "77777777777" ||
8862
+ cei === "88888888888" ||
8863
+ cei === "99999999999")
8864
+ return { invalidCei: true };
8865
+ else {
8866
+ for (let i = 0; i < 10; i++) {
8867
+ multiplicando = parseInt(cei.substring(i, i + 1), 10);
8868
+ multiplicador = parseInt(multiplicadorBase.substring(i, i + 1), 10);
8869
+ total += multiplicando * multiplicador;
8870
+ }
8871
+ resto = 11 - (total % 11);
8872
+ resto = resto === 10 || resto === 11 ? 0 : resto;
8873
+ const digito = parseInt("" + cei.charAt(10), 10);
8874
+ return resto === digito ? null : { invalidCei: true };
8875
+ }
8876
+ }
8877
+ /**
8878
+ * Valida se o CPF é valido. Deve-se ser informado o cpf sem máscara.
8879
+ */
8880
+ static isValidCpf(control) {
8881
+ const cpf = control.value;
8882
+ if (cpf) {
8883
+ let numbers, digits, sum, i, result, equalDigits;
8884
+ equalDigits = 1;
8885
+ if (cpf.length < 11) {
8886
+ return null;
8887
+ }
8888
+ for (i = 0; i < cpf.length - 1; i++) {
8889
+ if (cpf.charAt(i) !== cpf.charAt(i + 1)) {
8890
+ equalDigits = 0;
8891
+ break;
8892
+ }
8893
+ }
8894
+ if (!equalDigits) {
8895
+ numbers = cpf.substring(0, 9);
8896
+ digits = cpf.substring(9);
8897
+ sum = 0;
8898
+ for (i = 10; i > 1; i--) {
8899
+ sum += numbers.charAt(10 - i) * i;
8900
+ }
8901
+ result = sum % 11 < 2 ? 0 : 11 - (sum % 11);
8902
+ if (result !== Number(digits.charAt(0))) {
8903
+ return { cpfNotValid: true };
8904
+ }
8905
+ numbers = cpf.substring(0, 10);
8906
+ sum = 0;
8907
+ for (i = 11; i > 1; i--) {
8908
+ sum += numbers.charAt(11 - i) * i;
8909
+ }
8910
+ result = sum % 11 < 2 ? 0 : 11 - (sum % 11);
8911
+ if (result !== Number(digits.charAt(1))) {
8912
+ return { cpfNotValid: true };
8913
+ }
8914
+ return null;
8915
+ }
8916
+ else {
8917
+ return { cpfNotValid: true };
8918
+ }
8919
+ }
8920
+ return null;
8921
+ }
8922
+ /**
8923
+ * Valida se o CNPJ é valido. Deve-se ser informado o cpf sem máscara.
8924
+ */
8925
+ static isValidCnpj(control) {
8926
+ let cnpj = control.value;
8927
+ if (cnpj) {
8928
+ let size, numbers, digits, sum, pos, result;
8929
+ cnpj = cnpj.replace(/[^\d]+/g, '');
8930
+ if (cnpj.length !== 14) {
8931
+ return null;
8932
+ }
8933
+ // Elimina CNPJs invalidos conhecidos
8934
+ if (cnpj === '00000000000000' ||
8935
+ cnpj === '11111111111111' ||
8936
+ cnpj === '22222222222222' ||
8937
+ cnpj === '33333333333333' ||
8938
+ cnpj === '44444444444444' ||
8939
+ cnpj === '55555555555555' ||
8940
+ cnpj === '66666666666666' ||
8941
+ cnpj === '77777777777777' ||
8942
+ cnpj === '88888888888888' ||
8943
+ cnpj === '99999999999999') {
8944
+ return { cnpjNotValid: true };
8945
+ }
8946
+ // Valida DVs
8947
+ size = cnpj.length - 2;
8948
+ numbers = cnpj.substring(0, size);
8949
+ digits = cnpj.substring(size);
8950
+ sum = 0;
8951
+ pos = size - 7;
8952
+ for (let i = size; i >= 1; i--) {
8953
+ sum += numbers.charAt(size - i) * pos--;
8954
+ if (pos < 2) {
8955
+ pos = 9;
8956
+ }
8957
+ }
8958
+ result = sum % 11 < 2 ? 0 : 11 - (sum % 11);
8959
+ if (result !== Number(digits.charAt(0))) {
8960
+ return { cnpjNotValid: true };
8961
+ }
8962
+ size = size + 1;
8963
+ numbers = cnpj.substring(0, size);
8964
+ sum = 0;
8965
+ pos = size - 7;
8966
+ for (let i = size; i >= 1; i--) {
8967
+ sum += numbers.charAt(size - i) * pos--;
8968
+ if (pos < 2) {
8969
+ pos = 9;
8970
+ }
8971
+ }
8972
+ result = sum % 11 < 2 ? 0 : 11 - (sum % 11);
8973
+ if (result !== Number(digits.charAt(1))) {
8974
+ return { cnpjNotValid: true };
8975
+ }
8976
+ return null;
8977
+ }
8978
+ return null;
8979
+ }
8980
+ /**
8981
+ * Válida o número de telefone da chave PIX.
8982
+ */
8983
+ static isValidPhoneNumber(control) {
8984
+ let cellPhoneKey = control.value || '';
8985
+ cellPhoneKey = cellPhoneKey.replace(/[\s()-]/g, '');
8986
+ const regexNumberTelephone = /^[1-9][\d]{1,2}\d{8,10}$/;
8987
+ const isValidNumberTelephone = regexNumberTelephone.test(cellPhoneKey);
8988
+ return isValidNumberTelephone ? null : { invalidPhoneNumber: true };
8989
+ }
8990
+ /**
8991
+ * Valida o email da chave PIX.
8992
+ */
8993
+ static isValidEmail(control) {
8994
+ const emailKey = control.value;
8995
+ const regexValidEmail = /^[\w-\.]+@[\w-]+(\.[\w-]{2,4}){1,2}$/;
8996
+ const isValidEmail = regexValidEmail.test(emailKey);
8997
+ return isValidEmail ? null : { invalidEmail: true };
8998
+ }
8999
+ }
9000
+
9001
+ let HistoricalPixAccountFormComponent = class HistoricalPixAccountFormComponent {
9002
+ constructor(formBuilder, cd) {
9003
+ this.formBuilder = formBuilder;
9004
+ this.cd = cd;
9005
+ this.withSideBar = true;
9006
+ this.isEditMode = false;
9007
+ this.paramsForm = new FormGroup({});
9008
+ this.visibleChange = new EventEmitter();
9009
+ this.pixAccountItemToList = new EventEmitter();
9010
+ this.ngUnsubscribe = new Subject();
9011
+ this.initialValidatorOfPercentage = [Validators.required, Validators.min(0.01)];
9012
+ this.labelBtnAdd = "hcm.payroll.employees_add";
9013
+ this.maxValuePercentage = 100.00;
9014
+ this.visibleBtnSave = true;
9015
+ this.isView = false;
9016
+ this.isShowPixKeyFieldValidatorMessage = false;
9017
+ this.createFormGroup();
9018
+ this.registerSubjects();
9019
+ }
9020
+ ngOnInit() {
9021
+ }
9022
+ ngAfterViewInit() {
9023
+ this.cd.detectChanges();
9024
+ }
9025
+ ngOnDestroy() {
9026
+ this.ngUnsubscribe.next(true);
9027
+ this.ngUnsubscribe.unsubscribe();
9028
+ }
9029
+ registerSubjects() {
9030
+ }
9031
+ createFormGroup() {
9032
+ this.pixAccountFormGroup = this.formBuilder.group({
9033
+ id: this.formBuilder.control(null),
9034
+ index: this.formBuilder.control(null),
9035
+ employee: this.formBuilder.control({ value: { tableId: null }, disabled: true }),
9036
+ dateChange: this.formBuilder.control(null),
9037
+ pixKeyType: this.formBuilder.control(null, Validators.required),
9038
+ pixKey: this.formBuilder.control(null),
9039
+ percentage: this.formBuilder.control(null, Validators.compose([
9040
+ ...this.initialValidatorOfPercentage,
9041
+ Validators.max(this.maxValuePercentage),
9042
+ ])),
9043
+ customFields: this.formBuilder.control(null),
9044
+ });
9045
+ }
9046
+ onChangePixKeyType(item) {
9047
+ if (item.key) {
9048
+ this.pixKeyType = item.key;
9049
+ this.isShowPixKeyFieldValidatorMessage = true;
9050
+ this.pixAccountFormGroup.get("pixKey").reset();
9051
+ this.setPixKeyValidators();
9052
+ if (item.key === "CPF") {
9053
+ this.setDefaultCpfPixKey();
9054
+ }
9055
+ }
9056
+ }
9057
+ onClearPixKeyType() {
9058
+ this.isShowPixKeyFieldValidatorMessage = false;
9059
+ this.pixAccountFormGroup.get("pixKey").reset();
9060
+ }
9061
+ get visible() {
9062
+ return this._visible;
9063
+ }
9064
+ set visible(value) {
9065
+ this._visible = value;
9066
+ this.visibleChange.emit(this.visible);
9067
+ }
9068
+ set isEditAndViewValue(value) {
9069
+ this.resetForm();
9070
+ this.visibleBtnSave = true;
9071
+ if (value && value.currentItem && Object.keys(value.currentItem).length) {
9072
+ this.pixAccountFormGroup.patchValue(this.convertDTOToShowWithCustomFields(Object.assign({}, value.currentItem)));
9073
+ this.labelBtnAdd = "hcm.payroll.employees_update";
9074
+ this.setValidatorsAccordingList(value.listData, value.currentItem["index"]);
9075
+ if (!this.isView) {
9076
+ this.configEnableFields(value && value["isEditMode"]);
9077
+ }
9078
+ }
9079
+ else {
9080
+ this.labelBtnAdd = "hcm.payroll.employees_add";
9081
+ }
9082
+ }
9083
+ convertDTOToShowWithCustomFields(data) {
9084
+ const obj = Object.assign({}, data);
9085
+ obj["customFields"] = mountCustomToShow(obj["customFields"]);
9086
+ return obj;
9087
+ }
9088
+ configEnableFields(isEditMode) {
9089
+ this.visibleBtnSave = isEditMode;
9090
+ if (this.pixAccountFormGroup.get("pixKeyType").value) {
9091
+ this.pixKeyType = this.pixAccountFormGroup.get("pixKeyType").value.key;
9092
+ this.setPixKeyValidators();
9093
+ if (this.pixKeyType === "TELEPHONE") {
9094
+ this.pixAccountFormGroup.get("pixKey").setValue(FormatUtilsService.getFormattedTelephoneNumber(this.pixAccountFormGroup.get("pixKey").value));
9095
+ }
9096
+ }
9097
+ configEnabledFields(this.pixAccountFormGroup, isEditMode, [
9098
+ "pixKeyType",
9099
+ "pixKey",
9100
+ "percentage",
9101
+ "customFields",
9102
+ ], []);
9103
+ }
9104
+ close() {
9105
+ this.resetForm();
9106
+ this.visible = false;
9107
+ }
9108
+ addItem() {
9109
+ this.pixAccountFormGroup.updateValueAndValidity();
9110
+ verifyValidationsForm.call(this.pixAccountFormGroup);
9111
+ if (this.pixAccountFormGroup.valid) {
9112
+ if (this.employeeId) {
9113
+ this.pixAccountFormGroup.get("employee").setValue({
9114
+ tableId: this.employeeId,
9115
+ name: "",
9116
+ });
9117
+ }
9118
+ this.pixAccountItemToList.emit(this.pixAccountFormGroup.getRawValue());
9119
+ this.visible = false;
9120
+ this.resetForm();
9121
+ }
9122
+ }
9123
+ resetForm() {
9124
+ this.pixAccountFormGroup.reset();
9125
+ this.labelBtnAdd = "hcm.payroll.employees_add";
9126
+ if (this.customFields && this.customFields.formGroup)
9127
+ this.customFields.formGroup.reset();
9128
+ }
9129
+ getBankTableId() {
9130
+ return this.pixAccountFormGroup.controls.bank.value
9131
+ ? `'${this.pixAccountFormGroup.controls.bank.value.tableId}'`
9132
+ : null;
9133
+ }
9134
+ get percentagePlaceholder() {
9135
+ return `0${this.currency && this.currency.decimalSeparator}00`;
9136
+ }
9137
+ get optionsPercentage() {
9138
+ return Object.assign({}, this.getOptions(), { precision: 2 });
9139
+ }
9140
+ getOptions() {
9141
+ return {
9142
+ prefix: "",
9143
+ thousands: this.currency.thousandsSeparator,
9144
+ decimal: this.currency.decimalSeparator,
9145
+ };
9146
+ }
9147
+ /**
9148
+ * O Input que recebe a lista do component pai e chama o método de validação passando a lista recebida.
9149
+ * @param pixAccountList
9150
+ */
9151
+ set getListPixAccount(pixAccountList) {
9152
+ if (pixAccountList) {
9153
+ this.setValidatorsAccordingList(pixAccountList);
9154
+ }
9155
+ else {
9156
+ this.resetForm();
9157
+ }
9158
+ }
9159
+ /**
9160
+ * Recebe a lista de registros já inseridos na tabela adiciona em uma variável os valores que serão usados para
9161
+ * a validação dos campos "percentage" e "pixAccount".
9162
+ * 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
9163
+ * no array de comparação dos validators.
9164
+ * @param pixAccountList
9165
+ * @param index
9166
+ */
9167
+ setValidatorsAccordingList(pixAccountList, index = null) {
9168
+ this.pixAccountList = pixAccountList && pixAccountList.length ? [...pixAccountList] : [];
9169
+ const percentageIncluded = [];
9170
+ if (this.pixAccountList && this.pixAccountList.length) {
9171
+ this.pixAccountList.filter((field, key) => {
9172
+ if (field["percentage"] && key != index) {
9173
+ percentageIncluded.push(field["percentage"]);
9174
+ }
9175
+ });
9176
+ }
9177
+ this.setPixKeyValidators();
9178
+ this.validatePercentageValid(percentageIncluded);
9179
+ }
9180
+ /**
9181
+ * Antes de setar o validator prepara as variáveis necessária para que seja feita a validação do campo.
9182
+ */
9183
+ setPixKeyValidators() {
9184
+ const genericPixKey = this.pixAccountFormGroup.get("pixKey");
9185
+ if (this.pixKeyType) {
9186
+ switch (this.pixKeyType) {
9187
+ case "TELEPHONE":
9188
+ genericPixKey.setValidators(Validators.compose([
9189
+ Validators.required, GenericValidator.isValidPhoneNumber,
9190
+ ]));
9191
+ break;
9192
+ case "EMAIL":
9193
+ genericPixKey.setValidators(Validators.compose([
9194
+ Validators.required, GenericValidator.isValidEmail,
9195
+ ]));
9196
+ break;
9197
+ case "CPF":
9198
+ genericPixKey.setValidators(Validators.compose([
9199
+ Validators.required, GenericValidator.isValidCpf,
9200
+ ]));
9201
+ break;
9202
+ case "CNPJ":
9203
+ genericPixKey.setValidators(Validators.compose([
9204
+ Validators.required, GenericValidator.isValidCnpj,
9205
+ ]));
9206
+ break;
9207
+ case "RANDOM_KEY":
9208
+ genericPixKey.setValidators(Validators.required);
9209
+ break;
9210
+ default:
9211
+ genericPixKey.setValidators(null);
9212
+ break;
9213
+ }
9214
+ genericPixKey.enable();
9215
+ genericPixKey.updateValueAndValidity();
9216
+ }
9217
+ }
9218
+ /**
9219
+ * Este método calcula as parcentagens que já foram inseridas, e seta a diferença para chegar em
9220
+ * 100% na validação do campo "percentage" como um novo maxValue;
9221
+ * @param listValue
9222
+ */
9223
+ validatePercentageValid(listValue) {
9224
+ const percentage = this.pixAccountFormGroup.get("percentage");
9225
+ this.maxValuePercentage = listValue
9226
+ .reduce((currentValue, total) => currentValue - total, 100.00);
9227
+ percentage
9228
+ .setValidators(Validators.compose([
9229
+ ...this.initialValidatorOfPercentage,
9230
+ Validators.max(this.maxValuePercentage),
9231
+ ]));
9232
+ percentage.updateValueAndValidity();
9233
+ }
9234
+ set isViewMode(condition) {
9235
+ this.isView = !!(condition && !this.withSideBar);
9236
+ this.configEnableFields(!this.isView);
9237
+ if (!this.isView)
9238
+ this.resetForm();
9239
+ }
9240
+ phoneMask(event) {
9241
+ FormatUtilsService.formatTelephoneInputEvent(event);
9242
+ }
9243
+ setDefaultCpfPixKey() {
9244
+ const sheetDocument = this.paramsForm.get("sheetDocument");
9245
+ if (sheetDocument) {
9246
+ const cpf = sheetDocument.get("cpfNumber").value;
9247
+ if (cpf) {
9248
+ this.pixAccountFormGroup.get("pixKey").setValue(cpf);
9249
+ }
9250
+ }
9251
+ }
9252
+ };
9253
+ HistoricalPixAccountFormComponent.ctorParameters = () => [
9254
+ { type: FormBuilder },
9255
+ { type: ChangeDetectorRef }
9256
+ ];
9257
+ __decorate([
9258
+ ViewChild(CustomFieldsComponent$1, { static: true })
9259
+ ], HistoricalPixAccountFormComponent.prototype, "customFields", void 0);
9260
+ __decorate([
9261
+ Input()
9262
+ ], HistoricalPixAccountFormComponent.prototype, "currency", void 0);
9263
+ __decorate([
9264
+ Input()
9265
+ ], HistoricalPixAccountFormComponent.prototype, "customEntity", void 0);
9266
+ __decorate([
9267
+ Input()
9268
+ ], HistoricalPixAccountFormComponent.prototype, "customService", void 0);
9269
+ __decorate([
9270
+ Input()
9271
+ ], HistoricalPixAccountFormComponent.prototype, "withSideBar", void 0);
9272
+ __decorate([
9273
+ Input()
9274
+ ], HistoricalPixAccountFormComponent.prototype, "isEditMode", void 0);
9275
+ __decorate([
9276
+ Input()
9277
+ ], HistoricalPixAccountFormComponent.prototype, "paramsForm", void 0);
9278
+ __decorate([
9279
+ Output()
9280
+ ], HistoricalPixAccountFormComponent.prototype, "visibleChange", void 0);
9281
+ __decorate([
9282
+ Output()
9283
+ ], HistoricalPixAccountFormComponent.prototype, "pixAccountItemToList", void 0);
9284
+ __decorate([
9285
+ Input()
9286
+ ], HistoricalPixAccountFormComponent.prototype, "visible", null);
9287
+ __decorate([
9288
+ Input()
9289
+ ], HistoricalPixAccountFormComponent.prototype, "isEditAndViewValue", null);
9290
+ __decorate([
9291
+ Input()
9292
+ ], HistoricalPixAccountFormComponent.prototype, "getListPixAccount", null);
9293
+ __decorate([
9294
+ Input()
9295
+ ], HistoricalPixAccountFormComponent.prototype, "isViewMode", null);
9296
+ HistoricalPixAccountFormComponent = __decorate([
9297
+ Component({
9298
+ selector: "pix-account",
9299
+ template: "<div id=\"main\">\n <form [formGroup]=\"pixAccountFormGroup\" autocomplete=\"off\">\n <div class=\"ui-fluid\">\n <div class=\"ui-g\">\n <!-- Tipo de chave -->\n <div class=\"ui-md-6 ui-sm-12 required\">\n <label>{{'hcm.payroll.employees_addition_pix_key_type'|translate}}</label>\n <input-rest-auto-complete-enum [dropdown]=\"true\" server=\"payroll\"\n enumeration=\"PixKeyType\"\n placeholder=\"{{'hcm.payroll.select' | translate}}\"\n name=\"pixKeyType\" [form]=\"pixAccountFormGroup\"\n (onSelect)=\"onChangePixKeyType($event)\"\n (onClear)=\"onClearPixKeyType()\"\n id=\"ta-pixKeyType\"></input-rest-auto-complete-enum>\n <s-control-errors [control]=\"pixAccountFormGroup.get('pixKeyType')\"\n [errorMessages]=\"{ required: 'hcm.payroll.required' | translate }\">\n </s-control-errors>\n </div>\n <!--Chave Pix-->\n <div class=\"ui-md-6 ui-sm-12 required\">\n <label>{{'hcm.payroll.employees_addition_pix_key' | translate}}</label>\n <ng-container [ngSwitch]=\"pixKeyType\">\n <input *ngSwitchCase=\"'TELEPHONE'\" only-number\n pInputText id=\"ta-pixKey\" name=\"pixKey\" formControlName=\"pixKey\"\n (keyup)=\"phoneMask($event)\" maxlength=\"15\"\n placeholder=\"(__) ____-____\">\n <p-inputMask *ngSwitchCase=\"'CPF'\"\n id=\"ta-pixKey\" name=\"pixKey\" formControlName=\"pixKey\"\n placeholder=\"___.___.___-__\"\n mask=\"999.999.999-99\" [unmask]=\"true\"></p-inputMask>\n <p-inputMask *ngSwitchCase=\"'CNPJ'\"\n id=\"ta-pixKey\" name=\"pixKey\" formControlName=\"pixKey\"\n placeholder=\"__.___.___/____-__\"\n mask=\"99.999.999/9999-99\" [unmask]=\"true\"></p-inputMask>\n <input *ngSwitchCase=\"'EMAIL'\"\n pInputText id=\"ta-pixKey\" name=\"pixKey\" formControlName=\"pixKey\"\n placeholder=\"{{'hcm.payroll.employees_addition_email'|translate}}\"/>\n <input *ngSwitchCase=\"'RANDOM_KEY'\"\n pInputText id=\"ta-pixKey\" name=\"pixKey\" formControlName=\"pixKey\"/>\n <input *ngSwitchDefault disabled\n pInputText id=\"ta-pixKey\" name=\"pixKey\" formControlName=\"pixKey\"/>\n </ng-container>\n <s-control-errors *ngIf=\"isShowPixKeyFieldValidatorMessage\" id=\"er-pix-key\"\n [control]=\"pixAccountFormGroup.get('pixKey')\"\n [errorMessages]=\"{\n required: 'hcm.payroll.required' | translate,\n invalidPhoneNumber: 'hcm.payroll.employees_addition_invalid_phone_number' | translate: { value: pixAccountFormGroup.get('pixKey').value },\n invalidEmail: 'hcm.payroll.employees_addition_email_invalid' | translate,\n cpfNotValid: 'hcm.payroll.employees_addition_cpf_error' | translate,\n cnpjNotValid: 'hcm.payroll.employees_addition_cnpj_error' | translate\n }\">\n </s-control-errors>\n </div>\n <!--Percentual-->\n <div class=\"ui-md-6 ui-sm-12 required\">\n <label id=\"lb-percentage\"\n for=\"ff-percentage\">{{ 'hcm.payroll.historical_bank_account_label_percentage' | translate }}</label>\n <div class=\"ui-inputgroup\">\n <span class=\"ui-inputgroup-addon\">%</span>\n <input pInputText id=\"ff-percentage\" name=\"percentage\"\n formControlName=\"percentage\"\n currencyMask\n [options]=\"optionsPercentage\"\n [placeholder]=\"percentagePlaceholder\"/>\n </div>\n <s-control-errors [control]=\"pixAccountFormGroup.get('percentage')\"\n [errorMessages]=\"{\n required: 'hcm.payroll.required' | translate,\n maxlength: 'hcm.payroll.error_max_length' | translate: { value: '6' },\n max: 'hcm.payroll.error_max_value_number' | translate: { value: maxValuePercentage },\n min: 'hcm.payroll.error_min_value_number' | translate: { value: '0,01' }\n }\">\n </s-control-errors>\n </div>\n <div class=\"ui-g-12\">\n <p-fieldset\n legend=\"{{ 'hcm.payroll.custom_fields' | translate }}\"\n [attr.data-hidden]=\"!customFields || !customFields.fields.length\"\n >\n <s-custom-fields\n domain=\"hcm\"\n service=\"{{customService}}\"\n entity=\"{{customEntity}}\"\n formControlName=\"customFields\"\n [invalidErrorLabel]=\"'hcm.payroll.employees_invalid_field' | translate\"\n >\n </s-custom-fields>\n </p-fieldset>\n </div>\n </div>\n </div>\n </form>\n\n <div [ngClass]=\"withSideBar ? 'footer' : 'footer-s-border'\">\n <div class=\"form-group\">\n <s-button id=\"btn-save\" label=\"{{ labelBtnAdd | translate}}\" priority=\"primary\"\n (onClick)=\"addItem()\" *ngIf=\"visibleBtnSave && !this.isView\"></s-button>\n <s-button *ngIf=\"withSideBar\" id=\"btn-close\" label=\"{{'hcm.payroll.cancel'|translate}}\" priority=\"secondary\"\n priority=\"link\" (onClick)=\"close()\"></s-button>\n </div>\n </div>\n</div>\n",
9300
+ styles: [".refresh{width:100%!important}#table-annuity .col-default-s{width:10%}#table-annuity .col-default-m{width:12%}#table-annuity .col-default-l{width:16%}#table-annuity .col-action{width:10%}#table-annuity .icon-warning{text-align:center!important;color:#ff6d00c7!important}@media screen and (max-width:612px){#table-annuity .col-default-1,#table-annuity .col-default-2{width:16%}#table-annuity .col-default-3{width:26%}#table-annuity .col-icon{width:10%}#table-annuity .col-action{width:27%}}#main{display:-webkit-box;display:flex;height:100%;width:100%;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}#main form{height:100%}#main .footer{border-top:1px solid #ccc;padding-top:15px;margin-top:15px;flex-shrink:0;margin-bottom:-18px}#main .footer-s-border{padding-left:7px;flex-shrink:0;margin-bottom:-18px}"]
9301
+ })
9302
+ ], HistoricalPixAccountFormComponent);
9303
+
9304
+ let HistoricalPixAccountService = class HistoricalPixAccountService {
9305
+ constructor(http) {
9306
+ this.http = http;
9307
+ }
9308
+ query(path, body, service = ServiceType.PAYROLL) {
9309
+ return this.http.query(path, body, service);
9310
+ }
9311
+ };
9312
+ HistoricalPixAccountService.ctorParameters = () => [
9313
+ { type: HttpClientService }
9314
+ ];
9315
+ HistoricalPixAccountService = __decorate([
9316
+ Injectable()
9317
+ ], HistoricalPixAccountService);
9318
+
9319
+ let HistoricalPixAccountModule = class HistoricalPixAccountModule {
9320
+ };
9321
+ HistoricalPixAccountModule = __decorate([
9322
+ NgModule({
9323
+ imports: [
9324
+ CommonModule,
9325
+ FormsModule,
9326
+ HttpClientModule,
9327
+ AutoCompleteModule,
9328
+ SharedModule,
9329
+ ReactiveFormsModule,
9330
+ TableModule,
9331
+ ButtonModule,
9332
+ TooltipModule,
9333
+ LoadingStateModule,
9334
+ SidebarModule,
9335
+ InputDateModule,
9336
+ ControlErrorsModule,
9337
+ InputRestAutoCompleteEnumModule,
9338
+ CurrencyMaskModule,
9339
+ InputRestAutoCompleteModule,
9340
+ InputTextModule,
9341
+ CoreDirectives,
9342
+ FieldsetModule,
9343
+ CustomFieldsModule$1,
9344
+ PanelModule,
9345
+ InputMaskModule,
9346
+ ],
9347
+ declarations: [HistoricalPixAccountComponent, HistoricalPixAccountFormComponent],
9348
+ providers: [HistoricalPixAccountService, ConfirmationService],
9349
+ exports: [HistoricalPixAccountComponent],
9350
+ })
9351
+ ], HistoricalPixAccountModule);
9352
+
8414
9353
  /*
8415
9354
  * Public API Surface of core
8416
9355
  */
@@ -8419,5 +9358,5 @@ FromToModule = __decorate([
8419
9358
  * Generated bundle index. Do not edit.
8420
9359
  */
8421
9360
 
8422
- export { AdmissionDraftSummaryComponent, AdmissionDraftSummaryModule, AdmissionDraftSummaryService, AutocompleteParametersService, BlockUiComponent, BlockUiModule, BreadcrumbComponent, BreadcrumbSDSModule, CNPJValidator, CPFValidator, CompanyIndicationType, CompanyIndicationsService, CompareType, ControlMessagesErrorComponent, ControlMessagesErrorModule, CoreDirectives, CoreFieldType, CustomFieldsComponent, CustomFieldsModule, DataListModule, DataListRestModule, DateValidator, DirectionEnumeration, EmployeeSelectorComponent, EmployeeSelectorModule, EmployeeSummaryComponent, EmployeeSummaryModule, EmployeeSummaryService, EntityODataParameter, ErrorPageComponent, ErrorPageModule, FieldValidatorComponent, FieldValidatorModule, FileUploadComponent, FileUploadCoreModule, FormComparatorService, FromToComponent, FromToModule, HistoricalBankAccountComponent, HistoricalBankAccountListComponent, HistoricalBankAccountListModule, HistoricalBankAccountListService, HistoricalBankAccountModule, HistoricalBankAccountService, HttpClientService, HttpRequestType, ImageCropComponent, ImageCropModule, ImageCropService, InputDateComponent, InputDateModelComponent, InputDateModelModule, InputDateModule, InputRestAutoCompleteComponent, InputRestAutoCompleteEmployeeModelModule, InputRestAutoCompleteEmployeeModelService, InputRestAutoCompleteEmployeeModule, InputRestAutoCompleteEmployeeService, InputRestAutoCompleteEnumComponent, InputRestAutoCompleteEnumModule, InputRestAutoCompleteEnumService, InputRestAutoCompleteJobpositionComponent, InputRestAutoCompleteJobpositionModule, InputRestAutoCompleteJobpositionService, InputRestAutoCompleteModelEnumModule, InputRestAutoCompleteModelEnumService, InputRestAutoCompleteModelModule, InputRestAutoCompleteModelService, InputRestAutoCompleteModule, InputRestAutoCompleteService, IntegrationService, ListRestComponent, ListRestModule, LookupModule, LookupParametersService, MenuType, ModuleType, NameNotSpacesDirective, OnlyNumberDirective, Operators, ParameterType, PermissionService, ReportFormat, ReportService, ReportStage, ServiceType, ServicesModule, SpinnerLoaderComponent, SpinnerLoaderModule, StringMethods, ToastComponent, ToastModule, ToastService, TypeAdmissionModule, TypeAdmissionServices, UsingType, WorkflowDataService, WorkflowIntegrator, WorkstationgroupLookupDto, WorkstationgroupLookupModule, _moment, assign, autoCompleteObjectForIdObject, clearValues, cnpjValidator, compareValues, configEnabledFields, containsMoreThanOneConsecutiveAbbreviation, containsMoreThanOneConsecutiveBlankSpace, containsMoreThanTwoRepeatedCharacters, containsSpecialCharacters, convertBooleanString, convertStringToBoolean, cpfValidator, firstNameIsValid, firstNameLengthIsValid, formatMoney, fullNameLengthIsValid, getAddWeekDaysBusiness, getFormat, getFormatDate, getMoment, getNowDate, getObjValids, getQueryParams, getWeekDaysBusiness, getYears, invertFieldDate, isBirthDayValid, isDateCompare, isDateExpirationBeforeExpeditionDate, isDateField, isDateSameOrAfterCurrentDate, isFullDate, isMax, isNumber, isObject, isRequired, isShallow, isValid, isValidDate, isValidPIS, mountCustomForSave, mountCustomForShow, mountCustomToSave, mountCustomToShow, mountGeneratedCustomToSave, ngCalendarFormat, notEmpty, numberOrZero, removeCharacteresSpecials, removeEmpty, removeWhiteSpaces, setCustonFields, setDisableField, setErrors, setRequired, setRequiredFields, setValidator, setValidatorsAndDisableFields, setValueCustom, stringMethods, sun, uiid, validateBirthDate, verifyValidationsForm, SharedModule as ɵa, DataListRestComponent as ɵb, DataListRestService as ɵc, FileUploadService as ɵd, InputRestAutoCompleteEmployeeComponent as ɵe, InputRestAutoCompleteEmployeeModelComponent as ɵf, InputRestAutoCompleteModelComponent as ɵg, InputRestAutoCompleteModelEnumComponent as ɵh, ListRestService as ɵi, DataListComponent as ɵj, DataListService as ɵk, LookupComponent as ɵl, LookupService as ɵm, WorkstationgroupLookupComponent as ɵn, AutocompleteService as ɵo, LookupService$1 as ɵp, HistoricalBankAccountFormComponent as ɵq };
9361
+ export { AdmissionDraftSummaryComponent, AdmissionDraftSummaryModule, AdmissionDraftSummaryService, AutocompleteParametersService, BlockUiComponent, BlockUiModule, BreadcrumbComponent, BreadcrumbSDSModule, CNPJValidator, CPFValidator, CompanyIndicationType, CompanyIndicationsService, CompareType, ControlMessagesErrorComponent, ControlMessagesErrorModule, CoreDirectives, CoreFieldType, CustomFieldsComponent, CustomFieldsModule, DataListModule, DataListRestModule, DateValidator, DirectionEnumeration, EmployeeSelectorComponent, EmployeeSelectorModule, EmployeeSummaryComponent, EmployeeSummaryModule, EmployeeSummaryService, EntityODataParameter, ErrorPageComponent, ErrorPageModule, FieldValidatorComponent, FieldValidatorModule, FileUploadComponent, FileUploadCoreModule, FormComparatorService, FromToComponent, FromToModule, HistoricalBankAccountComponent, HistoricalBankAccountListComponent, HistoricalBankAccountListModule, HistoricalBankAccountListService, HistoricalBankAccountModule, HistoricalBankAccountService, HistoricalPixAccountComponent, HistoricalPixAccountModule, HistoricalPixAccountService, HttpClientService, HttpRequestType, ImageCropComponent, ImageCropModule, ImageCropService, InputDateComponent, InputDateModelComponent, InputDateModelModule, InputDateModule, InputRestAutoCompleteComponent, InputRestAutoCompleteEmployeeModelModule, InputRestAutoCompleteEmployeeModelService, InputRestAutoCompleteEmployeeModule, InputRestAutoCompleteEmployeeService, InputRestAutoCompleteEnumComponent, InputRestAutoCompleteEnumModule, InputRestAutoCompleteEnumService, InputRestAutoCompleteJobpositionComponent, InputRestAutoCompleteJobpositionModule, InputRestAutoCompleteJobpositionService, InputRestAutoCompleteModelEnumModule, InputRestAutoCompleteModelEnumService, InputRestAutoCompleteModelModule, InputRestAutoCompleteModelService, InputRestAutoCompleteModule, InputRestAutoCompleteService, IntegrationService, ListRestComponent, ListRestModule, LookupModule, LookupParametersService, MenuType, ModuleType, NameNotSpacesDirective, OnlyNumberDirective, Operators, ParameterType, PermissionService, ReportFormat, ReportService, ReportStage, ServiceType, ServicesModule, SpinnerLoaderComponent, SpinnerLoaderModule, StringMethods, ToastComponent, ToastModule, ToastService, TypeAdmissionModule, TypeAdmissionServices, UsingType, WorkflowDataService, WorkflowIntegrator, WorkstationgroupLookupDto, WorkstationgroupLookupModule, _moment, assign, autoCompleteObjectForIdObject, clearValues, cnpjValidator, compareValues, configEnabledFields, containsMoreThanOneConsecutiveAbbreviation, containsMoreThanOneConsecutiveBlankSpace, containsMoreThanTwoRepeatedCharacters, containsSpecialCharacters, convertBooleanString, convertStringToBoolean, cpfValidator, firstNameIsValid, firstNameLengthIsValid, formatMoney, fullNameLengthIsValid, getAddWeekDaysBusiness, getFormat, getFormatDate, getMoment, getNowDate, getObjValids, getQueryParams, getWeekDaysBusiness, getYears, invertFieldDate, isBirthDayValid, isDateCompare, isDateExpirationBeforeExpeditionDate, isDateField, isDateSameOrAfterCurrentDate, isFullDate, isMax, isNumber, isObject, isRequired, isShallow, isValid, isValidDate, isValidPIS, mountCustomForSave, mountCustomForShow, mountCustomToSave, mountCustomToShow, mountGeneratedCustomToSave, ngCalendarFormat, notEmpty, numberOrZero, removeCharacteresSpecials, removeEmpty, removeWhiteSpaces, setCustonFields, setDisableField, setErrors, setRequired, setRequiredFields, setValidator, setValidatorsAndDisableFields, setValueCustom, stringMethods, sun, uiid, validateBirthDate, verifyValidationsForm, SharedModule as ɵa, DataListRestComponent as ɵb, DataListRestService as ɵc, FileUploadService as ɵd, InputRestAutoCompleteEmployeeComponent as ɵe, InputRestAutoCompleteEmployeeModelComponent as ɵf, InputRestAutoCompleteModelComponent as ɵg, InputRestAutoCompleteModelEnumComponent as ɵh, ListRestService as ɵi, DataListComponent as ɵj, DataListService as ɵk, LookupComponent as ɵl, LookupService as ɵm, WorkstationgroupLookupComponent as ɵn, AutocompleteService as ɵo, LookupService$1 as ɵp, HistoricalBankAccountFormComponent as ɵq, HistoricalPixAccountFormComponent as ɵr };
8423
9362
  //# sourceMappingURL=senior-gestao-pessoas-payroll-core.js.map