@senior-agronegocio/angular-components 0.0.9883 → 1.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/README.md +25 -0
- package/agro-angular-components.module.d.ts +13 -9
- package/common/agro-array-utils.class.d.ts +48 -48
- package/common/agro-cookie-utils.class.d.ts +9 -9
- package/common/agro-date-utils.class.d.ts +88 -88
- package/common/agro-logics.class.d.ts +23 -23
- package/common/agro-name-utils.class.d.ts +22 -22
- package/common/agro-number-utils.class.d.ts +77 -77
- package/common/agro-object-stringifier.class.d.ts +16 -16
- package/common/agro-object-utils.class.d.ts +184 -173
- package/common/agro-platform-utils.class.d.ts +60 -60
- package/common/agro-regex.constant.d.ts +155 -155
- package/common/agro-string-utils.class.d.ts +97 -97
- package/common/agro-unit-converter.class.d.ts +23 -23
- package/common/colors.class.d.ts +78 -78
- package/common/edl-query-builder.class.d.ts +27 -0
- package/common/index.d.ts +15 -12
- package/components/cancel-event-dialog/cancel-event-dialog-config.d.ts +8 -8
- package/components/cancel-event-dialog/cancel-event-dialog.component.d.ts +34 -33
- package/components/cancel-event-dialog/cancel-event-dialog.module.d.ts +14 -2
- package/components/cancel-event-dialog/index.d.ts +3 -3
- package/components/event-control-board/common/control-status.d.ts +5 -5
- package/components/event-control-board/common/documentsToIssue.d.ts +4 -4
- package/components/event-control-board/common/event-control-constants.d.ts +11 -11
- package/components/event-control-board/common/event-operation.d.ts +52 -52
- package/components/event-control-board/common/event-origin.d.ts +12 -12
- package/components/event-control-board/common/event-status.d.ts +7 -7
- package/components/event-control-board/common/input-fields-translate.d.ts +5 -5
- package/components/event-control-board/common/input-fields.d.ts +5 -5
- package/components/event-control-board/common/invoice-type.d.ts +9 -9
- package/components/event-control-board/common/lookup-error-message.constants.d.ts +3 -3
- package/components/event-control-board/common/operation.d.ts +5 -5
- package/components/event-control-board/common/operationType.d.ts +5 -5
- package/components/event-control-board/common/status-entity.d.ts +4 -4
- package/components/event-control-board/common/ticket-status.d.ts +7 -7
- package/components/event-control-board/common/transfer-status.d.ts +6 -6
- package/components/event-control-board/event-control-board.component.d.ts +120 -106
- package/components/event-control-board/event-control-board.module.d.ts +31 -2
- package/components/event-control-board/index.d.ts +22 -22
- package/components/event-control-board/service/e001pes/e001pes-dto.d.ts +12 -12
- package/components/event-control-board/service/e001pes/e001pes.d.ts +15 -15
- package/components/event-control-board/service/e001pes/e001pes.module.d.ts +7 -2
- package/components/event-control-board/service/e001pes/e001pes.service.d.ts +16 -13
- package/components/event-control-board/service/e001tns/e001tns-dto.d.ts +14 -14
- package/components/event-control-board/service/e001tns/e001tns.d.ts +19 -19
- package/components/event-control-board/service/e001tns/e001tns.module.d.ts +7 -2
- package/components/event-control-board/service/e001tns/e001tns.service.d.ts +14 -11
- package/components/event-control-board/service/e012fam/e012fam-dto.d.ts +11 -11
- package/components/event-control-board/service/e012fam/e012fam.d.ts +14 -14
- package/components/event-control-board/service/e012fam/e012fam.service.d.ts +14 -11
- package/components/event-control-board/service/e070emp/e070emp-dto.d.ts +10 -10
- package/components/event-control-board/service/e070emp/e070emp.d.ts +13 -13
- package/components/event-control-board/service/e070emp/e070emp.module.d.ts +7 -2
- package/components/event-control-board/service/e070emp/e070emp.service.d.ts +15 -12
- package/components/event-control-board/service/e070fil/e070fil-dto.d.ts +14 -14
- package/components/event-control-board/service/e070fil/e070fil.d.ts +17 -17
- package/components/event-control-board/service/e070fil/e070fil.module.d.ts +7 -2
- package/components/event-control-board/service/e070fil/e070fil.service.d.ts +15 -12
- package/components/event-control-board/service/e075der/e075der-dto.d.ts +15 -15
- package/components/event-control-board/service/e075der/e075der.d.ts +18 -18
- package/components/event-control-board/service/e075der/e075der.module.d.ts +7 -2
- package/components/event-control-board/service/e075der/e075der.service.d.ts +15 -12
- package/components/event-control-board/service/e113saf/e113saf-dto.d.ts +11 -11
- package/components/event-control-board/service/e113saf/e113saf.d.ts +14 -14
- package/components/event-control-board/service/e205dep/deposit-dto.d.ts +11 -11
- package/components/event-control-board/service/e205dep/e205dep-dto.d.ts +15 -15
- package/components/event-control-board/service/e205dep/e205dep.d.ts +16 -16
- package/components/event-control-board/service/e205dep/e205dep.service.d.ts +15 -12
- package/components/event-control-board/service/event-control/event-control-dto.d.ts +15 -15
- package/components/event-control-board/service/event-control/event-control.d.ts +21 -21
- package/components/event-control-board/service/event-control/event-control.module.d.ts +7 -2
- package/components/event-control-board/service/event-control/event-control.service.d.ts +14 -11
- package/components/event-control-board/service/event-control-item/event-control-item-dto.d.ts +18 -18
- package/components/event-control-board/service/event-control-item/event-control-item.d.ts +25 -25
- package/components/event-control-board/service/event-control-item/event-control-item.module.d.ts +7 -2
- package/components/event-control-board/service/event-control-item/event-control-item.service.d.ts +18 -15
- package/components/event-control-board/service/external-invoice/external-invoice-dto.d.ts +13 -13
- package/components/event-control-board/service/external-invoice/external-invoice.d.ts +13 -13
- package/components/event-control-board/service/external-invoice/external-invoice.module.d.ts +7 -2
- package/components/event-control-board/service/external-invoice/external-invoice.service.d.ts +14 -11
- package/components/event-control-board/service/fixation-entity/fixation-dto.d.ts +41 -41
- package/components/event-control-board/service/fixation-entity/fixation.module.d.ts +7 -2
- package/components/event-control-board/service/fixation-entity/fixation.service.d.ts +18 -15
- package/components/event-control-board/service/invoice/invoice-dto.d.ts +15 -15
- package/components/event-control-board/service/invoice/invoice.d.ts +21 -21
- package/components/event-control-board/service/invoice/invoice.module.d.ts +7 -2
- package/components/event-control-board/service/invoice/invoice.service.d.ts +14 -11
- package/components/event-control-board/service/origination/operationType.d.ts +5 -5
- package/components/event-control-board/service/origination/origination-dto.d.ts +50 -50
- package/components/event-control-board/service/origination/origination.d.ts +51 -51
- package/components/event-control-board/service/origination/origination.module.d.ts +7 -2
- package/components/event-control-board/service/origination/origination.service.d.ts +14 -11
- package/components/event-control-board/service/paginator-storage.service.d.ts +8 -8
- package/components/event-control-board/service/rural-estate/rural-estate-dto.d.ts +28 -28
- package/components/event-control-board/service/rural-estate/rural-estate.d.ts +34 -34
- package/components/event-control-board/service/rural-estate/rural-estate.module.d.ts +7 -2
- package/components/event-control-board/service/rural-estate/rural-estate.service.d.ts +14 -11
- package/components/event-control-board/service/ticket/ticket-dto.d.ts +17 -17
- package/components/event-control-board/service/ticket/ticket.d.ts +18 -18
- package/components/event-control-board/service/ticket/ticket.module.d.ts +7 -2
- package/components/event-control-board/service/ticket/ticket.service.d.ts +48 -45
- package/components/event-control-board/service/transfer/transfer-dto.d.ts +32 -32
- package/components/event-control-board/service/transfer/transfer.module.d.ts +7 -2
- package/components/event-control-board/service/transfer/transfer.service.d.ts +16 -13
- package/components/event-control-board/shared.module.d.ts +31 -2
- package/components/event-steps/event-steps.component.d.ts +39 -36
- package/components/event-steps/event-steps.module.d.ts +9 -2
- package/components/event-steps/index.d.ts +2 -2
- package/components/financial-title-table/financial-title-table-options.interface.d.ts +10 -10
- package/components/financial-title-table/financial-title-table.component.d.ts +128 -126
- package/components/financial-title-table/financial-title-table.module.d.ts +26 -2
- package/components/financial-title-table/index.d.ts +4 -4
- package/components/financial-title-table/services/financial/agro-financial.service.d.ts +26 -23
- package/components/financial-title-table/services/financial/enums.d.ts +27 -27
- package/components/financial-title-table/services/financial/index.d.ts +3 -3
- package/components/financial-title-table/services/financial/intefaces.d.ts +107 -107
- package/components/index.d.ts +5 -5
- package/components/modal-invoice-pj/for-fixation/modal-fixation-options.interface.d.ts +5 -5
- package/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.component.d.ts +40 -36
- package/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.module.d.ts +26 -2
- package/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.component.d.ts +32 -28
- package/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.module.d.ts +26 -2
- package/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.component.d.ts +20 -17
- package/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.module.d.ts +26 -2
- package/components/modal-invoice-pj/index.d.ts +9 -9
- package/components/modal-invoice-pj/modal-invoice-pj-base.class.d.ts +64 -55
- package/components/modal-invoice-pj/modal-invoice-pj-options.interface.d.ts +10 -10
- package/components/modal-invoice-pj/modal-shared-imports.d.ts +7 -8
- package/components/modal-invoice-pj/services/agro-invoice/agro-invoice.module.d.ts +8 -2
- package/components/modal-invoice-pj/services/agro-invoice/agro-invoice.service.d.ts +19 -16
- package/components/modal-invoice-pj/services/agro-invoice/index.d.ts +2 -2
- package/components/modal-invoice-pj/services/agro-invoice/interfaces.d.ts +75 -75
- package/enums/agro-entity-status.enum.d.ts +4 -4
- package/enums/agro-numbers.enum.d.ts +1008 -1008
- package/enums/agro-string-masks.enum.d.ts +10 -10
- package/enums/date-comparison-type.enum.d.ts +4 -4
- package/enums/fixation-status.d.ts +8 -8
- package/enums/http-codes.enum.d.ts +64 -64
- package/enums/index.d.ts +8 -7
- package/enums/invoice-status.enum.d.ts +12 -12
- package/enums/number-comparison-type.enum.d.ts +8 -8
- package/enums/unit-measurement.enum.d.ts +49 -49
- package/esm2022/agro-angular-components.module.mjs +24 -0
- package/esm2022/common/agro-array-utils.class.mjs +74 -0
- package/esm2022/common/agro-cookie-utils.class.mjs +47 -0
- package/esm2022/common/agro-date-utils.class.mjs +121 -0
- package/esm2022/common/agro-logics.class.mjs +54 -0
- package/esm2022/common/agro-name-utils.class.mjs +60 -0
- package/esm2022/common/agro-number-utils.class.mjs +129 -0
- package/esm2022/common/agro-object-stringifier.class.mjs +34 -0
- package/esm2022/common/agro-object-utils.class.mjs +320 -0
- package/esm2022/common/agro-platform-utils.class.mjs +119 -0
- package/esm2022/common/agro-regex.constant.mjs +156 -0
- package/esm2022/common/agro-string-utils.class.mjs +363 -0
- package/esm2022/common/agro-unit-converter.class.mjs +254 -0
- package/esm2022/common/colors.class.mjs +79 -0
- package/esm2022/common/edl-query-builder.class.mjs +141 -0
- package/esm2022/common/index.mjs +14 -0
- package/esm2022/components/cancel-event-dialog/cancel-event-dialog-config.mjs +2 -0
- package/esm2022/components/cancel-event-dialog/cancel-event-dialog.component.mjs +117 -0
- package/esm2022/components/cancel-event-dialog/cancel-event-dialog.module.mjs +24 -0
- package/esm2022/components/cancel-event-dialog/index.mjs +3 -0
- package/esm2022/components/event-control-board/common/control-status.mjs +7 -0
- package/esm2022/components/event-control-board/common/documentsToIssue.mjs +6 -0
- package/esm2022/components/event-control-board/common/event-control-constants.mjs +113 -0
- package/esm2022/components/event-control-board/common/event-operation.mjs +54 -0
- package/esm2022/components/event-control-board/common/event-origin.mjs +14 -0
- package/esm2022/components/event-control-board/common/event-status.mjs +9 -0
- package/esm2022/components/event-control-board/common/input-fields-translate.mjs +11 -0
- package/esm2022/components/event-control-board/common/input-fields.mjs +7 -0
- package/esm2022/components/event-control-board/common/invoice-type.mjs +11 -0
- package/esm2022/components/event-control-board/common/lookup-error-message.constants.mjs +11 -0
- package/esm2022/components/event-control-board/common/operation.mjs +7 -0
- package/esm2022/components/event-control-board/common/operationType.mjs +7 -0
- package/esm2022/components/event-control-board/common/status-entity.mjs +6 -0
- package/esm2022/components/event-control-board/common/ticket-status.mjs +9 -0
- package/esm2022/components/event-control-board/common/transfer-status.mjs +8 -0
- package/esm2022/components/event-control-board/event-control-board.component.mjs +609 -0
- package/esm2022/components/event-control-board/event-control-board.module.mjs +120 -0
- package/esm2022/components/event-control-board/index.mjs +22 -0
- package/esm2022/components/event-control-board/service/e001pes/e001pes-dto.mjs +2 -0
- package/esm2022/components/event-control-board/service/e001pes/e001pes.mjs +30 -0
- package/esm2022/components/event-control-board/service/e001pes/e001pes.module.mjs +34 -0
- package/esm2022/components/event-control-board/service/e001pes/e001pes.service.mjs +33 -0
- package/esm2022/components/event-control-board/service/e001tns/e001tns-dto.mjs +2 -0
- package/esm2022/components/event-control-board/service/e001tns/e001tns.mjs +51 -0
- package/esm2022/components/event-control-board/service/e001tns/e001tns.module.mjs +38 -0
- package/esm2022/components/event-control-board/service/e001tns/e001tns.service.mjs +23 -0
- package/esm2022/components/event-control-board/service/e012fam/e012fam-dto.mjs +2 -0
- package/esm2022/components/event-control-board/service/e012fam/e012fam.mjs +29 -0
- package/esm2022/components/event-control-board/service/e012fam/e012fam.service.mjs +23 -0
- package/esm2022/components/event-control-board/service/e070emp/e070emp-dto.mjs +2 -0
- package/esm2022/components/event-control-board/service/e070emp/e070emp.mjs +37 -0
- package/esm2022/components/event-control-board/service/e070emp/e070emp.module.mjs +34 -0
- package/esm2022/components/event-control-board/service/e070emp/e070emp.service.mjs +30 -0
- package/esm2022/components/event-control-board/service/e070fil/e070fil-dto.mjs +2 -0
- package/esm2022/components/event-control-board/service/e070fil/e070fil.mjs +52 -0
- package/esm2022/components/event-control-board/service/e070fil/e070fil.module.mjs +34 -0
- package/esm2022/components/event-control-board/service/e070fil/e070fil.service.mjs +30 -0
- package/esm2022/components/event-control-board/service/e075der/e075der-dto.mjs +2 -0
- package/esm2022/components/event-control-board/service/e075der/e075der.mjs +41 -0
- package/esm2022/components/event-control-board/service/e075der/e075der.module.mjs +34 -0
- package/esm2022/components/event-control-board/service/e075der/e075der.service.mjs +28 -0
- package/esm2022/components/event-control-board/service/e113saf/e113saf-dto.mjs +2 -0
- package/{esm2015/components/event-control-board/service/e113saf/e113saf.js → esm2022/components/event-control-board/service/e113saf/e113saf.mjs} +29 -20
- package/esm2022/components/event-control-board/service/e205dep/deposit-dto.mjs +2 -0
- package/esm2022/components/event-control-board/service/e205dep/e205dep-dto.mjs +2 -0
- package/esm2022/components/event-control-board/service/e205dep/e205dep.mjs +31 -0
- package/esm2022/components/event-control-board/service/e205dep/e205dep.service.mjs +28 -0
- package/esm2022/components/event-control-board/service/event-control/event-control-dto.mjs +2 -0
- package/esm2022/components/event-control-board/service/event-control/event-control.mjs +32 -0
- package/esm2022/components/event-control-board/service/event-control/event-control.module.mjs +34 -0
- package/esm2022/components/event-control-board/service/event-control/event-control.service.mjs +23 -0
- package/esm2022/components/event-control-board/service/event-control-item/event-control-item-dto.mjs +2 -0
- package/esm2022/components/event-control-board/service/event-control-item/event-control-item.mjs +52 -0
- package/esm2022/components/event-control-board/service/event-control-item/event-control-item.module.mjs +34 -0
- package/esm2022/components/event-control-board/service/event-control-item/event-control-item.service.mjs +28 -0
- package/esm2022/components/event-control-board/service/external-invoice/external-invoice-dto.mjs +2 -0
- package/esm2022/components/event-control-board/service/external-invoice/external-invoice.mjs +28 -0
- package/esm2022/components/event-control-board/service/external-invoice/external-invoice.module.mjs +34 -0
- package/esm2022/components/event-control-board/service/external-invoice/external-invoice.service.mjs +23 -0
- package/esm2022/components/event-control-board/service/fixation-entity/fixation-dto.mjs +2 -0
- package/esm2022/components/event-control-board/service/fixation-entity/fixation.module.mjs +34 -0
- package/esm2022/components/event-control-board/service/fixation-entity/fixation.service.mjs +28 -0
- package/esm2022/components/event-control-board/service/invoice/invoice-dto.mjs +2 -0
- package/esm2022/components/event-control-board/service/invoice/invoice.mjs +56 -0
- package/esm2022/components/event-control-board/service/invoice/invoice.module.mjs +38 -0
- package/esm2022/components/event-control-board/service/invoice/invoice.service.mjs +23 -0
- package/esm2022/components/event-control-board/service/origination/operationType.mjs +7 -0
- package/esm2022/components/event-control-board/service/origination/origination-dto.mjs +2 -0
- package/esm2022/components/event-control-board/service/origination/origination.mjs +86 -0
- package/esm2022/components/event-control-board/service/origination/origination.module.mjs +34 -0
- package/esm2022/components/event-control-board/service/origination/origination.service.mjs +23 -0
- package/esm2022/components/event-control-board/service/paginator-storage.service.mjs +21 -0
- package/esm2022/components/event-control-board/service/rural-estate/rural-estate-dto.mjs +2 -0
- package/esm2022/components/event-control-board/service/rural-estate/rural-estate.mjs +102 -0
- package/esm2022/components/event-control-board/service/rural-estate/rural-estate.module.mjs +34 -0
- package/esm2022/components/event-control-board/service/rural-estate/rural-estate.service.mjs +23 -0
- package/esm2022/components/event-control-board/service/ticket/ticket-dto.mjs +2 -0
- package/esm2022/components/event-control-board/service/ticket/ticket.mjs +51 -0
- package/esm2022/components/event-control-board/service/ticket/ticket.module.mjs +38 -0
- package/esm2022/components/event-control-board/service/ticket/ticket.service.mjs +58 -0
- package/esm2022/components/event-control-board/service/transfer/transfer-dto.mjs +2 -0
- package/esm2022/components/event-control-board/service/transfer/transfer.module.mjs +38 -0
- package/esm2022/components/event-control-board/service/transfer/transfer.service.mjs +33 -0
- package/esm2022/components/event-control-board/shared.module.mjs +200 -0
- package/esm2022/components/event-steps/event-steps.component.mjs +129 -0
- package/esm2022/components/event-steps/event-steps.module.mjs +19 -0
- package/esm2022/components/event-steps/index.mjs +3 -0
- package/esm2022/components/financial-title-table/financial-title-table-options.interface.mjs +2 -0
- package/esm2022/components/financial-title-table/financial-title-table.component.mjs +422 -0
- package/esm2022/components/financial-title-table/financial-title-table.module.mjs +100 -0
- package/esm2022/components/financial-title-table/index.mjs +4 -0
- package/esm2022/components/financial-title-table/services/financial/agro-financial.service.mjs +68 -0
- package/esm2022/components/financial-title-table/services/financial/enums.mjs +33 -0
- package/esm2022/components/financial-title-table/services/financial/index.mjs +3 -0
- package/esm2022/components/financial-title-table/services/financial/intefaces.mjs +2 -0
- package/esm2022/components/index.mjs +6 -0
- package/esm2022/components/modal-invoice-pj/for-fixation/modal-fixation-options.interface.mjs +2 -0
- package/esm2022/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.component.mjs +190 -0
- package/esm2022/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.module.mjs +38 -0
- package/esm2022/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.component.mjs +67 -0
- package/esm2022/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.module.mjs +38 -0
- package/esm2022/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.component.mjs +41 -0
- package/esm2022/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.module.mjs +38 -0
- package/esm2022/components/modal-invoice-pj/index.mjs +8 -0
- package/esm2022/components/modal-invoice-pj/modal-invoice-pj-base.class.mjs +207 -0
- package/esm2022/components/modal-invoice-pj/modal-invoice-pj-options.interface.mjs +2 -0
- package/esm2022/components/modal-invoice-pj/modal-shared-imports.mjs +42 -0
- package/esm2022/components/modal-invoice-pj/services/agro-invoice/agro-invoice.module.mjs +41 -0
- package/esm2022/components/modal-invoice-pj/services/agro-invoice/agro-invoice.service.mjs +48 -0
- package/esm2022/components/modal-invoice-pj/services/agro-invoice/index.mjs +3 -0
- package/esm2022/components/modal-invoice-pj/services/agro-invoice/interfaces.mjs +13 -0
- package/esm2022/enums/agro-entity-status.enum.mjs +6 -0
- package/{esm5/enums/agro-numbers.enum.js → esm2022/enums/agro-numbers.enum.mjs} +1009 -1009
- package/esm2022/enums/agro-string-masks.enum.mjs +12 -0
- package/esm2022/enums/date-comparison-type.enum.mjs +6 -0
- package/esm2022/enums/fixation-status.mjs +10 -0
- package/{esm2015/enums/http-codes.enum.js → esm2022/enums/http-codes.enum.mjs} +66 -66
- package/esm2022/enums/index.mjs +8 -0
- package/esm2022/enums/invoice-status.enum.mjs +14 -0
- package/esm2022/enums/number-comparison-type.enum.mjs +10 -0
- package/esm2022/enums/unit-measurement.enum.mjs +60 -0
- package/esm2022/form-validator/agro-form-validator.mjs +315 -0
- package/esm2022/form-validator/index.mjs +2 -0
- package/esm2022/lib-translation.module.mjs +26 -0
- package/esm2022/pipe/cnpj-cpf/cnpj-cpf.pipe.mjs +30 -0
- package/esm2022/pipe/cnpj-cpf/cnpj-cpf.pipe.module.mjs +18 -0
- package/esm2022/pipe/cnpj-cpf/index.mjs +3 -0
- package/esm2022/pipe/index.mjs +6 -0
- package/esm2022/pipe/kilogram/index.mjs +3 -0
- package/esm2022/pipe/kilogram/kilogram.module.mjs +20 -0
- package/esm2022/pipe/kilogram/kilogram.pipe.mjs +38 -0
- package/esm2022/pipe/lib-translate.pipe.mjs +24 -0
- package/esm2022/pipe/stringifier/index.mjs +3 -0
- package/esm2022/pipe/stringifier/stringifier.pipe.mjs +15 -0
- package/esm2022/pipe/stringifier/stringifier.pipe.module.mjs +18 -0
- package/esm2022/pipe/telephone/index.mjs +3 -0
- package/esm2022/pipe/telephone/telephone.pipe.mjs +93 -0
- package/esm2022/pipe/telephone/telephone.pipe.module.mjs +18 -0
- package/esm2022/public-api.mjs +11 -0
- package/esm2022/senior-agronegocio-angular-components.mjs +5 -0
- package/esm2022/services/agro-entity-service.mjs +137 -0
- package/esm2022/services/i18n/en-US.mjs +322 -0
- package/esm2022/services/i18n/es-CO.mjs +322 -0
- package/esm2022/services/i18n/pt-BR.mjs +322 -0
- package/esm2022/services/index.mjs +3 -0
- package/esm2022/services/lib-translation.service.mjs +58 -0
- package/esm2022/services/producer-invoice/index.mjs +3 -0
- package/esm2022/services/producer-invoice/producer-invoice-dto.mjs +2 -0
- package/esm2022/services/producer-invoice/producer-invoice.mjs +49 -0
- package/esm2022/services/producer-invoice/producer-invoice.service.mjs +56 -0
- package/esm2022/services/websocket/async-lock.mjs +27 -0
- package/esm2022/services/websocket/index.mjs +7 -0
- package/esm2022/services/websocket/models/index.mjs +2 -0
- package/esm2022/services/websocket/models/primitive-manager.mjs +45 -0
- package/esm2022/services/websocket/protocols/index.mjs +2 -0
- package/esm2022/services/websocket/protocols/on-event-options.mjs +2 -0
- package/esm2022/services/websocket/protocols/primitive-event.mjs +2 -0
- package/esm2022/services/websocket/user-information.service.mjs +34 -0
- package/esm2022/services/websocket/websocket.module.mjs +27 -0
- package/esm2022/services/websocket/websocket.service.mjs +327 -0
- package/{fesm2015/senior-agronegocio-angular-components.js → fesm2022/senior-agronegocio-angular-components.mjs} +8600 -7930
- package/fesm2022/senior-agronegocio-angular-components.mjs.map +1 -0
- package/form-validator/agro-form-validator.d.ts +117 -117
- package/form-validator/index.d.ts +1 -1
- package/index.d.ts +5 -0
- package/lib-translation.module.d.ts +8 -2
- package/package.json +60 -29
- package/pipe/cnpj-cpf/cnpj-cpf.pipe.d.ts +7 -4
- package/pipe/cnpj-cpf/cnpj-cpf.pipe.module.d.ts +8 -2
- package/pipe/cnpj-cpf/index.d.ts +2 -2
- package/pipe/index.d.ts +5 -5
- package/pipe/kilogram/index.d.ts +2 -2
- package/pipe/kilogram/kilogram.module.d.ts +8 -2
- package/pipe/kilogram/kilogram.pipe.d.ts +11 -8
- package/pipe/lib-translate.pipe.d.ts +10 -7
- package/pipe/stringifier/index.d.ts +2 -2
- package/pipe/stringifier/stringifier.pipe.d.ts +12 -9
- package/pipe/stringifier/stringifier.pipe.module.d.ts +8 -2
- package/pipe/telephone/index.d.ts +2 -2
- package/pipe/telephone/telephone.pipe.d.ts +24 -21
- package/pipe/telephone/telephone.pipe.module.d.ts +8 -2
- package/public-api.d.ts +9 -8
- package/services/agro-entity-service.d.ts +63 -62
- package/services/i18n/en-US.d.ts +321 -321
- package/services/i18n/es-CO.d.ts +321 -321
- package/services/i18n/pt-BR.d.ts +321 -321
- package/services/index.d.ts +2 -2
- package/services/lib-translation.service.d.ts +19 -16
- package/services/producer-invoice/index.d.ts +3 -3
- package/services/producer-invoice/producer-invoice-dto.d.ts +26 -26
- package/services/producer-invoice/producer-invoice.d.ts +27 -27
- package/services/producer-invoice/producer-invoice.service.d.ts +21 -18
- package/services/websocket/async-lock.d.ts +6 -6
- package/services/websocket/index.d.ts +6 -6
- package/services/websocket/models/index.d.ts +1 -1
- package/services/websocket/models/primitive-manager.d.ts +19 -19
- package/services/websocket/protocols/index.d.ts +2 -2
- package/services/websocket/protocols/on-event-options.d.ts +8 -8
- package/services/websocket/protocols/primitive-event.d.ts +10 -10
- package/services/websocket/user-information.service.d.ts +10 -7
- package/services/websocket/websocket.module.d.ts +7 -2
- package/services/websocket/websocket.service.d.ts +103 -100
- package/bundles/senior-agronegocio-angular-components.umd.js +0 -8888
- package/bundles/senior-agronegocio-angular-components.umd.js.map +0 -1
- package/bundles/senior-agronegocio-angular-components.umd.min.js +0 -17
- package/bundles/senior-agronegocio-angular-components.umd.min.js.map +0 -1
- package/esm2015/agro-angular-components.module.js +0 -22
- package/esm2015/common/agro-array-utils.class.js +0 -74
- package/esm2015/common/agro-cookie-utils.class.js +0 -47
- package/esm2015/common/agro-date-utils.class.js +0 -121
- package/esm2015/common/agro-logics.class.js +0 -54
- package/esm2015/common/agro-name-utils.class.js +0 -60
- package/esm2015/common/agro-number-utils.class.js +0 -129
- package/esm2015/common/agro-object-stringifier.class.js +0 -34
- package/esm2015/common/agro-object-utils.class.js +0 -301
- package/esm2015/common/agro-platform-utils.class.js +0 -119
- package/esm2015/common/agro-regex.constant.js +0 -156
- package/esm2015/common/agro-string-utils.class.js +0 -364
- package/esm2015/common/agro-unit-converter.class.js +0 -255
- package/esm2015/common/colors.class.js +0 -79
- package/esm2015/common/index.js +0 -13
- package/esm2015/components/cancel-event-dialog/cancel-event-dialog-config.js +0 -1
- package/esm2015/components/cancel-event-dialog/cancel-event-dialog.component.js +0 -117
- package/esm2015/components/cancel-event-dialog/cancel-event-dialog.module.js +0 -19
- package/esm2015/components/cancel-event-dialog/index.js +0 -3
- package/esm2015/components/event-control-board/common/control-status.js +0 -7
- package/esm2015/components/event-control-board/common/documentsToIssue.js +0 -6
- package/esm2015/components/event-control-board/common/event-control-constants.js +0 -113
- package/esm2015/components/event-control-board/common/event-operation.js +0 -54
- package/esm2015/components/event-control-board/common/event-origin.js +0 -14
- package/esm2015/components/event-control-board/common/event-status.js +0 -9
- package/esm2015/components/event-control-board/common/input-fields-translate.js +0 -11
- package/esm2015/components/event-control-board/common/input-fields.js +0 -7
- package/esm2015/components/event-control-board/common/invoice-type.js +0 -11
- package/esm2015/components/event-control-board/common/lookup-error-message.constants.js +0 -11
- package/esm2015/components/event-control-board/common/operation.js +0 -7
- package/esm2015/components/event-control-board/common/operationType.js +0 -7
- package/esm2015/components/event-control-board/common/status-entity.js +0 -6
- package/esm2015/components/event-control-board/common/ticket-status.js +0 -9
- package/esm2015/components/event-control-board/common/transfer-status.js +0 -8
- package/esm2015/components/event-control-board/event-control-board.component.js +0 -597
- package/esm2015/components/event-control-board/event-control-board.module.js +0 -66
- package/esm2015/components/event-control-board/index.js +0 -22
- package/esm2015/components/event-control-board/service/e001pes/e001pes-dto.js +0 -1
- package/esm2015/components/event-control-board/service/e001pes/e001pes.js +0 -20
- package/esm2015/components/event-control-board/service/e001pes/e001pes.module.js +0 -24
- package/esm2015/components/event-control-board/service/e001pes/e001pes.service.js +0 -34
- package/esm2015/components/event-control-board/service/e001tns/e001tns-dto.js +0 -1
- package/esm2015/components/event-control-board/service/e001tns/e001tns.js +0 -42
- package/esm2015/components/event-control-board/service/e001tns/e001tns.module.js +0 -26
- package/esm2015/components/event-control-board/service/e001tns/e001tns.service.js +0 -24
- package/esm2015/components/event-control-board/service/e012fam/e012fam-dto.js +0 -1
- package/esm2015/components/event-control-board/service/e012fam/e012fam.js +0 -20
- package/esm2015/components/event-control-board/service/e012fam/e012fam.service.js +0 -24
- package/esm2015/components/event-control-board/service/e070emp/e070emp-dto.js +0 -1
- package/esm2015/components/event-control-board/service/e070emp/e070emp.js +0 -29
- package/esm2015/components/event-control-board/service/e070emp/e070emp.module.js +0 -24
- package/esm2015/components/event-control-board/service/e070emp/e070emp.service.js +0 -31
- package/esm2015/components/event-control-board/service/e070fil/e070fil-dto.js +0 -1
- package/esm2015/components/event-control-board/service/e070fil/e070fil.js +0 -41
- package/esm2015/components/event-control-board/service/e070fil/e070fil.module.js +0 -24
- package/esm2015/components/event-control-board/service/e070fil/e070fil.service.js +0 -31
- package/esm2015/components/event-control-board/service/e075der/e075der-dto.js +0 -1
- package/esm2015/components/event-control-board/service/e075der/e075der.js +0 -31
- package/esm2015/components/event-control-board/service/e075der/e075der.module.js +0 -24
- package/esm2015/components/event-control-board/service/e075der/e075der.service.js +0 -29
- package/esm2015/components/event-control-board/service/e113saf/e113saf-dto.js +0 -1
- package/esm2015/components/event-control-board/service/e205dep/deposit-dto.js +0 -1
- package/esm2015/components/event-control-board/service/e205dep/e205dep-dto.js +0 -1
- package/esm2015/components/event-control-board/service/e205dep/e205dep.js +0 -20
- package/esm2015/components/event-control-board/service/e205dep/e205dep.service.js +0 -29
- package/esm2015/components/event-control-board/service/event-control/event-control-dto.js +0 -1
- package/esm2015/components/event-control-board/service/event-control/event-control.js +0 -20
- package/esm2015/components/event-control-board/service/event-control/event-control.module.js +0 -24
- package/esm2015/components/event-control-board/service/event-control/event-control.service.js +0 -24
- package/esm2015/components/event-control-board/service/event-control-item/event-control-item-dto.js +0 -1
- package/esm2015/components/event-control-board/service/event-control-item/event-control-item.js +0 -35
- package/esm2015/components/event-control-board/service/event-control-item/event-control-item.module.js +0 -24
- package/esm2015/components/event-control-board/service/event-control-item/event-control-item.service.js +0 -29
- package/esm2015/components/event-control-board/service/external-invoice/external-invoice-dto.js +0 -1
- package/esm2015/components/event-control-board/service/external-invoice/external-invoice.js +0 -20
- package/esm2015/components/event-control-board/service/external-invoice/external-invoice.module.js +0 -24
- package/esm2015/components/event-control-board/service/external-invoice/external-invoice.service.js +0 -24
- package/esm2015/components/event-control-board/service/fixation-entity/fixation-dto.js +0 -1
- package/esm2015/components/event-control-board/service/fixation-entity/fixation.module.js +0 -24
- package/esm2015/components/event-control-board/service/fixation-entity/fixation.service.js +0 -29
- package/esm2015/components/event-control-board/service/invoice/invoice-dto.js +0 -1
- package/esm2015/components/event-control-board/service/invoice/invoice.js +0 -43
- package/esm2015/components/event-control-board/service/invoice/invoice.module.js +0 -26
- package/esm2015/components/event-control-board/service/invoice/invoice.service.js +0 -24
- package/esm2015/components/event-control-board/service/origination/operationType.js +0 -7
- package/esm2015/components/event-control-board/service/origination/origination-dto.js +0 -1
- package/esm2015/components/event-control-board/service/origination/origination.js +0 -59
- package/esm2015/components/event-control-board/service/origination/origination.module.js +0 -24
- package/esm2015/components/event-control-board/service/origination/origination.service.js +0 -24
- package/esm2015/components/event-control-board/service/paginator-storage.service.js +0 -32
- package/esm2015/components/event-control-board/service/rural-estate/rural-estate-dto.js +0 -1
- package/esm2015/components/event-control-board/service/rural-estate/rural-estate.js +0 -78
- package/esm2015/components/event-control-board/service/rural-estate/rural-estate.module.js +0 -24
- package/esm2015/components/event-control-board/service/rural-estate/rural-estate.service.js +0 -24
- package/esm2015/components/event-control-board/service/ticket/ticket-dto.js +0 -1
- package/esm2015/components/event-control-board/service/ticket/ticket.js +0 -39
- package/esm2015/components/event-control-board/service/ticket/ticket.module.js +0 -26
- package/esm2015/components/event-control-board/service/ticket/ticket.service.js +0 -59
- package/esm2015/components/event-control-board/service/transfer/transfer-dto.js +0 -1
- package/esm2015/components/event-control-board/service/transfer/transfer.module.js +0 -26
- package/esm2015/components/event-control-board/service/transfer/transfer.service.js +0 -34
- package/esm2015/components/event-control-board/shared.module.js +0 -56
- package/esm2015/components/event-steps/event-steps.component.js +0 -103
- package/esm2015/components/event-steps/event-steps.module.js +0 -16
- package/esm2015/components/event-steps/index.js +0 -3
- package/esm2015/components/financial-title-table/financial-title-table-options.interface.js +0 -1
- package/esm2015/components/financial-title-table/financial-title-table.component.js +0 -416
- package/esm2015/components/financial-title-table/financial-title-table.module.js +0 -45
- package/esm2015/components/financial-title-table/index.js +0 -4
- package/esm2015/components/financial-title-table/services/financial/agro-financial.service.js +0 -69
- package/esm2015/components/financial-title-table/services/financial/enums.js +0 -33
- package/esm2015/components/financial-title-table/services/financial/index.js +0 -3
- package/esm2015/components/financial-title-table/services/financial/intefaces.js +0 -1
- package/esm2015/components/index.js +0 -6
- package/esm2015/components/modal-invoice-pj/for-fixation/modal-fixation-options.interface.js +0 -1
- package/esm2015/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.component.js +0 -191
- package/esm2015/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.module.js +0 -16
- package/esm2015/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.component.js +0 -64
- package/esm2015/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.module.js +0 -16
- package/esm2015/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.component.js +0 -37
- package/esm2015/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.module.js +0 -16
- package/esm2015/components/modal-invoice-pj/index.js +0 -8
- package/esm2015/components/modal-invoice-pj/modal-invoice-pj-base.class.js +0 -196
- package/esm2015/components/modal-invoice-pj/modal-invoice-pj-options.interface.js +0 -1
- package/esm2015/components/modal-invoice-pj/modal-shared-imports.js +0 -32
- package/esm2015/components/modal-invoice-pj/services/agro-invoice/agro-invoice.module.js +0 -28
- package/esm2015/components/modal-invoice-pj/services/agro-invoice/agro-invoice.service.js +0 -49
- package/esm2015/components/modal-invoice-pj/services/agro-invoice/index.js +0 -3
- package/esm2015/components/modal-invoice-pj/services/agro-invoice/interfaces.js +0 -13
- package/esm2015/enums/agro-entity-status.enum.js +0 -6
- package/esm2015/enums/agro-numbers.enum.js +0 -1009
- package/esm2015/enums/agro-string-masks.enum.js +0 -12
- package/esm2015/enums/date-comparison-type.enum.js +0 -6
- package/esm2015/enums/fixation-status.js +0 -10
- package/esm2015/enums/index.js +0 -8
- package/esm2015/enums/invoice-status.enum.js +0 -14
- package/esm2015/enums/number-comparison-type.enum.js +0 -10
- package/esm2015/enums/unit-measurement.enum.js +0 -60
- package/esm2015/form-validator/agro-form-validator.js +0 -319
- package/esm2015/form-validator/index.js +0 -2
- package/esm2015/lib-translation.module.js +0 -23
- package/esm2015/pipe/cnpj-cpf/cnpj-cpf.pipe.js +0 -28
- package/esm2015/pipe/cnpj-cpf/cnpj-cpf.pipe.module.js +0 -15
- package/esm2015/pipe/cnpj-cpf/index.js +0 -3
- package/esm2015/pipe/index.js +0 -6
- package/esm2015/pipe/kilogram/index.js +0 -3
- package/esm2015/pipe/kilogram/kilogram.module.js +0 -17
- package/esm2015/pipe/kilogram/kilogram.pipe.js +0 -38
- package/esm2015/pipe/lib-translate.pipe.js +0 -24
- package/esm2015/pipe/stringifier/index.js +0 -3
- package/esm2015/pipe/stringifier/stringifier.pipe.js +0 -13
- package/esm2015/pipe/stringifier/stringifier.pipe.module.js +0 -15
- package/esm2015/pipe/telephone/index.js +0 -3
- package/esm2015/pipe/telephone/telephone.pipe.js +0 -91
- package/esm2015/pipe/telephone/telephone.pipe.module.js +0 -15
- package/esm2015/public-api.js +0 -9
- package/esm2015/senior-agronegocio-angular-components.js +0 -7
- package/esm2015/services/agro-entity-service.js +0 -132
- package/esm2015/services/i18n/en-US.js +0 -322
- package/esm2015/services/i18n/es-CO.js +0 -322
- package/esm2015/services/i18n/pt-BR.js +0 -322
- package/esm2015/services/index.js +0 -3
- package/esm2015/services/lib-translation.service.js +0 -58
- package/esm2015/services/producer-invoice/index.js +0 -3
- package/esm2015/services/producer-invoice/producer-invoice-dto.js +0 -1
- package/esm2015/services/producer-invoice/producer-invoice.js +0 -32
- package/esm2015/services/producer-invoice/producer-invoice.service.js +0 -64
- package/esm2015/services/websocket/async-lock.js +0 -34
- package/esm2015/services/websocket/index.js +0 -6
- package/esm2015/services/websocket/models/index.js +0 -2
- package/esm2015/services/websocket/models/primitive-manager.js +0 -39
- package/esm2015/services/websocket/protocols/index.js +0 -1
- package/esm2015/services/websocket/protocols/on-event-options.js +0 -1
- package/esm2015/services/websocket/protocols/primitive-event.js +0 -1
- package/esm2015/services/websocket/user-information.service.js +0 -34
- package/esm2015/services/websocket/websocket.module.js +0 -21
- package/esm2015/services/websocket/websocket.service.js +0 -338
- package/esm5/agro-angular-components.module.js +0 -26
- package/esm5/common/agro-array-utils.class.js +0 -90
- package/esm5/common/agro-cookie-utils.class.js +0 -54
- package/esm5/common/agro-date-utils.class.js +0 -126
- package/esm5/common/agro-logics.class.js +0 -96
- package/esm5/common/agro-name-utils.class.js +0 -64
- package/esm5/common/agro-number-utils.class.js +0 -137
- package/esm5/common/agro-object-stringifier.class.js +0 -38
- package/esm5/common/agro-object-utils.class.js +0 -306
- package/esm5/common/agro-platform-utils.class.js +0 -123
- package/esm5/common/agro-regex.constant.js +0 -156
- package/esm5/common/agro-string-utils.class.js +0 -380
- package/esm5/common/agro-unit-converter.class.js +0 -258
- package/esm5/common/colors.class.js +0 -83
- package/esm5/common/index.js +0 -13
- package/esm5/components/cancel-event-dialog/cancel-event-dialog-config.js +0 -1
- package/esm5/components/cancel-event-dialog/cancel-event-dialog.component.js +0 -128
- package/esm5/components/cancel-event-dialog/cancel-event-dialog.module.js +0 -22
- package/esm5/components/cancel-event-dialog/index.js +0 -3
- package/esm5/components/event-control-board/common/control-status.js +0 -7
- package/esm5/components/event-control-board/common/documentsToIssue.js +0 -6
- package/esm5/components/event-control-board/common/event-control-constants.js +0 -113
- package/esm5/components/event-control-board/common/event-operation.js +0 -54
- package/esm5/components/event-control-board/common/event-origin.js +0 -14
- package/esm5/components/event-control-board/common/event-status.js +0 -9
- package/esm5/components/event-control-board/common/input-fields-translate.js +0 -11
- package/esm5/components/event-control-board/common/input-fields.js +0 -7
- package/esm5/components/event-control-board/common/invoice-type.js +0 -11
- package/esm5/components/event-control-board/common/lookup-error-message.constants.js +0 -11
- package/esm5/components/event-control-board/common/operation.js +0 -7
- package/esm5/components/event-control-board/common/operationType.js +0 -7
- package/esm5/components/event-control-board/common/status-entity.js +0 -6
- package/esm5/components/event-control-board/common/ticket-status.js +0 -9
- package/esm5/components/event-control-board/common/transfer-status.js +0 -8
- package/esm5/components/event-control-board/event-control-board.component.js +0 -619
- package/esm5/components/event-control-board/event-control-board.module.js +0 -69
- package/esm5/components/event-control-board/index.js +0 -22
- package/esm5/components/event-control-board/service/e001pes/e001pes-dto.js +0 -1
- package/esm5/components/event-control-board/service/e001pes/e001pes.js +0 -25
- package/esm5/components/event-control-board/service/e001pes/e001pes.module.js +0 -27
- package/esm5/components/event-control-board/service/e001pes/e001pes.service.js +0 -37
- package/esm5/components/event-control-board/service/e001tns/e001tns-dto.js +0 -1
- package/esm5/components/event-control-board/service/e001tns/e001tns.js +0 -45
- package/esm5/components/event-control-board/service/e001tns/e001tns.module.js +0 -29
- package/esm5/components/event-control-board/service/e001tns/e001tns.service.js +0 -27
- package/esm5/components/event-control-board/service/e012fam/e012fam-dto.js +0 -1
- package/esm5/components/event-control-board/service/e012fam/e012fam.js +0 -25
- package/esm5/components/event-control-board/service/e012fam/e012fam.service.js +0 -27
- package/esm5/components/event-control-board/service/e070emp/e070emp-dto.js +0 -1
- package/esm5/components/event-control-board/service/e070emp/e070emp.js +0 -34
- package/esm5/components/event-control-board/service/e070emp/e070emp.module.js +0 -27
- package/esm5/components/event-control-board/service/e070emp/e070emp.service.js +0 -34
- package/esm5/components/event-control-board/service/e070fil/e070fil-dto.js +0 -1
- package/esm5/components/event-control-board/service/e070fil/e070fil.js +0 -48
- package/esm5/components/event-control-board/service/e070fil/e070fil.module.js +0 -27
- package/esm5/components/event-control-board/service/e070fil/e070fil.service.js +0 -34
- package/esm5/components/event-control-board/service/e075der/e075der-dto.js +0 -1
- package/esm5/components/event-control-board/service/e075der/e075der.js +0 -36
- package/esm5/components/event-control-board/service/e075der/e075der.module.js +0 -27
- package/esm5/components/event-control-board/service/e075der/e075der.service.js +0 -32
- package/esm5/components/event-control-board/service/e113saf/e113saf-dto.js +0 -1
- package/esm5/components/event-control-board/service/e113saf/e113saf.js +0 -25
- package/esm5/components/event-control-board/service/e205dep/deposit-dto.js +0 -1
- package/esm5/components/event-control-board/service/e205dep/e205dep-dto.js +0 -1
- package/esm5/components/event-control-board/service/e205dep/e205dep.js +0 -25
- package/esm5/components/event-control-board/service/e205dep/e205dep.service.js +0 -32
- package/esm5/components/event-control-board/service/event-control/event-control-dto.js +0 -1
- package/esm5/components/event-control-board/service/event-control/event-control.js +0 -25
- package/esm5/components/event-control-board/service/event-control/event-control.module.js +0 -27
- package/esm5/components/event-control-board/service/event-control/event-control.service.js +0 -27
- package/esm5/components/event-control-board/service/event-control-item/event-control-item-dto.js +0 -1
- package/esm5/components/event-control-board/service/event-control-item/event-control-item.js +0 -40
- package/esm5/components/event-control-board/service/event-control-item/event-control-item.module.js +0 -27
- package/esm5/components/event-control-board/service/event-control-item/event-control-item.service.js +0 -32
- package/esm5/components/event-control-board/service/external-invoice/external-invoice-dto.js +0 -1
- package/esm5/components/event-control-board/service/external-invoice/external-invoice.js +0 -25
- package/esm5/components/event-control-board/service/external-invoice/external-invoice.module.js +0 -27
- package/esm5/components/event-control-board/service/external-invoice/external-invoice.service.js +0 -27
- package/esm5/components/event-control-board/service/fixation-entity/fixation-dto.js +0 -1
- package/esm5/components/event-control-board/service/fixation-entity/fixation.module.js +0 -27
- package/esm5/components/event-control-board/service/fixation-entity/fixation.service.js +0 -32
- package/esm5/components/event-control-board/service/invoice/invoice-dto.js +0 -1
- package/esm5/components/event-control-board/service/invoice/invoice.js +0 -48
- package/esm5/components/event-control-board/service/invoice/invoice.module.js +0 -29
- package/esm5/components/event-control-board/service/invoice/invoice.service.js +0 -27
- package/esm5/components/event-control-board/service/origination/operationType.js +0 -7
- package/esm5/components/event-control-board/service/origination/origination-dto.js +0 -1
- package/esm5/components/event-control-board/service/origination/origination.js +0 -62
- package/esm5/components/event-control-board/service/origination/origination.module.js +0 -27
- package/esm5/components/event-control-board/service/origination/origination.service.js +0 -27
- package/esm5/components/event-control-board/service/paginator-storage.service.js +0 -71
- package/esm5/components/event-control-board/service/rural-estate/rural-estate-dto.js +0 -1
- package/esm5/components/event-control-board/service/rural-estate/rural-estate.js +0 -83
- package/esm5/components/event-control-board/service/rural-estate/rural-estate.module.js +0 -27
- package/esm5/components/event-control-board/service/rural-estate/rural-estate.service.js +0 -27
- package/esm5/components/event-control-board/service/ticket/ticket-dto.js +0 -1
- package/esm5/components/event-control-board/service/ticket/ticket.js +0 -44
- package/esm5/components/event-control-board/service/ticket/ticket.module.js +0 -29
- package/esm5/components/event-control-board/service/ticket/ticket.service.js +0 -62
- package/esm5/components/event-control-board/service/transfer/transfer-dto.js +0 -1
- package/esm5/components/event-control-board/service/transfer/transfer.module.js +0 -29
- package/esm5/components/event-control-board/service/transfer/transfer.service.js +0 -37
- package/esm5/components/event-control-board/shared.module.js +0 -59
- package/esm5/components/event-steps/event-steps.component.js +0 -113
- package/esm5/components/event-steps/event-steps.module.js +0 -19
- package/esm5/components/event-steps/index.js +0 -3
- package/esm5/components/financial-title-table/financial-title-table-options.interface.js +0 -1
- package/esm5/components/financial-title-table/financial-title-table.component.js +0 -438
- package/esm5/components/financial-title-table/financial-title-table.module.js +0 -48
- package/esm5/components/financial-title-table/index.js +0 -4
- package/esm5/components/financial-title-table/services/financial/agro-financial.service.js +0 -76
- package/esm5/components/financial-title-table/services/financial/enums.js +0 -33
- package/esm5/components/financial-title-table/services/financial/index.js +0 -3
- package/esm5/components/financial-title-table/services/financial/intefaces.js +0 -1
- package/esm5/components/index.js +0 -6
- package/esm5/components/modal-invoice-pj/for-fixation/modal-fixation-options.interface.js +0 -1
- package/esm5/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.component.js +0 -223
- package/esm5/components/modal-invoice-pj/for-fixation/modal-invoice-pj-for-fixation.module.js +0 -19
- package/esm5/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.component.js +0 -67
- package/esm5/components/modal-invoice-pj/for-origination/modal-invoice-pj-for-origination.module.js +0 -19
- package/esm5/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.component.js +0 -40
- package/esm5/components/modal-invoice-pj/for-transfer/modal-invoice-pj-for-transfer.module.js +0 -19
- package/esm5/components/modal-invoice-pj/index.js +0 -8
- package/esm5/components/modal-invoice-pj/modal-invoice-pj-base.class.js +0 -213
- package/esm5/components/modal-invoice-pj/modal-invoice-pj-options.interface.js +0 -1
- package/esm5/components/modal-invoice-pj/modal-shared-imports.js +0 -32
- package/esm5/components/modal-invoice-pj/services/agro-invoice/agro-invoice.module.js +0 -31
- package/esm5/components/modal-invoice-pj/services/agro-invoice/agro-invoice.service.js +0 -56
- package/esm5/components/modal-invoice-pj/services/agro-invoice/index.js +0 -3
- package/esm5/components/modal-invoice-pj/services/agro-invoice/interfaces.js +0 -13
- package/esm5/enums/agro-entity-status.enum.js +0 -6
- package/esm5/enums/agro-string-masks.enum.js +0 -12
- package/esm5/enums/date-comparison-type.enum.js +0 -6
- package/esm5/enums/fixation-status.js +0 -10
- package/esm5/enums/http-codes.enum.js +0 -66
- package/esm5/enums/index.js +0 -8
- package/esm5/enums/invoice-status.enum.js +0 -14
- package/esm5/enums/number-comparison-type.enum.js +0 -10
- package/esm5/enums/unit-measurement.enum.js +0 -60
- package/esm5/form-validator/agro-form-validator.js +0 -341
- package/esm5/form-validator/index.js +0 -2
- package/esm5/lib-translation.module.js +0 -26
- package/esm5/pipe/cnpj-cpf/cnpj-cpf.pipe.js +0 -35
- package/esm5/pipe/cnpj-cpf/cnpj-cpf.pipe.module.js +0 -18
- package/esm5/pipe/cnpj-cpf/index.js +0 -3
- package/esm5/pipe/index.js +0 -6
- package/esm5/pipe/kilogram/index.js +0 -3
- package/esm5/pipe/kilogram/kilogram.module.js +0 -20
- package/esm5/pipe/kilogram/kilogram.pipe.js +0 -41
- package/esm5/pipe/lib-translate.pipe.js +0 -29
- package/esm5/pipe/stringifier/index.js +0 -3
- package/esm5/pipe/stringifier/stringifier.pipe.js +0 -16
- package/esm5/pipe/stringifier/stringifier.pipe.module.js +0 -18
- package/esm5/pipe/telephone/index.js +0 -3
- package/esm5/pipe/telephone/telephone.pipe.js +0 -95
- package/esm5/pipe/telephone/telephone.pipe.module.js +0 -18
- package/esm5/public-api.js +0 -9
- package/esm5/senior-agronegocio-angular-components.js +0 -7
- package/esm5/services/agro-entity-service.js +0 -143
- package/esm5/services/i18n/en-US.js +0 -322
- package/esm5/services/i18n/es-CO.js +0 -322
- package/esm5/services/i18n/pt-BR.js +0 -322
- package/esm5/services/index.js +0 -3
- package/esm5/services/lib-translation.service.js +0 -60
- package/esm5/services/producer-invoice/index.js +0 -3
- package/esm5/services/producer-invoice/producer-invoice-dto.js +0 -1
- package/esm5/services/producer-invoice/producer-invoice.js +0 -37
- package/esm5/services/producer-invoice/producer-invoice.service.js +0 -72
- package/esm5/services/websocket/async-lock.js +0 -43
- package/esm5/services/websocket/index.js +0 -6
- package/esm5/services/websocket/models/index.js +0 -2
- package/esm5/services/websocket/models/primitive-manager.js +0 -58
- package/esm5/services/websocket/protocols/index.js +0 -1
- package/esm5/services/websocket/protocols/on-event-options.js +0 -1
- package/esm5/services/websocket/protocols/primitive-event.js +0 -1
- package/esm5/services/websocket/user-information.service.js +0 -38
- package/esm5/services/websocket/websocket.module.js +0 -24
- package/esm5/services/websocket/websocket.service.js +0 -410
- package/fesm2015/senior-agronegocio-angular-components.js.map +0 -1
- package/fesm5/senior-agronegocio-angular-components.js +0 -8646
- package/fesm5/senior-agronegocio-angular-components.js.map +0 -1
- package/senior-agronegocio-angular-components.d.ts +0 -6
- package/senior-agronegocio-angular-components.metadata.json +0 -1
|
@@ -1,597 +0,0 @@
|
|
|
1
|
-
import { __awaiter, __decorate } from "tslib";
|
|
2
|
-
import { registerLocaleData } from "@angular/common";
|
|
3
|
-
import localePt from "@angular/common/locales/pt";
|
|
4
|
-
import { Component, EventEmitter, Input, LOCALE_ID, Output } from "@angular/core";
|
|
5
|
-
import { FormBuilder, FormGroup, Validators } from "@angular/forms";
|
|
6
|
-
import { BadgeColors, ButtonPriority, FieldType, FormField, StepState } from "@seniorsistemas/angular-components";
|
|
7
|
-
import { DialogService, MessageService } from "primeng";
|
|
8
|
-
import { Subject } from "rxjs";
|
|
9
|
-
import { catchError, takeUntil } from "rxjs/operators";
|
|
10
|
-
import { AGRO_NUMBERS } from "../../enums/agro-numbers.enum";
|
|
11
|
-
import { LibTranslationService } from "../../services/lib-translation.service";
|
|
12
|
-
import { ProducerInvoiceService } from "../../services/producer-invoice";
|
|
13
|
-
import { WebsocketService } from "../../services/websocket";
|
|
14
|
-
import { CancelEventDialogComponent } from "../cancel-event-dialog/cancel-event-dialog.component";
|
|
15
|
-
import { eventItem } from "./common/event-control-constants";
|
|
16
|
-
import { EventOperation } from "./common/event-operation";
|
|
17
|
-
import { EventOrigin } from "./common/event-origin";
|
|
18
|
-
import { EventStatus } from "./common/event-status";
|
|
19
|
-
import { invoiceTypeTranslate } from "./common/input-fields-translate";
|
|
20
|
-
import { LookupErrorMessages } from "./common/lookup-error-message.constants";
|
|
21
|
-
import { EventControlItemService, ReprocessFailedEvent } from "./service/event-control-item/event-control-item.service";
|
|
22
|
-
import { EventControlService } from "./service/event-control/event-control.service";
|
|
23
|
-
import { PaginatorStorageService } from "./service/paginator-storage.service";
|
|
24
|
-
const moment = require("moment");
|
|
25
|
-
let EventControlBoardComponent = class EventControlBoardComponent {
|
|
26
|
-
constructor(translate, formBuilder, websocketService, eventControlService, paginatorStorageService, eventControlItemService, producerInvoiceService, messageService, dialogService) {
|
|
27
|
-
this.translate = translate;
|
|
28
|
-
this.formBuilder = formBuilder;
|
|
29
|
-
this.websocketService = websocketService;
|
|
30
|
-
this.eventControlService = eventControlService;
|
|
31
|
-
this.paginatorStorageService = paginatorStorageService;
|
|
32
|
-
this.eventControlItemService = eventControlItemService;
|
|
33
|
-
this.producerInvoiceService = producerInvoiceService;
|
|
34
|
-
this.messageService = messageService;
|
|
35
|
-
this.dialogService = dialogService;
|
|
36
|
-
this.processedEvent = new EventEmitter();
|
|
37
|
-
this.steps = [];
|
|
38
|
-
this.showSidebar = false;
|
|
39
|
-
this.showReprocessButton = false;
|
|
40
|
-
this.gridTotalRecords = AGRO_NUMBERS.ZERO;
|
|
41
|
-
this.gridLoading = false;
|
|
42
|
-
this.displayModal = false;
|
|
43
|
-
this.ButtonPriority = ButtonPriority;
|
|
44
|
-
this.BadgeColors = BadgeColors;
|
|
45
|
-
this.permissions = {};
|
|
46
|
-
this.localeConfig = {};
|
|
47
|
-
this.currentListParams = {
|
|
48
|
-
page: AGRO_NUMBERS.ZERO,
|
|
49
|
-
size: AGRO_NUMBERS.TEN,
|
|
50
|
-
displayFields: this.getDisplayFields(),
|
|
51
|
-
sort: [],
|
|
52
|
-
filterData: {}
|
|
53
|
-
};
|
|
54
|
-
this.ngUnsubscribe = new Subject();
|
|
55
|
-
this.eventItem = eventItem;
|
|
56
|
-
this.invoiceTypeTranslate = invoiceTypeTranslate;
|
|
57
|
-
registerLocaleData(localePt);
|
|
58
|
-
}
|
|
59
|
-
ngOnInit() {
|
|
60
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
61
|
-
this.gridColumns = this.setGridColumns();
|
|
62
|
-
this.callWebsocket();
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
ngOnChanges(changes) {
|
|
66
|
-
if (!this.filterFormGroup) {
|
|
67
|
-
this.initializeFormGroup();
|
|
68
|
-
this.setFormFields();
|
|
69
|
-
}
|
|
70
|
-
this.updateCompanyAndBranchFormFields(changes);
|
|
71
|
-
this.updateEventOriginAndControlCodeFormFields(changes);
|
|
72
|
-
this.updateEventStatusAndCreatedDateFormFields(changes);
|
|
73
|
-
this.onSearch();
|
|
74
|
-
}
|
|
75
|
-
updateCompanyAndBranchFormFields(changes) {
|
|
76
|
-
var _a, _b, _c, _d;
|
|
77
|
-
if (changes.company && changes.company.currentValue !== changes.company.previousValue) {
|
|
78
|
-
(_a = this.filterFormGroup.get("company")) === null || _a === void 0 ? void 0 : _a.setValue((_b = changes.company.currentValue) !== null && _b !== void 0 ? _b : null);
|
|
79
|
-
}
|
|
80
|
-
if (changes.branch && changes.branch.currentValue !== changes.branch.previousValue) {
|
|
81
|
-
(_c = this.filterFormGroup.get("branch")) === null || _c === void 0 ? void 0 : _c.setValue((_d = changes.branch.currentValue) !== null && _d !== void 0 ? _d : null);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
updateEventOriginAndControlCodeFormFields(changes) {
|
|
85
|
-
var _a, _b, _c, _d;
|
|
86
|
-
if (changes.eventOrigin && changes.eventOrigin.currentValue !== changes.eventOrigin.previousValue) {
|
|
87
|
-
(_a = this.filterFormGroup.get("eventOrigin")) === null || _a === void 0 ? void 0 : _a.setValue((_b = changes.eventOrigin.currentValue) !== null && _b !== void 0 ? _b : null);
|
|
88
|
-
}
|
|
89
|
-
if (changes.controlCode && changes.controlCode.currentValue !== changes.controlCode.previousValue) {
|
|
90
|
-
(_c = this.filterFormGroup.get("controlCode")) === null || _c === void 0 ? void 0 : _c.setValue((_d = changes.controlCode.currentValue) !== null && _d !== void 0 ? _d : null);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
updateEventStatusAndCreatedDateFormFields(changes) {
|
|
94
|
-
var _a, _b, _c, _d;
|
|
95
|
-
if (changes.eventStatus && changes.eventStatus.currentValue !== changes.eventStatus.previousValue) {
|
|
96
|
-
(_a = this.filterFormGroup.get("status")) === null || _a === void 0 ? void 0 : _a.setValue((_b = changes.eventStatus.currentValue) !== null && _b !== void 0 ? _b : null);
|
|
97
|
-
}
|
|
98
|
-
if (changes.createdDate && changes.createdDate.currentValue !== changes.createdDate.previousValue) {
|
|
99
|
-
(_c = this.filterFormGroup.get("createdDate")) === null || _c === void 0 ? void 0 : _c.setValue((_d = changes.createdDate.currentValue) !== null && _d !== void 0 ? _d : null);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
initializeFormGroup() {
|
|
103
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
104
|
-
this.filterFormGroup = this.formBuilder.group({
|
|
105
|
-
company: [{ value: (_a = this.company) !== null && _a !== void 0 ? _a : null, disabled: false }, Validators.compose([])],
|
|
106
|
-
branch: [{ value: (_b = this.branch) !== null && _b !== void 0 ? _b : null, disabled: false }, Validators.compose([])],
|
|
107
|
-
controlCode: [{ value: (_c = this.controlCode) !== null && _c !== void 0 ? _c : null, disabled: false }, Validators.compose([])],
|
|
108
|
-
externalId: [{ value: (_d = this.externalId) !== null && _d !== void 0 ? _d : null, disabled: false }, Validators.compose([])],
|
|
109
|
-
eventOrigin: [{ value: (_e = this.eventOrigin) !== null && _e !== void 0 ? _e : null, disabled: false }, Validators.compose([])],
|
|
110
|
-
status: [{ value: (_f = this.eventStatus) !== null && _f !== void 0 ? _f : null, disabled: false }, Validators.compose([])],
|
|
111
|
-
createdDate: [{ value: (_g = this.createdDate) !== null && _g !== void 0 ? _g : null, disabled: false }, Validators.compose([])],
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
setFormFields() {
|
|
115
|
-
this.filterFields = [
|
|
116
|
-
new FormField({
|
|
117
|
-
name: "company",
|
|
118
|
-
type: FieldType.Chips,
|
|
119
|
-
}),
|
|
120
|
-
new FormField({
|
|
121
|
-
name: "branch",
|
|
122
|
-
type: FieldType.Chips,
|
|
123
|
-
}),
|
|
124
|
-
new FormField({
|
|
125
|
-
name: "controlCode",
|
|
126
|
-
type: FieldType.Chips,
|
|
127
|
-
}),
|
|
128
|
-
new FormField({
|
|
129
|
-
name: "externalId",
|
|
130
|
-
type: FieldType.String,
|
|
131
|
-
}),
|
|
132
|
-
new FormField({
|
|
133
|
-
name: "eventOrigin",
|
|
134
|
-
type: FieldType.Enum,
|
|
135
|
-
}),
|
|
136
|
-
new FormField({
|
|
137
|
-
name: "status",
|
|
138
|
-
type: FieldType.Enum,
|
|
139
|
-
}),
|
|
140
|
-
new FormField({
|
|
141
|
-
name: "createdDate",
|
|
142
|
-
type: FieldType.Date,
|
|
143
|
-
}),
|
|
144
|
-
];
|
|
145
|
-
}
|
|
146
|
-
setGridColumns() {
|
|
147
|
-
return [
|
|
148
|
-
{ field: "company", header: this.translate.instant("agro.angular_components.company") },
|
|
149
|
-
{ field: "branch", header: this.translate.instant("agro.angular_components.label_branch") },
|
|
150
|
-
{ field: "eventOrigin", header: this.translate.instant("agro.angular_components.event_origin_label") },
|
|
151
|
-
{ field: "controlCode", header: this.translate.instant("agro.angular_components.control_code") },
|
|
152
|
-
];
|
|
153
|
-
}
|
|
154
|
-
ngOnDestroy() {
|
|
155
|
-
this.ngUnsubscribe.next();
|
|
156
|
-
this.ngUnsubscribe.complete();
|
|
157
|
-
this.websocketService.disconnect();
|
|
158
|
-
}
|
|
159
|
-
callWebsocket() {
|
|
160
|
-
this.websocketService
|
|
161
|
-
.onEvent({
|
|
162
|
-
domain: "agro",
|
|
163
|
-
service: "agro_events",
|
|
164
|
-
primitive: "processedEvent",
|
|
165
|
-
})
|
|
166
|
-
.pipe(takeUntil(this.ngUnsubscribe))
|
|
167
|
-
.subscribe((message) => {
|
|
168
|
-
var _a, _b;
|
|
169
|
-
const externalId = (_a = message === null || message === void 0 ? void 0 : message.data) === null || _a === void 0 ? void 0 : _a.externalId;
|
|
170
|
-
const filterData = this.filterFormGroup.getRawValue();
|
|
171
|
-
if (!externalId || this.externalId === externalId || ((_b = this.gridData) === null || _b === void 0 ? void 0 : _b.some((item) => item.externalId === externalId))) {
|
|
172
|
-
this.updateGrid({ filterData });
|
|
173
|
-
this.processedEvent.emit(message);
|
|
174
|
-
}
|
|
175
|
-
});
|
|
176
|
-
this.websocketService
|
|
177
|
-
.onEvent({
|
|
178
|
-
domain: "platform",
|
|
179
|
-
service: "notifications",
|
|
180
|
-
primitive: "userNotified",
|
|
181
|
-
})
|
|
182
|
-
.pipe(takeUntil(this.ngUnsubscribe))
|
|
183
|
-
.subscribe(() => {
|
|
184
|
-
const filterData = this.filterFormGroup.getRawValue();
|
|
185
|
-
this.updateGrid({ filterData });
|
|
186
|
-
});
|
|
187
|
-
}
|
|
188
|
-
onSearch() {
|
|
189
|
-
const filterData = this.filterFormGroup.getRawValue();
|
|
190
|
-
this.gridLoading = true;
|
|
191
|
-
this.resetGrid({ filterData });
|
|
192
|
-
this.updateGrid({ filterData });
|
|
193
|
-
}
|
|
194
|
-
resetGrid(listParams) {
|
|
195
|
-
if (listParams) {
|
|
196
|
-
this.currentListParams = Object.assign(Object.assign({}, this.currentListParams), listParams);
|
|
197
|
-
}
|
|
198
|
-
this.currentListParams.page = AGRO_NUMBERS.ZERO;
|
|
199
|
-
}
|
|
200
|
-
updateGrid(listParams = {}) {
|
|
201
|
-
var _a;
|
|
202
|
-
this.currentListParams = Object.assign(Object.assign({}, this.currentListParams), listParams);
|
|
203
|
-
if (((_a = this.currentListParams.sort) === null || _a === void 0 ? void 0 : _a.length) <= 0) {
|
|
204
|
-
this.currentListParams.sort = this.standalone ?
|
|
205
|
-
[{ field: "createdDate", order: 1 }] :
|
|
206
|
-
[{ field: "lastModifiedDate", order: -1 }];
|
|
207
|
-
}
|
|
208
|
-
this.currentListParams.filterQuery = this.getFilter();
|
|
209
|
-
this.eventControlService
|
|
210
|
-
.list(this.currentListParams)
|
|
211
|
-
.pipe(takeUntil(this.ngUnsubscribe), catchError((err) => {
|
|
212
|
-
this.gridLoading = false;
|
|
213
|
-
throw err;
|
|
214
|
-
}))
|
|
215
|
-
.subscribe((list) => {
|
|
216
|
-
this.gridData = list.contents;
|
|
217
|
-
this.gridTotalRecords = list.totalElements;
|
|
218
|
-
if (!this.gridData || this.gridData.length <= AGRO_NUMBERS.ZERO) {
|
|
219
|
-
this.gridLoading = false;
|
|
220
|
-
return;
|
|
221
|
-
}
|
|
222
|
-
this.processEventControlItems();
|
|
223
|
-
});
|
|
224
|
-
}
|
|
225
|
-
getFilter() {
|
|
226
|
-
var _a, _b;
|
|
227
|
-
const { filterData } = this.currentListParams;
|
|
228
|
-
const filters = [];
|
|
229
|
-
if ((_a = filterData["company"]) === null || _a === void 0 ? void 0 : _a.id) {
|
|
230
|
-
filters.push(`e070emp.id eq '${filterData["company"].id}'`);
|
|
231
|
-
}
|
|
232
|
-
if ((_b = filterData["branch"]) === null || _b === void 0 ? void 0 : _b.id) {
|
|
233
|
-
filters.push(`e070fil.id eq '${filterData["branch"].id}'`);
|
|
234
|
-
}
|
|
235
|
-
const controlCode = filterData["controlCode"];
|
|
236
|
-
if (controlCode && Array.isArray(controlCode) && controlCode.length > 0) {
|
|
237
|
-
const codes = controlCode.map((code) => parseInt(code, 10)).join(",");
|
|
238
|
-
filters.push(`controlCode in (${codes})`);
|
|
239
|
-
}
|
|
240
|
-
if (filterData["externalId"]) {
|
|
241
|
-
filters.push(`externalId eq '${filterData["externalId"]}'`);
|
|
242
|
-
}
|
|
243
|
-
if (filterData["eventOrigin"]) {
|
|
244
|
-
filters.push(`eventOrigin eq '${filterData["eventOrigin"]}'`);
|
|
245
|
-
}
|
|
246
|
-
if (filterData["status"]) {
|
|
247
|
-
filters.push(`eventControlItem.status eq '${filterData["status"]}'`);
|
|
248
|
-
}
|
|
249
|
-
if (filterData["createdDate"]) {
|
|
250
|
-
filters.push(`createdDate ge '${this.getStartDate(filterData["createdDate"])}'`);
|
|
251
|
-
filters.push(`createdDate le '${this.getEndDate(filterData["createdDate"])}'`);
|
|
252
|
-
}
|
|
253
|
-
return filters.join(" and ");
|
|
254
|
-
}
|
|
255
|
-
getEndDate(value) {
|
|
256
|
-
const endDate = moment(value).endOf("day").format("YYYY-MM-DDTHH:mm:ss") + "Z";
|
|
257
|
-
return endDate;
|
|
258
|
-
}
|
|
259
|
-
getStartDate(value) {
|
|
260
|
-
const startDate = moment(value).startOf("day").format("YYYY-MM-DDTHH:mm:ss") + "Z";
|
|
261
|
-
return startDate;
|
|
262
|
-
}
|
|
263
|
-
getDisplayFields() {
|
|
264
|
-
return [
|
|
265
|
-
'*',
|
|
266
|
-
'company.*',
|
|
267
|
-
'branch.*',
|
|
268
|
-
'eventControlItem.eventDomain',
|
|
269
|
-
'eventControlItem.id',
|
|
270
|
-
'eventControlItem.eventDomain',
|
|
271
|
-
'eventControlItem.eventService',
|
|
272
|
-
'eventControlItem.eventPrimitive',
|
|
273
|
-
'eventControlItem.eventControl',
|
|
274
|
-
'eventControlItem.eventGroup',
|
|
275
|
-
'eventControlItem.sequence',
|
|
276
|
-
'eventControlItem.eventOperation',
|
|
277
|
-
'eventControlItem.output',
|
|
278
|
-
'eventControlItem.input',
|
|
279
|
-
'eventControlItem.status',
|
|
280
|
-
'eventControlItem.subTitle',
|
|
281
|
-
'eventControlItem.message',
|
|
282
|
-
'eventControlItem.createdBy',
|
|
283
|
-
'eventControlItem.createdDate',
|
|
284
|
-
'eventControlItem.lastModifiedBy',
|
|
285
|
-
'eventControlItem.lastModifiedDate',
|
|
286
|
-
];
|
|
287
|
-
}
|
|
288
|
-
processEventControlItems() {
|
|
289
|
-
this.gridData.forEach((item) => {
|
|
290
|
-
const sortedItems = item.eventControlItem.sort((a, b) => {
|
|
291
|
-
return a.sequence - b.sequence;
|
|
292
|
-
});
|
|
293
|
-
const steps = sortedItems.map((detail, index) => this.createStep(detail, item, index));
|
|
294
|
-
const activeIndex = this.calculateActiveIndex(sortedItems);
|
|
295
|
-
item.groups = [{ steps, activeIndex }];
|
|
296
|
-
item.activeIndex = activeIndex;
|
|
297
|
-
});
|
|
298
|
-
this.gridDataResolved = this.gridData;
|
|
299
|
-
this.gridLoading = false;
|
|
300
|
-
}
|
|
301
|
-
calculateActiveIndex(details) {
|
|
302
|
-
const lastActive = details.reduce((lastIndex, detail, currentIndex) => (detail.status !== EventStatus.PENDING ? currentIndex : lastIndex), -1);
|
|
303
|
-
if (lastActive !== -1 && details[lastActive].status === EventStatus.SUCCESS) {
|
|
304
|
-
return lastActive + 1;
|
|
305
|
-
}
|
|
306
|
-
return lastActive;
|
|
307
|
-
}
|
|
308
|
-
createStep(detail, item, detailIndex) {
|
|
309
|
-
console.log('Detail:', detail);
|
|
310
|
-
return {
|
|
311
|
-
item: detail,
|
|
312
|
-
controlCode: item.controlCode,
|
|
313
|
-
eventType: item.eventOrigin,
|
|
314
|
-
label: this.getEventLabel(detail),
|
|
315
|
-
subLabel: this.formatSubtitle(detail),
|
|
316
|
-
disabled: detail.status === EventStatus.PENDING && detailIndex !== this.calculateActiveIndex(item.eventControlItem),
|
|
317
|
-
tooltip: this.getEventLabel(detail),
|
|
318
|
-
state: this.determineStepState(detail),
|
|
319
|
-
};
|
|
320
|
-
}
|
|
321
|
-
determineStepState(detail) {
|
|
322
|
-
if (detail.status === EventStatus.SUCCESS) {
|
|
323
|
-
return StepState.Success;
|
|
324
|
-
}
|
|
325
|
-
if (detail.status === EventStatus.FAILED) {
|
|
326
|
-
return StepState.Warning;
|
|
327
|
-
}
|
|
328
|
-
return StepState.Default;
|
|
329
|
-
}
|
|
330
|
-
getEventLabel(detail) {
|
|
331
|
-
var _a;
|
|
332
|
-
const eventLabel = (_a = this.eventItem.find((e) => e.value === detail.eventOperation)) === null || _a === void 0 ? void 0 : _a.label;
|
|
333
|
-
if (eventLabel) {
|
|
334
|
-
return this.translate.instant(eventLabel);
|
|
335
|
-
}
|
|
336
|
-
const localLabel = this.translate.instant("agro.angular_components." + detail.eventOperation);
|
|
337
|
-
if (localLabel) {
|
|
338
|
-
return localLabel;
|
|
339
|
-
}
|
|
340
|
-
return detail.eventOperation;
|
|
341
|
-
}
|
|
342
|
-
formatSubtitle(detail) {
|
|
343
|
-
var _a;
|
|
344
|
-
const { eventOperation, subTitle } = detail;
|
|
345
|
-
const invoiceOperations = [
|
|
346
|
-
EventOperation.CREATE_INVOICE_FIXATION,
|
|
347
|
-
EventOperation.CANCEL_INVOICE_FIXATION,
|
|
348
|
-
EventOperation.ORIGINATION_CREATE_INVOICE
|
|
349
|
-
];
|
|
350
|
-
const numberPrefixOperations = [
|
|
351
|
-
EventOperation.CLOSE_INVOICE_FIXATION,
|
|
352
|
-
EventOperation.REOPEN_INVOICE_FIXATION
|
|
353
|
-
];
|
|
354
|
-
const prescriptionOperations = [
|
|
355
|
-
EventOperation.PRESCRIPTION_DATA_LOAD_PRODUCT_TYPE,
|
|
356
|
-
EventOperation.PRESCRIPTION_DATA_LOAD_ACTIVE_PRINCIPLE,
|
|
357
|
-
EventOperation.PRESCRIPTION_DATA_LOAD_FORMULATION,
|
|
358
|
-
EventOperation.PRESCRIPTION_DATA_LOAD_BULLETIN,
|
|
359
|
-
EventOperation.PRESCRIPTION_DATA_LOAD_APPLICATION_UNIT,
|
|
360
|
-
EventOperation.PRESCRIPTION_DATA_LOAD_SPECIE,
|
|
361
|
-
EventOperation.PRESCRIPTION_DATA_LOAD_APPLICATION_TYPE,
|
|
362
|
-
EventOperation.PRESCRIPTION_DATA_LOAD_PROBLEMS,
|
|
363
|
-
EventOperation.PRESCRIPTION_DATA_LOAD_APPLICATION
|
|
364
|
-
];
|
|
365
|
-
let formattedSubtitle = subTitle;
|
|
366
|
-
if (invoiceOperations.includes(eventOperation)) {
|
|
367
|
-
const label = (_a = this.invoiceTypeTranslate.find((e) => e.value === subTitle)) === null || _a === void 0 ? void 0 : _a.label;
|
|
368
|
-
formattedSubtitle = label ? this.translate.instant(label) : subTitle;
|
|
369
|
-
}
|
|
370
|
-
if (numberPrefixOperations.includes(eventOperation)) {
|
|
371
|
-
formattedSubtitle = subTitle ? `n° ${subTitle}` : subTitle;
|
|
372
|
-
}
|
|
373
|
-
if (prescriptionOperations.includes(eventOperation)) {
|
|
374
|
-
formattedSubtitle = this.translate.instant('agro.angular_components.new_prescription_page', { count: subTitle });
|
|
375
|
-
}
|
|
376
|
-
return formattedSubtitle;
|
|
377
|
-
}
|
|
378
|
-
onGridChange(event) {
|
|
379
|
-
const size = event === null || event === void 0 ? void 0 : event.rows;
|
|
380
|
-
const page = (event === null || event === void 0 ? void 0 : event.first) / size;
|
|
381
|
-
const sort = event.multiSortMeta;
|
|
382
|
-
this.gridLoading = true;
|
|
383
|
-
if (size !== AGRO_NUMBERS.TEN || page !== AGRO_NUMBERS.ZERO || (sort && sort.length > AGRO_NUMBERS.ZERO)) {
|
|
384
|
-
this.paginatorStorageService.storePaginator("EventControlBoardPaginator", { page, size, sort });
|
|
385
|
-
}
|
|
386
|
-
return this.updateGrid({ page, size, sort });
|
|
387
|
-
}
|
|
388
|
-
getPageSize() {
|
|
389
|
-
return this.currentListParams.size;
|
|
390
|
-
}
|
|
391
|
-
getRowIndex() {
|
|
392
|
-
return this.currentListParams.page * this.currentListParams.size;
|
|
393
|
-
}
|
|
394
|
-
getSortField() {
|
|
395
|
-
if (!this.currentListParams.sort || this.currentListParams.sort.length <= AGRO_NUMBERS.ZERO) {
|
|
396
|
-
return this.gridColumns[AGRO_NUMBERS.ZERO].field;
|
|
397
|
-
}
|
|
398
|
-
return this.currentListParams.sort[AGRO_NUMBERS.ZERO].field;
|
|
399
|
-
}
|
|
400
|
-
getSortOrder() {
|
|
401
|
-
if (!this.currentListParams.sort || this.currentListParams.sort.length <= AGRO_NUMBERS.ZERO) {
|
|
402
|
-
return AGRO_NUMBERS.ONE;
|
|
403
|
-
}
|
|
404
|
-
return this.currentListParams.sort[AGRO_NUMBERS.ZERO].order;
|
|
405
|
-
}
|
|
406
|
-
getErrorMessages() {
|
|
407
|
-
const translatedErrorMessages = {};
|
|
408
|
-
for (const key in LookupErrorMessages) {
|
|
409
|
-
if (LookupErrorMessages.hasOwnProperty(key)) {
|
|
410
|
-
this.translate.get(LookupErrorMessages[key]).subscribe((res) => {
|
|
411
|
-
translatedErrorMessages[key] = res;
|
|
412
|
-
});
|
|
413
|
-
}
|
|
414
|
-
}
|
|
415
|
-
return translatedErrorMessages;
|
|
416
|
-
}
|
|
417
|
-
getProducerInvoiceIdFromParams(param) {
|
|
418
|
-
var _a, _b, _c, _d, _e;
|
|
419
|
-
if (!param) {
|
|
420
|
-
return null;
|
|
421
|
-
}
|
|
422
|
-
return (_e = [
|
|
423
|
-
(_a = param.producerInvoiceIds) === null || _a === void 0 ? void 0 : _a[0],
|
|
424
|
-
(_c = (_b = param.invoice) === null || _b === void 0 ? void 0 : _b.generalData) === null || _c === void 0 ? void 0 : _c.transactionalId,
|
|
425
|
-
param.producerInvoiceId,
|
|
426
|
-
param.externalId,
|
|
427
|
-
(_d = param.externalInvoiceIds) === null || _d === void 0 ? void 0 : _d[0],
|
|
428
|
-
].find((id) => id)) !== null && _e !== void 0 ? _e : null;
|
|
429
|
-
}
|
|
430
|
-
getProducerBalanceEntryControlIdFromParams(param) {
|
|
431
|
-
const { producerBalanceEntryControlId } = param;
|
|
432
|
-
return producerBalanceEntryControlId ? producerBalanceEntryControlId : null;
|
|
433
|
-
}
|
|
434
|
-
stepSelected(event) {
|
|
435
|
-
this.selectedStep = event.step;
|
|
436
|
-
this.applySidebarTitle("");
|
|
437
|
-
switch (this.selectedStep.eventType) {
|
|
438
|
-
case EventOrigin.BALANCE_ENTRY_CONTROL:
|
|
439
|
-
case EventOrigin.TICKET:
|
|
440
|
-
case EventOrigin.INVOICE:
|
|
441
|
-
case EventOrigin.CREATE_INVOICE:
|
|
442
|
-
this.sidebarLoading = true;
|
|
443
|
-
{
|
|
444
|
-
const param = JSON.parse(this.selectedStep.item.input);
|
|
445
|
-
const producerInvoiceId = this.getProducerInvoiceIdFromParams(param);
|
|
446
|
-
let filterQuery = "";
|
|
447
|
-
if (!producerInvoiceId) {
|
|
448
|
-
const producerBalanceEntryControlId = this.getProducerBalanceEntryControlIdFromParams(param);
|
|
449
|
-
if (!producerBalanceEntryControlId) {
|
|
450
|
-
this.sidebarLoading = false;
|
|
451
|
-
return;
|
|
452
|
-
}
|
|
453
|
-
filterQuery = `producerBalanceEntryControl.id eq '${producerBalanceEntryControlId}'`;
|
|
454
|
-
}
|
|
455
|
-
else {
|
|
456
|
-
filterQuery = `id eq '${producerInvoiceId}'`;
|
|
457
|
-
}
|
|
458
|
-
this.producerInvoiceService
|
|
459
|
-
.list({
|
|
460
|
-
displayFields: ["*", "producerBalanceEntryControl.*", "producerBalanceEntryControl.producer.*"],
|
|
461
|
-
filterQuery,
|
|
462
|
-
page: 0,
|
|
463
|
-
size: 1,
|
|
464
|
-
})
|
|
465
|
-
.pipe(takeUntil(this.ngUnsubscribe))
|
|
466
|
-
.subscribe((result) => {
|
|
467
|
-
this.producerInvoice = result === null || result === void 0 ? void 0 : result.contents[0];
|
|
468
|
-
this.producerInvoice;
|
|
469
|
-
this.sidebarLoading = false;
|
|
470
|
-
this.applySidebarTitle(this.getProducerInvoiceNumberAndSerie());
|
|
471
|
-
}, () => {
|
|
472
|
-
this.sidebarLoading = false;
|
|
473
|
-
});
|
|
474
|
-
}
|
|
475
|
-
break;
|
|
476
|
-
case EventOrigin.FIXATION:
|
|
477
|
-
case EventOrigin.CANCEL_FIXATION:
|
|
478
|
-
case EventOrigin.CHANGE_REQUEST:
|
|
479
|
-
case EventOrigin.TRANSFER:
|
|
480
|
-
break;
|
|
481
|
-
}
|
|
482
|
-
this.showReprocessButton = event.step.state === StepState.Warning;
|
|
483
|
-
this.showSidebar = true;
|
|
484
|
-
}
|
|
485
|
-
applySidebarTitle(title) {
|
|
486
|
-
this.sidebarTitle = this.translate.instant("agro.angular_components.event_sidebar_title", { eventNumber: title });
|
|
487
|
-
}
|
|
488
|
-
getProducerInvoiceNumberAndSerie() {
|
|
489
|
-
var _a, _b;
|
|
490
|
-
if (((_a = this.producerInvoice) === null || _a === void 0 ? void 0 : _a.number) && ((_b = this.producerInvoice) === null || _b === void 0 ? void 0 : _b.series)) {
|
|
491
|
-
return `${this.producerInvoice.number} - ${this.producerInvoice.series}`;
|
|
492
|
-
}
|
|
493
|
-
return "";
|
|
494
|
-
}
|
|
495
|
-
reprocessEvent() {
|
|
496
|
-
const reprocessEventObj = {
|
|
497
|
-
eventControlItemId: this.selectedStep.item.id,
|
|
498
|
-
};
|
|
499
|
-
this.eventControlItemService
|
|
500
|
-
.reprocessFailedEvent(reprocessEventObj)
|
|
501
|
-
.pipe(takeUntil(this.ngUnsubscribe))
|
|
502
|
-
.subscribe(() => {
|
|
503
|
-
this.addMessage("info", "agro.angular_components.reprocessing_event_message_title", "agro.angular_components.reprocessing_event_message_description");
|
|
504
|
-
}, () => {
|
|
505
|
-
this.addMessage("error", "agro.angular_components.error_reprocessing_event_message_title", "agro.angular_components.error_reprocessing_event_message_description");
|
|
506
|
-
});
|
|
507
|
-
}
|
|
508
|
-
addMessage(severity, summary, detail, life = AGRO_NUMBERS.FIVE_SECONDS) {
|
|
509
|
-
this.messageService.add({
|
|
510
|
-
severity,
|
|
511
|
-
summary: this.translate.instant(summary),
|
|
512
|
-
detail: this.translate.instant(detail),
|
|
513
|
-
life,
|
|
514
|
-
});
|
|
515
|
-
}
|
|
516
|
-
openModal() {
|
|
517
|
-
this.displayModal = true;
|
|
518
|
-
this.showSidebar = false;
|
|
519
|
-
}
|
|
520
|
-
openCancelModal() {
|
|
521
|
-
var _a, _b, _c;
|
|
522
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
523
|
-
yield ((_b = (_a = this.cancelEventDialogConfig).beforeOpen) === null || _b === void 0 ? void 0 : _b.call(_a));
|
|
524
|
-
this.dialogService.open(CancelEventDialogComponent, {
|
|
525
|
-
header: (_c = this.cancelEventDialogConfig) === null || _c === void 0 ? void 0 : _c.header,
|
|
526
|
-
contentStyle: { height: "100%" },
|
|
527
|
-
closable: true,
|
|
528
|
-
closeOnEscape: false,
|
|
529
|
-
data: { cancelEventDialogConfig: this.cancelEventDialogConfig },
|
|
530
|
-
});
|
|
531
|
-
});
|
|
532
|
-
}
|
|
533
|
-
confirmModal() {
|
|
534
|
-
this.reprocessEvent();
|
|
535
|
-
this.displayModal = false;
|
|
536
|
-
}
|
|
537
|
-
cancelModal() {
|
|
538
|
-
this.displayModal = false;
|
|
539
|
-
}
|
|
540
|
-
closeSidebar() {
|
|
541
|
-
this.showSidebar = false;
|
|
542
|
-
}
|
|
543
|
-
};
|
|
544
|
-
EventControlBoardComponent.ctorParameters = () => [
|
|
545
|
-
{ type: LibTranslationService },
|
|
546
|
-
{ type: FormBuilder },
|
|
547
|
-
{ type: WebsocketService },
|
|
548
|
-
{ type: EventControlService },
|
|
549
|
-
{ type: PaginatorStorageService },
|
|
550
|
-
{ type: EventControlItemService },
|
|
551
|
-
{ type: ProducerInvoiceService },
|
|
552
|
-
{ type: MessageService },
|
|
553
|
-
{ type: DialogService }
|
|
554
|
-
];
|
|
555
|
-
__decorate([
|
|
556
|
-
Input()
|
|
557
|
-
], EventControlBoardComponent.prototype, "company", void 0);
|
|
558
|
-
__decorate([
|
|
559
|
-
Input()
|
|
560
|
-
], EventControlBoardComponent.prototype, "branch", void 0);
|
|
561
|
-
__decorate([
|
|
562
|
-
Input()
|
|
563
|
-
], EventControlBoardComponent.prototype, "controlCode", void 0);
|
|
564
|
-
__decorate([
|
|
565
|
-
Input()
|
|
566
|
-
], EventControlBoardComponent.prototype, "eventOrigin", void 0);
|
|
567
|
-
__decorate([
|
|
568
|
-
Input()
|
|
569
|
-
], EventControlBoardComponent.prototype, "eventStatus", void 0);
|
|
570
|
-
__decorate([
|
|
571
|
-
Input()
|
|
572
|
-
], EventControlBoardComponent.prototype, "externalId", void 0);
|
|
573
|
-
__decorate([
|
|
574
|
-
Input()
|
|
575
|
-
], EventControlBoardComponent.prototype, "createdDate", void 0);
|
|
576
|
-
__decorate([
|
|
577
|
-
Input()
|
|
578
|
-
], EventControlBoardComponent.prototype, "standalone", void 0);
|
|
579
|
-
__decorate([
|
|
580
|
-
Input()
|
|
581
|
-
], EventControlBoardComponent.prototype, "showCancelButton", void 0);
|
|
582
|
-
__decorate([
|
|
583
|
-
Input()
|
|
584
|
-
], EventControlBoardComponent.prototype, "cancelEventDialogConfig", void 0);
|
|
585
|
-
__decorate([
|
|
586
|
-
Output()
|
|
587
|
-
], EventControlBoardComponent.prototype, "processedEvent", void 0);
|
|
588
|
-
EventControlBoardComponent = __decorate([
|
|
589
|
-
Component({
|
|
590
|
-
selector: "event-control-board",
|
|
591
|
-
template: "<ng-container *sLoadingState=\"gridLoading\">\r\n <p-panel>\r\n <p-header>\r\n {{ \"agro.angular_components.event_control_header\" | libTranslate }}\r\n </p-header>\r\n <div class=\"ui-g\">\r\n <div class=\"ui-g-12\">\r\n <s-button\r\n id=\"refresh-button\"\r\n [priority]=\"ButtonPriority.Primary\"\r\n iconClass=\"fa fa-refresh\"\r\n [label]=\"'agro.angular_components.refresh' | libTranslate\"\r\n (click)=\"onSearch()\"\r\n >\r\n </s-button>\r\n <s-button\r\n *ngIf=\"standalone && showCancelButton\"\r\n id=\"cancel-button-agro-events-lib\"\r\n iconClass=\"fa fa-times\"\r\n [label]=\"'agro.angular_components.cancel' | libTranslate\"\r\n (click)=\"openCancelModal()\"\r\n >\r\n </s-button>\r\n </div>\r\n </div>\r\n <div class=\"ui-g\">\r\n <div class=\"ui-g-12 ui-md-12\" *ngIf=\"!gridData || gridData?.length === 0\">\r\n <s-empty-state\r\n iconClass=\"fa fa-exclamation-triangle\"\r\n title=\"{{ 'agro.angular_components.nothing_found' | libTranslate }}\"\r\n [showPrimaryAction]=\"false\"\r\n description=\"{{ 'agro.angular_components.table_empty_description' | libTranslate }}\"\r\n >\r\n </s-empty-state>\r\n </div>\r\n <ng-container *ngIf=\"gridData?.length > 0\">\r\n <p-table\r\n stylelass=\"custom-table\"\r\n #eventControlTable\r\n [value]=\"gridDataResolved\"\r\n [columns]=\"gridColumns\"\r\n dataKey=\"id\"\r\n [lazy]=\"true\"\r\n [scrollable]=\"true\"\r\n [resizableColumns]=\"true\"\r\n [paginator]=\"!standalone\"\r\n [totalRecords]=\"gridTotalRecords\"\r\n [rows]=\"10\"\r\n [responsive]=\"true\"\r\n (onLazyLoad)=\"onGridChange($event)\"\r\n [sortOrder]=\"getSortOrder()\"\r\n [first]=\"getRowIndex()\"\r\n [lazyLoadOnInit]=\"false\"\r\n sortMode=\"multiple\"\r\n [rows]=\"getPageSize()\"\r\n [rowsPerPageOptions]=\"[10, 20, 50, 100]\"\r\n >\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <ng-container *ngIf=\"!standalone\">\r\n <th *ngFor=\"let col of columns\" class=\"ui-lg-1 ui-md-1\" [pSortableColumn]=\"col.field\" scope=\"col\">\r\n <div class=\"senior-header\">\r\n <span class=\"senior-header-title\">{{ col.header }}</span>\r\n <p-sortIcon [field]=\"col.field\"></p-sortIcon>\r\n </div>\r\n </th>\r\n </ng-container>\r\n <th class=\"ui-lg-8 ui-md-7\" scope=\"col\">\r\n {{ \"agro.angular_components.panel_title_events_events\" | libTranslate }}\r\n </th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowData>\r\n <tr>\r\n <ng-container *ngIf=\"!standalone\">\r\n <td class=\"ui-lg-1 ui-md-1\">\r\n {{ rowData.e070emp?.nomEmp }}\r\n </td>\r\n <td class=\"ui-lg-1 ui-md-1\">\r\n {{ rowData.e070fil?.nomFil }}\r\n </td>\r\n <td class=\"ui-lg-1 ui-md-1\">\r\n <ng-container [ngSwitch]=\"rowData.eventOrigin\">\r\n <span *ngSwitchCase=\"'BALANCE_ENTRY_CONTROL'\">\r\n {{ \"agro.angular_components.balance_entry_control_event\" | libTranslate }}\r\n </span>\r\n <span *ngSwitchCase=\"'TICKET'\">\r\n {{ \"agro.angular_components.ticket_maintenance_header\" | libTranslate }}\r\n </span>\r\n <span *ngSwitchCase=\"'TRANSFER'\">\r\n {{ \"agro.angular_components.transfer_origin_event\" | libTranslate }}\r\n </span>\r\n <span *ngSwitchCase=\"'INVOICE'\">\r\n {{ \"agro.angular_components.CREATE_INVOICE_FIXATION\" | libTranslate }}\r\n </span>\r\n <span *ngSwitchCase=\"'CHANGE_REQUEST'\">\r\n {{ \"agro.angular_components.change_request_event\" | libTranslate }}\r\n </span>\r\n <span *ngSwitchCase=\"'FIXATION'\">\r\n {{ \"agro.angular_components.fixation_event\" | libTranslate }}\r\n </span>\r\n <span *ngSwitchCase=\"'CANCEL_FIXATION'\">\r\n {{ \"agro.angular_components.cancel_fixation_event\" | libTranslate }}\r\n </span>\r\n <span *ngSwitchCase=\"'TRANSFER_CANCELLATION'\">\r\n {{ \"agro.angular_components.transfer_cancellation_event\" | libTranslate }}\r\n </span>\r\n <span *ngSwitchCase=\"'AGRONOMIC_PRESCRIPTION'\">\r\n {{ \"agro.angular_components.agronomic_prescription_origin_event\" | libTranslate }}\r\n </span>\r\n <span *ngSwitchCase=\"'PRESCRIPTION_INTEGRATION_HUB'\">\r\n {{ \"agro.angular_components.agronomic_prescription_origin_event\" | libTranslate }}\r\n </span>\r\n </ng-container>\r\n </td>\r\n <td class=\"ui-lg-1 ui ui-md-1\">\r\n {{ rowData.controlCode || \"\" }}\r\n </td>\r\n </ng-container>\r\n <td class=\"ui-lg-8 ui-md-7\">\r\n <ng-container *ngFor=\"let group of rowData.groups\">\r\n <s-event-steps\r\n [steps]=\"group.steps || []\"\r\n [activeIndex]=\"group.activeIndex\"\r\n (stepSelected)=\"stepSelected($event)\"\r\n >\r\n </s-event-steps>\r\n </ng-container>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template *ngIf=\"!standalone\" pTemplate=\"paginatorright\" class=\"custom-table\">\r\n <span>\r\n {{ \"agro.angular_components.registers_found\" | libTranslate: { total: gridTotalRecords } }}\r\n </span>\r\n </ng-template>\r\n </p-table>\r\n </ng-container>\r\n </div>\r\n </p-panel>\r\n</ng-container>\r\n<s-sidebar\r\n [visible]=\"showSidebar\"\r\n (visibleChange)=\"closeSidebar()\"\r\n header=\"{{ 'agro.angular_components.event_details_header' | libTranslate }}\"\r\n>\r\n <div class=\"ui-fluid\">\r\n <p-fieldset [legend]=\"sidebarTitle\" [toggleable]=\"false\">\r\n <div class=\"ui-g\">\r\n <div class=\"ui-g-4\">\r\n <span\r\n ><strong>{{ \"agro.angular_components.event_origin_label\" | libTranslate }}</strong></span\r\n >\r\n <ng-container [ngSwitch]=\"selectedStep?.eventType\">\r\n <p *ngSwitchCase=\"'BALANCE_ENTRY_CONTROL'\">\r\n {{ \"agro.angular_components.balance_entry_control_event\" | libTranslate }}\r\n </p>\r\n <p *ngSwitchCase=\"'TICKET'\">\r\n {{ \"agro.angular_components.ticket_maintenance_header\" | libTranslate }}\r\n </p>\r\n <p *ngSwitchCase=\"'TRANSFER'\">\r\n {{ \"agro.angular_components.transfer_origin_event\" | libTranslate }}\r\n </p>\r\n <p *ngSwitchCase=\"'INVOICE'\">\r\n {{ \"agro.angular_components.CREATE_INVOICE_FIXATION\" | libTranslate }}\r\n </p>\r\n <p *ngSwitchCase=\"'CHANGE_REQUEST'\">\r\n {{ \"agro.angular_components.change_request_event\" | libTranslate }}\r\n </p>\r\n <p *ngSwitchCase=\"'FIXATION'\">\r\n {{ \"agro.angular_components.fixation_event\" | libTranslate }}\r\n </p>\r\n <p *ngSwitchCase=\"'CANCEL_FIXATION'\">\r\n {{ \"agro.angular_components.cancel_fixation_event\" | libTranslate }}\r\n </p>\r\n <p *ngSwitchCase=\"'TRANSFER_CANCELLATION'\">\r\n {{ \"agro.angular_components.transfer_cancellation_event\" | libTranslate }}\r\n </p>\r\n <p *ngSwitchCase=\"'AGRONOMIC_PRESCRIPTION'\">\r\n {{ \"agro.angular_components.agronomic_prescription_origin_event\" | libTranslate }}\r\n </p>\r\n <p *ngSwitchCase=\"'PRESCRIPTION_INTEGRATION_HUB'\">\r\n {{ \"agro.angular_components.agronomic_prescription_origin_event\" | libTranslate }}\r\n </p>\r\n </ng-container>\r\n </div>\r\n <div class=\"ui-g-4\" *ngIf=\"producerInvoice?.producerBalanceEntryControl.producer.e001pes.nomPes\">\r\n <span\r\n ><strong>{{ \"agro.angular_components.supplier\" | libTranslate }}</strong></span\r\n >\r\n <p>{{ producerInvoice?.producerBalanceEntryControl.producer.e001pes.nomPes }}</p>\r\n </div>\r\n <div class=\"ui-g-4\" *ngIf=\"producerInvoice?.producerBalanceEntryControl.ruralEstate.name\">\r\n <span\r\n ><strong>{{ \"agro.angular_components.rural_estate\" | libTranslate }}</strong></span\r\n >\r\n <p>{{ producerInvoice?.producerBalanceEntryControl.ruralEstate.name }}</p>\r\n </div>\r\n <div class=\"ui-g-4\" *ngIf=\"selectedStep?.controlCode\">\r\n <span\r\n ><strong>{{ \"agro.angular_components.control_code\" | libTranslate }}</strong></span\r\n >\r\n <p>{{ selectedStep?.controlCode }}</p>\r\n </div>\r\n <div class=\"ui-g-4\">\r\n <span\r\n ><strong>{{ \"agro.angular_components.status_label\" | libTranslate }}</strong></span\r\n >\r\n <ng-container [ngSwitch]=\"selectedStep?.item.status\">\r\n <p *ngSwitchCase=\"'SUCCESS'\">\r\n <s-badge\r\n [color]=\"BadgeColors.Green\"\r\n text=\"{{ 'agro.angular_components.panel_title_events_completed_successfully' | libTranslate }}\"\r\n [selectable]=\"false\"\r\n >\r\n </s-badge>\r\n </p>\r\n <p *ngSwitchCase=\"'PROCESSING'\">\r\n <s-badge\r\n [color]=\"BadgeColors.Orange\"\r\n text=\"{{ 'agro.angular_components.processing' | libTranslate }}\"\r\n [selectable]=\"false\"\r\n >\r\n </s-badge>\r\n </p>\r\n <p *ngSwitchCase=\"'FAILED'\">\r\n <s-badge\r\n [color]=\"BadgeColors.Red\"\r\n text=\"{{ 'agro.angular_components.panel_title_events_ended_with_error' | libTranslate }}\"\r\n [selectable]=\"false\"\r\n >\r\n </s-badge>\r\n </p>\r\n <p *ngSwitchCase=\"'PENDING'\">\r\n <s-badge\r\n [color]=\"BadgeColors.Gray\"\r\n text=\"{{ 'agro.angular_components.pending' | libTranslate }}\"\r\n [selectable]=\"false\"\r\n >\r\n </s-badge>\r\n </p>\r\n </ng-container>\r\n </div>\r\n <div class=\"ui-g-4\">\r\n <span\r\n ><strong>{{ \"agro.angular_components.last_update_date\" | libTranslate }}</strong></span\r\n >\r\n <p>{{ selectedStep?.item.lastModifiedDate | date: \"dd/MM/yyyy HH:mm:ss\" }}</p>\r\n </div>\r\n <div class=\"ui-g-4\" *ngIf=\"selectedStep?.item.status === 'FAILED'\">\r\n <span\r\n ><strong>{{ \"agro.angular_components.event_error_message\" | libTranslate }}</strong></span\r\n >\r\n <p>{{ selectedStep?.item.message || \"-\" }}</p>\r\n </div>\r\n </div>\r\n </p-fieldset>\r\n </div>\r\n <s-footer>\r\n <div class=\"ui-g\">\r\n <div class=\"ui-g-12 width-fit\">\r\n <s-button\r\n id=\"sidebar-close-button\"\r\n [priority]=\"ButtonPriority.Primary\"\r\n [label]=\"'agro.angular_components.events_close' | libTranslate\"\r\n [auxiliary]=\"false\"\r\n (click)=\"closeSidebar()\"\r\n >\r\n </s-button>\r\n <s-button\r\n *ngIf=\"showReprocessButton\"\r\n id=\"sidebar-reprocess-button\"\r\n [priority]=\"ButtonPriority.Secondary\"\r\n iconClass=\"fa fa-refresh\"\r\n [label]=\"'agro.angular_components.reprocess_event' | libTranslate\"\r\n [auxiliary]=\"false\"\r\n (click)=\"openModal()\"\r\n >\r\n </s-button>\r\n </div>\r\n </div>\r\n </s-footer>\r\n</s-sidebar>\r\n\r\n<p-dialog [header]=\"'agro.angular_components.event_modal_title' | libTranslate\" [(visible)]=\"displayModal\" [modal]=\"true\" class=\"dialog\">\r\n <div class=\"event-modal-text\">{{ \"agro.angular_components.event_modal\" | libTranslate }}</div>\r\n <p-footer>\r\n <div class=\"ui-dialog-buttonpane ui-widget-content ui-helper-clearfix\">\r\n <button\r\n id=\"modal-yes\"\r\n type=\"button\"\r\n pButton\r\n icon=\"fa fa-check\"\r\n (click)=\"confirmModal()\"\r\n label=\"{{ 'agro.angular_components.yes' | libTranslate }}\"\r\n class=\"ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only\"\r\n ></button>\r\n <button\r\n id=\"modal-no\"\r\n type=\"button\"\r\n pButton\r\n icon=\"fa fa-close\"\r\n (click)=\"cancelModal()\"\r\n label=\"{{ 'agro.angular_components.no' | libTranslate }}\"\r\n class=\"ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only\"\r\n ></button>\r\n </div>\r\n </p-footer>\r\n</p-dialog>\r\n",
|
|
592
|
-
providers: [{ provide: LOCALE_ID, useValue: "pt-BR" }],
|
|
593
|
-
styles: [".frozen{border-left:2px solid #ddd}.dialog{width:\"600px\";height:\"300px\";z-index:100000}:host ::ng-deep #cancel-button-agro-events-lib{background-color:#9c3a3a!important;border-color:#9c3a3a!important}:host ::ng-deep #cancel-button-agro-events-lib:hover{background-color:#642525!important}"]
|
|
594
|
-
})
|
|
595
|
-
], EventControlBoardComponent);
|
|
596
|
-
export { EventControlBoardComponent };
|
|
597
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtY29udHJvbC1ib2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZXZlbnQtY29udHJvbC1ib2FyZC9ldmVudC1jb250cm9sLWJvYXJkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxRQUFRLE1BQU0sNEJBQTRCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBZ0MsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFRLFNBQVMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hILE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFNUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDbEcsT0FB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ZixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBRU0sWUFBWTtRQUNmLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7Q0FDSixDQUFBOztZQTlqQm1DLHFCQUFxQjtZQUNuQixXQUFXO1lBQ04sZ0JBQWdCO1lBQ2IsbUJBQW1CO1lBQ2YsdUJBQXVCO1lBQ3ZCLHVCQUF1QjtZQUN4QixzQkFBc0I7WUFDOUIsY0FBYztZQUNmLGFBQWE7O0FBM0R4QztJQUFSLEtBQUssRUFBRTsyREFBbUI7QUFDbEI7SUFBUixLQUFLLEVBQUU7MERBQWtCO0FBQ2pCO0lBQVIsS0FBSyxFQUFFOytEQUF3QjtBQUN2QjtJQUFSLEtBQUssRUFBRTsrREFBMkI7QUFDMUI7SUFBUixLQUFLLEVBQUU7K0RBQTJCO0FBQzFCO0lBQVIsS0FBSyxFQUFFOzhEQUFxQjtBQUNwQjtJQUFSLEtBQUssRUFBRTsrREFBb0I7QUFDbkI7SUFBUixLQUFLLEVBQUU7OERBQXNCO0FBQ3JCO0lBQVIsS0FBSyxFQUFFO29FQUE0QjtBQUMzQjtJQUFSLEtBQUssRUFBRTsyRUFBbUQ7QUFDakQ7SUFBVCxNQUFNLEVBQUU7a0VBQTZEO0FBWDdELDBCQUEwQjtJQU50QyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUscUJBQXFCO1FBQy9CLG9raUJBQW1EO1FBRW5ELFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUM7O0tBQ3pELENBQUM7R0FDVywwQkFBMEIsQ0FrbkJ0QztTQWxuQlksMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVnaXN0ZXJMb2NhbGVEYXRhIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgbG9jYWxlUHQgZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL3B0XCI7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgTE9DQUxFX0lELCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IEJhZGdlQ29sb3JzLCBCdXR0b25Qcmlvcml0eSwgRmllbGRUeXBlLCBGb3JtRmllbGQsIFN0ZXAsIFN0ZXBTdGF0ZSB9IGZyb20gXCJAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzXCI7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UsIE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSBcInByaW1lbmdcIjtcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBBR1JPX05VTUJFUlMgfSBmcm9tIFwiLi4vLi4vZW51bXMvYWdyby1udW1iZXJzLmVudW1cIjtcclxuaW1wb3J0IHsgTGliVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2xpYi10cmFuc2xhdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFByb2R1Y2VySW52b2ljZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvcHJvZHVjZXItaW52b2ljZVwiO1xyXG5pbXBvcnQgeyBXZWJzb2NrZXRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3dlYnNvY2tldFwiO1xyXG5pbXBvcnQgeyBDYW5jZWxFdmVudERpYWxvZ0NvbmZpZyB9IGZyb20gXCIuLi9jYW5jZWwtZXZlbnQtZGlhbG9nL2NhbmNlbC1ldmVudC1kaWFsb2ctY29uZmlnXCI7XHJcbmltcG9ydCB7IENhbmNlbEV2ZW50RGlhbG9nQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NhbmNlbC1ldmVudC1kaWFsb2cvY2FuY2VsLWV2ZW50LWRpYWxvZy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgZXZlbnRJdGVtIH0gZnJvbSBcIi4vY29tbW9uL2V2ZW50LWNvbnRyb2wtY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IEV2ZW50T3BlcmF0aW9uIH0gZnJvbSBcIi4vY29tbW9uL2V2ZW50LW9wZXJhdGlvblwiO1xyXG5pbXBvcnQgeyBFdmVudE9yaWdpbiB9IGZyb20gXCIuL2NvbW1vbi9ldmVudC1vcmlnaW5cIjtcclxuaW1wb3J0IHsgRXZlbnRTdGF0dXMgfSBmcm9tIFwiLi9jb21tb24vZXZlbnQtc3RhdHVzXCI7XHJcbmltcG9ydCB7IGludm9pY2VUeXBlVHJhbnNsYXRlIH0gZnJvbSBcIi4vY29tbW9uL2lucHV0LWZpZWxkcy10cmFuc2xhdGVcIjtcclxuaW1wb3J0IHsgTG9va3VwRXJyb3JNZXNzYWdlcyB9IGZyb20gXCIuL2NvbW1vbi9sb29rdXAtZXJyb3ItbWVzc2FnZS5jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgRTA3MEVtcCB9IGZyb20gXCIuL3NlcnZpY2UvZTA3MGVtcC9lMDcwZW1wXCI7XHJcbmltcG9ydCB7IEUwNzBGaWwgfSBmcm9tIFwiLi9zZXJ2aWNlL2UwNzBmaWwvZTA3MGZpbFwiO1xyXG5pbXBvcnQgeyBFdmVudENvbnRyb2xJdGVtIH0gZnJvbSBcIi4vc2VydmljZS9ldmVudC1jb250cm9sLWl0ZW0vZXZlbnQtY29udHJvbC1pdGVtXCI7XHJcbmltcG9ydCB7IEV2ZW50Q29udHJvbEl0ZW1TZXJ2aWNlLCBSZXByb2Nlc3NGYWlsZWRFdmVudCB9IGZyb20gXCIuL3NlcnZpY2UvZXZlbnQtY29udHJvbC1pdGVtL2V2ZW50LWNvbnRyb2wtaXRlbS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEV2ZW50Q29udHJvbCB9IGZyb20gXCIuL3NlcnZpY2UvZXZlbnQtY29udHJvbC9ldmVudC1jb250cm9sXCI7XHJcbmltcG9ydCB7IEV2ZW50Q29udHJvbFNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlL2V2ZW50LWNvbnRyb2wvZXZlbnQtY29udHJvbC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFBhZ2luYXRvclN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZS9wYWdpbmF0b3Itc3RvcmFnZS5zZXJ2aWNlXCI7XHJcbmNvbnN0IG1vbWVudCA9IHJlcXVpcmUoXCJtb21lbnRcIik7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImV2ZW50LWNvbnRyb2wtYm9hcmRcIixcclxuICAgIHRlbXBsYXRlVXJsOiBcIi4vZXZlbnQtY29udHJvbC1ib2FyZC5jb21wb25lbnQuaHRtbFwiLFxyXG4gICAgc3R5bGVVcmxzOiBbXCIuL2V2ZW50LWNvbnRyb2wtYm9hcmQuY29tcG9uZW50LnNjc3NcIl0sXHJcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IExPQ0FMRV9JRCwgdXNlVmFsdWU6IFwicHQtQlJcIiB9XSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEV2ZW50Q29udHJvbEJvYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XHJcbiAgICBASW5wdXQoKSBjb21wYW55ITogRTA3MEVtcDtcclxuICAgIEBJbnB1dCgpIGJyYW5jaCE6IEUwNzBGaWw7XHJcbiAgICBASW5wdXQoKSBjb250cm9sQ29kZSE6IHN0cmluZ1tdO1xyXG4gICAgQElucHV0KCkgZXZlbnRPcmlnaW4hOiBFdmVudE9yaWdpbjtcclxuICAgIEBJbnB1dCgpIGV2ZW50U3RhdHVzITogRXZlbnRTdGF0dXM7XHJcbiAgICBASW5wdXQoKSBleHRlcm5hbElkITogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgY3JlYXRlZERhdGUhOiBEYXRlO1xyXG4gICAgQElucHV0KCkgc3RhbmRhbG9uZSE6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBzaG93Q2FuY2VsQnV0dG9uITogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGNhbmNlbEV2ZW50RGlhbG9nQ29uZmlnITogQ2FuY2VsRXZlbnREaWFsb2dDb25maWc7XHJcbiAgICBAT3V0cHV0KCkgcHJvY2Vzc2VkRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICAgcHVibGljIHByb2R1Y2VySW52b2ljZSE6IGFueTtcclxuXHJcbiAgICBwdWJsaWMgc3RlcHM6IFN0ZXBbXSA9IFtdO1xyXG4gICAgcHVibGljIHNlbGVjdGVkU3RlcDogYW55O1xyXG4gICAgcHVibGljIGV2ZW50SWQhOiBcIlwiO1xyXG4gICAgcHVibGljIHNob3dTaWRlYmFyID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgc2hvd1JlcHJvY2Vzc0J1dHRvbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIHNpZGViYXJUaXRsZSE6IHN0cmluZztcclxuICAgIHB1YmxpYyBzaWRlYmFyTG9hZGluZyE6IGJvb2xlYW47XHJcblxyXG4gICAgcHVibGljIGZpbHRlckZvcm1Hcm91cCE6IEZvcm1Hcm91cDtcclxuICAgIHB1YmxpYyBmaWx0ZXJGaWVsZHMhOiBGb3JtRmllbGRbXTtcclxuXHJcbiAgICBwdWJsaWMgZ3JpZERhdGEhOiBhbnlbXTtcclxuICAgIHB1YmxpYyBncmlkRGF0YVJlc29sdmVkITogYW55W107XHJcbiAgICBwdWJsaWMgZ3JpZENvbHVtbnMhOiBhbnlbXTtcclxuICAgIHB1YmxpYyBncmlkVG90YWxSZWNvcmRzID0gQUdST19OVU1CRVJTLlpFUk87XHJcbiAgICBwdWJsaWMgZ3JpZExvYWRpbmcgPSBmYWxzZTtcclxuICAgIHB1YmxpYyBkaXNwbGF5TW9kYWwgPSBmYWxzZTtcclxuXHJcbiAgICBwdWJsaWMgQnV0dG9uUHJpb3JpdHkgPSBCdXR0b25Qcmlvcml0eTtcclxuICAgIHB1YmxpYyBCYWRnZUNvbG9ycyA9IEJhZGdlQ29sb3JzO1xyXG5cclxuICAgIHB1YmxpYyBwZXJtaXNzaW9uczogYW55ID0ge307XHJcbiAgICBwdWJsaWMgbG9jYWxlQ29uZmlnOiBhbnkgPSB7fTtcclxuXHJcbiAgICBwdWJsaWMgY3VycmVudExpc3RQYXJhbXM6IGFueSA9IHtcclxuICAgICAgICBwYWdlOiBBR1JPX05VTUJFUlMuWkVSTyxcclxuICAgICAgICBzaXplOiBBR1JPX05VTUJFUlMuVEVOLFxyXG4gICAgICAgIGRpc3BsYXlGaWVsZHM6IHRoaXMuZ2V0RGlzcGxheUZpZWxkcygpLFxyXG4gICAgICAgIHNvcnQ6IFtdLFxyXG4gICAgICAgIGZpbHRlckRhdGE6IHt9XHJcbiAgICB9O1xyXG5cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGV2ZW50SXRlbSA9IGV2ZW50SXRlbTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW52b2ljZVR5cGVUcmFuc2xhdGUgPSBpbnZvaWNlVHlwZVRyYW5zbGF0ZTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogTGliVHJhbnNsYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgd2Vic29ja2V0U2VydmljZTogV2Vic29ja2V0U2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGV2ZW50Q29udHJvbFNlcnZpY2U6IEV2ZW50Q29udHJvbFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBwYWdpbmF0b3JTdG9yYWdlU2VydmljZTogUGFnaW5hdG9yU3RvcmFnZVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBldmVudENvbnRyb2xJdGVtU2VydmljZTogRXZlbnRDb250cm9sSXRlbVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBwcm9kdWNlckludm9pY2VTZXJ2aWNlOiBQcm9kdWNlckludm9pY2VTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgcmVnaXN0ZXJMb2NhbGVEYXRhKGxvY2FsZVB0KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5ncmlkQ29sdW1ucyA9IHRoaXMuc2V0R3JpZENvbHVtbnMoKTtcclxuICAgICAgICB0aGlzLmNhbGxXZWJzb2NrZXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGlmICghdGhpcy5maWx0ZXJGb3JtR3JvdXApIHtcclxuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplRm9ybUdyb3VwKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Rm9ybUZpZWxkcygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGVDb21wYW55QW5kQnJhbmNoRm9ybUZpZWxkcyhjaGFuZ2VzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUV2ZW50T3JpZ2luQW5kQ29udHJvbENvZGVGb3JtRmllbGRzKGNoYW5nZXMpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRXZlbnRTdGF0dXNBbmRDcmVhdGVkRGF0ZUZvcm1GaWVsZHMoY2hhbmdlcyk7XHJcbiAgICAgICAgdGhpcy5vblNlYXJjaCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdXBkYXRlQ29tcGFueUFuZEJyYW5jaEZvcm1GaWVsZHMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGlmIChjaGFuZ2VzLmNvbXBhbnkgJiYgY2hhbmdlcy5jb21wYW55LmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5jb21wYW55LnByZXZpb3VzVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KFwiY29tcGFueVwiKT8uc2V0VmFsdWUoY2hhbmdlcy5jb21wYW55LmN1cnJlbnRWYWx1ZSA/PyBudWxsKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjaGFuZ2VzLmJyYW5jaCAmJiBjaGFuZ2VzLmJyYW5jaC5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMuYnJhbmNoLnByZXZpb3VzVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KFwiYnJhbmNoXCIpPy5zZXRWYWx1ZShjaGFuZ2VzLmJyYW5jaC5jdXJyZW50VmFsdWUgPz8gbnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdXBkYXRlRXZlbnRPcmlnaW5BbmRDb250cm9sQ29kZUZvcm1GaWVsZHMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGlmIChjaGFuZ2VzLmV2ZW50T3JpZ2luICYmIGNoYW5nZXMuZXZlbnRPcmlnaW4uY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLmV2ZW50T3JpZ2luLnByZXZpb3VzVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KFwiZXZlbnRPcmlnaW5cIik/LnNldFZhbHVlKGNoYW5nZXMuZXZlbnRPcmlnaW4uY3VycmVudFZhbHVlID8/IG51bGwpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGNoYW5nZXMuY29udHJvbENvZGUgJiYgY2hhbmdlcy5jb250cm9sQ29kZS5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMuY29udHJvbENvZGUucHJldmlvdXNWYWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXQoXCJjb250cm9sQ29kZVwiKT8uc2V0VmFsdWUoY2hhbmdlcy5jb250cm9sQ29kZS5jdXJyZW50VmFsdWUgPz8gbnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdXBkYXRlRXZlbnRTdGF0dXNBbmRDcmVhdGVkRGF0ZUZvcm1GaWVsZHMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGlmIChjaGFuZ2VzLmV2ZW50U3RhdHVzICYmIGNoYW5nZXMuZXZlbnRTdGF0dXMuY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLmV2ZW50U3RhdHVzLnByZXZpb3VzVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KFwic3RhdHVzXCIpPy5zZXRWYWx1ZShjaGFuZ2VzLmV2ZW50U3RhdHVzLmN1cnJlbnRWYWx1ZSA/PyBudWxsKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjaGFuZ2VzLmNyZWF0ZWREYXRlICYmIGNoYW5nZXMuY3JlYXRlZERhdGUuY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLmNyZWF0ZWREYXRlLnByZXZpb3VzVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KFwiY3JlYXRlZERhdGVcIik/LnNldFZhbHVlKGNoYW5nZXMuY3JlYXRlZERhdGUuY3VycmVudFZhbHVlID8/IG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRpYWxpemVGb3JtR3JvdXAoKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgICAgICAgY29tcGFueTogW3sgdmFsdWU6IHRoaXMuY29tcGFueSA/PyBudWxsLCBkaXNhYmxlZDogZmFsc2UgfSwgVmFsaWRhdG9ycy5jb21wb3NlKFtdKV0sXHJcbiAgICAgICAgICAgIGJyYW5jaDogW3sgdmFsdWU6IHRoaXMuYnJhbmNoID8/IG51bGwsIGRpc2FibGVkOiBmYWxzZSB9LCBWYWxpZGF0b3JzLmNvbXBvc2UoW10pXSxcclxuICAgICAgICAgICAgY29udHJvbENvZGU6IFt7IHZhbHVlOiB0aGlzLmNvbnRyb2xDb2RlID8/IG51bGwsIGRpc2FibGVkOiBmYWxzZSB9LCBWYWxpZGF0b3JzLmNvbXBvc2UoW10pXSxcclxuICAgICAgICAgICAgZXh0ZXJuYWxJZDogW3sgdmFsdWU6IHRoaXMuZXh0ZXJuYWxJZCA/PyBudWxsLCBkaXNhYmxlZDogZmFsc2UgfSwgVmFsaWRhdG9ycy5jb21wb3NlKFtdKV0sXHJcbiAgICAgICAgICAgIGV2ZW50T3JpZ2luOiBbeyB2YWx1ZTogdGhpcy5ldmVudE9yaWdpbiA/PyBudWxsLCBkaXNhYmxlZDogZmFsc2UgfSwgVmFsaWRhdG9ycy5jb21wb3NlKFtdKV0sXHJcbiAgICAgICAgICAgIHN0YXR1czogW3sgdmFsdWU6IHRoaXMuZXZlbnRTdGF0dXMgPz8gbnVsbCwgZGlzYWJsZWQ6IGZhbHNlIH0sIFZhbGlkYXRvcnMuY29tcG9zZShbXSldLFxyXG4gICAgICAgICAgICBjcmVhdGVkRGF0ZTogW3sgdmFsdWU6IHRoaXMuY3JlYXRlZERhdGUgPz8gbnVsbCwgZGlzYWJsZWQ6IGZhbHNlIH0sIFZhbGlkYXRvcnMuY29tcG9zZShbXSldLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0Rm9ybUZpZWxkcygpIHtcclxuICAgICAgICB0aGlzLmZpbHRlckZpZWxkcyA9IFtcclxuICAgICAgICAgICAgbmV3IEZvcm1GaWVsZCh7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcImNvbXBhbnlcIixcclxuICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5DaGlwcyxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBGb3JtRmllbGQoe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJicmFuY2hcIixcclxuICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5DaGlwcyxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIG5ldyBGb3JtRmllbGQoe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJjb250cm9sQ29kZVwiLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLkNoaXBzLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IEZvcm1GaWVsZCh7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcImV4dGVybmFsSWRcIixcclxuICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5TdHJpbmcsXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgRm9ybUZpZWxkKHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiZXZlbnRPcmlnaW5cIixcclxuICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5FbnVtLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbmV3IEZvcm1GaWVsZCh7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcInN0YXR1c1wiLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogRmllbGRUeXBlLkVudW0sXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBuZXcgRm9ybUZpZWxkKHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiY3JlYXRlZERhdGVcIixcclxuICAgICAgICAgICAgICAgIHR5cGU6IEZpZWxkVHlwZS5EYXRlLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICBdO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0R3JpZENvbHVtbnMoKSB7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgICAgeyBmaWVsZDogXCJjb21wYW55XCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmNvbXBhbnlcIikgfSxcclxuICAgICAgICAgICAgeyBmaWVsZDogXCJicmFuY2hcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMubGFiZWxfYnJhbmNoXCIpIH0sXHJcbiAgICAgICAgICAgIHsgZmllbGQ6IFwiZXZlbnRPcmlnaW5cIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuZXZlbnRfb3JpZ2luX2xhYmVsXCIpIH0sXHJcbiAgICAgICAgICAgIHsgZmllbGQ6IFwiY29udHJvbENvZGVcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwiYWdyby5hbmd1bGFyX2NvbXBvbmVudHMuY29udHJvbF9jb2RlXCIpIH0sXHJcbiAgICAgICAgXTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcclxuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcclxuICAgICAgICB0aGlzLndlYnNvY2tldFNlcnZpY2UuZGlzY29ubmVjdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjYWxsV2Vic29ja2V0KCkge1xyXG4gICAgICAgIHRoaXMud2Vic29ja2V0U2VydmljZVxyXG4gICAgICAgICAgICAub25FdmVudDxhbnk+KHtcclxuICAgICAgICAgICAgICAgIGRvbWFpbjogXCJhZ3JvXCIsXHJcbiAgICAgICAgICAgICAgICBzZXJ2aWNlOiBcImFncm9fZXZlbnRzXCIsXHJcbiAgICAgICAgICAgICAgICBwcmltaXRpdmU6IFwicHJvY2Vzc2VkRXZlbnRcIixcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKG1lc3NhZ2UpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGV4dGVybmFsSWQgPSBtZXNzYWdlPy5kYXRhPy5leHRlcm5hbElkO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyRGF0YSA9IHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldFJhd1ZhbHVlKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWV4dGVybmFsSWQgfHwgdGhpcy5leHRlcm5hbElkID09PSBleHRlcm5hbElkIHx8IHRoaXMuZ3JpZERhdGE/LnNvbWUoKGl0ZW06IGFueSkgPT4gaXRlbS5leHRlcm5hbElkID09PSBleHRlcm5hbElkKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlR3JpZCh7IGZpbHRlckRhdGEgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzZWRFdmVudC5lbWl0KG1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy53ZWJzb2NrZXRTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5vbkV2ZW50PGFueT4oe1xyXG4gICAgICAgICAgICAgICAgZG9tYWluOiBcInBsYXRmb3JtXCIsXHJcbiAgICAgICAgICAgICAgICBzZXJ2aWNlOiBcIm5vdGlmaWNhdGlvbnNcIixcclxuICAgICAgICAgICAgICAgIHByaW1pdGl2ZTogXCJ1c2VyTm90aWZpZWRcIixcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyRGF0YSA9IHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldFJhd1ZhbHVlKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUdyaWQoeyBmaWx0ZXJEYXRhIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25TZWFyY2goKSB7XHJcbiAgICAgICAgY29uc3QgZmlsdGVyRGF0YSA9IHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldFJhd1ZhbHVlKCk7XHJcbiAgICAgICAgdGhpcy5ncmlkTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5yZXNldEdyaWQoeyBmaWx0ZXJEYXRhIH0pO1xyXG4gICAgICAgIHRoaXMudXBkYXRlR3JpZCh7IGZpbHRlckRhdGEgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlc2V0R3JpZChsaXN0UGFyYW1zPzogYW55KSB7XHJcbiAgICAgICAgaWYgKGxpc3RQYXJhbXMpIHtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50TGlzdFBhcmFtcyA9IHsgLi4udGhpcy5jdXJyZW50TGlzdFBhcmFtcywgLi4ubGlzdFBhcmFtcyB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnBhZ2UgPSBBR1JPX05VTUJFUlMuWkVSTztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZUdyaWQobGlzdFBhcmFtczogYW55ID0ge30pIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zID0geyAuLi50aGlzLmN1cnJlbnRMaXN0UGFyYW1zLCAuLi5saXN0UGFyYW1zIH07XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNvcnQ/Lmxlbmd0aCA8PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudExpc3RQYXJhbXMuc29ydCA9IHRoaXMuc3RhbmRhbG9uZSA/XHJcbiAgICAgICAgICAgICAgICBbeyBmaWVsZDogXCJjcmVhdGVkRGF0ZVwiLCBvcmRlcjogMSB9XSA6XHJcbiAgICAgICAgICAgICAgICBbeyBmaWVsZDogXCJsYXN0TW9kaWZpZWREYXRlXCIsIG9yZGVyOiAtMSB9XTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuY3VycmVudExpc3RQYXJhbXMuZmlsdGVyUXVlcnkgPSB0aGlzLmdldEZpbHRlcigpO1xyXG5cclxuICAgICAgICB0aGlzLmV2ZW50Q29udHJvbFNlcnZpY2VcclxuICAgICAgICAgICAgLmxpc3QodGhpcy5jdXJyZW50TGlzdFBhcmFtcylcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcclxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ncmlkTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgobGlzdDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdyaWREYXRhID0gbGlzdC5jb250ZW50cztcclxuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZFRvdGFsUmVjb3JkcyA9IGxpc3QudG90YWxFbGVtZW50cztcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5ncmlkRGF0YSB8fCB0aGlzLmdyaWREYXRhLmxlbmd0aCA8PSBBR1JPX05VTUJFUlMuWkVSTykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JpZExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NFdmVudENvbnRyb2xJdGVtcygpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldEZpbHRlcigpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IHsgZmlsdGVyRGF0YSB9ID0gdGhpcy5jdXJyZW50TGlzdFBhcmFtcztcclxuICAgICAgICBjb25zdCBmaWx0ZXJzOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICAgICAgICBpZiAoZmlsdGVyRGF0YVtcImNvbXBhbnlcIl0/LmlkKSB7XHJcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaChgZTA3MGVtcC5pZCBlcSAnJHtmaWx0ZXJEYXRhW1wiY29tcGFueVwiXS5pZH0nYCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZmlsdGVyRGF0YVtcImJyYW5jaFwiXT8uaWQpIHtcclxuICAgICAgICAgICAgZmlsdGVycy5wdXNoKGBlMDcwZmlsLmlkIGVxICcke2ZpbHRlckRhdGFbXCJicmFuY2hcIl0uaWR9J2ApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgY29udHJvbENvZGUgPSBmaWx0ZXJEYXRhW1wiY29udHJvbENvZGVcIl07XHJcbiAgICAgICAgaWYgKGNvbnRyb2xDb2RlICYmIEFycmF5LmlzQXJyYXkoY29udHJvbENvZGUpICYmIGNvbnRyb2xDb2RlLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgY29uc3QgY29kZXMgPSBjb250cm9sQ29kZS5tYXAoKGNvZGU6IHN0cmluZykgPT4gcGFyc2VJbnQoY29kZSwgMTApKS5qb2luKFwiLFwiKTtcclxuICAgICAgICAgICAgZmlsdGVycy5wdXNoKGBjb250cm9sQ29kZSBpbiAoJHtjb2Rlc30pYCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZmlsdGVyRGF0YVtcImV4dGVybmFsSWRcIl0pIHtcclxuICAgICAgICAgICAgZmlsdGVycy5wdXNoKGBleHRlcm5hbElkIGVxICcke2ZpbHRlckRhdGFbXCJleHRlcm5hbElkXCJdfSdgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChmaWx0ZXJEYXRhW1wiZXZlbnRPcmlnaW5cIl0pIHtcclxuICAgICAgICAgICAgZmlsdGVycy5wdXNoKGBldmVudE9yaWdpbiBlcSAnJHtmaWx0ZXJEYXRhW1wiZXZlbnRPcmlnaW5cIl19J2ApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGZpbHRlckRhdGFbXCJzdGF0dXNcIl0pIHtcclxuICAgICAgICAgICAgZmlsdGVycy5wdXNoKGBldmVudENvbnRyb2xJdGVtLnN0YXR1cyBlcSAnJHtmaWx0ZXJEYXRhW1wic3RhdHVzXCJdfSdgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChmaWx0ZXJEYXRhW1wiY3JlYXRlZERhdGVcIl0pIHtcclxuICAgICAgICAgICAgZmlsdGVycy5wdXNoKGBjcmVhdGVkRGF0ZSBnZSAnJHt0aGlzLmdldFN0YXJ0RGF0ZShmaWx0ZXJEYXRhW1wiY3JlYXRlZERhdGVcIl0pfSdgKTtcclxuICAgICAgICAgICAgZmlsdGVycy5wdXNoKGBjcmVhdGVkRGF0ZSBsZSAnJHt0aGlzLmdldEVuZERhdGUoZmlsdGVyRGF0YVtcImNyZWF0ZWREYXRlXCJdKX0nYCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZmlsdGVycy5qb2luKFwiIGFuZCBcIik7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRFbmREYXRlKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGVuZERhdGUgPSBtb21lbnQodmFsdWUpLmVuZE9mKFwiZGF5XCIpLmZvcm1hdChcIllZWVktTU0tRERUSEg6bW06c3NcIikgKyBcIlpcIjtcclxuICAgICAgICByZXR1cm4gZW5kRGF0ZTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgZ2V0U3RhcnREYXRlKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IG1vbWVudCh2YWx1ZSkuc3RhcnRPZihcImRheVwiKS5mb3JtYXQoXCJZWVlZLU1NLUREVEhIOm1tOnNzXCIpICsgXCJaXCI7XHJcbiAgICAgICAgcmV0dXJuIHN0YXJ0RGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldERpc3BsYXlGaWVsZHMoKTogc3RyaW5nW10ge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICAgICcqJyxcclxuICAgICAgICAgICAgJ2NvbXBhbnkuKicsXHJcbiAgICAgICAgICAgICdicmFuY2guKicsXHJcbiAgICAgICAgICAgICdldmVudENvbnRyb2xJdGVtLmV2ZW50RG9tYWluJyxcclxuICAgICAgICAgICAgJ2V2ZW50Q29udHJvbEl0ZW0uaWQnLFxyXG4gICAgICAgICAgICAnZXZlbnRDb250cm9sSXRlbS5ldmVudERvbWFpbicsXHJcbiAgICAgICAgICAgICdldmVudENvbnRyb2xJdGVtLmV2ZW50U2VydmljZScsXHJcbiAgICAgICAgICAgICdldmVudENvbnRyb2xJdGVtLmV2ZW50UHJpbWl0aXZlJyxcclxuICAgICAgICAgICAgJ2V2ZW50Q29udHJvbEl0ZW0uZXZlbnRDb250cm9sJyxcclxuICAgICAgICAgICAgJ2V2ZW50Q29udHJvbEl0ZW0uZXZlbnRHcm91cCcsXHJcbiAgICAgICAgICAgICdldmVudENvbnRyb2xJdGVtLnNlcXVlbmNlJyxcclxuICAgICAgICAgICAgJ2V2ZW50Q29udHJvbEl0ZW0uZXZlbnRPcGVyYXRpb24nLFxyXG4gICAgICAgICAgICAnZXZlbnRDb250cm9sSXRlbS5vdXRwdXQnLFxyXG4gICAgICAgICAgICAnZXZlbnRDb250cm9sSXRlbS5pbnB1dCcsXHJcbiAgICAgICAgICAgICdldmVudENvbnRyb2xJdGVtLnN0YXR1cycsXHJcbiAgICAgICAgICAgICdldmVudENvbnRyb2xJdGVtLnN1YlRpdGxlJyxcclxuICAgICAgICAgICAgJ2V2ZW50Q29udHJvbEl0ZW0ubWVzc2FnZScsXHJcbiAgICAgICAgICAgICdldmVudENvbnRyb2xJdGVtLmNyZWF0ZWRCeScsXHJcbiAgICAgICAgICAgICdldmVudENvbnRyb2xJdGVtLmNyZWF0ZWREYXRlJyxcclxuICAgICAgICAgICAgJ2V2ZW50Q29udHJvbEl0ZW0ubGFzdE1vZGlmaWVkQnknLFxyXG4gICAgICAgICAgICAnZXZlbnRDb250cm9sSXRlbS5sYXN0TW9kaWZpZWREYXRlJyxcclxuICAgICAgICBdO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcHJvY2Vzc0V2ZW50Q29udHJvbEl0ZW1zKCkge1xyXG4gICAgICAgIHRoaXMuZ3JpZERhdGEuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBzb3J0ZWRJdGVtcyA9IGl0ZW0uZXZlbnRDb250cm9sSXRlbS5zb3J0KChhOiBFdmVudENvbnRyb2xJdGVtLCBiOiBFdmVudENvbnRyb2xJdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYS5zZXF1ZW5jZSAtIGIuc2VxdWVuY2U7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBjb25zdCBzdGVwcyA9IHNvcnRlZEl0ZW1zLm1hcCgoZGV0YWlsOiBFdmVudENvbnRyb2xJdGVtLCBpbmRleDogbnVtYmVyKSA9PiB0aGlzLmNyZWF0ZVN0ZXAoZGV0YWlsLCBpdGVtLCBpbmRleCkpO1xyXG4gICAgICAgICAgICBjb25zdCBhY3RpdmVJbmRleCA9IHRoaXMuY2FsY3VsYXRlQWN0aXZlSW5kZXgoc29ydGVkSXRlbXMpO1xyXG4gICAgICAgICAgICBpdGVtLmdyb3VwcyA9IFt7IHN0ZXBzLCBhY3RpdmVJbmRleCB9XTtcclxuICAgICAgICAgICAgaXRlbS5hY3RpdmVJbmRleCA9IGFjdGl2ZUluZGV4O1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuZ3JpZERhdGFSZXNvbHZlZCA9IHRoaXMuZ3JpZERhdGE7XHJcbiAgICAgICAgdGhpcy5ncmlkTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY2FsY3VsYXRlQWN0aXZlSW5kZXgoZGV0YWlsczogRXZlbnRDb250cm9sSXRlbVtdKTogbnVtYmVyIHtcclxuICAgICAgICBjb25zdCBsYXN0QWN0aXZlID0gZGV0YWlscy5yZWR1Y2UoXHJcbiAgICAgICAgICAgIChsYXN0SW5kZXgsIGRldGFpbCwgY3VycmVudEluZGV4KSA9PiAoZGV0YWlsLnN0YXR1cyAhPT0gRXZlbnRTdGF0dXMuUEVORElORyA/IGN1cnJlbnRJbmRleCA6IGxhc3RJbmRleCksXHJcbiAgICAgICAgICAgIC0xXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAobGFzdEFjdGl2ZSAhPT0gLTEgJiYgZGV0YWlsc1tsYXN0QWN0aXZlXS5zdGF0dXMgPT09IEV2ZW50U3RhdHVzLlNVQ0NFU1MpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGxhc3RBY3RpdmUgKyAxO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbGFzdEFjdGl2ZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNyZWF0ZVN0ZXAoZGV0YWlsOiBFdmVudENvbnRyb2xJdGVtLCBpdGVtOiBFdmVudENvbnRyb2wsIGRldGFpbEluZGV4OiBudW1iZXIpIHtcclxuICAgICAgICBjb25zb2xlLmxvZygnRGV0YWlsOicsIGRldGFpbCk7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaXRlbTogZGV0YWlsLFxyXG4gICAgICAgICAgICBjb250cm9sQ29kZTogaXRlbS5jb250cm9sQ29kZSxcclxuICAgICAgICAgICAgZXZlbnRUeXBlOiBpdGVtLmV2ZW50T3JpZ2luLFxyXG4gICAgICAgICAgICBsYWJlbDogdGhpcy5nZXRFdmVudExhYmVsKGRldGFpbCksXHJcbiAgICAgICAgICAgIHN1YkxhYmVsOiB0aGlzLmZvcm1hdFN1YnRpdGxlKGRldGFpbCksXHJcbiAgICAgICAgICAgIGRpc2FibGVkOiBkZXRhaWwuc3RhdHVzID09PSBFdmVudFN0YXR1cy5QRU5ESU5HICYmIGRldGFpbEluZGV4ICE9PSB0aGlzLmNhbGN1bGF0ZUFjdGl2ZUluZGV4KGl0ZW0uZXZlbnRDb250cm9sSXRlbSksXHJcbiAgICAgICAgICAgIHRvb2x0aXA6IHRoaXMuZ2V0RXZlbnRMYWJlbChkZXRhaWwpLFxyXG4gICAgICAgICAgICBzdGF0ZTogdGhpcy5kZXRlcm1pbmVTdGVwU3RhdGUoZGV0YWlsKSxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZGV0ZXJtaW5lU3RlcFN0YXRlKGRldGFpbDogeyBzdGF0dXM6IEV2ZW50U3RhdHVzIH0pOiBTdGVwU3RhdGUge1xyXG4gICAgICAgIGlmIChkZXRhaWwuc3RhdHVzID09PSBFdmVudFN0YXR1cy5TVUNDRVNTKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBTdGVwU3RhdGUuU3VjY2VzcztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGRldGFpbC5zdGF0dXMgPT09IEV2ZW50U3RhdHVzLkZBSUxFRCkge1xyXG4gICAgICAgICAgICByZXR1cm4gU3RlcFN0YXRlLldhcm5pbmc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBTdGVwU3RhdGUuRGVmYXVsdDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldEV2ZW50TGFiZWwoZGV0YWlsOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGV2ZW50TGFiZWwgPSB0aGlzLmV2ZW50SXRlbS5maW5kKChlKSA9PiBlLnZhbHVlID09PSBkZXRhaWwuZXZlbnRPcGVyYXRpb24pPy5sYWJlbDtcclxuICAgICAgICBpZiAoZXZlbnRMYWJlbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudChldmVudExhYmVsKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgbG9jYWxMYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5cIiArIGRldGFpbC5ldmVudE9wZXJhdGlvbik7XHJcbiAgICAgICAgaWYgKGxvY2FsTGFiZWwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGxvY2FsTGFiZWw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBkZXRhaWwuZXZlbnRPcGVyYXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBmb3JtYXRTdWJ0aXRsZShkZXRhaWw6IEV2ZW50Q29udHJvbEl0ZW0pOiBzdHJpbmcgfCBudWxsIHtcclxuICAgICAgICBjb25zdCB7IGV2ZW50T3BlcmF0aW9uLCBzdWJUaXRsZSB9ID0gZGV0YWlsO1xyXG5cclxuICAgICAgICBjb25zdCBpbnZvaWNlT3BlcmF0aW9ucyA9IFtcclxuICAgICAgICAgICAgRXZlbnRPcGVyYXRpb24uQ1JFQVRFX0lOVk9JQ0VfRklYQVRJT04sXHJcbiAgICAgICAgICAgIEV2ZW50T3BlcmF0aW9uLkNBTkNFTF9JTlZPSUNFX0ZJWEFUSU9OLFxyXG4gICAgICAgICAgICBFdmVudE9wZXJhdGlvbi5PUklHSU5BVElPTl9DUkVBVEVfSU5WT0lDRVxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIGNvbnN0IG51bWJlclByZWZpeE9wZXJhdGlvbnMgPSBbXHJcbiAgICAgICAgICAgIEV2ZW50T3BlcmF0aW9uLkNMT1NFX0lOVk9JQ0VfRklYQVRJT04sXHJcbiAgICAgICAgICAgIEV2ZW50T3BlcmF0aW9uLlJFT1BFTl9JTlZPSUNFX0ZJWEFUSU9OXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgY29uc3QgcHJlc2NyaXB0aW9uT3BlcmF0aW9ucyA9IFtcclxuICAgICAgICAgICAgRXZlbnRPcGVyYXRpb24uUFJFU0NSSVBUSU9OX0RBVEFfTE9BRF9QUk9EVUNUX1RZUEUsXHJcbiAgICAgICAgICAgIEV2ZW50T3BlcmF0aW9uLlBSRVNDUklQVElPTl9EQVRBX0xPQURfQUNUSVZFX1BSSU5DSVBMRSxcclxuICAgICAgICAgICAgRXZlbnRPcGVyYXRpb24uUFJFU0NSSVBUSU9OX0RBVEFfTE9BRF9GT1JNVUxBVElPTixcclxuICAgICAgICAgICAgRXZlbnRPcGVyYXRpb24uUFJFU0NSSVBUSU9OX0RBVEFfTE9BRF9CVUxMRVRJTixcclxuICAgICAgICAgICAgRXZlbnRPcGVyYXRpb24uUFJFU0NSSVBUSU9OX0RBVEFfTE9BRF9BUFBMSUNBVElPTl9VTklULFxyXG4gICAgICAgICAgICBFdmVudE9wZXJhdGlvbi5QUkVTQ1JJUFRJT05fREFUQV9MT0FEX1NQRUNJRSxcclxuICAgICAgICAgICAgRXZlbnRPcGVyYXRpb24uUFJFU0NSSVBUSU9OX0RBVEFfTE9BRF9BUFBMSUNBVElPTl9UWVBFLFxyXG4gICAgICAgICAgICBFdmVudE9wZXJhdGlvbi5QUkVTQ1JJUFRJT05fREFUQV9MT0FEX1BST0JMRU1TLFxyXG4gICAgICAgICAgICBFdmVudE9wZXJhdGlvbi5QUkVTQ1JJUFRJT05fREFUQV9MT0FEX0FQUExJQ0FUSU9OXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgbGV0IGZvcm1hdHRlZFN1YnRpdGxlID0gc3ViVGl0bGU7XHJcbiAgICAgICAgaWYgKGludm9pY2VPcGVyYXRpb25zLmluY2x1ZGVzKGV2ZW50T3BlcmF0aW9uKSkge1xyXG4gICAgICAgICAgICBjb25zdCBsYWJlbCA9IHRoaXMuaW52b2ljZVR5cGVUcmFuc2xhdGUuZmluZCgoZSkgPT4gZS52YWx1ZSA9PT0gc3ViVGl0bGUpPy5sYWJlbDtcclxuICAgICAgICAgICAgZm9ybWF0dGVkU3VidGl0bGUgPSBsYWJlbCA/IHRoaXMudHJhbnNsYXRlLmluc3RhbnQobGFiZWwpIDogc3ViVGl0bGU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAobnVtYmVyUHJlZml4T3BlcmF0aW9ucy5pbmNsdWRlcyhldmVudE9wZXJhdGlvbikpIHtcclxuICAgICAgICAgICAgZm9ybWF0dGVkU3VidGl0bGUgPSBzdWJUaXRsZSA/IGBuwrAgJHtzdWJUaXRsZX1gIDogc3ViVGl0bGU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocHJlc2NyaXB0aW9uT3BlcmF0aW9ucy5pbmNsdWRlcyhldmVudE9wZXJhdGlvbikpIHtcclxuICAgICAgICAgICAgZm9ybWF0dGVkU3VidGl0bGUgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5uZXdfcHJlc2NyaXB0aW9uX3BhZ2UnLCB7IGNvdW50OiBzdWJUaXRsZSB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBmb3JtYXR0ZWRTdWJ0aXRsZTtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIHB1YmxpYyBvbkdyaWRDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgICAgIGNvbnN0IHNpemUgPSBldmVudD8ucm93cztcclxuICAgICAgICBjb25zdCBwYWdlID0gZXZlbnQ/LmZpcnN0IC8gc2l6ZTtcclxuICAgICAgICBjb25zdCBzb3J0ID0gZXZlbnQubXVsdGlTb3J0TWV0YTtcclxuICAgICAgICB0aGlzLmdyaWRMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICBpZiAoc2l6ZSAhPT0gQUdST19OVU1CRVJTLlRFTiB8fCBwYWdlICE9PSBBR1JPX05VTUJFUlMuWkVSTyB8fCAoc29ydCAmJiBzb3J0Lmxlbmd0aCA+IEFHUk9fTlVNQkVSUy5aRVJPKSkge1xyXG4gICAgICAgICAgICB0aGlzLnBhZ2luYXRvclN0b3JhZ2VTZXJ2aWNlLnN0b3JlUGFnaW5hdG9yKFwiRXZlbnRDb250cm9sQm9hcmRQYWdpbmF0b3JcIiwgeyBwYWdlLCBzaXplLCBzb3J0IH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlR3JpZCh7IHBhZ2UsIHNpemUsIHNvcnQgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFBhZ2VTaXplKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNpemU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFJvd0luZGV4KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnBhZ2UgKiB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNpemU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFNvcnRGaWVsZCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuY3VycmVudExpc3RQYXJhbXMuc29ydCB8fCB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNvcnQubGVuZ3RoIDw9IEFHUk9fTlVNQkVSUy5aRVJPKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdyaWRDb2x1bW5zW0FHUk9fTlVNQkVSUy5aRVJPXS5maWVsZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudExpc3RQYXJhbXMuc29ydFtBR1JPX05VTUJFUlMuWkVST10uZmllbGQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFNvcnRPcmRlcigpIHtcclxuICAgICAgICBpZiAoIXRoaXMuY3VycmVudExpc3RQYXJhbXMuc29ydCB8fCB0aGlzLmN1cnJlbnRMaXN0UGFyYW1zLnNvcnQubGVuZ3RoIDw9IEFHUk9fTlVNQkVSUy5aRVJPKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBBR1JPX05VTUJFUlMuT05FO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudExpc3RQYXJhbXMuc29ydFtBR1JPX05VTUJFUlMuWkVST10ub3JkZXI7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldEVycm9yTWVzc2FnZXMoKSB7XHJcbiAgICAgICAgY29uc3QgdHJhbnNsYXRlZEVycm9yTWVzc2FnZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBMb29rdXBFcnJvck1lc3NhZ2VzKSB7XHJcbiAgICAgICAgICAgIGlmIChMb29rdXBFcnJvck1lc3NhZ2VzLmhhc093blByb3BlcnR5KGtleSkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmdldChMb29rdXBFcnJvck1lc3NhZ2VzW2tleV0pLnN1YnNjcmliZSgocmVzOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGVkRXJyb3JNZXNzYWdlc1trZXldID0gcmVzO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRyYW5zbGF0ZWRFcnJvck1lc3NhZ2VzO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFByb2R1Y2VySW52b2ljZUlkRnJvbVBhcmFtcyhwYXJhbTogYW55KTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICAgICAgaWYgKCFwYXJhbSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICAgIHBhcmFtLnByb2R1Y2VySW52b2ljZUlkcz8uWzBdLFxyXG4gICAgICAgICAgICBwYXJhbS5pbnZvaWNlPy5nZW5lcmFsRGF0YT8udHJhbnNhY3Rpb25hbElkLFxyXG4gICAgICAgICAgICBwYXJhbS5wcm9kdWNlckludm9pY2VJZCxcclxuICAgICAgICAgICAgcGFyYW0uZXh0ZXJuYWxJZCxcclxuICAgICAgICAgICAgcGFyYW0uZXh0ZXJuYWxJbnZvaWNlSWRzPy5bMF0sXHJcbiAgICAgICAgXS5maW5kKChpZCkgPT4gaWQpID8/IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UHJvZHVjZXJCYWxhbmNlRW50cnlDb250cm9sSWRGcm9tUGFyYW1zKHBhcmFtOiBhbnkpIHtcclxuICAgICAgICBjb25zdCB7IHByb2R1Y2VyQmFsYW5jZUVudHJ5Q29udHJvbElkIH0gPSBwYXJhbTtcclxuICAgICAgICByZXR1cm4gcHJvZHVjZXJCYWxhbmNlRW50cnlDb250cm9sSWQgPyBwcm9kdWNlckJhbGFuY2VFbnRyeUNvbnRyb2xJZCA6IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0ZXBTZWxlY3RlZChldmVudDogYW55KSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFN0ZXAgPSBldmVudC5zdGVwO1xyXG4gICAgICAgIHRoaXMuYXBwbHlTaWRlYmFyVGl0bGUoXCJcIik7XHJcblxyXG4gICAgICAgIHN3aXRjaCAodGhpcy5zZWxlY3RlZFN0ZXAuZXZlbnRUeXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgRXZlbnRPcmlnaW4uQkFMQU5DRV9FTlRSWV9DT05UUk9MOlxyXG4gICAgICAgICAgICBjYXNlIEV2ZW50T3JpZ2luLlRJQ0tFVDpcclxuICAgICAgICAgICAgY2FzZSBFdmVudE9yaWdpbi5JTlZPSUNFOlxyXG4gICAgICAgICAgICBjYXNlIEV2ZW50T3JpZ2luLkNSRUFURV9JTlZPSUNFOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zaWRlYmFyTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyYW0gPSBKU09OLnBhcnNlKHRoaXMuc2VsZWN0ZWRTdGVwLml0ZW0uaW5wdXQpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByb2R1Y2VySW52b2ljZUlkID0gdGhpcy5nZXRQcm9kdWNlckludm9pY2VJZEZyb21QYXJhbXMocGFyYW0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBmaWx0ZXJRdWVyeSA9IFwiXCI7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghcHJvZHVjZXJJbnZvaWNlSWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJvZHVjZXJCYWxhbmNlRW50cnlDb250cm9sSWQgPSB0aGlzLmdldFByb2R1Y2VyQmFsYW5jZUVudHJ5Q29udHJvbElkRnJvbVBhcmFtcyhwYXJhbSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb2R1Y2VyQmFsYW5jZUVudHJ5Q29udHJvbElkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNpZGViYXJMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclF1ZXJ5ID0gYHByb2R1Y2VyQmFsYW5jZUVudHJ5Q29udHJvbC5pZCBlcSAnJHtwcm9kdWNlckJhbGFuY2VFbnRyeUNvbnRyb2xJZH0nYDtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJRdWVyeSA9IGBpZCBlcSAnJHtwcm9kdWNlckludm9pY2VJZH0nYDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjZXJJbnZvaWNlU2VydmljZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAubGlzdCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5RmllbGRzOiBbXCIqXCIsIFwicHJvZHVjZXJCYWxhbmNlRW50cnlDb250cm9sLipcIiwgXCJwcm9kdWNlckJhbGFuY2VFbnRyeUNvbnRyb2wucHJvZHVjZXIuKlwiXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclF1ZXJ5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZTogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9kdWNlckludm9pY2UgPSByZXN1bHQ/LmNvbnRlbnRzWzBdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjZXJJbnZvaWNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2lkZWJhckxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGx5U2lkZWJhclRpdGxlKHRoaXMuZ2V0UHJvZHVjZXJJbnZvaWNlTnVtYmVyQW5kU2VyaWUoKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2lkZWJhckxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIEV2ZW50T3JpZ2luLkZJWEFUSU9OOlxyXG4gICAgICAgICAgICBjYXNlIEV2ZW50T3JpZ2luLkNBTkNFTF9GSVhBVElPTjpcclxuICAgICAgICAgICAgY2FzZSBFdmVudE9yaWdpbi5DSEFOR0VfUkVRVUVTVDpcclxuICAgICAgICAgICAgY2FzZSBFdmVudE9yaWdpbi5UUkFOU0ZFUjpcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zaG93UmVwcm9jZXNzQnV0dG9uID0gZXZlbnQuc3RlcC5zdGF0ZSA9PT0gU3RlcFN0YXRlLldhcm5pbmc7XHJcblxyXG4gICAgICAgIHRoaXMuc2hvd1NpZGViYXIgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYXBwbHlTaWRlYmFyVGl0bGUodGl0bGU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuc2lkZWJhclRpdGxlID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmV2ZW50X3NpZGViYXJfdGl0bGVcIiwgeyBldmVudE51bWJlcjogdGl0bGUgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRQcm9kdWNlckludm9pY2VOdW1iZXJBbmRTZXJpZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh0aGlzLnByb2R1Y2VySW52b2ljZT8ubnVtYmVyICYmIHRoaXMucHJvZHVjZXJJbnZvaWNlPy5zZXJpZXMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGAke3RoaXMucHJvZHVjZXJJbnZvaWNlLm51bWJlcn0gLSAke3RoaXMucHJvZHVjZXJJbnZvaWNlLnNlcmllc31gO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVwcm9jZXNzRXZlbnQoKSB7XHJcbiAgICAgICAgY29uc3QgcmVwcm9jZXNzRXZlbnRPYmo6IFJlcHJvY2Vzc0ZhaWxlZEV2ZW50ID0ge1xyXG4gICAgICAgICAgICBldmVudENvbnRyb2xJdGVtSWQ6IHRoaXMuc2VsZWN0ZWRTdGVwLml0ZW0uaWQsXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmV2ZW50Q29udHJvbEl0ZW1TZXJ2aWNlXHJcbiAgICAgICAgICAgIC5yZXByb2Nlc3NGYWlsZWRFdmVudChyZXByb2Nlc3NFdmVudE9iailcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRNZXNzYWdlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcImluZm9cIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5yZXByb2Nlc3NpbmdfZXZlbnRfbWVzc2FnZV90aXRsZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLnJlcHJvY2Vzc2luZ19ldmVudF9tZXNzYWdlX2Rlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZE1lc3NhZ2UoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZXJyb3JcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhZ3JvLmFuZ3VsYXJfY29tcG9uZW50cy5lcnJvcl9yZXByb2Nlc3NpbmdfZXZlbnRfbWVzc2FnZV90aXRsZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFncm8uYW5ndWxhcl9jb21wb25lbnRzLmVycm9yX3JlcHJvY2Vzc2luZ19ldmVudF9tZXNzYWdlX2Rlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYWRkTWVzc2FnZShzZXZlcml0eTogc3RyaW5nLCBzdW1tYXJ5OiBzdHJpbmcsIGRldGFpbDogc3RyaW5nLCBsaWZlID0gQUdST19OVU1CRVJTLkZJVkVfU0VDT05EUykge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcclxuICAgICAgICAgICAgc2V2ZXJpdHksXHJcbiAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoc3VtbWFyeSksXHJcbiAgICAgICAgICAgIGRldGFpbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChkZXRhaWwpLFxyXG4gICAgICAgICAgICBsaWZlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvcGVuTW9kYWwoKSB7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5TW9kYWwgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2hvd1NpZGViYXIgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgb3BlbkNhbmNlbE1vZGFsKCkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuY2FuY2VsRXZlbnREaWFsb2dDb25maWcuYmVmb3JlT3Blbj8uKCk7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW4oQ2FuY2VsRXZlbnREaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgICAgICAgaGVhZGVyOiB0aGlzLmNhbmNlbEV2ZW50RGlhbG9nQ29uZmlnPy5oZWFkZXIsXHJcbiAgICAgICAgICAgIGNvbnRlbnRTdHlsZTogeyBoZWlnaHQ6IFwiMTAwJVwiIH0sXHJcbiAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICBjbG9zZU9uRXNjYXBlOiBmYWxzZSxcclxuICAgICAgICAgICAgZGF0YTogeyBjYW5jZWxFdmVudERpYWxvZ0NvbmZpZzogdGhpcy5jYW5jZWxFdmVudERpYWxvZ0NvbmZpZyB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjb25maXJtTW9kYWwoKSB7XHJcbiAgICAgICAgdGhpcy5yZXByb2Nlc3NFdmVudCgpO1xyXG4gICAgICAgIHRoaXMuZGlzcGxheU1vZGFsID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNhbmNlbE1vZGFsKCkge1xyXG4gICAgICAgIHRoaXMuZGlzcGxheU1vZGFsID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNsb3NlU2lkZWJhcigpIHtcclxuICAgICAgICB0aGlzLnNob3dTaWRlYmFyID0gZmFsc2U7XHJcbiAgICB9XHJcbn1cclxuIl19
|