@senior-gestao-pessoas/payroll-core 9.5.0-d4960af2-4da8-48bf-aac1-4d553cb625ef → 9.5.0-da89cbba-6cbd-41d9-a633-e9f0b229e923

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 (42) hide show
  1. package/bundles/senior-gestao-pessoas-payroll-core.umd.js +467 -848
  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 -16
  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 +43 -9
  6. package/components/historical-pix-account/historical-pix-account.component.d.ts +10 -38
  7. package/components/historical-pix-account/historical-pix-account.service.d.ts +0 -1
  8. package/components/historical-pix-account-list/historical-pix-account-list.component.d.ts +2 -9
  9. package/components/utils/format-utils/format-utils.service.d.ts +3 -30
  10. package/esm2015/components/historical-pix-account/historical-pix-account-form/historical-pix-account-form.component.js +200 -30
  11. package/esm2015/components/historical-pix-account/historical-pix-account.component.js +29 -221
  12. package/esm2015/components/historical-pix-account/historical-pix-account.module.js +1 -5
  13. package/esm2015/components/historical-pix-account/historical-pix-account.service.js +1 -8
  14. package/esm2015/components/historical-pix-account-list/historical-pix-account-list.component.js +8 -37
  15. package/esm2015/components/utils/format-utils/format-utils.service.js +5 -88
  16. package/esm2015/public_api.js +1 -2
  17. package/esm2015/senior-gestao-pessoas-payroll-core.js +2 -3
  18. package/esm5/components/historical-pix-account/historical-pix-account-form/historical-pix-account-form.component.js +215 -54
  19. package/esm5/components/historical-pix-account/historical-pix-account.component.js +58 -263
  20. package/esm5/components/historical-pix-account/historical-pix-account.module.js +1 -5
  21. package/esm5/components/historical-pix-account/historical-pix-account.service.js +1 -8
  22. package/esm5/components/historical-pix-account-list/historical-pix-account-list.component.js +8 -42
  23. package/esm5/components/utils/format-utils/format-utils.service.js +5 -88
  24. package/esm5/public_api.js +1 -2
  25. package/esm5/senior-gestao-pessoas-payroll-core.js +2 -3
  26. package/fesm2015/senior-gestao-pessoas-payroll-core.js +504 -845
  27. package/fesm2015/senior-gestao-pessoas-payroll-core.js.map +1 -1
  28. package/fesm5/senior-gestao-pessoas-payroll-core.js +464 -844
  29. package/fesm5/senior-gestao-pessoas-payroll-core.js.map +1 -1
  30. package/package.json +1 -1
  31. package/public_api.d.ts +0 -1
  32. package/senior-gestao-pessoas-payroll-core.d.ts +1 -2
  33. package/senior-gestao-pessoas-payroll-core.metadata.json +1 -1
  34. package/components/historical-pix-account/historical-pix-account-base.d.ts +0 -27
  35. package/components/shared/index.d.ts +0 -1
  36. package/components/shared/shared-state.service.d.ts +0 -14
  37. package/esm2015/components/historical-pix-account/historical-pix-account-base.js +0 -173
  38. package/esm2015/components/shared/index.js +0 -2
  39. package/esm2015/components/shared/shared-state.service.js +0 -36
  40. package/esm5/components/historical-pix-account/historical-pix-account-base.js +0 -186
  41. package/esm5/components/shared/index.js +0 -2
  42. package/esm5/components/shared/shared-state.service.js +0 -37
@@ -1 +1 @@
1
- {"version":3,"file":"senior-gestao-pessoas-payroll-core.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","ng://@senior-gestao-pessoas/payroll-core/components/utils/cpf-validator.ts","ng://@senior-gestao-pessoas/payroll-core/components/utils/cnpj-validator.ts","ng://@senior-gestao-pessoas/payroll-core/components/vanilla/string-methods.ts","ng://@senior-gestao-pessoas/payroll-core/components/block-ui/block-ui.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/block-ui/block-ui.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/breadcrumb/breadcrumb.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/shared/shared.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/breadcrumb/breadcrumb.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/control-messages-error/control-messages-error.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/control-messages-error/control-messages-error.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/custom-fields/custom-fields.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-date/input-date.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-date/input-date.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/custom-fields/custom-fields.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/directives/name-not-spaces.directive.ts","ng://@senior-gestao-pessoas/payroll-core/components/directives/only-number.directive.ts","ng://@senior-gestao-pessoas/payroll-core/components/directives/directives.module.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/usingType.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/companyIndicationType.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/coreFieldType.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/direction.enumeration.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/moduleType.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/operators.enumeration.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/comparetype.enumeration.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/serviceType.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/httpRequestType.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/report-format.enumeration.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/parameter-type.enumeration.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/menu-type.enumeration.ts","ng://@senior-gestao-pessoas/payroll-core/core/enums/report-stage.enumeration.ts","ng://@senior-gestao-pessoas/payroll-core/components/data-list-rest/data-list-rest.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/data-list-rest/data-list-rest.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/data-list-rest/data-list-rest.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/employee-summary/employee-summary.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/employee-summary/employee-summary.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/employee-summary/employee-summary.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/admission-draft-summary/admission-draft-summary.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/admission-draft-summary/admission-draft-summary.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/admission-draft-summary/admission-draft-summary.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/error-page/error-page.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/error-page/error-page.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/field-validator/field-validator.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/field-validator/field-validator.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/toast/toast.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/shared/http-client.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/file-upload/file-upload.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/file-upload/file-upload.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/file-upload/file-upload.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/image-cropper/image-crop.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/image-cropper/image-crop.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/image-cropper/image-crop.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-date-model/input-date-model.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-date-model/input-date-model.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/utils/helpers.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete/input-rest-auto-complete.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete/input-rest-auto-complete.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete/input-rest-auto-complete.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-employee/input-rest-auto-complete-employee.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-employee/input-rest-auto-complete-employee.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-employee/input-rest-auto-complete-employee.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-enum/input-rest-auto-complete-enum.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-enum/input-rest-auto-complete-enum.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-enum/input-rest-auto-complete-enum.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-model/input-rest-auto-complete-model.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-model/input-rest-auto-complete-model.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-model/input-rest-auto-complete-model.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/list-rest/list-rest.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/list-rest/list-rest.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/list-rest/list-rest.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/spinner/spinner-loader.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/spinner/spinner-loader.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/type-admission/type-admission.services.ts","ng://@senior-gestao-pessoas/payroll-core/components/type-admission/type-admission.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/utils/validations.ts","ng://@senior-gestao-pessoas/payroll-core/services/company-indications.service.ts","ng://@senior-gestao-pessoas/payroll-core/services/integration.service.ts","ng://@senior-gestao-pessoas/payroll-core/services/lookup-parameters.service.ts","ng://@senior-gestao-pessoas/payroll-core/services/autocomplete-parameters.service.ts","ng://@senior-gestao-pessoas/payroll-core/services/report.service.ts","ng://@senior-gestao-pessoas/payroll-core/services/workflow-data.service.ts","ng://@senior-gestao-pessoas/payroll-core/services/form-comparator.service.ts","ng://@senior-gestao-pessoas/payroll-core/services/services.module.ts","ng://@senior-gestao-pessoas/payroll-core/services/permissions.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/toast/toast.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/toast/toast.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/data-list/data-list.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/data-list/data-list.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/data-list/data-list.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/lookup/lookup.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/lookup/lookup.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/lookup/lookup.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/workstationgroup-lookup/autocomplete.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/workstationgroup-lookup/lookup.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/workstationgroup-lookup/workstationgroup-lookup.dto.ts","ng://@senior-gestao-pessoas/payroll-core/components/workstationgroup-lookup/workstationgroup-lookup.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/workstationgroup-lookup/workstationgroup-lookup.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-bank-account/historical-bank-account.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-bank-account/historical-bank-account-form/historical-bank-account-form.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-bank-account/historical-bank-account.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-bank-account/historical-bank-account.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-bank-account-list/historical-bank-account-list.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-bank-account-list/historical-bank-account-list.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-bank-account-list/historical-bank-account-list.module.ts","ng://@senior-gestao-pessoas/payroll-core/core/entities/entity-odata-parameter.ts","ng://@senior-gestao-pessoas/payroll-core/components/utils/date-validator/date-validators.ts","ng://@senior-gestao-pessoas/payroll-core/services/workflow-integrator.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/employee-selector/employee-selector.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/employee-selector/employee-selector.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/from-to/from-to.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/from-to/from-to.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/utils/format-utils/format-utils.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/shared/shared-state.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/utils/generic-validators.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-pix-account/historical-pix-account-base.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-pix-account/historical-pix-account.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-pix-account/historical-pix-account.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-pix-account/historical-pix-account-form/historical-pix-account-form.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-pix-account/historical-pix-account.module.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-pix-account-list/historical-pix-account-list.service.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-pix-account-list/historical-pix-account-list.component.ts","ng://@senior-gestao-pessoas/payroll-core/components/historical-pix-account-list/historical-pix-account-list.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { AbstractControl, Validators } from '@angular/forms';\n\n/**\n * Created by Bruno.Curioletti on 30/05/2017.\n */\nexport class CPFValidator {\n calcChecker1(firstNineDigits) {\n let sum = null;\n\n for (let j = 0; j < 9; ++j) {\n sum += firstNineDigits.toString().charAt(j) * (10 - j);\n }\n\n const lastSumChecker1 = sum % 11;\n const checker1 = lastSumChecker1 < 2 ? 0 : 11 - lastSumChecker1;\n\n return checker1;\n }\n\n calcChecker2(cpfWithChecker1) {\n let sum = null;\n\n for (let k = 0; k < 10; ++k) {\n sum += cpfWithChecker1.toString().charAt(k) * (11 - k);\n }\n\n const lastSumChecker2 = sum % 11;\n const checker2 = lastSumChecker2 < 2 ? 0 : 11 - lastSumChecker2;\n\n return checker2;\n }\n\n checkCPF(value) {\n const cleanCPF = value.replace(/\\.|\\-|\\s/g, ''),\n firstNineDigits = cleanCPF.substring(0, 9),\n checker = cleanCPF.substring(9, 11);\n\n if (cleanCPF.length !== 11) {\n return false;\n }\n\n // Checking if all digits are equal\n for (let i = 0; i < 10; i++) {\n if ('' + firstNineDigits + checker === Array(12).join(i.toString())) {\n return false;\n }\n }\n const checker1 = this.calcChecker1(firstNineDigits);\n const checker2 = this.calcChecker2(firstNineDigits + '' + checker1);\n\n if (checker.toString() === checker1.toString() + checker2.toString()) {\n return true;\n } else {\n return false;\n }\n }\n}\n\nexport const cpfValidator = new CPFValidator();\n","import { AbstractControl, Validators } from '@angular/forms';\n\nexport class CNPJValidator {\n\n /**\n * Valida se o CNPJ é valido. Deve-se ser informado o cnpj sem máscara.\n */\n checkCNPJ(value) {\n let cnpj = value;\n\n if (cnpj) {\n let size, numbers, digits, sum, pos, result;\n cnpj = cnpj.replace(/[^\\d]+/g, '');\n\n if (cnpj.length !== 14) {\n return true;\n }\n\n // Elimina CNPJs invalidos conhecidos\n if (\n cnpj === '00000000000000' ||\n cnpj === '11111111111111' ||\n cnpj === '22222222222222' ||\n cnpj === '33333333333333' ||\n cnpj === '44444444444444' ||\n cnpj === '55555555555555' ||\n cnpj === '66666666666666' ||\n cnpj === '77777777777777' ||\n cnpj === '88888888888888' ||\n cnpj === '99999999999999'\n ) {\n return false;\n }\n\n // Valida DVs\n size = cnpj.length - 2;\n numbers = cnpj.substring(0, size);\n digits = cnpj.substring(size);\n sum = 0;\n pos = size - 7;\n for (let i = size; i >= 1; i--) {\n sum += numbers.charAt(size - i) * pos--;\n if (pos < 2) {\n pos = 9;\n }\n }\n result = sum % 11 < 2 ? 0 : 11 - (sum % 11);\n if (result !== Number(digits.charAt(0))) {\n return false ;\n }\n\n size = size + 1;\n numbers = cnpj.substring(0, size);\n sum = 0;\n pos = size - 7;\n for (let i = size; i >= 1; i--) {\n sum += numbers.charAt(size - i) * pos--;\n if (pos < 2) {\n pos = 9;\n }\n }\n result = sum % 11 < 2 ? 0 : 11 - (sum % 11);\n if (result !== Number(digits.charAt(1))) {\n return false;\n }\n\n return true;\n }\n return true;\n }\n}\n\nexport const cnpjValidator = new CNPJValidator();\n","export class StringMethods {\n\n constructor() {\n this.addStringFormat();\n }\n\n addStringFormat() {\n if (!String.prototype.hasOwnProperty('format')) {\n const format = {\n format: function () {\n let formatted = this;\n for (let i = 0; i < arguments.length; i++) {\n const regexp = new RegExp('\\\\{' + i + '\\\\}', 'gi');\n formatted = formatted.replace(regexp, arguments[i]);\n }\n return formatted;\n }\n };\n Object.assign(String.prototype, format);\n }\n }\n}\n\nexport const stringMethods = new StringMethods();\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'block-ui',\n templateUrl: './block-ui.component.html',\n styleUrls: ['./block-ui.component.css'],\n})\nexport class BlockUiComponent {\n @Input()\n blocked: boolean;\n @Input()\n target: string;\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { BlockUIModule } from 'primeng/blockui';\nimport { ProgressSpinnerModule } from 'primeng/progressspinner';\n\nimport { BlockUiComponent } from './block-ui.component';\n\n@NgModule({\n imports: [\n FormsModule,\n BlockUIModule,\n ProgressSpinnerModule\n ],\n declarations: [\n BlockUiComponent\n ],\n exports: [\n BlockUiComponent\n ]\n})\nexport class BlockUiModule {}\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MenuItem } from 'primeng/components/common/menuitem';\nimport { filter } from 'rxjs/operators';\n\n@Component({\n selector: 'c-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n})\nexport class BreadcrumbComponent implements OnInit {\n public items: MenuItem[];\n public title: string;\n\n constructor(private activatedRoute: ActivatedRoute, private router: Router, private translate: TranslateService) {\n this.items = [];\n }\n\n ngOnInit() {\n this.router.events.pipe(filter(event => event instanceof NavigationEnd)).subscribe(() => {\n const root: ActivatedRoute = this.activatedRoute.root;\n this.items = this.getBreadcrumbs(root, []);\n });\n }\n\n private getBreadcrumbs(route: ActivatedRoute, breadcrumbs: MenuItem[]): MenuItem[] {\n const children: ActivatedRoute[] = route.children;\n if (children.length === 0) {\n return breadcrumbs;\n }\n\n this.generateBreadcrumb(children, breadcrumbs);\n\n const index = (breadcrumbs.length && breadcrumbs.length - 1) || 0;\n this.title = breadcrumbs[index] && breadcrumbs[index].label;\n return breadcrumbs;\n }\n\n private generateBreadcrumb(children: ActivatedRoute[], breadcrumbs: MenuItem[]) {\n const ROUTE_DATA_BREADCRUMB = 'breadcrumb';\n children.forEach((child: ActivatedRoute, index: number) => {\n if (child.snapshot.data.hasOwnProperty(ROUTE_DATA_BREADCRUMB)) {\n child.snapshot.data[ROUTE_DATA_BREADCRUMB].map(val => {\n const breadcrumb: MenuItem = {\n label: this.translate.instant(val.name),\n queryParams: child.snapshot.queryParams,\n routerLink: this.getFormattedUrl(child, val.routerLink),\n url: this.getFormattedUrl(child, val.url),\n };\n\n if (val.routerLink) {\n breadcrumb.disabled = true;\n breadcrumb.routerLinkActiveOptions = { exact: true };\n }\n breadcrumbs.push(breadcrumb);\n });\n }\n\n if (child.children && child.children.length) {\n this.generateBreadcrumb(child.children, breadcrumbs);\n }\n });\n }\n\n getFormattedUrl(activatedRoute: ActivatedRoute, url: string): string {\n if (url) {\n Object.keys(activatedRoute.snapshot.params).forEach(param => {\n url = url.replace(`:${param}`, activatedRoute.snapshot.params[param]);\n });\n\n if (url.includes(':') && activatedRoute.parent) {\n return this.getFormattedUrl(activatedRoute.parent, url);\n }\n }\n return url;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n exports: [\n CommonModule,\n TranslateModule,\n ]\n})\nexport class SharedModule {\n constructor() {\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { BreadcrumbModule } from 'primeng/breadcrumb';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { BreadcrumbComponent } from './breadcrumb.component';\n\n@NgModule({\n imports: [\n FormsModule,\n BreadcrumbModule,\n SharedModule,\n ],\n declarations: [\n BreadcrumbComponent\n ],\n exports: [\n BreadcrumbComponent\n ]\n})\nexport class BreadcrumbSDSModule {\n}\n","import { Component, Input } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n selector: 'control-messages-error',\n templateUrl: \"./control-messages-error.component.html\",\n styleUrls: [\"./control-messages-error.component.css\"],\n})\nexport class ControlMessagesErrorComponent {\n @Input()\n control: FormControl;\n @Input()\n errorList: object;\n\n constructor() {}\n\n get errorMessage() {\n for (const propertyName in this.control.errors) {\n if (this.control.errors.hasOwnProperty(propertyName) && (this.control.touched || this.control.dirty)) {\n return this.errorList[propertyName];\n }\n }\n return null;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { ControlMessagesErrorComponent } from './control-messages-error.component';\n\n@NgModule({\n imports: [CommonModule, SharedModule, ReactiveFormsModule],\n declarations: [ControlMessagesErrorComponent],\n exports: [ControlMessagesErrorComponent],\n})\nexport class ControlMessagesErrorModule {}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\nexport interface IField {\n field: string;\n label: string;\n type: string;\n regex: string;\n mask: string;\n value: string;\n}\n\n@Component({\n selector: 'custom-fields',\n templateUrl: './custom-fields.component.html',\n styleUrls: ['./custom-fields.component.css'],\n})\nexport class CustomFieldsComponent implements OnInit {\n @Input()\n params?: IField;\n @Input()\n disabled?: boolean;\n @Input()\n readonly?: boolean;\n @Input()\n required?: boolean;\n @Input()\n form: FormGroup;\n\n optionsBoolean = [{ label: 'Selecione', value: '' }, { label: 'Sim', value: 'true' }, { label: 'Não', value: 'false' }];\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild, OnDestroy } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { LocaleService } from '@seniorsistemas/angular-components';\nimport * as _moment from 'moment';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nconst moment = _moment;\n\n@Component({\n selector: 'input-date-calendar',\n templateUrl: './input-date.component.html',\n})\nexport class InputDateComponent implements OnInit, OnDestroy {\n @ViewChild('inputDateElement', { static: false })\n _inputDateElement: ElementRef;\n @Input()\n form: FormGroup;\n @Input()\n name: string;\n @Input()\n disabled?: boolean;\n @Input()\n unmask = true;\n @Input()\n inputId: string;\n @Input()\n withoutDay: boolean;\n @Input()\n readonly: boolean;\n\n @Output()\n onBlurGetMoment: EventEmitter<any> = new EventEmitter();\n\n private ngUnsubscribe = new Subject();\n private _date: any;\n private locale: any;\n private format: any;\n mask = null;\n\n constructor(private localeService: LocaleService) {}\n\n ngOnInit() {\n this.localeService\n .get()\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(loc => {\n this.mask = this.formatMask(loc);\n this.format = this.setFormat();\n if (this.form.get(this.name).value) {\n const newDate = this.form.get(this.name).value.toString();\n const momentDate = moment(newDate, this.format || 'YYYY-MM-DD');\n this.form.get(this.name).setValue(momentDate.format(this.format || 'L'));\n this._date = momentDate;\n }\n });\n }\n\n ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n formatMask(loc) {\n this.locale = loc;\n let dateMask = this.locale.calendar.dateFormat.toString();\n\n if (this.withoutDay) {\n dateMask = dateMask.replace('dd/', '').replace('-dd', '');\n }\n\n dateMask = dateMask.replace(/[d]|[m]/g, '9');\n return dateMask.replace(/[y]/g, '99');\n }\n\n setFormat() {\n let dateFormat = this.locale.calendar.dateFormat.toString();\n dateFormat = dateFormat.replace(/[y]/g, 'YY');\n\n if (this.withoutDay) {\n dateFormat = dateFormat.replace('dd/', '').replace('-dd', '');\n }\n\n return dateFormat.toUpperCase();\n }\n\n get placeholder() {\n return this.mask ? this.mask.toString().replace(/[9]/g, '_') : '';\n }\n\n onBlur(event) {\n if (event && event.target && event.target.value) {\n const dateComponent = this.form.get(this.name).value;\n this._date = moment(dateComponent, this.format);\n this.onBlurGetMoment.emit(this._date);\n } else {\n this._date = {};\n this.form.get(this.name).setValue(null);\n this.onBlurGetMoment.emit(null);\n }\n }\n\n @Input()\n get model() {\n const dateComponet = this.form.get(this.name).value;\n return moment(dateComponet, this.format);\n }\n\n get inputDateElement() {\n return this._inputDateElement;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { InputMaskModule } from 'primeng/inputmask';\n\nimport { InputDateComponent } from './input-date.component';\n\n@NgModule({\n imports: [InputMaskModule, FormsModule, ReactiveFormsModule, CommonModule],\n declarations: [InputDateComponent],\n exports: [InputDateComponent],\n})\nexport class InputDateModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { InputMaskModule } from 'primeng/inputmask';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { SharedModule } from 'primeng/shared';\n\nimport { InputDateModule } from '../input-date/input-date.module';\nimport { CustomFieldsComponent } from './custom-fields.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n SharedModule,\n InputTextModule,\n InputDateModule,\n DropdownModule,\n InputMaskModule\n ],\n declarations: [CustomFieldsComponent],\n providers: [],\n exports: [CustomFieldsComponent]\n})\nexport class CustomFieldsModule {\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[name-not-spaces]',\n})\nexport class NameNotSpacesDirective {\n private el: HTMLInputElement;\n\n constructor(private elementRef: ElementRef) {\n this.el = this.elementRef.nativeElement;\n }\n\n @HostListener('blur', ['$event.target.value'])\n onBlur(value) {\n this.cleanVar(value);\n }\n\n cleanVar(val) {\n const clean = val.trim().replace(/^\\s+|\\s+$|\\s+(?=\\s)/g, '');\n if (val !== clean) {\n this.el.value = clean;\n }\n return clean;\n }\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[only-number]',\n})\nexport class OnlyNumberDirective {\n constructor(private el: ElementRef) {}\n @HostListener('keydown', ['$event'])\n onKeyDown(event) {\n const e = <KeyboardEvent>event;\n\n if (\n [46, 8, 9, 27, 13, 110, 190].indexOf(e.keyCode) !== -1 ||\n // Allow: Ctrl+A\n (e.keyCode === 65 && (e.ctrlKey || e.metaKey)) ||\n // Allow: Ctrl+C\n (e.keyCode === 67 && (e.ctrlKey || e.metaKey)) ||\n // Allow: Ctrl+V\n (e.keyCode === 86 && (e.ctrlKey || e.metaKey)) ||\n // Allow: Ctrl+X\n (e.keyCode === 88 && (e.ctrlKey || e.metaKey)) ||\n // Allow: home, end, left, right\n (e.keyCode >= 35 && e.keyCode <= 39)\n ) {\n // let it happen, don't do anything\n return;\n }\n // Ensure that it is a number and stop the keypress\n if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {\n e.preventDefault();\n }\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { NameNotSpacesDirective } from './name-not-spaces.directive';\nimport { OnlyNumberDirective } from './only-number.directive';\n\n@NgModule({\n imports: [],\n declarations: [OnlyNumberDirective, NameNotSpacesDirective],\n exports: [OnlyNumberDirective, NameNotSpacesDirective],\n providers: [],\n schemas: [],\n})\nexport class CoreDirectives {}\n","export enum UsingType {\n // \"Empresas de transporte.\"\n TYPE_1 = 'TYPE_1',\n // \"Clientes de agência de emprego.\"\n TYPE_2 = 'TYPE_2',\n // \"Entidades de ensino.\"\n TYPE_3 = 'TYPE_3',\n // \"Conveniados médicos.\"\n TYPE_4 = 'TYPE_4',\n // \"Seguradoras.\"\n TYPE_6 = 'TYPE_6',\n // \"Escritórios advocacia.\"\n TYPE_7 = 'TYPE_7',\n // \"Conveniados tickets.\"\n TYPE_8 = 'TYPE_8',\n // \"Empregos anteriores.\"\n TYPE_9 = 'TYPE_9',\n // \"Cooperativa de trabalho.\"\n TYPE_10 = 'TYPE_10',\n // \"Fornecedor/Fabricante de EPI/EPC.\"\n TYPE_11 = 'TYPE_11',\n // \"Escolas de educação infantil.\"\n TYPE_12 = 'TYPE_12',\n // \"Entidade de ensino - Nível superior.\"\n TYPE_14 = 'TYPE_14',\n // \"Empresas de refeição.\"\n TYPE_15 = 'TYPE_15',\n // \"Entidades de ensino - Nível médio.\"\n TYPE_16 = 'TYPE_16',\n // \"Fornecedor para treinamento.\"\n TYPE_17 = 'TYPE_17',\n // \"Higienização ou serviços gerais.\"\n TYPE_18 = 'TYPE_18',\n // \"Agente de integração.\"\n TYPE_19 = 'TYPE_19',\n // \"Empresas de software.\"\n TYPE_20 = 'TYPE_20',\n // \"Laboratório.\"\n TYPE_21 = 'TYPE_21',\n}\n","export enum CompanyIndicationType {\n // Usa rotinas de dependente\n USE_DEPENDENTS = 'USE_DEPENDENTS',\n // Controla frequência de vacinação\n VACCINATION_FREQUENCY = 'VACCINATION_FREQUENCY',\n // Usa calculo de rateio\n APPORTIONMENT_CALCULATION = 'APPORTIONMENT_CALCULATION',\n // Assinalamento usa posto de trabalho para colaborador\n USE_WORKSTATION_GROUP_EMPLOYEE = 'USE_WORKSTATION_GROUP_EMPLOYEE',\n // Estrutura\n STRUCTURE = 'STRUCTURE',\n // Anuidade\n PAY_ANNUITY = 'PAY_ANNUITY',\n // Usa histórico de contas bancárias\n USE_HISTORICAL_BANK_ACCOUNT = 'USE_HISTORICAL_BANK_ACCOUNT'\n}\n","export enum CoreFieldType {\n searchValue = 'searchValue',\n}\n","export enum DirectionEnumeration {\n ASC = 'ASC',\n DESC = 'DESC',\n}\n","export enum ModuleType {\n /** Painel de gestão */\n MANAGEMENT_PANEL = 'MANAGEMENT_PANEL',\n /** Gestão de desempenho*/\n PERFORMANCE_MANAGEMENT = 'PERFORMANCE_MANAGEMENT',\n /** Carreira e sucessão */\n CAREER_SUCCESSION = 'CAREER_SUCCESSION',\n /** Recrutamento */\n RECRUIT_MANAGEMENT = 'RECRUIT_MANAGEMENT',\n /** Gestão de remuneração */\n REMUNERATION_MANAGEMENT = 'REMUNERATION_MANAGEMENT',\n /** Gestão de desenvolvimento */\n DEVELOPMENT_MANAGEMENT = 'DEVELOPMENT_MANAGEMENT',\n /** Folha de pagamento */\n PAYROLL = 'PAYROLL',\n /** Aplicativo */\n APP = 'APP',\n /** Moods */\n MOODS = 'MOODS'\n}\n","export enum Operators {\n EQUAL = 'eq',\n DIFFERENT = 'ne',\n LESS_THAN = 'it',\n GREATER_THAN = 'gt',\n LESS__EQUAL_THAN = 'le',\n GREATER_EQUAL_THAN = 'ge',\n CONTAINING = 'containing',\n LOWER = 'lower',\n AND = 'and',\n OR = 'or',\n}\n","/**\n * Enum com as funções de comparação da biblioteca Moment.js\n * Não contempla a função isBetween, será necessário fazer uma validação esoecífica para usá-la\n */\nexport enum CompareType {\n isBefore = \"isBefore\",\n isAfter = \"isAfter\",\n isSame = \"isSame\",\n isSameOrAfter = \"isSameOrAfter\",\n isSameOrBefore = \"isSameOrBefore\",\n isNotSame = \"isNotSame\",\n}\n","export enum ServiceType {\n ENTRY = 'entry',\n GENERAL_REGISTER = 'general_register',\n ORGANIZATION_REGISTER = 'organization_register',\n PAYROLL = 'payroll',\n DEPENDENT = 'dependent',\n}\n","export enum HttpRequestType {\n POST = \"post\",\n GET = \"get\",\n}\n","export enum ReportFormat {\n PDF = \"Pdf\",\n CSV = \"Csv\",\n HTML = \"Html\",\n XLS = \"Xls\",\n XLSX = \"Xlsx\",\n XML = \"Xml\",\n ODT = \"Odt\",\n RTF = \"Rtf\"\n}\n","export enum ParameterType {\n STRING = \"String\",\n INTEGER = \"Integer\",\n DOUBLE = \"Double\",\n BOOLEAN = \"Boolean\",\n DATE = \"Date\",\n DATETIME = \"DateTime\",\n TIME = \"Time\",\n OBJECT = \"Object\"\n}\n","export enum MenuType {\n DEFAULT = \"DEFAULT\",\n ACTION = \"ACTION\"\n}\n","export enum ReportStage {\n STARTING = \"Starting\",\n COMPILING = \"Compiling\",\n FILLING = \"Filling\",\n EXPORTING = \"Exporting\",\n DONE = \"Done\",\n CANCELLED = \"Cancelled\",\n GENERATED = \"Generated\",\n ERROR = \"Error\"\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class DataListRestService {\n constructor(private http: HttpClient) {}\n\n getList(endpoint: string, body: object): Observable<any> {\n return this.http.post(`${endpoint}`, body);\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { Table } from 'primeng/table';\nimport { Subject } from 'rxjs';\nimport { map, takeUntil } from 'rxjs/operators';\n\nimport { DirectionEnumeration } from '../../core/enums';\nimport { DataListRestService } from './data-list-rest.service';\n\n@Component({\n selector: 'c-data-list-rest',\n templateUrl: './data-list-rest.component.html',\n styleUrls: ['./data-list-rest.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [DataListRestService],\n})\nexport class DataListRestComponent implements OnInit, OnDestroy {\n @ViewChild('dataListTable', { static: false })\n dataListTable: Table;\n\n @Input()\n id: string;\n @Input()\n dataKey: string;\n @Input()\n rows = 10;\n @Input()\n emptyMessage: string;\n @Input()\n columns: any[];\n @Input()\n paginator = true;\n @Input()\n first = 1;\n @Input()\n alwaysShowPaginator = true;\n @Input()\n actions?: Function;\n @Input()\n actionLabel: string;\n @Input()\n selectionMode: string;\n @Input()\n lazy: boolean;\n @Input()\n isMultipleSelection: boolean;\n @Input()\n isSortable: boolean;\n @Input()\n showHeaderCheckBox: boolean;\n @Input()\n sortMode = 'multiple';\n @Input()\n endpoint: string;\n @Input()\n totalRecords: number;\n @Input()\n orderBy: { field: string; direction: DirectionEnumeration }[];\n @Input()\n singularMessageRecords: string;\n @Input()\n pluralMessageRecords: string;\n @Input()\n keyPayload: string;\n @Input()\n initParameters: any;\n @Input()\n responsive = true;\n @Input()\n scrollable = false;\n\n @Output()\n lazyLoad: EventEmitter<any> = new EventEmitter();\n @Output()\n loadingChange: EventEmitter<any> = new EventEmitter();\n @Output()\n listDataChange: EventEmitter<any> = new EventEmitter();\n @Output()\n selectedDataChange: EventEmitter<any> = new EventEmitter();\n @Output()\n headerCheckboxToggle: EventEmitter<any> = new EventEmitter();\n\n private _loading: boolean;\n private _listData: any[];\n private _selectedData: any[];\n private _searchParameters: any;\n private ngUnsubscribe = new Subject();\n\n constructor(private dataListService: DataListRestService) {}\n\n ngOnInit() {\n if (!this.lazy) {\n this.getlistData();\n }\n }\n\n ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n getActions(data: any, index: number) {\n return this.actions(data, index);\n }\n\n pagination(event) {\n if (!this.lazy) {\n this.getlistData(event.rows, Math.floor(event.first / event.rows));\n }\n }\n\n onLazyLoad(event) {\n this.loading = true;\n\n if (event.multiSortMeta && event.multiSortMeta.length) {\n this.orderBy = <{ field: string; direction: DirectionEnumeration }[]>[];\n event.multiSortMeta.map(value => {\n this.orderBy.push({ field: value.field, direction: value.order === 1 ? DirectionEnumeration.ASC : DirectionEnumeration.DESC });\n });\n }\n\n this.getlistData(event.rows, Math.floor(event.first / event.rows) + 1);\n }\n\n onFilter() {\n if (this.lazy) {\n this.loading = true;\n }\n\n this.getlistData();\n }\n\n get recordsMessage() {\n return `${this.totalRecords || 0} ${this.totalRecords === 1 ? this.singularMessageRecords : this.pluralMessageRecords}`;\n }\n\n getlistData(size = this.rows, offset = this.first): void {\n if (this.endpoint) {\n this.dataListService\n .getList(this.endpoint, {\n page: { current: offset, size: size, orderBy: this.orderBy },\n ...this.initParameters,\n ...this._searchParameters,\n })\n .pipe(\n takeUntil(this.ngUnsubscribe),\n map((data: any) => data && data.result)\n )\n .subscribe((data: any) => {\n this.listData = data[this.keyPayload];\n this.totalRecords = data.countResult;\n if (this.lazy) {\n this.lazyLoad.emit(this.listData);\n }\n });\n } else {\n if (this.lazy) {\n this.lazyLoad.emit(this.listData);\n }\n }\n }\n\n onHeaderCheckboxToggle(event) {\n this.headerCheckboxToggle.emit(event);\n }\n\n getFieldValue(rowData, col) {\n if (col['field'] && col['field'].includes('.')) {\n const objectPath = col['field'].split('.');\n objectPath.map(value => (rowData = rowData && rowData[value]));\n return rowData;\n }\n return rowData[col['field']];\n }\n\n @Input()\n set parameters(searchParameters: any) {\n if (searchParameters) {\n this._searchParameters = { ...searchParameters };\n\n if (this.dataListTable) {\n this.dataListTable.first = 0;\n }\n\n this.onFilter();\n }\n }\n\n set loading(value: boolean) {\n this._loading = value;\n this.loadingChange.emit(this._loading);\n }\n\n @Input()\n get loading() {\n return this._loading;\n }\n\n set listData(value: any[]) {\n this._listData = value;\n this.listDataChange.emit(this._listData);\n }\n\n @Input()\n get listData() {\n return this._listData;\n }\n\n set selectedData(value: any[]) {\n this._selectedData = value;\n this.selectedDataChange.emit(this._selectedData);\n }\n\n @Input()\n get selectedData() {\n return this._selectedData;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ButtonModule, LoadingStateModule } from '@seniorsistemas/angular-components';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { TableModule } from 'primeng/table';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { DataListRestComponent } from './data-list-rest.component';\n\n@NgModule({\n imports: [\n CommonModule,\n SharedModule,\n // Angular Components\n ButtonModule,\n LoadingStateModule,\n // Primeng\n TableModule,\n TooltipModule,\n ],\n declarations: [DataListRestComponent],\n exports: [DataListRestComponent],\n})\nexport class DataListRestModule {}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable()\nexport class EmployeeSummaryService {\n private employeeBasicInformations = new Subject<any>();\n\n constructor(private http: HttpClient) {}\n\n findEmployee(path: string, employeeId: string): Observable<any> {\n return this.http.post(`hcm/payroll/queries/${path}`, { employeeId: employeeId });\n }\n\n findEmployeeAutoComplete(path: string, terms: string): Observable<any> {\n return this.http.post(`hcm/payroll/queries/${path}`, { valueSearch: terms });\n }\n\n blobServiceRequestAccess(path: string, body: object): Observable<any> {\n return this.http.post(`hcm/payroll/actions/${path}`, body);\n }\n\n setEmployeeBasicInformations(employeeBasicInformations: any) {\n this.employeeBasicInformations.next(employeeBasicInformations);\n }\n\n getEmployeeBasicInformations(): Observable<any> {\n return this.employeeBasicInformations.asObservable();\n }\n}\n","import { Component, Input, OnDestroy, OnInit } from \"@angular/core\";\nimport { ActivatedRoute, Params } from \"@angular/router\";\nimport * as moment_ from \"moment\";\nimport { Subject } from \"rxjs\";\nimport { finalize, map, takeUntil } from \"rxjs/operators\";\n\nimport { EmployeeSummaryService } from \"./employee-summary.service\";\n\nexport interface IEmployeeSummary {\n name: string;\n jobPosition: string;\n photoSource?: string;\n employer?: string;\n location?: string;\n hireDate?: any;\n registernumber?: any;\n timeTrackingResumeType?: string;\n age?: string;\n}\n\nconst moment = moment_;\n\n@Component({\n selector: \"c-employee-summary\",\n templateUrl: \"./employee-summary.component.html\",\n})\nexport class EmployeeSummaryComponent implements OnInit, OnDestroy {\n @Input()\n public timetrackingLabel: string = \"Status\";\n @Input()\n public hireDate: string;\n @Input()\n public hireLabel: string = \"Admissão\";\n @Input()\n public registerNumberLabel: string = \"Matrícula\";\n @Input()\n public ageLabel: string = \"Idade\";\n @Input()\n public loadingLabel: string = \"...\";\n @Input()\n public loadingDescription: string = \"Carregando...\";\n public emploayeeData: IEmployeeSummary;\n public isLoading: boolean = false;\n\n private ngUnsubscribe = new Subject();\n\n constructor(private activatedRoute: ActivatedRoute, private employeeService: EmployeeSummaryService) {\n }\n\n public ngOnInit() {\n this.emploayeeData = {\n name: this.loadingLabel,\n jobPosition: this.loadingDescription,\n };\n\n this.activatedRoute.params.pipe(takeUntil(this.ngUnsubscribe)).subscribe((params: Params) => {\n if (params.employeeId) {\n this.getInformation(params.employeeId);\n }\n });\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next(true);\n this.ngUnsubscribe.complete();\n }\n\n private getInformation(employeeId: string) {\n this.isLoading = true;\n\n this.employeeService\n .findEmployee(\"employeeContractualInformations\", employeeId)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n map((data: any) => data && data.result),\n finalize(() => {\n this.isLoading = false;\n }),\n )\n .subscribe(payload => {\n this.employeeService.setEmployeeBasicInformations(payload);\n\n this.emploayeeData = {\n ...payload,\n timeTrackingResumeType: payload.timeTrackingResumeType && payload.timeTrackingResumeType.value,\n };\n const location: string[] = [];\n\n if (payload.city) {\n location.push(payload.city);\n }\n if (payload.stateAbbreviation) {\n location.push(payload.stateAbbreviation);\n }\n\n this.emploayeeData.location = location.join(\" - \");\n\n if (payload.hireDate) {\n this.emploayeeData.hireDate = this.hireDate ? this.hireDate : moment(payload.hireDate).format(\"L\");\n }\n\n if (payload.idPicture) {\n const request = {\n fileId: payload.idPicture,\n ttl: 2,\n thumbnail: false,\n };\n\n this.employeeService\n .blobServiceRequestAccess(\"blobServiceRequestAccess\", request)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n map((data: any) => data && data.result),\n )\n .subscribe((imageData: any) => {\n if (imageData) {\n this.emploayeeData.photoSource = imageData.locationURI;\n }\n });\n }\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { LoadingStateModule, ObjectCardModule } from '@seniorsistemas/angular-components';\n\nimport { EmployeeSummaryComponent } from './employee-summary.component';\nimport { EmployeeSummaryService } from './employee-summary.service';\n\n@NgModule({\n imports: [ObjectCardModule, LoadingStateModule],\n declarations: [EmployeeSummaryComponent],\n exports: [EmployeeSummaryComponent],\n providers: [EmployeeSummaryService],\n})\nexport class EmployeeSummaryModule {}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable()\nexport class AdmissionDraftSummaryService {\n private admissionDraftBasicInformations = new Subject<any>();\n\n constructor(private http: HttpClient) {\n }\n\n findAdmissionDraft(draftId: string): Observable<any> {\n return this.http.post('hcm/payroll/queries/admissionDraftQuery', { id: draftId });\n }\n\n\n blobServiceRequestAccess(path: string, body: object): Observable<any> {\n return this.http.post(`hcm/payroll/actions/${path}`, body);\n }\n\n setAdmissionDraftBasicInformations(draftBasicInformations: any) {\n this.admissionDraftBasicInformations.next(draftBasicInformations);\n }\n}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute, Params } from '@angular/router';\nimport { TranslateService } from \"@ngx-translate/core\";\nimport * as moment_ from 'moment';\nimport { Subject } from 'rxjs';\nimport { finalize, map, takeUntil } from 'rxjs/operators';\n\nimport { AdmissionDraftSummaryService } from './admission-draft-summary.service';\n\nexport interface IAdmissionDraftSummary {\n id?: string;\n name: string;\n documentNumber: string;\n originDraftType: string;\n companyName: string;\n localeOfCompany: string;\n hiringDate: any;\n attachment?: any;\n photoSource?: string;\n}\n\nconst moment = moment_;\n\n@Component({\n selector: 'c-admission-draft-summary',\n templateUrl: './admission-draft-summary.component.html',\n})\nexport class AdmissionDraftSummaryComponent implements OnInit, OnDestroy {\n @Input()\n public originType: string;\n @Input()\n public hireLabel: string = 'Admissão';\n @Input()\n public hireDate: string = '...';\n @Input()\n public badgeText: string = 'Rascunho';\n @Input()\n public loadingLabel: string = '...';\n @Input()\n public documentNumberLabel: string = 'Documento';\n @Input()\n public loadingDescription: string = 'Carregando...';\n public draftData: IAdmissionDraftSummary;\n public isLoading: boolean = false;\n\n private ngUnsubscribe = new Subject();\n\n constructor(private activatedRoute: ActivatedRoute,\n private admissionDraftSummaryService: AdmissionDraftSummaryService,\n private translateService: TranslateService) {\n }\n\n public ngOnInit() {\n this.draftData = {\n name: this.loadingLabel,\n hiringDate: this.hireDate,\n documentNumber: this.loadingLabel,\n companyName: this.loadingLabel,\n localeOfCompany: this.loadingLabel,\n originDraftType: this.loadingLabel,\n };\n\n this.activatedRoute.params.pipe(takeUntil(this.ngUnsubscribe)).subscribe((params: Params) => {\n if (params.draftId) {\n this.getInformation(params.draftId);\n }\n });\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next(true);\n this.ngUnsubscribe.complete();\n }\n\n private getInformation(draftId: string) {\n this.isLoading = true;\n\n this.admissionDraftSummaryService\n .findAdmissionDraft(draftId)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n map((data: any) => data && data.result),\n finalize(() => {\n this.isLoading = false;\n }),\n )\n .subscribe(payload => {\n this.admissionDraftSummaryService.setAdmissionDraftBasicInformations(payload);\n payload.hiringDate = this.hireDate;\n\n this.draftData = {\n ...payload,\n };\n\n this.draftData.originDraftType = this.originType;\n if (payload.attachment && payload.attachment.fileId) {\n const request = {\n fileId: this.draftData.attachment.fileId,\n ttl: 2,\n thumbnail: false,\n };\n\n this.admissionDraftSummaryService\n .blobServiceRequestAccess('blobServiceRequestAccess', request)\n .pipe(\n takeUntil(this.ngUnsubscribe),\n map((data: any) => data && data.result),\n )\n .subscribe((imageData: any) => {\n if (imageData) {\n this.draftData.photoSource = imageData.locationURI;\n }\n });\n }\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { LoadingStateModule, ObjectCardModule } from '@seniorsistemas/angular-components';\n\nimport { AdmissionDraftSummaryComponent } from './admission-draft-summary.component';\nimport { AdmissionDraftSummaryService } from './admission-draft-summary.service';\n\n@NgModule({\n imports: [ObjectCardModule, LoadingStateModule],\n declarations: [AdmissionDraftSummaryComponent],\n exports: [AdmissionDraftSummaryComponent],\n providers: [AdmissionDraftSummaryService],\n})\nexport class AdmissionDraftSummaryModule {}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'error-page',\n templateUrl: './error-page.component.html',\n styleUrls: ['./error-page.component.css'],\n})\nexport class ErrorPageComponent implements OnInit {\n constructor() {}\n\n ngOnInit() {}\n}\n","import { NgModule } from '@angular/core';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { ErrorPageComponent } from './error-page.component';\n\n@NgModule({\n imports: [SharedModule],\n declarations: [ErrorPageComponent],\n exports: [ErrorPageComponent],\n providers: [],\n})\nexport class ErrorPageModule {}\n","import { Component, Input, OnChanges, OnInit } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\n@Component({\n selector: 'field-validator',\n templateUrl: './field-validator.component.html'\n})\nexport class FieldValidatorComponent implements OnInit, OnChanges {\n\n @Input()\n inputErrors: any;\n @Input()\n errorDefs: any;\n @Input()\n field: AbstractControl;\n @Input()\n onlyShowAfterTouched: boolean;\n\n errorMessage = '';\n\n constructor() { }\n\n ngOnInit() { }\n\n ngOnChanges(changes: any): void {\n const errors: any = changes.inputErrors.currentValue;\n this.errorMessage = '';\n if (errors) {\n Object.keys(this.errorDefs).some(key => {\n if (errors[key]) {\n this.errorMessage = this.errorDefs[key];\n return true;\n }\n });\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { FieldValidatorComponent } from './field-validator.component';\n\n@NgModule({\n imports: [CommonModule, SharedModule, ReactiveFormsModule],\n declarations: [FieldValidatorComponent],\n exports: [FieldValidatorComponent],\n providers: [],\n})\nexport class FieldValidatorModule {}\n","import { Observable, Subject } from 'rxjs';\n\nexport class ToastService {\n private messagesSubjectError = new Subject<object>();\n private messagesSubjectSuccess = new Subject<object>();\n private messagesSubjectWarning = new Subject<object>();\n\n constructor() {}\n\n /**\n * Exibe Toast de error (vermelho)\n * @param message\n * @param breakLine se deseja quebrar a mensagem caso tenha '\\n' contido\n */\n showError(message, breakLine = false) {\n this.messagesSubjectError.next({ message: message, breakLine: breakLine });\n }\n /**\n * Exibe Toast de success (verde)\n * @param message\n * @param breakLine se deseja quebrar a mensagem caso tenha '\\n' contido\n */\n showSuccess(message, breakLine = false) {\n this.messagesSubjectSuccess.next({ message: message, breakLine: breakLine });\n }\n /**\n * Exibe Toast de warning (amarelo)\n * @param message\n * @param breakLine se deseja quebrar a mensagem caso tenha '\\n' contido\n */\n showWarning(message, breakLine = false) {\n this.messagesSubjectWarning.next({ message: message, breakLine: breakLine });\n }\n\n loadErrorMessages(): Observable<any> {\n return this.messagesSubjectError.asObservable();\n }\n\n loadSuccessMessages(): Observable<any> {\n return this.messagesSubjectSuccess.asObservable();\n }\n\n loadWarningMessages(): Observable<any> {\n return this.messagesSubjectWarning.asObservable();\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ServiceType } from '../../core/enums/serviceType';\nimport { catchError} from \"rxjs/operators\";\nimport { MessageService } from 'primeng/api';\nimport { TranslateService } from '@ngx-translate/core';\nimport { throwError } from 'rxjs';\n\n@Injectable()\nexport class HttpClientService {\n constructor(private http: HttpClient, private messageService: MessageService, private translateService: TranslateService) {}\n\n query(path: string, body: object, service: ServiceType = ServiceType.PAYROLL): Observable<any> {\n const endpoit = `hcm/${service}/queries/${path}`;\n return this.http.post(endpoit, body)\n .pipe(\n catchError((exception: any): any => {\n if (exception && exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed_search\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n\n enumQuery(path: string, body: object, server = 'payroll'): Observable<any> {\n const endpoit = `hcm/${server}/queries/${path}`;\n return this.http.post(endpoit, body)\n .pipe(\n catchError((exception: any): any => {\n if (exception && exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed_search\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n\n action(path: string, body: object): Observable<any> {\n const endpoit = `hcm/payroll/actions/${path}`;\n return this.http.post(endpoit, body)\n .pipe(\n catchError((exception: any): any => {\n if (exception && exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n\n recruitmentAction(path: string, body: object): Observable<any> {\n const endpoint = `hcm/recruitment/actions/${path}`;\n return this.http.post(endpoint, body)\n .pipe(\n catchError((exception: any): any => {\n if (exception && exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n\n get(path: string): Observable<any> {\n const endpoit = `hcm/payroll/entities/${path}`;\n return this.http.get(endpoit)\n .pipe(\n catchError((exception: any): any => {\n if (exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed_search\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n\n getAutoComplete(entity: string, filter: string, service: ServiceType = ServiceType.PAYROLL): Observable<any> {\n const endpoit = `hcm/${service}/entities/${entity}?filter=${filter}&size=10&orderby=code+asc`;\n return this.http.get(endpoit)\n .pipe(\n catchError((exception: any): any => {\n if (exception && exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed_search\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n\n patch(path: string, body: object): Observable<any> {\n const endpoit = `hcm/payroll/entities/${path}`;\n return this.http.patch(endpoit, body)\n .pipe(\n catchError((exception: any): any => {\n if (exception && exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n\n post(path: string, body: object): Observable<any> {\n const endpoit = `hcm/payroll/${path}`;\n return this.http.post(endpoit, body)\n .pipe(\n catchError((exception: any): any => {\n if (exception && exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n\n put(path: string, body: object): Observable<any> {\n const endpoit = `hcm/payroll/entities/${path}`;\n return this.http.put(endpoit, body)\n .pipe(\n catchError((exception: any): any => {\n if (exception && exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n\n delete(path: string, key?: string): Observable<any> {\n const endpoit = key ? `hcm/payroll/entities/${path}/${key}` : `hcm/payroll/entities/${path}`;\n return this.http.delete(endpoit)\n .pipe(\n catchError((exception: any): any => {\n if (exception && exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { HttpClientService } from '../shared/http-client.service';\n\n@Injectable()\nexport class FileUploadService {\n httpOptions: object;\n\n constructor(private http: HttpClientService) {}\n\n blobServiceRequestUpload(file: Blob): Observable<any> {\n const requestUpload = {\n fileName: file[\"name\"],\n thumbnail: this.isImage(file),\n };\n const endpoint = 'blobServiceRequestUpload';\n return this.http.action(endpoint, requestUpload);\n }\n\n blobServiceRequestAccess(fileId): Observable<any> {\n const request = {\n fileId: fileId,\n tll: 2,\n thumbnail: false,\n };\n const endpoint = 'blobServiceRequestAccess';\n return this.http.action(endpoint, request);\n }\n\n blobServiceFileDelete(fileId): Observable<any> {\n const request = {\n fileId: fileId,\n thumbnail: false,\n };\n const endpoint = 'blobServiceDelete';\n return this.http.action(endpoint, request);\n }\n\n private isImage(file: Blob): boolean {\n return /^image\\//.test(file.type);\n }\n}\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { forkJoin, Observable } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { ToastService } from \"../toast/toast.service\";\n\nimport { FileUploadService } from \"./file-upload.service\";\n\n@Component({\n selector: \"c-file-upload\",\n templateUrl: \"./file-upload.component.html\",\n})\nexport class FileUploadComponent {\n @Input()\n errorTooltip: string;\n @Input()\n files: Blob[] = [];\n @Output()\n onUploadFile = new EventEmitter();\n @Output()\n onRemoveFile = new EventEmitter();\n\n constructor(private service: FileUploadService, private toastService: ToastService, private translate: TranslateService) {\n }\n\n uploadHandler(event: { files: Blob[] }) {\n const observables: any[] = [];\n if (event && event.files.length) {\n\n event.files.sort();\n if (event.files.length > 10 && event.files[10]) {\n delete event.files[10];\n }\n\n const countFiles: number = this.getFilesCountAndValidate(event.files);\n for (var i = 0; i < countFiles; i++) {\n const file = this.validateFileSize(event.files[i]);\n\n if (i <= 9 && file[\"isUploaded\"] && !file[\"complete\"])\n observables.push(this.saveFile(file));\n }\n\n forkJoin(...observables).subscribe(() => {\n this.onUploadFile.emit(this.files);\n });\n }\n }\n\n /**\n * Valida o tamanho do arquivo, limitando em 50mb.\n * @param file\n */\n private validateFileSize(file: Blob): Blob {\n if (file[\"isUploaded\"] && !file[\"complete\"] && file[\"size\"] > 50000000) {\n file[\"complete\"] = true;\n file[\"error\"] = this.translate.instant(\"hcm.payroll.attachments_max_mb\");\n this.toastService.showError(this.translate.instant(\"hcm.payroll.attachments_alert_error\"));\n }\n\n return file;\n }\n\n /**\n * Valida a quantidade de arquivos, limitando em 10 anexos.\n * @param files\n */\n private getFilesCountAndValidate(files: Blob[]): number {\n let countFiles = 0;\n if (files.length) {\n if (files.length > 10) {\n countFiles = 10;\n this.toastService.showError(this.translate.instant(\"hcm.payroll.attachments_max_length\"));\n } else {\n countFiles = files.length;\n }\n }\n return countFiles;\n }\n\n\n saveFile(file: Blob) {\n const obs = new Observable(observable => {\n return this.service\n .blobServiceRequestUpload(file)\n .pipe(map((response: any) => response && response.result))\n .subscribe(\n response => this.doUpload(response, file, observable),\n error => {\n file[\"complete\"] = true;\n file[\"error\"] = error.message;\n file[\"objectURL\"] = undefined;\n },\n );\n });\n return obs;\n }\n\n doUpload(response: any, file: any, observable: any) {\n const xhr = new XMLHttpRequest();\n file[\"id\"] = response.fileId;\n file[\"objectURL\"] = response.locationURI;\n file[\"version\"] = response.version;\n file[\"progress\"] = 0;\n\n xhr.upload.addEventListener(\n \"progress\",\n (evt: ProgressEvent) => {\n file[\"progress\"] = Math.round((evt.loaded * 100) / evt.total);\n },\n false,\n );\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n file[\"complete\"] = true;\n\n if (xhr.status < 200 || xhr.status >= 300) {\n file[\"objectURL\"] = undefined;\n file[\"error\"] = xhr.statusText || \"Erro ao anexar arquivo\";\n } else {\n file[\"error\"] = false;\n }\n observable.next(file);\n observable.complete();\n }\n };\n\n xhr.open(\"PUT\", file.objectURL, true);\n xhr.setRequestHeader(\"Translate\", \"f\");\n return xhr.send(file);\n }\n\n onCancelUpload(index: any) {\n this.files.splice(index, 1);\n }\n\n removeFile() {\n this.onRemoveFile.emit(this.files);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FileUploadModuleDeprecated } from '@senior-gestao-pessoas/angular-components';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { FileUploadComponent } from './file-upload.component';\nimport { FileUploadService } from './file-upload.service';\n\n@NgModule({\n imports: [CommonModule, FileUploadModuleDeprecated, SharedModule],\n declarations: [FileUploadComponent],\n providers: [FileUploadService],\n exports: [FileUploadComponent],\n})\nexport class FileUploadCoreModule {}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n@Injectable()\nexport class ImageCropService {\n constructor(private http: HttpClient) { }\n\n async saveImage(file: Blob | File, sourceImage: string, service: string) {\n if (!file) {\n return;\n }\n\n let fileUpload = null;\n if (file) {\n fileUpload = { fileName: file[\"name\"] };\n } else if (sourceImage) {\n fileUpload = { fileName: sourceImage.split('/')[1] };\n }\n if (fileUpload) {\n const response = await this.blobServiceRequestUpload(service, fileUpload).toPromise();\n const request = new XMLHttpRequest();\n request.open('PUT', response.result.locationURI, true);\n request.setRequestHeader('Translate', 'f');\n request.send(file);\n return response.result;\n }\n }\n\n urltoFile(url, filename, mimeType = null): Observable<Blob> {\n mimeType = mimeType || (url.match(/^data:([^;]+);/) || '')[1];\n return this.http.request(\"GET\", url, { responseType: 'arraybuffer' })\n .pipe(map(blob => {\n const file = new Blob([blob], { type: mimeType });\n file[\"name\"] = filename;\n return file;\n }));\n }\n\n async getImage(data: any, service: string, thumbnail: boolean) {\n if (data && data.fileId) {\n const response = await this.blobServiceRequestAccess(service, data.fileId, thumbnail).toPromise();\n return response.result.locationURI;\n }\n }\n\n buildUrl(service: string, resource: string) {\n return `hcm/${service}/${resource}`;\n }\n\n query(service: string, path: string, body: object): Observable<any> {\n const endpoit = `queries/${path}`;\n return this.http.post(this.buildUrl(service, endpoit), body);\n }\n\n blobServiceRequestUpload(service, file): Observable<any> {\n const requestUpload = {\n fileName: file.fileName,\n thumbnail: true,\n };\n const endpoint = 'actions/blobServiceRequestUpload';\n return this.http.post(this.buildUrl(service, endpoint), requestUpload);\n }\n\n blobServiceRequestAccess(service, fileId, thumbnail): Observable<any> {\n const request = {\n fileId: fileId,\n tll: 2,\n thumbnail: thumbnail,\n };\n const endpoint = 'actions/blobServiceRequestAccess';\n return this.http.post(this.buildUrl(service, endpoint), request);\n }\n\n blobServiceFileDelete(service, fileId): Observable<any> {\n const request = {\n fileId: fileId,\n thumbnail: true,\n };\n const endpoint = 'actions/blobServiceDelete';\n return this.http.post(this.buildUrl(service, endpoint), request);\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { CropperSettings, ImageCropperComponent } from 'ng2-img-cropper';\n\nimport { ToastService } from '../toast/toast.service';\nimport { ImageCropService } from './image-crop.service';\n\n@Component({\n selector: 'image-crop',\n templateUrl: './image-crop.component.html',\n styleUrls: ['./image-crop.component.css'],\n})\nexport class ImageCropComponent implements OnInit {\n @Input()\n service = 'payroll';\n @Output()\n onClickSave: EventEmitter<any> = new EventEmitter();\n\n private file: Blob;\n @ViewChild('cropper', { static: false })\n private cropper: ImageCropperComponent;\n defaulPerson = 'assets/default-person.png';\n personPhotoLink: string;\n personFirstName: string;\n display = false;\n cropperSettings: CropperSettings;\n imageCrop = [];\n data: any = {};\n\n constructor(private imageCropService: ImageCropService, private toastService: ToastService) {\n this.cropperSettings = new CropperSettings();\n this.cropperSettings.width = 100;\n this.cropperSettings.height = 100;\n this.cropperSettings.keepAspect = false;\n this.cropperSettings.preserveSize = true;\n this.cropperSettings.canvasWidth = 600;\n this.cropperSettings.canvasHeight = 450;\n this.cropperSettings.rounded = true;\n this.cropperSettings.minWithRelativeToResolution = false;\n this.cropperSettings.noFileInput = true;\n this.cropperSettings.cropperDrawSettings.strokeColor = 'rgba(255,255,255,1)';\n this.cropperSettings.cropperDrawSettings.strokeWidth = 1;\n }\n\n @Input()\n set image(data) {\n if (data && data.fileId && !this.personPhotoLink) {\n this.imageCropService.blobServiceRequestAccess(this.service, data.fileId, true).subscribe(response => {\n this.personPhotoLink = response.result.locationURI;\n });\n }\n }\n\n onUploadHandler($event) {\n this.file = $event.files[0];\n\n if (this.file && this.file.size > 5000000) {\n this.file = null;\n this.imageCrop = [];\n this.toastService.showError('O tamanho máximo permitido para a imagem é de 5MB');\n return;\n }\n this.display = false;\n\n const image: any = new Image();\n const myReader: FileReader = new FileReader();\n myReader.onloadend = (loadEvent: any) => {\n image.src = loadEvent.target.result;\n this.cropper.setImage(image);\n };\n\n myReader.readAsDataURL(this.file);\n this.display = true;\n }\n\n ngOnInit(): void {\n this.data.image = null;\n this.personPhotoLink = null;\n this.personFirstName = '';\n this.display = false;\n }\n\n showDialog(): void {\n this.display = true;\n }\n\n onHide() {\n this.display = false;\n }\n\n reset() {\n this.file = null;\n this.data = {};\n this.imageCrop = [];\n this.cropper.reset();\n this.data.image = null;\n this.personPhotoLink = null;\n this.personFirstName = '';\n }\n\n async saveImage() {\n if (!this.file) {\n this.onClickSave.emit(null);\n this.onHide();\n return;\n }\n\n const fileName = this.file['name'];\n if (this.cropper && this.cropper.image) {\n const fileImage = await this.urltoFile(this.cropper.image.image, fileName);\n this.personPhotoLink = this.data.image;\n let fileUpload = null;\n if (this.file) {\n fileUpload = { fileName: this.file['name'] };\n } else if (this.data) {\n fileUpload = { fileName: this.data.fileId.split('/')[1] };\n }\n if (fileUpload) {\n const thisContext = this;\n this.imageCropService.blobServiceRequestUpload(this.service, fileUpload).subscribe(response => {\n const request = new XMLHttpRequest();\n request.open('PUT', response.result.locationURI, true);\n request.setRequestHeader('Translate', 'f');\n request.send(fileImage);\n this.onClickSave.emit(response.result);\n this.onHide();\n });\n }\n }\n }\n\n urltoFile(url, filename, mimeType = null) {\n mimeType = mimeType || (url.match(/^data:([^;]+);/) || '')[1];\n return fetch(url)\n .then(function(res) {\n return res.arrayBuffer();\n })\n .then(function(buf) {\n return new File([buf], filename, { type: mimeType });\n });\n }\n\n deleteImage() {\n this.imageCropService.blobServiceFileDelete(this.service, this.data && this.data.image && this.data.image.fileId);\n this.reset();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ImageCropperModule } from 'ng2-img-cropper';\nimport { ButtonModule } from 'primeng/button';\nimport { DialogModule } from 'primeng/dialog';\nimport { FileUploadModule } from 'primeng/fileupload';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { ImageCropComponent } from './image-crop.component';\nimport { ImageCropService } from './image-crop.service';\nimport { ThumbnailModule, ImageCropperService } from '@seniorsistemas/angular-components';\n\n@NgModule({\n imports: [\n CommonModule,\n SharedModule,\n DialogModule,\n ButtonModule,\n FileUploadModule,\n ImageCropperModule,\n ImageCropperModule,\n ThumbnailModule],\n declarations: [ImageCropComponent],\n providers: [ImageCropService, ImageCropperService],\n exports: [ImageCropComponent],\n})\n/**\n * @deprecated\n */\nexport class ImageCropModule {}\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\nimport * as _moment from \"moment\";\nimport { LocaleService } from \"@seniorsistemas/angular-components\";\n\nconst moment = _moment;\n\n@Component({\n selector: \"input-date-calendar-model\",\n templateUrl: \"./input-date-model.component.html\",\n})\nexport class InputDateModelComponent implements OnInit {\n @Input()\n name: string;\n @Input()\n disabled?: boolean;\n @Input()\n withoutDay: boolean;\n @Input()\n unmask: boolean;\n @Input()\n style: boolean;\n @Input()\n styleClass: string;\n\n @Output()\n onBlurGetMoment: EventEmitter<any> = new EventEmitter();\n @Output()\n modelChange: EventEmitter<any> = new EventEmitter();\n\n private _date: any;\n private locale: any;\n private format: any;\n private _model: any;\n mask = null;\n\n constructor(private localeService: LocaleService) {\n }\n\n ngOnInit() {\n this.localeService.get().subscribe(loc => {\n this.mask = this.formatMask(loc);\n this.format = this.getFormat();\n if (this.model) {\n const newDate = this.model;\n const momentDate = moment(newDate, this.format || \"YYYY-MM-DD\");\n if (momentDate.isValid()) {\n this.model = momentDate.format(this.format || \"L\");\n this._date = momentDate;\n } else {\n this._date = null;\n }\n }\n });\n }\n\n formatMask(loc) {\n this.locale = loc;\n let dateMask = this.locale.calendar.dateFormat.toString();\n\n if (this.withoutDay) {\n dateMask = dateMask.replace(\"dd/\", \"\").replace(\"-dd\", \"\");\n }\n\n dateMask = dateMask.replace(/[d]|[m]/g, \"9\");\n return dateMask.replace(/[y]/g, \"99\");\n }\n\n getFormat() {\n let dateFormat = this.locale.calendar.dateFormat.toString();\n dateFormat = dateFormat.replace(/[y]/g, \"YY\");\n\n if (this.withoutDay) {\n dateFormat = dateFormat.replace(\"dd/\", \"\").replace(\"-dd\", \"\");\n }\n\n return dateFormat.toUpperCase();\n }\n\n get placeholder() {\n return this.mask ? this.mask.toString().replace(/[9]/g, \"_\") : \"\";\n }\n\n onBlur() {\n const dateComponet = this.model;\n this._date = moment(dateComponet, this.format);\n this.onBlurGetMoment.emit(this._date);\n }\n\n set model(val) {\n this._model = val;\n this.modelChange.emit(this._model);\n }\n\n @Input()\n get model() {\n return this._model;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { InputMaskModule } from 'primeng/inputmask';\n\nimport { InputDateModelComponent } from './input-date-model.component';\n\n@NgModule({\n imports: [InputMaskModule, FormsModule, ReactiveFormsModule, CommonModule],\n declarations: [InputDateModelComponent],\n exports: [InputDateModelComponent],\n})\nexport class InputDateModelModule {}\n","import { FormArray, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { ValidatorFn } from '@angular/forms/';\nimport * as chance from 'chance';\nimport * as momentImported from 'moment';\nimport business from 'moment-business';\nimport { LocaleOptions } from '@seniorsistemas/angular-components';\nimport { FieldValidatorsObject } from '../../core/interfaces/field-validators-object';\n\nconst moment = momentImported;\n\nexport function isObject(item) {\n return item && typeof item === 'object' && !Array.isArray(item);\n}\n\nexport function isShallow(item) {\n return Array.isArray(item) && item.find(value => typeof value === 'object') ? false : true;\n}\n\nexport function convertBooleanString(value) {\n if (typeof value === 'boolean') {\n return value === true ? 'true' : 'false';\n }\n return value;\n}\n\nexport function convertStringToBoolean(value) {\n return value === true || value.toLowerCase() === 'true';\n}\n\nexport function assign(target, ...sources) {\n if (!sources.length) {\n return target;\n }\n\n const source = sources.shift();\n if (isObject(target) && isObject(source)) {\n for (const key in source) {\n if (isObject(source[key])) {\n if (!target[key]) {\n Object.assign(target, { [key]: {} });\n }\n assign(target[key], source[key]);\n } else {\n if (isShallow(source[key])) {\n Object.assign(target, { [key]: source[key] });\n } else {\n if (!target[key]) {\n Object.assign(target, { [key]: [] });\n }\n Object.assign(target, { [key]: source[key].map((item, index) => assign(target[key][index] || {}, item)) });\n }\n }\n }\n }\n return assign(target, ...sources);\n}\n\nexport function isValid(value) {\n return value === 0 || typeof value === 'boolean' ? true : value !== undefined && value !== null && value !== '';\n}\n\nexport function isValidDate(value, withDays = true) {\n if (value && isFullDate(value, withDays)) {\n if (withDays) {\n return moment(value.replace(/[^\\d]+/g, ''), 'DDMMYYYY').isValid();\n } else {\n return moment(value.replace(/[^\\d]+/g, ''), 'MMYYYY').isValid();\n }\n }\n return true;\n}\n\nexport function isFullDate(value, withDays = true) {\n if (value) {\n let totalLength;\n if (withDays) {\n totalLength = 8;\n } else {\n totalLength = 6;\n }\n return value.replace(/[^\\d]+/g, '').length === totalLength;\n }\n return true;\n}\n\nexport function autoCompleteObjectForIdObject(tableIdObject) {\n if (!isObject(tableIdObject)) {\n console.error('Paramentro não é um objeto');\n return false;\n }\n\n if (tableIdObject.hasOwnProperty('tableId')) {\n console.error('Paramentro não é um objeto Auto Complete válido, falta tableId');\n }\n\n if (!isValid(tableIdObject.tableId)) {\n console.error('tableId esta vazio');\n }\n\n return { id: tableIdObject.tableId };\n}\n\nexport function isDateField(name, value) {\n const testDate = name.search('Date');\n if (testDate !== -1) {\n return invertFieldDate(value);\n }\n return value;\n}\n\nexport function invertFieldDate(value, inFormat = 'DDMMYYYY', outFormat = 'YYYY-MM-DD') {\n if (!isValid(value)) {\n return;\n }\n const formatIn = getFormatDate(value, inFormat);\n return moment(value.replace(/[^\\d]+/g, ''), formatIn).format(outFormat);\n}\n\nexport function getAddWeekDaysBusiness(value, quantidade) {\n return business.addWeekDays(getMoment(value), quantidade).format('DD/MM/YYYY');\n}\n\nexport function getWeekDaysBusiness(startDate, endDate) {\n const endMoment = endDate ? getMoment(endDate) : getMoment(startDate).endOf('month');\n return business.weekDays(getMoment(startDate), endMoment);\n}\n\nexport function getFormatDate(value, inFormat) {\n if (value.search('/') !== -1) {\n return 'DDMMYYYY';\n } else if (value.search('-') !== -1) {\n return 'YYYYMMDD';\n }\n return inFormat;\n}\n\n/**\n * FIXME - Está fixo para uso do calendário portugues Brasil\n * @param value\n * @param outFormat\n * @returns\n */\nexport function ngCalendarFormat(value, outFormat = 'DD/MM/YYYY') {\n if (isValidDate(value)) {\n if (typeof value === 'string') {\n return value;\n } else {\n return _moment(value).format(outFormat);\n }\n }\n}\n\nexport function getNowDate(outFormat = 'YYYY-MM-DD') {\n return moment().format(outFormat);\n}\n\nexport function getMoment(value, inFormat = 'DDMMYYYY') {\n const formatIn = getFormatDate(value, inFormat);\n return moment(value.replace(/[^\\d]+/g, ''), formatIn);\n}\n\nexport function _moment(value, format?: string) {\n if (format) {\n return moment(value, format);\n }\n return moment(value);\n}\n\nexport function getObjValids(objs) {\n const json = Object.assign({}, objs);\n const jsonReturn = {};\n Object.keys(json).map(key => {\n if (isValid(json[key])) {\n jsonReturn[key] = isDateField(key, json[key]);\n }\n });\n return jsonReturn;\n}\n\nexport function removeEmpty(obj) {\n Object.keys(obj).forEach(\n k => (obj[k] && typeof obj[k] === 'object' && removeEmpty(obj[k])) || (!obj[k] && obj[k] !== undefined && delete obj[k])\n );\n return obj;\n}\n\nexport function formatMoney(value, i18n = 'EN') {\n switch (i18n) {\n case 'EN':\n return isValid(value)\n ? value\n .toString()\n .replace('.', '')\n .replace(',', '.')\n : '';\n case 'BR':\n return isValid(value)\n ? value\n .toString()\n .replace('.', ',')\n .replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1.')\n : '';\n default:\n return isValid(value)\n ? value\n .toString()\n .replace('.', '')\n .replace(',', '.')\n : '';\n }\n}\n\nexport function uiid() {\n return new chance()\n .guid()\n .replace(/[^a-zA-Z0-9.]/g, '')\n .toUpperCase();\n}\n\nexport function mountCustomForSave(custom, customEntity = null, locale = null) {\n const custonField = [];\n if (customEntity && custom.length) {\n customEntity.map((val, key) => {\n const field = Object.keys(custom[key]).toString();\n const valOrnull = isValid(custom[key][field]) ? custom[key][field] : null;\n const value =\n val.type === 'date' && locale && isValid(valOrnull) ? moment(valOrnull, getFormat(locale)).format('YYYY-MM-DD') : valOrnull;\n custonField.push({\n field: field,\n value: value,\n });\n });\n }\n return custonField.length ? custonField : null;\n}\n\n/**\n * Prepara o objeto de campos customizados para salvar as entidades que\n * são utilizadas a partir do CRUD customizado.\n * @param objectFields objeto com os campos customizados da entidade.\n */\nexport function mountCustomToSave(objectFields) {\n const customFields = [];\n Object.entries(objectFields).forEach(([field, value]) => {\n customFields.push({\n field: field,\n value: value,\n });\n });\n return customFields;\n}\n\n/**\n * Prepara o objeto de campos customizados para exibir as entidades que\n * são utilizadas a partir do CRUD customizado.\n * @param customFields objeto com os campos customizados da entidade.\n */\nexport function mountCustomToShow(customFields) {\n const customFieldsToShow = {};\n if (customFields && customFields.length) {\n customFields.forEach(item => {\n if (item.type === 'date' && item.value) {\n item.value = _moment(item.value).format('L');\n }\n customFieldsToShow[item.field] = item.value;\n });\n }\n return customFieldsToShow;\n}\n\n/**\n * Prepara o objeto de campos customizados para salvar as entidades que\n * são utilizadas a partir do CRUD gerado.\n * @param objectFields objeto com os campos customizados da entidade.\n */\nexport function mountGeneratedCustomToSave(objectFields) {\n Object.entries(objectFields).forEach(([key, value]) => {\n if (!value) {\n delete objectFields[key];\n }\n });\n return objectFields;\n}\n\nexport function mountCustomForShow(custom) {\n const customField = [];\n Object.keys(custom || {}).forEach(val => {\n if (custom[val].type === 'date' && custom[val].value) {\n custom[val].value = _moment(custom[val].value).format('L');\n }\n customField.push(custom[val]);\n });\n return customField;\n}\n\nexport function setValueCustom(custonFields, custom) {\n const isCustons = custom ? Object.keys(custom).length : 0;\n custonFields.map(val => {\n val.value = isCustons > 0 ? custom[val.field] : null;\n });\n return custonFields;\n}\n\n/**\n * Adiciona um erro no controle do formulário. Deve ser chamado com .call passando o contexto da class.\n * Ex.: setErrors.call(this.contractGroup, 'registerEmployeeNumber', 'exist', !payload)\n *\n * @param formControlName Nome do controle do formulário.\n * @param keyError Nome do error a ser exibido em tela.\n * @param isInvalid Se houver algum erro de validação no campo.\n */\nexport function setErrors(formControlName: string, keyError: string, isInvalid: boolean): void {\n setTimeout(() => {\n if (isInvalid) {\n const errors = Object.assign({}, this.get(formControlName).errors);\n errors[keyError] = isInvalid;\n this.get(formControlName).setErrors(errors);\n } else {\n const errors = this.get(formControlName).errors;\n\n if (errors && Object.keys(errors).length) {\n delete errors[keyError];\n\n if (!Object.keys(errors).length) {\n this.get(formControlName).setErrors(null);\n }\n }\n }\n }, 0);\n}\n\n/**\n * Faz loop do nos controls do formulário e subArray caso existir\n * setando os inválidos\n * Ex.: verifyValidationsForm.call(this.initialGroup);\n */\nexport function verifyValidationsForm() {\n Object.keys(this.controls).map(field => {\n const control = this.get(field);\n control.markAsDirty();\n if (control instanceof FormGroup || control instanceof FormArray) {\n verifyValidationsForm.call(control);\n }\n });\n}\n\n/**\n * Retorna a idade de acordo com a data de nascimento.\n *\n * @param birthdayDate Data de nascimento.\n */\nexport function getYears(birthday) {\n const currentDate = moment();\n const years = currentDate.diff(birthday, 'years', false);\n return years;\n}\n\nexport function setCustonFields(customFields) {\n customFields.map(val => {\n const addCuston = {};\n let value = val.value || null;\n if (typeof value === 'boolean') {\n value = value ? 'true' : 'false';\n }\n addCuston[val.field] = new FormControl(value);\n this.push(new FormGroup(addCuston));\n });\n return customFields;\n}\n\n export function setRequired(formGroup: FormGroup, name: string, required: boolean, validators?: ValidatorFn[]) {\n if (required) {\n formGroup.controls[name].setValidators(Validators.compose(validators && validators.length ? validators : [Validators.required]));\n formGroup.controls[name].updateValueAndValidity();\n } else {\n formGroup.controls[name].setValidators(null);\n formGroup.controls[name].updateValueAndValidity();\n }\n}\n\n/**\n * Esse método tem como função setar os campos enable ou disable.\n * @param formGroup FormGroup onde se encontra os campos a serem alterados.\n * @param condition Condição para validação. True = enabled, False = disabled.\n * @param fields Campos a serem manipulados.\n * @param fieldsToClear Campos a serem limpos. É opicional e se não foi passado o método limpará os mesmos campos dos fields.\n */\nexport function configEnabledFields(formGroup: FormGroup, condition: boolean, fields: Array<string>, fieldsToClear?: Array<string>) {\n if (condition) {\n fields.forEach(field => formGroup.get(field).enable());\n } else {\n fields.forEach(field => formGroup.get(field).disable());\n clearValues(formGroup, fieldsToClear ? fieldsToClear : fields);\n }\n}\n\n/**\n * Esse método tem como função setar os campos como requeridos ou não.\n *\n * @param formGroup FormGroup onde se encontra os campos a serem alterados.\n * @param condition Se será ou não requeridos.\n * @param fields Lista de campos.\n */\nexport function setRequiredFields(formGroup: FormGroup, condition: boolean, fields: Array<string>) {\n if (condition) {\n fields.forEach(field => setRequired(formGroup, field, true, [Validators.required]));\n } else {\n fields.forEach(field => setRequired(formGroup, field, false));\n }\n}\n\n\n/**\n * Esse método tem como função setar validações dinâmicas nos campos.\n *\n * @param formGroup FormGroup onde se encontra os campos a serem alterados.\n * @param fields Lista de objetos [{field: campo, validators: validações, disable: boolean}].\n */\nexport function setValidatorsAndDisableFields(formGroup: FormGroup, fields: Array<FieldValidatorsObject>) {\n fields.forEach((currentField: FieldValidatorsObject) => {\n setValidator(formGroup, currentField.field, currentField.validators);\n setDisableField(formGroup, currentField.disabled, currentField.field, currentField.clearValue);\n });\n}\n\n\nexport function setValidator(formGroup: FormGroup, name: string, validators?: ValidatorFn[]) {\n if (validators && validators.length) {\n formGroup.controls[name].setValidators(Validators.compose(validators));\n formGroup.controls[name].updateValueAndValidity();\n } else {\n formGroup.controls[name].setValidators(null);\n formGroup.controls[name].updateValueAndValidity();\n }\n}\n\n\n/**\n * Esse método tem como função setar os campos enable ou disable.\n * @param formGroup FormGroup onde se encontra os campos a serem alterados.\n * @param condition Condição para validação. True = disabled, False = enabled.\n * @param field Campo a ser manipulados.\n * @param clearValue Campos a ser limpos. É opicional e se não foi passado o método limpará o campo do field.\n */\nexport function setDisableField(formGroup: FormGroup, condition: boolean, field: string, clearValue: boolean = true) {\n if (condition) {\n formGroup.get(field).disable();\n if (clearValue) formGroup.get(field).reset();\n } else {\n formGroup.get(field).enable();\n }\n}\n\n/**\n * Ordena array de objetos\n * @param key o campo que deseja ordenar\n * @param order a ordem que deseja ordenar o campo\n */\nexport function compareValues(key: string, order: string = \"ASC\") {\n return function innerSort(a: any, b: any) {\n if (!a.hasOwnProperty(key) || !b.hasOwnProperty(key)) {\n return 0;\n }\n\n const varA = (typeof a[key] === \"string\")\n ? a[key].toUpperCase() : a[key];\n const varB = (typeof b[key] === \"string\")\n ? b[key].toUpperCase() : b[key];\n\n let comparison = 0;\n if (varA > varB) {\n comparison = 1;\n } else if (varA < varB) {\n comparison = -1;\n }\n return (\n (order === \"DESC\") ? (comparison * -1) : comparison\n );\n };\n}\n\n/**\n * Esse método tem como função limpar o valor dos campos.\n *\n * @param formGroup FormGroup onde se encontra os campos a serem limpos.\n * @param fields Campos a serem limpos.\n */\nexport function clearValues(formGroup: FormGroup, fields: Array<string>) {\n fields.forEach(field => formGroup.get(field).reset());\n}\n\n/**\n *\n * @param qs = window.location.search\n * @returns Object com parametros query string\n */\nexport function getQueryParams(qs) {\n qs = qs.split('+').join(' ');\n\n const params = {};\n let tokens;\n const re = /[?&]?([^=]+)=([^&]*)/g;\n\n while ((tokens = re.exec(qs))) {\n params[decodeURIComponent(tokens[1])] = decodeURIComponent(tokens[2]);\n }\n\n return params;\n}\n\nexport function getFormat(locale) {\n if (locale) {\n let dateFormat = locale.calendar.dateFormat.toString();\n dateFormat = dateFormat.replace(/[y]/g, 'YY');\n dateFormat = dateFormat.replace(/[/]/g, '');\n return dateFormat.toUpperCase();\n }\n}\n\n/**\n * Remove os caracteres que não sejam números do valor\n * @param value valor a ser tratado\n * @returns string O valor sem caracteres especiais\n */\nexport function removeCharacteresSpecials(value: any): string {\n return value ? value.toString().replace(/[&\\/\\\\#,+()$~%.'\":*?<>{}-]/g, \"\") : null;\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { HttpClientService } from '../shared/http-client.service';\nimport { ServiceType } from '../../core/enums/serviceType';\n\n@Injectable()\nexport class InputRestAutoCompleteService {\n constructor(private http: HttpClientService) {}\n\n query(path: string, body: object, service: ServiceType = ServiceType.PAYROLL): Observable<any> {\n return this.http.query(path, body, service);\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\nimport { _moment, isValid } from '../utils/helpers';\nimport { InputRestAutoCompleteService } from './input-rest-auto-complete.service';\nimport { ServiceType } from '../../core/enums/serviceType';\n\nexport interface IConditions {\n fields: Array<string[]>;\n fieldType: string;\n expression: string;\n value: string;\n}\n\n@Component({\n selector: 'input-rest-auto-complete',\n templateUrl: './input-rest-auto-complete.component.html',\n styleUrls: ['./input-rest-auto-complete.component.css'],\n})\nexport class InputRestAutoCompleteComponent implements OnInit {\n @ViewChild('autoCompleteObject', { static: true })\n _autoCompleteObject: ElementRef;\n @Input()\n name: string;\n @Input()\n table: string;\n @Input()\n order: Array<any[]>;\n @Input()\n enableEntityFilters: boolean;\n @Input()\n fields: Array<any[]>;\n @Input()\n conditionsFields?: Array<any[]>;\n @Input()\n conditions: Array<IConditions>;\n @Input()\n placeholder: string;\n @Input()\n readonly: boolean;\n @Input()\n required: boolean;\n @Input()\n disabled: boolean;\n @Input()\n dropdown: boolean;\n @Input()\n forceSelection = true;\n @Input()\n error: object;\n @Input()\n emptyMessage: string;\n @Input()\n keyCode?: string;\n @Input()\n keyName = 'name';\n @Input()\n concatFieldsForName?: any[];\n @Input()\n itemSelect: any;\n @Input()\n form: FormGroup;\n @Input()\n inputId: string;\n @Input()\n isTimetrackingSituation: boolean;\n @Input()\n isDepartmentFromCompany: boolean;\n @Input()\n companyId: string;\n @Input()\n referenceDate: string;\n @Input()\n isDismissalReason: boolean;\n @Input()\n keyToExclude: any = [];\n @Input()\n usingType: any = [];\n @Input()\n minCharactersToSearch = 3;\n @Input()\n isWagetype: boolean;\n private isDropdown: boolean;\n @Input()\n multiple = false;\n @Input()\n serviceType: ServiceType = ServiceType.PAYROLL;\n @Output()\n onBlur: EventEmitter<any> = new EventEmitter();\n @Output()\n onSelect: EventEmitter<any> = new EventEmitter();\n @Output()\n onClear: EventEmitter<any> = new EventEmitter();\n\n suggestions: any[] = [];\n\n constructor(private service: InputRestAutoCompleteService) {}\n\n ngOnInit() {}\n\n filterQuery(event: any): any {\n const query = event.query;\n if (!(isNaN(query) && query.toString().length < this.minCharactersToSearch)) {\n try {\n if (this.isTimetrackingSituation) {\n return this.service\n .query('autocompleteTimetrackingSituation', {\n valueSearch: query,\n referenceDate: this.referenceDate,\n })\n .subscribe(payload => this.formaterResponce(payload.result));\n } else if (this.isDismissalReason) {\n const params = { valueSearch: query };\n if (this.referenceDate) {\n params['referenceDate'] = this.referenceDate;\n }\n return this.service\n .query('autocompleteDismissalReason', params, ServiceType.GENERAL_REGISTER)\n .subscribe(payload => this.formaterResponce(payload.result));\n } else if (this.usingType && this.usingType.length) {\n return this.service\n .query('autocompleteOtherCompanyFilterUsingType', {\n searchText: query,\n usingType: this.usingType,\n })\n .subscribe(payload => this.formaterResponce(payload.result));\n } else if (this.isDepartmentFromCompany) {\n return this.service\n .query('autocompleteDepartmentQuery', {\n searchText: query,\n companyId: this.companyId,\n referenceDate: this.referenceDate,\n })\n .subscribe(payload => this.formaterResponce(payload.result));\n } else if (this.isWagetype) {\n const params = { searchText: query, companyId: this.companyId };\n return this.service\n .query('autocompleteWagetypeQuery', params, ServiceType.ENTRY)\n .subscribe(payload => this.formaterResponce(payload.result));\n }\n this.service\n .query('autocomplete', this.getParamsRest(query), this.serviceType).subscribe(payload => this.formaterResponce(payload.result));\n } catch (e) {\n console.log(e);\n }\n }\n }\n\n formaterResponce(result) {\n this.suggestions = [];\n const valsResult = [];\n result.map(value => {\n const valueConcat = {\n tableId: value.tableId,\n name: '',\n };\n if (this.isTimetrackingSituation || this.isDismissalReason || (this.usingType && this.usingType.length)) {\n if (this.keyToExclude.includes(value.fields && value.fields[2] && value.fields[2].value)) {\n return;\n }\n\n let fieldName = '';\n\n value.fields.map(val => {\n valueConcat[val.name] = val.value;\n });\n\n fieldName += value.fields.filter(val => val.name.toLowerCase() === 'code').map(code => (code ? (code.value += ' - ') : ''))[0];\n if (this.usingType && this.usingType.length && (!fieldName || fieldName === 'undefined')) {\n fieldName = '';\n }\n fieldName += value.fields.filter(val => val.name.toLowerCase() === 'name').map(name => (name ? name.value : ''))[0];\n\n valueConcat.name = fieldName;\n valsResult.push(valueConcat);\n } else {\n value.fields.map(val => {\n valueConcat[val.name] = val.value;\n });\n let fieldName = '';\n if (this.concatFieldsForName) {\n this.concatFieldsForName.map(val => {\n // se o campo for data, formata pro locale do usuário\n if (val.includes('date') || val.includes('Birthday')) {\n valueConcat[val] = _moment(valueConcat[val]).format('DD/MM/YYYY');\n }\n fieldName += valueConcat[val] + ' - ';\n });\n fieldName = fieldName.slice(0, -3);\n } else {\n if (this.keyCode) {\n fieldName += valueConcat[this.keyCode] + ' - ';\n }\n if (this.keyName) {\n fieldName += valueConcat[this.keyName];\n }\n }\n valueConcat.name = fieldName;\n valsResult.push(valueConcat);\n }\n });\n this.suggestions = [...valsResult];\n return valsResult;\n }\n\n getParamsRest(search: string): object {\n return {\n table: this.table,\n fields: this.fields,\n order: this.order,\n conditions: this.getConditionsRest(search),\n enableEntityFilters: this.enableEntityFilters,\n };\n }\n\n getConditionsRest(search: string) {\n const conditiosReturn = [\n {\n fields: this.conditionsFields || this.fields,\n expression: 'LIKE',\n value: `${search}`,\n },\n ];\n\n if (this.conditions) {\n this.conditions.map(val => {\n if (['IS_NULL', 'IS_NOT_NULL', 'IS_TRUE'].includes(val.expression) || isValid(val.value)) {\n conditiosReturn.push(val);\n }\n });\n }\n\n return conditiosReturn;\n }\n\n /**\n * Externiza a função de select das opções\n * <input-rest-auto-complete (onSelect)=\"onSelectHandle($event)\" ></input-rest-auto-complete>\n * @param option\n */\n selectOption(option: object) {\n this.onSelect.emit(option);\n }\n\n async onClearItem(option: object) {\n await this.onClear.emit(option);\n this.form.get(this.name).reset();\n }\n\n onBlurItem(option: object) {\n if (!this.isDropdown) {\n this.form.controls[this.name].markAsDirty();\n this.onBlur.emit(option);\n } else {\n this.isDropdown = false;\n }\n }\n\n onDropdownClick() {\n this.isDropdown = true;\n }\n\n get autoCompleteObject() {\n return this._autoCompleteObject;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { AutoCompleteModule } from 'primeng/autocomplete';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { InputRestAutoCompleteComponent } from './input-rest-auto-complete.component';\nimport { InputRestAutoCompleteService } from './input-rest-auto-complete.service';\n\n@NgModule({\n imports: [CommonModule, FormsModule, HttpClientModule, AutoCompleteModule, SharedModule, ReactiveFormsModule],\n declarations: [InputRestAutoCompleteComponent],\n providers: [InputRestAutoCompleteService],\n exports: [InputRestAutoCompleteComponent],\n})\nexport class InputRestAutoCompleteModule {}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { HttpClientService } from '../shared/http-client.service';\n\n@Injectable()\nexport class InputRestAutoCompleteEmployeeService {\n constructor(private http: HttpClientService) {}\n\n query(path: string, body: object): Observable<any> {\n const endpoit = `queries/${path}`;\n return this.http.post(endpoit, body);\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\nimport { getMoment } from '../utils/helpers';\nimport { InputRestAutoCompleteEmployeeService } from './input-rest-auto-complete-employee.service';\n\nexport interface IConditions {\n fields: Array<string[]>;\n value: string;\n}\n\n@Component({\n selector: 'input-rest-auto-complete-employee',\n templateUrl: './input-rest-auto-complete-employee.component.html',\n styleUrls: ['./input-rest-auto-complete-employee.component.css'],\n})\nexport class InputRestAutoCompleteEmployeeComponent implements OnInit {\n @Input()\n name: string;\n @Input()\n value: string;\n @Input()\n company: any;\n @Input()\n branch: any;\n @Input()\n employeeType: any;\n @Input()\n otherContractType: any;\n @Input()\n filterEmployeeType: boolean;\n @Input()\n enableEntityFilters: boolean;\n @Input()\n placeholder: string;\n @Input()\n readonly: boolean;\n @Input()\n required: boolean;\n @Input()\n disabled: boolean;\n @Input()\n dropdown: boolean;\n @Input()\n forceSelection = true;\n @Input()\n error: object;\n @Input()\n emptyMessage: string;\n @Input()\n keyCode: string;\n @Input()\n keyName = 'name';\n @Input()\n itemSelect: any;\n @Input()\n form: FormGroup;\n @Input()\n inputId: string;\n private isDropdown: boolean;\n\n @Output()\n onBlur: EventEmitter<any> = new EventEmitter();\n @Output()\n onSelect: EventEmitter<any> = new EventEmitter();\n @Output()\n onClear: EventEmitter<any> = new EventEmitter();\n\n suggestions: any[] = [];\n\n constructor(private service: InputRestAutoCompleteEmployeeService) {}\n\n ngOnInit() {}\n\n filterQuery(event: any) {\n const query = event.query;\n if (!(isNaN(query) && query.toString().length < 3)) {\n try {\n this.service.query('autocompleteEmployee', this.getParamsRest(query)).subscribe(payload => this.formaterResponce(payload.result));\n } catch (e) {\n console.log('Erro ao buscar no back');\n }\n }\n }\n\n formaterResponce(result) {\n this.suggestions = [];\n const valsResult = [];\n result.map(value => {\n const valueConcat = {\n tableId: value.tableId,\n code: '',\n name: '',\n fullname: '',\n admission: '',\n document: '',\n };\n\n if (value.fields && value.fields.length) {\n valueConcat.fullname = value.fields[0].value;\n valueConcat.admission = value.fields[1].value;\n valueConcat.document = value.fields[2].value;\n valueConcat.code = value.fields.length === 4 && value.fields[3].value;\n\n // Pode acontecer de não vim o código.\n if (valueConcat.code) {\n valueConcat.name = valueConcat.code\n .concat(' - ')\n .concat(valueConcat.fullname)\n .concat(' - ')\n .concat(getMoment(valueConcat.admission).format('DD/MM/YYYY'));\n } else {\n valueConcat.name = valueConcat.fullname.concat(' - ').concat(getMoment(valueConcat.admission).format('DD/MM/YYYY'));\n }\n\n valsResult.push(valueConcat);\n }\n });\n this.suggestions = valsResult;\n return valsResult;\n }\n\n getParamsRest(search: string): object {\n const returnFilter = {\n valueSearch: search,\n enableEntityFilters: this.enableEntityFilters,\n };\n if (this.company) {\n returnFilter['company'] = this.company;\n }\n if (this.branch) {\n returnFilter['companyBranch'] = this.branch;\n }\n if (this.employeeType) {\n returnFilter['employeeType'] = this.employeeType;\n }\n if (this.otherContractType) {\n returnFilter['otherContractType'] = this.otherContractType;\n }\n if (this.filterEmployeeType === false) {\n returnFilter['filterEmployeeType'] = this.filterEmployeeType;\n }\n return returnFilter;\n }\n\n /**\n * Externiza a função de select das opções\n * <input-rest-auto-complete-employee (onSelect)=\"onSelectHandle($event)\" ></input-rest-auto-complete-employee>\n * @param option\n */\n selectOption(option: object) {\n this.onSelect.emit(option);\n }\n\n onClearItem(option: object) {\n this.onClear.emit(option);\n }\n\n onBlurItem(option: object) {\n if (!this.isDropdown) {\n this.form.controls[this.name].markAsDirty();\n this.onBlur.emit(option);\n } else {\n this.isDropdown = false;\n }\n }\n\n onDropdownClick() {\n this.isDropdown = true;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { AutoCompleteModule } from 'primeng/autocomplete';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { InputRestAutoCompleteEmployeeComponent } from './input-rest-auto-complete-employee.component';\nimport { InputRestAutoCompleteEmployeeService } from './input-rest-auto-complete-employee.service';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n HttpClientModule,\n AutoCompleteModule,\n SharedModule,\n ReactiveFormsModule\n ],\n declarations: [ InputRestAutoCompleteEmployeeComponent ],\n providers: [ InputRestAutoCompleteEmployeeService ],\n exports: [ InputRestAutoCompleteEmployeeComponent ]\n})\nexport class InputRestAutoCompleteEmployeeModule {\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { HttpClientService } from '../shared/http-client.service';\n\n@Injectable()\nexport class InputRestAutoCompleteEmployeeModelService {\n constructor(private http: HttpClientService) {}\n\n query(path: string, body: object): Observable<any> {\n const endpoit = `queries/${path}`;\n return this.http.post(endpoit, body);\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\nimport { getMoment } from '../utils/helpers';\nimport { InputRestAutoCompleteEmployeeModelService } from './input-rest-auto-complete-employee-model.service';\nimport { ActivatedRoute } from '@angular/router';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nexport interface IConditions {\n fields: Array<string[]>;\n value: string;\n}\n\n@Component({\n selector: 'input-rest-auto-complete-employee-model',\n templateUrl: './input-rest-auto-complete-employee-model.component.html',\n styleUrls: ['./input-rest-auto-complete-employee-model.component.css'],\n})\nexport class InputRestAutoCompleteEmployeeModelComponent implements OnInit {\n private _model: any;\n @Input()\n name: string;\n @Input()\n value: string;\n @Input()\n company: any;\n @Input()\n branch: any;\n @Input()\n employeeType: any;\n @Input()\n placeholder: string;\n @Input()\n readonly: boolean;\n @Input()\n required: boolean;\n @Input()\n disabled: boolean;\n @Input()\n dropdown: boolean;\n @Input()\n forceSelection = true;\n @Input()\n error: object;\n @Input()\n emptyMessage: string;\n @Input()\n keyCode: string;\n @Input()\n keyName = 'name';\n @Input()\n itemSelect: any;\n @Input()\n style: any;\n @Input()\n inputStyle: any;\n\n @Output()\n onBlur: EventEmitter<any> = new EventEmitter();\n @Output()\n onSelect: EventEmitter<any> = new EventEmitter();\n @Output()\n onClear: EventEmitter<any> = new EventEmitter();\n @Output()\n modelChange: EventEmitter<any> = new EventEmitter();\n\n suggestions: any[] = [];\n private useWorkflow: boolean;\n private ngUnsubscribe = new Subject();\n\n constructor(private service: InputRestAutoCompleteEmployeeModelService,\n private activatedRoute: ActivatedRoute,\n ) {}\n\n ngOnInit() {\n this.activatedRoute.data.pipe(takeUntil(this.ngUnsubscribe)).subscribe((data) => {\n this.useWorkflow = !!(data && data.useWorkflow);\n });\n }\n\n filterQuery(event: any) {\n const query = event.query;\n if (!(isNaN(query) && query.toString().length < 3)) {\n try {\n this.service.query('autocompleteEmployee', this.getParamsRest(query)).subscribe(payload => this.formaterResponce(payload.result));\n } catch (e) {\n console.log('Erro ao buscar no back');\n }\n }\n }\n\n formaterResponce(result) {\n this.suggestions = [];\n const valsResult = [];\n result.map(value => {\n const valueConcat = {\n tableId: value.tableId,\n code: '',\n name: '',\n fullname: '',\n admission: '',\n document: '',\n };\n\n if (value.fields && value.fields.length) {\n valueConcat.fullname = value.fields[0].value;\n valueConcat.admission = value.fields[1].value;\n valueConcat.document = value.fields[2].value;\n valueConcat.code = value.fields.length === 4 && value.fields[3].value;\n\n // Pode acontecer de não vim o código.\n if (valueConcat.code) {\n valueConcat.name = valueConcat.code\n .concat(' - ')\n .concat(valueConcat.fullname)\n .concat(' - ')\n .concat(getMoment(valueConcat.admission).format('DD/MM/YYYY'));\n } else {\n valueConcat.name = valueConcat.fullname.concat(' - ').concat(getMoment(valueConcat.admission).format('DD/MM/YYYY'));\n }\n\n valsResult.push(valueConcat);\n }\n });\n this.suggestions = valsResult;\n return valsResult;\n }\n\n getParamsRest(search: string): object {\n const returnFilter = {\n valueSearch: search,\n };\n if (this.company) {\n returnFilter['company'] = this.company;\n }\n if (this.branch) {\n returnFilter['companyBranch'] = this.branch;\n }\n if (this.employeeType) {\n returnFilter['employeeType'] = this.employeeType;\n }\n /**\n * If para uso do BPO\n * Serve para tirar os colaboradores demitidos do dropbox do autocomplete\n */\n if (this.useWorkflow) {\n returnFilter['timeTrackingResumeType'] = {key: \"FIRED\"};\n }\n\n return returnFilter;\n }\n\n /**\n * Externiza a função de select das opções\n * <input-rest-auto-complete-employee (onSelect)=\"onSelectHandle($event)\" ></input-rest-auto-complete-employee>\n * @param option\n */\n selectOption(option: object) {\n this.onSelect.emit(option);\n }\n\n onClearItem(option: object) {\n this.onClear.emit(option);\n }\n\n onBlurItem(option: object) {\n this.onBlur.emit(option);\n }\n\n set model(val) {\n this._model = val;\n this.modelChange.emit(this._model);\n }\n\n @Input()\n get model() {\n return this._model;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {HttpClientModule} from '@angular/common/http';\nimport {AutoCompleteModule} from 'primeng/autocomplete';\n\nimport {InputRestAutoCompleteEmployeeModelComponent} from './input-rest-auto-complete-employee-model.component';\nimport {InputRestAutoCompleteEmployeeModelService} from './input-rest-auto-complete-employee-model.service';\nimport {SharedModule} from '../shared/shared.module';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n SharedModule,\n HttpClientModule,\n AutoCompleteModule,\n ReactiveFormsModule\n ],\n declarations: [InputRestAutoCompleteEmployeeModelComponent],\n providers: [InputRestAutoCompleteEmployeeModelService],\n exports: [InputRestAutoCompleteEmployeeModelComponent]\n})\nexport class InputRestAutoCompleteEmployeeModelModule {\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { HttpClientService } from '../shared/http-client.service';\n\n@Injectable()\nexport class InputRestAutoCompleteEnumService {\n constructor(private http: HttpClientService) {}\n\n query(server: string, enumeration: string): Observable<any> {\n const endpoint = 'enumQuery';\n const request = {\n names: [enumeration],\n };\n return this.http.enumQuery(endpoint, request, server);\n }\n}\n","import { Component, OnInit, EventEmitter, Input, Output, ElementRef, ViewChild } from '@angular/core';\nimport { InputRestAutoCompleteEnumService } from './input-rest-auto-complete-enum.service';\nimport { FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'input-rest-auto-complete-enum',\n templateUrl: './input-rest-auto-complete-enum.component.html',\n styleUrls: ['./input-rest-auto-complete-enum.component.css']\n})\nexport class InputRestAutoCompleteEnumComponent implements OnInit {\n\n @ViewChild('autoCompleteObject', { static: true }) _autoCompleteObjectEl: ElementRef;\n @Input() name: string;\n @Input() placeholder: string;\n @Input() readonly: boolean;\n @Input() required: boolean;\n @Input() disabled: boolean;\n @Input() dropdown: boolean;\n @Input() forceSelection = true;\n @Input() error: object;\n @Input() emptyMessage: string;\n @Input() itemSelect: any;\n @Input() inputId: string;\n private isDropdown: boolean;\n @Input() keyToExclude: any = [];\n @Input() keyToKeep: any = [];\n\n @Input() server: string;\n @Input() enumeration: string;\n @Input() form: FormGroup;\n @Input() multiple = false;\n\n @Output() onSelect: EventEmitter<any> = new EventEmitter();\n @Output() onBlur: EventEmitter<any> = new EventEmitter();\n @Output() onClear: EventEmitter<any> = new EventEmitter();\n\n suggestions: any[] = [];\n payload: any[];\n\n constructor(private service: InputRestAutoCompleteEnumService) {\n }\n\n ngOnInit() {\n try {\n this.service.query(this.server, this.enumeration).subscribe(\n payload =>\n this.payload = payload.results[0].items);\n } catch (e) {\n console.log('Erro ao buscar no back');\n }\n }\n\n filterQuery(event: any) {\n const query = event.query;\n this.suggestions = [];\n if (!(isNaN(query) && (query.toString().length < 3))) {\n if (this.keyToExclude && this.keyToExclude.length) {\n this.payload = this.payload && this.payload.filter(record => !this.keyToExclude.includes(record.key));\n } else if (this.keyToKeep && this.keyToKeep.length) {\n this.payload = this.payload && this.payload.filter(record => this.keyToKeep.includes(record.key));\n }\n for (let i = 0; i < this.payload.length; i++) {\n const item = this.payload[i];\n if (item.value.toLowerCase().indexOf(query.toLowerCase()) !== -1) {\n this.suggestions.push(item);\n }\n }\n }\n }\n\n\n /**\n * Externiza a função de select das opções\n * <input-rest-auto-complete-enum (onSelect)=\"onSelectHandle($event)\" ></input-rest-auto-complete-enum>\n * @param option\n */\n selectOption(option: object) {\n this.onSelect.emit(option);\n }\n\n onBlurItem(option: object) {\n if (!this.isDropdown) {\n this.form.controls[this.name].markAsDirty();\n this.onBlur.emit(option);\n } else {\n this.isDropdown = false;\n }\n }\n\n onDropdownClick() {\n this.isDropdown = true;\n }\n\n async onClearItem(option: object) {\n await this.onClear.emit(option);\n this.form.get(this.name).reset();\n }\n\n get autoCompleteObject() {\n return this._autoCompleteObjectEl;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {HttpClientModule} from '@angular/common/http';\nimport {AutoCompleteModule} from 'primeng/autocomplete';\n\nimport {InputRestAutoCompleteEnumComponent} from './input-rest-auto-complete-enum.component';\nimport {InputRestAutoCompleteEnumService} from './input-rest-auto-complete-enum.service';\nimport {SharedModule} from '../shared/shared.module';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n HttpClientModule,\n AutoCompleteModule,\n SharedModule,\n ReactiveFormsModule\n ],\n declarations: [InputRestAutoCompleteEnumComponent],\n providers: [InputRestAutoCompleteEnumService],\n exports: [InputRestAutoCompleteEnumComponent]\n})\nexport class InputRestAutoCompleteEnumModule {\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ServiceType } from '../../core/enums';\n\nimport { HttpClientService } from '../shared/http-client.service';\n\n@Injectable()\nexport class InputRestAutoCompleteModelService {\n constructor(private http: HttpClientService) {}\n\n query(path: string, body: object, service: ServiceType = ServiceType.PAYROLL): Observable<any> {\n return this.http.query(path, body, service);\n }\n}\n","import { Component, OnInit, EventEmitter, Input, Output } from '@angular/core';\nimport { ServiceType } from '../../core/enums/serviceType';\nimport { InputRestAutoCompleteModelService } from './input-rest-auto-complete-model.service';\nimport { isValid, _moment } from '../utils/helpers';\n\nexport interface IConditions {\n fields: Array<string[]>;\n fieldType: string;\n expression: string;\n value: string;\n}\n\n@Component({\n selector: 'input-rest-auto-complete-model',\n templateUrl: './input-rest-auto-complete-model.component.html',\n styleUrls: ['./input-rest-auto-complete-model.component.css'],\n})\n\nexport class InputRestAutoCompleteModelComponent implements OnInit {\n\n private _model: any;\n @Input() name: string;\n @Input() table: string;\n @Input() order: Array<any[]>;\n @Input() fields: Array<any[]>;\n @Input() conditionsFields?: Array<any[]>;\n @Input() conditions: Array<IConditions>;\n @Input() placeholder: string;\n @Input() readonly: boolean;\n @Input() required: boolean;\n @Input() disabled: boolean;\n @Input() dropdown: boolean;\n @Input() forceSelection = true;\n @Input() error: object;\n @Input() emptyMessage: string;\n @Input() keyCode: string;\n @Input() keyName = 'name';\n @Input() concatFieldsForName?: any[];\n @Input() itemSelect: any;\n @Input() style: any;\n @Input() inputStyle: any;\n @Input() keysToExclude: any = [];\n @Input() isWagetype: boolean;\n @Input() companyId: string;\n @Input() wagetypeReferenceDates?: { entryReferenceStartDate: string, entryReferenceEndDate: string };\n @Output() onBlur: EventEmitter<any> = new EventEmitter();\n @Output() onSelect: EventEmitter<any> = new EventEmitter();\n @Output() onClear: EventEmitter<any> = new EventEmitter();\n @Output() onFocus: EventEmitter<any> = new EventEmitter();\n @Output() modelChange: EventEmitter<any> = new EventEmitter();\n\n suggestions: any[] = [];\n\n constructor(private service: InputRestAutoCompleteModelService) {\n }\n\n ngOnInit() {\n\n }\n\n filterQuery(event: any) {\n const query = event.query;\n if (!(isNaN(query) && (query.toString().length < 3))) {\n try {\n if (this.isWagetype) {\n const params = { searchText: query, companyId: this.companyId, ...this.wagetypeReferenceDates };\n return this.service\n .query('autocompleteWagetypeQuery', params, ServiceType.ENTRY)\n .subscribe(payload => this.formaterResponce(payload.result));\n }\n this.service.query('autocomplete', this.getParamsRest(query)).subscribe(payload => this.formaterResponce(payload.result));\n } catch (e) {\n console.log('Erro ao buscar no back');\n }\n }\n }\n\n formaterResponce(result) {\n this.suggestions = [];\n const valsResult = [];\n result.map((value) => {\n const valueConcat = {\n tableId: value.tableId,\n name: '',\n };\n value.fields.map((val) => {\n valueConcat[val.name] = val.value;\n });\n\n if (this.keysToExclude.includes(value && value.tableId)) {\n return;\n }\n\n let fieldName = '';\n if (this.concatFieldsForName) {\n this.concatFieldsForName.map(val => {\n // se o campo for data, formata pro locale do usuário\n if (val.includes('date')) {\n valueConcat[val] = _moment(valueConcat[val]).format('L');\n }\n fieldName += valueConcat[val] + ' - ';\n });\n fieldName = fieldName.slice(0, -3);\n } else {\n if (this.keyCode) {\n fieldName += valueConcat[this.keyCode] + ' - ';\n }\n if (this.keyName) {\n fieldName += valueConcat[this.keyName];\n }\n }\n valueConcat.name = fieldName;\n valsResult.push(valueConcat);\n });\n this.suggestions = valsResult;\n return valsResult;\n }\n\n getParamsRest(search: string): object {\n return {\n 'table': this.table,\n 'fields': this.fields,\n 'order': this.order,\n 'conditions': this.getConditionsRest(search),\n };\n }\n\n getConditionsRest(search: string) {\n const conditiosReturn = [{\n 'fields': this.conditionsFields || this.fields,\n 'expression': 'LIKE',\n 'value': `${ search }`,\n }];\n\n if (this.conditions) {\n this.conditions.map(val => {\n if (!['IS_NULL', 'IS_NOT_NULL', 'IS_TRUE'].includes(val.expression)\n && isValid(val.value)) {\n conditiosReturn.push(val);\n }\n });\n }\n\n return conditiosReturn;\n }\n\n /**\n * Externiza a função de select das opções\n * <input-rest-auto-complete (onSelect)=\"onSelectHandle($event)\" ></input-rest-auto-complete>\n * @param option\n */\n selectOption(option: object) {\n this.onSelect.emit(option);\n }\n\n onClearItem(option: object) {\n this.onClear.emit(option);\n }\n\n onBlurItem(option: object) {\n this.onBlur.emit(option);\n }\n\n onFocusItem(option: object) {\n this.onFocus.emit(option);\n }\n\n set model(val) {\n this._model = val;\n this.modelChange.emit(this._model);\n }\n\n @Input()\n get model() {\n return this._model;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {AutoCompleteModule} from 'primeng/autocomplete';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {HttpClientModule} from '@angular/common/http';\n\nimport {InputRestAutoCompleteModelComponent} from './input-rest-auto-complete-model.component';\nimport {InputRestAutoCompleteModelService} from './input-rest-auto-complete-model.service';\nimport {SharedModule} from '../shared/shared.module';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n HttpClientModule,\n AutoCompleteModule,\n SharedModule,\n ReactiveFormsModule\n ],\n declarations: [InputRestAutoCompleteModelComponent],\n providers: [InputRestAutoCompleteModelService],\n exports: [InputRestAutoCompleteModelComponent]\n})\nexport class InputRestAutoCompleteModelModule {\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { HttpClientService } from '../shared/http-client.service';\n\n@Injectable()\nexport class InputRestAutoCompleteModelEnumService {\n constructor(private http: HttpClientService) {}\n\n query(server: string, enumeration: string): Observable<any> {\n const endpoit = `enumQuery`;\n const request = {\n names: [enumeration],\n };\n return this.http.enumQuery(endpoit, request, server);\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\nimport { InputRestAutoCompleteModelEnumService } from './input-rest-auto-complete-model-enum.service';\n\n@Component({\n selector: 'input-rest-auto-complete-model-enum',\n templateUrl: './input-rest-auto-complete-model-enum.component.html',\n styleUrls: ['./input-rest-auto-complete-model-enum.component.css'],\n})\nexport class InputRestAutoCompleteModelEnumComponent implements OnInit {\n private _model: any;\n @Input()\n name: string;\n @Input()\n placeholder: string;\n @Input()\n readonly: boolean;\n @Input()\n required: boolean;\n @Input()\n disabled: boolean;\n @Input()\n dropdown: boolean;\n @Input()\n forceSelection = true;\n @Input()\n error: object;\n @Input()\n emptyMessage: string;\n @Input()\n itemSelect: any;\n @Input()\n style: any;\n @Input()\n inputStyle: any;\n\n @Input()\n server: string;\n\n @Input()\n enumeration: string;\n\n @Output()\n onSelect: EventEmitter<any> = new EventEmitter();\n @Output()\n onBlur: EventEmitter<any> = new EventEmitter();\n @Output()\n onClear: EventEmitter<any> = new EventEmitter();\n @Output()\n modelChange: EventEmitter<any> = new EventEmitter();\n\n suggestions: any[] = [];\n payload: any[];\n\n constructor(private service: InputRestAutoCompleteModelEnumService) {}\n\n ngOnInit() {\n try {\n this.service.query(this.server, this.enumeration).subscribe(payload => (this.payload = payload.results));\n } catch (e) {\n console.log('Erro ao buscar no back');\n }\n }\n\n filterQuery(event: any) {\n const query = event.query;\n this.suggestions = [];\n if (!(isNaN(query) && query.toString().length < 3)) {\n for (let i = 0; i < this.payload[0].items.length; i++) {\n const item = this.payload[0].items[i];\n if (item.value.toLowerCase().indexOf(query.toLowerCase()) !== -1) {\n this.suggestions.push(item);\n }\n }\n }\n }\n\n /**\n * Externiza a função de select das opções\n * <input-rest-auto-complete-enum (onSelect)=\"onSelectHandle($event)\" ></input-rest-auto-complete-enum>\n * @param option\n */\n selectOption(option: object) {\n this.onSelect.emit(option);\n }\n\n onBlurItem(option: object) {\n this.onBlur.emit(option);\n }\n\n onClearItem(option: object) {\n this.onClear.emit(option);\n }\n\n set model(val) {\n this._model = val;\n this.modelChange.emit(this._model);\n }\n\n @Input()\n get model() {\n return this._model;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {AutoCompleteModule} from 'primeng/autocomplete';\nimport {InputRestAutoCompleteModelEnumComponent} from './input-rest-auto-complete-model-enum.component';\nimport {InputRestAutoCompleteModelEnumService} from './input-rest-auto-complete-model-enum.service';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {HttpClientModule} from '@angular/common/http';\n\nimport {SharedModule} from '../shared/shared.module';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n HttpClientModule,\n AutoCompleteModule,\n SharedModule,\n ReactiveFormsModule\n ],\n declarations: [InputRestAutoCompleteModelEnumComponent],\n providers: [InputRestAutoCompleteModelEnumService],\n exports: [InputRestAutoCompleteModelEnumComponent]\n})\nexport class InputRestAutoCompleteModelEnumModule {\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { HttpClientService } from '../shared/http-client.service';\n\n@Injectable()\nexport class InputRestAutoCompleteJobpositionService {\n constructor(private http: HttpClientService) {}\n\n query(path: string, body: object): Observable<any> {\n const endpoit = `queries/${path}`;\n return this.http.post(endpoit, body);\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\nimport { InputRestAutoCompleteJobpositionService } from './input-rest-auto-complete-jobposition.service';\n\n@Component({\n selector: 'input-rest-auto-complete-jobposition',\n templateUrl: './input-rest-auto-complete-jobposition.component.html',\n styleUrls: ['./input-rest-auto-complete-jobposition.component.css'],\n})\nexport class InputRestAutoCompleteJobpositionComponent implements OnInit {\n @Input()\n name: string;\n @Input()\n value: string;\n @Input()\n companyId: string;\n @Input()\n creationDate: string;\n @Input()\n expirationDate: string;\n @Input()\n jobpositionsFilter: Array<string>;\n @Input()\n ignoredJobpositions: Array<string>;\n @Input()\n order: Array<any>;\n @Input()\n placeholder: string;\n @Input()\n readonly: boolean;\n @Input()\n required: boolean;\n @Input()\n disabled: boolean;\n @Input()\n dropdown: boolean;\n @Input()\n forceSelection = true;\n @Input()\n error: object;\n @Input()\n emptyMessage: string;\n @Input()\n itemSelect: any;\n @Input()\n form: FormGroup;\n @Input()\n inputId: string;\n @Input()\n minCharactersToSearch = 3;\n @Input()\n multiple = false;\n private isDropdown: boolean;\n\n @Output()\n onBlur: EventEmitter<any> = new EventEmitter();\n @Output()\n onSelect: EventEmitter<any> = new EventEmitter();\n @Output()\n onClear: EventEmitter<any> = new EventEmitter();\n @Output()\n onFocus: EventEmitter<any> = new EventEmitter();\n\n suggestions: any[] = [];\n\n constructor(private service: InputRestAutoCompleteJobpositionService) { }\n\n ngOnInit() { }\n\n filterQuery(event: any) {\n const query = event.query;\n if (!(isNaN(query) && query.toString().length < this.minCharactersToSearch)) {\n try {\n this.service.query('autocompleteJobpositionQuery',\n this.getParamsRest(query)).subscribe(payload => this.formaterResponse(payload.result));\n } catch (e) {\n console.log('Erro ao buscar no back');\n }\n }\n }\n\n formaterResponse(result) {\n this.suggestions = [];\n const valsResult = [];\n result.map(value => {\n const valueConcat = {\n tableId: value.tableId,\n name: '',\n };\n\n value.fields.map(val => {\n valueConcat[val.name] = val.value;\n });\n\n valueConcat.name = valueConcat['Code'] + ' - ' + valueConcat['Name'];\n valsResult.push(valueConcat);\n });\n this.suggestions = valsResult;\n return valsResult;\n }\n\n getParamsRest(search: string): object {\n const returnFilter = {\n searchText: search,\n companyId: this.companyId ? this.replace(this.companyId) : null,\n creationDate: this.creationDate ? this.replace(this.creationDate) : null,\n expirationDate: this.expirationDate ? this.replace(this.expirationDate) : null,\n jobpositionsFilter: this.jobpositionsFilter ? this.replaceArray(this.jobpositionsFilter) : null,\n ignoredJobpositions: this.ignoredJobpositions ? this.replaceArray(this.ignoredJobpositions) : null,\n order: this.order,\n };\n\n return returnFilter;\n }\n\n private replace(value: string): string {\n return value.replace(new RegExp(\"'\", 'g'), \"\");\n }\n\n private replaceArray(value: Array<string>): Array<string> {\n return value.map(e => this.replace(e));\n }\n\n /**\n * Externiza a função de select das opções\n * <input-rest-auto-complete-jobposition (onSelect)=\"onSelectHandle($event)\" ></input-rest-auto-complete-jobposition>\n * @param option\n */\n selectOption(option: object) {\n this.onSelect.emit(option);\n }\n\n onClearItem(option: object) {\n this.onClear.emit(option);\n }\n\n onBlurItem(option: object) {\n if (!this.isDropdown) {\n this.form.controls[this.name].markAsDirty();\n this.onBlur.emit(option);\n } else {\n this.isDropdown = false;\n }\n }\n\n onDropdownClick() {\n this.isDropdown = true;\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { AutoCompleteModule } from \"primeng/autocomplete\";\nimport { SharedModule } from \"primeng/shared\";\nimport { InputRestAutoCompleteJobpositionComponent } from \"./input-rest-auto-complete-jobposition.component\";\nimport { InputRestAutoCompleteJobpositionService } from \"./input-rest-auto-complete-jobposition.service\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n HttpClientModule,\n AutoCompleteModule,\n SharedModule,\n ReactiveFormsModule\n ],\n declarations: [ InputRestAutoCompleteJobpositionComponent ],\n providers: [ InputRestAutoCompleteJobpositionService ],\n exports: [ InputRestAutoCompleteJobpositionComponent ]\n})\nexport class InputRestAutoCompleteJobpositionModule {\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { HttpClientService } from '../shared/http-client.service';\n\n@Injectable()\nexport class ListRestService {\n constructor(private http: HttpClientService) {}\n\n query(path: string, body: object): Observable<any> {\n const endpoit = `queries/${path}`;\n return this.http.post(endpoit, body);\n }\n\n queryEntity(path: string, body: object): Observable<any> {\n return this.http.get(path);\n }\n}\n","import { Component, OnInit, OnChanges, SimpleChanges, Input, Output, EventEmitter, ViewEncapsulation } from '@angular/core';\nimport { ListRestService } from './list-rest.service';\nimport { TranslateService } from '@ngx-translate/core';\n\nexport interface IColumns {\n label: string;\n field: string;\n}\n\n@Component({\n selector: 'list-rest',\n templateUrl: './list-rest.component.html',\n styleUrls: ['./list-rest.component.scss'],\n})\nexport class ListRestComponent implements OnInit, OnChanges {\n @Input()\n emptyMessage: string;\n @Input()\n urlRest: string;\n @Input()\n keyPayload: string;\n @Input()\n columns: Array<IColumns[]>;\n @Input()\n arguments? = { page: { current: 1, size: '10' } };\n @Input()\n filterValues?: (event?: any) => void;\n @Input()\n getRowActionsFun?: Function;\n @Input()\n scope?: any;\n @Input()\n reload?: boolean;\n @Input()\n isEntity?: boolean;\n @Input() alwaysShowPaginator: boolean = false;\n\n @Output()\n onLoadPayload: EventEmitter<any> = new EventEmitter();\n @Output()\n loadedList = new EventEmitter<boolean>();\n\n totalRecords: number;\n payload: any[];\n\n constructor(private translateService: TranslateService, private service: ListRestService) {}\n\n ngOnInit() {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.hasOwnProperty('arguments')) {\n this.arguments = Object.assign({}, changes.arguments.currentValue);\n this.getList(1);\n }\n if (changes.hasOwnProperty('reload') && changes.reload.currentValue === true) {\n this.getList(1);\n }\n }\n\n getList(page: number) {\n this.loadedList.emit(true);\n try {\n const args = Object.assign({}, this.arguments);\n args.page.current = page;\n if (this.isEntity) {\n this.service.queryEntity(this.urlRest, args).subscribe(payload => {\n this.onResponseQuery(payload, page);\n this.loadedList.emit(false);\n });\n } else {\n this.service.query(this.urlRest, args).subscribe(payload => {\n this.onResponseQuery(payload.result, page);\n this.loadedList.emit(false);\n });\n }\n } catch (e) {\n console.log('Erro ao tentar buscar lista no back');\n }\n }\n\n onResponseQuery(payload, page) {\n this.payload = this.filterValues ? this.filterValues.bind(this.scope)(payload[this.keyPayload]) : payload[this.keyPayload];\n this.onLoadPayload.emit({\n result: payload[this.keyPayload],\n page: page,\n });\n this.totalRecords = this.isEntity ? payload.totalElements : payload.countResult;\n }\n\n onHandlePage(event) {\n const currentPage = event.first / event.rows + 1;\n this.getList(currentPage);\n }\n\n getRowActions(data: any) {\n return this.getRowActionsFun.call(this.scope, data);\n }\n\n handleClickActions(button): void {\n const toClick = button.containerViewChild.nativeElement.getElementsByClassName('ui-splitbutton-menubutton')[0] as HTMLElement;\n toClick.click();\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { ButtonModule } from \"primeng/button\";\nimport { TableModule } from \"primeng/table\";\nimport { SplitButtonModule } from \"primeng/splitbutton\";\nimport { InputTextModule } from \"primeng/inputtext\";\n\nimport { SharedModule } from \"../shared/shared.module\";\nimport { ListRestComponent } from \"./list-rest.component\";\nimport { ListRestService } from \"./list-rest.service\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n SharedModule,\n HttpClientModule,\n TableModule,\n InputTextModule,\n ButtonModule,\n SplitButtonModule,\n ],\n declarations: [ListRestComponent],\n providers: [ListRestService],\n exports: [ListRestComponent],\n})\nexport class ListRestModule {\n}\n","import {Component} from '@angular/core';\n\n@Component({\n selector: 'spinner-loader',\n templateUrl: './spinner-loader.component.html'\n})\nexport class SpinnerLoaderComponent {\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ProgressSpinnerModule } from 'primeng/progressspinner';\nimport { SpinnerLoaderComponent } from './spinner-loader.component';\n\n@NgModule({\n imports: [\n FormsModule,\n ProgressSpinnerModule\n ],\n declarations: [\n SpinnerLoaderComponent\n ],\n exports: [\n SpinnerLoaderComponent\n ]\n})\nexport class SpinnerLoaderModule {}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class TypeAdmissionServices {\n private company: any = {};\n private contractNationality: any = {};\n private contractType: any = {};\n\n constructor() {}\n\n public setCompany(company: any) {\n this.company = company;\n }\n\n public getCompanyId() {\n return this.company.companyId;\n }\n\n public setContractNationality(contractNationality: any) {\n this.contractNationality = contractNationality;\n }\n\n public isBrazilianAdmission() {\n return this.company.abbreviation === 'BR' && this.contractNationality.key === 'National';\n }\n\n public isBrazilAndforeignContract() {\n return this.company.abbreviation === 'BR' && this.contractNationality.key !== 'National';\n }\n\n public isForeignAdmission() {\n return this.company.abbreviation !== 'BR' && this.contractNationality.key === 'National';\n }\n\n public isForeignAndforeignContract() {\n return this.company.abbreviation !== 'BR' && this.contractNationality.key !== 'National';\n }\n\n public isBrazilianCompany() {\n return this.company.abbreviation === 'BR';\n }\n\n public isNationalContract() {\n return this.contractNationality.key === 'National';\n }\n\n public getCountryID() {\n return this.company.id;\n }\n\n public get contractNationalityKey() {\n return this.contractNationality.key;\n }\n\n public get abbreviation() {\n return this.company.abbreviation;\n }\n\n public getCurrency() {\n return this.company.currency;\n }\n\n public getStructureID() {\n return this.company.structure;\n }\n\n public setContractType(contractType: any) {\n this.contractType = contractType;\n }\n\n public get contractTypeKey() {\n return this.contractType ? this.contractType.key : this.contractType;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {TypeAdmissionServices} from './type-admission.services';\n\n@NgModule({\n imports: [CommonModule],\n providers: [TypeAdmissionServices],\n})\nexport class TypeAdmissionModule {\n}\n","import * as _moment from 'moment';\n\nconst moment = _moment;\n\nexport function isRequired(value) {\n return value !== undefined && value !== null && value.length > 0;\n}\n\nexport function isMax(value, max) {\n return value.length <= max;\n}\n\nexport function isNumber(value) {\n const regex = /^\\d*$/;\n return regex.test(value);\n}\n\nexport function notEmpty(value) {\n return value ? value : false;\n}\n\nexport function numberOrZero(value) {\n return isNumber(notEmpty(value)) ? Number.parseInt(value) : 0;\n}\n\nexport function sun(...val) {\n return val.reduce((pv, cv) => numberOrZero(cv) + pv, 0);\n}\n\nexport function firstNameLengthIsValid(name) {\n const firstName = name.split(' ');\n return firstName[0].trim().length > 0 ? firstName[0].trim().length >= 2 : true;\n}\n\nexport function firstNameIsValid(name) {\n const firstName = name.split(' ');\n return firstName.length >= 2 && firstName[1].length >= 1;\n}\n\nexport function fullNameLengthIsValid(fullName) {\n return fullName.length <= 70;\n}\n\nexport function containsMoreThanTwoRepeatedCharacters(fullName) {\n const regex = /([a-zA-Z])\\1{2}/g;\n return !regex.test(fullName);\n}\n\nexport function containsMoreThanOneConsecutiveAbbreviation(fullName) {\n const regex = /(\\b.\\s)(.\\s)(.\\b)\\1?/g;\n return !regex.test(fullName);\n}\n\nexport function containsMoreThanOneConsecutiveBlankSpace(fullName) {\n const regex = /(\\w[ ]{2,}\\w)/;\n return !regex.test(fullName);\n}\n\n/**\n* Validada se nome não contém caracteres especiais.\n* @param fullName Nome completo.\n* @returns boolean de acordo com a validação.\n */\nexport function containsSpecialCharacters(fullName) {\n const regex = /[[\\]!@#$%&*_+=`´{}^~<>.,:;?|()\\/\\\\-]/;\n return !regex.test(fullName);\n}\n\nexport function removeWhiteSpaces(msg: string) {\n if (msg && String(msg)) {\n return String(msg).replace(/\\s/g,\"\");\n }\n return String(msg);\n}\n\nexport function isValidPIS(pis) {\n const multiplicadorBase = '3298765432';\n let total = 0;\n let resto = 0;\n let multiplicando = 0;\n let multiplicador = 0;\n let digito = 99;\n\n // Retira a mascara\n const numeroPIS = pis.replace(/[^\\d]+/g, '');\n\n if (\n numeroPIS.length !== 11 ||\n numeroPIS === '00000000000' ||\n numeroPIS === '11111111111' ||\n numeroPIS === '22222222222' ||\n numeroPIS === '33333333333' ||\n numeroPIS === '44444444444' ||\n numeroPIS === '55555555555' ||\n numeroPIS === '66666666666' ||\n numeroPIS === '77777777777' ||\n numeroPIS === '88888888888' ||\n numeroPIS === '99999999999'\n ) {\n return false;\n } else {\n for (let i = 0; i < 10; i++) {\n multiplicando = parseInt(numeroPIS.substring(i, i + 1));\n multiplicador = parseInt(multiplicadorBase.substring(i, i + 1));\n total += multiplicando * multiplicador;\n }\n\n resto = 11 - (total % 11);\n resto = resto === 10 || resto === 11 ? 0 : resto;\n\n digito = parseInt('' + numeroPIS.charAt(10));\n return resto === digito;\n }\n}\n\nexport function validateBirthDate(birthday, date) {\n if (birthday && date) {\n const birthdayCompare = moment(typeof birthday === 'string' ? birthday.replace(/[^\\d]+/g, '') : birthday, 'DDMMYYYY')\n .format('YYYY-MM-DD')\n .toString();\n const dateCompare = moment(date.replace(/[^\\d]+/g, ''), 'DDMMYYYY')\n .format('YYYY-MM-DD')\n .toString();\n return moment(dateCompare).isSameOrAfter(birthdayCompare);\n }\n}\n\nexport function isBirthDayValid(birthdayCompare, dateCompare) {\n if (birthdayCompare && dateCompare) {\n return dateCompare.isSameOrAfter(birthdayCompare);\n }\n}\n\nexport function isDateExpirationBeforeExpeditionDate(expeditionDateCompare, dateCompare) {\n if (expeditionDateCompare && dateCompare) {\n return dateCompare.isSameOrAfter(expeditionDateCompare);\n }\n}\n\nexport function isDateSameOrAfterCurrentDate(dateCompareMoment) {\n if (dateCompareMoment) {\n const currentDateCompare = moment();\n return dateCompareMoment.isSameOrAfter(currentDateCompare);\n }\n}\n\nexport function isDateCompare(momentDate, momentDateCompare, compare) {\n if (momentDate && momentDate.isValid() && momentDateCompare && compare) {\n return momentDate[compare](momentDateCompare);\n }\n return true;\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { HttpClientService } from '../components/shared/http-client.service';\nimport { CompanyIndicationType } from '../core/enums';\n\n@Injectable()\nexport class CompanyIndicationsService {\n private companyUseWorkstationGroupSubject = new Subject<any>();\n private useWorkstationGroup: any;\n private structure;\n\n constructor(private http: HttpClientService) {}\n\n getCompanyIndications(companyId: string, companyIndicationTypes: CompanyIndicationType[]) {\n return this.http\n .query('companyIndicationQuery', { companyId: companyId, companyIndicationType: companyIndicationTypes })\n .pipe(map((payload: any) => payload.result));\n }\n\n setCompanyUseWorkstationGroup(indication) {\n this.companyUseWorkstationGroupSubject.next(indication);\n }\n\n setStructure(indication) {\n this.structure = indication;\n }\n\n getStructure() {\n return this.structure;\n }\n\n getCompanyUseWorkstationGroup(): Observable<any> {\n return this.companyUseWorkstationGroupSubject.asObservable();\n }\n\n setUseWorkstationGroup(useIndication) {\n this.useWorkstationGroup = useIndication;\n }\n\n getUseWorkstationGroup() {\n return this.useWorkstationGroup;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { HttpClientService } from '../components/shared/http-client.service';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class IntegrationService {\n constructor(private http: HttpClientService) {}\n\n hasModule(module): Observable<any> {\n return this.http.query('hasModule', { module: module });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { MessageService } from \"primeng/api\";\nimport { map, catchError } from \"rxjs/operators\";\nimport { Observable, throwError } from \"rxjs\";\nimport { EntityODataParameter } from '../core/entities';\nimport { FieldType, FormField } from '@seniorsistemas/angular-components';\nimport * as moment_ from 'moment';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { PaginationData } from '../core/interfaces';\n\nconst moment = moment_;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LookupParametersService {\n\n private searchLookupFields: any;\n private endpoint: string;\n private parameters: any;\n private concatFields: any;\n private concatOtherFields: any;\n private lookupDisplayField: string;\n private searchFields: any;\n private httpPostParams: any;\n private page: PaginationData;\n private _httpParams: HttpParams = new HttpParams();\n\n constructor(private http: HttpClient, private messageService: MessageService, private translateService: TranslateService) {\n }\n\n\n lookupRequestPost(httpPostParams: any, endpoint: string, concatFields: Array<FormField> = null, lookupDisplayField: string) {\n this.httpPostParams = httpPostParams;\n this.postConfigPageSize(httpPostParams);\n this.lookupDisplayField = lookupDisplayField;\n this.concatFields = concatFields;\n return this.postDataLookup(endpoint);\n }\n\n postConfigPageSize(httpPostParams: any) {\n if (httpPostParams) {\n this.httpPostParams.page.size = httpPostParams.page && httpPostParams.page.size ? httpPostParams.page.size : 10;\n this.httpPostParams.page.current = httpPostParams.page && httpPostParams.page.current ? httpPostParams.page.current : 0;\n }\n }\n\n /**\n * Função chamada no change do autocomplete (Lookup fechado).\n * @param event valor atribuido no autocomplete do lookup fechado\n * @param endpoint endpoint que sera feito a requisição.\n * @param searchLookupFields campos que seram filtrados pelo autocomplete (lookup fechado)\n * @param searchFields array com os campos do filtro\n * @param concatFields array com os formFields que seram concatenados\n * @param concatOtherFields converte os campos enumeração para serem concatenados na grid\n * @param lookupDisplayField campo que sera alterado com os dados concatenados informado acima\n * @param params parâmetros para ser usado no lookup\n */\n lookupRequest(event: any, endpoint: string, searchLookupFields: Array<String>, searchFields: Array<FormField>,\n concatFields: Array<FormField>, lookupDisplayField: string, concatOtherFields: Array<FormField> = [], params: any = []) {\n\n this.searchLookupFields = searchLookupFields;\n this.endpoint = endpoint;\n this.parameters = params;\n this.concatFields = concatFields;\n this.concatOtherFields = concatOtherFields;\n this.lookupDisplayField = lookupDisplayField;\n this.searchFields = searchFields;\n\n this.generateLookupParameters(event);\n this.configHttpParamsPagination('10', '0');\n this.configHttpParamsOrderBy(event.multiSortMeta);\n return this.getDataLookup();\n }\n\n /**\n * Função chamada no change do filtro do lookup (Lookup aberto).\n * @param event valor atribuido no autocomplete do lookup fechado\n * @param endpoint endpoint que sera feito a requisição.\n * @param searchFields array com os campos do filtro\n * @param concatFields array com os formFields que seram concatenados\n * @param concatOtherFields converte os campos enumeração para serem concatenados na grid\n * @param lookupDisplayField campo que sera alterado com os dados concatenados informado acima\n * @param params parâmetros para ser usado no lookup\n */\n searchRequest(event: any, endpoint: string, searchFields: Array<FormField>,\n concatFields: Array<FormField>, lookupDisplayField: string, concatOtherFields: Array<FormField> = [], params: any = []) {\n\n this.endpoint = endpoint;\n this.parameters = params;\n this.concatFields = concatFields;\n this.concatOtherFields = concatOtherFields;\n this.lookupDisplayField = lookupDisplayField;\n this.searchFields = searchFields;\n this.generateGridParameters(event.filterData);\n this.configHttpParamsPagination(event.rows.toString(), Math.floor(event.first / event.rows).toString());\n this.configHttpParamsOrderBy(event.multiSortMeta);\n return this.getDataLookup();\n }\n\n\n /**\n * GET\n * @param endpoint Busca e faz o tratamento dos dados do lookup.\n * @param httpParams HttpParams\n */\n private getDataLookup() {\n return this.getUrlDataLookup(this.endpoint, this.httpParams).pipe(\n map((payload: any) => {\n const { contents } = payload;\n\n if (this.concatFields && this.concatFields.length) {\n contents.map(value => {\n this.convertGridFieldValue(value);\n value[this.lookupDisplayField] = this.generateDisplayFieldValue({ ...value });\n });\n }\n\n return payload;\n }),\n );\n }\n\n\n /**\n * POST\n * @param endpoint Busca e faz o tratamento dos dados do lookup.\n * @param httpParams HttpParams\n */\n private postDataLookup(endpoint) {\n return this.postUrlDataLookup(endpoint, this.httpPostParams).pipe(\n map((payload: any) => {\n const { contents } = payload;\n\n if (this.concatFields && this.concatFields.length) {\n contents.map(value => {\n if (this.concatOtherFields) {\n this.convertGridFieldValue(value);\n }\n value[this.lookupDisplayField] = this.generateDisplayFieldValue({ ...value });\n });\n }\n\n return payload;\n }),\n );\n }\n\n /**\n * Converte o valor do campo para apresentação no lookup.\n *\n * @param content Valor do campo para conversão.\n * @param field FormField do campo.\n */\n private convertLookupFieldValue(content: any, field: FormField): any {\n if (content) {\n switch (field.type) {\n case FieldType.Date:\n content = moment(content).format('L');\n break;\n case FieldType.Enum:\n const enumValue = field.options.filter((enumeration: any) => enumeration.value === content)[0];\n content = enumValue ? enumValue.label : content;\n break;\n }\n }\n\n return content;\n }\n\n /**\n * Converte os dados para visualização na grid\n * @param content\n */\n private convertGridFieldValue(content: any): void {\n if (content) {\n this.concatOtherFields.forEach((field: FormField) => {\n switch (field.type) {\n case FieldType.Enum:\n const enumValue = field.options.filter((enumeration: any) => enumeration.value === content[field.name])[0];\n content[field.name] = enumValue ? enumValue.label : content[field.name];\n break;\n }\n });\n }\n }\n\n /**\n * Faz a concatenação de valores do registro para ser apresentado no lookup ao selecionar o dado.\n * @param contentValue Valor do registro.\n */\n private generateDisplayFieldValue(contentValue: any): string {\n let displayField = '';\n\n this.concatFields.forEach((field: FormField) => {\n const fieldValue = this.convertLookupFieldValue(contentValue[field.name], field);\n if (fieldValue) {\n if (displayField) {\n displayField += ` - ${fieldValue}`;\n } else {\n displayField = fieldValue;\n }\n }\n });\n return displayField;\n }\n\n /**\n * Gera os parametros de pesquisa via lookup\n * @param value\n */\n private generateLookupParameters(value?: string): void {\n let lookupParameters = '';\n this.searchLookupFields.forEach((lookupField: string) => {\n const searchField = this.searchFields.filter(field => lookupField === field.name)[0];\n if (lookupParameters) {\n lookupParameters += ` or ${this.getParameterByType(searchField.type, lookupField, value)}`;\n } else {\n lookupParameters = `${this.getParameterByType(searchField.type, lookupField, value)}`;\n }\n });\n\n this.parameters.forEach((parameter: EntityODataParameter) => {\n if (lookupParameters) {\n lookupParameters += ` and ${parameter.toString()}`;\n } else {\n lookupParameters = `${parameter.toString()}`;\n }\n });\n\n this.httpParams = new HttpParams().set('filter', lookupParameters);\n }\n\n /**\n * Gera os parametros de pesquisa via pesquisa na grid\n * @param filterData\n */\n private generateGridParameters(filterData: object): void {\n let gridParameters = '';\n Object.keys(filterData).forEach((attribute: string) => {\n if (filterData[attribute]) {\n const searchField = this.searchFields.filter(field => attribute === field.name)[0];\n if (gridParameters) {\n gridParameters += ` and ${this.getParameterByType(searchField.type, attribute, filterData[attribute])}`;\n } else {\n gridParameters += this.getParameterByType(searchField.type, attribute, filterData[attribute]);\n }\n }\n });\n\n this.parameters.forEach((parameter: EntityODataParameter) => {\n if (gridParameters) {\n gridParameters += ` and ${parameter.toString()}`;\n } else {\n gridParameters = `${parameter.toString()}`;\n }\n });\n\n this.httpParams = new HttpParams().set('filter', gridParameters);\n }\n\n /**\n * Gera a string de consulta CRUD de um campo.\n * @param type Tipo do campo.\n * @param attribute Nome do atribute da entidade\n * @param value Valor do campo\n */\n private getParameterByType(type: FieldType, attribute: string, value: any): string {\n switch (type) {\n case FieldType.Date:\n return `${attribute} eq '${moment(value).format('YYYY-MM-DD')}'`;\n case FieldType.Enum:\n return `${attribute} eq '${value}'`;\n case FieldType.Integer:\n return `${attribute} eq ${value}`;\n case FieldType.Autocomplete:\n return `${attribute} eq '${value.id}'`;\n default:\n return `containing(lower(${attribute}), lower('${value}'))`;\n }\n }\n\n /**\n *\n * @param size a quantidade de registros na página.\n * @param offset o número da página a ser recuperada, lembrando que a numeração de páginas começa em 0 (zero).\n */\n private configHttpParamsPagination(size: string, offset: string): void {\n this.httpParams = this.httpParams.set('size', size);\n this.httpParams = this.httpParams.set('offset', offset);\n }\n\n /**\n * Gera o orderby do HttpParams\n */\n private configHttpParamsOrderBy(multiSortMeta: { field: string; order: number }[]): void {\n if (multiSortMeta && multiSortMeta.length) {\n let orderBy = '';\n multiSortMeta.map(value => {\n if (orderBy) {\n orderBy += `,${value.field}+${value.order === 1 ? 'asc' : 'desc'}`;\n } else {\n orderBy += `${value.field}+${value.order === 1 ? 'asc' : 'desc'}`;\n }\n });\n\n this.httpParams = this.httpParams.set('orderby', orderBy);\n }\n }\n\n set httpParams(value: HttpParams) {\n this._httpParams = value;\n }\n\n get httpParams() {\n return this._httpParams;\n }\n\n private getUrlDataLookup(endpoint: string, httpParams: HttpParams): Observable<any> {\n if (httpParams) {\n return this.http.get(`${endpoint}`, { params: httpParams })\n .pipe(\n catchError((exception: any): any => {\n if (exception && exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed_search\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n } else {\n return this.http.get(`${endpoint}`)\n .pipe(\n catchError((exception: any): any => {\n if (exception && exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed_search\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n }\n\n private postUrlDataLookup(endpoint: string, httpParams: any): Observable<any> {\n if (httpParams) {\n return this.http.post(`${endpoint}`, { ...httpParams })\n .pipe(\n catchError((exception: any): any => {\n if (exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n } else {\n return this.http.post(`${endpoint}`, {})\n .pipe(\n catchError((exception: any): any => {\n if (exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClientService } from '../components/shared/http-client.service';\nimport { CoreFieldType } from '../core/enums/coreFieldType';\nimport { FieldType } from '@seniorsistemas/angular-components';\nimport * as _moment from 'moment';\nimport { map } from 'rxjs/operators';\nimport { ServiceType } from '../core/enums/serviceType';\n\n\nconst moment = _moment;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AutocompleteParametersService {\n\n constructor(private httpClienteService: HttpClientService) { }\n\n public getAutoComplete(entity: string, params: object, searchFields: any, codeIsString: boolean, service: ServiceType) {\n const getParams = this.generateGridParameters(params, searchFields, codeIsString);\n return this.httpClienteService.getAutoComplete(entity, getParams, service)\n .pipe(map((result) => result && result.contents));\n }\n\n public getAutoCompleteQuery(query: string, params: object) {\n return this.httpClienteService.query(query, params)\n .pipe(map((data) => data && data.result));\n }\n\n /**\n * Gera os parametros de pesquisa via pesquisa na grid\n * @param filterData\n */\n private generateGridParameters(filterData: object, searchFields: any, codeIsString: boolean): string {\n let gridParameters = \"\";\n Object.keys(filterData).forEach((attribute: string) => {\n const filterSearchField = searchFields && searchFields.filter(field => attribute === field.name)[0];\n let filterQueryString = null;\n let operatorsQuery = \"\";\n let searchField: any = filterSearchField && filterSearchField.type;\n if (!filterSearchField && attribute != CoreFieldType.searchValue) searchField = FieldType.String;\n if (!filterSearchField && attribute === CoreFieldType.searchValue) searchField = CoreFieldType.searchValue;\n if (gridParameters) operatorsQuery = \" and \";\n filterQueryString = this.getParameterByType(searchField, attribute, filterData[attribute], codeIsString);\n if (filterQueryString) gridParameters += ` ${operatorsQuery} ${filterQueryString}`;\n });\n return gridParameters;\n }\n\n /**\n * Gera a string de consulta CRUD de um campo.\n * @param type Tipo do campo.\n * @param attribute Nome do atribute da entidade\n * @param value Valor do campo\n */\n private getParameterByType(type: any, attribute: string, value: any, codeIsString: boolean): string {\n if (!value && type != CoreFieldType.searchValue) return `${attribute} is null`;\n if (value && value === 'not null' && type != CoreFieldType.searchValue) return `${attribute} is not null`;\n switch (type) {\n case FieldType.Date:\n return `${attribute} eq '${moment(value).format('YYYY-MM-DD')}'`;\n case FieldType.Enum:\n return `${attribute} eq '${value}'`;\n case FieldType.Integer:\n return `${attribute} eq ${value}`;\n case FieldType.Autocomplete:\n return `${attribute} eq '${value.id}'`;\n case CoreFieldType.searchValue:\n return `${this.getParameterBySearchType(value, codeIsString)}`;\n default:\n return this.getSearchFilterString(attribute, value);\n }\n }\n\n /**\n * Retorna o filtro formatador para ser chamdo no endpoint\n * @param valueFilterSearch valor pra adicionar no filtro\n */\n private getParameterBySearchType(valueFilterSearch: any, codeIsString: boolean): string {\n let searchFilter = \"\";\n if (valueFilterSearch) {\n for (const [key, value] of Object.entries(valueFilterSearch)) {\n if (key === \"code\" && Number(value)) {\n const hasQuote = codeIsString ? \"'\" : \"\";\n if (searchFilter)\n searchFilter += ` or ${key} eq ${hasQuote}${value}${hasQuote}`;\n else\n searchFilter += `${key} eq ${hasQuote}${value}${hasQuote}`;\n } else if (key != \"code\") {\n if (searchFilter)\n searchFilter += ` or ${this.getSearchFilterString(key, value)}`;\n else\n searchFilter += this.getSearchFilterString(key, value);\n }\n }\n searchFilter = searchFilter ? `(${searchFilter})` : '';\n }\n return searchFilter;\n }\n\n /**\n * Formata o filtro quando for \"Ou\"\n * @param attribute\n * @param value\n */\n private getSearchFilterString(attribute: string, value: any): string { return `containing(lower(${attribute}), lower('${value}'))`; }\n\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { Report, ReportIn, ReportOut, GetParametersOut } from \"../core/interfaces\";\n\nconst ENDPOINTS = {\n reportParameters: \"platform/report/queries/getParameters\",\n reportUri: \"platform/report/queries/getReportUri\",\n reportStatus: \"platform/report/queries/getReportStatus\",\n reportsByName: \"platform/report/queries/findReportsByName\",\n reportsRunning: \"platform/report/queries/getRunningReports\",\n reportsGenerate: \"platform/report/actions/generateReport\"\n};\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class ReportService {\n constructor(private http: HttpClient) {}\n\n /**\n * Procura por relatórios que contenham no seu nome a string conforme parâmetro `name`\n * @param name Nome ou parte do nome do relatório\n */\n public findReportsByName(\n name: string,\n ): Observable<Report[]> {\n return this.http\n .post(`${ENDPOINTS.reportsByName}`, {\n name: name\n })\n .pipe(\n map((payload: any) => {\n const result = payload.reports ? payload.reports : [];\n return result as Report[];\n })\n );\n }\n\n /**\n * Procura por relatórios que contenham o nome exato conforme parâmetro `name`.\n * No momento a plataforma não disponibilza uma query exata para isso.\n * Portanto este método procura pelo nome informado dentro do resultado da query `findReportsByName`\n * @param name Nome exato do relatório\n */\n public findReportByName(\n name: string,\n ): Observable<Report> {\n name = name || \"\";\n return this.findReportsByName(name).pipe(\n map((payload: any) => {\n const filtered =\n payload && payload.filter((report: any) => report.name && report.name === name);\n return filtered && filtered.length == 1 ? (filtered[0] as Report) : null;\n })\n );\n }\n\n /**\n * Retorna a lista de parâmetros de entrada do relatório\n * @param reportId Id do relatório\n * @param reportFileId Identificador de um arquivo de relatório (opcional)\n */\n public getParameters(reportId: string, reportFileId?: any): Observable<GetParametersOut> {\n return this.http\n .post(`${ENDPOINTS.reportParameters}`, { id: reportId, reportFileId: reportFileId })\n .pipe(\n map((payload: any) => {\n return payload ? (payload as GetParametersOut) : null;\n })\n );\n }\n\n /**\n * Retorna a URL para visualização do relatório gerado\n * @param reportTicket Ticket do relatório gerado\n */\n public getReportUri(reportTicket: string): Observable<string> {\n return this.http.post(`${ENDPOINTS.reportUri}`, { reportTicket: reportTicket }).pipe(\n map((payload: any) => {\n return payload && payload.reportUri;\n })\n );\n }\n\n /**\n * Retorna o status do relatório\n * @param reportTicket Ticket do relatório gerado\n */\n public getReportStatus(reportTicket: string): Observable<string> {\n return this.http.post(`${ENDPOINTS.reportStatus}`, { reportTicket: reportTicket }).pipe(\n map((payload: any) => {\n return payload && payload.reportStatus;\n })\n );\n }\n\n /**\n * Gera o relatório\n * @param reportIn Dados do relatório a ser gerado\n */\n public generateReport(reportIn: ReportIn): Observable<ReportOut> {\n return this.http.post(`${ENDPOINTS.reportsGenerate}`, reportIn).pipe(\n map((payload: any) => {\n return payload ? (payload as ReportOut) : null;\n })\n );\n }\n\n /**\n * Retorna uma lista com os relatórios sendo executados ou já finalizados\n * @param page página inicial\n * @param size tamanho da página\n */\n public getRunningReports(page: number, size: number): Observable<any> {\n return this.http.post(`${ENDPOINTS.reportsRunning}`, {\n offset: page,\n limit: size,\n orderByDesc: true,\n filterCancelled: true\n });\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { BehaviorSubject, Subject, Observable } from \"rxjs\";\n\n@Injectable()\nexport class WorkflowDataService {\n private useWorkflowValueChange: Subject<boolean> = new Subject<boolean>();\n private _draftJSON: BehaviorSubject<string> = new BehaviorSubject<string>(null);\n\n constructor() {\n }\n\n public setUseWorkflow(useWorkflow: boolean): void {\n this.useWorkflowValueChange.next(useWorkflow);\n }\n\n public getUseWorkflow() {\n return this.useWorkflowValueChange.asObservable();\n }\n\n public setDraftJSON(draftJSON: string) {\n this._draftJSON.next(draftJSON);\n }\n\n public getDraftJSON(): Observable<string> {\n return this._draftJSON.asObservable();\n }\n}\n","import { Injectable } from \"@angular/core\";\n\nexport interface Divergence {\n oldValue: any;\n newValue: any;\n}\n\nexport interface DivergenceArray extends Divergence {\n key: string;\n}\n\n@Injectable()\nexport class FormComparatorService {\n private _oldFormData: object;\n private _newFormData: object;\n private _divergentFormData: { divergentKey?: Divergence };\n\n constructor() {\n this.resetDivergentFormData();\n }\n\n public resetDivergentFormData() {\n this._divergentFormData = {};\n }\n\n /**\n * checkFormDisagreements\n *\n * @description\n * Checa se existem divergẽncias entre os objetos armazenados nas\n * propriedades *oldFormData* e *newFormData*.\n *\n * `Se forem idênticos:`\n * levanta uma exceção.\n *\n * `Se houverem divergências:`\n * as armazena na propriedade divergentFormData.\n */\n public checkFormDisagreements(ignoreId: boolean = false): void {\n this.resetDivergentFormData();\n this._sanitizeEmptyStrings();\n if (ignoreId) this._removeIdsFromFormDatas();\n\n if (this._oldFormData === this._newFormData) {\n this._throwIdenticalMessage();\n } else {\n Object.keys(this._oldFormData).forEach((key) => {\n if (this._oldFormData[key] !== this._newFormData[key]) {\n this._divergentFormData[key] = this._createDivergencePair(key);\n }\n });\n\n Object.keys(this._newFormData).forEach((key) => {\n if (this._newFormData[key] !== this._oldFormData[key]) {\n this._divergentFormData[key] = this._createDivergencePair(key);\n }\n });\n\n if (this._isDivergentFormDataEmpty) this._throwIdenticalMessage();\n }\n }\n\n private _removeIdsFromFormDatas() {\n [this._oldFormData, this._newFormData].forEach((formData) => {\n delete formData[\"id\"];\n });\n }\n\n private _sanitizeEmptyStrings(): void {\n [this._oldFormData, this._newFormData].forEach((formData) => {\n Object.keys(formData).map((key) => {\n if (formData[key] === \"\") formData[key] = null;\n });\n });\n }\n\n private _createDivergencePair(key: string): Divergence {\n const divergence: Divergence = { oldValue: null, newValue: null };\n\n divergence.oldValue = this._oldFormData[key];\n divergence.newValue = this._newFormData[key];\n\n return divergence;\n }\n\n private _throwIdenticalMessage() {\n throw new Error(\"The objects oldFormData and newFormData are identical\");\n }\n\n public set oldFormData(v: object) {\n this._oldFormData = v;\n }\n\n public get oldFormData(): object {\n return this._oldFormData;\n }\n\n public set newFormData(v: object) {\n this._newFormData = v;\n }\n\n public get newFormData(): object {\n return this._newFormData;\n }\n\n public get divergentFormArray(): Array<DivergenceArray> {\n const divergentFormArray: Array<DivergenceArray> = [];\n\n Object.entries(this._divergentFormData).map(([key, divergence]) => {\n const object = { key: null, oldValue: null, newValue: null };\n\n object.key = key;\n object.oldValue = divergence.oldValue;\n object.newValue = divergence.newValue;\n\n divergentFormArray.push(object);\n });\n\n return divergentFormArray;\n }\n\n public get _isDivergentFormDataEmpty(): boolean {\n return Object.entries(this._divergentFormData).length === 0;\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { CompanyIndicationsService } from \"./company-indications.service\";\nimport { IntegrationService } from \"./integration.service\";\nimport { LookupParametersService } from \"./lookup-parameters.service\";\nimport { AutocompleteParametersService } from \"./autocomplete-parameters.service\";\nimport { ReportService } from \"./report.service\";\nimport { WorkflowDataService } from './workflow-data.service';\nimport { FormComparatorService } from \"./form-comparator.service\";\n\nexport { WorkflowDataService } from './workflow-data.service';\n\n@NgModule({\n imports: [CommonModule],\n providers: [\n CompanyIndicationsService,\n IntegrationService,\n LookupParametersService,\n AutocompleteParametersService,\n ReportService,\n WorkflowDataService,\n FormComparatorService\n ]\n})\nexport class ServicesModule {}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { service, user } from '@seniorsistemas/senior-platform-data';\nimport { from, Observable } from 'rxjs';\nimport { flatMap, map } from 'rxjs/operators';\n\n@Injectable()\nexport class PermissionService {\n private actionUrl = `platform/authorization/queries/checkAccess`;\n private resourceAddress = `res://senior.com.br/hcm/payroll/`;\n private defaultActions = ['Visualizar', 'Incluir', 'Editar', 'Excluir'];\n private _resources: string[] = [];\n private _attributes: { name: string; value: string }[] = [];\n private observable: Observable<any>;\n private permissions: any;\n private httpOptions;\n private restUrl;\n\n constructor(private http: HttpClient) {\n user.getAuthHeader().then(token => {\n this.httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n Authorization: token,\n }),\n };\n });\n\n service.getRestUrl().then(restUrl => (this.restUrl = restUrl));\n }\n\n protected get(resource: string = ''): Observable<any> {\n if (this.permissions) {\n this.observable = Observable.of(this.permissions);\n } else if (!this.observable) {\n this.observable = this.getPermissions().pipe(map((permissions: any) => (this.permissions = permissions)));\n }\n\n return this.observable.pipe(map((permissions: any) => (resource ? permissions[resource] : permissions)));\n }\n\n protected getAbac(resource: string, attributes: { name: string; value: string }[]): Observable<any> {\n this.attributes = attributes;\n\n return this.getAbacPermission(resource);\n }\n\n private getAbacPermission(resource: string): Observable<any> {\n return this.http.post(\n this.actionUrl,\n {\n includeFilters: false,\n permissions: [\n {\n resource: `${this.resourceAddress}${resource}`,\n action: 'Visualizar',\n attributes: this._attributes.map((res: { name: string; value: string }) => ({\n attribute: res.name,\n value: res.value,\n })),\n }\n ]\n },\n this.httpOptions\n );\n }\n\n private getPermissions() {\n const permissions = [];\n this._resources.forEach((resource: string) =>\n this.defaultActions.forEach((action: string) =>\n permissions.push({ action, resource: `${this.resourceAddress}${resource}` })\n )\n );\n return this.http\n .post(this.actionUrl, {\n includeFilters: false,\n permissions: [\n ...permissions\n ]\n },\n this.httpOptions\n )\n .pipe(\n map((res: any) => {\n const permissoes = res.permissions;\n const values = {};\n\n permissoes.forEach((perm: any) => {\n const name = perm.resource.replace(this.resourceAddress, '');\n values[name] = values[name] || {};\n values[name][perm.action.toLowerCase()] = perm.authorized;\n });\n\n return values;\n })\n );\n }\n\n private set attributes(value: { name: string; value: string }[]) {\n this._attributes = value;\n }\n\n protected setResources(values: string[]) {\n this._resources = values;\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { MessageService } from 'primeng/api';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { ToastService } from './toast.service';\n\n@Component({\n selector: 'c-toast',\n template: `\n <p-toast [ngClass]=\"breakLine ? 'ui-toast-break-line' : ''\" [key]=\"key\"></p-toast>\n `,\n})\nexport class ToastComponent implements OnInit, OnDestroy {\n // Chave para garantir que as mensagens adicionadas por esse serviço\n // sejam exibidas apenas nesse componente.\n public key = 'TOAST';\n public breakLine: boolean = false;\n private ngUnsubscribe = new Subject();\n\n constructor(private toastService: ToastService, private messageService: MessageService, private translateService: TranslateService) {}\n\n ngOnInit() {\n this.toastService\n .loadErrorMessages()\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(payload => {\n this.createErrorMessage(payload && payload.message);\n this.breakLine = payload && payload.breakLine;\n });\n\n this.toastService\n .loadSuccessMessages()\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(payload => {\n this.createSuccessMessage(payload && payload.message);\n this.breakLine = payload && payload.breakLine;\n });\n\n this.toastService\n .loadWarningMessages()\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(payload => {\n this.createWarningMessage(payload && payload.message);\n this.breakLine = payload && payload.breakLine;\n });\n }\n\n ngOnDestroy() {\n this.ngUnsubscribe.next(true);\n this.ngUnsubscribe.complete();\n }\n\n createErrorMessage(message: string, summary?: string) {\n this.messageService.clear();\n this.messageService.add({\n severity: 'error',\n summary: summary || this.translateService.instant('hcm.payroll.error'),\n detail: message,\n sticky: true,\n key: this.key,\n });\n }\n\n createSuccessMessage(message: string, summary?: string) {\n this.messageService.add({\n severity: 'success',\n summary: summary || this.translateService.instant('hcm.payroll.success'),\n detail: message,\n key: this.key,\n });\n }\n\n createWarningMessage(message: string, summary?: string) {\n this.messageService.add({\n severity: 'warn',\n summary: summary || this.translateService.instant('hcm.payroll.warn'),\n detail: message,\n sticky: true,\n key: this.key,\n });\n }\n\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MessageService } from 'primeng/api';\nimport { ToastModule as ToastModulePrimeng } from 'primeng/toast';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { ToastComponent } from './toast.component';\nimport { ToastService } from './toast.service';\n\n@NgModule({\n imports: [CommonModule, SharedModule, ToastModulePrimeng],\n declarations: [ToastComponent],\n providers: [ToastService, MessageService],\n exports: [ToastComponent],\n})\nexport class ToastModule {}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class DataListService {\n constructor(private http: HttpClient) {}\n\n getList(endpoint: string, httpParams: HttpParams): Observable<any> {\n return this.http.get(`${endpoint}`, { params: httpParams });\n }\n}\n","import { HttpParams } from '@angular/common/http';\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { SplitButton } from 'primeng/splitbutton';\nimport { Table } from 'primeng/table';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { EntityODataParameter } from '../../core/entities';\nimport { DirectionEnumeration } from '../../core/enums';\nimport { DataListService } from './data-list.service';\nimport { EntityODataResponse } from './entity-odata-response';\n\n@Component({\n selector: 'c-data-list',\n templateUrl: './data-list.component.html',\n styleUrls: ['./data-list.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DataListComponent implements OnInit, OnDestroy {\n @ViewChild('dataListTable', { static: false })\n dataListTable: Table;\n\n @Input()\n id: string;\n @Input()\n dataKey: string;\n @Input()\n rows = 10;\n @Input()\n emptyMessage: string;\n @Input()\n columns: any[];\n @Input()\n paginator = true;\n @Input()\n first = 0;\n @Input()\n alwaysShowPaginator = true;\n @Input()\n actions?: Function;\n @Input()\n actionLabel: string;\n @Input()\n selectionMode: string;\n @Input()\n lazy: boolean;\n @Input()\n isMultipleSelection: boolean;\n @Input()\n isSortable: boolean;\n @Input()\n showHeaderCheckBox: boolean;\n @Input()\n sortMode = 'multiple';\n @Input()\n endpoint: string;\n @Input()\n displayFields: string[];\n @Input()\n orderBy: { field: string; direction: DirectionEnumeration }[];\n @Input()\n singularMessageRecords: string;\n @Input()\n pluralMessageRecords: string;\n @Input()\n initParameters: EntityODataParameter[];\n\n @Output()\n lazyLoad: EventEmitter<any> = new EventEmitter();\n @Output()\n loadingChange: EventEmitter<any> = new EventEmitter();\n @Output()\n totalRecordsChange: EventEmitter<any> = new EventEmitter();\n @Output()\n listDataChange: EventEmitter<any> = new EventEmitter();\n @Output()\n selectedDataChange: EventEmitter<any> = new EventEmitter();\n @Output()\n headerCheckboxToggle: EventEmitter<any> = new EventEmitter();\n\n private _httpParams: HttpParams = new HttpParams();\n private _loading: boolean;\n private _totalRecords: number;\n private _listData: any[];\n private _selectedData: any[];\n private ngUnsubscribe = new Subject();\n\n constructor(private dataListService: DataListService) {}\n\n ngOnInit() {\n if (!this.lazy) {\n this.getlistData();\n }\n }\n\n ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n getActions(data: any, index: number) {\n return this.actions(data, index);\n }\n\n handleClickActions(button: SplitButton) {\n const toClick = button.containerViewChild.nativeElement.getElementsByClassName('ui-splitbutton-menubutton')[0] as HTMLElement;\n toClick.click();\n }\n\n pagination(event) {\n if (!this.lazy) {\n this.getlistData(event.rows, Math.floor(event.first / event.rows));\n }\n }\n\n onLazyLoad(event) {\n this.loading = true;\n\n if (event.multiSortMeta && event.multiSortMeta.length) {\n this.orderBy = <{ field: string; direction: DirectionEnumeration }[]>[];\n event.multiSortMeta.map(value => {\n this.orderBy.push({ field: value.field, direction: value.order === 1 ? DirectionEnumeration.ASC : DirectionEnumeration.DESC });\n });\n }\n\n this.getlistData(event.rows, Math.floor(event.first / event.rows));\n }\n\n onFilter() {\n if (this.lazy) {\n this.loading = true;\n }\n\n this.getlistData();\n }\n\n get recordsMessage() {\n return `${this.totalRecords || 0} ${this.totalRecords === 1 ? this.singularMessageRecords : this.pluralMessageRecords}`;\n }\n\n getlistData(size = this.rows, offset = this.first): void {\n if (this.endpoint) {\n this.configParameters(this.initParameters);\n this.configHttpParamsDisplayFields();\n this.configHttpParamsPagination(size.toString(), offset.toString());\n this.configHttpParamsOrderBy();\n this.dataListService\n .getList(this.endpoint, this.httpParams)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((data: EntityODataResponse) => {\n this.listData = data.contents;\n this.totalRecords = data.totalElements;\n if (this.lazy) {\n this.lazyLoad.emit(this.listData);\n }\n });\n } else {\n if (this.lazy) {\n this.lazyLoad.emit(this.listData);\n }\n }\n }\n\n /**\n *\n * @param size a quantidade de registros na página.\n * @param offset o número da página a ser recuperada, lembrando que a numeração de páginas começa em 0 (zero).\n */\n configHttpParamsPagination(size: string, offset: string): void {\n this.httpParams = this.httpParams.set('size', size);\n this.httpParams = this.httpParams.set('offset', offset);\n }\n\n /**\n * Gera o orderby do HttpParams\n */\n configHttpParamsOrderBy(): void {\n if (this.orderBy && this.orderBy.length) {\n let orderBy = '';\n this.orderBy.map(value => {\n if (orderBy) {\n orderBy += `,${value.field}+${value.direction}`;\n } else {\n orderBy += `${value.field}+${value.direction}`;\n }\n });\n\n this.httpParams = this.httpParams.set('orderby', orderBy);\n }\n }\n\n /**\n * Gera HttpParams dos campos a serem retornados na requisição.\n */\n configHttpParamsDisplayFields(): void {\n if (this.displayFields && this.displayFields.length) {\n this.httpParams = this.httpParams.set('displayfields', this.displayFields.toString());\n }\n }\n\n onHeaderCheckboxToggle(event) {\n this.headerCheckboxToggle.emit(event);\n }\n\n getFieldValue(rowData, col) {\n if (col['field'] && col['field'].includes('.')) {\n const objectPath = col['field'].split('.');\n objectPath.map(value => (rowData = rowData && rowData[value]));\n return rowData;\n }\n return rowData[col['field']];\n }\n\n private configParameters(entityODataParameters: EntityODataParameter[]) {\n let parameters = '';\n if (entityODataParameters) {\n entityODataParameters.forEach((parameter: EntityODataParameter) => {\n if (parameters) {\n parameters += ` and ${parameter.toString()}`;\n } else {\n parameters = `${parameter.toString()}`;\n }\n });\n\n this.httpParams = new HttpParams().set('filter', parameters);\n }\n }\n\n @Input()\n set parameters(entityODataParameters: EntityODataParameter[]) {\n this.configParameters(entityODataParameters);\n if (entityODataParameters) {\n if (this.dataListTable) {\n this.dataListTable.first = 0;\n }\n this.onFilter();\n }\n }\n\n set httpParams(value: HttpParams) {\n this._httpParams = value;\n }\n\n get httpParams() {\n return this._httpParams;\n }\n\n set loading(value: boolean) {\n this._loading = value;\n this.loadingChange.emit(this._loading);\n }\n\n @Input()\n get loading() {\n return this._loading;\n }\n\n set listData(value: any[]) {\n this._listData = value;\n this.listDataChange.emit(this._listData);\n }\n\n @Input()\n get listData() {\n return this._listData;\n }\n\n set selectedData(value: any[]) {\n this._selectedData = value;\n this.selectedDataChange.emit(this._selectedData);\n }\n\n @Input()\n get selectedData() {\n return this._selectedData;\n }\n\n set totalRecords(value: number) {\n this._totalRecords = value;\n this.totalRecordsChange.emit(this.totalRecords);\n }\n\n @Input()\n get totalRecords(): number {\n return this._totalRecords;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ButtonModule, LoadingStateModule } from '@seniorsistemas/angular-components';\nimport { SplitButtonModule } from 'primeng/splitbutton';\nimport { TableModule } from 'primeng/table';\nimport { TooltipModule } from 'primeng/tooltip';\n\nimport { DataListComponent } from './data-list.component';\nimport { DataListService } from './data-list.service';\n\n@NgModule({\n imports: [\n CommonModule,\n // Angular Components\n ButtonModule,\n LoadingStateModule,\n // Primeng\n TableModule,\n TooltipModule,\n ],\n declarations: [DataListComponent],\n exports: [DataListComponent],\n providers: [DataListService],\n})\nexport class DataListModule {}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { MessageService } from \"primeng/api\";\nimport { Observable, throwError } from \"rxjs\";\nimport { catchError } from \"rxjs/operators\";\n\n@Injectable()\nexport class LookupService {\n constructor(private http: HttpClient, private messageService: MessageService, private translateService: TranslateService) {}\n\n getDataLookup(endpoint: string, httpParams: HttpParams): Observable<any> {\n if (httpParams) {\n return this.http.get(`${endpoint}`, { params: httpParams })\n .pipe(\n catchError((exception: any): any => {\n if (exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n } else {\n return this.http.get(`${endpoint}`)\n .pipe(\n catchError((exception: any): any => {\n if (exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n }\n}\n","import { HttpParams } from '@angular/common/http';\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { FieldType, FormField } from '@seniorsistemas/angular-components';\nimport * as moment_ from 'moment';\nimport { Subject } from 'rxjs';\nimport { map, takeUntil } from 'rxjs/operators';\n\nimport { EntityODataParameter } from '../../core/entities';\nimport { LookupService } from './lookup.service';\n\nconst moment = moment_;\n\n@Component({\n selector: 'c-lookup',\n templateUrl: './lookup.component.html',\n})\nexport class LookupComponent implements OnInit, OnDestroy {\n @Input()\n id: string;\n @Input()\n dataKey: string;\n @Input()\n concatFields: FormField[];\n @Input()\n searchTitle: string;\n @Input()\n formGroup: FormGroup;\n @Input()\n controlName: string;\n @Input()\n multiple: boolean;\n @Input()\n endpoint: string;\n @Input()\n lookupDisplayField: string;\n @Input()\n searchTotalRecordsLabel = 'hcm.payroll.lookup_search_total_records_label';\n @Input()\n filterLabel = 'hcm.payroll.lookup_generic_filter_label';\n @Input()\n clearLabel = 'hcm.payroll.lookup_generic_clean_filter_label';\n @Input()\n cancelLabel = 'hcm.payroll.lookup_generic_btn_cancel_label';\n @Input()\n selectLabel = 'hcm.payroll.lookup_btn_select_label';\n @Input()\n lookupEmptyMessage = 'hcm.payroll.lookup_auto_complete_empty_message';\n @Input()\n searchTotalRecords: number;\n @Input()\n lookupSuggestions: any[] = [];\n @Input()\n searchGridFields: FormField[] = [];\n @Input()\n searchLookupFields: string[] = [];\n @Input()\n searchGridData: FormField[] = [];\n @Input()\n searchFields: any[] = [];\n @Input()\n parameters: EntityODataParameter[] = [];\n @Output()\n onSelect: EventEmitter<any> = new EventEmitter();\n @Output()\n onClear: EventEmitter<any> = new EventEmitter();\n @Output()\n modelChange: EventEmitter<any> = new EventEmitter();\n private _httpParams: HttpParams = new HttpParams();\n private _model: any;\n private ngUnsubscribe = new Subject();\n\n constructor(private lookupService: LookupService) {}\n\n ngOnInit() {}\n\n ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n lookupRequest(event) {\n this.generateLookupParameters(event);\n this.configHttpParamsPagination('10', '0');\n this.getDataLookup(this.endpoint, this.httpParams)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(data => (this.lookupSuggestions = data && [...data.contents]));\n }\n\n searchRequest(event: any) {\n this.generateGridParameters(event.filterData);\n this.configHttpParamsPagination(event.rows.toString(), Math.floor(event.first / event.rows).toString());\n this.configHttpParamsOrderBy(event.multiSortMeta);\n this.getDataLookup(this.endpoint, this.httpParams)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(data => (this.searchGridData = data && [...data.contents]));\n }\n\n /**\n *\n * @param endpoint Busca e faz o tratamento dos dados do lookup.\n * @param httpParams HttpParams\n */\n private getDataLookup(endpoint: string, httpParams: HttpParams) {\n return this.lookupService.getDataLookup(this.endpoint, this.httpParams).pipe(\n map((payload: any) => {\n const { totalElements, contents } = payload;\n this.searchTotalRecords = totalElements;\n\n if (this.concatFields && this.concatFields.length) {\n contents.map(value => {\n this.convertGridFieldValue(value);\n value[this.lookupDisplayField] = this.generateDisplayFieldValue({ ...value });\n });\n }\n\n return payload;\n })\n );\n }\n\n /**\n * Converte o valor do campo para apresentação no lookup.\n *\n * @param content Valor do campo para conversão.\n * @param field FormField do campo.\n */\n private convertLookupFieldValue(content: any, field: FormField): any {\n if (content) {\n switch (field.type) {\n case FieldType.Date:\n content = moment(content).format('L');\n break;\n case FieldType.Enum:\n const enumValue = field.options.filter((enumeration: any) => enumeration.value === content)[0];\n content = enumValue ? enumValue.label : content;\n break;\n }\n }\n\n return content;\n }\n\n /**\n * Converte os dados para visualização na grid\n * @param content\n */\n private convertGridFieldValue(content: any): void {\n if (content) {\n this.searchGridFields.forEach((field: FormField) => {\n switch (field.type) {\n case FieldType.Enum:\n const enumValue = field.options.filter((enumeration: any) => enumeration.value === content[field.name])[0];\n content[field.name] = enumValue ? enumValue.label : content[field.name];\n break;\n }\n });\n }\n }\n\n /**\n * Faz a concatenação de valores do registro para ser apresentado no lookup ao selecionar o dado.\n * @param contentValue Valor do registro.\n */\n private generateDisplayFieldValue(contentValue: any): string {\n let displayField = '';\n\n this.concatFields.forEach((field: FormField) => {\n const fieldValue = this.convertLookupFieldValue(contentValue[field.name], field);\n if (fieldValue) {\n if (displayField) {\n displayField += ` - ${fieldValue}`;\n } else {\n displayField = fieldValue;\n }\n }\n });\n return displayField;\n }\n\n /**\n * Gera os parametros de pesquisa via lookup\n * @param value\n */\n private generateLookupParameters(value?: string): void {\n let lookupParameters = '';\n this.searchLookupFields.forEach((lookupField: string) => {\n const searchField = this.searchFields.filter(field => lookupField === field.name)[0];\n if (lookupParameters) {\n lookupParameters += ` or ${this.getParameterByType(searchField.type, lookupField, value)}`;\n } else {\n lookupParameters = `${this.getParameterByType(searchField.type, lookupField, value)}`;\n }\n });\n\n this.parameters.forEach((parameter: EntityODataParameter) => {\n if (lookupParameters) {\n lookupParameters += ` and ${parameter.toString()}`;\n } else {\n lookupParameters = `${parameter.toString()}`;\n }\n });\n\n this.httpParams = new HttpParams().set('filter', lookupParameters);\n }\n\n /**\n * Gera os parametros de pesquisa via pesquisa na grid\n * @param filterData\n */\n private generateGridParameters(filterData: object): void {\n let gridParameters = '';\n Object.keys(filterData).forEach((attribute: string) => {\n if (filterData[attribute]) {\n const searchField = this.searchFields.filter(field => attribute === field.name)[0];\n if (gridParameters) {\n gridParameters += ` and ${this.getParameterByType(searchField.type, attribute, filterData[attribute])}`;\n } else {\n gridParameters += this.getParameterByType(searchField.type, attribute, filterData[attribute]);\n }\n }\n });\n\n this.parameters.forEach((parameter: EntityODataParameter) => {\n if (gridParameters) {\n gridParameters += ` and ${parameter.toString()}`;\n } else {\n gridParameters = `${parameter.toString()}`;\n }\n });\n\n this.httpParams = new HttpParams().set('filter', gridParameters);\n }\n\n /**\n * Gera a string de consulta CRUD de um campo.\n * @param type Tipo do campo.\n * @param attribute Nome do atribute da entidade\n * @param value Valor do campo\n */\n private getParameterByType(type: FieldType, attribute: string, value: any): string {\n switch (type) {\n case FieldType.Date:\n return `${attribute} eq '${moment(value).format('YYYY-MM-DD')}'`;\n case FieldType.Enum:\n return `${attribute} eq '${value}'`;\n case FieldType.Integer:\n return `${attribute} eq ${value}`;\n case FieldType.Autocomplete:\n return `${attribute} eq ${value.id}`;\n default:\n return `containing(lower(${attribute}), lower('${value}'))`;\n }\n }\n\n /**\n *\n * @param size a quantidade de registros na página.\n * @param offset o número da página a ser recuperada, lembrando que a numeração de páginas começa em 0 (zero).\n */\n private configHttpParamsPagination(size: string, offset: string): void {\n this.httpParams = this.httpParams.set('size', size);\n this.httpParams = this.httpParams.set('offset', offset);\n }\n\n /**\n * Gera o orderby do HttpParams\n */\n private configHttpParamsOrderBy(multiSortMeta: { field: string; order: number }[]): void {\n if (multiSortMeta && multiSortMeta.length) {\n let orderBy = '';\n multiSortMeta.map(value => {\n if (orderBy) {\n orderBy += `,${value.field}+${value.order === 1 ? 'asc' : 'desc'}`;\n } else {\n orderBy += `${value.field}+${value.order === 1 ? 'asc' : 'desc'}`;\n }\n });\n\n this.httpParams = this.httpParams.set('orderby', orderBy);\n }\n }\n\n set httpParams(value: HttpParams) {\n this._httpParams = value;\n }\n\n get httpParams() {\n return this._httpParams;\n }\n\n set model(value: any) {\n this._model = value;\n this.modelChange.emit(value);\n }\n\n @Input()\n get model() {\n return this._model;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { DynamicFormModule } from '@seniorsistemas/angular-components';\n\nimport { LookupComponent } from './lookup.component';\nimport { LookupService } from './lookup.service';\n\n@NgModule({\n imports: [CommonModule, FormsModule, DynamicFormModule, ReactiveFormsModule, TranslateModule],\n declarations: [LookupComponent],\n exports: [LookupComponent],\n providers: [LookupService],\n})\nexport class LookupModule {}\n","import { Injectable } from '@angular/core';\nimport { HttpClientService } from '../shared/http-client.service';\nimport { CoreFieldType } from '../../core/enums/coreFieldType';\nimport { FieldType } from '@seniorsistemas/angular-components';\nimport * as _moment from 'moment';\nimport { map } from 'rxjs/operators';\nimport { ServiceType } from '../../core/enums/serviceType';\n\n\nconst moment = _moment;\n\n@Injectable()\nexport class AutocompleteService {\n\n constructor(private httpClienteService: HttpClientService) { }\n\n public getAutoComplete(entity: string, params: object, searchFields: any, codeIsString: boolean, service: ServiceType) {\n const getParams = this.generateGridParameters(params, searchFields, codeIsString);\n return this.httpClienteService.getAutoComplete(entity, getParams, service)\n .pipe(map((result) => result && result.contents));\n }\n\n public getAutoCompleteQuery(query: string, params: object) {\n return this.httpClienteService.query(query, params)\n .pipe(map((data) => data && data.result));\n }\n\n /**\n * Gera os parametros de pesquisa via pesquisa na grid\n * @param filterData\n */\n private generateGridParameters(filterData: object, searchFields: any, codeIsString: boolean): string {\n let gridParameters = \"\";\n Object.keys(filterData).forEach((attribute: string) => {\n const filterSearchField = searchFields && searchFields.filter(field => attribute === field.name)[0];\n let filterQueryString = null;\n let operatorsQuery = \"\";\n let searchField: any = filterSearchField && filterSearchField.type;\n if (!filterSearchField && attribute != CoreFieldType.searchValue) searchField = FieldType.String;\n if (!filterSearchField && attribute === CoreFieldType.searchValue) searchField = CoreFieldType.searchValue;\n if (gridParameters) operatorsQuery = \" and \";\n filterQueryString = this.getParameterByType(searchField, attribute, filterData[attribute], codeIsString);\n if (filterQueryString) gridParameters += ` ${operatorsQuery} ${filterQueryString}`;\n });\n return gridParameters;\n }\n\n /**\n * Gera a string de consulta CRUD de um campo.\n * @param type Tipo do campo.\n * @param attribute Nome do atribute da entidade\n * @param value Valor do campo\n */\n private getParameterByType(type: any, attribute: string, value: any, codeIsString: boolean): string {\n if (!value && type != CoreFieldType.searchValue) return `${attribute} is null`;\n if (value && value === 'not null' && type != CoreFieldType.searchValue) return `${attribute} is not null`;\n switch (type) {\n case FieldType.Date:\n return `${attribute} eq '${moment(value).format('YYYY-MM-DD')}'`;\n case FieldType.Enum:\n return `${attribute} eq '${value}'`;\n case FieldType.Integer:\n return `${attribute} eq ${value}`;\n case FieldType.Autocomplete:\n return `${attribute} eq '${value.id}'`;\n case CoreFieldType.searchValue:\n return `${this.getParameterBySearchType(value, codeIsString)}`;\n default:\n return this.getSearchFilterString(attribute, value);\n }\n }\n\n /**\n * Retorna o filtro formatador para ser chamdo no endpoint\n * @param valueFilterSearch valor pra adicionar no filtro\n */\n private getParameterBySearchType(valueFilterSearch: any, codeIsString: boolean): string {\n let searchFilter = \"\";\n if (valueFilterSearch) {\n for (const [key, value] of Object.entries(valueFilterSearch)) {\n if (key === \"code\" && Number(value)) {\n const hasQuote = codeIsString ? \"'\" : \"\";\n if (searchFilter)\n searchFilter += ` or ${key} eq ${hasQuote}${value}${hasQuote}`;\n else\n searchFilter += `${key} eq ${hasQuote}${value}${hasQuote}`;\n } else if (key != \"code\") {\n if (searchFilter)\n searchFilter += ` or ${this.getSearchFilterString(key, value)}`;\n else\n searchFilter += this.getSearchFilterString(key, value);\n }\n }\n searchFilter = searchFilter ? `(${searchFilter})` : '';\n }\n return searchFilter;\n }\n\n /**\n * Formata o filtro quando for \"Ou\"\n * @param attribute\n * @param value\n */\n private getSearchFilterString(attribute: string, value: any): string { return `containing(lower(${attribute}), lower('${value}'))`; }\n\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { FieldType, FormField } from \"@seniorsistemas/angular-components\";\nimport * as moment_ from \"moment\";\nimport { MessageService } from \"primeng/api\";\nimport { Observable, throwError } from \"rxjs\";\nimport { map, catchError } from \"rxjs/operators\";\nimport { PaginationData } from \"../../core/interfaces\";\n\nconst moment = moment_;\n\n@Injectable()\nexport class LookupService {\n\n private concatFields: any;\n private concatOtherFields: any;\n private lookupDisplayField: string;\n private httpPostParams: any;\n private page: PaginationData;\n\n constructor(private http: HttpClient, private messageService: MessageService, private translateService: TranslateService) {\n }\n\n\n lookupRequestPost(httpPostParams: any, endpoint: string, concatFields: Array<FormField> = null, lookupDisplayField: string) {\n this.httpPostParams = httpPostParams;\n this.postConfigPageSize(httpPostParams);\n this.lookupDisplayField = lookupDisplayField;\n this.concatFields = concatFields;\n return this.postDataLookup(endpoint);\n }\n\n postConfigPageSize(httpPostParams: any) {\n if (httpPostParams) {\n this.httpPostParams.page.size = httpPostParams.page && httpPostParams.page.size ? httpPostParams.page.size : 10;\n this.httpPostParams.page.current = httpPostParams.page && httpPostParams.page.current ? httpPostParams.page.current : 0;\n }\n }\n\n /**\n * POST\n * @param endpoint Busca e faz o tratamento dos dados do lookup.\n * @param httpParams HttpParams\n */\n private postDataLookup(endpoint) {\n return this.postUrlDataLookup(endpoint, this.httpPostParams).pipe(\n map((payload: any) => {\n const { contents } = payload;\n\n if (this.concatFields && this.concatFields.length) {\n contents.map(value => {\n if (this.concatOtherFields) {\n this.convertGridFieldValue(value);\n }\n value[this.lookupDisplayField] = this.generateDisplayFieldValue({ ...value });\n });\n }\n\n return payload;\n }),\n );\n }\n\n /**\n * Converte o valor do campo para apresentação no lookup.\n *\n * @param content Valor do campo para conversão.\n * @param field FormField do campo.\n */\n private convertLookupFieldValue(content: any, field: FormField): any {\n if (content) {\n switch (field.type) {\n case FieldType.Date:\n content = moment(content).format(\"L\");\n break;\n case FieldType.Enum:\n const enumValue = field.options.filter((enumeration: any) => enumeration.value === content)[0];\n content = enumValue ? enumValue.label : content;\n break;\n }\n }\n\n return content;\n }\n\n /**\n * Converte os dados para visualização na grid\n * @param content\n */\n private convertGridFieldValue(content: any): void {\n if (content) {\n this.concatOtherFields.forEach((field: FormField) => {\n switch (field.type) {\n case FieldType.Enum:\n const enumValue = field.options.filter((enumeration: any) => enumeration.value === content[field.name])[0];\n content[field.name] = enumValue ? enumValue.label : content[field.name];\n break;\n }\n });\n }\n }\n\n /**\n * Faz a concatenação de valores do registro para ser apresentado no lookup ao selecionar o dado.\n * @param contentValue Valor do registro.\n */\n private generateDisplayFieldValue(contentValue: any): string {\n let displayField = \"\";\n\n this.concatFields.forEach((field: FormField) => {\n const fieldValue = this.convertLookupFieldValue(contentValue[field.name], field);\n if (fieldValue) {\n if (displayField) {\n displayField += ` - ${ fieldValue }`;\n } else {\n displayField = fieldValue;\n }\n }\n });\n return displayField;\n }\n\n private postUrlDataLookup(endpoint: string, httpParams: any): Observable<any> {\n if (httpParams) {\n return this.http.post(`${ endpoint }`, { ...httpParams })\n .pipe(\n catchError((exception: any): any => {\n if (exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n } else {\n return this.http.post(`${ endpoint }`, {})\n .pipe(\n catchError((exception: any): any => {\n if (exception.status === 403)\n this.messageService.add({\n severity: 'error',\n summary: this.translateService.instant('hcm.payroll.error'),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n sticky: true,\n });\n\n return throwError(exception);\n })\n );\n }\n }\n}\n","export class WorkstationgroupLookupDto {\n private code?: string;\n private name?: string;\n private companyId?: string;\n private companyBranchId?: string;\n private departmentId?: string;\n private costcenterId?: string;\n private jobpositionIds?: any;\n private syndicateId?: string;\n private shiftId?: string;\n private workshiftId?: string;\n private workshiftGroupId?: string;\n private intervalGroupId?: string;\n private scaleTeamId?: string;\n private scaleCategoryId?: string;\n private employmentRelationshipId?: string;\n private contractType?: string;\n private expenseNatureId?: string;\n private allowDeficient?: string;\n private disabilityIds?: any;\n private listExpired?: boolean;\n private referenceDate?: string;\n private searchText?: string;\n private manager: string;\n private page: any;\n\n constructor(payload: any, referenceDate?: string) {\n const { filterData } = payload;\n this.name = filterData.name || null;\n this.code = filterData.code || null;\n this.searchText = filterData.searchText || null;\n this.companyId = filterData.headoffice || null;\n this.companyBranchId = filterData.branchoffice && filterData.branchoffice.id || null;\n this.departmentId = filterData.department && filterData.department.tableId || null;\n this.costcenterId = filterData.costcenter && filterData.costcenter.id || null;\n this.jobpositionIds = filterData.jobposition || null;\n this.syndicateId = filterData.syndicate && filterData.syndicate.id || null;\n this.shiftId = filterData.workshiftScale || null;\n this.workshiftId = filterData.workshiftId && filterData.workshiftId.id || null;\n this.workshiftGroupId = filterData.workshiftGroupId && filterData.workshiftGroupId.id || null;\n this.intervalGroupId = filterData.intervalGroupId && filterData.intervalGroupId.is || null;\n this.scaleTeamId = filterData.scaleTeamId && filterData.scaleTeamId.id || null;\n this.scaleCategoryId = filterData.scaleCategoryId && filterData.scaleCategoryId.id || null;\n this.employmentRelationshipId = filterData.employmentRelationshipId && filterData.employmentRelationshipId.id || null;\n this.contractType = filterData.contractType || null;\n this.expenseNatureId = filterData.expenseNatureId && filterData.expenseNatureId.id || null;\n this.allowDeficient = filterData.allowDeficient || null;\n this.disabilityIds = filterData.disabilityIds || null;\n this.listExpired = filterData.hasOwnProperty('listExpired') ? filterData.listExpired : false;\n this.manager = filterData.manager ? filterData.manager.tableId : null;\n this.referenceDate = referenceDate || null;\n this.page = {\n current: payload.first ? payload.first : 0,\n size: payload.rows ? payload.rows : 10\n } || null;\n\n }\n\n getToFilter() {\n const objDTO = this;\n objDTO.jobpositionIds = this.convertListIds(this.jobpositionIds);\n objDTO.disabilityIds = this.convertListIds(this.disabilityIds);\n return objDTO;\n }\n\n\n convertListIds(list: any) {\n if (list)\n return list.map((index: any) => {\n if (index.tableId)\n return index.tableId;\n else\n return index.id;\n });\n }\n\n}\n","import {\n Component,\n OnDestroy,\n OnInit,\n ViewChild,\n ElementRef,\n Input,\n Output,\n EventEmitter,\n AfterViewInit,\n ChangeDetectorRef,\n} from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { FieldType, FormField } from \"@seniorsistemas/angular-components\";\nimport * as moment_ from \"moment\";\nimport { now } from \"moment\";\nimport { Subject, BehaviorSubject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { ServiceType } from \"../../core/enums\";\nimport { invertFieldDate, getNowDate } from \"../utils/helpers\";\nimport { AutocompleteService } from \"./autocomplete.service\";\nimport { LookupService } from \"./lookup.service\";\nimport { WorkstationgroupLookupDto } from \"./workstationgroup-lookup.dto\";\n\nconst moment = moment_;\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: \"c-workstationgroup-lookup\",\n templateUrl: \"./workstationgroup-lookup.component.html\",\n})\nexport class WorkstationgroupLookupComponent implements OnInit, OnDestroy, AfterViewInit {\n\n @ViewChild(\"workstationgroupEl\", { static: false })\n workstationgroupEl: ElementRef;\n\n @Input()\n public currentCompanyId: string = null;\n @Input()\n public currentCompanyName: string = null;\n @Input()\n public hireDate: string;\n @Input()\n public dateFormat: string;\n @Input()\n public required: boolean;\n @Input()\n public disabled: boolean;\n @Input()\n public form: FormGroup;\n @Input()\n public name: string;\n\n @Output()\n public onSelect: EventEmitter<any> = new EventEmitter();\n @Output()\n public onClear: EventEmitter<any> = new EventEmitter();\n @Output()\n public onBlur: EventEmitter<any> = new EventEmitter();\n\n private companyBranchId: string = null;\n\n public lookupSuggestions: any[] = [];\n public searchGridData: FormField[] = [];\n public suggestionsObservable: BehaviorSubject<any> = new BehaviorSubject([]);\n public totalRecords: number = 0;\n private valueEnumShift = [\n {\n label: this.translate.instant(\"hcm.payroll.enum_WorkshiftScale_FIRST_SHIFT\"),\n value: \"0\",\n enum: \"FIRST_SHIFT\",\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_WorkshiftScale_SECOND_SHIFT\"),\n value: \"1\",\n enum: \"SECOND_SHIFT\",\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_WorkshiftScale_THIRD_SHIFT\"),\n value: \"2\",\n enum: \"THIRD_SHIFT\",\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_WorkshiftScale_FOURTH_SHIFT\"),\n value: \"3\",\n enum: \"FOURTH_SHIFT\",\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_WorkshiftScale_MIXED\"),\n value: \"4\",\n enum: \"MIXED\",\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_WorkshiftScale_GENERAL\"),\n value: \"5\",\n enum: \"GENERAL\",\n },\n ];\n private concatFieldsName = [\n new FormField({\n name: \"code\",\n label: this.translate.instant(\"hcm.payroll.code\"),\n type: FieldType.String,\n }),\n new FormField({\n name: \"name\",\n label: this.translate.instant(\"hcm.payroll.employees_addition_workstation\"),\n type: FieldType.String,\n }),\n ];\n\n private concatName = [\n new FormField({\n name: \"code\",\n label: this.translate.instant(\"hcm.payroll.code\"),\n type: FieldType.String,\n }),\n ];\n public gridFields = [\n new FormField({\n name: \"name\",\n label: this.translate.instant(\"hcm.payroll.employees_addition_workstation\"),\n type: FieldType.String,\n }),\n new FormField({\n name: \"manager\",\n label: this.translate.instant(\"hcm.payroll.workstation_form_lookup_search_manager_label\"),\n type: FieldType.String,\n }),\n ];\n public searchFields = [\n ...this.concatName,\n {\n name: \"name\",\n label: this.translate.instant(\"hcm.payroll.movimentation_name\"),\n type: FieldType.String,\n },\n {\n name: \"headoffice\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.employees_company\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"companyname\",\n },\n {\n name: \"branchoffice\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.employees_addition_branch\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n onRemove: () => this.companyBranchId = null,\n onSelect: ({ id }: { id: string }) => this.companyBranchId = id,\n onSearch: (val: string) => {\n this.getAutocomplete(\n \"company\",\n val ? { companyname: val, code: val } : null,\n \"code\", \"companyname\",\n { headquarter: this.currentCompanyId ? this.currentCompanyId : \"not null\" },\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"companyname\",\n },\n {\n name: \"manager\",\n type: FieldType.Autocomplete,\n multiple: false,\n label: this.translate.instant(\"hcm.payroll.workstation_form_lookup_search_manager_label\"),\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocompleteQuery(\n \"autocompleteManager\",\n {\n valueSearch: val ? val : \"\",\n companyId: {tableId: this.currentCompanyId},\n companyBranchId: {tableId: this.companyBranchId ? this.companyBranchId : \"\"},\n },\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"manager\",\n },\n {\n name: \"department\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.movimentation_historical_department_tab\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocompleteQuery(\n \"autocompleteDepartmentQuery\",\n {\n searchText: val ? val : \"\",\n companyId: this.currentCompanyId,\n referenceDate: moment(now()).format(\"YYYY-MM-DD\"),\n },\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"name\",\n },\n {\n name: \"costcenter\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.employees_addition_cost_center\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocomplete(\n \"costcenter\",\n val ? { name: val, code: val } : null,\n \"code\", \"name\",\n this.currentCompanyId ? { company: this.currentCompanyId } : null,\n true,\n ServiceType.ORGANIZATION_REGISTER,\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"name\",\n },\n {\n name: \"jobposition\",\n type: FieldType.Autocomplete,\n multiple: true,\n label: this.translate.instant(\"hcm.payroll.movimentation_historical_job_position_tab\"),\n dataKey: \"tableId\",\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocompleteQuery(\n \"autocompleteJobpositionQuery\",\n {\n searchText: val ? val : \"\",\n companyId: this.currentCompanyId,\n creationDate: moment().format(\"YYYY-MM-DD\"),\n expirationDate: moment().format(\"YYYY-MM-DD\"),\n },\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"name\",\n },\n {\n name: \"syndicate\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.employees_addition_syndicate\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocomplete(\n \"syndicate\",\n val ? { name: val, code: val } : null,\n \"code\", \"name\",\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"name\",\n },\n {\n name: \"workshiftScale\",\n type: FieldType.Enum,\n label: this.translate.instant(\"hcm.payroll.SHIFT\"),\n showClear: true,\n size: { md: 12 },\n onChange: () => {\n this.resetDependenciesOfShift(true);\n },\n options: this.valueEnumShift,\n },\n {\n name: \"workshiftId\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.employees_addition_scale\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocomplete(\n \"workshift\",\n val ? { description: val, code: val } : null,\n \"code\", \"description\",\n this.workstationFilterForm.get(\"workshiftScale\").value ?\n { workshiftScale: this.valueEnumShift[this.workstationFilterForm.get(\"workshiftScale\").value].enum } : null,\n );\n },\n onSelect: () => {\n this.resetDependenciesOfShift();\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"description\",\n },\n {\n name: \"workshiftGroupId\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.employees_addition_workshift-group\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocomplete(\n \"workshiftGroup\",\n val ? { code: val } : null,\n \"code\", \"baseDate\",\n this.workstationFilterForm.get(\"workshiftId\").value ?\n { workshift: this.workstationFilterForm.get(\"workshiftId\").value.id } : null,\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"baseDate\",\n },\n {\n name: \"intervalGroupId\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.employees_addition_class_interval\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocomplete(\n \"intervalGroup\",\n val ? { description: val, code: val } : null,\n \"code\", \"description\",\n this.workstationFilterForm.get(\"workshiftId\").value ?\n { workshift: this.workstationFilterForm.get(\"workshiftId\").value.id } : null,\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"description\",\n },\n {\n name: \"scaleTeamId\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.employees_addition_scale_team\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocomplete(\n \"scaleTeam\",\n val ? { name: val, code: val } : null,\n \"code\", \"name\",\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"name\",\n },\n {\n name: \"scaleCategoryId\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.employees_addition_scale_category\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocomplete(\n \"scaleCategory\",\n val ? { name: val, code: val } : null,\n \"code\", \"name\",\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"name\",\n },\n {\n name: \"employmentRelationshipId\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.employees_addition_employment_relationship\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocomplete(\n \"employmentRelationship\",\n val ? { name: val, code: val } : null,\n \"code\", \"name\",\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"name\",\n },\n {\n name: \"contractType\",\n type: FieldType.Enum,\n label: this.translate.instant(\"hcm.payroll.employees_temporary_contract_temporary_contract_type\"),\n showClear: true,\n size: { md: 12 },\n options: [\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_Employee\"),\n value: \"0\",\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_Manager\"),\n value: 1,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_FarmWorker\"),\n value: 2,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_Retired\"),\n value: 3,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_Trainee\"),\n value: 4,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_Apprentice\"),\n value: 5,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_FixedDueDate\"),\n value: 6,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_RetiredManager\"),\n value: 7,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_PublicAgent\"),\n value: 8,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_Teacher\"),\n value: 9,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_CooperativeWorker\"),\n value: 10,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_DomesticWorker\"),\n value: 11,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_EmployeeContractType_TeacherFixedDueDate\"),\n value: 12,\n },\n ],\n },\n {\n name: \"expenseNatureId\",\n type: FieldType.Autocomplete,\n label: this.translate.instant(\"hcm.payroll.employees_addition_expense_nature\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n onSearch: (val: string) => {\n this.getAutocomplete(\n \"expenseNature\",\n val ? { name: val, code: val } : null,\n \"code\", \"name\",\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"name\",\n },\n {\n name: \"allowDeficient\",\n type: FieldType.Enum,\n label: this.translate.instant(\"hcm.payroll.allow_deficient\"),\n showClear: true,\n size: { md: 12 },\n options: [\n {\n label: this.translate.instant(\"hcm.payroll.enum_DecisionPcD_No\"),\n value: \"0\",\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_DecisionPcD_Also\"),\n value: 1,\n },\n {\n label: this.translate.instant(\"hcm.payroll.enum_DecisionPcD_Only\"),\n value: 2,\n },\n ],\n },\n {\n name: \"disabilityIds\",\n type: FieldType.Autocomplete,\n multiple: true,\n label: this.translate.instant(\"hcm.payroll.employees_addition_disability\"),\n dataKey: \"id\",\n appendTo: \"body\",\n fullWidth: true,\n // visible: () => Number(this.workstationFilterForm.get('allowDeficient').value),\n onSearch: (val: string) => {\n this.getAutocomplete(\n \"disability\",\n val ? { name: val, code: val } : null,\n \"code\", \"name\",\n );\n },\n suggestionsObservable: this.suggestionsObservable,\n displayField: \"name\",\n },\n ];\n\n private ngUnsubscribe = new Subject();\n\n constructor(\n private translate: TranslateService,\n private cd: ChangeDetectorRef,\n private autocompleteParametersService: AutocompleteService,\n private lookupParametersService: LookupService) {\n }\n\n public ngOnInit() {\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public ngAfterViewInit() {\n this.cd.detectChanges();\n const companyForm = this.workstationFilterForm.get(\"headoffice\");\n companyForm.setValue({ id: this.currentCompanyId, companyname: this.currentCompanyName });\n companyForm.disable();\n }\n\n public get workstationFilterForm() {\n return this.workstationgroupEl && this.workstationgroupEl[\"formGroupDialog\"];\n }\n\n public selectOption(option: object) {\n this.onSelect.emit(option);\n }\n\n async onClearItem(option: object) {\n await this.onClear.emit(option);\n this.form.get(this.name).reset();\n }\n\n private resetDependenciesOfShift(isShift: boolean = false): void {\n if (isShift) {\n this.workstationFilterForm.get(\"workshiftId\").reset();\n }\n this.workstationFilterForm.get(\"workshiftGroupId\").reset();\n this.workstationFilterForm.get(\"intervalGroupId\").reset();\n }\n\n public searchRequest($event: any) {\n const endpoint = \"hcm/payroll/queries/workstationgroupFilterQuery\";\n const company = this.workstationFilterForm.get(\"headoffice\");\n const isLookupOpen: boolean = $event && $event.filterData;\n company.setValue({\n id: this.currentCompanyId,\n companyname: this.currentCompanyName,\n });\n\n $event = { ...this.getValueEvent($event, isLookupOpen)};\n\n const referenceDate = this.getHireDate().replace(/\\'/g, \"\");\n const filter = new WorkstationgroupLookupDto($event, referenceDate);\n this.lookupParametersService.lookupRequestPost(filter.getToFilter(), endpoint, [...this.concatFieldsName], \"name\")\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((data: any) => {\n if (isLookupOpen) {\n this.searchGridData = data && [...data.contents];\n } else {\n this.lookupSuggestions = data && [...data.contents];\n }\n this.totalRecords = data && data.totalPages;\n });\n }\n\n private getValueEvent($event: any, isLookupOpen: boolean): Object {\n if (isLookupOpen) {\n $event.filterData.headoffice = this.currentCompanyId;\n } else {\n $event = {\n filterData: {\n headoffice: this.currentCompanyId,\n searchText: $event\n },\n };\n }\n return $event;\n }\n\n private getAutocompleteQuery(nameQuery: string, searchValue: object) {\n this.autocompleteParametersService.getAutoCompleteQuery(nameQuery, searchValue)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((data: any) => {\n if (nameQuery === \"autocompleteDepartmentQuery\") {\n data.filter((field: any) => {\n if (field.fields && field.fields[0]) {\n field[\"name\"] = `${ field.fields[1].value } - ${ field.fields[0].value }`;\n }\n });\n } else if (nameQuery === \"autocompleteJobpositionQuery\") {\n data.filter((field: any) => {\n if (field.fields && field.fields[0] && field.fields[1]) {\n field[\"name\"] = `${ field.fields[0].value } - ${ field.fields[1].value }`;\n }\n });\n } else if (nameQuery === \"autocompleteManager\") {\n data.map((field: any) => {\n field[\"manager\"] = field.fields[0].value ? field.fields[0].value : field.fields[3].value;\n });\n }\n\n this.suggestionsObservable.next(data);\n });\n }\n\n private getAutocomplete(\n nameEntity: string,\n searchValue: object,\n concatOtherFields: string,\n nameFieldConcat: string,\n additionalParams: object = null,\n codeIsString: boolean = false,\n service: ServiceType = ServiceType.PAYROLL,\n ) {\n this.autocompleteParametersService.getAutoComplete(\n nameEntity, {\n ...additionalParams,\n searchValue: { ...searchValue },\n }, this.searchFields, codeIsString, service)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((data: any) => {\n if (nameEntity === \"workshiftGroup\") {\n data.filter((filterData: any) => {\n if (filterData.baseDate) {\n const dateIsMoment = moment(filterData.baseDate, \"YYYY-MM-DD\");\n if (dateIsMoment.isValid()) {\n return filterData.baseDate = dateIsMoment.format(this.dateFormat);\n }\n }\n });\n }\n this.suggestionsObservable.next(this.getConcatFields(data, concatOtherFields, nameFieldConcat));\n });\n }\n\n private getConcatFields(data: any, concatOtherFields: string, nameFieldConcat: string) {\n if (nameFieldConcat && concatOtherFields) {\n data.filter((field: any) => {\n field[nameFieldConcat] = `${ field[concatOtherFields] } - ${ field[nameFieldConcat] }`;\n });\n }\n return data;\n }\n\n public getHireDate() {\n const momentHireDate = moment(this.hireDate).format(this.dateFormat);\n return momentHireDate ? `'${ invertFieldDate(momentHireDate, this.dateFormat) }'` : `'${ getNowDate() }'`;\n }\n\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { DynamicFormModule } from \"@seniorsistemas/angular-components\";\nimport { AutocompleteService } from \"./autocomplete.service\";\nimport { LookupService } from \"./lookup.service\";\n\nimport { WorkstationgroupLookupComponent } from \"./workstationgroup-lookup.component\";\n\n@NgModule({\n imports: [FormsModule, DynamicFormModule, ReactiveFormsModule, CommonModule, TranslateModule],\n declarations: [WorkstationgroupLookupComponent],\n exports: [WorkstationgroupLookupComponent],\n providers: [AutocompleteService, LookupService],\n})\nexport class WorkstationgroupLookupModule {\n}\n","import {\n Component,\n OnInit,\n ViewChild,\n Input,\n ChangeDetectorRef,\n AfterViewInit,\n OnDestroy, EventEmitter,\n} from \"@angular/core\";\nimport { FormGroup, FormBuilder } from \"@angular/forms\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { CustomFieldsComponent, NumberLocaleOptions } from \"@seniorsistemas/angular-components\";\nimport { ConfirmationService } from \"primeng/api\";\nimport { compareValues, isValid, mountCustomToSave } from \"../utils/helpers\";\nimport { DirectionEnumeration } from \"../../core/enums\";\nimport { Subject } from \"rxjs\";\n\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: \"c-historical-bank-account\",\n templateUrl: \"./historical-bank-account.component.html\",\n styleUrls: [\"./historical-bank-account.component.scss\"],\n})\nexport class HistoricalBankAccountComponent implements OnInit, OnDestroy, AfterViewInit {\n @ViewChild(CustomFieldsComponent, { static: false })\n public customFields: CustomFieldsComponent;\n @Input()\n public formGroup: FormGroup;\n @Input()\n public fieldFormGroup: string;\n @Input()\n public _dateWhen: string;\n @Input()\n public _displayDateWhen: string;\n @Input()\n public recordByRow: number = 1;\n @Input()\n public showDateWhen: boolean = false;\n @Input()\n public msgTooltipAdd: string;\n @Input()\n public isEditMode: boolean = false;\n @Input()\n public isViewMode: boolean = false;\n @Input()\n public currency: NumberLocaleOptions;\n @Input()\n public customEntity: string;\n @Input()\n public customService: string;\n @Input()\n public withSideBar: boolean = true;\n\n private visibleChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n private ngUnsubscribe = new Subject();\n private historicalBankAccountList: FormGroup;\n private orderBy: { field: string; direction: DirectionEnumeration } = {\n field: \"displayDateWhen\",\n direction: DirectionEnumeration.DESC,\n };\n\n private _visible: boolean;\n public bankAccountItemInput: object = {};\n public totalRecords: number = 0;\n public actionLabel: string = this.translateService.instant(\"hcm.payroll.entries_query_actions_total_title\");\n public loading = true;\n public parameters: any;\n public msgTotalLimitByPercentage: string;\n public listData: object[] = [];\n public listDataNoPage: object[] = [];\n public cols = [\n {\n label: this.translateService.instant(\"hcm.payroll.historical_bank_account_label_date_when\"),\n field: \"displayDateWhen\",\n },\n {\n label: this.translateService.instant(\"hcm.payroll.historical_bank_account_label_bank\"),\n field: \"bank\",\n },\n {\n label: this.translateService.instant(\"hcm.payroll.historical_bank_account_label_bank_branch\"),\n field: \"bankBranch\",\n },\n {\n label: this.translateService.instant(\"hcm.payroll.historical_bank_account_label_account_type\"),\n field: \"accountType\",\n },\n {\n label: this.translateService.instant(\"hcm.payroll.historical_bank_account_label_account\"),\n field: \"bankAccount\",\n },\n {\n label: this.translateService.instant(\"hcm.payroll.historical_bank_account_label_digit\"),\n field: \"digit\",\n },\n {\n label: this.translateService.instant(\"hcm.payroll.historical_bank_account_label_percentage\"),\n field: \"percentage\",\n },\n ];\n actions = (rowData: any = {}, key: any) => {\n return [\n {\n visible: this.isEditMode,\n label: this.translateService.instant(\"hcm.payroll.employees_image_cropper_view\"),\n command: () => {\n rowData[\"index\"] = key;\n this.bankAccountItemInput = { currentItem: rowData, listData: this.listDataNoPage, isEditMode: false };\n this.visible = true;\n },\n },\n {\n visible: !!(!this.isEditMode && this.withSideBar),\n label: this.translateService.instant(\"hcm.payroll.edit\"),\n command: () => {\n rowData[\"index\"] = key;\n this.bankAccountItemInput = { currentItem: rowData, listData: this.listDataNoPage, isEditMode: true };\n this.visible = true;\n },\n },\n {\n visible: !this.isEditMode,\n label: this.translateService.instant(\"hcm.payroll.delete\"),\n command: () => {\n this.loading = true;\n this.deleteAnnuityItem(key);\n },\n },\n ];\n }\n\n constructor(\n private confirmationService: ConfirmationService,\n private translateService: TranslateService,\n private activatedRoute: ActivatedRoute,\n private cd: ChangeDetectorRef,\n private formBuilder: FormBuilder,\n ) {\n this.createFormGroup();\n }\n\n ngOnInit() {\n this.formGroup.setControl(this.fieldFormGroup, this.historicalBankAccountList);\n }\n\n private createFormGroup(): void {\n this.historicalBankAccountList = this.formBuilder.group({\n historicalBankAccountList: this.formBuilder.control(null),\n });\n }\n\n ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n\n public onLazyLoad(event?: any): void {\n const first = event && event.first ? event.first : 0;\n const rows = event && event.rows ? event.rows : this.recordByRow;\n const arrList = this.getHistoricalBankAccountList();\n this.listData = [];\n this.totalRecords = null;\n\n if (event && event.multiSortMeta && event.multiSortMeta.length) {\n event.multiSortMeta.map((value: any) => {\n this.orderBy.field = value.field;\n this.orderBy.direction = value.order === 1 ? DirectionEnumeration.ASC : DirectionEnumeration.DESC;\n });\n }\n\n if (arrList && arrList.length) {\n this.totalRecords = arrList.length;\n this.listData = arrList;\n this.listDataNoPage = [...arrList];\n this.listData.sort(compareValues(this.orderBy.field, this.orderBy.direction));\n this.listData = this.listData.slice(first, (first + rows));\n } else {\n this.listDataNoPage = [];\n }\n\n if (this.isEditMode || arrList && arrList.length === 1) {\n this.refreshCssInIE11();\n }\n\n this.loading = false;\n\n }\n\n /**\n * Um Bug de CSS que acontece nas linhas da tabela, que resolve só atualizando qualquer parte do CSS da pagina.\n */\n private refreshCssInIE11() {\n if (/msie\\s|trident\\/|edge\\//i.test(window.navigator.userAgent)) {\n setTimeout( () => {\n const row = document.getElementsByClassName(\"row0\");\n if (row && row[0])\n row[0].className = 'refresh';\n }, 1);\n }\n }\n\n public add(): void {\n this.bankAccountItemInput = {};\n this.visible = true;\n }\n\n private deleteAnnuityItem(index: number): void {\n let newlist = [...this.getHistoricalBankAccountList()];\n newlist.sort(compareValues(this.orderBy.field, this.orderBy.direction));\n delete newlist[index];\n newlist = newlist.filter(val => val);\n this.historicalBankAccountList.get(\"historicalBankAccountList\").setValue(newlist);\n this.verifyTotalPercentage();\n this.onLazyLoad();\n }\n\n public getHistoricalBankAccountList(): object[] {\n if (this.historicalBankAccountList.get(\"historicalBankAccountList\") &&\n this.historicalBankAccountList.get(\"historicalBankAccountList\").value &&\n this.historicalBankAccountList.get(\"historicalBankAccountList\").value.length)\n return this.historicalBankAccountList.get(\"historicalBankAccountList\") && this.historicalBankAccountList.get(\"historicalBankAccountList\").value;\n else\n return [];\n }\n\n public addItemInList($event: any): void {\n const index = $event && $event.index >= 0 ? $event.index : null;\n const newDataList = this.getHistoricalBankAccountList() ? this.getHistoricalBankAccountList() : [];\n\n if (index != null) {\n newDataList[index] = $event;\n delete $event.index;\n } else {\n if (isValid($event[\"customFields\"]) && Object.keys($event[\"customFields\"]).length) {\n const customValue = mountCustomToSave($event[\"customFields\"]);\n $event[\"customFields\"] = [...customValue];\n }\n $event[\"dateWhen\"] = this.dateWhen;\n newDataList.push($event);\n }\n\n\n\n this.historicalBankAccountList.get(\"historicalBankAccountList\").setValue(newDataList);\n this.verifyTotalPercentage();\n this.onLazyLoad({ first: this.getNumberPageByIndex(index, newDataList) });\n }\n\n private getNumberPageByIndex(index: number, list: object[]): number {\n if (index) {\n const total = list.length;\n const sub = this.recordByRow - 1;\n return Math.ceil(total / this.recordByRow) * this.recordByRow - sub - 1;\n }\n return null;\n }\n\n private verifyTotalPercentage(): void {\n const list = this.getHistoricalBankAccountList() ? this.getHistoricalBankAccountList() : [];\n const arrayPercentage = [];\n\n if (!list.length) return this.msgTotalLimitByPercentage = null;\n\n list.filter(item => arrayPercentage.push(item && item[\"percentage\"]));\n\n const sumPercentage = arrayPercentage.reduce((total: number, percentage: number) => {\n return total + percentage;\n }, 0);\n\n if (sumPercentage === 100) {\n this.msgTotalLimitByPercentage = this.translateService.instant(\"hcm.payroll.historical_bank_account_msg_limit_total_by_percentage\");\n } else {\n this.msgTotalLimitByPercentage = null;\n }\n\n }\n\n public get scopedActions() {\n return this.actions.bind(this);\n }\n\n public get recordsMessage() {\n return `${ this.totalRecords || 0 } ${ this.totalRecords === 1 ? this.translateService.instant(\"hcm.payroll.admission_register\") : this.translateService.instant(\"hcm.payroll.admission_registers\") }`;\n }\n\n public get getTooltipAndDisableButtonAdd() {\n return this.dateWhen ? null : this.msgTooltipAdd;\n }\n\n @Input()\n public get dateWhen(): string {\n return this._dateWhen;\n }\n\n public set dateWhen(value: string) {\n this._dateWhen = value;\n if (this._dateWhen) {\n this.listData.filter(row => row[\"dateWhen\"] = this._dateWhen);\n }\n }\n\n @Input()\n public get displayDateWhen(): string {\n return this._displayDateWhen;\n }\n\n public set displayDateWhen(value: string) {\n this._displayDateWhen = value;\n if (this._displayDateWhen) {\n this.listData.filter(row => row[\"displayDateWhen\"] = this._displayDateWhen);\n }\n }\n\n @Input()\n public set addListData(list: object[]) {\n this.loading = true;\n this.historicalBankAccountList.get(\"historicalBankAccountList\").patchValue(list);\n this.verifyTotalPercentage();\n this.onLazyLoad();\n }\n\n @Input()\n public get visible(): boolean {\n return this._visible;\n }\n\n public set visible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(this.visible);\n }\n public close(): void {\n this.visible = false;\n }\n\n}\n","import {\n Component,\n OnInit,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n OnDestroy,\n AfterViewInit,\n ViewChild,\n} from \"@angular/core\";\nimport { FormGroup, FormBuilder, Validators, ValidatorFn, AbstractControl } from \"@angular/forms\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { NumberLocaleOptions, CustomFieldsComponent } from \"@seniorsistemas/angular-components\";\nimport { Subject } from \"rxjs\";\nimport {\n verifyValidationsForm,\n clearValues,\n configEnabledFields,\n mountCustomToShow,\n} from \"../../utils/helpers\";\n\n@Component({\n selector: \"bank-account\",\n templateUrl: \"./historical-bank-account-form.component.html\",\n styleUrls: [\"../historical-bank-account.component.scss\"]\n})\nexport class HistoricalBankAccountFormComponent implements OnInit, OnDestroy, AfterViewInit {\n @ViewChild(CustomFieldsComponent, { static: true })\n customFields: CustomFieldsComponent;\n\n @Input()\n public currency: NumberLocaleOptions;\n @Input()\n public customEntity: string;\n @Input()\n public customService: string;\n @Input()\n public withSideBar: boolean = true;\n @Input()\n public isEditMode: boolean = false;\n\n @Output()\n public visibleChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output()\n public bankAccountItemToList: EventEmitter<any> = new EventEmitter<any>();\n\n private _visible: boolean;\n private ngUnsubscribe = new Subject();\n private employeeId: string;\n private bankAccountList: object[];\n private initialValidatorOfPercentage: ValidatorFn[] = [Validators.required, Validators.min(0.01)];\n private initialValidatorOfBankAccount: ValidatorFn[] = [Validators.required, Validators.maxLength(12)];\n\n\n public labelBtnAdd: string = \"hcm.payroll.employees_add\";\n public bankAccountFormGroup: FormGroup;\n public maxValuePercentage: number = 100.00;\n public visibleBtnSave: boolean = true;\n public isView: boolean = false;\n\n constructor(\n private translate: TranslateService,\n private formBuilder: FormBuilder,\n private route: ActivatedRoute,\n private cd: ChangeDetectorRef,\n ) {\n this.createFormGroup();\n this.registerSubjects();\n }\n\n /**\n * Método valida se o número atual informado na conta para o mesmo banco, agencia e tipo já foi inserido em outro registro da tabela.\n * Caso esta conta já esteja em uso por outro registro, retorna \"bankAccountDuplicate\" = true.\n * @param listCompare\n * @param accountTypeValue\n * @param bankValue\n * @param bankBranchValue\n */\n private validateDuplicateBankAccount(\n listCompare: object[],\n accountTypeValue: string,\n bankValue: string,\n bankBranchValue: string) {\n\n return (control: AbstractControl): Validators => {\n const value = control && control.value;\n let condition = false;\n listCompare.filter((item, key) => {\n if (key != item[\"index\"] && value && item[\"bank\"] && item[\"bank\"].tableId === bankValue &&\n item[\"bankBranch\"] && item[\"bankBranch\"].tableId === bankBranchValue &&\n item[\"accountType\"] && item[\"accountType\"].key === accountTypeValue &&\n Number(item[\"bankAccount\"]) === Number(value)) {\n return condition = true;\n }\n });\n\n if (condition) {\n return { bankAccountDuplicate: true };\n } else {\n return null;\n }\n };\n }\n\n ngOnInit() {\n }\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next(true);\n this.ngUnsubscribe.unsubscribe();\n }\n\n private registerSubjects(): void {\n }\n\n private createFormGroup(): void {\n this.bankAccountFormGroup = this.formBuilder.group({\n id: this.formBuilder.control(null),\n index: this.formBuilder.control(null),\n employee: this.formBuilder.control({ value: { tableId: null }, disabled: true }),\n dateWhen: this.formBuilder.control(null),\n displayDateWhen: this.formBuilder.control(null),\n bank: this.formBuilder.control(null, Validators.required),\n bankBranch: this.formBuilder.control(null, Validators.required),\n accountType: this.formBuilder.control(null, Validators.required),\n bankAccount: this.formBuilder.control(null, Validators.compose([...this.initialValidatorOfBankAccount])),\n digit: this.formBuilder.control(null, Validators.maxLength(3)),\n percentage: this.formBuilder.control(null, Validators.compose([\n ...this.initialValidatorOfPercentage,\n Validators.max(this.maxValuePercentage),\n ])),\n customFields: this.formBuilder.control(null),\n });\n }\n\n // Actions Bank\n public onSelectBank() {\n this.cleanBankInformation();\n this.beforeSetBankAccountValidator();\n }\n\n public onClearBank() {\n this.bankAccountFormGroup.get(\"bank\").reset();\n this.cleanBankInformation();\n this.beforeSetBankAccountValidator();\n }\n\n private cleanBankInformation(): void {\n const fields = [\"bankBranch\"];\n clearValues(this.bankAccountFormGroup, fields);\n }\n\n // Actions BankBranch\n public onClearBankBranch() {\n this.bankAccountFormGroup.get(\"bankBranch\").reset();\n this.beforeSetBankAccountValidator();\n }\n\n // Actions BankBranch\n public onClearAccountType() {\n this.bankAccountFormGroup.get(\"accountType\").reset();\n this.beforeSetBankAccountValidator();\n }\n\n @Input()\n public get visible(): boolean {\n return this._visible;\n }\n\n public set visible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(this.visible);\n }\n\n @Input()\n public set isEditAndViewValue(value: any) {\n this.resetForm();\n this.visibleBtnSave = true;\n if (value && value.currentItem && Object.keys(value.currentItem).length) {\n this.bankAccountFormGroup.patchValue(this.convertDTOToShowWithCustomFields({...value.currentItem}));\n this.labelBtnAdd = \"hcm.payroll.employees_update\";\n this.setValidatorsAccordingList(value.listData, value.currentItem[\"index\"]);\n if (!this.isView) {\n this.configEnableFields(value && value[\"isEditMode\"]);\n }\n } else {\n this.labelBtnAdd = \"hcm.payroll.employees_add\";\n }\n\n }\n\n public convertDTOToShowWithCustomFields(data: object): object {\n const obj = {... data};\n obj[\"customFields\"] = mountCustomToShow(obj[\"customFields\"]);\n return obj;\n }\n\n private configEnableFields(isEditMode: boolean) {\n this.visibleBtnSave = isEditMode;\n configEnabledFields(this.bankAccountFormGroup, isEditMode, [\n \"bank\",\n \"bankBranch\",\n \"accountType\",\n \"bankAccount\",\n \"digit\",\n \"percentage\",\n \"customFields\",\n ], []);\n }\n\n public close(): void {\n this.resetForm();\n this.visible = false;\n }\n\n public addItem(): void {\n this.bankAccountFormGroup.updateValueAndValidity();\n verifyValidationsForm.call(this.bankAccountFormGroup);\n\n if (this.bankAccountFormGroup.valid) {\n if (this.employeeId) {\n this.bankAccountFormGroup.get(\"employee\").setValue({\n tableId: this.employeeId,\n name: \"\",\n });\n }\n this.bankAccountItemToList.emit(this.bankAccountFormGroup.getRawValue());\n this.visible = false;\n this.resetForm();\n }\n }\n\n public resetForm(): void {\n this.bankAccountFormGroup.reset();\n this.labelBtnAdd = \"hcm.payroll.employees_add\";\n if (this.customFields && this.customFields.formGroup) this.customFields.formGroup.reset();\n }\n\n public getBankTableId() {\n return this.bankAccountFormGroup.controls.bank.value\n ? `'${ this.bankAccountFormGroup.controls.bank.value.tableId }'`\n : null;\n }\n\n\n public get percentagePlaceholder(): string {\n return `0${ this.currency && this.currency.decimalSeparator }00`;\n }\n\n public get optionsPercentage(): object {\n return { ...this.getOptions(), precision: 2 };\n }\n\n private getOptions(): any {\n return {\n prefix: \"\",\n thousands: this.currency.thousandsSeparator,\n decimal: this.currency.decimalSeparator,\n };\n }\n\n /**\n * O Input que recebe a lista do component pai e chama o método de validação passando a lista recebida.\n * @param bankAccountList\n */\n @Input()\n public set getListBankAccount(bankAccountList: object[]) {\n if (bankAccountList) {\n this.setValidatorsAccordingList(bankAccountList);\n } else {\n this.resetForm();\n }\n }\n\n /**\n * Recebe a lista de registros já inseridos na tabela adiciona em uma variável os valores que serão usados para\n * a validação dos campos \"percentage\" e \"bankAccount\".\n * Quando tem index significa que está em uma edição, os valores na posição do registro da edição (index) não serão adicionados\n * no array de comparação dos validators.\n * @param bankAccountList\n * @param index\n */\n private setValidatorsAccordingList(bankAccountList: object[], index: number = null) {\n this.bankAccountList = bankAccountList && bankAccountList.length ? [...bankAccountList] : [];\n\n const percentageIncluded = [];\n\n if (this.bankAccountList && this.bankAccountList.length) {\n this.bankAccountList.filter((field, key) => {\n if (field[\"percentage\"] && key != index) {\n percentageIncluded.push(field[\"percentage\"]);\n }\n });\n\n }\n this.beforeSetBankAccountValidator();\n this.validatePercentageValid(percentageIncluded);\n }\n\n /**\n * Antes de setar o validator prepara as variáveis necessária para que seja feita a validação do campo.\n */\n public beforeSetBankAccountValidator() {\n const bankAccount = this.bankAccountFormGroup.get(\"bankAccount\");\n\n const accountTypeValue = this.bankAccountFormGroup.get(\"accountType\") &&\n this.bankAccountFormGroup.get(\"accountType\").value &&\n this.bankAccountFormGroup.get(\"accountType\").value[\"key\"];\n\n const bankValue = this.bankAccountFormGroup.get(\"bank\") &&\n this.bankAccountFormGroup.get(\"bank\").value &&\n this.bankAccountFormGroup.get(\"bank\").value[\"tableId\"];\n\n const bankBranchValue = this.bankAccountFormGroup.get(\"bankBranch\") &&\n this.bankAccountFormGroup.get(\"bankBranch\").value &&\n this.bankAccountFormGroup.get(\"bankBranch\").value[\"tableId\"];\n\n if (bankValue &&\n bankBranchValue &&\n accountTypeValue &&\n this.bankAccountList &&\n this.bankAccountList.length) {\n\n bankAccount\n .setValidators(Validators.compose([\n ...this.initialValidatorOfBankAccount,\n this.validateDuplicateBankAccount(this.bankAccountList, accountTypeValue, bankValue, bankBranchValue),\n ]));\n bankAccount.updateValueAndValidity();\n } else {\n bankAccount\n .setValidators(Validators.compose([\n ...this.initialValidatorOfBankAccount,\n ]));\n }\n\n }\n\n /**\n * Este método calcula as parcentagens que já foram inseridas, e seta a diferença para chegar em\n * 100% na validação do campo \"percentage\" como um novo maxValue;\n * @param listValue\n */\n private validatePercentageValid(listValue: number[]) {\n const percentage = this.bankAccountFormGroup.get(\"percentage\");\n this.maxValuePercentage = listValue\n .reduce((currentValue, total) => currentValue - total,\n 100.00,\n );\n\n percentage\n .setValidators(Validators.compose([\n ...this.initialValidatorOfPercentage,\n Validators.max(this.maxValuePercentage),\n ]));\n percentage.updateValueAndValidity();\n }\n\n @Input()\n public set isViewMode(condition: boolean) {\n this.isView = !!(condition && !this.withSideBar);\n this.configEnableFields(!this.isView);\n if (!this.isView) this.resetForm();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { HttpClientService } from '../shared/http-client.service';\nimport { ServiceType } from '../../core/enums/serviceType';\n\n@Injectable()\nexport class HistoricalBankAccountService {\n constructor(private http: HttpClientService) {}\n\n query(path: string, body: object, service: ServiceType = ServiceType.PAYROLL): Observable<any> {\n return this.http.query(path, body, service);\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport {\n ButtonModule,\n LoadingStateModule,\n SidebarModule, ControlErrorsModule, CustomFieldsModule,\n} from \"@seniorsistemas/angular-components\";\nimport { CurrencyMaskModule } from \"ng2-currency-mask\";\nimport { ConfirmationService } from \"primeng/api\";\nimport { AutoCompleteModule } from \"primeng/autocomplete\";\nimport { FieldsetModule } from \"primeng/fieldset\";\nimport { InputTextModule } from \"primeng/inputtext\";\nimport { PanelModule } from \"primeng/panel\";\nimport { TableModule } from \"primeng/table\";\nimport { TooltipModule } from \"primeng/tooltip\";\nimport { CoreDirectives } from \"../directives/index\";\nimport { HistoricalBankAccountFormComponent } from \"./historical-bank-account-form/historical-bank-account-form.component\";\nimport { InputDateModule } from \"../input-date/index\";\nimport { InputRestAutoCompleteModule } from \"../input-rest-auto-complete/index\";\nimport { InputRestAutoCompleteEnumModule } from \"../input-rest-auto-complete-enum/index\";\n\nimport { SharedModule } from \"../shared/shared.module\";\nimport { HistoricalBankAccountComponent } from \"./historical-bank-account.component\";\nimport { HistoricalBankAccountService } from \"./historical-bank-account.service\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n HttpClientModule,\n AutoCompleteModule,\n SharedModule,\n ReactiveFormsModule,\n TableModule,\n ButtonModule,\n TooltipModule,\n LoadingStateModule,\n SidebarModule,\n InputDateModule,\n ControlErrorsModule,\n InputRestAutoCompleteEnumModule,\n CurrencyMaskModule,\n InputRestAutoCompleteModule,\n InputTextModule,\n CoreDirectives,\n FieldsetModule,\n CustomFieldsModule,\n PanelModule,\n ],\n declarations: [HistoricalBankAccountComponent, HistoricalBankAccountFormComponent],\n providers: [HistoricalBankAccountService, ConfirmationService],\n exports: [HistoricalBankAccountComponent],\n})\nexport class HistoricalBankAccountModule {\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { ServiceType } from '../../core/enums/serviceType';\n\nimport { HttpClientService } from \"../shared/http-client.service\";\n\n@Injectable()\nexport class HistoricalBankAccountListService {\n constructor(private http: HttpClientService, private httpClient: HttpClient) {\n }\n\n public remove(id: any, dateWhen: string, service: ServiceType = ServiceType.PAYROLL, dependentId?: string) {\n if (service === ServiceType.DEPENDENT) {\n return this.httpClient\n .post(\"hcm/dependent/queries/historicalJudicialPensionBankAccountDelete\", {\n dependentId: dependentId,\n dateWhen: dateWhen,\n });\n } else {\n return this.http.post(\"actions/historicalEmployeeBankAccountDelete\", {\n employeeId: id,\n dateWhen: dateWhen\n });\n }\n }\n\n}\n","import {\n Component,\n OnInit,\n ViewChild,\n ChangeDetectorRef,\n AfterViewInit,\n OnDestroy,\n Input,\n Output,\n EventEmitter,\n} from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { CustomFieldsComponent } from \"@seniorsistemas/angular-components\";\nimport * as moment_ from \"moment\";\nimport { ConfirmationService, MessageService } from \"primeng/api\";\nimport { ServiceType } from '../../core/enums/serviceType';\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { HistoricalBankAccountListService } from \"./historical-bank-account-list.service\";\n\nconst moment = moment_;\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: \"c-historical-bank-account-list\",\n templateUrl: \"./historical-bank-account-list.component.html\",\n styleUrls: [\"./historical-bank-account-list.component.scss\"],\n})\nexport class HistoricalBankAccountListComponent implements OnInit, OnDestroy, AfterViewInit {\n @ViewChild(CustomFieldsComponent, { static: false })\n public customFields: CustomFieldsComponent;\n\n @Input()\n public permission: object;\n @Input()\n public employeeId: string;\n @Input()\n public dependentId: string;\n @Input()\n public dateFormat: string;\n @Input()\n public endPoint: string = \"hcm/payroll/queries/historicalEmployeeBankAccountQuery\";\n @Input()\n public keyPayload: string = \"historicalEmployeeBankAccount\";\n @Input()\n public withSidebar: boolean = true;\n\n\n @Output()\n public enableView: EventEmitter<any> = new EventEmitter<any>();\n\n private lastRecord: any;\n private ngUnsubscribe = new Subject();\n public initParameters: any;\n public loading: boolean = true;\n public parameters: any;\n\n public columns = [\n {\n label: this.translateService.instant(\n \"hcm.payroll.historical_bank_account_label_date_when\",\n ),\n field: \"dateWhen\",\n },\n {\n label: this.translateService.instant(\n \"hcm.payroll.historical_bank_account_label_bank\",\n ),\n field: \"bank.name\",\n },\n {\n label: this.translateService.instant(\n \"hcm.payroll.historical_bank_account_label_bank_branch\",\n ),\n field: \"bankBranch.name\",\n },\n {\n label: this.translateService.instant(\n \"hcm.payroll.historical_bank_account_label_account\",\n ),\n field: \"bankAccount\",\n },\n {\n label: this.translateService.instant(\n \"hcm.payroll.historical_bank_account_label_percentage\",\n ),\n field: \"percentage\",\n },\n {\n label: this.translateService.instant(\n \"hcm.payroll.historical_bank_account_label_qtd_account\",\n ),\n field: \"numberOfBankAccount\",\n },\n ];\n\n constructor(\n private confirmationService: ConfirmationService,\n private translateService: TranslateService,\n private activatedRoute: ActivatedRoute,\n private cd: ChangeDetectorRef,\n private router: Router,\n private messageService: MessageService,\n private historicalBankAccountListService: HistoricalBankAccountListService,\n ) {\n }\n\n ngOnInit() {\n this.initParameters = { employeeId: this.employeeId, dependentId: this.dependentId };\n }\n\n\n ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n\n public onLazyLoad(payload: any) {\n payload.forEach((value: any) => {\n value.dateWhen = moment(value.dateWhen).format(this.dateFormat);\n });\n\n this.onGridLoad(payload);\n\n this.loading = false;\n }\n\n public getMenuActions(rowData: any) {\n return [\n {\n label: this.translateService.instant(\"hcm.payroll.employees_image_cropper_view\"),\n command: () => {\n const dateWhen = rowData && rowData.dateWhen && moment(rowData.dateWhen, this.dateFormat).format(\"YYYY-MM-DD\");\n if (this.withSidebar)\n this.router.navigate([`historical-bank-account/${ dateWhen }`], {\n relativeTo: this.activatedRoute,\n });\n else\n this.enableView.emit(dateWhen);\n },\n },\n {\n label: this.translateService.instant(\"hcm.payroll.delete\"),\n command: () => {\n if (this.isAllowToDeleteHistorical && rowData) {\n this.delete(rowData.id, rowData.dateWhen);\n } else {\n this.messageService.add({\n severity: \"error\",\n summary: this.translateService.instant(\"hcm.payroll.error\"),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n });\n }\n },\n },\n ];\n }\n\n public delete(id: any, dateWhen: string) {\n if (id === this.lastRecord.id) {\n const dateWhenToDto = moment(dateWhen, this.dateFormat).format(\"YYYY-MM-DD\");\n this.confirmationService.confirm({\n message: `${ this.translateService.instant(\n \"hcm.payroll.employees_movimentation_historical_bank_account_question_confirm_delete\",\n ) }?`,\n accept: () => {\n this.loading = true;\n const service = this.withSidebar ? ServiceType.PAYROLL : ServiceType.DEPENDENT;\n this.historicalBankAccountListService\n .remove(this.employeeId, dateWhenToDto, service, this.dependentId)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(\n () => {\n this.messageService.add({\n severity: \"success\",\n summary: this.translateService.instant(\"hcm.payroll.success\"),\n detail: this.translateService.instant(\"hcm.payroll.employees_movimentation_historical_bank_account_remove\"),\n });\n this.parameters = (this.parameters && { ...this.parameters }) || {};\n },\n () => {\n this.messageService.add({\n severity: \"error\",\n summary: this.translateService.instant(\"hcm.payroll.error\"),\n detail: this.translateService.instant(\"hcm.payroll.employees_movimentation_historical_bank_account_error_remove\"),\n });\n this.loading = false;\n },\n );\n },\n });\n } else {\n this.messageService.add({\n severity: \"error\",\n summary: this.translateService.instant(\"hcm.payroll.error\"),\n detail: this.translateService.instant(\"hcm.payroll.not_allowed_delete_last\"),\n });\n }\n }\n\n public add() {\n if (this.isAllowToAddHistorical) {\n this.router.navigate([\"historical-irrf-new\"], {\n relativeTo: this.activatedRoute,\n });\n } else {\n this.messageService.add({\n severity: \"error\",\n summary: this.translateService.instant(\"hcm.payroll.error\"),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n });\n }\n }\n\n private onGridLoad(payload: any) {\n if (payload && payload.length) {\n this.lastRecord = payload[0];\n }\n }\n\n private get isAllowToAddHistorical() {\n return (\n this.permission[\"incluir\"]\n );\n }\n\n private get isAllowToDeleteHistorical() {\n return (\n this.permission[\"excluir\"]\n );\n }\n\n public get scopedActions() {\n return this.getMenuActions.bind(this);\n }\n\n @Input()\n public set reloadList(condition: boolean) {\n if (condition) {\n this.loading = true;\n this.parameters = (this.parameters && { ...this.parameters }) || {};\n }\n }\n\n}\n","import { CommonModule } from \"@angular/common\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { ButtonModule, LoadingStateModule } from \"@seniorsistemas/angular-components\";\nimport { AutoCompleteModule } from \"primeng/autocomplete\";\nimport { ConfirmDialogModule } from \"primeng/confirmdialog\";\nimport { TableModule } from \"primeng/table\";\nimport { TooltipModule } from \"primeng/tooltip\";\nimport { DataListRestModule } from \"../data-list-rest/index\";\n\nimport { SharedModule } from \"../shared/shared.module\";\nimport { HistoricalBankAccountListComponent } from \"./historical-bank-account-list.component\";\nimport { HistoricalBankAccountListService } from \"./historical-bank-account-list.service\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n HttpClientModule,\n AutoCompleteModule,\n SharedModule,\n ReactiveFormsModule,\n TableModule,\n ButtonModule,\n TooltipModule,\n LoadingStateModule,\n DataListRestModule,\n ConfirmDialogModule,\n ],\n declarations: [HistoricalBankAccountListComponent],\n providers: [HistoricalBankAccountListService],\n exports: [HistoricalBankAccountListComponent],\n})\nexport class HistoricalBankAccountListModule {\n}\n","import { Operators } from '../enums';\n\nexport class EntityODataParameter {\n private _field: string;\n private _operation: Operators;\n private _value: any;\n\n constructor(entityODataParameter: { field: string; value: string; operation?: Operators }) {\n this.field = entityODataParameter.field;\n this.value = entityODataParameter.value;\n this.operation = entityODataParameter.operation;\n }\n\n set field(value) {\n this._field = value;\n }\n\n get field() {\n return this._field;\n }\n\n set operation(value) {\n this._operation = value;\n }\n\n get operation() {\n return this._operation;\n }\n\n set value(value) {\n this._value = value;\n }\n\n get value() {\n return this._value;\n }\n\n public toString(): string {\n if (this.operation === Operators.CONTAINING) {\n return `${this.operation}(lower(${this.field}), lower(${this.value}))`;\n }\n return `${this.field} ${this.operation || ''} ${this.value}`;\n }\n}\n","import { AbstractControl, Validators, ValidatorFn, ValidationErrors } from \"@angular/forms\";\nimport { CalendarLocaleOptions } from \"@seniorsistemas/angular-components\";\nimport * as _moment from \"moment\";\nimport { unitOfTime } from \"moment\";\nimport { CompareType } from \"../../../core/enums\";\nimport { DateValidateOptions, DateCompareOptions } from \"../../../core/interfaces\";\nimport { removeCharacteresSpecials } from \"../helpers\";\n\nconst moment = _moment;\nconst dateStartG5 = moment('31/12/1900', 'DD/MM/YYYY');\nconst dateEndG5 = moment('04/06/2080', 'DD/MM/YYYY');\n\nexport class DateValidator {\n constructor() { }\n\n /**\n * Validador que verifica se a data está no formato correto.\n * @param dateFormat Formato da data\n * @param options Opções para validar a data\n * @returns Objeto no formato { invalidDate: true } indicando que a data não é válida\n */\n static isValidDate(dateFormat: string, options?: DateValidateOptions): ValidatorFn {\n const validator: ValidatorFn = (control: AbstractControl): Validators => {\n const useG5DateRange = options && options.hasOwnProperty('useG5DateRange') ? options.useG5DateRange : true;\n const value = removeCharacteresSpecials(control.value);\n dateFormat = removeCharacteresSpecials(dateFormat);\n if (value && dateFormat && value.length === dateFormat.length && !control.value.includes('_')) {\n const dateValue = moment(value, dateFormat);\n const valid = dateValue.isValid();\n const isValidRange = useG5DateRange ? dateValue.isBetween(dateStartG5, dateEndG5, null, '[]') : true;\n return valid && isValidRange ? null : { invalidDate: true };\n }\n return null;\n };\n return validator;\n }\n /**\n * Validador que verifica se data inserida no formulário é inferior à data informada.\n * @param compareToDate Data a ser comparada.\n * @param dateFormat Informações do local\n * @param granularity Granularidade da comparação. Ex.: 'day', 'mounth', 'year'.\n * @returns Objeto no formato { lowerDate: true } indicando que a data é menor\n */\n static isDateLower(compareToDate: string, dateFormat: string, granularity: unitOfTime.StartOf = 'day'): ValidatorFn {\n const options: DateCompareOptions = { compareName: \"lowerDate\", granularity: granularity };\n const validator = this.isValidDateCompare(compareToDate, dateFormat, CompareType.isBefore, options);\n return validator;\n }\n\n /**\n * Validador genérico usando comparação entre datas\n * @param compareToDate Data a ser comparada\n * @param dateFormat Informações do local\n * @param compareType Tipo de comparação\n * @param options Opções para a comparação\n * @returns Objeto no formato { nomeChave: true } indicando que a data não é válida\n */\n static isValidDateCompare(compareToDate: string, dateFormat: string, compareType: CompareType, options?: DateCompareOptions):\n ValidatorFn {\n const validator: ValidatorFn = (control: AbstractControl): Validators => {\n const value = removeCharacteresSpecials(control.value);\n dateFormat = removeCharacteresSpecials(dateFormat);\n if (value && dateFormat && value.length === dateFormat.length && !control.value.includes('_')) {\n const referenceDate = moment(value, dateFormat);\n const compareTo = moment(compareToDate, dateFormat);\n return this.dateCompare(referenceDate, compareTo, compareType, options);\n }\n return null;\n };\n return validator;\n }\n\n /**\n * Retorna o formato da data de acordo com o local\n * @param calendar Informações de calendário\n * @param removeDayPart Remove os dias do formato da data (Opcional)\n * @returns Exemplo de retornos 'DDMMYYYY', 'MMYYYY', ou seja, retorna o formato somente com letras\n */\n static getDateFormatFromLocale(calendar: CalendarLocaleOptions, removeDayPart?: boolean): string {\n const dateFormat = calendar && calendar.dateFormat;\n if (dateFormat) {\n let result = dateFormat.replace(/[y]/g, \"YY\").replace(/[^a-zA-Z]/g, \"\").toUpperCase();\n if (removeDayPart) {\n result = result.replace(\"DD\", \"\");\n }\n return result;\n }\n return null;\n }\n\n /**\n * Retorna o formato da data/hora de acordo com o local\n * @param calendar Informações de calendário\n * @returns Exemplo de retornos 'DD/MM/YYYY HH:mm:ss'\n */\n static getDateTimeFormatFromLocale(calendar: CalendarLocaleOptions): string {\n if (calendar) {\n let dateFormat = calendar.dateFormat.toString();\n dateFormat = dateFormat.replace(/[y]/g, \"YY\").toUpperCase();\n dateFormat = dateFormat + \" HH:mm:ss\";\n\n return dateFormat;\n }\n return null;\n }\n\n /**\n * Retorna o formato da data de acordo com o local\n * @param calendar Informações de calendário\n * @returns Exemplo de retornos 'DD/MM/YYYY'\n */\n static getDateFormatFromCalendar(calendar: CalendarLocaleOptions): string {\n if (calendar && calendar.dateFormat) {\n let dateFormat = calendar.dateFormat.toString();\n dateFormat = dateFormat.replace(/[y]/g, \"YY\").toUpperCase();\n\n return dateFormat;\n }\n return null;\n }\n\n /**\n * Método auxiliar que realiza a comparação entre as datas e retorna um objeto caso a validação seja válida\n * @param referenceDate Data de referência para a comparação\n * @param compareToDate Data a ser comparada.\n * @param compareType Tipo de comparação.\n * @param options Opções para a comparação\n * @returns Objeto no formato { nomeChave: true } indicando que a data não é válida\n */\n private static dateCompare(referenceDate: any, compareToDate: any, compareType: CompareType, options?: DateCompareOptions):\n ValidationErrors {\n const compareTypeName: string = compareType === CompareType.isNotSame ? CompareType.isSame : compareType;\n const granularity = options && options.granularity ? options.granularity : \"day\";\n\n let comparison = referenceDate[compareTypeName](compareToDate, granularity);\n comparison = compareType === CompareType.isNotSame ? !comparison : comparison;\n if (comparison) {\n const keyName = options && options.compareName ? options.compareName : compareType;\n const result = {};\n result[keyName] = true;\n return result;\n }\n return null;\n }\n\n /**\n * Retorna uma mascara com as barras Ex: ‘DD/MM/YYYY‘\n * @param calendar\n */\n static getFormatDateWithBar(calendar: CalendarLocaleOptions): string {\n if (calendar && calendar.dateFormat) {\n let dateFormat = calendar.dateFormat.toString();\n dateFormat = dateFormat\n .replace(\"dd\", \"DD\")\n .replace(\"mm\", \"MM\")\n .replace(\"yy\", \"YYYY\");\n return dateFormat;\n }\n return null;\n }\n\n}\n","/**\n * WorkflowIntegrator\n * @version 1.0\n * @releaseDate 2020-05-27\n * @author Kallico Fróis <kallico.silva@senior.com.br>\n * @thanks Adriner Andrade <adriner.andrade@senior.com.br>\n *\n * @description Módulo desenvolvido para facilitar a integração entre a API do\n * Senior Workflow e Formulários WEB. A ferramenta foi desenvolvida para\n * interferir o mínimo possível no formulário, desacoplando seus métodos,\n * tratando as lógicas dentro da ferramenta, minimizando os impactos no\n * componente na qual é implementada.\n */\n\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\ndeclare const workflowCockpit: any;\n\nexport interface TaskData {\n processName: string;\n taskName: string;\n}\n\nexport interface NextAction {\n connectsWithAutomaticGateway: boolean; // Se a ação está associada a algum elemento de decisão automática.\n finish: boolean; // Se a ação finaliza a execução do processo.\n name: string; // Nome da ação a ser realizada.\n}\n\n@Injectable()\nexport class WorkflowIntegrator {\n private workflowCockpit: any;\n private _isRequestNew: boolean;\n private _nextAction: NextAction;\n private _nextActionName: string;\n private _taskData: TaskData;\n private _isFinishing: any;\n private _processVariables: object = {};\n private _workflowPayload: object = {};\n\n private onLoadActions: object;\n private onSubmitActions: object;\n private onRollbackActions: object;\n public processInstanceId: BehaviorSubject<number> = new BehaviorSubject(null);\n\n /**\n * ### WorkflowIntegrator - Integrador de componentes ao Senior Workflow.\n *\n * @Description\n * Instancia a classe do integrador com Senior Workflow.\n * Ao instanciar a classe automaticamente as Actions são resetadas.\n *\n * @Actions\n * As Actions são ações a serem executadas durante o ciclo de vida do Workflow\n * Estas podem ser definidas usando os métodos:\n * `addOnLoadAction()`, `addOnSubmitAction()`, `addOnRollbackAction()`.\n *\n *\n */\n constructor() {\n this.resetActions();\n }\n\n /**\n * Instancia o workflowCockpit (API de integração)\n *\n * @description\n * Ao executar este método, as `onLoadAtions` serão executadas!\n * Se houverem ações para executar logo após o carregamento do formulário no\n * Senior Workflow as **ações devem ser adicionadas anteriormente** à\n * chamada dessa função, através do método `addOnLoadAction()`.\n *\n */\n public init(): void {\n this.workflowCockpit = workflowCockpit({\n init: async (data: any, info: any): Promise<any> => {\n this._isRequestNew = info && info.isRequestNew();\n this._taskData = info && (await info.getTaskData());\n\n if (!this._isRequestNew) {\n const processVariablesFromWorkflow = await info.getInfoFromProcessVariables();\n\n this.addProcessVariable(\n \"processVariablesFromWorkflow\",\n processVariablesFromWorkflow\n );\n }\n\n this.processInstanceId.next(data.processInstanceId);\n\n return await this._onLoadWorkflow(data, info);\n },\n onSubmit: async (data: any, info: any): Promise<object> => {\n this._nextAction = data && (await data.nextAction);\n this._isFinishing = this._nextAction.finish;\n this._nextActionName = this._nextAction.name;\n\n\n await this._onSubmitWorkflow(data, info);\n\n return this._workflowPayload;\n },\n onError: async (data: any, info: any): Promise<any> => {\n await this._onRollbackWorkflow(data, info);\n },\n });\n }\n\n /** # Workflow LOAD Section # **/\n\n /**\n * Método chamado no carregamento do formulário no Senior Workflow.\n *\n ** @important\n * Deve finalizar chamando o método `_runActions(this.onSbumitActions)`.\n */\n private async _onLoadWorkflow(data: any, info: any): Promise<any> {\n return await this._runActions(this.onLoadActions);\n }\n\n /** # Workflow SUBMIT Section # **/\n\n /**\n * Método chamado ao clicar no botão `Enviar` do Senior Workflow.\n *\n * @important\n * Deve iniciar chamando o método `_runActions(this.onSbumitActions)`.\n */\n private async _onSubmitWorkflow(data: any, info: any): Promise<any> {\n return await this._runActions(this.onSubmitActions);\n }\n\n /** # Workflow ROLLBACK Section # **/\n\n /**\n * Método chamado ao ocorrer um erro no processamento do formulário por\n * parte do Senior Workflow\n *\n * * @important\n * Deve iniciar chamando o método `_runActions(this.onRollbackActions)`.\n */\n private async _onRollbackWorkflow(data: any, info: any): Promise<any> {\n return await this._runActions(this.onRollbackActions);\n }\n\n /** # ACTIONS Section # **/\n\n /**\n * Reseta os objetos com as Ações a serem efetuadas no ciclo de vida do\n * Senior Workflow.\n */\n public resetActions(): void {\n this.onLoadActions = {};\n this.onSubmitActions = {};\n this.onRollbackActions = {};\n }\n\n /**\n * Executa as ações do objeto passado nos argumentos\n *\n * @param actionsToRun Objeto onde que deve conter uma chave\n * identificadora e um valor com um *método* ou *promise* a ser executada/\n * resolvida\n */\n private async _runActions(actionsToRun: object): Promise<any> {\n const result: object = {};\n\n await Promise.all(\n Object.entries(actionsToRun).map(async ([key, value]) => {\n try {\n result[key] = await value();\n return;\n } catch (err) {\n throw Error(err);\n }\n })\n );\n\n return result;\n }\n\n /** # Actions SETTERs # */\n\n /**\n * Adiciona um ação à pilha para execução no momento do carregamento do\n * formulário no Senior Workflow;\n *\n * @important\n * As Ações de carregamento **devem ser adicionadas antes da chamada do\n * método** `init()`!\n *\n * @param id Nome identificador para a callback a ser executada;\n * @param callback Função a ser executada;\n */\n public addOnLoadAction(id: string, callback: any) {\n this.onLoadActions[id] = callback;\n }\n\n /**\n * Adiciona um ação à pilha para execução no momento do envio do formulário\n * para o Senior Workflow\n *\n * @param id Nome identificador para a callback a ser executada;\n * @param callback Função a ser executada;\n */\n public addOnSubmitAction(id: string, callback: any) {\n this.onSubmitActions[id] = callback;\n }\n\n /**\n * Adiciona um ação à pilha para execução em caso de haver um erro no\n * processamento do formulário por parte do Senior Workflow.\n *\n * @param id Nome identificador para a callback a ser executada;\n * @param callback Função a ser executada;\n */\n public addOnRollbackAction(id: string, callback: any) {\n this.onRollbackActions[id] = callback;\n }\n\n /**\n * Adiciona um objeto às Variáveis do Processo (`_processVariables`)\n *\n * @param id Nome identificador do objeto a ser adicionado\n * @param processVariable Objeto a ser adicionado as variáveis do processo\n */\n public addProcessVariable(id: string, processVariable: any): void {\n try {\n this._processVariables[id] = processVariable;\n } catch (err) {\n const error = {\n erro: err,\n message: `Não foi possível adicionar a variável ${id} às variáveis do processo.`,\n };\n throw error;\n }\n }\n\n /**\n * Define o objecto payload que será enviado ao Senior Worfkflow quando o usuário\n * clicar no botão enviar.\n *\n * @param payload Objeto a ser enviado para o Workflow\n */\n public setWorkflowPayload(payload: object): void {\n\n this._workflowPayload = payload;\n\n return;\n }\n\n /** # Actions GETTERs # */\n\n public get loadActions(): object {\n return this.onLoadActions;\n }\n\n public get submitActions(): object {\n return this.onSubmitActions;\n }\n\n public get rollbackActions(): object {\n return this.onRollbackActions;\n }\n\n /** # GETTERs # **/\n\n public get isRequestNew(): boolean {\n return this._isRequestNew;\n }\n\n public get isFinishing(): boolean {\n return this._isFinishing;\n }\n\n public get nextActionName(): string {\n return this._nextActionName;\n }\n\n public get taskData(): TaskData {\n return this._taskData;\n }\n\n public get processVariables(): any {\n const p = new Promise((resolve, reject) => {\n if (this._processVariables) {\n resolve(this._processVariables);\n } else {\n reject(\"Não foram encontradas variáveis para o processo\");\n }\n });\n\n p.then((data: any) => {\n this._processVariables = data;\n }).catch((err: any) => {\n throw err;\n });\n\n return this._processVariables;\n }\n}\n","import { OnDestroy } from \"@angular/core\";\nimport { Component, OnInit } from \"@angular/core\";\nimport { Router, ActivatedRoute } from \"@angular/router\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { WorkflowDataService } from \"../../services/workflow-data.service\";\n\n\n@Component({\n selector: \"lib-employee-selector\",\n templateUrl: \"./employee-selector.component.html\",\n styleUrls: [\"./employee-selector.component.scss\"],\n})\nexport class EmployeeSelectorComponent implements OnInit, OnDestroy {\n public results: any[];\n public employeeSelected: any;\n private _useWorkflow: boolean;\n\n private ngUnsubscribe = new Subject();\n private _routeEndpoint: string;\n\n constructor(\n private router: Router,\n private activatedRoute: ActivatedRoute,\n private workflowDataService: WorkflowDataService\n ) {}\n\n public ngOnInit(): void {\n this.registerSubscribers();\n }\n\n public registerSubscribers(): void {\n this.activatedRoute.data.pipe(takeUntil(this.ngUnsubscribe)).subscribe((data) => {\n this.useWorkflow = !!(data && data.useWorkflow);\n this.routeEndpoint = data && data.routeEndpoint;\n\n if (this.useWorkflow) {\n this.workflowDataService.setUseWorkflow(this.useWorkflow);\n }\n });\n }\n\n public onSelectEmployee(): void {\n const { tableId } = this.employeeSelected;\n\n if (tableId) {\n this.navigate(tableId);\n }\n }\n\n private navigate(employeeId: string): void {\n this.router.navigate([`workflow/${employeeId}/${this._routeEndpoint}`]);\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next(true);\n this.ngUnsubscribe.complete();\n }\n\n public set useWorkflow(v: boolean) {\n this._useWorkflow = v;\n }\n\n public get useWorkflow(): boolean {\n return this._useWorkflow;\n }\n\n public set routeEndpoint(routeEndpoint: string) {\n this._routeEndpoint = routeEndpoint;\n }\n\n public get routeEndpoint(): string {\n return this._routeEndpoint;\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { PanelModule } from \"primeng/panel\";\nimport { InputRestAutoCompleteEmployeeModelModule } from \"../input-rest-auto-complete-employee-model/index\";\nimport { SharedModule } from \"../shared/shared.module\";\n\nimport { EmployeeSelectorComponent } from \"./employee-selector.component\";\n\nexport { WorkflowDataService } from \"../../services/workflow-data.service\";\n\n@NgModule({\n imports: [SharedModule, PanelModule, InputRestAutoCompleteEmployeeModelModule],\n declarations: [EmployeeSelectorComponent],\n exports: [EmployeeSelectorComponent],\n})\nexport class EmployeeSelectorModule {}\n","import { Component, Input } from \"@angular/core\";\nimport { DivergenceArray } from \"../../services/form-comparator.service\";\n\n@Component({\n selector: \"from-to\",\n templateUrl: \"./from-to.component.html\",\n})\nexport class FromToComponent {\n @Input()\n divergentFormData: DivergenceArray[];\n\n constructor() {}\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FromToComponent } from \"./from-to.component\";\nimport { PanelModule } from \"primeng/panel\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\nimport { InputTextModule } from \"primeng/inputtext\";\n\n@NgModule({\n imports: [CommonModule, PanelModule, TranslateModule, ReactiveFormsModule, InputTextModule],\n declarations: [FromToComponent],\n exports: [FromToComponent],\n})\nexport class FromToModule {}\n","export class FormatUtilsService {\n\n /**\n * Retorna o CPF formatado\n * @param cpf CPF\n */\n static getFormattedCpf(cpf: string): string {\n if (cpf) {\n return cpf\n .replace(/\\D/g, \"\")\n .replace(/(\\d{3})(\\d)/, \"$1.$2\")\n .replace(/(\\d{3})(\\d)/, \"$1.$2\")\n .replace(/(\\d{3})(\\d)/, \"$1-$2\");\n }\n return null;\n }\n\n /**\n * Retorna o CPF formatado\n * @param cpf CPF\n */\n static getFormattedCpfEdited(cpf: string): string {\n if (!cpf) return '';\n\n cpf = cpf.replace(/\\D/g, '').slice(0, 11);\n\n if (cpf.length > 9) {\n cpf = cpf.replace(/^(\\d{3})(\\d{3})(\\d{3})(\\d{2})$/, \"$1.$2.$3-$4\");\n } else if (cpf.length > 6) {\n cpf = cpf.replace(/^(\\d{3})(\\d{3})(\\d{0,3})$/, \"$1.$2.$3\");\n } else if (cpf.length > 3) {\n cpf = cpf.replace(/^(\\d{3})(\\d{0,3})$/, \"$1.$2\");\n }\n\n return cpf;\n }\n\n /**\n * Retorna o CNPJ formatado\n * @param cnpj CNPJ\n */\n static getFormattedCnpj(cnpj: string): string {\n if (cnpj) {\n return cnpj\n .replace(/\\D/g, \"\")\n .replace(/(\\d{2})(\\d)/, \"$1.$2\")\n .replace(/(\\d{3})(\\d)/, \"$1.$2\")\n .replace(/(\\d{3})(\\d)/, \"$1/$2\")\n .replace(/(\\d{4})(\\d)/, \"$1-$2\");\n }\n return null;\n }\n\n /**\n * Retorna o CNPJ formatado\n * @param cnpj CNPJ\n */\n static getFormattedCnpjEdited(cnpj: string): string {\n if (!cnpj) return '';\n\n cnpj = cnpj.replace(/\\D/g, '').slice(0, 14);\n\n if (cnpj.length > 12) {\n cnpj = cnpj.replace(/^(\\d{2})(\\d{3})(\\d{3})(\\d{4})(\\d{2})$/, \"$1.$2.$3/$4-$5\");\n } else if (cnpj.length > 8) {\n cnpj = cnpj.replace(/^(\\d{2})(\\d{3})(\\d{3})(\\d{0,4})$/, \"$1.$2.$3/$4\");\n } else if (cnpj.length > 5) {\n cnpj = cnpj.replace(/^(\\d{2})(\\d{3})(\\d{0,3})$/, \"$1.$2.$3\");\n } else if (cnpj.length > 2) {\n cnpj = cnpj.replace(/^(\\d{2})(\\d{0,3})$/, \"$1.$2\");\n }\n\n return cnpj;\n }\n\n /**\n * Retorna a mascara do CPF/CNPJ\n * @param key Valores possíveis são CPF ou CNPJ\n */\n static getCpfCnpjMask(key: string) {\n switch (key) {\n case \"CPF\":\n return \"999.999.999-99\";\n case \"CNPJ\":\n return \"99.999.999/9999-99\";\n default:\n return \"\";\n }\n }\n\n /**\n * Método para formatar o número de inscrição do cliente.\n * @param subscriptionNumber\n * @param pixKeyType\n * @returns\n */\n static getFormattedSubscriptionNumber(subscriptionNumber: string, pixKeyType: any): string {\n if (!subscriptionNumber || !pixKeyType) return subscriptionNumber;\n\n switch (pixKeyType) {\n case 'CNPJ':\n return this.getFormattedCnpjEdited(subscriptionNumber);\n case 'CPF':\n return this.getFormattedCpfEdited(subscriptionNumber);\n default:\n return subscriptionNumber;\n }\n }\n\n /**\n * Metódo para formatar o número de telefone.\n * @param telephoneNumber String contendo o número de telefone.\n * @returns String formatada com o número de telefone.\n */\n static getFormattedTelephoneNumber(telephoneNumber: string): string {\n let tel = telephoneNumber.replace(/\\D/g, '');\n tel = tel.replace(/^0/, '');\n if (tel.length > 10) {\n // ########## -> (##) #####-####\n tel = tel.replace(/^(\\d{2})?(\\d{5})?(\\d{4}).*/, '($1) $2-$3');\n } else if (tel.length > 9) {\n // AA######### -> (AA) ####-####\n tel = tel.replace(/^(\\d{2})?(\\d{4})?(\\d{4}).*/, '($1) $2-$3');\n } else if (tel.length > 5) {\n // ####### -> (##) ####-#\n tel = tel.replace(/^(\\d{2})?(\\d{4})?(\\d{0,4}).*/, '($1) $2-$3');\n } else if (tel.length > 1) {\n // #### -> (##) ##\n tel = tel.replace(/^(\\d{2})?(\\d{0,5}).*/, '($1) $2');\n } else {\n if (tel !== '') { tel = tel.replace(/^(\\d*)/, '($1'); }\n }\n\n return tel;\n }\n\n /**\n * Metódo para formatar a porcentagem para 2 casas decimais.\n * @param value Número a ser formatado.\n */\n static getFormattedPercentage(value: string): string {\n return parseFloat(value).toFixed(2).replace('.', ',') + '%';\n }\n\n /**\n * Metódo para formatar o número de telefone de um campo Input.\n * @param event Evento do Input do campo de telefone.\n */\n static formatTelephoneInputEvent(event: any) {\n let telephoneNumber = event.target.value;\n\n // Permite Backspace para usuário remover \")\" e \"-\"\n if (event.keyCode === 8 && (telephoneNumber.length === 9 || telephoneNumber.length === 4 || telephoneNumber.length === 3)) {\n return;\n }\n\n event.target.value = FormatUtilsService.getFormattedTelephoneNumber(telephoneNumber);\n }\n\n /**\n * Formata o campo de input de CPF em tempo real.\n * @param event Evento do input\n */\n static formatCpfInputEvent(event: any): void {\n let cpf = event.target.value;\n\n // Permite apagar nos pontos sensíveis\n if (event.keyCode === 8 && (\n cpf.length === 4 || cpf.length === 8 || cpf.length === 12)) {\n return;\n }\n\n event.target.value = FormatUtilsService.getFormattedCpfEdited(cpf);\n }\n\n /**\n * Formata o campo de input de CNPJ em tempo real.\n * @param event Evento do input\n */\n static formatCnpjInputEvent(event: any): void {\n let cnpj = event.target.value;\n\n // Permite apagar nos pontos sensíveis\n if (event.keyCode === 8 && (\n cnpj.length === 3 || cnpj.length === 7 || cnpj.length === 11 || cnpj.length === 16)) {\n return;\n }\n\n event.target.value = FormatUtilsService.getFormattedCnpjEdited(cnpj);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SharedStateService {\n private hideFieldSubject = new BehaviorSubject<boolean>(true);\n hideField$ = this.hideFieldSubject.asObservable();\n\n private showButtonSubject = new BehaviorSubject<boolean>(true);\n showButton$ = this.showButtonSubject.asObservable();\n\n private saveButtonSubject = new BehaviorSubject<boolean>(true);\n saveButton$ = this.saveButtonSubject.asObservable();\n\n private showEditMode = new BehaviorSubject<boolean>(true);\n showEditMode$ = this.showEditMode.asObservable();\n\n setHideField(value: boolean) {\n this.hideFieldSubject.next(value);\n }\n\n setShowButton(value: boolean) {\n this.showButtonSubject.next(value);\n }\n\n setSaveButton(value: boolean) {\n this.saveButtonSubject.next(value);\n }\n\n setShowEditMode(value: boolean) {\n this.showEditMode.next(value);\n }\n}\n","import { Validators, AbstractControl } from \"@angular/forms\";\n\nexport class GenericValidator {\n constructor() { }\n\n /**\n * Valida o CEI (Cadastro específico de INSS) digitado.\n */\n static isValidCei(control: AbstractControl): Validators {\n const cei = control.value;\n\n if (!cei) return null;\n else if (cei.length != 11) return null;\n\n const multiplicadorBase = \"3298765432\";\n let total = 0;\n let resto = 0;\n let multiplicando = 0;\n let multiplicador = 0;\n\n if (\n cei.length !== 11 ||\n cei === \"00000000000\" ||\n cei === \"11111111111\" ||\n cei === \"22222222222\" ||\n cei === \"33333333333\" ||\n cei === \"44444444444\" ||\n cei === \"55555555555\" ||\n cei === \"66666666666\" ||\n cei === \"77777777777\" ||\n cei === \"88888888888\" ||\n cei === \"99999999999\"\n )\n return { invalidCei: true };\n else {\n for (let i = 0; i < 10; i++) {\n multiplicando = parseInt(cei.substring(i, i + 1), 10);\n multiplicador = parseInt(multiplicadorBase.substring(i, i + 1), 10);\n total += multiplicando * multiplicador;\n }\n\n resto = 11 - (total % 11);\n resto = resto === 10 || resto === 11 ? 0 : resto;\n\n const digito = parseInt(\"\" + cei.charAt(10), 10);\n return resto === digito ? null : { invalidCei: true };\n }\n }\n\n /**\n * Valida se o CPF é valido. Deve-se ser informado o cpf sem máscara.\n */\n static isValidCpf(control: AbstractControl): Validators {\n const cpf = control.value;\n if (cpf) {\n let numbers, digits, sum, i, result, equalDigits;\n equalDigits = 1;\n if (cpf.length < 11) {\n return null;\n }\n\n for (i = 0; i < cpf.length - 1; i++) {\n if (cpf.charAt(i) !== cpf.charAt(i + 1)) {\n equalDigits = 0;\n break;\n }\n }\n if (!equalDigits) {\n numbers = cpf.substring(0, 9);\n digits = cpf.substring(9);\n sum = 0;\n for (i = 10; i > 1; i--) {\n sum += numbers.charAt(10 - i) * i;\n }\n result = sum % 11 < 2 ? 0 : 11 - (sum % 11);\n if (result !== Number(digits.charAt(0))) {\n return { cpfNotValid: true };\n }\n numbers = cpf.substring(0, 10);\n sum = 0;\n for (i = 11; i > 1; i--) {\n sum += numbers.charAt(11 - i) * i;\n }\n result = sum % 11 < 2 ? 0 : 11 - (sum % 11);\n if (result !== Number(digits.charAt(1))) {\n return { cpfNotValid: true };\n }\n return null;\n } else {\n return { cpfNotValid: true };\n }\n }\n return null;\n }\n\n /**\n * Valida se o CNPJ é valido. Deve-se ser informado o cpf sem máscara.\n */\n static isValidCnpj(control: AbstractControl): Validators {\n let cnpj = control.value;\n\n if (cnpj) {\n let size, numbers, digits, sum, pos, result;\n cnpj = cnpj.replace(/[^\\d]+/g, '');\n\n if (cnpj.length !== 14) {\n return null;\n }\n\n // Elimina CNPJs invalidos conhecidos\n if (\n cnpj === '00000000000000' ||\n cnpj === '11111111111111' ||\n cnpj === '22222222222222' ||\n cnpj === '33333333333333' ||\n cnpj === '44444444444444' ||\n cnpj === '55555555555555' ||\n cnpj === '66666666666666' ||\n cnpj === '77777777777777' ||\n cnpj === '88888888888888' ||\n cnpj === '99999999999999'\n ) {\n return { cnpjNotValid: true };\n }\n\n // Valida DVs\n size = cnpj.length - 2;\n numbers = cnpj.substring(0, size);\n digits = cnpj.substring(size);\n sum = 0;\n pos = size - 7;\n for (let i = size; i >= 1; i--) {\n sum += numbers.charAt(size - i) * pos--;\n if (pos < 2) {\n pos = 9;\n }\n }\n result = sum % 11 < 2 ? 0 : 11 - (sum % 11);\n if (result !== Number(digits.charAt(0))) {\n return { cnpjNotValid: true };\n }\n\n size = size + 1;\n numbers = cnpj.substring(0, size);\n sum = 0;\n pos = size - 7;\n for (let i = size; i >= 1; i--) {\n sum += numbers.charAt(size - i) * pos--;\n if (pos < 2) {\n pos = 9;\n }\n }\n result = sum % 11 < 2 ? 0 : 11 - (sum % 11);\n if (result !== Number(digits.charAt(1))) {\n return { cnpjNotValid: true };\n }\n\n return null;\n }\n return null;\n }\n\n /**\n * Válida o número de telefone da chave PIX.\n */\n static isValidPhoneNumber(control: AbstractControl): Validators {\n let cellPhoneKey = control.value || '';\n cellPhoneKey = cellPhoneKey.replace(/[\\s()-]/g, '');\n const regexNumberTelephone = /^[1-9][\\d]{1,2}\\d{8,10}$/;\n\n const isValidNumberTelephone = regexNumberTelephone.test(cellPhoneKey);\n\n return isValidNumberTelephone ? null : { invalidPhoneNumber: true };\n }\n\n /**\n * Valida o email da chave PIX.\n */\n static isValidEmail(control: AbstractControl): Validators {\n const emailKey = control.value;\n const regexValidEmail = /^[\\w-\\.]+@[\\w-]+(\\.[\\w-]{2,4}){1,2}$/;\n\n const isValidEmail = regexValidEmail.test(emailKey);\n\n return isValidEmail ? null : { invalidEmail: true };\n }\n}\n","import {\n AbstractControl,\n FormBuilder,\n FormGroup,\n ValidatorFn,\n Validators,\n } from \"@angular/forms\";\n import { GenericValidator } from \"../utils/generic-validators\";\n import { FormatUtilsService } from \"../utils/format-utils/format-utils.service\";\n\n export abstract class HistoricakPixAccountBase {\n protected formBuilder: FormBuilder;\n protected _paramsForm: FormGroup = new FormGroup({});\n protected _defaultCpfNumber: string = null;\n\n public initialValidatorOfPercentage: ValidatorFn[] = [Validators.required, Validators.min(0.01)];\n public pixAccountList: object[] = [];\n public maxValuePercentage = 100.0;\n public pixKeyType: string;\n public pixAccountFormGroup: FormGroup;\n public isShowPixKeyFieldValidatorMessage = false;\n\n constructor(formBuilder: FormBuilder) {\n this.formBuilder = formBuilder;\n this.createFormGroupBase();\n }\n\n public phoneMask(event: any): void {\n FormatUtilsService.formatTelephoneInputEvent(event);\n }\n\n public cpfMask(event: any): void {\n FormatUtilsService.formatCpfInputEvent(event);\n }\n\n public cnpjMask(event: any): void {\n FormatUtilsService.formatCnpjInputEvent(event);\n }\n\n public onChangePixKeyType(item: any, form?: FormGroup): void {\n if (!item || !item.key) return;\n\n this.pixKeyType = item.key;\n\n const targetForm = (typeof form !== 'undefined' && form !== null)\n ? form\n : this.pixAccountFormGroup;\n\n this.isShowPixKeyFieldValidatorMessage = true;\n\n const pixKeyControl = targetForm.get(\"pixKey\");\n if (pixKeyControl) {\n pixKeyControl.reset();\n }\n\n this.setPixKeyValidators(true, targetForm);\n\n if (item.key === \"CPF\") {\n this.setDefaultCpfPixKey(targetForm);\n }\n }\n\n public onClearPixKeyType(form?: FormGroup): void {\n var targetForm = (typeof form !== 'undefined' && form !== null)\n ? form\n : this.pixAccountFormGroup;\n\n this.isShowPixKeyFieldValidatorMessage = false;\n\n if (targetForm.get(\"pixKey\")) {\n targetForm.get(\"pixKey\").reset();\n }\n }\n\n public setDefaultCpfPixKey(form?: FormGroup): void {\n var targetForm = (typeof form !== 'undefined' && form !== null)\n ? form\n : this.pixAccountFormGroup;\n\n if (this._defaultCpfNumber) {\n if (targetForm.get(\"pixKey\")) {\n targetForm.get(\"pixKey\").setValue(this._defaultCpfNumber);\n }\n } else {\n var sheetDocument = this._paramsForm.get(\"sheetDocument\");\n if (sheetDocument && sheetDocument.get(\"cpfNumber\")) {\n var cpf = sheetDocument.get(\"cpfNumber\").value;\n if (cpf && targetForm.get(\"pixKey\")) {\n targetForm.get(\"pixKey\").setValue(cpf);\n }\n }\n }\n }\n\n protected createFormGroupBase(): void {\n this.pixAccountFormGroup = this.formBuilder.group({\n id: this.formBuilder.control(null),\n index: this.formBuilder.control(null),\n employee: this.formBuilder.control({ value: { tableId: null }, disabled: true }),\n dateChange: this.formBuilder.control(null),\n pixKeyType: this.formBuilder.control(null, Validators.required),\n pixKey: this.formBuilder.control(null),\n percentage: this.formBuilder.control(\n null,\n Validators.compose([\n ...this.initialValidatorOfPercentage,\n Validators.max(this.maxValuePercentage),\n ])\n ),\n externalId: this.formBuilder.control(null),\n customFields: this.formBuilder.control(null),\n });\n }\n\n protected setValidatorsAccordingList(\n pixAccountList: object[],\n index: number | null = null,\n isEditMode: boolean = true,\n form?: FormGroup\n ): void {\n var targetForm = (typeof form !== 'undefined' && form !== null)\n ? form\n : this.pixAccountFormGroup;\n\n this.pixAccountList = (pixAccountList && pixAccountList.length > 0)\n ? [].concat(pixAccountList)\n : [];\n\n var percentageIncluded: number[] = [];\n\n for (var i = 0; i < this.pixAccountList.length; i++) {\n var field: any = this.pixAccountList[i];\n if (field && field.percentage && i !== index) {\n percentageIncluded.push(field.percentage);\n }\n }\n\n this.beforeSetPixKeyTypeValidator(targetForm);\n this.setPixKeyValidators(isEditMode, targetForm);\n this.validatePercentageValid(percentageIncluded, targetForm);\n }\n\n protected beforeSetPixKeyTypeValidator(form: FormGroup): void {\n const control = form.get(\"pixKeyType\");\n\n if (this.pixAccountList && this.pixAccountList.length) {\n control.setValidators(\n Validators.compose([\n Validators.required,\n this.validateDuplicatePixKeyTypeBankAccount(this.pixAccountList),\n ])\n );\n } else {\n control.setValidators(Validators.required);\n }\n control.updateValueAndValidity();\n }\n\n protected setPixKeyValidators(isEditMode: boolean, form: FormGroup): void {\n const pixKey = form.get(\"pixKey\");\n switch (this.pixKeyType) {\n case \"TELEPHONE\":\n pixKey.setValidators(Validators.compose([Validators.required, GenericValidator.isValidPhoneNumber]));\n break;\n case \"EMAIL\":\n pixKey.setValidators(Validators.compose([Validators.required, GenericValidator.isValidEmail]));\n break;\n case \"CPF\":\n pixKey.setValidators(Validators.compose([Validators.required, GenericValidator.isValidCpf]));\n break;\n case \"CNPJ\":\n pixKey.setValidators(Validators.compose([Validators.required, GenericValidator.isValidCnpj]));\n break;\n case \"RANDOM_KEY\":\n pixKey.setValidators(Validators.required);\n break;\n default:\n pixKey.clearValidators();\n }\n\n if (isEditMode) {\n pixKey.enable();\n }\n\n pixKey.updateValueAndValidity();\n }\n\n protected validatePercentageValid(listValue: number[], form: FormGroup): void {\n const percentage = form.get(\"percentage\");\n this.maxValuePercentage = listValue.reduce((acc, val) => acc - val, 100.0);\n\n percentage.setValidators(\n Validators.compose([\n ...this.initialValidatorOfPercentage,\n Validators.max(this.maxValuePercentage),\n ])\n );\n\n percentage.updateValueAndValidity();\n }\n\n private validateDuplicatePixKeyTypeBankAccount(listCompare: object[]) {\n return (control: AbstractControl): { [key: string]: any } | null => {\n const value = control.value;\n const isDuplicate = listCompare.some(\n (field: any) =>\n value &&\n field.pixKeyType.key === \"BANK_ACCOUNT\" &&\n value.key === \"BANK_ACCOUNT\"\n );\n return isDuplicate ? { pixKeyTypeBankAccountDuplicate: true } : null;\n };\n }\n\n public get paramsForm(): FormGroup {\n return this._paramsForm;\n }\n\n public set paramsForm(value: FormGroup) {\n this._paramsForm = value;\n }\n\n public get defaultCpfNumber(): string {\n return this._defaultCpfNumber;\n }\n\n public set defaultCpfNumber(value: string) {\n this._defaultCpfNumber = value;\n }\n }\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { HttpClientService } from '../shared/http-client.service';\nimport { ServiceType } from '../../core/enums/serviceType';\n\n@Injectable()\nexport class HistoricalPixAccountService {\n constructor(private http: HttpClientService) {}\n\n query(path: string, body: object, service: ServiceType = ServiceType.PAYROLL): Observable<any> {\n return this.http.query(path, body, service);\n }\n\n enumQuery() {\n const path = 'enumQuery';\n const body = {\n names: ['PixKeyType']\n };\n\n return this.http.query(path, body, ServiceType.PAYROLL);\n }\n}\n","import {\n Component,\n OnInit,\n ViewChild,\n Input,\n ChangeDetectorRef,\n AfterViewInit,\n OnDestroy,\n EventEmitter,\n Output,\n OnChanges,\n SimpleChanges,\n} from \"@angular/core\";\nimport { FormGroup, FormBuilder, Validators } from \"@angular/forms\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { CustomFieldsComponent, NumberLocaleOptions } from \"@seniorsistemas/angular-components\";\nimport { compareValues, isValid, mountCustomToSave, verifyValidationsForm } from \"../utils/helpers\";\nimport { DirectionEnumeration } from \"../../core/enums\";\nimport { Subject } from \"rxjs\";\nimport { FormatUtilsService } from \"../utils/format-utils/format-utils.service\";\nimport { SharedStateService } from \"../shared/shared-state.service\";\nimport { HistoricakPixAccountBase } from \"./historical-pix-account-base\";\nimport { HistoricalPixAccountService } from \"./historical-pix-account.service\";\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: \"c-historical-pix-account\",\n templateUrl: \"./historical-pix-account.component.html\",\n styleUrls: [\"./historical-pix-account.component.scss\"],\n})\nexport class HistoricalPixAccountComponent extends HistoricakPixAccountBase implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n @ViewChild(CustomFieldsComponent, { static: false })\n public customFields: CustomFieldsComponent;\n @ViewChild('dataListPix', { static: false }) dataListPix: any;\n @Input()\n public formGroup: FormGroup;\n @Input()\n public fieldFormGroup: string;\n @Input()\n public _dateChange: string;\n @Input()\n public _displayDateChange: string;\n @Input()\n public recordByRow: number = 1;\n @Input()\n public showDateChange: boolean = false;\n @Input()\n public msgTooltipAdd: string;\n @Input()\n public isEditMode: boolean = false;\n @Input()\n public isViewMode: boolean = false;\n @Input()\n public currency: NumberLocaleOptions;\n @Input()\n public customEntity: string;\n @Input()\n public customService: string;\n @Input()\n public withSideBar: boolean = true;\n @Input()\n public permission: object;\n @Input()\n public listDataReciever: any[] = [];\n @Input()\n public addExistentHistoricData: any[] = [];\n @Input()\n public getListPixAccount: object[] = [];\n @Input()\n public isEditModeForSave: boolean = false;\n\n @Output()\n public isViewModeActive: EventEmitter<any> = new EventEmitter<boolean>();\n @Output()\n public isEditModeActive: EventEmitter<any> = new EventEmitter<boolean>();\n @Output()\n public isDeleteModeActive: EventEmitter<any> = new EventEmitter<boolean>();\n @Output()\n public isValidChangeForm: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n\n private listFromApp: any[] = [];\n private visibleChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n private ngUnsubscribe = new Subject();\n private historicalPixAccountList: FormGroup;\n private orderBy: { field: string; direction: DirectionEnumeration } = {\n field: \"dateChange\",\n direction: DirectionEnumeration.DESC,\n };\n\n private _visible: boolean;\n public pixAccountItemInput: object = {};\n public totalRecords: number = 0;\n public actionLabel: string = this.translateService.instant(\"hcm.payroll.entries_query_actions_total_title\");\n public loading = true;\n public parameters: any;\n public msgTotalLimitByPercentage: string;\n public listData: object[] = [];\n public listDataNoPage: object[] = [];\n public showButtonView = true;\n public showEditMode = false;\n public hasRecordsPix = true;\n public maxValuePercentage: number = 100.00;\n public hideFields = this.sharedStateService.hideField$;\n public suggestions: any[] = [];\n public formGroupByRow: { [index: number]: FormGroup } = {};\n\n public cols = [\n {\n label: this.translateService.instant(\"hcm.payroll.employees_addition_pix_key_type\"),\n field: \"pixKeyType\",\n orderBy: 'pixKeyType.key',\n },\n {\n label: this.translateService.instant(\"hcm.payroll.employees_addition_pix_key\"),\n field: \"pixKey\",\n orderBy: 'pixKey',\n },\n {\n label: this.translateService.instant(\"hcm.payroll.historical_pix_account_label_percentage\"),\n field: \"percentage\",\n orderBy: 'percentage',\n },\n {\n label: this.translateService.instant(\"hcm.payroll.movimentation_generic_action\"),\n field: \"actions\",\n orderBy: null,\n }\n ];\n actions = (rowData: any = {}, key: any) => {\n return [\n {\n visible: this.isEditMode,\n label: this.translateService.instant(\"hcm.payroll.employees_image_cropper_view\"),\n command: () => {\n if (this.isAllowToViewHistorical) {\n rowData[\"index\"] = key;\n this.pixAccountItemInput = { currentItem: rowData, listData: this.listDataNoPage, isEditMode: false };\n this.visible = true;\n } else {\n this.isViewModeActive.emit(true);\n }\n },\n },\n {\n visible: !!(!this.isEditMode && this.withSideBar),\n label: this.translateService.instant(\"hcm.payroll.edit\"),\n command: () => {\n if (this.isAllowToEditHistorical) {\n rowData[\"index\"] = key;\n this.pixAccountItemInput = { currentItem: rowData, listData: this.listDataNoPage, isEditMode: true };\n this.visible = true;\n } else {\n this.isEditModeActive.emit(true);\n if (this.listFromApp.length == 0) {\n rowData[\"index\"] = key;\n this.pixAccountItemInput = { currentItem: rowData, listData: this.listDataNoPage, isEditMode: true };\n this.visible = true;\n }\n }\n },\n },\n {\n visible: !this.isEditMode || this.showEditMode,\n label: this.translateService.instant(\"hcm.payroll.delete\"),\n command: () => {\n if (this.isAllowToDeleteHistorical) {\n this.loading = true;\n this.deleteAnnuityItem(key);\n } else {\n this.isDeleteModeActive.emit(true);\n if (this.listFromApp.length == 0) {\n this.loading = true;\n this.deleteAnnuityItem(key);\n }\n }\n },\n },\n ];\n }\n\n constructor(\n private translateService: TranslateService,\n private cd: ChangeDetectorRef,\n formBuilder: FormBuilder,\n private sharedStateService: SharedStateService,\n private service: HistoricalPixAccountService,\n ) {\n super(formBuilder);\n this.createFormGroup();\n }\n\n ngOnInit() {\n this.formGroup.setControl(this.fieldFormGroup, this.historicalPixAccountList);\n this.sharedStateService.showButton$.subscribe((value) => {\n this.showButtonView = value;\n });\n\n this.sharedStateService.showEditMode$.subscribe((value) => {\n this.showEditMode = value;\n this.isEditModeForSave = value;\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['listDataReciever'] && changes['listDataReciever'].currentValue) {\n this.listFromApp = changes['listDataReciever'].currentValue;\n }\n if (changes['addExistentHistoricData'] && changes['addExistentHistoricData'].currentValue) {\n this.getHistoricalPixAccountList();\n }\n\n if (changes['addExistentHistoricData'] && changes['addExistentHistoricData'].currentValue) {\n const newData = changes['addExistentHistoricData'].currentValue;\n this.rebuildFormGroupMap(newData);\n }\n }\n\n private createFormGroup(): void {\n this.historicalPixAccountList = this.formBuilder.group({\n historicalPixAccountList: this.formBuilder.control(null),\n });\n }\n\n ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n\n private emitFormValidity(): void {\n const allValid = Object.values(this.formGroupByRow).every(fg => {\n fg.updateValueAndValidity();\n return fg.valid;\n });\n this.isValidChangeForm.emit(allValid);\n }\n\n filterPixKeyType(event: any): void {\n const query = event.query;\n this.service.enumQuery().subscribe((response) => {\n const pixKeyTypeEnum = response.results.find((result: any) => result.enumName === 'PixKeyType');\n if (pixKeyTypeEnum) {\n this.suggestions = pixKeyTypeEnum.items.filter((item: any) =>\n item.value.toLowerCase().includes(query.toLowerCase())\n );\n } else {\n this.suggestions = [];\n }\n });\n }\n\n createPixRowFormGroup(): FormGroup {\n return this.formBuilder.group({\n pixKeyType: [null, Validators.required],\n pixKey: [null],\n percentage: [0, Validators.compose([\n ...this.initialValidatorOfPercentage,\n Validators.max(this.maxValuePercentage),\n ])]\n });\n }\n\n onPixKeyInput(event: any, index: number): void {\n const inputValue = event.target.value;\n const inputRawValue = inputValue.replace(/\\D/g, '');\n\n const form = this.formGroupByRow[index];\n const pixKeyControl = form.get('pixKey');\n\n if(pixKeyControl) {\n pixKeyControl.setValue(inputRawValue, { emitEvent: false });\n pixKeyControl.markAsDirty();\n pixKeyControl.updateValueAndValidity();\n }\n this.setPixKeyValidators(true, form);\n this.emitFormValidity();\n }\n\n onBlurPixCpfAndCnpj(index: number): void {\n const form = this.formGroupByRow[index];\n const pixKeyControl = form.get('pixKey');\n const pixKeyTypeControl = form.get('pixKeyType');\n\n if (!pixKeyControl || !pixKeyTypeControl) return;\n\n const currentValue = pixKeyControl.value;\n const pixKeyType = pixKeyTypeControl.value.key;\n const rawValue = (currentValue || '').replace(/\\D/g, '');\n\n pixKeyControl.setValue(rawValue, { emitEvent: false });\n\n if (pixKeyControl.valid) {\n form.patchValue({\n pixKeyFormatted: FormatUtilsService.getFormattedSubscriptionNumber(rawValue, pixKeyType)\n });\n }\n this.emitFormValidity();\n }\n\n public getFormattedPixKey(type: string, value: string): string {\n return FormatUtilsService.getFormattedSubscriptionNumber(value, type);\n }\n\n public syncPixDataToParentForm(): void {\n if (!this.isEditModeForSave) return;\n\n const values = Object.values(this.formGroupByRow).map(fg => {\n const value = fg.getRawValue();\n const pixKeyType = value.pixKeyType.key;\n\n if (pixKeyType === 'CPF' || pixKeyType === 'CNPJ') {\n value.pixKey = (value.pixKey || '').replace(/[.\\-\\/]/g, '');\n } else if (pixKeyType === 'TELEPHONE') {\n value.pixKey = (value.pixKey || '').replace(/[()\\s\\-]/g, '');\n }\n\n return value;\n });\n\n this.formGroup\n .get(this.fieldFormGroup)\n .get('historicalPixAccountList')\n .setValue(values);\n\n this.emitFormValidity();\n }\n\n public syncResetPixFormToParent(): void {\n this.formGroupByRow = {};\n this.historicalPixAccountList.reset();\n this.historicalPixAccountList.get('historicalPixAccountList').setValue([]);\n\n if (this.addExistentHistoricData.length) {\n this.rebuildFormGroupMap(this.addExistentHistoricData);\n }\n }\n\n public onLazyLoad(event?: any): void {\n const first = event && event.first ? event.first : 0;\n const rows = event && event.rows ? event.rows : this.recordByRow;\n const arrList = this.getHistoricalPixAccountList();\n this.listData = [];\n this.totalRecords = null;\n\n if (event && event.multiSortMeta && event.multiSortMeta.length) {\n event.multiSortMeta.map((value: any) => {\n this.orderBy.field = value.field;\n this.orderBy.direction = value.order === 1 ? DirectionEnumeration.ASC : DirectionEnumeration.DESC;\n });\n }\n\n if (arrList && arrList.length) {\n this.totalRecords = arrList.length;\n this.listData = arrList;\n this.listDataNoPage = [...arrList];\n this.listData.sort(compareValues(this.orderBy.field, this.orderBy.direction));\n this.listData = this.listData.slice(first, (first + rows));\n } else {\n this.listDataNoPage = [];\n }\n\n if (this.isEditMode || arrList && arrList.length === 1) {\n this.refreshCssInIE11();\n }\n\n this.loading = false;\n this.cd.detectChanges();\n\n }\n\n /**\n * Um Bug de CSS que acontece nas linhas da tabela, que resolve só atualizando qualquer parte do CSS da pagina.\n */\n private refreshCssInIE11() {\n if (/msie\\s|trident\\/|edge\\//i.test(window.navigator.userAgent)) {\n setTimeout( () => {\n const row = document.getElementsByClassName(\"row0\");\n if (row && row[0])\n row[0].className = 'refresh';\n }, 1);\n }\n }\n\n public add(): void {\n this.pixAccountItemInput = {};\n this.visible = true;\n }\n\n addPix(): void {\n const newItem = {\n pixKeyType: {},\n pixKey: '',\n percentage: 0\n };\n\n const index = this.addExistentHistoricData.length;\n\n this.addExistentHistoricData = [\n ...this.addExistentHistoricData,\n newItem\n ];\n\n this.formGroupByRow[index] = this.createPixRowFormGroup();\n\n this.setValidatorsAccordingList(this.addExistentHistoricData, index, true);\n\n this.emitFormValidity();\n }\n\n\n deletePix(index: number): void {\n this.addExistentHistoricData = this.addExistentHistoricData.filter((_, i) => i !== index);\n this.rebuildFormGroupMap(this.addExistentHistoricData);\n this.emitFormValidity();\n }\n\n\n private rebuildFormGroupMap(data: any[]): void {\n this.formGroupByRow = {};\n\n data.forEach((item, index) => {\n const form = this.createPixRowFormGroup();\n const pixKeyType = item.pixKeyType.key;\n const pixKeyRaw = item.pixKey;\n\n if (pixKeyType === 'CPF' || pixKeyType === 'CNPJ') {\n item.pixKey = FormatUtilsService.getFormattedSubscriptionNumber(pixKeyRaw, pixKeyType);\n }\n if (pixKeyType === 'TELEPHONE') {\n item.pixKey = FormatUtilsService.getFormattedTelephoneNumber(pixKeyRaw);\n }\n\n form.patchValue(item);\n this.formGroupByRow[index] = form;\n\n this.setValidatorsAccordingList(data, index, this.isEditMode);\n });\n\n this.emitFormValidity();\n }\n\n onPixKeyTypeChange(item: any, index: number): void {\n const form = this.formGroupByRow[index];\n this.onChangePixKeyType(item, form);\n\n this.addExistentHistoricData[index].pixKey = '';\n\n setTimeout(() => {\n if (this.dataListPix.editingCell) {\n this.dataListPix.editingCell = null;\n }\n });\n\n this.cd.detectChanges();\n }\n\n onPixKeyTypeClear(index: number): void {\n const form = this.formGroupByRow[index];\n this.onClearPixKeyType(form);\n }\n\n private deleteAnnuityItem(index: number): void {\n let newlist = [...this.getHistoricalPixAccountList()];\n newlist.sort(compareValues(this.orderBy.field, this.orderBy.direction));\n delete newlist[index];\n newlist = newlist.filter(val => val);\n this.historicalPixAccountList.get(\"historicalPixAccountList\").setValue(newlist);\n this.verifyTotalPercentage();\n this.onLazyLoad();\n }\n\n public getHistoricalPixAccountList(): object[] {\n if (this.historicalPixAccountList.get(\"historicalPixAccountList\") &&\n this.historicalPixAccountList.get(\"historicalPixAccountList\").value &&\n this.historicalPixAccountList.get(\"historicalPixAccountList\").value.length)\n return this.historicalPixAccountList.get(\"historicalPixAccountList\") && this.historicalPixAccountList.get(\"historicalPixAccountList\").value;\n else\n return [];\n }\n\n public addItemInList($event: any): void {\n const index = $event && $event.index >= 0 ? $event.index : null;\n const newDataList = this.getHistoricalPixAccountList() ? this.getHistoricalPixAccountList() : [];\n\n if (index != null) {\n newDataList[index] = $event;\n delete $event.index;\n } else {\n if (isValid($event[\"customFields\"]) && Object.keys($event[\"customFields\"]).length) {\n const customValue = mountCustomToSave($event[\"customFields\"]);\n $event[\"customFields\"] = [...customValue];\n }\n $event[\"dateChange\"] = this.dateChange;\n newDataList.push($event);\n }\n\n this.historicalPixAccountList.get(\"historicalPixAccountList\").setValue(newDataList);\n this.verifyTotalPercentage();\n this.onLazyLoad({ first: this.getNumberPageByIndex(index, newDataList) });\n }\n\n private getNumberPageByIndex(index: number, list: object[]): number {\n if (index) {\n const total = list.length;\n const sub = this.recordByRow - 1;\n return Math.ceil(total / this.recordByRow) * this.recordByRow - sub - 1;\n }\n return null;\n }\n\n private verifyTotalPercentage(): void {\n const list = this.getHistoricalPixAccountList() ? this.getHistoricalPixAccountList() : [];\n const arrayPercentage: any = [];\n\n if (!list.length) return this.msgTotalLimitByPercentage = null;\n\n list.filter((item: any) => arrayPercentage.push(item && item[\"percentage\"]));\n\n const sumPercentage = arrayPercentage.reduce((total: number, percentage: number) => {\n return total + percentage;\n }, 0);\n\n if (sumPercentage === 100) {\n this.msgTotalLimitByPercentage = this.translateService.instant(\"hcm.payroll.historical_pix_account_msg_limit_total_by_percentage\");\n } else {\n this.msgTotalLimitByPercentage = null;\n }\n\n }\n\n public onSyncValue(field: string, index: number): void {\n if (\n this.formGroupByRow &&\n this.formGroupByRow[index] &&\n this.formGroupByRow[index].get(field)\n ) {\n const value = this.formGroupByRow[index].get(field).value;\n this.addExistentHistoricData[index][field] = value;\n }\n this.emitFormValidity();\n }\n\n public get scopedActions() {\n return this.actions.bind(this);\n }\n\n public get recordsMessage() {\n return `${ this.totalRecords || 0 } ${ this.totalRecords === 1 ? this.translateService.instant(\"hcm.payroll.admission_register\") : this.translateService.instant(\"hcm.payroll.admission_registers\") }`;\n }\n\n public get getTooltipAndDisableButtonAdd() {\n return this.dateChange ? null : this.msgTooltipAdd;\n }\n\n @Input()\n public get dateChange(): string {\n return this._dateChange;\n }\n\n public set dateChange(value: string) {\n this._dateChange = value;\n if (this._dateChange) {\n this.listData.filter((row: any) => row[\"dateChange\"] = this._dateChange);\n }\n }\n\n @Input()\n public get displayDateChange(): string {\n return this._displayDateChange;\n }\n\n public set displayDateChange(value: string) {\n this._displayDateChange = value;\n if (this._displayDateChange) {\n this.listData.filter((row: any) => row[\"displayDateChange\"] = this._displayDateChange);\n }\n }\n\n @Input()\n public set addListData(list: object[]) {\n this.loading = true;\n this.historicalPixAccountList.get(\"historicalPixAccountList\").patchValue(list);\n this.verifyTotalPercentage();\n this.onLazyLoad();\n }\n\n @Input()\n public get visible(): boolean {\n return this._visible;\n }\n\n @Input()\n public set paramsForm(value: FormGroup) {\n this._paramsForm = value;\n }\n\n @Input()\n public set defaultCpfNumber(value: string) {\n this._defaultCpfNumber = value;\n }\n\n public set visible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(this.visible);\n }\n public close(): void {\n this.visible = false;\n }\n\n public getFormattedTelephoneNumber(telephoneNumber: string): string {\n return FormatUtilsService.getFormattedTelephoneNumber(telephoneNumber);\n }\n\n public getFormattedCpf(cpf: string): string {\n return FormatUtilsService.getFormattedCpf(cpf);\n }\n\n public getFormattedCnpj(cnpj: string): string {\n return FormatUtilsService.getFormattedCnpj(cnpj);\n }\n\n public getFormattedPercentage(value: string): string {\n return FormatUtilsService.getFormattedPercentage(value);\n }\n\n private get isAllowToAddHistorical() {\n return (\n this.permission[\"incluir\"]\n );\n }\n\n private get isAllowToDeleteHistorical() {\n return (\n this.permission[\"excluir\"]\n );\n }\n\n private get isAllowToEditHistorical() {\n return (\n this.permission[\"editar\"]\n );\n }\n\n private get isAllowToViewHistorical() {\n return (\n this.permission[\"visualizar\"]\n );\n }\n}\n","import {\n Component,\n OnInit,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n OnDestroy,\n AfterViewInit,\n ViewChild,\n} from \"@angular/core\";\nimport { FormGroup, FormBuilder, Validators, ValidatorFn, AbstractControl } from \"@angular/forms\";\nimport { NumberLocaleOptions, CustomFieldsComponent } from \"@seniorsistemas/angular-components\";\nimport { Subject } from \"rxjs\";\nimport {\n verifyValidationsForm,\n configEnabledFields,\n mountCustomToShow,\n} from \"../../utils/helpers\";\nimport { FormatUtilsService } from \"../../utils/format-utils/format-utils.service\";\nimport { SharedStateService } from \"../../shared/shared-state.service\";\nimport { HistoricakPixAccountBase } from \"../historical-pix-account-base\";\n\n@Component({\n selector: \"pix-account\",\n templateUrl: \"./historical-pix-account-form.component.html\",\n styleUrls: [\"../historical-pix-account.component.scss\"]\n})\nexport class HistoricalPixAccountFormComponent extends HistoricakPixAccountBase implements OnInit, OnDestroy, AfterViewInit {\n @ViewChild(CustomFieldsComponent, { static: true })\n customFields: CustomFieldsComponent;\n\n @Input() public currency: NumberLocaleOptions;\n @Input() public customEntity: string;\n @Input() public customService: string;\n @Input() public withSideBar: boolean = true;\n @Input() public isEditMode: boolean = false;\n\n @Output() public visibleChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output() public pixAccountItemToList: EventEmitter<any> = new EventEmitter<any>();\n\n private _visible: boolean;\n private ngUnsubscribe = new Subject();\n private employeeId: string;\n\n public labelBtnAdd: string = \"hcm.payroll.employees_add\";\n public visibleBtnSave: boolean = true;\n public isView: boolean = false;\n public isShowPixKeyFieldValidatorMessage = false;\n public hideFields = this.sharedStateService.hideField$;\n\n constructor(\n formBuilder: FormBuilder,\n private cd: ChangeDetectorRef,\n private sharedStateService: SharedStateService\n ) {\n super(formBuilder);\n this.registerSubjects();\n }\n\n ngOnInit(): void {}\n\n ngAfterViewInit(): void {\n this.cd.detectChanges();\n }\n\n ngOnDestroy(): void {\n this.ngUnsubscribe.next(true);\n this.ngUnsubscribe.unsubscribe();\n }\n\n private registerSubjects(): void {}\n\n @Input()\n public get visible(): boolean {\n return this._visible;\n }\n\n public set visible(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(this.visible);\n }\n\n @Input()\n public set isEditAndViewValue(value: any) {\n this.resetForm();\n this.visibleBtnSave = true;\n if (value && value.currentItem && Object.keys(value.currentItem).length) {\n this.pixAccountFormGroup.patchValue(this.convertDTOToShowWithCustomFields({ ...value.currentItem }));\n this.labelBtnAdd = \"hcm.payroll.employees_update\";\n this.setValidatorsAccordingList(value.listData, value.currentItem[\"index\"], value && value[\"isEditMode\"]);\n if (!this.isView) {\n this.configEnableFields(value && value[\"isEditMode\"]);\n } else {\n if (this.pixAccountFormGroup.get(\"pixKeyType\").value) {\n this.pixKeyType = this.pixAccountFormGroup.get(\"pixKeyType\").value.key;\n this.formatPixKeyTelephoneNumber();\n }\n }\n } else {\n this.labelBtnAdd = \"hcm.payroll.employees_add\";\n }\n }\n\n private formatPixKeyTelephoneNumber(): void {\n if (this.pixKeyType === \"TELEPHONE\") {\n const pixKeyCtrl = this.pixAccountFormGroup.get(\"pixKey\");\n pixKeyCtrl.setValue(FormatUtilsService.getFormattedTelephoneNumber(pixKeyCtrl.value));\n }\n }\n\n public convertDTOToShowWithCustomFields(data: object): object {\n const obj: any = { ...data };\n obj[\"customFields\"] = mountCustomToShow(obj[\"customFields\"]);\n return obj;\n }\n\n private configEnableFields(isEditMode: boolean): void {\n this.visibleBtnSave = isEditMode;\n\n if (this.pixAccountFormGroup.get(\"pixKeyType\").value) {\n this.pixKeyType = this.pixAccountFormGroup.get(\"pixKeyType\").value.key;\n this.setPixKeyValidators(isEditMode, this.pixAccountFormGroup);\n this.formatPixKeyTelephoneNumber();\n }\n\n configEnabledFields(this.pixAccountFormGroup, isEditMode, [\n \"pixKeyType\",\n \"pixKey\",\n \"percentage\",\n \"customFields\"\n ], []);\n }\n\n public close(): void {\n this.resetForm();\n this.visible = false;\n }\n\n public addItem(): void {\n this.pixAccountFormGroup.updateValueAndValidity();\n verifyValidationsForm.call(this.pixAccountFormGroup);\n\n if (this.pixAccountFormGroup.valid) {\n if (this.employeeId) {\n this.pixAccountFormGroup.get(\"employee\").setValue({\n tableId: this.employeeId,\n name: \"\"\n });\n }\n this.pixAccountItemToList.emit(this.pixAccountFormGroup.getRawValue());\n this.visible = false;\n this.resetForm();\n }\n }\n\n public resetForm(): void {\n this.pixAccountFormGroup.reset();\n this.labelBtnAdd = \"hcm.payroll.employees_add\";\n if (this.customFields && this.customFields.formGroup) this.customFields.formGroup.reset();\n }\n\n public get percentagePlaceholder(): string {\n return `0${this.currency && this.currency.decimalSeparator}00`;\n }\n\n public get optionsPercentage(): object {\n return { ...this.getOptions(), precision: 2 };\n }\n\n private getOptions(): any {\n return {\n prefix: \"\",\n thousands: this.currency.thousandsSeparator,\n decimal: this.currency.decimalSeparator\n };\n }\n\n @Input()\n public set getListPixAccount(pixAccountList: object[]) {\n if (pixAccountList) {\n this.setValidatorsAccordingList(pixAccountList, null, false);\n } else {\n this.resetForm();\n }\n }\n\n @Input()\n public set isViewMode(condition: boolean) {\n this.isView = !!(condition && !this.withSideBar);\n this.configEnableFields(!this.isView);\n if (!this.isView) this.resetForm();\n }\n\n @Input()\n public set paramsForm(value: FormGroup) {\n this._paramsForm = value;\n }\n\n @Input()\n public set defaultCpfNumber(value: string) {\n this._defaultCpfNumber = value;\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport {\n ButtonModule,\n LoadingStateModule,\n SidebarModule, ControlErrorsModule, CustomFieldsModule,\n} from \"@seniorsistemas/angular-components\";\nimport { CurrencyMaskModule } from \"ng2-currency-mask\";\nimport { ConfirmationService } from \"primeng/api\";\nimport { AutoCompleteModule } from \"primeng/autocomplete\";\nimport { FieldsetModule } from \"primeng/fieldset\";\nimport { InputTextModule } from \"primeng/inputtext\";\nimport { PanelModule } from \"primeng/panel\";\nimport { TableModule } from \"primeng/table\";\nimport { TooltipModule } from \"primeng/tooltip\";\nimport { CoreDirectives } from \"../directives/index\";\nimport { HistoricalPixAccountFormComponent } from \"./historical-pix-account-form/historical-pix-account-form.component\";\nimport { InputDateModule } from \"../input-date/index\";\nimport { InputRestAutoCompleteModule } from \"../input-rest-auto-complete/index\";\nimport { InputRestAutoCompleteEnumModule } from \"../input-rest-auto-complete-enum/index\";\n\nimport { SharedModule } from \"../shared/shared.module\";\nimport { HistoricalPixAccountComponent } from \"./historical-pix-account.component\";\nimport { HistoricalPixAccountService } from \"./historical-pix-account.service\";\nimport { InputMaskModule } from \"primeng/inputmask\";\nimport { DropdownModule } from \"primeng/dropdown\";\nimport { TabViewModule } from 'primeng/tabview';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n HttpClientModule,\n AutoCompleteModule,\n SharedModule,\n ReactiveFormsModule,\n TableModule,\n ButtonModule,\n TooltipModule,\n LoadingStateModule,\n SidebarModule,\n InputDateModule,\n ControlErrorsModule,\n InputRestAutoCompleteEnumModule,\n CurrencyMaskModule,\n InputRestAutoCompleteModule,\n InputTextModule,\n CoreDirectives,\n FieldsetModule,\n CustomFieldsModule,\n PanelModule,\n InputMaskModule,\n DropdownModule,\n TabViewModule,\n ],\n declarations: [HistoricalPixAccountComponent, HistoricalPixAccountFormComponent],\n providers: [HistoricalPixAccountService, ConfirmationService],\n exports: [HistoricalPixAccountComponent],\n})\nexport class HistoricalPixAccountModule {\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { ServiceType } from '../../core/enums/serviceType';\n\nimport { HttpClientService } from \"../shared/http-client.service\";\n\n@Injectable()\nexport class HistoricalPixAccountListService {\n constructor(private http: HttpClientService, private httpClient: HttpClient) {\n }\n\n public remove(id: any, dateWhen: string, service: ServiceType = ServiceType.PAYROLL, dependentId?: string) {\n if (service === ServiceType.DEPENDENT) {\n return this.httpClient\n .post(\"hcm/dependent/queries/historicalDependentJudicialPensionPixDelete\", {\n dependentId: dependentId,\n dateWhen: dateWhen,\n });\n } else {\n return this.http.post(\"actions/historicalEmployeePixDelete\", {\n employeeId: id,\n dateWhen: dateWhen\n });\n }\n }\n\n}\n","import {\n Component,\n OnInit,\n ViewChild,\n ChangeDetectorRef,\n AfterViewInit,\n OnDestroy,\n Input,\n Output,\n EventEmitter,\n} from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { CustomFieldsComponent } from \"@seniorsistemas/angular-components\";\nimport * as moment_ from \"moment\";\nimport { ConfirmationService, MessageService } from \"primeng/api\";\nimport { ServiceType } from '../../core/enums/serviceType';\nimport { Subject, Subscription } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { HistoricalPixAccountListService } from \"./historical-pix-account-list.service\";\nimport { SharedStateService } from \"../shared/shared-state.service\";\n\nconst moment = moment_;\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: \"c-historical-pix-account-list\",\n templateUrl: \"./historical-pix-account-list.component.html\",\n styleUrls: [\"./historical-pix-account-list.component.scss\"],\n})\nexport class HistoricalPixAccountListComponent implements OnInit, OnDestroy, AfterViewInit {\n @ViewChild(CustomFieldsComponent, { static: false })\n public customFields: CustomFieldsComponent;\n\n @Input()\n public permission: object;\n @Input()\n public employeeId: string;\n @Input()\n public dependentId: string;\n @Input()\n public dateFormat: string;\n @Input()\n public endPoint: string = \"hcm/payroll/queries/historicalEmployeePixQuery\";\n @Input()\n public keyPayload: string = \"historicalEmployeePix\";\n @Input()\n public withSidebar: boolean = true;\n @Input()\n public hideField: boolean;\n\n @Output()\n public isOnlyView: EventEmitter<any> = new EventEmitter<boolean>();\n @Output()\n public isOnlyEdit: EventEmitter<any> = new EventEmitter<boolean>();\n @Output()\n public enableView: EventEmitter<any> = new EventEmitter<any>();\n @Output()\n public isEditJudicialDependentPix: EventEmitter<any> = new EventEmitter<boolean>();\n\n private lastRecord: any;\n private ngUnsubscribe = new Subject();\n private _subscription: Subscription;\n public initParameters: any;\n public loading: boolean = true;\n public parameters: any;\n\n public columns = [\n {\n label: this.translateService.instant(\n \"hcm.payroll.historical_pix_account_label_date_change\",\n ),\n field: \"dateChange\",\n },\n {\n label: this.translateService.instant(\n \"hcm.payroll.employees_movimentation_historical_pix_account_label_qtd_account\",\n ),\n field: \"numberOfPixAccount\",\n },\n ];\n\n constructor(\n private confirmationService: ConfirmationService,\n private translateService: TranslateService,\n private activatedRoute: ActivatedRoute,\n private cd: ChangeDetectorRef,\n private router: Router,\n private messageService: MessageService,\n private historicalPixAccountListService: HistoricalPixAccountListService,\n private sharedStateService: SharedStateService,\n ) {}\n\n ngOnInit() {\n this.initParameters = { employeeId: this.employeeId, dependentId: this.dependentId };\n }\n\n ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n this.unsubscribe();\n }\n\n ngAfterViewInit() {\n this.cd.detectChanges();\n }\n\n public onLazyLoad(payload: any) {\n payload.forEach((value: any) => {\n value.dateChange = moment(value.dateChange).format(this.dateFormat);\n });\n\n this.onGridLoad(payload);\n\n this.loading = false;\n }\n\n public getMenuActions(rowData: any) {\n return [\n {\n label: this.translateService.instant(\"hcm.payroll.employees_image_cropper_view\"),\n command: () => {\n if(this.isAllowToViewHistorical) {\n this.sharedStateService.setHideField(true);\n this.sharedStateService.setShowButton(false);\n this.sharedStateService.setShowEditMode(false);\n const dateChange = rowData && rowData.dateChange && moment(rowData.dateChange, this.dateFormat).format(\"YYYY-MM-DD\");\n if (this.withSidebar) {\n this.isOnlyView.emit(true);\n this.router.navigate([`historical-pix-account/${ dateChange }`], {\n relativeTo: this.activatedRoute,\n });\n } else {\n this.sharedStateService.setSaveButton(false);\n this.enableView.emit(dateChange);\n }\n } else {\n this.isNotAllowMessage();\n }\n },\n },\n {\n label: this.translateService.instant(\"hcm.payroll.edit\"),\n command: () => {\n if(this.isAllowToEditHistorical) {\n this.sharedStateService.setHideField(true);\n this.sharedStateService.setShowButton(false);\n this.sharedStateService.setShowEditMode(true);\n const dateChange = rowData && rowData.dateChange && moment(rowData.dateChange, this.dateFormat).format(\"YYYY-MM-DD\");\n if (this.withSidebar) {\n this.router.navigate([`historical-pix-account/${ dateChange }`], {\n relativeTo: this.activatedRoute,\n });\n } else {\n this.sharedStateService.setSaveButton(true);\n this.enableView.emit(dateChange);\n }\n } else {\n this.isNotAllowMessage();\n }\n },\n },\n {\n label: this.translateService.instant(\"hcm.payroll.delete\"),\n command: () => {\n if (this.isAllowToDeleteHistorical && rowData) {\n this.delete(rowData.id, rowData.dateChange);\n } else {\n this.isNotAllowMessage();\n }\n },\n }\n ];\n }\n\n public delete(id: any, dateChange: string) {\n if (id === this.lastRecord.id) {\n const dateChangeToDto = moment(dateChange, this.dateFormat).format(\"YYYY-MM-DD\");\n this.confirmationService.confirm({\n message: `${ this.translateService.instant(\n \"hcm.payroll.employees_movimentation_historical_pix_account_question_confirm_delete\",\n ) }?`,\n accept: () => {\n this.loading = true;\n const service = this.withSidebar ? ServiceType.PAYROLL : ServiceType.DEPENDENT;\n this.historicalPixAccountListService\n .remove(this.employeeId, dateChangeToDto, service, this.dependentId)\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(\n () => {\n this.messageService.add({\n severity: \"success\",\n summary: this.translateService.instant(\"hcm.payroll.success\"),\n detail: this.translateService.instant(\"hcm.payroll.employees_movimentation_historical_pix_account_remove\"),\n });\n this.parameters = (this.parameters && { ...this.parameters }) || {};\n },\n () => {\n this.messageService.add({\n severity: \"error\",\n summary: this.translateService.instant(\"hcm.payroll.error\"),\n detail: this.translateService.instant(\"hcm.payroll.employees_movimentation_historical_pix_account_error_remove\"),\n });\n this.loading = false;\n },\n );\n },\n });\n } else {\n this.messageService.add({\n severity: \"error\",\n summary: this.translateService.instant(\"hcm.payroll.error\"),\n detail: this.translateService.instant(\"hcm.payroll.not_allowed_delete_last\"),\n });\n }\n }\n\n public add() {\n if (this.isAllowToAddHistorical) {\n this.router.navigate([\"historical-pix-account-new\"], {\n relativeTo: this.activatedRoute,\n });\n } else {\n this.messageService.add({\n severity: \"error\",\n summary: this.translateService.instant(\"hcm.payroll.error\"),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n });\n }\n }\n\n private isNotAllowMessage() {\n this.messageService.add({\n severity: \"error\",\n summary: this.translateService.instant(\"hcm.payroll.error\"),\n detail: this.translateService.instant(\"hcm.payroll.permission_error_not_allowed\"),\n });\n }\n\n private onGridLoad(payload: any) {\n if (payload && payload.length) {\n this.lastRecord = payload[0];\n }\n }\n\n private unsubscribe() {\n if (this._subscription) {\n this._subscription.unsubscribe();\n }\n }\n\n @Input()\n public set hideFieldsOnAdd$(subject: Subject<boolean>) {\n this.unsubscribe();\n if (subject) {\n this._subscription = subject.subscribe((value) => {\n this.sharedStateService.setHideField(value);\n });\n }\n }\n\n private get isAllowToAddHistorical() {\n return (\n this.permission[\"incluir\"]\n );\n }\n\n private get isAllowToDeleteHistorical() {\n return (\n this.permission[\"excluir\"]\n );\n }\n\n private get isAllowToViewHistorical() {\n return (\n this.permission[\"visualizar\"]\n );\n }\n\n private get isAllowToEditHistorical() {\n return (\n this.permission[\"editar\"]\n );\n }\n\n public get scopedActions() {\n return this.getMenuActions.bind(this);\n }\n\n @Input()\n public set reloadList(condition: boolean) {\n if (condition) {\n this.loading = true;\n this.parameters = (this.parameters && { ...this.parameters }) || {};\n }\n }\n\n}\n","import { CommonModule } from \"@angular/common\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { ButtonModule, LoadingStateModule } from \"@seniorsistemas/angular-components\";\nimport { AutoCompleteModule } from \"primeng/autocomplete\";\nimport { ConfirmDialogModule } from \"primeng/confirmdialog\";\nimport { TableModule } from \"primeng/table\";\nimport { TooltipModule } from \"primeng/tooltip\";\nimport { DataListRestModule } from \"../data-list-rest/index\";\n\nimport { SharedModule } from \"../shared/shared.module\";\nimport { HistoricalPixAccountListComponent } from \"./historical-pix-account-list.component\";\nimport { HistoricalPixAccountListService } from \"./historical-pix-account-list.service\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n HttpClientModule,\n AutoCompleteModule,\n SharedModule,\n ReactiveFormsModule,\n TableModule,\n ButtonModule,\n TooltipModule,\n LoadingStateModule,\n DataListRestModule,\n ConfirmDialogModule,\n ],\n declarations: [HistoricalPixAccountListComponent],\n providers: [HistoricalPixAccountListService],\n exports: [HistoricalPixAccountListComponent],\n})\nexport class HistoricalPixAccountListModule {\n}\n"],"names":["tslib_1.__decorate","Input","Component","NgModule","FormsModule","BlockUIModule","ProgressSpinnerModule","filter","NavigationEnd","ActivatedRoute","Router","TranslateService","CommonModule","TranslateModule","BreadcrumbModule","ReactiveFormsModule","_moment","EventEmitter","Subject","takeUntil","LocaleService","ViewChild","Output","InputMaskModule","SharedModule","InputTextModule","DropdownModule","ElementRef","HostListener","Directive","UsingType","CompanyIndicationType","CoreFieldType","DirectionEnumeration","ModuleType","Operators","CompareType","ServiceType","HttpRequestType","ReportFormat","ParameterType","MenuType","ReportStage","HttpClient","Injectable","map","ViewEncapsulation","ButtonModule","LoadingStateModule","TableModule","TooltipModule","moment","finalize","ObjectCardModule","catchError","throwError","MessageService","forkJoin","Observable","FileUploadModuleDeprecated","CropperSettings","DialogModule","FileUploadModule","ImageCropperModule","ThumbnailModule","ImageCropperService","momentImported","FormGroup","FormArray","FormControl","Validators","HttpClientModule","AutoCompleteModule","SplitButtonModule","http","HttpParams","FieldType","tslib_1.__values","BehaviorSubject","user","HttpHeaders","service","ToastModulePrimeng","DynamicFormModule","FormField","now","ChangeDetectorRef","LookupService","ConfirmationService","FormBuilder","CustomFieldsComponent","SidebarModule","ControlErrorsModule","CurrencyMaskModule","FieldsetModule","CustomFieldsModule","PanelModule","ConfirmDialogModule","tslib_1.__extends","TabViewModule"],"mappings":"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"}
1
+ {"version":3,"file":"senior-gestao-pessoas-payroll-core.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","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/historical-pix-account/historical-pix-account.component.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.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"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","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 {\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\";\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 @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 if (this.isAllowToEditHistorical) {\n rowData[\"index\"] = key;\n this.pixAccountItemInput = { currentItem: rowData, listData: this.listDataNoPage, isEditMode: true };\n this.visible = true;\n } else {\n this.isEditModeActive.emit(true);\n if (this.listFromApp.length == 0) {\n rowData[\"index\"] = key;\n this.pixAccountItemInput = { currentItem: rowData, listData: this.listDataNoPage, isEditMode: true };\n this.visible = true;\n }\n }\n },\n },\n {\n visible: !this.isEditMode,\n label: this.translateService.instant(\"hcm.payroll.delete\"),\n command: () => {\n if (this.isAllowToDeleteHistorical) {\n this.loading = true;\n this.deleteAnnuityItem(key);\n } else {\n this.isDeleteModeActive.emit(true);\n if (this.listFromApp.length == 0) {\n this.loading = true;\n this.deleteAnnuityItem(key);\n }\n }\n },\n },\n ];\n }\n\n constructor(\n private translateService: TranslateService,\n private cd: ChangeDetectorRef,\n 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\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 { 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 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 { 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"],"names":["tslib_1.__decorate","Input","Component","NgModule","FormsModule","BlockUIModule","ProgressSpinnerModule","filter","NavigationEnd","ActivatedRoute","Router","TranslateService","CommonModule","TranslateModule","BreadcrumbModule","ReactiveFormsModule","_moment","EventEmitter","Subject","takeUntil","LocaleService","ViewChild","Output","InputMaskModule","SharedModule","InputTextModule","DropdownModule","ElementRef","HostListener","Directive","UsingType","CompanyIndicationType","CoreFieldType","DirectionEnumeration","ModuleType","Operators","CompareType","ServiceType","HttpRequestType","ReportFormat","ParameterType","MenuType","ReportStage","HttpClient","Injectable","map","ViewEncapsulation","ButtonModule","LoadingStateModule","TableModule","TooltipModule","moment","finalize","ObjectCardModule","catchError","throwError","MessageService","forkJoin","Observable","FileUploadModuleDeprecated","CropperSettings","DialogModule","FileUploadModule","ImageCropperModule","ThumbnailModule","ImageCropperService","momentImported","FormGroup","FormArray","FormControl","Validators","HttpClientModule","AutoCompleteModule","SplitButtonModule","http","HttpParams","FieldType","tslib_1.__values","BehaviorSubject","user","HttpHeaders","service","ToastModulePrimeng","DynamicFormModule","FormField","now","ChangeDetectorRef","LookupService","ConfirmationService","FormBuilder","CustomFieldsComponent","SidebarModule","ControlErrorsModule","CurrencyMaskModule","FieldsetModule","CustomFieldsModule","PanelModule","ConfirmDialogModule"],"mappings":"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"}