@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,557 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: lib/services/lookup-parameters.service.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
|
-
import { Injectable } from '@angular/core';
|
|
7
|
-
import { TranslateService } from "@ngx-translate/core";
|
|
8
|
-
import { MessageService } from "primeng/api";
|
|
9
|
-
import { map, catchError } from "rxjs/operators";
|
|
10
|
-
import { throwError } from "rxjs";
|
|
11
|
-
import { FieldType } from '@seniorsistemas/angular-components';
|
|
12
|
-
import * as moment_ from 'moment';
|
|
13
|
-
import { HttpClient, HttpParams } from '@angular/common/http';
|
|
14
|
-
import * as i0 from "@angular/core";
|
|
15
|
-
import * as i1 from "@angular/common/http";
|
|
16
|
-
import * as i2 from "primeng/components/common/messageservice";
|
|
17
|
-
import * as i3 from "@ngx-translate/core";
|
|
18
|
-
/** @type {?} */
|
|
19
|
-
const moment = moment_;
|
|
20
|
-
export class LookupParametersService {
|
|
21
|
-
/**
|
|
22
|
-
* @param {?} http
|
|
23
|
-
* @param {?} messageService
|
|
24
|
-
* @param {?} translateService
|
|
25
|
-
*/
|
|
26
|
-
constructor(http, messageService, translateService) {
|
|
27
|
-
this.http = http;
|
|
28
|
-
this.messageService = messageService;
|
|
29
|
-
this.translateService = translateService;
|
|
30
|
-
this._httpParams = new HttpParams();
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* @param {?} httpPostParams
|
|
34
|
-
* @param {?} endpoint
|
|
35
|
-
* @param {?=} concatFields
|
|
36
|
-
* @param {?=} lookupDisplayField
|
|
37
|
-
* @return {?}
|
|
38
|
-
*/
|
|
39
|
-
lookupRequestPost(httpPostParams, endpoint, concatFields = null, lookupDisplayField) {
|
|
40
|
-
this.httpPostParams = httpPostParams;
|
|
41
|
-
this.postConfigPageSize(httpPostParams);
|
|
42
|
-
this.lookupDisplayField = lookupDisplayField;
|
|
43
|
-
this.concatFields = concatFields;
|
|
44
|
-
return this.postDataLookup(endpoint);
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* @param {?} httpPostParams
|
|
48
|
-
* @return {?}
|
|
49
|
-
*/
|
|
50
|
-
postConfigPageSize(httpPostParams) {
|
|
51
|
-
if (httpPostParams) {
|
|
52
|
-
this.httpPostParams.page.size = httpPostParams.page && httpPostParams.page.size ? httpPostParams.page.size : 10;
|
|
53
|
-
this.httpPostParams.page.current = httpPostParams.page && httpPostParams.page.current ? httpPostParams.page.current : 0;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Função chamada no change do autocomplete (Lookup fechado).
|
|
58
|
-
* @param {?} event valor atribuido no autocomplete do lookup fechado
|
|
59
|
-
* @param {?} endpoint endpoint que sera feito a requisição.
|
|
60
|
-
* @param {?} searchLookupFields campos que seram filtrados pelo autocomplete (lookup fechado)
|
|
61
|
-
* @param {?} searchFields array com os campos do filtro
|
|
62
|
-
* @param {?} concatFields array com os formFields que seram concatenados
|
|
63
|
-
* @param {?} lookupDisplayField campo que sera alterado com os dados concatenados informado acima
|
|
64
|
-
* @param {?=} concatOtherFields converte os campos enumeração para serem concatenados na grid
|
|
65
|
-
* @param {?=} params parâmetros para ser usado no lookup
|
|
66
|
-
* @return {?}
|
|
67
|
-
*/
|
|
68
|
-
lookupRequest(event, endpoint, searchLookupFields, searchFields, concatFields, lookupDisplayField, concatOtherFields = [], params = []) {
|
|
69
|
-
this.searchLookupFields = searchLookupFields;
|
|
70
|
-
this.endpoint = endpoint;
|
|
71
|
-
this.parameters = params;
|
|
72
|
-
this.concatFields = concatFields;
|
|
73
|
-
this.concatOtherFields = concatOtherFields;
|
|
74
|
-
this.lookupDisplayField = lookupDisplayField;
|
|
75
|
-
this.searchFields = searchFields;
|
|
76
|
-
this.generateLookupParameters(event);
|
|
77
|
-
this.configHttpParamsPagination('10', '0');
|
|
78
|
-
this.configHttpParamsOrderBy(event.multiSortMeta);
|
|
79
|
-
return this.getDataLookup();
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Função chamada no change do filtro do lookup (Lookup aberto).
|
|
83
|
-
* @param {?} event valor atribuido no autocomplete do lookup fechado
|
|
84
|
-
* @param {?} endpoint endpoint que sera feito a requisição.
|
|
85
|
-
* @param {?} searchFields array com os campos do filtro
|
|
86
|
-
* @param {?} concatFields array com os formFields que seram concatenados
|
|
87
|
-
* @param {?} lookupDisplayField campo que sera alterado com os dados concatenados informado acima
|
|
88
|
-
* @param {?=} concatOtherFields converte os campos enumeração para serem concatenados na grid
|
|
89
|
-
* @param {?=} params parâmetros para ser usado no lookup
|
|
90
|
-
* @return {?}
|
|
91
|
-
*/
|
|
92
|
-
searchRequest(event, endpoint, searchFields, concatFields, lookupDisplayField, concatOtherFields = [], params = []) {
|
|
93
|
-
this.endpoint = endpoint;
|
|
94
|
-
this.parameters = params;
|
|
95
|
-
this.concatFields = concatFields;
|
|
96
|
-
this.concatOtherFields = concatOtherFields;
|
|
97
|
-
this.lookupDisplayField = lookupDisplayField;
|
|
98
|
-
this.searchFields = searchFields;
|
|
99
|
-
this.generateGridParameters(event.filterData);
|
|
100
|
-
this.configHttpParamsPagination(event.rows.toString(), Math.floor(event.first / event.rows).toString());
|
|
101
|
-
this.configHttpParamsOrderBy(event.multiSortMeta);
|
|
102
|
-
return this.getDataLookup();
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* GET
|
|
106
|
-
* @private
|
|
107
|
-
* @return {?}
|
|
108
|
-
*/
|
|
109
|
-
getDataLookup() {
|
|
110
|
-
return this.getUrlDataLookup(this.endpoint, this.httpParams).pipe(map((/**
|
|
111
|
-
* @param {?} payload
|
|
112
|
-
* @return {?}
|
|
113
|
-
*/
|
|
114
|
-
(payload) => {
|
|
115
|
-
const { contents } = payload;
|
|
116
|
-
if (this.concatFields && this.concatFields.length) {
|
|
117
|
-
contents.map((/**
|
|
118
|
-
* @param {?} value
|
|
119
|
-
* @return {?}
|
|
120
|
-
*/
|
|
121
|
-
value => {
|
|
122
|
-
this.convertGridFieldValue(value);
|
|
123
|
-
value[this.lookupDisplayField] = this.generateDisplayFieldValue(Object.assign({}, value));
|
|
124
|
-
}));
|
|
125
|
-
}
|
|
126
|
-
return payload;
|
|
127
|
-
})));
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* POST
|
|
131
|
-
* @private
|
|
132
|
-
* @param {?} endpoint Busca e faz o tratamento dos dados do lookup.
|
|
133
|
-
* @return {?}
|
|
134
|
-
*/
|
|
135
|
-
postDataLookup(endpoint) {
|
|
136
|
-
return this.postUrlDataLookup(endpoint, this.httpPostParams).pipe(map((/**
|
|
137
|
-
* @param {?} payload
|
|
138
|
-
* @return {?}
|
|
139
|
-
*/
|
|
140
|
-
(payload) => {
|
|
141
|
-
const { contents } = payload;
|
|
142
|
-
if (this.concatFields && this.concatFields.length) {
|
|
143
|
-
contents.map((/**
|
|
144
|
-
* @param {?} value
|
|
145
|
-
* @return {?}
|
|
146
|
-
*/
|
|
147
|
-
value => {
|
|
148
|
-
if (this.concatOtherFields) {
|
|
149
|
-
this.convertGridFieldValue(value);
|
|
150
|
-
}
|
|
151
|
-
value[this.lookupDisplayField] = this.generateDisplayFieldValue(Object.assign({}, value));
|
|
152
|
-
}));
|
|
153
|
-
}
|
|
154
|
-
return payload;
|
|
155
|
-
})));
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* Converte o valor do campo para apresentação no lookup.
|
|
159
|
-
*
|
|
160
|
-
* @private
|
|
161
|
-
* @param {?} content Valor do campo para conversão.
|
|
162
|
-
* @param {?} field FormField do campo.
|
|
163
|
-
* @return {?}
|
|
164
|
-
*/
|
|
165
|
-
convertLookupFieldValue(content, field) {
|
|
166
|
-
if (content) {
|
|
167
|
-
switch (field.type) {
|
|
168
|
-
case FieldType.Date:
|
|
169
|
-
content = moment(content).format('L');
|
|
170
|
-
break;
|
|
171
|
-
case FieldType.Enum:
|
|
172
|
-
/** @type {?} */
|
|
173
|
-
const enumValue = field.options.filter((/**
|
|
174
|
-
* @param {?} enumeration
|
|
175
|
-
* @return {?}
|
|
176
|
-
*/
|
|
177
|
-
(enumeration) => enumeration.value === content))[0];
|
|
178
|
-
content = enumValue ? enumValue.label : content;
|
|
179
|
-
break;
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
return content;
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* Converte os dados para visualização na grid
|
|
186
|
-
* @private
|
|
187
|
-
* @param {?} content
|
|
188
|
-
* @return {?}
|
|
189
|
-
*/
|
|
190
|
-
convertGridFieldValue(content) {
|
|
191
|
-
if (content) {
|
|
192
|
-
this.concatOtherFields.forEach((/**
|
|
193
|
-
* @param {?} field
|
|
194
|
-
* @return {?}
|
|
195
|
-
*/
|
|
196
|
-
(field) => {
|
|
197
|
-
switch (field.type) {
|
|
198
|
-
case FieldType.Enum:
|
|
199
|
-
/** @type {?} */
|
|
200
|
-
const enumValue = field.options.filter((/**
|
|
201
|
-
* @param {?} enumeration
|
|
202
|
-
* @return {?}
|
|
203
|
-
*/
|
|
204
|
-
(enumeration) => enumeration.value === content[field.name]))[0];
|
|
205
|
-
content[field.name] = enumValue ? enumValue.label : content[field.name];
|
|
206
|
-
break;
|
|
207
|
-
}
|
|
208
|
-
}));
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* Faz a concatenação de valores do registro para ser apresentado no lookup ao selecionar o dado.
|
|
213
|
-
* @private
|
|
214
|
-
* @param {?} contentValue Valor do registro.
|
|
215
|
-
* @return {?}
|
|
216
|
-
*/
|
|
217
|
-
generateDisplayFieldValue(contentValue) {
|
|
218
|
-
/** @type {?} */
|
|
219
|
-
let displayField = '';
|
|
220
|
-
this.concatFields.forEach((/**
|
|
221
|
-
* @param {?} field
|
|
222
|
-
* @return {?}
|
|
223
|
-
*/
|
|
224
|
-
(field) => {
|
|
225
|
-
/** @type {?} */
|
|
226
|
-
const fieldValue = this.convertLookupFieldValue(contentValue[field.name], field);
|
|
227
|
-
if (fieldValue) {
|
|
228
|
-
if (displayField) {
|
|
229
|
-
displayField += ` - ${fieldValue}`;
|
|
230
|
-
}
|
|
231
|
-
else {
|
|
232
|
-
displayField = fieldValue;
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
}));
|
|
236
|
-
return displayField;
|
|
237
|
-
}
|
|
238
|
-
/**
|
|
239
|
-
* Gera os parametros de pesquisa via lookup
|
|
240
|
-
* @private
|
|
241
|
-
* @param {?=} value
|
|
242
|
-
* @return {?}
|
|
243
|
-
*/
|
|
244
|
-
generateLookupParameters(value) {
|
|
245
|
-
/** @type {?} */
|
|
246
|
-
let lookupParameters = '';
|
|
247
|
-
this.searchLookupFields.forEach((/**
|
|
248
|
-
* @param {?} lookupField
|
|
249
|
-
* @return {?}
|
|
250
|
-
*/
|
|
251
|
-
(lookupField) => {
|
|
252
|
-
/** @type {?} */
|
|
253
|
-
const searchField = this.searchFields.filter((/**
|
|
254
|
-
* @param {?} field
|
|
255
|
-
* @return {?}
|
|
256
|
-
*/
|
|
257
|
-
field => lookupField === field.name))[0];
|
|
258
|
-
if (lookupParameters) {
|
|
259
|
-
lookupParameters += ` or ${this.getParameterByType(searchField.type, lookupField, value)}`;
|
|
260
|
-
}
|
|
261
|
-
else {
|
|
262
|
-
lookupParameters = `${this.getParameterByType(searchField.type, lookupField, value)}`;
|
|
263
|
-
}
|
|
264
|
-
}));
|
|
265
|
-
this.parameters.forEach((/**
|
|
266
|
-
* @param {?} parameter
|
|
267
|
-
* @return {?}
|
|
268
|
-
*/
|
|
269
|
-
(parameter) => {
|
|
270
|
-
if (lookupParameters) {
|
|
271
|
-
lookupParameters += ` and ${parameter.toString()}`;
|
|
272
|
-
}
|
|
273
|
-
else {
|
|
274
|
-
lookupParameters = `${parameter.toString()}`;
|
|
275
|
-
}
|
|
276
|
-
}));
|
|
277
|
-
this.httpParams = new HttpParams().set('filter', lookupParameters);
|
|
278
|
-
}
|
|
279
|
-
/**
|
|
280
|
-
* Gera os parametros de pesquisa via pesquisa na grid
|
|
281
|
-
* @private
|
|
282
|
-
* @param {?} filterData
|
|
283
|
-
* @return {?}
|
|
284
|
-
*/
|
|
285
|
-
generateGridParameters(filterData) {
|
|
286
|
-
/** @type {?} */
|
|
287
|
-
let gridParameters = '';
|
|
288
|
-
Object.keys(filterData).forEach((/**
|
|
289
|
-
* @param {?} attribute
|
|
290
|
-
* @return {?}
|
|
291
|
-
*/
|
|
292
|
-
(attribute) => {
|
|
293
|
-
if (filterData[attribute]) {
|
|
294
|
-
/** @type {?} */
|
|
295
|
-
const searchField = this.searchFields.filter((/**
|
|
296
|
-
* @param {?} field
|
|
297
|
-
* @return {?}
|
|
298
|
-
*/
|
|
299
|
-
field => attribute === field.name))[0];
|
|
300
|
-
if (gridParameters) {
|
|
301
|
-
gridParameters += ` and ${this.getParameterByType(searchField.type, attribute, filterData[attribute])}`;
|
|
302
|
-
}
|
|
303
|
-
else {
|
|
304
|
-
gridParameters += this.getParameterByType(searchField.type, attribute, filterData[attribute]);
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
}));
|
|
308
|
-
this.parameters.forEach((/**
|
|
309
|
-
* @param {?} parameter
|
|
310
|
-
* @return {?}
|
|
311
|
-
*/
|
|
312
|
-
(parameter) => {
|
|
313
|
-
if (gridParameters) {
|
|
314
|
-
gridParameters += ` and ${parameter.toString()}`;
|
|
315
|
-
}
|
|
316
|
-
else {
|
|
317
|
-
gridParameters = `${parameter.toString()}`;
|
|
318
|
-
}
|
|
319
|
-
}));
|
|
320
|
-
this.httpParams = new HttpParams().set('filter', gridParameters);
|
|
321
|
-
}
|
|
322
|
-
/**
|
|
323
|
-
* Gera a string de consulta CRUD de um campo.
|
|
324
|
-
* @private
|
|
325
|
-
* @param {?} type Tipo do campo.
|
|
326
|
-
* @param {?} attribute Nome do atribute da entidade
|
|
327
|
-
* @param {?} value Valor do campo
|
|
328
|
-
* @return {?}
|
|
329
|
-
*/
|
|
330
|
-
getParameterByType(type, attribute, value) {
|
|
331
|
-
switch (type) {
|
|
332
|
-
case FieldType.Date:
|
|
333
|
-
return `${attribute} eq '${moment(value).format('YYYY-MM-DD')}'`;
|
|
334
|
-
case FieldType.Enum:
|
|
335
|
-
return `${attribute} eq '${value}'`;
|
|
336
|
-
case FieldType.Integer:
|
|
337
|
-
return `${attribute} eq ${value}`;
|
|
338
|
-
case FieldType.Autocomplete:
|
|
339
|
-
return `${attribute} eq '${value.id}'`;
|
|
340
|
-
default:
|
|
341
|
-
return `containing(lower(${attribute}), lower('${value}'))`;
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
/**
|
|
345
|
-
*
|
|
346
|
-
* @private
|
|
347
|
-
* @param {?} size a quantidade de registros na página.
|
|
348
|
-
* @param {?} offset o número da página a ser recuperada, lembrando que a numeração de páginas começa em 0 (zero).
|
|
349
|
-
* @return {?}
|
|
350
|
-
*/
|
|
351
|
-
configHttpParamsPagination(size, offset) {
|
|
352
|
-
this.httpParams = this.httpParams.set('size', size);
|
|
353
|
-
this.httpParams = this.httpParams.set('offset', offset);
|
|
354
|
-
}
|
|
355
|
-
/**
|
|
356
|
-
* Gera o orderby do HttpParams
|
|
357
|
-
* @private
|
|
358
|
-
* @param {?} multiSortMeta
|
|
359
|
-
* @return {?}
|
|
360
|
-
*/
|
|
361
|
-
configHttpParamsOrderBy(multiSortMeta) {
|
|
362
|
-
if (multiSortMeta && multiSortMeta.length) {
|
|
363
|
-
/** @type {?} */
|
|
364
|
-
let orderBy = '';
|
|
365
|
-
multiSortMeta.map((/**
|
|
366
|
-
* @param {?} value
|
|
367
|
-
* @return {?}
|
|
368
|
-
*/
|
|
369
|
-
value => {
|
|
370
|
-
if (orderBy) {
|
|
371
|
-
orderBy += `,${value.field}+${value.order === 1 ? 'asc' : 'desc'}`;
|
|
372
|
-
}
|
|
373
|
-
else {
|
|
374
|
-
orderBy += `${value.field}+${value.order === 1 ? 'asc' : 'desc'}`;
|
|
375
|
-
}
|
|
376
|
-
}));
|
|
377
|
-
this.httpParams = this.httpParams.set('orderby', orderBy);
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
/**
|
|
381
|
-
* @param {?} value
|
|
382
|
-
* @return {?}
|
|
383
|
-
*/
|
|
384
|
-
set httpParams(value) {
|
|
385
|
-
this._httpParams = value;
|
|
386
|
-
}
|
|
387
|
-
/**
|
|
388
|
-
* @return {?}
|
|
389
|
-
*/
|
|
390
|
-
get httpParams() {
|
|
391
|
-
return this._httpParams;
|
|
392
|
-
}
|
|
393
|
-
/**
|
|
394
|
-
* @private
|
|
395
|
-
* @param {?} endpoint
|
|
396
|
-
* @param {?} httpParams
|
|
397
|
-
* @return {?}
|
|
398
|
-
*/
|
|
399
|
-
getUrlDataLookup(endpoint, httpParams) {
|
|
400
|
-
if (httpParams) {
|
|
401
|
-
return this.http.get(`${endpoint}`, { params: httpParams })
|
|
402
|
-
.pipe(catchError((/**
|
|
403
|
-
* @param {?} exception
|
|
404
|
-
* @return {?}
|
|
405
|
-
*/
|
|
406
|
-
(exception) => {
|
|
407
|
-
if (exception && exception.status === 403)
|
|
408
|
-
this.messageService.add({
|
|
409
|
-
severity: 'error',
|
|
410
|
-
summary: this.translateService.instant('hcm.payroll.error'),
|
|
411
|
-
detail: this.translateService.instant("hcm.payroll.permission_error_not_allowed_search"),
|
|
412
|
-
sticky: true,
|
|
413
|
-
});
|
|
414
|
-
return throwError(exception);
|
|
415
|
-
})));
|
|
416
|
-
}
|
|
417
|
-
else {
|
|
418
|
-
return this.http.get(`${endpoint}`)
|
|
419
|
-
.pipe(catchError((/**
|
|
420
|
-
* @param {?} exception
|
|
421
|
-
* @return {?}
|
|
422
|
-
*/
|
|
423
|
-
(exception) => {
|
|
424
|
-
if (exception && exception.status === 403)
|
|
425
|
-
this.messageService.add({
|
|
426
|
-
severity: 'error',
|
|
427
|
-
summary: this.translateService.instant('hcm.payroll.error'),
|
|
428
|
-
detail: this.translateService.instant("hcm.payroll.permission_error_not_allowed_search"),
|
|
429
|
-
sticky: true,
|
|
430
|
-
});
|
|
431
|
-
return throwError(exception);
|
|
432
|
-
})));
|
|
433
|
-
}
|
|
434
|
-
}
|
|
435
|
-
/**
|
|
436
|
-
* @private
|
|
437
|
-
* @param {?} endpoint
|
|
438
|
-
* @param {?} httpParams
|
|
439
|
-
* @return {?}
|
|
440
|
-
*/
|
|
441
|
-
postUrlDataLookup(endpoint, httpParams) {
|
|
442
|
-
if (httpParams) {
|
|
443
|
-
return this.http.post(`${endpoint}`, Object.assign({}, httpParams))
|
|
444
|
-
.pipe(catchError((/**
|
|
445
|
-
* @param {?} exception
|
|
446
|
-
* @return {?}
|
|
447
|
-
*/
|
|
448
|
-
(exception) => {
|
|
449
|
-
if (exception.status === 403)
|
|
450
|
-
this.messageService.add({
|
|
451
|
-
severity: 'error',
|
|
452
|
-
summary: this.translateService.instant('hcm.payroll.error'),
|
|
453
|
-
detail: this.translateService.instant("hcm.payroll.permission_error_not_allowed"),
|
|
454
|
-
sticky: true,
|
|
455
|
-
});
|
|
456
|
-
return throwError(exception);
|
|
457
|
-
})));
|
|
458
|
-
}
|
|
459
|
-
else {
|
|
460
|
-
return this.http.post(`${endpoint}`, {})
|
|
461
|
-
.pipe(catchError((/**
|
|
462
|
-
* @param {?} exception
|
|
463
|
-
* @return {?}
|
|
464
|
-
*/
|
|
465
|
-
(exception) => {
|
|
466
|
-
if (exception.status === 403)
|
|
467
|
-
this.messageService.add({
|
|
468
|
-
severity: 'error',
|
|
469
|
-
summary: this.translateService.instant('hcm.payroll.error'),
|
|
470
|
-
detail: this.translateService.instant("hcm.payroll.permission_error_not_allowed"),
|
|
471
|
-
sticky: true,
|
|
472
|
-
});
|
|
473
|
-
return throwError(exception);
|
|
474
|
-
})));
|
|
475
|
-
}
|
|
476
|
-
}
|
|
477
|
-
}
|
|
478
|
-
LookupParametersService.decorators = [
|
|
479
|
-
{ type: Injectable, args: [{
|
|
480
|
-
providedIn: 'root',
|
|
481
|
-
},] }
|
|
482
|
-
];
|
|
483
|
-
/** @nocollapse */
|
|
484
|
-
LookupParametersService.ctorParameters = () => [
|
|
485
|
-
{ type: HttpClient },
|
|
486
|
-
{ type: MessageService },
|
|
487
|
-
{ type: TranslateService }
|
|
488
|
-
];
|
|
489
|
-
/** @nocollapse */ LookupParametersService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function LookupParametersService_Factory() { return new LookupParametersService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.MessageService), i0.ɵɵinject(i3.TranslateService)); }, token: LookupParametersService, providedIn: "root" });
|
|
490
|
-
if (false) {
|
|
491
|
-
/**
|
|
492
|
-
* @type {?}
|
|
493
|
-
* @private
|
|
494
|
-
*/
|
|
495
|
-
LookupParametersService.prototype.searchLookupFields;
|
|
496
|
-
/**
|
|
497
|
-
* @type {?}
|
|
498
|
-
* @private
|
|
499
|
-
*/
|
|
500
|
-
LookupParametersService.prototype.endpoint;
|
|
501
|
-
/**
|
|
502
|
-
* @type {?}
|
|
503
|
-
* @private
|
|
504
|
-
*/
|
|
505
|
-
LookupParametersService.prototype.parameters;
|
|
506
|
-
/**
|
|
507
|
-
* @type {?}
|
|
508
|
-
* @private
|
|
509
|
-
*/
|
|
510
|
-
LookupParametersService.prototype.concatFields;
|
|
511
|
-
/**
|
|
512
|
-
* @type {?}
|
|
513
|
-
* @private
|
|
514
|
-
*/
|
|
515
|
-
LookupParametersService.prototype.concatOtherFields;
|
|
516
|
-
/**
|
|
517
|
-
* @type {?}
|
|
518
|
-
* @private
|
|
519
|
-
*/
|
|
520
|
-
LookupParametersService.prototype.lookupDisplayField;
|
|
521
|
-
/**
|
|
522
|
-
* @type {?}
|
|
523
|
-
* @private
|
|
524
|
-
*/
|
|
525
|
-
LookupParametersService.prototype.searchFields;
|
|
526
|
-
/**
|
|
527
|
-
* @type {?}
|
|
528
|
-
* @private
|
|
529
|
-
*/
|
|
530
|
-
LookupParametersService.prototype.httpPostParams;
|
|
531
|
-
/**
|
|
532
|
-
* @type {?}
|
|
533
|
-
* @private
|
|
534
|
-
*/
|
|
535
|
-
LookupParametersService.prototype.page;
|
|
536
|
-
/**
|
|
537
|
-
* @type {?}
|
|
538
|
-
* @private
|
|
539
|
-
*/
|
|
540
|
-
LookupParametersService.prototype._httpParams;
|
|
541
|
-
/**
|
|
542
|
-
* @type {?}
|
|
543
|
-
* @private
|
|
544
|
-
*/
|
|
545
|
-
LookupParametersService.prototype.http;
|
|
546
|
-
/**
|
|
547
|
-
* @type {?}
|
|
548
|
-
* @private
|
|
549
|
-
*/
|
|
550
|
-
LookupParametersService.prototype.messageService;
|
|
551
|
-
/**
|
|
552
|
-
* @type {?}
|
|
553
|
-
* @private
|
|
554
|
-
*/
|
|
555
|
-
LookupParametersService.prototype.translateService;
|
|
556
|
-
}
|
|
557
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXBhcmFtZXRlcnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItZ2VzdGFvLXBlc3NvYXMvcGF5cm9sbC1jb3JlLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2xvb2t1cC1wYXJhbWV0ZXJzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTlDLE9BQU8sRUFBRSxTQUFTLEVBQWEsTUFBTSxvQ0FBb0MsQ0FBQztBQUMxRSxPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQztBQUNsQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7TUFHeEQsTUFBTSxHQUFHLE9BQU87QUFLdEIsTUFBTSxPQUFPLHVCQUF1Qjs7Ozs7O0lBYWhDLFlBQW9CLElBQWdCLEVBQVUsY0FBOEIsRUFBVSxnQkFBa0M7UUFBcEcsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFGaEgsZ0JBQVcsR0FBZSxJQUFJLFVBQVUsRUFBRSxDQUFDO0lBR25ELENBQUM7Ozs7Ozs7O0lBR0QsaUJBQWlCLENBQUMsY0FBbUIsRUFBRSxRQUFnQixFQUFFLGVBQWlDLElBQUksRUFBRSxrQkFBMEI7UUFDdEgsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDckMsSUFBSSxDQUFDLGtCQUFrQixD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LENBQUMsQ0FBQztZQUNqQyxDQUFDLEVBQUMsQ0FDTCxDQUFDO1NBQ1Q7SUFDTCxDQUFDOzs7WUFwWEosVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCOzs7O1lBUFEsVUFBVTtZQU5WLGNBQWM7WUFEZCxnQkFBZ0I7Ozs7Ozs7O0lBaUJyQixxREFBZ0M7Ozs7O0lBQ2hDLDJDQUF5Qjs7Ozs7SUFDekIsNkNBQXdCOzs7OztJQUN4QiwrQ0FBMEI7Ozs7O0lBQzFCLG9EQUErQjs7Ozs7SUFDL0IscURBQW1DOzs7OztJQUNuQywrQ0FBMEI7Ozs7O0lBQzFCLGlEQUE0Qjs7Ozs7SUFDNUIsdUNBQTZCOzs7OztJQUM3Qiw4Q0FBbUQ7Ozs7O0lBRXZDLHVDQUF3Qjs7Ozs7SUFBRSxpREFBc0M7Ozs7O0lBQUUsbURBQTBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gXCJwcmltZW5nL2FwaVwiO1xuaW1wb3J0IHsgbWFwLCBjYXRjaEVycm9yIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IEVudGl0eU9EYXRhUGFyYW1ldGVyIH0gZnJvbSAnLi4vY29yZS9lbnRpdGllcyc7XG5pbXBvcnQgeyBGaWVsZFR5cGUsIEZvcm1GaWVsZCB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMnO1xuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFBhZ2luYXRpb25EYXRhIH0gZnJvbSAnLi4vY29yZS9pbnRlcmZhY2VzJztcblxuY29uc3QgbW9tZW50ID0gbW9tZW50XztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTG9va3VwUGFyYW1ldGVyc1NlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSBzZWFyY2hMb29rdXBGaWVsZHM6IGFueTtcbiAgICBwcml2YXRlIGVuZHBvaW50OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBwYXJhbWV0ZXJzOiBhbnk7XG4gICAgcHJpdmF0ZSBjb25jYXRGaWVsZHM6IGFueTtcbiAgICBwcml2YXRlIGNvbmNhdE90aGVyRmllbGRzOiBhbnk7XG4gICAgcHJpdmF0ZSBsb29rdXBEaXNwbGF5RmllbGQ6IHN0cmluZztcbiAgICBwcml2YXRlIHNlYXJjaEZpZWxkczogYW55O1xuICAgIHByaXZhdGUgaHR0cFBvc3RQYXJhbXM6IGFueTtcbiAgICBwcml2YXRlIHBhZ2U6IFBhZ2luYXRpb25EYXRhO1xuICAgIHByaXZhdGUgX2h0dHBQYXJhbXM6IEh0dHBQYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSwgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XG4gICAgfVxuXG5cbiAgICBsb29rdXBSZXF1ZXN0UG9zdChodHRwUG9zdFBhcmFtczogYW55LCBlbmRwb2ludDogc3RyaW5nLCBjb25jYXRGaWVsZHM6IEFycmF5PEZvcm1GaWVsZD4gPSBudWxsLCBsb29rdXBEaXNwbGF5RmllbGQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLmh0dHBQb3N0UGFyYW1zID0gaHR0cFBvc3RQYXJhbXM7XG4gICAgICAgIHRoaXMucG9zdENvbmZpZ1BhZ2VTaXplKGh0dHBQb3N0UGFyYW1zKTtcbiAgICAgICAgdGhpcy5sb29rdXBEaXNwbGF5RmllbGQgPSBsb29rdXBEaXNwbGF5RmllbGQ7XG4gICAgICAgIHRoaXMuY29uY2F0RmllbGRzID0gY29uY2F0RmllbGRzO1xuICAgICAgICByZXR1cm4gdGhpcy5wb3N0RGF0YUxvb2t1cChlbmRwb2ludCk7XG4gICAgfVxuXG4gICAgcG9zdENvbmZpZ1BhZ2VTaXplKGh0dHBQb3N0UGFyYW1zOiBhbnkpIHtcbiAgICAgICAgaWYgKGh0dHBQb3N0UGFyYW1zKSB7XG4gICAgICAgICAgICB0aGlzLmh0dHBQb3N0UGFyYW1zLnBhZ2Uuc2l6ZSA9IGh0dHBQb3N0UGFyYW1zLnBhZ2UgJiYgaHR0cFBvc3RQYXJhbXMucGFnZS5zaXplID8gaHR0cFBvc3RQYXJhbXMucGFnZS5zaXplIDogMTA7XG4gICAgICAgICAgICB0aGlzLmh0dHBQb3N0UGFyYW1zLnBhZ2UuY3VycmVudCA9IGh0dHBQb3N0UGFyYW1zLnBhZ2UgJiYgaHR0cFBvc3RQYXJhbXMucGFnZS5jdXJyZW50ID8gaHR0cFBvc3RQYXJhbXMucGFnZS5jdXJyZW50IDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZ1bsOnw6NvIGNoYW1hZGEgbm8gY2hhbmdlIGRvIGF1dG9jb21wbGV0ZSAoTG9va3VwIGZlY2hhZG8pLlxuICAgICAqIEBwYXJhbSBldmVudCB2YWxvciBhdHJpYnVpZG8gbm8gYXV0b2NvbXBsZXRlIGRvIGxvb2t1cCBmZWNoYWRvXG4gICAgICogQHBhcmFtIGVuZHBvaW50IGVuZHBvaW50IHF1ZSBzZXJhIGZlaXRvIGEgcmVxdWlzacOnw6NvLlxuICAgICAqIEBwYXJhbSBzZWFyY2hMb29rdXBGaWVsZHMgY2FtcG9zIHF1ZSBzZXJhbSBmaWx0cmFkb3MgcGVsbyBhdXRvY29tcGxldGUgKGxvb2t1cCBmZWNoYWRvKVxuICAgICAqIEBwYXJhbSBzZWFyY2hGaWVsZHMgYXJyYXkgY29tIG9zIGNhbXBvcyBkbyBmaWx0cm9cbiAgICAgKiBAcGFyYW0gY29uY2F0RmllbGRzIGFycmF5IGNvbSBvcyBmb3JtRmllbGRzIHF1ZSBzZXJhbSBjb25jYXRlbmFkb3NcbiAgICAgKiBAcGFyYW0gY29uY2F0T3RoZXJGaWVsZHMgY29udmVydGUgb3MgY2FtcG9zIGVudW1lcmHDp8OjbyBwYXJhIHNlcmVtIGNvbmNhdGVuYWRvcyBuYSBncmlkXG4gICAgICogQHBhcmFtIGxvb2t1cERpc3BsYXlGaWVsZCBjYW1wbyBxdWUgc2VyYSBhbHRlcmFkbyBjb20gb3MgZGFkb3MgY29uY2F0ZW5hZG9zIGluZm9ybWFkbyBhY2ltYVxuICAgICAqIEBwYXJhbSBwYXJhbXMgcGFyw6JtZXRyb3MgcGFyYSBzZXIgdXNhZG8gbm8gbG9va3VwXG4gICAgICovXG4gICAgbG9va3VwUmVxdWVzdChldmVudDogYW55LCBlbmRwb2ludDogc3RyaW5nLCBzZWFyY2hMb29rdXBGaWVsZHM6IEFycmF5PFN0cmluZz4sIHNlYXJjaEZpZWxkczogQXJyYXk8Rm9ybUZpZWxkPixcbiAgICAgICAgICAgICAgICAgIGNvbmNhdEZpZWxkczogQXJyYXk8Rm9ybUZpZWxkPiwgbG9va3VwRGlzcGxheUZpZWxkOiBzdHJpbmcsIGNvbmNhdE90aGVyRmllbGRzOiBBcnJheTxGb3JtRmllbGQ+ID0gW10sIHBhcmFtczogYW55ID0gW10pIHtcblxuICAgICAgICB0aGlzLnNlYXJjaExvb2t1cEZpZWxkcyA9IHNlYXJjaExvb2t1cEZpZWxkcztcbiAgICAgICAgdGhpcy5lbmRwb2ludCA9IGVuZHBvaW50O1xuICAgICAgICB0aGlzLnBhcmFtZXRlcnMgPSBwYXJhbXM7XG4gICAgICAgIHRoaXMuY29uY2F0RmllbGRzID0gY29uY2F0RmllbGRzO1xuICAgICAgICB0aGlzLmNvbmNhdE90aGVyRmllbGRzID0gY29uY2F0T3RoZXJGaWVsZHM7XG4gICAgICAgIHRoaXMubG9va3VwRGlzcGxheUZpZWxkID0gbG9va3VwRGlzcGxheUZpZWxkO1xuICAgICAgICB0aGlzLnNlYXJjaEZpZWxkcyA9IHNlYXJjaEZpZWxkcztcblxuICAgICAgICB0aGlzLmdlbmVyYXRlTG9va3VwUGFyYW1ldGVycyhldmVudCk7XG4gICAgICAgIHRoaXMuY29uZmlnSHR0cFBhcmFtc1BhZ2luYXRpb24oJzEwJywgJzAnKTtcbiAgICAgICAgdGhpcy5jb25maWdIdHRwUGFyYW1zT3JkZXJCeShldmVudC5tdWx0aVNvcnRNZXRhKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF0YUxvb2t1cCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZ1bsOnw6NvIGNoYW1hZGEgbm8gY2hhbmdlIGRvIGZpbHRybyBkbyBsb29rdXAgKExvb2t1cCBhYmVydG8pLlxuICAgICAqIEBwYXJhbSBldmVudCB2YWxvciBhdHJpYnVpZG8gbm8gYXV0b2NvbXBsZXRlIGRvIGxvb2t1cCBmZWNoYWRvXG4gICAgICogQHBhcmFtIGVuZHBvaW50IGVuZHBvaW50IHF1ZSBzZXJhIGZlaXRvIGEgcmVxdWlzacOnw6NvLlxuICAgICAqIEBwYXJhbSBzZWFyY2hGaWVsZHMgYXJyYXkgY29tIG9zIGNhbXBvcyBkbyBmaWx0cm9cbiAgICAgKiBAcGFyYW0gY29uY2F0RmllbGRzIGFycmF5IGNvbSBvcyBmb3JtRmllbGRzIHF1ZSBzZXJhbSBjb25jYXRlbmFkb3NcbiAgICAgKiBAcGFyYW0gY29uY2F0T3RoZXJGaWVsZHMgY29udmVydGUgb3MgY2FtcG9zIGVudW1lcmHDp8OjbyBwYXJhIHNlcmVtIGNvbmNhdGVuYWRvcyBuYSBncmlkXG4gICAgICogQHBhcmFtIGxvb2t1cERpc3BsYXlGaWVsZCBjYW1wbyBxdWUgc2VyYSBhbHRlcmFkbyBjb20gb3MgZGFkb3MgY29uY2F0ZW5hZG9zIGluZm9ybWFkbyBhY2ltYVxuICAgICAqIEBwYXJhbSBwYXJhbXMgcGFyw6JtZXRyb3MgcGFyYSBzZXIgdXNhZG8gbm8gbG9va3VwXG4gICAgICovXG4gICAgc2VhcmNoUmVxdWVzdChldmVudDogYW55LCBlbmRwb2ludDogc3RyaW5nLCBzZWFyY2hGaWVsZHM6IEFycmF5PEZvcm1GaWVsZD4sXG4gICAgICAgICAgICAgICAgICBjb25jYXRGaWVsZHM6IEFycmF5PEZvcm1GaWVsZD4sIGxvb2t1cERpc3BsYXlGaWVsZDogc3RyaW5nLCBjb25jYXRPdGhlckZpZWxkczogQXJyYXk8Rm9ybUZpZWxkPiA9IFtdLCBwYXJhbXM6IGFueSA9IFtdKSB7XG5cbiAgICAgICAgdGhpcy5lbmRwb2ludCA9IGVuZHBvaW50O1xuICAgICAgICB0aGlzLnBhcmFtZXRlcnMgPSBwYXJhbXM7XG4gICAgICAgIHRoaXMuY29uY2F0RmllbGRzID0gY29uY2F0RmllbGRzO1xuICAgICAgICB0aGlzLmNvbmNhdE90aGVyRmllbGRzID0gY29uY2F0T3RoZXJGaWVsZHM7XG4gICAgICAgIHRoaXMubG9va3VwRGlzcGxheUZpZWxkID0gbG9va3VwRGlzcGxheUZpZWxkO1xuICAgICAgICB0aGlzLnNlYXJjaEZpZWxkcyA9IHNlYXJjaEZpZWxkcztcbiAgICAgICAgdGhpcy5nZW5lcmF0ZUdyaWRQYXJhbWV0ZXJzKGV2ZW50LmZpbHRlckRhdGEpO1xuICAgICAgICB0aGlzLmNvbmZpZ0h0dHBQYXJhbXNQYWdpbmF0aW9uKGV2ZW50LnJvd3MudG9TdHJpbmcoKSwgTWF0aC5mbG9vcihldmVudC5maXJzdCAvIGV2ZW50LnJvd3MpLnRvU3RyaW5nKCkpO1xuICAgICAgICB0aGlzLmNvbmZpZ0h0dHBQYXJhbXNPcmRlckJ5KGV2ZW50Lm11bHRpU29ydE1ldGEpO1xuICAgICAgICByZXR1cm4gdGhpcy5nZXREYXRhTG9va3VwKCk7XG4gICAgfVxuXG5cbiAgICAvKipcbiAgICAgKiBHRVRcbiAgICAgKiBAcGFyYW0gZW5kcG9pbnQgQnVzY2EgZSBmYXogbyB0cmF0YW1lbnRvIGRvcyBkYWRvcyBkbyBsb29rdXAuXG4gICAgICogQHBhcmFtIGh0dHBQYXJhbXMgSHR0cFBhcmFtc1xuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0RGF0YUxvb2t1cCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VXJsRGF0YUxvb2t1cCh0aGlzLmVuZHBvaW50LCB0aGlzLmh0dHBQYXJhbXMpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHBheWxvYWQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgY29udGVudHMgfSA9IHBheWxvYWQ7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jb25jYXRGaWVsZHMgJiYgdGhpcy5jb25jYXRGaWVsZHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnRzLm1hcCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnZlcnRHcmlkRmllbGRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZVt0aGlzLmxvb2t1cERpc3BsYXlGaWVsZF0gPSB0aGlzLmdlbmVyYXRlRGlzcGxheUZpZWxkVmFsdWUoeyAuLi52YWx1ZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHBheWxvYWQ7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIFBPU1RcbiAgICAgKiBAcGFyYW0gZW5kcG9pbnQgQnVzY2EgZSBmYXogbyB0cmF0YW1lbnRvIGRvcyBkYWRvcyBkbyBsb29rdXAuXG4gICAgICogQHBhcmFtIGh0dHBQYXJhbXMgSHR0cFBhcmFtc1xuICAgICAqL1xuICAgIHByaXZhdGUgcG9zdERhdGFMb29rdXAoZW5kcG9pbnQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucG9zdFVybERhdGFMb29rdXAoZW5kcG9pbnQsIHRoaXMuaHR0cFBvc3RQYXJhbXMpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHBheWxvYWQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgY29udGVudHMgfSA9IHBheWxvYWQ7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jb25jYXRGaWVsZHMgJiYgdGhpcy5jb25jYXRGaWVsZHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnRzLm1hcCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5jb25jYXRPdGhlckZpZWxkcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udmVydEdyaWRGaWVsZFZhbHVlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlW3RoaXMubG9va3VwRGlzcGxheUZpZWxkXSA9IHRoaXMuZ2VuZXJhdGVEaXNwbGF5RmllbGRWYWx1ZSh7IC4uLnZhbHVlIH0pO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gcGF5bG9hZDtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRlIG8gdmFsb3IgZG8gY2FtcG8gcGFyYSBhcHJlc2VudGHDp8OjbyBubyBsb29rdXAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29udGVudCBWYWxvciBkbyBjYW1wbyBwYXJhIGNvbnZlcnPDo28uXG4gICAgICogQHBhcmFtIGZpZWxkIEZvcm1GaWVsZCBkbyBjYW1wby5cbiAgICAgKi9cbiAgICBwcml2YXRlIGNvbnZlcnRMb29rdXBGaWVsZFZhbHVlKGNvbnRlbnQ6IGFueSwgZmllbGQ6IEZvcm1GaWVsZCk6IGFueSB7XG4gICAgICAgIGlmIChjb250ZW50KSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5EYXRlOlxuICAgICAgICAgICAgICAgICAgICBjb250ZW50ID0gbW9tZW50KGNvbnRlbnQpLmZvcm1hdCgnTCcpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5FbnVtOlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbnVtVmFsdWUgPSBmaWVsZC5vcHRpb25zLmZpbHRlcigoZW51bWVyYXRpb246IGFueSkgPT4gZW51bWVyYXRpb24udmFsdWUgPT09IGNvbnRlbnQpWzBdO1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50ID0gZW51bVZhbHVlID8gZW51bVZhbHVlLmxhYmVsIDogY29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29udGVudDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0ZSBvcyBkYWRvcyBwYXJhIHZpc3VhbGl6YcOnw6NvIG5hIGdyaWRcbiAgICAgKiBAcGFyYW0gY29udGVudFxuICAgICAqL1xuICAgIHByaXZhdGUgY29udmVydEdyaWRGaWVsZFZhbHVlKGNvbnRlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAoY29udGVudCkge1xuICAgICAgICAgICAgdGhpcy5jb25jYXRPdGhlckZpZWxkcy5mb3JFYWNoKChmaWVsZDogRm9ybUZpZWxkKSA9PiB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRmllbGRUeXBlLkVudW06XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbnVtVmFsdWUgPSBmaWVsZC5vcHRpb25zLmZpbHRlcigoZW51bWVyYXRpb246IGFueSkgPT4gZW51bWVyYXRpb24udmFsdWUgPT09IGNvbnRlbnRbZmllbGQubmFtZV0pWzBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudFtmaWVsZC5uYW1lXSA9IGVudW1WYWx1ZSA/IGVudW1WYWx1ZS5sYWJlbCA6IGNvbnRlbnRbZmllbGQubmFtZV07XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZheiBhIGNvbmNhdGVuYcOnw6NvIGRlIHZhbG9yZXMgZG8gcmVnaXN0cm8gcGFyYSBzZXIgYXByZXNlbnRhZG8gbm8gbG9va3VwIGFvIHNlbGVjaW9uYXIgbyBkYWRvLlxuICAgICAqIEBwYXJhbSBjb250ZW50VmFsdWUgVmFsb3IgZG8gcmVnaXN0cm8uXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZW5lcmF0ZURpc3BsYXlGaWVsZFZhbHVlKGNvbnRlbnRWYWx1ZTogYW55KTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGRpc3BsYXlGaWVsZCA9ICcnO1xuXG4gICAgICAgIHRoaXMuY29uY2F0RmllbGRzLmZvckVhY2goKGZpZWxkOiBGb3JtRmllbGQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkVmFsdWUgPSB0aGlzLmNvbnZlcnRMb29rdXBGaWVsZFZhbHVlKGNvbnRlbnRWYWx1ZVtmaWVsZC5uYW1lXSwgZmllbGQpO1xuICAgICAgICAgICAgaWYgKGZpZWxkVmFsdWUpIHtcbiAgICAgICAgICAgICAgICBpZiAoZGlzcGxheUZpZWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlGaWVsZCArPSBgIC0gJHtmaWVsZFZhbHVlfWA7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheUZpZWxkID0gZmllbGRWYWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZGlzcGxheUZpZWxkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdlcmEgb3MgcGFyYW1ldHJvcyBkZSBwZXNxdWlzYSB2aWEgbG9va3VwXG4gICAgICogQHBhcmFtIHZhbHVlXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZW5lcmF0ZUxvb2t1cFBhcmFtZXRlcnModmFsdWU/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgbGV0IGxvb2t1cFBhcmFtZXRlcnMgPSAnJztcbiAgICAgICAgdGhpcy5zZWFyY2hMb29rdXBGaWVsZHMuZm9yRWFjaCgobG9va3VwRmllbGQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VhcmNoRmllbGQgPSB0aGlzLnNlYXJjaEZpZWxkcy5maWx0ZXIoZmllbGQgPT4gbG9va3VwRmllbGQgPT09IGZpZWxkLm5hbWUpWzBdO1xuICAgICAgICAgICAgaWYgKGxvb2t1cFBhcmFtZXRlcnMpIHtcbiAgICAgICAgICAgICAgICBsb29rdXBQYXJhbWV0ZXJzICs9IGAgb3IgJHt0aGlzLmdldFBhcmFtZXRlckJ5VHlwZShzZWFyY2hGaWVsZC50eXBlLCBsb29rdXBGaWVsZCwgdmFsdWUpfWA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxvb2t1cFBhcmFtZXRlcnMgPSBgJHt0aGlzLmdldFBhcmFtZXRlckJ5VHlwZShzZWFyY2hGaWVsZC50eXBlLCBsb29rdXBGaWVsZCwgdmFsdWUpfWA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMucGFyYW1ldGVycy5mb3JFYWNoKChwYXJhbWV0ZXI6IEVudGl0eU9EYXRhUGFyYW1ldGVyKSA9PiB7XG4gICAgICAgICAgICBpZiAobG9va3VwUGFyYW1ldGVycykge1xuICAgICAgICAgICAgICAgIGxvb2t1cFBhcmFtZXRlcnMgKz0gYCBhbmQgJHtwYXJhbWV0ZXIudG9TdHJpbmcoKX1gO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsb29rdXBQYXJhbWV0ZXJzID0gYCR7cGFyYW1ldGVyLnRvU3RyaW5nKCl9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5odHRwUGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ2ZpbHRlcicsIGxvb2t1cFBhcmFtZXRlcnMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdlcmEgb3MgcGFyYW1ldHJvcyBkZSBwZXNxdWlzYSB2aWEgcGVzcXVpc2EgbmEgZ3JpZFxuICAgICAqIEBwYXJhbSBmaWx0ZXJEYXRhXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZW5lcmF0ZUdyaWRQYXJhbWV0ZXJzKGZpbHRlckRhdGE6IG9iamVjdCk6IHZvaWQge1xuICAgICAgICBsZXQgZ3JpZFBhcmFtZXRlcnMgPSAnJztcbiAgICAgICAgT2JqZWN0LmtleXMoZmlsdGVyRGF0YSkuZm9yRWFjaCgoYXR0cmlidXRlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGlmIChmaWx0ZXJEYXRhW2F0dHJpYnV0ZV0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWFyY2hGaWVsZCA9IHRoaXMuc2VhcmNoRmllbGRzLmZpbHRlcihmaWVsZCA9PiBhdHRyaWJ1dGUgPT09IGZpZWxkLm5hbWUpWzBdO1xuICAgICAgICAgICAgICAgIGlmIChncmlkUGFyYW1ldGVycykge1xuICAgICAgICAgICAgICAgICAgICBncmlkUGFyYW1ldGVycyArPSBgIGFuZCAke3RoaXMuZ2V0UGFyYW1ldGVyQnlUeXBlKHNlYXJjaEZpZWxkLnR5cGUsIGF0dHJpYnV0ZSwgZmlsdGVyRGF0YVthdHRyaWJ1dGVdKX1gO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWRQYXJhbWV0ZXJzICs9IHRoaXMuZ2V0UGFyYW1ldGVyQnlUeXBlKHNlYXJjaEZpZWxkLnR5cGUsIGF0dHJpYnV0ZSwgZmlsdGVyRGF0YVthdHRyaWJ1dGVdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMucGFyYW1ldGVycy5mb3JFYWNoKChwYXJhbWV0ZXI6IEVudGl0eU9EYXRhUGFyYW1ldGVyKSA9PiB7XG4gICAgICAgICAgICBpZiAoZ3JpZFBhcmFtZXRlcnMpIHtcbiAgICAgICAgICAgICAgICBncmlkUGFyYW1ldGVycyArPSBgIGFuZCAke3BhcmFtZXRlci50b1N0cmluZygpfWA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGdyaWRQYXJhbWV0ZXJzID0gYCR7cGFyYW1ldGVyLnRvU3RyaW5nKCl9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5odHRwUGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ2ZpbHRlcicsIGdyaWRQYXJhbWV0ZXJzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXJhIGEgc3RyaW5nIGRlIGNvbnN1bHRhIENSVUQgZGUgdW0gY2FtcG8uXG4gICAgICogQHBhcmFtIHR5cGUgVGlwbyBkbyBjYW1wby5cbiAgICAgKiBAcGFyYW0gYXR0cmlidXRlIE5vbWUgZG8gYXRyaWJ1dGUgZGEgZW50aWRhZGVcbiAgICAgKiBAcGFyYW0gdmFsdWUgVmFsb3IgZG8gY2FtcG9cbiAgICAgKi9cbiAgICBwcml2YXRlIGdldFBhcmFtZXRlckJ5VHlwZSh0eXBlOiBGaWVsZFR5cGUsIGF0dHJpYnV0ZTogc3RyaW5nLCB2YWx1ZTogYW55KTogc3RyaW5nIHtcbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5EYXRlOlxuICAgICAgICAgICAgICAgIHJldHVybiBgJHthdHRyaWJ1dGV9IGVxICcke21vbWVudCh2YWx1ZSkuZm9ybWF0KCdZWVlZLU1NLUREJyl9J2A7XG4gICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5FbnVtOlxuICAgICAgICAgICAgICAgIHJldHVybiBgJHthdHRyaWJ1dGV9IGVxICcke3ZhbHVlfSdgO1xuICAgICAgICAgICAgY2FzZSBGaWVsZFR5cGUuSW50ZWdlcjpcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7YXR0cmlidXRlfSBlcSAke3ZhbHVlfWA7XG4gICAgICAgICAgICBjYXNlIEZpZWxkVHlwZS5BdXRvY29tcGxldGU6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke2F0dHJpYnV0ZX0gZXEgJyR7dmFsdWUuaWR9J2A7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBgY29udGFpbmluZyhsb3dlcigke2F0dHJpYnV0ZX0pLCBsb3dlcignJHt2YWx1ZX0nKSlgO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc2l6ZSBhIHF1YW50aWRhZGUgZGUgcmVnaXN0cm9zIG5hIHDDoWdpbmEuXG4gICAgICogQHBhcmFtIG9mZnNldCBvIG7Dum1lcm8gZGEgcMOhZ2luYSBhIHNlciByZWN1cGVyYWRhLCBsZW1icmFuZG8gcXVlIGEgbnVtZXJhw6fDo28gZGUgcMOhZ2luYXMgY29tZcOnYSBlbSAwICh6ZXJvKS5cbiAgICAgKi9cbiAgICBwcml2YXRlIGNvbmZpZ0h0dHBQYXJhbXNQYWdpbmF0aW9uKHNpemU6IHN0cmluZywgb2Zmc2V0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5odHRwUGFyYW1zID0gdGhpcy5odHRwUGFyYW1zLnNldCgnc2l6ZScsIHNpemUpO1xuICAgICAgICB0aGlzLmh0dHBQYXJhbXMgPSB0aGlzLmh0dHBQYXJhbXMuc2V0KCdvZmZzZXQnLCBvZmZzZXQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdlcmEgbyBvcmRlcmJ5IGRvIEh0dHBQYXJhbXNcbiAgICAgKi9cbiAgICBwcml2YXRlIGNvbmZpZ0h0dHBQYXJhbXNPcmRlckJ5KG11bHRpU29ydE1ldGE6IHsgZmllbGQ6IHN0cmluZzsgb3JkZXI6IG51bWJlciB9W10pOiB2b2lkIHtcbiAgICAgICAgaWYgKG11bHRpU29ydE1ldGEgJiYgbXVsdGlTb3J0TWV0YS5sZW5ndGgpIHtcbiAgICAgICAgICAgIGxldCBvcmRlckJ5ID0gJyc7XG4gICAgICAgICAgICBtdWx0aVNvcnRNZXRhLm1hcCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKG9yZGVyQnkpIHtcbiAgICAgICAgICAgICAgICAgICAgb3JkZXJCeSArPSBgLCR7dmFsdWUuZmllbGR9KyR7dmFsdWUub3JkZXIgPT09IDEgPyAnYXNjJyA6ICdkZXNjJ31gO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG9yZGVyQnkgKz0gYCR7dmFsdWUuZmllbGR9KyR7dmFsdWUub3JkZXIgPT09IDEgPyAnYXNjJyA6ICdkZXNjJ31gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLmh0dHBQYXJhbXMgPSB0aGlzLmh0dHBQYXJhbXMuc2V0KCdvcmRlcmJ5Jywgb3JkZXJCeSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXQgaHR0cFBhcmFtcyh2YWx1ZTogSHR0cFBhcmFtcykge1xuICAgICAgICB0aGlzLl9odHRwUGFyYW1zID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGh0dHBQYXJhbXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwUGFyYW1zO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VXJsRGF0YUxvb2t1cChlbmRwb2ludDogc3RyaW5nLCBodHRwUGFyYW1zOiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgaWYgKGh0dHBQYXJhbXMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke2VuZHBvaW50fWAsIHsgcGFyYW1zOiBodHRwUGFyYW1zIH0pXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGV4Y2VwdGlvbjogYW55KTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChleGNlcHRpb24gJiYgZXhjZXB0aW9uLnN0YXR1cyA9PT0gNDAzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdoY20ucGF5cm9sbC5lcnJvcicpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtLnBheXJvbGwucGVybWlzc2lvbl9lcnJvcl9ub3RfYWxsb3dlZF9zZWFyY2hcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0aWNreTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhjZXB0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7ZW5kcG9pbnR9YClcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXhjZXB0aW9uOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbiAmJiBleGNlcHRpb24uc3RhdHVzID09PSA0MDMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VtbWFyeTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2hjbS5wYXlyb2xsLmVycm9yJyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY20ucGF5cm9sbC5wZXJtaXNzaW9uX2Vycm9yX25vdF9hbGxvd2VkX3NlYXJjaFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RpY2t5OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGNlcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHBvc3RVcmxEYXRhTG9va3VwKGVuZHBvaW50OiBzdHJpbmcsIGh0dHBQYXJhbXM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGlmIChodHRwUGFyYW1zKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7ZW5kcG9pbnR9YCwgeyAuLi5odHRwUGFyYW1zIH0pXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGV4Y2VwdGlvbjogYW55KTogYW55ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChleGNlcHRpb24uc3RhdHVzID09PSA0MDMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VtbWFyeTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2hjbS5wYXlyb2xsLmVycm9yJyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY20ucGF5cm9sbC5wZXJtaXNzaW9uX2Vycm9yX25vdF9hbGxvd2VkXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGlja3k6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4Y2VwdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHtlbmRwb2ludH1gLCB7fSlcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXhjZXB0aW9uOiBhbnkpOiBhbnkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbi5zdGF0dXMgPT09IDQwMylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnaGNtLnBheXJvbGwuZXJyb3InKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbS5wYXlyb2xsLnBlcm1pc3Npb25fZXJyb3Jfbm90X2FsbG93ZWRcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0aWNreTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhjZXB0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|