@senior-gestao-pessoas/payroll-core 8.7.0 → 9.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/senior-gestao-pessoas-payroll-core.umd.js +3024 -10904
- package/bundles/senior-gestao-pessoas-payroll-core.umd.js.map +1 -1
- package/bundles/senior-gestao-pessoas-payroll-core.umd.min.js +1 -1
- package/bundles/senior-gestao-pessoas-payroll-core.umd.min.js.map +1 -1
- package/components/workstationgroup-lookup/autocomplete.service.d.ts +31 -0
- package/esm2015/components/admission-draft-summary/admission-draft-summary.component.js +106 -0
- package/esm2015/components/admission-draft-summary/admission-draft-summary.module.js +17 -0
- package/esm2015/components/admission-draft-summary/admission-draft-summary.service.js +27 -0
- package/esm2015/components/admission-draft-summary/index.js +4 -0
- package/esm2015/components/block-ui/block-ui.component.js +19 -0
- package/esm2015/components/block-ui/block-ui.module.js +25 -0
- package/esm2015/components/block-ui/index.js +3 -0
- package/esm2015/components/breadcrumb/breadcrumb.component.js +76 -0
- package/esm2015/components/breadcrumb/breadcrumb.module.js +25 -0
- package/esm2015/components/breadcrumb/index.js +3 -0
- package/esm2015/components/control-messages-error/control-messages-error.component.js +28 -0
- package/esm2015/components/control-messages-error/control-messages-error.module.js +17 -0
- package/esm2015/components/control-messages-error/index.js +3 -0
- package/esm2015/components/custom-fields/custom-fields.component.js +32 -0
- package/esm2015/components/custom-fields/custom-fields.module.js +31 -0
- package/esm2015/components/custom-fields/index.js +3 -0
- package/esm2015/components/data-list/data-list.component.js +305 -0
- package/esm2015/components/data-list/data-list.module.js +28 -0
- package/esm2015/components/data-list/data-list.service.js +19 -0
- package/esm2015/components/data-list/entity-odata-response.js +26 -0
- package/esm2015/components/data-list/index.js +2 -0
- package/esm2015/components/data-list-rest/data-list-rest.component.js +239 -0
- package/esm2015/components/data-list-rest/data-list-rest.module.js +28 -0
- package/esm2015/components/data-list-rest/data-list-rest.service.js +19 -0
- package/esm2015/components/data-list-rest/index.js +2 -0
- package/esm2015/components/directives/directives.module.js +17 -0
- package/esm2015/components/directives/index.js +4 -0
- package/esm2015/components/directives/name-not-spaces.directive.js +31 -0
- package/esm2015/components/directives/only-number.directive.js +41 -0
- package/esm2015/components/employee-selector/employee-selector.component.js +65 -0
- package/esm2015/components/employee-selector/employee-selector.module.js +18 -0
- package/esm2015/components/employee-selector/index.js +3 -0
- package/esm2015/components/employee-summary/employee-summary.component.js +108 -0
- package/esm2015/components/employee-summary/employee-summary.module.js +17 -0
- package/esm2015/components/employee-summary/employee-summary.service.js +33 -0
- package/esm2015/components/employee-summary/index.js +4 -0
- package/esm2015/components/error-page/error-page.component.js +15 -0
- package/esm2015/components/error-page/error-page.module.js +16 -0
- package/esm2015/components/error-page/index.js +3 -0
- package/esm2015/components/field-validator/field-validator.component.js +40 -0
- package/esm2015/components/field-validator/field-validator.module.js +18 -0
- package/esm2015/components/field-validator/index.js +3 -0
- package/esm2015/components/file-upload/file-upload.component.js +135 -0
- package/esm2015/components/file-upload/file-upload.module.js +19 -0
- package/esm2015/components/file-upload/file-upload.service.js +44 -0
- package/esm2015/components/file-upload/index.js +3 -0
- package/esm2015/components/from-to/from-to.component.js +16 -0
- package/esm2015/components/from-to/from-to.module.js +19 -0
- package/esm2015/components/from-to/index.js +3 -0
- package/esm2015/components/historical-bank-account/historical-bank-account-form/historical-bank-account-form.component.js +332 -0
- package/esm2015/components/historical-bank-account/historical-bank-account.component.js +329 -0
- package/esm2015/components/historical-bank-account/historical-bank-account.module.js +56 -0
- package/esm2015/components/historical-bank-account/historical-bank-account.service.js +20 -0
- package/esm2015/components/historical-bank-account/index.js +4 -0
- package/esm2015/components/historical-bank-account-list/historical-bank-account-list.component.js +223 -0
- package/esm2015/components/historical-bank-account-list/historical-bank-account-list.module.js +39 -0
- package/esm2015/components/historical-bank-account-list/historical-bank-account-list.service.js +35 -0
- package/esm2015/components/historical-bank-account-list/index.js +4 -0
- package/esm2015/components/image-cropper/image-crop.component.js +146 -0
- package/esm2015/components/image-cropper/image-crop.module.js +39 -0
- package/esm2015/components/image-cropper/image-crop.service.js +88 -0
- package/esm2015/components/image-cropper/index.js +4 -0
- package/esm2015/components/input-date/index.js +3 -0
- package/esm2015/components/input-date/input-date.component.js +115 -0
- package/esm2015/components/input-date/input-date.module.js +17 -0
- package/esm2015/components/input-date-model/index.js +3 -0
- package/esm2015/components/input-date-model/input-date-model.component.js +100 -0
- package/esm2015/components/input-date-model/input-date-model.module.js +17 -0
- package/esm2015/components/input-rest-auto-complete/index.js +4 -0
- package/esm2015/components/input-rest-auto-complete/input-rest-auto-complete.component.js +303 -0
- package/esm2015/components/input-rest-auto-complete/input-rest-auto-complete.module.js +21 -0
- package/esm2015/components/input-rest-auto-complete/input-rest-auto-complete.service.js +20 -0
- package/esm2015/components/input-rest-auto-complete-employee/index.js +3 -0
- package/esm2015/components/input-rest-auto-complete-employee/input-rest-auto-complete-employee.component.js +190 -0
- package/esm2015/components/input-rest-auto-complete-employee/input-rest-auto-complete-employee.module.js +28 -0
- package/esm2015/components/input-rest-auto-complete-employee/input-rest-auto-complete-employee.service.js +20 -0
- package/esm2015/components/input-rest-auto-complete-employee-model/index.js +3 -0
- package/esm2015/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.component.js +179 -0
- package/esm2015/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.module.js +28 -0
- package/esm2015/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.service.js +20 -0
- package/esm2015/components/input-rest-auto-complete-enum/index.js +4 -0
- package/esm2015/components/input-rest-auto-complete-enum/input-rest-auto-complete-enum.component.js +146 -0
- package/esm2015/components/input-rest-auto-complete-enum/input-rest-auto-complete-enum.module.js +28 -0
- package/esm2015/components/input-rest-auto-complete-enum/input-rest-auto-complete-enum.service.js +23 -0
- package/esm2015/components/input-rest-auto-complete-jobposition/index.js +4 -0
- package/esm2015/components/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.component.js +173 -0
- package/esm2015/components/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.module.js +28 -0
- package/esm2015/components/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.service.js +20 -0
- package/esm2015/components/input-rest-auto-complete-model/index.js +3 -0
- package/esm2015/components/input-rest-auto-complete-model/input-rest-auto-complete-model.component.js +227 -0
- package/esm2015/components/input-rest-auto-complete-model/input-rest-auto-complete-model.module.js +28 -0
- package/esm2015/components/input-rest-auto-complete-model/input-rest-auto-complete-model.service.js +20 -0
- package/esm2015/components/input-rest-auto-complete-model-enum/index.js +3 -0
- package/esm2015/components/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.component.js +124 -0
- package/esm2015/components/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.module.js +28 -0
- package/esm2015/components/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.service.js +23 -0
- package/esm2015/components/list-rest/index.js +3 -0
- package/esm2015/components/list-rest/list-rest.component.js +117 -0
- package/esm2015/components/list-rest/list-rest.module.js +33 -0
- package/esm2015/components/list-rest/list-rest.service.js +23 -0
- package/esm2015/components/lookup/index.js +2 -0
- package/esm2015/components/lookup/lookup.component.js +324 -0
- package/esm2015/components/lookup/lookup.module.js +20 -0
- package/esm2015/components/lookup/lookup.service.js +52 -0
- package/esm2015/components/shared/http-client.service.js +165 -0
- package/esm2015/components/shared/shared.module.js +21 -0
- package/esm2015/components/spinner/index.js +3 -0
- package/esm2015/components/spinner/spinner-loader.component.js +12 -0
- package/esm2015/components/spinner/spinner-loader.module.js +23 -0
- package/esm2015/components/toast/index.js +4 -0
- package/esm2015/components/toast/toast.component.js +88 -0
- package/esm2015/components/toast/toast.module.js +20 -0
- package/esm2015/components/toast/toast.service.js +42 -0
- package/esm2015/components/type-admission/index.js +3 -0
- package/esm2015/components/type-admission/type-admission.module.js +14 -0
- package/esm2015/components/type-admission/type-admission.services.js +62 -0
- package/esm2015/components/utils/cnpj-validator.js +62 -0
- package/esm2015/components/utils/cpf-validator.js +45 -0
- package/esm2015/components/utils/date-validator/date-validators.js +144 -0
- package/esm2015/components/utils/helpers.js +476 -0
- package/esm2015/components/utils/validations.js +127 -0
- package/esm2015/components/vanilla/string-methods.js +22 -0
- package/esm2015/components/workstationgroup-lookup/autocomplete.service.js +111 -0
- package/esm2015/components/workstationgroup-lookup/index.js +3 -0
- package/esm2015/components/workstationgroup-lookup/lookup.service.js +142 -0
- package/esm2015/components/workstationgroup-lookup/workstationgroup-lookup.component.js +587 -0
- package/esm2015/components/workstationgroup-lookup/workstationgroup-lookup.dto.js +48 -0
- package/esm2015/components/workstationgroup-lookup/workstationgroup-lookup.module.js +21 -0
- package/esm2015/core/entities/entity-odata-parameter.js +33 -0
- package/esm2015/core/entities/index.js +2 -0
- package/esm2015/core/enums/companyIndicationType.js +18 -0
- package/esm2015/core/enums/comparetype.enumeration.js +14 -0
- package/esm2015/core/enums/coreFieldType.js +5 -0
- package/esm2015/core/enums/direction.enumeration.js +6 -0
- package/esm2015/core/enums/httpRequestType.js +6 -0
- package/esm2015/core/enums/index.js +14 -0
- package/esm2015/core/enums/menu-type.enumeration.js +6 -0
- package/esm2015/core/enums/moduleType.js +22 -0
- package/esm2015/core/enums/operators.enumeration.js +14 -0
- package/esm2015/core/enums/parameter-type.enumeration.js +12 -0
- package/esm2015/core/enums/report-format.enumeration.js +12 -0
- package/esm2015/core/enums/report-stage.enumeration.js +12 -0
- package/esm2015/core/enums/serviceType.js +9 -0
- package/esm2015/core/enums/usingType.js +42 -0
- package/esm2015/core/interfaces/date-compare-options.js +1 -0
- package/esm2015/core/interfaces/date-validate-options.js +1 -0
- package/esm2015/core/interfaces/field-validators-object.js +1 -0
- package/esm2015/core/interfaces/index.js +1 -0
- package/esm2015/core/interfaces/pagination-data.js +1 -0
- package/esm2015/core/interfaces/report/domain-service.interface.js +1 -0
- package/esm2015/core/interfaces/report/generation-status.interface.js +1 -0
- package/esm2015/core/interfaces/report/get-parameters-out.interface.js +1 -0
- package/esm2015/core/interfaces/report/index.js +1 -0
- package/esm2015/core/interfaces/report/lookup-parameter.interface.js +1 -0
- package/esm2015/core/interfaces/report/parameter-def.interface.js +1 -0
- package/esm2015/core/interfaces/report/parameter-value.interface.js +1 -0
- package/esm2015/core/interfaces/report/report-header.interface.js +1 -0
- package/esm2015/core/interfaces/report/report-in.interface.js +1 -0
- package/esm2015/core/interfaces/report/report-menu.interface.js +1 -0
- package/esm2015/core/interfaces/report/report-out.interface.js +1 -0
- package/esm2015/core/interfaces/report/report.interface.js +1 -0
- package/esm2015/public_api.js +52 -58
- package/esm2015/senior-gestao-pessoas-payroll-core.js +19 -24
- package/esm2015/services/autocomplete-parameters.service.js +116 -0
- package/esm2015/services/company-indications.service.js +42 -0
- package/esm2015/services/form-comparator.service.js +99 -0
- package/esm2015/services/integration.service.js +19 -0
- package/esm2015/services/lookup-parameters.service.js +345 -0
- package/esm2015/services/permissions.service.js +89 -0
- package/esm2015/services/report.service.js +109 -0
- package/esm2015/services/services.module.js +29 -0
- package/esm2015/services/workflow-data.service.js +26 -0
- package/esm2015/services/workflow-integrator.service.js +248 -0
- package/esm5/components/admission-draft-summary/admission-draft-summary.component.js +109 -0
- package/esm5/components/admission-draft-summary/admission-draft-summary.module.js +20 -0
- package/esm5/components/admission-draft-summary/admission-draft-summary.service.js +28 -0
- package/esm5/components/admission-draft-summary/index.js +4 -0
- package/esm5/components/block-ui/block-ui.component.js +22 -0
- package/esm5/components/block-ui/block-ui.module.js +28 -0
- package/esm5/components/block-ui/index.js +3 -0
- package/esm5/components/breadcrumb/breadcrumb.component.js +79 -0
- package/esm5/components/breadcrumb/breadcrumb.module.js +28 -0
- package/esm5/components/breadcrumb/index.js +3 -0
- package/esm5/components/control-messages-error/control-messages-error.component.js +34 -0
- package/esm5/components/control-messages-error/control-messages-error.module.js +20 -0
- package/esm5/components/control-messages-error/index.js +3 -0
- package/esm5/components/custom-fields/custom-fields.component.js +33 -0
- package/esm5/components/custom-fields/custom-fields.module.js +34 -0
- package/esm5/components/custom-fields/index.js +3 -0
- package/esm5/components/data-list/data-list.component.js +338 -0
- package/esm5/components/data-list/data-list.module.js +31 -0
- package/esm5/components/data-list/data-list.service.js +20 -0
- package/esm5/components/data-list/entity-odata-response.js +40 -0
- package/esm5/components/data-list/index.js +2 -0
- package/esm5/components/data-list-rest/data-list-rest.component.js +264 -0
- package/esm5/components/data-list-rest/data-list-rest.module.js +31 -0
- package/esm5/components/data-list-rest/data-list-rest.service.js +20 -0
- package/esm5/components/data-list-rest/index.js +2 -0
- package/esm5/components/directives/directives.module.js +20 -0
- package/esm5/components/directives/index.js +4 -0
- package/esm5/components/directives/name-not-spaces.directive.js +32 -0
- package/esm5/components/directives/only-number.directive.js +42 -0
- package/esm5/components/employee-selector/employee-selector.component.js +75 -0
- package/esm5/components/employee-selector/employee-selector.module.js +21 -0
- package/esm5/components/employee-selector/index.js +3 -0
- package/esm5/components/employee-summary/employee-summary.component.js +111 -0
- package/esm5/components/employee-summary/employee-summary.module.js +20 -0
- package/esm5/components/employee-summary/employee-summary.service.js +34 -0
- package/esm5/components/employee-summary/index.js +4 -0
- package/esm5/components/error-page/error-page.component.js +17 -0
- package/esm5/components/error-page/error-page.module.js +19 -0
- package/esm5/components/error-page/index.js +3 -0
- package/esm5/components/field-validator/field-validator.component.js +42 -0
- package/esm5/components/field-validator/field-validator.module.js +21 -0
- package/esm5/components/field-validator/index.js +3 -0
- package/esm5/components/file-upload/file-upload.component.js +138 -0
- package/esm5/components/file-upload/file-upload.module.js +22 -0
- package/esm5/components/file-upload/file-upload.service.js +45 -0
- package/esm5/components/file-upload/index.js +3 -0
- package/esm5/components/from-to/from-to.component.js +18 -0
- package/esm5/components/from-to/from-to.module.js +22 -0
- package/esm5/components/from-to/index.js +3 -0
- package/esm5/components/historical-bank-account/historical-bank-account-form/historical-bank-account-form.component.js +353 -0
- package/esm5/components/historical-bank-account/historical-bank-account.component.js +363 -0
- package/esm5/components/historical-bank-account/historical-bank-account.module.js +59 -0
- package/esm5/components/historical-bank-account/historical-bank-account.service.js +22 -0
- package/esm5/components/historical-bank-account/index.js +4 -0
- package/esm5/components/historical-bank-account-list/historical-bank-account-list.component.js +243 -0
- package/esm5/components/historical-bank-account-list/historical-bank-account-list.module.js +42 -0
- package/esm5/components/historical-bank-account-list/historical-bank-account-list.service.js +37 -0
- package/esm5/components/historical-bank-account-list/index.js +4 -0
- package/esm5/components/image-cropper/image-crop.component.js +164 -0
- package/esm5/components/image-cropper/image-crop.module.js +41 -0
- package/esm5/components/image-cropper/image-crop.service.js +106 -0
- package/esm5/components/image-cropper/index.js +4 -0
- package/esm5/components/input-date/index.js +3 -0
- package/esm5/components/input-date/input-date.component.js +129 -0
- package/esm5/components/input-date/input-date.module.js +20 -0
- package/esm5/components/input-date-model/index.js +3 -0
- package/esm5/components/input-date-model/input-date-model.component.js +110 -0
- package/esm5/components/input-date-model/input-date-model.module.js +20 -0
- package/esm5/components/input-rest-auto-complete/index.js +4 -0
- package/esm5/components/input-rest-auto-complete/input-rest-auto-complete.component.js +317 -0
- package/esm5/components/input-rest-auto-complete/input-rest-auto-complete.module.js +24 -0
- package/esm5/components/input-rest-auto-complete/input-rest-auto-complete.service.js +22 -0
- package/esm5/components/input-rest-auto-complete-employee/index.js +3 -0
- package/esm5/components/input-rest-auto-complete-employee/input-rest-auto-complete-employee.component.js +192 -0
- package/esm5/components/input-rest-auto-complete-employee/input-rest-auto-complete-employee.module.js +31 -0
- package/esm5/components/input-rest-auto-complete-employee/input-rest-auto-complete-employee.service.js +21 -0
- package/esm5/components/input-rest-auto-complete-employee-model/index.js +3 -0
- package/esm5/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.component.js +185 -0
- package/esm5/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.module.js +31 -0
- package/esm5/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.service.js +21 -0
- package/esm5/components/input-rest-auto-complete-enum/index.js +4 -0
- package/esm5/components/input-rest-auto-complete-enum/input-rest-auto-complete-enum.component.js +162 -0
- package/esm5/components/input-rest-auto-complete-enum/input-rest-auto-complete-enum.module.js +31 -0
- package/esm5/components/input-rest-auto-complete-enum/input-rest-auto-complete-enum.service.js +24 -0
- package/esm5/components/input-rest-auto-complete-jobposition/index.js +4 -0
- package/esm5/components/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.component.js +176 -0
- package/esm5/components/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.module.js +31 -0
- package/esm5/components/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.service.js +21 -0
- package/esm5/components/input-rest-auto-complete-model/index.js +3 -0
- package/esm5/components/input-rest-auto-complete-model/input-rest-auto-complete-model.component.js +234 -0
- package/esm5/components/input-rest-auto-complete-model/input-rest-auto-complete-model.module.js +31 -0
- package/esm5/components/input-rest-auto-complete-model/input-rest-auto-complete-model.service.js +22 -0
- package/esm5/components/input-rest-auto-complete-model-enum/index.js +3 -0
- package/esm5/components/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.component.js +130 -0
- package/esm5/components/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.module.js +31 -0
- package/esm5/components/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.service.js +24 -0
- package/esm5/components/list-rest/index.js +3 -0
- package/esm5/components/list-rest/list-rest.component.js +119 -0
- package/esm5/components/list-rest/list-rest.module.js +36 -0
- package/esm5/components/list-rest/list-rest.service.js +24 -0
- package/esm5/components/lookup/index.js +2 -0
- package/esm5/components/lookup/lookup.component.js +339 -0
- package/esm5/components/lookup/lookup.module.js +23 -0
- package/esm5/components/lookup/lookup.service.js +54 -0
- package/esm5/components/shared/http-client.service.js +179 -0
- package/esm5/components/shared/shared.module.js +22 -0
- package/esm5/components/spinner/index.js +3 -0
- package/esm5/components/spinner/spinner-loader.component.js +15 -0
- package/esm5/components/spinner/spinner-loader.module.js +26 -0
- package/esm5/components/toast/index.js +4 -0
- package/esm5/components/toast/toast.component.js +88 -0
- package/esm5/components/toast/toast.module.js +23 -0
- package/esm5/components/toast/toast.service.js +47 -0
- package/esm5/components/type-admission/index.js +3 -0
- package/esm5/components/type-admission/type-admission.module.js +17 -0
- package/esm5/components/type-admission/type-admission.services.js +75 -0
- package/esm5/components/utils/cnpj-validator.js +66 -0
- package/esm5/components/utils/cpf-validator.js +49 -0
- package/esm5/components/utils/date-validator/date-validators.js +149 -0
- package/esm5/components/utils/helpers.js +502 -0
- package/esm5/components/utils/validations.js +131 -0
- package/esm5/components/vanilla/string-methods.js +24 -0
- package/esm5/components/workstationgroup-lookup/autocomplete.service.js +124 -0
- package/esm5/components/workstationgroup-lookup/index.js +3 -0
- package/esm5/components/workstationgroup-lookup/lookup.service.js +147 -0
- package/esm5/components/workstationgroup-lookup/workstationgroup-lookup.component.js +609 -0
- package/esm5/components/workstationgroup-lookup/workstationgroup-lookup.dto.js +50 -0
- package/esm5/components/workstationgroup-lookup/workstationgroup-lookup.module.js +24 -0
- package/esm5/core/entities/entity-odata-parameter.js +47 -0
- package/esm5/core/entities/index.js +2 -0
- package/esm5/core/enums/companyIndicationType.js +18 -0
- package/esm5/core/enums/comparetype.enumeration.js +14 -0
- package/esm5/core/enums/coreFieldType.js +5 -0
- package/esm5/core/enums/direction.enumeration.js +6 -0
- package/esm5/core/enums/httpRequestType.js +6 -0
- package/esm5/core/enums/index.js +14 -0
- package/esm5/core/enums/menu-type.enumeration.js +6 -0
- package/esm5/core/enums/moduleType.js +22 -0
- package/esm5/core/enums/operators.enumeration.js +14 -0
- package/esm5/core/enums/parameter-type.enumeration.js +12 -0
- package/esm5/core/enums/report-format.enumeration.js +12 -0
- package/esm5/core/enums/report-stage.enumeration.js +12 -0
- package/esm5/core/enums/serviceType.js +9 -0
- package/esm5/core/enums/usingType.js +42 -0
- package/esm5/core/interfaces/date-compare-options.js +1 -0
- package/esm5/core/interfaces/date-validate-options.js +1 -0
- package/esm5/core/interfaces/field-validators-object.js +1 -0
- package/esm5/core/interfaces/index.js +1 -0
- package/esm5/core/interfaces/pagination-data.js +1 -0
- package/esm5/core/interfaces/report/domain-service.interface.js +1 -0
- package/esm5/core/interfaces/report/generation-status.interface.js +1 -0
- package/esm5/core/interfaces/report/get-parameters-out.interface.js +1 -0
- package/esm5/core/interfaces/report/index.js +1 -0
- package/esm5/core/interfaces/report/lookup-parameter.interface.js +1 -0
- package/esm5/core/interfaces/report/parameter-def.interface.js +1 -0
- package/esm5/core/interfaces/report/parameter-value.interface.js +1 -0
- package/esm5/core/interfaces/report/report-header.interface.js +1 -0
- package/esm5/core/interfaces/report/report-in.interface.js +1 -0
- package/esm5/core/interfaces/report/report-menu.interface.js +1 -0
- package/esm5/core/interfaces/report/report-out.interface.js +1 -0
- package/esm5/core/interfaces/report/report.interface.js +1 -0
- package/esm5/public_api.js +52 -58
- package/esm5/senior-gestao-pessoas-payroll-core.js +19 -24
- package/esm5/services/autocomplete-parameters.service.js +129 -0
- package/esm5/services/company-indications.service.js +43 -0
- package/esm5/services/form-comparator.service.js +119 -0
- package/esm5/services/integration.service.js +20 -0
- package/esm5/services/lookup-parameters.service.js +362 -0
- package/esm5/services/permissions.service.js +100 -0
- package/esm5/services/report.service.js +110 -0
- package/esm5/services/services.module.js +32 -0
- package/esm5/services/workflow-data.service.js +27 -0
- package/esm5/services/workflow-integrator.service.js +361 -0
- package/fesm2015/senior-gestao-pessoas-payroll-core.js +2939 -8866
- package/fesm2015/senior-gestao-pessoas-payroll-core.js.map +1 -1
- package/fesm5/senior-gestao-pessoas-payroll-core.js +2999 -10876
- package/fesm5/senior-gestao-pessoas-payroll-core.js.map +1 -1
- package/package.json +7 -1
- package/public_api.d.ts +52 -52
- package/senior-gestao-pessoas-payroll-core.d.ts +17 -17
- package/senior-gestao-pessoas-payroll-core.metadata.json +1 -1
- package/esm2015/lib/components/admission-draft-summary/admission-draft-summary.component.js +0 -203
- package/esm2015/lib/components/admission-draft-summary/admission-draft-summary.module.js +0 -20
- package/esm2015/lib/components/admission-draft-summary/admission-draft-summary.service.js +0 -59
- package/esm2015/lib/components/admission-draft-summary/index.js +0 -9
- package/esm2015/lib/components/block-ui/block-ui.component.js +0 -26
- package/esm2015/lib/components/block-ui/block-ui.module.js +0 -28
- package/esm2015/lib/components/block-ui/index.js +0 -8
- package/esm2015/lib/components/breadcrumb/breadcrumb.component.js +0 -151
- package/esm2015/lib/components/breadcrumb/breadcrumb.module.js +0 -28
- package/esm2015/lib/components/breadcrumb/index.js +0 -8
- package/esm2015/lib/components/control-messages-error/control-messages-error.component.js +0 -41
- package/esm2015/lib/components/control-messages-error/control-messages-error.module.js +0 -20
- package/esm2015/lib/components/control-messages-error/index.js +0 -8
- package/esm2015/lib/components/custom-fields/custom-fields.component.js +0 -65
- package/esm2015/lib/components/custom-fields/custom-fields.module.js +0 -34
- package/esm2015/lib/components/custom-fields/index.js +0 -8
- package/esm2015/lib/components/data-list/data-list.component.js +0 -456
- package/esm2015/lib/components/data-list/data-list.module.js +0 -31
- package/esm2015/lib/components/data-list/data-list.service.js +0 -38
- package/esm2015/lib/components/data-list/entity-odata-response.js +0 -72
- package/esm2015/lib/components/data-list/index.js +0 -7
- package/esm2015/lib/components/data-list-rest/data-list-rest.component.js +0 -354
- package/esm2015/lib/components/data-list-rest/data-list-rest.module.js +0 -31
- package/esm2015/lib/components/data-list-rest/data-list-rest.service.js +0 -38
- package/esm2015/lib/components/data-list-rest/index.js +0 -7
- package/esm2015/lib/components/directives/directives.module.js +0 -20
- package/esm2015/lib/components/directives/index.js +0 -9
- package/esm2015/lib/components/directives/name-not-spaces.directive.js +0 -59
- package/esm2015/lib/components/directives/only-number.directive.js +0 -60
- package/esm2015/lib/components/employee-selector/employee-selector.component.js +0 -145
- package/esm2015/lib/components/employee-selector/employee-selector.module.js +0 -21
- package/esm2015/lib/components/employee-selector/index.js +0 -8
- package/esm2015/lib/components/employee-summary/employee-summary.component.js +0 -200
- package/esm2015/lib/components/employee-summary/employee-summary.module.js +0 -20
- package/esm2015/lib/components/employee-summary/employee-summary.service.js +0 -74
- package/esm2015/lib/components/employee-summary/index.js +0 -9
- package/esm2015/lib/components/error-page/error-page.component.js +0 -23
- package/esm2015/lib/components/error-page/error-page.module.js +0 -19
- package/esm2015/lib/components/error-page/index.js +0 -8
- package/esm2015/lib/components/field-validator/field-validator.component.js +0 -64
- package/esm2015/lib/components/field-validator/field-validator.module.js +0 -21
- package/esm2015/lib/components/field-validator/index.js +0 -8
- package/esm2015/lib/components/file-upload/file-upload.component.js +0 -220
- package/esm2015/lib/components/file-upload/file-upload.module.js +0 -22
- package/esm2015/lib/components/file-upload/file-upload.service.js +0 -83
- package/esm2015/lib/components/file-upload/index.js +0 -8
- package/esm2015/lib/components/from-to/from-to.component.js +0 -25
- package/esm2015/lib/components/from-to/from-to.module.js +0 -22
- package/esm2015/lib/components/from-to/index.js +0 -8
- package/esm2015/lib/components/historical-bank-account/historical-bank-account-form/historical-bank-account-form.component.js +0 -514
- package/esm2015/lib/components/historical-bank-account/historical-bank-account.component.js +0 -542
- package/esm2015/lib/components/historical-bank-account/historical-bank-account.module.js +0 -59
- package/esm2015/lib/components/historical-bank-account/historical-bank-account.service.js +0 -40
- package/esm2015/lib/components/historical-bank-account/index.js +0 -9
- package/esm2015/lib/components/historical-bank-account-list/historical-bank-account-list.component.js +0 -359
- package/esm2015/lib/components/historical-bank-account-list/historical-bank-account-list.module.js +0 -42
- package/esm2015/lib/components/historical-bank-account-list/historical-bank-account-list.service.js +0 -62
- package/esm2015/lib/components/historical-bank-account-list/index.js +0 -9
- package/esm2015/lib/components/image-cropper/image-crop.component.js +0 -248
- package/esm2015/lib/components/image-cropper/image-crop.module.js +0 -38
- package/esm2015/lib/components/image-cropper/image-crop.service.js +0 -164
- package/esm2015/lib/components/image-cropper/index.js +0 -9
- package/esm2015/lib/components/input-date/index.js +0 -8
- package/esm2015/lib/components/input-date/input-date.component.js +0 -189
- package/esm2015/lib/components/input-date/input-date.module.js +0 -20
- package/esm2015/lib/components/input-date-model/index.js +0 -8
- package/esm2015/lib/components/input-date-model/input-date-model.component.js +0 -169
- package/esm2015/lib/components/input-date-model/input-date-model.module.js +0 -20
- package/esm2015/lib/components/input-rest-auto-complete/index.js +0 -9
- package/esm2015/lib/components/input-rest-auto-complete/input-rest-auto-complete.component.js +0 -444
- package/esm2015/lib/components/input-rest-auto-complete/input-rest-auto-complete.module.js +0 -24
- package/esm2015/lib/components/input-rest-auto-complete/input-rest-auto-complete.service.js +0 -40
- package/esm2015/lib/components/input-rest-auto-complete-employee/index.js +0 -8
- package/esm2015/lib/components/input-rest-auto-complete-employee/input-rest-auto-complete-employee.component.js +0 -263
- package/esm2015/lib/components/input-rest-auto-complete-employee/input-rest-auto-complete-employee.module.js +0 -31
- package/esm2015/lib/components/input-rest-auto-complete-employee/input-rest-auto-complete-employee.service.js +0 -40
- package/esm2015/lib/components/input-rest-auto-complete-employee-model/index.js +0 -8
- package/esm2015/lib/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.component.js +0 -253
- package/esm2015/lib/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.module.js +0 -31
- package/esm2015/lib/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.service.js +0 -40
- package/esm2015/lib/components/input-rest-auto-complete-enum/index.js +0 -9
- package/esm2015/lib/components/input-rest-auto-complete-enum/input-rest-auto-complete-enum.component.js +0 -209
- package/esm2015/lib/components/input-rest-auto-complete-enum/input-rest-auto-complete-enum.module.js +0 -31
- package/esm2015/lib/components/input-rest-auto-complete-enum/input-rest-auto-complete-enum.service.js +0 -44
- package/esm2015/lib/components/input-rest-auto-complete-jobposition/index.js +0 -9
- package/esm2015/lib/components/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.component.js +0 -254
- package/esm2015/lib/components/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.module.js +0 -31
- package/esm2015/lib/components/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.service.js +0 -40
- package/esm2015/lib/components/input-rest-auto-complete-model/index.js +0 -8
- package/esm2015/lib/components/input-rest-auto-complete-model/input-rest-auto-complete-model.component.js +0 -331
- package/esm2015/lib/components/input-rest-auto-complete-model/input-rest-auto-complete-model.module.js +0 -31
- package/esm2015/lib/components/input-rest-auto-complete-model/input-rest-auto-complete-model.service.js +0 -40
- package/esm2015/lib/components/input-rest-auto-complete-model-enum/index.js +0 -8
- package/esm2015/lib/components/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.component.js +0 -176
- package/esm2015/lib/components/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.module.js +0 -31
- package/esm2015/lib/components/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.service.js +0 -44
- package/esm2015/lib/components/list-rest/index.js +0 -8
- package/esm2015/lib/components/list-rest/list-rest.component.js +0 -192
- package/esm2015/lib/components/list-rest/list-rest.module.js +0 -36
- package/esm2015/lib/components/list-rest/list-rest.service.js +0 -48
- package/esm2015/lib/components/lookup/index.js +0 -7
- package/esm2015/lib/components/lookup/lookup.component.js +0 -471
- package/esm2015/lib/components/lookup/lookup.module.js +0 -23
- package/esm2015/lib/components/lookup/lookup.service.js +0 -91
- package/esm2015/lib/components/shared/http-client.service.js +0 -293
- package/esm2015/lib/components/shared/shared.module.js +0 -26
- package/esm2015/lib/components/spinner/index.js +0 -8
- package/esm2015/lib/components/spinner/spinner-loader.component.js +0 -15
- package/esm2015/lib/components/spinner/spinner-loader.module.js +0 -26
- package/esm2015/lib/components/toast/index.js +0 -9
- package/esm2015/lib/components/toast/toast.component.js +0 -156
- package/esm2015/lib/components/toast/toast.module.js +0 -23
- package/esm2015/lib/components/toast/toast.service.js +0 -76
- package/esm2015/lib/components/type-admission/index.js +0 -8
- package/esm2015/lib/components/type-admission/type-admission.module.js +0 -17
- package/esm2015/lib/components/type-admission/type-admission.services.js +0 -135
- package/esm2015/lib/components/utils/cnpj-validator.js +0 -82
- package/esm2015/lib/components/utils/cpf-validator.js +0 -76
- package/esm2015/lib/components/utils/date-validator/date-validators.js +0 -184
- package/esm2015/lib/components/utils/helpers.js +0 -737
- package/esm2015/lib/components/utils/validations.js +0 -237
- package/esm2015/lib/components/vanilla/string-methods.js +0 -37
- package/esm2015/lib/components/workstationgroup-lookup/autocomplete.service.js +0 -175
- package/esm2015/lib/components/workstationgroup-lookup/index.js +0 -8
- package/esm2015/lib/components/workstationgroup-lookup/lookup.service.js +0 -254
- package/esm2015/lib/components/workstationgroup-lookup/workstationgroup-lookup.component.js +0 -832
- package/esm2015/lib/components/workstationgroup-lookup/workstationgroup-lookup.dto.js +0 -193
- package/esm2015/lib/components/workstationgroup-lookup/workstationgroup-lookup.module.js +0 -24
- package/esm2015/lib/core/entities/entity-odata-parameter.js +0 -82
- package/esm2015/lib/core/entities/index.js +0 -7
- package/esm2015/lib/core/enums/companyIndicationType.js +0 -24
- package/esm2015/lib/core/enums/comparetype.enumeration.js +0 -16
- package/esm2015/lib/core/enums/coreFieldType.js +0 -11
- package/esm2015/lib/core/enums/direction.enumeration.js +0 -12
- package/esm2015/lib/core/enums/httpRequestType.js +0 -12
- package/esm2015/lib/core/enums/index.js +0 -19
- package/esm2015/lib/core/enums/menu-type.enumeration.js +0 -12
- package/esm2015/lib/core/enums/moduleType.js +0 -28
- package/esm2015/lib/core/enums/operators.enumeration.js +0 -20
- package/esm2015/lib/core/enums/parameter-type.enumeration.js +0 -18
- package/esm2015/lib/core/enums/report-format.enumeration.js +0 -18
- package/esm2015/lib/core/enums/report-stage.enumeration.js +0 -18
- package/esm2015/lib/core/enums/serviceType.js +0 -15
- package/esm2015/lib/core/enums/usingType.js +0 -48
- package/esm2015/lib/core/interfaces/date-compare-options.js +0 -19
- package/esm2015/lib/core/interfaces/date-validate-options.js +0 -17
- package/esm2015/lib/core/interfaces/field-validators-object.js +0 -20
- package/esm2015/lib/core/interfaces/index.js +0 -10
- package/esm2015/lib/core/interfaces/pagination-data.js +0 -18
- package/esm2015/lib/core/interfaces/report/domain-service.interface.js +0 -16
- package/esm2015/lib/core/interfaces/report/generation-status.interface.js +0 -22
- package/esm2015/lib/core/interfaces/report/get-parameters-out.interface.js +0 -16
- package/esm2015/lib/core/interfaces/report/index.js +0 -15
- package/esm2015/lib/core/interfaces/report/lookup-parameter.interface.js +0 -20
- package/esm2015/lib/core/interfaces/report/parameter-def.interface.js +0 -20
- package/esm2015/lib/core/interfaces/report/parameter-value.interface.js +0 -16
- package/esm2015/lib/core/interfaces/report/report-header.interface.js +0 -16
- package/esm2015/lib/core/interfaces/report/report-in.interface.js +0 -20
- package/esm2015/lib/core/interfaces/report/report-menu.interface.js +0 -18
- package/esm2015/lib/core/interfaces/report/report-out.interface.js +0 -14
- package/esm2015/lib/core/interfaces/report/report.interface.js +0 -48
- package/esm2015/lib/services/autocomplete-parameters.service.js +0 -180
- package/esm2015/lib/services/company-indications.service.js +0 -101
- package/esm2015/lib/services/form-comparator.service.js +0 -208
- package/esm2015/lib/services/integration.service.js +0 -37
- package/esm2015/lib/services/lookup-parameters.service.js +0 -557
- package/esm2015/lib/services/permissions.service.js +0 -218
- package/esm2015/lib/services/report.service.js +0 -161
- package/esm2015/lib/services/services.module.js +0 -32
- package/esm2015/lib/services/workflow-data.service.js +0 -57
- package/esm2015/lib/services/workflow-integrator.service.js +0 -416
- package/esm5/lib/components/admission-draft-summary/admission-draft-summary.component.js +0 -214
- package/esm5/lib/components/admission-draft-summary/admission-draft-summary.module.js +0 -24
- package/esm5/lib/components/admission-draft-summary/admission-draft-summary.service.js +0 -71
- package/esm5/lib/components/admission-draft-summary/index.js +0 -9
- package/esm5/lib/components/block-ui/block-ui.component.js +0 -30
- package/esm5/lib/components/block-ui/block-ui.module.js +0 -32
- package/esm5/lib/components/block-ui/index.js +0 -8
- package/esm5/lib/components/breadcrumb/breadcrumb.component.js +0 -170
- package/esm5/lib/components/breadcrumb/breadcrumb.module.js +0 -32
- package/esm5/lib/components/breadcrumb/index.js +0 -8
- package/esm5/lib/components/control-messages-error/control-messages-error.component.js +0 -48
- package/esm5/lib/components/control-messages-error/control-messages-error.module.js +0 -24
- package/esm5/lib/components/control-messages-error/index.js +0 -8
- package/esm5/lib/components/custom-fields/custom-fields.component.js +0 -70
- package/esm5/lib/components/custom-fields/custom-fields.module.js +0 -38
- package/esm5/lib/components/custom-fields/index.js +0 -8
- package/esm5/lib/components/data-list/data-list.component.js +0 -557
- package/esm5/lib/components/data-list/data-list.module.js +0 -35
- package/esm5/lib/components/data-list/data-list.service.js +0 -42
- package/esm5/lib/components/data-list/entity-odata-response.js +0 -83
- package/esm5/lib/components/data-list/index.js +0 -7
- package/esm5/lib/components/data-list-rest/data-list-rest.component.js +0 -414
- package/esm5/lib/components/data-list-rest/data-list-rest.module.js +0 -35
- package/esm5/lib/components/data-list-rest/data-list-rest.service.js +0 -42
- package/esm5/lib/components/data-list-rest/index.js +0 -7
- package/esm5/lib/components/directives/directives.module.js +0 -24
- package/esm5/lib/components/directives/index.js +0 -9
- package/esm5/lib/components/directives/name-not-spaces.directive.js +0 -66
- package/esm5/lib/components/directives/only-number.directive.js +0 -63
- package/esm5/lib/components/employee-selector/employee-selector.component.js +0 -168
- package/esm5/lib/components/employee-selector/employee-selector.module.js +0 -25
- package/esm5/lib/components/employee-selector/index.js +0 -8
- package/esm5/lib/components/employee-summary/employee-summary.component.js +0 -212
- package/esm5/lib/components/employee-summary/employee-summary.module.js +0 -24
- package/esm5/lib/components/employee-summary/employee-summary.service.js +0 -95
- package/esm5/lib/components/employee-summary/index.js +0 -9
- package/esm5/lib/components/error-page/error-page.component.js +0 -29
- package/esm5/lib/components/error-page/error-page.module.js +0 -23
- package/esm5/lib/components/error-page/index.js +0 -8
- package/esm5/lib/components/field-validator/field-validator.component.js +0 -74
- package/esm5/lib/components/field-validator/field-validator.module.js +0 -25
- package/esm5/lib/components/field-validator/index.js +0 -8
- package/esm5/lib/components/file-upload/file-upload.component.js +0 -261
- package/esm5/lib/components/file-upload/file-upload.module.js +0 -26
- package/esm5/lib/components/file-upload/file-upload.service.js +0 -99
- package/esm5/lib/components/file-upload/index.js +0 -8
- package/esm5/lib/components/from-to/from-to.component.js +0 -28
- package/esm5/lib/components/from-to/from-to.module.js +0 -26
- package/esm5/lib/components/from-to/index.js +0 -8
- package/esm5/lib/components/historical-bank-account/historical-bank-account-form/historical-bank-account-form.component.js +0 -657
- package/esm5/lib/components/historical-bank-account/historical-bank-account.component.js +0 -624
- package/esm5/lib/components/historical-bank-account/historical-bank-account.module.js +0 -63
- package/esm5/lib/components/historical-bank-account/historical-bank-account.service.js +0 -46
- package/esm5/lib/components/historical-bank-account/index.js +0 -9
- package/esm5/lib/components/historical-bank-account-list/historical-bank-account-list.component.js +0 -402
- package/esm5/lib/components/historical-bank-account-list/historical-bank-account-list.module.js +0 -46
- package/esm5/lib/components/historical-bank-account-list/historical-bank-account-list.service.js +0 -68
- package/esm5/lib/components/historical-bank-account-list/index.js +0 -9
- package/esm5/lib/components/image-cropper/image-crop.component.js +0 -287
- package/esm5/lib/components/image-cropper/image-crop.module.js +0 -39
- package/esm5/lib/components/image-cropper/image-crop.service.js +0 -221
- package/esm5/lib/components/image-cropper/index.js +0 -9
- package/esm5/lib/components/input-date/index.js +0 -8
- package/esm5/lib/components/input-date/input-date.component.js +0 -218
- package/esm5/lib/components/input-date/input-date.module.js +0 -24
- package/esm5/lib/components/input-date-model/index.js +0 -8
- package/esm5/lib/components/input-date-model/input-date-model.component.js +0 -190
- package/esm5/lib/components/input-date-model/input-date-model.module.js +0 -24
- package/esm5/lib/components/input-rest-auto-complete/index.js +0 -9
- package/esm5/lib/components/input-rest-auto-complete/input-rest-auto-complete.component.js +0 -497
- package/esm5/lib/components/input-rest-auto-complete/input-rest-auto-complete.module.js +0 -28
- package/esm5/lib/components/input-rest-auto-complete/input-rest-auto-complete.service.js +0 -46
- package/esm5/lib/components/input-rest-auto-complete-employee/index.js +0 -8
- package/esm5/lib/components/input-rest-auto-complete-employee/input-rest-auto-complete-employee.component.js +0 -300
- package/esm5/lib/components/input-rest-auto-complete-employee/input-rest-auto-complete-employee.module.js +0 -35
- package/esm5/lib/components/input-rest-auto-complete-employee/input-rest-auto-complete-employee.service.js +0 -44
- package/esm5/lib/components/input-rest-auto-complete-employee-model/index.js +0 -8
- package/esm5/lib/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.component.js +0 -291
- package/esm5/lib/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.module.js +0 -35
- package/esm5/lib/components/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.service.js +0 -44
- package/esm5/lib/components/input-rest-auto-complete-enum/index.js +0 -9
- package/esm5/lib/components/input-rest-auto-complete-enum/input-rest-auto-complete-enum.component.js +0 -252
- package/esm5/lib/components/input-rest-auto-complete-enum/input-rest-auto-complete-enum.module.js +0 -35
- package/esm5/lib/components/input-rest-auto-complete-enum/input-rest-auto-complete-enum.service.js +0 -48
- package/esm5/lib/components/input-rest-auto-complete-jobposition/index.js +0 -9
- package/esm5/lib/components/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.component.js +0 -302
- package/esm5/lib/components/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.module.js +0 -35
- package/esm5/lib/components/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.service.js +0 -44
- package/esm5/lib/components/input-rest-auto-complete-model/index.js +0 -8
- package/esm5/lib/components/input-rest-auto-complete-model/input-rest-auto-complete-model.component.js +0 -379
- package/esm5/lib/components/input-rest-auto-complete-model/input-rest-auto-complete-model.module.js +0 -35
- package/esm5/lib/components/input-rest-auto-complete-model/input-rest-auto-complete-model.service.js +0 -46
- package/esm5/lib/components/input-rest-auto-complete-model-enum/index.js +0 -8
- package/esm5/lib/components/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.component.js +0 -206
- package/esm5/lib/components/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.module.js +0 -35
- package/esm5/lib/components/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.service.js +0 -48
- package/esm5/lib/components/list-rest/index.js +0 -8
- package/esm5/lib/components/list-rest/list-rest.component.js +0 -219
- package/esm5/lib/components/list-rest/list-rest.module.js +0 -40
- package/esm5/lib/components/list-rest/list-rest.service.js +0 -57
- package/esm5/lib/components/lookup/index.js +0 -7
- package/esm5/lib/components/lookup/lookup.component.js +0 -600
- package/esm5/lib/components/lookup/lookup.module.js +0 -27
- package/esm5/lib/components/lookup/lookup.service.js +0 -94
- package/esm5/lib/components/shared/http-client.service.js +0 -355
- package/esm5/lib/components/shared/shared.module.js +0 -28
- package/esm5/lib/components/spinner/index.js +0 -8
- package/esm5/lib/components/spinner/spinner-loader.component.js +0 -19
- package/esm5/lib/components/spinner/spinner-loader.module.js +0 -30
- package/esm5/lib/components/toast/index.js +0 -9
- package/esm5/lib/components/toast/toast.component.js +0 -173
- package/esm5/lib/components/toast/toast.module.js +0 -27
- package/esm5/lib/components/toast/toast.service.js +0 -123
- package/esm5/lib/components/type-admission/index.js +0 -8
- package/esm5/lib/components/type-admission/type-admission.module.js +0 -21
- package/esm5/lib/components/type-admission/type-admission.services.js +0 -191
- package/esm5/lib/components/utils/cnpj-validator.js +0 -94
- package/esm5/lib/components/utils/cpf-validator.js +0 -98
- package/esm5/lib/components/utils/date-validator/date-validators.js +0 -289
- package/esm5/lib/components/utils/helpers.js +0 -763
- package/esm5/lib/components/utils/validations.js +0 -241
- package/esm5/lib/components/vanilla/string-methods.js +0 -42
- package/esm5/lib/components/workstationgroup-lookup/autocomplete.service.js +0 -250
- package/esm5/lib/components/workstationgroup-lookup/index.js +0 -8
- package/esm5/lib/components/workstationgroup-lookup/lookup.service.js +0 -318
- package/esm5/lib/components/workstationgroup-lookup/workstationgroup-lookup.component.js +0 -908
- package/esm5/lib/components/workstationgroup-lookup/workstationgroup-lookup.dto.js +0 -200
- package/esm5/lib/components/workstationgroup-lookup/workstationgroup-lookup.module.js +0 -28
- package/esm5/lib/core/entities/entity-odata-parameter.js +0 -96
- package/esm5/lib/core/entities/index.js +0 -7
- package/esm5/lib/core/enums/companyIndicationType.js +0 -24
- package/esm5/lib/core/enums/comparetype.enumeration.js +0 -16
- package/esm5/lib/core/enums/coreFieldType.js +0 -11
- package/esm5/lib/core/enums/direction.enumeration.js +0 -12
- package/esm5/lib/core/enums/httpRequestType.js +0 -12
- package/esm5/lib/core/enums/index.js +0 -19
- package/esm5/lib/core/enums/menu-type.enumeration.js +0 -12
- package/esm5/lib/core/enums/moduleType.js +0 -28
- package/esm5/lib/core/enums/operators.enumeration.js +0 -20
- package/esm5/lib/core/enums/parameter-type.enumeration.js +0 -18
- package/esm5/lib/core/enums/report-format.enumeration.js +0 -18
- package/esm5/lib/core/enums/report-stage.enumeration.js +0 -18
- package/esm5/lib/core/enums/serviceType.js +0 -15
- package/esm5/lib/core/enums/usingType.js +0 -48
- package/esm5/lib/core/interfaces/date-compare-options.js +0 -19
- package/esm5/lib/core/interfaces/date-validate-options.js +0 -17
- package/esm5/lib/core/interfaces/field-validators-object.js +0 -20
- package/esm5/lib/core/interfaces/index.js +0 -10
- package/esm5/lib/core/interfaces/pagination-data.js +0 -18
- package/esm5/lib/core/interfaces/report/domain-service.interface.js +0 -16
- package/esm5/lib/core/interfaces/report/generation-status.interface.js +0 -22
- package/esm5/lib/core/interfaces/report/get-parameters-out.interface.js +0 -16
- package/esm5/lib/core/interfaces/report/index.js +0 -15
- package/esm5/lib/core/interfaces/report/lookup-parameter.interface.js +0 -20
- package/esm5/lib/core/interfaces/report/parameter-def.interface.js +0 -20
- package/esm5/lib/core/interfaces/report/parameter-value.interface.js +0 -16
- package/esm5/lib/core/interfaces/report/report-header.interface.js +0 -16
- package/esm5/lib/core/interfaces/report/report-in.interface.js +0 -20
- package/esm5/lib/core/interfaces/report/report-menu.interface.js +0 -18
- package/esm5/lib/core/interfaces/report/report-out.interface.js +0 -14
- package/esm5/lib/core/interfaces/report/report.interface.js +0 -48
- package/esm5/lib/services/autocomplete-parameters.service.js +0 -255
- package/esm5/lib/services/company-indications.service.js +0 -126
- package/esm5/lib/services/form-comparator.service.js +0 -278
- package/esm5/lib/services/integration.service.js +0 -40
- package/esm5/lib/services/lookup-parameters.service.js +0 -748
- package/esm5/lib/services/permissions.service.js +0 -253
- package/esm5/lib/services/report.service.js +0 -231
- package/esm5/lib/services/services.module.js +0 -36
- package/esm5/lib/services/workflow-data.service.js +0 -73
- package/esm5/lib/services/workflow-integrator.service.js +0 -715
- package/lib/components/workstationgroup-lookup/autocomplete.service.d.ts +0 -31
- /package/{lib/components → components}/admission-draft-summary/admission-draft-summary.component.d.ts +0 -0
- /package/{lib/components → components}/admission-draft-summary/admission-draft-summary.module.d.ts +0 -0
- /package/{lib/components → components}/admission-draft-summary/admission-draft-summary.service.d.ts +0 -0
- /package/{lib/components → components}/admission-draft-summary/index.d.ts +0 -0
- /package/{lib/components → components}/block-ui/block-ui.component.d.ts +0 -0
- /package/{lib/components → components}/block-ui/block-ui.module.d.ts +0 -0
- /package/{lib/components → components}/block-ui/index.d.ts +0 -0
- /package/{lib/components → components}/breadcrumb/breadcrumb.component.d.ts +0 -0
- /package/{lib/components → components}/breadcrumb/breadcrumb.module.d.ts +0 -0
- /package/{lib/components → components}/breadcrumb/index.d.ts +0 -0
- /package/{lib/components → components}/control-messages-error/control-messages-error.component.d.ts +0 -0
- /package/{lib/components → components}/control-messages-error/control-messages-error.module.d.ts +0 -0
- /package/{lib/components → components}/control-messages-error/index.d.ts +0 -0
- /package/{lib/components → components}/custom-fields/custom-fields.component.d.ts +0 -0
- /package/{lib/components → components}/custom-fields/custom-fields.module.d.ts +0 -0
- /package/{lib/components → components}/custom-fields/index.d.ts +0 -0
- /package/{lib/components → components}/data-list/data-list.component.d.ts +0 -0
- /package/{lib/components → components}/data-list/data-list.module.d.ts +0 -0
- /package/{lib/components → components}/data-list/data-list.service.d.ts +0 -0
- /package/{lib/components → components}/data-list/entity-odata-response.d.ts +0 -0
- /package/{lib/components → components}/data-list/index.d.ts +0 -0
- /package/{lib/components → components}/data-list-rest/data-list-rest.component.d.ts +0 -0
- /package/{lib/components → components}/data-list-rest/data-list-rest.module.d.ts +0 -0
- /package/{lib/components → components}/data-list-rest/data-list-rest.service.d.ts +0 -0
- /package/{lib/components → components}/data-list-rest/index.d.ts +0 -0
- /package/{lib/components → components}/directives/directives.module.d.ts +0 -0
- /package/{lib/components → components}/directives/index.d.ts +0 -0
- /package/{lib/components → components}/directives/name-not-spaces.directive.d.ts +0 -0
- /package/{lib/components → components}/directives/only-number.directive.d.ts +0 -0
- /package/{lib/components → components}/employee-selector/employee-selector.component.d.ts +0 -0
- /package/{lib/components → components}/employee-selector/employee-selector.module.d.ts +0 -0
- /package/{lib/components → components}/employee-selector/index.d.ts +0 -0
- /package/{lib/components → components}/employee-summary/employee-summary.component.d.ts +0 -0
- /package/{lib/components → components}/employee-summary/employee-summary.module.d.ts +0 -0
- /package/{lib/components → components}/employee-summary/employee-summary.service.d.ts +0 -0
- /package/{lib/components → components}/employee-summary/index.d.ts +0 -0
- /package/{lib/components → components}/error-page/error-page.component.d.ts +0 -0
- /package/{lib/components → components}/error-page/error-page.module.d.ts +0 -0
- /package/{lib/components → components}/error-page/index.d.ts +0 -0
- /package/{lib/components → components}/field-validator/field-validator.component.d.ts +0 -0
- /package/{lib/components → components}/field-validator/field-validator.module.d.ts +0 -0
- /package/{lib/components → components}/field-validator/index.d.ts +0 -0
- /package/{lib/components → components}/file-upload/file-upload.component.d.ts +0 -0
- /package/{lib/components → components}/file-upload/file-upload.module.d.ts +0 -0
- /package/{lib/components → components}/file-upload/file-upload.service.d.ts +0 -0
- /package/{lib/components → components}/file-upload/index.d.ts +0 -0
- /package/{lib/components → components}/from-to/from-to.component.d.ts +0 -0
- /package/{lib/components → components}/from-to/from-to.module.d.ts +0 -0
- /package/{lib/components → components}/from-to/index.d.ts +0 -0
- /package/{lib/components → components}/historical-bank-account/historical-bank-account-form/historical-bank-account-form.component.d.ts +0 -0
- /package/{lib/components → components}/historical-bank-account/historical-bank-account.component.d.ts +0 -0
- /package/{lib/components → components}/historical-bank-account/historical-bank-account.module.d.ts +0 -0
- /package/{lib/components → components}/historical-bank-account/historical-bank-account.service.d.ts +0 -0
- /package/{lib/components → components}/historical-bank-account/index.d.ts +0 -0
- /package/{lib/components → components}/historical-bank-account-list/historical-bank-account-list.component.d.ts +0 -0
- /package/{lib/components → components}/historical-bank-account-list/historical-bank-account-list.module.d.ts +0 -0
- /package/{lib/components → components}/historical-bank-account-list/historical-bank-account-list.service.d.ts +0 -0
- /package/{lib/components → components}/historical-bank-account-list/index.d.ts +0 -0
- /package/{lib/components → components}/image-cropper/image-crop.component.d.ts +0 -0
- /package/{lib/components → components}/image-cropper/image-crop.module.d.ts +0 -0
- /package/{lib/components → components}/image-cropper/image-crop.service.d.ts +0 -0
- /package/{lib/components → components}/image-cropper/index.d.ts +0 -0
- /package/{lib/components → components}/input-date/index.d.ts +0 -0
- /package/{lib/components → components}/input-date/input-date.component.d.ts +0 -0
- /package/{lib/components → components}/input-date/input-date.module.d.ts +0 -0
- /package/{lib/components → components}/input-date-model/index.d.ts +0 -0
- /package/{lib/components → components}/input-date-model/input-date-model.component.d.ts +0 -0
- /package/{lib/components → components}/input-date-model/input-date-model.module.d.ts +0 -0
- /package/{lib/components → components}/input-rest-auto-complete/index.d.ts +0 -0
- /package/{lib/components → components}/input-rest-auto-complete/input-rest-auto-complete.component.d.ts +0 -0
- /package/{lib/components → components}/input-rest-auto-complete/input-rest-auto-complete.module.d.ts +0 -0
- /package/{lib/components → components}/input-rest-auto-complete/input-rest-auto-complete.service.d.ts +0 -0
- /package/{lib/components → components}/input-rest-auto-complete-employee/index.d.ts +0 -0
- /package/{lib/components → components}/input-rest-auto-complete-employee/input-rest-auto-complete-employee.component.d.ts +0 -0
- /package/{lib/components → components}/input-rest-auto-complete-employee/input-rest-auto-complete-employee.module.d.ts +0 -0
- /package/{lib/components → components}/input-rest-auto-complete-employee/input-rest-auto-complete-employee.service.d.ts +0 -0
- /package/{lib/components → components}/input-rest-auto-complete-employee-model/index.d.ts +0 -0
- /package/{lib/components → components}/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.component.d.ts +0 -0
- /package/{lib/components → components}/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.module.d.ts +0 -0
- /package/{lib/components → components}/input-rest-auto-complete-employee-model/input-rest-auto-complete-employee-model.service.d.ts +0 -0
- /package/{lib/components → components}/input-rest-auto-complete-enum/index.d.ts +0 -0
- /package/{lib/components → components}/input-rest-auto-complete-enum/input-rest-auto-complete-enum.component.d.ts +0 -0
- /package/{lib/components → components}/input-rest-auto-complete-enum/input-rest-auto-complete-enum.module.d.ts +0 -0
- /package/{lib/components → components}/input-rest-auto-complete-enum/input-rest-auto-complete-enum.service.d.ts +0 -0
- /package/{lib/components → components}/input-rest-auto-complete-jobposition/index.d.ts +0 -0
- /package/{lib/components → components}/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.component.d.ts +0 -0
- /package/{lib/components → components}/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.module.d.ts +0 -0
- /package/{lib/components → components}/input-rest-auto-complete-jobposition/input-rest-auto-complete-jobposition.service.d.ts +0 -0
- /package/{lib/components → components}/input-rest-auto-complete-model/index.d.ts +0 -0
- /package/{lib/components → components}/input-rest-auto-complete-model/input-rest-auto-complete-model.component.d.ts +0 -0
- /package/{lib/components → components}/input-rest-auto-complete-model/input-rest-auto-complete-model.module.d.ts +0 -0
- /package/{lib/components → components}/input-rest-auto-complete-model/input-rest-auto-complete-model.service.d.ts +0 -0
- /package/{lib/components → components}/input-rest-auto-complete-model-enum/index.d.ts +0 -0
- /package/{lib/components → components}/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.component.d.ts +0 -0
- /package/{lib/components → components}/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.module.d.ts +0 -0
- /package/{lib/components → components}/input-rest-auto-complete-model-enum/input-rest-auto-complete-model-enum.service.d.ts +0 -0
- /package/{lib/components → components}/list-rest/index.d.ts +0 -0
- /package/{lib/components → components}/list-rest/list-rest.component.d.ts +0 -0
- /package/{lib/components → components}/list-rest/list-rest.module.d.ts +0 -0
- /package/{lib/components → components}/list-rest/list-rest.service.d.ts +0 -0
- /package/{lib/components → components}/lookup/index.d.ts +0 -0
- /package/{lib/components → components}/lookup/lookup.component.d.ts +0 -0
- /package/{lib/components → components}/lookup/lookup.module.d.ts +0 -0
- /package/{lib/components → components}/lookup/lookup.service.d.ts +0 -0
- /package/{lib/components → components}/shared/http-client.service.d.ts +0 -0
- /package/{lib/components → components}/shared/shared.module.d.ts +0 -0
- /package/{lib/components → components}/spinner/index.d.ts +0 -0
- /package/{lib/components → components}/spinner/spinner-loader.component.d.ts +0 -0
- /package/{lib/components → components}/spinner/spinner-loader.module.d.ts +0 -0
- /package/{lib/components → components}/toast/index.d.ts +0 -0
- /package/{lib/components → components}/toast/toast.component.d.ts +0 -0
- /package/{lib/components → components}/toast/toast.module.d.ts +0 -0
- /package/{lib/components → components}/toast/toast.service.d.ts +0 -0
- /package/{lib/components → components}/type-admission/index.d.ts +0 -0
- /package/{lib/components → components}/type-admission/type-admission.module.d.ts +0 -0
- /package/{lib/components → components}/type-admission/type-admission.services.d.ts +0 -0
- /package/{lib/components → components}/utils/cnpj-validator.d.ts +0 -0
- /package/{lib/components → components}/utils/cpf-validator.d.ts +0 -0
- /package/{lib/components → components}/utils/date-validator/date-validators.d.ts +0 -0
- /package/{lib/components → components}/utils/helpers.d.ts +0 -0
- /package/{lib/components → components}/utils/validations.d.ts +0 -0
- /package/{lib/components → components}/vanilla/string-methods.d.ts +0 -0
- /package/{lib/components → components}/workstationgroup-lookup/index.d.ts +0 -0
- /package/{lib/components → components}/workstationgroup-lookup/lookup.service.d.ts +0 -0
- /package/{lib/components → components}/workstationgroup-lookup/workstationgroup-lookup.component.d.ts +0 -0
- /package/{lib/components → components}/workstationgroup-lookup/workstationgroup-lookup.dto.d.ts +0 -0
- /package/{lib/components → components}/workstationgroup-lookup/workstationgroup-lookup.module.d.ts +0 -0
- /package/{lib/core → core}/entities/entity-odata-parameter.d.ts +0 -0
- /package/{lib/core → core}/entities/index.d.ts +0 -0
- /package/{lib/core → core}/enums/companyIndicationType.d.ts +0 -0
- /package/{lib/core → core}/enums/comparetype.enumeration.d.ts +0 -0
- /package/{lib/core → core}/enums/coreFieldType.d.ts +0 -0
- /package/{lib/core → core}/enums/direction.enumeration.d.ts +0 -0
- /package/{lib/core → core}/enums/httpRequestType.d.ts +0 -0
- /package/{lib/core → core}/enums/index.d.ts +0 -0
- /package/{lib/core → core}/enums/menu-type.enumeration.d.ts +0 -0
- /package/{lib/core → core}/enums/moduleType.d.ts +0 -0
- /package/{lib/core → core}/enums/operators.enumeration.d.ts +0 -0
- /package/{lib/core → core}/enums/parameter-type.enumeration.d.ts +0 -0
- /package/{lib/core → core}/enums/report-format.enumeration.d.ts +0 -0
- /package/{lib/core → core}/enums/report-stage.enumeration.d.ts +0 -0
- /package/{lib/core → core}/enums/serviceType.d.ts +0 -0
- /package/{lib/core → core}/enums/usingType.d.ts +0 -0
- /package/{lib/core → core}/interfaces/date-compare-options.d.ts +0 -0
- /package/{lib/core → core}/interfaces/date-validate-options.d.ts +0 -0
- /package/{lib/core → core}/interfaces/field-validators-object.d.ts +0 -0
- /package/{lib/core → core}/interfaces/index.d.ts +0 -0
- /package/{lib/core → core}/interfaces/pagination-data.d.ts +0 -0
- /package/{lib/core → core}/interfaces/report/domain-service.interface.d.ts +0 -0
- /package/{lib/core → core}/interfaces/report/generation-status.interface.d.ts +0 -0
- /package/{lib/core → core}/interfaces/report/get-parameters-out.interface.d.ts +0 -0
- /package/{lib/core → core}/interfaces/report/index.d.ts +0 -0
- /package/{lib/core → core}/interfaces/report/lookup-parameter.interface.d.ts +0 -0
- /package/{lib/core → core}/interfaces/report/parameter-def.interface.d.ts +0 -0
- /package/{lib/core → core}/interfaces/report/parameter-value.interface.d.ts +0 -0
- /package/{lib/core → core}/interfaces/report/report-header.interface.d.ts +0 -0
- /package/{lib/core → core}/interfaces/report/report-in.interface.d.ts +0 -0
- /package/{lib/core → core}/interfaces/report/report-menu.interface.d.ts +0 -0
- /package/{lib/core → core}/interfaces/report/report-out.interface.d.ts +0 -0
- /package/{lib/core → core}/interfaces/report/report.interface.d.ts +0 -0
- /package/{lib/services → services}/autocomplete-parameters.service.d.ts +0 -0
- /package/{lib/services → services}/company-indications.service.d.ts +0 -0
- /package/{lib/services → services}/form-comparator.service.d.ts +0 -0
- /package/{lib/services → services}/integration.service.d.ts +0 -0
- /package/{lib/services → services}/lookup-parameters.service.d.ts +0 -0
- /package/{lib/services → services}/permissions.service.d.ts +0 -0
- /package/{lib/services → services}/report.service.d.ts +0 -0
- /package/{lib/services → services}/services.module.d.ts +0 -0
- /package/{lib/services → services}/workflow-data.service.d.ts +0 -0
- /package/{lib/services → services}/workflow-integrator.service.d.ts +0 -0
|
@@ -1,763 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: lib/components/utils/helpers.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
|
-
import * as tslib_1 from "tslib";
|
|
7
|
-
import { FormArray, FormControl, FormGroup, Validators } from '@angular/forms';
|
|
8
|
-
import * as chance from 'chance';
|
|
9
|
-
import * as momentImported from 'moment';
|
|
10
|
-
import business from 'moment-business';
|
|
11
|
-
/** @type {?} */
|
|
12
|
-
var moment = momentImported;
|
|
13
|
-
/**
|
|
14
|
-
* @param {?} item
|
|
15
|
-
* @return {?}
|
|
16
|
-
*/
|
|
17
|
-
export function isObject(item) {
|
|
18
|
-
return item && typeof item === 'object' && !Array.isArray(item);
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* @param {?} item
|
|
22
|
-
* @return {?}
|
|
23
|
-
*/
|
|
24
|
-
export function isShallow(item) {
|
|
25
|
-
return Array.isArray(item) && item.find((/**
|
|
26
|
-
* @param {?} value
|
|
27
|
-
* @return {?}
|
|
28
|
-
*/
|
|
29
|
-
function (value) { return typeof value === 'object'; })) ? false : true;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* @param {?} value
|
|
33
|
-
* @return {?}
|
|
34
|
-
*/
|
|
35
|
-
export function convertBooleanString(value) {
|
|
36
|
-
if (typeof value === 'boolean') {
|
|
37
|
-
return value === true ? 'true' : 'false';
|
|
38
|
-
}
|
|
39
|
-
return value;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* @param {?} value
|
|
43
|
-
* @return {?}
|
|
44
|
-
*/
|
|
45
|
-
export function convertStringToBoolean(value) {
|
|
46
|
-
return value === true || value.toLowerCase() === 'true';
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* @param {?} target
|
|
50
|
-
* @param {...?} sources
|
|
51
|
-
* @return {?}
|
|
52
|
-
*/
|
|
53
|
-
export function assign(target) {
|
|
54
|
-
var sources = [];
|
|
55
|
-
for (var _i = 1; _i < arguments.length; _i++) {
|
|
56
|
-
sources[_i - 1] = arguments[_i];
|
|
57
|
-
}
|
|
58
|
-
if (!sources.length) {
|
|
59
|
-
return target;
|
|
60
|
-
}
|
|
61
|
-
/** @type {?} */
|
|
62
|
-
var source = sources.shift();
|
|
63
|
-
if (isObject(target) && isObject(source)) {
|
|
64
|
-
var _loop_1 = function (key) {
|
|
65
|
-
var _a, _b, _c, _d;
|
|
66
|
-
if (isObject(source[key])) {
|
|
67
|
-
if (!target[key]) {
|
|
68
|
-
Object.assign(target, (_a = {}, _a[key] = {}, _a));
|
|
69
|
-
}
|
|
70
|
-
assign(target[key], source[key]);
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
if (isShallow(source[key])) {
|
|
74
|
-
Object.assign(target, (_b = {}, _b[key] = source[key], _b));
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
if (!target[key]) {
|
|
78
|
-
Object.assign(target, (_c = {}, _c[key] = [], _c));
|
|
79
|
-
}
|
|
80
|
-
Object.assign(target, (_d = {}, _d[key] = source[key].map((/**
|
|
81
|
-
* @param {?} item
|
|
82
|
-
* @param {?} index
|
|
83
|
-
* @return {?}
|
|
84
|
-
*/
|
|
85
|
-
function (item, index) { return assign(target[key][index] || {}, item); })), _d));
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
|
-
for (var key in source) {
|
|
90
|
-
_loop_1(key);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
return assign.apply(void 0, tslib_1.__spread([target], sources));
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* @param {?} value
|
|
97
|
-
* @return {?}
|
|
98
|
-
*/
|
|
99
|
-
export function isValid(value) {
|
|
100
|
-
return value === 0 || typeof value === 'boolean' ? true : value !== undefined && value !== null && value !== '';
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* @param {?} value
|
|
104
|
-
* @param {?=} withDays
|
|
105
|
-
* @return {?}
|
|
106
|
-
*/
|
|
107
|
-
export function isValidDate(value, withDays) {
|
|
108
|
-
if (withDays === void 0) { withDays = true; }
|
|
109
|
-
if (value && isFullDate(value, withDays)) {
|
|
110
|
-
if (withDays) {
|
|
111
|
-
return moment(value.replace(/[^\d]+/g, ''), 'DDMMYYYY').isValid();
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
return moment(value.replace(/[^\d]+/g, ''), 'MMYYYY').isValid();
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
return true;
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* @param {?} value
|
|
121
|
-
* @param {?=} withDays
|
|
122
|
-
* @return {?}
|
|
123
|
-
*/
|
|
124
|
-
export function isFullDate(value, withDays) {
|
|
125
|
-
if (withDays === void 0) { withDays = true; }
|
|
126
|
-
if (value) {
|
|
127
|
-
/** @type {?} */
|
|
128
|
-
var totalLength = void 0;
|
|
129
|
-
if (withDays) {
|
|
130
|
-
totalLength = 8;
|
|
131
|
-
}
|
|
132
|
-
else {
|
|
133
|
-
totalLength = 6;
|
|
134
|
-
}
|
|
135
|
-
return value.replace(/[^\d]+/g, '').length === totalLength;
|
|
136
|
-
}
|
|
137
|
-
return true;
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* @param {?} tableIdObject
|
|
141
|
-
* @return {?}
|
|
142
|
-
*/
|
|
143
|
-
export function autoCompleteObjectForIdObject(tableIdObject) {
|
|
144
|
-
if (!isObject(tableIdObject)) {
|
|
145
|
-
console.error('Paramentro não é um objeto');
|
|
146
|
-
return false;
|
|
147
|
-
}
|
|
148
|
-
if (tableIdObject.hasOwnProperty('tableId')) {
|
|
149
|
-
console.error('Paramentro não é um objeto Auto Complete válido, falta tableId');
|
|
150
|
-
}
|
|
151
|
-
if (!isValid(tableIdObject.tableId)) {
|
|
152
|
-
console.error('tableId esta vazio');
|
|
153
|
-
}
|
|
154
|
-
return { id: tableIdObject.tableId };
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* @param {?} name
|
|
158
|
-
* @param {?} value
|
|
159
|
-
* @return {?}
|
|
160
|
-
*/
|
|
161
|
-
export function isDateField(name, value) {
|
|
162
|
-
/** @type {?} */
|
|
163
|
-
var testDate = name.search('Date');
|
|
164
|
-
if (testDate !== -1) {
|
|
165
|
-
return invertFieldDate(value);
|
|
166
|
-
}
|
|
167
|
-
return value;
|
|
168
|
-
}
|
|
169
|
-
/**
|
|
170
|
-
* @param {?} value
|
|
171
|
-
* @param {?=} inFormat
|
|
172
|
-
* @param {?=} outFormat
|
|
173
|
-
* @return {?}
|
|
174
|
-
*/
|
|
175
|
-
export function invertFieldDate(value, inFormat, outFormat) {
|
|
176
|
-
if (inFormat === void 0) { inFormat = 'DDMMYYYY'; }
|
|
177
|
-
if (outFormat === void 0) { outFormat = 'YYYY-MM-DD'; }
|
|
178
|
-
if (!isValid(value)) {
|
|
179
|
-
return;
|
|
180
|
-
}
|
|
181
|
-
/** @type {?} */
|
|
182
|
-
var formatIn = getFormatDate(value, inFormat);
|
|
183
|
-
return moment(value.replace(/[^\d]+/g, ''), formatIn).format(outFormat);
|
|
184
|
-
}
|
|
185
|
-
/**
|
|
186
|
-
* @param {?} value
|
|
187
|
-
* @param {?} quantidade
|
|
188
|
-
* @return {?}
|
|
189
|
-
*/
|
|
190
|
-
export function getAddWeekDaysBusiness(value, quantidade) {
|
|
191
|
-
return business.addWeekDays(getMoment(value), quantidade).format('DD/MM/YYYY');
|
|
192
|
-
}
|
|
193
|
-
/**
|
|
194
|
-
* @param {?} startDate
|
|
195
|
-
* @param {?} endDate
|
|
196
|
-
* @return {?}
|
|
197
|
-
*/
|
|
198
|
-
export function getWeekDaysBusiness(startDate, endDate) {
|
|
199
|
-
/** @type {?} */
|
|
200
|
-
var endMoment = endDate ? getMoment(endDate) : getMoment(startDate).endOf('month');
|
|
201
|
-
return business.weekDays(getMoment(startDate), endMoment);
|
|
202
|
-
}
|
|
203
|
-
/**
|
|
204
|
-
* @param {?} value
|
|
205
|
-
* @param {?} inFormat
|
|
206
|
-
* @return {?}
|
|
207
|
-
*/
|
|
208
|
-
export function getFormatDate(value, inFormat) {
|
|
209
|
-
if (value.search('/') !== -1) {
|
|
210
|
-
return 'DDMMYYYY';
|
|
211
|
-
}
|
|
212
|
-
else if (value.search('-') !== -1) {
|
|
213
|
-
return 'YYYYMMDD';
|
|
214
|
-
}
|
|
215
|
-
return inFormat;
|
|
216
|
-
}
|
|
217
|
-
/**
|
|
218
|
-
* FIXME - Está fixo para uso do calendário portugues Brasil
|
|
219
|
-
* @param {?} value
|
|
220
|
-
* @param {?=} outFormat
|
|
221
|
-
* @return {?}
|
|
222
|
-
*/
|
|
223
|
-
export function ngCalendarFormat(value, outFormat) {
|
|
224
|
-
if (outFormat === void 0) { outFormat = 'DD/MM/YYYY'; }
|
|
225
|
-
if (isValidDate(value)) {
|
|
226
|
-
if (typeof value === 'string') {
|
|
227
|
-
return value;
|
|
228
|
-
}
|
|
229
|
-
else {
|
|
230
|
-
return _moment(value).format(outFormat);
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
/**
|
|
235
|
-
* @param {?=} outFormat
|
|
236
|
-
* @return {?}
|
|
237
|
-
*/
|
|
238
|
-
export function getNowDate(outFormat) {
|
|
239
|
-
if (outFormat === void 0) { outFormat = 'YYYY-MM-DD'; }
|
|
240
|
-
return moment().format(outFormat);
|
|
241
|
-
}
|
|
242
|
-
/**
|
|
243
|
-
* @param {?} value
|
|
244
|
-
* @param {?=} inFormat
|
|
245
|
-
* @return {?}
|
|
246
|
-
*/
|
|
247
|
-
export function getMoment(value, inFormat) {
|
|
248
|
-
if (inFormat === void 0) { inFormat = 'DDMMYYYY'; }
|
|
249
|
-
/** @type {?} */
|
|
250
|
-
var formatIn = getFormatDate(value, inFormat);
|
|
251
|
-
return moment(value.replace(/[^\d]+/g, ''), formatIn);
|
|
252
|
-
}
|
|
253
|
-
/**
|
|
254
|
-
* @param {?} value
|
|
255
|
-
* @param {?=} format
|
|
256
|
-
* @return {?}
|
|
257
|
-
*/
|
|
258
|
-
export function _moment(value, format) {
|
|
259
|
-
if (format) {
|
|
260
|
-
return moment(value, format);
|
|
261
|
-
}
|
|
262
|
-
return moment(value);
|
|
263
|
-
}
|
|
264
|
-
/**
|
|
265
|
-
* @param {?} objs
|
|
266
|
-
* @return {?}
|
|
267
|
-
*/
|
|
268
|
-
export function getObjValids(objs) {
|
|
269
|
-
/** @type {?} */
|
|
270
|
-
var json = Object.assign({}, objs);
|
|
271
|
-
/** @type {?} */
|
|
272
|
-
var jsonReturn = {};
|
|
273
|
-
Object.keys(json).map((/**
|
|
274
|
-
* @param {?} key
|
|
275
|
-
* @return {?}
|
|
276
|
-
*/
|
|
277
|
-
function (key) {
|
|
278
|
-
if (isValid(json[key])) {
|
|
279
|
-
jsonReturn[key] = isDateField(key, json[key]);
|
|
280
|
-
}
|
|
281
|
-
}));
|
|
282
|
-
return jsonReturn;
|
|
283
|
-
}
|
|
284
|
-
/**
|
|
285
|
-
* @param {?} obj
|
|
286
|
-
* @return {?}
|
|
287
|
-
*/
|
|
288
|
-
export function removeEmpty(obj) {
|
|
289
|
-
Object.keys(obj).forEach((/**
|
|
290
|
-
* @param {?} k
|
|
291
|
-
* @return {?}
|
|
292
|
-
*/
|
|
293
|
-
function (k) { return (obj[k] && typeof obj[k] === 'object' && removeEmpty(obj[k])) || (!obj[k] && obj[k] !== undefined && delete obj[k]); }));
|
|
294
|
-
return obj;
|
|
295
|
-
}
|
|
296
|
-
/**
|
|
297
|
-
* @param {?} value
|
|
298
|
-
* @param {?=} i18n
|
|
299
|
-
* @return {?}
|
|
300
|
-
*/
|
|
301
|
-
export function formatMoney(value, i18n) {
|
|
302
|
-
if (i18n === void 0) { i18n = 'EN'; }
|
|
303
|
-
switch (i18n) {
|
|
304
|
-
case 'EN':
|
|
305
|
-
return isValid(value)
|
|
306
|
-
? value
|
|
307
|
-
.toString()
|
|
308
|
-
.replace('.', '')
|
|
309
|
-
.replace(',', '.')
|
|
310
|
-
: '';
|
|
311
|
-
case 'BR':
|
|
312
|
-
return isValid(value)
|
|
313
|
-
? value
|
|
314
|
-
.toString()
|
|
315
|
-
.replace('.', ',')
|
|
316
|
-
.replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1.')
|
|
317
|
-
: '';
|
|
318
|
-
default:
|
|
319
|
-
return isValid(value)
|
|
320
|
-
? value
|
|
321
|
-
.toString()
|
|
322
|
-
.replace('.', '')
|
|
323
|
-
.replace(',', '.')
|
|
324
|
-
: '';
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
/**
|
|
328
|
-
* @return {?}
|
|
329
|
-
*/
|
|
330
|
-
export function uiid() {
|
|
331
|
-
return new chance()
|
|
332
|
-
.guid()
|
|
333
|
-
.replace(/[^a-zA-Z0-9.]/g, '')
|
|
334
|
-
.toUpperCase();
|
|
335
|
-
}
|
|
336
|
-
/**
|
|
337
|
-
* @param {?} custom
|
|
338
|
-
* @param {?=} customEntity
|
|
339
|
-
* @param {?=} locale
|
|
340
|
-
* @return {?}
|
|
341
|
-
*/
|
|
342
|
-
export function mountCustomForSave(custom, customEntity, locale) {
|
|
343
|
-
if (customEntity === void 0) { customEntity = null; }
|
|
344
|
-
if (locale === void 0) { locale = null; }
|
|
345
|
-
/** @type {?} */
|
|
346
|
-
var custonField = [];
|
|
347
|
-
if (customEntity && custom.length) {
|
|
348
|
-
customEntity.map((/**
|
|
349
|
-
* @param {?} val
|
|
350
|
-
* @param {?} key
|
|
351
|
-
* @return {?}
|
|
352
|
-
*/
|
|
353
|
-
function (val, key) {
|
|
354
|
-
/** @type {?} */
|
|
355
|
-
var field = Object.keys(custom[key]).toString();
|
|
356
|
-
/** @type {?} */
|
|
357
|
-
var valOrnull = isValid(custom[key][field]) ? custom[key][field] : null;
|
|
358
|
-
/** @type {?} */
|
|
359
|
-
var value = val.type === 'date' && locale && isValid(valOrnull) ? moment(valOrnull, getFormat(locale)).format('YYYY-MM-DD') : valOrnull;
|
|
360
|
-
custonField.push({
|
|
361
|
-
field: field,
|
|
362
|
-
value: value,
|
|
363
|
-
});
|
|
364
|
-
}));
|
|
365
|
-
}
|
|
366
|
-
return custonField.length ? custonField : null;
|
|
367
|
-
}
|
|
368
|
-
/**
|
|
369
|
-
* Prepara o objeto de campos customizados para salvar as entidades que
|
|
370
|
-
* são utilizadas a partir do CRUD customizado.
|
|
371
|
-
* @param {?} objectFields objeto com os campos customizados da entidade.
|
|
372
|
-
* @return {?}
|
|
373
|
-
*/
|
|
374
|
-
export function mountCustomToSave(objectFields) {
|
|
375
|
-
/** @type {?} */
|
|
376
|
-
var customFields = [];
|
|
377
|
-
Object.entries(objectFields).forEach((/**
|
|
378
|
-
* @param {?} __0
|
|
379
|
-
* @return {?}
|
|
380
|
-
*/
|
|
381
|
-
function (_a) {
|
|
382
|
-
var _b = tslib_1.__read(_a, 2), field = _b[0], value = _b[1];
|
|
383
|
-
customFields.push({
|
|
384
|
-
field: field,
|
|
385
|
-
value: value,
|
|
386
|
-
});
|
|
387
|
-
}));
|
|
388
|
-
return customFields;
|
|
389
|
-
}
|
|
390
|
-
/**
|
|
391
|
-
* Prepara o objeto de campos customizados para exibir as entidades que
|
|
392
|
-
* são utilizadas a partir do CRUD customizado.
|
|
393
|
-
* @param {?} customFields objeto com os campos customizados da entidade.
|
|
394
|
-
* @return {?}
|
|
395
|
-
*/
|
|
396
|
-
export function mountCustomToShow(customFields) {
|
|
397
|
-
/** @type {?} */
|
|
398
|
-
var customFieldsToShow = {};
|
|
399
|
-
if (customFields && customFields.length) {
|
|
400
|
-
customFields.forEach((/**
|
|
401
|
-
* @param {?} item
|
|
402
|
-
* @return {?}
|
|
403
|
-
*/
|
|
404
|
-
function (item) {
|
|
405
|
-
if (item.type === 'date' && item.value) {
|
|
406
|
-
item.value = _moment(item.value).format('L');
|
|
407
|
-
}
|
|
408
|
-
customFieldsToShow[item.field] = item.value;
|
|
409
|
-
}));
|
|
410
|
-
}
|
|
411
|
-
return customFieldsToShow;
|
|
412
|
-
}
|
|
413
|
-
/**
|
|
414
|
-
* Prepara o objeto de campos customizados para salvar as entidades que
|
|
415
|
-
* são utilizadas a partir do CRUD gerado.
|
|
416
|
-
* @param {?} objectFields objeto com os campos customizados da entidade.
|
|
417
|
-
* @return {?}
|
|
418
|
-
*/
|
|
419
|
-
export function mountGeneratedCustomToSave(objectFields) {
|
|
420
|
-
Object.entries(objectFields).forEach((/**
|
|
421
|
-
* @param {?} __0
|
|
422
|
-
* @return {?}
|
|
423
|
-
*/
|
|
424
|
-
function (_a) {
|
|
425
|
-
var _b = tslib_1.__read(_a, 2), key = _b[0], value = _b[1];
|
|
426
|
-
if (!value) {
|
|
427
|
-
delete objectFields[key];
|
|
428
|
-
}
|
|
429
|
-
}));
|
|
430
|
-
return objectFields;
|
|
431
|
-
}
|
|
432
|
-
/**
|
|
433
|
-
* @param {?} custom
|
|
434
|
-
* @return {?}
|
|
435
|
-
*/
|
|
436
|
-
export function mountCustomForShow(custom) {
|
|
437
|
-
/** @type {?} */
|
|
438
|
-
var customField = [];
|
|
439
|
-
Object.keys(custom || {}).forEach((/**
|
|
440
|
-
* @param {?} val
|
|
441
|
-
* @return {?}
|
|
442
|
-
*/
|
|
443
|
-
function (val) {
|
|
444
|
-
if (custom[val].type === 'date' && custom[val].value) {
|
|
445
|
-
custom[val].value = _moment(custom[val].value).format('L');
|
|
446
|
-
}
|
|
447
|
-
customField.push(custom[val]);
|
|
448
|
-
}));
|
|
449
|
-
return customField;
|
|
450
|
-
}
|
|
451
|
-
/**
|
|
452
|
-
* @param {?} custonFields
|
|
453
|
-
* @param {?} custom
|
|
454
|
-
* @return {?}
|
|
455
|
-
*/
|
|
456
|
-
export function setValueCustom(custonFields, custom) {
|
|
457
|
-
/** @type {?} */
|
|
458
|
-
var isCustons = custom ? Object.keys(custom).length : 0;
|
|
459
|
-
custonFields.map((/**
|
|
460
|
-
* @param {?} val
|
|
461
|
-
* @return {?}
|
|
462
|
-
*/
|
|
463
|
-
function (val) {
|
|
464
|
-
val.value = isCustons > 0 ? custom[val.field] : null;
|
|
465
|
-
}));
|
|
466
|
-
return custonFields;
|
|
467
|
-
}
|
|
468
|
-
/**
|
|
469
|
-
* Adiciona um erro no controle do formulário. Deve ser chamado com .call passando o contexto da class.
|
|
470
|
-
* Ex.: setErrors.call(this.contractGroup, 'registerEmployeeNumber', 'exist', !payload)
|
|
471
|
-
*
|
|
472
|
-
* @param {?} formControlName Nome do controle do formulário.
|
|
473
|
-
* @param {?} keyError Nome do error a ser exibido em tela.
|
|
474
|
-
* @param {?} isInvalid Se houver algum erro de validação no campo.
|
|
475
|
-
* @return {?}
|
|
476
|
-
*/
|
|
477
|
-
export function setErrors(formControlName, keyError, isInvalid) {
|
|
478
|
-
var _this = this;
|
|
479
|
-
setTimeout((/**
|
|
480
|
-
* @return {?}
|
|
481
|
-
*/
|
|
482
|
-
function () {
|
|
483
|
-
if (isInvalid) {
|
|
484
|
-
/** @type {?} */
|
|
485
|
-
var errors = Object.assign({}, _this.get(formControlName).errors);
|
|
486
|
-
errors[keyError] = isInvalid;
|
|
487
|
-
_this.get(formControlName).setErrors(errors);
|
|
488
|
-
}
|
|
489
|
-
else {
|
|
490
|
-
/** @type {?} */
|
|
491
|
-
var errors = _this.get(formControlName).errors;
|
|
492
|
-
if (errors && Object.keys(errors).length) {
|
|
493
|
-
delete errors[keyError];
|
|
494
|
-
if (!Object.keys(errors).length) {
|
|
495
|
-
_this.get(formControlName).setErrors(null);
|
|
496
|
-
}
|
|
497
|
-
}
|
|
498
|
-
}
|
|
499
|
-
}), 0);
|
|
500
|
-
}
|
|
501
|
-
/**
|
|
502
|
-
* Faz loop do nos controls do formulário e subArray caso existir
|
|
503
|
-
* setando os inválidos
|
|
504
|
-
* Ex.: verifyValidationsForm.call(this.initialGroup);
|
|
505
|
-
* @return {?}
|
|
506
|
-
*/
|
|
507
|
-
export function verifyValidationsForm() {
|
|
508
|
-
var _this = this;
|
|
509
|
-
Object.keys(this.controls).map((/**
|
|
510
|
-
* @param {?} field
|
|
511
|
-
* @return {?}
|
|
512
|
-
*/
|
|
513
|
-
function (field) {
|
|
514
|
-
/** @type {?} */
|
|
515
|
-
var control = _this.get(field);
|
|
516
|
-
control.markAsDirty();
|
|
517
|
-
if (control instanceof FormGroup || control instanceof FormArray) {
|
|
518
|
-
verifyValidationsForm.call(control);
|
|
519
|
-
}
|
|
520
|
-
}));
|
|
521
|
-
}
|
|
522
|
-
/**
|
|
523
|
-
* Retorna a idade de acordo com a data de nascimento.
|
|
524
|
-
*
|
|
525
|
-
* @param {?} birthday
|
|
526
|
-
* @return {?}
|
|
527
|
-
*/
|
|
528
|
-
export function getYears(birthday) {
|
|
529
|
-
/** @type {?} */
|
|
530
|
-
var currentDate = moment();
|
|
531
|
-
/** @type {?} */
|
|
532
|
-
var years = currentDate.diff(birthday, 'years', false);
|
|
533
|
-
return years;
|
|
534
|
-
}
|
|
535
|
-
/**
|
|
536
|
-
* @param {?} customFields
|
|
537
|
-
* @return {?}
|
|
538
|
-
*/
|
|
539
|
-
export function setCustonFields(customFields) {
|
|
540
|
-
var _this = this;
|
|
541
|
-
customFields.map((/**
|
|
542
|
-
* @param {?} val
|
|
543
|
-
* @return {?}
|
|
544
|
-
*/
|
|
545
|
-
function (val) {
|
|
546
|
-
/** @type {?} */
|
|
547
|
-
var addCuston = {};
|
|
548
|
-
/** @type {?} */
|
|
549
|
-
var value = val.value || null;
|
|
550
|
-
if (typeof value === 'boolean') {
|
|
551
|
-
value = value ? 'true' : 'false';
|
|
552
|
-
}
|
|
553
|
-
addCuston[val.field] = new FormControl(value);
|
|
554
|
-
_this.push(new FormGroup(addCuston));
|
|
555
|
-
}));
|
|
556
|
-
return customFields;
|
|
557
|
-
}
|
|
558
|
-
/**
|
|
559
|
-
* @param {?} formGroup
|
|
560
|
-
* @param {?} name
|
|
561
|
-
* @param {?} required
|
|
562
|
-
* @param {?=} validators
|
|
563
|
-
* @return {?}
|
|
564
|
-
*/
|
|
565
|
-
export function setRequired(formGroup, name, required, validators) {
|
|
566
|
-
if (required) {
|
|
567
|
-
formGroup.controls[name].setValidators(Validators.compose(validators && validators.length ? validators : [Validators.required]));
|
|
568
|
-
formGroup.controls[name].updateValueAndValidity();
|
|
569
|
-
}
|
|
570
|
-
else {
|
|
571
|
-
formGroup.controls[name].setValidators(null);
|
|
572
|
-
formGroup.controls[name].updateValueAndValidity();
|
|
573
|
-
}
|
|
574
|
-
}
|
|
575
|
-
/**
|
|
576
|
-
* Esse método tem como função setar os campos enable ou disable.
|
|
577
|
-
* @param {?} formGroup FormGroup onde se encontra os campos a serem alterados.
|
|
578
|
-
* @param {?} condition Condição para validação. True = enabled, False = disabled.
|
|
579
|
-
* @param {?} fields Campos a serem manipulados.
|
|
580
|
-
* @param {?=} fieldsToClear Campos a serem limpos. É opicional e se não foi passado o método limpará os mesmos campos dos fields.
|
|
581
|
-
* @return {?}
|
|
582
|
-
*/
|
|
583
|
-
export function configEnabledFields(formGroup, condition, fields, fieldsToClear) {
|
|
584
|
-
if (condition) {
|
|
585
|
-
fields.forEach((/**
|
|
586
|
-
* @param {?} field
|
|
587
|
-
* @return {?}
|
|
588
|
-
*/
|
|
589
|
-
function (field) { return formGroup.get(field).enable(); }));
|
|
590
|
-
}
|
|
591
|
-
else {
|
|
592
|
-
fields.forEach((/**
|
|
593
|
-
* @param {?} field
|
|
594
|
-
* @return {?}
|
|
595
|
-
*/
|
|
596
|
-
function (field) { return formGroup.get(field).disable(); }));
|
|
597
|
-
clearValues(formGroup, fieldsToClear ? fieldsToClear : fields);
|
|
598
|
-
}
|
|
599
|
-
}
|
|
600
|
-
/**
|
|
601
|
-
* Esse método tem como função setar os campos como requeridos ou não.
|
|
602
|
-
*
|
|
603
|
-
* @param {?} formGroup FormGroup onde se encontra os campos a serem alterados.
|
|
604
|
-
* @param {?} condition Se será ou não requeridos.
|
|
605
|
-
* @param {?} fields Lista de campos.
|
|
606
|
-
* @return {?}
|
|
607
|
-
*/
|
|
608
|
-
export function setRequiredFields(formGroup, condition, fields) {
|
|
609
|
-
if (condition) {
|
|
610
|
-
fields.forEach((/**
|
|
611
|
-
* @param {?} field
|
|
612
|
-
* @return {?}
|
|
613
|
-
*/
|
|
614
|
-
function (field) { return setRequired(formGroup, field, true, [Validators.required]); }));
|
|
615
|
-
}
|
|
616
|
-
else {
|
|
617
|
-
fields.forEach((/**
|
|
618
|
-
* @param {?} field
|
|
619
|
-
* @return {?}
|
|
620
|
-
*/
|
|
621
|
-
function (field) { return setRequired(formGroup, field, false); }));
|
|
622
|
-
}
|
|
623
|
-
}
|
|
624
|
-
/**
|
|
625
|
-
* Esse método tem como função setar validações dinâmicas nos campos.
|
|
626
|
-
*
|
|
627
|
-
* @param {?} formGroup FormGroup onde se encontra os campos a serem alterados.
|
|
628
|
-
* @param {?} fields Lista de objetos [{field: campo, validators: validações, disable: boolean}].
|
|
629
|
-
* @return {?}
|
|
630
|
-
*/
|
|
631
|
-
export function setValidatorsAndDisableFields(formGroup, fields) {
|
|
632
|
-
fields.forEach((/**
|
|
633
|
-
* @param {?} currentField
|
|
634
|
-
* @return {?}
|
|
635
|
-
*/
|
|
636
|
-
function (currentField) {
|
|
637
|
-
setValidator(formGroup, currentField.field, currentField.validators);
|
|
638
|
-
setDisableField(formGroup, currentField.disabled, currentField.field, currentField.clearValue);
|
|
639
|
-
}));
|
|
640
|
-
}
|
|
641
|
-
/**
|
|
642
|
-
* @param {?} formGroup
|
|
643
|
-
* @param {?} name
|
|
644
|
-
* @param {?=} validators
|
|
645
|
-
* @return {?}
|
|
646
|
-
*/
|
|
647
|
-
export function setValidator(formGroup, name, validators) {
|
|
648
|
-
if (validators && validators.length) {
|
|
649
|
-
formGroup.controls[name].setValidators(Validators.compose(validators));
|
|
650
|
-
formGroup.controls[name].updateValueAndValidity();
|
|
651
|
-
}
|
|
652
|
-
else {
|
|
653
|
-
formGroup.controls[name].setValidators(null);
|
|
654
|
-
formGroup.controls[name].updateValueAndValidity();
|
|
655
|
-
}
|
|
656
|
-
}
|
|
657
|
-
/**
|
|
658
|
-
* Esse método tem como função setar os campos enable ou disable.
|
|
659
|
-
* @param {?} formGroup FormGroup onde se encontra os campos a serem alterados.
|
|
660
|
-
* @param {?} condition Condição para validação. True = disabled, False = enabled.
|
|
661
|
-
* @param {?} field Campo a ser manipulados.
|
|
662
|
-
* @param {?=} clearValue Campos a ser limpos. É opicional e se não foi passado o método limpará o campo do field.
|
|
663
|
-
* @return {?}
|
|
664
|
-
*/
|
|
665
|
-
export function setDisableField(formGroup, condition, field, clearValue) {
|
|
666
|
-
if (clearValue === void 0) { clearValue = true; }
|
|
667
|
-
if (condition) {
|
|
668
|
-
formGroup.get(field).disable();
|
|
669
|
-
if (clearValue)
|
|
670
|
-
formGroup.get(field).reset();
|
|
671
|
-
}
|
|
672
|
-
else {
|
|
673
|
-
formGroup.get(field).enable();
|
|
674
|
-
}
|
|
675
|
-
}
|
|
676
|
-
/**
|
|
677
|
-
* Ordena array de objetos
|
|
678
|
-
* @param {?} key o campo que deseja ordenar
|
|
679
|
-
* @param {?=} order a ordem que deseja ordenar o campo
|
|
680
|
-
* @return {?}
|
|
681
|
-
*/
|
|
682
|
-
export function compareValues(key, order) {
|
|
683
|
-
if (order === void 0) { order = "ASC"; }
|
|
684
|
-
return (/**
|
|
685
|
-
* @param {?} a
|
|
686
|
-
* @param {?} b
|
|
687
|
-
* @return {?}
|
|
688
|
-
*/
|
|
689
|
-
function innerSort(a, b) {
|
|
690
|
-
if (!a.hasOwnProperty(key) || !b.hasOwnProperty(key)) {
|
|
691
|
-
return 0;
|
|
692
|
-
}
|
|
693
|
-
/** @type {?} */
|
|
694
|
-
var varA = (typeof a[key] === "string")
|
|
695
|
-
? a[key].toUpperCase() : a[key];
|
|
696
|
-
/** @type {?} */
|
|
697
|
-
var varB = (typeof b[key] === "string")
|
|
698
|
-
? b[key].toUpperCase() : b[key];
|
|
699
|
-
/** @type {?} */
|
|
700
|
-
var comparison = 0;
|
|
701
|
-
if (varA > varB) {
|
|
702
|
-
comparison = 1;
|
|
703
|
-
}
|
|
704
|
-
else if (varA < varB) {
|
|
705
|
-
comparison = -1;
|
|
706
|
-
}
|
|
707
|
-
return ((order === "DESC") ? (comparison * -1) : comparison);
|
|
708
|
-
});
|
|
709
|
-
}
|
|
710
|
-
/**
|
|
711
|
-
* Esse método tem como função limpar o valor dos campos.
|
|
712
|
-
*
|
|
713
|
-
* @param {?} formGroup FormGroup onde se encontra os campos a serem limpos.
|
|
714
|
-
* @param {?} fields Campos a serem limpos.
|
|
715
|
-
* @return {?}
|
|
716
|
-
*/
|
|
717
|
-
export function clearValues(formGroup, fields) {
|
|
718
|
-
fields.forEach((/**
|
|
719
|
-
* @param {?} field
|
|
720
|
-
* @return {?}
|
|
721
|
-
*/
|
|
722
|
-
function (field) { return formGroup.get(field).reset(); }));
|
|
723
|
-
}
|
|
724
|
-
/**
|
|
725
|
-
*
|
|
726
|
-
* @param {?} qs = window.location.search
|
|
727
|
-
* @return {?} Object com parametros query string
|
|
728
|
-
*/
|
|
729
|
-
export function getQueryParams(qs) {
|
|
730
|
-
qs = qs.split('+').join(' ');
|
|
731
|
-
/** @type {?} */
|
|
732
|
-
var params = {};
|
|
733
|
-
/** @type {?} */
|
|
734
|
-
var tokens;
|
|
735
|
-
/** @type {?} */
|
|
736
|
-
var re = /[?&]?([^=]+)=([^&]*)/g;
|
|
737
|
-
while ((tokens = re.exec(qs))) {
|
|
738
|
-
params[decodeURIComponent(tokens[1])] = decodeURIComponent(tokens[2]);
|
|
739
|
-
}
|
|
740
|
-
return params;
|
|
741
|
-
}
|
|
742
|
-
/**
|
|
743
|
-
* @param {?} locale
|
|
744
|
-
* @return {?}
|
|
745
|
-
*/
|
|
746
|
-
export function getFormat(locale) {
|
|
747
|
-
if (locale) {
|
|
748
|
-
/** @type {?} */
|
|
749
|
-
var dateFormat = locale.calendar.dateFormat.toString();
|
|
750
|
-
dateFormat = dateFormat.replace(/[y]/g, 'YY');
|
|
751
|
-
dateFormat = dateFormat.replace(/[/]/g, '');
|
|
752
|
-
return dateFormat.toUpperCase();
|
|
753
|
-
}
|
|
754
|
-
}
|
|
755
|
-
/**
|
|
756
|
-
* Remove os caracteres que não sejam números do valor
|
|
757
|
-
* @param {?} value valor a ser tratado
|
|
758
|
-
* @return {?} string O valor sem caracteres especiais
|
|
759
|
-
*/
|
|
760
|
-
export function removeCharacteresSpecials(value) {
|
|
761
|
-
return value ? value.toString().replace(/[&\/\\#,+()$~%.'":*?<>{}-]/g, "") : null;
|
|
762
|
-
}
|
|
763
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItZ2VzdGFvLXBlc3NvYXMvcGF5cm9sbC1jb3JlLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvdXRpbHMvaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0UsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDakMsT0FBTyxLQUFLLGNBQWMsTUFBTSxRQUFRLENBQUM7QUFDekMsT0FBTyxRQUFRLE1BQU0saUJBQWlCLENBQUM7O0lBSWpDLE1BQU0sR0FBRyxjQUFjOzs7OztBQUU3QixNQUFNLFVBQVUsUUFBUSxDQUFDLElBQUk7SUFDM0IsT0FBTyxJQUFJLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNsRSxDQUFDOzs7OztBQUVELE1BQU0sVUFBVSxTQUFTLENBQUMsSUFBSTtJQUM1QixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUk7Ozs7SUFBQyxVQUFBLEtBQUssSUFBSSxPQUFBLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBekIsQ0FBeUIsRUFBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUM3RixDQUFDOzs7OztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxLQUFLO0lBQ3hDLElBQUksT0FBTyxLQUFLLEtBQUssU0FBUyxFQUFFO1FBQzlCLE9BQU8sS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7S0FDMUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7Ozs7O0FBRUQs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QUcsdUJBQXVCO0lBRWxDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFO1FBQzdCLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3ZFO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQzs7Ozs7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLE1BQU07SUFDOUIsSUFBSSxNQUFNLEVBQUU7O1lBQ04sVUFBVSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRTtRQUN0RCxVQUFVLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDOUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLE9BQU8sVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO0tBQ2pDO0FBQ0gsQ0FBQzs7Ozs7O0FBT0QsTUFBTSxVQUFVLHlCQUF5QixDQUFDLEtBQVU7SUFDaEQsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsNkJBQTZCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUN0RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcy8nO1xuaW1wb3J0ICogYXMgY2hhbmNlIGZyb20gJ2NoYW5jZSc7XG5pbXBvcnQgKiBhcyBtb21lbnRJbXBvcnRlZCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IGJ1c2luZXNzIGZyb20gJ21vbWVudC1idXNpbmVzcyc7XG5pbXBvcnQgeyBMb2NhbGVPcHRpb25zIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBGaWVsZFZhbGlkYXRvcnNPYmplY3QgfSBmcm9tICcuLi8uLi9jb3JlL2ludGVyZmFjZXMvZmllbGQtdmFsaWRhdG9ycy1vYmplY3QnO1xuXG5jb25zdCBtb21lbnQgPSBtb21lbnRJbXBvcnRlZDtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzT2JqZWN0KGl0ZW0pIHtcbiAgcmV0dXJuIGl0ZW0gJiYgdHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KGl0ZW0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTaGFsbG93KGl0ZW0pIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkoaXRlbSkgJiYgaXRlbS5maW5kKHZhbHVlID0+IHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpID8gZmFsc2UgOiB0cnVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydEJvb2xlYW5TdHJpbmcodmFsdWUpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgcmV0dXJuIHZhbHVlID09PSB0cnVlID8gJ3RydWUnIDogJ2ZhbHNlJztcbiAgfVxuICByZXR1cm4gdmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0U3RyaW5nVG9Cb29sZWFuKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSA9PT0gdHJ1ZSB8fCB2YWx1ZS50b0xvd2VyQ2FzZSgpID09PSAndHJ1ZSc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3NpZ24odGFyZ2V0LCAuLi5zb3VyY2VzKSB7XG4gIGlmICghc291cmNlcy5sZW5ndGgpIHtcbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9XG5cbiAgY29uc3Qgc291cmNlID0gc291cmNlcy5zaGlmdCgpO1xuICBpZiAoaXNPYmplY3QodGFyZ2V0KSAmJiBpc09iamVjdChzb3VyY2UpKSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gc291cmNlKSB7XG4gICAgICBpZiAoaXNPYmplY3Qoc291cmNlW2tleV0pKSB7XG4gICAgICAgIGlmICghdGFyZ2V0W2tleV0pIHtcbiAgICAgICAgICBPYmplY3QuYXNzaWduKHRhcmdldCwgeyBba2V5XToge30gfSk7XG4gICAgICAgIH1cbiAgICAgICAgYXNzaWduKHRhcmdldFtrZXldLCBzb3VyY2Vba2V5XSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoaXNTaGFsbG93KHNvdXJjZVtrZXldKSkge1xuICAgICAgICAgIE9iamVjdC5hc3NpZ24odGFyZ2V0LCB7IFtrZXldOiBzb3VyY2Vba2V5XSB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoIXRhcmdldFtrZXldKSB7XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKHRhcmdldCwgeyBba2V5XTogW10gfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIE9iamVjdC5hc3NpZ24odGFyZ2V0LCB7IFtrZXldOiBzb3VyY2Vba2V5XS5tYXAoKGl0ZW0sIGluZGV4KSA9PiBhc3NpZ24odGFyZ2V0W2tleV1baW5kZXhdIHx8IHt9LCBpdGVtKSkgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGFzc2lnbih0YXJnZXQsIC4uLnNvdXJjZXMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZCh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgPT09IDAgfHwgdHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicgPyB0cnVlIDogdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gJyc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkRGF0ZSh2YWx1ZSwgd2l0aERheXMgPSB0cnVlKSB7XG4gIGlmICh2YWx1ZSAmJiBpc0Z1bGxEYXRlKHZhbHVlLCB3aXRoRGF5cykpIHtcbiAgICBpZiAod2l0aERheXMpIHtcbiAgICAgIHJldHVybiBtb21lbnQodmFsdWUucmVwbGFjZSgvW15cXGRdKy9nLCAnJyksICdERE1NWVlZWScpLmlzVmFsaWQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG1vbWVudCh2YWx1ZS5yZXBsYWNlKC9bXlxcZF0rL2csICcnKSwgJ01NWVlZWScpLmlzVmFsaWQoKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Z1bGxEYXRlKHZhbHVlLCB3aXRoRGF5cyA9IHRydWUpIHtcbiAgaWYgKHZhbHVlKSB7XG4gICAgbGV0IHRvdGFsTGVuZ3RoO1xuICAgIGlmICh3aXRoRGF5cykge1xuICAgICAgdG90YWxMZW5ndGggPSA4O1xuICAgIH0gZWxzZSB7XG4gICAgICB0b3RhbExlbmd0aCA9IDY7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKC9bXlxcZF0rL2csICcnKS5sZW5ndGggPT09IHRvdGFsTGVuZ3RoO1xuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXV0b0NvbXBsZXRlT2JqZWN0Rm9ySWRPYmplY3QodGFibGVJZE9iamVjdCkge1xuICBpZiAoIWlzT2JqZWN0KHRhYmxlSWRPYmplY3QpKSB7XG4gICAgY29uc29sZS5lcnJvcignUGFyYW1lbnRybyBuw6NvIMOpIHVtIG9iamV0bycpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICh0YWJsZUlkT2JqZWN0Lmhhc093blByb3BlcnR5KCd0YWJsZUlkJykpIHtcbiAgICBjb25zb2xlLmVycm9yKCdQYXJhbWVudHJvIG7Do28gw6kgdW0gb2JqZXRvIEF1dG8gQ29tcGxldGUgdsOhbGlkbywgZmFsdGEgdGFibGVJZCcpO1xuICB9XG5cbiAgaWYgKCFpc1ZhbGlkKHRhYmxlSWRPYmplY3QudGFibGVJZCkpIHtcbiAgICBjb25zb2xlLmVycm9yKCd0YWJsZUlkIGVzdGEgdmF6aW8nKTtcbiAgfVxuXG4gIHJldHVybiB7IGlkOiB0YWJsZUlkT2JqZWN0LnRhYmxlSWQgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGF0ZUZpZWxkKG5hbWUsIHZhbHVlKSB7XG4gIGNvbnN0IHRlc3REYXRlID0gbmFtZS5zZWFyY2goJ0RhdGUnKTtcbiAgaWYgKHRlc3REYXRlICE9PSAtMSkge1xuICAgIHJldHVybiBpbnZlcnRGaWVsZERhdGUodmFsdWUpO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGludmVydEZpZWxkRGF0ZSh2YWx1ZSwgaW5Gb3JtYXQgPSAnRERNTVlZWVknLCBvdXRGb3JtYXQgPSAnWVlZWS1NTS1ERCcpIHtcbiAgaWYgKCFpc1ZhbGlkKHZhbHVlKSkge1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCBmb3JtYXRJbiA9IGdldEZvcm1hdERhdGUodmFsdWUsIGluRm9ybWF0KTtcbiAgcmV0dXJuIG1vbWVudCh2YWx1ZS5yZXBsYWNlKC9bXlxcZF0rL2csICcnKSwgZm9ybWF0SW4pLmZvcm1hdChvdXRGb3JtYXQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWRkV2Vla0RheXNCdXNpbmVzcyh2YWx1ZSwgcXVhbnRpZGFkZSkge1xuICByZXR1cm4gYnVzaW5lc3MuYWRkV2Vla0RheXMoZ2V0TW9tZW50KHZhbHVlKSwgcXVhbnRpZGFkZSkuZm9ybWF0KCdERC9NTS9ZWVlZJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRXZWVrRGF5c0J1c2luZXNzKHN0YXJ0RGF0ZSwgZW5kRGF0ZSkge1xuICBjb25zdCBlbmRNb21lbnQgPSBlbmREYXRlID8gZ2V0TW9tZW50KGVuZERhdGUpIDogZ2V0TW9tZW50KHN0YXJ0RGF0ZSkuZW5kT2YoJ21vbnRoJyk7XG4gIHJldHVybiBidXNpbmVzcy53ZWVrRGF5cyhnZXRNb21lbnQoc3RhcnREYXRlKSwgZW5kTW9tZW50KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvcm1hdERhdGUodmFsdWUsIGluRm9ybWF0KSB7XG4gIGlmICh2YWx1ZS5zZWFyY2goJy8nKSAhPT0gLTEpIHtcbiAgICByZXR1cm4gJ0RETU1ZWVlZJztcbiAgfSBlbHNlIGlmICh2YWx1ZS5zZWFyY2goJy0nKSAhPT0gLTEpIHtcbiAgICByZXR1cm4gJ1lZWVlNTUREJztcbiAgfVxuICByZXR1cm4gaW5Gb3JtYXQ7XG59XG5cbi8qKlxuICogRklYTUUgLSBFc3TDoSBmaXhvIHBhcmEgdXNvIGRvIGNhbGVuZMOhcmlvIHBvcnR1Z3VlcyBCcmFzaWxcbiAqIEBwYXJhbSB2YWx1ZVxuICogQHBhcmFtIG91dEZvcm1hdFxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5nQ2FsZW5kYXJGb3JtYXQodmFsdWUsIG91dEZvcm1hdCA9ICdERC9NTS9ZWVlZJykge1xuICBpZiAoaXNWYWxpZERhdGUodmFsdWUpKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIF9tb21lbnQodmFsdWUpLmZvcm1hdChvdXRGb3JtYXQpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Tm93RGF0ZShvdXRGb3JtYXQgPSAnWVlZWS1NTS1ERCcpIHtcbiAgcmV0dXJuIG1vbWVudCgpLmZvcm1hdChvdXRGb3JtYXQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TW9tZW50KHZhbHVlLCBpbkZvcm1hdCA9ICdERE1NWVlZWScpIHtcbiAgY29uc3QgZm9ybWF0SW4gPSBnZXRGb3JtYXREYXRlKHZhbHVlLCBpbkZvcm1hdCk7XG4gIHJldHVybiBtb21lbnQodmFsdWUucmVwbGFjZSgvW15cXGRdKy9nLCAnJyksIGZvcm1hdEluKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9tb21lbnQodmFsdWUsIGZvcm1hdD86IHN0cmluZykge1xuICBpZiAoZm9ybWF0KSB7XG4gICAgcmV0dXJuIG1vbWVudCh2YWx1ZSwgZm9ybWF0KTtcbiAgfVxuICByZXR1cm4gbW9tZW50KHZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE9ialZhbGlkcyhvYmpzKSB7XG4gIGNvbnN0IGpzb24gPSBPYmplY3QuYXNzaWduKHt9LCBvYmpzKTtcbiAgY29uc3QganNvblJldHVybiA9IHt9O1xuICBPYmplY3Qua2V5cyhqc29uKS5tYXAoa2V5ID0+IHtcbiAgICBpZiAoaXNWYWxpZChqc29uW2tleV0pKSB7XG4gICAgICBqc29uUmV0dXJuW2tleV0gPSBpc0RhdGVGaWVsZChrZXksIGpzb25ba2V5XSk7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIGpzb25SZXR1cm47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVFbXB0eShvYmopIHtcbiAgT2JqZWN0LmtleXMob2JqKS5mb3JFYWNoKFxuICAgIGsgPT4gKG9ialtrXSAmJiB0eXBlb2Ygb2JqW2tdID09PSAnb2JqZWN0JyAmJiByZW1vdmVFbXB0eShvYmpba10pKSB8fCAoIW9ialtrXSAmJiBvYmpba10gIT09IHVuZGVmaW5lZCAmJiBkZWxldGUgb2JqW2tdKVxuICApO1xuICByZXR1cm4gb2JqO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0TW9uZXkodmFsdWUsIGkxOG4gPSAnRU4nKSB7XG4gIHN3aXRjaCAoaTE4bikge1xuICAgIGNhc2UgJ0VOJzpcbiAgICAgIHJldHVybiBpc1ZhbGlkKHZhbHVlKVxuICAgICAgICA/IHZhbHVlXG4gICAgICAgICAgICAudG9TdHJpbmcoKVxuICAgICAgICAgICAgLnJlcGxhY2UoJy4nLCAnJylcbiAgICAgICAgICAgIC5yZXBsYWNlKCcsJywgJy4nKVxuICAgICAgICA6ICcnO1xuICAgIGNhc2UgJ0JSJzpcbiAgICAgIHJldHVybiBpc1ZhbGlkKHZhbHVlKVxuICAgICAgICA/IHZhbHVlXG4gICAgICAgICAgICAudG9TdHJpbmcoKVxuICAgICAgICAgICAgLnJlcGxhY2UoJy4nLCAnLCcpXG4gICAgICAgICAgICAucmVwbGFjZSgvKFxcZCkoPz0oXFxkezN9KSsoPyFcXGQpKS9nLCAnJDEuJylcbiAgICAgICAgOiAnJztcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGlzVmFsaWQodmFsdWUpXG4gICAgICAgID8gdmFsdWVcbiAgICAgICAgICAgIC50b1N0cmluZygpXG4gICAgICAgICAgICAucmVwbGFjZSgnLicsICcnKVxuICAgICAgICAgICAgLnJlcGxhY2UoJywnLCAnLicpXG4gICAgICAgIDogJyc7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVpaWQoKSB7XG4gIHJldHVybiBuZXcgY2hhbmNlKClcbiAgICAuZ3VpZCgpXG4gICAgLnJlcGxhY2UoL1teYS16QS1aMC05Ll0vZywgJycpXG4gICAgLnRvVXBwZXJDYXNlKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb3VudEN1c3RvbUZvclNhdmUoY3VzdG9tLCBjdXN0b21FbnRpdHkgPSBudWxsLCBsb2NhbGUgPSBudWxsKSB7XG4gIGNvbnN0IGN1c3RvbkZpZWxkID0gW107XG4gIGlmIChjdXN0b21FbnRpdHkgJiYgY3VzdG9tLmxlbmd0aCkge1xuICAgIGN1c3RvbUVudGl0eS5tYXAoKHZhbCwga2V5KSA9PiB7XG4gICAgICBjb25zdCBmaWVsZCA9IE9iamVjdC5rZXlzKGN1c3RvbVtrZXldKS50b1N0cmluZygpO1xuICAgICAgY29uc3QgdmFsT3JudWxsID0gaXNWYWxpZChjdXN0b21ba2V5XVtmaWVsZF0pID8gY3VzdG9tW2tleV1bZmllbGRdIDogbnVsbDtcbiAgICAgIGNvbnN0IHZhbHVlID1cbiAgICAgICAgdmFsLnR5cGUgPT09ICdkYXRlJyAmJiBsb2NhbGUgJiYgaXNWYWxpZCh2YWxPcm51bGwpID8gbW9tZW50KHZhbE9ybnVsbCwgZ2V0Rm9ybWF0KGxvY2FsZSkpLmZvcm1hdCgnWVlZWS1NTS1ERCcpIDogdmFsT3JudWxsO1xuICAgICAgY3VzdG9uRmllbGQucHVzaCh7XG4gICAgICAgIGZpZWxkOiBmaWVsZCxcbiAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGN1c3RvbkZpZWxkLmxlbmd0aCA/IGN1c3RvbkZpZWxkIDogbnVsbDtcbn1cblxuLyoqXG4gKiBQcmVwYXJhIG8gb2JqZXRvIGRlIGNhbXBvcyBjdXN0b21pemFkb3MgcGFyYSBzYWx2YXIgYXMgZW50aWRhZGVzIHF1ZVxuICogc8OjbyB1dGlsaXphZGFzIGEgcGFydGlyIGRvIENSVUQgY3VzdG9taXphZG8uXG4gKiBAcGFyYW0gb2JqZWN0RmllbGRzIG9iamV0byBjb20gb3MgY2FtcG9zIGN1c3RvbWl6YWRvcyBkYSBlbnRpZGFkZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vdW50Q3VzdG9tVG9TYXZlKG9iamVjdEZpZWxkcykge1xuICBjb25zdCBjdXN0b21GaWVsZHMgPSBbXTtcbiAgT2JqZWN0LmVudHJpZXMob2JqZWN0RmllbGRzKS5mb3JFYWNoKChbZmllbGQsIHZhbHVlXSkgPT4ge1xuICAgIGN1c3RvbUZpZWxkcy5wdXNoKHtcbiAgICAgIGZpZWxkOiBmaWVsZCxcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICB9KTtcbiAgfSk7XG4gIHJldHVybiBjdXN0b21GaWVsZHM7XG59XG5cbi8qKlxuICogUHJlcGFyYSBvIG9iamV0byBkZSBjYW1wb3MgY3VzdG9taXphZG9zIHBhcmEgZXhpYmlyIGFzIGVudGlkYWRlcyBxdWVcbiAqIHPDo28gdXRpbGl6YWRhcyBhIHBhcnRpciBkbyBDUlVEIGN1c3RvbWl6YWRvLlxuICogQHBhcmFtIGN1c3RvbUZpZWxkcyBvYmpldG8gY29tIG9zIGNhbXBvcyBjdXN0b21pemFkb3MgZGEgZW50aWRhZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtb3VudEN1c3RvbVRvU2hvdyhjdXN0b21GaWVsZHMpIHtcbiAgY29uc3QgY3VzdG9tRmllbGRzVG9TaG93ID0ge307XG4gIGlmIChjdXN0b21GaWVsZHMgJiYgY3VzdG9tRmllbGRzLmxlbmd0aCkge1xuICAgIGN1c3RvbUZpZWxkcy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gJ2RhdGUnICYmIGl0ZW0udmFsdWUpIHtcbiAgICAgICAgaXRlbS52YWx1ZSA9IF9tb21lbnQoaXRlbS52YWx1ZSkuZm9ybWF0KCdMJyk7XG4gICAgICB9XG4gICAgICBjdXN0b21GaWVsZHNUb1Nob3dbaXRlbS5maWVsZF0gPSBpdGVtLnZhbHVlO1xuICAgIH0pO1xuICB9XG4gIHJldHVybiBjdXN0b21GaWVsZHNUb1Nob3c7XG59XG5cbi8qKlxuICogUHJlcGFyYSBvIG9iamV0byBkZSBjYW1wb3MgY3VzdG9taXphZG9zIHBhcmEgc2FsdmFyIGFzIGVudGlkYWRlcyBxdWVcbiAqIHPDo28gdXRpbGl6YWRhcyBhIHBhcnRpciBkbyBDUlVEIGdlcmFkby5cbiAqIEBwYXJhbSBvYmplY3RGaWVsZHMgb2JqZXRvIGNvbSBvcyBjYW1wb3MgY3VzdG9taXphZG9zIGRhIGVudGlkYWRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbW91bnRHZW5lcmF0ZWRDdXN0b21Ub1NhdmUob2JqZWN0RmllbGRzKSB7XG4gIE9iamVjdC5lbnRyaWVzKG9iamVjdEZpZWxkcykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgZGVsZXRlIG9iamVjdEZpZWxkc1trZXldO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBvYmplY3RGaWVsZHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb3VudEN1c3RvbUZvclNob3coY3VzdG9tKSB7XG4gIGNvbnN0IGN1c3RvbUZpZWxkID0gW107XG4gIE9iamVjdC5rZXlzKGN1c3RvbSB8fCB7fSkuZm9yRWFjaCh2YWwgPT4ge1xuICAgIGlmIChjdXN0b21bdmFsXS50eXBlID09PSAnZGF0ZScgJiYgY3VzdG9tW3ZhbF0udmFsdWUpIHtcbiAgICAgIGN1c3RvbVt2YWxdLnZhbHVlID0gX21vbWVudChjdXN0b21bdmFsXS52YWx1ZSkuZm9ybWF0KCdMJyk7XG4gICAgfVxuICAgIGN1c3RvbUZpZWxkLnB1c2goY3VzdG9tW3ZhbF0pO1xuICB9KTtcbiAgcmV0dXJuIGN1c3RvbUZpZWxkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0VmFsdWVDdXN0b20oY3VzdG9uRmllbGRzLCBjdXN0b20pIHtcbiAgY29uc3QgaXNDdXN0b25zID0gY3VzdG9tID8gT2JqZWN0LmtleXMoY3VzdG9tKS5sZW5ndGggOiAwO1xuICBjdXN0b25GaWVsZHMubWFwKHZhbCA9PiB7XG4gICAgdmFsLnZhbHVlID0gaXNDdXN0b25zID4gMCA/IGN1c3RvbVt2YWwuZmllbGRdIDogbnVsbDtcbiAgfSk7XG4gIHJldHVybiBjdXN0b25GaWVsZHM7XG59XG5cbi8qKlxuICogIEFkaWNpb25hIHVtIGVycm8gbm8gY29udHJvbGUgZG8gZm9ybXVsw6FyaW8uIERldmUgc2VyIGNoYW1hZG8gY29tIC5jYWxsIHBhc3NhbmRvIG8gY29udGV4dG8gZGEgY2xhc3MuXG4gKiAgRXguOiBzZXRFcnJvcnMuY2FsbCh0aGlzLmNvbnRyYWN0R3JvdXAsICdyZWdpc3RlckVtcGxveWVlTnVtYmVyJywgJ2V4aXN0JywgIXBheWxvYWQpXG4gKlxuICogQHBhcmFtIGZvcm1Db250cm9sTmFtZSBOb21lIGRvIGNvbnRyb2xlIGRvIGZvcm11bMOhcmlvLlxuICogQHBhcmFtIGtleUVycm9yIE5vbWUgZG8gZXJyb3IgYSBzZXIgZXhpYmlkbyBlbSB0ZWxhLlxuICogQHBhcmFtIGlzSW52YWxpZCBTZSBob3V2ZXIgYWxndW0gZXJybyBkZSB2YWxpZGHDp8OjbyBubyBjYW1wby5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldEVycm9ycyhmb3JtQ29udHJvbE5hbWU6IHN0cmluZywga2V5RXJyb3I6IHN0cmluZywgaXNJbnZhbGlkOiBib29sZWFuKTogdm9pZCB7XG4gIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgIGlmIChpc0ludmFsaWQpIHtcbiAgICAgIGNvbnN0IGVycm9ycyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZ2V0KGZvcm1Db250cm9sTmFtZSkuZXJyb3JzKTtcbiAgICAgIGVycm9yc1trZXlFcnJvcl0gPSBpc0ludmFsaWQ7XG4gICAgICB0aGlzLmdldChmb3JtQ29udHJvbE5hbWUpLnNldEVycm9ycyhlcnJvcnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBlcnJvcnMgPSB0aGlzLmdldChmb3JtQ29udHJvbE5hbWUpLmVycm9ycztcblxuICAgICAgaWYgKGVycm9ycyAmJiBPYmplY3Qua2V5cyhlcnJvcnMpLmxlbmd0aCkge1xuICAgICAgICBkZWxldGUgZXJyb3JzW2tleUVycm9yXTtcblxuICAgICAgICBpZiAoIU9iamVjdC5rZXlzKGVycm9ycykubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5nZXQoZm9ybUNvbnRyb2xOYW1lKS5zZXRFcnJvcnMobnVsbCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sIDApO1xufVxuXG4vKipcbiAqIEZheiBsb29wIGRvIG5vcyBjb250cm9scyBkbyBmb3JtdWzDoXJpbyBlIHN1YkFycmF5IGNhc28gZXhpc3RpclxuICogc2V0YW5kbyBvcyBpbnbDoWxpZG9zXG4gKiBFeC46IHZlcmlmeVZhbGlkYXRpb25zRm9ybS5jYWxsKHRoaXMuaW5pdGlhbEdyb3VwKTtcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeVZhbGlkYXRpb25zRm9ybSgpIHtcbiAgT2JqZWN0LmtleXModGhpcy5jb250cm9scykubWFwKGZpZWxkID0+IHtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5nZXQoZmllbGQpO1xuICAgIGNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCB8fCBjb250cm9sIGluc3RhbmNlb2YgRm9ybUFycmF5KSB7XG4gICAgICB2ZXJpZnlWYWxpZGF0aW9uc0Zvcm0uY2FsbChjb250cm9sKTtcbiAgICB9XG4gIH0pO1xufVxuXG4vKipcbiAqIFJldG9ybmEgYSBpZGFkZSBkZSBhY29yZG8gY29tIGEgZGF0YSBkZSBuYXNjaW1lbnRvLlxuICpcbiAqIEBwYXJhbSBiaXJ0aGRheURhdGUgRGF0YSBkZSBuYXNjaW1lbnRvLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0WWVhcnMoYmlydGhkYXkpIHtcbiAgY29uc3QgY3VycmVudERhdGUgPSBtb21lbnQoKTtcbiAgY29uc3QgeWVhcnMgPSBjdXJyZW50RGF0ZS5kaWZmKGJpcnRoZGF5LCAneWVhcnMnLCBmYWxzZSk7XG4gIHJldHVybiB5ZWFycztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEN1c3RvbkZpZWxkcyhjdXN0b21GaWVsZHMpIHtcbiAgY3VzdG9tRmllbGRzLm1hcCh2YWwgPT4ge1xuICAgIGNvbnN0IGFkZEN1c3RvbiA9IHt9O1xuICAgIGxldCB2YWx1ZSA9IHZhbC52YWx1ZSB8fCBudWxsO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykge1xuICAgICAgdmFsdWUgPSB2YWx1ZSA/ICd0cnVlJyA6ICdmYWxzZSc7XG4gICAgfVxuICAgIGFkZEN1c3Rvblt2YWwuZmllbGRdID0gbmV3IEZvcm1Db250cm9sKHZhbHVlKTtcbiAgICB0aGlzLnB1c2gobmV3IEZvcm1Hcm91cChhZGRDdXN0b24pKTtcbiAgfSk7XG4gIHJldHVybiBjdXN0b21GaWVsZHM7XG59XG5cbiAgICBleHBvcnQgZnVuY3Rpb24gc2V0UmVxdWlyZWQoZm9ybUdyb3VwOiBGb3JtR3JvdXAsIG5hbWU6IHN0cmluZywgcmVxdWlyZWQ6IGJvb2xlYW4sIHZhbGlkYXRvcnM/OiBWYWxpZGF0b3JGbltdKSB7XG4gIGlmIChyZXF1aXJlZCkge1xuICAgIGZvcm1Hcm91cC5jb250cm9sc1tuYW1lXS5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMuY29tcG9zZSh2YWxpZGF0b3JzICYmIHZhbGlkYXRvcnMubGVuZ3RoID8gdmFsaWRhdG9ycyA6IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSkpO1xuICAgIGZvcm1Hcm91cC5jb250cm9sc1tuYW1lXS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH0gZWxzZSB7XG4gICAgZm9ybUdyb3VwLmNvbnRyb2xzW25hbWVdLnNldFZhbGlkYXRvcnMobnVsbCk7XG4gICAgZm9ybUdyb3VwLmNvbnRyb2xzW25hbWVdLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxufVxuXG4vKipcbiAqIEVzc2UgbcOpdG9kbyB0ZW0gY29tbyBmdW7Dp8OjbyBzZXRhciBvcyBjYW1wb3MgZW5hYmxlIG91IGRpc2FibGUuXG4gKiBAcGFyYW0gZm9ybUdyb3VwIEZvcm1Hcm91cCBvbmRlIHNlIGVuY29udHJhIG9zIGNhbXBvcyBhIHNlcmVtIGFsdGVyYWRvcy5cbiAqIEBwYXJhbSBjb25kaXRpb24gQ29uZGnDp8OjbyBwYXJhIHZhbGlkYcOnw6NvLiBUcnVlID0gZW5hYmxlZCwgRmFsc2UgPSBkaXNhYmxlZC5cbiAqIEBwYXJhbSBmaWVsZHMgQ2FtcG9zIGEgc2VyZW0gbWFuaXB1bGFkb3MuXG4gKiBAcGFyYW0gZmllbGRzVG9DbGVhciBDYW1wb3MgYSBzZXJlbSBsaW1wb3MuIMOJIG9waWNpb25hbCBlIHNlIG7Do28gZm9pIHBhc3NhZG8gbyBtw6l0b2RvIGxpbXBhcsOhIG9zIG1lc21vcyBjYW1wb3MgZG9zIGZpZWxkcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbmZpZ0VuYWJsZWRGaWVsZHMoZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGNvbmRpdGlvbjogYm9vbGVhbiwgZmllbGRzOiBBcnJheTxzdHJpbmc+LCBmaWVsZHNUb0NsZWFyPzogQXJyYXk8c3RyaW5nPikge1xuICBpZiAoY29uZGl0aW9uKSB7XG4gICAgZmllbGRzLmZvckVhY2goZmllbGQgPT4gZm9ybUdyb3VwLmdldChmaWVsZCkuZW5hYmxlKCkpO1xuICB9IGVsc2Uge1xuICAgIGZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IGZvcm1Hcm91cC5nZXQoZmllbGQpLmRpc2FibGUoKSk7XG4gICAgY2xlYXJWYWx1ZXMoZm9ybUdyb3VwLCBmaWVsZHNUb0NsZWFyID8gZmllbGRzVG9DbGVhciA6IGZpZWxkcyk7XG4gIH1cbn1cblxuLyoqXG4gKiBFc3NlIG3DqXRvZG8gdGVtIGNvbW8gZnVuw6fDo28gc2V0YXIgb3MgY2FtcG9zIGNvbW8gcmVxdWVyaWRvcyBvdSBuw6NvLlxuICpcbiAqIEBwYXJhbSBmb3JtR3JvdXAgRm9ybUdyb3VwIG9uZGUgc2UgZW5jb250cmEgb3MgY2FtcG9zIGEgc2VyZW0gYWx0ZXJhZG9zLlxuICogQHBhcmFtIGNvbmRpdGlvbiBTZSBzZXLDoSBvdSBuw6NvIHJlcXVlcmlkb3MuXG4gKiBAcGFyYW0gZmllbGRzIExpc3RhIGRlIGNhbXBvcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldFJlcXVpcmVkRmllbGRzKGZvcm1Hcm91cDogRm9ybUdyb3VwLCBjb25kaXRpb246IGJvb2xlYW4sIGZpZWxkczogQXJyYXk8c3RyaW5nPikge1xuICBpZiAoY29uZGl0aW9uKSB7XG4gICAgZmllbGRzLmZvckVhY2goZmllbGQgPT4gc2V0UmVxdWlyZWQoZm9ybUdyb3VwLCBmaWVsZCwgdHJ1ZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSk7XG4gIH0gZWxzZSB7XG4gICAgZmllbGRzLmZvckVhY2goZmllbGQgPT4gc2V0UmVxdWlyZWQoZm9ybUdyb3VwLCBmaWVsZCwgZmFsc2UpKTtcbiAgfVxufVxuXG5cbi8qKlxuICogRXNzZSBtw6l0b2RvIHRlbSBjb21vIGZ1bsOnw6NvIHNldGFyIHZhbGlkYcOnw7VlcyBkaW7Dom1pY2FzIG5vcyBjYW1wb3MuXG4gKlxuICogQHBhcmFtIGZvcm1Hcm91cCBGb3JtR3JvdXAgb25kZSBzZSBlbmNvbnRyYSBvcyBjYW1wb3MgYSBzZXJlbSBhbHRlcmFkb3MuXG4gKiBAcGFyYW0gZmllbGRzIExpc3RhIGRlIG9iamV0b3MgW3tmaWVsZDogY2FtcG8sIHZhbGlkYXRvcnM6IHZhbGlkYcOnw7VlcywgZGlzYWJsZTogYm9vbGVhbn1dLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0VmFsaWRhdG9yc0FuZERpc2FibGVGaWVsZHMoZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGZpZWxkczogQXJyYXk8RmllbGRWYWxpZGF0b3JzT2JqZWN0Pikge1xuICAgIGZpZWxkcy5mb3JFYWNoKChjdXJyZW50RmllbGQ6IEZpZWxkVmFsaWRhdG9yc09iamVjdCkgPT4ge1xuICAgICAgICBzZXRWYWxpZGF0b3IoZm9ybUdyb3VwLCBjdXJyZW50RmllbGQuZmllbGQsICBjdXJyZW50RmllbGQudmFsaWRhdG9ycyk7XG4gICAgICAgIHNldERpc2FibGVGaWVsZChmb3JtR3JvdXAsIGN1cnJlbnRGaWVsZC5kaXNhYmxlZCwgIGN1cnJlbnRGaWVsZC5maWVsZCwgY3VycmVudEZpZWxkLmNsZWFyVmFsdWUpO1xuICAgIH0pO1xufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRWYWxpZGF0b3IoZm9ybUdyb3VwOiBGb3JtR3JvdXAsIG5hbWU6IHN0cmluZywgdmFsaWRhdG9ycz86IFZhbGlkYXRvckZuW10pIHtcbiAgICBpZiAodmFsaWRhdG9ycyAmJiB2YWxpZGF0b3JzLmxlbmd0aCkge1xuICAgICAgICBmb3JtR3JvdXAuY29udHJvbHNbbmFtZV0uc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLmNvbXBvc2UodmFsaWRhdG9ycykpO1xuICAgICAgICBmb3JtR3JvdXAuY29udHJvbHNbbmFtZV0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGZvcm1Hcm91cC5jb250cm9sc1tuYW1lXS5zZXRWYWxpZGF0b3JzKG51bGwpO1xuICAgICAgICBmb3JtR3JvdXAuY29udHJvbHNbbmFtZV0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cbn1cblxuXG4vKipcbiAqIEVzc2UgbcOpdG9kbyB0ZW0gY29tbyBmdW7Dp8OjbyBzZXRhciBvcyBjYW1wb3MgZW5hYmxlIG91IGRpc2FibGUuXG4gKiBAcGFyYW0gZm9ybUdyb3VwIEZvcm1Hcm91cCBvbmRlIHNlIGVuY29udHJhIG9zIGNhbXBvcyBhIHNlcmVtIGFsdGVyYWRvcy5cbiAqIEBwYXJhbSBjb25kaXRpb24gQ29uZGnDp8OjbyBwYXJhIHZhbGlkYcOnw6NvLiBUcnVlID0gZGlzYWJsZWQsIEZhbHNlID0gZW5hYmxlZC5cbiAqIEBwYXJhbSBmaWVsZCBDYW1wbyBhIHNlciBtYW5pcHVsYWRvcy5cbiAqIEBwYXJhbSBjbGVhclZhbHVlIENhbXBvcyBhIHNlciBsaW1wb3MuIMOJIG9waWNpb25hbCBlIHNlIG7Do28gZm9pIHBhc3NhZG8gbyBtw6l0b2RvIGxpbXBhcsOhIG8gY2FtcG8gZG8gZmllbGQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXREaXNhYmxlRmllbGQoZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGNvbmRpdGlvbjogYm9vbGVhbiwgZmllbGQ6IHN0cmluZywgY2xlYXJWYWx1ZTogYm9vbGVhbiA9IHRydWUpIHtcbiAgICBpZiAoY29uZGl0aW9uKSB7XG4gICAgICAgIGZvcm1Hcm91cC5nZXQoZmllbGQpLmRpc2FibGUoKTtcbiAgICAgICAgaWYgKGNsZWFyVmFsdWUpIGZvcm1Hcm91cC5nZXQoZmllbGQpLnJlc2V0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZm9ybUdyb3VwLmdldChmaWVsZCkuZW5hYmxlKCk7XG4gICAgfVxufVxuXG4vKipcbiAqIE9yZGVuYSBhcnJheSBkZSBvYmpldG9zXG4gKiBAcGFyYW0ga2V5IG8gY2FtcG8gcXVlIGRlc2VqYSBvcmRlbmFyXG4gKiBAcGFyYW0gb3JkZXIgYSBvcmRlbSBxdWUgZGVzZWphIG9yZGVuYXIgbyBjYW1wb1xuICovXG5leHBvcnQgZnVuY3Rpb24gY29tcGFyZVZhbHVlcyhrZXk6IHN0cmluZywgb3JkZXI6IHN0cmluZyA9IFwiQVNDXCIpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gaW5uZXJTb3J0KGE6IGFueSwgYjogYW55KSB7XG4gICAgICAgIGlmICghYS5oYXNPd25Qcm9wZXJ0eShrZXkpIHx8ICFiLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmFyQSA9ICh0eXBlb2YgYVtrZXldID09PSBcInN0cmluZ1wiKVxuICAgICAgICAgICAgPyBhW2tleV0udG9VcHBlckNhc2UoKSA6IGFba2V5XTtcbiAgICAgICAgY29uc3QgdmFyQiA9ICh0eXBlb2YgYltrZXldID09PSBcInN0cmluZ1wiKVxuICAgICAgICAgICAgPyBiW2tleV0udG9VcHBlckNhc2UoKSA6IGJba2V5XTtcblxuICAgICAgICBsZXQgY29tcGFyaXNvbiA9IDA7XG4gICAgICAgIGlmICh2YXJBID4gdmFyQikge1xuICAgICAgICAgICAgY29tcGFyaXNvbiA9IDE7XG4gICAgICAgIH0gZWxzZSBpZiAodmFyQSA8IHZhckIpIHtcbiAgICAgICAgICAgIGNvbXBhcmlzb24gPSAtMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKG9yZGVyID09PSBcIkRFU0NcIikgPyAoY29tcGFyaXNvbiAqIC0xKSA6IGNvbXBhcmlzb25cbiAgICAgICAgKTtcbiAgICB9O1xufVxuXG4vKipcbiAqIEVzc2UgbcOpdG9kbyB0ZW0gY29tbyBmdW7Dp8OjbyBsaW1wYXIgbyB2YWxvciBkb3MgY2FtcG9zLlxuICpcbiAqIEBwYXJhbSBmb3JtR3JvdXAgRm9ybUdyb3VwIG9uZGUgc2UgZW5jb250cmEgb3MgY2FtcG9zIGEgc2VyZW0gbGltcG9zLlxuICogQHBhcmFtIGZpZWxkcyBDYW1wb3MgYSBzZXJlbSBsaW1wb3MuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGVhclZhbHVlcyhmb3JtR3JvdXA6IEZvcm1Hcm91cCwgZmllbGRzOiBBcnJheTxzdHJpbmc+KSB7XG4gIGZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IGZvcm1Hcm91cC5nZXQoZmllbGQpLnJlc2V0KCkpO1xufVxuXG4vKipcbiAqXG4gKiBAcGFyYW0gcXMgPSB3aW5kb3cubG9jYXRpb24uc2VhcmNoXG4gKiBAcmV0dXJucyBPYmplY3QgY29tIHBhcmFtZXRyb3MgcXVlcnkgc3RyaW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRRdWVyeVBhcmFtcyhxcykge1xuICBxcyA9IHFzLnNwbGl0KCcrJykuam9pbignICcpO1xuXG4gIGNvbnN0IHBhcmFtcyA9IHt9O1xuICBsZXQgdG9rZW5zO1xuICBjb25zdCByZSA9IC9bPyZdPyhbXj1dKyk9KFteJl0qKS9nO1xuXG4gIHdoaWxlICgodG9rZW5zID0gcmUuZXhlYyhxcykpKSB7XG4gICAgcGFyYW1zW2RlY29kZVVSSUNvbXBvbmVudCh0b2tlbnNbMV0pXSA9IGRlY29kZVVSSUNvbXBvbmVudCh0b2tlbnNbMl0pO1xuICB9XG5cbiAgcmV0dXJuIHBhcmFtcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvcm1hdChsb2NhbGUpIHtcbiAgaWYgKGxvY2FsZSkge1xuICAgIGxldCBkYXRlRm9ybWF0ID0gbG9jYWxlLmNhbGVuZGFyLmRhdGVGb3JtYXQudG9TdHJpbmcoKTtcbiAgICBkYXRlRm9ybWF0ID0gZGF0ZUZvcm1hdC5yZXBsYWNlKC9beV0vZywgJ1lZJyk7XG4gICAgZGF0ZUZvcm1hdCA9IGRhdGVGb3JtYXQucmVwbGFjZSgvWy9dL2csICcnKTtcbiAgICByZXR1cm4gZGF0ZUZvcm1hdC50b1VwcGVyQ2FzZSgpO1xuICB9XG59XG5cbi8qKlxuICogUmVtb3ZlIG9zIGNhcmFjdGVyZXMgcXVlIG7Do28gc2VqYW0gbsO6bWVyb3MgZG8gdmFsb3JcbiAqIEBwYXJhbSB2YWx1ZSB2YWxvciBhIHNlciB0cmF0YWRvXG4gKiBAcmV0dXJucyBzdHJpbmcgTyB2YWxvciBzZW0gY2FyYWN0ZXJlcyBlc3BlY2lhaXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUNoYXJhY3RlcmVzU3BlY2lhbHModmFsdWU6IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHZhbHVlID8gdmFsdWUudG9TdHJpbmcoKS5yZXBsYWNlKC9bJlxcL1xcXFwjLCsoKSR+JS4nXCI6Kj88Pnt9LV0vZywgXCJcIikgOiBudWxsO1xufVxuIl19
|