@senior-agronegocio/angular-components 0.0.49
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/agro-angular-components.module.d.ts +9 -0
- package/bundles/senior-agronegocio-angular-components.umd.js +5855 -0
- package/bundles/senior-agronegocio-angular-components.umd.js.map +1 -0
- package/bundles/senior-agronegocio-angular-components.umd.min.js +17 -0
- package/bundles/senior-agronegocio-angular-components.umd.min.js.map +1 -0
- package/common/agro-array-utils.class.d.ts +35 -0
- package/common/agro-cookie-utils.class.d.ts +8 -0
- package/common/agro-date-utils.class.d.ts +88 -0
- package/common/agro-name-utils.class.d.ts +22 -0
- package/common/agro-number-utils.class.d.ts +71 -0
- package/common/agro-object-utils.class.d.ts +161 -0
- package/common/agro-platform-utils.class.d.ts +38 -0
- package/common/agro-regex.constant.d.ts +142 -0
- package/common/agro-string-utils.class.d.ts +194 -0
- package/common/colors.class.d.ts +76 -0
- package/common/index.d.ts +10 -0
- package/components/event-control-board/common/control-status.d.ts +5 -0
- package/components/event-control-board/common/documentsToIssue.d.ts +4 -0
- package/components/event-control-board/common/event-control-constants.d.ts +15 -0
- package/components/event-control-board/common/event-operation.d.ts +11 -0
- package/components/event-control-board/common/event-origin.d.ts +7 -0
- package/components/event-control-board/common/event-status.d.ts +7 -0
- package/components/event-control-board/common/invoice-status.d.ts +12 -0
- package/components/event-control-board/common/invoice-type.d.ts +5 -0
- package/components/event-control-board/common/lookup-error-message.constants.d.ts +3 -0
- package/components/event-control-board/common/operation.d.ts +5 -0
- package/components/event-control-board/common/operationType.d.ts +5 -0
- package/components/event-control-board/common/status-entity.d.ts +4 -0
- package/components/event-control-board/common/ticket-status.d.ts +7 -0
- package/components/event-control-board/event-control-board.component.d.ts +97 -0
- package/components/event-control-board/event-control-board.module.d.ts +2 -0
- package/components/event-control-board/index.d.ts +20 -0
- package/components/event-control-board/service/e001pes/e001pes-dto.d.ts +12 -0
- package/components/event-control-board/service/e001pes/e001pes.d.ts +15 -0
- package/components/event-control-board/service/e001pes/e001pes.module.d.ts +2 -0
- package/components/event-control-board/service/e001pes/e001pes.service.d.ts +13 -0
- package/components/event-control-board/service/e001tns/e001tns-dto.d.ts +14 -0
- package/components/event-control-board/service/e001tns/e001tns.d.ts +19 -0
- package/components/event-control-board/service/e001tns/e001tns.module.d.ts +2 -0
- package/components/event-control-board/service/e001tns/e001tns.service.d.ts +11 -0
- package/components/event-control-board/service/e012fam/e012fam-dto.d.ts +11 -0
- package/components/event-control-board/service/e012fam/e012fam.d.ts +14 -0
- package/components/event-control-board/service/e012fam/e012fam.service.d.ts +11 -0
- package/components/event-control-board/service/e070emp/e070emp-dto.d.ts +10 -0
- package/components/event-control-board/service/e070emp/e070emp.d.ts +13 -0
- package/components/event-control-board/service/e070emp/e070emp.module.d.ts +2 -0
- package/components/event-control-board/service/e070emp/e070emp.service.d.ts +12 -0
- package/components/event-control-board/service/e070fil/e070fil-dto.d.ts +14 -0
- package/components/event-control-board/service/e070fil/e070fil.d.ts +17 -0
- package/components/event-control-board/service/e070fil/e070fil.module.d.ts +2 -0
- package/components/event-control-board/service/e070fil/e070fil.service.d.ts +12 -0
- package/components/event-control-board/service/e075der/e075der-dto.d.ts +15 -0
- package/components/event-control-board/service/e075der/e075der.d.ts +18 -0
- package/components/event-control-board/service/e075der/e075der.module.d.ts +2 -0
- package/components/event-control-board/service/e075der/e075der.service.d.ts +12 -0
- package/components/event-control-board/service/e113saf/e113saf-dto.d.ts +11 -0
- package/components/event-control-board/service/e113saf/e113saf.d.ts +14 -0
- package/components/event-control-board/service/e205dep/deposit-dto.d.ts +11 -0
- package/components/event-control-board/service/e205dep/e205dep-dto.d.ts +15 -0
- package/components/event-control-board/service/e205dep/e205dep.d.ts +16 -0
- package/components/event-control-board/service/e205dep/e205dep.service.d.ts +12 -0
- package/components/event-control-board/service/entity-service.d.ts +72 -0
- package/components/event-control-board/service/event-control/event-control-dto.d.ts +12 -0
- package/components/event-control-board/service/event-control/event-control.d.ts +18 -0
- package/components/event-control-board/service/event-control/event-control.module.d.ts +2 -0
- package/components/event-control-board/service/event-control/event-control.service.d.ts +11 -0
- package/components/event-control-board/service/event-control-board.service.d.ts +11 -0
- package/components/event-control-board/service/event-control-item/event-control-item-dto.d.ts +17 -0
- package/components/event-control-board/service/event-control-item/event-control-item.d.ts +23 -0
- package/components/event-control-board/service/event-control-item/event-control-item.module.d.ts +2 -0
- package/components/event-control-board/service/event-control-item/event-control-item.service.d.ts +15 -0
- package/components/event-control-board/service/external-invoice/external-invoice-dto.d.ts +13 -0
- package/components/event-control-board/service/external-invoice/external-invoice.d.ts +13 -0
- package/components/event-control-board/service/external-invoice/external-invoice.module.d.ts +2 -0
- package/components/event-control-board/service/external-invoice/external-invoice.service.d.ts +11 -0
- package/components/event-control-board/service/invoice/invoice-dto.d.ts +15 -0
- package/components/event-control-board/service/invoice/invoice.d.ts +21 -0
- package/components/event-control-board/service/invoice/invoice.module.d.ts +2 -0
- package/components/event-control-board/service/invoice/invoice.service.d.ts +11 -0
- package/components/event-control-board/service/origination/operationType.d.ts +5 -0
- package/components/event-control-board/service/origination/origination-dto.d.ts +50 -0
- package/components/event-control-board/service/origination/origination.d.ts +51 -0
- package/components/event-control-board/service/origination/origination.module.d.ts +2 -0
- package/components/event-control-board/service/origination/origination.service.d.ts +11 -0
- package/components/event-control-board/service/paginator-storage.service.d.ts +8 -0
- package/components/event-control-board/service/producer-invoice/producer-invoice-dto.d.ts +26 -0
- package/components/event-control-board/service/producer-invoice/producer-invoice.d.ts +27 -0
- package/components/event-control-board/service/producer-invoice/producer-invoice.module.d.ts +2 -0
- package/components/event-control-board/service/producer-invoice/producer-invoice.service.d.ts +11 -0
- package/components/event-control-board/service/rural-estate/rural-estate-dto.d.ts +28 -0
- package/components/event-control-board/service/rural-estate/rural-estate.d.ts +34 -0
- package/components/event-control-board/service/rural-estate/rural-estate.module.d.ts +2 -0
- package/components/event-control-board/service/rural-estate/rural-estate.service.d.ts +11 -0
- package/components/event-control-board/service/ticket/ticket-dto.d.ts +17 -0
- package/components/event-control-board/service/ticket/ticket.d.ts +18 -0
- package/components/event-control-board/service/ticket/ticket.module.d.ts +2 -0
- package/components/event-control-board/service/ticket/ticket.service.d.ts +45 -0
- package/components/event-control-board/shared.module.d.ts +2 -0
- package/components/event-steps/event-steps.component.d.ts +35 -0
- package/components/event-steps/event-steps.module.d.ts +2 -0
- package/components/event-steps/index.d.ts +2 -0
- package/components/index.d.ts +2 -0
- package/enums/agro-entity-status.enum.d.ts +4 -0
- package/enums/agro-numbers.enum.d.ts +1006 -0
- package/enums/agro-string-masks.enum.d.ts +10 -0
- package/enums/date-comparison-type.enum.d.ts +4 -0
- package/enums/http-codes.enum.d.ts +64 -0
- package/enums/index.d.ts +6 -0
- package/enums/number-comparison-type.enum.d.ts +8 -0
- package/esm2015/agro-angular-components.module.js +22 -0
- package/esm2015/common/agro-array-utils.class.js +56 -0
- package/esm2015/common/agro-cookie-utils.class.js +31 -0
- package/esm2015/common/agro-date-utils.class.js +117 -0
- package/esm2015/common/agro-name-utils.class.js +59 -0
- package/esm2015/common/agro-number-utils.class.js +102 -0
- package/esm2015/common/agro-object-utils.class.js +245 -0
- package/esm2015/common/agro-platform-utils.class.js +97 -0
- package/esm2015/common/agro-regex.constant.js +143 -0
- package/esm2015/common/agro-string-utils.class.js +367 -0
- package/esm2015/common/colors.class.js +77 -0
- package/esm2015/common/index.js +11 -0
- package/esm2015/components/event-control-board/common/control-status.js +7 -0
- package/esm2015/components/event-control-board/common/documentsToIssue.js +6 -0
- package/esm2015/components/event-control-board/common/event-control-constants.js +28 -0
- package/esm2015/components/event-control-board/common/event-operation.js +13 -0
- package/esm2015/components/event-control-board/common/event-origin.js +9 -0
- package/esm2015/components/event-control-board/common/event-status.js +9 -0
- package/esm2015/components/event-control-board/common/invoice-status.js +14 -0
- package/esm2015/components/event-control-board/common/invoice-type.js +7 -0
- package/esm2015/components/event-control-board/common/lookup-error-message.constants.js +11 -0
- package/esm2015/components/event-control-board/common/operation.js +7 -0
- package/esm2015/components/event-control-board/common/operationType.js +7 -0
- package/esm2015/components/event-control-board/common/status-entity.js +6 -0
- package/esm2015/components/event-control-board/common/ticket-status.js +9 -0
- package/esm2015/components/event-control-board/event-control-board.component.js +503 -0
- package/esm2015/components/event-control-board/event-control-board.module.js +62 -0
- package/esm2015/components/event-control-board/index.js +21 -0
- package/esm2015/components/event-control-board/service/e001pes/e001pes-dto.js +1 -0
- package/esm2015/components/event-control-board/service/e001pes/e001pes.js +20 -0
- package/esm2015/components/event-control-board/service/e001pes/e001pes.module.js +24 -0
- package/esm2015/components/event-control-board/service/e001pes/e001pes.service.js +34 -0
- package/esm2015/components/event-control-board/service/e001tns/e001tns-dto.js +1 -0
- package/esm2015/components/event-control-board/service/e001tns/e001tns.js +42 -0
- package/esm2015/components/event-control-board/service/e001tns/e001tns.module.js +26 -0
- package/esm2015/components/event-control-board/service/e001tns/e001tns.service.js +24 -0
- package/esm2015/components/event-control-board/service/e012fam/e012fam-dto.js +1 -0
- package/esm2015/components/event-control-board/service/e012fam/e012fam.js +20 -0
- package/esm2015/components/event-control-board/service/e012fam/e012fam.service.js +24 -0
- package/esm2015/components/event-control-board/service/e070emp/e070emp-dto.js +1 -0
- package/esm2015/components/event-control-board/service/e070emp/e070emp.js +29 -0
- package/esm2015/components/event-control-board/service/e070emp/e070emp.module.js +24 -0
- package/esm2015/components/event-control-board/service/e070emp/e070emp.service.js +31 -0
- package/esm2015/components/event-control-board/service/e070fil/e070fil-dto.js +1 -0
- package/esm2015/components/event-control-board/service/e070fil/e070fil.js +41 -0
- package/esm2015/components/event-control-board/service/e070fil/e070fil.module.js +24 -0
- package/esm2015/components/event-control-board/service/e070fil/e070fil.service.js +31 -0
- package/esm2015/components/event-control-board/service/e075der/e075der-dto.js +1 -0
- package/esm2015/components/event-control-board/service/e075der/e075der.js +31 -0
- package/esm2015/components/event-control-board/service/e075der/e075der.module.js +24 -0
- package/esm2015/components/event-control-board/service/e075der/e075der.service.js +29 -0
- package/esm2015/components/event-control-board/service/e113saf/e113saf-dto.js +1 -0
- package/esm2015/components/event-control-board/service/e113saf/e113saf.js +20 -0
- package/esm2015/components/event-control-board/service/e205dep/deposit-dto.js +1 -0
- package/esm2015/components/event-control-board/service/e205dep/e205dep-dto.js +1 -0
- package/esm2015/components/event-control-board/service/e205dep/e205dep.js +20 -0
- package/esm2015/components/event-control-board/service/e205dep/e205dep.service.js +29 -0
- package/esm2015/components/event-control-board/service/entity-service.js +129 -0
- package/esm2015/components/event-control-board/service/event-control/event-control-dto.js +1 -0
- package/esm2015/components/event-control-board/service/event-control/event-control.js +20 -0
- package/esm2015/components/event-control-board/service/event-control/event-control.module.js +26 -0
- package/esm2015/components/event-control-board/service/event-control/event-control.service.js +24 -0
- package/esm2015/components/event-control-board/service/event-control-board.service.js +33 -0
- package/esm2015/components/event-control-board/service/event-control-item/event-control-item-dto.js +1 -0
- package/esm2015/components/event-control-board/service/event-control-item/event-control-item.js +34 -0
- package/esm2015/components/event-control-board/service/event-control-item/event-control-item.module.js +26 -0
- package/esm2015/components/event-control-board/service/event-control-item/event-control-item.service.js +29 -0
- package/esm2015/components/event-control-board/service/external-invoice/external-invoice-dto.js +1 -0
- package/esm2015/components/event-control-board/service/external-invoice/external-invoice.js +20 -0
- package/esm2015/components/event-control-board/service/external-invoice/external-invoice.module.js +26 -0
- package/esm2015/components/event-control-board/service/external-invoice/external-invoice.service.js +24 -0
- package/esm2015/components/event-control-board/service/invoice/invoice-dto.js +1 -0
- package/esm2015/components/event-control-board/service/invoice/invoice.js +43 -0
- package/esm2015/components/event-control-board/service/invoice/invoice.module.js +26 -0
- package/esm2015/components/event-control-board/service/invoice/invoice.service.js +24 -0
- package/esm2015/components/event-control-board/service/origination/operationType.js +7 -0
- package/esm2015/components/event-control-board/service/origination/origination-dto.js +1 -0
- package/esm2015/components/event-control-board/service/origination/origination.js +59 -0
- package/esm2015/components/event-control-board/service/origination/origination.module.js +24 -0
- package/esm2015/components/event-control-board/service/origination/origination.service.js +24 -0
- package/esm2015/components/event-control-board/service/paginator-storage.service.js +32 -0
- package/esm2015/components/event-control-board/service/producer-invoice/producer-invoice-dto.js +1 -0
- package/esm2015/components/event-control-board/service/producer-invoice/producer-invoice.js +32 -0
- package/esm2015/components/event-control-board/service/producer-invoice/producer-invoice.module.js +26 -0
- package/esm2015/components/event-control-board/service/producer-invoice/producer-invoice.service.js +24 -0
- package/esm2015/components/event-control-board/service/rural-estate/rural-estate-dto.js +1 -0
- package/esm2015/components/event-control-board/service/rural-estate/rural-estate.js +78 -0
- package/esm2015/components/event-control-board/service/rural-estate/rural-estate.module.js +26 -0
- package/esm2015/components/event-control-board/service/rural-estate/rural-estate.service.js +24 -0
- package/esm2015/components/event-control-board/service/ticket/ticket-dto.js +1 -0
- package/esm2015/components/event-control-board/service/ticket/ticket.js +39 -0
- package/esm2015/components/event-control-board/service/ticket/ticket.module.js +26 -0
- package/esm2015/components/event-control-board/service/ticket/ticket.service.js +59 -0
- package/esm2015/components/event-control-board/shared.module.js +60 -0
- package/esm2015/components/event-steps/event-steps.component.js +103 -0
- package/esm2015/components/event-steps/event-steps.module.js +16 -0
- package/esm2015/components/event-steps/index.js +3 -0
- package/esm2015/components/index.js +3 -0
- package/esm2015/enums/agro-entity-status.enum.js +6 -0
- package/esm2015/enums/agro-numbers.enum.js +1007 -0
- package/esm2015/enums/agro-string-masks.enum.js +12 -0
- package/esm2015/enums/date-comparison-type.enum.js +6 -0
- package/esm2015/enums/http-codes.enum.js +66 -0
- package/esm2015/enums/index.js +7 -0
- package/esm2015/enums/number-comparison-type.enum.js +10 -0
- package/esm2015/form-validator/agro-form-validator.js +229 -0
- package/esm2015/form-validator/index.js +2 -0
- package/esm2015/lib-translation.module.js +21 -0
- package/esm2015/pipe/index.js +2 -0
- package/esm2015/pipe/lib-translate.pipe.js +24 -0
- package/esm2015/public-api.js +9 -0
- package/esm2015/senior-agronegocio-angular-components.js +6 -0
- package/esm2015/services/i18n/en-US.js +195 -0
- package/esm2015/services/i18n/es-CO.js +195 -0
- package/esm2015/services/i18n/pt-BR.js +195 -0
- package/esm2015/services/index.js +3 -0
- package/esm2015/services/lib-translation.service.js +54 -0
- package/esm2015/services/websocket/async-lock.js +34 -0
- package/esm2015/services/websocket/index.js +6 -0
- package/esm2015/services/websocket/models/index.js +2 -0
- package/esm2015/services/websocket/models/primitive-manager.js +39 -0
- package/esm2015/services/websocket/protocols/index.js +1 -0
- package/esm2015/services/websocket/protocols/on-event-options.js +1 -0
- package/esm2015/services/websocket/protocols/primitive-event.js +1 -0
- package/esm2015/services/websocket/user-information.service.js +34 -0
- package/esm2015/services/websocket/websocket.module.js +21 -0
- package/esm2015/services/websocket/websocket.service.js +339 -0
- package/esm5/agro-angular-components.module.js +26 -0
- package/esm5/common/agro-array-utils.class.js +72 -0
- package/esm5/common/agro-cookie-utils.class.js +38 -0
- package/esm5/common/agro-date-utils.class.js +122 -0
- package/esm5/common/agro-name-utils.class.js +63 -0
- package/esm5/common/agro-number-utils.class.js +109 -0
- package/esm5/common/agro-object-utils.class.js +250 -0
- package/esm5/common/agro-platform-utils.class.js +101 -0
- package/esm5/common/agro-regex.constant.js +143 -0
- package/esm5/common/agro-string-utils.class.js +383 -0
- package/esm5/common/colors.class.js +81 -0
- package/esm5/common/index.js +11 -0
- package/esm5/components/event-control-board/common/control-status.js +7 -0
- package/esm5/components/event-control-board/common/documentsToIssue.js +6 -0
- package/esm5/components/event-control-board/common/event-control-constants.js +28 -0
- package/esm5/components/event-control-board/common/event-operation.js +13 -0
- package/esm5/components/event-control-board/common/event-origin.js +9 -0
- package/esm5/components/event-control-board/common/event-status.js +9 -0
- package/esm5/components/event-control-board/common/invoice-status.js +14 -0
- package/esm5/components/event-control-board/common/invoice-type.js +7 -0
- package/esm5/components/event-control-board/common/lookup-error-message.constants.js +11 -0
- package/esm5/components/event-control-board/common/operation.js +7 -0
- package/esm5/components/event-control-board/common/operationType.js +7 -0
- package/esm5/components/event-control-board/common/status-entity.js +6 -0
- package/esm5/components/event-control-board/common/ticket-status.js +9 -0
- package/esm5/components/event-control-board/event-control-board.component.js +528 -0
- package/esm5/components/event-control-board/event-control-board.module.js +65 -0
- package/esm5/components/event-control-board/index.js +21 -0
- package/esm5/components/event-control-board/service/e001pes/e001pes-dto.js +1 -0
- package/esm5/components/event-control-board/service/e001pes/e001pes.js +25 -0
- package/esm5/components/event-control-board/service/e001pes/e001pes.module.js +27 -0
- package/esm5/components/event-control-board/service/e001pes/e001pes.service.js +37 -0
- package/esm5/components/event-control-board/service/e001tns/e001tns-dto.js +1 -0
- package/esm5/components/event-control-board/service/e001tns/e001tns.js +45 -0
- package/esm5/components/event-control-board/service/e001tns/e001tns.module.js +29 -0
- package/esm5/components/event-control-board/service/e001tns/e001tns.service.js +27 -0
- package/esm5/components/event-control-board/service/e012fam/e012fam-dto.js +1 -0
- package/esm5/components/event-control-board/service/e012fam/e012fam.js +25 -0
- package/esm5/components/event-control-board/service/e012fam/e012fam.service.js +27 -0
- package/esm5/components/event-control-board/service/e070emp/e070emp-dto.js +1 -0
- package/esm5/components/event-control-board/service/e070emp/e070emp.js +34 -0
- package/esm5/components/event-control-board/service/e070emp/e070emp.module.js +27 -0
- package/esm5/components/event-control-board/service/e070emp/e070emp.service.js +34 -0
- package/esm5/components/event-control-board/service/e070fil/e070fil-dto.js +1 -0
- package/esm5/components/event-control-board/service/e070fil/e070fil.js +48 -0
- package/esm5/components/event-control-board/service/e070fil/e070fil.module.js +27 -0
- package/esm5/components/event-control-board/service/e070fil/e070fil.service.js +34 -0
- package/esm5/components/event-control-board/service/e075der/e075der-dto.js +1 -0
- package/esm5/components/event-control-board/service/e075der/e075der.js +36 -0
- package/esm5/components/event-control-board/service/e075der/e075der.module.js +27 -0
- package/esm5/components/event-control-board/service/e075der/e075der.service.js +32 -0
- package/esm5/components/event-control-board/service/e113saf/e113saf-dto.js +1 -0
- package/esm5/components/event-control-board/service/e113saf/e113saf.js +25 -0
- package/esm5/components/event-control-board/service/e205dep/deposit-dto.js +1 -0
- package/esm5/components/event-control-board/service/e205dep/e205dep-dto.js +1 -0
- package/esm5/components/event-control-board/service/e205dep/e205dep.js +25 -0
- package/esm5/components/event-control-board/service/e205dep/e205dep.service.js +32 -0
- package/esm5/components/event-control-board/service/entity-service.js +140 -0
- package/esm5/components/event-control-board/service/event-control/event-control-dto.js +1 -0
- package/esm5/components/event-control-board/service/event-control/event-control.js +25 -0
- package/esm5/components/event-control-board/service/event-control/event-control.module.js +29 -0
- package/esm5/components/event-control-board/service/event-control/event-control.service.js +27 -0
- package/esm5/components/event-control-board/service/event-control-board.service.js +34 -0
- package/esm5/components/event-control-board/service/event-control-item/event-control-item-dto.js +1 -0
- package/esm5/components/event-control-board/service/event-control-item/event-control-item.js +39 -0
- package/esm5/components/event-control-board/service/event-control-item/event-control-item.module.js +29 -0
- package/esm5/components/event-control-board/service/event-control-item/event-control-item.service.js +32 -0
- package/esm5/components/event-control-board/service/external-invoice/external-invoice-dto.js +1 -0
- package/esm5/components/event-control-board/service/external-invoice/external-invoice.js +25 -0
- package/esm5/components/event-control-board/service/external-invoice/external-invoice.module.js +29 -0
- package/esm5/components/event-control-board/service/external-invoice/external-invoice.service.js +27 -0
- package/esm5/components/event-control-board/service/invoice/invoice-dto.js +1 -0
- package/esm5/components/event-control-board/service/invoice/invoice.js +48 -0
- package/esm5/components/event-control-board/service/invoice/invoice.module.js +29 -0
- package/esm5/components/event-control-board/service/invoice/invoice.service.js +27 -0
- package/esm5/components/event-control-board/service/origination/operationType.js +7 -0
- package/esm5/components/event-control-board/service/origination/origination-dto.js +1 -0
- package/esm5/components/event-control-board/service/origination/origination.js +62 -0
- package/esm5/components/event-control-board/service/origination/origination.module.js +27 -0
- package/esm5/components/event-control-board/service/origination/origination.service.js +27 -0
- package/esm5/components/event-control-board/service/paginator-storage.service.js +71 -0
- package/esm5/components/event-control-board/service/producer-invoice/producer-invoice-dto.js +1 -0
- package/esm5/components/event-control-board/service/producer-invoice/producer-invoice.js +37 -0
- package/esm5/components/event-control-board/service/producer-invoice/producer-invoice.module.js +29 -0
- package/esm5/components/event-control-board/service/producer-invoice/producer-invoice.service.js +27 -0
- package/esm5/components/event-control-board/service/rural-estate/rural-estate-dto.js +1 -0
- package/esm5/components/event-control-board/service/rural-estate/rural-estate.js +83 -0
- package/esm5/components/event-control-board/service/rural-estate/rural-estate.module.js +29 -0
- package/esm5/components/event-control-board/service/rural-estate/rural-estate.service.js +27 -0
- package/esm5/components/event-control-board/service/ticket/ticket-dto.js +1 -0
- package/esm5/components/event-control-board/service/ticket/ticket.js +44 -0
- package/esm5/components/event-control-board/service/ticket/ticket.module.js +29 -0
- package/esm5/components/event-control-board/service/ticket/ticket.service.js +62 -0
- package/esm5/components/event-control-board/shared.module.js +63 -0
- package/esm5/components/event-steps/event-steps.component.js +113 -0
- package/esm5/components/event-steps/event-steps.module.js +19 -0
- package/esm5/components/event-steps/index.js +3 -0
- package/esm5/components/index.js +3 -0
- package/esm5/enums/agro-entity-status.enum.js +6 -0
- package/esm5/enums/agro-numbers.enum.js +1007 -0
- package/esm5/enums/agro-string-masks.enum.js +12 -0
- package/esm5/enums/date-comparison-type.enum.js +6 -0
- package/esm5/enums/http-codes.enum.js +66 -0
- package/esm5/enums/index.js +7 -0
- package/esm5/enums/number-comparison-type.enum.js +10 -0
- package/esm5/form-validator/agro-form-validator.js +239 -0
- package/esm5/form-validator/index.js +2 -0
- package/esm5/lib-translation.module.js +24 -0
- package/esm5/pipe/index.js +2 -0
- package/esm5/pipe/lib-translate.pipe.js +29 -0
- package/esm5/public-api.js +9 -0
- package/esm5/senior-agronegocio-angular-components.js +6 -0
- package/esm5/services/i18n/en-US.js +195 -0
- package/esm5/services/i18n/es-CO.js +195 -0
- package/esm5/services/i18n/pt-BR.js +195 -0
- package/esm5/services/index.js +3 -0
- package/esm5/services/lib-translation.service.js +56 -0
- package/esm5/services/websocket/async-lock.js +43 -0
- package/esm5/services/websocket/index.js +6 -0
- package/esm5/services/websocket/models/index.js +2 -0
- package/esm5/services/websocket/models/primitive-manager.js +58 -0
- package/esm5/services/websocket/protocols/index.js +1 -0
- package/esm5/services/websocket/protocols/on-event-options.js +1 -0
- package/esm5/services/websocket/protocols/primitive-event.js +1 -0
- package/esm5/services/websocket/user-information.service.js +38 -0
- package/esm5/services/websocket/websocket.module.js +24 -0
- package/esm5/services/websocket/websocket.service.js +411 -0
- package/fesm2015/senior-agronegocio-angular-components.js +5279 -0
- package/fesm2015/senior-agronegocio-angular-components.js.map +1 -0
- package/fesm5/senior-agronegocio-angular-components.js +5638 -0
- package/fesm5/senior-agronegocio-angular-components.js.map +1 -0
- package/form-validator/agro-form-validator.d.ts +103 -0
- package/form-validator/index.d.ts +1 -0
- package/lib-translation.module.d.ts +2 -0
- package/package.json +82 -0
- package/pipe/index.d.ts +1 -0
- package/pipe/lib-translate.pipe.d.ts +7 -0
- package/public-api.d.ts +8 -0
- package/senior-agronegocio-angular-components.d.ts +5 -0
- package/senior-agronegocio-angular-components.metadata.json +1 -0
- package/services/i18n/en-US.d.ts +194 -0
- package/services/i18n/es-CO.d.ts +194 -0
- package/services/i18n/pt-BR.d.ts +194 -0
- package/services/index.d.ts +2 -0
- package/services/lib-translation.service.d.ts +15 -0
- package/services/websocket/async-lock.d.ts +6 -0
- package/services/websocket/index.d.ts +6 -0
- package/services/websocket/models/index.d.ts +1 -0
- package/services/websocket/models/primitive-manager.d.ts +19 -0
- package/services/websocket/protocols/index.d.ts +2 -0
- package/services/websocket/protocols/on-event-options.d.ts +8 -0
- package/services/websocket/protocols/primitive-event.d.ts +10 -0
- package/services/websocket/user-information.service.d.ts +7 -0
- package/services/websocket/websocket.module.d.ts +2 -0
- package/services/websocket/websocket.service.d.ts +100 -0
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { AGRO_NUMBERS } from '../enums';
|
|
2
|
+
var AgroDateUtils = /** @class */ (function () {
|
|
3
|
+
function AgroDateUtils() {
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Verifica se uma data é nula ou indefinida.
|
|
7
|
+
* @param date - A data a ser verificada.
|
|
8
|
+
* @returns True se a data for nula ou indefinida, false caso contrário.
|
|
9
|
+
*/
|
|
10
|
+
AgroDateUtils.isNullOrUndefined = function (date) {
|
|
11
|
+
return date === null || date === undefined;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Verifica se uma data não é nula e não é indefinida.
|
|
15
|
+
* @param date - A data a ser verificada.
|
|
16
|
+
* @returns True se a data não for nula e não for indefinida, false caso contrário.
|
|
17
|
+
*/
|
|
18
|
+
AgroDateUtils.isNotNullOrUndefined = function (date) {
|
|
19
|
+
return !AgroDateUtils.isNullOrUndefined(date);
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Verifica se uma data é válida.
|
|
23
|
+
* @param date - A data a ser verificada.
|
|
24
|
+
* @returns True se a data for válida, false caso contrário.
|
|
25
|
+
*/
|
|
26
|
+
AgroDateUtils.isValid = function (date) {
|
|
27
|
+
return !isNaN(Date.parse(date));
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Verifica se uma data é inválida.
|
|
31
|
+
* @param date - A data a ser verificada.
|
|
32
|
+
* @returns True se a data for inválida, false caso contrário.
|
|
33
|
+
*/
|
|
34
|
+
AgroDateUtils.isInvalid = function (date) {
|
|
35
|
+
return !AgroDateUtils.isValid(date);
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Verifica se uma data é antes de outra data.
|
|
39
|
+
* @param date - A data a ser verificada.
|
|
40
|
+
* @param otherDate - A outra data a ser comparada.
|
|
41
|
+
* @returns True se a data for antes da outra data, false caso contrário.
|
|
42
|
+
*/
|
|
43
|
+
AgroDateUtils.isBefore = function (date, otherDate) {
|
|
44
|
+
return date < otherDate;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Verifica se uma data é depois de outra data.
|
|
48
|
+
* @param date - A data a ser verificada.
|
|
49
|
+
* @param otherDate - A outra data a ser comparada.
|
|
50
|
+
* @returns True se a data for depois da outra data, false caso contrário.
|
|
51
|
+
*/
|
|
52
|
+
AgroDateUtils.isAfter = function (date, otherDate) {
|
|
53
|
+
return date > otherDate;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Verifica se uma data é igual a outra data.
|
|
57
|
+
* @param date - A data a ser verificada.
|
|
58
|
+
* @param otherDate - A outra data a ser comparada.
|
|
59
|
+
* @returns True se a data for igual a outra data, false caso contrário.
|
|
60
|
+
*/
|
|
61
|
+
AgroDateUtils.isEqual = function (date, otherDate) {
|
|
62
|
+
return date.getTime() === otherDate.getTime();
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Verifica se uma data é menor ou igual a outra data.
|
|
66
|
+
* @param date - A data a ser verificada.
|
|
67
|
+
* @param otherDate - A outra data a ser comparada.
|
|
68
|
+
* @returns True se a data for menor ou igual a outra data, false caso contrário.
|
|
69
|
+
*/
|
|
70
|
+
AgroDateUtils.isLessOrEqual = function (date, otherDate) {
|
|
71
|
+
return date <= otherDate;
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* Verifica se uma data é maior ou igual a outra data.
|
|
75
|
+
* @param date - A data a ser verificada.
|
|
76
|
+
* @param otherDate - A outra data a ser comparada.
|
|
77
|
+
* @returns True se a data for maior ou igual a outra data, false caso contrário.
|
|
78
|
+
*/
|
|
79
|
+
AgroDateUtils.isGreaterOrEqual = function (date, otherDate) {
|
|
80
|
+
return date >= otherDate;
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* Verifica se uma data é menor que outra data.
|
|
84
|
+
* @param date - A data a ser verificada.
|
|
85
|
+
* @param otherDate - A outra data a ser comparada.
|
|
86
|
+
* @returns True se a data for menor que outra data, false caso contrário.
|
|
87
|
+
*/
|
|
88
|
+
AgroDateUtils.isLess = function (date, otherDate) {
|
|
89
|
+
return date < otherDate;
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Verifica se uma data é maior que outra data.
|
|
93
|
+
* @param date - A data a ser verificada.
|
|
94
|
+
* @param otherDate - A outra data a ser comparada.
|
|
95
|
+
* @returns True se a data for maior que outra data, false caso contrário.
|
|
96
|
+
*/
|
|
97
|
+
AgroDateUtils.isGreater = function (date, otherDate) {
|
|
98
|
+
return date > otherDate;
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* Retorna a data formatada conforme o formato especificado.
|
|
102
|
+
* @param date
|
|
103
|
+
* @param format
|
|
104
|
+
* @returns
|
|
105
|
+
*/
|
|
106
|
+
AgroDateUtils.formatDate = function (date, format) {
|
|
107
|
+
if (format === void 0) { format = 'DD/MM/YYYY'; }
|
|
108
|
+
var moment = require('moment');
|
|
109
|
+
return moment(date).utc().format(format);
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* Retorna uma string com o número informado adicionando um 0 à esquerda, caso o número seja menor que 10.
|
|
113
|
+
* @param value
|
|
114
|
+
* @returns
|
|
115
|
+
*/
|
|
116
|
+
AgroDateUtils.padZero = function (value) {
|
|
117
|
+
return value < AGRO_NUMBERS.TEN ? '0' + value : value.toString();
|
|
118
|
+
};
|
|
119
|
+
return AgroDateUtils;
|
|
120
|
+
}());
|
|
121
|
+
export { AgroDateUtils };
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1kYXRlLXV0aWxzLmNsYXNzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1hZ3JvbmVnb2Npby9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21tb24vYWdyby1kYXRlLXV0aWxzLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFeEM7SUFBQTtJQThIQSxDQUFDO0lBN0hHOzs7O09BSUc7SUFDVywrQkFBaUIsR0FBL0IsVUFBZ0MsSUFBNkI7UUFDekQsT0FBTyxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxTQUFTLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDVyxrQ0FBb0IsR0FBbEMsVUFBbUMsSUFBNkI7UUFDNUQsT0FBTyxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNXLHFCQUFPLEdBQXJCLFVBQXNCLElBQVk7UUFDOUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDVyx1QkFBUyxHQUF2QixVQUF3QixJQUFZO1FBQ2hDLE9BQU8sQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNXLHNCQUFRLEdBQXRCLFVBQXVCLElBQVUsRUFBRSxTQUFlO1FBQzlDLE9BQU8sSUFBSSxHQUFHLFNBQVMsQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDVyxxQkFBTyxHQUFyQixVQUFzQixJQUFVLEVBQUUsU0FBZTtRQUM3QyxPQUFPLElBQUksR0FBRyxTQUFTLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ1cscUJBQU8sR0FBckIsVUFBc0IsSUFBVSxFQUFFLFNBQWU7UUFDN0MsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNXLDJCQUFhLEdBQTNCLFVBQTRCLElBQVUsRUFBRSxTQUFlO1FBQ25ELE9BQU8sSUFBSSxJQUFJLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDVyw4QkFBZ0IsR0FBOUIsVUFBK0IsSUFBVSxFQUFFLFNBQWU7UUFDdEQsT0FBTyxJQUFJLElBQUksU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNXLG9CQUFNLEdBQXBCLFVBQXFCLElBQVUsRUFBRSxTQUFlO1FBQzVDLE9BQU8sSUFBSSxHQUFHLFNBQVMsQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDVyx1QkFBUyxHQUF2QixVQUF3QixJQUFVLEVBQUUsU0FBZTtRQUMvQyxPQUFPLElBQUksR0FBRyxTQUFTLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksd0JBQVUsR0FBakIsVUFBa0IsSUFBVSxFQUFFLE1BQTZCO1FBQTdCLHVCQUFBLEVBQUEscUJBQTZCO1FBQ3ZELElBQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxxQkFBTyxHQUFkLFVBQWUsS0FBYTtRQUN4QixPQUFPLEtBQUssR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDckUsQ0FBQztJQUNMLG9CQUFDO0FBQUQsQ0FBQyxBQTlIRCxJQThIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFHUk9fTlVNQkVSUyB9IGZyb20gJy4uL2VudW1zJztcclxuXHJcbmV4cG9ydCBjbGFzcyBBZ3JvRGF0ZVV0aWxzIHtcclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW1hIGRhdGEgw6kgbnVsYSBvdSBpbmRlZmluaWRhLlxyXG4gICAgICogQHBhcmFtIGRhdGUgLSBBIGRhdGEgYSBzZXIgdmVyaWZpY2FkYS5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgYSBkYXRhIGZvciBudWxhIG91IGluZGVmaW5pZGEsIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBpc051bGxPclVuZGVmaW5lZChkYXRlOiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBkYXRlID09PSBudWxsIHx8IGRhdGUgPT09IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtYSBkYXRhIG7Do28gw6kgbnVsYSBlIG7Do28gw6kgaW5kZWZpbmlkYS5cclxuICAgICAqIEBwYXJhbSBkYXRlIC0gQSBkYXRhIGEgc2VyIHZlcmlmaWNhZGEuXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIGEgZGF0YSBuw6NvIGZvciBudWxhIGUgbsOjbyBmb3IgaW5kZWZpbmlkYSwgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGlzTm90TnVsbE9yVW5kZWZpbmVkKGRhdGU6IERhdGUgfCBudWxsIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICFBZ3JvRGF0ZVV0aWxzLmlzTnVsbE9yVW5kZWZpbmVkKGRhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW1hIGRhdGEgw6kgdsOhbGlkYS5cclxuICAgICAqIEBwYXJhbSBkYXRlIC0gQSBkYXRhIGEgc2VyIHZlcmlmaWNhZGEuXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIGEgZGF0YSBmb3IgdsOhbGlkYSwgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGlzVmFsaWQoZGF0ZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICFpc05hTihEYXRlLnBhcnNlKGRhdGUpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtYSBkYXRhIMOpIGludsOhbGlkYS5cclxuICAgICAqIEBwYXJhbSBkYXRlIC0gQSBkYXRhIGEgc2VyIHZlcmlmaWNhZGEuXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIGEgZGF0YSBmb3IgaW52w6FsaWRhLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNJbnZhbGlkKGRhdGU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhQWdyb0RhdGVVdGlscy5pc1ZhbGlkKGRhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW1hIGRhdGEgw6kgYW50ZXMgZGUgb3V0cmEgZGF0YS5cclxuICAgICAqIEBwYXJhbSBkYXRlIC0gQSBkYXRhIGEgc2VyIHZlcmlmaWNhZGEuXHJcbiAgICAgKiBAcGFyYW0gb3RoZXJEYXRlIC0gQSBvdXRyYSBkYXRhIGEgc2VyIGNvbXBhcmFkYS5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgYSBkYXRhIGZvciBhbnRlcyBkYSBvdXRyYSBkYXRhLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNCZWZvcmUoZGF0ZTogRGF0ZSwgb3RoZXJEYXRlOiBEYXRlKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGUgPCBvdGhlckRhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bWEgZGF0YSDDqSBkZXBvaXMgZGUgb3V0cmEgZGF0YS5cclxuICAgICAqIEBwYXJhbSBkYXRlIC0gQSBkYXRhIGEgc2VyIHZlcmlmaWNhZGEuXHJcbiAgICAgKiBAcGFyYW0gb3RoZXJEYXRlIC0gQSBvdXRyYSBkYXRhIGEgc2VyIGNvbXBhcmFkYS5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgYSBkYXRhIGZvciBkZXBvaXMgZGEgb3V0cmEgZGF0YSwgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGlzQWZ0ZXIoZGF0ZTogRGF0ZSwgb3RoZXJEYXRlOiBEYXRlKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGUgPiBvdGhlckRhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bWEgZGF0YSDDqSBpZ3VhbCBhIG91dHJhIGRhdGEuXHJcbiAgICAgKiBAcGFyYW0gZGF0ZSAtIEEgZGF0YSBhIHNlciB2ZXJpZmljYWRhLlxyXG4gICAgICogQHBhcmFtIG90aGVyRGF0ZSAtIEEgb3V0cmEgZGF0YSBhIHNlciBjb21wYXJhZGEuXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIGEgZGF0YSBmb3IgaWd1YWwgYSBvdXRyYSBkYXRhLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNFcXVhbChkYXRlOiBEYXRlLCBvdGhlckRhdGU6IERhdGUpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gZGF0ZS5nZXRUaW1lKCkgPT09IG90aGVyRGF0ZS5nZXRUaW1lKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bWEgZGF0YSDDqSBtZW5vciBvdSBpZ3VhbCBhIG91dHJhIGRhdGEuXHJcbiAgICAgKiBAcGFyYW0gZGF0ZSAtIEEgZGF0YSBhIHNlciB2ZXJpZmljYWRhLlxyXG4gICAgICogQHBhcmFtIG90aGVyRGF0ZSAtIEEgb3V0cmEgZGF0YSBhIHNlciBjb21wYXJhZGEuXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIGEgZGF0YSBmb3IgbWVub3Igb3UgaWd1YWwgYSBvdXRyYSBkYXRhLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNMZXNzT3JFcXVhbChkYXRlOiBEYXRlLCBvdGhlckRhdGU6IERhdGUpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gZGF0ZSA8PSBvdGhlckRhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bWEgZGF0YSDDqSBtYWlvciBvdSBpZ3VhbCBhIG91dHJhIGRhdGEuXHJcbiAgICAgKiBAcGFyYW0gZGF0ZSAtIEEgZGF0YSBhIHNlciB2ZXJpZmljYWRhLlxyXG4gICAgICogQHBhcmFtIG90aGVyRGF0ZSAtIEEgb3V0cmEgZGF0YSBhIHNlciBjb21wYXJhZGEuXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIGEgZGF0YSBmb3IgbWFpb3Igb3UgaWd1YWwgYSBvdXRyYSBkYXRhLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNHcmVhdGVyT3JFcXVhbChkYXRlOiBEYXRlLCBvdGhlckRhdGU6IERhdGUpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gZGF0ZSA+PSBvdGhlckRhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bWEgZGF0YSDDqSBtZW5vciBxdWUgb3V0cmEgZGF0YS5cclxuICAgICAqIEBwYXJhbSBkYXRlIC0gQSBkYXRhIGEgc2VyIHZlcmlmaWNhZGEuXHJcbiAgICAgKiBAcGFyYW0gb3RoZXJEYXRlIC0gQSBvdXRyYSBkYXRhIGEgc2VyIGNvbXBhcmFkYS5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgYSBkYXRhIGZvciBtZW5vciBxdWUgb3V0cmEgZGF0YSwgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGlzTGVzcyhkYXRlOiBEYXRlLCBvdGhlckRhdGU6IERhdGUpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gZGF0ZSA8IG90aGVyRGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtYSBkYXRhIMOpIG1haW9yIHF1ZSBvdXRyYSBkYXRhLlxyXG4gICAgICogQHBhcmFtIGRhdGUgLSBBIGRhdGEgYSBzZXIgdmVyaWZpY2FkYS5cclxuICAgICAqIEBwYXJhbSBvdGhlckRhdGUgLSBBIG91dHJhIGRhdGEgYSBzZXIgY29tcGFyYWRhLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBhIGRhdGEgZm9yIG1haW9yIHF1ZSBvdXRyYSBkYXRhLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNHcmVhdGVyKGRhdGU6IERhdGUsIG90aGVyRGF0ZTogRGF0ZSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBkYXRlID4gb3RoZXJEYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0b3JuYSBhIGRhdGEgZm9ybWF0YWRhIGNvbmZvcm1lIG8gZm9ybWF0byBlc3BlY2lmaWNhZG8uXHJcbiAgICAgKiBAcGFyYW0gZGF0ZVxyXG4gICAgICogQHBhcmFtIGZvcm1hdFxyXG4gICAgICogQHJldHVybnNcclxuICAgICAqL1xyXG4gICAgc3RhdGljIGZvcm1hdERhdGUoZGF0ZTogRGF0ZSwgZm9ybWF0OiBzdHJpbmcgPSAnREQvTU0vWVlZWScpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IG1vbWVudCA9IHJlcXVpcmUoJ21vbWVudCcpO1xyXG4gICAgICAgIHJldHVybiBtb21lbnQoZGF0ZSkudXRjKCkuZm9ybWF0KGZvcm1hdCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRvcm5hIHVtYSBzdHJpbmcgY29tIG8gbsO6bWVybyBpbmZvcm1hZG8gYWRpY2lvbmFuZG8gdW0gMCDDoCBlc3F1ZXJkYSwgY2FzbyBvIG7Dum1lcm8gc2VqYSBtZW5vciBxdWUgMTAuXHJcbiAgICAgKiBAcGFyYW0gdmFsdWVcclxuICAgICAqIEByZXR1cm5zXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBwYWRaZXJvKHZhbHVlOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZSA8IEFHUk9fTlVNQkVSUy5URU4gPyAnMCcgKyB2YWx1ZSA6IHZhbHVlLnRvU3RyaW5nKCk7XHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { AgroStringUtils } from "./agro-string-utils.class";
|
|
2
|
+
var AgroNameUtils = /** @class */ (function () {
|
|
3
|
+
function AgroNameUtils() {
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Abrevia o último sobrenome, mantendo o primeiro nome completo.
|
|
7
|
+
* @param fullName valor completo do nome (Ex: Tiago Batista Corrêa)
|
|
8
|
+
* @returns nome abreviado (Ex: Tiago C.)
|
|
9
|
+
*/
|
|
10
|
+
AgroNameUtils.abbreviateName = function (fullName) {
|
|
11
|
+
if (AgroStringUtils.isInvalid(fullName)) {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
var parts = fullName.trim().split(/\s+/);
|
|
15
|
+
// Verifica se há pelo menos duas partes no nome
|
|
16
|
+
if (parts.length < 2) {
|
|
17
|
+
return fullName; // Retorna o nome original se não puder ser abreviado
|
|
18
|
+
}
|
|
19
|
+
var firstName = parts[0]; // Primeiro nome completo
|
|
20
|
+
var lastName = parts[parts.length - 1]; // Último sobrenome
|
|
21
|
+
// Retorna o nome abreviado
|
|
22
|
+
return firstName + " " + lastName.charAt(0) + ".";
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Abrevia todos os sobrenomes, mantendo o primeiro nome completo.
|
|
26
|
+
*
|
|
27
|
+
* @param fullName O nome completo. (Ex: Tiago Batista Corrêa)
|
|
28
|
+
* @returns O nome com os sobrenomes abreviados. (Ex: Tiago B. C.)
|
|
29
|
+
*/
|
|
30
|
+
AgroNameUtils.abbreviateAllLastNames = function (fullName) {
|
|
31
|
+
if (AgroStringUtils.isInvalid(fullName)) {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
var parts = fullName.trim().split(/\s+/);
|
|
35
|
+
if (parts.length < 2)
|
|
36
|
+
return fullName;
|
|
37
|
+
var firstName = parts[0];
|
|
38
|
+
var abbreviatedLastNames = parts
|
|
39
|
+
.slice(1)
|
|
40
|
+
.map(function (name) { return name.charAt(0) + "."; })
|
|
41
|
+
.join(" ");
|
|
42
|
+
return firstName + " " + abbreviatedLastNames;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Retorna as iniciais do nome completo.
|
|
46
|
+
*
|
|
47
|
+
* @param fullName O nome completo. (Ex: Tiago Batista Corrêa)
|
|
48
|
+
* @returns Uma string contendo as iniciais do nome. (Ex: TBC)
|
|
49
|
+
*/
|
|
50
|
+
AgroNameUtils.getInitials = function (fullName) {
|
|
51
|
+
if (AgroStringUtils.isInvalid(fullName)) {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
return fullName
|
|
55
|
+
.trim()
|
|
56
|
+
.split(/\s+/)
|
|
57
|
+
.map(function (name) { return name.charAt(0).toUpperCase(); })
|
|
58
|
+
.join("");
|
|
59
|
+
};
|
|
60
|
+
return AgroNameUtils;
|
|
61
|
+
}());
|
|
62
|
+
export { AgroNameUtils };
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1uYW1lLXV0aWxzLmNsYXNzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1hZ3JvbmVnb2Npby9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21tb24vYWdyby1uYW1lLXV0aWxzLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU1RDtJQUFBO0lBaUVBLENBQUM7SUFoRUc7Ozs7T0FJRztJQUNJLDRCQUFjLEdBQXJCLFVBQXNCLFFBQWdCO1FBQ2xDLElBQUksZUFBZSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNyQyxPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsSUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUzQyxnREFBZ0Q7UUFDaEQsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNsQixPQUFPLFFBQVEsQ0FBQyxDQUFDLHFEQUFxRDtTQUN6RTtRQUVELElBQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHlCQUF5QjtRQUNyRCxJQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQjtRQUU3RCwyQkFBMkI7UUFDM0IsT0FBVSxTQUFTLFNBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBRyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLG9DQUFzQixHQUE3QixVQUE4QixRQUFnQjtRQUMxQyxJQUFJLGVBQWUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDckMsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELElBQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUM7WUFBRSxPQUFPLFFBQVEsQ0FBQztRQUV0QyxJQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0IsSUFBTSxvQkFBb0IsR0FBRyxLQUFLO2FBQzdCLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDUixHQUFHLENBQUMsVUFBQyxJQUFJLElBQUssT0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFHLEVBQXBCLENBQW9CLENBQUM7YUFDbkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWYsT0FBVSxTQUFTLFNBQUksb0JBQXNCLENBQUM7SUFDbEQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0kseUJBQVcsR0FBbEIsVUFBbUIsUUFBZ0I7UUFDL0IsSUFBSSxlQUFlLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3JDLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRCxPQUFPLFFBQVE7YUFDVixJQUFJLEVBQUU7YUFDTixLQUFLLENBQUMsS0FBSyxDQUFDO2FBQ1osR0FBRyxDQUFDLFVBQUMsSUFBSSxJQUFLLE9BQUEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBNUIsQ0FBNEIsQ0FBQzthQUMzQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUNMLG9CQUFDO0FBQUQsQ0FBQyxBQWpFRCxJQWlFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFncm9TdHJpbmdVdGlscyB9IGZyb20gXCIuL2Fncm8tc3RyaW5nLXV0aWxzLmNsYXNzXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgQWdyb05hbWVVdGlscyB7XHJcbiAgICAvKipcclxuICAgICAqIEFicmV2aWEgbyDDumx0aW1vIHNvYnJlbm9tZSwgbWFudGVuZG8gbyBwcmltZWlybyBub21lIGNvbXBsZXRvLlxyXG4gICAgICogQHBhcmFtIGZ1bGxOYW1lIHZhbG9yIGNvbXBsZXRvIGRvIG5vbWUgKEV4OiBUaWFnbyBCYXRpc3RhIENvcnLDqmEpXHJcbiAgICAgKiBAcmV0dXJucyBub21lIGFicmV2aWFkbyAoRXg6IFRpYWdvIEMuKVxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgYWJicmV2aWF0ZU5hbWUoZnVsbE5hbWU6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgICAgIGlmIChBZ3JvU3RyaW5nVXRpbHMuaXNJbnZhbGlkKGZ1bGxOYW1lKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHBhcnRzID0gZnVsbE5hbWUudHJpbSgpLnNwbGl0KC9cXHMrLyk7XHJcblxyXG4gICAgICAgIC8vIFZlcmlmaWNhIHNlIGjDoSBwZWxvIG1lbm9zIGR1YXMgcGFydGVzIG5vIG5vbWVcclxuICAgICAgICBpZiAocGFydHMubGVuZ3RoIDwgMikge1xyXG4gICAgICAgICAgICByZXR1cm4gZnVsbE5hbWU7IC8vIFJldG9ybmEgbyBub21lIG9yaWdpbmFsIHNlIG7Do28gcHVkZXIgc2VyIGFicmV2aWFkb1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZmlyc3ROYW1lID0gcGFydHNbMF07IC8vIFByaW1laXJvIG5vbWUgY29tcGxldG9cclxuICAgICAgICBjb25zdCBsYXN0TmFtZSA9IHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdOyAvLyDDmmx0aW1vIHNvYnJlbm9tZVxyXG5cclxuICAgICAgICAvLyBSZXRvcm5hIG8gbm9tZSBhYnJldmlhZG9cclxuICAgICAgICByZXR1cm4gYCR7Zmlyc3ROYW1lfSAke2xhc3ROYW1lLmNoYXJBdCgwKX0uYDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFicmV2aWEgdG9kb3Mgb3Mgc29icmVub21lcywgbWFudGVuZG8gbyBwcmltZWlybyBub21lIGNvbXBsZXRvLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBmdWxsTmFtZSBPIG5vbWUgY29tcGxldG8uIChFeDogVGlhZ28gQmF0aXN0YSBDb3Jyw6phKVxyXG4gICAgICogQHJldHVybnMgTyBub21lIGNvbSBvcyBzb2JyZW5vbWVzIGFicmV2aWFkb3MuIChFeDogVGlhZ28gQi4gQy4pXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBhYmJyZXZpYXRlQWxsTGFzdE5hbWVzKGZ1bGxOYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgICAgICBpZiAoQWdyb1N0cmluZ1V0aWxzLmlzSW52YWxpZChmdWxsTmFtZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBwYXJ0cyA9IGZ1bGxOYW1lLnRyaW0oKS5zcGxpdCgvXFxzKy8pO1xyXG4gICAgICAgIGlmIChwYXJ0cy5sZW5ndGggPCAyKSByZXR1cm4gZnVsbE5hbWU7XHJcblxyXG4gICAgICAgIGNvbnN0IGZpcnN0TmFtZSA9IHBhcnRzWzBdO1xyXG4gICAgICAgIGNvbnN0IGFiYnJldmlhdGVkTGFzdE5hbWVzID0gcGFydHNcclxuICAgICAgICAgICAgLnNsaWNlKDEpXHJcbiAgICAgICAgICAgIC5tYXAoKG5hbWUpID0+IGAke25hbWUuY2hhckF0KDApfS5gKVxyXG4gICAgICAgICAgICAuam9pbihcIiBcIik7XHJcblxyXG4gICAgICAgIHJldHVybiBgJHtmaXJzdE5hbWV9ICR7YWJicmV2aWF0ZWRMYXN0TmFtZXN9YDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldG9ybmEgYXMgaW5pY2lhaXMgZG8gbm9tZSBjb21wbGV0by5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gZnVsbE5hbWUgTyBub21lIGNvbXBsZXRvLiAoRXg6IFRpYWdvIEJhdGlzdGEgQ29ycsOqYSlcclxuICAgICAqIEByZXR1cm5zIFVtYSBzdHJpbmcgY29udGVuZG8gYXMgaW5pY2lhaXMgZG8gbm9tZS4gKEV4OiBUQkMpXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBnZXRJbml0aWFscyhmdWxsTmFtZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICAgICAgaWYgKEFncm9TdHJpbmdVdGlscy5pc0ludmFsaWQoZnVsbE5hbWUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGZ1bGxOYW1lXHJcbiAgICAgICAgICAgIC50cmltKClcclxuICAgICAgICAgICAgLnNwbGl0KC9cXHMrLylcclxuICAgICAgICAgICAgLm1hcCgobmFtZSkgPT4gbmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSlcclxuICAgICAgICAgICAgLmpvaW4oXCJcIik7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Classe de utilitários para operações com números.
|
|
3
|
+
*/
|
|
4
|
+
var AgroNumberUtils = /** @class */ (function () {
|
|
5
|
+
function AgroNumberUtils() {
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Verifica se um número é nulo ou indefinido.
|
|
9
|
+
* @param num - O número a ser verificado.
|
|
10
|
+
* @returns True se o número for nulo ou indefinido, false caso contrário.
|
|
11
|
+
*/
|
|
12
|
+
AgroNumberUtils.isNullOrUndefined = function (num) {
|
|
13
|
+
return num === null || num === undefined;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Verifica se um número não é nulo e não é indefinido.
|
|
17
|
+
* @param num - O número a ser verificado.
|
|
18
|
+
* @returns True se o número não for nulo e não for indefinido, false caso contrário.
|
|
19
|
+
*/
|
|
20
|
+
AgroNumberUtils.isNotNullOrUndefined = function (num) {
|
|
21
|
+
return !AgroNumberUtils.isNullOrUndefined(num);
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Verifica se um número é par.
|
|
25
|
+
*
|
|
26
|
+
* @param value O número a ser verificado.
|
|
27
|
+
* @returns True se for par, false caso contrário.
|
|
28
|
+
*/
|
|
29
|
+
AgroNumberUtils.isEven = function (value) {
|
|
30
|
+
return value % 2 === 0;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Verifica se um número é ímpar.
|
|
34
|
+
*
|
|
35
|
+
* @param value O número a ser verificado.
|
|
36
|
+
* @returns True se for ímpar, false caso contrário.
|
|
37
|
+
*/
|
|
38
|
+
AgroNumberUtils.isOdd = function (value) {
|
|
39
|
+
return value % 2 !== 0;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Calcula a porcentagem de um valor em relação a um total.
|
|
43
|
+
*
|
|
44
|
+
* @param partial O valor parcial.
|
|
45
|
+
* @param total O valor total.
|
|
46
|
+
* @returns A porcentagem calculada.
|
|
47
|
+
*/
|
|
48
|
+
AgroNumberUtils.percentage = function (partial, total) {
|
|
49
|
+
if (total === 0)
|
|
50
|
+
throw new Error("O total não pode ser zero.");
|
|
51
|
+
return (partial / total) * 100;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Formata um número para o formato monetário.
|
|
55
|
+
*
|
|
56
|
+
* @param value O número a ser formatado.
|
|
57
|
+
* @param currency O símbolo da moeda (padrão: "BRL").
|
|
58
|
+
* @param locale O código da localidade (padrão: "pt-BR").
|
|
59
|
+
* @returns Uma string no formato monetário.
|
|
60
|
+
*/
|
|
61
|
+
AgroNumberUtils.toCurrency = function (value, currency, locale) {
|
|
62
|
+
if (currency === void 0) { currency = "BRL"; }
|
|
63
|
+
if (locale === void 0) { locale = "pt-BR"; }
|
|
64
|
+
return new Intl.NumberFormat(locale, {
|
|
65
|
+
style: "currency",
|
|
66
|
+
currency: currency,
|
|
67
|
+
}).format(value);
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Gera um número aleatório no intervalo especificado.
|
|
71
|
+
*
|
|
72
|
+
* @param min O valor mínimo (inclusivo).
|
|
73
|
+
* @param max O valor máximo (exclusivo).
|
|
74
|
+
* @returns Um número aleatório no intervalo.
|
|
75
|
+
*/
|
|
76
|
+
AgroNumberUtils.randomInRange = function (min, max) {
|
|
77
|
+
return Math.random() * (max - min) + min;
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Verifica se um número é primo.
|
|
81
|
+
*
|
|
82
|
+
* @param value O número a ser verificado.
|
|
83
|
+
* @returns True se for primo, false caso contrário.
|
|
84
|
+
*/
|
|
85
|
+
AgroNumberUtils.isPrime = function (value) {
|
|
86
|
+
if (value <= 1)
|
|
87
|
+
return false;
|
|
88
|
+
for (var i = 2; i <= Math.sqrt(value); i++) {
|
|
89
|
+
if (value % i === 0)
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
return true;
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
* Arredonda um número para `n` casas decimais.
|
|
96
|
+
*
|
|
97
|
+
* @param value O número a ser arredondado.
|
|
98
|
+
* @param decimals O número de casas decimais (padrão: 2).
|
|
99
|
+
* @returns O número arredondado.
|
|
100
|
+
*/
|
|
101
|
+
AgroNumberUtils.roundTo = function (value, decimals) {
|
|
102
|
+
if (decimals === void 0) { decimals = 2; }
|
|
103
|
+
var factor = Math.pow(10, decimals);
|
|
104
|
+
return Math.round(value * factor) / factor;
|
|
105
|
+
};
|
|
106
|
+
return AgroNumberUtils;
|
|
107
|
+
}());
|
|
108
|
+
export { AgroNumberUtils };
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1udW1iZXItdXRpbHMuY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbW1vbi9hZ3JvLW51bWJlci11dGlscy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNIO0lBQUE7SUFzR0EsQ0FBQztJQXJHRzs7OztPQUlHO0lBQ0ksaUNBQWlCLEdBQXhCLFVBQXlCLEdBQVE7UUFDN0IsT0FBTyxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsS0FBSyxTQUFTLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxvQ0FBb0IsR0FBM0IsVUFBNEIsR0FBUTtRQUNoQyxPQUFPLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLHNCQUFNLEdBQWIsVUFBYyxLQUFhO1FBQ3ZCLE9BQU8sS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0kscUJBQUssR0FBWixVQUFhLEtBQWE7UUFDdEIsT0FBTyxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksMEJBQVUsR0FBakIsVUFBa0IsT0FBZSxFQUFFLEtBQWE7UUFDNUMsSUFBSSxLQUFLLEtBQUssQ0FBQztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUMvRCxPQUFPLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLDBCQUFVLEdBQWpCLFVBQWtCLEtBQWEsRUFBRSxRQUF3QixFQUFFLE1BQXdCO1FBQWxELHlCQUFBLEVBQUEsZ0JBQXdCO1FBQUUsdUJBQUEsRUFBQSxnQkFBd0I7UUFDL0UsT0FBTyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFO1lBQ2pDLEtBQUssRUFBRSxVQUFVO1lBQ2pCLFFBQVEsRUFBRSxRQUFRO1NBQ3JCLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLDZCQUFhLEdBQXBCLFVBQXFCLEdBQVcsRUFBRSxHQUFXO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSx1QkFBTyxHQUFkLFVBQWUsS0FBYTtRQUN4QixJQUFJLEtBQUssSUFBSSxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDN0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDeEMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUM7Z0JBQUUsT0FBTyxLQUFLLENBQUM7U0FDckM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksdUJBQU8sR0FBZCxVQUFlLEtBQWEsRUFBRSxRQUFvQjtRQUFwQix5QkFBQSxFQUFBLFlBQW9CO1FBQzlDLElBQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDO0lBQy9DLENBQUM7SUFDTCxzQkFBQztBQUFELENBQUMsQUF0R0QsSUFzR0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ2xhc3NlIGRlIHV0aWxpdMOhcmlvcyBwYXJhIG9wZXJhw6fDtWVzIGNvbSBuw7ptZXJvcy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBBZ3JvTnVtYmVyVXRpbHMge1xyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBuw7ptZXJvIMOpIG51bG8gb3UgaW5kZWZpbmlkby5cclxuICAgICAqIEBwYXJhbSBudW0gLSBPIG7Dum1lcm8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBuw7ptZXJvIGZvciBudWxvIG91IGluZGVmaW5pZG8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzTnVsbE9yVW5kZWZpbmVkKG51bTogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIG51bSA9PT0gbnVsbCB8fCBudW0gPT09IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG7Dum1lcm8gbsOjbyDDqSBudWxvIGUgbsOjbyDDqSBpbmRlZmluaWRvLlxyXG4gICAgICogQHBhcmFtIG51bSAtIE8gbsO6bWVybyBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG7Dum1lcm8gbsOjbyBmb3IgbnVsbyBlIG7Do28gZm9yIGluZGVmaW5pZG8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzTm90TnVsbE9yVW5kZWZpbmVkKG51bTogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICFBZ3JvTnVtYmVyVXRpbHMuaXNOdWxsT3JVbmRlZmluZWQobnVtKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG7Dum1lcm8gw6kgcGFyLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB2YWx1ZSBPIG7Dum1lcm8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgZm9yIHBhciwgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNFdmVuKHZhbHVlOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdmFsdWUgJSAyID09PSAwO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gbsO6bWVybyDDqSDDrW1wYXIuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHZhbHVlIE8gbsO6bWVybyBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBmb3Igw61tcGFyLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc09kZCh2YWx1ZTogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlICUgMiAhPT0gMDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGN1bGEgYSBwb3JjZW50YWdlbSBkZSB1bSB2YWxvciBlbSByZWxhw6fDo28gYSB1bSB0b3RhbC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gcGFydGlhbCBPIHZhbG9yIHBhcmNpYWwuXHJcbiAgICAgKiBAcGFyYW0gdG90YWwgTyB2YWxvciB0b3RhbC5cclxuICAgICAqIEByZXR1cm5zIEEgcG9yY2VudGFnZW0gY2FsY3VsYWRhLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgcGVyY2VudGFnZShwYXJ0aWFsOiBudW1iZXIsIHRvdGFsOiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgICAgIGlmICh0b3RhbCA9PT0gMCkgdGhyb3cgbmV3IEVycm9yKFwiTyB0b3RhbCBuw6NvIHBvZGUgc2VyIHplcm8uXCIpO1xyXG4gICAgICAgIHJldHVybiAocGFydGlhbCAvIHRvdGFsKSAqIDEwMDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZvcm1hdGEgdW0gbsO6bWVybyBwYXJhIG8gZm9ybWF0byBtb25ldMOhcmlvLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB2YWx1ZSBPIG7Dum1lcm8gYSBzZXIgZm9ybWF0YWRvLlxyXG4gICAgICogQHBhcmFtIGN1cnJlbmN5IE8gc8OtbWJvbG8gZGEgbW9lZGEgKHBhZHLDo286IFwiQlJMXCIpLlxyXG4gICAgICogQHBhcmFtIGxvY2FsZSBPIGPDs2RpZ28gZGEgbG9jYWxpZGFkZSAocGFkcsOjbzogXCJwdC1CUlwiKS5cclxuICAgICAqIEByZXR1cm5zIFVtYSBzdHJpbmcgbm8gZm9ybWF0byBtb25ldMOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgdG9DdXJyZW5jeSh2YWx1ZTogbnVtYmVyLCBjdXJyZW5jeTogc3RyaW5nID0gXCJCUkxcIiwgbG9jYWxlOiBzdHJpbmcgPSBcInB0LUJSXCIpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBuZXcgSW50bC5OdW1iZXJGb3JtYXQobG9jYWxlLCB7XHJcbiAgICAgICAgICAgIHN0eWxlOiBcImN1cnJlbmN5XCIsXHJcbiAgICAgICAgICAgIGN1cnJlbmN5OiBjdXJyZW5jeSxcclxuICAgICAgICB9KS5mb3JtYXQodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2VyYSB1bSBuw7ptZXJvIGFsZWF0w7NyaW8gbm8gaW50ZXJ2YWxvIGVzcGVjaWZpY2Fkby5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gbWluIE8gdmFsb3IgbcOtbmltbyAoaW5jbHVzaXZvKS5cclxuICAgICAqIEBwYXJhbSBtYXggTyB2YWxvciBtw6F4aW1vIChleGNsdXNpdm8pLlxyXG4gICAgICogQHJldHVybnMgVW0gbsO6bWVybyBhbGVhdMOzcmlvIG5vIGludGVydmFsby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIHJhbmRvbUluUmFuZ2UobWluOiBudW1iZXIsIG1heDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gTWF0aC5yYW5kb20oKSAqIChtYXggLSBtaW4pICsgbWluO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gbsO6bWVybyDDqSBwcmltby5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgTyBuw7ptZXJvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIGZvciBwcmltbywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNQcmltZSh2YWx1ZTogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHZhbHVlIDw9IDEpIHJldHVybiBmYWxzZTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMjsgaSA8PSBNYXRoLnNxcnQodmFsdWUpOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHZhbHVlICUgaSA9PT0gMCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFycmVkb25kYSB1bSBuw7ptZXJvIHBhcmEgYG5gIGNhc2FzIGRlY2ltYWlzLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB2YWx1ZSBPIG7Dum1lcm8gYSBzZXIgYXJyZWRvbmRhZG8uXHJcbiAgICAgKiBAcGFyYW0gZGVjaW1hbHMgTyBuw7ptZXJvIGRlIGNhc2FzIGRlY2ltYWlzIChwYWRyw6NvOiAyKS5cclxuICAgICAqIEByZXR1cm5zIE8gbsO6bWVybyBhcnJlZG9uZGFkby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIHJvdW5kVG8odmFsdWU6IG51bWJlciwgZGVjaW1hbHM6IG51bWJlciA9IDIpOiBudW1iZXIge1xyXG4gICAgICAgIGNvbnN0IGZhY3RvciA9IE1hdGgucG93KDEwLCBkZWNpbWFscyk7XHJcbiAgICAgICAgcmV0dXJuIE1hdGgucm91bmQodmFsdWUgKiBmYWN0b3IpIC8gZmFjdG9yO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
import { AGRO_NUMBERS } from "../enums";
|
|
2
|
+
export { AgroObjectUtils as AOU, AgroObjectUtils as ObjectUtils };
|
|
3
|
+
/**
|
|
4
|
+
* Classe utilitária para operações de objeto.
|
|
5
|
+
*/
|
|
6
|
+
var AgroObjectUtils = /** @class */ (function () {
|
|
7
|
+
function AgroObjectUtils() {
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Verifica se um objeto é nulo ou indefinido.
|
|
11
|
+
* @param obj - O objeto a ser verificado.
|
|
12
|
+
* @returns True se o objeto for nulo ou indefinido, false caso contrário.
|
|
13
|
+
*/
|
|
14
|
+
AgroObjectUtils.isNullOrUndefined = function (obj) {
|
|
15
|
+
return obj === null || obj === undefined;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Verifica se um objeto não é nulo e não é indefinido.
|
|
19
|
+
* @param obj - O objeto a ser verificado.
|
|
20
|
+
* @returns True se o objeto não for nulo e não for indefinido, false caso contrário.
|
|
21
|
+
*/
|
|
22
|
+
AgroObjectUtils.isNotNullOrUndefined = function (obj) {
|
|
23
|
+
return !AgroObjectUtils.isNullOrUndefined(obj);
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Verifica se um objeto é uma string.
|
|
27
|
+
* @param obj - O objeto a ser verificado.
|
|
28
|
+
* @returns True se o objeto for uma string, false caso contrário.
|
|
29
|
+
*/
|
|
30
|
+
AgroObjectUtils.isString = function (obj) {
|
|
31
|
+
return typeof obj === "string";
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Verifica se um objeto é um número.
|
|
35
|
+
* @param obj - O objeto a ser verificado.
|
|
36
|
+
* @returns True se o objeto for um número, false caso contrário.
|
|
37
|
+
*/
|
|
38
|
+
AgroObjectUtils.isNumber = function (obj) {
|
|
39
|
+
return typeof obj === "number";
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Verifica se um objeto é um booleano.
|
|
43
|
+
* @param obj - O objeto a ser verificado.
|
|
44
|
+
* @returns True se o objeto for um booleano, false caso contrário.
|
|
45
|
+
*/
|
|
46
|
+
AgroObjectUtils.isBoolean = function (obj) {
|
|
47
|
+
return typeof obj === "boolean";
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Verifica se um objeto é uma função.
|
|
51
|
+
* @param obj - O objeto a ser verificado.
|
|
52
|
+
* @returns True se o objeto for uma função, false caso contrário.
|
|
53
|
+
*/
|
|
54
|
+
AgroObjectUtils.isFunction = function (obj) {
|
|
55
|
+
return typeof obj === "function";
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Verifica se um objeto é um array.
|
|
59
|
+
* @param obj - O objeto a ser verificado.
|
|
60
|
+
* @returns True se o objeto for um array, false caso contrário.
|
|
61
|
+
*/
|
|
62
|
+
AgroObjectUtils.isArray = function (obj) {
|
|
63
|
+
return Array.isArray(obj);
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Verifica se o valor informado é um objeto.
|
|
67
|
+
* @param obj - O objeto a ser verificado.
|
|
68
|
+
* @returns True se o objeto for um objeto, false caso contrário.
|
|
69
|
+
*/
|
|
70
|
+
AgroObjectUtils.isObject = function (obj) {
|
|
71
|
+
return typeof obj === "object";
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* Verifica se um objeto é uma data.
|
|
75
|
+
* @param obj - O objeto a ser verificado.
|
|
76
|
+
* @returns True se o objeto for uma data, false caso contrário.
|
|
77
|
+
*/
|
|
78
|
+
AgroObjectUtils.isDate = function (obj) {
|
|
79
|
+
return obj instanceof Date;
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* Verifica se um objeto é um erro.
|
|
83
|
+
* @param obj - O objeto a ser verificado.
|
|
84
|
+
* @returns True se o objeto for um erro, false caso contrário.
|
|
85
|
+
*/
|
|
86
|
+
AgroObjectUtils.isError = function (obj) {
|
|
87
|
+
return obj instanceof Error;
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* Verifica se um objeto é uma expressão regular.
|
|
91
|
+
* @param obj - O objeto a ser verificado.
|
|
92
|
+
* @returns True se o objeto for uma expressão regular, false caso contrário.
|
|
93
|
+
*/
|
|
94
|
+
AgroObjectUtils.isRegExp = function (obj) {
|
|
95
|
+
return obj instanceof RegExp;
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* Verifica se um objeto é um valor primitivo.
|
|
99
|
+
* @param obj - O objeto a ser verificado.
|
|
100
|
+
* @returns True se o objeto for um valor primitivo, false caso contrário.
|
|
101
|
+
*/
|
|
102
|
+
AgroObjectUtils.isPrimitive = function (obj) {
|
|
103
|
+
return AgroObjectUtils.isString(obj) || AgroObjectUtils.isNumber(obj) || AgroObjectUtils.isBoolean(obj);
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* Verifica se todos os valores de um objeto são nulos ou indefinidos.
|
|
107
|
+
* @param obj - O objeto a ser verificado.
|
|
108
|
+
* @returns True se todos os valores do objeto forem nulos ou indefinidos, false caso contrário.
|
|
109
|
+
*/
|
|
110
|
+
AgroObjectUtils.allNull = function (obj) {
|
|
111
|
+
if (!AgroObjectUtils.isObject(obj)) {
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
for (var key in obj) {
|
|
115
|
+
if (obj.hasOwnProperty(key) && !AgroObjectUtils.isNullOrUndefined(obj[key])) {
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return true;
|
|
120
|
+
};
|
|
121
|
+
/**
|
|
122
|
+
* Compara dois objetos para verificar se são iguais.
|
|
123
|
+
* @param obj1 - O primeiro objeto a ser comparado.
|
|
124
|
+
* @param obj2 - O segundo objeto a ser comparado.
|
|
125
|
+
* @returns True se os objetos forem iguais, false caso contrário.
|
|
126
|
+
*/
|
|
127
|
+
AgroObjectUtils.isEqual = function (obj1, obj2) {
|
|
128
|
+
if (JSON.stringify(obj1) === JSON.stringify(obj2)) {
|
|
129
|
+
return true;
|
|
130
|
+
}
|
|
131
|
+
return false;
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* Verifica se um objeto é nulo.
|
|
135
|
+
* @param obj - O objeto a ser verificado.
|
|
136
|
+
* @returns True se o objeto for nulo ou um objeto vazio, false caso contrário.
|
|
137
|
+
*/
|
|
138
|
+
AgroObjectUtils.isNull = function (obj) {
|
|
139
|
+
return obj === null;
|
|
140
|
+
};
|
|
141
|
+
/**
|
|
142
|
+
* Verifica se um objeto não é nulo.
|
|
143
|
+
* @param obj - O objeto a ser verificado.
|
|
144
|
+
* @returns True se o objeto não for nulo, false caso contrário.
|
|
145
|
+
*/
|
|
146
|
+
AgroObjectUtils.isNotNull = function (obj) {
|
|
147
|
+
return !AgroObjectUtils.isNull(obj);
|
|
148
|
+
};
|
|
149
|
+
/**
|
|
150
|
+
* Converte um objeto para uma string JSON.
|
|
151
|
+
* @param obj - O objeto a ser convertido.
|
|
152
|
+
* @returns A string JSON representando o objeto.
|
|
153
|
+
*/
|
|
154
|
+
AgroObjectUtils.toJSON = function (obj) {
|
|
155
|
+
return JSON.stringify(obj);
|
|
156
|
+
};
|
|
157
|
+
/**
|
|
158
|
+
* Verifica se um objeto não é vazio.
|
|
159
|
+
* @param obj - O objeto a ser verificado.
|
|
160
|
+
* @returns True se o objeto não for vazio, false caso contrário.
|
|
161
|
+
*/
|
|
162
|
+
AgroObjectUtils.isNotEmpty = function (obj) {
|
|
163
|
+
if (!AgroObjectUtils.isObject(obj)) {
|
|
164
|
+
return false;
|
|
165
|
+
}
|
|
166
|
+
return Object.keys(obj).length !== 0;
|
|
167
|
+
};
|
|
168
|
+
/**
|
|
169
|
+
* Verifica se um objeto é vazio.
|
|
170
|
+
* @param obj - O objeto a ser verificado.
|
|
171
|
+
* @returns True se o objeto for vazio, false caso contrário.
|
|
172
|
+
*/
|
|
173
|
+
AgroObjectUtils.isEmpty = function (obj) {
|
|
174
|
+
return !AgroObjectUtils.isNotEmpty(obj);
|
|
175
|
+
};
|
|
176
|
+
/**
|
|
177
|
+
* Verifica se um objeto não está vazio e contém uma determinada propriedade.
|
|
178
|
+
* @param obj - O objeto a ser verificado.
|
|
179
|
+
* @param property - A propriedade a ser verificada.
|
|
180
|
+
* @returns True se o objeto não estiver vazio e contiver a propriedade, false caso contrário.
|
|
181
|
+
*/
|
|
182
|
+
AgroObjectUtils.containsProperty = function (obj, property) {
|
|
183
|
+
return AgroObjectUtils.isNotEmpty(obj) && obj.hasOwnProperty(property);
|
|
184
|
+
};
|
|
185
|
+
/**
|
|
186
|
+
* Verifica se o parâmetro recebido é um objeto e se ele contém a propriedade ID.
|
|
187
|
+
*/
|
|
188
|
+
AgroObjectUtils.hasId = function (obj) {
|
|
189
|
+
return AgroObjectUtils.isNotEmpty(obj) && obj.hasOwnProperty("id");
|
|
190
|
+
};
|
|
191
|
+
/**
|
|
192
|
+
* Verifica se o valor informado no parâmetro possui as propriedades de uma entidade SDL (id e createdAt).
|
|
193
|
+
* @param obj
|
|
194
|
+
* @returns
|
|
195
|
+
*/
|
|
196
|
+
AgroObjectUtils.isSDLEntity = function (obj) {
|
|
197
|
+
return AgroObjectUtils.isNotEmpty(obj) && obj.hasOwnProperty("id") && obj.hasOwnProperty("createdAt");
|
|
198
|
+
};
|
|
199
|
+
/**
|
|
200
|
+
* Verifica se um objeto é valido, considerando que haja no mínimo 1 propriedade
|
|
201
|
+
*/
|
|
202
|
+
AgroObjectUtils.isValid = function (obj) {
|
|
203
|
+
return Object.keys(obj).length > AGRO_NUMBERS.ZERO && AgroObjectUtils.isNotEmpty(obj);
|
|
204
|
+
};
|
|
205
|
+
/**
|
|
206
|
+
* Verifica se um objeto é inválido, considerando que não haja nenhuma propriedade
|
|
207
|
+
*/
|
|
208
|
+
AgroObjectUtils.isInvalid = function (obj) {
|
|
209
|
+
return !AgroObjectUtils.isValid(obj);
|
|
210
|
+
};
|
|
211
|
+
/**
|
|
212
|
+
* Encontra uma propriedade em um objeto pelo nome e retorna seu valor.
|
|
213
|
+
* Se o valor for um objeto, retorna o próprio objeto.
|
|
214
|
+
*
|
|
215
|
+
* @param obj O objeto onde buscar.
|
|
216
|
+
* @param key O nome da propriedade a ser encontrada.
|
|
217
|
+
* @param deepSearch Indica se a busca deve ser em profundidade (padrão: true).
|
|
218
|
+
* @returns O valor da propriedade, ou undefined se não for encontrada.
|
|
219
|
+
*/
|
|
220
|
+
AgroObjectUtils.findProperty = function (obj, key, deepSearch) {
|
|
221
|
+
if (deepSearch === void 0) { deepSearch = true; }
|
|
222
|
+
if (AgroObjectUtils.isInvalid(obj)) {
|
|
223
|
+
throw new Error("O primeiro argumento deve ser um objeto.");
|
|
224
|
+
}
|
|
225
|
+
if (key in obj) {
|
|
226
|
+
return obj[key];
|
|
227
|
+
}
|
|
228
|
+
if (deepSearch) {
|
|
229
|
+
for (var prop in obj) {
|
|
230
|
+
if (obj.hasOwnProperty(prop) && typeof obj[prop] === "object") {
|
|
231
|
+
var result = AgroObjectUtils.findProperty(obj[prop], key, deepSearch);
|
|
232
|
+
if (result !== undefined) {
|
|
233
|
+
return result;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
return undefined;
|
|
239
|
+
};
|
|
240
|
+
/**
|
|
241
|
+
* Recebe uma string (JSON) e tenta converter para um objeto.
|
|
242
|
+
* @param value
|
|
243
|
+
*/
|
|
244
|
+
AgroObjectUtils.fromString = function (value) {
|
|
245
|
+
return JSON.parse(value) || undefined;
|
|
246
|
+
};
|
|
247
|
+
return AgroObjectUtils;
|
|
248
|
+
}());
|
|
249
|
+
export { AgroObjectUtils };
|
|
250
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1vYmplY3QtdXRpbHMuY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbW1vbi9hZ3JvLW9iamVjdC11dGlscy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXhDLE9BQU8sRUFBRSxlQUFlLElBQUksR0FBRyxFQUFFLGVBQWUsSUFBSSxXQUFXLEVBQUUsQ0FBQztBQUVsRTs7R0FFRztBQUNIO0lBQUE7SUE4UUEsQ0FBQztJQTdRRzs7OztPQUlHO0lBQ0ksaUNBQWlCLEdBQXhCLFVBQXlCLEdBQVE7UUFDN0IsT0FBTyxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsS0FBSyxTQUFTLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxvQ0FBb0IsR0FBM0IsVUFBNEIsR0FBUTtRQUNoQyxPQUFPLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksd0JBQVEsR0FBZixVQUFnQixHQUFRO1FBQ3BCLE9BQU8sT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDO0lBQ25DLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksd0JBQVEsR0FBZixVQUFnQixHQUFRO1FBQ3BCLE9BQU8sT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDO0lBQ25DLENBQUM7SUFFRDs7OztPQUlHO0lBQ0kseUJBQVMsR0FBaEIsVUFBaUIsR0FBUTtRQUNyQixPQUFPLE9BQU8sR0FBRyxLQUFLLFNBQVMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLDBCQUFVLEdBQWpCLFVBQWtCLEdBQVE7UUFDdEIsT0FBTyxPQUFPLEdBQUcsS0FBSyxVQUFVLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSx1QkFBTyxHQUFkLFVBQWUsR0FBUTtRQUNuQixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSx3QkFBUSxHQUFmLFVBQWdCLEdBQVE7UUFDcEIsT0FBTyxPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxzQkFBTSxHQUFiLFVBQWMsR0FBUTtRQUNsQixPQUFPLEdBQUcsWUFBWSxJQUFJLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSx1QkFBTyxHQUFkLFVBQWUsR0FBUTtRQUNuQixPQUFPLEdBQUcsWUFBWSxLQUFLLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSx3QkFBUSxHQUFmLFVBQWdCLEdBQVE7UUFDcEIsT0FBTyxHQUFHLFlBQVksTUFBTSxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksMkJBQVcsR0FBbEIsVUFBbUIsR0FBUTtRQUN2QixPQUFPLGVBQWUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksZUFBZSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxlQUFlLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVHLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksdUJBQU8sR0FBZCxVQUFlLEdBQVE7UUFDbkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDaEMsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFFRCxLQUFLLElBQU0sR0FBRyxJQUFJLEdBQUcsRUFBRTtZQUNuQixJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pFLE9BQU8sS0FBSyxDQUFDO2FBQ2hCO1NBQ0o7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSx1QkFBTyxHQUFkLFVBQWUsSUFBUyxFQUFFLElBQVM7UUFDL0IsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDL0MsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksc0JBQU0sR0FBYixVQUFjLEdBQVE7UUFDbEIsT0FBTyxHQUFHLEtBQUssSUFBSSxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0kseUJBQVMsR0FBaEIsVUFBaUIsR0FBUTtRQUNyQixPQUFPLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLHNCQUFNLEdBQWIsVUFBYyxHQUFRO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLDBCQUFVLEdBQWpCLFVBQWtCLEdBQVE7UUFDdEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDaEMsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFFRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLHVCQUFPLEdBQWQsVUFBZSxHQUFRO1FBQ25CLE9BQU8sQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLGdDQUFnQixHQUF2QixVQUF3QixHQUFRLEVBQUUsUUFBZ0I7UUFDOUMsT0FBTyxlQUFlLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVEOztPQUVHO0lBQ0kscUJBQUssR0FBWixVQUFhLEdBQVE7UUFDakIsT0FBTyxlQUFlLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSwyQkFBVyxHQUFsQixVQUFtQixHQUFRO1FBQ3ZCLE9BQU8sZUFBZSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDMUcsQ0FBQztJQUVEOztPQUVHO0lBQ0ksdUJBQU8sR0FBZCxVQUFlLEdBQVE7UUFDbkIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUMsSUFBSSxJQUFJLGVBQWUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUYsQ0FBQztJQUVEOztPQUVHO0lBQ0kseUJBQVMsR0FBaEIsVUFBaUIsR0FBUTtRQUNyQixPQUFPLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSw0QkFBWSxHQUFuQixVQUFvQixHQUF3QixFQUFFLEdBQVcsRUFBRSxVQUEwQjtRQUExQiwyQkFBQSxFQUFBLGlCQUEwQjtRQUNqRixJQUFJLGVBQWUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1NBQy9EO1FBRUQsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFO1lBQ1osT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDbkI7UUFFRCxJQUFJLFVBQVUsRUFBRTtZQUNaLEtBQUssSUFBTSxJQUFJLElBQUksR0FBRyxFQUFFO2dCQUNwQixJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssUUFBUSxFQUFFO29CQUMzRCxJQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7b0JBQ3hFLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTt3QkFDdEIsT0FBTyxNQUFNLENBQUM7cUJBQ2pCO2lCQUNKO2FBQ0o7U0FDSjtRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7O09BR0c7SUFDSSwwQkFBVSxHQUFqQixVQUFrQixLQUFhO1FBQzNCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxTQUFTLENBQUM7SUFDMUMsQ0FBQztJQUNMLHNCQUFDO0FBQUQsQ0FBQyxBQTlRRCxJQThRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFHUk9fTlVNQkVSUyB9IGZyb20gXCIuLi9lbnVtc1wiO1xyXG5cclxuZXhwb3J0IHsgQWdyb09iamVjdFV0aWxzIGFzIEFPVSwgQWdyb09iamVjdFV0aWxzIGFzIE9iamVjdFV0aWxzIH07XHJcblxyXG4vKipcclxuICogQ2xhc3NlIHV0aWxpdMOhcmlhIHBhcmEgb3BlcmHDp8O1ZXMgZGUgb2JqZXRvLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEFncm9PYmplY3RVdGlscyB7XHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byDDqSBudWxvIG91IGluZGVmaW5pZG8uXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gZm9yIG51bG8gb3UgaW5kZWZpbmlkbywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNOdWxsT3JVbmRlZmluZWQob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gb2JqID09PSBudWxsIHx8IG9iaiA9PT0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIG7Do28gw6kgbnVsbyBlIG7Do28gw6kgaW5kZWZpbmlkby5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBuw6NvIGZvciBudWxvIGUgbsOjbyBmb3IgaW5kZWZpbmlkbywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNOb3ROdWxsT3JVbmRlZmluZWQob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIUFncm9PYmplY3RVdGlscy5pc051bGxPclVuZGVmaW5lZChvYmopO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIMOpIHVtYSBzdHJpbmcuXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gZm9yIHVtYSBzdHJpbmcsIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzU3RyaW5nKG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBvYmogPT09IFwic3RyaW5nXCI7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgdW0gbsO6bWVyby5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBmb3IgdW0gbsO6bWVybywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNOdW1iZXIob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gXCJudW1iZXJcIjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byDDqSB1bSBib29sZWFuby5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBmb3IgdW0gYm9vbGVhbm8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzQm9vbGVhbihvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2Ygb2JqID09PSBcImJvb2xlYW5cIjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byDDqSB1bWEgZnVuw6fDo28uXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gZm9yIHVtYSBmdW7Dp8OjbywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNGdW5jdGlvbihvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2Ygb2JqID09PSBcImZ1bmN0aW9uXCI7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgdW0gYXJyYXkuXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gZm9yIHVtIGFycmF5LCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc0FycmF5KG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkob2JqKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIG8gdmFsb3IgaW5mb3JtYWRvIMOpIHVtIG9iamV0by5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBmb3IgdW0gb2JqZXRvLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc09iamVjdChvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2Ygb2JqID09PSBcIm9iamVjdFwiO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIMOpIHVtYSBkYXRhLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIGZvciB1bWEgZGF0YSwgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNEYXRlKG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIERhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgdW0gZXJyby5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBmb3IgdW0gZXJybywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNFcnJvcihvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBFcnJvcjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byDDqSB1bWEgZXhwcmVzc8OjbyByZWd1bGFyLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIGZvciB1bWEgZXhwcmVzc8OjbyByZWd1bGFyLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc1JlZ0V4cChvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBSZWdFeHA7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgdW0gdmFsb3IgcHJpbWl0aXZvLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIGZvciB1bSB2YWxvciBwcmltaXRpdm8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzUHJpbWl0aXZlKG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIEFncm9PYmplY3RVdGlscy5pc1N0cmluZyhvYmopIHx8IEFncm9PYmplY3RVdGlscy5pc051bWJlcihvYmopIHx8IEFncm9PYmplY3RVdGlscy5pc0Jvb2xlYW4ob2JqKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHRvZG9zIG9zIHZhbG9yZXMgZGUgdW0gb2JqZXRvIHPDo28gbnVsb3Mgb3UgaW5kZWZpbmlkb3MuXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgdG9kb3Mgb3MgdmFsb3JlcyBkbyBvYmpldG8gZm9yZW0gbnVsb3Mgb3UgaW5kZWZpbmlkb3MsIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGFsbE51bGwob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIUFncm9PYmplY3RVdGlscy5pc09iamVjdChvYmopKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIG9iaikge1xyXG4gICAgICAgICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkgJiYgIUFncm9PYmplY3RVdGlscy5pc051bGxPclVuZGVmaW5lZChvYmpba2V5XSkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb21wYXJhIGRvaXMgb2JqZXRvcyBwYXJhIHZlcmlmaWNhciBzZSBzw6NvIGlndWFpcy5cclxuICAgICAqIEBwYXJhbSBvYmoxIC0gTyBwcmltZWlybyBvYmpldG8gYSBzZXIgY29tcGFyYWRvLlxyXG4gICAgICogQHBhcmFtIG9iajIgLSBPIHNlZ3VuZG8gb2JqZXRvIGEgc2VyIGNvbXBhcmFkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2Ugb3Mgb2JqZXRvcyBmb3JlbSBpZ3VhaXMsIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzRXF1YWwob2JqMTogYW55LCBvYmoyOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoSlNPTi5zdHJpbmdpZnkob2JqMSkgPT09IEpTT04uc3RyaW5naWZ5KG9iajIpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIMOpIG51bG8uXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gZm9yIG51bG8gb3UgdW0gb2JqZXRvIHZhemlvLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc051bGwob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gb2JqID09PSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIG7Do28gw6kgbnVsby5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBuw6NvIGZvciBudWxvLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc05vdE51bGwob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIUFncm9PYmplY3RVdGlscy5pc051bGwob2JqKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnZlcnRlIHVtIG9iamV0byBwYXJhIHVtYSBzdHJpbmcgSlNPTi5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciBjb252ZXJ0aWRvLlxyXG4gICAgICogQHJldHVybnMgQSBzdHJpbmcgSlNPTiByZXByZXNlbnRhbmRvIG8gb2JqZXRvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgdG9KU09OKG9iajogYW55KTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkob2JqKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byBuw6NvIMOpIHZhemlvLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIG7Do28gZm9yIHZhemlvLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc05vdEVtcHR5KG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFBZ3JvT2JqZWN0VXRpbHMuaXNPYmplY3Qob2JqKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqKS5sZW5ndGggIT09IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgdmF6aW8uXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gZm9yIHZhemlvLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc0VtcHR5KG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICFBZ3JvT2JqZWN0VXRpbHMuaXNOb3RFbXB0eShvYmopO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIG7Do28gZXN0w6EgdmF6aW8gZSBjb250w6ltIHVtYSBkZXRlcm1pbmFkYSBwcm9wcmllZGFkZS5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHBhcmFtIHByb3BlcnR5IC0gQSBwcm9wcmllZGFkZSBhIHNlciB2ZXJpZmljYWRhLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBuw6NvIGVzdGl2ZXIgdmF6aW8gZSBjb250aXZlciBhIHByb3ByaWVkYWRlLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBjb250YWluc1Byb3BlcnR5KG9iajogYW55LCBwcm9wZXJ0eTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIEFncm9PYmplY3RVdGlscy5pc05vdEVtcHR5KG9iaikgJiYgb2JqLmhhc093blByb3BlcnR5KHByb3BlcnR5KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIG8gcGFyw6JtZXRybyByZWNlYmlkbyDDqSB1bSBvYmpldG8gZSBzZSBlbGUgY29udMOpbSBhIHByb3ByaWVkYWRlIElELlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaGFzSWQob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gQWdyb09iamVjdFV0aWxzLmlzTm90RW1wdHkob2JqKSAmJiBvYmouaGFzT3duUHJvcGVydHkoXCJpZFwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIG8gdmFsb3IgaW5mb3JtYWRvIG5vIHBhcsOibWV0cm8gcG9zc3VpIGFzIHByb3ByaWVkYWRlcyBkZSB1bWEgZW50aWRhZGUgU0RMIChpZCBlIGNyZWF0ZWRBdCkuXHJcbiAgICAgKiBAcGFyYW0gb2JqXHJcbiAgICAgKiBAcmV0dXJuc1xyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNTRExFbnRpdHkob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gQWdyb09iamVjdFV0aWxzLmlzTm90RW1wdHkob2JqKSAmJiBvYmouaGFzT3duUHJvcGVydHkoXCJpZFwiKSAmJiBvYmouaGFzT3duUHJvcGVydHkoXCJjcmVhdGVkQXRcIik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgdmFsaWRvLCBjb25zaWRlcmFuZG8gcXVlIGhhamEgbm8gbcOtbmltbyAxIHByb3ByaWVkYWRlXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc1ZhbGlkKG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iaikubGVuZ3RoID4gQUdST19OVU1CRVJTLlpFUk8gJiYgQWdyb09iamVjdFV0aWxzLmlzTm90RW1wdHkob2JqKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byDDqSBpbnbDoWxpZG8sIGNvbnNpZGVyYW5kbyBxdWUgbsOjbyBoYWphIG5lbmh1bWEgcHJvcHJpZWRhZGVcclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzSW52YWxpZChvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhQWdyb09iamVjdFV0aWxzLmlzVmFsaWQob2JqKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEVuY29udHJhIHVtYSBwcm9wcmllZGFkZSBlbSB1bSBvYmpldG8gcGVsbyBub21lIGUgcmV0b3JuYSBzZXUgdmFsb3IuXHJcbiAgICAgKiBTZSBvIHZhbG9yIGZvciB1bSBvYmpldG8sIHJldG9ybmEgbyBwcsOzcHJpbyBvYmpldG8uXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIG9iaiBPIG9iamV0byBvbmRlIGJ1c2Nhci5cclxuICAgICAqIEBwYXJhbSBrZXkgTyBub21lIGRhIHByb3ByaWVkYWRlIGEgc2VyIGVuY29udHJhZGEuXHJcbiAgICAgKiBAcGFyYW0gZGVlcFNlYXJjaCBJbmRpY2Egc2UgYSBidXNjYSBkZXZlIHNlciBlbSBwcm9mdW5kaWRhZGUgKHBhZHLDo286IHRydWUpLlxyXG4gICAgICogQHJldHVybnMgTyB2YWxvciBkYSBwcm9wcmllZGFkZSwgb3UgdW5kZWZpbmVkIHNlIG7Do28gZm9yIGVuY29udHJhZGEuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBmaW5kUHJvcGVydHkob2JqOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBrZXk6IHN0cmluZywgZGVlcFNlYXJjaDogYm9vbGVhbiA9IHRydWUpOiBhbnkge1xyXG4gICAgICAgIGlmIChBZ3JvT2JqZWN0VXRpbHMuaXNJbnZhbGlkKG9iaikpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTyBwcmltZWlybyBhcmd1bWVudG8gZGV2ZSBzZXIgdW0gb2JqZXRvLlwiKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChrZXkgaW4gb2JqKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBvYmpba2V5XTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChkZWVwU2VhcmNoKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgcHJvcCBpbiBvYmopIHtcclxuICAgICAgICAgICAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkocHJvcCkgJiYgdHlwZW9mIG9ialtwcm9wXSA9PT0gXCJvYmplY3RcIikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IEFncm9PYmplY3RVdGlscy5maW5kUHJvcGVydHkob2JqW3Byb3BdLCBrZXksIGRlZXBTZWFyY2gpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlY2ViZSB1bWEgc3RyaW5nIChKU09OKSBlIHRlbnRhIGNvbnZlcnRlciBwYXJhIHVtIG9iamV0by5cclxuICAgICAqIEBwYXJhbSB2YWx1ZVxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgZnJvbVN0cmluZyh2YWx1ZTogc3RyaW5nKTogYW55IHtcclxuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZSh2YWx1ZSkgfHwgdW5kZWZpbmVkO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|